@plumix/admin 0.6.0 → 0.7.0
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/dist/assets/-errors-RB-rEi-I.js +1 -0
- package/dist/assets/{_-C6mMIz3l.js → _-DngjjFK4.js} +1 -1
- package/dist/assets/{_-CljmxTlS.js → _-h-_izgKQ.js} +2 -2
- package/dist/assets/_authenticated-Bgi03W1b.js +1 -0
- package/dist/assets/{_authenticated-kVO_-7Sn.js → _authenticated-CH4N_cSi.js} +2 -2
- package/dist/assets/{_authenticated-BYa_DMSE.js → _authenticated-E1SDZnP9.js} +1 -1
- package/dist/assets/{_name-aKYVqU32.js → _name-BEnhsrWI.js} +2 -2
- package/dist/assets/{_name-BGOHegOZ.js → _name-DQVev0AG.js} +1 -1
- package/dist/assets/_page-D0l1kYXx.js +1 -0
- package/dist/assets/_page-wrWlHYyD.js +2 -0
- package/dist/assets/{_slug-Bdb7jL1l.js → _slug-BfC_rJhz.js} +1 -1
- package/dist/assets/{_slug-DWmiGCz6.js → _slug-Bztim-i3.js} +2 -2
- package/dist/assets/{_token-s0TefqyQ.js → _token-D-j4VVVI.js} +1 -1
- package/dist/assets/{_token-DVnFp6Xw.js → _token-Dsc9zTxr.js} +2 -2
- package/dist/assets/{allowed-domains-CQYTKIje.js → allowed-domains-B6oGNO8i.js} +1 -1
- package/dist/assets/{ar-Dh1_Madu.js → ar-D0lPKYVq.js} +1 -1
- package/dist/assets/{bootstrap-DAMkwOTO.js → bootstrap-Dbv-AIOo.js} +2 -2
- package/dist/assets/{bootstrap-oBDU-2AF.js → bootstrap-jj58lGRM.js} +1 -1
- package/dist/assets/breadcrumb-Di_E7s51.js +1 -0
- package/dist/assets/{create-CaxQlu5L.js → create-CXFn-yel.js} +1 -1
- package/dist/assets/{create-DQ5AIyqG.js → create-Cvo5wKBV.js} +2 -2
- package/dist/assets/{create-DgEbjT-H.js → create-CylSqfDG.js} +1 -1
- package/dist/assets/create-Dg10UEnK.js +1 -0
- package/dist/assets/{create-CICYrKqG.js → create-DnLK3SmI.js} +2 -2
- package/dist/assets/{de-BDyIkMJC.js → de-ByPNuZ6R.js} +1 -1
- package/dist/assets/{device-COTq1gdI.js → device-CxnTgMZ6.js} +1 -1
- package/dist/assets/{device-Ae_X8x7B.js → device-vY_uxsCV.js} +2 -2
- package/dist/assets/{edit-BAIuOGAs.js → edit-2aEJRHSG.js} +3 -3
- package/dist/assets/edit-BPw2fZ5B.js +1 -0
- package/dist/assets/{edit-BskWld1E.js → edit-BRhq3mGx.js} +2 -2
- package/dist/assets/{edit-DtsKHyYT.js → edit-Cc5hxhM7.js} +2 -2
- package/dist/assets/{edit-DLcsu05p.js → edit-Cu_XtYMX.js} +1 -1
- package/dist/assets/edit-D9-iSIWu.js +2 -0
- package/dist/assets/edit-DOoYH9tG.js +1 -0
- package/dist/assets/{en-DYui4aSX.js → en-LRPc5lfW.js} +1 -1
- package/dist/assets/form-CY307HEl.js +1 -0
- package/dist/assets/index-B9lFt9M4.css +1 -0
- package/dist/assets/{index-MLqJwsKQ.js → index-D7rrOihJ.js} +3 -3
- package/dist/assets/json-code-editor-9PGQwSkN.js +12 -0
- package/dist/assets/{login-DU7y_Ylt.js → login-0-PQLYlS.js} +2 -2
- package/dist/assets/{login-Bify50W1.js → login-Dk-LKP1e.js} +1 -1
- package/dist/assets/{mailer-DoyD5gWW.js → mailer-BemLhNOI.js} +1 -1
- package/dist/assets/{mailer-DeygotUf.js → mailer-CTVZRBU2.js} +2 -2
- package/dist/assets/manifest-2YUNz_ML.js +1 -0
- package/dist/assets/meta-box-CwZHh0Nj.js +1 -0
- package/dist/assets/meta-field-errors-Za3ulViR.js +1 -0
- package/dist/assets/{palette-commands-DX18c0wH.js → palette-commands-Di6Dnj4z.js} +2 -2
- package/dist/assets/{plugin-registry-nSDhEMki.js → plugin-registry-DLDusPOA.js} +1 -1
- package/dist/assets/{register-core-blocks-Bh6u65qH.js → register-core-blocks-CVavxPiP.js} +1 -1
- package/dist/assets/rich-text-field-DGgpOqHQ.js +123 -0
- package/dist/assets/{search-input-BG9KotQw.js → search-input-B7zZp8UE.js} +2 -2
- package/dist/assets/{settings-CXPqdjqb.js → settings-199pUzJn.js} +1 -1
- package/dist/assets/{settings-BtTviWkj.js → settings-DZyJ36D2.js} +2 -2
- package/dist/assets/{toast-CWtRg47-.js → toast-26daCjvR.js} +1 -1
- package/dist/assets/{uk-Cq7H12wQ.js → uk-CTQT1XuD.js} +1 -1
- package/dist/assets/use-visible-fields-C0FKrnz6.js +2 -0
- package/dist/assets/{users-DzXByAic.js → users-BmZY207i.js} +1 -1
- package/dist/assets/{users-CMJAWmSV.js → users-ZRNKnWGa.js} +2 -2
- package/dist/assets/{utils-kFAy0YTP.js → utils-RSNxndzY.js} +2 -2
- package/dist/assets/{valibot-DO4fmSyX.js → valibot-CHirPb_E.js} +1 -1
- package/dist/assets/w3c-keyname-BOAvb0qz.js +1 -0
- package/dist/assets/{zh-CN-YIfV5Hug.js → zh-CN-g4V81dTW.js} +1 -1
- package/dist/index.html +23 -23
- package/package.json +9 -5
- package/dist/assets/-errors-CapunOga.js +0 -1
- package/dist/assets/_authenticated-Dcp2Ynic.js +0 -1
- package/dist/assets/_page--PcGMzdu.js +0 -2
- package/dist/assets/_page-Be9sR1G2.js +0 -1
- package/dist/assets/breadcrumb-x0qfIbU9.js +0 -1
- package/dist/assets/create-3wo13Gal.js +0 -1
- package/dist/assets/edit-DU82eAhY.js +0 -1
- package/dist/assets/edit-Ds4B6Pmi.js +0 -2
- package/dist/assets/edit-evcBUaDE.js +0 -1
- package/dist/assets/form-B_PPIck3.js +0 -1
- package/dist/assets/index-BtnQdcjJ.css +0 -1
- package/dist/assets/manifest-Bdiv3Qyq.js +0 -1
- package/dist/assets/meta-box-B-hP57rw.js +0 -1
- package/dist/assets/meta-box-field-BTDudxyS.js +0 -1
- package/dist/assets/meta-box-grid-CoW6o7O7.js +0 -1
- package/dist/assets/rich-text-field-CS-OOttw.js +0 -123
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,t}from"./jsx-runtime-DUAcabCT.js";import{t as n}from"./react-DbyrFoBd.js";import{i as r,n as i}from"./dist-BL2bKHuR.js";import{t as a,u as o}from"./orpc-CmtRGLtZ.js";import{t as s}from"./useQuery-QAYxQfCx.js";import{t as c}from"./useMutation-vgMtqBOX.js";import{t as l}from"./useSuspenseQuery-9GLTSYHf.js";import{o as u,t as d}from"./link-CI3qhqYu.js";import{a as f,i as p,n as m,r as h,s as g,t as _}from"./select-D3kIVy0H.js";import{n as v,t as y}from"./button-DG1Ca1S5.js";import{i as b,o as x,r as S,t as C}from"./empty-p3QKoEqD.js";import{t as w}from"./createLucideIcon-C0O-yxZG.js";import{t as ee}from"./arrow-left-CWzmtp8T.js";import{n as T,r as te,t as ne}from"./textarea-iIsBg5jH.js";import{n as re,t as ie}from"./clipboard-D6ZMYUE8.js";import{B as ae,F as oe,I as se,K as ce,L as le,N as ue,O as de,P as fe,R as pe,V as me,c as he,d as ge,f as _e,k as ve,l as ye,s as be,u as xe,z as Se}from"./utils-RSNxndzY.js";import{i as Ce,n as we,r as Te,t as Ee}from"./slug-CAYcbdmW.js";import{t as E}from"./use-label-CykSHq9A.js";import{S as De,b as Oe,p as ke}from"./manifest-2YUNz_ML.js";import{D as Ae,T as je,b as Me,d as Ne,h as Pe,k as Fe,l as Ie,r as Le,v as Re,w as ze,y as Be}from"./dist-ClOzYsk5.js";import{n as Ve}from"./vmessage-CRX68a8a.js";import{t as He}from"./caps-SYhabp1B.js";import{t as Ue}from"./use-formatters-DLJOFcWE.js";import{n as We,t as Ge}from"./user-role-labels-NFC7DRSs.js";import{n as Ke,r as qe,t as Je}from"./-constants-D2aYlJ-p.js";import{a as Ye,i as Xe,n as Ze,r as Qe,t as $e}from"./card-L2-kK5VK.js";import{t as et}from"./edit-2tkUFGA0.js";import{t as tt}from"./edit-BRhq3mGx.js";import{t as nt}from"./input-xYuLUQID.js";import{a as rt,n as it}from"./passkey-DN4QfROE.js";import{a as at,c as ot,f as st,h as ct,i as lt,n as ut,o as dt,r as ft,s as pt,t as mt}from"./form-CY307HEl.js";import{n as D,t as O}from"./alert-cwX3fWUu.js";import{t as ht}from"./valibot-CHirPb_E.js";import{n as gt,t as _t}from"./orpc-errors-DWk96ZMY.js";import{t as vt}from"./scopes-C_7AiPdH.js";import{t as yt}from"./dates-CSmOj6E-.js";import{t as bt}from"./meta-box-CwZHh0Nj.js";import{n as xt,r as St,t as Ct}from"./meta-field-errors-Za3ulViR.js";var wt=w(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),Tt=w(`tv`,[[`path`,{d:`m17 2-5 5-5-5`,key:`16satq`}],[`rect`,{width:`20`,height:`15`,x:`2`,y:`7`,rx:`2`,key:`1e6viu`}]]),Et=w(`watch`,[[`path`,{d:`M12 10v2.2l1.6 1`,key:`n3r21l`}],[`path`,{d:`m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05`,key:`18k57s`}],[`path`,{d:`m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05`,key:`16ny36`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}]]),k=e(n(),1),A=e(t(),1),j={nameRequired:{id:`apiTokens.create.nameRequired`},nameTooLong:{id:`apiTokens.create.nameTooLong`},expires7:{id:`apiTokens.expiry.7`},expires30:{id:`apiTokens.expiry.30`},expires90:{id:`apiTokens.expiry.90`},expiresNever:{id:`apiTokens.expiry.never`},mintFallback:{id:`apiTokens.mint.fallback`},revokeFallback:{id:`apiTokens.revoke.fallback`},namePlaceholder:{id:`apiTokens.create.namePlaceholder`},copyAria:{id:`apiTokens.secret.copyAria`},capabilitiesPlaceholder:{id:`apiTokens.create.capabilities.placeholder`}},Dt=Pe({name:Be(ze(),Ae(),Ne(1,Ve(j.nameRequired)),Ie(64,Ve(j.nameTooLong))),expires:Re([`7`,`30`,`90`,`never`]),scopeMode:Re([`inherit`,`restrict`]),scopesText:Be(ze(),Ie(4096))}),Ot={7:j.expires7,30:j.expires30,90:j.expires90,never:j.expiresNever},kt={7:7,30:30,90:90,never:null};function At(){let e=o(),t=s(a.auth.apiTokens.list.queryOptions({input:{}})),n=c({mutationFn:e=>a.auth.apiTokens.create.call({name:e.name,expiresInDays:e.expiresInDays,scopes:e.scopes===null?null:[...e.scopes]}),onSuccess:()=>e.invalidateQueries({queryKey:a.auth.apiTokens.list.key()})}),r=c({mutationFn:e=>a.auth.apiTokens.revoke.call({id:e}),onSuccess:()=>e.invalidateQueries({queryKey:a.auth.apiTokens.list.key()})});return(0,A.jsx)(Mt,{mode:`self`,tokens:t.data??[],isLoading:t.isLoading,onMint:(e,t)=>n.mutate(e,t),mintPending:n.isPending,onRevoke:(e,t)=>r.mutate(e,t),revokePending:r.isPending})}function jt({userId:e}){let t=o(),n=s(a.auth.apiTokens.adminList.queryOptions({input:{userId:e}})),r=c({mutationFn:e=>a.auth.apiTokens.adminRevoke.call({id:e}),onSuccess:()=>t.invalidateQueries({queryKey:a.auth.apiTokens.adminList.key()})});return(0,A.jsx)(Mt,{mode:`admin`,tokens:n.data?.items??[],isLoading:n.isLoading,onRevoke:(e,t)=>r.mutate(e,t),revokePending:r.isPending})}function Mt({mode:e,tokens:t,isLoading:n,onMint:r,mintPending:a=!1,onRevoke:o,revokePending:s}){let c=E(),[l,u]=(0,k.useState)(null),[d,f]=(0,k.useState)(null),[p,m]=(0,k.useState)(null),[h,g]=(0,k.useState)(null),_=(0,A.jsx)(`bdi`,{children:p?.name??``});return(0,A.jsxs)($e,{"data-testid":`api-tokens-card`,children:[(0,A.jsxs)(Xe,{children:[(0,A.jsx)(Ye,{children:(0,A.jsx)(i,{id:`apiTokens.title`,message:`API tokens`})}),(0,A.jsx)(Qe,{children:e===`self`?(0,A.jsx)(i,{id:`apiTokens.description.self`,message:`Personal access tokens for CLIs, MCP servers, CI bots, or any other non-browser client. The full secret is shown once at mint time.`}):(0,A.jsx)(i,{id:`apiTokens.description.admin`,message:`Tokens minted by this user. You can revoke any of them — minting requires the owner's authenticated browser session.`})})]}),(0,A.jsxs)(Ze,{className:`flex flex-col gap-6`,children:[r?(0,A.jsx)(Nt,{onSubmit:e=>{f(null);let t=e.scopeMode===`inherit`?null:vt(e.scopesText);r({name:e.name,expiresInDays:kt[e.expires],scopes:t},{onSuccess:e=>{u({secret:e.secret,name:e.token.name})},onError:e=>{f(e instanceof Error?e.message:j.mintFallback)}})},pending:a,error:d}):null,n?(0,A.jsx)(`p`,{className:`text-muted-foreground text-sm`,"data-testid":`api-tokens-loading`,children:(0,A.jsx)(i,{id:`apiTokens.loading`,message:`Loading tokens…`})}):t.length===0?(0,A.jsx)(C,{"data-testid":`api-tokens-empty`,children:(0,A.jsxs)(b,{children:[(0,A.jsx)(x,{children:(0,A.jsx)(i,{id:`apiTokens.empty.title`,message:`No tokens yet`})}),(0,A.jsx)(S,{children:e===`self`?(0,A.jsx)(i,{id:`apiTokens.empty.description.self`,message:`Mint one above for your CLI / MCP server / CI bot.`}):(0,A.jsx)(i,{id:`apiTokens.empty.description.admin`,message:`This user hasn't minted any API tokens.`})})]})}):(0,A.jsxs)(be,{"data-testid":`api-tokens-table`,children:[(0,A.jsx)(ge,{children:(0,A.jsxs)(_e,{children:[(0,A.jsx)(xe,{children:(0,A.jsx)(i,{id:`apiTokens.col.name`,message:`Name`})}),(0,A.jsx)(xe,{children:(0,A.jsx)(i,{id:`apiTokens.col.prefix`,message:`Prefix`})}),(0,A.jsx)(xe,{children:(0,A.jsx)(i,{id:`apiTokens.col.scopes`,message:`Scopes`})}),(0,A.jsx)(xe,{children:(0,A.jsx)(i,{id:`apiTokens.col.lastUsed`,message:`Last used`})}),(0,A.jsx)(xe,{children:(0,A.jsx)(i,{id:`apiTokens.col.expires`,message:`Expires`})}),(0,A.jsx)(xe,{className:`w-[1%] text-end`,children:(0,A.jsx)(i,{id:`apiTokens.col.actions`,message:`Actions`})})]})}),(0,A.jsx)(he,{children:t.map(e=>(0,A.jsxs)(_e,{"data-testid":`api-tokens-row-${e.id}`,children:[(0,A.jsx)(ye,{children:(0,A.jsx)(`span`,{className:`font-medium`,children:e.name})}),(0,A.jsx)(ye,{children:(0,A.jsxs)(`code`,{className:`text-muted-foreground font-mono text-xs`,children:[e.prefix,`…`]})}),(0,A.jsx)(ye,{children:(0,A.jsx)(It,{scopes:e.scopes})}),(0,A.jsx)(ye,{className:`text-muted-foreground text-sm`,children:(0,A.jsx)(Ft,{when:e.lastUsedAt})}),(0,A.jsx)(ye,{className:`text-muted-foreground text-sm`,children:(0,A.jsx)(Ft,{when:e.expiresAt})}),(0,A.jsx)(ye,{className:`text-end`,children:(0,A.jsx)(y,{variant:`ghost`,size:`sm`,onClick:()=>m({id:e.id,name:e.name}),"data-testid":`api-tokens-revoke-${e.id}`,children:(0,A.jsx)(i,{id:`apiTokens.revoke.button`,message:`Revoke`})})})]},e.id))})]})]}),(0,A.jsx)(Pt,{secret:l?.secret??null,name:l?.name??``,onClose:()=>u(null)}),(0,A.jsx)(fe,{open:p!==null,onOpenChange:e=>{e||(m(null),g(null))},children:(0,A.jsxs)(le,{children:[(0,A.jsxs)(ae,{children:[(0,A.jsx)(me,{children:(0,A.jsx)(i,{id:`apiTokens.revoke.title`,message:`Revoke "{name}"?`,values:{name:_},comment:`name: the user-chosen token nickname (e.g. 'CI deploy key')`})}),(0,A.jsx)(pe,{children:(0,A.jsx)(i,{id:`apiTokens.revoke.description`,message:`The token stops working immediately. Any client using it will start getting 401s on the next request.`})})]}),h?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`api-tokens-revoke-error`,children:(0,A.jsx)(D,{children:c(h)})}):null,(0,A.jsxs)(Se,{children:[(0,A.jsx)(se,{disabled:s,children:(0,A.jsx)(i,{id:`apiTokens.revoke.cancel`,message:`Cancel`})}),(0,A.jsx)(oe,{"data-testid":`api-tokens-revoke-confirm-button`,disabled:s,className:v({variant:`destructive`}),onClick:e=>{e.preventDefault(),p&&(g(null),o(p.id,{onSuccess:()=>m(null),onError:e=>{g(e instanceof Error?e.message:j.revokeFallback)}}))},children:s?(0,A.jsx)(i,{id:`apiTokens.revoke.pending`,message:`Revoking…`}):(0,A.jsx)(i,{id:`apiTokens.revoke.confirm`,message:`Revoke`})})]})]})})]})}function Nt({onSubmit:e,pending:t,error:n}){let r=E(),a=st({resolver:ht(Dt),defaultValues:{name:``,expires:`90`,scopeMode:`inherit`,scopesText:``},mode:`onBlur`}),o=ct({control:a.control,name:`scopeMode`});return(0,A.jsx)(mt,{...a,children:(0,A.jsxs)(`form`,{className:`flex flex-col gap-4 border-b pb-6`,onSubmit:a.handleSubmit(t=>{e(t),a.reset()}),children:[(0,A.jsx)(lt,{control:a.control,name:`name`,render:({field:e})=>(0,A.jsxs)(at,{children:[(0,A.jsx)(dt,{children:(0,A.jsx)(i,{id:`apiTokens.create.name`,message:`Name`})}),(0,A.jsx)(ut,{children:(0,A.jsx)(nt,{placeholder:r(j.namePlaceholder),disabled:t,"data-testid":`api-tokens-create-name-input`,...e})}),(0,A.jsx)(pt,{})]})}),(0,A.jsx)(lt,{control:a.control,name:`expires`,render:({field:e})=>(0,A.jsxs)(at,{children:[(0,A.jsx)(dt,{children:(0,A.jsx)(i,{id:`apiTokens.create.expires`,message:`Expires`})}),(0,A.jsxs)(_,{value:e.value,onValueChange:e.onChange,disabled:t,children:[(0,A.jsx)(ut,{children:(0,A.jsx)(p,{className:`w-full`,onBlur:e.onBlur,"data-testid":`api-tokens-create-expires-select`,children:(0,A.jsx)(f,{})})}),(0,A.jsx)(m,{children:Object.keys(Ot).map(e=>(0,A.jsx)(h,{value:e,children:r(Ot[e])},e))})]}),(0,A.jsx)(pt,{})]})}),(0,A.jsx)(lt,{control:a.control,name:`scopeMode`,render:({field:e})=>(0,A.jsxs)(at,{children:[(0,A.jsx)(dt,{id:`api-token-scope-label`,children:(0,A.jsx)(i,{id:`apiTokens.create.permissions`,message:`Permissions`})}),(0,A.jsx)(ut,{children:(0,A.jsxs)(T,{value:e.value,onValueChange:e.onChange,"aria-labelledby":`api-token-scope-label`,className:`gap-2`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,A.jsx)(te,{value:`inherit`,id:`api-token-scope-inherit`,disabled:t,"data-testid":`api-tokens-create-scope-inherit-radio`}),(0,A.jsx)(ot,{htmlFor:`api-token-scope-inherit`,className:`font-normal`,children:(0,A.jsx)(i,{id:`apiTokens.create.scope.inherit`,message:`Inherit all your permissions`})})]}),(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,A.jsx)(te,{value:`restrict`,id:`api-token-scope-restrict`,disabled:t,"data-testid":`api-tokens-create-scope-restrict-radio`}),(0,A.jsx)(ot,{htmlFor:`api-token-scope-restrict`,className:`font-normal`,children:(0,A.jsx)(i,{id:`apiTokens.create.scope.restrict`,message:`Restrict to specific capabilities`})})]})]})}),(0,A.jsx)(pt,{})]})}),o===`restrict`?(0,A.jsx)(lt,{control:a.control,name:`scopesText`,render:({field:e})=>(0,A.jsxs)(at,{children:[(0,A.jsx)(dt,{children:(0,A.jsx)(i,{id:`apiTokens.create.capabilities`,message:`Capabilities`})}),(0,A.jsx)(ut,{children:(0,A.jsx)(ne,{rows:4,placeholder:r(j.capabilitiesPlaceholder),disabled:t,"data-testid":`api-tokens-create-scopes-textarea`,className:`font-mono`,...e})}),(0,A.jsx)(`p`,{className:`text-muted-foreground text-xs`,children:(0,A.jsx)(i,{id:`apiTokens.create.capabilities.help`,message:`One capability per line. The token can never exceed the caps your role grants — this is an additional narrowing.`})}),(0,A.jsx)(pt,{})]})}):null,n?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`api-tokens-create-error`,children:(0,A.jsx)(D,{children:r(n)})}):null,(0,A.jsx)(`div`,{className:`flex justify-end`,children:(0,A.jsxs)(y,{type:`submit`,disabled:t,"data-testid":`api-tokens-create-submit`,children:[(0,A.jsx)(ce,{className:`size-4`}),t?(0,A.jsx)(i,{id:`apiTokens.create.submit.pending`,message:`Minting…`}):(0,A.jsx)(i,{id:`apiTokens.create.submit.idle`,message:`Mint token`})]})})]})})}function Pt({secret:e,name:t,onClose:n}){let r=E(),[a,o]=(0,k.useState)(!1),s=async()=>{if(e)try{await ie(e),o(!0),setTimeout(()=>o(!1),2e3)}catch{let e=document.getElementById(`api-tokens-secret-input`);e instanceof HTMLInputElement&&(e.focus(),e.select())}};return(0,A.jsx)(fe,{open:e!==null,onOpenChange:e=>{e||(o(!1),n())},children:(0,A.jsxs)(le,{"data-testid":`api-tokens-secret-dialog`,children:[(0,A.jsxs)(ae,{children:[(0,A.jsx)(me,{children:(0,A.jsx)(i,{id:`apiTokens.secret.title`,message:`Token "{name}" minted`,values:{name:(0,A.jsx)(`bdi`,{children:t})},comment:`name: the user-chosen token nickname (e.g. 'CI deploy key')`})}),(0,A.jsx)(pe,{children:(0,A.jsx)(i,{id:`apiTokens.secret.description`,message:`Copy the secret now. We won't show it again — losing it means revoking and re-minting.`})})]}),(0,A.jsxs)(`div`,{className:`flex gap-2`,children:[(0,A.jsx)(nt,{id:`api-tokens-secret-input`,readOnly:!0,value:e??``,onFocus:e=>e.currentTarget.select(),"data-testid":`api-tokens-secret-input`,className:`bg-muted text-muted-foreground font-mono`}),(0,A.jsx)(y,{type:`button`,variant:`outline`,onClick:()=>{s()},"data-testid":`api-tokens-secret-copy-button`,"aria-label":r(j.copyAria),children:a?(0,A.jsx)(g,{className:`size-4`}):(0,A.jsx)(re,{className:`size-4`})})]}),(0,A.jsx)(Se,{children:(0,A.jsx)(oe,{onClick:n,"data-testid":`api-tokens-secret-done-button`,children:(0,A.jsx)(i,{id:`apiTokens.secret.done`,message:`Done`})})})]})})}function Ft({when:e}){let{formatRelative:t}=Ue();return e===null?(0,A.jsx)(i,{id:`apiTokens.never`,message:`Never`}):(0,A.jsx)(A.Fragment,{children:t(yt(e))})}function It({scopes:e}){return e===null?(0,A.jsx)(ue,{variant:`outline`,"data-testid":`api-tokens-scope-inherit`,children:(0,A.jsx)(i,{id:`apiTokens.scope.inheritRole`,message:`Inherit role`})}):e.length===0?(0,A.jsx)(ue,{variant:`outline`,"data-testid":`api-tokens-scope-empty`,children:(0,A.jsx)(i,{id:`apiTokens.scope.empty`,message:`No caps`})}):(0,A.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.map(e=>(0,A.jsx)(ue,{variant:`secondary`,"data-testid":`api-tokens-scope-${e}`,children:e},e))})}function Lt({currentCode:e,manifest:t,onSelect:n}){let{i18n:i}=r(),a=t.i18n?.locales??[];return(0,A.jsxs)(_,{value:e,onValueChange:n,children:[(0,A.jsx)(p,{"data-testid":`locale-switcher-trigger`,"aria-label":i._(`profile.language.aria`,void 0,{message:`Language`}),children:(0,A.jsx)(f,{})}),(0,A.jsx)(m,{children:a.map(e=>(0,A.jsx)(h,{value:e.code,"data-testid":`locale-switcher-option-${e.code}`,children:e.label},e.code))})]})}function Rt({userLocale:e}){let t=ke(),n=typeof e==`string`?e:t.i18n?.defaultLocale??`en`,r=c({mutationFn:e=>a.user.setLocale.call({code:e}),onSuccess:()=>window.location.reload()});return(0,A.jsxs)($e,{"data-testid":`language-card`,children:[(0,A.jsxs)(Xe,{children:[(0,A.jsx)(Ye,{children:(0,A.jsx)(i,{id:`profile.language.title`,message:`Language`})}),(0,A.jsx)(Qe,{children:(0,A.jsx)(i,{id:`profile.language.description`,message:`Your admin chrome renders in this language. The page reloads after you switch so the new translations apply everywhere.`})})]}),(0,A.jsxs)(Ze,{className:`flex flex-col gap-3`,children:[(0,A.jsx)(Lt,{currentCode:n,manifest:t,onSelect:r.mutate}),r.isError?(0,A.jsx)(O,{variant:`destructive`,children:(0,A.jsx)(D,{children:(0,A.jsx)(i,{id:`profile.language.error`,message:`Couldn't switch language. Please try again.`})})}):null]})]})}var M={unnamed:{id:`profile.passkeys.unnamed`},transportInternal:{id:`profile.passkeys.transport.internal`},transportHybrid:{id:`profile.passkeys.transport.hybrid`},transportSecurityKey:{id:`profile.passkeys.transport.securityKey`},nameEmpty:{id:`profile.passkeys.rename.nameEmpty`},notFound:{id:`profile.passkeys.notFound`},lastCredential:{id:`profile.passkeys.lastCredential`},renameFallback:{id:`profile.passkeys.rename.fallback`},deleteFallback:{id:`profile.passkeys.delete.fallback`},enrollCancelled:{id:`profile.passkeys.enroll.cancelled`},enrollAlreadyRegistered:{id:`profile.passkeys.enroll.alreadyRegistered`},enrollNoAuthenticator:{id:`profile.passkeys.enroll.noAuthenticator`},enrollNetworkError:{id:`profile.passkeys.enroll.networkError`},enrollEmailMismatch:{id:`profile.passkeys.enroll.emailMismatch`},enrollFallback:{id:`profile.passkeys.enroll.fallback`}};function zt({userEmail:e}){let t=E(),n=o(),[r,l]=(0,k.useState)(null),u=s(a.auth.credentials.list.queryOptions({input:{}})),d=()=>n.invalidateQueries({queryKey:a.auth.credentials.list.key()}),f=c({mutationFn:()=>it({email:e}),onMutate:()=>{l(null)},onSuccess:()=>d(),onError:e=>{l(Wt(e))}});return(0,A.jsxs)($e,{"data-testid":`profile-passkeys-card`,children:[(0,A.jsxs)(Xe,{children:[(0,A.jsx)(Ye,{children:(0,A.jsx)(i,{id:`profile.passkeys.title`,message:`Passkeys`})}),(0,A.jsx)(Qe,{children:(0,A.jsx)(i,{id:`profile.passkeys.description`,message:`Devices that can sign in to this account. Add a new one before deleting an old one — at least one passkey must remain.`})})]}),(0,A.jsxs)(Ze,{className:`flex flex-col gap-4`,children:[u.isPending?(0,A.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:(0,A.jsx)(i,{id:`profile.passkeys.loading`,message:`Loading…`})}):u.error?(0,A.jsx)(O,{variant:`destructive`,children:(0,A.jsx)(D,{children:(0,A.jsx)(i,{id:`profile.passkeys.loadFailed`,message:`Couldn't load your passkeys. Refresh and try again.`})})}):u.data.length>0?(0,A.jsx)(`ul`,{className:`divide-border divide-y`,"data-testid":`profile-passkeys-list`,children:u.data.map(e=>(0,A.jsx)(Bt,{cred:e,isLast:u.data.length===1,onChanged:d},e.id))}):(0,A.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:(0,A.jsx)(i,{id:`profile.passkeys.empty`,message:`No passkeys registered. Add one to enable sign-in.`})}),r?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`profile-passkeys-enroll-error`,children:(0,A.jsx)(D,{children:t(r)})}):null,(0,A.jsx)(`div`,{className:`flex justify-end`,children:(0,A.jsx)(y,{type:`button`,variant:`outline`,onClick:()=>{f.mutate()},disabled:f.isPending,"data-testid":`profile-passkeys-enroll-button`,children:f.isPending?(0,A.jsx)(i,{id:`profile.passkeys.enroll.pending`,message:`Adding…`}):(0,A.jsx)(i,{id:`profile.passkeys.enroll.idle`,message:`Add passkey`})})})]})]})}function Bt({cred:e,isLast:t,onChanged:n}){let r=E(),{formatDate:o}=Ue(),s=yt(e.createdAt),l=yt(e.lastUsedAt),[u,d]=(0,k.useState)(!1),[f,p]=(0,k.useState)(e.name??``),[m,h]=(0,k.useState)(!1),[g,_]=(0,k.useState)(null),[b,x]=(0,k.useState)(null),S=c({mutationFn:t=>a.auth.credentials.rename.call({id:e.id,name:t}),onMutate:()=>{_(null)},onSuccess:async()=>{d(!1),await n()},onError:e=>{_(Ht(e))}}),C=c({mutationFn:()=>a.auth.credentials.delete.call({id:e.id}),onMutate:()=>{x(null)},onSuccess:async()=>{h(!1),await n()},onError:e=>{x(Ut(e))}}),w=e.name??r(M.unnamed),ee=Vt(e);return(0,A.jsxs)(`li`,{className:`flex flex-col gap-2 py-3`,"data-testid":`profile-passkey-row`,children:[(0,A.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,A.jsx)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:u?(0,A.jsxs)(`form`,{className:`flex flex-col gap-2`,onSubmit:e=>{e.preventDefault();let t=f.trim();if(t.length===0){_(M.nameEmpty);return}S.mutate(t)},children:[(0,A.jsxs)(de,{className:`gap-2`,children:[(0,A.jsx)(ve,{htmlFor:`passkey-name-${e.id}`,className:`text-muted-foreground text-xs`,children:(0,A.jsx)(i,{id:`profile.passkeys.rename.label`,message:`Rename passkey`})}),(0,A.jsx)(nt,{id:`passkey-name-${e.id}`,value:f,maxLength:64,onChange:e=>{p(e.target.value)},"data-testid":`profile-passkey-rename-input`,autoFocus:!0})]}),g?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`profile-passkey-rename-error`,children:(0,A.jsx)(D,{children:r(g)})}):null,(0,A.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,A.jsx)(y,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{d(!1),p(e.name??``),_(null)},disabled:S.isPending,children:(0,A.jsx)(i,{id:`profile.passkeys.rename.cancel`,message:`Cancel`})}),(0,A.jsx)(y,{type:`submit`,size:`sm`,disabled:S.isPending,"data-testid":`profile-passkey-rename-submit`,children:S.isPending?(0,A.jsx)(i,{id:`profile.passkeys.rename.pending`,message:`Saving…`}):(0,A.jsx)(i,{id:`profile.passkeys.rename.save`,message:`Save`})})]})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`p`,{className:`text-sm font-medium`,"data-testid":`profile-passkey-name`,children:w}),(0,A.jsxs)(`div`,{className:`text-muted-foreground flex flex-wrap gap-2 text-xs`,children:[ee?(0,A.jsx)(`span`,{children:r(ee)}):null,e.isBackedUp?(0,A.jsx)(ue,{variant:`secondary`,children:(0,A.jsx)(i,{id:`profile.passkeys.synced`,message:`Synced`})}):null,(0,A.jsx)(`span`,{children:(0,A.jsx)(i,{id:`profile.passkeys.added`,message:`Added {date}`,values:{date:o(s)},comment:`date: a locale-formatted date string`})}),l.getTime()===s.getTime()?null:(0,A.jsx)(`span`,{children:(0,A.jsx)(i,{id:`profile.passkeys.lastUsed`,message:`Last used {date}`,values:{date:o(l)},comment:`date: a locale-formatted date string`})})]})]})}),u?null:(0,A.jsxs)(`div`,{className:`flex shrink-0 gap-1`,children:[(0,A.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>{d(!0),p(e.name??``)},"data-testid":`profile-passkey-rename-button`,children:(0,A.jsx)(i,{id:`profile.passkeys.rename.button`,message:`Rename`})}),(0,A.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,className:`text-destructive hover:text-destructive`,onClick:()=>{h(!0)},disabled:t,title:t?r(M.lastCredential):void 0,"data-testid":`profile-passkey-delete-button`,children:(0,A.jsx)(i,{id:`profile.passkeys.delete.button`,message:`Delete`})})]})]}),(0,A.jsx)(fe,{open:m,onOpenChange:e=>{e||(h(!1),x(null))},children:(0,A.jsxs)(le,{children:[(0,A.jsxs)(ae,{children:[(0,A.jsx)(me,{children:(0,A.jsx)(i,{id:`profile.passkeys.delete.title`,message:`Delete this passkey?`})}),(0,A.jsx)(pe,{children:(0,A.jsx)(i,{id:`profile.passkeys.delete.description`,message:`The device that registered "{name}" will no longer be able to sign in. You can re-enrol it later.`,values:{name:(0,A.jsx)(`bdi`,{children:w})},comment:`name: the user-chosen passkey nickname (e.g. 'MacBook', 'iPhone')`})})]}),b?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`profile-passkey-delete-error`,children:(0,A.jsx)(D,{children:r(b)})}):null,(0,A.jsxs)(Se,{children:[(0,A.jsx)(se,{disabled:C.isPending,children:(0,A.jsx)(i,{id:`profile.passkeys.delete.cancel`,message:`Cancel`})}),(0,A.jsx)(oe,{"data-testid":`profile-passkey-delete-confirm`,className:v({variant:`destructive`}),disabled:C.isPending,onClick:e=>{e.preventDefault(),C.mutate()},children:C.isPending?(0,A.jsx)(i,{id:`profile.passkeys.delete.pending`,message:`Deleting…`}):(0,A.jsx)(i,{id:`profile.passkeys.delete.confirm`,message:`Delete passkey`})})]})]})})]})}function Vt(e){let t=e.transports;return!t||t.length===0?null:t.includes(`internal`)?M.transportInternal:t.includes(`hybrid`)?M.transportHybrid:M.transportSecurityKey}function Ht(e){return _t(e)===`NOT_FOUND`?M.notFound:e instanceof Error?e.message:M.renameFallback}function Ut(e){return gt(e)===`last_credential`?M.lastCredential:_t(e)===`NOT_FOUND`?M.notFound:e instanceof Error?e.message:M.deleteFallback}function Wt(e){if(e instanceof rt)switch(e.code){case`user_cancelled`:return M.enrollCancelled;case`credential_already_registered`:return M.enrollAlreadyRegistered;case`no_authenticator`:return M.enrollNoAuthenticator;case`network_error`:return M.enrollNetworkError;case`email_mismatch`:return M.enrollEmailMismatch}return e instanceof Error?e.message:M.enrollFallback}var Gt=`2.0.10`,Kt=500,qt=`user-agent`,Jt=``,Yt=`?`,N={FUNCTION:`function`,OBJECT:`object`,STRING:`string`,UNDEFINED:`undefined`},P=`browser`,F=`cpu`,I=`device`,L=`engine`,R=`os`,Xt=`result`,z=`name`,B=`type`,V=`vendor`,H=`version`,U=`architecture`,Zt=`major`,W=`model`,Qt=`console`,G=`mobile`,K=`tablet`,q=`smarttv`,J=`wearable`,$t=`xr`,en=`embedded`,tn=`fetcher`,Y=`inapp`,nn=`brands`,rn=`formFactors`,an=`fullVersionList`,on=`platform`,sn=`platformVersion`,cn=`bitness`,ln=`sec-ch-ua`,un=ln+`-full-version-list`,dn=ln+`-arch`,fn=ln+`-`+cn,pn=ln+`-form-factors`,mn=ln+`-`+G,hn=ln+`-`+W,gn=ln+`-`+on,_n=gn+`-version`,vn=[nn,an,G,W,on,sn,U,rn,cn],yn=`Amazon`,bn=`Apple`,xn=`ASUS`,Sn=`BlackBerry`,Cn=`Google`,wn=`Huawei`,Tn=`Lenovo`,En=`Honor`,Dn=`LG`,On=`Microsoft`,kn=`Motorola`,An=`Nvidia`,jn=`OnePlus`,Mn=`OPPO`,Nn=`Samsung`,Pn=`Sharp`,Fn=`Sony`,In=`Xiaomi`,Ln=`Zebra`,Rn=`Chrome`,zn=`Chromium`,Bn=`Chromecast`,Vn=`Edge`,Hn=`Firefox`,Un=`Opera`,Wn=`Facebook`,Gn=`Sogou`,Kn=`Mobile `,qn=` Browser`,Jn=`Windows`,X=typeof window!==N.UNDEFINED&&window.navigator?window.navigator:void 0,Yn=X&&X.userAgentData?X.userAgentData:void 0,Xn=function(e,t){var n={},r=t;if(!$n(t))for(var i in r={},t)for(var a in t[i])r[a]=t[i][a].concat(r[a]?r[a]:[]);for(var o in e)n[o]=r[o]&&r[o].length%2==0?r[o].concat(e[o]):e[o];return n},Zn=function(e){for(var t={},n=0;n<e.length;n++)t[e[n].toUpperCase()]=e[n];return t},Qn=function(e,t){if(typeof e===N.OBJECT&&e.length>0){for(var n in e)if(nr(t)==nr(e[n]))return!0;return!1}return er(e)?nr(t)==nr(e):!1},$n=function(e,t){for(var n in e)return/^(browser|cpu|device|engine|os)$/.test(n)||(t?$n(e[n]):!1)},er=function(e){return typeof e===N.STRING},tr=function(e){if(e){for(var t=[],n=ir(e).split(`,`),r=0;r<n.length;r++)if(n[r].indexOf(`;`)>-1){var i=or(n[r]).split(`;v=`);t[r]={brand:i[0],version:i[1]}}else t[r]=or(n[r]);return t}},nr=function(e){return er(e)?e.toLowerCase():e},rr=function(e){return er(e)?ar(/[^\d\.]/g,e).split(`.`)[0]:void 0},ir=function(e){return er(e)?or(ar(/\\?\"/g,e),Kt):void 0},Z=function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];typeof n==N.OBJECT&&n.length==2?this[n[0]]=n[1]:this[n]=void 0}return this},ar=function(e,t){return er(t)?t.replace(e,Jt):t},or=function(e,t){return e=ar(/^\s\s*/,String(e)),typeof t===N.UNDEFINED?e:e.substring(0,t)},sr=function(e,t){if(!(!e||!t))for(var n=0,r,i,a,o,s,c;n<t.length&&!s;){var l=t[n],u=t[n+1];for(r=i=0;r<l.length&&!s&&l[r];)if(s=l[r++].exec(e),s)for(a=0;a<u.length;a++)c=s[++i],o=u[a],typeof o===N.OBJECT&&o.length>0?o.length===2?typeof o[1]==N.FUNCTION?this[o[0]]=o[1].call(this,c):this[o[0]]=o[1]:o.length>=3&&(typeof o[1]===N.FUNCTION&&!(o[1].exec&&o[1].test)?o.length>3?this[o[0]]=c?o[1].apply(this,o.slice(2)):void 0:this[o[0]]=c?o[1].call(this,c,o[2]):void 0:o.length==3?this[o[0]]=c?c.replace(o[1],o[2]):void 0:o.length==4?this[o[0]]=c?o[3].call(this,c.replace(o[1],o[2])):void 0:o.length>4&&(this[o[0]]=c?o[3].apply(this,[c.replace(o[1],o[2])].concat(o.slice(4))):void 0)):this[o]=c||void 0;n+=2}},cr=function(e,t){return t.test.test(e)?t.ifTrue:t.ifFalse},Q=function(e,t){for(var n in t)if(typeof t[n]===N.OBJECT&&t[n].length>0){for(var r=0;r<t[n].length;r++)if(Qn(t[n][r],e))return n===Yt?void 0:n}else if(Qn(t[n],e))return n===Yt?void 0:n;return t.hasOwnProperty(`*`)?t[`*`]:e},lr={ME:`4.90`,"NT 3.51":`3.51`,"NT 4.0":`4.0`,2e3:[`5.0`,`5.01`],XP:[`5.1`,`5.2`],Vista:`6.0`,7:`6.1`,8:`6.2`,"8.1":`6.3`,10:[`6.4`,`10.0`],NT:``},ur={embedded:`Automotive`,mobile:`Mobile`,tablet:[`Tablet`,`EInk`],smarttv:`TV`,wearable:`Watch`,xr:[`VR`,`XR`],"?":[`Desktop`,`Unknown`],"*":void 0},dr={Chrome:`Google Chrome`,Edge:`Microsoft Edge`,"Edge WebView2":`Microsoft Edge WebView2`,"Chrome WebView":`Android WebView`,"Chrome Headless":`HeadlessChrome`,"Huawei Browser":`HuaweiBrowser`,"MIUI Browser":`Miui Browser`,"Opera Mobi":`OperaMobile`,Yandex:`YaBrowser`},fr={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[H,[z,Kn+`Chrome`]],[/webview.+edge\/([\w\.]+)/i],[H,[z,Vn+` WebView`],[B,Y]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[H,[z,`Edge`]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[z,H],[/opios[\/ ]+([\w\.]+)/i],[H,[z,Un+` Mini`]],[/\bop(?:rg)?x\/([\w\.]+)/i],[H,[z,Un+` GX`]],[/\bopr\/([\w\.]+)/i],[H,[z,Un]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[H,[z,`Baidu`]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[H,[z,`Maxthon`]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(atlas|flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:hi|lg |ovi|qute)browser|palemoon)\/v?([-\w\.]+)/i,/(brave)(?: chrome)?\/([\d\.]+)/i,/(aloha|heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,/(qwant)(?:ios|mobile)\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[z,H],[/quark(?:pc)?\/([-\w\.]+)/i],[H,[z,`Quark`]],[/\bddg\/([\w\.]+)/i],[H,[z,`DuckDuckGo`]],[/(?:\buc? ?browser|(?:juc.+)ucweb| ucpc)[\/ ]?([\w\.]+)/i],[H,[z,`UCBrowser`]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[H,[z,`WeChat`]],[/konqueror\/([\w\.]+)/i],[H,[z,`Konqueror`]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[H,[z,`IE`]],[/ya(?:search)?browser\/([\w\.]+)/i],[H,[z,`Yandex`]],[/slbrowser\/([\w\.]+)/i],[H,[z,`Smart `+Tn+qn]],[/(av(?:ast|g|ira))\/([\w\.]+)/i],[[z,/(.+)/,`$1 Secure`+qn],H],[/norton\/([\w\.]+)/i],[H,[z,`Norton Private`+qn]],[/\bfocus\/([\w\.]+)/i],[H,[z,Hn+` Focus`]],[/ mms\/([\w\.]+)$/i],[H,[z,Un+` Neon`]],[/ opt\/([\w\.]+)$/i],[H,[z,Un+` Touch`]],[/coc_coc\w+\/([\w\.]+)/i],[H,[z,`Coc Coc`]],[/dolfin\/([\w\.]+)/i],[H,[z,`Dolphin`]],[/coast\/([\w\.]+)/i],[H,[z,Un+` Coast`]],[/miuibrowser\/([\w\.]+)/i],[H,[z,`MIUI`+qn]],[/fxios\/([\w\.-]+)/i],[H,[z,Kn+Hn]],[/\bqihoobrowser\/?([\w\.]*)/i],[H,[z,`360`]],[/\b(qq)\/([\w\.]+)/i],[[z,/(.+)/,`$1Browser`],H],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[z,/(.+)/,`$1`+qn],H],[/ HBPC\/([\w\.]+)/],[H,[z,wn+qn]],[/samsungbrowser\/([\w\.]+)/i],[H,[z,Nn+` Internet`]],[/metasr[\/ ]?([\d\.]+)/i],[H,[z,Gn+` Explorer`]],[/(sogou)mo\w+\/([\d\.]+)/i],[[z,Gn+` Mobile`],H],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[z,H],[/(lbbrowser|luakit|rekonq|steam(?= (clie|tenf|gameo)))/i],[z],[/ome\/([\w\.]+).+(iron(?= saf)|360(?=[es]e$))/i],[H,z],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[z,Wn],H,[B,Y]],[/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(bing)(?:web|sapphire)\/([\w\.]+)/i,/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i],[z,H,[B,Y]],[/\bgsa\/([\w\.]+) .*safari\//i],[H,[z,`GSA`],[B,Y]],[/(?:musical_ly|trill)(?:.+app_?version\/|_)([\w\.]+)/i],[H,[z,`TikTok`],[B,Y]],[/\[(linkedin)app\]/i],[z,[B,Y]],[/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i],[[z,/(.+)/,`Zalo`],H,[B,Y]],[/(chromium)[\/ ]([-\w\.]+)/i],[z,H],[/ome-(lighthouse)$/i],[z,[B,tn]],[/headlesschrome(?:\/([\w\.]+)| )/i],[H,[z,Rn+` Headless`]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[H,[z,Vn+` WebView2`],[B,Y]],[/; wv\).+(chrome)\/([\w\.]+)/i],[[z,Rn+` WebView`],H,[B,Y]],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[H,[z,`Android`+qn]],[/chrome\/([\w\.]+) mobile/i],[H,[z,Kn+`Chrome`]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[z,H],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[H,[z,Kn+`Safari`]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[z,Kn+`Safari`]],[/version\/([\w\.\,]+) .*(safari)/i],[H,z],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[z,[H,`1`]],[/(webkit|khtml)\/([\w\.]+)/i],[z,H],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[z,Kn+Hn],H],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[z,`Netscape`],H],[/(wolvic|librewolf)\/([\w\.]+)/i],[z,H],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[H,[z,Hn+` Reality`]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[z,[H,/_/g,`.`]],[/(cobalt)\/([\w\.]+)/i],[z,[H,/[^\d\.]+./,Jt]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[U,`amd64`]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[U,`ia32`]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[U,`arm64`]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[U,`armhf`]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[U,`arm`]],[/ sun4\w[;\)]/i],[[U,`sparc`]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,/((ppc|powerpc)(64)?)( mac|;|\))/i,/(?:osf1|[freopnt]{3,4}bsd) (alpha)/i],[[U,/ower/,Jt,nr]],[/mc680.0/i],[[U,`68k`]],[/winnt.+\[axp/i],[[U,`alpha`]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[W,[V,Nn],[B,K]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[W,[V,Nn],[B,G]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i],[W,[V,bn],[B,G]],[/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,/\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i],[W,[V,bn],[B,K]],[/(macintosh);/i],[W,[V,bn]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[W,[V,Pn],[B,G]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[W,[V,En],[B,K]],[/honor([-\w ]+)[;\)]/i],[W,[V,En],[B,G]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[W,[V,wn],[B,K]],[/(?:huawei) ?([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i],[W,[V,wn],[B,G]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[W,/_/g,` `],[V,In],[B,K]],[/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/oid[^\)]+; (redmi[\-_ ]?(?:note|k)?[\w_ ]+|m?[12]\d[01]\d\w{3,6}|poco[\w ]+|(shark )?\w{3}-[ah]0|qin ?[1-3](s\+|ultra| pro)?)( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,/; ([\w ]+) miui\/v?\d/i],[[W,/_/g,` `],[V,In],[B,G]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-l]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[W,[V,jn],[B,G]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[W,[V,Mn],[B,G]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[W,[V,Q,{OnePlus:[`203`,`304`,`403`,`404`,`413`,`415`],"*":Mn}],[B,K]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[W,[V,`BLU`],[B,G]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[W,[V,`Vivo`],[B,G]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[W,[V,`Realme`],[B,G]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[W,[V,Tn],[B,K]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[W,[V,Tn],[B,G]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[W,[V,kn],[B,G]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[W,[V,kn],[B,K]],[/\b(?:lg)?([vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[W,[V,Dn],[B,K]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[W,[V,Dn],[B,G]],[/(nokia) (t[12][01])/i],[V,W,[B,K]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i],[[W,/_/g,` `],[B,G],[V,`Nokia`]],[/(pixel (c|tablet))\b/i],[W,[V,Cn],[B,K]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[W,[V,Cn],[B,G]],[/(google) (pixelbook( go)?)/i],[V,W],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[W,[V,Fn],[B,G]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[W,`Xperia Tablet`],[V,Fn],[B,K]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[W,[V,yn],[B,K]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[W,/(.+)/g,`Fire Phone $1`],[V,yn],[B,G]],[/(playbook);[-\w\),; ]+(rim)/i],[W,V,[B,K]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/(?:blackberry|\(bb10;) (\w+)/i],[W,[V,Sn],[B,G]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[W,[V,xn],[B,K]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[W,[V,xn],[B,G]],[/(nexus 9)/i],[W,[V,`HTC`],[B,K]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[V,[W,/_/g,` `],[B,G]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[W,[V,`TCL`],[B,K]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[W,[V,`TCL`],[B,G]],[/(itel) ((\w+))/i],[[V,nr],W,[B,Q,{tablet:[`p10001l`,`w7001`],"*":`mobile`}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[W,[V,`Acer`],[B,K]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[W,[V,`Meizu`],[B,G]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[W,[V,`Ulefone`],[B,G]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[W,[V,`Energizer`],[B,G]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[W,[V,`Cat`],[B,G]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[W,[V,`Smartfren`],[B,G]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[W,[V,`Nothing`],[B,G]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[W,[V,`Archos`],[B,K]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[W,[V,`Archos`],[B,G]],[/blackview ([-\w ]+)( b|\))/i,/; (bv\d{4}[-\w ]*)( b|\))/i],[W,[V,`Blackview`],[B,G]],[/; (n159v)/i],[W,[V,`HMD`],[B,G]],[/((revvl[ \w\+]+|tm(?:rv|af)\w*[45]g(?:tb)?))( b|\))/i],[W,[B,cr,{test:/ta?b/i,ifTrue:K,ifFalse:G}],[V,`T-Mobile`]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[V,W,[B,K]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|coolpad|cubot|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([-\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i,/(hisense) ([ehv][\w ]+)\)/i,/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i],[V,W,[B,G]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[V,W,[B,K]],[/(surface duo)/i],[W,[V,On],[B,K]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[W,[V,`Fairphone`],[B,G]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[W,[V,An],[B,K]],[/(sprint) (\w+)/i],[V,W,[B,G]],[/(kin\.[onetw]{3})/i],[[W,/\./g,` `],[V,On],[B,G]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[W,[V,Ln],[B,K]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[W,[V,Ln],[B,G]],[/(philips)[\w ]+tv/i,/smart-tv.+(samsung)/i],[V,[B,q]],[/hbbtv.+maple;(\d+)/i],[[W,/^/,`SmartTV`],[V,Nn],[B,q]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[V,W,[B,q]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[V,Dn],[B,q]],[/(apple) ?tv/i],[V,[W,bn+` TV`],[B,q]],[/crkey.*devicetype\/chromecast/i],[[W,Bn+` Third Generation`],[V,Cn],[B,q]],[/crkey.*devicetype\/([^/]*)/i],[[W,/^/,`Chromecast `],[V,Cn],[B,q]],[/fuchsia.*crkey/i],[[W,Bn+` Nest Hub`],[V,Cn],[B,q]],[/crkey/i],[[W,Bn],[V,Cn],[B,q]],[/(portaltv)/i],[W,[V,Wn],[B,q]],[/droid.+aft(\w+)( bui|\))/i],[W,[V,yn],[B,q]],[/(shield \w+ tv)/i],[W,[V,An],[B,q]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[W,[V,Pn],[B,q]],[/(bravia[\w ]+)( bui|\))/i],[W,[V,Fn],[B,q]],[/(mi(tv|box)-?\w+) bui/i],[W,[V,In],[B,q]],[/Hbbtv.*(technisat) (.*);/i],[V,W,[B,q]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[V,/.+\/(\w+)/,`$1`,Q,{LG:`lge`}],[W,or],[B,q]],[/(playstation \w+)/i],[W,[V,Fn],[B,Qt]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[W,[V,On],[B,Qt]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i,/(valve).+(steam deck)/i,/droid.+; ((shield|rgcube|gr0006))( bui|\))/i],[[V,Q,{Nvidia:`Shield`,Anbernic:`RGCUBE`,Logitech:`GR0006`}],W,[B,Qt]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[W,[V,Nn],[B,J]],[/((pebble))app/i,/(asus|google|lg|oppo|xiaomi) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[V,W,[B,J]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[W,[V,Mn],[B,J]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[W,[V,bn],[B,J]],[/(opwwe\d{3})/i],[W,[V,jn],[B,J]],[/(moto 360)/i],[W,[V,kn],[B,J]],[/(smartwatch 3)/i],[W,[V,Fn],[B,J]],[/(g watch r)/i],[W,[V,Dn],[B,J]],[/droid.+; (wt63?0{2,3})\)/i],[W,[V,Ln],[B,J]],[/droid.+; (glass) \d/i],[W,[V,Cn],[B,$t]],[/(pico) ([\w ]+) os\d/i],[V,W,[B,$t]],[/(quest( \d| pro)?s?).+vr/i],[W,[V,Wn],[B,$t]],[/mobile vr; rv.+firefox/i],[[B,$t]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[V,[B,en]],[/(aeobc)\b/i],[W,[V,yn],[B,en]],[/(homepod).+mac os/i],[W,[V,bn],[B,en]],[/windows iot/i],[[B,en]],[/droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i],[W,[B,q]],[/\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i],[[B,q]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i],[W,[B,Q,{mobile:`Mobile`,xr:`VR`,"*":K}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[B,K]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[B,G]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[W,[V,`Generic`]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[H,[z,Vn+`HTML`]],[/(arkweb)\/([\w\.]+)/i],[z,H],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[H,[z,`Blink`]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links|dillo)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[z,H],[/ladybird\//i],[[z,`LibWeb`]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[H,z]],os:[[/(windows nt) (6\.[23]); arm/i],[[z,/N/,`R`],[H,Q,lr]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[z,H],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[H,/(;|\))/g,``,Q,lr],[z,Jn]],[/(windows ce)\/?([\d\.]*)/i],[z,H],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv|ios(?=.+ip(?:ad|hone)|.+apple ?tv)|ip(?:ad|hone)(?: |.+i(?:pad)?)os|apple ?tv.+ios)[\/ ]([\w\.]+)/i,/\btvos ?([\w\.]+)/i,/cfnetwork\/.+darwin/i],[[H,/_/g,`.`],[z,`iOS`]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[z,`macOS`],[H,/_/g,`.`]],[/android ([\d\.]+).*crkey/i],[H,[z,Bn+` Android`]],[/fuchsia.*crkey\/([\d\.]+)/i],[H,[z,Bn+` Fuchsia`]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[H,[z,Bn+` SmartSpeaker`]],[/linux.*crkey\/([\d\.]+)/i],[H,[z,Bn+` Linux`]],[/crkey\/([\d\.]+)/i],[H,[z,Bn]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[H,z],[/(ubuntu) ([\w\.]+) like android/i],[[z,/(.+)/,`$1 Touch`],H],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[z,H],[/\(bb(10);/i],[H,[z,Sn]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[H,[z,`Symbian`]],[/mozilla\/[\d\.]+ \((?:mobile[;\w ]*|tablet|tv|[^\)]*(?:viera|lg(?:l25|-d300)|alcatel ?o.+|y300-f1)); rv:([\w\.]+)\).+gecko\//i],[H,[z,Hn+` OS`]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[H,[z,`webOS`]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[H,Q,{25:`120`,24:`108`,23:`94`,22:`87`,6:`79`,5:`68`,4:`53`,3:`38`,2:`538`,1:`537`,"*":`TV`}],[z,`webOS`]],[/watch(?: ?os[,\/ ]|\d,\d\/)([\d\.]+)/i],[H,[z,`watchOS`]],[/cros [\w]+(?:\)| ([\w\.]+)\b)/i],[H,[z,`Chrome OS`]],[/kepler ([\w\.]+); (aft|aeo)/i],[H,[z,`Vega OS`]],[/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[z,H],[/(sunos) ?([\d\.]*)/i],[[z,`Solaris`],H],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[z,H]]},pr=(function(){var e={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}};return Z.call(e.init,[[P,[z,H,Zt,B]],[F,[U]],[I,[B,W,V]],[L,[z,H]],[R,[z,H]]]),Z.call(e.isIgnore,[[P,[H,Zt]],[L,[H]],[R,[H]]]),Z.call(e.isIgnoreRgx,[[P,/ ?browser$/i],[R,/ ?os$/i]]),Z.call(e.toString,[[P,[z,H]],[F,[U]],[I,[V,W]],[L,[z,H]],[R,[z,H]]]),e})(),mr=function(e,t){var n=pr.init[t],r=pr.isIgnore[t]||0,i=pr.isIgnoreRgx[t]||0,a=pr.toString[t]||0;function o(){Z.call(this,n)}return o.prototype.getItem=function(){return e},o.prototype.withClientHints=function(){return Yn?Yn.getHighEntropyValues(vn).then(function(t){return e.setCH(new hr(t,!1)).parseCH().get()}):e.parseCH().get()},o.prototype.withFeatureCheck=function(){return e.detectFeature().get()},t!=Xt&&(o.prototype.is=function(e){var t=!1;for(var n in this)if(this.hasOwnProperty(n)&&!Qn(r,n)&&nr(i?ar(i,this[n]):this[n])==nr(i?ar(i,e):e)){if(t=!0,e!=N.UNDEFINED)break}else if(e==N.UNDEFINED&&t){t=!t;break}return t},o.prototype.toString=function(){var e=Jt;for(var t in a)typeof this[a[t]]!==N.UNDEFINED&&(e+=(e?` `:Jt)+this[a[t]]);return e||N.UNDEFINED}),o.prototype.then=function(e){var t=this,n=function(){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e])};n.prototype={is:o.prototype.is,toString:o.prototype.toString,withClientHints:o.prototype.withClientHints,withFeatureCheck:o.prototype.withFeatureCheck};var r=new n;return e(r),r},new o};function hr(e,t){if(e||={},Z.call(this,vn),t)Z.call(this,[[nn,tr(e[ln])],[an,tr(e[un])],[G,/\?1/.test(e[mn])],[W,ir(e[hn])],[on,ir(e[gn])],[sn,ir(e[_n])],[U,ir(e[dn])],[rn,tr(e[pn])],[cn,ir(e[fn])]]);else for(var n in e)this.hasOwnProperty(n)&&typeof e[n]!==N.UNDEFINED&&(this[n]=e[n])}function gr(e,t,n,r){return Z.call(this,[[`itemType`,e],[`ua`,t],[`uaCH`,r],[`rgxMap`,n],[`data`,mr(this,e)]]),this}gr.prototype.get=function(e){return e?this.data.hasOwnProperty(e)?this.data[e]:void 0:this.data},gr.prototype.set=function(e,t){return this.data[e]=t,this},gr.prototype.setCH=function(e){return this.uaCH=e,this},gr.prototype.detectFeature=function(){if(X&&X.userAgent==this.ua)switch(this.itemType){case P:X.brave&&typeof X.brave.isBrave==N.FUNCTION&&this.set(z,`Brave`);break;case I:!this.get(B)&&Yn&&Yn[G]&&this.set(B,G),this.get(W)==`Macintosh`&&X&&typeof X.standalone!==N.UNDEFINED&&X.maxTouchPoints&&X.maxTouchPoints>2&&this.set(W,`iPad`).set(B,K);break;case R:!this.get(z)&&Yn&&Yn[on]&&this.set(z,Yn[on]);break;case Xt:var e=this.data,t=function(t){return e[t].getItem().detectFeature().get()};this.set(P,t(P)).set(F,t(F)).set(I,t(I)).set(L,t(L)).set(R,t(R))}return this},gr.prototype.parseUA=function(){switch(this.itemType!=Xt&&sr.call(this.data,this.ua,this.rgxMap),this.itemType){case P:this.set(Zt,rr(this.get(H)));break;case R:if(this.get(z)==`iOS`&&this.get(H)&&/^1[89][^\d]/.exec(this.get(H))){var e=/\) Version\/((\d+)[\d\.]*)/.exec(this.ua);e&&parseInt(e[2],10)>=26&&this.set(H,e[1])}break}return this},gr.prototype.parseCH=function(){var e=this.uaCH,t=this.rgxMap;switch(this.itemType){case P:case L:var n=e[an]||e[nn],r;if(n)for(var i=0;i<n.length;i++){var a=n[i].brand||n[i],o=n[i].version;this.itemType==P&&!/not.a.brand/i.test(a)&&(!r||/Chrom/.test(r)&&a!=zn||r==Vn&&/WebView2/.test(a))&&(a=Q(a,dr),r=this.get(z),r&&!/Chrom/.test(r)&&/Chrom/.test(a)||this.set(z,a).set(H,o).set(Zt,rr(o)),r=a),this.itemType==L&&a==zn&&this.set(H,o)}break;case F:var s=e[U];s&&(s&&e[cn]==`64`&&(s+=`64`),sr.call(this.data,s+`;`,t));break;case I:if(e[G]&&this.set(B,G),e[W]&&(this.set(W,e[W]),!this.get(B)||!this.get(V))){var c={};sr.call(c,`droid 9; `+e[W]+`)`,t),!this.get(B)&&c.type&&this.set(B,c.type),!this.get(V)&&c.vendor&&this.set(V,c.vendor)}if(e[rn]){var l;if(typeof e[rn]!=`string`)for(var u=0;!l&&u<e[rn].length;)l=Q(e[rn][u++],ur);else l=Q(e[rn],ur);this.set(B,l)}break;case R:var d=e[on];if(d){var f=e[sn];d==Jn&&(f=parseInt(rr(f),10)>=13?`11`:`10`),this.set(z,d).set(H,f)}this.get(z)==Jn&&e[W]==`Xbox`&&this.set(z,`Xbox`).set(H,void 0);break;case Xt:var p=this.data,m=function(t){return p[t].getItem().setCH(e).parseCH().get()};this.set(P,m(P)).set(F,m(F)).set(I,m(I)).set(L,m(L)).set(R,m(R))}return this};function $(e,t,n){if(typeof e===N.OBJECT?($n(e,!0)?(typeof t===N.OBJECT&&(n=t),t=e):(n=e,t=void 0),e=void 0):typeof e===N.STRING&&!$n(t,!0)&&(n=t,t=void 0),n)if(typeof n.append===N.FUNCTION){var r={};n.forEach(function(e,t){r[String(t).toLowerCase()]=e}),n=r}else{var i={};for(var a in n)n.hasOwnProperty(a)&&(i[String(a).toLowerCase()]=n[a]);n=i}if(!(this instanceof $))return new $(e,t,n).getResult();var o=typeof e===N.STRING?e:n&&n[qt]?n[qt]:X&&X.userAgent?X.userAgent:Jt,s=new hr(n,!0),c=fr,l=function(e){return e==Xt?function(){return new gr(e,o,c,s).set(`ua`,o).set(P,this.getBrowser()).set(F,this.getCPU()).set(I,this.getDevice()).set(L,this.getEngine()).set(R,this.getOS()).get()}:function(){return new gr(e,o,c[e],s).parseUA().get()}};return Z.call(this,[[`getBrowser`,l(P)],[`getCPU`,l(F)],[`getDevice`,l(I)],[`getEngine`,l(L)],[`getOS`,l(R)],[`getResult`,l(Xt)],[`getUA`,function(){return o}],[`setUA`,function(e){return er(e)&&(o=or(e,Kt)),this}],[`useExtension`,function(e){return e&&(c=Xn(c,e)),this}]]).setUA(o).useExtension(t),this}$.VERSION=Gt,$.BROWSER=Zn([z,H,Zt,B]),$.CPU=Zn([U]),$.DEVICE=Zn([W,V,B,Qt,G,q,K,J,en]),$.ENGINE=$.OS=Zn([z,H]);function _r(e){if(!e)return{browser:null,os:null,icon:wt,raw:null};let t=$(e);return{browser:t.browser.name??null,os:t.os.name??null,icon:vr(t.device.type),raw:e}}function vr(e){return e===`mobile`?Te:e===`tablet`?we:e===`wearable`?Et:e===`smarttv`||e===`console`?Tt:Ce}var yr={unknownDevice:{id:`profile.sessions.unknownDevice`},browserOnOs:{id:`profile.sessions.device.browserOnOs`},revokeAllFallback:{id:`profile.sessions.revokeAll.fallback`},revokeCurrent:{id:`profile.sessions.revoke.current`},revokeNotFound:{id:`profile.sessions.revoke.notFound`},revokeFallback:{id:`profile.sessions.revoke.fallback`}};function br(){let e=E(),t=o(),[n,r]=(0,k.useState)(null),l=s(a.auth.sessions.list.queryOptions({input:{}})),u=()=>t.invalidateQueries({queryKey:a.auth.sessions.list.key()}),d=c({mutationFn:()=>a.auth.sessions.revokeOthers.call({}),onMutate:()=>{r(null)},onSuccess:async e=>{r({kind:`ok`,revoked:e.revoked}),await u()},onError:e=>{r({kind:`error`,message:e instanceof Error?e.message:yr.revokeAllFallback})}}),f=l.data??[],p=f.filter(e=>!e.current).length;return(0,A.jsxs)($e,{"data-testid":`profile-sessions-card`,children:[(0,A.jsxs)(Xe,{children:[(0,A.jsx)(Ye,{children:(0,A.jsx)(i,{id:`profile.sessions.title`,message:`Active sessions`})}),(0,A.jsx)(Qe,{children:(0,A.jsx)(i,{id:`profile.sessions.description`,message:`Devices signed in to this account. Revoke any you don't recognise, or sign out everywhere except this browser if you suspect a leak.`})})]}),(0,A.jsxs)(Ze,{className:`flex flex-col gap-4`,children:[Sr(l,f,u),n?.kind===`ok`?(0,A.jsx)(O,{"data-testid":`profile-sessions-revoke-feedback`,children:(0,A.jsx)(D,{children:(0,A.jsx)(i,{id:`profile.sessions.revokeAll.count`,message:`{revoked, plural, =0 {No other sessions to sign out.} one {Signed out # other session.} other {Signed out # other sessions.}}`,values:{revoked:n.revoked},comment:`revoked: number of OTHER sessions just signed out (excluding the current device)`})})}):null,n?.kind===`error`?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`profile-sessions-error`,children:(0,A.jsx)(D,{children:e(n.message)})}):null,p>0?(0,A.jsx)(`div`,{className:`flex justify-end`,children:(0,A.jsx)(y,{type:`button`,variant:`outline`,onClick:()=>{d.mutate()},disabled:d.isPending,"data-testid":`profile-sessions-revoke-button`,children:d.isPending?(0,A.jsx)(i,{id:`profile.sessions.revokeAll.pending`,message:`Signing out…`}):(0,A.jsx)(i,{id:`profile.sessions.revokeAll.idle`,message:`Sign out other devices`})})}):null]})]})}function xr({session:e,onChanged:t}){let[n,r]=(0,k.useState)(!1),[o,s]=(0,k.useState)(null),l=_r(e.userAgent),u=l.icon,d=yt(e.createdAt),{formatRelative:f}=Ue(),p=E(),m=Cr(l),h=c({mutationFn:()=>a.auth.sessions.revoke.call({id:e.id}),onMutate:()=>{s(null)},onSuccess:async()=>{r(!1),await t()},onError:e=>{s(wr(e))}});return(0,A.jsxs)(`li`,{className:`flex items-start gap-3 py-3`,"data-testid":`profile-session-row`,children:[(0,A.jsx)(u,{"aria-hidden":!0,className:`text-muted-foreground mt-0.5 size-5 shrink-0`}),(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,A.jsx)(`span`,{className:`text-sm font-medium`,"data-testid":`profile-session-label`,children:m}),e.current?(0,A.jsx)(ue,{variant:`secondary`,children:(0,A.jsx)(i,{id:`profile.sessions.thisDevice`,message:`This device`})}):null]}),(0,A.jsxs)(`div`,{className:`text-muted-foreground flex flex-wrap gap-2 text-xs`,children:[e.ipAddress?(0,A.jsx)(`span`,{children:e.ipAddress}):null,(0,A.jsx)(`span`,{children:(0,A.jsx)(i,{id:`profile.sessions.signedIn`,message:`Signed in {when}`,values:{when:f(d)},comment:`when: pre-formatted relative-time string like '2 hours ago'`})})]})]}),e.current?null:(0,A.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,className:`text-destructive hover:text-destructive shrink-0`,onClick:()=>{r(!0)},"data-testid":`profile-session-revoke-button`,children:(0,A.jsx)(i,{id:`profile.sessions.revoke.button`,message:`Revoke`})}),(0,A.jsx)(fe,{open:n,onOpenChange:e=>{e||(r(!1),s(null))},children:(0,A.jsxs)(le,{children:[(0,A.jsxs)(ae,{children:[(0,A.jsx)(me,{children:(0,A.jsx)(i,{id:`profile.sessions.revoke.title`,message:`Sign out this device?`})}),(0,A.jsx)(pe,{children:e.ipAddress?(0,A.jsx)(i,{id:`profile.sessions.revoke.descriptionWithIp`,message:`{device} signed in {when} from {ip}. The device will need to sign in again next time.`,values:{device:(0,A.jsx)(`bdi`,{children:m}),when:f(d),ip:e.ipAddress},comment:`device: 'Safari on macOS' style label; when: relative-time string; ip: IPv4/IPv6 address`}):(0,A.jsx)(i,{id:`profile.sessions.revoke.description`,message:`{device} signed in {when}. The device will need to sign in again next time.`,values:{device:(0,A.jsx)(`bdi`,{children:m}),when:f(d)},comment:`device: 'Safari on macOS' style label; when: relative-time string`})})]}),o?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`profile-session-revoke-error`,children:(0,A.jsx)(D,{children:p(o)})}):null,(0,A.jsxs)(Se,{children:[(0,A.jsx)(se,{disabled:h.isPending,children:(0,A.jsx)(i,{id:`profile.sessions.revoke.cancel`,message:`Cancel`})}),(0,A.jsx)(oe,{"data-testid":`profile-session-revoke-confirm`,disabled:h.isPending,onClick:e=>{e.preventDefault(),h.mutate()},children:h.isPending?(0,A.jsx)(i,{id:`profile.sessions.revoke.pending`,message:`Signing out…`}):(0,A.jsx)(i,{id:`profile.sessions.revoke.confirm`,message:`Sign out device`})})]})]})})]})}function Sr(e,t,n){return e.isPending?(0,A.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:(0,A.jsx)(i,{id:`profile.sessions.loading`,message:`Loading…`})}):e.error?(0,A.jsx)(O,{variant:`destructive`,children:(0,A.jsx)(D,{children:(0,A.jsx)(i,{id:`profile.sessions.loadFailed`,message:`Couldn't load your sessions. Refresh and try again.`})})}):t.length===0?(0,A.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:(0,A.jsx)(i,{id:`profile.sessions.empty`,message:`No plumix-managed sessions. Your sign-in is handled by an external identity provider.`})}):(0,A.jsx)(`ul`,{className:`divide-border divide-y`,"data-testid":`profile-sessions-list`,children:t.map(e=>(0,A.jsx)(xr,{session:e,onChanged:n},e.id))})}function Cr(e){let{i18n:t}=r(),n=E();return e.browser&&e.os?t._(yr.browserOnOs.id,{browser:e.browser,os:e.os},{message:yr.browserOnOs.message}):e.browser?e.browser:e.os?e.os:n(yr.unknownDevice)}function wr(e){return gt(e)===`current_session`?yr.revokeCurrent:_t(e)===`NOT_FOUND`?yr.revokeNotFound:e instanceof Error?e.message:yr.revokeFallback}var Tr={invalidEmail:{id:`userEdit.email.invalid`},confirmationSent:{id:`userEdit.email.confirmationSent`},newEmailPlaceholder:{id:`userEdit.email.placeholder`},emailTaken:{id:`userEdit.email.error.taken`},mailerNotConfigured:{id:`userEdit.email.error.mailerNotConfigured`},accountDisabled:{id:`userEdit.email.error.accountDisabled`},requestFallback:{id:`userEdit.email.error.requestFallback`}},Er=Pe({newEmail:Be(ze(),Ae(),je(),Le(Ve(Tr.invalidEmail)),Ie(255))});function Dr({userId:e,email:t,canEdit:n}){let{i18n:l}=r(),u=o(),{formatRelative:d}=Ue(),f=E(),[p,m]=(0,k.useState)(!1),[h,g]=(0,k.useState)(null),[_,v]=(0,k.useState)(null),b=s(a.user.pendingEmailChange.queryOptions({input:{id:e}})).data?.pending??null,x=()=>u.invalidateQueries({queryKey:a.user.pendingEmailChange.key()}),S=c({mutationFn:t=>a.user.requestEmailChange.call({id:e,newEmail:t}),onSuccess:async(e,t)=>{m(!1),g(null),v(l._(Tr.confirmationSent.id,{email:t},{message:Tr.confirmationSent.message})),await x()},onError:e=>{g(kr(e))}}),C=c({mutationFn:()=>a.user.cancelEmailChange.call({id:e}),onSuccess:async()=>{v(null),await x()}}),w=b?(0,A.jsx)(`bdi`,{children:b.newEmail}):null;return(0,A.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,A.jsx)(ot,{children:(0,A.jsx)(i,{id:`userEdit.email.label`,message:`Email`})}),(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,A.jsx)(`p`,{className:`text-muted-foreground font-mono text-sm`,"data-testid":`user-edit-email`,children:t}),n?(0,A.jsx)(y,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{g(null),v(null),m(!0)},"data-testid":`user-edit-email-change-button`,children:(0,A.jsx)(i,{id:`userEdit.email.changeButton`,message:`Change email`})}):null]}),b?(0,A.jsx)(O,{"data-testid":`user-edit-email-pending`,children:(0,A.jsxs)(D,{className:`flex flex-wrap items-center gap-2`,children:[(0,A.jsx)(`span`,{children:(0,A.jsx)(i,{id:`userEdit.email.pending`,message:`Pending change to <code>{newEmail}</code> — expires {expiresAt}`,values:{newEmail:w,expiresAt:d(yt(b.expiresAt))},components:{code:(0,A.jsx)(`code`,{className:`font-mono`})},comment:`newEmail: the new address awaiting confirmation; expiresAt: pre-formatted relative-time like 'in 2 hours'`})}),n?(0,A.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>C.mutate(),disabled:C.isPending,"data-testid":`user-edit-email-cancel-pending`,children:C.isPending?(0,A.jsx)(i,{id:`userEdit.email.cancelPending.pending`,message:`Cancelling…`}):(0,A.jsx)(i,{id:`userEdit.email.cancelPending.idle`,message:`Cancel`})}):null]})}):_?(0,A.jsx)(O,{"data-testid":`user-edit-email-change-success`,children:(0,A.jsx)(D,{children:_})}):null,(0,A.jsx)(Or,{open:p,onOpenChange:e=>{e||g(null),m(e)},currentEmail:t,onSubmit:e=>S.mutate(e),pending:S.isPending,error:h,placeholder:f(Tr.newEmailPlaceholder)})]})}function Or({open:e,onOpenChange:t,currentEmail:n,onSubmit:r,pending:a,error:o,placeholder:s}){let c=E(),l=st({resolver:ht(Er),defaultValues:{newEmail:``},mode:`onSubmit`});return(0,A.jsx)(fe,{open:e,onOpenChange:t,children:(0,A.jsxs)(le,{"data-testid":`user-edit-email-change-dialog`,children:[(0,A.jsxs)(ae,{children:[(0,A.jsx)(me,{children:(0,A.jsx)(i,{id:`userEdit.email.dialog.title`,message:`Change email`})}),(0,A.jsx)(pe,{children:(0,A.jsx)(i,{id:`userEdit.email.dialog.description`,message:`We'll send a confirmation link to the new address. The change takes effect after the link is clicked. Sessions on this account are signed out at that point — re-sign-in uses the new email.`})})]}),(0,A.jsx)(mt,{...l,children:(0,A.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:l.handleSubmit(e=>{r(e.newEmail)}),children:[(0,A.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,A.jsx)(ot,{className:`text-muted-foreground text-xs`,children:(0,A.jsx)(i,{id:`userEdit.email.dialog.currentLabel`,message:`Current email`})}),(0,A.jsx)(`p`,{className:`text-muted-foreground font-mono text-sm`,"data-testid":`user-edit-email-change-current`,children:n})]}),(0,A.jsx)(lt,{control:l.control,name:`newEmail`,render:({field:e})=>(0,A.jsxs)(at,{children:[(0,A.jsx)(dt,{children:(0,A.jsx)(i,{id:`userEdit.email.dialog.newLabel`,message:`New email`})}),(0,A.jsx)(ut,{children:(0,A.jsx)(nt,{type:`email`,autoComplete:`email`,placeholder:s,disabled:a,"data-testid":`user-edit-email-change-input`,...e})}),(0,A.jsx)(pt,{})]})}),o?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`user-edit-email-change-error`,children:(0,A.jsx)(D,{children:c(o)})}):null,(0,A.jsxs)(Se,{children:[(0,A.jsx)(se,{disabled:a,"data-testid":`user-edit-email-change-cancel`,children:(0,A.jsx)(i,{id:`userEdit.email.dialog.cancel`,message:`Cancel`})}),(0,A.jsx)(oe,{type:`submit`,disabled:a,"data-testid":`user-edit-email-change-submit`,children:a?(0,A.jsx)(i,{id:`userEdit.email.dialog.submit.pending`,message:`Sending…`}):(0,A.jsx)(i,{id:`userEdit.email.dialog.submit.idle`,message:`Send confirmation`})})]})]})})]})})}function kr(e){if(_t(e)===`CONFLICT`){let t=gt(e);if(t===`email_taken`)return Tr.emailTaken;if(t===`mailer_not_configured`)return Tr.mailerNotConfigured;if(t===`account_disabled`)return Tr.accountDisabled}return e instanceof Error?e.message:Tr.requestFallback}var Ar=`__keep__`;async function jr(e,t){await Promise.all([e.invalidateQueries({queryKey:a.user.get.queryOptions({input:{id:t}}).queryKey}),e.invalidateQueries({queryKey:a.user.list.key()})])}var Mr=Pe({name:Be(ze(),Ae(),Ie(100)),slug:Ee,role:Re(Ke),meta:Me(ze(),Fe())});function Nr(){let{id:e}=tt.useParams(),{user:t}=tt.useRouteContext(),n=e===t.id;function r(e){return!n&&He(t.capabilities,e)}let i=r(`user:promote`),o=r(`user:edit`),s=r(`user:delete`),c=r(`user:manage_tokens`),u=n?He(t.capabilities,`user:edit_own`):He(t.capabilities,`user:edit`),{data:d}=l(a.user.get.queryOptions({input:{id:e}}));return(0,A.jsx)(Fr,{target:d,isSelf:n,canPromote:i,canSave:u,canDisable:o,canDelete:s,canManageOtherTokens:c,metaBoxes:Oe(t.capabilities)},d.updatedAt instanceof Date?d.updatedAt.toISOString():String(d.updatedAt))}function Pr({target:e,canPromote:t,metaBoxes:n,queryClient:r,setServerError:i,setServerFieldErrors:o}){return c({mutationFn:r=>a.user.update.call({id:e.id,name:r.name.length>0?r.name:null,...r.slug===e.slug?{}:{slug:r.slug},...t&&r.role!==e.role?{role:r.role}:{},meta:n.length>0?r.meta:void 0}),onMutate:()=>{i(null),o(null)},onSuccess:async()=>{await jr(r,e.id)},onError:e=>{let t=xt(e);if(t){o(t);return}i(zr(e,Br,et.errUpdateFallback))}})}function Fr({target:e,isSelf:t,canPromote:n,canSave:r,canDisable:a,canDelete:s,canManageOtherTokens:c,metaBoxes:l}){let g=u(),v=E(),b=o(),[x,S]=(0,k.useState)(null),[C,w]=(0,k.useState)(null),T=Pr({target:e,canPromote:n,metaBoxes:l,queryClient:b,setServerError:S,setServerFieldErrors:w}),te=st({resolver:ht(Mr),defaultValues:{name:e.name??``,slug:e.slug,role:e.role,meta:De(l,e.meta)}});St(te,Ct,C);let ne=te.handleSubmit(e=>{T.mutate(e)}),re=(0,A.jsx)(`bdi`,{children:e.email});return(0,A.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col gap-4`,children:[(0,A.jsxs)(d,{to:`/users`,search:Je,className:`text-muted-foreground hover:text-foreground inline-flex items-center gap-1 text-sm`,"data-testid":`user-edit-back-link`,children:[(0,A.jsx)(ee,{className:`size-4 rtl:rotate-180`}),(0,A.jsx)(i,{id:`userEdit.backToList`,message:`Back to users`})]}),(0,A.jsxs)($e,{children:[(0,A.jsxs)(Xe,{children:[(0,A.jsx)(Ye,{children:(0,A.jsx)(`h1`,{"data-testid":`user-edit-heading`,children:t?(0,A.jsx)(i,{id:`userEdit.title.self`,message:`Your profile`}):(0,A.jsx)(i,{id:`userEdit.title.other`,message:`Edit {email}`,values:{email:re},comment:`email: the user being edited`})})}),(0,A.jsx)(Qe,{children:t?(0,A.jsx)(i,{id:`userEdit.description.self`,message:`Update your display name. Role and account state are managed by administrators.`}):(0,A.jsx)(i,{id:`userEdit.description.other`,message:`Update this account's details. Role changes invalidate existing sessions immediately.`})})]}),(0,A.jsx)(Ze,{children:(0,A.jsx)(mt,{...te,children:(0,A.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:ne,children:[(0,A.jsx)(Dr,{userId:e.id,email:e.email,canEdit:r}),(0,A.jsx)(lt,{control:te.control,name:`name`,render:({field:e})=>(0,A.jsxs)(at,{children:[(0,A.jsx)(dt,{children:(0,A.jsx)(i,{id:`userEdit.name.label`,message:`Name`})}),(0,A.jsx)(ut,{children:(0,A.jsx)(nt,{type:`text`,autoComplete:`name`,disabled:T.isPending||!r,"data-testid":`user-edit-name-input`,...e})}),(0,A.jsx)(pt,{})]})}),(0,A.jsx)(lt,{control:te.control,name:`slug`,render:({field:e})=>(0,A.jsxs)(at,{children:[(0,A.jsx)(dt,{children:(0,A.jsx)(i,{id:`userEdit.slug.label`,message:`Author slug`})}),(0,A.jsx)(ut,{children:(0,A.jsx)(nt,{type:`text`,autoComplete:`off`,disabled:T.isPending||!r,"data-testid":`user-edit-slug-input`,...e})}),(0,A.jsx)(ft,{children:(0,A.jsx)(i,{id:`userEdit.slug.description`,message:`Used in this author's archive URL under /authors/. Changing it breaks existing links to the old address.`})}),(0,A.jsx)(pt,{})]})}),n?(0,A.jsx)(lt,{control:te.control,name:`role`,render:({field:e})=>(0,A.jsxs)(at,{children:[(0,A.jsx)(dt,{children:(0,A.jsx)(i,{id:`userEdit.role.label`,message:`Role`})}),(0,A.jsxs)(_,{value:e.value,onValueChange:t=>{qe(t)&&e.onChange(t)},disabled:T.isPending,children:[(0,A.jsx)(ut,{children:(0,A.jsx)(p,{className:`w-full`,onBlur:e.onBlur,"data-testid":`user-edit-role-select`,children:(0,A.jsx)(f,{})})}),(0,A.jsx)(m,{children:Ke.map(e=>(0,A.jsx)(h,{value:e,children:v(We[e])},e))})]}),(0,A.jsx)(pt,{})]})}):(0,A.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,A.jsx)(ot,{children:(0,A.jsx)(i,{id:`userEdit.role.label`,message:`Role`})}),(0,A.jsx)(ue,{variant:`secondary`,className:`w-fit`,children:v(Ge[e.role])}),t?(0,A.jsx)(`p`,{className:`text-muted-foreground text-xs`,children:(0,A.jsx)(i,{id:`userEdit.role.selfReadonly`,message:`Only another administrator can change your role.`})}):null]}),l.map(e=>(0,A.jsx)(bt,{box:e,basePath:`meta`,disabled:T.isPending||!r},e.id)),x?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`user-edit-server-error`,children:(0,A.jsx)(D,{children:v(x)})}):null,(0,A.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,A.jsx)(y,{type:`button`,variant:`outline`,onClick:()=>{g({to:`/users`,search:Je})},disabled:T.isPending,children:(0,A.jsx)(i,{id:`userEdit.cancel`,message:`Cancel`})}),(0,A.jsx)(y,{type:`submit`,disabled:T.isPending||!r,"data-testid":`user-edit-submit`,children:T.isPending?(0,A.jsx)(i,{id:`userEdit.submit.pending`,message:`Saving…`}):(0,A.jsx)(i,{id:`userEdit.submit.idle`,message:`Save changes`})})]})]})})})]}),a?(0,A.jsx)(Ir,{target:e}):null,s?(0,A.jsx)(Rr,{target:e}):null,t?(0,A.jsx)(Rt,{userLocale:e.meta.locale}):null,t?(0,A.jsx)(zt,{userEmail:e.email}):null,t?(0,A.jsx)(br,{}):null,t?(0,A.jsx)(At,{}):null,!t&&c?(0,A.jsx)(jt,{userId:e.id}):null]})}function Ir({target:e}){let t=E(),n=o(),[r,s]=(0,k.useState)(null),l=e.disabledAt!=null,u=c({mutationFn:()=>l?a.user.enable.call({id:e.id}):a.user.disable.call({id:e.id}),onMutate:()=>{s(null)},onSuccess:async()=>{await jr(n,e.id)},onError:e=>{s(zr(e,Vr,et.errStatusFallback))}});return(0,A.jsxs)($e,{children:[(0,A.jsxs)(Xe,{children:[(0,A.jsx)(Ye,{children:(0,A.jsx)(i,{id:`userEdit.status.title`,message:`Account status`})}),(0,A.jsx)(Qe,{children:l?(0,A.jsx)(i,{id:`userEdit.status.description.disabled`,message:`Disabled accounts can't sign in. Re-enabling restores access; their passkey is still registered.`}):(0,A.jsx)(i,{id:`userEdit.status.description.active`,message:`Disabling signs the user out immediately and blocks future sign-ins. Their entries stay published.`})})]}),(0,A.jsxs)(Ze,{className:`flex flex-col gap-3`,children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,A.jsx)(ue,{variant:l?`destructive`:`secondary`,children:l?(0,A.jsx)(i,{id:`users.list.row.disabled`,message:`Disabled`}):(0,A.jsx)(i,{id:`users.list.row.active`,message:`Active`})}),(0,A.jsx)(y,{variant:l?`default`:`outline`,onClick:()=>{u.mutate()},disabled:u.isPending,"data-testid":l?`user-edit-enable-button`:`user-edit-disable-button`,children:t(Lr(l,u.isPending))})]}),r?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`user-status-error`,children:(0,A.jsx)(D,{children:t(r)})}):null]})]})}function Lr(e,t){return t?e?et.toggleEnabling:et.toggleDisabling:e?et.toggleEnable:et.toggleDisable}function Rr({target:e}){let t=u(),n=E(),r=o(),[l,d]=(0,k.useState)(!1),[g,v]=(0,k.useState)(null),[b,x]=(0,k.useState)(null),S=s({...a.user.list.queryOptions({input:{limit:100}}),enabled:l}),C=(S.data??[]).filter(t=>t.id!==e.id),w=c({mutationFn:()=>a.user.delete.call({id:e.id,...g==null?{}:{reassignTo:g}}),onMutate:()=>{x(null)},onSuccess:async()=>{await r.invalidateQueries({queryKey:a.user.list.key()}),t({to:`/users`,search:Je})},onError:e=>{x(zr(e,Hr,et.errDeleteFallback))}}),ee=(0,A.jsx)(`bdi`,{children:e.email});return l?(0,A.jsxs)($e,{className:`border-destructive`,children:[(0,A.jsxs)(Xe,{children:[(0,A.jsx)(Ye,{className:`text-destructive`,children:(0,A.jsx)(i,{id:`userEdit.delete.confirm.title`,message:`Confirm delete: {email}`,values:{email:ee},comment:`email: the user account being deleted`})}),(0,A.jsx)(Qe,{children:(0,A.jsx)(i,{id:`userEdit.delete.confirm.description`,message:`If this user authored any entries, the next step reassigns them. Leave "Keep entries as-is" if they have none.`})})]}),(0,A.jsxs)(Ze,{className:`flex flex-col gap-3`,children:[(0,A.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,A.jsx)(ot,{htmlFor:`reassign-to`,children:(0,A.jsx)(i,{id:`userEdit.delete.reassign.label`,message:`Reassign entries to`})}),(0,A.jsxs)(_,{value:g==null?Ar:String(g),onValueChange:e=>{v(e===Ar?null:Number(e))},disabled:w.isPending||S.isPending,children:[(0,A.jsx)(p,{id:`reassign-to`,className:`w-full`,"data-testid":`user-delete-reassign-select`,children:(0,A.jsx)(f,{})}),(0,A.jsxs)(m,{children:[(0,A.jsx)(h,{value:Ar,children:n(et.reassignKeepAsIs)}),C.map(e=>(0,A.jsxs)(h,{value:String(e.id),"data-testid":`user-delete-reassign-select-${e.id}`,children:[e.name??e.email,` (`,e.email,`)`]},e.id))]})]})]}),b?(0,A.jsx)(O,{variant:`destructive`,"data-testid":`user-delete-error`,children:(0,A.jsx)(D,{children:n(b)})}):null,(0,A.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,A.jsx)(y,{type:`button`,variant:`outline`,onClick:()=>{d(!1),v(null),x(null)},disabled:w.isPending,children:(0,A.jsx)(i,{id:`userEdit.cancel`,message:`Cancel`})}),(0,A.jsx)(y,{type:`button`,variant:`destructive`,onClick:()=>{w.mutate()},disabled:w.isPending,"data-testid":`user-delete-confirm-button`,children:w.isPending?(0,A.jsx)(i,{id:`userEdit.delete.confirm.pending`,message:`Deleting…`}):(0,A.jsx)(i,{id:`userEdit.delete.confirm.idle`,message:`Delete forever`})})]})]})]}):(0,A.jsxs)($e,{className:`border-destructive/50`,children:[(0,A.jsxs)(Xe,{children:[(0,A.jsx)(Ye,{className:`text-destructive`,children:(0,A.jsx)(i,{id:`userEdit.delete.title`,message:`Delete user`})}),(0,A.jsx)(Qe,{children:(0,A.jsx)(i,{id:`userEdit.delete.description`,message:`Permanent. Their entries stay, but you'll choose who inherits authorship.`})})]}),(0,A.jsx)(Ze,{children:(0,A.jsx)(y,{variant:`destructive`,onClick:()=>{d(!0)},"data-testid":`user-edit-delete-button`,children:(0,A.jsx)(i,{id:`userEdit.delete.button`,message:`Delete user`})})})]})}function zr(e,t,n){let r=e&&typeof e==`object`&&`data`in e?e.data?.reason:void 0;return(r==null?void 0:t[r])??n}var Br={last_admin:{id:`userEdit.error.lastAdmin.update`},email_taken:{id:`userEdit.error.emailTaken`},slug_taken:{id:`userEdit.error.slugTaken`}},Vr={last_admin:{id:`userEdit.error.lastAdmin.status`}},Hr={last_admin:{id:`userEdit.error.lastAdmin.delete`},has_entries:{id:`userEdit.error.hasEntries`},reassign_to_self:{id:`userEdit.error.reassignToSelf`}};export{Nr as component};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./edit-C8EfqoCF.js","./jsx-runtime-DUAcabCT.js","./dist-BL2bKHuR.js","./react-DbyrFoBd.js","./error-placeholder-ULkA-k6_.js","./empty-p3QKoEqD.js","./utils-DKOQrNEG.js","./dist-B66OmIyr.js","./triangle-alert-BpzHmkii.js","./createLucideIcon-C0O-yxZG.js","./use-label-CykSHq9A.js","./edit-2tkUFGA0.js","./edit-
|
|
2
|
-
import{i as e,t}from"./jsx-runtime-DUAcabCT.js";import{t as n}from"./orpc-CmtRGLtZ.js";import{T as r,a as i,t as a}from"./lazyRouteComponent-CQbKoKTD.js";import{i as o,s}from"./matchContext-DKtpdvCQ.js";import{t as c}from"./use-label-CykSHq9A.js";import{S as l}from"./dist-ClOzYsk5.js";import{r as u}from"./validation-Cl_jr4SS.js";import{t as d}from"./caps-SYhabp1B.js";import{t as f}from"./edit-skeleton-oIsvepSM.js";import{t as p}from"./edit-2tkUFGA0.js";var m=e(t(),1),h=i(`/_authenticated/users/$id/edit`)({params:{parse:e=>{let t=l(u,e.id);if(!t.success)throw s();return{id:t.output}}},beforeLoad:({context:e,params:t})=>{let n=t.id===e.user.id,r=d(e.user.capabilities,`user:list`),i=n&&d(e.user.capabilities,`user:edit_own`);if(!r&&!i)throw o({to:`/`})},loader:({context:e,params:t})=>e.queryClient.ensureQueryData(n.user.get.queryOptions({input:{id:t.id}})),pendingComponent:g,errorComponent:a(()=>r(()=>import(`./edit-C8EfqoCF.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url),`errorComponent`),component:a(()=>r(()=>import(`./edit-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./edit-C8EfqoCF.js","./jsx-runtime-DUAcabCT.js","./dist-BL2bKHuR.js","./react-DbyrFoBd.js","./error-placeholder-ULkA-k6_.js","./empty-p3QKoEqD.js","./utils-DKOQrNEG.js","./dist-B66OmIyr.js","./triangle-alert-BpzHmkii.js","./createLucideIcon-C0O-yxZG.js","./use-label-CykSHq9A.js","./edit-2tkUFGA0.js","./edit-BPw2fZ5B.js","./orpc-CmtRGLtZ.js","./useQuery-QAYxQfCx.js","./useMutation-vgMtqBOX.js","./useSuspenseQuery-9GLTSYHf.js","./link-CI3qhqYu.js","./react-dom-i-Mcm3wj.js","./useStore-Vo4KhxPy.js","./with-selector-Bf4HMdmS.js","./select-D3kIVy0H.js","./dist-Dgy1ZZMQ.js","./dist-C4yHjFuP.js","./dist-BbwCNMFC.js","./dist-vYFq1OyT.js","./es2015-Di0DqwZ-.js","./dist-BP9v0gZx.js","./button-DG1Ca1S5.js","./arrow-left-CWzmtp8T.js","./textarea-iIsBg5jH.js","./dist-hUh7dFZi.js","./dist-DWZq3eNY.js","./clipboard-D6ZMYUE8.js","./utils-RSNxndzY.js","./sonner-1kBVu4ZN.js","./dist-RxmsRBXP.js","./dist-Cz1zPiFe.js","./breadcrumb-Di_E7s51.js","./skeleton-BnBM1862.js","./input-xYuLUQID.js","./separator-DzRLZTkg.js","./dist-BaNJ6JYm.js","./tooltip-Bf2rZUeB.js","./dist-BreUs1Gf.js","./card-L2-kK5VK.js","./popover-BoiNmQB7.js","./dist-CFgtqwWs.js","./toggle-M64NT8hi.js","./form-CY307HEl.js","./alert-cwX3fWUu.js","./slug-CAYcbdmW.js","./dist-ClOzYsk5.js","./vmessage-CRX68a8a.js","./validation-Cl_jr4SS.js","./manifest-2YUNz_ML.js","./style-emitter-CDGtTiRG.js","./caps-SYhabp1B.js","./use-formatters-DLJOFcWE.js","./dist-DKhWWf1L.js","./user-role-labels-NFC7DRSs.js","./-constants-D2aYlJ-p.js","./passkey-DN4QfROE.js","./valibot-CHirPb_E.js","./orpc-errors-DWk96ZMY.js","./scopes-C_7AiPdH.js","./dates-CSmOj6E-.js","./meta-box-CwZHh0Nj.js","./use-visible-fields-C0FKrnz6.js","./lazyRouteComponent-CQbKoKTD.js","./matchContext-DKtpdvCQ.js","./type-labels-DEpt0nSb.js","./plugin-registry-DLDusPOA.js","./errors-BDz8PxwA.js","./meta-field-errors-Za3ulViR.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e,t}from"./jsx-runtime-DUAcabCT.js";import{t as n}from"./orpc-CmtRGLtZ.js";import{T as r,a as i,t as a}from"./lazyRouteComponent-CQbKoKTD.js";import{i as o,s}from"./matchContext-DKtpdvCQ.js";import{t as c}from"./use-label-CykSHq9A.js";import{S as l}from"./dist-ClOzYsk5.js";import{r as u}from"./validation-Cl_jr4SS.js";import{t as d}from"./caps-SYhabp1B.js";import{t as f}from"./edit-skeleton-oIsvepSM.js";import{t as p}from"./edit-2tkUFGA0.js";var m=e(t(),1),h=i(`/_authenticated/users/$id/edit`)({params:{parse:e=>{let t=l(u,e.id);if(!t.success)throw s();return{id:t.output}}},beforeLoad:({context:e,params:t})=>{let n=t.id===e.user.id,r=d(e.user.capabilities,`user:list`),i=n&&d(e.user.capabilities,`user:edit_own`);if(!r&&!i)throw o({to:`/`})},loader:({context:e,params:t})=>e.queryClient.ensureQueryData(n.user.get.queryOptions({input:{id:t.id}})),pendingComponent:g,errorComponent:a(()=>r(()=>import(`./edit-C8EfqoCF.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url),`errorComponent`),component:a(()=>r(()=>import(`./edit-BPw2fZ5B.js`),__vite__mapDeps([12,1,3,2,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,6,9,28,7,5,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,10,55,56,57,58,59,60,61,11,62,63,64,65,66,67,68,69,70,8,71,72,73,74]),import.meta.url),`component`)});function g(){return(0,m.jsx)(f,{ariaLabel:c()(p.loadingAria),testId:`user-edit-loading`})}export{h as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./edit-CJqG1MnB.js","./jsx-runtime-DUAcabCT.js","./dist-BL2bKHuR.js","./react-DbyrFoBd.js","./error-placeholder-ULkA-k6_.js","./empty-p3QKoEqD.js","./utils-DKOQrNEG.js","./dist-B66OmIyr.js","./triangle-alert-BpzHmkii.js","./createLucideIcon-C0O-yxZG.js","./use-label-CykSHq9A.js","./edit-DE8yiDG7.js","./edit-
|
|
2
|
-
import{i as e,t}from"./jsx-runtime-DUAcabCT.js";import{t as n}from"./orpc-CmtRGLtZ.js";import{T as r,a as i,t as a}from"./lazyRouteComponent-CQbKoKTD.js";import{s as o}from"./matchContext-DKtpdvCQ.js";import{t as s}from"./use-label-CykSHq9A.js";import{o as c}from"./manifest-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./edit-CJqG1MnB.js","./jsx-runtime-DUAcabCT.js","./dist-BL2bKHuR.js","./react-DbyrFoBd.js","./error-placeholder-ULkA-k6_.js","./empty-p3QKoEqD.js","./utils-DKOQrNEG.js","./dist-B66OmIyr.js","./triangle-alert-BpzHmkii.js","./createLucideIcon-C0O-yxZG.js","./use-label-CykSHq9A.js","./edit-DE8yiDG7.js","./edit-DOoYH9tG.js","./orpc-CmtRGLtZ.js","./useQuery-QAYxQfCx.js","./useMutation-vgMtqBOX.js","./useSuspenseQuery-9GLTSYHf.js","./link-CI3qhqYu.js","./react-dom-i-Mcm3wj.js","./useStore-Vo4KhxPy.js","./with-selector-Bf4HMdmS.js","./button-DG1Ca1S5.js","./dist-Dgy1ZZMQ.js","./arrow-left-CWzmtp8T.js","./utils-RSNxndzY.js","./sonner-1kBVu4ZN.js","./dist-C4yHjFuP.js","./dist-vYFq1OyT.js","./dist-RxmsRBXP.js","./dist-BbwCNMFC.js","./es2015-Di0DqwZ-.js","./dist-DWZq3eNY.js","./dist-BP9v0gZx.js","./select-D3kIVy0H.js","./dist-Cz1zPiFe.js","./breadcrumb-Di_E7s51.js","./skeleton-BnBM1862.js","./input-xYuLUQID.js","./separator-DzRLZTkg.js","./dist-BaNJ6JYm.js","./tooltip-Bf2rZUeB.js","./dist-BreUs1Gf.js","./textarea-iIsBg5jH.js","./dist-hUh7dFZi.js","./card-L2-kK5VK.js","./popover-BoiNmQB7.js","./dist-CFgtqwWs.js","./toggle-M64NT8hi.js","./form-CY307HEl.js","./alert-cwX3fWUu.js","./manifest-2YUNz_ML.js","./style-emitter-CDGtTiRG.js","./caps-SYhabp1B.js","./type-labels-DEpt0nSb.js","./-constants-GNK7OFwu.js","./tree-BUpunTXw.js","./meta-field-errors-Za3ulViR.js","./-errors-RB-rEi-I.js","./dist-ClOzYsk5.js","./vmessage-CRX68a8a.js","./validation-Cl_jr4SS.js","./valibot-CHirPb_E.js","./meta-box-CwZHh0Nj.js","./use-visible-fields-C0FKrnz6.js","./lazyRouteComponent-CQbKoKTD.js","./matchContext-DKtpdvCQ.js","./plugin-registry-DLDusPOA.js","./errors-BDz8PxwA.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e,t}from"./jsx-runtime-DUAcabCT.js";import{t as n}from"./orpc-CmtRGLtZ.js";import{T as r,a as i,t as a}from"./lazyRouteComponent-CQbKoKTD.js";import{s as o}from"./matchContext-DKtpdvCQ.js";import{t as s}from"./use-label-CykSHq9A.js";import{o as c}from"./manifest-2YUNz_ML.js";import{S as l}from"./dist-ClOzYsk5.js";import{r as u}from"./validation-Cl_jr4SS.js";import{t as d}from"./caps-SYhabp1B.js";import{t as f}from"./edit-skeleton-oIsvepSM.js";import{t as p}from"./edit-DE8yiDG7.js";var m=e(t(),1),h=i(`/_authenticated/terms/$name/$id/edit`)({params:{parse:e=>{let t=l(u,e.id);if(!t.success)throw o();return{name:e.name,id:t.output}}},beforeLoad:({context:e,params:t})=>{let n=c(t.name);if(!n||!d(e.user.capabilities,`term:${n.name}:read`))throw o();return{taxonomy:n}},loader:({context:e,params:t})=>e.queryClient.ensureQueryData(n.term.get.queryOptions({input:{id:t.id}})),pendingComponent:g,errorComponent:a(()=>r(()=>import(`./edit-CJqG1MnB.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]),import.meta.url),`errorComponent`),component:a(()=>r(()=>import(`./edit-DOoYH9tG.js`),__vite__mapDeps([12,1,3,2,13,14,15,16,17,18,19,20,21,22,6,7,23,9,24,25,26,27,28,29,30,31,32,33,34,5,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,10,50,51,52,53,54,11,55,56,57,58,59,60,61,62,63,64,65,8,66,67]),import.meta.url),`component`)});function g(){return(0,m.jsx)(f,{ariaLabel:s()(p.loadingAria),testId:`term-edit-loading`})}export{h as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,t}from"./jsx-runtime-DUAcabCT.js";import{n}from"./dist-BL2bKHuR.js";import{t as r}from"./error-placeholder-ULkA-k6_.js";import"./register-core-blocks-
|
|
1
|
+
import{i as e,t}from"./jsx-runtime-DUAcabCT.js";import{n}from"./dist-BL2bKHuR.js";import{t as r}from"./error-placeholder-ULkA-k6_.js";import"./register-core-blocks-CVavxPiP.js";var i=e(t());function a(){return(0,i.jsx)(r,{testId:`plumix-editor-error`,title:(0,i.jsx)(n,{id:`editor.previewFailedTitle`,message:`Couldn't open the editor`}),description:(0,i.jsx)(n,{id:`editor.previewFailed`,message:`Couldn't open this entry in the editor.`})})}export{a as errorComponent};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./rich-text-field-DGgpOqHQ.js","./jsx-runtime-DUAcabCT.js","./react-DbyrFoBd.js","./react-dom-i-Mcm3wj.js","./dist-BL2bKHuR.js","./with-selector-Bf4HMdmS.js","./select-D3kIVy0H.js","./dist-Dgy1ZZMQ.js","./dist-C4yHjFuP.js","./dist-BbwCNMFC.js","./dist-vYFq1OyT.js","./es2015-Di0DqwZ-.js","./dist-BP9v0gZx.js","./utils-DKOQrNEG.js","./createLucideIcon-C0O-yxZG.js","./button-DG1Ca1S5.js","./dist-B66OmIyr.js","./underline-CbWPdoFR.js","./trash-2-Bn-rv3EX.js","./headings-B7oI9nfr.js","./w3c-keyname-BOAvb0qz.js","./input-xYuLUQID.js","./popover-BoiNmQB7.js","./dist-CFgtqwWs.js","./toggle-M64NT8hi.js","./dist-Cz1zPiFe.js","./json-highlight-BbhGhG56.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e,t}from"./jsx-runtime-DUAcabCT.js";import{t as n}from"./react-DbyrFoBd.js";import{_ as r,a as i,c as a,d as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g}from"./edit-2aEJRHSG.js";import{i as _,n as v}from"./dist-BL2bKHuR.js";import{a as y,t as b,u as x}from"./orpc-CmtRGLtZ.js";import{t as S}from"./useQuery-QAYxQfCx.js";import{t as C}from"./useMutation-vgMtqBOX.js";import{t as ee}from"./useSuspenseQuery-9GLTSYHf.js";import{T as w}from"./lazyRouteComponent-CQbKoKTD.js";import{o as te}from"./link-CI3qhqYu.js";import{a as T,i as E,n as D,o as ne,r as O,s as re,t as k}from"./select-D3kIVy0H.js";import{t as A}from"./utils-DKOQrNEG.js";import{t as j}from"./button-DG1Ca1S5.js";import{t as M}from"./createLucideIcon-C0O-yxZG.js";import{a as ie,n as ae,o as N,r as oe,s as se,t as ce}from"./toast-26daCjvR.js";import{t as le}from"./arrow-left-CWzmtp8T.js";import{a as P,c as ue,i as de,n as fe,o as F,r as pe,s as me,t as he}from"./underline-CbWPdoFR.js";import{A as ge,D as _e,E as ve,G as ye,H as be,I as xe,J as Se,K as Ce,L as we,S as Te,V as Ee,W as De,Y as Oe,Z as ke,_ as Ae,b as je,d as Me,f as I,g as L,j as Ne,l as Pe,m as Fe,o as Ie,p as Le,q as Re,s as ze,u as Be,v as Ve,w as R,x as He,y as Ue}from"./breadcrumb-Di_E7s51.js";import{t as We}from"./chevrons-up-down-DmmG8bmI.js";import{t as Ge}from"./textarea-iIsBg5jH.js";import{n as Ke,t as qe}from"./clipboard-D6ZMYUE8.js";import{A as Je,C as Ye,G as Xe,H as Ze,K as z,M as Qe,O as B,S as $e,U as et,W as V,_ as tt,a as nt,b as rt,g as it,h as at,i as H,k as U,n as ot,o as st,p as ct,q as lt,r as ut,t as dt,v as ft,w as pt,x as mt,y as ht}from"./utils-RSNxndzY.js";import{t as gt}from"./image-CYG4gQQy.js";import{i as _t,n as vt,r as yt,t as bt}from"./slug-CAYcbdmW.js";import{i as xt,n as St,t as Ct}from"./use-visible-fields-C0FKrnz6.js";import{t as wt}from"./trash-2-Bn-rv3EX.js";import{n as Tt}from"./register-core-blocks-CVavxPiP.js";import{a as Et,i as Dt,n as Ot,o as kt,r as At,t as jt}from"./style-emitter-CDGtTiRG.js";import{n as Mt,r as Nt,t as W}from"./use-label-CykSHq9A.js";import{c as Pt,d as Ft,l as It,r as Lt,s as Rt,t as zt,y as Bt}from"./manifest-2YUNz_ML.js";import{D as Vt,b as Ht,g as Ut,h as Wt,k as Gt,l as Kt,m as qt,p as Jt,t as Yt,v as Xt,w as Zt,y as Qt}from"./dist-ClOzYsk5.js";import{n as $t}from"./validation-Cl_jr4SS.js";import{t as en}from"./use-formatters-DLJOFcWE.js";import{t as tn}from"./type-labels-DEpt0nSb.js";import{i as nn,n as rn,r as an,t as on}from"./card-L2-kK5VK.js";import{t as sn}from"./skeleton-BnBM1862.js";import{i as cn,n as ln}from"./plugin-registry-DLDusPOA.js";import{t as G}from"./input-xYuLUQID.js";import{i as un,n as dn,r as fn,t as pn}from"./popover-BoiNmQB7.js";import{t as mn}from"./toggle-M64NT8hi.js";import{a as hn,f as gn,h as _n,i as vn,n as yn,t as bn}from"./form-CY307HEl.js";import{t as xn}from"./valibot-CHirPb_E.js";import{i as Sn,n as Cn,r as wn,t as Tn}from"./tooltip-Bf2rZUeB.js";import{t as En}from"./entries-MizUUcD8.js";import{n as Dn,r as On,t as kn}from"./meta-field-errors-Za3ulViR.js";var An=M(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),jn=M(`clipboard-paste`,[[`path`,{d:`M11 14h10`,key:`1w8e9d`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v1.344`,key:`1e62lh`}],[`path`,{d:`m17 18 4-4-4-4`,key:`z2g111`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 1.793-1.113`,key:`bjbb7m`}],[`rect`,{x:`8`,y:`2`,width:`8`,height:`4`,rx:`1`,key:`ublpy`}]]),Mn=M(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]),Nn=M(`columns-2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M12 3v18`,key:`108xh3`}]]),Pn=M(`copy-plus`,[[`line`,{x1:`15`,x2:`15`,y1:`12`,y2:`18`,key:`1p7wdc`}],[`line`,{x1:`12`,x2:`18`,y1:`15`,y2:`15`,key:`1nscbv`}],[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),Fn=M(`corner-left-up`,[[`path`,{d:`M14 9 9 4 4 9`,key:`1af5af`}],[`path`,{d:`M20 20h-7a4 4 0 0 1-4-4V4`,key:`1blwi3`}]]),In=M(`ellipsis-vertical`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`12`,cy:`5`,r:`1`,key:`gxeob9`}],[`circle`,{cx:`12`,cy:`19`,r:`1`,key:`lyex9k`}]]),Ln=M(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Rn=M(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),zn=M(`group`,[[`path`,{d:`M3 7V5c0-1.1.9-2 2-2h2`,key:`adw53z`}],[`path`,{d:`M17 3h2c1.1 0 2 .9 2 2v2`,key:`an4l38`}],[`path`,{d:`M21 17v2c0 1.1-.9 2-2 2h-2`,key:`144t0e`}],[`path`,{d:`M7 21H5c-1.1 0-2-.9-2-2v-2`,key:`rtnfgi`}],[`rect`,{width:`7`,height:`5`,x:`7`,y:`7`,rx:`1`,key:`1eyiv7`}],[`rect`,{width:`7`,height:`5`,x:`10`,y:`12`,rx:`1`,key:`1qlmkx`}]]),Bn=M(`images`,[[`path`,{d:`m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16`,key:`9kzy35`}],[`path`,{d:`M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2`,key:`1t0f0t`}],[`circle`,{cx:`13`,cy:`7`,r:`1`,fill:`currentColor`,key:`1obus6`}],[`rect`,{x:`8`,y:`2`,width:`14`,height:`14`,rx:`2`,key:`1gvhby`}]]),Vn=M(`layout-template`,[[`rect`,{width:`18`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`f1a2em`}],[`rect`,{width:`9`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`jqznyg`}],[`rect`,{width:`5`,height:`7`,x:`16`,y:`14`,rx:`1`,key:`q5h2i8`}]]),Hn=M(`megaphone`,[[`path`,{d:`M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z`,key:`q8bfy3`}],[`path`,{d:`M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14`,key:`1853fq`}],[`path`,{d:`M8 6v8`,key:`15ugcq`}]]),Un=M(`message-circle-more`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}]]),Wn=M(`message-circle`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}]]),Gn=M(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),Kn=M(`mouse-pointer-click`,[[`path`,{d:`M14 4.1 12 6`,key:`ita8i4`}],[`path`,{d:`m5.1 8-2.9-.8`,key:`1go3kf`}],[`path`,{d:`m6 12-1.9 2`,key:`mnht97`}],[`path`,{d:`M7.2 2.2 8 5.1`,key:`1cfko1`}],[`path`,{d:`M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z`,key:`s0h3yz`}]]),qn=M(`music`,[[`path`,{d:`M9 18V5l12-2v13`,key:`1jmyc2`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`circle`,{cx:`18`,cy:`16`,r:`3`,key:`1hluhg`}]]),Jn=M(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Yn=M(`redo-2`,[[`path`,{d:`m15 14 5-5-5-5`,key:`12vg1m`}],[`path`,{d:`M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13`,key:`6uklza`}]]),Xn=M(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),Zn=M(`rows-2`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}]]),Qn=M(`square-dashed`,[[`path`,{d:`M5 3a2 2 0 0 0-2 2`,key:`y57alp`}],[`path`,{d:`M19 3a2 2 0 0 1 2 2`,key:`18rm91`}],[`path`,{d:`M21 19a2 2 0 0 1-2 2`,key:`1j7049`}],[`path`,{d:`M5 21a2 2 0 0 1-2-2`,key:`sbafld`}],[`path`,{d:`M9 3h1`,key:`1yesri`}],[`path`,{d:`M9 21h1`,key:`15o7lz`}],[`path`,{d:`M14 3h1`,key:`1ec4yj`}],[`path`,{d:`M14 21h1`,key:`v9vybs`}],[`path`,{d:`M3 9v1`,key:`1r0deq`}],[`path`,{d:`M21 9v1`,key:`mxsmne`}],[`path`,{d:`M3 14v1`,key:`vnatye`}],[`path`,{d:`M21 14v1`,key:`169vum`}]]),$n=M(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),er=M(`table`,[[`path`,{d:`M12 3v18`,key:`108xh3`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]),tr=M(`text-align-center`,[[`path`,{d:`M21 5H3`,key:`1fi0y6`}],[`path`,{d:`M17 12H7`,key:`16if0g`}],[`path`,{d:`M19 19H5`,key:`vjpgq2`}]]),nr=M(`text-align-end`,[[`path`,{d:`M21 5H3`,key:`1fi0y6`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M21 19H7`,key:`4cu937`}]]),rr=M(`text-align-start`,[[`path`,{d:`M21 5H3`,key:`1fi0y6`}],[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M17 19H3`,key:`z6ezky`}]]),ir=M(`type`,[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]),ar=M(`undo-2`,[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]),or=M(`ungroup`,[[`rect`,{x:`11`,y:`14`,width:`10`,height:`7`,rx:`2`,key:`nfm8rk`}],[`rect`,{x:`3`,y:`3`,width:`10`,height:`7`,rx:`2`,key:`1ljebb`}]]),sr=M(`video`,[[`path`,{d:`m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5`,key:`ftymec`}],[`rect`,{x:`2`,y:`6`,width:`14`,height:`12`,rx:`2`,key:`158x01`}]]),cr=M(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),lr=M(`zoom-out`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),K=e(n(),1),q=e(t(),1),ur={AlignLeft:rr,Box:An,ChevronDown:ne,Code:Mn,Columns:Nn,File:Rn,Group:zn,Image:gt,Images:Bn,LayoutTemplate:Vn,List:pe,ListOrdered:de,Megaphone:Hn,Minus:Gn,MousePointerClick:Kn,Music:qn,Rows:Zn,Table:er,Type:ir,Video:sr},dr=$n,fr=new Set([`id`,`title`,`role`,`lang`,`dir`]),pr=/^[a-z][a-z0-9-]*$/;function mr(e){let t=e.toLowerCase();return!pr.test(t)||t.startsWith(`data-plumix-`)?!1:t.startsWith(`aria-`)||t.startsWith(`data-`)?!0:fr.has(t)}var hr=[`div`,`section`,`article`,`aside`,`header`,`footer`,`nav`,`main`,`figure`],gr=new Set(hr);function _r(e){return e!==void 0&&gr.has(e)?e:void 0}Object.freeze({entry:null,siteSettings:Object.freeze({}),theme:null,parent:null,depth:0,locale:`en`,shortcodes:null,editing:!1});function J(e){return Array.isArray(e)?e.every(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.name==`string`):!1}Object.freeze({});var vr=`0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-`,yr=12;function br(){let e=new Uint8Array(yr);globalThis.crypto.getRandomValues(e);let t=``;for(let n of e)t+=vr.charAt(n&63);return t}function xr(e){return e.map(e=>{let t={};for(let[n,r]of Object.entries(e.attrs??{}))t[n]=J(r)?xr(r):r;return{...e,id:br(),attrs:t}})}function Sr(e){return{version:`plumix.v2`,blocks:e}}function Cr(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.version===`plumix.v2`&&J(t.blocks)}function wr(e){let t=[];for(let n of e){let e=n.variations??[],r=e.filter(e=>(e.scope??[`inserter`]).includes(`inserter`)),i=e.some(e=>e.scope?.includes(`block`));for(let e of r)t.push({name:n.name,slug:e.slug,title:e.title,description:e.description,category:n.category,icon:e.icon,keywords:e.keywords,attrs:e.attrs,innerBlocks:e.innerBlocks,example:e.example});(e.length===0||i)&&t.push({name:n.name,slug:n.name,title:n.title??n.name,description:n.description,category:n.category,icon:n.icon,keywords:n.keywords})}return t}var Tr=`__plumix_template`,Er={title:{id:`editor.document.title`},slug:{id:`editor.document.slug`},excerpt:{id:`editor.document.excerpt`},parent:{id:`editor.document.parent`},noParent:{id:`editor.document.parent.none`},template:{id:`editor.document.template`},themeDefault:{id:`editor.document.template.default`}},Dr=`__none__`,Or=`__default__`;function kr({boxes:e,initialMeta:t,onMetaChange:n,fieldErrors:r}){let i=gn({defaultValues:{meta:t}});On(i,kn,r);let a=_n({control:i.control,name:`meta`}),o=(0,K.useRef)(n);return(0,K.useEffect)(()=>{o.current=n}),(0,K.useEffect)(()=>{o.current(a)},[a]),(0,q.jsx)(bn,{...i,children:e.map(e=>(0,q.jsx)(Ar,{box:e},e.id))})}function Ar({box:e}){let t=W(),n=Ct(e.fields,{name:`meta`});return(0,q.jsxs)(`section`,{className:`flex flex-col gap-3`,"data-testid":`entry-meta-box-${e.id}`,children:[(0,q.jsx)(`h3`,{className:`text-sm font-medium`,children:t(e.label)}),n.map(e=>(0,q.jsx)(St,{field:e,name:`meta.${e.key}`},e.key))]})}function jr({title:e,slug:t,onSlugChange:n,excerpt:r,parent:i,template:a,taxonomies:o,metaBoxes:s}){let c=W();return(0,q.jsxs)(`div`,{className:`flex flex-col gap-4 px-4 py-4`,"data-testid":`entry-document-panel`,children:[e?(0,q.jsxs)(B,{className:`gap-1.5`,children:[(0,q.jsx)(U,{htmlFor:`entry-title-input`,children:c(Er.title)}),(0,q.jsx)(G,{id:`entry-title-input`,type:`text`,value:e.value,onChange:t=>{e.onChange(t.target.value)},"data-testid":`plumix-editor-title-input`})]}):null,(0,q.jsxs)(B,{className:`gap-1.5`,children:[(0,q.jsx)(U,{htmlFor:`entry-slug-input`,children:c(Er.slug)}),(0,q.jsx)(G,{id:`entry-slug-input`,type:`text`,value:t,onChange:e=>{n(e.target.value)},"data-testid":`entry-slug-input`})]}),i?(0,q.jsxs)(B,{className:`gap-1.5`,children:[(0,q.jsx)(U,{htmlFor:`entry-parent-select`,children:c(Er.parent)}),(0,q.jsxs)(k,{value:i.value===null?Dr:String(i.value),onValueChange:e=>{i.onChange(e===Dr?null:Number(e))},children:[(0,q.jsx)(E,{id:`entry-parent-select`,className:`w-full`,"data-testid":`entry-parent-select`,children:(0,q.jsx)(T,{})}),(0,q.jsxs)(D,{children:[(0,q.jsx)(O,{value:Dr,children:c(Er.noParent)}),i.options.map(e=>(0,q.jsx)(O,{value:String(e.id),"data-testid":`entry-parent-select-option-${e.id}`,children:e.title},e.id))]})]})]}):null,a&&a.options.length>0?(0,q.jsxs)(B,{className:`gap-1.5`,children:[(0,q.jsx)(U,{htmlFor:`entry-template-select`,children:c(Er.template)}),(0,q.jsxs)(k,{value:a.value??Or,onValueChange:e=>{a.onChange(e===Or?null:e)},children:[(0,q.jsx)(E,{id:`entry-template-select`,className:`w-full`,"data-testid":`entry-template-select`,children:(0,q.jsx)(T,{})}),(0,q.jsxs)(D,{children:[(0,q.jsx)(O,{value:Or,"data-testid":`entry-template-select-option-default`,children:c(Er.themeDefault)}),a.options.map(e=>(0,q.jsx)(O,{value:e.id,"data-testid":`entry-template-select-option-${e.id}`,children:e.label},e.id))]})]})]}):null,o?.map(e=>(0,q.jsxs)(B,{className:`gap-1.5`,children:[(0,q.jsx)(U,{htmlFor:`entry-taxonomy-${e.name}`,children:e.label}),(0,q.jsx)(ie,{id:`entry-taxonomy-${e.name}`,options:e.options,value:e.value,onChange:e.onChange,testId:`entry-taxonomy-${e.name}`})]},e.name)),r?(0,q.jsxs)(B,{className:`gap-1.5`,children:[(0,q.jsx)(U,{htmlFor:`entry-excerpt-input`,children:c(Er.excerpt)}),(0,q.jsx)(Ge,{id:`entry-excerpt-input`,rows:3,value:r.value,onChange:e=>{r.onChange(e.target.value)},className:`min-h-20`,"data-testid":`entry-excerpt-input`})]}):null,s&&s.boxes.length>0?(0,q.jsx)(kr,{boxes:s.boxes,initialMeta:s.initialMeta,onMetaChange:s.onMetaChange,fieldErrors:s.fieldErrors}):null]})}var Mr=1e3;function Nr(e){return!(e instanceof y)||e.code!==`CONFLICT`?!1:e.data.reason===`stale_expected_updated_at`}async function Pr(e,t,n){if(!Nr(e))return null;try{return(await t.fetchQuery({...b.entry.get.queryOptions({input:{id:n}}),staleTime:0})).updatedAt}catch{return null}}async function Fr(e,t,n){return Nr(e)?{kind:`recovered`,updatedAt:await Pr(e,t,n)}:{kind:`failed`}}function Ir(e,t){let n,r,i=()=>{if(r===void 0)return Promise.resolve();let t=r;return r=void 0,n=void 0,Promise.resolve(e(...t))};return{call(...e){r=e,clearTimeout(n),n=setTimeout(()=>void i(),t)},flush(){return clearTimeout(n),i()},cancel(){clearTimeout(n),n=void 0,r=void 0}}}function Lr(e,t){return e===null?`none`:e.getTime()<t.getTime()?`stale`:`fresh`}function Rr(e){return JSON.stringify(e,(e,t)=>{if(t&&typeof t==`object`&&!Array.isArray(t)){let e=t;return Object.fromEntries(Object.keys(e).sort().map(t=>[t,e[t]]))}return t})}function zr(e,t){let n={};for(let r of Object.keys(t))Rr(t[r])!==Rr(e[r])&&(n[r]=t[r]);for(let r of Object.keys(e))r in t||(n[r]=null);return n}function Br(e){return{key:e.name,label:e.label??e.name,type:`json`,inputType:e.type,referenceTarget:{kind:e.type,scope:e.accept===void 0?void 0:{accept:e.accept}}}}var Vr=new WeakMap;function Hr(e){let t=ln(e);if(!t)return;let n=Vr.get(t);if(n)return n;let r=({field:e,rhf:n,disabled:r,testId:i,attrs:a})=>(0,q.jsx)(t,{field:Br(e),rhf:n,disabled:r,testId:i,attrs:a});return Vr.set(t,r),r}var Ur={restoring:{id:`editor.revisions.preview.restoring`},restore:{id:`editor.revisions.preview.restore`}};function Wr({revisionUpdatedAt:e,revisionAuthor:t,relativeTime:n,onBackToLive:r,onRestore:i,isRestoring:a,restoreError:o=null}){let s=W();return(0,q.jsxs)(`div`,{"data-testid":`revision-preview-banner`,role:`status`,className:`flex shrink-0 flex-wrap items-center gap-3 border-b border-amber-200 bg-amber-50 px-4 py-2 text-sm text-amber-900 dark:bg-amber-950/40 dark:text-amber-100`,children:[(0,q.jsx)(`span`,{className:`font-medium`,children:(0,q.jsx)(v,{id:`editor.revisions.preview.title`,message:`Previewing revision`})}),(0,q.jsx)(`span`,{children:(0,q.jsx)(v,{id:`editor.revisions.preview.subtitle`,message:`from {when} by {author}`,values:{when:n(e),author:(0,q.jsx)(`bdi`,{children:t})},comment:`when: pre-formatted relative-time like '2 hours ago'; author: the user's display name or email`})}),(0,q.jsxs)(`div`,{className:`ms-auto flex gap-2`,children:[(0,q.jsx)(j,{variant:`outline`,size:`sm`,"data-testid":`revision-preview-back-to-live`,onClick:r,children:(0,q.jsx)(v,{id:`editor.revisions.preview.backToLive`,message:`← Back to live`})}),(0,q.jsx)(j,{variant:`default`,size:`sm`,"data-testid":`revision-preview-restore`,onClick:i,disabled:a,children:s(a?Ur.restoring:Ur.restore)})]}),o===null?null:(0,q.jsx)(`div`,{"data-testid":`revision-preview-restore-error`,role:`alert`,className:`text-destructive basis-full text-xs`,children:o})]})}function Gr(){let e=Promise.resolve();return{run(t){let n=e.then(t);return e=n.then(()=>void 0,()=>void 0),n}}}function Kr(e,t){let n={...t};for(let t of e)for(let e of t.fields)n[e.key]===void 0&&e.default!==void 0&&(n[e.key]=e.default);return n}var qr={yourDraft:{id:`editor.staleDraft.yourDraft`},liveNow:{id:`editor.staleDraft.liveNow`}};function Jr({open:e,autosaveSnapshot:t,liveSnapshot:n,onUseMine:r,onUseTheirs:i,isResolving:a}){let[o,s]=(0,K.useState)(!1),c=W();return(0,q.jsx)(Fe,{open:e,children:(0,q.jsxs)(L,{className:`max-w-4xl`,showCloseButton:!1,"data-testid":`stale-draft-dialog`,onEscapeKeyDown:e=>e.preventDefault(),onPointerDownOutside:e=>e.preventDefault(),children:[(0,q.jsxs)(Ue,{children:[(0,q.jsx)(je,{children:(0,q.jsx)(v,{id:`editor.staleDraft.title`,message:`Your draft is out of date`})}),(0,q.jsx)(Ae,{children:(0,q.jsx)(v,{id:`editor.staleDraft.description`,message:`Someone else published changes to this entry while you had pending edits. Pick which version to keep before continuing.`})})]}),o?(0,q.jsxs)(`div`,{"data-testid":`stale-draft-compare-panes`,"aria-live":`polite`,className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:[(0,q.jsx)(Yr,{label:c(qr.yourDraft),snapshot:t}),(0,q.jsx)(Yr,{label:c(qr.liveNow),snapshot:n})]}):null,(0,q.jsxs)(Ve,{className:`sm:justify-between`,children:[(0,q.jsx)(j,{variant:`ghost`,size:`sm`,"data-testid":`stale-draft-compare`,onClick:()=>s(e=>!e),children:o?(0,q.jsx)(v,{id:`editor.staleDraft.hideComparison`,message:`Hide comparison`}):(0,q.jsx)(v,{id:`editor.staleDraft.compare`,message:`Compare`})}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsx)(j,{variant:`outline`,size:`sm`,"data-testid":`stale-draft-use-theirs`,onClick:i,disabled:a,children:a?(0,q.jsx)(v,{id:`editor.staleDraft.discarding`,message:`Discarding…`}):(0,q.jsx)(v,{id:`editor.staleDraft.useTheirs`,message:`Use theirs`})}),(0,q.jsx)(j,{variant:`default`,size:`sm`,"data-testid":`stale-draft-use-mine`,onClick:r,disabled:a,children:(0,q.jsx)(v,{id:`editor.staleDraft.useMine`,message:`Use mine`})})]})]})]})})}function Yr({label:e,snapshot:t}){return(0,q.jsxs)(`section`,{children:[(0,q.jsx)(`div`,{className:`text-muted-foreground mb-1 text-xs font-medium`,children:e}),(0,q.jsx)(`pre`,{className:`bg-muted max-h-72 overflow-auto rounded-md p-2 text-xs`,children:JSON.stringify(t,null,2)})]})}function Xr(e,t){return{channel:e,message:t}}function Zr({role:e,post:t}){let n=!1,r=()=>void 0,i=new Promise(e=>{r=e}),a=()=>{n||(n=!0,r())};return e===`initiator`&&t({kind:`hello`}),{onMessage(n){e===`initiator`&&n.kind===`ack`&&a(),e===`responder`&&n.kind===`hello`&&(t({kind:`ack`}),a())},retry(){!n&&e===`initiator`&&t({kind:`hello`})},isReady:()=>n,whenReady:()=>i}}function Qr(e){return`kind`in e&&typeof e.kind==`string`}function $r(e,t,n,r){if(n!==r||typeof t!=`object`||!t)return null;let i=t;return i.channel!==e||i.message===void 0?null:i.message}var ei=`plumix.editor`,ti=250;function ni({store:e,frameWindow:t,origin:n,onGeometry:r,onWheel:i,onKey:a,onRequestAdd:o,onClipboard:s,config:c}){let l=e=>{t.postMessage(Xr(ei,e),n)},u=Zr({role:`initiator`,post:l}),d=()=>{l({type:`host:tree`,tree:e.getState().tree})},f=()=>{c&&l({type:`host:config`,addBlockLabel:c.addBlockLabel})},p=()=>{l({type:`host:xray`,enabled:e.getState().xray})},m=t=>{let c=$r(ei,t.data,t.origin,n);if(!c)return;if(Qr(c)){u.onMessage(c);return}let l=c;switch(l.type){case`canvas:ready`:f(),p(),d();break;case`canvas:select`:e.getState().select(l.id,{additive:l.additive});break;case`canvas:hover`:e.getState().setHover(l.id);break;case`canvas:geometry`:r?.(l.rects,l.slots??[]);break;case`canvas:wheel`:i?.({deltaX:l.deltaX,deltaY:l.deltaY,zoomIntent:l.zoomIntent,clientX:l.clientX,clientY:l.clientY});break;case`canvas:key`:a?.({down:l.down,code:l.code,shiftKey:l.shiftKey});break;case`canvas:requestAdd`:o?.({parentId:l.parentId,slotKey:l.slotKey});break;case`canvas:clipboard`:s?.(l.op);break}};window.addEventListener(`message`,m);let h=e.getState().tree,g=e.getState().xray,_=e.subscribe(e=>{e.tree!==h&&(h=e.tree,d()),e.xray!==g&&(g=e.xray,p())}),v=setInterval(()=>u.retry(),ti),y=u.whenReady();return y.then(()=>clearInterval(v)),{whenReady:y,pushLoaderData:e=>l({type:`host:loader-data`,data:e}),dispose:()=>{clearInterval(v),window.removeEventListener(`message`,m),_()}}}function Y(e,t){for(let n of e){if(n.id===t)return n;for(let e of Object.values(n.attrs??{})){if(!J(e))continue;let n=Y(e,t);if(n)return n}}}function X(e,t,n=null){for(let r of e){if(r.id===t)return n;for(let e of Object.values(r.attrs??{})){if(!J(e))continue;let n=X(e,t,r.id);if(n!==null)return n}}return null}function ri(e){let t=[],n=(e,r,i)=>{for(let a of e){let e=Pi(a);t.push({id:a.id,name:a.name,label:a.label,depth:r,parentId:i,hasSlot:e!==null});let o=e===null?void 0:a.attrs?.[e];J(o)&&n(o,r+1,a.id)}};return n(e,0,null),t}function ii(e,t,n){let r=e.slice(),[i]=r.splice(t,1);return i&&r.splice(n,0,i),r}function ai(e,t,n,r,i){let a=e.findIndex(e=>e.id===t),o=e.findIndex(e=>e.id===n);if(a===-1||o===-1)return null;let s=e[a];if(!s)return null;let c=ii(e,a,o),l=c[o-1],u=c[o+1],d=s.depth+Math.round(r/i),f=l?l.hasSlot?l.depth+1:l.depth:0,p=u?u.depth:0,m=oi(c,o,Math.max(p,Math.min(d,f)),l);return{parentId:m,index:c.slice(0,o).filter(e=>e.id!==t&&e.parentId===m).length}}function oi(e,t,n,r){return n===0||!r?null:n===r.depth?r.parentId:n>r.depth?r.id:e.slice(0,t).reverse().find(e=>e.depth===n)?.parentId??null}function si(e,t,n,r){if(n.parentId===t)return e;let i=Y(e,t);return!i||r&&!r.includes(i.name)||!ci(e,n)||n.parentId!==null&&Ii(i,n.parentId)?e:zi(Li(e,t),i,n)}function ci(e,t){if(t.parentId===null)return!0;let n=Y(e,t.parentId);if(!n)return!1;let r=t.slotKey??Pi(n);if(r===null)return!1;let i=n.attrs?.[r];return i===void 0||J(i)}function li(e,t,n,r){return r&&!r.includes(t.name)||!ci(e,n)?e:zi(e,t,n)}function ui(e,t){if(t.size===0)return e;let n=e.filter(e=>!t.has(e.id)),r=n.length!==e.length,i=n.map(e=>{let n=e.attrs;if(!n)return e;let i;for(let[e,r]of Object.entries(n)){if(!J(r))continue;let a=ui(r,t);a!==r&&((i??={...n})[e]=a)}return i?(r=!0,{...e,attrs:i}):e});return r?i:e}function di(e,t){let n=Y(e,t);if(!n)return{tree:e,newId:null};let[r]=xr([n]);if(!r)return{tree:e,newId:null};let i=X(e,t);return{tree:zi(e,r,{parentId:i,index:Ni(e,i).findIndex(e=>e.id===t)+1}),newId:r.id}}function fi(e){let t=Fi(e),n=t.length===1?t[0]:void 0;if(n===void 0)return null;let r=e.attrs?.[n];return J(r)&&r.length>0?r:null}function pi(e,t){let n=Y(e,t);return n?fi(n)!==null:!1}function mi(e,t){let n=Y(e,t);if(!n)return null;let r=fi(n);if(!r)return null;let i=X(e,t),a=Ni(e,i).findIndex(e=>e.id===t),o=ui(e,new Set([t]));return r.forEach((e,t)=>{o=zi(o,e,{parentId:i,index:a+t})}),{tree:o,childIds:r.map(e=>e.id)}}function hi(e,t,n){let r=new Set(vi(e,t));if(r.size===0)return null;let i=X(e,[...r][0]??``),a=Ni(e,i);if([...r].some(t=>X(e,t)!==i))return null;let o=a.filter(e=>r.has(e.id));if(o.length===0)return null;let s={id:n,name:`core/group`,attrs:{content:o}},c=a.findIndex(e=>r.has(e.id));return{tree:zi(ui(e,r),s,{parentId:i,index:c}),groupId:n}}function gi(e,t){let n=new Set(vi(e,t)),r=[],i=e=>{for(let t of e){if(n.has(t.id)){r.push(t);continue}for(let e of Fi(t)){let n=t.attrs?.[e];J(n)&&i(n)}}};return i(e),r}function _i(e,t,n){let r=xr(t);if(r.length===0)return{tree:e,newIds:[]};let i=n?X(e,n):null,a=Ni(e,i),o=n?a.findIndex(e=>e.id===n):-1,s=o>=0?o+1:a.length,c=e,l=[];return r.forEach((e,t)=>{c=zi(c,e,{parentId:i,index:s+t}),l.push(e.id)}),{tree:c,newIds:l}}function vi(e,t){return[...t].filter(n=>{let r=X(e,n);for(;r!==null;){if(t.has(r))return!1;r=X(e,r)}return!0})}function yi(e,t,n){let r=X(e,t),i=Ni(e,r),a=i.findIndex(e=>e.id===t);if(a===-1)return e;let o=a+n;return o<0||o>=i.length?e:si(e,t,{parentId:r,index:o})}var bi=`core/table`,xi=`core/table-header-row`,Si=`core/table-header-cell`,Ci=`core/table-body-row`,wi=`core/table-cell`;function Ti(e){let t=e.attrs?.cells;return J(t)?t:[]}function Ei(e,t){let n=t;for(;n;){if(Y(e,n)?.name===bi)return n;n=X(e,n)}return null}function Di(e){return e.reduce((e,t)=>Math.max(e,Ti(t).length),0)}function Oi(e,t){let n=Y(e,t);if(n?.name!==bi)return e;let r=n.attrs?.rows;return!J(r)||r.length===0?e:Mi(e,t,r.map(e=>{let t=e.name===xi?Si:wi,n={id:br(),name:t};return{...e,attrs:{...e.attrs,cells:[...Ti(e),n]}}}))}function ki(e,t){let n=Y(e,t);if(n?.name!==bi)return e;let r=n.attrs?.rows,i=J(r)?r:[],a=Array.from({length:Math.max(Di(i),1)},()=>({id:br(),name:wi})),o={id:br(),name:Ci,attrs:{cells:a}};return Mi(e,t,[...i,o])}function Ai(e,t){let n=Y(e,t);if(n?.name!==bi)return e;let r=n.attrs?.rows;return!J(r)||Di(r)<=1?e:Mi(e,t,r.map(e=>{let t=Ti(e);return t.length>0?{...e,attrs:{...e.attrs,cells:t.slice(0,-1)}}:e}))}function ji(e,t){let n=Y(e,t);if(n?.name!==bi)return e;let r=n.attrs?.rows,i=J(r)?r:[];return i.length<=1?e:Mi(e,t,i.slice(0,-1))}function Mi(e,t,n){return e.map(e=>{if(e.id===t)return{...e,attrs:{...e.attrs,rows:n}};let r=e.attrs;if(!r)return e;let i;for(let[e,a]of Object.entries(r)){if(!J(a))continue;let o=Mi(a,t,n);o!==a&&((i??={...r})[e]=o)}return i?{...e,attrs:i}:e})}function Ni(e,t){if(t===null)return e;let n=Y(e,t);if(!n)return[];let r=Pi(n),i=r===null?void 0:n.attrs?.[r];return J(i)?i:[]}function Pi(e){for(let[t,n]of Object.entries(e.attrs??{}))if(J(n))return t;return null}function Fi(e){let t=[];for(let[n,r]of Object.entries(e.attrs??{}))J(r)&&t.push(n);return t}function Ii(e,t){if(e.id===t)return!0;for(let n of Object.values(e.attrs??{}))if(J(n)&&n.some(e=>Ii(e,t)))return!0;return!1}function Li(e,t){return ui(e,new Set([t]))}function Ri(e,t){return Math.max(0,Math.min(e,t))}function zi(e,t,n){if(n.parentId===null){let r=Ri(n.index,e.length);return[...e.slice(0,r),t,...e.slice(r)]}return e.map(e=>{if(e.id===n.parentId){let r=n.slotKey??Pi(e);if(r===null)return e;let i=e.attrs?.[r];if(i!==void 0&&!J(i))return e;let a=J(i)?i:[],o=Ri(n.index,a.length);return{...e,attrs:{...e.attrs,[r]:[...a.slice(0,o),t,...a.slice(o)]}}}let r=e.attrs;if(!r)return e;let i;for(let[e,a]of Object.entries(r)){if(!J(a))continue;let o=zi(a,t,n);o!==a&&((i??={...r})[e]=o)}return i?{...e,attrs:i}:e})}function Bi(e){return JSON.stringify({kind:`plumix/blocks`,version:1,blocks:e})}function Vi(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t||t.kind!==`plumix/blocks`)return null;let n=t.blocks;return J(n)?n:null}function Hi(e){return t=>!e.get(t.name)?.requiresParent}var Ui={c:`copy`,x:`cut`,v:`paste`};function Wi(e){if(!(e.metaKey||e.ctrlKey))return null;let t=Ui[e.key.toLowerCase()];if(!t)return null;let n=e.target;return n?.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(n?.tagName??``)||t!==`paste`&&!(window.getSelection()?.isCollapsed??!0)?null:t}function Gi(e,t=navigator.clipboard,n){let r=async()=>{let{tree:n,selectedIds:r}=e.getState(),i=gi(n,r);return i.length===0?!1:(await t.writeText(Bi(i)),!0)},i=async()=>{await r()&&e.getState().removeSelected()},a=async()=>{let r=Vi(await t.readText());if(!r)return;let i=n?r.filter(n):r;i.length>0&&e.getState().pasteBlocks(i)};return{copy:()=>r().then(()=>void 0),cut:i,paste:a,run:e=>{switch(e){case`copy`:return r().then(()=>void 0);case`cut`:return i();case`paste`:return a()}}}}function Ki({className:e,children:t,...n}){return(0,q.jsxs)(a,{"data-slot":`scroll-area`,className:A(`relative`,e),...n,children:[(0,q.jsx)(o,{"data-slot":`scroll-area-viewport`,className:`focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1`,children:t}),(0,q.jsx)(qi,{}),(0,q.jsx)(m,{})]})}function qi({className:e,orientation:t=`vertical`,...n}){return(0,q.jsx)(c,{"data-slot":`scroll-area-scrollbar`,orientation:t,className:A(`flex touch-none p-px transition-colors select-none`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent`,e),...n,children:(0,q.jsx)(g,{"data-slot":`scroll-area-thumb`,className:`bg-border relative flex-1 rounded-full`})})}var Ji=`core/pattern-ref`,Yi=`content`;function Xi(e,t,n){return e.get(t)?.inputs?.find(e=>e.type===`slot`&&e.name===n)?.allowedBlocks}var Zi=`uncategorized`;function Qi(e,{capabilities:t,query:n,allowed:r,parentName:i}){let a=n?.trim().toLowerCase()??``,o=[...e].filter(e=>e.inserter!==!1&&(!e.capability||t.has(e.capability))&&(!r||r.includes(e.name))&&(!e.requiresParent||i!==void 0&&e.requiresParent.includes(i))),s=new Map;for(let e of wr(o)){if(a&&!ra(e,a))continue;let t=e.category??Zi,n=s.get(t);n||s.set(t,n=[]),n.push(e)}return[...s].map(([e,t])=>({category:e,entries:t}))}function $i(e,t){let n=t?.trim().toLowerCase()??``;return n?e.filter(e=>e.name.toLowerCase().includes(n)||Mt(e.title).toLowerCase().includes(n)||(e.keywords??[]).some(e=>Mt(e).toLowerCase().includes(n))):e}function ea(e,t){let n=e.get(t.name),r={...n?.defaults,...t.attrs};t.innerBlocks&&(r[Yi]=t.innerBlocks);for(let e of n?.inputs??[])e.type===`slot`&&e.defaultChildren&&r[e.name]===void 0&&(r[e.name]=e.defaultChildren);for(let t of Object.keys(r)){let n=r[t];J(n)&&(r[t]=n.map(t=>ta(t,e)))}let i={id:`seed`,name:t.name,attrs:r,...n?.defaultStyles?{style:n.defaultStyles}:{}},[a=i]=xr([i]);return a}function ta(e,t){let n=t.get(e.name),r={...n?.defaults,...e.attrs},i={};for(let[e,n]of Object.entries(r))i[e]=J(n)?n.map(e=>ta(e,t)):n;let a=e.style??n?.defaultStyles;return{...e,attrs:Object.keys(i).length>0?i:void 0,...a?{style:a}:{}}}function na(e){return e.insert===`reference`?xr([{id:`seed`,name:Ji,attrs:{slug:e.name}}]):xr(e.content)}function ra(e,t){return e.name.toLowerCase().includes(t)||Mt(e.title).toLowerCase().includes(t)?!0:(e.keywords??[]).some(e=>Mt(e).toLowerCase().includes(t))}var ia=ur;function aa({name:e,className:t}){return(0,q.jsx)((e?ia[e]:void 0)??dr,{className:t})}var oa=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},sa=(e=>e?oa(e):oa),ca=e=>e;function la(e,t=ca){let n=K.useSyncExternalStore(e.subscribe,K.useCallback(()=>t(e.getState()),[e,t]),K.useCallback(()=>t(e.getInitialState()),[e,t]));return K.useDebugValue(n),n}var ua=class e extends Error{static{e.prototype.name=`EditorError`}constructor(e){super(e)}static missingProvider(){return new e(`useEditorStore must be used within <EditorProvider/>.`)}},da=.25,fa=64,pa=32,ma=.85,ha=e=>Math.min(2,Math.max(da,e));function ga(e,t,n){return Math.min(n-fa,Math.max(fa-t,e))}function _a(e,t,n,r,i,a){return{panX:ga(e,n,i),panY:ga(t,r,a)}}function va(e,t,n,r){let i=ha(Math.min(1,n/e)),a=t*i;return{zoom:i,panX:Math.round((n-e*i)/2),panY:Math.round(a<r?(r-a)/2:pa)}}function ya(e,t,n,r){let i=ha(t),a=(n-e.panX)/e.zoom,o=(r-e.panY)/e.zoom;return{zoom:i,panX:n-a*i,panY:r-o*i}}function ba(e,t,n){let r=ha(Math.min(t*ma/e.width,n*ma/e.height));return{zoom:r,panX:t/2-(e.x+e.width/2)*r,panY:n/2-(e.y+e.height/2)*r}}function xa(e){return{past:[],present:e,presentKey:null,future:[]}}function Z(e,t,n){return n!==null&&n===e.presentKey?{...e,present:t,future:[]}:{past:[...e.past,{value:e.present,coalesceKey:e.presentKey}].slice(-100),present:t,presentKey:n,future:[]}}function Sa(e){let t=e.past.at(-1);return t?{past:e.past.slice(0,-1),present:t.value,presentKey:t.coalesceKey,future:[{value:e.present,coalesceKey:e.presentKey},...e.future]}:e}function Ca(e){let[t,...n]=e.future;return t?{past:[...e.past,{value:e.present,coalesceKey:e.presentKey}],present:t.value,presentKey:t.coalesceKey,future:n}:e}function wa(e){return e.past.length>0}function Ta(e){return e.future.length>0}function Ea(e){return e===`tablet`?`medium`:e===`mobile`?`small`:`large`}var Da=1280;function Oa(e,t){return e===`tablet`?t.tablet:e===`mobile`?t.mobile:Da}function ka(e,t,n){let r=e.map(e=>Aa(e,t,n));return r.some((t,n)=>t!==e[n])?r:e}function Aa(e,t,n){if(e.id===t)return n(e);let r=e.attrs;if(!r)return e;let i;for(let[e,a]of Object.entries(r)){if(!J(a))continue;let o=ka(a,t,n);o!==a&&((i??={...r})[e]=o)}return i?{...e,attrs:i}:e}function ja(e,t,n,r){let i=e.style??{},a=i[t]??{},o;if(r===null){if(!(n in a))return e;let{[n]:t,...r}=a;o=r}else o={...a,[n]:r};let s={...i};Object.keys(o).length===0?delete s[t]:s[t]=o;let c=Object.keys(s).length===0?void 0:s;return{...e,style:c}}function Ma(e,t,n){let r=e.hidden??{};if(!!r[t]===n)return e;let i={...r};n?i[t]=!0:delete i[t];let a=Object.keys(i).length===0?void 0:i;return{...e,hidden:a}}function Na(e,t,n,r){let i=e.style??{},a=i[t]??{};if(!(n in a)||r in a)return e;let o={};for(let[e,t]of Object.entries(a))o[e===n?r:e]=t;let s={...i};return s[t]=o,{...e,style:s}}function Pa(e,t,n){let r=e.htmlAttrs??{},i;if(n===null){if(!(t in r))return e;let{[t]:n,...a}=r;i=a}else i={...r,[t]:n};let a=Object.keys(i).length===0?void 0:i;return{...e,htmlAttrs:a}}function Fa(e,t,n){let r=e.htmlAttrs??{};if(!(t in r)||n in r)return e;let i={};for(let[e,a]of Object.entries(r))i[e===t?n:e]=a;return{...e,htmlAttrs:i}}function Ia(e){return sa(t=>({tree:e?.tree??[],selectedIds:new Set,activeId:null,hoverId:null,device:e?.device??`desktop`,xray:!1,zoom:e?.zoom??1,panX:0,panY:0,viewportW:0,viewportH:0,breakpoints:e?.breakpoints??jt,zoomFit:!0,dragSpec:null,movingId:null,history:xa(e?.tree??[]),rightPanel:`block`,jsonOpen:!1,setTree:e=>t({tree:e}),insertBlock:(e,n)=>t(t=>{let r=Math.max(0,Math.min(n,t.tree.length)),i=[...t.tree.slice(0,r),e,...t.tree.slice(r)];return{tree:i,activeId:e.id,selectedIds:new Set([e.id]),history:Z(t.history,i,null)}}),insertBlocks:(e,n)=>t(t=>{let r=e[0];if(!r)return{};let i=Math.max(0,Math.min(n,t.tree.length)),a=[...t.tree.slice(0,i),...e,...t.tree.slice(i)];return{tree:a,activeId:r.id,selectedIds:new Set([r.id]),history:Z(t.history,a,null)}}),insertBlockInto:(e,n,r)=>t(t=>{let i=li(t.tree,e,n,r);return i===t.tree?{}:{tree:i,activeId:e.id,selectedIds:new Set([e.id]),history:Z(t.history,i,null)}}),moveBlock:(e,n,r)=>t(t=>{let i=si(t.tree,e,n,r);return i===t.tree?{}:{tree:i,history:Z(t.history,i,null)}}),addTableColumn:e=>t(t=>{let n=Oi(t.tree,e);return n===t.tree?{}:{tree:n,history:Z(t.history,n,null)}}),addTableRow:e=>t(t=>{let n=ki(t.tree,e);return n===t.tree?{}:{tree:n,history:Z(t.history,n,null)}}),removeTableColumn:e=>t(t=>{let n=Ai(t.tree,e);return n===t.tree?{}:{tree:n,history:Z(t.history,n,null)}}),removeTableRow:e=>t(t=>{let n=ji(t.tree,e);return n===t.tree?{}:{tree:n,history:Z(t.history,n,null)}}),updateBlockAttrs:(e,n)=>t(t=>{let r=ka(t.tree,e,e=>({...e,attrs:{...e.attrs,...n}}));if(r===t.tree)return{};let i=`attr:${e}:${Object.keys(n).sort().join(`,`)}`;return{tree:r,history:Z(t.history,r,i)}}),setBlockLabel:(e,n)=>t(t=>{let r=n.trim()||void 0,i=ka(t.tree,e,e=>({...e,label:r}));return i===t.tree?{}:{tree:i,history:Z(t.history,i,`label:${e}`)}}),updateBlockStyle:(e,n,r,i)=>t(t=>{let a=ka(t.tree,e,e=>ja(e,n,r,i));if(a===t.tree)return{};let o=`style:${e}:${n}:${r}`;return{tree:a,history:Z(t.history,a,o)}}),updateBlockHidden:(e,n,r)=>t(t=>{let i=ka(t.tree,e,e=>Ma(e,n,r));if(i===t.tree)return{};let a=`hidden:${e}:${n}`;return{tree:i,history:Z(t.history,i,a)}}),renameBlockStyleProperty:(e,n,r,i)=>t(t=>{let a=ka(t.tree,e,e=>Na(e,n,r,i));return a===t.tree?{}:{tree:a,history:Z(t.history,a,null)}}),setBlockTagName:(e,n)=>t(t=>{let r=n.trim()||void 0,i=ka(t.tree,e,e=>({...e,tagName:r}));return i===t.tree?{}:{tree:i,history:Z(t.history,i,null)}}),setBlockClassName:(e,n)=>t(t=>{let r=n.trim()||void 0,i=ka(t.tree,e,e=>({...e,className:r}));return i===t.tree?{}:{tree:i,history:Z(t.history,i,`class:${e}`)}}),updateBlockHtmlAttr:(e,n,r)=>t(t=>{let i=ka(t.tree,e,e=>Pa(e,n,r));if(i===t.tree)return{};let a=`htmlattr:${e}:${n}`;return{tree:i,history:Z(t.history,i,a)}}),renameBlockHtmlAttr:(e,n,r)=>t(t=>{let i=ka(t.tree,e,e=>Fa(e,n,r));return i===t.tree?{}:{tree:i,history:Z(t.history,i,null)}}),select:(e,n)=>t(t=>{if(!n?.additive)return{selectedIds:new Set([e]),activeId:e};let r=new Set(t.selectedIds);return r.delete(e)?{selectedIds:r,activeId:t.activeId===e?[...r].at(-1)??null:t.activeId}:(r.add(e),{selectedIds:r,activeId:e})}),clearSelection:()=>t({selectedIds:new Set,activeId:null}),removeSelected:()=>t(e=>{let t=ui(e.tree,e.selectedIds);return t===e.tree?{}:{tree:t,selectedIds:new Set,activeId:null,history:Z(e.history,t,null)}}),duplicateSelected:()=>t(e=>{let t=e.tree,n=[];for(let r of vi(t,e.selectedIds)){let e=di(t,r);t=e.tree,e.newId&&n.push(e.newId)}return t===e.tree?{}:{tree:t,selectedIds:new Set(n),activeId:n.at(-1)??null,history:Z(e.history,t,null)}}),pasteBlocks:e=>t(t=>{let n=t.activeId;for(;n!==null;){let e=X(t.tree,n);if(e===null)break;n=e}let{tree:r,newIds:i}=_i(t.tree,e,n);return r===t.tree?{}:{tree:r,selectedIds:new Set(i),activeId:i.at(-1)??null,history:Z(t.history,r,null)}}),groupSelected:()=>t(e=>{let t=hi(e.tree,e.selectedIds,br());return t?{tree:t.tree,selectedIds:new Set([t.groupId]),activeId:t.groupId,history:Z(e.history,t.tree,null)}:{}}),ungroupSelected:()=>t(e=>{if(e.activeId===null)return{};let t=mi(e.tree,e.activeId);return t?{tree:t.tree,selectedIds:new Set(t.childIds),activeId:t.childIds.at(-1)??null,history:Z(e.history,t.tree,null)}:{}}),selectParent:()=>t(e=>{if(!e.activeId)return{};let t=X(e.tree,e.activeId);return t?{selectedIds:new Set([t]),activeId:t}:{}}),moveSelectedBy:e=>t(t=>{if(!t.activeId)return{};let n=yi(t.tree,t.activeId,e);return n===t.tree?{}:{tree:n,history:Z(t.history,n,null)}}),setHover:e=>t({hoverId:e}),setDevice:e=>t({device:e,zoomFit:!0}),toggleXray:()=>t(e=>({xray:!e.xray})),setRightPanel:e=>t({rightPanel:e}),setJsonOpen:e=>t({jsonOpen:e}),enableZoomFit:()=>t({zoomFit:!0}),setPan:(e,n)=>t({panX:e,panY:n,zoomFit:!1}),setView:({zoom:e,panX:n,panY:r})=>t({zoom:ha(e),panX:n,panY:r,zoomFit:!1}),applyFitView:({zoom:e,panX:n,panY:r})=>t({zoom:ha(e),panX:n,panY:r}),setViewport:(e,n)=>t(t=>t.viewportW===e&&t.viewportH===n?{}:{viewportW:e,viewportH:n}),zoomToCenter:e=>t(t=>{let n=ha(e);return n===t.zoom?{}:t.viewportW===0?{zoom:n,zoomFit:!1}:{...ya({zoom:t.zoom,panX:t.panX,panY:t.panY},n,t.viewportW/2,t.viewportH/2),zoomFit:!1}}),startBlockDrag:e=>t({dragSpec:e}),endBlockDrag:()=>t({dragSpec:null}),startMove:e=>t({movingId:e}),endMove:()=>t({movingId:null}),undo:()=>t(e=>{let t=Sa(e.history);return{history:t,tree:t.present}}),redo:()=>t(e=>{let t=Ca(e.history);return{history:t,tree:t.present}})}))}var La=(0,K.createContext)(null),Ra=(0,K.createContext)(null);function za({initialTree:e,device:t,zoom:n,breakpoints:r,children:i}){let[a]=(0,K.useState)(()=>Ia({tree:e,device:t,zoom:n,breakpoints:r})),o=(0,K.useRef)(null);return(0,q.jsx)(La.Provider,{value:a,children:(0,q.jsx)(Ra.Provider,{value:o,children:i})})}function Ba(){return(0,K.useContext)(Ra)}function Q(e){let t=(0,K.useContext)(La);if(!t)throw ua.missingProvider();return la(t,e)}function Va(){let e=(0,K.useContext)(La);if(!e)throw ua.missingProvider();return e}function Ha({registry:e,capabilities:t,patterns:n,onInsert:r,allowed:i,target:a,parentName:o}){let{i18n:s}=_(),[c,l]=(0,K.useState)(``),u=Q(e=>e.insertBlock),d=Q(e=>e.insertBlockInto),f=Q(e=>e.insertBlocks),p=Q(e=>e.startBlockDrag),m=Q(e=>e.tree.length),h=(0,K.useMemo)(()=>Qi(e,{capabilities:t,query:c,allowed:i,parentName:o}),[e,t,c,i,o]),g=(0,K.useMemo)(()=>$i(n??[],c),[n,c]),v=e=>{a?d(e,{...a,index:2**53-1},i):u(e,m),r?.()},y=e=>{f(e,m),r?.()},b=h.length===0&&g.length===0,x=s._({id:`editor.catalog.searchLabel`,message:`Search blocks`});return(0,q.jsxs)(`div`,{className:`flex flex-col gap-3 p-2`,"data-testid":`block-catalog`,children:[(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(ke,{className:`text-muted-foreground absolute start-2.5 top-1/2 size-4 -translate-y-1/2`}),(0,q.jsx)(G,{type:`search`,name:`block-catalog-search`,value:c,onChange:e=>l(e.target.value),"aria-label":x,placeholder:x,className:`h-9 ps-8`,"data-testid":`block-catalog-search`})]}),b?(0,q.jsx)(`p`,{className:`text-muted-foreground px-1 py-4 text-sm`,"data-testid":`block-catalog-empty`,children:s._({id:`editor.catalog.noResults`,message:`No blocks match your search.`})}):null,h.map(t=>(0,q.jsx)(Ua,{heading:t.category,testId:`block-catalog-group-${t.category}`,children:t.entries.map(t=>(0,q.jsx)(Wa,{testId:`block-catalog-item-${Ga(t)}`,icon:t.icon,label:Nt(t.title,s),onPointerDown:()=>p(t),onClick:()=>v(ea(e,t))},Ga(t)))},t.category)),g.length>0?(0,q.jsx)(Ua,{heading:s._({id:`editor.catalog.patterns`,message:`Patterns`}),testId:`block-catalog-patterns`,children:g.map(e=>(0,q.jsx)(Wa,{testId:`block-catalog-pattern-${e.name}`,label:Nt(e.title,s),onClick:()=>y(na(e))},e.name))}):null]})}function Ua({heading:e,testId:t,children:n}){return(0,q.jsxs)(`div`,{"data-testid":t,children:[(0,q.jsx)(`p`,{className:`text-muted-foreground mb-1.5 px-1 text-xs font-medium capitalize`,children:e}),(0,q.jsx)(`div`,{className:`grid grid-cols-3 gap-2`,children:n})]})}function Wa({testId:e,icon:t,label:n,onClick:r,onPointerDown:i}){return(0,q.jsxs)(`button`,{type:`button`,"data-testid":e,onClick:r,onPointerDown:i,title:n,className:`border-border hover:bg-accent hover:border-accent-foreground/20 flex aspect-square flex-col items-center justify-center gap-1.5 rounded-md border p-2 text-center`,children:[(0,q.jsx)(aa,{name:t,className:`text-muted-foreground size-5`}),(0,q.jsx)(`span`,{className:`text-foreground w-full truncate text-[11px] leading-tight`,children:n})]})}function Ga(e){return e.slug===e.name?e.slug:`${e.name}/${e.slug}`}var Ka=[.5,.75,1,1.25,1.5,2],qa=[{value:`desktop`,Icon:_t},{value:`tablet`,Icon:vt},{value:`mobile`,Icon:yt}];function Ja(e,t){switch(t){case`tablet`:return e._({id:`editor.toolbar.device.tablet`,message:`Tablet`});case`mobile`:return e._({id:`editor.toolbar.device.mobile`,message:`Mobile`});default:return e._({id:`editor.toolbar.device.desktop`,message:`Desktop`})}}function Ya(){return(0,q.jsxs)(`header`,{className:`bg-background flex items-center gap-2 border-b px-3 py-2`,"data-testid":`plumix-editor-toolbar`,children:[(0,q.jsxs)(`div`,{className:`flex flex-1 items-center gap-1`,children:[(0,q.jsxs)(Tn,{children:[(0,q.jsx)(Sn,{asChild:!0,children:(0,q.jsx)(be,{"data-testid":`plumix-rails-toggle`,className:`size-8 shrink-0`})}),(0,q.jsx)(Cn,{children:(0,q.jsx)(v,{id:`editor.toolbar.rails`,message:`Toggle panels`})})]}),(0,q.jsx)(Xa,{})]}),(0,q.jsx)(Za,{}),(0,q.jsx)(`div`,{className:`flex-1`,"aria-hidden":!0})]})}function Xa(){let{i18n:e}=_();return(0,q.jsxs)(Tn,{children:[(0,q.jsx)(Sn,{asChild:!0,children:(0,q.jsx)(`span`,{className:`inline-flex`,children:(0,q.jsx)(mn,{variant:`outline`,size:`sm`,pressed:Q(e=>e.xray),onPressedChange:Q(e=>e.toggleXray),"data-testid":`plumix-xray-toggle`,"aria-label":e._({id:`editor.toolbar.xray`,message:`X-ray: outline all blocks`}),children:(0,q.jsx)(Qn,{})})})}),(0,q.jsxs)(Cn,{children:[(0,q.jsx)(v,{id:`editor.toolbar.xray`,message:`X-ray: outline all blocks`}),` `,(0,q.jsx)(Ie,{className:`ms-1`,children:`⇧X`})]})]})}function Za(){let{i18n:e}=_(),t=Q(e=>e.device),n=Q(e=>e.zoom),r=Q(e=>e.setDevice),i=Q(e=>e.zoomToCenter),a=Q(e=>e.enableZoomFit);return(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,"data-testid":`plumix-canvas-controls`,children:[(0,q.jsx)(dt,{type:`single`,variant:`outline`,size:`sm`,"aria-label":e._({id:`editor.toolbar.device.group`,message:`Device`}),value:t,onValueChange:e=>{e&&r(e)},children:qa.map(({value:t,Icon:n})=>(0,q.jsx)(ot,{value:t,"data-testid":`plumix-device-${t}`,"aria-label":Ja(e,t),children:(0,q.jsx)(n,{})},t))}),(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`plumix-zoom-out`,onClick:()=>i([...Ka].reverse().find(e=>e<n-.01)??n),"aria-label":e._({id:`editor.toolbar.zoomOut`,message:`Zoom out`}),children:(0,q.jsx)(lr,{})}),(0,q.jsxs)(`button`,{type:`button`,"data-testid":`plumix-zoom-percent`,onClick:a,className:`text-muted-foreground hover:text-foreground w-12 text-center text-xs tabular-nums`,title:e._({id:`editor.toolbar.fitWidth`,message:`Fit to width`}),children:[Math.round(n*100),`%`]}),(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`plumix-zoom-in`,onClick:()=>i(Ka.find(e=>e>n+.01)??n),"aria-label":e._({id:`editor.toolbar.zoomIn`,message:`Zoom in`}),children:(0,q.jsx)(cr,{})})]})}function Qa(){let e=Va();return(0,K.useEffect)(()=>{let t=t=>{if(!(t.metaKey||t.ctrlKey)||t.key.toLowerCase()!==`z`||t.repeat)return;let n=t.target;n?.isContentEditable||n?.tagName===`INPUT`||n?.tagName===`TEXTAREA`||n?.tagName===`SELECT`||(t.preventDefault(),t.shiftKey?e.getState().redo():e.getState().undo())};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[e]),null}function $a(e,t,n){return{left:t.left+e.x*n,top:t.top+e.y*n,width:e.width*n,height:e.height*n}}var eo=4;function to({box:e}){let t=Va(),n=Q(e=>e.activeId),r=Q(e=>e.selectedIds.size),i=Q(e=>e.activeId?X(e.tree,e.activeId)!==null:!1),a=Q(e=>{let t=vi(e.tree,e.selectedIds);if(t.length===0)return!1;let n=X(e.tree,t[0]??``);return t.every(t=>X(e.tree,t)===n)}),o=Q(e=>e.activeId?pi(e.tree,e.activeId):!1);if(!n)return null;let s=e=>()=>e(),c=t.getState(),l=r>1;return(0,q.jsx)(wn,{delayDuration:300,children:(0,q.jsxs)(`div`,{"data-testid":`plumix-selection-toolbar`,className:`bg-background flex items-center gap-0.5 rounded-md border p-0.5 shadow-sm`,style:{position:`absolute`,left:Math.max(0,e.left),top:Math.max(0,e.top-36-eo),pointerEvents:`auto`,zIndex:30},children:[(0,q.jsxs)(Tn,{children:[(0,q.jsx)(Sn,{asChild:!0,children:(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`selection-toolbar-drag`,"aria-label":`Drag to move`,disabled:l,onPointerDown:e=>{e.preventDefault(),c.startMove(n)},className:`cursor-grab active:cursor-grabbing`,children:(0,q.jsx)(lt,{className:`size-4`})})}),(0,q.jsx)(Cn,{children:(0,q.jsx)(v,{id:`editor.selection.drag`,message:`Drag to move`})})]}),r>1?(0,q.jsx)(`span`,{"data-testid":`selection-toolbar-count`,className:`text-muted-foreground px-1.5 text-xs tabular-nums`,children:(0,q.jsx)(v,{id:`editor.selection.count`,message:`{count} selected`,values:{count:r}})}):null,(0,q.jsx)(no,{testId:`selection-toolbar-select-parent`,icon:(0,q.jsx)(Fn,{className:`size-4`}),disabled:!i||l,onClick:s(()=>c.selectParent()),label:(0,q.jsx)(v,{id:`editor.selection.selectParent`,message:`Select parent`})}),(0,q.jsx)(no,{testId:`selection-toolbar-move-up`,icon:(0,q.jsx)(N,{className:`size-4`}),disabled:l,onClick:s(()=>c.moveSelectedBy(-1)),label:(0,q.jsx)(v,{id:`editor.selection.moveUp`,message:`Move up`})}),(0,q.jsx)(no,{testId:`selection-toolbar-move-down`,icon:(0,q.jsx)(se,{className:`size-4`}),disabled:l,onClick:s(()=>c.moveSelectedBy(1)),label:(0,q.jsx)(v,{id:`editor.selection.moveDown`,message:`Move down`})}),(0,q.jsx)(no,{testId:`selection-toolbar-group`,icon:(0,q.jsx)(zn,{className:`size-4`}),disabled:!a,onClick:s(()=>c.groupSelected()),label:(0,q.jsx)(v,{id:`editor.selection.group`,message:`Group`})}),o?(0,q.jsx)(no,{testId:`selection-toolbar-ungroup`,icon:(0,q.jsx)(or,{className:`size-4`}),onClick:s(()=>c.ungroupSelected()),label:(0,q.jsx)(v,{id:`editor.selection.ungroup`,message:`Ungroup`})}):null,(0,q.jsx)(no,{testId:`selection-toolbar-duplicate`,icon:(0,q.jsx)(Ke,{className:`size-4`}),onClick:s(()=>c.duplicateSelected()),label:(0,q.jsx)(v,{id:`editor.selection.duplicate`,message:`Duplicate`})}),(0,q.jsx)(no,{testId:`selection-toolbar-delete`,icon:(0,q.jsx)(wt,{className:`size-4`}),onClick:s(()=>c.removeSelected()),label:(0,q.jsx)(v,{id:`editor.selection.delete`,message:`Delete`}),className:`text-destructive hover:text-destructive`})]})})}function no({testId:e,icon:t,label:n,disabled:r,onClick:i,className:a}){return(0,q.jsxs)(Tn,{children:[(0,q.jsx)(Sn,{asChild:!0,children:(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":e,disabled:r,onClick:i,className:a,children:t})}),(0,q.jsx)(Cn,{children:n})]})}function ro({slots:e,tree:t,registry:n,draggingName:r,frame:i,zoom:a,clientX:o,clientY:s}){let c=null,l=1/0;for(let u of e){let e=$a(u,i,a);if(o<e.left||o>e.left+e.width||s<e.top||s>e.top+e.height)continue;let d=Y(t,u.parentId);if(!d)continue;let f=Xi(n,d.name,u.slotKey);if(f&&!f.includes(r))continue;let p=e.width*e.height;p<l&&(l=p,c={parentId:u.parentId,slotKey:u.slotKey,box:e})}return c}function io(e,t,n){let r=e.findIndex(e=>e.id===t);return r!==-1&&r<n?n-1:n}function ao(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(r&&t<r.y+r.height/2)return n}return e.length}function oo(e,t){let n=ao(e,t),r=e[e.length-1];if(!r)return{index:0,indicatorY:null};let i=e[n];return{index:n,indicatorY:i?i.y:r.y+r.height}}function so({iframeRef:e,geometryRef:t,registry:n}){let{i18n:r}=_(),i=Va(),a=Q(e=>e.dragSpec),o=Q(e=>e.movingId),[s,c]=(0,K.useState)(null),[l,u]=(0,K.useState)(null),[d,f]=(0,K.useState)(null),[p,m]=(0,K.useState)(null),h=(0,K.useCallback)((e,t)=>{f({parentId:e,slotKey:t})},[]);return(0,K.useEffect)(()=>{if(!d)return;let e=()=>f(null);return window.addEventListener(`blur`,e),()=>window.removeEventListener(`blur`,e)},[d]),(0,K.useEffect)(()=>{let s=e.current;if(!s)return;let l=a?.name??(o?Y(i.getState().tree,o)?.name:void 0);if(!l)return;let d=()=>{a?i.getState().endBlockDrag():i.getState().endMove()},f=(e,n)=>{let r=s.getBoundingClientRect();if(!(e>=r.left&&e<=r.right&&n>=r.top&&n<=r.bottom))return null;let a={left:r.left,top:r.top},{tree:o,zoom:c}=i.getState();return oo(o.flatMap(e=>{let n=t.current.rects.get(e.id);if(!n)return[];let r=$a(n,a,c);return[{y:r.top,height:r.height}]}),n)},p=(e,r)=>{let a=s.getBoundingClientRect(),{tree:o,zoom:c}=i.getState();return ro({slots:t.current.slots,tree:o,registry:n,draggingName:l,frame:{left:a.left,top:a.top},zoom:c,clientX:e,clientY:r})},h=e=>{let t=p(e.clientX,e.clientY);u(t),c(t?null:f(e.clientX,e.clientY)?.indicatorY??null)},g=e=>{let t=n.get(l)?.requiresParent,s=()=>{m(r._({id:`editor.canvas.cantPlaceHere`,message:`This block can't be placed here.`})),d()},c=p(e.clientX,e.clientY);if(c){let e=Y(i.getState().tree,c.parentId);if(t&&(!e||!t.includes(e.name))){s();return}let r={parentId:c.parentId,slotKey:c.slotKey,index:2**53-1},l=e?Xi(n,e.name,c.slotKey):void 0;a?i.getState().insertBlockInto(ea(n,a),r,l):o&&i.getState().moveBlock(o,r,l)}else{let r=f(e.clientX,e.clientY);if(r){if(t){s();return}if(a)i.getState().insertBlock(ea(n,a),r.index);else if(o){let e=io(i.getState().tree,o,r.index);i.getState().moveBlock(o,{parentId:null,index:e})}}}d()},_=()=>d(),v=e=>{e.key===`Escape`&&d()};return window.addEventListener(`pointermove`,h),window.addEventListener(`pointerup`,g),window.addEventListener(`pointercancel`,_),window.addEventListener(`keydown`,v),()=>{window.removeEventListener(`pointermove`,h),window.removeEventListener(`pointerup`,g),window.removeEventListener(`pointercancel`,_),window.removeEventListener(`keydown`,v),c(null),u(null)}},[a,o,i,n,r,e,t]),(0,K.useEffect)(()=>{if(!p)return;let e=setTimeout(()=>m(null),2500);return()=>clearTimeout(e)},[p]),{dropY:s,dropSlot:l,pendingAdd:d,setPendingAdd:f,requestAdd:h,rejection:p}}function co({iframeRef:e,containerRef:t,frameWidth:n}){let r=Va(),i=Q(e=>e.zoomFit),a=Q(e=>e.zoom),o=Q(e=>e.panX),s=Q(e=>e.panY),[c,l]=(0,K.useState)({rects:new Map,slots:[],frame:null,container:null}),u=(0,K.useRef)(c),[d,f]=(0,K.useState)(null),p=(0,K.useCallback)(()=>{let t=e.current?.contentDocument;t&&f(t.documentElement.scrollHeight)},[e]),m=(0,K.useCallback)(()=>{let n=e.current?.getBoundingClientRect(),r=t.current?.getBoundingClientRect();return{frame:n?{left:n.left,top:n.top}:null,container:r?{left:r.left,top:r.top,width:r.width,height:r.height}:null}},[e,t]),h=(0,K.useCallback)((e,t)=>{let n={rects:new Map(e.map(e=>[e.id,e])),slots:t,...m()};u.current=n,l(n),p()},[m,p]);(0,K.useEffect)(()=>{let e=t.current;if(!e)return;let n=()=>{let e={...u.current,...m()};u.current=e,l(e)};e.addEventListener(`scroll`,n,{passive:!0}),window.addEventListener(`resize`,n);let r=typeof ResizeObserver>`u`?null:new ResizeObserver(n);return r?.observe(e),()=>{e.removeEventListener(`scroll`,n),window.removeEventListener(`resize`,n),r?.disconnect()}},[m,t]);let g=c.container?.width,_=c.container?.height;return(0,K.useEffect)(()=>{if(!i||!g||!_)return;let e=va(n,d??800,g,_),t=r.getState();(t.zoom!==e.zoom||t.panX!==e.panX||t.panY!==e.panY)&&t.applyFitView(e)},[i,n,d,g,_,r]),(0,K.useEffect)(()=>{let t=requestAnimationFrame(()=>{let t={...u.current,...m()};u.current=t,l(t);let n=e.current,i=r.getState();if(t.container&&n&&!i.zoomFit){let e=n.getBoundingClientRect(),r=_a(i.panX,i.panY,e.width,e.height,t.container.width,t.container.height);(r.panX!==i.panX||r.panY!==i.panY)&&i.setPan(r.panX,r.panY)}});return()=>cancelAnimationFrame(t)},[o,s,a,n,d,m,r,e]),(0,K.useEffect)(()=>{g&&_&&r.getState().setViewport(g,_)},[g,_,r]),{geometry:c,geometryRef:u,contentHeight:d,measureContent:p,applyReport:h}}function lo(e,t){return e===`Space`||t&&(e===`Digit0`||e===`Digit1`||e===`Digit2`||e===`KeyX`)}function uo(e){return e instanceof HTMLElement&&(e.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(e.tagName))}function fo({panByClientDelta:e,commitLive:t,zoomToSelection:n,liveViewRef:r}){let i=Va(),[a,o]=(0,K.useState)(!1),s=(0,K.useRef)(null);return(0,K.useEffect)(()=>{let a=!1,c=!1,l=0,u=0,d=0,f=0,p=()=>{a=!1,c=!1,o(!1)},m=(e,t,r)=>{if(!e){t===`Space`&&p();return}if(t===`Space`){a||(a=!0,o(!0));return}r&&(t===`Digit1`?i.getState().enableZoomFit():t===`Digit2`?n():t===`Digit0`?i.getState().zoomToCenter(1):t===`KeyX`&&i.getState().toggleXray())};s.current=m;let h=e=>{e.repeat||uo(e.target)||!lo(e.code,e.shiftKey)||(e.code===`Space`&&e.preventDefault(),m(!0,e.code,e.shiftKey))},g=e=>{e.code===`Space`&&m(!1,e.code,!1)},_=e=>{a&&(c=!0,l=e.clientX,u=e.clientY,d=r.current.panX,f=r.current.panY)},v=t=>{c&&e(t.clientX-l,t.clientY-u,d,f)},y=()=>{c&&t(),c=!1};return window.addEventListener(`keydown`,h),window.addEventListener(`keyup`,g),window.addEventListener(`pointerdown`,_),window.addEventListener(`pointermove`,v),window.addEventListener(`pointerup`,y),()=>{window.removeEventListener(`keydown`,h),window.removeEventListener(`keyup`,g),window.removeEventListener(`pointerdown`,_),window.removeEventListener(`pointermove`,v),window.removeEventListener(`pointerup`,y),s.current=null,p()}},[i,n,e,t,r]),{panReady:a,keyHandlerRef:s}}function po({iframeRef:e,containerRef:t,geometryRef:n}){let r=Va(),i=Q(e=>e.zoom),a=Q(e=>e.panX),o=Q(e=>e.panY),s=(0,K.useRef)(null),c=(0,K.useRef)({zoom:i,panX:a,panY:o}),l=(0,K.useRef)(!1),[u,d]=(0,K.useState)(!1),f=(0,K.useRef)(null),p=(0,K.useCallback)(()=>{f.current&&=(clearTimeout(f.current),null),l.current&&(l.current=!1,d(!1),r.getState().setView(c.current))},[r]),m=(0,K.useCallback)(e=>{c.current=e;let t=s.current;t&&(t.style.transform=`translate(${String(e.panX)}px, ${String(e.panY)}px) scale(${String(e.zoom)})`),l.current||(l.current=!0,d(!0)),f.current&&clearTimeout(f.current),f.current=setTimeout(p,150)},[p]),h=(0,K.useCallback)((t,r,i,a)=>{let o=n.current.container,s=e.current;if(!o||!s)return;let l=s.getBoundingClientRect();m({zoom:c.current.zoom,..._a(i+t,a+r,l.width,l.height,o.width,o.height)})},[m,n,e]),g=(0,K.useCallback)(e=>{if(e.button!==0)return;e.preventDefault();let t=e.clientX,n=e.clientY,r=c.current.panX,i=c.current.panY,a=e.currentTarget;a.setPointerCapture(e.pointerId);let o=e=>h(e.clientX-t,e.clientY-n,r,i),s=()=>{p(),a.releasePointerCapture(e.pointerId),a.removeEventListener(`pointermove`,o),a.removeEventListener(`pointerup`,s),a.removeEventListener(`pointercancel`,s)};a.addEventListener(`pointermove`,o),a.addEventListener(`pointerup`,s),a.addEventListener(`pointercancel`,s)},[h,p]);(0,K.useEffect)(()=>{l.current||(c.current={zoom:i,panX:a,panY:o})},[i,a,o]),(0,K.useEffect)(()=>()=>{f.current&&clearTimeout(f.current)},[]),(0,K.useLayoutEffect)(()=>{if(l.current&&s.current){let e=c.current;s.current.style.transform=`translate(${String(e.panX)}px, ${String(e.panY)}px) scale(${String(e.zoom)})`}});let _=(0,K.useCallback)((t,r,i,a,o)=>{let s=e.current,l=n.current.container;if(!s||!l)return;let u=s.getBoundingClientRect(),{panX:d,panY:f,zoom:p}=c.current;if(i){let e=ha(p*Math.exp(-r*.0015));if(e===p)return;let t=ya({zoom:p,panX:d,panY:f},e,a,o),n=u.width/p,i=u.height/p;m({zoom:t.zoom,..._a(t.panX,t.panY,n*t.zoom,i*t.zoom,l.width,l.height)})}else m({zoom:p,..._a(d-t,f-r,u.width,u.height,l.width,l.height)})},[m,n,e]),v=(0,K.useCallback)(()=>{let e=r.getState(),t=n.current.container,i=e.activeId?n.current.rects.get(e.activeId):void 0;!t||!i||i.width===0||i.height===0||e.setView(ba(i,t.width,t.height))},[r,n]);return(0,K.useEffect)(()=>{let e=t.current;if(!e)return;let n=t=>{t.preventDefault();let n=e.getBoundingClientRect();_(t.deltaX,t.deltaY,t.ctrlKey||t.metaKey,t.clientX-n.left,t.clientY-n.top)};return e.addEventListener(`wheel`,n,{passive:!1}),()=>e.removeEventListener(`wheel`,n)},[_,t]),{stageRef:s,gesturing:u,liveViewRef:c,panByClientDelta:h,commitLive:p,onHandlePointerDown:g,handleWheel:_,zoomToSelection:v}}var mo=`#2563eb`,ho=`rgba(37,99,235,0.5)`,go=`rgba(37,99,235,0.4)`;function _o({previewUrl:e,origin:t,registry:n,capabilities:r,readOnly:i=!1}){let{i18n:a}=_(),o=a._({id:`editor.canvas.addBlock`,message:`Add a block`}),s=Va(),c=(0,K.useMemo)(()=>Gi(s,navigator.clipboard,Hi(n)),[s,n]),l=Ba(),u=Q(e=>e.device),d=Q(e=>e.zoom),f=Q(e=>e.panX),p=Q(e=>e.panY),m=Oa(u,Q(e=>e.breakpoints)),h=Q(e=>e.activeId),g=Q(e=>e.selectedIds),v=Q(e=>e.hoverId),y=Q(e=>e.dragSpec),b=Q(e=>e.movingId),x=(0,K.useRef)(null),S=(0,K.useRef)(null),{geometry:C,geometryRef:ee,contentHeight:w,measureContent:te,applyReport:T}=co({iframeRef:x,containerRef:S,frameWidth:m}),{stageRef:E,gesturing:D,liveViewRef:ne,panByClientDelta:O,commitLive:re,onHandlePointerDown:k,handleWheel:A,zoomToSelection:j}=po({iframeRef:x,containerRef:S,geometryRef:ee}),{panReady:M,keyHandlerRef:ie}=fo({panByClientDelta:O,commitLive:re,zoomToSelection:j,liveViewRef:ne}),{dropY:ae,dropSlot:N,pendingAdd:oe,setPendingAdd:se,requestAdd:ce,rejection:le}=so({iframeRef:x,geometryRef:ee,registry:n});(0,K.useEffect)(()=>{let e=x.current?.contentWindow;if(!e)return;let n=ni({store:s,frameWindow:e,origin:t,onGeometry:T,onWheel:({deltaX:e,deltaY:t,zoomIntent:n,clientX:r,clientY:i})=>{let{panX:a,panY:o,zoom:c}=s.getState();A(e,t,n,a+r*c,o+i*c)},onKey:({down:e,code:t,shiftKey:n})=>ie.current?.(e,t,n),onRequestAdd:({parentId:e,slotKey:t})=>ce(e,t),onClipboard:e=>void c.run(e),config:{addBlockLabel:o}});return l&&(l.current=n.pushLoaderData),()=>{l&&(l.current=null),n.dispose()}},[s,t,T,l,A,ie,ce,o,c]),(0,K.useEffect)(()=>{let e=e=>{let t=Wi(e);t&&(e.preventDefault(),c.run(t))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[c]);let P=C.container,ue=h?C.rects.get(h):void 0,de=ue&&C.frame&&P?bo($a(ue,C.frame,d),P):null,fe=(e,t,n)=>{if(!e||!C.frame||!P)return null;let r=C.rects.get(e);if(!r)return null;let i=bo($a(r,C.frame,d),P);return(0,q.jsx)(`div`,{"data-testid":n,style:{position:`absolute`,left:i.left,top:i.top,width:i.width,height:i.height,outline:`2px solid ${t}`,pointerEvents:`none`,zIndex:10}},n)},F=oe?.parentId&&oe.slotKey?{parentId:oe.parentId,slotKey:oe.slotKey}:void 0,pe=F?Y(s.getState().tree,F.parentId)?.name:void 0,me=F&&pe?Xi(n,pe,F.slotKey):void 0,he=F&&C.frame?C.slots.find(e=>e.parentId===F.parentId&&e.slotKey===F.slotKey):void 0,ge=he&&C.frame?$a(he,C.frame,d):P;return(0,q.jsxs)(`div`,{ref:S,"data-testid":`plumix-canvas-frame`,style:{position:`relative`,flex:1,overflow:`hidden`,touchAction:`none`,background:`var(--muted)`,cursor:M?`grab`:`default`},children:[(0,q.jsxs)(`div`,{ref:E,style:{position:`absolute`,top:0,left:0,width:m,height:w??800,transform:`translate(${String(f)}px, ${String(p)}px) scale(${String(d)})`,transformOrigin:`top left`},children:[!i&&(0,q.jsx)(yo,{device:u,frameWidth:m,onPointerDown:k}),(0,q.jsx)(`iframe`,{ref:x,src:e,title:`plumix-editor-canvas`,onLoad:te,style:{display:`block`,width:m,height:w??800,border:0,pointerEvents:y||b||M?`none`:void 0}})]}),!i&&P&&!D&&(0,q.jsxs)(`div`,{"data-testid":`plumix-overlay-clip`,style:{position:`fixed`,left:P.left,top:P.top,width:P.width,height:P.height,overflow:`hidden`,pointerEvents:`none`,zIndex:10},children:[fe(v,go,`plumix-overlay-hover`),[...g].filter(e=>e!==h).map(e=>fe(e,ho,`plumix-overlay-member-${e}`)),fe(h,mo,`plumix-overlay-selected`),de&&(0,q.jsx)(to,{box:de}),N&&(0,q.jsx)(`div`,{"data-testid":`plumix-slot-drop-indicator`,style:{position:`absolute`,left:N.box.left-P.left,top:N.box.top-P.top,width:N.box.width,height:N.box.height,outline:`2px dashed ${mo}`,background:`rgba(37,99,235,0.08)`,pointerEvents:`none`,zIndex:20}}),ae!==null&&C.frame&&(0,q.jsx)(`div`,{"data-testid":`plumix-drop-indicator`,style:{position:`absolute`,left:C.frame.left-P.left,top:ae-P.top,width:m*d,height:2,background:mo,pointerEvents:`none`,zIndex:20}})]}),!i&&oe&&(0,q.jsxs)(pn,{open:!0,onOpenChange:e=>{e||se(null)},children:[(0,q.jsx)(dn,{style:{position:`fixed`,left:ge?.left??0,top:ge?.top??0,width:ge?.width??0,height:ge?.height??0,pointerEvents:`none`}}),(0,q.jsx)(fn,{"data-testid":`plumix-inserter-popover`,align:`start`,className:`w-72 p-0`,children:(0,q.jsx)(Ki,{className:`[&>[data-slot=scroll-area-viewport]]:max-h-96`,children:(0,q.jsx)(Ha,{registry:n,capabilities:r,allowed:me,parentName:pe,target:F,onInsert:()=>se(null)})})})]}),!i&&le&&(0,q.jsx)(`div`,{role:`status`,"data-testid":`plumix-add-rejection`,style:{position:`absolute`,left:`50%`,bottom:16,transform:`translateX(-50%)`,zIndex:30,padding:`0.5rem 0.75rem`,borderRadius:8,fontSize:`0.8125rem`,color:`var(--destructive-foreground, #fff)`,background:`var(--destructive, #dc2626)`,boxShadow:`0 2px 8px rgba(0,0,0,0.2)`,pointerEvents:`none`},children:le})]})}var vo=32;function yo({device:e,frameWidth:t,onPointerDown:n}){let{i18n:r}=_();return(0,q.jsx)(`div`,{"data-testid":`plumix-canvas-handle`,onPointerDown:n,title:r._({id:`editor.canvas.pan`,message:`Drag to move the canvas`}),className:`bg-background text-foreground flex cursor-grab items-center px-4 text-sm font-medium select-none active:cursor-grabbing`,style:{position:`absolute`,left:0,top:-40,width:t,height:vo,touchAction:`none`},children:Ja(r,e)})}function bo(e,t){return{...e,left:e.left-t.left,top:e.top-t.top}}var xo=(0,K.lazy)(()=>w(()=>import(`./rich-text-field-DGgpOqHQ.js`).then(e=>({default:e.RichTextField})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]),import.meta.url)),So=()=>void 0,Co=e=>`block-input-${e}`;function wo({input:e,value:t,onChange:n,resolvePluginFieldType:r,attrs:i}){let{i18n:a}=_(),o=(0,K.useId)(),s=`${o}-label`,c=Co(e.name),l=e.label==null?e.name:Nt(e.label,a),u=e.options??[],d=(()=>{switch(e.type){case`textarea`:return(0,q.jsx)(Ge,{id:o,"data-testid":c,value:Eo(t),onChange:e=>n(e.target.value)});case`number`:return(0,q.jsx)(G,{id:o,"data-testid":c,type:`number`,value:Eo(t),onChange:e=>{let t=e.target.valueAsNumber;n(Number.isNaN(t)?null:t)}});case`checkbox`:return(0,q.jsx)(Qe,{id:o,"data-testid":c,checked:t===!0,onCheckedChange:e=>n(e===!0)});case`boolean`:return(0,q.jsx)(ct,{id:o,"data-testid":c,checked:t===!0,onCheckedChange:e=>n(e===!0)});case`select`:return(0,q.jsxs)(k,{value:ko(t),onValueChange:e=>n(jo(u,Ao(e))),children:[(0,q.jsx)(E,{id:o,"data-testid":c,className:`w-full`,children:(0,q.jsx)(T,{placeholder:e.placeholder?Nt(e.placeholder,a):void 0})}),(0,q.jsx)(D,{children:u.map(e=>(0,q.jsx)(O,{value:ko(e.value),"data-testid":`${c}-option-${$(e.value)}`,children:Nt(e.label,a)},$(e.value)))})]});case`radio`:return(0,q.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":s,"data-testid":c,children:u.map(e=>(0,q.jsxs)(`label`,{className:`flex gap-2 text-sm`,children:[(0,q.jsx)(`input`,{type:`radio`,name:o,value:$(e.value),checked:$(t)===$(e.value),onChange:()=>n(e.value),"data-testid":`${c}-${$(e.value)}`}),Nt(e.label,a)]},$(e.value)))});case`richtext`:return(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(To,{testId:c}),children:(0,q.jsx)(xo,{value:Eo(t),onChange:n,testId:c})});case`combobox`:return(0,q.jsx)(Do,{id:o,testId:c,value:t,options:u,onChange:n});default:{let a=r?.(e.type);return a?(0,K.createElement)(a,{field:e,rhf:{value:t,onChange:n,onBlur:So,name:e.name},disabled:!1,testId:c,attrs:i??{}}):(0,q.jsx)(G,{id:o,"data-testid":c,value:Eo(t),onChange:e=>n(e.target.value)})}}})(),f=e.type===`boolean`||e.type===`checkbox`;return(0,q.jsxs)(B,{orientation:f?`horizontal`:`vertical`,className:f?void 0:`gap-1.5`,children:[(0,q.jsx)(U,{htmlFor:o,id:s,children:l}),d]})}function To({testId:e}){return(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,"data-testid":`${e}-loading`,"aria-busy":`true`,children:[(0,q.jsx)(`div`,{className:`flex flex-wrap items-center gap-0.5`,children:Array.from({length:14},(e,t)=>(0,q.jsx)(`div`,{className:`bg-muted size-8 animate-pulse rounded-md`},t))}),(0,q.jsx)(`div`,{className:`border-input bg-muted/40 min-h-32 w-full animate-pulse rounded-md border`}),(0,q.jsx)(`div`,{className:`bg-muted h-3 w-48 animate-pulse rounded`})]})}function Eo(e){return typeof e==`string`?e:typeof e==`number`||typeof e==`boolean`?String(e):``}function Do({id:e,testId:t,value:n,options:r,onChange:i}){let{i18n:a}=_(),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(``),u=Eo(n),d=r.find(e=>$(e.value)===u),f=c.trim(),p=f!==``&&!r.some(e=>$(e.value)===f),m=e=>{i(e),l(``),s(!1)},h=d?Nt(d.label,a):u||a._({id:`editor.combobox.placeholder`,message:`Select…`});return(0,q.jsxs)(pn,{open:o,onOpenChange:s,children:[(0,q.jsx)(un,{asChild:!0,children:(0,q.jsxs)(j,{type:`button`,variant:`outline`,role:`combobox`,"aria-expanded":o,id:e,"data-testid":t,className:A(`w-full justify-between font-normal`,u===``&&`text-muted-foreground`),children:[(0,q.jsx)(`span`,{className:`truncate`,children:h}),(0,q.jsx)(We,{className:`opacity-50`})]})}),(0,q.jsx)(fn,{className:`p-0`,align:`start`,style:{width:`var(--radix-popover-trigger-width)`},children:(0,q.jsxs)(ze,{children:[(0,q.jsx)(Me,{value:c,onValueChange:l,placeholder:a._({id:`editor.combobox.search`,message:`Search…`}),"data-testid":`${t}-search`}),(0,q.jsxs)(Le,{children:[p?(0,q.jsxs)(I,{value:f,onSelect:()=>m(f),"data-testid":`${t}-create`,children:[(0,q.jsx)(z,{className:`me-2 size-4`}),f]}):(0,q.jsx)(Pe,{children:(0,q.jsx)(`span`,{className:`text-muted-foreground text-sm`,children:a._({id:`editor.combobox.none`,message:`No match.`})})}),(0,q.jsx)(Be,{children:r.map(e=>(0,q.jsxs)(I,{value:$(e.value),keywords:[Nt(e.label,a)],onSelect:()=>m(e.value),"data-testid":`${t}-option-${$(e.value)}`,children:[Nt(e.label,a),$(e.value)===u?(0,q.jsx)(re,{className:`ms-auto size-4`}):null]},$(e.value)))})]})]})})]})}function $(e){return Eo(e)}var Oo=`__plumix_empty__`;function ko(e){if(e==null)return``;let t=$(e);return t===``?Oo:t}function Ao(e){return e===Oo?``:e}function jo(e,t){let n=e.find(e=>$(e.value)===t);return n?n.value:t}function Mo({registry:e,onRefreshBlockLoader:t,resolvePluginFieldType:n}){let r=Q(e=>e.activeId),i=Q(e=>e.tree),a=Q(e=>e.device),o=Q(e=>e.updateBlockAttrs),s=Q(e=>e.updateBlockStyle),c=Q(e=>e.insertBlockInto),l=Q(e=>e.addTableColumn),u=Q(e=>e.addTableRow),d=Q(e=>e.removeTableColumn),f=Q(e=>e.removeTableRow),p=Ba(),m=Ea(a),h=r?Y(i,r):void 0,g=h?Ei(i,h.id):null,_=(0,K.useCallback)((e,t)=>{r&&o(r,{[e]:t})},[r,o]),y=(0,K.useCallback)(async()=>{if(!r||!t)return;let e=await t(r);p?.current?.(e)},[r,t,p]),b=(0,K.useCallback)(()=>{if(!h)return;let t=ea(e,{name:`core/column`,slug:`core/column`,title:`Column`});c(t,{parentId:h.id,slotKey:`columns`,index:2**53-1},[`core/column`])},[h,e,c]),x=(0,K.useCallback)(()=>{g&&u(g)},[g,u]),S=(0,K.useCallback)(()=>{g&&l(g)},[g,l]),C=(0,K.useCallback)(()=>{g&&f(g)},[g,f]),ee=(0,K.useCallback)(()=>{g&&d(g)},[g,d]);if(!h)return(0,q.jsx)(`div`,{className:`text-muted-foreground p-4 text-sm`,"data-testid":`block-inspector-empty`,children:(0,q.jsx)(v,{id:`editor.inspector.empty`,message:`Select a block to edit its attributes.`})});let w=e.get(h.name),te=(w?.inputs??[]).filter(e=>e.type!==`slot`),T=!!(t&&w?.loaders),E=h.name===`core/columns`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,"data-testid":`block-inspector`,children:[te.map(e=>{let t=e.styleProperty;return(0,q.jsx)(wo,{input:e,resolvePluginFieldType:n,attrs:h.attrs,value:t?Ot(h.style?.[m]?.[t])??void 0:h.attrs?.[e.name],onChange:n=>{if(!t){_(e.name,n);return}r&&s(r,m,t,typeof n==`string`&&n!==``?n:null)}},e.name)}),E&&(0,q.jsxs)(j,{type:`button`,variant:`outline`,size:`sm`,"data-testid":`inspector-add-column`,onClick:b,children:[(0,q.jsx)(z,{}),(0,q.jsx)(v,{id:`editor.inspector.addColumn`,message:`Add column`})]}),g&&(0,q.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,q.jsxs)(j,{type:`button`,variant:`outline`,size:`sm`,"data-testid":`inspector-add-table-row`,onClick:x,children:[(0,q.jsx)(z,{}),(0,q.jsx)(v,{id:`editor.inspector.addRow`,message:`Add row`})]}),(0,q.jsxs)(j,{type:`button`,variant:`outline`,size:`sm`,"data-testid":`inspector-add-table-column`,onClick:S,children:[(0,q.jsx)(z,{}),(0,q.jsx)(v,{id:`editor.inspector.addColumn`,message:`Add column`})]}),(0,q.jsxs)(j,{type:`button`,variant:`outline`,size:`sm`,className:`text-destructive hover:text-destructive`,"data-testid":`inspector-remove-table-row`,onClick:C,children:[(0,q.jsx)(Gn,{}),(0,q.jsx)(v,{id:`editor.inspector.removeRow`,message:`Remove row`})]}),(0,q.jsxs)(j,{type:`button`,variant:`outline`,size:`sm`,className:`text-destructive hover:text-destructive`,"data-testid":`inspector-remove-table-column`,onClick:ee,children:[(0,q.jsx)(Gn,{}),(0,q.jsx)(v,{id:`editor.inspector.removeColumn`,message:`Remove column`})]})]}),T&&(0,q.jsxs)(j,{type:`button`,variant:`outline`,size:`sm`,"data-testid":`refresh-block-loader`,onClick:()=>void y(),children:[(0,q.jsx)(Xn,{}),(0,q.jsx)(v,{id:`editor.inspector.refreshData`,message:`Refresh data`})]})]})}function No({title:e,onTitleChange:t,onBack:n,publish:r,previewLink:i,liveUrl:a}){let{i18n:o}=_(),s=Q(e=>wa(e.history)),c=Q(e=>Ta(e.history)),l=Q(e=>e.undo),u=Q(e=>e.redo),d=Q(e=>e.setJsonOpen);return(0,q.jsxs)(`header`,{className:`bg-background flex h-(--header-height) shrink-0 items-center gap-2 border-b px-3`,"data-testid":`plumix-editor-header`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[n?(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`shrink-0`,"data-testid":`plumix-editor-back`,onClick:n,"aria-label":o._({id:`editor.header.back`,message:`Back`}),children:(0,q.jsx)(le,{})}):null,e===void 0?null:t?(0,q.jsx)(G,{value:e,onChange:e=>t(e.target.value),"data-testid":`plumix-editor-title-input`,"aria-label":o._({id:`editor.header.title`,message:`Title`}),className:`hover:bg-accent focus-visible:bg-background h-8 max-w-md min-w-0 border-transparent bg-transparent text-sm font-medium shadow-none`,placeholder:o._({id:`editor.header.untitled`,message:`Untitled`})}):(0,q.jsx)(`span`,{className:`truncate text-sm font-medium`,"data-testid":`plumix-editor-title`,children:e})]}),(0,q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`plumix-undo`,disabled:!s,onClick:l,"aria-label":o._({id:`editor.toolbar.undo`,message:`Undo`}),children:(0,q.jsx)(ar,{})}),(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`plumix-redo`,disabled:!c,onClick:u,"aria-label":o._({id:`editor.toolbar.redo`,message:`Redo`}),children:(0,q.jsx)(Yn,{})}),(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`plumix-view-source`,onClick:()=>d(!0),"aria-label":o._({id:`editor.header.source`,message:`View source`}),children:(0,q.jsx)(me,{})}),(0,q.jsx)(Fo,{previewLink:i,liveUrl:a}),r?(0,q.jsx)(Po,{publish:r}):null]})]})}function Po({publish:e}){let{draftMode:t}=e;if(t)return(0,q.jsx)(j,{type:`button`,size:`sm`,"data-testid":`editor-draft-publish`,disabled:t.isSaving||t.isPublishing||t.isDiscarding||!t.hasPendingDraft,onClick:t.onPublishDraft,children:(0,q.jsx)(v,{id:`editor.toolbar.publish`,message:`Publish`})});let{isPublishing:n=!1,isPublished:r=!1}=e;return(0,q.jsx)(j,{type:`button`,size:`sm`,"data-testid":`plumix-editor-publish-button`,disabled:n||r,onClick:e.onPublish,children:(0,q.jsx)(v,{id:`editor.toolbar.publish`,message:`Publish`})})}function Fo({previewLink:e,liveUrl:t}){let{i18n:n}=_(),r=e=>{window.open(e,`_blank`,`noopener,noreferrer`)};return(0,q.jsxs)(He,{children:[(0,q.jsx)(_e,{asChild:!0,children:(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`plumix-preview-menu`,"aria-label":n._({id:`editor.header.preview`,message:`Preview`}),children:(0,q.jsx)(Ln,{})})}),(0,q.jsxs)(Te,{align:`end`,children:[(0,q.jsxs)(R,{"data-testid":`plumix-preview-draft`,disabled:!e,onSelect:()=>e&&r(e),children:[(0,q.jsx)(xt,{}),(0,q.jsx)(v,{id:`editor.header.viewDraft`,message:`View current draft`})]}),(0,q.jsxs)(R,{"data-testid":`plumix-preview-live`,disabled:!t,onSelect:()=>t&&r(t),children:[(0,q.jsx)(Jn,{}),(0,q.jsx)(v,{id:`editor.header.viewLive`,message:`View live entry`})]})]})]})}var Io=(0,K.lazy)(()=>w(()=>import(`./json-highlight-BbhGhG56.js`),__vite__mapDeps([26,1]),import.meta.url)),Lo=`json-inspector-output`,Ro=`bg-muted max-h-[70vh] overflow-auto rounded p-3 text-xs leading-relaxed`;function zo(){let[e,t]=(0,K.useState)(`page`),n=Q(e=>e.tree),r=Q(e=>e.activeId),i=e===`block`&&r?Y(n,r):null,a=e===`page`?n:i;return(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,"data-testid":`json-inspector`,children:[(0,q.jsxs)(`div`,{className:`flex gap-1`,role:`tablist`,children:[(0,q.jsx)(Ho,{scope:`page`,active:e===`page`,onClick:()=>t(`page`),children:(0,q.jsx)(v,{id:`editor.json.page`,message:`Page`})}),(0,q.jsx)(Ho,{scope:`block`,active:e===`block`,onClick:()=>t(`block`),children:(0,q.jsx)(v,{id:`editor.json.block`,message:`Block`})})]}),e===`block`&&!i?(0,q.jsx)(`p`,{className:`text-muted-foreground text-sm`,"data-testid":`json-inspector-empty`,children:(0,q.jsx)(v,{id:`editor.json.empty`,message:`Select a block to inspect.`})}):(0,q.jsx)(Bo,{json:JSON.stringify(a,null,2)})]})}function Bo({json:e}){return(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`pre`,{className:Ro,"data-testid":Lo,children:e}),children:(0,q.jsx)(Io,{json:e,testId:Lo,className:Ro})})}function Vo(){return(0,q.jsx)(Fe,{open:Q(e=>e.jsonOpen),onOpenChange:Q(e=>e.setJsonOpen),children:(0,q.jsxs)(L,{className:`flex max-h-[85vh] flex-col gap-3 sm:max-w-3xl`,"data-testid":`json-source-dialog`,children:[(0,q.jsx)(Ue,{children:(0,q.jsx)(je,{children:(0,q.jsx)(v,{id:`editor.json.title`,message:`Source`})})}),(0,q.jsx)(zo,{})]})})}function Ho({scope:e,active:t,onClick:n,children:r}){return(0,q.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"data-testid":`json-inspector-toggle-${e}`,onClick:n,className:`hover:bg-accent aria-selected:bg-accent rounded px-2 py-1 text-sm`,children:r})}var Uo=16;function Wo({registry:e}){let{i18n:t}=_(),n=Va(),r=Q(e=>e.tree),i=Q(e=>e.activeId),a=Q(e=>e.select),o=Q(e=>e.moveBlock),s=Q(e=>e.setBlockLabel),c=Q(e=>e.removeSelected),l=Q(e=>e.duplicateSelected),u=(0,K.useMemo)(()=>ri(r),[r]),d=(0,K.useMemo)(()=>Gi(n,navigator.clipboard,Hi(e)),[n,e]),f=(e,t)=>{switch(a(e),t){case`copy`:d.copy();break;case`paste`:d.paste();break;case`duplicate`:l();break;case`delete`:c();break}},p=$e(mt(ht,{activationConstraint:{distance:4}})),m=n=>{let r=e.get(n);return r?.title==null?n:Nt(r.title,t)};return u.length===0?(0,q.jsx)(`div`,{className:`text-muted-foreground p-3 text-sm`,"data-testid":`layers-empty`,children:(0,q.jsx)(v,{id:`editor.layers.empty`,message:`No blocks yet.`})}):(0,q.jsx)(`div`,{className:`p-2`,"data-testid":`layers-tree`,children:(0,q.jsx)(ft,{sensors:p,collisionDetection:rt,onDragEnd:e=>{let t=e.over?.id,n=e.active.id;if(t==null||t===n)return;let r=ai(u,String(n),String(t),e.delta.x,Uo);r&&o(String(n),r)},children:(0,q.jsx)(at,{items:u.map(e=>e.id),strategy:tt,children:u.map(t=>(0,q.jsx)(Go,{item:t,icon:e.get(t.name)?.icon,label:t.label??m(t.name),active:t.id===i,onSelect:()=>a(t.id),onRename:e=>s(t.id,e),onAction:e=>f(t.id,e)},t.id))})})})}function Go({item:e,icon:t,label:n,active:r,onSelect:i,onRename:a,onAction:o}){let{i18n:s}=_(),{attributes:c,listeners:l,setNodeRef:u,transform:d,transition:f}=it({id:e.id}),[p,m]=(0,K.useState)(!1),[h,g]=(0,K.useState)(n),y=()=>{g(e.label??``),m(!0)},b=()=>{m(!1),a(h)},x=e=>{e.key===`Enter`&&b(),e.key===`Escape`&&m(!1)},S=e=>{(e.key===`Delete`||e.key===`Backspace`)&&(e.preventDefault(),o(`delete`))};return(0,q.jsx)(`div`,{ref:u,style:{transform:Ye.Transform.toString(d),transition:f,paddingInlineStart:e.depth*Uo},className:`group flex items-center gap-1`,children:p?(0,q.jsx)(`input`,{autoFocus:!0,value:h,onChange:e=>g(e.target.value),onBlur:b,onKeyDown:x,"data-testid":`layer-rename-${e.id}`,placeholder:n,className:`border-input bg-background w-full rounded border p-1 text-sm`}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`button`,{type:`button`,"data-testid":`layer-${e.id}`,"aria-current":r?`true`:void 0,onClick:i,onDoubleClick:y,className:`hover:bg-accent aria-[current]:bg-accent flex min-w-0 flex-1 items-center gap-1.5 rounded p-1.5 text-start text-sm`,...c,...l,onKeyDown:S,children:[(0,q.jsx)(aa,{name:t,className:`text-muted-foreground size-4 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,children:n})]}),(0,q.jsxs)(He,{children:[(0,q.jsx)(_e,{asChild:!0,children:(0,q.jsx)(j,{type:`button`,variant:`ghost`,size:`icon-sm`,"data-testid":`layer-menu-${e.id}`,"aria-label":s._({id:`editor.layers.actions`,message:`Block actions`}),className:`shrink-0 opacity-0 group-hover:opacity-100 focus-visible:opacity-100 data-[state=open]:opacity-100`,children:(0,q.jsx)(In,{className:`size-4`})})}),(0,q.jsxs)(Te,{align:`end`,children:[(0,q.jsxs)(R,{"data-testid":`layer-copy-${e.id}`,onSelect:()=>o(`copy`),children:[(0,q.jsx)(Ke,{}),(0,q.jsx)(v,{id:`editor.layers.copy`,message:`Copy`})]}),(0,q.jsxs)(R,{"data-testid":`layer-paste-${e.id}`,onSelect:()=>o(`paste`),children:[(0,q.jsx)(jn,{}),(0,q.jsx)(v,{id:`editor.layers.paste`,message:`Paste`})]}),(0,q.jsxs)(R,{"data-testid":`layer-duplicate-${e.id}`,onSelect:()=>o(`duplicate`),children:[(0,q.jsx)(Pn,{}),(0,q.jsx)(v,{id:`editor.layers.duplicate`,message:`Duplicate`})]}),(0,q.jsx)(ve,{}),(0,q.jsxs)(R,{"data-testid":`layer-delete-${e.id}`,onSelect:()=>o(`delete`),className:`text-destructive focus:text-destructive`,children:[(0,q.jsx)(wt,{}),(0,q.jsx)(v,{id:`editor.layers.delete`,message:`Delete`})]})]})]})]})})}var Ko=[`id`,`title`,`role`,`lang`,`dir`,`aria-label`,`aria-describedby`,`aria-hidden`,`aria-live`,`data-testid`];function qo({attributes:e,onChange:t,onRename:n}){let r=Object.keys(e);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,"data-testid":`html-attributes`,children:[r.map(i=>(0,q.jsx)(Jo,{name:i,value:e[i]??``,siblingKeys:r,onChange:t,onRename:n},i)),r.length===0?(0,q.jsx)(`p`,{className:`text-muted-foreground text-xs`,"data-testid":`html-attributes-empty`,children:(0,q.jsx)(v,{id:`editor.htmlAttrs.none`,message:`No attributes set.`})}):null,(0,q.jsx)(Yo,{onAdd:t,existingKeys:r})]})}function Jo({name:e,value:t,siblingKeys:n,onChange:r,onRename:i}){let[a,o]=(0,K.useState)(e);return(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`html-attr-${e}`,children:[(0,q.jsx)(G,{className:`h-8 w-1/3 shrink-0`,"data-testid":`html-attr-${e}-key`,value:a,onChange:e=>o(e.target.value),onBlur:()=>{let t=a.trim().toLowerCase();t!==e.toLowerCase()&&mr(t)&&!n.some(e=>e.toLowerCase()===t)?i(e,t):o(e)},onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}}),(0,q.jsx)(G,{className:`h-8`,"data-testid":`html-attr-${e}-value`,value:t,onChange:t=>r(e,t.target.value)}),(0,q.jsxs)(j,{type:`button`,variant:`ghost`,size:`icon`,className:`text-destructive hover:text-destructive size-8 shrink-0`,"data-testid":`html-attr-${e}-remove`,onClick:()=>r(e,null),children:[(0,q.jsx)(wt,{}),(0,q.jsx)(`span`,{className:`sr-only`,children:(0,q.jsx)(v,{id:`editor.htmlAttrs.remove`,message:`Remove`})})]})]})}function Yo({onAdd:e,existingKeys:t}){let{i18n:n}=_(),[r,i]=(0,K.useState)(!1),[a,o]=(0,K.useState)(``),[s,c]=(0,K.useState)(``),[l,u]=(0,K.useState)(``),d=n._({id:`editor.htmlAttrs.add.key`,message:`attribute`}),f=n._({id:`editor.htmlAttrs.add.value`,message:`value`}),p=new Set(t.map(e=>e.toLowerCase())),m=Ko.filter(e=>!p.has(e)),h=a.trim().toLowerCase(),g=mr(h)&&!p.has(h)&&!Ko.includes(h),y=e=>{c(e),o(``),i(!1)},b=s!==``&&!p.has(s)&&l.trim()!==``;return(0,q.jsxs)(`form`,{className:`flex items-center gap-2 pt-1`,"data-testid":`html-attr-add`,onSubmit:t=>{t.preventDefault(),b&&(e(s,l),c(``),u(``))},children:[(0,q.jsxs)(pn,{open:r,onOpenChange:i,children:[(0,q.jsx)(un,{asChild:!0,children:(0,q.jsxs)(j,{type:`button`,variant:`outline`,size:`sm`,role:`combobox`,"aria-expanded":r,"aria-label":s===``?d:s,"data-testid":`html-attr-add-key`,className:A(`h-8 w-1/3 shrink-0 justify-between gap-1 font-normal`,s===``&&`text-muted-foreground`),children:[(0,q.jsx)(`span`,{className:`truncate`,children:s===``?(0,q.jsx)(v,{id:`editor.htmlAttrs.add.key`,message:`attribute`}):s}),(0,q.jsx)(We,{className:`opacity-50`})]})}),(0,q.jsx)(fn,{className:`w-56 p-0`,align:`start`,children:(0,q.jsxs)(ze,{children:[(0,q.jsx)(Me,{value:a,onValueChange:o,placeholder:n._({id:`editor.htmlAttrs.add.search`,message:`Search attribute…`}),"data-testid":`html-attr-add-key-search`}),(0,q.jsxs)(Le,{children:[g?(0,q.jsxs)(I,{value:h,onSelect:()=>y(h),"data-testid":`html-attr-add-key-create`,children:[(0,q.jsx)(z,{className:`me-2 size-4`}),(0,q.jsx)(`span`,{className:`sr-only`,children:(0,q.jsx)(v,{id:`editor.htmlAttrs.add.create`,message:`Create`})}),h]}):(0,q.jsx)(Pe,{children:(0,q.jsx)(v,{id:`editor.htmlAttrs.add.none`,message:`No attribute.`})}),(0,q.jsx)(Be,{children:m.map(e=>(0,q.jsx)(I,{value:e,onSelect:()=>y(e),"data-testid":`html-attr-add-key-option-${e}`,children:e},e))})]})]})})]}),(0,q.jsx)(G,{name:`html-attr-add-value`,className:`h-8`,"data-testid":`html-attr-add-value`,"aria-label":f,placeholder:f,value:l,onChange:e=>u(e.target.value)}),(0,q.jsxs)(j,{type:`submit`,variant:`ghost`,size:`icon`,className:`size-8 shrink-0`,disabled:!b,"data-testid":`html-attr-add-submit`,children:[(0,q.jsx)(z,{}),(0,q.jsx)(`span`,{className:`sr-only`,children:(0,q.jsx)(v,{id:`editor.htmlAttrs.add`,message:`Add attribute`})})]})]})}var Xo=/^#[0-9a-fA-F]{6}$/,Zo=`__none__`;function Qo({label:e,property:t,category:n,value:r,tokens:i,onChange:a}){let o=`style-control-${t}`,s=(0,K.useId)(),c=n?i[n]??{}:{},[l,u]=(0,K.useState)(Object.keys(c).length>0?`token`:`custom`),d=n&&r!==void 0?Et(r,n):null,f=n===void 0||(r===void 0?l===`custom`:d===null),p=n===`color`,m=f&&r!==void 0?r:``;return(0,q.jsxs)(B,{className:`gap-1`,"data-testid":o,children:[(0,q.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,q.jsx)(U,{htmlFor:s,className:`text-xs`,children:e}),n?(0,q.jsxs)(`div`,{className:`flex justify-end gap-0.5 text-xs`,children:[(0,q.jsx)($o,{testId:`${o}-mode-token`,active:!f,onClick:()=>{u(`token`),r!==void 0&&d===null&&a(null)},children:(0,q.jsx)(v,{id:`editor.styles.mode.token`,message:`Token`})}),(0,q.jsx)($o,{testId:`${o}-mode-custom`,active:f,onClick:()=>{u(`custom`),d!==null&&a(null)},children:(0,q.jsx)(v,{id:`editor.styles.mode.custom`,message:`Custom`})})]}):null]}),f?(0,q.jsxs)(`div`,{className:`flex gap-1`,children:[p?(0,q.jsx)(`input`,{type:`color`,"data-testid":`${o}-swatch`,"aria-label":`${e} color`,value:Xo.test(m)?m:`#000000`,onChange:e=>a(e.target.value),className:`border-input size-9 shrink-0 cursor-pointer rounded-md border bg-transparent p-1`}):null,(0,q.jsx)(G,{id:s,"data-testid":`${o}-custom`,value:m,onChange:e=>a(e.target.value===``?null:e.target.value)})]}):(0,q.jsxs)(k,{value:d??Zo,onValueChange:e=>a(e===Zo?null:kt(e,n,i)),children:[(0,q.jsx)(E,{id:s,className:`w-full`,"data-testid":`${o}-token`,children:(0,q.jsx)(T,{})}),(0,q.jsxs)(D,{children:[(0,q.jsx)(O,{value:Zo,"data-testid":`${o}-token-none`,children:`—`}),Object.keys(c).map(e=>(0,q.jsx)(O,{value:e,"data-testid":`${o}-token-${e}`,children:c[e]?.label??e},e))]})]})]})}function $o({testId:e,active:t,onClick:n,children:r}){return(0,q.jsx)(`button`,{type:`button`,"data-testid":e,onClick:n,className:A(`rounded px-1.5 py-0.5`,t?`bg-accent text-accent-foreground`:`text-muted-foreground hover:text-foreground`),children:r})}var es=`alignContent.alignItems.alignSelf.animation.appearance.aspectRatio.backdropFilter.background.backgroundColor.backgroundImage.backgroundPosition.backgroundRepeat.backgroundSize.border.borderBottom.borderBottomLeftRadius.borderBottomRightRadius.borderColor.borderLeft.borderRadius.borderRight.borderStyle.borderTop.borderTopLeftRadius.borderTopRightRadius.borderWidth.bottom.boxShadow.boxSizing.clear.color.columnGap.content.cursor.display.fill.filter.flex.flexBasis.flexDirection.flexGrow.flexShrink.flexWrap.float.font.fontFamily.fontSize.fontStyle.fontWeight.gap.gridArea.gridAutoColumns.gridAutoFlow.gridAutoRows.gridColumn.gridRow.gridTemplateColumns.gridTemplateRows.height.inset.justifyContent.justifyItems.justifySelf.left.letterSpacing.lineHeight.listStyle.listStyleType.margin.marginBottom.marginLeft.marginRight.marginTop.maxHeight.maxWidth.minHeight.minWidth.objectFit.objectPosition.opacity.order.outline.overflow.overflowX.overflowY.padding.paddingBottom.paddingLeft.paddingRight.paddingTop.placeContent.placeItems.pointerEvents.position.right.rowGap.stroke.textAlign.textDecoration.textOverflow.textShadow.textTransform.top.transform.transformOrigin.transition.translate.userSelect.verticalAlign.visibility.whiteSpace.width.wordBreak.zIndex`.split(`.`),ts=/^(--)?[a-zA-Z][a-zA-Z-]*$/,ns=`__none__`;function rs({declarations:e,tokens:t,onChange:n,onRename:r}){let i=e.map(e=>e.property);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,"data-testid":`style-declarations`,children:[e.map(({property:e,value:a})=>(0,q.jsx)(is,{property:e,value:a,siblingKeys:i,tokens:t,onChange:n,onRename:r},e)),e.length===0?(0,q.jsx)(`p`,{className:`text-muted-foreground text-xs`,"data-testid":`style-declarations-empty`,children:(0,q.jsx)(v,{id:`editor.styles.none`,message:`No styles set for this device.`})}):null,(0,q.jsx)(as,{onAdd:n,existingKeys:i})]})}function is({property:e,value:t,siblingKeys:n,tokens:r,onChange:i,onRename:a}){let[o,s]=(0,K.useState)(e),c=At(e),l=c?r[c]??{}:{},u=c?Et(t,c):null,d=e=>c?Dt(e,c):e;return(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`style-declaration-${e}`,children:[(0,q.jsx)(G,{className:`h-8 w-1/3 shrink-0`,"data-testid":`style-declaration-${e}-key`,value:o,onChange:e=>s(e.target.value),onBlur:()=>{let t=o.trim();t!==e&&ts.test(t)&&!n.includes(t)?a(e,t):s(e)},onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}}),u===null?(0,q.jsx)(G,{className:`h-8`,"data-testid":`style-declaration-${e}-value`,value:t,onChange:t=>i(e,t.target.value)}):(0,q.jsxs)(k,{value:u,onValueChange:t=>i(e,t===ns||!c?null:kt(t,c,r)),children:[(0,q.jsx)(E,{size:`sm`,className:`w-full`,"data-testid":`style-declaration-${e}-token`,children:(0,q.jsx)(T,{})}),(0,q.jsxs)(D,{children:[(0,q.jsx)(O,{value:ns,"data-testid":`style-declaration-${e}-token-none`,children:`—`}),u in l?null:(0,q.jsx)(O,{value:u,children:d(u)}),Object.keys(l).map(t=>(0,q.jsx)(O,{value:t,"data-testid":`style-declaration-${e}-token-${t}`,children:d(t)},t))]})]}),(0,q.jsxs)(j,{type:`button`,variant:`ghost`,size:`icon`,className:`text-destructive hover:text-destructive size-8 shrink-0`,"data-testid":`style-declaration-${e}-remove`,onClick:()=>i(e,null),children:[(0,q.jsx)(wt,{}),(0,q.jsx)(`span`,{className:`sr-only`,children:(0,q.jsx)(v,{id:`editor.styles.remove`,message:`Remove`})})]})]})}function as({onAdd:e,existingKeys:t}){let{i18n:n}=_(),[r,i]=(0,K.useState)(!1),[a,o]=(0,K.useState)(``),[s,c]=(0,K.useState)(``),[l,u]=(0,K.useState)(``),d=n._({id:`editor.styles.add.key`,message:`property`}),f=n._({id:`editor.styles.add.value`,message:`value`}),p=new Set(t),m=es.filter(e=>!p.has(e)),h=a.trim(),g=new Set([...es,...t].map(e=>e.toLowerCase())),y=ts.test(h)&&!g.has(h.toLowerCase()),b=e=>{c(e),o(``),i(!1)},x=s!==``&&!p.has(s)&&l.trim()!==``;return(0,q.jsxs)(`form`,{className:`flex items-center gap-2 pt-1`,"data-testid":`style-declaration-add`,onSubmit:t=>{t.preventDefault(),x&&(e(s,l),c(``),u(``))},children:[(0,q.jsxs)(pn,{open:r,onOpenChange:i,children:[(0,q.jsx)(un,{asChild:!0,children:(0,q.jsxs)(j,{type:`button`,variant:`outline`,size:`sm`,role:`combobox`,"aria-expanded":r,"aria-label":s===``?d:s,"data-testid":`style-declaration-add-key`,className:A(`h-8 w-1/3 shrink-0 justify-between gap-1 font-normal`,s===``&&`text-muted-foreground`),children:[(0,q.jsx)(`span`,{className:`truncate`,children:s===``?(0,q.jsx)(v,{id:`editor.styles.add.key`,message:`property`}):s}),(0,q.jsx)(We,{className:`opacity-50`})]})}),(0,q.jsx)(fn,{className:`w-56 p-0`,align:`start`,children:(0,q.jsxs)(ze,{children:[(0,q.jsx)(Me,{value:a,onValueChange:o,placeholder:n._({id:`editor.styles.add.search`,message:`Search property…`}),"data-testid":`style-declaration-add-key-search`}),(0,q.jsxs)(Le,{children:[y?(0,q.jsxs)(I,{value:h,onSelect:()=>b(h),"data-testid":`style-declaration-add-key-create`,children:[(0,q.jsx)(z,{className:`me-2 size-4`}),(0,q.jsx)(`span`,{className:`sr-only`,children:(0,q.jsx)(v,{id:`editor.styles.add.create`,message:`Create`})}),h]}):(0,q.jsx)(Pe,{children:(0,q.jsx)(v,{id:`editor.styles.add.none`,message:`No property.`})}),(0,q.jsx)(Be,{children:m.map(e=>(0,q.jsx)(I,{value:e,onSelect:()=>b(e),"data-testid":`style-declaration-add-key-option-${e}`,children:e},e))})]})]})})]}),(0,q.jsx)(G,{name:`style-declaration-add-value`,className:`h-8`,"data-testid":`style-declaration-add-value`,"aria-label":f,placeholder:f,value:l,onChange:e=>u(e.target.value)}),(0,q.jsxs)(j,{type:`submit`,variant:`ghost`,size:`icon`,className:`size-8 shrink-0`,disabled:!x,"data-testid":`style-declaration-add-submit`,children:[(0,q.jsx)(z,{}),(0,q.jsx)(`span`,{className:`sr-only`,children:(0,q.jsx)(v,{id:`editor.styles.add`,message:`Add style`})})]})]})}var os={id:`size`,label:(0,q.jsx)(v,{id:`editor.styles.size`,message:`Size`}),controls:[{property:`width`,label:`Width`},{property:`height`,label:`Height`},{property:`minWidth`,label:`Min width`},{property:`minHeight`,label:`Min height`},{property:`maxWidth`,label:`Max width`},{property:`maxHeight`,label:`Max height`}]},ss={id:`background`,label:(0,q.jsx)(v,{id:`editor.styles.background`,message:`Background`}),controls:[{property:`background`,label:`Background`,category:`color`,fullWidth:!0}]},cs={id:`typography`,label:(0,q.jsx)(v,{id:`editor.styles.typography`,message:`Typography`}),controls:[{property:`color`,label:`Text color`,category:`color`},{property:`fontFamily`,label:`Font family`,category:`fontFamily`},{property:`fontSize`,label:`Font size`,category:`fontSize`},{property:`fontWeight`,label:`Font weight`,category:`fontWeight`},{property:`lineHeight`,label:`Line height`,category:`lineHeight`},{property:`letterSpacing`,label:`Letter spacing`,category:`letterSpacing`}]},ls={id:`border`,label:(0,q.jsx)(v,{id:`editor.styles.border`,message:`Border`}),controls:[{property:`borderStyle`,label:`Style`,options:[`none`,`solid`,`dashed`,`dotted`,`double`]},{property:`borderColor`,label:`Color`,category:`color`,fullWidth:!0},{property:`borderWidth`,label:`Width`,category:`borderWidth`},{property:`borderRadius`,label:`Radius`,category:`borderRadius`}]},us=[`layout`,`size`,`visibility`,`background`,`typography`,`spacing`,`border`,`effects`];function ds({tokens:e,resolvePluginFieldType:t}){let n=Q(e=>e.activeId),r=Q(e=>e.device),i=Q(e=>e.activeId?Y(e.tree,e.activeId):null),a=Q(e=>e.updateBlockStyle),o=Q(e=>e.updateBlockHidden),s=Q(e=>e.renameBlockStyleProperty),c=Q(e=>e.setBlockTagName),l=Q(e=>e.setBlockClassName),u=Q(e=>e.updateBlockHtmlAttr),d=Q(e=>e.renameBlockHtmlAttr);if(!n||!i)return(0,q.jsx)(`p`,{className:`text-muted-foreground p-4 text-sm`,"data-testid":`styles-tab-empty`,children:(0,q.jsx)(v,{id:`editor.styles.empty`,message:`Select a block to style it.`})});let f=Ea(r),p=i.style?.[f],m=e=>Ot(p?.[e])??void 0,h=Object.entries(p??{}).flatMap(([e,t])=>typeof t==`string`?[{property:e,value:t}]:[]),g=e=>t=>a(n,f,e,t);return(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 p-3`,"data-testid":`styles-tab`,children:[(0,q.jsxs)(`p`,{className:`text-muted-foreground text-xs`,"data-testid":`styles-tab-scope`,children:[(0,q.jsx)(v,{id:`editor.styles.scope`,message:`Editing`}),` · `,r]}),(0,q.jsxs)(Ze,{type:`multiple`,defaultValue:us,children:[(0,q.jsxs)(V,{value:`layout`,children:[(0,q.jsx)(Xe,{"data-testid":`styles-section-layout`,children:(0,q.jsx)(v,{id:`editor.styles.layout`,message:`Layout`})}),(0,q.jsx)(et,{children:(0,q.jsx)(bs,{valueOf:m,setter:g,tokens:e})})]}),(0,q.jsx)(fs,{section:os,valueOf:m,setter:g,tokens:e}),(0,q.jsxs)(V,{value:`visibility`,children:[(0,q.jsx)(Xe,{"data-testid":`styles-section-visibility`,children:(0,q.jsx)(v,{id:`editor.styles.visibility`,message:`Visibility`})}),(0,q.jsx)(et,{children:(0,q.jsx)(vs,{hidden:i.hidden,onToggle:(e,t)=>o(n,e,t)})})]}),(0,q.jsx)(fs,{section:ss,valueOf:m,setter:g,tokens:e,resolvePluginFieldType:t}),(0,q.jsx)(fs,{section:cs,valueOf:m,setter:g,tokens:e}),(0,q.jsxs)(V,{value:`spacing`,children:[(0,q.jsx)(Xe,{"data-testid":`styles-section-spacing`,children:(0,q.jsx)(v,{id:`editor.styles.spacing`,message:`Spacing`})}),(0,q.jsx)(et,{children:(0,q.jsx)(Bs,{tokens:e,valueOf:m,setter:g})})]}),(0,q.jsx)(fs,{section:ls,valueOf:m,setter:g,tokens:e}),(0,q.jsxs)(V,{value:`effects`,children:[(0,q.jsx)(Xe,{"data-testid":`styles-section-effects`,children:(0,q.jsx)(v,{id:`editor.styles.effects`,message:`Shadows & Effects`})}),(0,q.jsx)(et,{className:`flex flex-col gap-3`,children:(0,q.jsx)(js,{tokens:e,valueOf:m,setter:g})})]}),(0,q.jsxs)(V,{value:`declarations`,children:[(0,q.jsx)(Xe,{"data-testid":`styles-section-declarations`,children:(0,q.jsx)(v,{id:`editor.styles.customCss`,message:`Custom CSS`})}),(0,q.jsxs)(et,{className:`flex flex-col gap-3`,children:[(0,q.jsx)(zs,{className:i.className,onChange:e=>l(n,e)}),(0,q.jsx)(`div`,{className:`border-border border-t pt-3`,children:(0,q.jsx)(rs,{declarations:h,tokens:e,onChange:(e,t)=>g(e)(t),onRename:(e,t)=>s(n,f,e,t)})})]})]}),(0,q.jsxs)(V,{value:`html`,children:[(0,q.jsx)(Xe,{"data-testid":`styles-section-html`,children:(0,q.jsx)(v,{id:`editor.htmlAttrs.title`,message:`HTML attributes`})}),(0,q.jsxs)(et,{className:`flex flex-col gap-3`,children:[(0,q.jsx)(Rs,{value:i.tagName,onChange:e=>c(n,e)}),(0,q.jsx)(qo,{attributes:i.htmlAttrs??{},onChange:(e,t)=>u(n,e,t),onRename:(e,t)=>d(n,e,t)})]})]})]})]})}function fs({section:e,valueOf:t,setter:n,tokens:r,resolvePluginFieldType:i}){return(0,q.jsxs)(V,{value:e.id,children:[(0,q.jsx)(Xe,{"data-testid":`styles-section-${e.id}`,children:e.label}),(0,q.jsxs)(et,{className:`flex flex-col gap-3`,children:[(0,q.jsx)(`div`,{className:`grid grid-cols-2 gap-x-2 gap-y-3`,children:e.controls.map(e=>(0,q.jsx)(`div`,{className:e.options||e.fullWidth?`col-span-2`:void 0,children:e.options?(0,q.jsx)(Ss,{label:e.label,property:e.property,options:e.options,value:t(e.property),onChange:n(e.property)}):(0,q.jsx)(Qo,{label:e.label,property:e.property,category:e.category,value:t(e.property),tokens:r,onChange:n(e.property)})},e.property))}),e.id===`typography`&&(0,q.jsx)(gs,{valueOf:t,setter:n}),e.id===`background`&&(0,q.jsx)(ks,{value:t(`backgroundImage`),onChange:n(`backgroundImage`),resolvePluginFieldType:i})]})]})}var ps=[{id:`bold`,property:`fontWeight`,on:`bold`,Icon:ue,label:`Bold`},{id:`italic`,property:`fontStyle`,on:`italic`,Icon:F,label:`Italic`},{id:`underline`,property:`textDecoration`,on:`underline`,Icon:he,label:`Underline`},{id:`strikethrough`,property:`textDecoration`,on:`line-through`,Icon:fe,label:`Strikethrough`}],ms=[{value:`left`,Icon:rr,label:`Align left`},{value:`center`,Icon:tr,label:`Align center`},{value:`right`,Icon:nr,label:`Align right`}];function hs({value:e,testid:t,label:n,children:r}){return(0,q.jsxs)(Tn,{children:[(0,q.jsx)(Sn,{asChild:!0,children:(0,q.jsx)(ot,{value:e,"data-testid":t,"aria-label":n,className:`px-2`,children:r})}),(0,q.jsx)(Cn,{children:n})]})}function gs({valueOf:e,setter:t}){let{i18n:n}=_();return(0,q.jsx)(wn,{delayDuration:300,children:(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-1`,"data-testid":`style-text-controls`,children:[(0,q.jsx)(dt,{type:`multiple`,variant:`outline`,size:`sm`,"aria-label":n._({id:`editor.styles.textFormatting`,message:`Text formatting`}),value:ps.filter(t=>e(t.property)===t.on).map(e=>e.id),onValueChange:n=>{for(let r of ps){let i=e(r.property)===r.on,a=n.includes(r.id);i!==a&&t(r.property)(a?r.on:null)}},children:ps.map(e=>(0,q.jsx)(hs,{value:e.id,testid:`style-mark-${e.id}`,label:ws(n,e.id),children:(0,q.jsx)(e.Icon,{})},e.id))}),(0,q.jsx)(dt,{type:`single`,variant:`outline`,size:`sm`,"aria-label":n._({id:`editor.styles.textAlignment`,message:`Text alignment`}),value:e(`textAlign`)??``,onValueChange:e=>t(`textAlign`)(e||null),children:ms.map(({value:e,Icon:t})=>(0,q.jsx)(hs,{value:e,testid:`style-align-${e}`,label:Ts(n,e),children:(0,q.jsx)(t,{})},e))})]})})}var _s=[{id:`desktop`,bucket:`large`,label:(0,q.jsx)(v,{id:`editor.styles.visibility.desktop`,message:`Hide on desktop`})},{id:`tablet`,bucket:`medium`,label:(0,q.jsx)(v,{id:`editor.styles.visibility.tablet`,message:`Hide on tablet`})},{id:`mobile`,bucket:`small`,label:(0,q.jsx)(v,{id:`editor.styles.visibility.mobile`,message:`Hide on mobile`})}];function vs({hidden:e,onToggle:t}){return(0,q.jsx)(`div`,{className:`flex flex-col gap-3`,"data-testid":`style-visibility-controls`,children:_s.map(n=>{let r=e?.[n.bucket]??!1;return(0,q.jsxs)(B,{orientation:`horizontal`,children:[(0,q.jsx)(U,{htmlFor:`visibility-${n.id}`,className:`text-xs`,children:n.label}),(0,q.jsx)(ct,{id:`visibility-${n.id}`,checked:r,onCheckedChange:e=>t(n.bucket,e),"data-testid":`style-visibility-${n.id}`})]},n.id)})})}var ys={block:`Block`,flex:`Flex`,grid:`Grid`,row:`Row`,column:`Column`,"flex-start":`Start`,center:`Center`,"flex-end":`End`,"space-between":`Between`,stretch:`Stretch`};function bs({valueOf:e,setter:t,tokens:n}){let r=e(`display`),i=r===`flex`;return(0,q.jsxs)(`div`,{className:`flex flex-col gap-3`,"data-testid":`style-layout-controls`,children:[(0,q.jsx)(Cs,{label:`Display`,property:`display`,options:[`block`,`flex`,`grid`],valueOf:e,setter:t}),i?(0,q.jsx)(Cs,{label:`Direction`,property:`flexDirection`,options:[`row`,`column`],valueOf:e,setter:t}):null,i||r===`grid`?(0,q.jsx)(Qo,{label:`Gap`,property:`gap`,category:`spacing`,value:e(`gap`),tokens:n,onChange:t(`gap`)}):null,i?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Cs,{label:`Justify`,property:`justifyContent`,options:[`flex-start`,`center`,`flex-end`,`space-between`],valueOf:e,setter:t}),(0,q.jsx)(Cs,{label:`Align`,property:`alignItems`,options:[`flex-start`,`center`,`flex-end`,`stretch`],valueOf:e,setter:t})]}):null,(0,q.jsx)(Cs,{label:`Align self`,property:`alignSelf`,options:[`flex-start`,`center`,`flex-end`,`stretch`],valueOf:e,setter:t})]})}var xs=`__unset__`;function Ss({label:e,property:t,options:n,value:r,onChange:i}){let a=`style-control-${t}`,o=(0,K.useId)();return(0,q.jsxs)(B,{className:`gap-1`,"data-testid":a,children:[(0,q.jsx)(U,{htmlFor:o,className:`text-xs`,children:e}),(0,q.jsxs)(k,{value:r??xs,onValueChange:e=>i(e===xs?null:e),children:[(0,q.jsx)(E,{id:o,className:`w-full`,"data-testid":`${a}-select`,children:(0,q.jsx)(T,{})}),(0,q.jsxs)(D,{children:[(0,q.jsx)(O,{value:xs,"data-testid":`${a}-option-unset`,children:`—`}),n.map(e=>(0,q.jsx)(O,{value:e,"data-testid":`${a}-option-${e}`,children:e},e))]})]})]})}function Cs({label:e,property:t,options:n,valueOf:r,setter:i}){let a=(0,K.useId)();return(0,q.jsxs)(B,{className:`gap-1`,children:[(0,q.jsx)(Je,{id:a,className:`text-xs`,children:e}),(0,q.jsx)(dt,{type:`single`,variant:`outline`,size:`sm`,"aria-labelledby":a,value:r(t)??``,onValueChange:e=>i(t)(e||null),children:n.map(e=>(0,q.jsx)(ot,{value:e,"data-testid":`style-${t}-${e}`,className:`text-xs`,children:ys[e]??e},e))})]})}function ws(e,t){switch(t){case`italic`:return e._({id:`editor.styles.mark.italic`,message:`Italic`});case`underline`:return e._({id:`editor.styles.mark.underline`,message:`Underline`});case`strikethrough`:return e._({id:`editor.styles.mark.strikethrough`,message:`Strikethrough`});default:return e._({id:`editor.styles.mark.bold`,message:`Bold`})}}function Ts(e,t){switch(t){case`center`:return e._({id:`editor.styles.align.center`,message:`Align center`});case`right`:return e._({id:`editor.styles.align.right`,message:`Align right`});default:return e._({id:`editor.styles.align.left`,message:`Align left`})}}var Es=[`Top`,`Right`,`Bottom`,`Left`],Ds=[{prefix:`margin`,testId:`box-model-margin`,label:(0,q.jsx)(v,{id:`editor.styles.margin`,message:`Margin`})},{prefix:`padding`,testId:`box-model-padding`,label:(0,q.jsx)(v,{id:`editor.styles.padding`,message:`Padding`})}];function Os(e){return e?.match(/^url\((['"]?)(.*)\1\)$/)?.[2]??``}function ks({value:e,onChange:t,resolvePluginFieldType:n}){let r=n?.(`mediaUrl`);return r?(0,q.jsxs)(B,{className:`gap-1`,"data-testid":`style-control-backgroundImage`,children:[(0,q.jsx)(Je,{className:`text-xs`,children:(0,q.jsx)(v,{id:`editor.styles.fillImage`,message:`Fill image`})}),(0,K.createElement)(r,{field:{name:`backgroundImage`,type:`mediaUrl`,accept:`image/`},rhf:{value:Os(e),onChange:e=>t(typeof e==`string`&&e!==``?`url("${e}")`:null),onBlur:()=>void 0,name:`backgroundImage`},disabled:!1,testId:`style-control-backgroundImage`})]}):(0,q.jsx)(As,{value:e,onChange:t})}function As({value:e,onChange:t}){let n=(0,K.useId)();return(0,q.jsxs)(B,{className:`gap-1`,"data-testid":`style-control-backgroundImage`,children:[(0,q.jsx)(U,{htmlFor:n,className:`text-xs`,children:(0,q.jsx)(v,{id:`editor.styles.fillImage`,message:`Fill image`})}),(0,q.jsx)(G,{id:n,value:Os(e),onChange:e=>{let n=e.target.value.trim();t(n===``?null:`url("${n}")`)},placeholder:`https://…`,"data-testid":`style-control-backgroundImage-url`})]})}function js({tokens:e,valueOf:t,setter:n}){return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Is,{value:t(`opacity`),onChange:n(`opacity`)}),(0,q.jsx)(Qo,{label:`Box shadow`,property:`boxShadow`,category:`boxShadow`,value:t(`boxShadow`),tokens:e,onChange:n(`boxShadow`)}),(0,q.jsx)(Fs,{value:t(`textShadow`),onChange:n(`textShadow`)})]})}var Ms={x:`1`,y:`1`,blur:`3`,color:`#000000`};function Ns(e){if(!e)return Ms;let t=e.trim().split(/\s+/),n=(e,t)=>e?e.replace(`px`,``):t;return{x:n(t[0],Ms.x),y:n(t[1],Ms.y),blur:n(t[2],Ms.blur),color:t[3]??Ms.color}}function Ps(e){return`${e.x}px ${e.y}px ${e.blur}px ${e.color}`}function Fs({value:e,onChange:t}){let n=(0,K.useId)(),r=e!==void 0,i=Ns(e),a=e=>n=>t(Ps({...i,[e]:n}));return(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`style-text-shadow`,children:[(0,q.jsxs)(B,{orientation:`horizontal`,children:[(0,q.jsx)(U,{htmlFor:`${n}-toggle`,className:`text-xs`,children:(0,q.jsx)(v,{id:`editor.styles.textShadow`,message:`Text shadow`})}),(0,q.jsx)(ct,{id:`${n}-toggle`,checked:r,onCheckedChange:e=>t(e?Ps(Ms):null),"data-testid":`style-text-shadow-toggle`,"aria-label":`Text shadow`})]}),r?(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,q.jsx)(`input`,{type:`color`,value:Xo.test(i.color)?i.color:`#000000`,onChange:e=>a(`color`)(e.target.value),className:`border-input h-8 w-full cursor-pointer rounded-md border bg-transparent p-1`,"data-testid":`style-text-shadow-color`,"aria-label":`Text shadow color`}),(0,q.jsx)(`div`,{className:`grid grid-cols-3 gap-2`,children:[`x`,`y`,`blur`].map(e=>(0,q.jsxs)(B,{className:`gap-1`,children:[(0,q.jsx)(U,{htmlFor:`${n}-${e}`,className:`text-xs capitalize`,children:e}),(0,q.jsx)(G,{id:`${n}-${e}`,type:`number`,value:i[e],onChange:t=>a(e)(t.target.value||`0`),className:`h-8`,"data-testid":`style-text-shadow-${e}`})]},e))})]}):null]})}function Is({value:e,onChange:t}){let n=(0,K.useId)(),r=e===void 0?1:Number(e),i=Number.isFinite(r)?r:1;return(0,q.jsxs)(B,{className:`gap-1`,"data-testid":`style-control-opacity`,children:[(0,q.jsx)(U,{htmlFor:n,className:`text-xs`,children:(0,q.jsx)(v,{id:`editor.styles.opacity`,message:`Opacity`})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(pt,{min:0,max:1,step:.05,value:[i],onValueChange:e=>{let n=e[0];typeof n==`number`&&t(String(n))},className:`flex-1`,"data-testid":`style-control-opacity-slider`,"aria-label":`Opacity`}),(0,q.jsx)(G,{id:n,type:`number`,min:0,max:1,step:.1,value:e??``,placeholder:`1`,onChange:e=>t(e.target.value===``?null:e.target.value),className:`h-8 w-16`,"data-testid":`style-control-opacity-input`})]})]})}var Ls=`__default__`;function Rs({value:e,onChange:t}){let n=_r(e),r=(0,K.useId)();return(0,q.jsxs)(B,{className:`gap-1`,"data-testid":`block-tag-name`,children:[(0,q.jsx)(U,{htmlFor:r,className:`text-xs`,children:(0,q.jsx)(v,{id:`editor.htmlAttrs.tagName`,message:`Tag name`})}),(0,q.jsxs)(k,{value:n??Ls,onValueChange:e=>t(e===Ls?``:e),children:[(0,q.jsx)(E,{id:r,className:`w-full`,"data-testid":`block-tag-name-select`,children:(0,q.jsx)(T,{})}),(0,q.jsxs)(D,{children:[(0,q.jsx)(O,{value:Ls,"data-testid":`block-tag-name-option-default`,children:(0,q.jsx)(v,{id:`editor.htmlAttrs.tagName.default`,message:`Default`})}),hr.map(e=>(0,q.jsx)(O,{value:e,"data-testid":`block-tag-name-option-${e}`,children:e},e))]})]})]})}function zs({className:e,onChange:t}){let{i18n:n}=_(),r=(0,K.useId)();return(0,q.jsxs)(B,{className:`gap-1`,children:[(0,q.jsx)(U,{htmlFor:r,className:`text-xs`,children:(0,q.jsx)(v,{id:`editor.styles.cssClasses`,message:`CSS classes`})}),(0,q.jsx)(G,{id:r,value:e??``,onChange:e=>t(e.target.value),placeholder:n._({id:`editor.styles.cssClasses.placeholder`,message:`my-class other-class`}),"data-testid":`style-css-classes`})]})}function Bs({tokens:e,valueOf:t,setter:n}){return(0,q.jsx)(`div`,{className:`flex flex-col gap-3`,children:Ds.map(r=>(0,q.jsxs)(`div`,{className:`border-border flex flex-col gap-2 rounded-md border p-2`,"data-testid":r.testId,children:[(0,q.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:r.label}),(0,q.jsx)(`div`,{className:`grid grid-cols-2 gap-x-2 gap-y-2`,children:Es.map(i=>{let a=`${r.prefix}${i}`;return(0,q.jsx)(Qo,{label:i,property:a,category:`spacing`,value:t(a),tokens:e,onChange:n(a)},a)})})]},r.prefix))})}var Vs=new Set;function Hs({defaultValue:e,previewUrl:t,origin:n,registry:r,capabilities:i=Vs,patterns:a,breakpoints:o,tokens:s,readOnly:c=!1,previewBanner:l,previewLink:u,liveUrl:d,title:f,onTitleChange:p,onBack:m,onChange:h,documentPanel:g,publish:_,overlay:y,onRefreshBlockLoader:b,resolvePluginFieldType:x}){return c?(0,q.jsxs)(za,{initialTree:e?.blocks,breakpoints:o,children:[(0,q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,"data-testid":`plumix-editor-preview`,children:[l,(0,q.jsx)(_o,{previewUrl:t,origin:n,registry:r,capabilities:i,readOnly:!0})]}),y]}):(0,q.jsxs)(za,{initialTree:e?.blocks,breakpoints:o,children:[(0,q.jsxs)(Ee,{className:`flex h-full min-h-0 flex-col`,style:{"--sidebar-width":`18rem`,"--header-height":`3.25rem`},"data-testid":`plumix-editor-layout`,children:[(0,q.jsx)(No,{title:f,onTitleChange:p,onBack:m,publish:_,previewLink:u,liveUrl:d}),(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1`,children:[(0,q.jsx)(ge,{side:`left`,collapsible:`offcanvas`,className:`top-(--header-height) !h-[calc(100svh-var(--header-height))]`,"data-testid":`plumix-editor-left`,children:(0,q.jsxs)(ut,{defaultValue:`blocks`,className:`flex h-full min-h-0 flex-col`,children:[(0,q.jsx)(xe,{children:(0,q.jsxs)(nt,{children:[(0,q.jsx)(st,{value:`blocks`,"data-testid":`plumix-tab-blocks`,children:(0,q.jsx)(v,{id:`editor.tab.blocks`,message:`Blocks`})}),(0,q.jsx)(st,{value:`layers`,"data-testid":`plumix-tab-layers`,children:(0,q.jsx)(v,{id:`editor.tab.layers`,message:`Layers`})})]})}),(0,q.jsxs)(Ne,{children:[(0,q.jsx)(H,{value:`blocks`,children:(0,q.jsx)(Ha,{registry:r,capabilities:i,patterns:a})}),(0,q.jsx)(H,{value:`layers`,children:(0,q.jsx)(Wo,{registry:r})})]})]})}),(0,q.jsxs)(we,{className:`min-w-0`,children:[(0,q.jsx)(Ya,{}),(0,q.jsx)(_o,{previewUrl:t,origin:n,registry:r,capabilities:i})]}),(0,q.jsx)(Us,{registry:r,tokens:s,documentPanel:g,onRefreshBlockLoader:b,resolvePluginFieldType:x})]})]}),(0,q.jsx)(Qa,{}),(0,q.jsx)(Vo,{}),y,h?(0,q.jsx)(Ws,{onChange:h}):null]})}function Us({registry:e,tokens:t,documentPanel:n,onRefreshBlockLoader:r,resolvePluginFieldType:i}){let a=Q(e=>e.rightPanel),o=Q(e=>e.setRightPanel);return(0,q.jsx)(ge,{side:`right`,collapsible:`offcanvas`,className:`top-(--header-height) !h-[calc(100svh-var(--header-height))]`,"data-testid":`plumix-editor-right`,children:(0,q.jsxs)(ut,{value:a,onValueChange:e=>o(e),className:`flex h-full min-h-0 flex-col`,children:[(0,q.jsx)(xe,{children:(0,q.jsxs)(nt,{children:[(0,q.jsx)(st,{value:`block`,"data-testid":`plumix-tab-block`,children:(0,q.jsx)(v,{id:`editor.tab.block`,message:`Block`})}),(0,q.jsx)(st,{value:`styles`,"data-testid":`plumix-tab-styles`,children:(0,q.jsx)(v,{id:`editor.tab.styles`,message:`Styles`})}),(0,q.jsx)(st,{value:`page`,"data-testid":`plumix-tab-page`,children:(0,q.jsx)(v,{id:`editor.tab.page`,message:`Page`})})]})}),(0,q.jsxs)(Ne,{children:[(0,q.jsx)(H,{value:`block`,children:(0,q.jsx)(Mo,{registry:e,onRefreshBlockLoader:r,resolvePluginFieldType:i})}),(0,q.jsx)(H,{value:`styles`,children:(0,q.jsx)(ds,{tokens:t??{},resolvePluginFieldType:i})}),(0,q.jsx)(H,{value:`page`,"data-testid":`plumix-page-panel`,children:n??(0,q.jsx)(`p`,{className:`text-muted-foreground p-4 text-sm`,children:(0,q.jsx)(v,{id:`editor.page.empty`,message:`No document settings.`})})})]})]})})}function Ws({onChange:e}){let t=Va(),n=(0,K.useRef)(e);return(0,K.useEffect)(()=>{n.current=e}),(0,K.useEffect)(()=>t.subscribe((e,t)=>{e.tree!==t.tree&&n.current(Sr(e.tree))}),[t]),null}r();var Gs=Wt({title:Qt(Zt(),Vt(),Kt(300)),slug:bt,content:Jt(Gt()),excerpt:Ut(Qt(Zt(),Kt(600)),``),status:Xt([`draft`,`published`,`scheduled`,`trash`]),meta:Ht(Zt(),Gt()),terms:Ht(Zt(),Yt(qt())),parentId:Jt($t)}),Ks={statusSaved:{id:`editor.plainForm.status.saved`},statusSaving:{id:`editor.plainForm.status.saving`},statusError:{id:`editor.plainForm.status.error`},titlePlaceholder:{id:`editor.plainForm.titlePlaceholder`},titleAriaLabel:{id:`editor.plainForm.titleAriaLabel`}},qs={saved:Ks.statusSaved,saving:Ks.statusSaving,error:Ks.statusError};function Js(e,t){return e?`saving`:t?`error`:`saved`}function Ys({initialValues:e,metaBoxes:t,headline:n,isSubmitting:r,serverError:i,onSubmit:a,revisionsTrigger:o,previewLinkAction:s,autosaveMs:c=0}){let l=W(),u=gn({resolver:xn(Gs),defaultValues:e}),d=_n({control:u.control,name:`status`}),f=Js(r,i),p=_n({control:u.control}),m=u.formState.isDirty,h=(0,K.useRef)(a);return(0,K.useEffect)(()=>{h.current=a}),(0,K.useEffect)(()=>{if(c<=0||!m||r)return;let e=setTimeout(()=>{u.handleSubmit(e=>h.current(e))()},c);return()=>clearTimeout(e)},[p,c,m,r,u]),(0,q.jsx)(bn,{...u,children:(0,q.jsxs)(`form`,{className:`mx-auto flex max-w-2xl flex-col gap-4 p-6`,"data-testid":`plain-form-layout`,onSubmit:e=>{u.handleSubmit(a)(e)},children:[(0,q.jsx)(`h1`,{className:`sr-only`,children:n}),(0,q.jsxs)(`header`,{className:`flex items-center gap-3 border-b pb-3`,"data-testid":`plain-form-header`,children:[(0,q.jsx)(vn,{control:u.control,name:`title`,render:({field:e})=>(0,q.jsx)(hn,{className:`flex-1`,children:(0,q.jsx)(yn,{children:(0,q.jsx)(G,{...e,type:`text`,placeholder:l(Ks.titlePlaceholder),"aria-label":l(Ks.titleAriaLabel),"data-testid":`plain-form-title-input`})})})}),(0,q.jsx)(`span`,{className:`bg-muted rounded px-2 py-1 text-xs`,"data-testid":`plain-form-status-pill`,"data-status":f,children:l(qs[f])}),s,o,(0,q.jsx)(j,{type:`submit`,variant:`outline`,"data-testid":`plain-form-save-button`,disabled:r,children:(0,q.jsx)(v,{id:`editor.plainForm.save`,message:`Save`})}),(0,q.jsx)(j,{type:`button`,"data-testid":`plain-form-publish-button`,disabled:r||d===`published`,onClick:()=>{u.setValue(`status`,`published`),u.handleSubmit(a)()},children:(0,q.jsx)(v,{id:`editor.plainForm.publish`,message:`Publish`})})]}),t.map(e=>(0,q.jsx)(`section`,{"aria-labelledby":`plain-form-meta-box-heading-${e.id}`,"data-testid":`plain-form-meta-box-${e.id}`,children:(0,q.jsxs)(on,{className:`@container`,children:[(0,q.jsxs)(nn,{children:[(0,q.jsx)(`h2`,{id:`plain-form-meta-box-heading-${e.id}`,className:`text-lg leading-none font-semibold`,"data-testid":`plain-form-meta-box-heading-${e.id}`,children:l(e.label)}),e.description?(0,q.jsx)(an,{children:l(e.description)}):null]}),(0,q.jsx)(rn,{className:`flex flex-col gap-4`,children:e.fields.map(e=>(0,q.jsx)(St,{field:e,name:`meta.${e.key}`,disabled:r},e.key))})]})},e.id))]})})}var Xs={preview:{id:`editor.preview.open`},previewTooltip:{id:`editor.preview.tooltip`},more:{id:`editor.preview.more`},copy:{id:`editor.previewLink.copy`},copied:{id:`editor.previewLink.copied`},failed:{id:`editor.previewLink.failed`}};function Zs({mintPreviewLink:e}){let t=W(),[n,r]=(0,K.useState)(!1);function i(){let n=window.open(``,`_blank`);r(!0),e().then(({url:e})=>{let t=new URL(e,window.location.origin).href;n?(n.opener=null,n.location.href=t):window.open(t,`_blank`,`noopener,noreferrer`)}).catch(()=>{n?.close(),ce(t(Xs.failed))}).finally(()=>{r(!1)})}async function a(){r(!0);let n=e().then(({url:e})=>new URL(e,window.location.origin).href);try{await qe(n),ae(t(Xs.copied))}catch{ce(t(Xs.failed))}finally{r(!1)}}return(0,q.jsxs)(`div`,{className:`flex items-center`,children:[(0,q.jsxs)(Tn,{children:[(0,q.jsx)(Sn,{asChild:!0,children:(0,q.jsxs)(j,{variant:`ghost`,size:`sm`,className:`gap-1.5`,"data-testid":`editor-preview`,onClick:i,disabled:n,children:[(0,q.jsx)(Ln,{className:`size-4`,"aria-hidden":!0}),t(Xs.preview)]})}),(0,q.jsx)(Cn,{children:t(Xs.previewTooltip)})]}),(0,q.jsxs)(He,{children:[(0,q.jsx)(_e,{asChild:!0,children:(0,q.jsx)(j,{variant:`ghost`,size:`icon`,className:`size-8`,"data-testid":`editor-preview-menu`,disabled:n,"aria-label":t(Xs.more),children:(0,q.jsx)(ne,{className:`size-4`,"aria-hidden":!0})})}),(0,q.jsx)(Te,{align:`end`,children:(0,q.jsxs)(R,{"data-testid":`editor-copy-preview-link`,onClick:()=>void a(),children:[(0,q.jsx)(P,{className:`size-4`,"aria-hidden":!0}),t(Xs.copy)]})})]})]})}var Qs={thisRevision:{id:`editor.revisions.diffDialog.pane.thisRevision`},current:{id:`editor.revisions.diffDialog.pane.current`}};function $s({entryId:e,revisionId:t,onOpenChange:n,fetchRevision:r,fetchCurrent:i}){let a=W(),[o,s]=(0,K.useState)(t);t!==null&&t!==o&&s(t);let c=S({queryKey:[`entry.revision.diff`,o],enabled:o!==null,queryFn:()=>r(o??0)}),l=S({queryKey:[`entry.current.diff`,e],enabled:o!==null,queryFn:()=>i(e)});return(0,q.jsx)(Fe,{open:t!==null,onOpenChange:n,children:(0,q.jsxs)(L,{className:`max-w-4xl`,"data-testid":`revision-diff-modal`,showCloseButton:!0,children:[(0,q.jsxs)(Ue,{children:[(0,q.jsx)(je,{children:(0,q.jsx)(v,{id:`editor.revisions.diffDialog.title`,message:`Revision JSON diff`})}),(0,q.jsx)(Ae,{children:(0,q.jsx)(v,{id:`editor.revisions.diffDialog.description`,message:`Side-by-side: this revision (left) vs. the current entry (right).`})})]}),(0,q.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 md:grid-cols-2`,children:[(0,q.jsx)(ec,{label:a(Qs.thisRevision),snapshot:c.data,isError:c.isError}),(0,q.jsx)(ec,{label:a(Qs.current),snapshot:l.data,isError:l.isError})]})]})})}function ec({label:e,snapshot:t,isError:n}){let r=(0,K.useId)();return n?(0,q.jsxs)(`section`,{"aria-labelledby":r,children:[(0,q.jsx)(`div`,{id:r,className:`text-muted-foreground mb-1 text-xs font-medium`,children:e}),(0,q.jsx)(`pre`,{className:`bg-muted max-h-96 overflow-auto rounded-md p-2 text-xs`,"data-testid":`revision-diff-modal-error`,children:(0,q.jsx)(v,{id:`editor.revisions.diffDialog.pane.error`,message:`Failed to load snapshot.`})})]}):t?(0,q.jsxs)(`section`,{"aria-labelledby":r,children:[(0,q.jsx)(`div`,{id:r,className:`text-muted-foreground mb-1 text-xs font-medium`,children:e}),(0,q.jsx)(`pre`,{className:`bg-muted max-h-96 overflow-auto rounded-md p-2 text-xs`,children:JSON.stringify(t,null,2)})]}):(0,q.jsxs)(`section`,{"aria-labelledby":r,"aria-busy":`true`,children:[(0,q.jsx)(`div`,{id:r,className:`text-muted-foreground mb-1 text-xs font-medium`,children:e}),(0,q.jsx)(`div`,{"data-testid":`revision-diff-modal-loading`,className:`max-h-96 space-y-2 rounded-md border p-3`,children:Array.from({length:8},(e,t)=>(0,q.jsx)(sn,{className:t%3==0?`h-3 w-2/3`:`h-3`},t))})]})}var tc={loadingAria:{id:`editor.revisions.sheet.loadingAria`},unknownAuthor:{id:`editor.revisions.sheet.unknownAuthor`},loadingMore:{id:`editor.revisions.sheet.loadingMore`},loadMore:{id:`editor.revisions.sheet.loadMore`},commentPlaceholder:{id:`editor.revisions.sheet.commentPlaceholder`},commentSaving:{id:`editor.revisions.sheet.commentSaving`},commentSave:{id:`editor.revisions.sheet.commentSave`},diffAriaLabel:{id:`editor.revisions.sheet.diffAriaLabel`}};function nc({entryId:e,fetchPage:t,relativeTime:n,fetchRevision:r,fetchCurrent:i,onPreview:a,onSaveMessage:o}){let[s,c]=(0,K.useState)(!1),l=f({queryKey:[`entry.revisions`,e],enabled:s,initialPageParam:null,queryFn:({pageParam:n})=>t({entryId:e,cursor:n}),getNextPageParam:e=>e.nextCursor}),[u,d]=(0,K.useState)(null),p=l.data?.pages.flatMap(e=>e.revisions)??[],m=!!l.data?.pages.at(-1)?.nextCursor;function h(e){a(e),c(!1)}return(0,q.jsxs)(De,{open:s,onOpenChange:e=>{c(e),e||d(null)},children:[(0,q.jsx)(Oe,{asChild:!0,children:(0,q.jsx)(j,{variant:`outline`,size:`sm`,"data-testid":`revisions-sheet-trigger`,children:(0,q.jsx)(v,{id:`editor.revisions.sheet.trigger`,message:`Revisions`})})}),(0,q.jsxs)(ye,{side:`right`,"data-plumix-revisions-sheet":``,className:`overflow-y-auto`,children:[(0,q.jsxs)(Re,{children:[(0,q.jsx)(Se,{children:(0,q.jsx)(v,{id:`editor.revisions.sheet.title`,message:`Revisions`})}),(0,q.jsx)(Ce,{children:(0,q.jsx)(v,{id:`editor.revisions.sheet.description`,message:`Every save creates a new revision. Newest first.`})})]}),(()=>{let e=(0,q.jsx)(rc,{isLoading:l.isLoading,isError:l.isError,allRevisions:p,relativeTime:n,onPreview:h,onOpenDiff:d,onSaveMessage:o,hasMore:m,isFetchingNextPage:l.isFetchingNextPage,fetchNextPage:()=>void l.fetchNextPage()});return(0,q.jsxs)(ut,{defaultValue:`all`,className:`mt-2`,children:[(0,q.jsxs)(nt,{className:`w-full`,children:[(0,q.jsx)(st,{value:`all`,"data-testid":`revisions-tab-all`,children:(0,q.jsx)(v,{id:`editor.revisions.sheet.tab.all`,message:`All`})}),(0,q.jsx)(st,{value:`publishes`,"data-testid":`revisions-tab-publishes`,children:(0,q.jsx)(v,{id:`editor.revisions.sheet.tab.publishes`,message:`Publishes`})}),(0,q.jsx)(st,{value:`autosaves`,"data-testid":`revisions-tab-autosaves`,children:(0,q.jsx)(v,{id:`editor.revisions.sheet.tab.autosaves`,message:`Autosaves`})})]}),(0,q.jsx)(H,{value:`all`,children:e}),(0,q.jsx)(H,{value:`publishes`,children:e}),(0,q.jsx)(H,{value:`autosaves`,children:(0,q.jsx)(`div`,{"data-testid":`revisions-autosaves-empty`,className:`text-muted-foreground px-4 py-6 text-sm`,children:(0,q.jsx)(v,{id:`editor.revisions.sheet.autosavesEmpty`,message:`Autosaves will appear here once drafts-of-published lands.`})})})]})})()]}),(0,q.jsx)($s,{entryId:e,revisionId:u,onOpenChange:e=>{e||d(null)},fetchRevision:r,fetchCurrent:i})]})}function rc({isLoading:e,isError:t,allRevisions:n,relativeTime:r,onPreview:i,onOpenDiff:a,onSaveMessage:o,hasMore:s,isFetchingNextPage:c,fetchNextPage:l}){let u=W();return(0,q.jsxs)(q.Fragment,{children:[e?(0,q.jsx)(`ul`,{"data-testid":`revisions-sheet-loading`,"aria-label":u(tc.loadingAria),"aria-busy":`true`,className:`divide-y px-4 py-2`,children:Array.from({length:4},(e,t)=>(0,q.jsxs)(`li`,{className:`flex items-center gap-1 py-2`,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1 p-2`,children:[(0,q.jsx)(sn,{className:`mb-2 h-4 w-2/3`}),(0,q.jsx)(sn,{className:`h-3 w-1/3`})]}),(0,q.jsx)(sn,{className:`h-7 w-7 shrink-0 rounded-md`})]},t))}):null,t?(0,q.jsx)(`div`,{"data-testid":`revisions-sheet-error`,className:`text-destructive px-4 py-6`,children:(0,q.jsx)(v,{id:`editor.revisions.sheet.error`,message:`Failed to load revisions.`})}):null,!e&&n.length===0?(0,q.jsx)(`div`,{"data-testid":`revisions-sheet-empty`,className:`px-4 py-6`,children:(0,q.jsx)(v,{id:`editor.revisions.sheet.empty`,message:`No revisions yet.`})}):null,n.length>0?(0,q.jsx)(`ul`,{"data-testid":`revisions-sheet-list`,className:`divide-y px-4 py-2`,children:n.map(e=>(0,q.jsx)(ic,{revision:e,relativeTime:r,onPreview:i,onOpenDiff:a,onSaveMessage:o},e.id))}):null,s?(0,q.jsx)(`div`,{className:`px-4 py-4`,children:(0,q.jsx)(j,{variant:`outline`,size:`sm`,"data-testid":`revisions-sheet-load-more`,onClick:l,disabled:c,children:u(c?tc.loadingMore:tc.loadMore)})}):null]})}function ic({revision:e,relativeTime:t,onPreview:n,onOpenDiff:r,onSaveMessage:i}){let a=W(),[o,s]=(0,K.useState)(!1),[c,l]=(0,K.useState)(e.message??``),[u,d]=(0,K.useState)(!1);function f(){if(o){s(!1);return}l(e.message??``),s(!0)}async function p(){let t=c.trim();d(!0);try{await i({revisionId:e.id,message:t.length===0?null:t}),s(!1)}finally{d(!1)}}return(0,q.jsxs)(`li`,{"data-testid":`revisions-sheet-item-${e.id}`,className:`flex flex-col gap-1 py-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsxs)(`button`,{type:`button`,"data-testid":`revisions-sheet-item-${e.id}-select`,onClick:()=>n(e.id),className:`hover:bg-accent min-w-0 flex-1 rounded-md p-2 text-start`,children:[(0,q.jsx)(`div`,{className:`truncate text-sm font-medium`,children:e.title}),(0,q.jsxs)(`div`,{className:`text-muted-foreground text-xs`,children:[(0,q.jsx)(`span`,{children:e.authorName??e.authorEmail??a(tc.unknownAuthor)}),` · `,(0,q.jsx)(`span`,{children:t(e.updatedAt)})]})]}),(0,q.jsx)(`button`,{type:`button`,"data-testid":`revisions-sheet-item-${e.id}-comment`,"aria-label":e.message===null?`Add comment`:`Edit comment`,"aria-pressed":o,onClick:f,className:`text-muted-foreground hover:bg-accent hover:text-foreground inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md`,children:e.message===null?(0,q.jsx)(Wn,{className:`h-4 w-4`,"aria-hidden":!0}):(0,q.jsx)(Un,{className:`text-foreground h-4 w-4`,"aria-hidden":!0})}),(0,q.jsx)(`button`,{type:`button`,"data-testid":`revisions-sheet-item-${e.id}-diff`,"aria-label":a(tc.diffAriaLabel),onClick:()=>r(e.id),className:`text-muted-foreground hover:bg-accent hover:text-foreground inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md font-mono text-xs`,children:`</>`})]}),o?(0,q.jsxs)(`div`,{"data-testid":`revisions-sheet-item-${e.id}-comment-editor`,className:`flex items-start gap-2 px-2`,children:[(0,q.jsx)(G,{type:`text`,"data-testid":`revisions-sheet-item-${e.id}-comment-input`,value:c,maxLength:280,placeholder:a(tc.commentPlaceholder),onChange:e=>l(e.target.value),onKeyDown:e=>{e.key===`Escape`&&s(!1),e.key===`Enter`&&!u&&!e.nativeEvent.isComposing&&p()},className:`h-8 text-xs`}),(0,q.jsx)(j,{variant:`default`,size:`sm`,"data-testid":`revisions-sheet-item-${e.id}-comment-save`,onClick:()=>void p(),disabled:u,children:a(u?tc.commentSaving:tc.commentSave)}),(0,q.jsx)(j,{variant:`outline`,size:`sm`,"data-testid":`revisions-sheet-item-${e.id}-comment-cancel`,onClick:()=>s(!1),disabled:u,children:(0,q.jsx)(v,{id:`editor.revisions.sheet.commentCancel`,message:`Cancel`})})]}):e.message===null?null:(0,q.jsx)(`div`,{"data-testid":`revisions-sheet-item-${e.id}-comment-display`,className:`text-muted-foreground truncate px-2 text-xs italic`,children:e.message})]})}function ac({entryId:e,enabled:t,onPreview:n}){let r=x(),{formatRelative:i}=en();return(0,K.useMemo)(()=>t?(0,q.jsx)(nc,{entryId:e,relativeTime:i,fetchPage:({entryId:e,cursor:t})=>b.entry.revisions.list.call({entryId:e,cursor:t}),fetchRevision:async e=>{let t=await b.entry.revisions.get.call({revisionId:e});return{title:t.title,slug:t.slug,excerpt:t.excerpt,content:t.content,meta:t.meta}},fetchCurrent:async e=>{let t=await b.entry.get.call({id:e});return{title:t.title,slug:t.slug,excerpt:t.excerpt,content:t.content,meta:t.meta}},onPreview:n,onSaveMessage:async({revisionId:t,message:n})=>{await b.entry.revisions.setMessage.call({revisionId:t,message:n}),await r.invalidateQueries({queryKey:[`entry.revisions`,e]})}}):null,[e,t,n,r,i])}var oc={saveFailed:{id:`editor.entry.edit.saveFailed`}};function sc({entryType:e,id:t,supportsRevisions:n,capabilities:r}){let i=W(),{data:a}=ee(b.entry.get.queryOptions({input:{id:t}})),o=x(),s=(0,K.useRef)(a.updatedAt),c=(0,K.useRef)(null);c.current??=Gr();let l=c.current,u=zt(e.name,r),d=Kr(u,a.meta),f=(0,K.useRef)(d),[p,m]=(0,K.useState)(null),h=C({mutationFn:async e=>{let n=zr(f.current,e.meta),r=()=>l.run(async()=>{let r=await b.entry.update.call({id:t,title:e.title,status:e.status,...Object.keys(n).length>0?{meta:n}:{},expectedLiveUpdatedAt:s.current});return s.current=r.updatedAt,r}),i=async()=>{let t=await r();return f.current=e.meta,t};try{return await i()}catch(e){let n=await Fr(e,o,t);if(n.kind!==`recovered`)throw e;return n.updatedAt&&(s.current=n.updatedAt),await i()}},onSuccess:async()=>{m(null),await o.invalidateQueries({queryKey:b.entry.get.queryOptions({input:{id:t}}).queryKey})},onError:e=>{m(e instanceof Error?e.message:oc.saveFailed)}}),g=te({from:`/entries/$slug/$id/edit`}),_=ac({entryId:t,enabled:n,onPreview:(0,K.useCallback)(e=>{g({search:t=>({...t,revision:e})})},[g])}),v={title:a.title,slug:a.slug,content:a.content,excerpt:a.excerpt??``,status:a.status,meta:d,terms:{},parentId:a.parentId},y=a.title.trim()===``?i(tn(e,`editItem`)):a.title,S=h.isPending||p===null?null:i(p);return(0,q.jsx)(Ys,{initialValues:v,metaBoxes:u,headline:y,isSubmitting:h.isPending,serverError:S,autosaveMs:500,revisionsTrigger:_,previewLinkAction:e.isPublic===!1?void 0:(0,q.jsx)(Zs,{mintPreviewLink:()=>b.entry.createPreviewLink.call({id:t})}),onSubmit:e=>h.mutate({title:e.title,status:e.status,meta:e.meta})},String(t))}var cc={published:{id:`editor.toast.published`},publishFailed:{id:`editor.toast.publishFailed`},autosaveFailed:{id:`editor.toast.autosaveFailed`},discarded:{id:`editor.toast.discarded`},discardFailed:{id:`editor.toast.discardFailed`},staleLoading:{id:`editor.stale.loading`},revisionConflict:{id:`editor.revision.conflict`}},lc=Tt(cn()),uc=Rt(),dc=Pt(),fc=It();function pc(){let{slug:e,id:t}=h.useParams(),{user:n}=h.useRouteContext(),{revision:r}=h.useSearch(),{data:i}=ee(b.entry.get.queryOptions({input:{id:t,preview:!0}})),[a,o]=(0,K.useState)(0),c=(0,K.useCallback)(()=>o(e=>e+1),[]);if(r!==void 0)return(0,q.jsx)(hc,{id:t,revisionId:r,capabilities:n.capabilities},`revision:${String(r)}`);let l=Lt(e);if(!p(l)&&l)return(0,q.jsx)(sc,{entryType:l,id:t,supportsRevisions:s(l),capabilities:n.capabilities});let u=i._preview?.source??`live`;return(0,q.jsx)(mc,{capabilities:n.capabilities,entryType:l,userId:n.id,onReseed:c},`${u}:${a}`)}function mc({capabilities:e,entryType:t,userId:n,onReseed:r}){let{slug:i,id:a}=h.useParams(),o=te(),{data:s}=ee(b.entry.get.queryOptions({input:{id:a,preview:!0}})),{data:c}=ee(d(a)),f=x(),p=W(),m=t?.name,g=(0,K.useMemo)(()=>new Set(e),[e]),[_,v]=(0,K.useState)(!1),y=(0,K.useRef)(s.updatedAt),w=(0,K.useRef)(null);w.current??=Gr();let T=w.current,E=(0,K.useRef)(!1),[D,ne]=(0,K.useState)(null),O=Cr(s.content)?s.content:Sr([]),re=(0,K.useRef)(O),k=(0,K.useRef)(JSON.stringify(O.blocks)),[A,j]=(0,K.useState)(s.excerpt??``),M=(0,K.useRef)(A),ie=(0,K.useRef)(s.excerpt??``),N=(0,K.useMemo)(()=>m?zt(m,e):[],[m,e]),se=(0,K.useMemo)(()=>Kr(N,s.meta),[N,s.meta]),le=(0,K.useRef)(se),P=(0,K.useRef)(se),ue=s.meta[Tr],de=typeof ue==`string`?ue:null,[fe,F]=(0,K.useState)(de),pe=(0,K.useRef)(de),me=(0,K.useRef)(de),[he,ge]=(0,K.useState)(s.title),[_e,ve]=(0,K.useState)(s.slug),[ye,be]=(0,K.useState)(s.parentId),xe=(0,K.useRef)(he),Se=(0,K.useRef)(_e),Ce=(0,K.useRef)(ye),we=(0,K.useRef)(s.title),Te=(0,K.useRef)(s.slug),Ee=(0,K.useRef)(s.parentId),De=(0,K.useMemo)(()=>{let n=new Set(t?.termTaxonomies??[]);return Bt(e).filter(e=>n.has(e.name)&&g.has(`term:${e.name}:assign`))},[t,e,g]),[Oe,ke]=(0,K.useState)(()=>Object.fromEntries(De.map(e=>[e.name,(s.terms[e.name]??[]).map(String)]))),Ae=(0,K.useRef)(Oe),je=(0,K.useRef)(Oe);(0,K.useEffect)(()=>{M.current=A,xe.current=he,Se.current=_e,Ce.current=ye,Ae.current=Oe,pe.current=fe});let Me=(0,K.useCallback)(async e=>{let t=await Fr(e,f,a);return t.kind===`recovered`?(t.updatedAt&&(y.current=t.updatedAt),!0):(ne(Dn(e)??null),E.current||(E.current=!0,ce(p(cc.autosaveFailed))),!1)},[f,a,p]),I=(0,K.useMemo)(()=>{let e=async(t=0)=>{let n=re.current.blocks,r=JSON.stringify(n),i=r!==k.current,o=M.current,c=o!==ie.current,l=le.current,u=zr(P.current,l),d=Object.keys(u).length>0,f=pe.current,p=f!==me.current;if(!(!i&&!c&&!d&&!p))try{(await T.run(async()=>{let e=await b.entry.update.call({id:a,...i?{content:{version:`plumix.v2`,blocks:n}}:{},...c?{excerpt:o.length===0?null:o}:{},...d?{meta:u}:{},...p?{template:f}:{},expectedLiveUpdatedAt:y.current});return e.type===s.type&&(y.current=e.updatedAt),e})).type!==s.type&&v(!0),i&&(k.current=r),c&&(ie.current=o),d&&(P.current=l),p&&(me.current=f),E.current=!1,ne(null)}catch(n){await Me(n)&&t===0&&await e(1)}};return Ir(()=>e(),Mr)},[a,s.type,Me,T]),L=(0,K.useMemo)(()=>{let e=async(t=0)=>{let n=xe.current.trim(),r=Se.current.trim(),i=Ce.current,o=Ae.current,s=je.current,c=Object.keys(o).filter(e=>JSON.stringify(o[e])!==JSON.stringify(s[e]??[])),l=n.length>0&&n!==we.current,u=r.length>0&&r!==Te.current,d=i!==Ee.current,f=c.length>0;if(!l&&!u&&!d&&!f)return;let p=Object.fromEntries(c.map(e=>[e,(o[e]??[]).map(Number)]));try{let e=await T.run(async()=>{let e=await b.entry.update.call({id:a,...l?{title:n}:{},...u?{slug:r}:{},...d?{parentId:i}:{},...f?{terms:p}:{},saveAs:`live`,expectedLiveUpdatedAt:y.current});return y.current=e.updatedAt,e});l&&(we.current=e.title),u&&(Te.current=e.slug),d&&(Ee.current=e.parentId),f&&(je.current={...s,...Object.fromEntries(c.map(e=>[e,o[e]??[]]))}),E.current=!1}catch(n){await Me(n)&&t===0&&await e(1)}};return Ir(()=>e(),Mr)},[a,Me,T]);(0,K.useEffect)(()=>()=>{I.flush(),L.flush()},[I,L]);let Ne=(0,K.useCallback)(e=>{re.current=e,I.call()},[I]),Pe=(0,K.useCallback)(e=>{ge(e),L.call()},[L,ge]),Fe=(0,K.useCallback)(e=>{ve(e),L.call()},[L,ve]),Ie=(0,K.useCallback)(e=>{be(e),L.call()},[L,be]),Le=(0,K.useCallback)((e,t)=>{ke(n=>({...n,[e]:[...t]})),L.call()},[L,ke]),Re=(0,K.useCallback)(e=>{j(e),I.call()},[I,j]),ze=(0,K.useCallback)(e=>{le.current=e,Object.keys(zr(P.current,e)).length!==0&&I.call()},[I]),Be=(0,K.useCallback)(e=>{pe.current=e,F(e),I.call()},[I,F]),Ve=(0,K.useCallback)(async()=>{await Promise.all([I.flush(),L.flush()]),await o({to:`/entries/$slug`,params:{slug:i},search:En})},[I,L,o,i]),R=(0,K.useMemo)(()=>m?Ft(m):[],[m]),He=t?.supports?.includes(`title`)??!1,Ue=t?.supports?.includes(`excerpt`)??!1,We=t?.isHierarchical===!0,Ge=S({...b.entry.list.queryOptions({input:{type:m??``,limit:100,orderBy:`title`,order:`asc`}}),enabled:We&&m!==void 0}),Ke=(0,K.useMemo)(()=>(Ge.data??[]).filter(e=>e.id!==a).map(e=>({id:e.id,title:e.title})),[Ge.data,a]),qe=l({queries:De.map(e=>({...b.term.list.queryOptions({input:{taxonomy:e.name,limit:200}})}))}),Je=(0,K.useMemo)(()=>De.map((e,t)=>({name:e.name,label:p(e.label),options:oe(qe[t]?.data??[],e.isHierarchical===!0),value:Oe[e.name]??[],onChange:t=>Le(e.name,t)})),[De,qe,Oe,Le,p]),Ye=(0,K.useMemo)(()=>(0,q.jsx)(jr,{slug:_e,onSlugChange:Fe,excerpt:Ue?{value:A,onChange:Re}:void 0,parent:We?{value:ye,options:Ke,onChange:Ie}:void 0,template:R.length>0?{value:fe,options:R,onChange:Be}:void 0,taxonomies:Je.length>0?Je:void 0,metaBoxes:N.length>0?{boxes:N,initialMeta:se,onMetaChange:ze,fieldErrors:D}:void 0}),[_e,Fe,Ue,A,Re,We,ye,Ke,Ie,R,fe,Be,Je,N,se,ze,D]),Xe=u({entryType:t,currentStatus:s.status,isAuthor:s.authorId===n,capabilities:g})===`edit-with-draft`,Ze=s.status===`published`,z=s._preview?.source===`autosave`||_,Qe=s._preview?Lr(s._preview.autosaveUpdatedAt,s._preview.liveUpdatedAt):`none`,[B,$e]=(0,K.useState)(!1),et=Qe===`stale`&&!B,V=s._preview?.liveUpdatedAt,tt=(0,K.useCallback)(()=>Promise.all([f.invalidateQueries({queryKey:b.entry.get.queryOptions({input:{id:a}}).queryKey}),f.invalidateQueries({queryKey:b.entry.get.queryOptions({input:{id:a,preview:!0}}).queryKey}),...m?[f.invalidateQueries({queryKey:b.entry.list.key({input:{type:m}})}),f.invalidateQueries({queryKey:[`entry.revisions`,a]})]:[]]),[a,m,f]),nt=(0,K.useCallback)(e=>{ne(Dn(e)??null),ce(p(cc.publishFailed))},[p]),rt=C({mutationFn:async()=>{let e=await b.entry.update.call({id:a,status:`published`,expectedLiveUpdatedAt:y.current});return y.current=e.updatedAt,e},onSuccess:()=>(E.current=!1,ne(null),ae(p(cc.published)),tt()),onError:nt}),it=C({mutationFn:()=>b.entry.publish.call({id:a,expectedLiveUpdatedAt:y.current}),onSuccess:async e=>{E.current=!1,ne(null),ae(p(cc.published)),y.current=e.updatedAt,v(!1),await tt()},onError:nt}),at=C({mutationFn:()=>b.entry.discardDraft.call({id:a}),onSuccess:async()=>{ae(p(cc.discarded)),v(!1),await tt(),I.cancel(),L.cancel(),r()},onError:()=>ce(p(cc.discardFailed))}),H=(0,K.useCallback)(()=>rt.mutate(),[rt]),U=(0,K.useCallback)(()=>I.flush(),[I]),ot=(0,K.useCallback)(()=>it.mutate(),[it]),st=(0,K.useCallback)(()=>at.mutate(),[at]),ct=(0,K.useCallback)(()=>{V&&(y.current=V),$e(!0)},[V]),lt=(0,K.useCallback)(()=>{at.mutate(void 0,{onSuccess:()=>$e(!0)})},[at]),ut=(0,K.useMemo)(()=>Xe?{draftMode:{hasPendingDraft:z,onSaveDraft:U,onPublishDraft:ot,onDiscardDraft:st,isSaving:!1,isPublishing:it.isPending,isDiscarding:at.isPending}}:{onPublish:H,isPublished:Ze,isPublishing:rt.isPending},[Xe,z,U,ot,st,it.isPending,at.isPending,H,Ze,rt.isPending]),dt=S({...b.entry.get.queryOptions({input:{id:a}}),enabled:et}),ft=(0,q.jsx)(Jr,{open:et,autosaveSnapshot:{title:s.title,content:s.content,excerpt:s.excerpt},liveSnapshot:dt.data?{title:dt.data.title,content:dt.data.content,excerpt:dt.data.excerpt}:{title:p(cc.staleLoading),content:null,excerpt:null},onUseMine:ct,onUseTheirs:lt,isResolving:at.isPending}),pt=new URL(c.url,window.location.origin),mt=pt.toString();pt.searchParams.set(`plumix.edit`,``);let ht=new URL(c.url,window.location.origin);ht.search=``;let gt=Ze?ht.toString():void 0;return(0,q.jsx)(Hs,{previewUrl:pt.toString(),origin:pt.origin,defaultValue:Cr(s.content)?s.content:void 0,registry:lc,capabilities:g,patterns:uc,breakpoints:dc,tokens:fc,previewLink:mt,liveUrl:gt,title:He?he:void 0,onTitleChange:He?Pe:void 0,onBack:()=>void Ve(),onChange:Ne,documentPanel:Ye,publish:ut,overlay:ft,onRefreshBlockLoader:e=>b.entry.refreshBlockLoader.call({id:a,blockId:e}).then(e=>e.data),resolvePluginFieldType:Hr})}function hc({id:e,revisionId:t,capabilities:n}){let r=h.useNavigate(),a=x(),o=W(),{formatRelative:s}=en(),c=(0,K.useMemo)(()=>new Set(n),[n]),{data:l}=ee(d(e)),u=S(b.entry.revisions.get.queryOptions({input:{revisionId:t}})),f=S(b.entry.get.queryOptions({input:{id:e}})),p=(0,K.useCallback)(()=>void r({search:e=>({...e,revision:void 0})}),[r]),m=f.data?.updatedAt,g=C({mutationFn:()=>b.entry.revisions.restore.call({revisionId:t,expectedLiveUpdatedAt:m}),onSuccess:async()=>{await Promise.all([a.invalidateQueries({queryKey:b.entry.get.queryOptions({input:{id:e}}).queryKey}),a.invalidateQueries({queryKey:b.entry.get.queryOptions({input:{id:e,preview:!0}}).queryKey})]),p()}}),_=u.data;if(!_||!f.data)return(0,q.jsx)(i,{});let v=new URL(l.url,window.location.origin);v.searchParams.set(`plumix.edit`,``);let w=g.error instanceof y&&g.error.code===`CONFLICT`?cc.revisionConflict:g.error instanceof Error?g.error.message:null,te=w===null?null:o(w),T=_.authorName??_.authorEmail??`#${String(t)}`;return(0,q.jsx)(Hs,{previewUrl:v.toString(),origin:v.origin,defaultValue:Cr(_.content)?_.content:void 0,registry:lc,capabilities:c,breakpoints:dc,readOnly:!0,previewBanner:(0,q.jsx)(Wr,{revisionUpdatedAt:_.updatedAt,revisionAuthor:T,relativeTime:s,onBackToLive:p,onRestore:()=>g.mutate(),isRestoring:g.isPending,restoreError:te})})}export{pc as component};
|