@brightsideoy/kama 1.0.0-alpha.20 → 1.0.0-alpha.21
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/content/definitions/blocks/image-gallery.yaml +34 -0
- package/content/definitions/blocks/youtube.yaml +8 -0
- package/content/definitions/field-sets/access.yaml +10 -0
- package/content/definitions/field-sets/page-base.yaml +16 -1
- package/content/definitions/taxonomies/media-tag.yaml +15 -0
- package/definitions/editor/default.ts +15 -1
- package/dist/assets/AssetEditor-B4W7tV1a.js +1 -0
- package/dist/assets/AssetEditor-D9sz6bfN.css +1 -0
- package/dist/assets/CmsFieldTaxonomy-CVlKL-l2.css +1 -0
- package/dist/assets/CmsFieldTaxonomy-C_AwHDwY.js +1 -0
- package/dist/assets/{CmsHelp-DyPJLGGi.js → CmsHelp-BQkr9KyU.js} +1 -1
- package/dist/assets/{CmsPublisher-DNLwjirk.js → CmsPublisher-XSCPrp5L.js} +1 -1
- package/dist/assets/NodeEditor-4TsNvk2f.css +1 -0
- package/dist/assets/NodeEditor-DA5GRtRP.js +161 -0
- package/dist/assets/{TrashWorkspace-DgIg1v6t.js → TrashWorkspace-CATe46WF.js} +1 -1
- package/dist/assets/index-CY0VYSyt.css +1 -0
- package/dist/assets/index-DdG9Pozx.js +14 -0
- package/dist/assets/{plus-FQRsZBoJ.js → plus-CX_GHzXs.js} +1 -1
- package/dist/assets/useNodes-CqFlc72m.js +1 -0
- package/dist/{dist-D_Q1y4Kh.js → dist-3Xc2TTZw.js} +1117 -456
- package/dist/index.html +4 -4
- package/dist/index.js +1117 -456
- package/dist/schema-compiler.js +1 -1
- package/package.json +5 -5
- package/schema.sql +10 -0
- package/templates/astro-starter/src/components/global/NavigationMenu.astro +11 -3
- package/dist/assets/AssetEditor-D5j7pwcK.css +0 -1
- package/dist/assets/AssetEditor-Dt1zCR7_.js +0 -1
- package/dist/assets/NodeEditor-CiXQKXK1.js +0 -147
- package/dist/assets/NodeEditor-pZI3gu4a.css +0 -1
- package/dist/assets/index-DQ6_RmCI.js +0 -14
- package/dist/assets/index-DcKiaRjI.css +0 -1
- package/dist/assets/useNodes-D2-VxsxR.js +0 -1
- package/templates/astro-starter/old_src/components/blocks/BlockRenderer.astro +0 -143
- package/templates/astro-starter/old_src/components/blocks/ColumnLayout.astro +0 -67
- package/templates/astro-starter/old_src/components/blocks/HeaderImage.astro +0 -126
- package/templates/astro-starter/old_src/components/blocks/Hero.astro +0 -218
- package/templates/astro-starter/old_src/components/blocks/HtmlBlock.astro +0 -25
- package/templates/astro-starter/old_src/components/blocks/ImageBlock.astro +0 -91
- package/templates/astro-starter/old_src/components/blocks/NodeList.astro +0 -274
- package/templates/astro-starter/old_src/components/blocks/TextBlock.astro +0 -15
- package/templates/astro-starter/old_src/components/global/Breadcrumb.astro +0 -108
- package/templates/astro-starter/old_src/components/global/Footer.astro +0 -50
- package/templates/astro-starter/old_src/components/global/Header.astro +0 -171
- package/templates/astro-starter/old_src/components/global/MetaHead.astro +0 -266
- package/templates/astro-starter/old_src/components/global/NavigationMenu.astro +0 -413
- package/templates/astro-starter/old_src/components/ui/KamaImage.astro +0 -180
- package/templates/astro-starter/old_src/layouts/SkeletonLayout.astro +0 -56
- package/templates/astro-starter/old_src/layouts/StandardLayout.astro +0 -63
- package/templates/astro-starter/old_src/lib/cms.ts +0 -219
- package/templates/astro-starter/old_src/lib/media/kama-image-service.ts +0 -67
- package/templates/astro-starter/old_src/lib/media/media-proxy.ts +0 -148
- package/templates/astro-starter/old_src/lib/media/media-url.ts +0 -112
- package/templates/astro-starter/old_src/middleware.ts +0 -536
- package/templates/astro-starter/old_src/pages/404.astro +0 -46
- package/templates/astro-starter/old_src/pages/[...slug].astro +0 -311
- package/templates/astro-starter/old_src/pages/api/load-nodes.ts +0 -68
- package/templates/astro-starter/old_src/pages/api/partials/node-cards.astro +0 -101
- package/templates/astro-starter/old_src/pages/llms-full.txt.ts +0 -171
- package/templates/astro-starter/old_src/pages/llms.txt.ts +0 -113
- package/templates/astro-starter/old_src/pages/media/[...path].ts +0 -14
- package/templates/astro-starter/old_src/pages/partials/footer.astro +0 -69
- package/templates/astro-starter/old_src/pages/partials/nav.astro +0 -141
- package/templates/astro-starter/old_src/styles/standard-theme.css +0 -157
- package/templates/astro-starter/old_src/utils/tiptap.ts +0 -113
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
id: image-gallery
|
|
2
|
+
label: Image Gallery
|
|
3
|
+
group: Media
|
|
4
|
+
|
|
5
|
+
fields:
|
|
6
|
+
columns:
|
|
7
|
+
label: Column Count
|
|
8
|
+
type: select
|
|
9
|
+
default: "2"
|
|
10
|
+
public: true
|
|
11
|
+
options:
|
|
12
|
+
- label: "1 Column (Full Width)"
|
|
13
|
+
value: "1"
|
|
14
|
+
- label: "2 Columns"
|
|
15
|
+
value: "2"
|
|
16
|
+
- label: "3 Columns"
|
|
17
|
+
value: "3"
|
|
18
|
+
- label: "4 Columns"
|
|
19
|
+
value: "4"
|
|
20
|
+
- label: "6 Columns"
|
|
21
|
+
value: "6"
|
|
22
|
+
crop:
|
|
23
|
+
label: Crop Ratio
|
|
24
|
+
images:
|
|
25
|
+
label: Gallery Images
|
|
26
|
+
type: image
|
|
27
|
+
multiple: true
|
|
28
|
+
maxSizeMB: 20
|
|
29
|
+
allowedTypes: ["image/*"]
|
|
30
|
+
public: true
|
|
31
|
+
crops:
|
|
32
|
+
standard:
|
|
33
|
+
label: "Standard Portrait (4:3)"
|
|
34
|
+
aspectRatio: 1.8
|
|
@@ -12,6 +12,16 @@ fields:
|
|
|
12
12
|
position: sidebar
|
|
13
13
|
liveSync: true
|
|
14
14
|
|
|
15
|
+
notInMenu:
|
|
16
|
+
type: boolean
|
|
17
|
+
label: Not in Menu
|
|
18
|
+
default: false
|
|
19
|
+
public: true
|
|
20
|
+
inTree: true
|
|
21
|
+
variant: danger
|
|
22
|
+
dbType: integer
|
|
23
|
+
position: sidebar
|
|
24
|
+
|
|
15
25
|
startShowingAt:
|
|
16
26
|
type: datetime
|
|
17
27
|
label: Start Showing At
|
|
@@ -27,15 +27,30 @@ title:
|
|
|
27
27
|
type: text
|
|
28
28
|
dbType: text
|
|
29
29
|
public: true
|
|
30
|
+
inTree: true
|
|
30
31
|
rules:
|
|
31
32
|
required: true
|
|
32
33
|
|
|
34
|
+
disableTitleInContent:
|
|
35
|
+
label: Disable Title in Content
|
|
36
|
+
type: boolean
|
|
37
|
+
dbType: boolean
|
|
38
|
+
public: true
|
|
39
|
+
|
|
40
|
+
menuTitle:
|
|
41
|
+
label: Menu Title
|
|
42
|
+
type: text
|
|
43
|
+
inTree: true
|
|
44
|
+
public: true
|
|
45
|
+
default: ""
|
|
46
|
+
|
|
33
47
|
slug:
|
|
34
48
|
label: URL Slug
|
|
35
49
|
type: slug
|
|
36
|
-
linkedTo: title
|
|
50
|
+
linkedTo: menuTitle,title
|
|
37
51
|
dbType: text
|
|
38
52
|
public: true
|
|
53
|
+
inTree: true
|
|
39
54
|
index: true
|
|
40
55
|
rules:
|
|
41
56
|
required: true
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import StarterKit from "@tiptap/starter-kit";
|
|
2
|
+
import { Table } from "@tiptap/extension-table";
|
|
3
|
+
import { TableRow } from "@tiptap/extension-table-row";
|
|
4
|
+
import { TableCell } from "@tiptap/extension-table-cell";
|
|
5
|
+
import { TableHeader } from "@tiptap/extension-table-header";
|
|
2
6
|
import type { RteProfile } from "../../utils/rteProfiles";
|
|
3
7
|
import Link from "../../src/utils/CmsLink";
|
|
4
8
|
|
|
5
9
|
export const profile: RteProfile = {
|
|
6
|
-
extensions: [
|
|
10
|
+
extensions: [
|
|
11
|
+
StarterKit,
|
|
12
|
+
Link.configure({ openOnClick: false }),
|
|
13
|
+
Table.configure({
|
|
14
|
+
resizable: true,
|
|
15
|
+
}),
|
|
16
|
+
TableRow,
|
|
17
|
+
TableHeader,
|
|
18
|
+
TableCell,
|
|
19
|
+
],
|
|
7
20
|
toolbar: [
|
|
8
21
|
"heading-1",
|
|
9
22
|
"heading-2",
|
|
@@ -17,6 +30,7 @@ export const profile: RteProfile = {
|
|
|
17
30
|
"link",
|
|
18
31
|
"superscript",
|
|
19
32
|
"subscript",
|
|
33
|
+
"table",
|
|
20
34
|
"split",
|
|
21
35
|
],
|
|
22
36
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,B as t,E as n,Et as r,I as i,K as a,O as o,R as s,S as c,St as ee,T as l,Y as u,b as d,f,g as p,j as m,lt as h,o as g,q as _,t as v,tt as y,v as b,x,y as S}from"./_plugin-vue_export-helper-CQxWhVtr.js";import{i as te}from"./useNodes-CqFlc72m.js";import{d as ne,s as re}from"./schema-helpers-DvficKko.js";import{a as ie,i as ae,n as oe,o as se,r as ce,t as C}from"./CmsImagePreview-DuHPBzml.js";import{n as w,t as le}from"./NodeContextMenu-C_HWBGeb.js";import{n as ue,t as T}from"./trash-2-CAUF1KtI.js";import{t as de}from"./layers-B6RgfpPR.js";import{t as fe}from"./panel-left-close-CVFakVaA.js";import{t as pe}from"./save-Ctv8vW9H.js";import{t as E}from"./CmsButton-CbOfxvjr.js";import{t as D}from"./CmsDataRow--H4iI_u_.js";import{t as O}from"./CmsBadge-D0Ob9qPU.js";import{t as me}from"./CmsFieldTaxonomy-C_AwHDwY.js";m(),h(),u(),g();var he={class:`asset-editor-wrapper canvas`},k={class:`entity-header`},A={class:`top-row`},j={class:`node-info`},M={class:`dynamic-title-group`},N={class:`inline-title-input`},P={key:0},F={key:1},I={class:`meta-row`},L={key:0,class:`slug-badge`},R={class:`actions-group`},ge={class:`btn-text`},_e={class:`editor-body`},ve={key:0,class:`loading-state`},ye={key:1,class:`asset-content-scroll`},be={class:`main-preview-section`},xe={key:1,class:`doc-preview`},Se={class:`preview-footer`},Ce=[`href`],we={class:`data-column`},Te={class:`data-header`},Ee={class:`data-content`},De={class:`form-group`},Oe={class:`form-group`},ke={class:`form-group`},Ae={class:`form-group`},je={class:`usage-and-crops-section`},Me={class:`usage-section-container`},Ne={class:`gallery-header-row`},Pe={key:0,class:`usage-empty standalone-empty`},Fe={key:1,class:`list-container`},Ie={class:`node-title`},Le={class:`meta-stack`},Re={class:`node-field`},ze={key:0,class:`crop-showcase`},Be={class:`crop-name`},Ve={key:0,class:`usage-section-container`,style:{"margin-top":`40px`}},He={class:`gallery-header-row`},Ue={class:`list-container`},We={class:`meta-stack`},Ge={class:`node-field`},Ke={key:0,class:`crop-showcase`},qe={class:`crop-item`},Je={class:`crop-name`},Ye=[`onClick`],z=v(o({__name:`AssetEditor`,props:{assetId:{}},setup(o){let u=o,{activeView:m,nodeSchemas:h}=re(),{confirmDiscard:g}=ne(),{navigateToNodeById:v}=te(),z=e(null),B=e(!0),V=e(!1),H=e({filename:``,title:``,alt:``,tags:[]}),U=e({filename:``,title:``,alt:``,tags:[]}),W=e(!1),G=e(null),K=e(null),Xe=()=>{if(W.value){W.value=!1;return}G.value&&(K.value=G.value.getBoundingClientRect()),W.value=!0},Ze=b(()=>{let e=[{key:`copy-url`,label:`Copy Public URL`,icon:se},{key:`open-tab`,label:`Open in New Tab`,icon:w}];return z.value&&z.value.connectedNodes?.length>0&&(e.push({key:`div-nodes`,label:``,divider:!0}),e.push({key:`show-nodes`,label:`Connected Nodes (${z.value.connectedNodes.length})`,icon:oe})),e.push({key:`div-1`,label:``,divider:!0},{key:`delete`,label:`Delete Asset`,icon:T}),e}),Qe=async e=>{W.value=!1,z.value&&(e===`copy-url`&&z.value.url?await navigator.clipboard.writeText(z.value.url):e===`open-tab`&&z.value.url?window.open(z.value.url,`_blank`):e===`delete`?await g(`Are you sure you want to delete "${z.value.filename||`this asset`}"?`,`Delete Asset?`,`Delete`,`Cancel`)&&await $e():e===`show-nodes`&&Y())},$e=async()=>{try{(await fetch(`/api/admin/assets/${u.assetId}`,{method:`DELETE`})).ok&&(window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),m.value={type:`dashboard`})}catch{}},et=b(()=>H.value.filename!==U.value.filename||H.value.title!==U.value.title||H.value.alt!==U.value.alt||JSON.stringify(H.value.tags)!==JSON.stringify(U.value.tags)),q=async()=>{B.value=!0;try{let e=await fetch(`/api/admin/assets/${u.assetId}/details`);if(e.ok){let t=await e.json();z.value=t;let n={filename:t.filename||``,title:t.title||``,alt:t.alt||``,tags:t.tags||[]};H.value={...n},U.value={...n}}}catch{}finally{B.value=!1}},tt=async()=>{V.value=!0;try{(await fetch(`/api/admin/assets/${u.assetId}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(H.value)})).ok&&(U.value=JSON.parse(JSON.stringify(H.value)),window.dispatchEvent(new CustomEvent(`cms-assets-updated`)))}catch{}finally{V.value=!1}},nt=async e=>{let t=`Permanently delete orphaned crop "${z.value?.variants?.find(t=>String(t.id)===String(e))?.filename||`variant`}"?`;if(await g(t,`Delete Crop`,`Delete`,`Cancel`))try{(await fetch(`/api/admin/assets/purge/${e}`,{method:`DELETE`})).ok&&(z.value?.variants&&(z.value.variants=z.value.variants.filter(t=>String(t.id)!==String(e))),window.dispatchEvent(new CustomEvent(`cms-assets-updated`)),await q())}catch{}},J=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 g(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)}},rt=e=>{m.value={type:`node`},v(String(e)),window.dispatchEvent(new CustomEvent(`cms-switch-sidebar-tab`,{detail:`vault`}))},Y=()=>{sessionStorage.setItem(`cms-vault-asset-filter`,u.assetId),window.dispatchEvent(new CustomEvent(`cms-filter-vault-by-asset`,{detail:u.assetId})),window.dispatchEvent(new CustomEvent(`cms-switch-sidebar-tab`,{detail:`vault`}))},X=b(()=>z.value&&(z.value.mimeType?.startsWith(`image/`)||/\.(jpg|jpeg|png|webp|gif|svg)$/i.test(z.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]},it=(e,t)=>{if(!t||t===`Original`||t===`Unknown Crop`)return t||`Original Image`;try{let n=h.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=b(()=>{if(!z.value||!z.value.connectedNodes)return[];let e=new Map;for(let t of z.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(z.value.id),s=null;if(o){let e=z.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:it(r,n)}}}else s={id:z.value.id,url:z.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(`, `)}))}),$=b(()=>{if(!z.value||!z.value.variants)return[];let e=new Set(z.value.connectedNodes?.map(e=>String(e.assetId))||[]);return z.value.variants.filter(t=>!e.has(String(t.id)))}),at=e=>{let t=e?.match(/^(.+?)_ast_/);return t?t[1]:`Unknown Crop`};return i(()=>q()),(e,i)=>(s(),c(`div`,he,[S(`header`,k,[S(`div`,A,[S(`div`,j,[S(`div`,M,[S(`span`,N,[z.value?(s(),c(`span`,P,r(z.value.filename),1)):(s(),c(`span`,F,`Loading Asset...`))])]),S(`div`,I,[z.value?(s(),c(`span`,L,r(Z(z.value.sizeBytes))+` • `+r(z.value.mimeType),1)):x(``,!0)])]),S(`div`,R,[z.value?(s(),c(`div`,{key:0,class:`context-wrapper`,ref_key:`contextTriggerRef`,ref:G},[n(E,{variant:`secondary`,title:`More Options`,onClick:Xe,disabled:V.value,class:`transparent-btn icon-only-btn`},{default:a(()=>[n(y(ae),{size:16})]),_:1},8,[`disabled`]),n(le,{show:W.value,items:Ze.value,"anchor-rect":K.value,onSelect:Qe,onClose:i[0]||=e=>W.value=!1},null,8,[`show`,`items`,`anchor-rect`])],512)):x(``,!0),n(E,{variant:`primary`,class:`save-btn`,disabled:V.value||!et.value,onClick:tt},{default:a(()=>[n(y(pe),{size:14,class:`save-icon`}),S(`span`,ge,r(V.value?`Saving...`:`Save Metadata`),1)]),_:1},8,[`disabled`])])])]),S(`div`,_e,[B.value?(s(),c(`div`,ve,`Loading asset details...`)):z.value?(s(),c(`div`,ye,[S(`div`,be,[S(`div`,{class:ee([`preview-container`,{"is-doc":!X.value}])},[X.value?(s(),d(C,{key:0,url:z.value.url,alt:z.value.alt||z.value.filename,width:1200,quality:85,class:`main-preview-wrapper`},null,8,[`url`,`alt`])):(s(),c(`div`,xe,[n(y(ue),{size:64}),i[5]||=S(`span`,null,`Preview not available for this file type`,-1)]))],2),S(`div`,Se,[S(`span`,null,`Original Upload: `+r(new Date(z.value.createdAt).toLocaleString()),1),S(`a`,{href:z.value.url,target:`_blank`,class:`ext-link`},[i[6]||=l(`Open original file `,-1),n(y(w),{size:12})],8,Ce)])]),S(`div`,we,[S(`div`,Te,[S(`h3`,null,[n(y(ce),{size:14,class:`inline-icon`}),i[7]||=l(` Metadata `,-1)])]),S(`div`,Ee,[S(`div`,De,[i[8]||=S(`label`,null,`Filename`,-1),_(S(`input`,{"onUpdate:modelValue":i[1]||=e=>H.value.filename=e,type:`text`,class:`cms-input`},null,512),[[f,H.value.filename]]),i[9]||=S(`span`,{class:`help-text`},`Changing this does not break the permanent CDN link.`,-1)]),S(`div`,Oe,[i[10]||=S(`label`,null,`Media Tags`,-1),n(me,{modelValue:H.value.tags,"onUpdate:modelValue":i[2]||=e=>H.value.tags=e,fieldKey:`media-tag`,config:{taxonomy:`media-tag`,multiple:!0}},null,8,[`modelValue`]),i[11]||=S(`span`,{class:`help-text`},`Used to organize and filter assets in the media library.`,-1)]),S(`div`,ke,[i[12]||=S(`label`,null,`Title (Internal/SEO)`,-1),_(S(`input`,{"onUpdate:modelValue":i[3]||=e=>H.value.title=e,type:`text`,class:`cms-input`},null,512),[[f,H.value.title]])]),S(`div`,Ae,[i[13]||=S(`label`,null,`Alt Text (Accessibility)`,-1),_(S(`textarea`,{"onUpdate:modelValue":i[4]||=e=>H.value.alt=e,class:`cms-input cms-textarea`},null,512),[[f,H.value.alt]])])])]),S(`div`,je,[S(`div`,Me,[S(`div`,Ne,[S(`h3`,null,[n(y(de),{size:16,class:`inline-icon`}),i[14]||=l(` Node Usage `,-1)]),Q.value.length>0?(s(),c(`button`,{key:0,class:`action-btn outline`,onClick:Y,title:`Show these nodes in the left Vault pane`},[n(y(fe),{size:13}),i[15]||=l(` Vault Filter `,-1)])):x(``,!0)]),Q.value.length===0?(s(),c(`div`,Pe,[...i[16]||=[S(`span`,{class:`status-dot warning`},null,-1),S(`span`,null,`Asset is not currently used on any nodes.`,-1)]])):(s(),c(`div`,Fe,[(s(!0),c(p,null,t(Q.value,e=>(s(),d(D,{key:e.id,clickable:``,onClick:t=>rt(e.id)},{title:a(()=>[i[17]||=S(`span`,{class:`status-dot success`},null,-1),S(`span`,Ie,r(e.title||`Untitled`),1),n(O,{variant:`type`},{default:a(()=>[l(r(e.nodeType||`page`),1)]),_:2},1024)]),meta:a(()=>[S(`div`,Le,[S(`span`,Re,`Used in field: `+r(e.fieldKey),1),X.value?(s(),c(`div`,ze,[(s(!0),c(p,null,t(e.usedAssets,e=>(s(),c(`div`,{key:e.id,class:`crop-item`},[n(C,{url:e.url,alt:e.label,width:200,quality:75,class:`crop-img-fixed-height`},null,8,[`url`,`alt`]),S(`span`,Be,r(e.label),1)]))),128))])):x(``,!0)])]),_:2},1032,[`onClick`]))),128))]))]),$.value.length>0?(s(),c(`div`,Ve,[S(`div`,He,[S(`h3`,null,[n(y(ie),{size:16,class:`inline-icon`}),l(` Orphaned Crops (`+r($.value.length)+`) `,1)]),S(`button`,{class:`action-btn outline text-danger`,onClick:J},[n(y(T),{size:13}),i[18]||=l(` Purge All `,-1)])]),i[21]||=S(`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),S(`div`,Ue,[(s(!0),c(p,null,t($.value,e=>(s(),d(D,{key:e.id},{title:a(()=>[i[19]||=S(`span`,{class:`node-title`},`Orphaned Crop`,-1),n(O,{variant:`type`},{default:a(()=>[l(r(Z(e.sizeBytes)),1)]),_:2},1024)]),meta:a(()=>[S(`div`,We,[S(`span`,Ge,`Generated: `+r(new Date(e.createdAt).toLocaleDateString()),1),X.value?(s(),c(`div`,Ke,[S(`div`,qe,[n(C,{url:e.url,alt:e.filename,width:200,quality:75,class:`crop-img-fixed-height`},null,8,[`url`,`alt`]),S(`span`,Je,r(at(e.filename)),1)])])):x(``,!0)])]),actions:a(()=>[S(`button`,{class:`action-btn outline text-danger`,style:{border:`none`},onClick:t=>nt(e.id)},[n(y(T),{size:13}),i[20]||=l(` Purge `,-1)],8,Ye)]),_:2},1024))),128))])])):x(``,!0)])])):x(``,!0)])]))}}),[[`__scopeId`,`data-v-ee6004e3`]]);export{z as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.canvas[data-v-ee6004e3]{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-ee6004e3]{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-ee6004e3],.slug-badge[data-v-ee6004e3]{display:none}}.top-row[data-v-ee6004e3]{justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.node-info[data-v-ee6004e3]{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.dynamic-title-group[data-v-ee6004e3]{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.inline-title-input[data-v-ee6004e3]{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-ee6004e3]{align-items:center;gap:6px;display:flex}.slug-badge[data-v-ee6004e3]{font-size:13px;font-family:var(--cms-font-mono);color:var(--cms-color-text-muted)}.actions-group[data-v-ee6004e3]{align-items:center;gap:10px;display:flex}[data-v-ee6004e3] .icon-only-btn{padding:0 8px!important}.context-wrapper[data-v-ee6004e3]{display:flex;position:relative}.save-btn[data-v-ee6004e3]{align-items:center;gap:6px;display:flex}.save-icon[data-v-ee6004e3]{margin-top:-1px}.transparent-btn[data-v-ee6004e3]{background:0 0;border-color:#0000}.transparent-btn[data-v-ee6004e3]:hover{background:var(--cms-color-surface-hover);border-color:#0000!important}.editor-body[data-v-ee6004e3]{flex:1;display:flex;position:relative;overflow:hidden;container:asseteditor/inline-size}.loading-state[data-v-ee6004e3]{color:var(--cms-color-text-muted);flex:1;justify-content:center;align-items:center;display:flex}.asset-content-scroll[data-v-ee6004e3]{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-ee6004e3]{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-ee6004e3]{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-ee6004e3]{width:auto;max-width:100%;height:auto;max-height:480px}.main-preview-wrapper[data-v-ee6004e3] .preview-img{object-fit:contain!important;width:auto!important;height:auto!important;max-height:480px!important}.doc-preview[data-v-ee6004e3]{color:var(--cms-color-text-muted);flex-direction:column;align-items:center;gap:12px;display:flex}.preview-footer[data-v-ee6004e3]{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-ee6004e3]{color:var(--cms-color-primary);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.ext-link[data-v-ee6004e3]:hover{text-decoration:underline}.data-column[data-v-ee6004e3]{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-ee6004e3]{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-ee6004e3]{color:var(--cms-color-text-main);align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.data-content[data-v-ee6004e3]{flex-direction:column;gap:20px;padding:24px;display:flex}.form-group[data-v-ee6004e3]{flex-direction:column;gap:6px;display:flex}.form-group label[data-v-ee6004e3]{color:var(--cms-color-text-main);font-size:12px;font-weight:600}.cms-input[data-v-ee6004e3]{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-ee6004e3]:focus{border-color:var(--cms-color-primary)}.cms-textarea[data-v-ee6004e3]{resize:vertical;min-height:80px}.help-text[data-v-ee6004e3]{color:var(--cms-color-text-faint);font-size:11px}.usage-and-crops-section[data-v-ee6004e3]{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-ee6004e3]{flex-direction:column;width:100%;max-width:900px;margin:0 auto;display:flex}.gallery-header-row[data-v-ee6004e3]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.gallery-header-row h3[data-v-ee6004e3]{color:var(--cms-color-text-main);align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.gallery-desc[data-v-ee6004e3]{color:var(--cms-color-text-muted);margin:0 0 16px;font-size:13px}.action-btn.outline[data-v-ee6004e3]{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-ee6004e3]:hover{background:var(--cms-color-surface-hover)}.list-container[data-v-ee6004e3]{background:var(--cms-color-surface);border:1px solid var(--cms-color-border);border-radius:var(--cms-radius-lg);overflow:hidden}.meta-stack[data-v-ee6004e3]{flex-direction:column;gap:8px;width:100%;display:flex}.crop-showcase[data-v-ee6004e3]{flex-wrap:wrap;align-items:flex-end;gap:16px;width:100%;display:flex}.crop-item[data-v-ee6004e3]{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.crop-img-fixed-height[data-v-ee6004e3]{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-ee6004e3] .preview-img{object-fit:contain;display:block;width:auto!important;height:100%!important}.crop-name[data-v-ee6004e3]{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-ee6004e3]{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-ee6004e3]{color:var(--cms-color-text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.status-dot[data-v-ee6004e3]{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-dot.success[data-v-ee6004e3]{background:var(--cms-color-success,#10b981)}.status-dot.warning[data-v-ee6004e3]{background:var(--cms-color-warning,#f59e0b)}.node-title[data-v-ee6004e3]{color:var(--cms-color-text-main);font-size:13.5px;font-weight:600}.node-field[data-v-ee6004e3]{color:var(--cms-color-text-muted);font-size:11.5px}.text-danger[data-v-ee6004e3]{color:var(--cms-color-danger)!important}@container (width<=820px){.asset-content-scroll[data-v-ee6004e3]{grid-template:"preview""metadata""usage"/1fr}.data-column[data-v-ee6004e3]{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
|
+
.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}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as e,E as t,Et as n,I as r,O as i,R as a,S as o,St as s,T as c,Y as l,g as u,h as d,j as f,lt as p,o as m,t as h,tt as g,v as _,y as v}from"./_plugin-vue_export-helper-CQxWhVtr.js";import{s as y}from"./useNodes-CqFlc72m.js";import{t as b}from"./loader-circle-BoUkhDjq.js";f(),l(),p(),m();var x={key:0,class:`loading-state`},S={key:1,class:`empty-state`},C={key:2,class:`taxonomy-pills`},w=[`disabled`,`onClick`],T=[`disabled`,`value`],E={value:``,disabled:``},D=[`value`],O=h(i({__name:`CmsFieldTaxonomy`,props:{modelValue:{},fieldKey:{},config:{},disabled:{type:Boolean},invalid:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:l}){let f=i,p=l,{termsMap:m,fetchTerms:h,isLoading:O}=y(),k=_(()=>f.config.taxonomy||f.config.taxonomyKey||f.fieldKey),A=_(()=>{let e=k.value;return!e||!m.value||!m.value[e]?[]:m.value[e]}),j=_(()=>f.modelValue?(Array.isArray(f.modelValue)?f.modelValue:[f.modelValue]).map(e=>{let t=``;return t=typeof e==`string`?e:typeof e==`object`&&e&&e.id?String(e.id):String(e),t.startsWith(`trm_`)&&(t=t.replace(`trm_`,``)),parseInt(t,10)}).filter(e=>!isNaN(e)):[]),M=_(()=>f.config.multiple===!0);r(async()=>{let e=k.value;e&&(!m.value||!m.value[e])&&await h(e)});let N=e=>{if(!f.disabled){if(M.value){let t=[...j.value],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),p(`update:modelValue`,t.map(e=>`trm_${e}`))}else p(`update:modelValue`,`trm_${e}`)}},P=e=>e.label||e.title||e.name||`Term #${e.id}`;return(r,l)=>(a(),o(`div`,{class:s([`cms-field-taxonomy`,{"is-invalid":i.invalid,"is-disabled":i.disabled}])},[g(O)&&A.value.length===0?(a(),o(`div`,x,[t(g(b),{size:14,class:`spinner`}),c(` Loading `+n(i.config.taxonomy||i.fieldKey)+`... `,1)])):A.value.length===0?(a(),o(`div`,S,` No terms found for `+n(i.config.taxonomy||i.fieldKey)+`. `,1)):M.value?(a(),o(`div`,C,[(a(!0),o(u,null,e(A.value,e=>(a(),o(`button`,{key:e.id,type:`button`,class:s([`tax-pill`,{"is-active":j.value.includes(e.id)}]),disabled:i.disabled,onClick:d(t=>N(e.id),[`prevent`])},n(P(e)),11,w))),128))])):(a(),o(`select`,{key:3,class:`taxonomy-select`,disabled:i.disabled,value:j.value.length>0?j.value[0]:``,onChange:l[0]||=e=>N(parseInt(e.target.value,10))},[v(`option`,E,`Select `+n(i.config.label||i.config.taxonomy||i.fieldKey)+`...`,1),(a(!0),o(u,null,e(A.value,e=>(a(),o(`option`,{key:e.id,value:e.id},n(P(e)),9,D))),128))],40,T))],2))}}),[[`__scopeId`,`data-v-1a55cb97`]]);export{O as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{E as e,O as t,R as n,S as r,T as i,Y as a,j as o,t as s,tt as c,y as l}from"./_plugin-vue_export-helper-CQxWhVtr.js";import{a as u,i as d}from"./useNodes-
|
|
1
|
+
import{E as e,O as t,R as n,S as r,T as i,Y as a,j as o,t as s,tt as c,y as l}from"./_plugin-vue_export-helper-CQxWhVtr.js";import{a as u,i as d}from"./useNodes-CqFlc72m.js";import{n as f,r as p,t as m}from"./plus-CX_GHzXs.js";import{t as h}from"./database-hg5SqKLG.js";import{t as g}from"./folder-tree-BWYot72H.js";import{t as _}from"./globe-BraoljaN.js";import{t as v}from"./layers-B6RgfpPR.js";o(),a();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=s(t({__name:`CmsHelp`,setup(t){let{handleAddNewChannel:a}=p(),{handleAddNewTree:o}=u(),{handleAddNewNode:s}=d();return(t,u)=>(n(),r(`main`,y,[l(`div`,b,[u[17]||=l(`header`,{class:`help-header`},[l(`h1`,null,`KAMA`),l(`p`,null,`Build modular content in the Vault, organize it into Navigation Trees, and expose it to your channels via API.`)],-1),l(`div`,x,[l(`div`,S,[l(`div`,C,[l(`div`,w,[e(c(_),{size:20})]),u[3]||=l(`div`,{class:`step-badge`},`Step 1`,-1)]),u[5]||=l(`div`,{class:`card-content`},[l(`h3`,null,`Channels`),l(`p`,null,`Delivery targets that consume your headless API.`)],-1),l(`button`,{class:`card-action-btn`,onClick:u[0]||=(...e)=>c(a)&&c(a)(...e)},[e(c(m),{size:16}),u[4]||=i(` Create Channel `,-1)])]),l(`div`,T,[l(`div`,E,[l(`div`,D,[e(c(g),{size:20})]),u[6]||=l(`div`,{class:`step-badge`},`Step 2`,-1)]),u[8]||=l(`div`,{class:`card-content`},[l(`h3`,null,`Trees`),l(`p`,null,`Decoupled structural hierarchies and navigation menus.`)],-1),l(`button`,{class:`card-action-btn`,onClick:u[1]||=(...e)=>c(o)&&c(o)(...e)},[e(c(m),{size:16}),u[7]||=i(` Create Tree `,-1)])]),l(`div`,O,[l(`div`,k,[l(`div`,A,[e(c(h),{size:20})]),u[9]||=l(`div`,{class:`step-badge`},`Step 3`,-1)]),u[11]||=l(`div`,{class:`card-content`},[l(`h3`,null,`Vault`),l(`p`,null,`Flat, headless content store for reusable content items.`)],-1),l(`button`,{class:`card-action-btn`,onClick:u[2]||=e=>c(s)()},[e(c(m),{size:16}),u[10]||=i(` Create Content `,-1)])])]),l(`section`,j,[l(`div`,M,[e(c(v),{size:18,class:`guide-icon`}),u[12]||=l(`h4`,null,`Architecture Flow`,-1)]),l(`div`,N,[u[13]||=l(`div`,{class:`guide-col`},[l(`strong`,null,`1. Content Vault`),l(`p`,null,`Raw content entities existing independently of routing.`)],-1),l(`div`,P,[e(c(f),{size:16})]),u[14]||=l(`div`,{class:`guide-col`},[l(`strong`,null,`2. Navigation Trees`),l(`p`,null,`Decoupled structures mapping content items to URL hierarchies.`)],-1),l(`div`,F,[e(c(f),{size:16})]),u[15]||=l(`div`,{class:`guide-col`},[l(`strong`,null,`3. Channels`),l(`p`,null,`Delivery targets binding trees and languages to specific contexts.`)],-1),l(`div`,I,[e(c(f),{size:16})]),u[16]||=l(`div`,{class:`guide-col`},[l(`strong`,null,`4. Headless API`),l(`p`,null,`Endpoints serving structured JSON to your frontends.`)],-1)])])])]))}}),[[`__scopeId`,`data-v-c739c397`]]);export{L as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{$ as e,B as t,E as n,Et as r,I as i,K as a,O as ee,R as o,S as s,T as c,Y as l,b as u,g as d,h as f,j as p,lt as m,o as h,t as g,tt as _,v,x as y,y as b}from"./_plugin-vue_export-helper-CQxWhVtr.js";import{c as x,i as te}from"./useNodes-
|
|
1
|
+
import{$ as e,B as t,E as n,Et as r,I as i,K as a,O as ee,R as o,S as s,T as c,Y as l,b as u,g as d,h as f,j as p,lt as m,o as h,t as g,tt as _,v,x as y,y as b}from"./_plugin-vue_export-helper-CQxWhVtr.js";import{c as x,i as te}from"./useNodes-CqFlc72m.js";import{l as S,s as ne}from"./schema-helpers-DvficKko.js";import{t as C}from"./circle-check-A-QeFqt3.js";import{n as re,t as w}from"./send-F-mJeL54.js";import{t as ie}from"./folder-tree-BWYot72H.js";import{t as ae}from"./globe-BraoljaN.js";import{t as oe}from"./history-pqIbKK9u.js";import{t as T}from"./loader-circle-BoUkhDjq.js";import{t as E}from"./CmsButton-CbOfxvjr.js";import{t as D}from"./CmsDataRow--H4iI_u_.js";import{t as O}from"./CmsBadge-D0Ob9qPU.js";p(),l(),m(),h();var se={class:`publisher-canvas full-width`},ce={class:`publisher-container full-width`},le={class:`publisher-header`},ue={class:`header-actions`},de={key:0,class:`empty-publisher-state`},fe={key:1,class:`empty-publisher-state`},pe={key:2,class:`channel-groups-list`},k={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=g(ee({__name:`CmsPublisher`,setup(ee){let l=ne(),{loadNodeContent:p}=te(),m=e(!1),h=e(new Set),g=e(null),V=e(!1),H=e([]),U=e([]),W=e(new Set),me=async()=>{if(l.hasLoadedStats.value){H.value=l.vaultStats.value?.pendingNodes||[],U.value=l.vaultStats.value?.recentActivity||[];return}m.value=!0;try{let e=await fetch(`/api/cms/stats`);if(e.ok){let t=await e.json();l.vaultStats.value=t,l.hasLoadedStats.value=!0,H.value=t.pendingNodes||[],U.value=t.recentActivity||[]}}catch{}finally{m.value=!1}},G=v(()=>{let e=new Map;if(H.value.forEach(t=>{let n=String(l.activeNode.value?.id)===String(t.id),r=x(t),i=n&&l.hasUnpublishedChanges.value||r.hasUnpublishedChanges;e.set(String(t.id),{...t,evalState:{...r,hasUnpublishedChanges:i}})}),l.activeNode.value?.id){let t=String(l.activeNode.value.id),n=x(l.activeNode.value),r=l.hasUnpublishedChanges.value||n.hasUnpublishedChanges;(n.isDraft||n.isUnpublishedDraft||r)&&(e.has(t)||e.set(t,{...l.activeNode.value,evalState:{...n,hasUnpublishedChanges:r}}))}return Array.from(e.values())}),he=v(()=>{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=v(()=>W.value.size),Z=e=>{p({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=>{h.value.add(e);try{let t=G.value.find(t=>String(t.id)===String(e));if((await S.publishNode(e)).ok){l.updateNodeInState(e,{status:`published`,hasUnpublishedChanges:!1}),H.value=H.value.filter(t=>String(t.id)!==String(e)),String(l.activeNode.value?.id)===String(e)&&(l.activeNode.value.status=`published`,l.activeNode.value.hasUnpublishedChanges=!1);let n=new Set(W.value);n.delete(e),W.value=n,t&&Q(t),l.invalidateStats(),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`cms-node-updated`))}}finally{h.value.delete(e)}},$=async e=>{if(e.length===0)return;let t=e.map(e=>e.id);t.forEach(e=>h.value.add(e));try{let e=await S.publishNodesBatch(t);if(e.ok){let t=(await e.json()).publishedIds||[];for(let e of t)l.updateNodeInState(e,{status:`published`,hasUnpublishedChanges:!1}),String(l.activeNode.value?.id)===String(e)&&(l.activeNode.value.status=`published`,l.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 n=new Set(W.value);t.forEach(e=>n.delete(e)),W.value=n,l.invalidateStats(),typeof window<`u`&&window.dispatchEvent(new CustomEvent(`cms-node-updated`))}}finally{t.forEach(e=>h.value.delete(e))}},ye=async(e,t)=>{g.value=e;let n=q(t)>0?t.filter(e=>W.value.has(e.id)):t;await $(n),g.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 i(()=>me()),(e,i)=>(o(),s(`main`,se,[b(`div`,ce,[b(`header`,le,[i[2]||=b(`div`,{class:`header-title-group`},[b(`h1`,null,`Publishing Center`),b(`p`,null,`Review and release pending drafts or bulk-publish updates across your distribution channels.`)],-1),b(`div`,ue,[G.value.length>0?(o(),u(E,{key:0,variant:`primary`,class:`publish-all-btn`,disabled:V.value||h.value.size>0,onClick:be},{default:a(()=>[V.value?(o(),u(_(T),{key:0,size:16,class:`spin`})):(o(),u(_(w),{key:1,size:16})),b(`span`,null,r(X.value>0?`Publish Selected (${X.value})`:`Publish All
|
|
2
2
|
(${G.value.length})`),1)]),_:1},8,[`disabled`])):y(``,!0)])]),m.value&&G.value.length===0?(o(),s(`div`,de,[n(_(T),{size:28,class:`spin empty-icon`}),i[3]||=b(`p`,null,`Gathering pending content updates...`,-1)])):G.value.length===0?(o(),s(`div`,fe,[n(_(C),{size:36,class:`success-icon`}),i[4]||=b(`h3`,null,`All Content Published!`,-1),i[5]||=b(`p`,null,`No draft changes or pending revisions found. Your delivery channels are fully up to date.`,-1)])):(o(),s(`div`,pe,[(o(!0),s(d,null,t(he.value,e=>(o(),s(`section`,{key:e.channelName,class:`channel-group-card`},[b(`div`,k,[b(`div`,A,[b(`label`,{class:`checkbox-container`,onClick:i[0]||=f(()=>{},[`stop`])},[b(`input`,{type:`checkbox`,checked:J(e.nodes),indeterminate:_e(e.nodes),onChange:t=>Y(e.nodes)},null,40,j),i[6]||=b(`span`,{class:`checkmark`},null,-1)]),n(_(ae),{size:18,class:`channel-icon`}),b(`h2`,null,r(e.channelName),1),b(`span`,M,r(e.nodes.length)+` Pending`,1)]),n(E,{variant:`secondary`,size:`sm`,disabled:g.value===e.channelName||V.value,onClick:t=>ye(e.channelName,e.nodes)},{default:a(()=>[g.value===e.channelName?(o(),u(_(T),{key:0,size:14,class:`spin`})):(o(),u(_(w),{key:1,size:14})),b(`span`,null,r(q(e.nodes)>0?`Publish Selected
|
|
3
3
|
(${q(e.nodes)})`:`Publish Channel Items`),1)]),_:2},1032,[`disabled`,`onClick`])]),b(`div`,N,[(o(!0),s(d,null,t(e.nodes,e=>(o(),u(D,{key:e.id,"is-selected":K(e.id),clickable:``,onClick:t=>Z(e)},{prefix:a(()=>[b(`label`,{class:`checkbox-container`,onClick:i[1]||=f(()=>{},[`stop`])},[b(`input`,{type:`checkbox`,checked:K(e.id),onChange:t=>ge(e.id)},null,40,P),i[7]||=b(`span`,{class:`checkmark`},null,-1)])]),title:a(()=>[b(`span`,F,r(e.title||`Untitled Draft`),1),n(O,{variant:`type`},{default:a(()=>[c(r(e.contentType||e.nodeType||`page`),1)]),_:2},1024)]),meta:a(()=>[n(O,{variant:`slug`},{default:a(()=>[c(`/`+r(e.slug),1)]),_:2},1024),(o(!0),s(d,null,t(e.treeNames,e=>(o(),u(O,{variant:`tree`,key:e},{default:a(()=>[n(_(ie),{size:11}),c(` `+r(e),1)]),_:2},1024))),128))]),actions:a(()=>[n(E,{variant:`secondary`,size:`sm`,class:`icon-only-btn`,title:`Publish Item`,disabled:h.value.has(e.id)||V.value,onClick:f(t=>ve(e.id),[`stop`])},{default:a(()=>[h.value.has(e.id)?(o(),u(_(T),{key:0,size:14,class:`spin`})):(o(),u(_(w),{key:1,size:14}))]),_:2},1032,[`disabled`,`onClick`])]),_:2},1032,[`is-selected`,`onClick`]))),128))])]))),128))])),U.value.length>0?(o(),s(`section`,I,[b(`div`,L,[n(_(oe),{size:18,class:`history-icon`}),i[8]||=b(`h2`,null,`Recently Published`,-1)]),b(`div`,R,[(o(!0),s(d,null,t(U.value,e=>(o(),u(D,{key:e.id,clickable:``,onClick:t=>Z(e)},{prefix:a(()=>[n(_(C),{size:16,class:`published-check`})]),title:a(()=>[b(`span`,z,r(e.title||`Untitled Document`),1),n(O,{variant:`type`},{default:a(()=>[c(r(e.contentType||e.nodeType||`page`),1)]),_:2},1024)]),meta:a(()=>[n(O,{variant:`slug`},{default:a(()=>[c(`/`+r(e.slug),1)]),_:2},1024)]),actions:a(()=>[b(`div`,B,[n(_(re),{size:12}),b(`span`,null,r(xe(e.updatedAt)),1)])]),_:2},1032,[`onClick`]))),128))])])):y(``,!0)])]))}}),[[`__scopeId`,`data-v-e0e64ba6`]]);export{V as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.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-b25ca3e7]{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-b25ca3e7]{margin-bottom:2px}.cms-field-asset.variant-region .asset-preview-grid[data-v-b25ca3e7]{display:grid}.asset-error[data-v-b25ca3e7]{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-b25ca3e7]{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-b25ca3e7]:hover{opacity:1}.asset-preview-grid[data-v-b25ca3e7]{gap:12px;width:100%;display:grid;position:relative}.asset-preview-grid.is-single[data-v-b25ca3e7]{grid-template-columns:1fr}.asset-card[data-v-b25ca3e7]{width:100%;aspect-ratio:var(--v0f88ff70);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-multiple[data-v-b25ca3e7]{aspect-ratio:auto;height:140px}.asset-card.is-multiple .image-wrapper[data-v-b25ca3e7] img{object-fit:contain;background-color:var(--cms-color-surface-hover);width:100%;height:100%}.asset-card.is-multiple.is-cropped .image-wrapper[data-v-b25ca3e7] img{object-fit:cover}.asset-card.is-inherited[data-v-b25ca3e7]{opacity:.9}.asset-card[data-v-b25ca3e7]:hover{border-color:var(--cms-color-border-dark)}.image-wrapper[data-v-b25ca3e7]{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-b25ca3e7]:not(.is-multiple){width:100%;max-width:100%;height:auto}.asset-card.is-natural-ratio:not(.is-multiple) .image-wrapper[data-v-b25ca3e7]{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-b25ca3e7] .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-b25ca3e7] img{object-fit:contain!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:300px!important}.document-wrapper[data-v-b25ca3e7]{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-b25ca3e7]{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-b25ca3e7]{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-b25ca3e7]{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-b25ca3e7]{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-b25ca3e7]{opacity:1}.action-btn[data-v-b25ca3e7]{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-b25ca3e7]:hover{background:var(--cms-color-surface-hover)}.action-btn.delete-btn[data-v-b25ca3e7]:hover{color:var(--cms-color-danger);border-color:var(--cms-color-danger-border)}.dropzone-area[data-v-b25ca3e7]{width:100%;aspect-ratio:var(--v0f88ff70);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-b25ca3e7]{aspect-ratio:auto;min-height:80px;padding:10px}.dropzone-area[data-v-b25ca3e7]:hover,.dropzone-area.is-dragging[data-v-b25ca3e7]{border-color:var(--cms-color-primary,#3b82f6);background:#3b82f60f}.hidden-file-input[data-v-b25ca3e7]{display:none}.dropzone-content[data-v-b25ca3e7]{pointer-events:none;flex-direction:column;align-items:center;gap:4px;display:flex}.image-prompt-icon[data-v-b25ca3e7]{color:var(--cms-color-text-faint);transition:color var(--cms-transition-fast)}.dropzone-area:hover .image-prompt-icon[data-v-b25ca3e7],.dropzone-area.is-dragging .image-prompt-icon[data-v-b25ca3e7]{color:var(--cms-color-primary,#3b82f6)}.drop-title[data-v-b25ca3e7]{text-align:center;margin-bottom:0}.drop-subtitle[data-v-b25ca3e7]{color:var(--cms-color-text-muted,#64748b);text-align:center;font-size:10px}.spinner[data-v-b25ca3e7]{animation:1s linear infinite spin-b25ca3e7}@keyframes spin-b25ca3e7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.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}.loading-state[data-v-7947a596]{font-family:var(--cms-font-sans);color:var(--cms-color-text-muted);padding:4px 0;font-size:12px}select[data-v-7947a596]{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}select[data-v-7947a596]:focus:not(:disabled){border-color:var(--cms-color-primary)}select[data-v-7947a596]:disabled{opacity:.6;cursor:not-allowed;background:var(--cms-color-surface-hover);border-color:var(--cms-color-border)}.input-invalid[data-v-7947a596],.input-invalid[data-v-7947a596]:focus{border-color:var(--cms-color-danger,#ef4444)!important;box-shadow:none!important}.pills-container[data-v-7947a596]{flex-wrap:wrap;gap:6px;display:flex}.pill-btn[data-v-7947a596]{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-7947a596]: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-7947a596]{background:var(--cms-color-primary);border-color:var(--cms-color-primary);color:#fff}.pill-btn[data-v-7947a596]:disabled{opacity:.6;cursor:not-allowed}.kama-select-input[data-v-ad8b37ba]:focus{border-color:var(--cms-color-primary)}.action-icon-btn[data-v-ad8b37ba]:hover:not(:disabled){background:var(--cms-color-surface-hover);border-color:var(--cms-color-border-input)}.action-icon-btn[data-v-ad8b37ba]:disabled,.kama-select-input[data-v-ad8b37ba]:disabled{opacity:.6;cursor:not-allowed}.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-cd02809f]{font-family:var(--cms-font-sans)}.dynamic-form.is-readonly[data-v-cd02809f]{opacity:.7;pointer-events:none;-webkit-user-select:none;user-select:none}.dynamic-form.is-readonly input[data-v-cd02809f],.dynamic-form.is-readonly textarea[data-v-cd02809f],.dynamic-form.is-readonly select[data-v-cd02809f]{background-color:var(--cms-color-surface-hover,#f3f4f6);color:var(--cms-color-text-muted);border-color:var(--cms-color-border-dark)}.datetime-wrapper[data-v-cd02809f]{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-cd02809f]{border-top-left-radius:0;border-bottom-left-radius:0;flex:1;min-width:0}.datetime-wrapper.is-upcoming[data-v-cd02809f]{border-left-color:var(--cms-color-info,#0284c7)}.datetime-wrapper.is-showing[data-v-cd02809f]{border-left-color:var(--cms-color-success,#16a34a)}.datetime-wrapper.is-passed[data-v-cd02809f]{border-left-color:var(--cms-color-warning,#d97706)}.utc-hint[data-v-cd02809f]{color:var(--cms-color-text-faint,#94a3b8);text-transform:none;letter-spacing:normal;margin-left:6px;font-weight:500}.link-field-control[data-v-cd02809f]{align-items:center;gap:6px;width:100%;display:flex}.link-field-display[data-v-cd02809f]{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-cd02809f]:disabled{opacity:.6;cursor:not-allowed}.link-field-display-text[data-v-cd02809f]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.link-field-display-text.empty[data-v-cd02809f]{color:var(--cms-color-text-muted)}.link-field-display[data-v-cd02809f]:hover:not(:disabled){border-color:var(--cms-color-primary);background:var(--cms-color-surface-hover)}.link-field-clear[data-v-cd02809f]{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-cd02809f]:disabled{opacity:.6;cursor:not-allowed}.link-field-clear[data-v-cd02809f]:hover:not(:disabled){border-color:var(--cms-color-danger);color:var(--cms-color-danger);background:var(--cms-color-surface-hover)}.form-group[data-v-cd02809f]{margin-bottom:18px}.form-group.has-error label[data-v-cd02809f]{color:var(--cms-color-danger,#ef4444)}.label-row[data-v-cd02809f]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.form-group label[data-v-cd02809f]{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-cd02809f]{color:var(--cms-color-danger,#ef4444);margin-left:2px}.inherit-controls[data-v-cd02809f]{align-items:center;gap:8px;display:flex}.action-icon-btn.small-btn[data-v-cd02809f]{border-radius:4px;width:24px;height:24px}.action-icon-btn[data-v-cd02809f]{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-cd02809f]:disabled{opacity:.6;cursor:not-allowed}.action-icon-btn[data-v-cd02809f]: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-cd02809f]{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-cd02809f],.form-group input[type=password][data-v-cd02809f],.form-group input[type=email][data-v-cd02809f],.form-group input[type=tel][data-v-cd02809f],.form-group input[type=url][data-v-cd02809f],.form-group input[type=number][data-v-cd02809f],.form-group textarea[data-v-cd02809f],.form-group select[data-v-cd02809f],.datetime-picker[data-v-cd02809f]{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-cd02809f]:focus:not(:disabled),.form-group input[type=password][data-v-cd02809f]:focus:not(:disabled),.form-group input[type=email][data-v-cd02809f]:focus:not(:disabled),.form-group input[type=tel][data-v-cd02809f]:focus:not(:disabled),.form-group input[type=url][data-v-cd02809f]:focus:not(:disabled),.form-group input[type=number][data-v-cd02809f]:focus:not(:disabled),.form-group textarea[data-v-cd02809f]:focus:not(:disabled),.form-group select[data-v-cd02809f]:focus:not(:disabled),.datetime-picker[data-v-cd02809f]:focus:not(:disabled){border-color:var(--cms-color-primary)}.input-invalid[data-v-cd02809f],.input-invalid[data-v-cd02809f]:focus{border-color:var(--cms-color-danger,#ef4444)!important;box-shadow:none!important}.error-message[data-v-cd02809f]{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-cd02809f]:disabled{opacity:.6;cursor:not-allowed;background:var(--cms-color-surface-hover);border-color:var(--cms-color-border)}.form-group textarea[data-v-cd02809f]{resize:vertical;min-height:80px}.color-picker-wrapper[data-v-cd02809f]{align-items:center;gap:8px;display:flex}.color-swatch-input[data-v-cd02809f]{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-cd02809f]:disabled{opacity:.6;cursor:not-allowed}.color-hex-input[data-v-cd02809f]{flex-grow:1}.field-hint[data-v-cd02809f]{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-cd02809f]{color:var(--cms-color-text-faint);font-weight:400}.unlinked-hint-action[data-v-cd02809f]{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.unlinked-hint-action[data-v-cd02809f]:hover{color:var(--cms-color-primary-hover)}.inline-icon[data-v-cd02809f]{margin-top:-1px}.hint-flex[data-v-cd02809f]{align-items:center;gap:4px;display:inline-flex}.toggle-switch[data-v-cd02809f]{width:42px;height:22px;display:inline-block;position:relative}.toggle-switch input[data-v-cd02809f]{opacity:0;width:0;height:0}.slider[data-v-cd02809f]{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-cd02809f]: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-cd02809f]:before{transform:translate(20px)}input:disabled+.slider[data-v-cd02809f]{opacity:.6;cursor:not-allowed}.toggle-switch.variant-primary input:checked+.slider[data-v-cd02809f]{background-color:var(--cms-color-primary);border-color:var(--cms-color-primary-hover)}.toggle-switch.variant-danger input:checked+.slider[data-v-cd02809f]{background-color:var(--cms-color-danger);border-color:var(--cms-color-danger-hover)}.toggle-switch.variant-success input:checked+.slider[data-v-cd02809f]{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-8b8a5b2a]{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-8b8a5b2a]{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-8b8a5b2a],.save-btn .btn-text[data-v-8b8a5b2a],.slug-badge[data-v-8b8a5b2a]{display:none}}.top-row[data-v-8b8a5b2a]{justify-content:space-between;align-items:center;padding:10px 20px 6px;display:flex}.bottom-row[data-v-8b8a5b2a]{box-sizing:border-box;align-items:center;height:44px;padding:0;display:flex}.bottom-row-content[data-v-8b8a5b2a]{align-items:center;width:100%;height:100%;display:flex}.node-info[data-v-8b8a5b2a]{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.dynamic-title-group[data-v-8b8a5b2a]{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.auto-sizing-input[data-v-8b8a5b2a]{align-items:center;display:inline-grid}.transparent-btn[data-v-8b8a5b2a]{background:0 0;border-color:#0000}.transparent-btn[data-v-8b8a5b2a]:hover{background:var(--cms-color-surface-hover);border-color:#0000!important}.auto-sizing-input[data-v-8b8a5b2a]: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-8b8a5b2a]{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-8b8a5b2a]:hover:not(:disabled){background:var(--cms-color-surface-hover)}.inline-title-input[data-v-8b8a5b2a]:focus:not(:disabled){background:var(--cms-color-bg);border-color:var(--cms-color-primary)}.inline-title-input[data-v-8b8a5b2a]:disabled{opacity:.75;cursor:not-allowed}.inline-title-input[data-v-8b8a5b2a]::placeholder{color:var(--cms-color-text-muted);opacity:.5;font-weight:400}.meta-row[data-v-8b8a5b2a]{align-items:center;gap:6px;display:flex}.slug-badge[data-v-8b8a5b2a]{font-size:13px;font-family:var(--cms-font-mono);color:var(--cms-color-text-muted)}.actions-group[data-v-8b8a5b2a]{align-items:center;gap:10px;display:flex}[data-v-8b8a5b2a] .icon-only-btn{padding:0 8px!important}.context-wrapper[data-v-8b8a5b2a]{display:flex;position:relative}.publish-btn[data-v-8b8a5b2a],.save-btn[data-v-8b8a5b2a]{align-items:center;gap:6px;display:flex}.publish-icon[data-v-8b8a5b2a],.save-icon[data-v-8b8a5b2a]{margin-top:-1px}.tab-navigation[data-v-8b8a5b2a]{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-8b8a5b2a]::-webkit-scrollbar{display:none}.tab-btn[data-v-8b8a5b2a]{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-8b8a5b2a]:hover{color:var(--cms-color-text-main)}.tab-btn.active[data-v-8b8a5b2a]{color:var(--cms-color-primary);z-index:11}.tab-btn.active[data-v-8b8a5b2a]: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-8b8a5b2a]{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-8b8a5b2a]{color:var(--cms-color-warning);align-items:center;gap:12px;font-size:14px;display:flex}.conflict-text p[data-v-8b8a5b2a]{color:var(--cms-color-text-subtle);margin:2px 0 0;font-size:13px}.warning-icon[data-v-8b8a5b2a]{font-size:20px}.conflict-actions[data-v-8b8a5b2a]{gap:8px;display:flex}.settings-view[data-v-8b8a5b2a]{width:auto;padding:20px;transition:opacity .2s}.settings-view.is-full-width[data-v-8b8a5b2a]{max-width:none;padding:0}.settings-view.is-loading-data[data-v-8b8a5b2a]{opacity:.5;pointer-events:none}.split-button-group[data-v-8b8a5b2a]{display:flex;position:relative}.split-button-group .publish-btn[data-v-8b8a5b2a]{border-top-right-radius:0;border-bottom-right-radius:0;border-right:1px solid #ffffff40!important}.split-button-group[data-v-8b8a5b2a] .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-8b8a5b2a] .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-8b8a5b2a]{display:flex;position:relative}.split-dropdown-btn[data-v-8b8a5b2a]{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-8b8a5b2a]:hover:not(:disabled){background:var(--cms-color-primary-hover)}.split-dropdown-btn[data-v-8b8a5b2a]: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-950df01c]{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-950df01c]{flex-direction:column;flex:100%;width:100%;height:100%;display:flex;position:relative}.empty-region-placeholder[data-v-950df01c]{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-950df01c]:hover:not(.is-disabled){background-color:#3b82f60d}.empty-region-placeholder.is-disabled[data-v-950df01c]{cursor:not-allowed;background-color:var(--cms-color-surface-hover);border-color:#0000}.draft-lock-message[data-v-950df01c]{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-950df01c]{opacity:1!important;pointer-events:auto!important;transform:scale(1)!important}.drag-area[data-v-950df01c]{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-950df01c]{cursor:not-allowed}.ghost-block[data-v-950df01c]{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-950df01c]{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-950df01c]{stroke-width:2.5px;color:#fff}.block-wrapper[data-v-950df01c]{margin-bottom:8px;position:relative}.preview-block-card[data-v-950df01c]{z-index:1;transition:border-color var(--cms-transition-fast);margin:0;padding:0;position:relative}.active-item-border[data-v-950df01c]{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-950df01c]{background:0 0;border:none;padding:0}.preview-block-card.is-inherited-card[data-v-950df01c]{opacity:.5;cursor:not-allowed;-webkit-user-select:none;user-select:none}.preview-block-card.is-inherited-card .block-preview-content[data-v-950df01c]{pointer-events:none}.preview-block-card.is-hidden-block .block-preview-content[data-v-950df01c]{opacity:.65;filter:grayscale()}.preview-block-card.is-upcoming-block .block-preview-content[data-v-950df01c],.preview-block-card.is-passed-block .block-preview-content[data-v-950df01c]{opacity:.75;filter:grayscale(.35);transition:opacity .2s,filter .2s}.preview-block-card.is-upcoming-block:hover .block-preview-content[data-v-950df01c],.preview-block-card.is-passed-block:hover .block-preview-content[data-v-950df01c],.preview-block-card.is-upcoming-block.is-selected .block-preview-content[data-v-950df01c],.preview-block-card.is-passed-block.is-selected .block-preview-content[data-v-950df01c]{opacity:1;filter:grayscale(0)}.block-control-bar[data-v-950df01c]{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-950df01c]:after{content:"";height:10px;position:absolute;top:100%;left:0;right:0}.preview-block-card:hover>.block-control-bar[data-v-950df01c],.preview-block-card.is-selected>.block-control-bar[data-v-950df01c],.preview-block-card.has-open-context-menu>.block-control-bar[data-v-950df01c]{opacity:1;pointer-events:auto;transform:translateY(-4px)}:is(.preview-block-card:has(.preview-block-card:hover)>.block-control-bar[data-v-950df01c],.preview-block-card:has(.preview-block-card.is-selected)>.block-control-bar[data-v-950df01c]){z-index:49;transform:translateY(-32px)}.ctrl-btn[data-v-950df01c]{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-950df01c]:hover{background:var(--cms-color-surface-hover);color:var(--cms-color-text-main)}.ctrl-btn.add-btn[data-v-950df01c]:hover{color:var(--cms-color-primary);background:var(--cms-color-surface-hover)}.ctrl-btn.placement-btn[data-v-950df01c]{color:var(--cms-color-text-muted);background:0 0}.ctrl-btn.disabled-btn[data-v-950df01c]{color:var(--cms-color-danger)}.ctrl-btn.disabled-btn[data-v-950df01c]:hover{color:var(--cms-color-danger);background:var(--cms-color-danger-light)}.ctrl-btn.timed-btn.is-upcoming[data-v-950df01c]{color:var(--cms-color-info,#0284c7)}.ctrl-btn.timed-btn.is-upcoming[data-v-950df01c]:hover{color:var(--cms-color-info,#0284c7);background:var(--cms-color-info-light,#e0f2fe)}.ctrl-btn.timed-btn.is-showing[data-v-950df01c]{color:var(--cms-color-success,#16a34a)}.ctrl-btn.timed-btn.is-showing[data-v-950df01c]:hover{color:var(--cms-color-success,#16a34a);background:var(--cms-color-success-light,#dcfce7)}.ctrl-btn.timed-btn.is-passed[data-v-950df01c]{color:var(--cms-color-warning,#d97706)}.ctrl-btn.timed-btn.is-passed[data-v-950df01c]:hover{color:var(--cms-color-warning,#d97706);background:var(--cms-color-warning-light,#fef3c7)}.placement-icon[data-v-950df01c]{align-items:center;gap:1px;display:inline-flex}.placement-label[data-v-950df01c]{color:var(--cms-color-primary);text-transform:capitalize;white-space:nowrap;padding:0 4px;font-size:11px}.ctrl-btn.danger-btn[data-v-950df01c]:hover{background:var(--cms-color-danger-light);color:var(--cms-color-danger)}.ctrl-divider[data-v-950df01c]{background:var(--cms-color-border);width:1px;height:14px;margin:0 2px}.nested-layout-container[data-v-950df01c]{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-950df01c]{align-self:flex-start;padding-left:6px}.nested-region-cell[data-v-950df01c]{z-index:1;background:0 0;min-height:60px;position:relative}.nested-region-cell[data-v-950df01c] .drag-area-container{padding:0!important}.nested-cell-label[data-v-950df01c]{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-19faf592]{flex-direction:column;flex-grow:1;width:100%;height:100%;display:flex;overflow:hidden}.split-workspace[data-v-19faf592]{width:100%;height:100%;display:flex;position:relative;overflow:hidden}.drag-pointer-shield[data-v-19faf592]{z-index:9999;cursor:col-resize;background:0 0;position:absolute;inset:0}.left-pane[data-v-19faf592]{flex-direction:column;min-width:320px;height:100%;display:flex;overflow:hidden}.right-pane[data-v-19faf592]{flex-direction:column;min-width:280px;height:100%;display:flex;overflow:hidden}@media (width<=768px){.left-pane[data-v-19faf592],.right-pane[data-v-19faf592]{min-width:100%}}.canvas-tab-view[data-v-19faf592]{flex-direction:column;flex-grow:1;width:100%;display:flex}.tab-fade-enter-active[data-v-19faf592],.tab-fade-leave-active[data-v-19faf592]{transition:opacity var(--cms-transition-fast)}.tab-fade-enter-from[data-v-19faf592],.tab-fade-leave-to[data-v-19faf592]{opacity:0}
|