@brightsideoy/kama 1.0.0-alpha.13 → 1.0.0-alpha.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +282 -158
- package/content/definitions/taxonomies/categories.yaml +5 -2
- package/content/definitions/taxonomies/tags.yaml +5 -2
- package/dist/assets/AssetEditor-CCNDGlQ_.js +1 -0
- package/dist/assets/AssetEditor-D5j7pwcK.css +1 -0
- package/dist/assets/CmsHelp-BO_vWABq.css +1 -0
- package/dist/assets/CmsHelp-m9EOY_nE.js +1 -0
- package/dist/assets/CmsPublisher-Cs_ys68V.js +3 -0
- package/dist/assets/CmsPublisher-CugEqTD8.css +1 -0
- package/dist/assets/CmsUserCenter-Ac0GywlR.css +1 -0
- package/dist/assets/CmsUserCenter-D-T6HyWF.js +1 -0
- package/dist/assets/EditorSplitPreview-BzKh4wFB.css +1 -0
- package/dist/assets/EditorSplitPreview-CnWpXZWQ.js +1 -0
- package/dist/assets/NodeEditor-B1TvB2eW.css +1 -0
- package/dist/assets/NodeEditor-CZGnkwvf.js +147 -0
- package/dist/assets/TrashWorkspace-CERX58Ek.js +1 -0
- package/dist/assets/TrashWorkspace-DtMgxg13.css +1 -0
- package/dist/assets/_plugin-vue_export-helper-CTn6xl4w.js +5 -0
- package/dist/assets/history-XvWNE5zO.js +1 -0
- package/dist/assets/index-BpOAL4tE.js +14 -0
- package/dist/assets/index-C-EkPNvq.css +1 -0
- package/dist/assets/layers-D0DLWjff.js +1 -0
- package/dist/assets/link-Bs_SUS0O.js +1 -0
- package/dist/assets/rotate-ccw-CvD7yNQj.js +1 -0
- package/dist/assets/save-C8e-QRkP.js +1 -0
- package/dist/assets/smartphone-Wy6xQi_i.js +1 -0
- package/dist/{dist-kIJlDMvm.js → dist-BGv2bzzF.js} +633 -539
- package/dist/index.html +3 -2
- package/dist/index.js +633 -539
- package/dist/schema-compiler.js +1 -1
- package/package.json +1 -1
- package/schema.sql +3 -0
- package/templates/astro-starter/src/components/blocks/NodeList.astro +59 -63
- package/templates/astro-starter/src/middleware.ts +63 -35
- package/templates/astro-starter/src/pages/[...slug].astro +5 -12
- package/templates/astro-starter/src/pages/api/load-nodes.ts +42 -14
- package/templates/astro-starter/src/pages/api/partials/node-cards.astro +101 -0
- package/templates/kama-worker/setup-local-db.mjs +17 -0
- package/dist/assets/index-B1ogCRCg.js +0 -164
- package/dist/assets/index-CGLx9oqF.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,D as n,F as r,G as i,J as a,K as o,L as s,T as c,Z as l,_ as u,a as d,b as f,bt as ee,d as p,h as m,n as h,st as g,t as _,v,w as y,wt as b,x,y as S,z as C}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{n as te,t as ne}from"./link-Bs_SUS0O.js";import{t as re}from"./layers-D0DLWjff.js";import{t as ie}from"./save-C8e-QRkP.js";import{A as w,N as ae,P as oe,T as se,Y as ce,a as T,at as le,i as E,j as ue,l as de,m as D,nt as fe,o as O,r as k}from"./index-BpOAL4tE.js";var pe=h(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]);t(),g(),a(),d();var me={class:`asset-editor-wrapper canvas`},A={class:`entity-header`},j={class:`top-row`},M={class:`node-info`},N={class:`dynamic-title-group`},P={class:`inline-title-input`},F={key:0},I={key:1},L={class:`meta-row`},R={key:0,class:`slug-badge`},z={class:`actions-group`},he={class:`btn-text`},ge={class:`editor-body`},_e={key:0,class:`loading-state`},ve={key:1,class:`asset-content-scroll`},ye={class:`main-preview-section`},be={key:1,class:`doc-preview`},xe={class:`preview-footer`},Se=[`href`],Ce={class:`data-column`},we={class:`data-header`},Te={class:`data-content`},Ee={class:`form-group`},De={class:`form-group`},Oe={class:`form-group`},ke={class:`usage-and-crops-section`},Ae={class:`usage-section-container`},je={class:`gallery-header-row`},Me={key:0,class:`usage-empty standalone-empty`},Ne={key:1,class:`list-container`},Pe={class:`node-title`},Fe={class:`meta-stack`},Ie={class:`node-field`},Le={key:0,class:`crop-showcase`},Re={class:`crop-name`},ze={key:0,class:`usage-section-container`,style:{"margin-top":`40px`}},Be={class:`gallery-header-row`},Ve={class:`list-container`},He={class:`meta-stack`},Ue={class:`node-field`},We={key:0,class:`crop-showcase`},Ge={class:`crop-item`},Ke={class:`crop-name`},qe=[`onClick`],B=_(n({__name:`AssetEditor`,props:{assetId:{}},setup(t){let n=t,{activeView:a,nodeSchemas:d}=fe(),{confirmDiscard:h}=le(),{navigateToNodeById:g}=ce(),_=l(null),B=l(!0),V=l(!1),H=l({filename:``,title:``,alt:``}),U=l({filename:``,title:``,alt:``}),W=l(!1),G=l(null),K=l(null),Je=()=>{if(W.value){W.value=!1;return}G.value&&(K.value=G.value.getBoundingClientRect()),W.value=!0},Ye=u(()=>{let e=[{key:`copy-url`,label:`Copy Public URL`,icon:oe},{key:`open-tab`,label:`Open in New Tab`,icon:w}];return _.value&&_.value.connectedNodes?.length>0&&(e.push({key:`div-nodes`,label:``,divider:!0}),e.push({key:`show-nodes`,label:`Connected Nodes (${_.value.connectedNodes.length})`,icon:ne})),e.push({key:`div-1`,label:``,divider:!0},{key:`delete`,label:`Delete Asset`,icon:D}),e}),Xe=async e=>{W.value=!1,_.value&&(e===`copy-url`&&_.value.url?await navigator.clipboard.writeText(_.value.url):e===`open-tab`&&_.value.url?window.open(_.value.url,`_blank`):e===`delete`?await h(`Are you sure you want to delete "${_.value.filename||`this asset`}"?`,`Delete Asset?`,`Delete`,`Cancel`)&&await Ze():e===`show-nodes`&&Y())},Ze=async()=>{try{(await fetch(`/api/admin/assets/${n.assetId}`,{method:`DELETE`})).ok&&(window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),a.value={type:`dashboard`})}catch{}},Qe=u(()=>H.value.filename!==U.value.filename||H.value.title!==U.value.title||H.value.alt!==U.value.alt),q=async()=>{B.value=!0;try{let e=await fetch(`/api/admin/assets/${n.assetId}/details`);if(e.ok){let t=await e.json();_.value=t;let n={filename:t.filename||``,title:t.title||``,alt:t.alt||``};H.value={...n},U.value={...n}}}catch{}finally{B.value=!1}},$e=async()=>{V.value=!0;try{(await fetch(`/api/admin/assets/${n.assetId}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(H.value)})).ok&&(U.value={...H.value},window.dispatchEvent(new CustomEvent(`cms-assets-updated`)))}catch{}finally{V.value=!1}},J=async e=>{let t=`Permanently delete orphaned crop "${_.value?.variants?.find(t=>String(t.id)===String(e))?.filename||`variant`}"?`;if(await h(t,`Delete Crop`,`Delete`,`Cancel`))try{(await fetch(`/api/admin/assets/purge/${e}`,{method:`DELETE`})).ok&&(_.value?.variants&&(_.value.variants=_.value.variants.filter(t=>String(t.id)!==String(e))),window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),await q())}catch{}},et=async()=>{let e=$.value;if(e.length===0)return;let t=`Are you sure you want to permanently delete all ${e.length} orphaned crops?`;if(await h(t,`Purge All Orphaned Crops`,`Purge All`,`Cancel`))try{for(let t of e)await fetch(`/api/admin/assets/purge/${t.id}`,{method:`DELETE`});window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),await q()}catch(e){console.error(`Failed to purge crops`,e)}},tt=e=>{a.value={type:`node`},g(String(e)),window.dispatchEvent(new CustomEvent(`cms-switch-sidebar-tab`,{detail:`vault`}))},Y=()=>{sessionStorage.setItem(`cms-vault-asset-filter`,n.assetId),window.dispatchEvent(new CustomEvent(`cms-filter-vault-by-asset`,{detail:n.assetId})),window.dispatchEvent(new CustomEvent(`cms-switch-sidebar-tab`,{detail:`vault`}))},X=u(()=>_.value&&(_.value.mimeType?.startsWith(`image/`)||/\.(jpg|jpeg|png|webp|gif|svg)$/i.test(_.value.filename))),Z=e=>{if(!e)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**r).toFixed(1))+` `+n[r]},nt=(e,t)=>{if(!t||t===`Original`||t===`Unknown Crop`)return t||`Original Image`;try{let n=d.value[e];if(!n)return t;let r=null,i=e=>{if(!(!e||r))for(let n of Object.values(e))n.crop&&t===`standard`&&n.crop.label&&(r=n.crop.label),n.crops&&n.crops[t]&&n.crops[t].label&&(r=n.crops[t].label)};return i(n.fields),n.tabs&&Object.values(n.tabs).forEach(e=>i(e.fields)),r||t}catch{return t}},Q=u(()=>{if(!_.value||!_.value.connectedNodes)return[];let e=new Map;for(let t of _.value.connectedNodes){let n=String(t.id),r=t.contentType||t.nodeType,i=t.fieldKey?.split(`.`)[0]||`Content Area`,a=t.fieldKey?.match(/^blocks\[(\d+)\]/);a&&(i=`Block ${parseInt(a[1],10)+1}`);let o=String(t.assetId)!==String(_.value.id),s=null;if(o){let e=_.value.variants?.find(e=>String(e.id)===String(t.assetId));if(e){let n=`Unknown Crop`,i=t.fieldKey?.match(/\.variants\.([^.]+)/);if(i)n=i[1];else{let t=e.filename?.match(/^(.+?)_ast_/);t&&(n=t[1])}s={id:e.id,url:e.url,label:nt(r,n)}}}else s={id:_.value.id,url:_.value.url,label:`Original Image`};if(!e.has(n))e.set(n,{id:t.id,title:t.title,nodeType:r,fieldKeys:new Set([i]),usedAssets:s?[s]:[]});else{let t=e.get(n);t.fieldKeys.add(i),s&&!t.usedAssets.some(e=>e.id===s.id)&&t.usedAssets.push(s)}}return Array.from(e.values()).map(e=>({...e,fieldKey:Array.from(e.fieldKeys).join(`, `)}))}),$=u(()=>{if(!_.value||!_.value.variants)return[];let e=new Set(_.value.connectedNodes?.map(e=>String(e.assetId))||[]);return _.value.variants.filter(t=>!e.has(String(t.id)))}),rt=e=>{let t=e?.match(/^(.+?)_ast_/);return t?t[1]:`Unknown Crop`};return r(()=>q()),(t,n)=>(s(),x(`div`,me,[v(`header`,A,[v(`div`,j,[v(`div`,M,[v(`div`,N,[v(`span`,P,[_.value?(s(),x(`span`,F,b(_.value.filename),1)):(s(),x(`span`,I,`Loading Asset...`))])]),v(`div`,L,[_.value?(s(),x(`span`,R,b(Z(_.value.sizeBytes))+` • `+b(_.value.mimeType),1)):f(``,!0)])]),v(`div`,z,[_.value?(s(),x(`div`,{key:0,class:`context-wrapper`,ref_key:`contextTriggerRef`,ref:G},[c(T,{variant:`secondary`,title:`More Options`,onClick:Je,disabled:V.value,class:`transparent-btn icon-only-btn`},{default:i(()=>[c(e(ue),{size:16})]),_:1},8,[`disabled`]),c(de,{show:W.value,items:Ye.value,"anchor-rect":K.value,onSelect:Xe,onClose:n[0]||=e=>W.value=!1},null,8,[`show`,`items`,`anchor-rect`])],512)):f(``,!0),c(T,{variant:`primary`,class:`save-btn`,disabled:V.value||!Qe.value,onClick:$e},{default:i(()=>[c(e(ie),{size:14,class:`save-icon`}),v(`span`,he,b(V.value?`Saving...`:`Save Metadata`),1)]),_:1},8,[`disabled`])])])]),v(`div`,ge,[B.value?(s(),x(`div`,_e,`Loading asset details...`)):_.value?(s(),x(`div`,ve,[v(`div`,ye,[v(`div`,{class:ee([`preview-container`,{"is-doc":!X.value}])},[X.value?(s(),S(O,{key:0,url:_.value.url,alt:_.value.alt||_.value.filename,width:1200,quality:85,class:`main-preview-wrapper`},null,8,[`url`,`alt`])):(s(),x(`div`,be,[c(e(se),{size:64}),n[4]||=v(`span`,null,`Preview not available for this file type`,-1)]))],2),v(`div`,xe,[v(`span`,null,`Original Upload: `+b(new Date(_.value.createdAt).toLocaleString()),1),v(`a`,{href:_.value.url,target:`_blank`,class:`ext-link`},[n[5]||=y(`Open original file `,-1),c(e(w),{size:12})],8,Se)])]),v(`div`,Ce,[v(`div`,we,[v(`h3`,null,[c(e(te),{size:14,class:`inline-icon`}),n[6]||=y(` Metadata `,-1)])]),v(`div`,Te,[v(`div`,Ee,[n[7]||=v(`label`,null,`Filename`,-1),o(v(`input`,{"onUpdate:modelValue":n[1]||=e=>H.value.filename=e,type:`text`,class:`cms-input`},null,512),[[p,H.value.filename]]),n[8]||=v(`span`,{class:`help-text`},`Changing this does not break the permanent CDN link.`,-1)]),v(`div`,De,[n[9]||=v(`label`,null,`Title (Internal/SEO)`,-1),o(v(`input`,{"onUpdate:modelValue":n[2]||=e=>H.value.title=e,type:`text`,class:`cms-input`},null,512),[[p,H.value.title]])]),v(`div`,Oe,[n[10]||=v(`label`,null,`Alt Text (Accessibility)`,-1),o(v(`textarea`,{"onUpdate:modelValue":n[3]||=e=>H.value.alt=e,class:`cms-input cms-textarea`},null,512),[[p,H.value.alt]])])])]),v(`div`,ke,[v(`div`,Ae,[v(`div`,je,[v(`h3`,null,[c(e(re),{size:16,class:`inline-icon`}),n[11]||=y(` Node Usage `,-1)]),Q.value.length>0?(s(),x(`button`,{key:0,class:`action-btn outline`,onClick:Y,title:`Show these nodes in the left Vault pane`},[c(e(pe),{size:13}),n[12]||=y(` Vault Filter `,-1)])):f(``,!0)]),Q.value.length===0?(s(),x(`div`,Me,[...n[13]||=[v(`span`,{class:`status-dot warning`},null,-1),v(`span`,null,`Asset is not currently used on any nodes.`,-1)]])):(s(),x(`div`,Ne,[(s(!0),x(m,null,C(Q.value,e=>(s(),S(E,{key:e.id,clickable:``,onClick:t=>tt(e.id)},{title:i(()=>[n[14]||=v(`span`,{class:`status-dot success`},null,-1),v(`span`,Pe,b(e.title||`Untitled`),1),c(k,{variant:`type`},{default:i(()=>[y(b(e.nodeType||`page`),1)]),_:2},1024)]),meta:i(()=>[v(`div`,Fe,[v(`span`,Ie,`Used in field: `+b(e.fieldKey),1),X.value?(s(),x(`div`,Le,[(s(!0),x(m,null,C(e.usedAssets,e=>(s(),x(`div`,{key:e.id,class:`crop-item`},[c(O,{url:e.url,alt:e.label,width:200,quality:75,class:`crop-img-fixed-height`},null,8,[`url`,`alt`]),v(`span`,Re,b(e.label),1)]))),128))])):f(``,!0)])]),_:2},1032,[`onClick`]))),128))]))]),$.value.length>0?(s(),x(`div`,ze,[v(`div`,Be,[v(`h3`,null,[c(e(ae),{size:16,class:`inline-icon`}),y(` Orphaned Crops (`+b($.value.length)+`) `,1)]),v(`button`,{class:`action-btn outline text-danger`,onClick:et},[c(e(D),{size:13}),n[15]||=y(` Purge All `,-1)])]),n[18]||=v(`p`,{class:`gallery-desc`},`These crops were generated previously but are no longer attached to any nodes. You can safely delete them to save storage space.`,-1),v(`div`,Ve,[(s(!0),x(m,null,C($.value,t=>(s(),S(E,{key:t.id},{title:i(()=>[n[16]||=v(`span`,{class:`node-title`},`Orphaned Crop`,-1),c(k,{variant:`type`},{default:i(()=>[y(b(Z(t.sizeBytes)),1)]),_:2},1024)]),meta:i(()=>[v(`div`,He,[v(`span`,Ue,`Generated: `+b(new Date(t.createdAt).toLocaleDateString()),1),X.value?(s(),x(`div`,We,[v(`div`,Ge,[c(O,{url:t.url,alt:t.filename,width:200,quality:75,class:`crop-img-fixed-height`},null,8,[`url`,`alt`]),v(`span`,Ke,b(rt(t.filename)),1)])])):f(``,!0)])]),actions:i(()=>[v(`button`,{class:`action-btn outline text-danger`,style:{border:`none`},onClick:e=>J(t.id)},[c(e(D),{size:13}),n[17]||=y(` Purge `,-1)],8,qe)]),_:2},1024))),128))])])):f(``,!0)])])):f(``,!0)])]))}}),[[`__scopeId`,`data-v-cd1f3a28`]]);export{B as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.canvas[data-v-cd1f3a28]{background:var(--cms-color-surface);font-family:var(--cms-font-sans);flex-direction:column;flex-grow:1;height:100%;display:flex;position:relative}.entity-header[data-v-cd1f3a28]{z-index:100;background:var(--cms-color-bg);border-bottom:1px solid var(--cms-color-border);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;container-type:inline-size}@container (width<=690px){.save-btn .btn-text[data-v-cd1f3a28],.slug-badge[data-v-cd1f3a28]{display:none}}.top-row[data-v-cd1f3a28]{justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.node-info[data-v-cd1f3a28]{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.dynamic-title-group[data-v-cd1f3a28]{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.inline-title-input[data-v-cd1f3a28]{color:var(--cms-color-text-main);border-radius:var(--cms-radius-sm);cursor:default;background:0 0;border:1px solid #0000;margin:0 0 0 -6px;padding:4px 6px;font-size:17px;font-weight:700;display:inline-block}.meta-row[data-v-cd1f3a28]{align-items:center;gap:6px;display:flex}.slug-badge[data-v-cd1f3a28]{font-size:13px;font-family:var(--cms-font-mono);color:var(--cms-color-text-muted)}.actions-group[data-v-cd1f3a28]{align-items:center;gap:10px;display:flex}[data-v-cd1f3a28] .icon-only-btn{padding:0 8px!important}.context-wrapper[data-v-cd1f3a28]{display:flex;position:relative}.save-btn[data-v-cd1f3a28]{align-items:center;gap:6px;display:flex}.save-icon[data-v-cd1f3a28]{margin-top:-1px}.transparent-btn[data-v-cd1f3a28]{background:0 0;border-color:#0000}.transparent-btn[data-v-cd1f3a28]:hover{background:var(--cms-color-surface-hover);border-color:#0000!important}.editor-body[data-v-cd1f3a28]{flex:1;display:flex;position:relative;overflow:hidden;container:asseteditor/inline-size}.loading-state[data-v-cd1f3a28]{color:var(--cms-color-text-muted);flex:1;justify-content:center;align-items:center;display:flex}.asset-content-scroll[data-v-cd1f3a28]{background:var(--cms-color-surface);grid-template:"preview metadata""usage metadata"1fr/1fr 320px;width:100%;height:100%;display:grid;overflow-y:auto}.main-preview-section[data-v-cd1f3a28]{padding:var(--cms-page-padding,24px) var(--cms-page-padding,24px) 0 var(--cms-page-padding,24px);background:var(--cms-color-surface);grid-area:preview}.preview-container[data-v-cd1f3a28]{border-radius:var(--cms-radius-lg);border:1px solid var(--cms-color-border);background:var(--cms-color-bg);justify-content:center;align-items:center;width:100%;min-height:100px;padding:24px;display:flex}.main-preview-wrapper[data-v-cd1f3a28]{width:auto;max-width:100%;height:auto;max-height:480px}.main-preview-wrapper[data-v-cd1f3a28] .preview-img{object-fit:contain!important;width:auto!important;height:auto!important;max-height:480px!important}.doc-preview[data-v-cd1f3a28]{color:var(--cms-color-text-muted);flex-direction:column;align-items:center;gap:12px;display:flex}.preview-footer[data-v-cd1f3a28]{color:var(--cms-color-text-muted);justify-content:space-between;margin-top:12px;margin-bottom:24px;font-size:12px;display:flex}.ext-link[data-v-cd1f3a28]{color:var(--cms-color-primary);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.ext-link[data-v-cd1f3a28]:hover{text-decoration:underline}.data-column[data-v-cd1f3a28]{background:var(--cms-color-surface);border-left:1px solid var(--cms-color-border);flex-direction:column;grid-area:metadata;display:flex}.data-header[data-v-cd1f3a28]{border-bottom:1px solid var(--cms-color-border);background:var(--cms-color-surface);flex-shrink:0;align-items:center;padding:16px 24px;display:flex}.data-header h3[data-v-cd1f3a28]{color:var(--cms-color-text-main);align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.data-content[data-v-cd1f3a28]{flex-direction:column;gap:20px;padding:24px;display:flex}.form-group[data-v-cd1f3a28]{flex-direction:column;gap:6px;display:flex}.form-group label[data-v-cd1f3a28]{color:var(--cms-color-text-main);font-size:12px;font-weight:600}.cms-input[data-v-cd1f3a28]{border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-sm);background:var(--cms-color-bg);width:100%;color:var(--cms-color-text-main);outline:none;padding:10px;font-size:13px}.cms-input[data-v-cd1f3a28]:focus{border-color:var(--cms-color-primary)}.cms-textarea[data-v-cd1f3a28]{resize:vertical;min-height:80px}.help-text[data-v-cd1f3a28]{color:var(--cms-color-text-faint);font-size:11px}.usage-and-crops-section[data-v-cd1f3a28]{padding:0 var(--cms-page-padding,24px) 40px var(--cms-page-padding,24px);background:var(--cms-color-surface);grid-area:usage}.usage-section-container[data-v-cd1f3a28]{flex-direction:column;width:100%;max-width:900px;margin:0 auto;display:flex}.gallery-header-row[data-v-cd1f3a28]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.gallery-header-row h3[data-v-cd1f3a28]{color:var(--cms-color-text-main);align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.gallery-desc[data-v-cd1f3a28]{color:var(--cms-color-text-muted);margin:0 0 16px;font-size:13px}.action-btn.outline[data-v-cd1f3a28]{border:1px solid var(--cms-color-border);background:var(--cms-color-surface);border-radius:var(--cms-radius-sm);cursor:pointer;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.action-btn.outline[data-v-cd1f3a28]:hover{background:var(--cms-color-surface-hover)}.list-container[data-v-cd1f3a28]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-lg);overflow:hidden}.meta-stack[data-v-cd1f3a28]{flex-direction:column;gap:8px;width:100%;display:flex}.crop-showcase[data-v-cd1f3a28]{flex-wrap:wrap;align-items:flex-end;gap:16px;width:100%;display:flex}.crop-item[data-v-cd1f3a28]{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.crop-img-fixed-height[data-v-cd1f3a28]{border-radius:var(--cms-radius-xs);border:1px solid var(--cms-color-border-dark);background:var(--cms-color-surface-hover);justify-content:center;align-items:center;width:auto;height:56px;display:flex;overflow:hidden}.crop-img-fixed-height[data-v-cd1f3a28] .preview-img{object-fit:contain;display:block;width:auto!important;height:100%!important}.crop-name[data-v-cd1f3a28]{font-size:10px;font-weight:600;font-family:var(--cms-font-mono);color:var(--cms-color-text-subtle);text-transform:uppercase;letter-spacing:.04em}.standalone-empty[data-v-cd1f3a28]{background:var(--cms-color-bg);border:1px dashed var(--cms-color-border-dark);border-radius:var(--cms-radius-md);margin-bottom:8px;padding:12px 16px}.usage-empty[data-v-cd1f3a28]{color:var(--cms-color-text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.status-dot[data-v-cd1f3a28]{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot.success[data-v-cd1f3a28]{background:var(--cms-color-success,#10b981)}.status-dot.warning[data-v-cd1f3a28]{background:var(--cms-color-warning,#f59e0b)}.node-title[data-v-cd1f3a28]{color:var(--cms-color-text-main);font-size:13.5px;font-weight:600}.node-field[data-v-cd1f3a28]{color:var(--cms-color-text-muted);font-size:11.5px}.text-danger[data-v-cd1f3a28]{color:var(--cms-color-danger)!important}@container (width<=820px){.asset-content-scroll[data-v-cd1f3a28]{grid-template:"preview""metadata""usage"/1fr}.data-column[data-v-cd1f3a28]{border-left:none;border-top:1px solid var(--cms-color-border);border-bottom:1px solid var(--cms-color-border);margin-bottom:24px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.help-canvas[data-v-c739c397]{padding:var(--cms-page-padding,32px);background:var(--cms-color-bg);font-family:var(--cms-font-sans);flex-grow:1;justify-content:center;align-items:flex-start;display:flex;overflow-y:auto}.help-container[data-v-c739c397]{width:100%;margin:0 auto}.help-header[data-v-c739c397]{margin-bottom:32px}.help-header h1[data-v-c739c397]{color:var(--cms-color-text-main);letter-spacing:-.02em;margin:0 0 6px;font-size:26px;font-weight:700}.help-header p[data-v-c739c397]{color:var(--cms-color-text-muted);max-width:580px;margin:0;font-size:14px;line-height:1.5}.steps-grid[data-v-c739c397]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-bottom:32px;display:grid}.step-card[data-v-c739c397]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-md);transition:all var(--cms-transition-normal);flex-direction:column;padding:20px;display:flex}.step-card[data-v-c739c397]:hover{border-color:var(--cms-color-border-dark)}.card-header[data-v-c739c397]{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.step-badge[data-v-c739c397]{font-family:var(--cms-font-mono);text-transform:uppercase;color:var(--cms-color-text-faint);background:var(--cms-color-surface-hover);border-radius:var(--cms-radius-sm);border:1px solid var(--cms-color-border);padding:3px 7px;font-size:10px;font-weight:700}.card-icon[data-v-c739c397]{border-radius:var(--cms-radius-sm);justify-content:center;align-items:center;width:38px;height:38px;display:flex}.channel-icon[data-v-c739c397]{background:var(--cms-color-primary-light);color:var(--cms-color-primary);border-color:var(--cms-color-primary-border)}.tree-icon[data-v-c739c397]{color:#10b981;background:#d1fae5;border-color:#a7f3d0}.vault-icon[data-v-c739c397]{color:#d97706;background:#fef3c7;border-color:#fde68a}.card-content[data-v-c739c397]{flex-direction:column;flex-grow:1;display:flex}.card-content h3[data-v-c739c397]{color:var(--cms-color-text-main);margin:0 0 6px;font-size:15px;font-weight:600}.card-content p[data-v-c739c397]{color:var(--cms-color-text-muted);margin:0 0 16px;font-size:12.5px;line-height:1.45}.card-action-btn[data-v-c739c397]{border-radius:var(--cms-radius-sm);border:1px solid var(--cms-color-border-dark);background:var(--cms-color-surface);width:100%;color:var(--cms-color-text-main);cursor:pointer;transition:all var(--cms-transition-fast);justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:12.5px;font-weight:600;display:inline-flex}.card-action-btn[data-v-c739c397]:hover{background:var(--cms-color-surface-hover);border-color:var(--cms-color-text-main)}.architecture-guide[data-v-c739c397]{background:var(--cms-color-surface-hover);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-md);padding:24px}.guide-header[data-v-c739c397]{align-items:center;gap:8px;margin-bottom:16px;display:flex}.guide-header h4[data-v-c739c397]{color:var(--cms-color-text-main);margin:0;font-size:15px;font-weight:600}.guide-columns[data-v-c739c397]{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.guide-col[data-v-c739c397]{flex:1;min-width:180px}.guide-col strong[data-v-c739c397]{color:var(--cms-color-text-main);margin-bottom:4px;font-size:12.5px;font-weight:600;display:block}.guide-col p[data-v-c739c397]{color:var(--cms-color-text-muted);margin:0;font-size:12px;line-height:1.45}.guide-col-arrow[data-v-c739c397]{color:var(--cms-color-text-faint);align-items:center;padding-top:8px;display:flex}@media (width<=900px){.guide-col-arrow[data-v-c739c397]{display:none}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,D as n,J as r,L as i,T as a,t as o,v as s,w as c,x as l}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as u}from"./layers-D0DLWjff.js";import{C as d,G as f,M as p,U as m,X as h,Y as g,w as _,y as v}from"./index-BpOAL4tE.js";t(),r();var y={class:`help-canvas`},b={class:`help-container`},x={class:`steps-grid`},S={class:`step-card`},C={class:`card-header`},w={class:`card-icon channel-icon`},T={class:`step-card`},E={class:`card-header`},D={class:`card-icon tree-icon`},O={class:`step-card`},k={class:`card-header`},A={class:`card-icon vault-icon`},j={class:`architecture-guide`},M={class:`guide-header`},N={class:`guide-columns`},P={class:`guide-col-arrow`},F={class:`guide-col-arrow`},I={class:`guide-col-arrow`},L=o(n({__name:`CmsHelp`,setup(t){let{handleAddNewChannel:n}=f(),{handleAddNewTree:r}=h(),{handleAddNewNode:o}=g();return(t,f)=>(i(),l(`main`,y,[s(`div`,b,[f[17]||=s(`header`,{class:`help-header`},[s(`h1`,null,`KAMA`),s(`p`,null,`Build modular content in the Vault, organize it into Navigation Trees, and expose it to your channels via API.`)],-1),s(`div`,x,[s(`div`,S,[s(`div`,C,[s(`div`,w,[a(e(d),{size:20})]),f[3]||=s(`div`,{class:`step-badge`},`Step 1`,-1)]),f[5]||=s(`div`,{class:`card-content`},[s(`h3`,null,`Channels`),s(`p`,null,`Delivery targets that consume your headless API.`)],-1),s(`button`,{class:`card-action-btn`,onClick:f[0]||=(...t)=>e(n)&&e(n)(...t)},[a(e(v),{size:16}),f[4]||=c(` Create Channel `,-1)])]),s(`div`,T,[s(`div`,E,[s(`div`,D,[a(e(_),{size:20})]),f[6]||=s(`div`,{class:`step-badge`},`Step 2`,-1)]),f[8]||=s(`div`,{class:`card-content`},[s(`h3`,null,`Trees`),s(`p`,null,`Decoupled structural hierarchies and navigation menus.`)],-1),s(`button`,{class:`card-action-btn`,onClick:f[1]||=(...t)=>e(r)&&e(r)(...t)},[a(e(v),{size:16}),f[7]||=c(` Create Tree `,-1)])]),s(`div`,O,[s(`div`,k,[s(`div`,A,[a(e(p),{size:20})]),f[9]||=s(`div`,{class:`step-badge`},`Step 3`,-1)]),f[11]||=s(`div`,{class:`card-content`},[s(`h3`,null,`Vault`),s(`p`,null,`Flat, headless content store for reusable content items.`)],-1),s(`button`,{class:`card-action-btn`,onClick:f[2]||=t=>e(o)()},[a(e(v),{size:16}),f[10]||=c(` Create Content `,-1)])])]),s(`section`,j,[s(`div`,M,[a(e(u),{size:18,class:`guide-icon`}),f[12]||=s(`h4`,null,`Architecture Flow`,-1)]),s(`div`,N,[f[13]||=s(`div`,{class:`guide-col`},[s(`strong`,null,`1. Content Vault`),s(`p`,null,`Raw content entities existing independently of routing.`)],-1),s(`div`,P,[a(e(m),{size:16})]),f[14]||=s(`div`,{class:`guide-col`},[s(`strong`,null,`2. Navigation Trees`),s(`p`,null,`Decoupled structures mapping content items to URL hierarchies.`)],-1),s(`div`,F,[a(e(m),{size:16})]),f[15]||=s(`div`,{class:`guide-col`},[s(`strong`,null,`3. Channels`),s(`p`,null,`Delivery targets binding trees and languages to specific contexts.`)],-1),s(`div`,I,[a(e(m),{size:16})]),f[16]||=s(`div`,{class:`guide-col`},[s(`strong`,null,`4. Headless API`),s(`p`,null,`Endpoints serving structured JSON to your frontends.`)],-1)])])])]))}}),[[`__scopeId`,`data-v-c739c397`]]);export{L as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{$ as e,A as t,D as n,F as r,G as i,J as a,L as o,T as s,Z as c,_ as l,a as u,b as d,h as f,m as p,st as m,t as h,v as g,w as _,wt as v,x as y,y as b,z as x}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as ee}from"./history-XvWNE5zO.js";import{C as te,I as ne,L as S,Y as re,a as C,g as w,i as T,nt as ie,r as E,rt as D,tt as O,w as ae,x as k}from"./index-BpOAL4tE.js";t(),a(),m(),u();var oe={class:`publisher-canvas full-width`},se={class:`publisher-container full-width`},ce={class:`publisher-header`},le={class:`header-actions`},ue={key:0,class:`empty-publisher-state`},de={key:1,class:`empty-publisher-state`},fe={key:2,class:`channel-groups-list`},pe={class:`group-header`},A={class:`group-title`},j=[`checked`,`indeterminate`,`onChange`],M={class:`count-badge`},N={class:`nodes-table`},P=[`checked`,`onChange`],F={class:`node-title`},I={key:3,class:`history-section`},L={class:`history-header`},R={class:`history-card`},z={class:`node-title`},B={class:`history-time`},V=h(n({__name:`CmsPublisher`,setup(t){let n=ie(),{loadNodeContent:a}=re(),u=c(!1),m=c(new Set),h=c(null),V=c(!1),H=c([]),U=c([]),W=c(new Set),me=async()=>{if(n.hasLoadedStats.value){H.value=n.vaultStats.value?.pendingNodes||[],U.value=n.vaultStats.value?.recentActivity||[];return}u.value=!0;try{let e=await fetch(`/api/cms/stats`);if(e.ok){let t=await e.json();n.vaultStats.value=t,n.hasLoadedStats.value=!0,H.value=t.pendingNodes||[],U.value=t.recentActivity||[]}}catch{}finally{u.value=!1}},G=l(()=>{let e=new Map;if(H.value.forEach(t=>{let r=String(n.activeNode.value?.id)===String(t.id),i=O(t),a=r&&n.hasUnpublishedChanges.value||i.hasUnpublishedChanges;e.set(String(t.id),{...t,evalState:{...i,hasUnpublishedChanges:a}})}),n.activeNode.value?.id){let t=String(n.activeNode.value.id),r=O(n.activeNode.value),i=n.hasUnpublishedChanges.value||r.hasUnpublishedChanges;(r.isDraft||r.isUnpublishedDraft||i)&&(e.has(t)||e.set(t,{...n.activeNode.value,evalState:{...r,hasUnpublishedChanges:i}}))}return Array.from(e.values())}),he=l(()=>{let e=new Map,t=`Unassigned / Vault Only`;return e.set(t,{channelName:t,nodes:[]}),G.value.forEach(n=>{let r=n.channelNames||[];r.length===0?e.get(t).nodes.push(n):r.forEach(t=>{e.has(t)||e.set(t,{channelName:t,nodes:[]}),e.get(t).nodes.push(n)})}),Array.from(e.values()).filter(e=>e.nodes.length>0)}),K=e=>W.value.has(e),ge=e=>{let t=new Set(W.value);t.has(e)?t.delete(e):t.add(e),W.value=t},q=e=>e.filter(e=>W.value.has(e.id)).length,J=e=>e.length>0&&e.every(e=>W.value.has(e.id)),_e=e=>q(e)>0&&q(e)<e.length,Y=e=>{let t=new Set(W.value),n=J(e);e.forEach(e=>{n?t.delete(e.id):t.add(e.id)}),W.value=t},X=l(()=>W.value.size),Z=e=>{a({id:e.id,title:e.title,slug:e.slug,nodeType:e.contentType||e.nodeType,channelId:e.channelId||``,language:e.language||`en`,children:[]})},Q=e=>{U.value=[{id:e.id,title:e.title||`Untitled Document`,slug:e.slug,contentType:e.contentType||e.nodeType||`page`,updatedAt:new Date().toISOString()},...U.value.filter(t=>String(t.id)!==String(e.id))].slice(0,10)},ve=async e=>{m.value.add(e);try{let t=G.value.find(t=>String(t.id)===String(e));if((await D.publishNode(e)).ok){n.updateNodeInState(e,{status:`published`,hasUnpublishedChanges:!1}),H.value=H.value.filter(t=>String(t.id)!==String(e)),String(n.activeNode.value?.id)===String(e)&&(n.activeNode.value.status=`published`,n.activeNode.value.hasUnpublishedChanges=!1);let r=new Set(W.value);r.delete(e),W.value=r,t&&Q(t),n.invalidateStats(),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`cms-node-updated`))}}finally{m.value.delete(e)}},$=async e=>{if(e.length===0)return;let t=e.map(e=>e.id);t.forEach(e=>m.value.add(e));try{let e=await D.publishNodesBatch(t);if(e.ok){let t=(await e.json()).publishedIds||[];for(let e of t)n.updateNodeInState(e,{status:`published`,hasUnpublishedChanges:!1}),String(n.activeNode.value?.id)===String(e)&&(n.activeNode.value.status=`published`,n.activeNode.value.hasUnpublishedChanges=!1);G.value.filter(e=>t.includes(e.id)).forEach(e=>Q(e)),H.value=H.value.filter(e=>!t.includes(e.id));let r=new Set(W.value);t.forEach(e=>r.delete(e)),W.value=r,n.invalidateStats(),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`cms-node-updated`))}}finally{t.forEach(e=>m.value.delete(e))}},ye=async(e,t)=>{h.value=e;let n=q(t)>0?t.filter(e=>W.value.has(e.id)):t;await $(n),h.value=null},be=async()=>{V.value=!0;let e=X.value>0?G.value.filter(e=>W.value.has(e.id)):G.value;await $(e),V.value=!1},xe=e=>{if(!e)return``;try{return new Date(e).toLocaleString([],{dateStyle:`medium`,timeStyle:`short`})}catch{return e}};return r(()=>me()),(t,n)=>(o(),y(`main`,oe,[g(`div`,se,[g(`header`,ce,[n[2]||=g(`div`,{class:`header-title-group`},[g(`h1`,null,`Publishing Center`),g(`p`,null,`Review and release pending drafts or bulk-publish updates across your distribution channels.`)],-1),g(`div`,le,[G.value.length>0?(o(),b(C,{key:0,variant:`primary`,class:`publish-all-btn`,disabled:V.value||m.value.size>0,onClick:be},{default:i(()=>[V.value?(o(),b(e(k),{key:0,size:16,class:`spin`})):(o(),b(e(w),{key:1,size:16})),g(`span`,null,v(X.value>0?`Publish Selected (${X.value})`:`Publish All
|
|
2
|
+
(${G.value.length})`),1)]),_:1},8,[`disabled`])):d(``,!0)])]),u.value&&G.value.length===0?(o(),y(`div`,ue,[s(e(k),{size:28,class:`spin empty-icon`}),n[3]||=g(`p`,null,`Gathering pending content updates...`,-1)])):G.value.length===0?(o(),y(`div`,de,[s(e(S),{size:36,class:`success-icon`}),n[4]||=g(`h3`,null,`All Content Published!`,-1),n[5]||=g(`p`,null,`No draft changes or pending revisions found. Your delivery channels are fully up to date.`,-1)])):(o(),y(`div`,fe,[(o(!0),y(f,null,x(he.value,t=>(o(),y(`section`,{key:t.channelName,class:`channel-group-card`},[g(`div`,pe,[g(`div`,A,[g(`label`,{class:`checkbox-container`,onClick:n[0]||=p(()=>{},[`stop`])},[g(`input`,{type:`checkbox`,checked:J(t.nodes),indeterminate:_e(t.nodes),onChange:e=>Y(t.nodes)},null,40,j),n[6]||=g(`span`,{class:`checkmark`},null,-1)]),s(e(te),{size:18,class:`channel-icon`}),g(`h2`,null,v(t.channelName),1),g(`span`,M,v(t.nodes.length)+` Pending`,1)]),s(C,{variant:`secondary`,size:`sm`,disabled:h.value===t.channelName||V.value,onClick:e=>ye(t.channelName,t.nodes)},{default:i(()=>[h.value===t.channelName?(o(),b(e(k),{key:0,size:14,class:`spin`})):(o(),b(e(w),{key:1,size:14})),g(`span`,null,v(q(t.nodes)>0?`Publish Selected
|
|
3
|
+
(${q(t.nodes)})`:`Publish Channel Items`),1)]),_:2},1032,[`disabled`,`onClick`])]),g(`div`,N,[(o(!0),y(f,null,x(t.nodes,t=>(o(),b(T,{key:t.id,"is-selected":K(t.id),clickable:``,onClick:e=>Z(t)},{prefix:i(()=>[g(`label`,{class:`checkbox-container`,onClick:n[1]||=p(()=>{},[`stop`])},[g(`input`,{type:`checkbox`,checked:K(t.id),onChange:e=>ge(t.id)},null,40,P),n[7]||=g(`span`,{class:`checkmark`},null,-1)])]),title:i(()=>[g(`span`,F,v(t.title||`Untitled Draft`),1),s(E,{variant:`type`},{default:i(()=>[_(v(t.contentType||t.nodeType||`page`),1)]),_:2},1024)]),meta:i(()=>[s(E,{variant:`slug`},{default:i(()=>[_(`/`+v(t.slug),1)]),_:2},1024),(o(!0),y(f,null,x(t.treeNames,t=>(o(),b(E,{variant:`tree`,key:t},{default:i(()=>[s(e(ae),{size:11}),_(` `+v(t),1)]),_:2},1024))),128))]),actions:i(()=>[s(C,{variant:`secondary`,size:`sm`,class:`icon-only-btn`,title:`Publish Item`,disabled:m.value.has(t.id)||V.value,onClick:p(e=>ve(t.id),[`stop`])},{default:i(()=>[m.value.has(t.id)?(o(),b(e(k),{key:0,size:14,class:`spin`})):(o(),b(e(w),{key:1,size:14}))]),_:2},1032,[`disabled`,`onClick`])]),_:2},1032,[`is-selected`,`onClick`]))),128))])]))),128))])),U.value.length>0?(o(),y(`section`,I,[g(`div`,L,[s(e(ee),{size:18,class:`history-icon`}),n[8]||=g(`h2`,null,`Recently Published`,-1)]),g(`div`,R,[(o(!0),y(f,null,x(U.value,t=>(o(),b(T,{key:t.id,clickable:``,onClick:e=>Z(t)},{prefix:i(()=>[s(e(S),{size:16,class:`published-check`})]),title:i(()=>[g(`span`,z,v(t.title||`Untitled Document`),1),s(E,{variant:`type`},{default:i(()=>[_(v(t.contentType||t.nodeType||`page`),1)]),_:2},1024)]),meta:i(()=>[s(E,{variant:`slug`},{default:i(()=>[_(`/`+v(t.slug),1)]),_:2},1024)]),actions:i(()=>[g(`div`,B,[s(e(ne),{size:12}),g(`span`,null,v(xe(t.updatedAt)),1)])]),_:2},1032,[`onClick`]))),128))])])):d(``,!0)])]))}}),[[`__scopeId`,`data-v-e0e64ba6`]]);export{V as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.publisher-canvas.full-width[data-v-e0e64ba6]{padding:var(--cms-page-padding,32px);background:var(--cms-color-bg);font-family:var(--cms-font-sans);box-sizing:border-box;flex-grow:1;justify-content:flex-start;align-items:flex-start;width:100%;display:flex;overflow-y:auto}.publisher-container.full-width[data-v-e0e64ba6]{width:100%;max-width:100%;margin:0}.publisher-header[data-v-e0e64ba6]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.header-title-group h1[data-v-e0e64ba6]{color:var(--cms-color-text-main);letter-spacing:-.02em;margin:0 0 4px;font-size:24px;font-weight:700}.header-title-group p[data-v-e0e64ba6]{color:var(--cms-color-text-muted);margin:0;font-size:13.5px}.spin[data-v-e0e64ba6]{animation:1s linear infinite spin-e0e64ba6}@keyframes spin-e0e64ba6{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-publisher-state[data-v-e0e64ba6]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-md);text-align:center;flex-direction:column;justify-content:center;align-items:center;margin-bottom:32px;padding:64px 20px;display:flex}.success-icon[data-v-e0e64ba6]{color:var(--cms-color-success,#10b981);margin-bottom:12px}.empty-publisher-state h3[data-v-e0e64ba6]{color:var(--cms-color-text-main);margin:0 0 6px;font-size:18px;font-weight:600}.empty-publisher-state p[data-v-e0e64ba6]{color:var(--cms-color-text-muted);max-width:420px;margin:0;font-size:13.5px}.empty-icon[data-v-e0e64ba6]{opacity:.2;margin-bottom:16px}.channel-groups-list[data-v-e0e64ba6]{flex-direction:column;gap:24px;width:100%;margin-bottom:36px;display:flex}.channel-group-card[data-v-e0e64ba6]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-md);width:100%;overflow:hidden}.group-header[data-v-e0e64ba6]{background:var(--cms-color-surface-hover);border-bottom:1px solid var(--cms-color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.group-title[data-v-e0e64ba6]{align-items:center;gap:12px;display:flex}.channel-icon[data-v-e0e64ba6]{color:var(--cms-color-primary)}.group-title h2[data-v-e0e64ba6]{color:var(--cms-color-text-main);margin:0;font-size:15px;font-weight:600}.count-badge[data-v-e0e64ba6]{border-radius:var(--cms-radius-full);background:var(--cms-color-bg);border:1px solid var(--cms-color-border);color:var(--cms-color-text-muted);padding:2px 8px;font-size:11px;font-weight:600}.nodes-table[data-v-e0e64ba6]{flex-direction:column;width:100%;display:flex}.node-title[data-v-e0e64ba6]{color:var(--cms-color-text-main);font-size:13.5px;font-weight:600}.checkbox-container[data-v-e0e64ba6]{cursor:pointer;width:16px;height:16px;display:block;position:relative}.checkbox-container input[data-v-e0e64ba6]{opacity:0;cursor:pointer;width:0;height:0;position:absolute}.checkmark[data-v-e0e64ba6]{background-color:var(--cms-color-bg);border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-xs);width:16px;height:16px;transition:all var(--cms-transition-fast);position:absolute;top:0;left:0}.checkbox-container:hover input~.checkmark[data-v-e0e64ba6]{border-color:var(--cms-color-primary)}.checkbox-container input:checked~.checkmark[data-v-e0e64ba6]{background-color:var(--cms-color-primary);border-color:var(--cms-color-primary)}.checkmark[data-v-e0e64ba6]:after{content:"";display:none;position:absolute}.checkbox-container input:checked~.checkmark[data-v-e0e64ba6]:after{display:block}.checkbox-container .checkmark[data-v-e0e64ba6]:after{border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;top:2px;left:5px;transform:rotate(45deg)}.checkbox-container input:indeterminate~.checkmark[data-v-e0e64ba6]{background-color:var(--cms-color-primary);border-color:var(--cms-color-primary)}.checkbox-container input:indeterminate~.checkmark[data-v-e0e64ba6]:after{border:0 solid #fff;border-bottom-width:2px;width:8px;height:2px;display:block;top:6px;left:3px;transform:none}.history-section[data-v-e0e64ba6]{width:100%;margin-top:12px}.history-header[data-v-e0e64ba6]{align-items:center;gap:8px;margin-bottom:12px;display:flex}.history-header h2[data-v-e0e64ba6]{color:var(--cms-color-text-main);margin:0;font-size:15px;font-weight:600}.history-icon[data-v-e0e64ba6]{color:var(--cms-color-text-muted)}.history-card[data-v-e0e64ba6]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-md);width:100%;overflow:hidden}.published-check[data-v-e0e64ba6]{color:var(--cms-color-success,#10b981);flex-shrink:0}.history-time[data-v-e0e64ba6]{color:var(--cms-color-text-muted);font-size:11.5px;font-family:var(--cms-font-mono);align-items:center;gap:6px;display:flex}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.user-center-canvas[data-v-8dc2f1d9]{padding:var(--cms-page-padding,32px);background:var(--cms-color-bg);font-family:var(--cms-font-sans);flex-grow:1;justify-content:center;align-items:flex-start;display:flex;overflow-y:auto}.user-center-container[data-v-8dc2f1d9]{width:100%;margin:0 auto}.view-header[data-v-8dc2f1d9]{margin-bottom:32px}.view-header h1[data-v-8dc2f1d9]{color:var(--cms-color-text-main);letter-spacing:-.02em;margin:0 0 6px;font-size:26px;font-weight:700}.view-header p[data-v-8dc2f1d9]{color:var(--cms-color-text-muted);max-width:580px;margin:0;font-size:14px;line-height:1.5}.settings-grid[data-v-8dc2f1d9]{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:24px;display:grid}.settings-column[data-v-8dc2f1d9]{flex-direction:column;gap:24px;display:flex}.settings-card[data-v-8dc2f1d9]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-md);flex-direction:column;display:flex;overflow:hidden}.card-header[data-v-8dc2f1d9]{border-bottom:1px solid var(--cms-color-border);background:var(--cms-color-surface-hover);align-items:center;padding:16px 20px;display:flex}.header-title[data-v-8dc2f1d9]{align-items:center;gap:10px;display:flex}.section-icon[data-v-8dc2f1d9]{color:var(--cms-color-text-muted)}.header-title h2[data-v-8dc2f1d9]{color:var(--cms-color-text-main);margin:0;font-size:15px;font-weight:600}.card-body[data-v-8dc2f1d9]{flex-direction:column;padding:20px;display:flex}.card-body.p-0[data-v-8dc2f1d9]{padding:0}.form-row[data-v-8dc2f1d9]{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.half-width[data-v-8dc2f1d9]{flex:1;min-width:200px}.form-group[data-v-8dc2f1d9]{width:100%;margin-bottom:16px}.label-row[data-v-8dc2f1d9]{margin-bottom:6px}.label-row label[data-v-8dc2f1d9]{text-transform:uppercase;letter-spacing:.06em;color:var(--cms-color-text-muted);font-size:11px;font-weight:700}input[type=text][data-v-8dc2f1d9],input[type=email][data-v-8dc2f1d9],.cms-select[data-v-8dc2f1d9]{border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);width:100%;color:var(--cms-color-text-main);background:var(--cms-color-surface);padding:8.5px 12px;font-size:13.5px}.disabled-input[data-v-8dc2f1d9]{cursor:not-allowed;background:var(--cms-color-surface-hover)!important;color:var(--cms-color-text-muted)!important}.full-width-btn[data-v-8dc2f1d9]{justify-content:center;width:100%}.setting-row[data-v-8dc2f1d9]{border-bottom:1px solid var(--cms-color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.setting-row[data-v-8dc2f1d9]:last-child{border-bottom:none;padding-bottom:0}.setting-row[data-v-8dc2f1d9]:first-child{padding-top:0}.setting-info[data-v-8dc2f1d9]{flex:1;align-items:flex-start;gap:12px;display:flex}.setting-info strong[data-v-8dc2f1d9]{color:var(--cms-color-text-main);margin-bottom:2px;font-size:13.5px;display:block}.setting-info p[data-v-8dc2f1d9]{color:var(--cms-color-text-muted);margin:0;font-size:12px}.security-block[data-v-8dc2f1d9]{border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:16px;display:flex}.security-block[data-v-8dc2f1d9]:last-child{margin-bottom:0}.block-info[data-v-8dc2f1d9]{align-items:flex-start;gap:12px;display:flex}.block-info strong[data-v-8dc2f1d9]{color:var(--cms-color-text-main);margin-bottom:2px;font-size:13.5px;display:block}.block-info p[data-v-8dc2f1d9]{color:var(--cms-color-text-muted);margin:0;font-size:12px}.session-icon-box[data-v-8dc2f1d9]{border-radius:var(--cms-radius-xs);background:var(--cms-color-surface-hover);width:32px;height:32px;color:var(--cms-color-text-muted);justify-content:center;align-items:center;display:flex}.current-device[data-v-8dc2f1d9]{background:var(--cms-color-success-light,#dcfce7);color:var(--cms-color-success,#10b981)}.active-badge[data-v-8dc2f1d9]{text-transform:uppercase;color:var(--cms-color-success,#10b981);background:var(--cms-color-success-light,#dcfce7);border-radius:var(--cms-radius-xs);padding:3px 6px;font-size:10px;font-weight:700}.logout-btn[data-v-8dc2f1d9]{color:var(--cms-color-text-muted);cursor:pointer;border-radius:var(--cms-radius-xs);background:0 0;border:none;padding:6px}.logout-btn[data-v-8dc2f1d9]:hover{background:var(--cms-color-danger-light,#ffe4e6);color:var(--cms-color-danger,#e11d48)}.toggle-switch[data-v-8dc2f1d9]{width:36px;height:20px;display:inline-block;position:relative}.toggle-switch input[data-v-8dc2f1d9]{opacity:0;width:0;height:0}.slider[data-v-8dc2f1d9]{cursor:pointer;background-color:var(--cms-color-border-dark);border-radius:20px;transition:all .2s;position:absolute;inset:0}.slider[data-v-8dc2f1d9]:before{content:"";background-color:#fff;border-radius:50%;width:14px;height:14px;transition:all .2s;position:absolute;bottom:3px;left:3px}input:checked+.slider[data-v-8dc2f1d9]{background-color:var(--cms-color-primary)}input:checked+.slider[data-v-8dc2f1d9]:before{transform:translate(16px)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,D as n,G as r,J as i,K as a,L as o,T as s,Z as c,a as l,c as u,d,n as f,st as p,t as m,u as h,v as g,w as _,wt as v,x as y}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as ee}from"./save-C8e-QRkP.js";import{t as b}from"./smartphone-Wy6xQi_i.js";import{C as x,a as S,f as C,i as w}from"./index-BpOAL4tE.js";var T=f(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),E=f(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),D=f(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),O=f(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),k=f(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]);t(),i(),l(),p();var A={class:`user-center-canvas`},j={class:`user-center-container`},M={class:`settings-grid`},N={class:`settings-column`},P={class:`settings-card`},F={class:`card-header`},I={class:`header-title`},L={class:`card-body dynamic-form`},R={class:`form-row`},z={class:`form-group half-width`},B={class:`form-group half-width`},V={class:`form-group`},H={class:`form-group`},te={class:`form-actions`},U={class:`settings-card`},W={class:`card-header`},G={class:`header-title`},K={class:`card-body`},q={class:`setting-row`},J={class:`setting-info`},Y={class:`setting-row`},X={class:`setting-info`},Z={class:`setting-row toggle-row`},Q={class:`setting-info`},ne={class:`toggle-switch`},re={class:`settings-column`},ie={class:`settings-card`},ae={class:`card-header`},oe={class:`header-title`},se={class:`card-body`},ce={class:`security-block`},le={class:`block-info`},ue={class:`security-block`},de={class:`block-info`},fe={class:`settings-card`},pe={class:`card-header`},$={class:`header-title`},me={class:`card-body p-0`,style:{padding:`0`}},he={class:`session-icon-box current-device`},ge={class:`session-icon-box`},_e={class:`logout-btn`,title:`Revoke session`},ve={class:`form-actions`,style:{padding:`16px`}},ye=m(n({__name:`CmsUserCenter`,setup(t){let n=c({firstName:`Admin`,lastName:`User`,email:`admin@kama-cms.com`,role:`Administrator`}),i=c({theme:`system`,language:`en`,emailNotifications:!0}),l=c(!1),f=()=>{l.value=!0,setTimeout(()=>{l.value=!1},600)};return(t,c)=>(o(),y(`main`,A,[g(`div`,j,[c[31]||=g(`header`,{class:`view-header`},[g(`h1`,null,`User Center`),g(`p`,null,`Manage your personal profile, security settings, and global preferences.`)],-1),g(`div`,M,[g(`div`,N,[g(`section`,P,[g(`header`,F,[g(`div`,I,[s(e(C),{size:18,class:`section-icon`}),c[7]||=g(`h2`,null,`Profile Information`,-1)])]),g(`div`,L,[g(`div`,R,[g(`div`,z,[c[8]||=g(`div`,{class:`label-row`},[g(`label`,null,`First Name`)],-1),a(g(`input`,{type:`text`,"onUpdate:modelValue":c[0]||=e=>n.value.firstName=e},null,512),[[d,n.value.firstName]])]),g(`div`,B,[c[9]||=g(`div`,{class:`label-row`},[g(`label`,null,`Last Name`)],-1),a(g(`input`,{type:`text`,"onUpdate:modelValue":c[1]||=e=>n.value.lastName=e},null,512),[[d,n.value.lastName]])])]),g(`div`,V,[c[10]||=g(`div`,{class:`label-row`},[g(`label`,null,`Email Address`)],-1),a(g(`input`,{type:`email`,"onUpdate:modelValue":c[2]||=e=>n.value.email=e},null,512),[[d,n.value.email]])]),g(`div`,H,[c[11]||=g(`div`,{class:`label-row`},[g(`label`,null,`Role / Access Level`)],-1),a(g(`input`,{type:`text`,"onUpdate:modelValue":c[3]||=e=>n.value.role=e,disabled:``,class:`disabled-input`},null,512),[[d,n.value.role]])]),g(`div`,te,[s(S,{variant:`primary`,onClick:f,disabled:l.value},{default:r(()=>[s(e(ee),{size:14}),g(`span`,null,v(l.value?`Saving...`:`Save Profile`),1)]),_:1},8,[`disabled`])])])]),g(`section`,U,[g(`header`,W,[g(`div`,G,[s(e(T),{size:18,class:`section-icon`}),c[12]||=g(`h2`,null,`Preferences`,-1)])]),g(`div`,K,[g(`div`,q,[g(`div`,J,[s(e(O),{size:16,class:`setting-icon`}),c[13]||=g(`div`,null,[g(`strong`,null,`Interface Theme`),g(`p`,null,`Choose your preferred color mode.`)],-1)]),a(g(`select`,{class:`cms-select`,"onUpdate:modelValue":c[4]||=e=>i.value.theme=e},[...c[14]||=[g(`option`,{value:`light`},`Light`,-1),g(`option`,{value:`dark`},`Dark`,-1),g(`option`,{value:`system`},`System Default`,-1)]],512),[[h,i.value.theme]])]),g(`div`,Y,[g(`div`,X,[s(e(x),{size:16,class:`setting-icon`}),c[15]||=g(`div`,null,[g(`strong`,null,`Language`),g(`p`,null,`CMS interface language.`)],-1)]),a(g(`select`,{class:`cms-select`,"onUpdate:modelValue":c[5]||=e=>i.value.language=e},[...c[16]||=[g(`option`,{value:`en`},`English (US)`,-1),g(`option`,{value:`de`},`German`,-1),g(`option`,{value:`fr`},`French`,-1)]],512),[[h,i.value.language]])]),g(`div`,Z,[g(`div`,Q,[s(e(T),{size:16,class:`setting-icon`}),c[17]||=g(`div`,null,[g(`strong`,null,`Email Notifications`),g(`p`,null,`Receive alerts for workflow changes.`)],-1)]),g(`label`,ne,[a(g(`input`,{type:`checkbox`,"onUpdate:modelValue":c[6]||=e=>i.value.emailNotifications=e},null,512),[[u,i.value.emailNotifications]]),c[18]||=g(`span`,{class:`slider`},null,-1)])])])])]),g(`div`,re,[g(`section`,ie,[g(`header`,ae,[g(`div`,oe,[s(e(k),{size:18,class:`section-icon`}),c[19]||=g(`h2`,null,`Security`,-1)])]),g(`div`,se,[g(`div`,ce,[g(`div`,le,[s(e(E),{size:16}),c[20]||=g(`div`,null,[g(`strong`,null,`Password`),g(`p`,null,`Last changed 3 months ago.`)],-1)]),s(S,{variant:`secondary`,size:`sm`},{default:r(()=>[...c[21]||=[_(`Update`,-1)]]),_:1})]),g(`div`,ue,[g(`div`,de,[s(e(k),{size:16}),c[22]||=g(`div`,null,[g(`strong`,null,`Two-Factor Authentication`),g(`p`,null,`Add an extra layer of security.`)],-1)]),s(S,{variant:`secondary`,size:`sm`},{default:r(()=>[...c[23]||=[_(`Enable 2FA`,-1)]]),_:1})])])]),g(`section`,fe,[g(`header`,pe,[g(`div`,$,[s(e(b),{size:18,class:`section-icon`}),c[24]||=g(`h2`,null,`Active Sessions`,-1)])]),g(`div`,me,[s(w,{"is-selected":!0,style:{"border-radius":`0`}},{prefix:r(()=>[g(`div`,he,[s(e(x),{size:16})])]),title:r(()=>[...c[25]||=[g(`span`,{style:{"font-weight":`600`}},`Mac OS • Chrome`,-1)]]),meta:r(()=>[...c[26]||=[g(`span`,{style:{"font-size":`11.5px`,color:`var(--cms-color-text-muted)`}},`Current session • IP: 192.168.1.1`,-1)]]),actions:r(()=>[...c[27]||=[g(`span`,{class:`active-badge`},`Active Now`,-1)]]),_:1}),s(w,null,{prefix:r(()=>[g(`div`,ge,[s(e(b),{size:16})])]),title:r(()=>[...c[28]||=[g(`span`,{style:{"font-weight":`600`}},`iOS • Safari`,-1)]]),meta:r(()=>[...c[29]||=[g(`span`,{style:{"font-size":`11.5px`,color:`var(--cms-color-text-muted)`}},`Last seen 2 hours ago • IP: 10.0.0.45`,-1)]]),actions:r(()=>[g(`button`,_e,[s(e(D),{size:14})])]),_:1}),g(`div`,ve,[s(S,{variant:`danger-outline`,class:`full-width-btn`},{default:r(()=>[...c[30]||=[_(`Log out of all other devices `,-1)]]),_:1})])])])])])])]))}}),[[`__scopeId`,`data-v-8dc2f1d9`]]);export{ye as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.split-preview-pane[data-v-f9dd6bd0]{background:var(--cms-color-surface-hover,#f8fafc);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.preview-toolbar[data-v-f9dd6bd0]{background:var(--cms-color-bg);border-bottom:1px solid var(--cms-color-border);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:6px 12px;padding:10px 10px 12px 16px;display:flex;container-type:inline-size}.segmented-control[data-v-f9dd6bd0]{order:1;align-items:center;gap:10px;display:inline-flex}.device-controls-group[data-v-f9dd6bd0]{flex-shrink:0;order:2;align-items:center;gap:6px;display:flex}.toolbar-right[data-v-f9dd6bd0]{order:3;align-items:center;gap:8px;display:flex}@container (width<=720px){.segmented-control[data-v-f9dd6bd0]{order:1}.toolbar-right[data-v-f9dd6bd0]{order:2}.device-controls-group[data-v-f9dd6bd0]{flex-basis:100%;order:3;justify-content:space-between;align-items:center;width:100%;margin-top:4px;display:flex}.device-menu-wrapper[data-v-f9dd6bd0]{margin:0 auto}}.segmented-btn.text-btn[data-v-f9dd6bd0]{width:auto;font-family:var(--cms-font-sans);color:var(--cms-color-text-muted);cursor:pointer;transition:all var(--cms-transition-fast);background:0 0;border:none;padding:0;font-size:11.5px;font-weight:550}.segmented-btn.text-btn[data-v-f9dd6bd0]:hover:not(.active){color:var(--cms-color-text-main)}.segmented-btn.text-btn.active[data-v-f9dd6bd0]{color:var(--cms-color-primary);font-weight:700}.zoom-btn[data-v-f9dd6bd0],.orientation-btn[data-v-f9dd6bd0]{flex-shrink:0}.device-menu-wrapper[data-v-f9dd6bd0]{box-sizing:border-box;display:inline-flex;position:relative}.device-trigger-btn[data-v-f9dd6bd0]{border-radius:var(--cms-radius-sm);width:100%;height:28px;font-family:var(--cms-font-sans);color:var(--cms-color-text-main);cursor:pointer;transition:all var(--cms-transition-fast);box-sizing:border-box;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;gap:6px;padding:0 8px;font-size:11.5px;font-weight:550;display:flex}.device-trigger-btn[data-v-f9dd6bd0]:hover{background:var(--cms-color-surface);border-color:var(--cms-color-primary-light)}.trigger-label[data-v-f9dd6bd0]{white-space:nowrap;text-overflow:ellipsis;text-align:left;flex:1;overflow:hidden}.trigger-icon[data-v-f9dd6bd0],.chevron-icon[data-v-f9dd6bd0]{color:var(--cms-color-text-muted);flex-shrink:0}.icon-btn[data-v-f9dd6bd0]{width:28px;height:28px;color:var(--cms-color-text-muted);border-radius:var(--cms-radius-sm);cursor:pointer;transition:all var(--cms-transition-fast);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:flex}.icon-btn[data-v-f9dd6bd0]:hover{background:var(--cms-color-surface-hover);color:var(--cms-color-text-main)}.icon-btn.active[data-v-f9dd6bd0]{color:var(--cms-color-primary);box-shadow:none;background:0 0;border-color:#0000}.close-btn[data-v-f9dd6bd0]:hover{color:var(--cms-color-danger);background:var(--cms-color-danger-light)}.preview-stage[data-v-f9dd6bd0]{overscroll-behavior:contain;background:#cbd5e1;flex:1;display:grid;position:relative;overflow:auto}.preview-stage[data-v-f9dd6bd0]:not(.is-fixed-frame){background:#fff;padding:0}.preview-stage.is-fixed-frame[data-v-f9dd6bd0]{padding:24px}.device-frame-wrapper[data-v-f9dd6bd0]{flex-shrink:0;margin:auto;position:relative}.device-frame[data-v-f9dd6bd0]{border-radius:var(--cms-radius-md);background:#fff;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 20px 25px -5px #00000026,0 8px 10px -6px #0000001a}.preview-stage:not(.is-fixed-frame) .device-frame[data-v-f9dd6bd0]{box-shadow:none;border-radius:0;position:relative}.preview-iframe[data-v-f9dd6bd0]{background:#fff;border:none;width:100%;height:100%}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,D as n,F as r,G as i,H as a,J as o,L as s,N as c,P as ee,T as l,U as u,Z as d,_ as f,b as p,bt as m,h,n as g,st as _,t as v,v as y,w as b,wt as x,x as S,xt as C,y as w}from"./_plugin-vue_export-helper-CTn6xl4w.js";import{t as te}from"./history-XvWNE5zO.js";import{t as ne}from"./smartphone-Wy6xQi_i.js";import{$ as re,A as ie,B as ae,d as oe,l as se,nt as ce,u as T,v as le}from"./index-BpOAL4tE.js";import{n as ue}from"./NodeEditor-CZGnkwvf.js";var de=g(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),fe=g(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),pe=g(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),me=g(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]);t(),o(),_();var he={class:`split-preview-pane`},ge={class:`preview-toolbar`},_e={class:`segmented-control`},ve={class:`device-controls-group`},ye=[`title`],be={class:`trigger-label`},xe=[`title`],Se={class:`toolbar-right`},Ce=[`href`],we=[`href`],Te=[`src`,`title`],E=v(n({__name:`EditorSplitPreview`,props:{paneWidthPx:{}},emits:[`close`],setup(t,{emit:n}){let o=t,g=n,{activeNode:_,selectedChannelId:v,selectedLanguage:E,allChannels:D,activeSnapshotVersion:O,nodeSchemas:Ee}=ce(),k=d(null),A=d(null),j=T(`kama_preview_mode`,`draft`),M=T(`kama_preview_device`,`desktop`),N=T(`kama_preview_orientation`,`portrait`),P=T(`kama_preview_autofit`,!0),F=d({w:800,h:800}),I=d(Date.now()),L=d(``),R=async()=>{let e=_.value?.id;if(!e)return;let t=D.value.find(e=>String(e.id)===String(v.value)),n=!1;if(t)try{let r=t.channelRoot;!r&&t.dataJson&&(r=(typeof t.dataJson==`string`?JSON.parse(t.dataJson):t.dataJson)?.channelRoot),typeof r==`string`&&(r=JSON.parse(r));let i=r?.nodeId??r?.id;i&&String(i)===String(e)&&(n=!0)}catch{}if(n){L.value=`/`;return}try{let n=t?.id||v.value||``,r=await fetch(`/api/cms/nodes.json?id=${e}&channelId=${n}`);if(r.ok){let e=await r.json();if(e.node?.path){L.value=e.node.path;return}}}catch(e){console.error(`Failed to fetch live canonical route`,e)}let r=_.value?.slug||``;L.value=r===`index`?`/`:`/${r.replace(/^\/+|\/+$/g,``)}`};u(()=>_.value?.id,R,{immediate:!0});let z={desktop:{label:`Desktop (100% Fluid)`,width:null,height:null},desktop_4k:{label:`4K UHD (3840 × 2160)`,width:3840,height:2160},desktop_fhd:{label:`Full HD (1920 × 1080)`,width:1920,height:1080},macbook_air:{label:`MacBook Air (1440 × 900)`,width:1440,height:900},laptop_std:{label:`Laptop (1366 × 768)`,width:1366,height:768},ipad_pro:{label:`iPad Pro 12.9" (1024 × 1366)`,width:1024,height:1366},ipad_air:{label:`iPad Air / Mini (820 × 1180)`,width:820,height:1180},ipad_standard:{label:`iPad 10th Gen (810 × 1080)`,width:810,height:1080},iphone_15_pro_max:{label:`iPhone 15 Pro Max (430 × 932)`,width:430,height:932},iphone_15_pro:{label:`iPhone 15 Pro (393 × 852)`,width:393,height:852},iphone_se:{label:`iPhone SE (375 × 667)`,width:375,height:667},samsung_s23:{label:`Samsung Galaxy S23 (360 × 780)`,width:360,height:780}},B=f(()=>{let e=0;return Object.values(z).forEach(t=>{t.label.length>e&&(e=t.label.length)}),`${Math.ceil(e*7.2)+48}px`}),V=d(!1),H=d(null),U=d(null),De=f(()=>Object.entries(z).map(([e,t])=>({key:e,label:t.label,title:t.label,isActive:M.value===e}))),Oe=()=>{if(V.value){V.value=!1;return}H.value&&(U.value=H.value.getBoundingClientRect()),V.value=!0},ke=e=>{M.value=String(e),V.value=!1,X()},Ae=f(()=>z[M.value]?.label||`Select Device`),je=f(()=>{if(!_.value)return`Untitled`;let e=Ee.value?.[_.value.nodeType||``];return re(e,_.value)}),W=f(()=>{let e=D.value.find(e=>String(e.id)===String(v.value)),t=e?.baseUrl||e?.url||(typeof window<`u`?window.location.origin:``);if((t.includes(`localhost:8787`)||t.includes(`127.0.0.1:8787`))&&(t=t.replace(`8787`,`4321`)),t=t.replace(/\/$/,``),!_.value?.id)return t;let n=L.value;n.startsWith(`/`)||(n=`/${n}`);let r=n===`/`?``:n,i=E.value?`/${E.value}`:``,a=`${t}${i}${r}`,o=`_cb=${I.value}`;return O.value?`${a}?preview=true&revisionId=${O.value}&${o}`:`${a}?${j.value===`draft`?`preview=true&`:``}${o}`}),Me=f(()=>{if(!_.value)return`#`;let e=L.value;e.startsWith(`/`)||(e=`/${e}`);let t=e===`/`?``:e,n=E.value?`&lang=${E.value}`:``,r=O.value?`&revisionId=${O.value}`:``,i=j.value===`draft`||!!O.value;return`/api/v1/node${t}?channelId=${v.value}&preview=${i}${n}${r}`}),G=f(()=>M.value!==`desktop`),K=f(()=>{let e=z[M.value];if(!e||!e.width||!e.height)return{w:null,h:null};let t=N.value===`landscape`;return{w:t?e.height:e.width,h:t?e.width:e.height}}),q=f(()=>{let{w:e,h:t}=K.value;return!e||!t||e>t?`landscape`:`portrait`}),J=f(()=>{if(!G.value||!P.value)return 1;let{w:e,h:t}=K.value;if(!e||!t)return 1;let n=Math.max(100,F.value.w-48),r=Math.max(100,F.value.h-48),i=n/e,a=r/t;return Math.max(.15,Math.min(i,a))}),Y=()=>{if(A.value){let e=A.value.clientWidth,t=A.value.clientHeight;if(e>0&&t>0)F.value={w:e,h:t};else{let e=A.value.getBoundingClientRect();e.width>0&&e.height>0&&(F.value={w:e.width,h:e.height})}}},X=()=>{c(()=>{requestAnimationFrame(()=>{Y()})})},Z=()=>{N.value=N.value===`portrait`?`landscape`:`portrait`,X()},Ne=()=>{P.value=!P.value,X()},Pe=()=>{I.value=Date.now()},Fe=()=>{X()},Q=async()=>{let e=W.value;await R(),e===W.value&&k.value?.contentWindow&&k.value.contentWindow.postMessage({type:`kama-preview-update`,url:W.value},`*`)};u(O,e=>{e&&(j.value=`draft`)}),u(()=>o.paneWidthPx,()=>{Y()});let $=null;return r(()=>{typeof window<`u`&&window.addEventListener(`cms-node-updated`,Q),A.value&&(Y(),$=new ResizeObserver(()=>Y()),$.observe(A.value)),X()}),ee(()=>{typeof window<`u`&&window.removeEventListener(`cms-node-updated`,Q),$&&$.disconnect()}),(t,n)=>(s(),S(`div`,he,[y(`header`,ge,[y(`div`,_e,[e(O)?(s(),w(ue,{key:0,variant:`warning`,icon:e(te),title:`Viewing Historical Snapshot`},{default:i(()=>[b(` v`+x(e(O)),1)]),_:1},8,[`icon`])):(s(),S(h,{key:1},[y(`button`,{type:`button`,class:m([`segmented-btn text-btn`,{active:e(j)===`draft`}]),onClick:n[0]||=e=>j.value=`draft`},` Draft `,2),y(`button`,{type:`button`,class:m([`segmented-btn text-btn`,{active:e(j)===`live`}]),onClick:n[1]||=e=>j.value=`live`},` Public `,2)],64))]),y(`div`,ve,[G.value?(s(),S(`button`,{key:0,type:`button`,class:m([`icon-btn zoom-btn`,{active:e(P)}]),title:e(P)?`Auto-Fit Active (Click for 1:1 Real Size)`:`1:1 Real Size Active (Click to Auto-Fit)`,onClick:Ne},[(s(),w(a(e(P)?e(pe):e(fe)),{size:14}))],10,ye)):p(``,!0),y(`div`,{class:`device-menu-wrapper`,ref_key:`deviceTriggerRef`,ref:H,style:C({width:B.value})},[y(`button`,{type:`button`,class:`device-trigger-btn`,onClick:Oe},[l(e(me),{size:13,class:`trigger-icon`}),y(`span`,be,x(Ae.value),1),l(e(ae),{size:12,class:`chevron-icon`})]),l(se,{show:V.value,items:De.value,"anchor-rect":U.value,"min-width":B.value,onSelect:ke,onClose:n[2]||=e=>V.value=!1},null,8,[`show`,`items`,`anchor-rect`,`min-width`])],4),G.value?(s(),S(`button`,{key:1,type:`button`,class:`icon-btn orientation-btn`,title:`Switch to ${q.value===`portrait`?`Landscape`:`Portrait`}`,onClick:Z},[l(e(ne),{size:14,style:C({transform:q.value===`landscape`?`rotate(90deg)`:`rotate(0deg)`,transition:`transform 0.2s`})},null,8,[`style`])],8,xe)):p(``,!0)]),y(`div`,Se,[y(`button`,{type:`button`,class:`icon-btn`,title:`Refresh Preview`,onClick:Pe},[l(e(le),{size:13})]),y(`a`,{href:Me.value,target:`_blank`,class:`icon-btn`,title:`View JSON API Payload`},[l(e(de),{size:13})],8,Ce),y(`a`,{href:W.value,target:`_blank`,class:`icon-btn`,title:`Open Preview in New Tab`},[l(e(ie),{size:13})],8,we),y(`button`,{type:`button`,class:`icon-btn close-btn`,title:`Close Split View`,onClick:n[3]||=e=>g(`close`)},[l(e(oe),{size:14})])])]),y(`div`,{ref_key:`stageRef`,ref:A,class:m([`preview-stage`,{"is-fixed-frame":G.value}])},[y(`div`,{class:`device-frame-wrapper`,style:C(G.value&&K.value.w&&K.value.h?{width:`${K.value.w*J.value}px`,height:`${K.value.h*J.value}px`}:{width:`100%`,height:`100%`})},[y(`div`,{class:`device-frame`,style:C(G.value&&K.value.w&&K.value.h?{width:`${K.value.w}px`,height:`${K.value.h}px`,transform:`scale(${J.value})`,transformOrigin:`top left`}:{width:`100%`,height:`100%`})},[(s(),S(`iframe`,{key:W.value,ref_key:`previewIframeRef`,ref:k,src:W.value,class:`preview-iframe`,title:je.value,onLoad:Fe},null,40,Te))],4)],4)],2)]))}}),[[`__scopeId`,`data-v-f9dd6bd0`]]);export{E as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.status-pill-wrapper[data-v-b0e64e32]{border-radius:var(--cms-radius-full);background:var(--cms-color-surface-hover);border:1px solid var(--cms-color-border);color:var(--cms-color-text-muted);align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;transition:all .2s;display:flex}.success[data-v-b0e64e32]{background:var(--cms-color-success-light);border-color:var(--cms-color-success-border);color:var(--cms-color-success)}.draft[data-v-b0e64e32]{background:var(--cms-color-draft-light);border-color:var(--cms-color-draft-border);color:var(--cms-color-draft)}.info[data-v-b0e64e32]{background:var(--cms-color-info-light);border-color:var(--cms-color-info-border);color:var(--cms-color-info)}.sync[data-v-b0e64e32]{background:var(--cms-color-sync-light);border-color:var(--cms-color-sync-border);color:var(--cms-color-sync)}.offline[data-v-b0e64e32]{background:var(--cms-color-offline-light);border-color:var(--cms-color-offline-border);color:var(--cms-color-offline)}.danger[data-v-b0e64e32]{background:var(--cms-color-danger-light);border-color:var(--cms-color-danger-border);color:var(--cms-color-danger)}.warning[data-v-b0e64e32]{background:var(--cms-color-warning-light,#fef3c7);border-color:var(--cms-color-warning-border,#fde68a);color:var(--cms-color-warning,#d97706)}.status-icon[data-v-b0e64e32]{color:currentColor;flex-shrink:0}.status-icon.spin[data-v-b0e64e32]{animation:1s linear infinite spin-b0e64e32}.status-text[data-v-b0e64e32]{color:currentColor;white-space:nowrap;font-weight:550}@keyframes spin-b0e64e32{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.richtext-container[data-v-c38ce4e9]{font-family:var(--cms-font-sans);width:100%;position:relative;box-shadow:none!important;background:0 0!important;border:none!important;outline:none!important}.richtext-container[data-v-c38ce4e9]:hover,.richtext-container[data-v-c38ce4e9]:focus-within{box-shadow:var(--cms-shadow-md);border-radius:var(--cms-radius-sm);background:0 0!important;border:none!important;outline:none!important}[data-v-c38ce4e9] .ProseMirror{min-height:28px;font-family:var(--cms-font-sans);color:var(--cms-color-text-main);padding:4px 0;font-size:15.5px;line-height:1.6;background:0 0!important;border:none!important;outline:none!important}[data-v-c38ce4e9] .ProseMirror h1{letter-spacing:-.025em;color:var(--cms-color-text-main);margin:4px 0;font-size:2rem;font-weight:600}[data-v-c38ce4e9] .ProseMirror h2{letter-spacing:-.015em;color:var(--cms-color-text-main);margin:4px 0;padding-top:1rem;font-size:1.6rem;font-weight:600}[data-v-c38ce4e9] .ProseMirror h3{color:var(--cms-color-text-main);margin-top:1rem;font-size:1.25rem;font-weight:600}[data-v-c38ce4e9] .ProseMirror p,[data-v-c38ce4e9] .ProseMirror ol,[data-v-c38ce4e9] .ProseMirror ul{margin-bottom:1rem}[data-v-c38ce4e9] .ProseMirror ol{padding-left:2rem;list-style-type:decimal}[data-v-c38ce4e9] .ProseMirror ul{padding-left:2rem;list-style-type:disc}[data-v-c38ce4e9] .ProseMirror blockquote{border-left:3px solid var(--cms-color-primary);color:var(--cms-color-text-muted);background:0 0;margin:8px 0;padding:4px 12px;font-style:italic}[data-v-c38ce4e9] .ProseMirror :first-child{padding-top:0}[data-v-c38ce4e9] .ProseMirror :last-child{margin-bottom:0}.combobox-wrapper[data-v-19487569]{width:100%;font-family:var(--cms-font-sans);position:relative}.combobox-wrapper.is-disabled[data-v-19487569]{opacity:.7;pointer-events:none}.combobox-wrapper.is-disabled .combobox-trigger[data-v-19487569]{background:var(--cms-color-surface-hover);border-color:var(--cms-color-border-dark)}.combobox-trigger[data-v-19487569]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);cursor:pointer;min-height:38px;transition:all var(--cms-transition-fast);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:6px 12px;font-size:13.5px;display:flex}.combobox-trigger[data-v-19487569]:hover:not(.is-disabled){border-color:var(--cms-color-primary)}.combobox-trigger.open[data-v-19487569]{border-color:var(--cms-color-primary);box-shadow:0 0 0 3px var(--cms-color-focus-ring);background:var(--cms-color-surface)}.selected-chips[data-v-19487569]{flex-wrap:wrap;flex:1;gap:6px;padding:2px 0;display:flex}.chip[data-v-19487569]{background:var(--cms-color-surface-hover);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-xs);color:var(--cms-color-text-main);align-items:center;gap:6px;padding:2px 6px;font-size:11.5px;font-weight:500;display:inline-flex}.chip-label[data-v-19487569]{margin-top:1px;line-height:1}.chip-remove[data-v-19487569]{color:var(--cms-color-text-faint);cursor:pointer;background:0 0;border:none;align-items:center;margin-left:2px;padding:0;display:flex}.chip-remove[data-v-19487569]:hover{color:var(--cms-color-danger)}.selected-item[data-v-19487569]{align-items:center;gap:8px;display:flex;overflow:hidden}.flag-icon[data-v-19487569]{flex-shrink:0;font-size:16px;line-height:1}.main-label[data-v-19487569]{color:var(--cms-color-text-main);white-space:nowrap;font-weight:600}.sub-label[data-v-19487569]{color:var(--cms-color-text-muted);font-size:11px}.country-badge[data-v-19487569]{color:var(--cms-color-text-subtle);background:var(--cms-color-surface-hover);border-radius:var(--cms-radius-xs);border:1px solid var(--cms-color-border);padding:1px 6px;font-size:10.5px;font-weight:550}.placeholder-text[data-v-19487569]{color:var(--cms-color-text-faint)}.tag-code[data-v-19487569]{font-family:var(--cms-font-mono);background:var(--cms-color-surface-hover);border-radius:var(--cms-radius-xs);border:1px solid var(--cms-color-border);color:var(--cms-color-text-muted);padding:1px 5px;font-size:10.5px}.trigger-actions[data-v-19487569]{align-items:center;gap:6px;margin-left:8px;display:flex}.clear-btn[data-v-19487569]{border-radius:var(--cms-radius-xs);color:var(--cms-color-text-faint);cursor:pointer;transition:all var(--cms-transition-fast);background:0 0;border:none;align-items:center;padding:2px;display:flex}.clear-btn[data-v-19487569]:hover{color:var(--cms-color-danger);background:var(--cms-color-danger-light)}.arrow-icon[data-v-19487569]{color:var(--cms-color-text-muted);transition:transform var(--cms-transition-fast)}.arrow-icon.rotate[data-v-19487569]{transform:rotate(180deg)}.combobox-dropdown[data-v-19487569]{z-index:200;background:var(--cms-color-surface);border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-md);box-shadow:var(--cms-shadow-lg);flex-direction:column;max-height:280px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.search-box[data-v-19487569]{border-bottom:1px solid var(--cms-color-border);background:var(--cms-color-bg);align-items:center;gap:8px;padding:8px 12px;display:flex}.search-icon[data-v-19487569]{color:var(--cms-color-text-faint);flex-shrink:0}.search-box input[data-v-19487569]{width:100%;font-family:var(--cms-font-sans);color:var(--cms-color-text-main);background:0 0;border:none;outline:none;font-size:13px}.options-list[data-v-19487569]{margin:0;padding:4px;list-style:none;overflow-y:auto}.option-item[data-v-19487569]{border-radius:var(--cms-radius-sm);cursor:pointer;transition:all var(--cms-transition-fast);justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.option-item[data-v-19487569]:hover{background:var(--cms-color-surface-hover)}.option-item.active[data-v-19487569]{background:var(--cms-color-primary-light)}.option-content[data-v-19487569]{align-items:center;gap:10px;display:flex}.right-info[data-v-19487569]{align-items:center;gap:8px;display:flex}.check-icon[data-v-19487569]{color:var(--cms-color-primary)}.text-group[data-v-19487569]{flex-direction:column;display:flex}.no-results[data-v-19487569]{color:var(--cms-color-text-muted);text-align:center;padding:14px;font-size:13px}.icon-picker-container[data-v-5c019513]{width:100%;font-family:var(--cms-font-sans);position:relative}.picker-layout[data-v-5c019513]{align-items:flex-start;gap:8px;display:flex}.icon-square[data-v-5c019513]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);width:36px;height:36px;box-shadow:var(--cms-shadow-xs);flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-preview[data-v-5c019513]{width:24px;height:24px;color:var(--cms-color-primary);justify-content:center;align-items:center;display:flex}.icon-preview[data-v-5c019513] svg,.icon-preview[data-v-5c019513] img{width:24px;height:24px}.icon-placeholder[data-v-5c019513]{border:2px dashed var(--cms-color-text-faint);opacity:.5;width:20px;height:20px}.input-container[data-v-5c019513]{flex-direction:column;flex:1;display:flex}.input-container input[type=text][data-v-5c019513]{border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);box-sizing:border-box;width:100%;height:36px;font-family:var(--cms-font-sans);color:var(--cms-color-text-main);background:var(--cms-color-surface);box-shadow:var(--cms-shadow-xs);transition:all var(--cms-transition-fast);outline:none;padding:8px 11px;font-size:12.5px}.input-container input[type=text][data-v-5c019513]:focus{border-color:var(--cms-color-primary);box-shadow:0 0 0 3px var(--cms-color-focus-ring)}.input-container input[type=text][data-v-5c019513]::placeholder{color:var(--cms-color-text-faint);font-style:italic}.code-display[data-v-5c019513]{justify-content:space-between;align-items:center;margin-top:6px;padding:0 4px;display:flex}.code-text[data-v-5c019513]{font-size:11px;font-family:var(--cms-font-mono);color:var(--cms-color-text-muted)}.code-label[data-v-5c019513]{text-transform:uppercase;letter-spacing:.05em;color:var(--cms-color-text-faint);margin-right:4px;font-size:10px;font-weight:700}.clear-btn[data-v-5c019513]{text-transform:uppercase;letter-spacing:.05em;color:var(--cms-color-danger);cursor:pointer;transition:color var(--cms-transition-fast);background:0 0;border:none;padding:0;font-size:10px;font-weight:700}.clear-btn[data-v-5c019513]:hover{color:var(--cms-color-danger-hover)}.dropdown-menu[data-v-5c019513]{z-index:50;border:1px solid var(--cms-color-border-dark);background:var(--cms-color-popover);border-radius:var(--cms-radius-sm);box-shadow:var(--cms-shadow-md);flex-direction:column;display:flex;position:absolute;top:42px;left:0;right:0}.dropdown-message[data-v-5c019513]{text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--cms-color-text-muted);border-bottom:1px solid var(--cms-color-border);padding:12px;font-size:11px;font-weight:700}.dropdown-message.danger[data-v-5c019513]{color:var(--cms-color-danger)}.icon-grid[data-v-5c019513]{grid-template-columns:repeat(5,1fr);gap:6px;max-height:280px;padding:10px;display:grid;overflow-y:auto}.icon-grid-btn[data-v-5c019513]{border-radius:var(--cms-radius-sm);background:var(--cms-color-surface);cursor:pointer;transition:all var(--cms-transition-fast);border:1px solid #0000;outline:none;justify-content:center;align-items:center;padding:10px;display:flex}.icon-grid-btn[data-v-5c019513]:hover,.icon-grid-btn[data-v-5c019513]:focus{background:var(--cms-color-surface-hover);border-color:var(--cms-color-border-dark)}.grid-icon[data-v-5c019513]{width:28px;height:28px;color:var(--cms-color-text-muted);transition:color var(--cms-transition-fast);justify-content:center;align-items:center;display:flex}.grid-icon[data-v-5c019513] svg,.grid-icon[data-v-5c019513] img{width:28px;height:28px}.icon-grid-btn:hover .grid-icon[data-v-5c019513],.icon-grid-btn:focus .grid-icon[data-v-5c019513]{color:var(--cms-color-primary)}.icon-grid[data-v-5c019513]::-webkit-scrollbar{width:6px}.icon-grid[data-v-5c019513]::-webkit-scrollbar-track{background:var(--cms-color-bg)}.icon-grid[data-v-5c019513]::-webkit-scrollbar-thumb{background:var(--cms-color-border-dark);border-radius:var(--cms-radius-full)}.asset-meta-backdrop[data-v-766bda8f]{z-index:10001;pointer-events:auto;background:#0f172a2e;position:fixed;inset:0}.asset-meta-panel[data-v-766bda8f]{background:var(--cms-color-surface);border-left:1px solid var(--cms-color-border);width:min(340px,90vw);box-shadow:var(--cms-shadow-lg);color:var(--cms-color-text-main);font-family:var(--cms-font-sans);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.asset-meta-panel header[data-v-766bda8f],.asset-meta-panel footer[data-v-766bda8f]{border-bottom:1px solid var(--cms-color-border);align-items:center;gap:8px;padding:14px 16px;display:flex}.asset-meta-panel header[data-v-766bda8f]{justify-content:space-between}.asset-meta-panel header div[data-v-766bda8f]{align-items:center;gap:7px;display:flex}.asset-meta-panel header button[data-v-766bda8f]{color:var(--cms-color-text-muted);cursor:pointer;background:0 0;border:0;display:flex}.asset-meta-body[data-v-766bda8f]{flex:1;padding:18px;overflow:auto}.asset-meta-body label[data-v-766bda8f]{color:var(--cms-color-text-muted);text-transform:uppercase;flex-direction:column;gap:6px;margin-bottom:16px;font-size:11px;font-weight:700;display:flex}.field-label-row[data-v-766bda8f],.field-link-state[data-v-766bda8f]{justify-content:space-between;align-items:center;gap:8px;display:flex}.field-link-state[data-v-766bda8f]{text-transform:none;font-size:10px;font-weight:400}.field-hint[data-v-766bda8f]{color:var(--cms-color-primary);font-weight:550}.relink-action[data-v-766bda8f]{color:var(--cms-color-text-faint);cursor:pointer;align-items:center;gap:4px;display:inline-flex}.relink-action[data-v-766bda8f]:hover{color:var(--cms-color-primary-hover)}.field-link-btn[data-v-766bda8f]{border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-xs);background:var(--cms-color-surface);width:24px;height:24px;color:var(--cms-color-text-muted);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.field-link-btn.is-tied[data-v-766bda8f]{color:var(--cms-color-primary);background:var(--cms-color-primary-light);border-color:var(--cms-color-primary-border)}.asset-meta-body input[data-v-766bda8f],.asset-meta-body textarea[data-v-766bda8f]{box-sizing:border-box;border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);background:var(--cms-color-surface);width:100%;color:var(--cms-color-text-main);font:inherit;text-transform:none;padding:8px 10px}.asset-meta-body input[data-v-766bda8f]:disabled,.asset-meta-body textarea[data-v-766bda8f]:disabled{opacity:.7;cursor:not-allowed;background:var(--cms-color-surface-hover)}.asset-meta-body textarea[data-v-766bda8f]{resize:vertical}.asset-meta-loading[data-v-766bda8f]{color:var(--cms-color-text-faint);font-size:11px}.asset-meta-panel footer[data-v-766bda8f]{border-top:1px solid var(--cms-color-border);border-bottom:0;justify-content:flex-end}.asset-meta-panel footer button[data-v-766bda8f]{border-radius:var(--cms-radius-sm);cursor:pointer;border:0;align-items:center;gap:5px;padding:7px 10px;font-size:11px;display:inline-flex}.reset[data-v-766bda8f],.cancel[data-v-766bda8f]{color:var(--cms-color-text-muted);background:0 0}.apply[data-v-766bda8f]{background:var(--cms-color-primary);color:#fff}.cms-field-asset[data-v-cdb725b2]{width:100%;font-family:var(--cms-font-sans);box-sizing:border-box;flex-direction:column;gap:8px;margin-top:0;display:flex}.asset-field-header[data-v-cdb725b2]{margin-bottom:2px}.cms-field-asset.variant-region .asset-preview-grid[data-v-cdb725b2]{display:block}.asset-error[data-v-cdb725b2]{background:var(--cms-color-danger-light);color:var(--cms-color-danger);border-radius:var(--cms-radius-sm);border:1px solid var(--cms-color-danger-border);align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:500;display:flex}.asset-error button[data-v-cdb725b2]{color:inherit;cursor:pointer;opacity:.7;transition:opacity var(--cms-transition-fast);background:0 0;border:none;margin-left:auto;padding:2px}.asset-error button[data-v-cdb725b2]:hover{opacity:1}.asset-preview-grid[data-v-cdb725b2]{flex-direction:column;width:100%;display:flex;position:relative}.asset-card[data-v-cdb725b2]{width:100%;aspect-ratio:var(--v77579b0f);border-radius:var(--cms-radius-md);border:1px solid var(--cms-color-border-dark);background:var(--cms-color-surface-hover);transition:all var(--cms-transition-fast);box-sizing:border-box;min-height:100px;position:relative;overflow:hidden}.asset-card.is-inherited[data-v-cdb725b2]{opacity:.9}.asset-card[data-v-cdb725b2]:hover{border-color:var(--cms-color-border-dark)}.image-wrapper[data-v-cdb725b2]{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0;overflow:hidden}.asset-card.is-natural-ratio[data-v-cdb725b2]{width:100%;max-width:100%;height:auto}.asset-card.is-natural-ratio .image-wrapper[data-v-cdb725b2]{background:var(--cms-color-surface-hover);justify-content:center;align-items:center;width:100%;height:100%;min-height:140px;display:flex;position:relative}.asset-card.is-svg-asset .image-wrapper[data-v-cdb725b2] .cms-image-preview{justify-content:center;align-items:center;min-height:140px;display:flex;width:100%!important;height:100%!important}.asset-card.is-svg-asset .image-wrapper[data-v-cdb725b2] img{object-fit:contain!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:300px!important}.document-wrapper[data-v-cdb725b2]{height:100%;color:var(--cms-color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex}.doc-name[data-v-cdb725b2]{text-align:center;word-break:break-all;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;font-weight:600;display:-webkit-box;overflow:hidden}.inherited-overlay-badge[data-v-cdb725b2]{color:#fff;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--cms-radius-xs);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20;background:#000000a6;align-items:center;gap:4px;padding:3px 8px;font-size:10px;font-weight:600;display:flex;position:absolute;top:8px;left:8px}.replace-drag-overlay[data-v-cdb725b2]{background:var(--cms-color-primary,#2563ebe6);color:#fff;z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex;position:absolute;inset:0}.actions-overlay[data-v-cdb725b2]{opacity:0;transition:opacity var(--cms-transition-fast);z-index:20;gap:6px;display:flex;position:absolute;top:8px;right:8px}.asset-card:hover .actions-overlay[data-v-cdb725b2]{opacity:1}.action-btn[data-v-cdb725b2]{border-radius:var(--cms-radius-sm);border:1px solid var(--cms-color-border);background:var(--cms-color-surface);color:var(--cms-color-text-main);cursor:pointer;transition:all var(--cms-transition-fast);align-items:center;gap:4px;padding:5px 10px;font-size:11px;font-weight:600;display:inline-flex}.action-btn[data-v-cdb725b2]:hover{background:var(--cms-color-surface-hover)}.action-btn.delete-btn[data-v-cdb725b2]:hover{color:var(--cms-color-danger);border-color:var(--cms-color-danger-border)}.dropzone-area[data-v-cdb725b2]{width:100%;aspect-ratio:var(--v77579b0f);border:1px dashed var(--cms-color-border-dark,#cbd5e1);border-radius:var(--cms-radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#00000004;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding-top:20px;padding-bottom:20px;transition:border-color .15s,background .15s;display:flex;position:relative;overflow:hidden}.dropzone-area.is-compact[data-v-cdb725b2]{aspect-ratio:auto;min-height:80px;padding:10px}.dropzone-area[data-v-cdb725b2]:hover,.dropzone-area.is-dragging[data-v-cdb725b2]{border-color:var(--cms-color-primary,#3b82f6);background:#3b82f60f}.hidden-file-input[data-v-cdb725b2]{display:none}.dropzone-content[data-v-cdb725b2]{pointer-events:none;flex-direction:column;align-items:center;gap:4px;display:flex}.image-prompt-icon[data-v-cdb725b2]{color:var(--cms-color-text-faint);transition:color var(--cms-transition-fast)}.dropzone-area:hover .image-prompt-icon[data-v-cdb725b2],.dropzone-area.is-dragging .image-prompt-icon[data-v-cdb725b2]{color:var(--cms-color-primary,#3b82f6)}.drop-title[data-v-cdb725b2]{text-align:center;margin-bottom:0}.drop-subtitle[data-v-cdb725b2]{color:var(--cms-color-text-muted,#64748b);text-align:center;font-size:10px}.spinner[data-v-cdb725b2]{animation:1s linear infinite spin-cdb725b2}@keyframes spin-cdb725b2{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cms-field-taxonomy[data-v-1a55cb97]{width:100%}.loading-state[data-v-1a55cb97],.empty-state[data-v-1a55cb97]{font-family:var(--cms-font-sans);color:var(--cms-color-text-muted);align-items:center;gap:6px;padding:6px 0;font-size:13px;display:flex}.spinner[data-v-1a55cb97]{animation:1s linear infinite spin-1a55cb97}@keyframes spin-1a55cb97{to{transform:rotate(360deg)}}.taxonomy-pills[data-v-1a55cb97]{flex-wrap:wrap;gap:8px;display:flex}.tax-pill[data-v-1a55cb97]{font-family:var(--cms-font-sans);border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-full,9999px);background:var(--cms-color-surface);color:var(--cms-color-text-main);cursor:pointer;transition:all var(--cms-transition-fast);outline:none;padding:5px 12px;font-size:13px}.tax-pill[data-v-1a55cb97]:hover:not(:disabled){border-color:var(--cms-color-primary-hover);color:var(--cms-color-primary-hover)}.tax-pill.is-active[data-v-1a55cb97]{background:var(--cms-color-primary);color:#fff;border-color:var(--cms-color-primary)}.tax-pill[data-v-1a55cb97]:disabled{opacity:.6;cursor:not-allowed}.taxonomy-select[data-v-1a55cb97]{border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);box-sizing:border-box;width:100%;font-family:var(--cms-font-sans);color:var(--cms-color-text-main);background:var(--cms-color-surface);transition:all var(--cms-transition-fast);outline:none;padding:8.5px 11px;font-size:14px}.taxonomy-select[data-v-1a55cb97]:focus:not(:disabled){border-color:var(--cms-color-primary)}.is-invalid .taxonomy-select[data-v-1a55cb97]{border-color:var(--cms-color-danger,#ef4444)!important}.modal-overlay[data-v-9574bd82]{z-index:9999;-webkit-backdrop-filter:blur(8px);background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-card[data-v-9574bd82]{background:var(--cms-color-surface);border-radius:var(--cms-radius-lg);width:100%;max-width:720px;max-height:85vh;box-shadow:var(--cms-shadow-lg);border:1px solid var(--cms-color-border-dark);flex-direction:column;display:flex;overflow:hidden}.modal-header[data-v-9574bd82]{border-bottom:1px solid var(--cms-color-border);background:var(--cms-color-surface);justify-content:space-between;align-items:flex-start;padding:18px 22px;display:flex}.header-titles[data-v-9574bd82]{flex-direction:column;gap:2px;display:flex}.modal-header h3[data-v-9574bd82]{font-family:var(--cms-font-sans);color:var(--cms-color-text-main);letter-spacing:-.01em;margin:0;font-size:15px;font-weight:650}.modal-toolbar[data-v-9574bd82]{background:var(--cms-color-bg);border-bottom:1px solid var(--cms-color-border);justify-content:space-between;align-items:center;gap:12px;padding:10px 22px;display:flex}.modal-body[data-v-9574bd82]{background:var(--cms-color-surface);color:var(--cms-color-text-main);font-family:var(--cms-font-sans);flex-grow:1;padding:22px;overflow-y:auto}.modal-fade-enter-active[data-v-9574bd82],.modal-fade-leave-active[data-v-9574bd82]{transition:opacity var(--cms-transition-normal)}.modal-fade-enter-active .modal-card[data-v-9574bd82],.modal-fade-leave-active .modal-card[data-v-9574bd82]{transition:transform var(--cms-transition-normal)}.modal-fade-enter-from[data-v-9574bd82],.modal-fade-leave-to[data-v-9574bd82]{opacity:0}.modal-fade-enter-from .modal-card[data-v-9574bd82],.modal-fade-leave-to .modal-card[data-v-9574bd82]{transform:scale(.96)translateY(8px)}.vault-item[data-v-11ffdbee]{border-radius:var(--cms-radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--cms-transition-fast);background:0 0;border:1px solid #0000;align-items:flex-start;gap:8px;padding:7px 6px;display:flex}.vault-item[data-v-11ffdbee]:hover:not(.active){background:var(--cms-color-surface-hover);border-color:var(--cms-color-border)}.vault-item.active[data-v-11ffdbee]{background:var(--cms-color-primary-light);border-color:var(--cms-color-primary-border);color:var(--cms-color-primary);box-shadow:var(--cms-shadow-xs)}.vault-item.is-draft[data-v-11ffdbee]{border-style:dashed}.icon-wrapper[data-v-11ffdbee]{flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;margin-top:2px;display:inline-flex;position:relative}.item-icon[data-v-11ffdbee]{color:var(--cms-color-text-faint)}.item-details[data-v-11ffdbee]{flex:1;min-width:0}.type-label[data-v-11ffdbee]{color:var(--cms-color-text-faint);text-transform:uppercase;letter-spacing:.04em;font-size:10px;display:block}.item-title[data-v-11ffdbee]{text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.meta-row[data-v-11ffdbee]{color:var(--cms-color-text-faint);align-items:center;gap:5px;font-size:10px;display:flex}.sort-field-tag[data-v-11ffdbee]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tree-tag-icon[data-v-11ffdbee],.asset-tag-icon[data-v-11ffdbee]{color:var(--cms-color-text-faint)}.cms-field-node-link[data-v-c17bc4ac]{flex-direction:column;gap:8px;width:100%;display:flex}.selected-nodes[data-v-c17bc4ac]{flex-direction:column;gap:6px;display:flex}.selected-node-item[data-v-c17bc4ac]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);color:var(--cms-color-text-main);justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.node-info[data-v-c17bc4ac]{align-items:center;gap:8px;display:flex}.node-info small[data-v-c17bc4ac]{color:var(--cms-color-text-faint);text-transform:capitalize}.remove-btn[data-v-c17bc4ac]{color:var(--cms-color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex}.remove-btn[data-v-c17bc4ac]:hover:not(:disabled){color:var(--cms-color-danger)}.add-node-btn[data-v-c17bc4ac]{border:1px dashed var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);width:100%;color:var(--cms-color-text-muted);font-family:var(--cms-font-sans);cursor:pointer;transition:all var(--cms-transition-fast);background:0 0;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:13px;font-weight:500;display:flex}.add-node-btn[data-v-c17bc4ac]:hover{border-color:var(--cms-color-primary);color:var(--cms-color-primary);background:var(--cms-color-surface-hover)}.add-node-btn.is-invalid[data-v-c17bc4ac]{border-color:var(--cms-color-danger)}.picker-search[data-v-c17bc4ac]{background:var(--cms-color-surface-hover);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-sm);align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;display:flex}.picker-search input[data-v-c17bc4ac]{color:var(--cms-color-text-main);background:0 0;border:none;outline:none;flex:1}.picker-results[data-v-c17bc4ac]{flex-direction:column;gap:4px;max-height:400px;display:flex;overflow-y:auto}.no-results[data-v-c17bc4ac]{text-align:center;color:var(--cms-color-text-muted);padding:20px;font-size:13px}.vue-advanced-cropper{text-align:center;-webkit-user-select:none;user-select:none;direction:ltr;max-width:100%;max-height:100%;position:relative}.vue-advanced-cropper__stretcher{pointer-events:none;max-width:100%;max-height:100%;position:relative}.vue-advanced-cropper__image{-webkit-user-select:none;user-select:none;transform-origin:50%;position:absolute;max-width:none!important}.vue-advanced-cropper__background,.vue-advanced-cropper__foreground{opacity:1;background:#000;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__foreground{opacity:.5}.vue-advanced-cropper__boundaries{opacity:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.vue-advanced-cropper__cropper-wrapper{width:100%;height:100%}.vue-advanced-cropper__image-wrapper{width:100%;height:100%;position:absolute;overflow:hidden}.vue-advanced-cropper__stencil-wrapper{position:absolute}.vue-simple-handler{background:#fff;width:10px;height:10px;display:block}.vue-handler-wrapper{width:30px;height:30px;position:absolute;transform:translate(-50%,-50%)}.vue-handler-wrapper__draggable{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.vue-handler-wrapper--west-north{cursor:nw-resize}.vue-handler-wrapper--north{cursor:n-resize}.vue-handler-wrapper--east-north{cursor:ne-resize}.vue-handler-wrapper--east{cursor:e-resize}.vue-handler-wrapper--east-south{cursor:se-resize}.vue-handler-wrapper--south{cursor:s-resize}.vue-handler-wrapper--west-south{cursor:sw-resize}.vue-handler-wrapper--west{cursor:w-resize}.vue-handler-wrapper--disabled{cursor:auto}.vue-line-wrapper{background:0 0;justify-content:center;align-items:center;display:flex;position:absolute}.vue-line-wrapper--north,.vue-line-wrapper--south{width:100%;height:12px;left:0;transform:translateY(-50%)}.vue-line-wrapper--north{cursor:n-resize;top:0}.vue-line-wrapper--south{cursor:s-resize;top:100%}.vue-line-wrapper--east,.vue-line-wrapper--west{width:12px;height:100%;top:0;transform:translate(-50%)}.vue-line-wrapper--east{cursor:e-resize;left:100%}.vue-line-wrapper--west{cursor:w-resize;left:0}.vue-line-wrapper--disabled{cursor:auto}.vue-bounding-box{width:100%;height:100%;position:relative}.vue-bounding-box__handler{position:absolute}.vue-bounding-box__handler--west-north{top:0;left:0}.vue-bounding-box__handler--north{top:0;left:50%}.vue-bounding-box__handler--east-north{top:0;left:100%}.vue-bounding-box__handler--east{top:50%;left:100%}.vue-bounding-box__handler--east-south{top:100%;left:100%}.vue-bounding-box__handler--south{top:100%;left:50%}.vue-bounding-box__handler--west-south{top:100%;left:0}.vue-bounding-box__handler--west{top:50%;left:0}.vue-draggable-area{position:relative}.vue-preview-result{box-sizing:border-box;width:100%;height:100%;position:absolute;overflow:hidden}.vue-preview-result__wrapper{position:absolute}.vue-preview-result__image{pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;position:relative;max-width:none!important}.vue-rectangle-stencil{box-sizing:border-box;width:100%;height:100%;position:absolute}.vue-rectangle-stencil__preview{width:100%;height:100%;position:absolute}.vue-rectangle-stencil--movable{cursor:move}.vue-circle-stencil{box-sizing:content-box;cursor:move;width:100%;height:100%;position:absolute}.vue-circle-stencil__preview{border-radius:50%;width:100%;height:100%;position:absolute}.vue-circle-stencil--movable{cursor:move}.vue-preview{box-sizing:border-box;position:relative;overflow:hidden}.vue-preview--fill,.vue-preview__wrapper{width:100%;height:100%;position:absolute}.vue-preview__image{pointer-events:none;-webkit-user-select:none;user-select:none;transform-origin:50%;position:absolute;max-width:none!important}.vue-simple-line{background:0 0;border:0 solid #ffffff4d;transition:border .5s}.vue-simple-line--south,.vue-simple-line--north{width:100%;height:0}.vue-simple-line--east,.vue-simple-line--west{width:0;height:100%}.vue-simple-line--east{border-right-width:1px}.vue-simple-line--west{border-left-width:1px}.vue-simple-line--south{border-bottom-width:1px}.vue-simple-line--north{border-top-width:1px}.vue-simple-line--hover{opacity:1;border-color:#fff}.crop-modal-overlay[data-v-d1353cfb]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;background:#000000e6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.crop-modal-card[data-v-d1353cfb]{border-radius:var(--cms-radius-lg,8px);width:95vw;max-width:1400px;height:90vh;max-height:90vh;font-family:var(--cms-font-sans);animation:modalPop-d1353cfb var(--cms-transition-normal) forwards;background:#000;border:none;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}@keyframes modalPop-d1353cfb{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.crop-modal-body[data-v-d1353cfb]{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow:hidden}.presets-bar[data-v-d1353cfb]{align-items:center;gap:12px;display:flex}.presets-label[data-v-d1353cfb]{text-transform:uppercase;letter-spacing:.05em;color:#777;font-size:11px;font-weight:700}.preset-pills[data-v-d1353cfb]{flex-wrap:wrap;gap:6px;display:flex}.preset-pill[data-v-d1353cfb]{border-radius:var(--cms-radius-full,9999px);color:#999;font-family:var(--cms-font-sans);cursor:pointer;transition:all var(--cms-transition-fast);background:#222;border:1px solid #333;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.preset-pill[data-v-d1353cfb]:hover:not(:disabled){color:#fff;background:#333;border-color:#444}.preset-pill[data-v-d1353cfb]:disabled{opacity:.6;cursor:not-allowed}.preset-pill.is-active[data-v-d1353cfb]{color:#fff;background:#2a2a2a;border-color:#888;font-weight:600}.modified-dot[data-v-d1353cfb]{background-color:var(--cms-color-warning,#f59e0b);border-radius:50%;width:6px;height:6px}.saved-dot[data-v-d1353cfb]{background-color:var(--cms-color-success,#10b981);border-radius:50%;width:6px;height:6px}.pill-ratio[data-v-d1353cfb]{font-size:10px;font-family:var(--cms-font-mono);opacity:.75}.cropper-viewport[data-v-d1353cfb]{background:0 0;border:none;border-radius:0;flex:1;min-height:0;overflow:hidden}.cropper-canvas[data-v-d1353cfb]{width:100%;max-width:100%;height:100%;max-height:100%}.crop-modal-footer[data-v-d1353cfb]{background:0 0;border-top:none;justify-content:flex-end;align-items:center;gap:16px;padding:0 24px 24px;display:flex}.btn-cancel[data-v-d1353cfb]{color:#888;border-radius:var(--cms-radius-sm,4px);font-family:var(--cms-font-sans);cursor:pointer;transition:all var(--cms-transition-fast);background:0 0;border:none;padding:7px 12px;font-size:13px;font-weight:500}.btn-cancel[data-v-d1353cfb]:hover:not(:disabled){color:#fff;background:0 0}.btn-cancel[data-v-d1353cfb]:disabled{opacity:.5;cursor:not-allowed}.btn-apply[data-v-d1353cfb]{color:#fff;border-radius:var(--cms-radius-sm,4px);font-family:var(--cms-font-sans);cursor:pointer;box-shadow:var(--cms-shadow-xs);transition:all var(--cms-transition-fast);background:#222;border:1px solid #666;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:600;display:inline-flex}.btn-apply[data-v-d1353cfb]:hover:not(:disabled){background:#333;border-color:#aaa}.btn-apply[data-v-d1353cfb]:disabled{opacity:.65;cursor:not-allowed}.btn-loader[data-v-d1353cfb]{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite spin}@media (width<=768px){.crop-modal-overlay[data-v-d1353cfb]{padding:0}.crop-modal-card[data-v-d1353cfb]{border:none;border-radius:0;max-width:100%;height:100dvh;max-height:100dvh}.crop-modal-body[data-v-d1353cfb]{padding:16px 16px 0}.presets-bar[data-v-d1353cfb]{flex-direction:column;align-items:flex-start;gap:8px}.preset-pills[data-v-d1353cfb]{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;width:100%;padding-bottom:4px;overflow-x:auto}.preset-pills[data-v-d1353cfb]::-webkit-scrollbar{display:none}.preset-pill[data-v-d1353cfb]{flex-shrink:0}.cropper-viewport[data-v-d1353cfb]{flex:1;height:auto;min-height:0}.crop-modal-footer[data-v-d1353cfb]{padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px)) 16px}}.cms-select-wrapper[data-v-3ef89cc7]{width:100%;position:relative}.select-trigger[data-v-3ef89cc7]{border-radius:var(--cms-radius-sm);width:100%;height:32px;font-family:var(--cms-font-sans);color:var(--cms-color-text-main);cursor:pointer;transition:all var(--cms-transition-fast);background:0 0;border:1px solid #0000;outline:none;align-items:center;gap:6px;padding:0 8px;font-size:12.5px;font-weight:600;display:flex}.select-trigger[data-v-3ef89cc7]:hover:not(:disabled){background:var(--cms-color-surface-hover);color:var(--cms-color-primary)}.select-trigger[data-v-3ef89cc7]:focus-visible,.cms-select-wrapper.is-open .select-trigger[data-v-3ef89cc7]{background:var(--cms-color-surface-hover);border-color:var(--cms-color-border)}.select-trigger[data-v-3ef89cc7]:disabled{opacity:.5;cursor:not-allowed}.trigger-icon[data-v-3ef89cc7]{color:var(--cms-color-text-faint);flex-shrink:0}.trigger-label[data-v-3ef89cc7]{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex-grow:1;overflow:hidden}.caret-icon[data-v-3ef89cc7]{color:var(--cms-color-text-faint);transition:transform var(--cms-transition-fast);flex-shrink:0}.cms-select-wrapper.is-open .caret-icon[data-v-3ef89cc7]{transform:rotate(180deg)}.select-menu[data-v-3ef89cc7]{z-index:1000;background:var(--cms-color-surface);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-md);width:max-content;min-width:100%;max-width:280px;box-shadow:var(--cms-shadow-md);-ms-overflow-style:none;scrollbar-width:none;max-height:calc(100vh - 120px);margin:0;padding:3px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.select-menu[data-v-3ef89cc7]::-webkit-scrollbar{display:none}.menu-item[data-v-3ef89cc7]{border-radius:var(--cms-radius-xs);color:var(--cms-color-text-subtle);cursor:pointer;white-space:nowrap;transition:background-color var(--cms-transition-fast), color var(--cms-transition-fast);justify-content:space-between;align-items:center;gap:12px;padding:6px 10px;font-size:12px;font-weight:400;display:flex}.menu-item[data-v-3ef89cc7]:hover:not(.is-disabled){background:var(--cms-color-surface-hover);color:var(--cms-color-text-main)}.menu-item.is-selected[data-v-3ef89cc7]{color:var(--cms-color-text-main);font-weight:500}.menu-item.is-disabled[data-v-3ef89cc7]{opacity:.5;cursor:not-allowed}.option-content-wrapper[data-v-3ef89cc7]{align-items:center;gap:8px;display:flex}.option-lead-icon[data-v-3ef89cc7]{color:var(--cms-color-text-faint);flex-shrink:0}.option-content[data-v-3ef89cc7]{flex-direction:column;display:flex}.option-label[data-v-3ef89cc7]{line-height:1.3}.option-subtitle[data-v-3ef89cc7]{color:var(--cms-color-text-faint);font-size:10.5px;font-family:var(--cms-font-mono)}.option-meta-actions[data-v-3ef89cc7]{align-items:center;gap:6px;display:flex}.option-action-btn[data-v-3ef89cc7]{border-radius:var(--cms-radius-xs);width:20px;height:20px;color:var(--cms-color-text-muted);cursor:pointer;opacity:0;transition:all var(--cms-transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.menu-item:hover .option-action-btn[data-v-3ef89cc7]{opacity:1}.option-action-btn[data-v-3ef89cc7]:hover{background:var(--cms-color-border);color:var(--cms-color-primary)}.add-new-item[data-v-3ef89cc7]{border-top:1px solid var(--cms-color-border);color:var(--cms-color-text-muted);justify-content:flex-start;gap:6px;margin-top:3px;padding-top:6px;font-weight:500}.add-new-item[data-v-3ef89cc7]:hover{background:var(--cms-color-surface-hover);color:var(--cms-color-primary)}.add-icon[data-v-3ef89cc7]{color:var(--cms-color-text-faint)}.add-new-item:hover .add-icon[data-v-3ef89cc7]{color:var(--cms-color-primary)}.check-icon[data-v-3ef89cc7]{color:var(--cms-color-primary);flex-shrink:0}.dropdown-fade-enter-active[data-v-3ef89cc7],.dropdown-fade-leave-active[data-v-3ef89cc7]{transition:opacity var(--cms-transition-fast), transform var(--cms-transition-fast)}.dropdown-fade-enter-from[data-v-3ef89cc7],.dropdown-fade-leave-to[data-v-3ef89cc7]{opacity:0;transform:translateY(-2px)}.link-editor-backdrop[data-v-0037d0e8]{z-index:10000;background:#0f172a47;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.link-editor[data-v-0037d0e8]{background:var(--cms-color-surface);border-radius:var(--cms-radius-md);width:min(860px,100%);height:620px;font-family:var(--cms-font-sans);color:var(--cms-color-text-main);flex-direction:column;display:flex;overflow:hidden}.link-editor-header[data-v-0037d0e8]{border-bottom:1px solid var(--cms-color-border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.link-editor-header div[data-v-0037d0e8]{align-items:center;gap:8px;display:flex}.link-close[data-v-0037d0e8],.link-editor button[data-v-0037d0e8]{cursor:pointer;border:0}.link-close[data-v-0037d0e8]{color:var(--cms-color-text-muted);background:0 0;display:flex}.link-types[data-v-0037d0e8]{border-bottom:1px solid var(--cms-color-border);flex-wrap:wrap;flex-shrink:0;gap:4px;padding:12px 16px;display:flex}.link-types button[data-v-0037d0e8]{border-radius:var(--cms-radius-xs);color:var(--cms-color-text-muted);background:0 0;align-items:center;gap:5px;padding:7px 9px;font-size:12px;display:inline-flex}.link-types button.active[data-v-0037d0e8],.link-types button[data-v-0037d0e8]:hover{background:var(--cms-color-surface-hover);color:var(--cms-color-primary)}.link-editor-columns[data-v-0037d0e8]{flex:1;grid-template-columns:1.2fr 1fr;min-height:0;display:grid}.link-picker-panel[data-v-0037d0e8],.link-parameters[data-v-0037d0e8]{min-width:0;padding:16px;overflow:auto}.link-picker-panel[data-v-0037d0e8]{border-right:1px solid var(--cms-color-border);background:var(--cms-color-bg);padding:0}.link-parameters[data-v-0037d0e8]{flex-direction:column;display:flex}.picker-controls[data-v-0037d0e8]{z-index:2;background:var(--cms-color-bg);border-bottom:1px solid var(--cms-color-border);padding:16px;position:sticky;top:0}.node-picker-controls[data-v-0037d0e8]{margin-bottom:8px}.filter-bar[data-v-0037d0e8]{flex-wrap:wrap;gap:6px 4px;padding-bottom:8px;display:flex}.filter-pill[data-v-0037d0e8]{font-family:var(--cms-font-sans);border-radius:var(--cms-radius-full);border:1px solid var(--cms-color-border);background:var(--cms-color-surface);color:var(--cms-color-text-muted);cursor:pointer;white-space:nowrap;transition:all var(--cms-transition-fast);outline:none;padding:3px 9px;font-size:10.5px;font-weight:600}.filter-pill[data-v-0037d0e8]:hover:not(.active){border-color:var(--cms-color-border-dark);color:var(--cms-color-text-main);background:var(--cms-color-surface-hover)}.filter-pill.active[data-v-0037d0e8]{background:var(--cms-color-primary);color:#fff;border-color:var(--cms-color-primary);box-shadow:var(--cms-shadow-xs)}.link-sort-row[data-v-0037d0e8]{align-items:center;gap:8px;padding:0 2px 8px;display:flex}.sort-wrapper[data-v-0037d0e8]{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.sort-dropdown[data-v-0037d0e8]{flex:1;min-width:0}.sort-order-btn[data-v-0037d0e8]{flex-shrink:0;width:22px;height:22px;padding:3px}.sort-order-btn[data-v-0037d0e8]:hover{background:var(--cms-color-surface-hover);color:var(--cms-color-text-main)}.link-search-row[data-v-0037d0e8]{background:var(--cms-color-surface-hover);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-sm);color:var(--cms-color-text-muted);align-items:center;gap:6px;margin:0;padding:5px 8px;display:flex}.link-search-row input[data-v-0037d0e8]{color:inherit;background:0 0;border:0;outline:0;flex:1}.left-field[data-v-0037d0e8]{margin:0 0 14px}.left-field textarea[data-v-0037d0e8]{resize:vertical;min-height:110px}.validation-message[data-v-0037d0e8]{color:var(--cms-color-danger);margin:-8px 0 12px;font-size:11px}.search-status[data-v-0037d0e8]{font-size:10px}.link-results[data-v-0037d0e8],.link-tree-list[data-v-0037d0e8]{background:0 0;border:0;flex-direction:column;gap:3px;max-height:none;margin:0;padding:8px 8px 80px;display:flex;overflow:visible}.tree-group>strong[data-v-0037d0e8]{color:var(--cms-color-text-muted);border-bottom:1px solid var(--cms-color-border);padding:9px 10px;font-size:11px;display:block}.tree-group-header[data-v-0037d0e8]{color:var(--cms-color-primary);border-bottom:1px solid var(--cms-color-border);align-items:center;gap:8px;margin:8px 0 2px;padding:7px 6px;display:flex}.tree-group-header>div[data-v-0037d0e8]{flex-direction:column;gap:2px;min-width:0;display:flex}.tree-group-header strong[data-v-0037d0e8]{color:var(--cms-color-text-main);font-size:11px}.tree-group-header small[data-v-0037d0e8],.picker-item-main small[data-v-0037d0e8]{color:var(--cms-color-text-faint);font-size:10px}.link-tree-list button[data-v-0037d0e8]{border-radius:var(--cms-radius-sm);width:100%;min-height:34px;color:var(--cms-color-text-main);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;gap:10px;padding:7px 6px;display:flex}.link-tree-list button[data-v-0037d0e8]:hover{border-color:var(--cms-color-border);background:var(--cms-color-surface-hover)}.link-results button[data-v-0037d0e8]{text-align:left;border-radius:var(--cms-radius-sm);width:100%;min-height:52px;color:var(--cms-color-text-main);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:7px 6px;display:flex}.picker-item-main[data-v-0037d0e8]{text-align:left;align-items:center;gap:8px;min-width:0;display:inline-flex}.picker-item-main>span[data-v-0037d0e8]:not(.picker-thumb){flex-direction:column;gap:3px;min-width:0;display:flex}.picker-item-main strong[data-v-0037d0e8],.picker-item-main span>span[data-v-0037d0e8]{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.picker-item-type[data-v-0037d0e8]{text-transform:uppercase;letter-spacing:.04em}.picker-item-meta[data-v-0037d0e8]{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:42%;overflow:hidden}.picker-thumb[data-v-0037d0e8]{border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-sm);background:var(--cms-color-surface-hover);flex-shrink:0;width:42px;height:42px;overflow:hidden}.picker-thumb img[data-v-0037d0e8]{object-fit:cover;width:100%;height:100%;display:block}.link-results button[data-v-0037d0e8]:hover,.link-results button.selected[data-v-0037d0e8],.link-tree-list button[data-v-0037d0e8]:hover,.link-tree-list button.selected[data-v-0037d0e8]{background:var(--cms-color-surface-hover);color:var(--cms-color-primary);border-color:var(--cms-color-border)}.link-results .vault-item[data-v-0037d0e8],.link-tree-list .tree-item[data-v-0037d0e8]{border-radius:var(--cms-radius-sm);width:100%;min-width:0;color:var(--cms-color-text-main);font-family:var(--cms-font-sans);cursor:pointer;box-sizing:border-box;transition:all var(--cms-transition-fast);background:0 0;border:1px solid #0000;align-items:flex-start;gap:8px;margin:0;padding:7px 6px;font-size:12.5px;display:flex}.link-results .media-list-item[data-v-0037d0e8]{border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-sm);background:var(--cms-color-surface);width:100%;color:var(--cms-color-text-main);cursor:pointer;box-sizing:border-box;transition:all var(--cms-transition-fast);align-items:center;gap:8px;padding:6px;display:flex}.link-results .vault-item[data-v-0037d0e8]:hover:not(.active),.link-tree-list .tree-item[data-v-0037d0e8]:hover:not(.active){background:var(--cms-color-surface-hover);border-color:var(--cms-color-border)}.link-results .media-list-item[data-v-0037d0e8]:hover:not(.active){border-color:var(--cms-color-border-dark);box-shadow:var(--cms-shadow-xs)}.link-results .vault-item.active[data-v-0037d0e8],.link-tree-list .tree-item.active[data-v-0037d0e8],.link-results .media-list-item.active[data-v-0037d0e8]{background:var(--cms-color-primary-light);border-color:var(--cms-color-primary-border);color:var(--cms-color-primary);box-shadow:var(--cms-shadow-xs)}.link-results small[data-v-0037d0e8]{color:var(--cms-color-text-faint)}.link-field[data-v-0037d0e8]{width:100%;color:var(--cms-color-text-muted);flex-direction:column;align-items:flex-start;gap:5px;margin:0 0 16px;font-size:12px;display:flex}.required-asterisk[data-v-0037d0e8]{color:var(--cms-color-danger,#ef4444);margin-left:2px}.link-field>span[data-v-0037d0e8]:first-child,.link-checkbox-field>span[data-v-0037d0e8]:first-child{text-align:left}.link-field input[data-v-0037d0e8],.link-field select[data-v-0037d0e8]{box-sizing:border-box;border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);background:var(--cms-color-surface);width:100%;min-height:34px;color:var(--cms-color-text-main);padding:7px 9px}.link-checkbox-field[data-v-0037d0e8]{width:100%;color:var(--cms-color-text-muted);justify-content:space-between;align-items:center;gap:8px;margin:0 0 16px;font-size:12px;display:flex}.link-checkbox-field .toggle-switch[data-v-0037d0e8]{flex-shrink:0;width:42px;height:22px;display:inline-block;position:relative}.link-checkbox-field .toggle-switch input[data-v-0037d0e8]{opacity:0;width:0;height:0}.link-checkbox-field .slider[data-v-0037d0e8]{cursor:pointer;background-color:var(--cms-color-surface-active);border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-full);transition:var(--cms-transition-fast);position:absolute;inset:0}.link-checkbox-field .slider[data-v-0037d0e8]:before{content:"";border-radius:var(--cms-radius-full);width:16px;height:16px;box-shadow:var(--cms-shadow-xs);transition:var(--cms-transition-fast);background-color:#fff;position:absolute;bottom:2px;left:2px}.link-checkbox-field input:checked+.slider[data-v-0037d0e8]:before{transform:translate(20px)}.link-checkbox-field input[data-v-0037d0e8]{accent-color:var(--cms-color-primary)}.link-editor-footer[data-v-0037d0e8]{border-top:1px solid var(--cms-color-border);flex-shrink:0;justify-content:flex-end;gap:8px;padding:16px;display:flex}.link-editor-footer button[data-v-0037d0e8]{border-radius:var(--cms-radius-sm);padding:8px 12px;font-size:12px}.secondary[data-v-0037d0e8]{color:var(--cms-color-text-muted);background:0 0}.remove-link[data-v-0037d0e8]{color:var(--cms-color-danger);background:0 0;margin-right:auto}.primary[data-v-0037d0e8]{background:var(--cms-color-primary);color:#fff}.primary[data-v-0037d0e8]:disabled{opacity:.5;cursor:not-allowed}.dynamic-form[data-v-d15c30a2]{font-family:var(--cms-font-sans)}.dynamic-form.is-readonly[data-v-d15c30a2]{opacity:.7;pointer-events:none;-webkit-user-select:none;user-select:none}.dynamic-form.is-readonly input[data-v-d15c30a2],.dynamic-form.is-readonly textarea[data-v-d15c30a2],.dynamic-form.is-readonly select[data-v-d15c30a2]{background-color:var(--cms-color-surface-hover,#f3f4f6);color:var(--cms-color-text-muted);border-color:var(--cms-color-border-dark)}.pills-container[data-v-d15c30a2]{flex-wrap:wrap;gap:6px;display:flex}.pill-btn[data-v-d15c30a2]{border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-full,999px);background:var(--cms-color-surface);color:var(--cms-color-text-muted);font-family:var(--cms-font-sans);cursor:pointer;transition:all var(--cms-transition-fast);-webkit-user-select:none;user-select:none;outline:none;padding:6px 14px;font-size:13px;font-weight:600}.pill-btn[data-v-d15c30a2]:hover:not(:disabled){border-color:var(--cms-color-primary);color:var(--cms-color-primary);background:var(--cms-color-surface-hover)}.pill-btn.is-active[data-v-d15c30a2]{background:var(--cms-color-primary);border-color:var(--cms-color-primary);color:#fff}.pill-btn[data-v-d15c30a2]:disabled{opacity:.6;cursor:not-allowed}.datetime-wrapper[data-v-d15c30a2]{border-radius:var(--cms-radius-sm);width:100%;transition:border-color var(--cms-transition-fast);border-left:3px solid #0000;align-items:center;gap:6px;display:flex}.datetime-wrapper .datetime-picker[data-v-d15c30a2]{border-top-left-radius:0;border-bottom-left-radius:0;flex:1;min-width:0}.datetime-wrapper.is-upcoming[data-v-d15c30a2]{border-left-color:var(--cms-color-info,#0284c7)}.datetime-wrapper.is-showing[data-v-d15c30a2]{border-left-color:var(--cms-color-success,#16a34a)}.datetime-wrapper.is-passed[data-v-d15c30a2]{border-left-color:var(--cms-color-warning,#d97706)}.utc-hint[data-v-d15c30a2]{color:var(--cms-color-text-faint,#94a3b8);text-transform:none;letter-spacing:normal;margin-left:6px;font-weight:500}.link-field-control[data-v-d15c30a2]{align-items:center;gap:6px;width:100%;display:flex}.link-field-display[data-v-d15c30a2]{border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);background:var(--cms-color-surface);min-width:0;min-height:36px;color:var(--cms-color-text-main);text-align:left;cursor:pointer;flex:1;align-items:center;gap:8px;padding:7px 10px;display:flex}.link-field-display[data-v-d15c30a2]:disabled{opacity:.6;cursor:not-allowed}.link-field-display-text[data-v-d15c30a2]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.link-field-display-text.empty[data-v-d15c30a2]{color:var(--cms-color-text-muted)}.link-field-display[data-v-d15c30a2]:hover:not(:disabled){border-color:var(--cms-color-primary);background:var(--cms-color-surface-hover)}.link-field-clear[data-v-d15c30a2]{border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);background:var(--cms-color-surface);width:36px;min-width:36px;min-height:36px;color:var(--cms-color-text-muted);cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex}.link-field-clear[data-v-d15c30a2]:disabled{opacity:.6;cursor:not-allowed}.link-field-clear[data-v-d15c30a2]:hover:not(:disabled){border-color:var(--cms-color-danger);color:var(--cms-color-danger);background:var(--cms-color-surface-hover)}.form-group[data-v-d15c30a2]{margin-bottom:18px}.form-group.has-error label[data-v-d15c30a2]{color:var(--cms-color-danger,#ef4444)}.label-row[data-v-d15c30a2]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.form-group label[data-v-d15c30a2]{font-family:var(--cms-font-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--cms-color-text-muted);transition:color var(--cms-transition-fast);font-size:11px;font-weight:700}.required-asterisk[data-v-d15c30a2]{color:var(--cms-color-danger,#ef4444);margin-left:2px}.inherit-controls[data-v-d15c30a2]{align-items:center;gap:8px;display:flex}.action-icon-btn.small-btn[data-v-d15c30a2]{border-radius:4px;width:24px;height:24px}.action-icon-btn[data-v-d15c30a2]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border-dark);color:var(--cms-color-text-muted);cursor:pointer;transition:all var(--cms-transition-fast);outline:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.action-icon-btn[data-v-d15c30a2]:disabled{opacity:.6;cursor:not-allowed}.action-icon-btn[data-v-d15c30a2]:hover:not(:disabled){background:var(--cms-color-surface-hover);color:var(--cms-color-text-main);border-color:var(--cms-color-border-input)}.action-icon-btn.is-tied[data-v-d15c30a2]{background:var(--cms-color-primary-light);color:var(--cms-color-primary);border-color:var(--cms-color-primary-border)}.form-group input[type=text][data-v-d15c30a2],.form-group input[type=password][data-v-d15c30a2],.form-group input[type=email][data-v-d15c30a2],.form-group input[type=tel][data-v-d15c30a2],.form-group input[type=url][data-v-d15c30a2],.form-group input[type=number][data-v-d15c30a2],.form-group textarea[data-v-d15c30a2],.form-group select[data-v-d15c30a2],.datetime-picker[data-v-d15c30a2]{border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);box-sizing:border-box;width:100%;font-family:var(--cms-font-sans);color:var(--cms-color-text-main);background:var(--cms-color-surface);transition:all var(--cms-transition-fast);outline:none;padding:8.5px 11px;font-size:14px}.form-group input[type=text][data-v-d15c30a2]:focus:not(:disabled),.form-group input[type=password][data-v-d15c30a2]:focus:not(:disabled),.form-group input[type=email][data-v-d15c30a2]:focus:not(:disabled),.form-group input[type=tel][data-v-d15c30a2]:focus:not(:disabled),.form-group input[type=url][data-v-d15c30a2]:focus:not(:disabled),.form-group input[type=number][data-v-d15c30a2]:focus:not(:disabled),.form-group textarea[data-v-d15c30a2]:focus:not(:disabled),.form-group select[data-v-d15c30a2]:focus:not(:disabled),.datetime-picker[data-v-d15c30a2]:focus:not(:disabled){border-color:var(--cms-color-primary)}.input-invalid[data-v-d15c30a2],.input-invalid[data-v-d15c30a2]:focus{border-color:var(--cms-color-danger,#ef4444)!important;box-shadow:none!important}.error-message[data-v-d15c30a2]{font-family:var(--cms-font-sans);color:var(--cms-color-danger,#ef4444);letter-spacing:.01em;align-items:center;gap:4px;margin-top:5px;font-size:11px;font-weight:500;display:flex}.form-group select[data-v-d15c30a2]:disabled{opacity:.6;cursor:not-allowed;background:var(--cms-color-surface-hover);border-color:var(--cms-color-border)}.form-group textarea[data-v-d15c30a2]{resize:vertical;min-height:80px}.color-picker-wrapper[data-v-d15c30a2]{align-items:center;gap:8px;display:flex}.color-swatch-input[data-v-d15c30a2]{border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-sm);cursor:pointer;background:0 0;width:36px;height:36px;padding:0}.color-swatch-input[data-v-d15c30a2]:disabled{opacity:.6;cursor:not-allowed}.color-hex-input[data-v-d15c30a2]{flex-grow:1}.field-hint[data-v-d15c30a2]{font-family:var(--cms-font-sans);color:var(--cms-color-primary);font-size:11px;font-weight:550;display:inline-block}.field-hint.is-unlinked[data-v-d15c30a2]{color:var(--cms-color-text-faint);font-weight:400}.unlinked-hint-action[data-v-d15c30a2]{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.unlinked-hint-action[data-v-d15c30a2]:hover{color:var(--cms-color-primary-hover)}.inline-icon[data-v-d15c30a2]{margin-top:-1px}.hint-flex[data-v-d15c30a2]{align-items:center;gap:4px;display:inline-flex}.toggle-switch[data-v-d15c30a2]{width:42px;height:22px;display:inline-block;position:relative}.toggle-switch input[data-v-d15c30a2]{opacity:0;width:0;height:0}.slider[data-v-d15c30a2]{cursor:pointer;background-color:var(--cms-color-surface-active);border:1px solid var(--cms-color-border-dark);transition:var(--cms-transition-fast);border-radius:var(--cms-radius-full);position:absolute;inset:0}.slider[data-v-d15c30a2]:before{content:"";width:16px;height:16px;transition:var(--cms-transition-fast);border-radius:var(--cms-radius-full);background-color:#fff;position:absolute;bottom:2px;left:2px}input:checked+.slider[data-v-d15c30a2]:before{transform:translate(20px)}input:disabled+.slider[data-v-d15c30a2]{opacity:.6;cursor:not-allowed}.toggle-switch.variant-primary input:checked+.slider[data-v-d15c30a2]{background-color:var(--cms-color-primary);border-color:var(--cms-color-primary-hover)}.toggle-switch.variant-danger input:checked+.slider[data-v-d15c30a2]{background-color:var(--cms-color-danger);border-color:var(--cms-color-danger-hover)}.toggle-switch.variant-success input:checked+.slider[data-v-d15c30a2]{background-color:var(--cms-color-success);border-color:var(--cms-color-success)}.rte-header-toolbar[data-v-1335c5b4]{z-index:100;border-bottom:1px solid var(--cms-color-border-light,#e2e8f0);box-sizing:border-box;background:0 0;justify-content:flex-start;align-items:center;width:100%;padding:6px 20px 8px;display:flex;position:sticky;top:0}.toolbar-controls[data-v-1335c5b4]{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.toolbar-btn[data-v-1335c5b4]{border-radius:var(--cms-radius-xs,4px);width:30px;height:30px;color:var(--cms-color-text-muted,#64748b);cursor:pointer;transition:all var(--cms-transition-fast,.15s);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.toolbar-btn[data-v-1335c5b4]:hover{background:var(--cms-color-surface-hover,#f1f5f9);color:var(--cms-color-text-main,#0f172a)}.toolbar-btn.is-active[data-v-1335c5b4]{background:var(--cms-color-primary-light,#eff6ff);color:var(--cms-color-primary,#2563eb)}.type-picker-screen[data-v-1eb0b7df]{background:var(--cms-color-bg,#f8fafc);flex-direction:column;flex-grow:1;justify-content:flex-start;align-items:flex-start;width:100%;height:100%;padding:24px 32px;display:flex;overflow-y:auto}.picker-container[data-v-1eb0b7df]{flex-direction:column;gap:20px;width:100%;max-width:900px;display:flex}.picker-header[data-v-1eb0b7df]{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.header-title-row[data-v-1eb0b7df]{color:var(--cms-color-primary,#2563eb);align-items:center;gap:8px;display:flex}.header-icon[data-v-1eb0b7df]{flex-shrink:0}.picker-header h2[data-v-1eb0b7df]{color:var(--cms-color-text-main,#0f172a);margin:0;font-size:18px;font-weight:700}.picker-header p[data-v-1eb0b7df]{color:var(--cms-color-text-muted,#64748b);margin:0;font-size:13px}.options-grid[data-v-1eb0b7df]{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.option-card[data-v-1eb0b7df]{background:var(--cms-color-surface,#fff);border:1px solid var(--cms-color-border,#e2e8f0);border-radius:var(--cms-radius-md,6px);text-align:left;cursor:pointer;transition:all var(--cms-transition-fast,.15s ease);outline:none;flex-direction:column;padding:14px 16px;display:flex}.option-card[data-v-1eb0b7df]:hover{border-color:var(--cms-color-primary,#2563eb)}.card-header[data-v-1eb0b7df]{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.type-title[data-v-1eb0b7df]{color:var(--cms-color-text-main,#0f172a);font-size:14px;font-weight:600}.type-id[data-v-1eb0b7df]{font-size:10px;font-family:var(--cms-font-mono,monospace);color:var(--cms-color-text-muted,#94a3b8);background:var(--cms-color-bg,#f1f5f9);border-radius:4px;padding:2px 6px}.card-desc[data-v-1eb0b7df]{color:var(--cms-color-text-muted,#64748b);flex-grow:1;margin:0 0 12px;font-size:12px;line-height:1.4}.card-footer[data-v-1eb0b7df]{color:var(--cms-color-primary,#2563eb);justify-content:space-between;align-items:center;font-size:11px;font-weight:600;display:flex}.arrow-icon[data-v-1eb0b7df]{transition:transform .15s}.option-card:hover .arrow-icon[data-v-1eb0b7df]{transform:translate(3px)}.picker-footer[data-v-1eb0b7df]{justify-content:flex-start;padding-top:4px;display:flex}.canvas[data-v-77e7b534]{background:var(--cms-color-surface);font-family:var(--cms-font-sans);flex-direction:column;flex-grow:1;display:flex;position:relative;overflow-y:auto}.entity-header[data-v-77e7b534]{z-index:100;background:var(--cms-color-bg);border-bottom:1px solid var(--cms-color-border);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;container-type:inline-size}@container (width<=690px){.publish-btn .btn-text[data-v-77e7b534],.save-btn .btn-text[data-v-77e7b534],.slug-badge[data-v-77e7b534]{display:none}}.top-row[data-v-77e7b534]{justify-content:space-between;align-items:center;padding:10px 20px 6px;display:flex}.bottom-row[data-v-77e7b534]{box-sizing:border-box;align-items:center;height:44px;padding:0;display:flex}.bottom-row-content[data-v-77e7b534]{align-items:center;width:100%;height:100%;display:flex}.node-info[data-v-77e7b534]{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.dynamic-title-group[data-v-77e7b534]{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.auto-sizing-input[data-v-77e7b534]{align-items:center;display:inline-grid}.transparent-btn[data-v-77e7b534]{background:0 0;border-color:#0000}.transparent-btn[data-v-77e7b534]:hover{background:var(--cms-color-surface-hover);border-color:#0000!important}.auto-sizing-input[data-v-77e7b534]:after{content:attr(data-value) "";visibility:hidden;white-space:pre;box-sizing:content-box;border:1px solid #0000;grid-area:1/1;min-width:30px;max-width:650px;margin-left:-6px;padding:4px 6px;font-family:inherit;font-size:17px;font-weight:700}.inline-title-input[data-v-77e7b534]{color:var(--cms-color-text-main);border-radius:var(--cms-radius-sm);width:100%;min-width:80px;max-width:650px;transition:background-color var(--cms-transition-fast), border-color var(--cms-transition-fast);box-sizing:content-box;background:0 0;border:1px solid #0000;outline:none;grid-area:1/1;margin:0 0 0 -6px;padding:4px 6px;font-family:inherit;font-size:17px;font-weight:700}.inline-title-input[data-v-77e7b534]:hover:not(:disabled){background:var(--cms-color-surface-hover)}.inline-title-input[data-v-77e7b534]:focus:not(:disabled){background:var(--cms-color-bg);border-color:var(--cms-color-primary)}.inline-title-input[data-v-77e7b534]:disabled{opacity:.75;cursor:not-allowed}.inline-title-input[data-v-77e7b534]::placeholder{color:var(--cms-color-text-muted);opacity:.5;font-weight:400}.meta-row[data-v-77e7b534]{align-items:center;gap:6px;display:flex}.slug-badge[data-v-77e7b534]{font-size:13px;font-family:var(--cms-font-mono);color:var(--cms-color-text-muted)}.actions-group[data-v-77e7b534]{align-items:center;gap:10px;display:flex}[data-v-77e7b534] .icon-only-btn{padding:0 8px!important}.context-wrapper[data-v-77e7b534]{display:flex;position:relative}.publish-btn[data-v-77e7b534],.save-btn[data-v-77e7b534]{align-items:center;gap:6px;display:flex}.publish-icon[data-v-77e7b534],.save-icon[data-v-77e7b534]{margin-top:-1px}.tab-navigation[data-v-77e7b534]{scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;align-items:center;gap:4px;width:100%;height:100%;padding:0 10px 0 5px;display:flex;overflow-x:auto}.tab-navigation[data-v-77e7b534]::-webkit-scrollbar{display:none}.tab-btn[data-v-77e7b534]{height:100%;font-family:var(--cms-font-sans);color:var(--cms-color-text-muted);cursor:pointer;transition:color var(--cms-transition-fast);box-sizing:border-box;white-space:nowrap;background:0 0;border:none;outline:none;flex-shrink:0;align-items:center;padding:0 16px;font-size:13px;font-weight:600;display:inline-flex;position:relative}.tab-btn[data-v-77e7b534]:hover{color:var(--cms-color-text-main)}.tab-btn.active[data-v-77e7b534]{color:var(--cms-color-primary);z-index:11}.tab-btn.active[data-v-77e7b534]:after{content:"";background-color:var(--cms-color-primary);border-radius:var(--cms-radius-xs) var(--cms-radius-xs) 0 0;z-index:12;height:2px;position:absolute;bottom:-1px;left:0;right:0}.conflict-banner[data-v-77e7b534]{background:var(--cms-color-warning-light);border-bottom:1px solid var(--cms-color-warning-border);z-index:99;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.conflict-text[data-v-77e7b534]{color:var(--cms-color-warning);align-items:center;gap:12px;font-size:14px;display:flex}.conflict-text p[data-v-77e7b534]{color:var(--cms-color-text-subtle);margin:2px 0 0;font-size:13px}.warning-icon[data-v-77e7b534]{font-size:20px}.conflict-actions[data-v-77e7b534]{gap:8px;display:flex}.settings-view[data-v-77e7b534]{width:auto;padding:20px;transition:opacity .2s}.settings-view.is-full-width[data-v-77e7b534]{max-width:none;padding:0}.settings-view.is-loading-data[data-v-77e7b534]{opacity:.5;pointer-events:none}.split-button-group[data-v-77e7b534]{display:flex;position:relative}.split-button-group .publish-btn[data-v-77e7b534]{border-top-right-radius:0;border-bottom-right-radius:0;border-right:1px solid #ffffff40!important}.split-button-group[data-v-77e7b534] .restore-btn{background-color:var(--cms-color-warning,#d97706)!important;border-top-color:var(--cms-color-warning,#d97706)!important;border-bottom-color:var(--cms-color-warning,#d97706)!important;border-left-color:var(--cms-color-warning,#d97706)!important;color:#fff!important}.split-button-group[data-v-77e7b534] .restore-btn:hover:not(:disabled){background-color:#b45309!important;border-top-color:#b45309!important;border-bottom-color:#b45309!important;border-left-color:#b45309!important}.dropdown-wrapper[data-v-77e7b534]{display:flex;position:relative}.split-dropdown-btn[data-v-77e7b534]{background:var(--cms-color-primary);color:#fff;border-top-right-radius:var(--cms-radius-sm);border-bottom-right-radius:var(--cms-radius-sm);cursor:pointer;transition:background-color var(--cms-transition-fast);border:none;justify-content:center;align-items:center;padding:0 8px;display:flex}.split-dropdown-btn[data-v-77e7b534]:hover:not(:disabled){background:var(--cms-color-primary-hover)}.split-dropdown-btn[data-v-77e7b534]:disabled{opacity:.5;cursor:not-allowed}.drawer-container[data-v-f7b47664]{z-index:1000;pointer-events:none;position:fixed;inset:0}.drawer-backdrop[data-v-f7b47664]{pointer-events:auto;position:absolute;inset:0}.inline-drawer-panel[data-v-f7b47664]{background:var(--cms-color-surface,#fff);border-left:1px solid var(--cms-color-border,#e5e7eb);width:340px;max-width:90vw;font-family:var(--cms-font-sans,sans-serif);pointer-events:auto;flex-direction:column;animation:.2s cubic-bezier(.16,1,.3,1) slide-in-f7b47664;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-4px 0 20px #0000001f}.panel-header[data-v-f7b47664]{border-bottom:1px solid var(--cms-color-border,#e5e7eb);background:var(--cms-color-surface,#fff);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.section-title[data-v-f7b47664]{text-transform:uppercase;letter-spacing:.05em;color:var(--cms-color-text-muted,#6b7280);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:700;overflow:hidden}.panel-close[data-v-f7b47664]{color:var(--cms-color-text-muted,#6b7280);cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.panel-close[data-v-f7b47664]:hover{color:var(--cms-color-text-main,#111827)}.panel-body[data-v-f7b47664]{flex-direction:column;flex-grow:1;padding:18px;display:flex;overflow-y:auto}.panel-empty[data-v-f7b47664]{text-align:center;color:var(--cms-color-text-muted,#6b7280);flex-direction:column;flex-grow:1;justify-content:center;align-items:center;padding:36px 16px;display:flex}.empty-icon-badge[data-v-f7b47664]{border-radius:var(--cms-radius-md,8px);background:var(--cms-color-surface-hover,#f3f4f6);border:1px solid var(--cms-color-border,#e5e7eb);width:40px;height:40px;color:var(--cms-color-text-faint,#9ca3af);justify-content:center;align-items:center;margin-bottom:10px;display:flex}.panel-empty p[data-v-f7b47664]{margin:0;font-size:12.5px}.block-visibility-field[data-v-f7b47664]{border-bottom:1px solid var(--cms-color-border);margin-bottom:18px;padding-bottom:14px}.label-row[data-v-f7b47664]{border-top:1px solid var(--cms-color-border);color:var(--cms-color-text-muted);justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:14px;font-size:12px;display:flex}.toggle-switch[data-v-f7b47664]{width:42px;height:22px;display:inline-block;position:relative}.toggle-switch input[data-v-f7b47664]{opacity:0;width:0;height:0}.slider[data-v-f7b47664]{cursor:pointer;background:var(--cms-color-surface-active);border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-full);transition:background var(--cms-transition-fast);position:absolute;inset:0}.slider[data-v-f7b47664]:before{content:"";border-radius:var(--cms-radius-full);width:16px;height:16px;box-shadow:var(--cms-shadow-xs);transition:transform var(--cms-transition-fast);background-color:#fff;position:absolute;bottom:2px;left:2px}.toggle-switch input:checked+.slider[data-v-f7b47664]{background:var(--cms-color-danger);border-color:var(--cms-color-danger-hover)}.toggle-switch input:checked+.slider[data-v-f7b47664]:before{transform:translate(20px)}.panel-footer[data-v-f7b47664]{border-top:1px solid var(--cms-color-border,#e5e7eb);background:var(--cms-color-surface,#fff);padding:14px 18px}.full-width-btn[data-v-f7b47664]{justify-content:center;align-items:center;gap:6px;width:100%;display:inline-flex}@keyframes slide-in-f7b47664{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-fade-enter-active[data-v-f7b47664],.drawer-fade-leave-active[data-v-f7b47664]{transition:opacity .18s}.drawer-fade-enter-from[data-v-f7b47664],.drawer-fade-leave-to[data-v-f7b47664]{opacity:0}.inline-editor-wrapper[data-v-b16dbb82]{box-sizing:border-box;width:100%;padding:8px 0}.inline-editor-wrapper.is-disabled-editor[data-v-b16dbb82]{opacity:.7;pointer-events:none;-webkit-user-select:none;user-select:none}.empty-block-warning[data-v-b16dbb82]{border:1px dashed var(--cms-color-danger,#ef4444);color:var(--cms-color-danger,#ef4444);font-family:var(--cms-font-sans);text-align:center;background:#ef44441a;border-radius:4px;padding:16px;font-size:12px;font-weight:600}.drag-area-container[data-v-e4ca419f]{box-sizing:border-box;flex-direction:column;flex:100%;width:100%;height:100%;min-height:100px;padding:20px;display:flex;position:relative}.multi-block-region[data-v-e4ca419f]{flex-direction:column;flex:100%;width:100%;height:100%;display:flex;position:relative}.empty-region-placeholder[data-v-e4ca419f]{cursor:pointer;border:1px dashed var(--cms-color-border-dark,#cbd5e1);border-radius:var(--cms-radius-md);justify-content:center;align-items:center;gap:12px;height:100%;min-height:80px;transition:background-color .2s;display:flex}.empty-region-placeholder[data-v-e4ca419f]:hover:not(.is-disabled){background-color:#3b82f60d}.empty-region-placeholder.is-disabled[data-v-e4ca419f]{cursor:not-allowed;background-color:var(--cms-color-surface-hover);border-color:#0000}.draft-lock-message[data-v-e4ca419f]{color:var(--cms-color-text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.static-add-btn[data-v-e4ca419f]{opacity:1!important;pointer-events:auto!important;transform:scale(1)!important}.drag-area[data-v-e4ca419f]{box-sizing:border-box;z-index:2;flex-direction:column;flex:100%;width:100%;height:100%;min-height:100px;display:flex;position:relative}.drag-area.is-locked[data-v-e4ca419f]{cursor:not-allowed}.ghost-block[data-v-e4ca419f]{border-radius:var(--cms-radius-sm);width:100%;min-height:64px;margin:0;opacity:1!important;background:#3b82f614!important;border:1px solid #3b82f64d!important}.round-add-btn[data-v-e4ca419f]{background:var(--cms-color-primary,#3b82f6);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.round-add-btn .plus-icon[data-v-e4ca419f]{stroke-width:2.5px;color:#fff}.block-wrapper[data-v-e4ca419f]{margin-bottom:8px;position:relative}.preview-block-card[data-v-e4ca419f]{z-index:1;transition:border-color var(--cms-transition-fast);margin:0;padding:0;position:relative}.active-item-border[data-v-e4ca419f]{background-color:var(--cms-color-primary,#3b82f6);pointer-events:none;z-index:10;width:4px;position:absolute;top:0;bottom:0;left:-20px}.preview-block-card.is-layout-card[data-v-e4ca419f]{background:0 0;border:none;padding:0}.preview-block-card.is-inherited-card[data-v-e4ca419f]{opacity:.5;cursor:not-allowed;-webkit-user-select:none;user-select:none}.preview-block-card.is-inherited-card .block-preview-content[data-v-e4ca419f]{pointer-events:none}.preview-block-card.is-hidden-block .block-preview-content[data-v-e4ca419f]{opacity:.65;filter:grayscale()}.preview-block-card.is-upcoming-block .block-preview-content[data-v-e4ca419f],.preview-block-card.is-passed-block .block-preview-content[data-v-e4ca419f]{opacity:.75;filter:grayscale(.35);transition:opacity .2s,filter .2s}.preview-block-card.is-upcoming-block:hover .block-preview-content[data-v-e4ca419f],.preview-block-card.is-passed-block:hover .block-preview-content[data-v-e4ca419f],.preview-block-card.is-upcoming-block.is-selected .block-preview-content[data-v-e4ca419f],.preview-block-card.is-passed-block.is-selected .block-preview-content[data-v-e4ca419f]{opacity:1;filter:grayscale(0)}.block-control-bar[data-v-e4ca419f]{background:var(--cms-color-surface,#fff);border:1px solid var(--cms-color-border-dark);border-radius:var(--cms-radius-md);opacity:0;pointer-events:none;z-index:50;transition:opacity var(--cms-transition-fast), transform var(--cms-transition-fast);align-items:center;gap:8px;padding:3px 5px;display:flex;position:absolute;bottom:100%;right:0;transform:translateY(8px)}.block-control-bar[data-v-e4ca419f]:after{content:"";height:10px;position:absolute;top:100%;left:0;right:0}.preview-block-card:hover>.block-control-bar[data-v-e4ca419f],.preview-block-card.is-selected>.block-control-bar[data-v-e4ca419f],.preview-block-card.has-open-context-menu>.block-control-bar[data-v-e4ca419f]{opacity:1;pointer-events:auto;transform:translateY(-4px)}:is(.preview-block-card:has(.preview-block-card:hover)>.block-control-bar[data-v-e4ca419f],.preview-block-card:has(.preview-block-card.is-selected)>.block-control-bar[data-v-e4ca419f]){z-index:49;transform:translateY(-32px)}.ctrl-btn[data-v-e4ca419f]{width:26px;height:26px;color:var(--cms-color-text-muted);border-radius:var(--cms-radius-xs);cursor:pointer;transition:all var(--cms-transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.ctrl-btn[data-v-e4ca419f]:hover{background:var(--cms-color-surface-hover);color:var(--cms-color-text-main)}.ctrl-btn.add-btn[data-v-e4ca419f]:hover{color:var(--cms-color-primary);background:var(--cms-color-surface-hover)}.ctrl-btn.placement-btn[data-v-e4ca419f]{color:var(--cms-color-text-muted);background:0 0}.ctrl-btn.disabled-btn[data-v-e4ca419f]{color:var(--cms-color-danger)}.ctrl-btn.disabled-btn[data-v-e4ca419f]:hover{color:var(--cms-color-danger);background:var(--cms-color-danger-light)}.ctrl-btn.timed-btn.is-upcoming[data-v-e4ca419f]{color:var(--cms-color-info,#0284c7)}.ctrl-btn.timed-btn.is-upcoming[data-v-e4ca419f]:hover{color:var(--cms-color-info,#0284c7);background:var(--cms-color-info-light,#e0f2fe)}.ctrl-btn.timed-btn.is-showing[data-v-e4ca419f]{color:var(--cms-color-success,#16a34a)}.ctrl-btn.timed-btn.is-showing[data-v-e4ca419f]:hover{color:var(--cms-color-success,#16a34a);background:var(--cms-color-success-light,#dcfce7)}.ctrl-btn.timed-btn.is-passed[data-v-e4ca419f]{color:var(--cms-color-warning,#d97706)}.ctrl-btn.timed-btn.is-passed[data-v-e4ca419f]:hover{color:var(--cms-color-warning,#d97706);background:var(--cms-color-warning-light,#fef3c7)}.placement-icon[data-v-e4ca419f]{align-items:center;gap:1px;display:inline-flex}.placement-label[data-v-e4ca419f]{color:var(--cms-color-primary);text-transform:capitalize;white-space:nowrap;padding:0 4px;font-size:11px}.ctrl-btn.danger-btn[data-v-e4ca419f]:hover{background:var(--cms-color-danger-light);color:var(--cms-color-danger)}.ctrl-divider[data-v-e4ca419f]{background:var(--cms-color-border);width:1px;height:14px;margin:0 2px}.nested-layout-container[data-v-e4ca419f]{flex-direction:column;gap:4px;padding-top:8px;display:flex;overflow:visible}.block-field-label{color:var(--cms-color-text-muted,#64748b);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.layout-header-label[data-v-e4ca419f]{align-self:flex-start;padding-left:6px}.nested-region-cell[data-v-e4ca419f]{z-index:1;background:0 0;min-height:60px;position:relative}.nested-region-cell[data-v-e4ca419f] .drag-area-container{padding:0!important}.nested-cell-label[data-v-e4ca419f]{margin-bottom:4px}.block-modal-backdrop[data-v-bbdf4c53]{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.block-modal-container[data-v-bbdf4c53]{background:var(--cms-color-surface);border-radius:var(--cms-radius-md);width:min(760px,100vw - 32px);max-height:min(720px,100vh - 32px);font-family:var(--cms-font-sans);flex-direction:column;display:flex;overflow:hidden}.modal-header[data-v-bbdf4c53]{border-bottom:1px solid var(--cms-color-border);justify-content:space-between;padding:16px 20px;display:flex}.modal-header h3[data-v-bbdf4c53]{margin:0;font-size:15px;font-weight:700}.modal-close-btn[data-v-bbdf4c53]{cursor:pointer;background:0 0;border:none;padding:4px}.modal-body[data-v-bbdf4c53]{grid-template-columns:150px minmax(0,1fr);min-width:0;min-height:340px;display:grid;overflow:hidden}.modal-groups[data-v-bbdf4c53]{border-right:1px solid var(--cms-color-border);background:var(--cms-color-bg);flex-direction:column;gap:3px;padding:12px 8px;display:flex;overflow-y:auto}.modal-group-tab[data-v-bbdf4c53]{border-radius:var(--cms-radius-sm);width:100%;color:var(--cms-color-text-muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;font-size:12px;display:flex}.modal-group-tab[data-v-bbdf4c53]:hover,.modal-group-tab.active[data-v-bbdf4c53]{border-color:var(--cms-color-primary-border);background:var(--cms-color-surface);color:var(--cms-color-primary)}.modal-group-count[data-v-bbdf4c53]{color:var(--cms-color-text-faint);font-size:10px}.modal-grid[data-v-bbdf4c53]{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;align-items:start;gap:12px;padding:20px;display:grid;overflow-y:auto}.modal-empty-group[data-v-bbdf4c53]{color:var(--cms-color-text-muted);grid-column:1/-1;align-self:start;font-size:12px}.modal-block-card[data-v-bbdf4c53]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-sm);cursor:pointer;text-align:left;box-sizing:border-box;gap:12px;min-width:0;padding:12px 14px;display:flex}.modal-block-card[data-v-bbdf4c53]:hover{border-color:var(--cms-color-primary);background:var(--cms-color-surface-hover)}.modal-block-card.is-layout-picker[data-v-bbdf4c53]{color:var(--cms-color-text-main)}.card-icon[data-v-bbdf4c53]{color:var(--cms-color-primary);flex-shrink:0;margin-top:2px}.modal-block-card.is-layout-picker .card-icon[data-v-bbdf4c53]{color:var(--cms-color-warning,#f59e0b)}.card-info[data-v-bbdf4c53]{flex-direction:column;min-width:0;display:flex}.card-title[data-v-bbdf4c53]{font-size:13px;font-weight:600}.card-desc[data-v-bbdf4c53]{color:var(--cms-color-text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}@media (width<=600px){.block-modal-backdrop[data-v-bbdf4c53]{align-items:flex-start;padding:16px;overflow-y:auto}.block-modal-container[data-v-bbdf4c53]{width:100%;max-height:calc(100vh - 32px)}.modal-body[data-v-bbdf4c53]{flex-direction:column;min-height:0;display:flex}.modal-groups[data-v-bbdf4c53]{border-right:none;border-bottom:1px solid var(--cms-color-border);flex-direction:row;flex-shrink:0;overflow:auto hidden}.modal-group-tab[data-v-bbdf4c53]{width:auto;min-width:max-content}.modal-grid[data-v-bbdf4c53]{grid-template-columns:1fr;padding:14px}}.full-width-playfield[data-v-13130b2f]{width:100%;font-family:var(--cms-font-sans);flex-direction:column;display:flex;position:relative}.full-width-playfield.is-canvas-disabled[data-v-13130b2f]{pointer-events:none;-webkit-user-select:none;user-select:none}.full-width-playfield.is-canvas-disabled .region-dropzone[data-v-13130b2f]{opacity:.9}.dynamic-layout-grid[data-v-13130b2f]{background-color:var(--cms-color-border);align-items:stretch;gap:1px;display:grid}.region-dropzone[data-v-13130b2f]{background:var(--cms-color-surface);flex-direction:column;height:100%;min-height:120px;display:flex;position:relative}.region-header[data-v-13130b2f]{box-sizing:border-box;justify-content:space-between;align-items:center;min-height:38px;padding:20px 20px 0;display:flex}.region-header.is-headerless[data-v-13130b2f]{justify-content:flex-end}.region-label[data-v-13130b2f]{text-transform:uppercase;letter-spacing:.1em;color:var(--cms-color-text-faint);-webkit-user-select:none;user-select:none;font-size:10px;font-weight:500}.region-label-spacer[data-v-13130b2f]{flex:1}.orphaned-blocks-safe-zone[data-v-13130b2f]{border-top:1px dashed var(--cms-color-warning);border-bottom:1px dashed var(--cms-color-warning);margin:24px 0;overflow:hidden}.safe-zone-header[data-v-13130b2f]{color:#b45309;background:#f59e0b1a;gap:12px;padding:16px 20px;display:flex}.safe-zone-text h4[data-v-13130b2f]{margin:0 0 4px;font-size:14px;font-weight:600}.safe-zone-text p[data-v-13130b2f]{opacity:.8;margin:0;font-size:12px}.orphaned-regions-grid[data-v-13130b2f]{background:#f59e0b33;flex-direction:column;gap:1px;display:flex}.orphaned-region-col[data-v-13130b2f]{background:var(--cms-color-surface)}.warning-label[data-v-13130b2f]{color:var(--cms-color-warning);padding:16px 20px 0}.region-controls-bar[data-v-13130b2f]{align-items:center;gap:8px;min-height:18px;display:flex}.inherited-label-badge[data-v-13130b2f]{text-transform:uppercase;letter-spacing:.05em;color:var(--cms-color-text-muted);align-items:center;gap:4px;font-size:10px;font-weight:600;display:flex}.region-action-menu[data-v-13130b2f]{position:relative}.menu-trigger-btn[data-v-13130b2f]{color:var(--cms-color-text-faint);cursor:pointer;transition:color var(--cms-transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex}.menu-trigger-btn[data-v-13130b2f]:hover{color:var(--cms-color-text-main)}.connections-panel[data-v-cb8b8835]{flex-direction:column;gap:32px;max-width:800px;padding:24px 32px;display:flex}.panel-section[data-v-cb8b8835]{flex-direction:column;gap:16px;display:flex}.section-header[data-v-cb8b8835]{align-items:flex-start;gap:12px;display:flex}.header-icon[data-v-cb8b8835]{color:var(--cms-color-primary,#2563eb);flex-shrink:0;margin-top:2px}.section-header h3[data-v-cb8b8835]{color:var(--cms-color-text-main,#0f172a);margin:0 0 4px;font-size:16px;font-weight:600}.section-desc[data-v-cb8b8835]{color:var(--cms-color-text-muted,#64748b);margin:0;font-size:13px;line-height:1.4}.channels-grid[data-v-cb8b8835]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.channel-card[data-v-cb8b8835]{background:var(--cms-color-surface,#fff);border:1px solid var(--cms-color-border,#e2e8f0);border-radius:var(--cms-radius-md,6px);cursor:pointer;transition:all var(--cms-transition-fast,.15s ease);align-items:center;gap:12px;padding:12px 16px;display:flex}.channel-card[data-v-cb8b8835]:hover{border-color:var(--cms-color-primary,#2563eb)}.channel-card.active[data-v-cb8b8835]{border-color:var(--cms-color-primary,#2563eb);background:var(--cms-color-primary-light,#eff6ff)}.channel-checkbox[data-v-cb8b8835]{cursor:pointer;accent-color:var(--cms-color-primary,#2563eb)}.channel-info[data-v-cb8b8835]{flex-direction:column;display:flex}.channel-name[data-v-cb8b8835]{color:var(--cms-color-text-main,#0f172a);font-size:13px;font-weight:600}.channel-key[data-v-cb8b8835]{color:var(--cms-color-text-muted,#94a3b8);font-size:11px;font-family:var(--cms-font-mono,monospace)}.empty-channels[data-v-cb8b8835]{color:var(--cms-color-text-muted,#64748b);background:var(--cms-color-bg,#f8fafc);border-radius:var(--cms-radius-md,6px);align-items:center;gap:8px;padding:16px;font-size:13px;display:flex}.node-editor-wrapper[data-v-bbb124b4]{flex-direction:column;flex-grow:1;width:100%;height:100%;display:flex;overflow:hidden}.split-workspace[data-v-bbb124b4]{width:100%;height:100%;display:flex;position:relative;overflow:hidden}.drag-pointer-shield[data-v-bbb124b4]{z-index:9999;cursor:col-resize;background:0 0;position:absolute;inset:0}.left-pane[data-v-bbb124b4]{flex-direction:column;min-width:320px;height:100%;display:flex;overflow:hidden}.right-pane[data-v-bbb124b4]{flex-direction:column;min-width:280px;height:100%;display:flex;overflow:hidden}@media (width<=768px){.left-pane[data-v-bbb124b4],.right-pane[data-v-bbb124b4]{min-width:100%}}.canvas-tab-view[data-v-bbb124b4]{flex-direction:column;flex-grow:1;width:100%;display:flex}.tab-fade-enter-active[data-v-bbb124b4],.tab-fade-leave-active[data-v-bbb124b4]{transition:opacity var(--cms-transition-fast)}.tab-fade-enter-from[data-v-bbb124b4],.tab-fade-leave-to[data-v-bbb124b4]{opacity:0}
|