@enhance-eng/enhance-dev 0.1.26-dev.sha-89ace4e3433b → 0.1.26-dev.sha-8d1f34aab051

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.
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import{FailedToExitError as e,parseRouter as t}from"trpc-cli";import{z as n}from"zod";import{createHash as r}from"node:crypto";import{TRPCError as i,initTRPC as a}from"@trpc/server";import{middlewareMarker as o}from"@trpc/server/unstable-core-do-not-import";import{setTimeout as s}from"node:timers/promises";import c from"node:assert/strict";import{Buffer as l}from"node:buffer";import{TRPCClientError as ee}from"@trpc/client";var te=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports);const ne=n.strictObject({}),re=n.object({firstAgentWorkAt:n.iso.datetime().nullable()}),u=2048,ie=1e4,ae=1024,oe=ae*ae,se=n.object({cursor:n.string().nullable().default(null),limit:n.number().int().min(1).max(100).default(20)}),d=e=>n.object({items:n.array(e),truncated:n.boolean()}),f=n.enum([`never-captured`,`capture-pending`,`extension-unavailable`,`capture-failed`,`source-mismatch`,`upload-incomplete`,`blob-missing`,`image-load-failed`,`unsupported-legacy-state`]),ce=n.object({thumbnailId:n.uuid(),url:n.string().max(4096),width:n.literal(528),height:n.literal(312),bytes:n.number().int().min(1).max(1048576)}),p=n.object({canvasId:n.uuid(),thumbnailId:n.uuid(),clientReleaseIdentity:n.string().min(1).max(100),attemptedOperation:n.literal(`thumbnail-download`),recoveryOutcome:n.literal(`fallback-shown`)}),m=n.object({recorded:n.literal(!0)}),le=n.enum([`invite-only`,`link-view`,`link-comment`]),ue=n.enum([`owner`,`can-comment`,`can-view`]),de=n.enum([`can-comment`,`can-view`]),fe=n.object({read:n.boolean(),comment:n.enum([`yes`,`sign-in`,`no`]),share:n.boolean(),manage:n.boolean()}),h=n.object({id:n.uuid(),title:n.string().min(1).max(200),accessState:le,organisationId:n.uuid().nullable(),sourceUrl:n.string().max(u).nullable(),unresolvedCount:n.number().int().min(0),viewerCan:fe,createdAt:n.iso.datetime(),lastActivityAt:n.iso.datetime()}),pe=n.object({title:n.string().trim().min(1).max(200),organisationId:n.uuid().nullable().default(null),sourceUrl:n.string().max(u).nullable().default(null)}),me=h.extend({version:n.number().int().positive()}),he=n.object({canvasId:n.uuid()}),ge=n.union([n.literal(`own`),n.literal(`everything`),n.uuid()]),_e=n.object({collection:ge.default(`own`),title:n.string().trim().min(1).max(200).optional().describe(`Title text to match before returning canvas ids.`),deleted:n.boolean().default(!1),accessState:le.optional(),scope:n.enum([`all`,`mine`,`shared`]).default(`all`),hasUnresolved:n.boolean().default(!1)}),ve=h.extend({screenCount:n.number().int().min(0),hasRecording:n.boolean()}),ye=d(n.union([ve.extend({thumbnail:ce}),ve.extend({thumbnail:n.null(),thumbnailFallbackReason:f})])),be=n.object({canvasId:n.uuid(),title:n.string().trim().min(1).max(200)}),xe=n.object({canvasId:n.uuid()}),Se=n.object({canvasId:n.uuid(),deletedAt:n.iso.datetime()}),Ce=n.object({canvasId:n.uuid(),organisationId:n.union([n.uuid(),n.literal(`personal`)])}),we=n.object({canvas:h}),Te=n.object({canvasId:n.uuid(),organisationId:n.union([n.uuid(),n.literal(`personal`)]),title:n.string().trim().min(1).max(200).optional()}),Ee=n.object({canvas:h}),De=n.object({canvasId:n.uuid(),confirmation:n.string().min(1).max(200)}),Oe=n.object({canvasId:n.uuid()}),ke=n.object({canvasId:n.uuid(),accessState:le}),Ae=n.object({canvas:h,widened:n.boolean()}),je=n.object({canvasId:n.uuid()}),Me=n.object({lastViewedAt:n.iso.datetime().nullable()}),Ne=n.object({canvasId:n.uuid()}),Pe=n.object({canvasId:n.uuid()}),Fe=1e5,g=n.number().min(-1e5).max(Fe),_=n.number().nonnegative().max(Fe),Ie=n.object({ratio:_,offset:g.optional()}),Le=n.object({min:_.optional(),max:_.optional(),minParent:Ie.optional(),maxParent:Ie.optional()}).refine(({min:e,max:t})=>e===void 0||t===void 0||e<=t,`size minimum cannot exceed maximum`),Re=n.discriminatedUnion(`mode`,[n.object({mode:n.literal(`fixed`),value:_}).strict(),Le.extend({mode:n.literal(`hug`)}).strict(),Le.extend({mode:n.literal(`fill`),offset:g.optional()}).strict()]),ze=n.object({top:_,right:_,bottom:_,left:_}),Be=n.union([n.literal(`auto`),g]),Ve=n.object({top:Be,right:Be,bottom:Be,left:Be}),He=n.object({mode:n.enum([`auto-fill`,`auto-fit`]),minimum:n.number().positive().max(Fe)}),Ue=n.object({x:g,y:g}),We=n.object({direction:n.enum([`row`,`column`]),alignItems:n.enum([`start`,`center`,`end`,`stretch`]),alignContent:n.enum([`start`,`center`,`end`,`stretch`,`space-between`,`space-around`,`space-evenly`]).optional(),justifyContent:n.enum([`start`,`center`,`end`,`space-between`,`space-around`,`space-evenly`]),gap:_,rowGap:_.optional(),columnGap:_.optional(),wrap:n.enum([`nowrap`,`wrap`]).optional(),gridColumns:n.number().int().positive().max(Fe).optional(),gridAutoRepeat:He.optional(),padding:ze}).strict(),Ge=n.object({rotation:g.optional(),flipHorizontal:n.boolean().optional(),flipVertical:n.boolean().optional(),aspectRatioLocked:n.boolean().optional(),aspectRatio:n.number().positive().max(Fe).optional(),horizontal:Re.optional(),vertical:Re.optional(),position:n.enum([`flow`,`absolute`]).optional(),alignSelf:n.enum([`auto`,`start`,`center`,`end`,`stretch`]).optional(),flexGrow:_.optional(),flexShrink:_.optional(),flexBasis:n.union([n.literal(`auto`),_,Ie]).optional(),flowOffset:Ue.optional(),order:g.int().optional(),margin:Ve.partial().optional(),clipContent:n.boolean().optional(),container:We.partial().extend({padding:ze.partial().optional()}).optional()}).strict(),v=g,y=_,b=n.number().min(0).max(1),Ke=n.string().min(1).max(200),qe=n.object({space:n.enum([`srgb`,`display-p3`]),red:b,green:b,blue:b,alpha:b}),Je=n.object({id:Ke,position:b,color:qe}),Ye=n.object({x:b,y:b}),Xe=n.number().min(-1).max(1),Ze=n.object({exposure:Xe.optional(),contrast:Xe.optional(),saturation:Xe.optional(),temperature:Xe.optional(),tint:Xe.optional(),highlights:Xe.optional(),shadows:Xe.optional()}),Qe=n.tuple([v,v,v,v,v,v]).refine(([e,t,n,r])=>e*r!==t*n,`image transform must be invertible`),$e=n.object({id:Ke,visible:n.boolean(),opacity:b}),et=n.discriminatedUnion(`kind`,[$e.extend({kind:n.literal(`solid`),color:qe}),$e.extend({kind:n.literal(`linear-gradient`),angle:v,stops:n.array(Je).min(2).max(32)}),$e.extend({kind:n.literal(`radial-gradient`),center:Ye,radius:Ye,stops:n.array(Je).min(2).max(32)}),$e.extend({kind:n.literal(`image`),assetId:n.string().min(1).max(500),fit:n.enum([`fill`,`cover`,`fit`,`crop`,`tile`]),tileScale:v.positive().optional(),tileOrigin:n.enum([`center`,`top-left`]).optional(),rotation:n.union([n.literal(0),n.literal(90),n.literal(180),n.literal(270)]).optional(),crop:n.object({x:b,y:b,width:b,height:b}).optional(),transform:Qe.optional(),adjustments:Ze.optional()}).refine(e=>e.crop===void 0||e.transform===void 0,{message:`image paint cannot have both a crop rectangle and an affine transform`,path:[`transform`]})]),tt=n.object({topLeft:y,topRight:y,bottomRight:y,bottomLeft:y,smoothing:b.optional()}),nt=n.object({visible:n.boolean(),width:n.object({top:y,right:y,bottom:y,left:y}),style:n.enum([`solid`,`dashed`,`dotted`]),paint:et}),rt=n.object({visible:n.boolean(),width:y,offset:v,style:n.enum([`solid`,`dashed`,`dotted`]),paint:et}),it=n.object({id:Ke,visible:n.boolean(),kind:n.enum([`outer`,`inner`]),color:qe,offsetX:v,offsetY:v,blur:y,spread:v}),at=n.object({id:Ke,visible:n.boolean()}),ot=n.discriminatedUnion(`kind`,[at.extend({kind:n.literal(`blur`),value:y}),at.extend({kind:n.literal(`brightness`),value:y}),at.extend({kind:n.literal(`contrast`),value:y}),at.extend({kind:n.literal(`grayscale`),value:b}),at.extend({kind:n.literal(`hue-rotate`),value:v}),at.extend({kind:n.literal(`invert`),value:b}),at.extend({kind:n.literal(`saturate`),value:y}),at.extend({kind:n.literal(`sepia`),value:b})]),st=n.enum([`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`plus-lighter`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`]);n.object({opacity:b,blendMode:st,fills:n.array(et).max(32),border:nt,outline:rt,radius:tt,shadows:n.array(it).max(32),filters:n.array(ot).max(32),backdropFilters:n.array(ot).max(32)});const ct=n.object({opacity:b.optional(),blendMode:st.optional(),fills:n.array(et).max(32).optional(),border:nt.optional(),outline:rt.optional(),radius:tt.optional(),shadows:n.array(it).max(32).optional(),filters:n.array(ot).max(32).optional(),backdropFilters:n.array(ot).max(32).optional()}).refine(e=>Object.keys(e).length>0,`appearance values cannot be empty`),lt=[`opacity`,`blendMode`,`fills`,`border`,`outline`,`radius`,`shadows`,`filters`,`backdropFilters`],ut=n.enum(lt),dt=n.object({opacity:b.optional(),blendMode:st.optional(),fills:n.array(et).max(32).optional(),border:nt.optional(),outline:rt.optional(),radius:tt.optional(),shadows:n.array(it).max(32).optional(),filters:n.array(ot).max(32).optional(),backdropFilters:n.array(ot).max(32).optional(),clear:n.array(ut).min(1).max(lt.length).optional()}).refine(e=>Object.keys(e).length>0,`appearance patch cannot be empty`).refine(({clear:e,...t})=>e===void 0||e.every(e=>t[e]===void 0),`appearance patch cannot set and clear the same property`),ft=n.number().min(-1e5).max(Fe),pt=n.number().nonnegative().max(Fe),mt=n.string().regex(/^[\u{20}-\u{7E}]{4}$/u),ht=mt.refine(e=>![`wght`,`opsz`].includes(e)),x=n.object({family:n.string().min(1).max(500),fallbackFamilies:n.array(n.string().min(1).max(500)).max(20),size:pt,weight:n.number().min(1).max(1e3),variations:n.record(ht,ft).refine(e=>Object.keys(e).length<=64).optional(),features:n.record(mt,n.number().int().nonnegative().max(65535)).refine(e=>Object.keys(e).length<=128).optional(),opticalSize:n.discriminatedUnion(`mode`,[n.object({mode:n.literal(`auto`)}),n.object({mode:n.literal(`font-default`)}),n.object({mode:n.literal(`fixed`),value:ft})]).optional(),style:n.enum([`normal`,`italic`,`oblique`]),lineHeight:n.discriminatedUnion(`mode`,[n.object({mode:n.literal(`normal`)}),n.object({mode:n.literal(`fixed`),value:pt}),n.object({mode:n.literal(`percent`),value:pt})]),letterSpacing:n.union([ft,n.object({mode:n.literal(`percent`),value:ft})]),align:n.enum([`left`,`center`,`right`,`justify`]),direction:n.enum([`auto`,`ltr`,`rtl`]).optional(),verticalAlign:n.enum([`top`,`middle`,`bottom`]),verticalTrim:n.enum([`none`,`cap-height`]).optional(),transform:n.enum([`none`,`uppercase`,`lowercase`,`capitalize`]),decoration:n.object({line:n.enum([`none`,`underline`,`line-through`]),style:n.enum([`solid`,`double`,`dotted`,`dashed`,`wavy`]),color:qe.optional(),thickness:n.union([pt,n.object({mode:n.literal(`percent`),value:pt}),n.object({mode:n.literal(`font-default`)})]).optional(),offset:n.union([ft,n.object({mode:n.literal(`percent`),value:ft})]).optional(),skipInk:n.enum([`auto`,`none`,`all`]).optional()}),stroke:n.object({width:pt,paint:et,alignment:n.enum([`inside`,`center`,`outside`]).optional()}).optional(),wrapping:n.enum([`wrap`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]),wrapStyle:n.enum([`auto`,`pretty`,`balance`]).optional(),paragraphSpacing:pt.optional(),paragraphIndent:pt.optional(),listStyle:n.enum([`none`,`bulleted`,`numbered`]).optional(),listSpacing:pt.optional(),hangingList:n.boolean().optional(),hangingPunctuation:n.boolean().optional(),truncation:n.object({mode:n.enum([`none`,`ellipsis`]),maxLines:n.number().int().min(1).max(Fe).nullable()}).optional(),insets:n.object({top:ft,right:ft,bottom:ft,left:ft}).optional()}),gt=x.pick({align:!0,direction:!0,wrapStyle:!0,paragraphSpacing:!0,paragraphIndent:!0,listStyle:!0,listSpacing:!0,hangingList:!0}).partial().extend({listLevel:n.number().int().min(1).max(16).optional(),listStart:n.number().int().min(1).max(Fe).optional()}).strict(),_t=x.partial().strict(),vt=x.keyof().options,yt=_t.extend({featureChanges:n.object({set:x.shape.features,clear:n.array(mt).max(128).optional(),removeIfEmpty:n.boolean().optional()}).strict().optional(),variationChanges:n.object({set:x.shape.variations,clear:n.array(ht).max(64).optional(),removeIfEmpty:n.boolean().optional()}).strict().optional(),clear:n.array(x.keyof()).max(vt.length).optional()}).refine(e=>e.clear?.every(t=>e[t]===void 0)??!0,`a typography property cannot be set and cleared in the same patch`).refine(e=>[`features`,`variations`].every(t=>{let n=e[t===`features`?`featureChanges`:`variationChanges`];return n===void 0||e[t]===void 0&&e.clear?.includes(t)!==!0&&(n.clear?.every(e=>n.set?.[e]===void 0)??!0)}),`font settings cannot be replaced and patched, or set and cleared, together`),bt={"font-family":[`family`,`fallbackFamilies`],"font-size":[`size`],"font-weight":[`weight`],"font-variation-settings":[`weight`,`variations`,`opticalSize`],"font-optical-sizing":[`opticalSize`],"font-feature-settings":[`features`],"font-style":[`style`],"line-height":[`lineHeight`],"letter-spacing":[`letterSpacing`],"text-align":[`align`],direction:[`direction`],"unicode-bidi":[`direction`],"text-indent":[`paragraphIndent`],"hanging-punctuation":[`hangingPunctuation`],"align-content":[`verticalAlign`],"text-box":[`verticalTrim`],"text-box-trim":[`verticalTrim`],"text-box-edge":[`verticalTrim`],"text-transform":[`transform`],"text-decoration":[`decoration`],"text-decoration-line":[`decoration`],"text-decoration-style":[`decoration`],"text-decoration-color":[`decoration`],"text-decoration-thickness":[`decoration`],"text-underline-offset":[`decoration`],"text-decoration-skip-ink":[`decoration`],"-webkit-text-stroke":[`stroke`],"-webkit-text-stroke-width":[`stroke`],"-webkit-text-stroke-color":[`stroke`],"--canvas-text-stroke-alignment":[`stroke`],"white-space":[`wrapping`],"text-wrap-style":[`wrapStyle`],"text-wrap":[`wrapStyle`]},xt=/javascript|vbscript|data\s*:\s*text\/html|expression\s*\(|@import/iu,St=/^(?:behavior|-moz-binding)$/iu,Ct=n.string().min(1).max(200).regex(/^(?:--[\w-]+|-(?:webkit|moz|ms|o)-[a-z][a-z\d-]*|[a-z][a-z\d-]*)$/iu).refine(e=>!St.test(e),`unsafe CSS property`),wt=n.string().max(1e4).refine(e=>!xt.test(e),`unsafe CSS value`),S=n.object({id:n.string().min(1).max(200),property:Ct,value:wt,enabled:n.boolean()}),Tt=n.object({declarations:n.array(S).max(128)}).refine(({declarations:e})=>new Set(e.map(e=>e.id)).size===e.length,`additional style ids must be unique`),Et=n.array(S.shape.id).max(128).refine(e=>new Set(e).size===e.length,`declaration ids must be unique`),Dt=n.object({set:n.array(S).max(128).refine(e=>new Set(e.map(e=>e.id)).size===e.length,`declaration ids must be unique`).optional(),clear:Et.optional(),order:Et.optional(),empty:n.enum([`keep`,`remove`]).optional()}).strict().refine(e=>e.set?.every(t=>e.clear?.includes(t.id)!==!0)??!0,`a declaration cannot be set and cleared in the same patch`),C=n.object({url:n.url(),expiresAt:n.iso.datetime(),headers:n.record(n.string(),n.string())}),Ot=n.object({url:n.url(),expiresAt:n.iso.datetime(),bytes:n.number().int().min(0)}),kt=n.object({add:n.array(n.object({resourceId:n.string().min(1).max(300)}).catchall(n.unknown())).max(100),remove:n.array(n.string().min(1).max(300)).max(100)}),At=`/v1/canvas-assets/`,jt=[`image/avif`,`image/gif`,`image/jpeg`,`image/png`,`image/webp`],Mt=20*1024*1024,Nt=n.object({canvasId:n.uuid(),contentType:n.enum(jt),bytes:n.number().int().positive().max(Mt)}),Pt=n.object({assetId:n.uuid(),path:n.string().startsWith(`/v1/canvas-assets/`),upload:C}),Ft=(e,t)=>`${At}${encodeURIComponent(e)}/${encodeURIComponent(t)}`,It=n.tuple([n.uuid(),n.uuid()]),Lt=e=>{if(!e.startsWith(`/v1/canvas-assets/`))return null;let t=It.safeParse(e.slice(18).split(`/`)).data;return t===void 0?null:{canvasId:t[0],assetId:t[1]}},Rt=20*1024*1024,zt=[`font/ttf`,`font/otf`,`font/woff`,`font/woff2`],Bt=n.object({canvasId:n.uuid(),sha256:n.string().regex(/^[a-f0-9]{64}$/u)}),Vt=Bt.extend({bytes:n.number().int().positive().max(Rt)}),Ht=Vt.extend({contentType:n.enum(zt)}),Ut=n.object({path:n.string().startsWith(`/v1/canvas-assets/`)}),Wt=Ut.extend({upload:C}),Gt=(e,t)=>`${At}${encodeURIComponent(e)}/fonts/${encodeURIComponent(t)}`,Kt=n.object({canvasId:n.uuid(),sources:n.array(Bt).min(1).max(100)}),qt=n.object({resources:n.array(n.object({source:Bt,path:n.string()}))}),Jt=e=>{if(!e.startsWith(`/v1/canvas-assets/`))return null;let[t,n,r,i]=e.slice(18).split(`/`,4);return n!==`fonts`||i!==void 0?null:Bt.safeParse({canvasId:t,sha256:r}).data??null},Yt=1e3,Xt={image:jt,font:zt},Zt=n.strictObject({canvasId:n.uuid(),clientToken:n.uuid()}),Qt=n.discriminatedUnion(`kind`,[Zt.extend({kind:n.literal(`image`),contentType:n.enum(jt),bytes:n.number().int().positive().max(Mt),sha256:n.string().regex(/^[a-f0-9]{64}$/u)}),Zt.extend({kind:n.literal(`font`),contentType:n.enum(zt),bytes:n.number().int().positive().max(Rt),sha256:n.string().regex(/^[a-f0-9]{64}$/u)})]),$t=n.discriminatedUnion(`kind`,[n.strictObject({kind:n.literal(`image`),width:n.number().int().positive(),height:n.number().int().positive()}),n.strictObject({kind:n.literal(`font`),family:n.string().min(1),subfamily:n.string(),style:n.enum([`normal`,`italic`,`oblique`]),minimumWeight:n.number().min(1).max(Yt),maximumWeight:n.number().min(1).max(Yt)}).refine(e=>e.minimumWeight<=e.maximumWeight,`Font weight bounds must be ordered.`)]),en=n.strictObject({canvasId:n.uuid(),clientToken:n.uuid(),assetId:n.uuid(),kind:n.enum([`image`,`font`]),contentType:n.string(),bytes:n.number().int().positive().max(20971520),sha256:n.string().regex(/^[a-f0-9]{64}$/u),path:n.string().startsWith(`/v1/canvas-assets/`),state:n.enum([`awaiting_upload`,`ready`]),metadata:$t.nullable()}).refine(e=>e.state===`ready`==(e.metadata!==null),`Readiness must match verified metadata.`).refine(e=>e.metadata===null||e.metadata.kind===e.kind,`Metadata must describe the reserved asset kind.`).refine(e=>Xt[e.kind].includes(e.contentType),`Content type must match the asset kind.`).refine(e=>e.path===(e.kind===`image`?Ft(e.canvasId,e.assetId):Gt(e.canvasId,e.sha256)),`The resource path must match its native identity.`),tn=en.safeExtend({upload:C.nullable()}).refine(e=>e.state===`awaiting_upload`==(e.upload!==null),`Only pending uploads receive upload access.`),nn=new Set([`aspect-ratio`,`-webkit-line-clamp`,`line-clamp`,`flex-grow`,`flex-shrink`,`font-weight`,`opacity`,`order`,`z-index`,`grid-area`,`grid-row`,`grid-column`,`grid-row-start`,`grid-row-end`,`grid-column-start`,`grid-column-end`]),rn=(e,t)=>typeof t==`number`&&!nn.has(e.toLowerCase())?`${String(t)}px`:String(t),an=[`top`,`right`,`bottom`,`left`],on=[`grid-template-rows`,`grid-template-columns`,`grid-template-areas`],sn={gap:[`row-gap`,`column-gap`],"text-wrap":[`text-wrap-mode`,`text-wrap-style`],padding:an.map(e=>`padding-${e}`),margin:an.map(e=>`margin-${e}`),flex:[`flex-grow`,`flex-shrink`,`flex-basis`],"flex-flow":[`flex-direction`,`flex-wrap`],"place-content":[`align-content`,`justify-content`],"place-items":[`align-items`,`justify-items`],"place-self":[`align-self`,`justify-self`],"grid-template":on,grid:[...on,`grid-auto-rows`,`grid-auto-columns`,`grid-auto-flow`],"grid-row":[`grid-row-start`,`grid-row-end`],"grid-column":[`grid-column-start`,`grid-column-end`],"grid-area":[`grid-row-start`,`grid-column-start`,`grid-row-end`,`grid-column-end`]},cn=e=>sn[e.toLowerCase()]??[e.toLowerCase()],ln=(e,t)=>{if(e.isEscaped)return{...e,isEscaped:!1};if(t===`\\`)return{...e,isEscaped:!0};if(e.quote!==``)return{...e,quote:e.quote===t?``:e.quote};if([`"`,`'`].includes(t))return{...e,quote:t};let n=[`(`,`[`,`{`].includes(t)?1:[`)`,`]`,`}`].includes(t)?-1:0;return{...e,depth:e.depth+n}},un=(e,t=`space`)=>{let n=[],r=``,i={depth:0,quote:``,isEscaped:!1};for(let a of e){let e=i.depth===0&&i.quote===``&&!i.isEscaped;i=ln(i,a),e&&(t===`space`?/\s/u.test(a):a===t)?((t!==`space`||r!==``)&&n.push(r.trim()),r=``):r+=a}return(t!==`space`||r!==``)&&n.push(r.trim()),n},dn=e=>/^(?:--|-?[_a-z\u{80}-\u{FFFF}])[-\w\u{80}-\u{FFFF}]*$/iu.test(e)&&!/^(?:auto|span|initial|unset)$/iu.test(e)?e:`auto`,fn=(e,t,n)=>{let r=un(t,`/`),i=r[0]??t;if(e!==`grid-area`)return r[n]??dn(i);let a=r[1]??dn(i);return[i,a,r[2]??dn(i),r[3]??dn(a)][n]??t},pn=(e,t,n)=>{let r=un(n?e:t),i=r.filter(e=>!/^(?:auto-flow|dense)$/iu.test(e)).join(` `),a=`${n?`row`:`column`}${r.some(e=>/^dense$/iu.test(e))?` dense`:``}`;return[n?`none`:e,n?t:`none`,`none`,n&&i!==``?i:`auto`,!n&&i!==``?i:`auto`,a]},mn=(e,t,n)=>{if(/^(?:none|initial|unset)$/iu.test(t))return[`none`,`none`,`none`,`auto`,`auto`,`row`][n]??t;let r=un(t,`/`),i=r[0]??t,a=r[1];if(i===``||a===``||r.length>2)return t;let o=un(i).some(e=>e.toLowerCase()===`auto-flow`),s=a!==void 0&&un(a).some(e=>e.toLowerCase()===`auto-flow`);if(e===`grid`&&a!==void 0&&o!==s)return pn(i,a,o)[n]??t;if(o||s)return t;let c=/["']/u.test(i);return a===void 0&&!c?t:[c?t:i,a??`none`,c?i:`none`,`auto`,`auto`,`row`][n]??t},hn=e=>{let t=[],n=`0%`;for(let r of e)/^(?:\d+(?:\.\d*)?|\.\d+)$/u.test(r)&&t.length<2?t.push(r):n=r;return[t[0]??`1`,t[1]??`1`,n]},gn=(e,t,n)=>{if(/(?:var|env)\(|^(?:inherit|revert(?:-layer)?)$/iu.test(t))return t;if(/^grid-(?:area|row|column)$/u.test(e))return fn(e,t,n);if(e===`grid-template`||e===`grid`)return mn(e,t,n);let r=un(t);return e===`text-wrap`?n===0?r.find(e=>/^(?:wrap|nowrap)$/u.test(e))??`wrap`:r.find(e=>/^(?:auto|balance|pretty|stable)$/u.test(e))??`auto`:e===`flex-flow`?n===0?r.find(e=>/^(?:row|column)(?:-reverse)?$/u.test(e))??`row`:r.find(e=>/^(?:nowrap|wrap|wrap-reverse)$/u.test(e))??`nowrap`:e===`flex`?t===`none`?[`0`,`0`,`auto`][n]??t:t===`initial`?[`0`,`1`,`auto`][n]??t:hn(r)[n]??t:r[n]??(n===3?r[1]:void 0)??r[0]??t},_n=e=>e.additionalStyles===void 0?{}:Object.fromEntries(e.additionalStyles.declarations.filter(e=>e.enabled).map(e=>[e.property,e.value])),vn=e=>{let t=new Set(e.additionalStyles?.declarations.map(e=>e.property.toLowerCase()));return{...Object.fromEntries(Object.entries(e.styles).filter(([e])=>!t.has(e.toLowerCase()))),..._n(e)}},yn=e=>/!important\s*$/iu.test(String(e)),bn=(e,t)=>{let n=String(e).replace(/\s*!important\s*$/iu,``).trim();return t||n.includes(`(`)?n:n.toLowerCase()},xn=(e,t)=>{let n=null,r=!1,i=Object.entries(vn(e));for(let[e,a]of i){let i=cn(e),o=i.indexOf(t);if(o===-1)continue;let s=yn(a);if(r&&!s)continue;let c=bn(a,/^grid(?:-|$)/iu.test(e));n=i.length===1?c:gn(e.toLowerCase(),c,o),r=s}return n??void 0},Sn=(e,t)=>{let n=new Set(Object.entries(vn(e)).filter(([,e])=>yn(e)).flatMap(([e])=>cn(e)));return Object.fromEntries(Object.entries(t).map(([e,t])=>[e,cn(e).some(e=>n.has(e))&&!yn(t)?`${rn(e,t)} !important`:t]))},Cn=(e,t)=>{let n=new Set,r=e;for(;r!==void 0&&!n.has(r.id);){n.add(r.id);let e=xn(r,`writing-mode`);if(e!==void 0&&e!==`inherit`&&e!==`unset`)return e;if(t===void 0)break;let i=t.relationships[r.id]?.parentId;if(i===void 0)break;r=t.nodes[i]}return`horizontal-tb`},wn=(e,t,n)=>{let r=/^(?:vertical|sideways)-/u.test(Cn(e,n));return[t===`horizontal`?`width`:`height`,t===`vertical`===r?`inline-size`:`block-size`]},Tn=e=>{if(e===void 0)return`freeform`;let t=xn(e,`display`);if(t!==void 0)return/^(?:(?:inline|block)\s+|inline-)?grid$/u.test(t)?`grid`:/^(?:(?:inline|block)\s+|inline-)?flex$/u.test(t)?`flex`:`freeform`;let n=e.layout?.container;return n===void 0?`freeform`:n.gridColumns!==void 0||n.gridAutoRepeat!==void 0?`grid`:`flex`},En=(e,t)=>{if(e===void 0||Tn(e)!==`flex`)return;let n=e.layout?.container?.direction??(t=>xn(e,t))(`flex-direction`)??`row`;if(!/^(?:row|column)(?:-reverse)?$/u.test(n))return;let r=/^(?:vertical|sideways)-/u.test(Cn(e,t));return n.startsWith(`column`)===r?`horizontal`:`vertical`},Dn=x.pick({family:!0,fallbackFamilies:!0,size:!0,weight:!0,style:!0,variations:!0,opticalSize:!0,features:!0,lineHeight:!0,letterSpacing:!0,transform:!0,decoration:!0,paragraphSpacing:!0,paragraphIndent:!0,listSpacing:!0,hangingList:!0,hangingPunctuation:!0,verticalTrim:!0,wrapStyle:!0}).strict(),On=Dn.keyof().options,kn=n.object({id:n.string().min(1).max(200),name:n.string().trim().min(1).max(200),description:n.string().max(2e3),sortKey:n.string().min(1).max(200).optional(),sourceStyleId:n.string().min(1).max(200).optional(),sourceCanvasId:n.uuid().optional(),sourceRevision:n.number().int().positive().optional(),typography:Dn.extend({listStyle:x.shape.listStyle}).transform(e=>(Reflect.deleteProperty(e,`listStyle`),e))}).strict().refine(e=>e.sourceCanvasId===void 0||e.sourceStyleId!==void 0,{message:`A source canvas belongs to a reference snapshot.`,path:[`sourceCanvasId`]}).refine(e=>e.sourceRevision===void 0||e.sourceCanvasId!==void 0&&e.sourceStyleId!==void 0,{message:`A published revision belongs to a source style and canvas.`,path:[`sourceRevision`]}),An=n.object({id:kn.shape.id,position:n.enum([`normal`,`subscript`,`superscript`]).optional(),overrides:n.partialRecord(n.enum([`fontWeight`,`fontStyle`,`fontVariationSettings`,`fontOpticalSizing`,`textDecorationLine`,`textDecorationStyle`,`textDecorationColor`,`textDecorationThickness`,`textUnderlineOffset`,`textDecorationSkipInk`]),n.union([n.string().max(1e3),n.number()])).optional()}).strict(),jn=new Set(`alignItems.backgroundColor.borderBottom.borderBottomLeftRadius.borderBottomRightRadius.borderLeft.borderRight.borderTop.borderTopLeftRadius.borderTopRightRadius.boxShadow.boxSizing.color.columnGap.display.flexDirection.fontFamily.fontFeatureSettings.fontOpticalSizing.fontSize.fontStretch.fontStyle.fontVariant.fontVariantCaps.fontVariantLigatures.fontVariantNumeric.fontVariantPosition.fontKerning.fontVariationSettings.fontWeight.justifyContent.letterSpacing.lineHeight.marginBottom.marginLeft.marginRight.marginTop.opacity.paddingBottom.paddingLeft.paddingRight.paddingTop.rowGap.textDecorationColor.textDecorationLine.textDecorationSkipInk.textDecorationStyle.textDecorationThickness.textShadow.textTransform.textUnderlineOffset.verticalAlign.whiteSpace.WebkitTextStrokeColor.WebkitTextStrokeWidth.--canvas-text-stroke-alignment`.split(`.`)),Mn=et.array().max(32).optional(),Nn=gt.pick({paragraphSpacing:!0,paragraphIndent:!0,listSpacing:!0,wrapStyle:!0}).extend({hangingPunctuation:x.shape.hangingPunctuation,verticalTrim:x.shape.verticalTrim}).strip(),Pn=new Set([`http:`,`https:`,`mailto:`,`tel:`]),Fn=e=>{let t=e.trim();if(t===``)return!1;try{let e=new URL(t,`https://enhance.invalid/`).protocol;return Pn.has(e)}catch{return!1}},In=e=>typeof e==`string`&&Fn(e)?e:void 0,Ln=e=>{if(typeof e!=`object`||!e||Array.isArray(e))return null;let t=Object.entries(e);return t.some(([e,t])=>!jn.has(e)||typeof t!=`string`&&typeof t!=`number`)?null:Object.fromEntries(t)},Rn=e=>{let t=Reflect.get(e,`sourcePath`);return{...Object.fromEntries(Object.entries(e).filter(([e])=>![`text`,`href`,`sourcePath`,`styles`,`fills`,`paragraph`,`paragraphSpacing`,`paragraphIndent`,`listSpacing`,`hangingPunctuation`,`verticalTrim`,`wrapStyle`,`soft`,`textStyle`].includes(e))),...typeof t==`string`&&{sourcePath:t}}},zn=e=>{let t=[];for(let n of e){let e=Vn(n);if(e===null)return null;t.push(e)}return t},Bn=e=>{let t=Reflect.get(e,`soft`);return t!==void 0&&t!==!0?null:{...Rn(e),kind:`break`,...t===!0&&{soft:t}}},Vn=e=>{if(typeof e!=`object`||!e)return null;let t=Reflect.get(e,`kind`),n=Rn(e);if(t===`break`)return Bn(e);if(t===`text`){let r=Reflect.get(e,`text`);return typeof r==`string`?{...n,kind:t,text:r}:null}if(t!==`span`)return null;let r=Reflect.get(e,`children`),i=Ln(Reflect.get(e,`styles`)),a=Mn.safeParse(Reflect.get(e,`fills`)),o=gt.optional().safeParse(Reflect.get(e,`paragraph`)),s=Nn.safeParse(e),c=An.optional().safeParse(Reflect.get(e,`textStyle`));if(i===null||!a.success||!o.success||!s.success||!c.success||!Array.isArray(r))return null;let l=zn(r);if(l===null)return null;let ee=In(Reflect.get(e,`href`));return{...n,kind:t,styles:i,children:l,...c.data!==void 0&&{textStyle:c.data},...a.data!==void 0&&{fills:a.data},...o.data!==void 0&&{paragraph:o.data},...Object.fromEntries(Object.entries(s.data).filter(([,e])=>e!==void 0)),...ee!==void 0&&{href:ee}}},w=e=>e.map(e=>e.kind===`break`?e.soft===!0?`\u2028`:`
3
- `:e.kind===`text`?e.text:w(e.children)).join(``),Hn=e=>{let t=e.props;if(t===void 0||!Array.isArray(t.richText))return[];let n=t.richText,r=[];for(let e of n){let t=Vn(e);if(t===null)return[];r.push(t)}let i=t.text;return w(r)===i?r:[]},Un=n.number().min(-1e7).max(1e7),Wn=Un.nonnegative(),Gn=n.string().min(1).max(200),Kn=n.string().max(32768).regex(/^[MmLlHhVvCcSsQqTtAaZzEe\d\s.,+-]*$/u),qn=n.strictObject({x:Un,y:Un,width:Wn,height:Wn}),Jn=n.strictObject({kind:n.literal(`path`),path:Kn.min(1),fillRule:n.enum([`nonzero`,`evenodd`]),viewBox:qn.extend({width:Wn.positive(),height:Wn.positive()})}),Yn=n.enum([`union`,`subtract`,`intersect`,`exclude`]),Xn=n.strictObject({kind:n.literal(`boolean`),operation:Yn,operandIds:n.array(Gn).min(2).max(16).refine(e=>new Set(e).size===e.length),result:n.strictObject({path:Kn,fillRule:n.literal(`nonzero`),isEmpty:n.boolean(),bounds:qn,inputKey:n.string().regex(/^[a-f0-9]{16}$/u)}).refine(e=>e.isEmpty===(e.path===``))}),Zn=n.discriminatedUnion(`kind`,[Jn,n.strictObject({kind:n.literal(`mask`),maskId:Gn}),Xn]),Qn=n.literal(6,{error:`This editor uses an unsupported document format. Update the editor before changing this canvas.`});n.object({signature:n.string().regex(/^[a-f0-9]{16}$/u),image:n.string().startsWith(`data:image/jpeg;base64,`).max(2e6),families:n.array(n.string().min(1).max(256)).min(1).max(256)});const T=n.object({x:n.number(),y:n.number(),width:n.number().nonnegative(),height:n.number().nonnegative()}),$n=n.enum([`start`,`center`,`end`,`stretch`,`scale`]),er=n.object({x:$n,y:$n}),tr=n.enum([`source`,`generated`,`user`]),E=n.looseObject({id:n.string().min(1).max(200),label:n.string().max(500),component:n.string().min(1).max(100),labelOrigin:tr.optional(),visible:n.boolean().optional(),locked:n.boolean().optional(),constraints:er.optional(),styles:n.record(n.string(),n.union([n.string(),n.number()])),layout:Ge.optional(),responsive:n.never().optional(),appearance:ct.optional(),typography:_t.optional(),additionalStyles:Tt.optional(),geometry:Zn.optional(),props:n.record(n.string(),n.unknown()).optional(),box:T.optional()}),nr=n.object({version:n.literal(6),nodes:n.record(n.string(),E),relationships:n.record(n.string(),n.object({parentId:n.string().min(1).max(200),sortKey:n.string().min(1).max(500)})),tombstones:n.record(n.string(),n.literal(!0)).default({})}),rr=n.record(n.string(),n.unknown()),ir=e=>{let t=rr.safeParse(e.layout).data;if(t===void 0)return e;let n=Object.fromEntries(Object.entries(t).filter(([e])=>e!==`gridTrack`)),r=rr.safeParse(n.container).data;r!==void 0&&(n.container=Object.fromEntries(Object.entries(r).filter(([e])=>e!==`materialized`)));for(let e of[`horizontal`,`vertical`]){let t=rr.safeParse(n[e]).data;t?.mode===`hug`&&(n[e]=Object.fromEntries(Object.entries(t).filter(([e])=>e!==`basis`)))}return{...e,layout:n}},ar=e=>{if(Object.keys(e).length===0)return sr();let t=n.record(n.string(),rr).safeParse(e.nodes).data;if(t!==void 0&&Object.values(t).some(e=>e.geometry!==void 0))return e;if(typeof e.version==`number`&&[3,4,5].includes(e.version))return{...e,version:6};let r=n.record(n.string(),rr).safeParse(e.nodes).data;return r===void 0?e:{...e,version:6,nodes:Object.fromEntries(Object.entries(r).map(([e,t])=>[e,ir(t)]))}},or=n.preprocess(e=>{let t=rr.safeParse(e).data;if(t===void 0)return e;let n=t.version;return new Set([void 0,1,2,3,4,5]).has(n)?ar(t):t},nr),sr=()=>({version:6,nodes:{root:{id:`root`,label:`Canvas`,component:`root`,labelOrigin:`generated`,visible:!0,locked:!1,styles:{}}},relationships:{},tombstones:{}}),cr=n.object({start:n.number().int().nonnegative(),end:n.number().int().positive(),href:n.url().refine(e=>[`http:`,`https:`].includes(new URL(e).protocol))}),lr=n.object({text:n.string(),links:n.array(cr).optional()}),ur=(e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n},dr=e=>lr.safeParse(e.props).data?.text??null,fr=e=>{let t=lr.safeParse(e.props).data;if(t===void 0)return[];let n=t.links;if(n===void 0)return[];let r=n.filter(({start:e,end:n})=>e<n&&n<=t.text.length).toSorted(ur),i=[];for(let e of r)(i.at(-1)?.end??0)<=e.start&&i.push(e);return i},pr=3e4,mr=5e4,hr=n.string().min(1).max(200),gr=n.object({code:n.enum([`asset-unavailable`,`content-omitted`,`cross-origin-frame`,`nodes-truncated`,`responsive-behavior-not-editable`,`style-degraded`,`unsupported-surface`]),message:n.string().min(1).max(500),temporaryId:hr.optional()}),_r=n.object({nodeCount:n.number().int().positive().max(pr),sourceNodeCount:n.number().int().positive().max(mr).optional(),collapsedNodeCount:n.number().int().nonnegative().max(mr).optional(),collapsedWrapperNodeCount:n.number().int().nonnegative().max(mr).optional(),collapsedNeutralWrapperNodeCount:n.number().int().nonnegative().max(mr).optional(),collapsedTransferredWrapperNodeCount:n.number().int().nonnegative().max(mr).optional(),layoutContainerCount:n.number().int().nonnegative().max(pr).optional(),removedLeafNodeCount:n.number().int().nonnegative().max(mr).optional(),retainedSemanticOwnerNodeCount:n.number().int().nonnegative().max(mr).optional(),truncatedNodeCount:n.number().int().nonnegative().max(mr*2).optional(),addedLayoutNodeCount:n.number().int().nonnegative().max(mr).optional(),issues:n.array(gr).max(mr)}).refine(({collapsedNeutralWrapperNodeCount:e,collapsedTransferredWrapperNodeCount:t,collapsedWrapperNodeCount:n})=>n===void 0||e===void 0||t===void 0||e+t===n,`wrapper collapse proof classes must explain the collapsed wrapper count`).refine(({collapsedNodeCount:e,collapsedWrapperNodeCount:t,removedLeafNodeCount:n})=>e===void 0||t===void 0||n===void 0||t+n===e,`collapsed node kinds must explain the total collapsed node count`).refine(({addedLayoutNodeCount:e,collapsedNodeCount:t,nodeCount:n,sourceNodeCount:r,truncatedNodeCount:i})=>r===void 0||t===void 0||r+(e??0)-n===t+(i??0),`added, collapsed and truncated node counts must explain the source to editable difference`).refine(({layoutContainerCount:e,nodeCount:t})=>e===void 0||e<=t,`layout container count cannot exceed editable node count`),vr=E.omit({id:!0}).extend({temporaryId:hr}),yr=n.object({temporaryId:hr,parentTemporaryId:hr,sortKey:n.string().min(1).max(500)}),br=n.object({version:n.literal(1),rootTemporaryId:hr,nodes:n.array(vr).min(1).max(pr),relationships:n.array(yr).max(pr-1),report:_r}),xr=n.object({canvasId:n.uuid(),documentFormatVersion:Qn,mutationId:n.uuid(),baseVersion:n.number().int().positive(),screenNodeId:n.string().min(1).max(200),draft:br}),Sr=n.object({canvasId:n.uuid(),mutationId:n.uuid(),previousVersion:n.number().int().positive(),version:n.number().int().positive(),rootNodeId:n.string().min(1).max(200),idMap:n.record(hr,n.string().min(1).max(200)),insertedNodeIds:n.array(n.string().min(1).max(200)),removedNodeIds:n.array(n.string().min(1).max(200)),boxes:n.record(n.string().min(1).max(200),T),affectedBounds:T}),Cr=[`queued`,`claimed`,`grant`,`navigate`,`document`,`sources`,`fonts`,`layout`,`target`,`capture`,`serialize`,`compile`,`commit`,`upload`,`complete`],wr=[`queued`,`running`,`succeeded`,`failed`,`cancelled`,`expired`],Tr=[`VERSION_CHANGED`,`TARGET_NOT_FOUND`,`TARGET_INVALID`,`OUTPUT_TOO_LARGE`,`READINESS_TIMEOUT`,`SOURCE_FAILED`,`BROWSER_CRASH`,`CAPTURE_FAILED`,`CONVERSION_FAILED`,`PREPARATION_FAILED`,`UPLOAD_FAILED`,`WORKER_UNAVAILABLE`,`CANCELLED`,`EXPIRED`,`INTERNAL`],Er=[`ASSET_UNAVAILABLE`,`FONT_FALLBACK`,`SOURCE_FALLBACK`,`SCALE_REDUCED`],Dr=16e6,Or=32*oe,kr=64*oe,Ar=1e5,jr=.1,Mr=1e3,Nr=n.number().int().positive().max(Dr),Pr=n.object({x:n.number(),y:n.number(),width:n.number().positive().max(Ar),height:n.number().positive().max(Ar)}),D=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`content`)}),n.object({kind:n.literal(`page`),pageId:n.string().min(1).max(200)}),n.object({kind:n.literal(`node`),nodeId:n.string().min(1).max(200)}),n.object({kind:n.literal(`bounds`),bounds:Pr})]),Fr=n.object({kind:n.literal(`recording`),recordingId:n.uuid(),atMs:n.number().int().nonnegative()}),Ir=n.object({kind:n.literal(`recording`),recordingId:n.uuid(),requestedAtMs:n.number().int().nonnegative(),settledAtMs:n.number().int().nonnegative()}),Lr=n.object({recordingId:n.uuid(),atMs:n.number().int().nonnegative(),screenId:n.uuid(),screenNodeId:n.string().min(1).max(200),viewport:n.object({width:n.number().int().positive(),height:n.number().int().positive()}),box:Pr,version:n.number().int().positive(),alreadyPresent:n.boolean()}),Rr=n.object({canvasId:n.uuid(),expectedVersion:n.number().int().positive().optional(),scope:n.strictObject({pageId:n.string().min(1).max(200).optional(),nodeIds:n.array(n.string().min(1).max(200)).max(Mr)}).optional(),target:D.default({kind:`content`}),sourceState:Fr.optional(),scale:n.number().min(jr).max(4).default(1),maxOutputPixels:Nr.optional(),format:n.literal(`png`).default(`png`)}).refine(e=>e.sourceState===void 0||e.target.kind===`node`,{message:`a source state requires a node render target`,path:[`sourceState`]}),zr=n.enum(Cr),Br=n.enum(wr),Vr=n.enum(Tr),Hr=n.enum(Er),Ur=n.object({code:Hr,message:n.string().min(1).max(500),sourceId:n.string().min(1).max(200).nullable()}),Wr=n.object({reason:Vr,phase:zr,message:n.string().min(1).max(500),retryable:n.boolean(),sourceId:n.string().min(1).max(200).nullable()}),Gr=n.object({phase:zr,durationMs:n.number().int().min(0)}),Kr=n.object({canvasId:n.uuid(),requestedVersion:n.number().int().positive(),loadedVersion:n.number().int().positive(),target:D,sourceState:Ir.optional(),snapshot:Lr.optional(),bounds:Pr,width:n.number().int().positive(),height:n.number().int().positive(),scale:n.number().positive(),contentType:n.literal(`image/png`),bytes:n.number().int().positive().max(Or),warnings:n.array(Ur),timings:n.array(Gr),expiresAt:n.iso.datetime()}).refine(e=>e.width*e.height<=Dr,{message:`render output may contain at most 16000000 pixels`,path:[`width`]}),qr=n.object({id:n.uuid(),canvasId:n.uuid(),purpose:n.enum([`inspection`,`snapshot`,`thumbnail`]),phase:zr,requestedVersion:n.number().int().positive(),target:D,sourceState:Fr.optional(),scale:n.number().positive(),maxOutputPixels:Nr.optional(),format:n.literal(`png`),attempt:n.number().int().min(0),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime()}),Jr=n.discriminatedUnion(`state`,[qr.extend({state:n.literal(`queued`),result:n.null(),failure:n.null()}),qr.extend({state:n.literal(`running`),result:n.null(),failure:n.null()}),qr.extend({state:n.literal(`succeeded`),phase:n.literal(`complete`),result:Kr,failure:n.null()}),qr.extend({state:n.literal(`failed`),result:n.null(),failure:Wr}),qr.extend({state:n.literal(`cancelled`),result:n.null(),failure:Wr.extend({reason:n.literal(`CANCELLED`)})}),qr.extend({state:n.literal(`expired`),result:n.null(),failure:Wr.extend({reason:n.literal(`EXPIRED`)})})]),Yr=n.object({job:Jr,alreadyExists:n.boolean()}),Xr=n.object({jobId:n.uuid()}),Zr=n.object({job:Jr}),Qr=n.object({jobId:n.uuid()}),$r=n.object({job:Jr}),ei=n.object({jobId:n.uuid()}),ti=n.object({jobId:n.uuid(),download:Ot}),ni=n.strictObject({previewJobId:n.uuid(),scope:n.strictObject({pageId:n.string().min(1).max(200).optional(),nodeIds:n.array(n.string().min(1).max(200)).max(Mr)}),placement:n.strictObject({kind:n.literal(`below-source`)})}),ri=n.object({canvasId:n.uuid(),recordingId:n.uuid(),atMs:n.number().int().nonnegative(),context:n.strictObject({expectedVersion:n.number().int().positive(),request:ni}).optional()}),ii=n.object({job:Jr,alreadyExists:n.boolean()}),ai=n.object({rootIds:n.array(n.string().min(1).max(200)).max(1e3)}),oi=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`adjacent`)}),n.object({kind:n.literal(`insert-children`),pageId:n.string().min(1).max(200).optional(),targetNodeId:n.string().min(1).max(200)}),n.object({kind:n.literal(`replace`),targetNodeId:n.string().min(1).max(200)})]),si=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`screen`),nodeId:n.string().min(1).max(200)}),n.object({kind:n.literal(`html`),html:n.string().min(1).max(262144),label:n.string().min(1).max(500),idPrefix:n.string().min(1).max(80).regex(/^[\w-]+$/u).optional()})]),ci=n.object({source:si,destination:oi,revisionPolicy:n.enum([`strict`,`rebase`]).optional()}).superRefine((e,t)=>{e.source.kind===`screen`&&e.destination.kind!==`adjacent`&&t.addIssue({code:`custom`,message:`stored screens convert beside their source`,path:[`destination`]}),e.source.kind===`html`&&e.destination.kind===`adjacent`&&t.addIssue({code:`custom`,message:`authored HTML requires an editable destination`,path:[`destination`]})}),li=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`screen`),nodeId:n.string().min(1).max(200)}),n.object({kind:n.literal(`html`),label:n.string().min(1).max(500)})]),ui=n.object({id:n.uuid(),canvasId:n.uuid(),source:li,destination:oi,phase:zr,requestedVersion:n.number().int().positive(),attempt:n.number().int().nonnegative(),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime()}),di=n.discriminatedUnion(`state`,[ui.extend({state:n.literal(`queued`),result:n.null(),failure:n.null()}),ui.extend({state:n.literal(`running`),result:n.null(),failure:n.null()}),ui.extend({state:n.literal(`succeeded`),phase:n.literal(`complete`),result:Sr.extend({report:_r}),failure:n.null()}),ui.extend({state:n.literal(`failed`),result:n.null(),failure:Wr}),ui.extend({state:n.literal(`cancelled`),result:n.null(),failure:Wr.extend({reason:n.literal(`CANCELLED`)})}),ui.extend({state:n.literal(`expired`),result:n.null(),failure:Wr.extend({reason:n.literal(`EXPIRED`)})})]),fi=ci.and(n.object({canvasId:n.uuid(),expectedVersion:n.number().int().positive().optional(),mutationId:n.uuid().optional(),writeScope:ai.optional(),scope:Rr.shape.scope})).refine(e=>e.scope===void 0&&e.revisionPolicy!==`strict`||e.expectedVersion!==void 0,{message:`scoped or strict conversion requires an expected version`,path:[`expectedVersion`]}),pi=n.object({job:di,alreadyExists:n.boolean()}),mi=n.object({jobId:n.uuid()}),hi=n.object({job:di}),gi=n.object({jobId:n.uuid()}),_i=n.object({job:di});n.discriminatedUnion(`state`,[n.object({state:n.literal(`loading`),jobId:n.uuid()}),n.object({state:n.literal(`ready`),jobId:n.uuid(),loadedVersion:n.number().int().positive(),draft:br}),n.object({state:n.literal(`failed`),jobId:n.uuid(),message:n.string().min(1).max(500)})]);const O=n.union([n.string(),g]),k=n.union([S.shape.value,g]).nullable().optional(),vi=n.strictObject({border:k,"border-block":k,"border-block-color":k,"border-block-style":k,"border-block-width":k,"border-block-end":k,"border-block-end-color":k,"border-block-end-style":k,"border-block-end-width":k,"border-block-start":k,"border-block-start-color":k,"border-block-start-style":k,"border-block-start-width":k,"border-bottom":k,"border-bottom-color":k,"border-bottom-style":k,"border-bottom-left-radius":O.optional(),"border-bottom-right-radius":O.optional(),"border-bottom-width":O.optional(),"border-color":n.string().nullable().optional(),"border-image":k,"border-image-source":k,"border-image-slice":k,"border-image-width":k,"border-image-outset":k,"border-image-repeat":k,"border-inline":k,"border-inline-color":k,"border-inline-style":k,"border-inline-width":k,"border-inline-end":k,"border-inline-end-color":k,"border-inline-end-style":k,"border-inline-end-width":k,"border-inline-start":k,"border-inline-start-color":k,"border-inline-start-style":k,"border-inline-start-width":k,"border-left":k,"border-left-color":k,"border-left-style":k,"border-left-width":O.optional(),"border-radius":O.nullable().optional(),"border-right":k,"border-right-color":k,"border-right-style":k,"border-right-width":O.optional(),"border-style":k,"border-top":k,"border-top-color":k,"border-top-style":k,"border-top-left-radius":O.optional(),"border-top-right-radius":O.optional(),"border-top-width":O.optional(),"border-width":O.nullable().optional(),outline:k,"outline-color":k,"outline-style":k,"outline-offset":O.optional(),"outline-width":O.optional()}),yi=n.string().regex(/^(?:\d+(?:\.\d+)?|\.\d+)px$/u),bi=n.string().regex(/^-?(?:\d+(?:\.\d+)?|\.\d+)px$/u),A={color:n.union([n.enum([`var(--note-ink)`,`var(--note-slate)`,`var(--note-red)`,`var(--note-orange)`,`var(--note-amber)`,`var(--note-green)`,`var(--note-teal)`,`var(--note-blue)`,`var(--note-violet)`,`var(--note-magenta)`]),n.string().regex(/^#[\da-f]{6}$/iu)]),"font-family":n.enum([`var(--sans)`,`var(--mono)`]),"font-size":n.union([n.literal(16),n.literal(24),n.literal(40),n.literal(64),n.literal(96)]),"font-weight":n.enum([`400`,`700`]),"font-style":n.enum([`normal`,`italic`,`oblique`]),"letter-spacing":n.number().min(-100).max(100),"line-height":n.union([n.number().positive().max(1e4),n.string().regex(/^(?:\d+(?:\.\d+)?(?:px|em|rem|%)?|normal)$/u)]),"text-align":n.enum([`left`,`center`,`right`]),"white-space":n.enum([`normal`,`nowrap`,`pre`,`pre-wrap`,`pre-line`,`break-spaces`])},xi=n.strictObject({color:A.color.optional(),"font-family":A[`font-family`].optional(),"font-size":A[`font-size`].optional(),"font-weight":A[`font-weight`].optional(),"font-style":A[`font-style`].optional(),"letter-spacing":A[`letter-spacing`].optional(),"line-height":A[`line-height`].optional(),"text-align":A[`text-align`].optional(),"white-space":A[`white-space`].optional()}),Si=n.union([S.shape.value,g]).nullable().optional(),Ci=n.strictObject({"text-decoration":Si,"text-decoration-line":Si,"text-decoration-style":Si,"text-decoration-color":Si,"text-decoration-thickness":Si,"text-underline-offset":Si,"text-decoration-skip-ink":Si,color:A.color.nullable().optional(),"font-family":S.shape.value.nullable().optional(),"font-size":n.union([_,yi]).nullable().optional(),"font-weight":n.union([x.shape.weight,n.enum([`normal`,`bold`,`bolder`,`lighter`]),n.string().regex(/^\d+(?:\.\d+)?$/u).refine(e=>x.shape.weight.safeParse(Number(e)).success)]).nullable().optional(),"font-optical-sizing":n.enum([`auto`,`none`]).nullable().optional(),"font-variation-settings":S.shape.value.nullable().optional(),"font-feature-settings":S.shape.value.nullable().optional(),"text-wrap":S.shape.value.nullable().optional(),"text-wrap-mode":S.shape.value.nullable().optional(),"text-wrap-style":S.shape.value.nullable().optional(),"text-box":S.shape.value.nullable().optional(),"text-box-trim":S.shape.value.nullable().optional(),"text-box-edge":S.shape.value.nullable().optional(),"font-style":A[`font-style`].nullable().optional(),"font-stretch":n.union([n.enum([`normal`,`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`]),n.string().regex(/^\d+(?:\.\d+)?%$/u)]).nullable().optional(),"letter-spacing":n.union([g,bi,n.literal(`normal`)]).nullable().optional(),"line-height":A[`line-height`].nullable().optional(),"text-align":A[`text-align`].nullable().optional(),"text-indent":n.union([g,bi]).nullable().optional(),"white-space":A[`white-space`].nullable().optional(),"word-spacing":n.union([g,bi,n.literal(`normal`)]).nullable().optional()}),wi=S.shape.value,j=n.union([n.string(),g]),M=n.union([S.shape.value,g]).nullable().optional(),Ti=Ci.extend(vi.shape).extend({"align-content":M,"align-items":M,"align-self":M,"aspect-ratio":M,"block-size":M,bottom:M,"box-sizing":M,display:M,flex:M,"flex-basis":M,"flex-direction":M,"flex-grow":M,"flex-shrink":M,"flex-wrap":M,height:M,"inline-size":M,inset:M,"inset-block":M,"inset-block-end":M,"inset-block-start":M,"inset-inline":M,"inset-inline-end":M,"inset-inline-start":M,"justify-content":M,left:M,margin:M,"margin-block":M,"margin-block-end":M,"margin-block-start":M,"margin-inline":M,"margin-inline-end":M,"margin-inline-start":M,"max-block-size":M,"max-height":M,"max-inline-size":M,"max-width":M,"min-block-size":M,"min-height":M,"min-inline-size":M,"min-width":M,order:M,padding:M,"padding-block":M,"padding-block-end":M,"padding-block-start":M,"padding-inline":M,"padding-inline-end":M,"padding-inline-start":M,position:M,right:M,top:M,width:M,background:n.string().nullable().optional(),"background-color":n.string().nullable().optional(),"box-shadow":n.string().nullable().optional(),"column-gap":j.optional(),gap:j.optional(),"margin-bottom":j.optional(),"margin-left":j.optional(),"margin-right":j.optional(),"margin-top":j.optional(),opacity:n.union([n.string(),n.number()]).nullable().optional(),overflow:wi.nullable().optional(),"overflow-x":wi.nullable().optional(),"overflow-y":wi.nullable().optional(),"padding-bottom":j.optional(),"padding-left":j.optional(),"padding-right":j.optional(),"padding-top":j.optional(),"row-gap":j.optional(),"stroke-width":j.optional()}),Ei=n.union([Ti.keyof(),S.shape.property.refine(e=>e.startsWith(`--`))]),Di=Ti.catchall(M).refine(e=>Object.keys(e).every(e=>Ei.safeParse(e).success)),Oi=1e5,ki=n.record(n.string().max(200),n.unknown()).refine(e=>Object.keys(e).length<=128),Ai=n.number().int().positive().max(Oi),ji=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`retain`),count:Ai,attributes:ki.optional()}),n.object({kind:n.literal(`delete`),count:Ai}),n.object({kind:n.literal(`insert`),text:n.string().min(1).max(Oi).refine(e=>e.isWellFormed()),attributes:ki.optional()})]),Mi=n.object({baseLength:n.number().int().nonnegative().max(Oi),representation:n.enum([`plain`,`rich`,`links`]).optional(),steps:n.array(ji).max(Oi),endAttributes:ki.optional(),properties:ki.refine(e=>[`text`,`richText`,`links`].every(t=>!Object.hasOwn(e,t))).optional()}).superRefine((e,t)=>{let n=0,r=0;for(let t of e.steps)t.kind!==`insert`&&(n+=t.count),t.kind!==`delete`&&(r+=t.kind===`insert`?t.text.length:t.count);(n!==e.baseLength||r>1e5)&&t.addIssue({code:`custom`,message:`text change must consume its exact base and fit the text limit`})}),Ni=n.object({actionId:n.string().min(1).max(200),baseVersion:n.number().int().nonnegative(),isActive:n.boolean()}),Pi=n.object({baseVersion:n.number().int().nonnegative(),after:n.array(n.string().min(1).max(200)).max(4e3),change:Mi}),Fi=n.object({actionId:n.string().min(1).max(200),baseVersion:n.number().int().nonnegative(),originalChange:Mi,inverse:Mi,history:Ni.optional(),source:Pi.optional()}),Ii=n.object({op:n.literal(`editText`),nodeId:n.string().min(1).max(200),change:Mi,actionId:n.string().min(1).max(200).optional(),revision:Fi.optional(),history:Ni.optional(),source:Pi.optional()}),Li=1e3,Ri=2e3,zi=n.object({title:n.string().trim().min(1).max(200)}).strict(),Bi=n.array(kn.shape.id).max(Li),Vi=n.object({canvasId:n.uuid()}),Hi=n.object({definition:kn.refine(e=>e.sourceStyleId===void 0),revision:n.number().int().positive(),fontFaces:n.array(n.record(n.string(),n.unknown()))}),Ui=n.object({styles:n.array(Hi).max(Li).refine(e=>new Set(e.map(e=>e.definition.id)).size===e.length)}),Wi=Vi.extend({revision:n.number().int().positive(),documentVersion:n.number().int().positive(),description:n.string().max(Ri),publishedAt:n.iso.datetime(),...Ui.shape}),Gi=Vi.extend({mutationId:n.uuid(),expectedRevision:n.number().int().nonnegative(),documentVersion:n.number().int().positive(),publish:Bi,remove:Bi,description:n.string().trim().max(Ri)}).strict().refine(e=>{let t=[...e.publish,...e.remove];return t.length>0&&t.length<=Li&&new Set(t).size===t.length},{message:`Select each changed style once.`}),Ki=n.object({canvasId:n.uuid(),title:n.string().max(200)}),qi=n.object({search:n.string().trim().max(200).default(``),cursor:Ki.nullable().default(null),limit:n.number().int().min(1).max(50).default(20)}),Ji=n.object({canvasId:n.uuid(),title:n.string(),organisationId:n.uuid().nullable(),revision:n.number().int().positive(),styleCount:n.number().int().positive(),publishedAt:n.iso.datetime()}),Yi=n.object({items:n.array(Ji).max(50),nextCursor:Ki.nullable()}),Xi=n.object({parentId:n.string().min(1).max(200),sortKey:n.string().min(1).max(500)}),Zi=n.object({op:n.literal(`insertConvertedSubtree`),destination:oi,sourceNodeId:n.string().min(1).max(200).optional(),rootNodeId:n.string().min(1).max(200),nodes:n.record(n.string().min(1).max(200),E).refine(e=>Object.keys(e).length<=pr),relationships:n.record(n.string().min(1).max(200),Xi).refine(e=>Object.keys(e).length<pr)}),Qi=1e5,$i=1e3,N=n.string().min(1).max(200),ea=n.string().min(1).max(500),ta=T.extend({width:n.number().positive(),height:n.number().positive()}),na=n.object({parentId:N,afterId:N.optional()}),ra=n.object({parentId:N,sortKey:ea}),ia=n.object({op:n.literal(`setStyles`),nodeId:N,styles:Di,clear:n.array(Ei).min(1).max(Object.keys(Di.shape).length).refine(e=>new Set(e).size===e.length).optional()}).refine(e=>(e.clear??[]).every(t=>!Object.hasOwn(e.styles,t))),aa=n.discriminatedUnion(`op`,[Zi,n.object({op:n.literal(`insertNode`),node:E,parentage:ra}),na.extend({op:n.literal(`insertText`),nodeId:N,label:n.string().max(500).default(`Text`),text:n.string().max(Qi),box:ta,styles:xi.default({})}),na.extend({op:n.literal(`insertPrototype`),nodeId:N,label:n.string().max(500).default(`Prototype`),prototypeId:n.uuid(),deploymentId:n.uuid(),box:ta,canvasPageId:N.optional()}),n.object({op:n.literal(`setPrototypeDeployment`),nodeId:N,prototypeId:n.uuid(),deploymentId:n.uuid()}),Ii,n.object({op:n.literal(`setText`),nodeId:N,text:n.string().max(Qi)}),n.object({op:n.literal(`setBox`),nodeId:N,box:n.union([T,n.literal(`default`)])}),n.object({op:n.literal(`setLabel`),nodeId:N,label:n.string().trim().min(1).max(500),labelOrigin:tr.nullable().optional()}),n.object({op:n.literal(`setContainerKind`),nodeId:N,component:n.enum([`frame`,`group`])}),n.object({op:n.literal(`setVisibility`),nodeId:N,visible:n.boolean().nullable()}),n.object({op:n.literal(`setLocked`),nodeId:N,locked:n.boolean().nullable()}),n.object({op:n.literal(`setConstraints`),nodeId:N,constraints:er}),ia,n.object({op:n.literal(`setAppearance`),nodeId:N,appearance:dt}),n.object({op:n.literal(`setLayout`),nodeId:N,layout:n.union([Ge,n.literal(`default`)])}),n.object({op:n.literal(`patchTypography`),nodeId:N,typography:yt}),n.object({op:n.literal(`setTypography`),nodeId:N,typography:n.union([_t,n.literal(`default`)])}),n.object({op:n.literal(`patchAdditionalStyles`),nodeId:N,additionalStyles:Dt}),n.object({op:n.literal(`setAdditionalStyles`),nodeId:N,additionalStyles:n.union([Tt,n.literal(`default`)])}),n.object({op:n.literal(`setTextStyleLibrary`),nodeId:n.literal(`root`),sourceCanvasId:n.uuid(),library:zi.nullable()}),n.object({op:n.literal(`patchFontLibrary`),nodeId:n.literal(`root`),fonts:kt}),n.object({op:n.literal(`setTextStyle`),nodeId:n.literal(`root`),styleId:kn.shape.id,textStyle:kn.nullable(),changedTextNodeIds:n.array(N).max(pr).optional()}).refine(e=>e.textStyle===null||e.textStyle.id===e.styleId,`text style identity must match`),n.object({op:n.literal(`setGeometry`),nodeId:N,geometry:n.union([Zn,n.literal(`default`)])}),n.object({op:n.literal(`setProps`),nodeId:N,props:n.union([n.record(n.string(),n.unknown()),n.literal(`default`)])}),n.object({op:n.literal(`setParentage`),nodeId:N,parentage:ra}),na.extend({op:n.literal(`move`),nodeId:N}),n.object({op:n.literal(`remove`),nodeId:N,removedText:n.record(N,E.pick({props:!0})).optional()})]),oa=Sr.extend({operation:Zi,next:n.array(n.string().min(1))}),sa=n.record(n.string(),n.unknown()),ca=n.object({canvasId:n.uuid(),afterVersion:n.number().int().positive().optional()}),la=n.object({screenId:n.uuid(),route:n.string().max(u).nullable(),title:n.string().max(200).nullable(),viewport:n.object({width:n.number().int().positive(),height:n.number().int().positive()}),atMs:n.number().int().min(0).nullable(),sourceRecordingId:n.uuid().nullable(),assetBundle:n.object({assetBundleId:n.uuid(),sourceUrl:n.string().max(u),assets:n.array(n.object({url:n.string().max(u),contentType:n.string().max(200),path:n.string().startsWith(`/v1/recording-assets/`)})),missingAssetCount:n.number().int().min(0)}).nullable(),download:Ot.nullable()}),ua=n.object({mutationId:n.uuid(),previousVersion:n.number().int().positive(),version:n.number().int().positive(),operations:n.array(aa)}),da=n.object({mutations:n.array(ua).optional(),version:n.number().int().min(1),document:sa,screens:n.array(la)}),fa=n.object({canvasId:n.uuid(),baseVersion:n.number().int().min(1),document:sa.refine(e=>nr.safeParse(e).success,`A save requires a valid current-format canvas document.`),screenIds:n.array(n.uuid()).max(2e3)}),pa=n.discriminatedUnion(`outcome`,[n.object({outcome:n.literal(`saved`),version:n.number().int().min(1)}),n.object({outcome:n.literal(`conflict`),version:n.number().int().min(1),document:sa})]),ma=e=>typeof e==`object`&&!!e&&!Array.isArray(e),ha=(e,t,n)=>{if(!ma(e)||typeof e.data!=`string`)return e;let r=n(e.data,t);return r===e.data?e:{...e,data:r}},ga=(e,t)=>{if(!ma(e)||!Array.isArray(e.sources))return e;let n=e.sources,r=n.map(n=>ha(n,e,t));return r.every((e,t)=>e===n[t])?e:{...e,sources:r}},_a=(e,t)=>{if(!Array.isArray(e?.fontFaces))return e;let n=e.fontFaces,r=n.map(e=>ga(e,t));return r.every((e,t)=>e===n[t])?e:{...e,fontFaces:r}},va=n.enum([`position`,`layout`,`clip`,`cornerRadius`,`blending`,`typography`,`nativeControl`,`textDecoration`,`fill`,`outline`,`textStroke`,`border`,`outerShadow`,`innerShadow`,`filters`,`additionalStyles`,`vector`,`export`,`source`]),ya=n.object({id:n.string().min(1).max(200),label:n.string().max(500),kind:n.string().min(1).max(100),parentId:n.string().min(1).max(200).nullable(),childCount:n.number().int().min(0),box:Pr.nullable(),propertySections:n.array(va)}),ba=n.object({canvasId:n.uuid()}),xa=n.object({canvasId:n.uuid(),openUrl:n.url(),title:n.string().min(1),version:n.number().int().positive(),nodeCount:n.number().int().min(0),rootChildCount:n.number().int().min(0),bounds:Pr.nullable(),kinds:n.record(n.string(),n.number().int().min(0)),next:n.array(n.string().min(1))}),Sa=n.object({canvasId:n.uuid()}),Ca=n.object({canvasId:n.uuid(),version:n.number().int().positive(),nodes:n.array(ya)}),wa=n.object({canvasId:n.uuid(),nodeId:n.string().min(1).max(200)}),Ta=n.object({canvasId:n.uuid(),version:n.number().int().positive(),node:ya.extend({styles:n.record(n.string(),n.union([n.string(),n.number()])),layout:Ge.optional(),appearance:ct.optional(),typography:_t.optional(),additionalStyles:Tt.optional(),props:n.record(n.string(),n.unknown()),children:n.array(n.string().min(1).max(200))}),next:n.array(n.string().min(1))}),Ea=[[`alignSelf`,`align-self`],[`order`,`order`],[`flexGrow`,`flex-grow`],[`flexShrink`,`flex-shrink`],[`flexBasis`,`flex-basis`],[`aspectRatio`,`aspect-ratio`]],Da=[[`direction`,`flex-direction`],[`wrap`,`flex-wrap`],[`alignItems`,`align-items`],[`alignContent`,`align-content`],[`justifyContent`,`justify-content`],[`rowGap`,`row-gap`],[`columnGap`,`column-gap`]],Oa=[`top`,`right`,`bottom`,`left`],ka=(e,t,n)=>{let r={...e};for(let e of Oa)n.has(`${t}-${e}`)&&Reflect.deleteProperty(r,e);return r},Aa=(e,t)=>{let n=new Set([...t].flatMap(e=>cn(e))),r={...e};for(let[e,t]of Ea)n.has(t)&&Reflect.deleteProperty(r,e);if(r.margin!==void 0&&(r.margin=ka(r.margin,`margin`,n)),r.container===void 0)return r;let i={...r.container};(n.has(`row-gap`)||n.has(`column-gap`))&&i.gap!==void 0&&(i.rowGap??=i.gap,i.columnGap??=i.gap,Reflect.deleteProperty(i,`gap`));for(let[e,t]of Da)n.has(t)&&Reflect.deleteProperty(i,e);return i.padding!==void 0&&(i.padding=ka(i.padding,`padding`,n)),n.has(`grid-template-columns`)&&(Reflect.deleteProperty(i,`gridColumns`),Reflect.deleteProperty(i,`gridAutoRepeat`)),r.container=i,r},ja=(e,t,n)=>{if(e===void 0||e.mode===`fixed`)return e;let r={...e};for(let e of[`min`,`max`])t.every(t=>!n.has(`${e}-${t}`))||(Reflect.deleteProperty(r,e),Reflect.deleteProperty(r,`${e}Parent`));return r},Ma=(e,t,n)=>{let r=new Set([...t].flatMap(e=>cn(e))),i=Aa(e,r);if([`overflow`,`overflow-x`,`overflow-y`].some(e=>r.has(e))&&Reflect.deleteProperty(i,`clipContent`),r.has(`position`)&&Reflect.deleteProperty(i,`position`),r.has(`transform`))for(let e of[`rotation`,`flipHorizontal`,`flipVertical`])Reflect.deleteProperty(i,e);[`inset`,`left`,`right`,`top`,`bottom`].some(e=>r.has(e))&&Reflect.deleteProperty(i,`flowOffset`);for(let e of[`horizontal`,`vertical`]){let t=n[e].some(e=>r.has(e))?void 0:ja(i[e],n[e],r);t===void 0?Reflect.deleteProperty(i,e):i[e]=t}return i},Na=E.shape.id,Pa=T.extend({width:n.number().positive(),height:n.number().positive()}),Fa=n.record(Na,Na),Ia=n.strictObject({fingerprint:n.string().regex(/^[a-f0-9]{64}$/u),revisionPolicy:n.enum([`strict`,`rebase`]),copiedNodeIds:Fa.optional()}),La=n.object({canvasId:n.uuid(),mutationId:n.uuid(),documentFormatVersion:Qn,baseVersion:n.number().int().positive(),operations:n.array(aa).min(1).max($i),requestContext:Ia.optional(),typographyRestorationOf:n.array(n.uuid()).min(1).max($i).optional(),writeScope:ai.optional()}),Ra=n.object({canvasId:n.uuid(),mutationId:n.uuid(),previousVersion:n.number().int().positive(),version:n.number().int().positive(),operations:n.array(aa),insertedNodeIds:n.array(Na),changedNodeIds:n.array(Na),removedNodeIds:n.array(Na),boxes:n.record(Na,T),affectedBounds:Pa.nullable(),copiedNodeIds:Fa.optional(),next:n.array(n.string().min(1))}),za=n.strictObject({canvasId:n.uuid(),mutationId:n.uuid(),fingerprint:Ia.shape.fingerprint}),Ba=n.discriminatedUnion(`state`,[n.strictObject({state:n.literal(`not-found`)}),n.strictObject({state:n.literal(`committed`),result:Ra})]),Va={nodes:1e3,fields:20,id:200,label:500,value:1e3},Ha=n.object({available:n.boolean(),omittedNodes:n.number().int().nonnegative(),nodes:n.array(n.object({nodeId:n.string().min(1).max(Va.id),label:n.string().max(Va.label),kind:n.enum([`inserted`,`removed`,`changed`,`unchanged`,`unavailable`]),omittedFields:n.number().int().nonnegative(),fields:n.array(n.object({label:n.string().max(Va.id),before:n.string().max(Va.value).nullable(),after:n.string().max(Va.value).nullable(),truncated:n.boolean()})).max(Va.fields)})).max(Va.nodes)}),Ua=`page`,Wa=[`position`,`layout`,`cornerRadius`,`blending`,`fill`,`outline`,`border`,`outerShadow`,`innerShadow`,`filters`,`additionalStyles`,`export`],Ga=[`position`,`layout`,`clip`,...Wa.filter(e=>e!==`position`&&e!==`layout`)],Ka=[...Wa,`vector`],qa=Object.fromEntries([{objectKind:`prototype`,label:`Prototype`,category:`import`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!1,commentAnchor:`node`},capture:{preservesHtmlCssAssets:!0},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:[`position`,`layout`]},{objectKind:`root`,label:`Canvas`,category:`container`,capabilities:{canSelect:!1,canContainChildren:!0,canEditProperties:!1},selectionBehavior:{hitTarget:`children`},propertySections:[]},{objectKind:Ua,label:`Page`,category:`container`,capabilities:{canSelect:!1,canContainChildren:!1,canEditProperties:!1},selectionBehavior:{hitTarget:`children`},propertySections:[]},{objectKind:`screen`,label:`Screen`,category:`import`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!1,commentAnchor:`screen`},capture:{preservesHtmlCssAssets:!0},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:[`position`,`layout`,`source`]},{objectKind:`frame`,label:`Frame`,category:`container`,capabilities:{canSelect:!0,canContainChildren:!0,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:Ga},{objectKind:`group`,label:`Group`,category:`container`,capabilities:{canSelect:!0,canContainChildren:!0,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:[`position`,`layout`,`blending`,`additionalStyles`,`export`]},{objectKind:`rectangle`,label:`Rectangle`,category:`primitive`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:Wa},{objectKind:`image`,label:`Image`,category:`media`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`scale`,preservesAspect:!0,canLockAspectRatio:!0},propertySections:Wa},{objectKind:`svg`,label:`SVG`,category:`primitive`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!0,commentAnchor:`node`},capture:{preservesVectorData:!0},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`scale`,preservesAspect:!0,canLockAspectRatio:!0},propertySections:Ka},{objectKind:`recording`,label:`Recording`,category:`media`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!1},capture:{preservesAssets:!0},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`scale`,preservesAspect:!0,canLockAspectRatio:!0},propertySections:[]},{objectKind:`text`,label:`Text`,category:`primitive`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`text`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!1},propertySections:[`position`,`layout`,`typography`,`nativeControl`,`textDecoration`,`textStroke`,`blending`,`fill`,`outerShadow`,`filters`,`additionalStyles`,`export`]}].map(e=>[e.objectKind,e])),Ja=e=>qa[e]??null,Ya=e=>Ja(e)?.propertySections??[],Xa=8e4,Za=1e3,P=E.shape.id,Qa=n.array(P).min(1).max(Za),$a=n.strictObject({x:n.number(),y:n.number()}),eo=n.strictObject({width:n.number().positive().optional(),height:n.number().positive().optional()}).refine(e=>e.width!==void 0||e.height!==void 0,{message:`Specify width, height, or both.`}),to=n.discriminatedUnion(`kind`,[n.strictObject({kind:n.literal(`position`),nodeId:P,parentPosition:$a}),n.strictObject({kind:n.literal(`resize`),nodeId:P,size:eo}),n.strictObject({kind:n.literal(`relative-position`),nodeId:P,referenceNodeId:P,side:n.enum([`above`,`below`,`left`,`right`]),gap:n.number().nonnegative(),align:n.enum([`start`,`center`,`end`])}),n.strictObject({kind:n.literal(`move`),nodeIds:Qa,targetNodeId:P,position:n.enum([`before`,`inside`,`after`])}),n.strictObject({kind:n.literal(`group`),nodeIds:Qa,label:n.string().min(1).max(500).optional()}),n.strictObject({kind:n.literal(`ungroup`),nodeIds:Qa}),n.strictObject({kind:n.literal(`label`),nodeId:P,label:n.string().min(1).max(500)}),n.strictObject({kind:n.literal(`visibility`),nodeId:P,visible:n.boolean()}),n.strictObject({kind:n.literal(`lock`),nodeId:P,locked:n.boolean()})]),no=n.discriminatedUnion(`kind`,[n.strictObject({kind:n.literal(`arrange`),changes:n.array(to).min(1).max(32)}),n.strictObject({kind:n.literal(`duplicate`),nodeIds:Qa,destination:n.discriminatedUnion(`kind`,[n.strictObject({kind:n.literal(`native`)}),n.strictObject({kind:n.literal(`inside`),parentId:P})])}),n.strictObject({kind:n.literal(`compile-html`),contextOperations:n.array(aa).max($i).refine(e=>e.every(e=>`nodeId`in e&&![`remove`,`move`,`setParentage`,`insertText`,`insertPrototype`,`insertNode`,`insertConvertedSubtree`].includes(e.op)),`Compilation context may update retained fields only.`),fragments:n.array(n.strictObject({id:P,parentNodeId:P,html:n.string().min(1).max(Xa)})).min(1).max(32).refine(e=>new Set(e.map(e=>e.id)).size===e.length&&e.reduce((e,t)=>e+t.html.length,0)<=Xa,`HTML fragment ids must be unique and their total source must fit the 80,000-character budget.`)})]),ro=n.strictObject({pageId:P.optional(),nodeIds:n.array(P).max(Za)}),io=n.strictObject({request:no,scope:ro}),ao=n.strictObject({operations:n.array(aa).max($i),idMap:n.record(P,P),rootNodeIds:n.array(P).max(Za)}),oo=ao.extend({compilations:n.array(n.strictObject({id:P,draft:br})).max(32).optional()});n.discriminatedUnion(`state`,[n.object({state:n.literal(`loading`),jobId:n.uuid()}),n.object({state:n.literal(`ready`),jobId:n.uuid(),loadedVersion:n.number().int().positive(),plan:oo}),n.object({state:n.literal(`failed`),jobId:n.uuid(),message:n.string().min(1).max(500)})]);const so=n.object({id:n.uuid(),canvasId:n.uuid(),requestedVersion:n.number().int().positive(),request:no,scope:ro,phase:zr,attempt:n.number().int().nonnegative(),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime()}),co=n.discriminatedUnion(`state`,[so.extend({state:n.enum([`queued`,`running`]),result:n.null(),failure:n.null()}),so.extend({state:n.literal(`succeeded`),phase:n.literal(`complete`),result:ao.extend({loadedVersion:n.number().int().positive()}),failure:n.null()}),so.extend({state:n.enum([`failed`,`cancelled`,`expired`]),result:n.null(),failure:Wr})]),lo=n.strictObject({canvasId:n.uuid(),expectedVersion:n.number().int().positive(),request:no,scope:ro}),uo=n.object({job:co,alreadyExists:n.boolean()}),fo=n.object({jobId:n.uuid()}),po=n.object({job:co}),mo=`x-enhance-agent-client`,ho=n.string().trim().min(1).max(80).regex(/^[\w .+/-]+$/u),go=n.strictObject({path:n.enum([`local_mcp`,`hosted_mcp`,`direct_cli`]),name:ho.optional(),version:ho.optional()}),_o=go.pick({path:!0}).strip(),vo=n.strictObject({agent_client:n.enum([`claude_code`,`codex`,`cursor`,`unknown`]),connection_path:go.shape.path,identity_source:n.enum([`mcp_client_info`,`documented_cli_fallback`,`unavailable`]),auth_method:n.enum([`personal_agent_token`,`mcp_oauth`]),agent_client_version:ho.optional()}),yo=e=>{let t=go.safeParse(e);if(t.success)return t.data;let n=_o.safeParse(e);return{path:n.success?n.data.path:`direct_cli`}},bo=`enhance3.canvas.v1`,xo=16384,So=3e4,Co=n.enum([`blue`,`violet`,`green`,`amber`,`magenta`,`teal`,`red`,`orange`]),wo=n.object({kind:n.literal(`person`),connectionId:n.uuid(),personId:n.uuid(),displayName:n.string().min(1).max(100),initials:n.string().min(1).max(8),colour:Co}),To=n.object({kind:n.literal(`guest`),connectionId:n.uuid(),displayName:n.string().min(1).max(100),initials:n.string().min(1).max(8),colour:Co}),Eo=n.discriminatedUnion(`kind`,[wo,To]),Do=n.object({kind:n.literal(`agent`),personId:n.uuid(),displayName:n.string().min(1).max(100),initials:n.string().min(1).max(8),tokenLabel:n.string().min(1).max(100),agentAttribution:vo.optional(),colour:Co}),Oo=n.discriminatedUnion(`kind`,[wo.omit({connectionId:!0}),Do]),ko=n.object({x:n.number(),y:n.number()}),Ao=T.extend({width:n.number().positive(),height:n.number().positive()}),jo=n.object({count:n.number().int().positive(),bounds:Ao.nullable()}),Mo=n.object({kind:n.enum([`drag`,`resize`]),baseVersion:n.number().int().positive(),boxes:n.record(n.string().min(1).max(200),Ao).refine(e=>Object.keys(e).length<=100&&new TextEncoder().encode(JSON.stringify(e)).byteLength<=16384),summary:jo.optional()}),No=n.object({cursor:ko.nullable().optional(),input:n.enum([`pointer`,`touch`,`keyboard`]).optional(),focused:n.boolean().optional(),selectedNodeIds:n.array(n.string().min(1).max(200)).max(100).refine(e=>new TextEncoder().encode(JSON.stringify(e)).byteLength<=xo).optional(),selectionSummary:jo.nullable().optional(),visibleWorldBox:Ao.optional(),gesture:Mo.nullable().optional(),cursorChat:n.string().max(140).nullable().optional()}).refine(e=>Object.keys(e).length>0,`presence patch cannot be empty`),Po=n.object({actor:Eo,seq:n.number().int().nonnegative(),cursor:ko.nullable(),input:n.enum([`pointer`,`touch`,`keyboard`]),focused:n.boolean(),selectedNodeIds:n.array(n.string().min(1).max(200)).max(100).refine(e=>new TextEncoder().encode(JSON.stringify(e)).byteLength<=xo),selectionSummary:jo.nullable().optional(),visibleWorldBox:Ao.nullable(),gesture:Mo.nullable(),cursorChat:n.string().max(140).nullable().default(null),expiresAt:n.iso.datetime()}),Fo=n.enum([`reading`,`writing`,`creating`,`deleting`,`rendering`]),Io=n.object({activityId:n.uuid(),canvasId:n.uuid(),actor:Do,phase:Fo,nodeIds:n.array(n.string().min(1).max(200)).max(100),bounds:Ao.nullable(),expiresAt:n.iso.datetime()}),Lo=n.object({canvasId:n.uuid(),protocols:n.array(n.literal(bo)).min(1).max(1)}),Ro=n.object({endpoint:n.url(),ticket:n.string().min(1).max(4096),protocol:n.literal(bo),expiresAt:n.iso.datetime()}),zo=n.object({canvasId:n.uuid(),phase:Fo,nodeIds:n.array(n.string().min(1).max(200)).max(100).default([]),bounds:Ao.nullable().default(null)}),Bo=n.object({activityId:n.uuid(),expiresAt:n.iso.datetime(),renewAfterMs:n.number().int().positive()}),Vo=zo.extend({activityId:n.uuid()}),Ho=n.object({canvasId:n.uuid(),activityId:n.uuid()}),Uo=n.object({ended:n.literal(!0)}),Wo={v:n.literal(1),seq:n.number().int().nonnegative()};n.discriminatedUnion(`type`,[n.object({...Wo,type:n.literal(`room.snapshot`),payload:n.object({connectionId:n.uuid(),peers:n.array(Po),activities:n.array(Io),documentVersion:n.number().int().positive()})}),n.object({...Wo,type:n.literal(`presence.patch`),payload:Po}),n.object({...Wo,type:n.literal(`presence.left`),payload:n.object({connectionId:n.uuid()})}),n.object({...Wo,type:n.literal(`agent.activity`),payload:n.object({activityId:n.uuid(),activity:Io.nullable()})}),n.object({...Wo,type:n.literal(`document.committed`),payload:n.object({mutationId:n.uuid(),actor:Oo,previousVersion:n.number().int().positive(),version:n.number().int().positive(),operations:n.array(aa).min(1)})}),n.object({...Wo,type:n.literal(`sync.required`),payload:n.object({version:n.number().int().positive(),reason:n.enum([`gap`,`relay`,`replace`,`history-restored`])})}),n.object({...Wo,type:n.literal(`room.ping`),payload:n.object({pingId:n.uuid(),sentAt:n.iso.datetime()})}),n.object({...Wo,type:n.literal(`room.error`),payload:n.object({code:n.enum([`auth`,`permission`,`protocol`,`payload`,`rate`,`unavailable`]),message:n.string().min(1).max(200)})})]),n.discriminatedUnion(`type`,[n.object({v:n.literal(1),type:n.literal(`presence.patch`),seq:n.number().int().nonnegative(),payload:No}),n.object({v:n.literal(1),type:n.literal(`selection.chunk`),seq:n.number().int().nonnegative(),payload:n.object({transferId:n.uuid(),offset:n.number().int().nonnegative().max(So-1),total:n.number().int().positive().max(So),nodeIds:n.array(n.string().min(1).max(200)).min(1).max(1e3)})}),n.object({v:n.literal(1),type:n.literal(`selection.unavailable`),seq:n.number().int().nonnegative(),payload:n.object({count:n.number().int().min(30001)})}),n.object({v:n.literal(1),type:n.literal(`room.pong`),seq:n.number().int().nonnegative(),payload:n.object({pingId:n.uuid()})})]).refine(e=>e.type!==`selection.chunk`||new TextEncoder().encode(JSON.stringify(e)).byteLength<=49152);const Go=n.uuid(),Ko=E.shape.id,qo=n.array(Ko).max(So),Jo=/^\/c\/([^/]+)\/?$/iu,Yo=e=>{let t=e.trim();if(t.length>2048)return{ok:!1,reason:`length`};let n=Go.safeParse(t);if(n.success)return{ok:!0,value:{canvasId:n.data,nodeIds:[]}};if(!URL.canParse(t))return{ok:!1,reason:`reference`};let r=new URL(t);try{decodeURIComponent(r.search),decodeURIComponent(r.hash)}catch{return{ok:!1,reason:`reference`}}let i=Go.safeParse(Jo.exec(r.pathname)?.[1]);if(!i.success||![`http:`,`https:`].includes(r.protocol))return{ok:!1,reason:`reference`};let a=r.searchParams.getAll(`page`),o=a[0];if(a.length>1||o!==void 0&&!Ko.safeParse(o).success)return{ok:!1,reason:`page`};let s=new URLSearchParams(r.hash.slice(1));if(s.has(`recording`)||s.has(`version`)||r.searchParams.has(`version`))return{ok:!1,reason:`unsupported`};let c=s.getAll(`prototype`),l=s.getAll(`selection`);if(c.length>1||c.length>0&&l.length>0)return{ok:!1,reason:`selection`};let ee=qo.safeParse(c.length>0?c:l);return ee.success?{ok:!0,value:{canvasId:i.data,...o!==void 0&&{pageId:o},nodeIds:[...new Set(ee.data)]}}:{ok:!1,reason:`selection`}},Xo=(e,t)=>{if(!URL.canParse(e)||![`https:`,`http:`].includes(new URL(e).protocol))return{ok:!1,reason:`reference`};let n=new URL(`/c/${encodeURIComponent(t.canvasId)}`,new URL(e).origin);t.pageId!==void 0&&n.searchParams.set(`page`,t.pageId);let r=new URLSearchParams,i=new Set(t.nodeIds);for(let e of i)r.append(`selection`,e);n.hash=r.toString();let a=Yo(n.href);return a.ok?{ok:!0,url:n.href}:a},Zo=`root`,Qo=`canvas-page-default`,$o=e=>Object.entries(e.relationships).filter(([,e])=>e.parentId===Zo).toSorted(([e,t],[n,r])=>t.sortKey===r.sortKey?e.localeCompare(n):t.sortKey<r.sortKey?-1:1).map(([e])=>e),es=e=>{let t=$o(e).filter(t=>e.nodes[t]?.component===Ua);return t.length>0?t:[Qo]},ts=(e,t)=>{let n=new Set,r=t;for(;r!==void 0&&!n.has(r);){n.add(r);let t=e.nodes[r];if(t===void 0||t.component===`page`)return null;let i=e.relationships[r]?.parentId;if(i===Zo){let e=t.props?.canvasPageId;return typeof e==`string`?e:Qo}r=i}return null},ns=(e,t)=>{let n=new Map;for(let[t,r]of Object.entries(e.relationships)){let e=n.get(r.parentId)??[];e.push(t),n.set(r.parentId,e)}let r=new Set,i=[...t];for(;i.length>0;){let t=i.pop();t===void 0||r.has(t)||e.nodes[t]===void 0||(r.add(t),i.push(...n.get(t)??[]))}return r},rs=(e,t)=>{let n=es(t);if(e.pageId!==void 0&&!n.includes(e.pageId))return{ok:!1,reason:`page`};let r=e.nodeIds.map(e=>ts(t,e));if(r.some(e=>e===null||!n.includes(e)))return{ok:!1,reason:`selection`};if(e.pageId!==void 0&&r.some(t=>t!==e.pageId))return{ok:!1,reason:`inconsistent-page`};if(new Set(r).size>1)return{ok:!1,reason:`mixed-pages`};let i=e.pageId??r[0]??null,a=e.nodeIds.length>0?[...new Set(e.nodeIds)]:$o(t).filter(e=>{let n=ts(t,e);return n!==null&&(i===null||n===i)});return{ok:!0,pageId:i,rootNodeIds:a,nodeIds:ns(t,a)}},is=n.object({jobId:n.uuid()}),as=n.object({jobId:n.uuid(),canvasId:n.uuid(),requestedVersion:n.number().int().positive(),target:D,sourceState:Fr.optional()}),os=n.discriminatedUnion(`purpose`,[as.extend({purpose:n.literal(`preparation`),preparation:io,sourceState:n.undefined().optional(),scale:n.literal(1),format:n.literal(`json`)}),as.extend({purpose:n.enum([`inspection`,`snapshot`,`thumbnail`]),scale:n.number().positive().max(4),maxOutputPixels:Nr.optional(),format:n.literal(`png`)}),as.extend({purpose:n.literal(`conversion`),target:n.object({kind:n.literal(`node`),nodeId:n.string().min(1).max(200)}),sourceState:n.undefined().optional(),conversion:ci,scale:n.literal(1),format:n.literal(`json`)})]);n.object({jobId:n.uuid()}),n.object({jobId:n.uuid()});const ss=n.object({jobId:n.uuid(),canvasId:n.uuid(),requestedVersion:n.number().int().positive(),grantToken:n.string().startsWith(`rgr_`).min(40).max(100),grantCookieName:n.string().min(1).max(100),renderUrl:n.url(),releaseIdentity:n.string().min(1).max(100)});n.discriminatedUnion(`purpose`,[ss.extend({purpose:n.literal(`preparation`),target:D,preparation:io,sourceState:n.undefined().optional(),scale:n.literal(1)}),ss.extend({purpose:n.enum([`inspection`,`snapshot`,`thumbnail`]),target:D,sourceState:Fr.optional(),scale:n.number().positive(),maxOutputPixels:Nr.optional(),outputKey:n.string().min(1).max(500)}),ss.extend({purpose:n.literal(`conversion`),target:n.object({kind:n.literal(`node`),nodeId:n.string().min(1).max(200)}),sourceState:n.undefined().optional(),conversion:ci,scale:n.literal(1)})]),n.object({jobId:n.uuid(),loadedVersion:n.number().int().positive(),bounds:Pr,width:n.number().int().positive(),height:n.number().int().positive(),scale:n.number().positive(),bytes:n.number().int().positive().max(Or),storageKey:n.string().min(1).max(500),warnings:n.array(Ur),timings:n.array(Gr),sourceState:Ir.optional(),snapshot:n.object({artifactBytes:n.number().int().positive().max(kr),artifactStorageKey:n.string().min(1).max(500),route:n.string().optional(),title:n.string().optional(),viewport:n.object({width:n.number().int().positive(),height:n.number().int().positive()})}).optional()}),n.object({accepted:n.literal(!0)}),n.object({jobId:n.uuid(),loadedVersion:n.number().int().positive(),draft:br}),n.object({accepted:n.literal(!0)}),n.object({recordingId:n.uuid(),requestedAtMs:n.number().int().nonnegative(),settledAtMs:n.number().int().nonnegative(),artifact:n.string().min(1).max(kr),route:n.string().optional(),title:n.string().optional(),viewport:n.object({width:n.number().int().positive(),height:n.number().int().positive()})}),n.object({jobId:n.uuid(),failure:Wr}),n.object({accepted:n.literal(!0),willRetry:n.boolean()}),n.object({workerId:n.string().regex(/^[\w.-]+$/u).min(1).max(100),releaseIdentity:n.string().min(1).max(100),timestamp:n.coerce.number().int().nonnegative(),nonce:n.uuid(),mac:n.base64().min(32).max(200)});const cs=n.object({total:n.number().int().nonnegative(),loading:n.number().int().nonnegative(),unavailable:n.number().int().nonnegative()}),ls=n.object({jobId:n.uuid(),canvasId:n.uuid().nullable(),requestedVersion:n.number().int().positive().nullable(),loadedVersion:n.number().int().positive().nullable(),phase:zr.exclude([`queued`,`claimed`,`capture`,`upload`,`complete`]),sources:cs,warnings:n.array(Ur),timings:n.array(Gr),sourceState:Ir.optional()}),us=n.object({selector:n.string().min(1).max(500),contentSelector:n.string().min(1).max(500).optional(),bounds:Pr,width:n.number().int().positive(),height:n.number().int().positive(),scale:n.number().positive()});n.discriminatedUnion(`state`,[ls.extend({state:n.literal(`loading`),capture:n.null(),failure:n.null()}),ls.extend({state:n.literal(`ready`),phase:n.literal(`target`),canvasId:n.uuid(),requestedVersion:n.number().int().positive(),loadedVersion:n.number().int().positive(),capture:us,failure:n.null()}),ls.extend({state:n.literal(`failed`),failure:n.object({reason:Vr,message:n.string().min(1).max(500),sourceId:n.string().min(1).max(200).nullable()}),capture:n.null()})]),n.object({jobId:n.uuid(),loadedVersion:n.number().int().positive(),plan:oo});const ds=n.string().min(1).max(200),fs=n.object({canvasId:n.uuid()}),ps=n.object({canvasId:n.uuid(),status:n.enum([`selected`,`none`,`offline`,`stale`,`updating`,`unsupported`]),documentVersion:n.number().int().positive(),selectionRevision:n.number().int().positive().nullable(),selectionChangedAt:n.iso.datetime().nullable(),selectedNodeIds:n.array(ds),missingNodeIds:n.array(ds),nodes:n.array(ya),contextRootId:ds.nullable(),visibleWorldBox:Pr.nullable(),next:n.array(n.string().min(1)).max(12)}),ms=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`recording`),recordingId:n.string()})]),hs=n.object({html:n.string().optional(),viewport:n.object({width:n.number(),height:n.number()}),atMs:n.number(),screenId:n.string().nullable().default(null),provenance:ms.optional()}),gs=n.object({provenance:ms.optional(),report:_r.optional()}),_s=n.object({recordingId:n.string()}),vs=n.object({prototypeId:n.uuid(),deploymentId:n.uuid()}),ys=e=>{let t=[];for(let[n,r]of Object.entries(e))[`kind`,`children`,`text`,`soft`].includes(n)||(n===`styles`||n===`paragraph`?typeof r==`object`&&r&&t.push(...Object.entries(r).map(([e,t])=>[`${n}.${e}`,t])):t.push([n,r]));return Object.fromEntries(t)},bs=e=>Object.fromEntries(Object.entries(e).filter(([e])=>e!==`text`&&e!==`children`)),xs=(e,t)=>[...e,bs(t)],Ss=(e,t)=>{let n={...e,...t};return t.listStyle===`none`&&(Reflect.deleteProperty(n,`listLevel`),Reflect.deleteProperty(n,`listStart`)),n},Cs=(e,t,n)=>{let r=e.listStyle??t;if(r!==`bulleted`&&r!==`numbered`)return e;let i=e.listLevel??1,a=Math.max(1,Math.min(16,i+n));if(a===i)return e;let o={...e,listLevel:a};return Reflect.deleteProperty(o,`listStart`),o},ws=(e,t)=>{let n=0;return e.map(e=>{let r=n;if(n+=w(e.children).length,r<=t.start||r>t.end||e.paragraph?.listStart===void 0)return e;let i={...e.paragraph};return Reflect.deleteProperty(i,`listStart`),{...e,paragraph:i}})},Ts=e=>{let t=[],n=0;for(let{index:r}of e.matchAll(/\n/gu))t.push({start:n,end:r+1,contentEnd:r}),n=r+1;return t.push({start:n,end:e.length,contentEnd:e.length}),t},Es=(e,t)=>{let n=Math.min(t.anchor,t.focus),r=Math.max(t.anchor,t.focus);return n===r?n>=e.start&&n<=e.contentEnd:n<e.end&&r>e.start},Ds=(e,t=0)=>{let n=t;return e.flatMap(e=>{let t=w([e]).length,r=n;return n+=t,e.kind===`span`?[...e.paragraph===void 0?[]:[{start:r,end:n,formatting:e.paragraph}],...Ds(e.children,r)]:[]})},Os=(e,t)=>{let n=e.filter(e=>e.start===e.end?e.start===t:e.start<=t&&t<e.end);if(n.length===0){let n=e.at(-1);return n?.end===t?n.formatting:{}}let r={};for(let e of n)r={...r,...e.formatting};return r},ks=e=>e.flatMap(e=>{if(e.kind!==`span`)return[e];let t=ks(e.children);if(e.paragraph===void 0)return[{...e,children:t}];let n={...e};return Reflect.deleteProperty(n,`paragraph`),Object.keys(n).filter(e=>![`kind`,`children`,`styles`].includes(e)).length===0&&Object.keys(e.styles).length===0?t:[{...n,children:t}]}),As=e=>e.some(e=>e.kind===`span`&&(e.paragraph!==void 0||e.paragraphSpacing!==void 0||e.paragraphIndent!==void 0||e.listSpacing!==void 0||e.wrapStyle!==void 0||As(e.children))),js=e=>{let t=[[]];for(let n of e){let e=n.kind===`span`?js(n.children).map(e=>e.length===0&&n.children.length>0?[]:[{...n,children:e}]):n.kind===`break`?n.soft===!0?[[n]]:[[n],[]]:n.text.split(`
3
+ `:e.kind===`text`?e.text:w(e.children)).join(``),Hn=e=>{let t=e.props;if(t===void 0||!Array.isArray(t.richText))return[];let n=t.richText,r=[];for(let e of n){let t=Vn(e);if(t===null)return[];r.push(t)}let i=t.text;return w(r)===i?r:[]},Un=n.number().min(-1e7).max(1e7),Wn=Un.nonnegative(),Gn=n.string().min(1).max(200),Kn=n.string().max(32768).regex(/^[MmLlHhVvCcSsQqTtAaZzEe\d\s.,+-]*$/u),qn=n.strictObject({x:Un,y:Un,width:Wn,height:Wn}),Jn=n.strictObject({kind:n.literal(`path`),path:Kn.min(1),fillRule:n.enum([`nonzero`,`evenodd`]),viewBox:qn.extend({width:Wn.positive(),height:Wn.positive()})}),Yn=n.enum([`union`,`subtract`,`intersect`,`exclude`]),Xn=n.strictObject({kind:n.literal(`boolean`),operation:Yn,operandIds:n.array(Gn).min(1).max(16).refine(e=>new Set(e).size===e.length),result:n.strictObject({path:Kn,fillRule:n.literal(`nonzero`),isEmpty:n.boolean(),bounds:qn,inputKey:n.string().regex(/^[a-f0-9]{16}$/u)}).refine(e=>e.isEmpty===(e.path===``))}),Zn=n.discriminatedUnion(`kind`,[Jn,n.strictObject({kind:n.literal(`mask`),maskId:Gn}),Xn]),Qn=n.literal(7,{error:`This editor uses an unsupported document format. Update the editor before changing this canvas.`});n.object({signature:n.string().regex(/^[a-f0-9]{16}$/u),image:n.string().startsWith(`data:image/jpeg;base64,`).max(2e6),families:n.array(n.string().min(1).max(256)).min(1).max(256)});const T=n.object({x:n.number(),y:n.number(),width:n.number().nonnegative(),height:n.number().nonnegative()}),$n=n.enum([`start`,`center`,`end`,`stretch`,`scale`]),er=n.object({x:$n,y:$n}),tr=n.enum([`source`,`generated`,`user`]),E=n.looseObject({id:n.string().min(1).max(200),label:n.string().max(500),component:n.string().min(1).max(100),labelOrigin:tr.optional(),visible:n.boolean().optional(),locked:n.boolean().optional(),constraints:er.optional(),styles:n.record(n.string(),n.union([n.string(),n.number()])),layout:Ge.optional(),responsive:n.never().optional(),appearance:ct.optional(),typography:_t.optional(),additionalStyles:Tt.optional(),geometry:Zn.optional(),props:n.record(n.string(),n.unknown()).optional(),box:T.optional()}),nr=n.object({version:n.literal(7),nodes:n.record(n.string(),E),relationships:n.record(n.string(),n.object({parentId:n.string().min(1).max(200),sortKey:n.string().min(1).max(500)})),tombstones:n.record(n.string(),n.literal(!0)).default({})}),rr=n.record(n.string(),n.unknown()),ir=e=>{let t=rr.safeParse(e.layout).data;if(t===void 0)return e;let n=Object.fromEntries(Object.entries(t).filter(([e])=>e!==`gridTrack`)),r=rr.safeParse(n.container).data;r!==void 0&&(n.container=Object.fromEntries(Object.entries(r).filter(([e])=>e!==`materialized`)));for(let e of[`horizontal`,`vertical`]){let t=rr.safeParse(n[e]).data;t?.mode===`hug`&&(n[e]=Object.fromEntries(Object.entries(t).filter(([e])=>e!==`basis`)))}return{...e,layout:n}},ar=e=>{if(Object.keys(e).length===0)return sr();if(e.version===6)return{...e,version:7};let t=n.record(n.string(),rr).safeParse(e.nodes).data;if(t!==void 0&&Object.values(t).some(e=>e.geometry!==void 0))return e;if(typeof e.version==`number`&&[3,4,5].includes(e.version))return{...e,version:7};let r=n.record(n.string(),rr).safeParse(e.nodes).data;return r===void 0?e:{...e,version:7,nodes:Object.fromEntries(Object.entries(r).map(([e,t])=>[e,ir(t)]))}},or=n.preprocess(e=>{let t=rr.safeParse(e).data;if(t===void 0)return e;let n=t.version;return new Set([void 0,1,2,3,4,5,6]).has(n)?ar(t):t},nr),sr=()=>({version:7,nodes:{root:{id:`root`,label:`Canvas`,component:`root`,labelOrigin:`generated`,visible:!0,locked:!1,styles:{}}},relationships:{},tombstones:{}}),cr=n.object({start:n.number().int().nonnegative(),end:n.number().int().positive(),href:n.url().refine(e=>[`http:`,`https:`].includes(new URL(e).protocol))}),lr=n.object({text:n.string(),links:n.array(cr).optional()}),ur=(e,t)=>{let n=e.start-t.start;return n===0?e.end-t.end:n},dr=e=>lr.safeParse(e.props).data?.text??null,fr=e=>{let t=lr.safeParse(e.props).data;if(t===void 0)return[];let n=t.links;if(n===void 0)return[];let r=n.filter(({start:e,end:n})=>e<n&&n<=t.text.length).toSorted(ur),i=[];for(let e of r)(i.at(-1)?.end??0)<=e.start&&i.push(e);return i},pr=3e4,mr=5e4,hr=n.string().min(1).max(200),gr=n.object({code:n.enum([`asset-unavailable`,`content-omitted`,`cross-origin-frame`,`nodes-truncated`,`responsive-behavior-not-editable`,`style-degraded`,`unsupported-surface`]),message:n.string().min(1).max(500),temporaryId:hr.optional()}),_r=n.object({nodeCount:n.number().int().positive().max(pr),sourceNodeCount:n.number().int().positive().max(mr).optional(),collapsedNodeCount:n.number().int().nonnegative().max(mr).optional(),collapsedWrapperNodeCount:n.number().int().nonnegative().max(mr).optional(),collapsedNeutralWrapperNodeCount:n.number().int().nonnegative().max(mr).optional(),collapsedTransferredWrapperNodeCount:n.number().int().nonnegative().max(mr).optional(),layoutContainerCount:n.number().int().nonnegative().max(pr).optional(),removedLeafNodeCount:n.number().int().nonnegative().max(mr).optional(),retainedSemanticOwnerNodeCount:n.number().int().nonnegative().max(mr).optional(),truncatedNodeCount:n.number().int().nonnegative().max(mr*2).optional(),addedLayoutNodeCount:n.number().int().nonnegative().max(mr).optional(),issues:n.array(gr).max(mr)}).refine(({collapsedNeutralWrapperNodeCount:e,collapsedTransferredWrapperNodeCount:t,collapsedWrapperNodeCount:n})=>n===void 0||e===void 0||t===void 0||e+t===n,`wrapper collapse proof classes must explain the collapsed wrapper count`).refine(({collapsedNodeCount:e,collapsedWrapperNodeCount:t,removedLeafNodeCount:n})=>e===void 0||t===void 0||n===void 0||t+n===e,`collapsed node kinds must explain the total collapsed node count`).refine(({addedLayoutNodeCount:e,collapsedNodeCount:t,nodeCount:n,sourceNodeCount:r,truncatedNodeCount:i})=>r===void 0||t===void 0||r+(e??0)-n===t+(i??0),`added, collapsed and truncated node counts must explain the source to editable difference`).refine(({layoutContainerCount:e,nodeCount:t})=>e===void 0||e<=t,`layout container count cannot exceed editable node count`),vr=E.omit({id:!0}).extend({temporaryId:hr}),yr=n.object({temporaryId:hr,parentTemporaryId:hr,sortKey:n.string().min(1).max(500)}),br=n.object({version:n.literal(1),rootTemporaryId:hr,nodes:n.array(vr).min(1).max(pr),relationships:n.array(yr).max(pr-1),report:_r}),xr=n.object({canvasId:n.uuid(),documentFormatVersion:Qn,mutationId:n.uuid(),baseVersion:n.number().int().positive(),screenNodeId:n.string().min(1).max(200),draft:br}),Sr=n.object({canvasId:n.uuid(),mutationId:n.uuid(),previousVersion:n.number().int().positive(),version:n.number().int().positive(),rootNodeId:n.string().min(1).max(200),idMap:n.record(hr,n.string().min(1).max(200)),insertedNodeIds:n.array(n.string().min(1).max(200)),removedNodeIds:n.array(n.string().min(1).max(200)),boxes:n.record(n.string().min(1).max(200),T),affectedBounds:T}),Cr=[`queued`,`claimed`,`grant`,`navigate`,`document`,`sources`,`fonts`,`layout`,`target`,`capture`,`serialize`,`compile`,`commit`,`upload`,`complete`],wr=[`queued`,`running`,`succeeded`,`failed`,`cancelled`,`expired`],Tr=[`VERSION_CHANGED`,`TARGET_NOT_FOUND`,`TARGET_INVALID`,`OUTPUT_TOO_LARGE`,`READINESS_TIMEOUT`,`SOURCE_FAILED`,`BROWSER_CRASH`,`CAPTURE_FAILED`,`CONVERSION_FAILED`,`PREPARATION_FAILED`,`UPLOAD_FAILED`,`WORKER_UNAVAILABLE`,`CANCELLED`,`EXPIRED`,`INTERNAL`],Er=[`ASSET_UNAVAILABLE`,`FONT_FALLBACK`,`SOURCE_FALLBACK`,`SCALE_REDUCED`],Dr=16e6,Or=32*oe,kr=64*oe,Ar=1e5,jr=.1,Mr=1e3,Nr=n.number().int().positive().max(Dr),Pr=n.object({x:n.number(),y:n.number(),width:n.number().positive().max(Ar),height:n.number().positive().max(Ar)}),D=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`content`)}),n.object({kind:n.literal(`page`),pageId:n.string().min(1).max(200)}),n.object({kind:n.literal(`node`),nodeId:n.string().min(1).max(200)}),n.object({kind:n.literal(`bounds`),bounds:Pr})]),Fr=n.object({kind:n.literal(`recording`),recordingId:n.uuid(),atMs:n.number().int().nonnegative()}),Ir=n.object({kind:n.literal(`recording`),recordingId:n.uuid(),requestedAtMs:n.number().int().nonnegative(),settledAtMs:n.number().int().nonnegative()}),Lr=n.object({recordingId:n.uuid(),atMs:n.number().int().nonnegative(),screenId:n.uuid(),screenNodeId:n.string().min(1).max(200),viewport:n.object({width:n.number().int().positive(),height:n.number().int().positive()}),box:Pr,version:n.number().int().positive(),alreadyPresent:n.boolean()}),Rr=n.object({canvasId:n.uuid(),expectedVersion:n.number().int().positive().optional(),scope:n.strictObject({pageId:n.string().min(1).max(200).optional(),nodeIds:n.array(n.string().min(1).max(200)).max(Mr)}).optional(),target:D.default({kind:`content`}),sourceState:Fr.optional(),scale:n.number().min(jr).max(4).default(1),maxOutputPixels:Nr.optional(),format:n.literal(`png`).default(`png`)}).refine(e=>e.sourceState===void 0||e.target.kind===`node`,{message:`a source state requires a node render target`,path:[`sourceState`]}),zr=n.enum(Cr),Br=n.enum(wr),Vr=n.enum(Tr),Hr=n.enum(Er),Ur=n.object({code:Hr,message:n.string().min(1).max(500),sourceId:n.string().min(1).max(200).nullable()}),Wr=n.object({reason:Vr,phase:zr,message:n.string().min(1).max(500),retryable:n.boolean(),sourceId:n.string().min(1).max(200).nullable()}),Gr=n.object({phase:zr,durationMs:n.number().int().min(0)}),Kr=n.object({canvasId:n.uuid(),requestedVersion:n.number().int().positive(),loadedVersion:n.number().int().positive(),target:D,sourceState:Ir.optional(),snapshot:Lr.optional(),bounds:Pr,width:n.number().int().positive(),height:n.number().int().positive(),scale:n.number().positive(),contentType:n.literal(`image/png`),bytes:n.number().int().positive().max(Or),warnings:n.array(Ur),timings:n.array(Gr),expiresAt:n.iso.datetime()}).refine(e=>e.width*e.height<=Dr,{message:`render output may contain at most 16000000 pixels`,path:[`width`]}),qr=n.object({id:n.uuid(),canvasId:n.uuid(),purpose:n.enum([`inspection`,`snapshot`,`thumbnail`]),phase:zr,requestedVersion:n.number().int().positive(),target:D,sourceState:Fr.optional(),scale:n.number().positive(),maxOutputPixels:Nr.optional(),format:n.literal(`png`),attempt:n.number().int().min(0),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime()}),Jr=n.discriminatedUnion(`state`,[qr.extend({state:n.literal(`queued`),result:n.null(),failure:n.null()}),qr.extend({state:n.literal(`running`),result:n.null(),failure:n.null()}),qr.extend({state:n.literal(`succeeded`),phase:n.literal(`complete`),result:Kr,failure:n.null()}),qr.extend({state:n.literal(`failed`),result:n.null(),failure:Wr}),qr.extend({state:n.literal(`cancelled`),result:n.null(),failure:Wr.extend({reason:n.literal(`CANCELLED`)})}),qr.extend({state:n.literal(`expired`),result:n.null(),failure:Wr.extend({reason:n.literal(`EXPIRED`)})})]),Yr=n.object({job:Jr,alreadyExists:n.boolean()}),Xr=n.object({jobId:n.uuid()}),Zr=n.object({job:Jr}),Qr=n.object({jobId:n.uuid()}),$r=n.object({job:Jr}),ei=n.object({jobId:n.uuid()}),ti=n.object({jobId:n.uuid(),download:Ot}),ni=n.strictObject({previewJobId:n.uuid(),scope:n.strictObject({pageId:n.string().min(1).max(200).optional(),nodeIds:n.array(n.string().min(1).max(200)).max(Mr)}),placement:n.strictObject({kind:n.literal(`below-source`)})}),ri=n.object({canvasId:n.uuid(),recordingId:n.uuid(),atMs:n.number().int().nonnegative(),context:n.strictObject({expectedVersion:n.number().int().positive(),request:ni}).optional()}),ii=n.object({job:Jr,alreadyExists:n.boolean()}),ai=n.object({rootIds:n.array(n.string().min(1).max(200)).max(1e3)}),oi=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`adjacent`)}),n.object({kind:n.literal(`insert-children`),pageId:n.string().min(1).max(200).optional(),targetNodeId:n.string().min(1).max(200)}),n.object({kind:n.literal(`replace`),targetNodeId:n.string().min(1).max(200)})]),si=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`screen`),nodeId:n.string().min(1).max(200)}),n.object({kind:n.literal(`html`),html:n.string().min(1).max(262144),label:n.string().min(1).max(500),idPrefix:n.string().min(1).max(80).regex(/^[\w-]+$/u).optional()})]),ci=n.object({source:si,destination:oi,revisionPolicy:n.enum([`strict`,`rebase`]).optional()}).superRefine((e,t)=>{e.source.kind===`screen`&&e.destination.kind!==`adjacent`&&t.addIssue({code:`custom`,message:`stored screens convert beside their source`,path:[`destination`]}),e.source.kind===`html`&&e.destination.kind===`adjacent`&&t.addIssue({code:`custom`,message:`authored HTML requires an editable destination`,path:[`destination`]})}),li=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`screen`),nodeId:n.string().min(1).max(200)}),n.object({kind:n.literal(`html`),label:n.string().min(1).max(500)})]),ui=n.object({id:n.uuid(),canvasId:n.uuid(),source:li,destination:oi,phase:zr,requestedVersion:n.number().int().positive(),attempt:n.number().int().nonnegative(),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime()}),di=n.discriminatedUnion(`state`,[ui.extend({state:n.literal(`queued`),result:n.null(),failure:n.null()}),ui.extend({state:n.literal(`running`),result:n.null(),failure:n.null()}),ui.extend({state:n.literal(`succeeded`),phase:n.literal(`complete`),result:Sr.extend({report:_r}),failure:n.null()}),ui.extend({state:n.literal(`failed`),result:n.null(),failure:Wr}),ui.extend({state:n.literal(`cancelled`),result:n.null(),failure:Wr.extend({reason:n.literal(`CANCELLED`)})}),ui.extend({state:n.literal(`expired`),result:n.null(),failure:Wr.extend({reason:n.literal(`EXPIRED`)})})]),fi=ci.and(n.object({canvasId:n.uuid(),expectedVersion:n.number().int().positive().optional(),mutationId:n.uuid().optional(),writeScope:ai.optional(),scope:Rr.shape.scope})).refine(e=>e.scope===void 0&&e.revisionPolicy!==`strict`||e.expectedVersion!==void 0,{message:`scoped or strict conversion requires an expected version`,path:[`expectedVersion`]}),pi=n.object({job:di,alreadyExists:n.boolean()}),mi=n.object({jobId:n.uuid()}),hi=n.object({job:di}),gi=n.object({jobId:n.uuid()}),_i=n.object({job:di});n.discriminatedUnion(`state`,[n.object({state:n.literal(`loading`),jobId:n.uuid()}),n.object({state:n.literal(`ready`),jobId:n.uuid(),loadedVersion:n.number().int().positive(),draft:br}),n.object({state:n.literal(`failed`),jobId:n.uuid(),message:n.string().min(1).max(500)})]);const O=n.union([n.string(),g]),k=n.union([S.shape.value,g]).nullable().optional(),vi=n.strictObject({border:k,"border-block":k,"border-block-color":k,"border-block-style":k,"border-block-width":k,"border-block-end":k,"border-block-end-color":k,"border-block-end-style":k,"border-block-end-width":k,"border-block-start":k,"border-block-start-color":k,"border-block-start-style":k,"border-block-start-width":k,"border-bottom":k,"border-bottom-color":k,"border-bottom-style":k,"border-bottom-left-radius":O.optional(),"border-bottom-right-radius":O.optional(),"border-bottom-width":O.optional(),"border-color":n.string().nullable().optional(),"border-image":k,"border-image-source":k,"border-image-slice":k,"border-image-width":k,"border-image-outset":k,"border-image-repeat":k,"border-inline":k,"border-inline-color":k,"border-inline-style":k,"border-inline-width":k,"border-inline-end":k,"border-inline-end-color":k,"border-inline-end-style":k,"border-inline-end-width":k,"border-inline-start":k,"border-inline-start-color":k,"border-inline-start-style":k,"border-inline-start-width":k,"border-left":k,"border-left-color":k,"border-left-style":k,"border-left-width":O.optional(),"border-radius":O.nullable().optional(),"border-right":k,"border-right-color":k,"border-right-style":k,"border-right-width":O.optional(),"border-style":k,"border-top":k,"border-top-color":k,"border-top-style":k,"border-top-left-radius":O.optional(),"border-top-right-radius":O.optional(),"border-top-width":O.optional(),"border-width":O.nullable().optional(),outline:k,"outline-color":k,"outline-style":k,"outline-offset":O.optional(),"outline-width":O.optional()}),yi=n.string().regex(/^(?:\d+(?:\.\d+)?|\.\d+)px$/u),bi=n.string().regex(/^-?(?:\d+(?:\.\d+)?|\.\d+)px$/u),A={color:n.union([n.enum([`var(--note-ink)`,`var(--note-slate)`,`var(--note-red)`,`var(--note-orange)`,`var(--note-amber)`,`var(--note-green)`,`var(--note-teal)`,`var(--note-blue)`,`var(--note-violet)`,`var(--note-magenta)`]),n.string().regex(/^#[\da-f]{6}$/iu)]),"font-family":n.enum([`var(--sans)`,`var(--mono)`]),"font-size":n.union([n.literal(16),n.literal(24),n.literal(40),n.literal(64),n.literal(96)]),"font-weight":n.enum([`400`,`700`]),"font-style":n.enum([`normal`,`italic`,`oblique`]),"letter-spacing":n.number().min(-100).max(100),"line-height":n.union([n.number().positive().max(1e4),n.string().regex(/^(?:\d+(?:\.\d+)?(?:px|em|rem|%)?|normal)$/u)]),"text-align":n.enum([`left`,`center`,`right`]),"white-space":n.enum([`normal`,`nowrap`,`pre`,`pre-wrap`,`pre-line`,`break-spaces`])},xi=n.strictObject({color:A.color.optional(),"font-family":A[`font-family`].optional(),"font-size":A[`font-size`].optional(),"font-weight":A[`font-weight`].optional(),"font-style":A[`font-style`].optional(),"letter-spacing":A[`letter-spacing`].optional(),"line-height":A[`line-height`].optional(),"text-align":A[`text-align`].optional(),"white-space":A[`white-space`].optional()}),Si=n.union([S.shape.value,g]).nullable().optional(),Ci=n.strictObject({"text-decoration":Si,"text-decoration-line":Si,"text-decoration-style":Si,"text-decoration-color":Si,"text-decoration-thickness":Si,"text-underline-offset":Si,"text-decoration-skip-ink":Si,color:A.color.nullable().optional(),"font-family":S.shape.value.nullable().optional(),"font-size":n.union([_,yi]).nullable().optional(),"font-weight":n.union([x.shape.weight,n.enum([`normal`,`bold`,`bolder`,`lighter`]),n.string().regex(/^\d+(?:\.\d+)?$/u).refine(e=>x.shape.weight.safeParse(Number(e)).success)]).nullable().optional(),"font-optical-sizing":n.enum([`auto`,`none`]).nullable().optional(),"font-variation-settings":S.shape.value.nullable().optional(),"font-feature-settings":S.shape.value.nullable().optional(),"text-wrap":S.shape.value.nullable().optional(),"text-wrap-mode":S.shape.value.nullable().optional(),"text-wrap-style":S.shape.value.nullable().optional(),"text-box":S.shape.value.nullable().optional(),"text-box-trim":S.shape.value.nullable().optional(),"text-box-edge":S.shape.value.nullable().optional(),"font-style":A[`font-style`].nullable().optional(),"font-stretch":n.union([n.enum([`normal`,`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`]),n.string().regex(/^\d+(?:\.\d+)?%$/u)]).nullable().optional(),"letter-spacing":n.union([g,bi,n.literal(`normal`)]).nullable().optional(),"line-height":A[`line-height`].nullable().optional(),"text-align":A[`text-align`].nullable().optional(),"text-indent":n.union([g,bi]).nullable().optional(),"white-space":A[`white-space`].nullable().optional(),"word-spacing":n.union([g,bi,n.literal(`normal`)]).nullable().optional()}),wi=S.shape.value,j=n.union([n.string(),g]),M=n.union([S.shape.value,g]).nullable().optional(),Ti=Ci.extend(vi.shape).extend({"align-content":M,"align-items":M,"align-self":M,"aspect-ratio":M,"block-size":M,bottom:M,"box-sizing":M,display:M,flex:M,"flex-basis":M,"flex-direction":M,"flex-grow":M,"flex-shrink":M,"flex-wrap":M,height:M,"inline-size":M,inset:M,"inset-block":M,"inset-block-end":M,"inset-block-start":M,"inset-inline":M,"inset-inline-end":M,"inset-inline-start":M,"justify-content":M,left:M,margin:M,"margin-block":M,"margin-block-end":M,"margin-block-start":M,"margin-inline":M,"margin-inline-end":M,"margin-inline-start":M,"max-block-size":M,"max-height":M,"max-inline-size":M,"max-width":M,"min-block-size":M,"min-height":M,"min-inline-size":M,"min-width":M,order:M,padding:M,"padding-block":M,"padding-block-end":M,"padding-block-start":M,"padding-inline":M,"padding-inline-end":M,"padding-inline-start":M,position:M,right:M,top:M,width:M,background:n.string().nullable().optional(),"background-color":n.string().nullable().optional(),"box-shadow":n.string().nullable().optional(),"column-gap":j.optional(),gap:j.optional(),"margin-bottom":j.optional(),"margin-left":j.optional(),"margin-right":j.optional(),"margin-top":j.optional(),opacity:n.union([n.string(),n.number()]).nullable().optional(),overflow:wi.nullable().optional(),"overflow-x":wi.nullable().optional(),"overflow-y":wi.nullable().optional(),"padding-bottom":j.optional(),"padding-left":j.optional(),"padding-right":j.optional(),"padding-top":j.optional(),"row-gap":j.optional(),"stroke-width":j.optional()}),Ei=n.union([Ti.keyof(),S.shape.property.refine(e=>e.startsWith(`--`))]),Di=Ti.catchall(M).refine(e=>Object.keys(e).every(e=>Ei.safeParse(e).success)),Oi=1e5,ki=n.record(n.string().max(200),n.unknown()).refine(e=>Object.keys(e).length<=128),Ai=n.number().int().positive().max(Oi),ji=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`retain`),count:Ai,attributes:ki.optional()}),n.object({kind:n.literal(`delete`),count:Ai}),n.object({kind:n.literal(`insert`),text:n.string().min(1).max(Oi).refine(e=>e.isWellFormed()),attributes:ki.optional()})]),Mi=n.object({baseLength:n.number().int().nonnegative().max(Oi),representation:n.enum([`plain`,`rich`,`links`]).optional(),steps:n.array(ji).max(Oi),endAttributes:ki.optional(),properties:ki.refine(e=>[`text`,`richText`,`links`].every(t=>!Object.hasOwn(e,t))).optional()}).superRefine((e,t)=>{let n=0,r=0;for(let t of e.steps)t.kind!==`insert`&&(n+=t.count),t.kind!==`delete`&&(r+=t.kind===`insert`?t.text.length:t.count);(n!==e.baseLength||r>1e5)&&t.addIssue({code:`custom`,message:`text change must consume its exact base and fit the text limit`})}),Ni=n.object({actionId:n.string().min(1).max(200),baseVersion:n.number().int().nonnegative(),isActive:n.boolean()}),Pi=n.object({baseVersion:n.number().int().nonnegative(),after:n.array(n.string().min(1).max(200)).max(4e3),change:Mi}),Fi=n.object({actionId:n.string().min(1).max(200),baseVersion:n.number().int().nonnegative(),originalChange:Mi,inverse:Mi,history:Ni.optional(),source:Pi.optional()}),Ii=n.object({op:n.literal(`editText`),nodeId:n.string().min(1).max(200),change:Mi,actionId:n.string().min(1).max(200).optional(),revision:Fi.optional(),history:Ni.optional(),source:Pi.optional()}),Li=1e3,Ri=2e3,zi=n.object({title:n.string().trim().min(1).max(200)}).strict(),Bi=n.array(kn.shape.id).max(Li),Vi=n.object({canvasId:n.uuid()}),Hi=n.object({definition:kn.refine(e=>e.sourceStyleId===void 0),revision:n.number().int().positive(),fontFaces:n.array(n.record(n.string(),n.unknown()))}),Ui=n.object({styles:n.array(Hi).max(Li).refine(e=>new Set(e.map(e=>e.definition.id)).size===e.length)}),Wi=Vi.extend({revision:n.number().int().positive(),documentVersion:n.number().int().positive(),description:n.string().max(Ri),publishedAt:n.iso.datetime(),...Ui.shape}),Gi=Vi.extend({mutationId:n.uuid(),expectedRevision:n.number().int().nonnegative(),documentVersion:n.number().int().positive(),publish:Bi,remove:Bi,description:n.string().trim().max(Ri)}).strict().refine(e=>{let t=[...e.publish,...e.remove];return t.length>0&&t.length<=Li&&new Set(t).size===t.length},{message:`Select each changed style once.`}),Ki=n.object({canvasId:n.uuid(),title:n.string().max(200)}),qi=n.object({search:n.string().trim().max(200).default(``),cursor:Ki.nullable().default(null),limit:n.number().int().min(1).max(50).default(20)}),Ji=n.object({canvasId:n.uuid(),title:n.string(),organisationId:n.uuid().nullable(),revision:n.number().int().positive(),styleCount:n.number().int().positive(),publishedAt:n.iso.datetime()}),Yi=n.object({items:n.array(Ji).max(50),nextCursor:Ki.nullable()}),Xi=n.object({parentId:n.string().min(1).max(200),sortKey:n.string().min(1).max(500)}),Zi=n.object({op:n.literal(`insertConvertedSubtree`),destination:oi,sourceNodeId:n.string().min(1).max(200).optional(),rootNodeId:n.string().min(1).max(200),nodes:n.record(n.string().min(1).max(200),E).refine(e=>Object.keys(e).length<=pr),relationships:n.record(n.string().min(1).max(200),Xi).refine(e=>Object.keys(e).length<pr)}),Qi=1e5,$i=1e3,N=n.string().min(1).max(200),ea=n.string().min(1).max(500),ta=T.extend({width:n.number().positive(),height:n.number().positive()}),na=n.object({parentId:N,afterId:N.optional()}),ra=n.object({parentId:N,sortKey:ea}),ia=n.object({op:n.literal(`setStyles`),nodeId:N,styles:Di,clear:n.array(Ei).min(1).max(Object.keys(Di.shape).length).refine(e=>new Set(e).size===e.length).optional()}).refine(e=>(e.clear??[]).every(t=>!Object.hasOwn(e.styles,t))),aa=n.discriminatedUnion(`op`,[Zi,n.object({op:n.literal(`insertNode`),node:E,parentage:ra}),na.extend({op:n.literal(`insertText`),nodeId:N,label:n.string().max(500).default(`Text`),text:n.string().max(Qi),box:ta,styles:xi.default({})}),na.extend({op:n.literal(`insertPrototype`),nodeId:N,label:n.string().max(500).default(`Prototype`),prototypeId:n.uuid(),deploymentId:n.uuid(),box:ta,canvasPageId:N.optional()}),n.object({op:n.literal(`setPrototypeDeployment`),nodeId:N,prototypeId:n.uuid(),deploymentId:n.uuid()}),Ii,n.object({op:n.literal(`setText`),nodeId:N,text:n.string().max(Qi)}),n.object({op:n.literal(`setBox`),nodeId:N,box:n.union([T,n.literal(`default`)])}),n.object({op:n.literal(`setLabel`),nodeId:N,label:n.string().trim().min(1).max(500),labelOrigin:tr.nullable().optional()}),n.object({op:n.literal(`setContainerKind`),nodeId:N,component:n.enum([`frame`,`group`])}),n.object({op:n.literal(`setVisibility`),nodeId:N,visible:n.boolean().nullable()}),n.object({op:n.literal(`setLocked`),nodeId:N,locked:n.boolean().nullable()}),n.object({op:n.literal(`setConstraints`),nodeId:N,constraints:er}),ia,n.object({op:n.literal(`setAppearance`),nodeId:N,appearance:dt}),n.object({op:n.literal(`setLayout`),nodeId:N,layout:n.union([Ge,n.literal(`default`)])}),n.object({op:n.literal(`patchTypography`),nodeId:N,typography:yt}),n.object({op:n.literal(`setTypography`),nodeId:N,typography:n.union([_t,n.literal(`default`)])}),n.object({op:n.literal(`patchAdditionalStyles`),nodeId:N,additionalStyles:Dt}),n.object({op:n.literal(`setAdditionalStyles`),nodeId:N,additionalStyles:n.union([Tt,n.literal(`default`)])}),n.object({op:n.literal(`setTextStyleLibrary`),nodeId:n.literal(`root`),sourceCanvasId:n.uuid(),library:zi.nullable()}),n.object({op:n.literal(`patchFontLibrary`),nodeId:n.literal(`root`),fonts:kt}),n.object({op:n.literal(`setTextStyle`),nodeId:n.literal(`root`),styleId:kn.shape.id,textStyle:kn.nullable(),changedTextNodeIds:n.array(N).max(pr).optional()}).refine(e=>e.textStyle===null||e.textStyle.id===e.styleId,`text style identity must match`),n.object({op:n.literal(`setGeometry`),nodeId:N,geometry:n.union([Zn,n.literal(`default`)])}),n.object({op:n.literal(`setProps`),nodeId:N,props:n.union([n.record(n.string(),n.unknown()),n.literal(`default`)])}),n.object({op:n.literal(`setParentage`),nodeId:N,parentage:ra}),na.extend({op:n.literal(`move`),nodeId:N}),n.object({op:n.literal(`remove`),nodeId:N,removedText:n.record(N,E.pick({props:!0})).optional()})]),oa=Sr.extend({operation:Zi,next:n.array(n.string().min(1))}),sa=n.record(n.string(),n.unknown()),ca=n.object({canvasId:n.uuid(),afterVersion:n.number().int().positive().optional()}),la=n.object({screenId:n.uuid(),route:n.string().max(u).nullable(),title:n.string().max(200).nullable(),viewport:n.object({width:n.number().int().positive(),height:n.number().int().positive()}),atMs:n.number().int().min(0).nullable(),sourceRecordingId:n.uuid().nullable(),assetBundle:n.object({assetBundleId:n.uuid(),sourceUrl:n.string().max(u),assets:n.array(n.object({url:n.string().max(u),contentType:n.string().max(200),path:n.string().startsWith(`/v1/recording-assets/`)})),missingAssetCount:n.number().int().min(0)}).nullable(),download:Ot.nullable()}),ua=n.object({mutationId:n.uuid(),previousVersion:n.number().int().positive(),version:n.number().int().positive(),operations:n.array(aa)}),da=n.object({mutations:n.array(ua).optional(),version:n.number().int().min(1),document:sa,screens:n.array(la)}),fa=n.object({canvasId:n.uuid(),baseVersion:n.number().int().min(1),document:sa.refine(e=>nr.safeParse(e).success,`A save requires a valid current-format canvas document.`),screenIds:n.array(n.uuid()).max(2e3)}),pa=n.discriminatedUnion(`outcome`,[n.object({outcome:n.literal(`saved`),version:n.number().int().min(1)}),n.object({outcome:n.literal(`conflict`),version:n.number().int().min(1),document:sa})]),ma=e=>typeof e==`object`&&!!e&&!Array.isArray(e),ha=(e,t,n)=>{if(!ma(e)||typeof e.data!=`string`)return e;let r=n(e.data,t);return r===e.data?e:{...e,data:r}},ga=(e,t)=>{if(!ma(e)||!Array.isArray(e.sources))return e;let n=e.sources,r=n.map(n=>ha(n,e,t));return r.every((e,t)=>e===n[t])?e:{...e,sources:r}},_a=(e,t)=>{if(!Array.isArray(e?.fontFaces))return e;let n=e.fontFaces,r=n.map(e=>ga(e,t));return r.every((e,t)=>e===n[t])?e:{...e,fontFaces:r}},va=n.enum([`position`,`layout`,`clip`,`cornerRadius`,`blending`,`typography`,`nativeControl`,`textDecoration`,`fill`,`outline`,`textStroke`,`border`,`outerShadow`,`innerShadow`,`filters`,`additionalStyles`,`vector`,`export`,`source`]),ya=n.object({id:n.string().min(1).max(200),label:n.string().max(500),kind:n.string().min(1).max(100),parentId:n.string().min(1).max(200).nullable(),childCount:n.number().int().min(0),box:Pr.nullable(),propertySections:n.array(va)}),ba=n.object({canvasId:n.uuid()}),xa=n.object({canvasId:n.uuid(),openUrl:n.url(),title:n.string().min(1),version:n.number().int().positive(),nodeCount:n.number().int().min(0),rootChildCount:n.number().int().min(0),bounds:Pr.nullable(),kinds:n.record(n.string(),n.number().int().min(0)),next:n.array(n.string().min(1))}),Sa=n.object({canvasId:n.uuid()}),Ca=n.object({canvasId:n.uuid(),version:n.number().int().positive(),nodes:n.array(ya)}),wa=n.object({canvasId:n.uuid(),nodeId:n.string().min(1).max(200)}),Ta=n.object({canvasId:n.uuid(),version:n.number().int().positive(),node:ya.extend({styles:n.record(n.string(),n.union([n.string(),n.number()])),layout:Ge.optional(),appearance:ct.optional(),typography:_t.optional(),additionalStyles:Tt.optional(),props:n.record(n.string(),n.unknown()),children:n.array(n.string().min(1).max(200))}),next:n.array(n.string().min(1))}),Ea=[[`alignSelf`,`align-self`],[`order`,`order`],[`flexGrow`,`flex-grow`],[`flexShrink`,`flex-shrink`],[`flexBasis`,`flex-basis`],[`aspectRatio`,`aspect-ratio`]],Da=[[`direction`,`flex-direction`],[`wrap`,`flex-wrap`],[`alignItems`,`align-items`],[`alignContent`,`align-content`],[`justifyContent`,`justify-content`],[`rowGap`,`row-gap`],[`columnGap`,`column-gap`]],Oa=[`top`,`right`,`bottom`,`left`],ka=(e,t,n)=>{let r={...e};for(let e of Oa)n.has(`${t}-${e}`)&&Reflect.deleteProperty(r,e);return r},Aa=(e,t)=>{let n=new Set([...t].flatMap(e=>cn(e))),r={...e};for(let[e,t]of Ea)n.has(t)&&Reflect.deleteProperty(r,e);if(r.margin!==void 0&&(r.margin=ka(r.margin,`margin`,n)),r.container===void 0)return r;let i={...r.container};(n.has(`row-gap`)||n.has(`column-gap`))&&i.gap!==void 0&&(i.rowGap??=i.gap,i.columnGap??=i.gap,Reflect.deleteProperty(i,`gap`));for(let[e,t]of Da)n.has(t)&&Reflect.deleteProperty(i,e);return i.padding!==void 0&&(i.padding=ka(i.padding,`padding`,n)),n.has(`grid-template-columns`)&&(Reflect.deleteProperty(i,`gridColumns`),Reflect.deleteProperty(i,`gridAutoRepeat`)),r.container=i,r},ja=(e,t,n)=>{if(e===void 0||e.mode===`fixed`)return e;let r={...e};for(let e of[`min`,`max`])t.every(t=>!n.has(`${e}-${t}`))||(Reflect.deleteProperty(r,e),Reflect.deleteProperty(r,`${e}Parent`));return r},Ma=(e,t,n)=>{let r=new Set([...t].flatMap(e=>cn(e))),i=Aa(e,r);if([`overflow`,`overflow-x`,`overflow-y`].some(e=>r.has(e))&&Reflect.deleteProperty(i,`clipContent`),r.has(`position`)&&Reflect.deleteProperty(i,`position`),r.has(`transform`))for(let e of[`rotation`,`flipHorizontal`,`flipVertical`])Reflect.deleteProperty(i,e);[`inset`,`left`,`right`,`top`,`bottom`].some(e=>r.has(e))&&Reflect.deleteProperty(i,`flowOffset`);for(let e of[`horizontal`,`vertical`]){let t=n[e].some(e=>r.has(e))?void 0:ja(i[e],n[e],r);t===void 0?Reflect.deleteProperty(i,e):i[e]=t}return i},Na=E.shape.id,Pa=T.extend({width:n.number().positive(),height:n.number().positive()}),Fa=n.record(Na,Na),Ia=n.strictObject({fingerprint:n.string().regex(/^[a-f0-9]{64}$/u),revisionPolicy:n.enum([`strict`,`rebase`]),copiedNodeIds:Fa.optional()}),La=n.object({canvasId:n.uuid(),mutationId:n.uuid(),documentFormatVersion:Qn,baseVersion:n.number().int().positive(),operations:n.array(aa).min(1).max($i),requestContext:Ia.optional(),typographyRestorationOf:n.array(n.uuid()).min(1).max($i).optional(),writeScope:ai.optional()}),Ra=n.object({canvasId:n.uuid(),mutationId:n.uuid(),previousVersion:n.number().int().positive(),version:n.number().int().positive(),operations:n.array(aa),insertedNodeIds:n.array(Na),changedNodeIds:n.array(Na),removedNodeIds:n.array(Na),boxes:n.record(Na,T),affectedBounds:Pa.nullable(),copiedNodeIds:Fa.optional(),next:n.array(n.string().min(1))}),za=n.strictObject({canvasId:n.uuid(),mutationId:n.uuid(),fingerprint:Ia.shape.fingerprint}),Ba=n.discriminatedUnion(`state`,[n.strictObject({state:n.literal(`not-found`)}),n.strictObject({state:n.literal(`committed`),result:Ra})]),Va={nodes:1e3,fields:20,id:200,label:500,value:1e3},Ha=n.object({available:n.boolean(),omittedNodes:n.number().int().nonnegative(),nodes:n.array(n.object({nodeId:n.string().min(1).max(Va.id),label:n.string().max(Va.label),kind:n.enum([`inserted`,`removed`,`changed`,`unchanged`,`unavailable`]),omittedFields:n.number().int().nonnegative(),fields:n.array(n.object({label:n.string().max(Va.id),before:n.string().max(Va.value).nullable(),after:n.string().max(Va.value).nullable(),truncated:n.boolean()})).max(Va.fields)})).max(Va.nodes)}),Ua=`page`,Wa=[`position`,`layout`,`cornerRadius`,`blending`,`fill`,`outline`,`border`,`outerShadow`,`innerShadow`,`filters`,`additionalStyles`,`export`],Ga=[`position`,`layout`,`clip`,...Wa.filter(e=>e!==`position`&&e!==`layout`)],Ka=[...Wa,`vector`],qa=Object.fromEntries([{objectKind:`prototype`,label:`Prototype`,category:`import`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!1,commentAnchor:`node`},capture:{preservesHtmlCssAssets:!0},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:[`position`,`layout`]},{objectKind:`root`,label:`Canvas`,category:`container`,capabilities:{canSelect:!1,canContainChildren:!0,canEditProperties:!1},selectionBehavior:{hitTarget:`children`},propertySections:[]},{objectKind:Ua,label:`Page`,category:`container`,capabilities:{canSelect:!1,canContainChildren:!1,canEditProperties:!1},selectionBehavior:{hitTarget:`children`},propertySections:[]},{objectKind:`screen`,label:`Screen`,category:`import`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!1,commentAnchor:`screen`},capture:{preservesHtmlCssAssets:!0},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:[`position`,`layout`,`source`]},{objectKind:`frame`,label:`Frame`,category:`container`,capabilities:{canSelect:!0,canContainChildren:!0,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:Ga},{objectKind:`group`,label:`Group`,category:`container`,capabilities:{canSelect:!0,canContainChildren:!0,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:[`position`,`layout`,`blending`,`additionalStyles`,`export`]},{objectKind:`rectangle`,label:`Rectangle`,category:`primitive`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!0},propertySections:Wa},{objectKind:`image`,label:`Image`,category:`media`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`scale`,preservesAspect:!0,canLockAspectRatio:!0},propertySections:Wa},{objectKind:`svg`,label:`SVG`,category:`primitive`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!0,commentAnchor:`node`},capture:{preservesVectorData:!0},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`scale`,preservesAspect:!0,canLockAspectRatio:!0},propertySections:Ka},{objectKind:`recording`,label:`Recording`,category:`media`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!1},capture:{preservesAssets:!0},selectionBehavior:{hitTarget:`frame`},resizeBehavior:{mode:`scale`,preservesAspect:!0,canLockAspectRatio:!0},propertySections:[]},{objectKind:`text`,label:`Text`,category:`primitive`,capabilities:{canSelect:!0,canContainChildren:!1,canEditProperties:!0,commentAnchor:`node`},selectionBehavior:{hitTarget:`text`},resizeBehavior:{mode:`reflow`,preservesAspect:!1,canLockAspectRatio:!1},propertySections:[`position`,`layout`,`typography`,`nativeControl`,`textDecoration`,`textStroke`,`blending`,`fill`,`outerShadow`,`filters`,`additionalStyles`,`export`]}].map(e=>[e.objectKind,e])),Ja=e=>qa[e]??null,Ya=e=>Ja(e)?.propertySections??[],Xa=8e4,Za=1e3,P=E.shape.id,Qa=n.array(P).min(1).max(Za),$a=n.strictObject({x:n.number(),y:n.number()}),eo=n.strictObject({width:n.number().positive().optional(),height:n.number().positive().optional()}).refine(e=>e.width!==void 0||e.height!==void 0,{message:`Specify width, height, or both.`}),to=n.discriminatedUnion(`kind`,[n.strictObject({kind:n.literal(`position`),nodeId:P,parentPosition:$a}),n.strictObject({kind:n.literal(`resize`),nodeId:P,size:eo}),n.strictObject({kind:n.literal(`relative-position`),nodeId:P,referenceNodeId:P,side:n.enum([`above`,`below`,`left`,`right`]),gap:n.number().nonnegative(),align:n.enum([`start`,`center`,`end`])}),n.strictObject({kind:n.literal(`move`),nodeIds:Qa,targetNodeId:P,position:n.enum([`before`,`inside`,`after`])}),n.strictObject({kind:n.literal(`group`),nodeIds:Qa,label:n.string().min(1).max(500).optional()}),n.strictObject({kind:n.literal(`ungroup`),nodeIds:Qa}),n.strictObject({kind:n.literal(`label`),nodeId:P,label:n.string().min(1).max(500)}),n.strictObject({kind:n.literal(`visibility`),nodeId:P,visible:n.boolean()}),n.strictObject({kind:n.literal(`lock`),nodeId:P,locked:n.boolean()})]),no=n.discriminatedUnion(`kind`,[n.strictObject({kind:n.literal(`arrange`),changes:n.array(to).min(1).max(32)}),n.strictObject({kind:n.literal(`duplicate`),nodeIds:Qa,destination:n.discriminatedUnion(`kind`,[n.strictObject({kind:n.literal(`native`)}),n.strictObject({kind:n.literal(`inside`),parentId:P})])}),n.strictObject({kind:n.literal(`compile-html`),contextOperations:n.array(aa).max($i).refine(e=>e.every(e=>`nodeId`in e&&![`remove`,`move`,`setParentage`,`insertText`,`insertPrototype`,`insertNode`,`insertConvertedSubtree`].includes(e.op)),`Compilation context may update retained fields only.`),fragments:n.array(n.strictObject({id:P,parentNodeId:P,html:n.string().min(1).max(Xa)})).min(1).max(32).refine(e=>new Set(e.map(e=>e.id)).size===e.length&&e.reduce((e,t)=>e+t.html.length,0)<=Xa,`HTML fragment ids must be unique and their total source must fit the 80,000-character budget.`)})]),ro=n.strictObject({pageId:P.optional(),nodeIds:n.array(P).max(Za)}),io=n.strictObject({request:no,scope:ro}),ao=n.strictObject({operations:n.array(aa).max($i),idMap:n.record(P,P),rootNodeIds:n.array(P).max(Za)}),oo=ao.extend({compilations:n.array(n.strictObject({id:P,draft:br})).max(32).optional()});n.discriminatedUnion(`state`,[n.object({state:n.literal(`loading`),jobId:n.uuid()}),n.object({state:n.literal(`ready`),jobId:n.uuid(),loadedVersion:n.number().int().positive(),plan:oo}),n.object({state:n.literal(`failed`),jobId:n.uuid(),message:n.string().min(1).max(500)})]);const so=n.object({id:n.uuid(),canvasId:n.uuid(),requestedVersion:n.number().int().positive(),request:no,scope:ro,phase:zr,attempt:n.number().int().nonnegative(),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime()}),co=n.discriminatedUnion(`state`,[so.extend({state:n.enum([`queued`,`running`]),result:n.null(),failure:n.null()}),so.extend({state:n.literal(`succeeded`),phase:n.literal(`complete`),result:ao.extend({loadedVersion:n.number().int().positive()}),failure:n.null()}),so.extend({state:n.enum([`failed`,`cancelled`,`expired`]),result:n.null(),failure:Wr})]),lo=n.strictObject({canvasId:n.uuid(),expectedVersion:n.number().int().positive(),request:no,scope:ro}),uo=n.object({job:co,alreadyExists:n.boolean()}),fo=n.object({jobId:n.uuid()}),po=n.object({job:co}),mo=`x-enhance-agent-client`,ho=n.string().trim().min(1).max(80).regex(/^[\w .+/-]+$/u),go=n.strictObject({path:n.enum([`local_mcp`,`hosted_mcp`,`direct_cli`]),name:ho.optional(),version:ho.optional()}),_o=go.pick({path:!0}).strip(),vo=n.strictObject({agent_client:n.enum([`claude_code`,`codex`,`cursor`,`unknown`]),connection_path:go.shape.path,identity_source:n.enum([`mcp_client_info`,`documented_cli_fallback`,`unavailable`]),auth_method:n.enum([`personal_agent_token`,`mcp_oauth`]),agent_client_version:ho.optional()}),yo=e=>{let t=go.safeParse(e);if(t.success)return t.data;let n=_o.safeParse(e);return{path:n.success?n.data.path:`direct_cli`}},bo=`enhance3.canvas.v1`,xo=16384,So=3e4,Co=n.enum([`blue`,`violet`,`green`,`amber`,`magenta`,`teal`,`red`,`orange`]),wo=n.object({kind:n.literal(`person`),connectionId:n.uuid(),personId:n.uuid(),displayName:n.string().min(1).max(100),initials:n.string().min(1).max(8),colour:Co}),To=n.object({kind:n.literal(`guest`),connectionId:n.uuid(),displayName:n.string().min(1).max(100),initials:n.string().min(1).max(8),colour:Co}),Eo=n.discriminatedUnion(`kind`,[wo,To]),Do=n.object({kind:n.literal(`agent`),personId:n.uuid(),displayName:n.string().min(1).max(100),initials:n.string().min(1).max(8),tokenLabel:n.string().min(1).max(100),agentAttribution:vo.optional(),colour:Co}),Oo=n.discriminatedUnion(`kind`,[wo.omit({connectionId:!0}),Do]),ko=n.object({x:n.number(),y:n.number()}),Ao=T.extend({width:n.number().positive(),height:n.number().positive()}),jo=n.object({count:n.number().int().positive(),bounds:Ao.nullable()}),Mo=n.object({kind:n.enum([`drag`,`resize`]),baseVersion:n.number().int().positive(),boxes:n.record(n.string().min(1).max(200),Ao).refine(e=>Object.keys(e).length<=100&&new TextEncoder().encode(JSON.stringify(e)).byteLength<=16384),summary:jo.optional()}),No=n.object({cursor:ko.nullable().optional(),input:n.enum([`pointer`,`touch`,`keyboard`]).optional(),focused:n.boolean().optional(),selectedNodeIds:n.array(n.string().min(1).max(200)).max(100).refine(e=>new TextEncoder().encode(JSON.stringify(e)).byteLength<=xo).optional(),selectionSummary:jo.nullable().optional(),visibleWorldBox:Ao.optional(),gesture:Mo.nullable().optional(),cursorChat:n.string().max(140).nullable().optional()}).refine(e=>Object.keys(e).length>0,`presence patch cannot be empty`),Po=n.object({actor:Eo,seq:n.number().int().nonnegative(),cursor:ko.nullable(),input:n.enum([`pointer`,`touch`,`keyboard`]),focused:n.boolean(),selectedNodeIds:n.array(n.string().min(1).max(200)).max(100).refine(e=>new TextEncoder().encode(JSON.stringify(e)).byteLength<=xo),selectionSummary:jo.nullable().optional(),visibleWorldBox:Ao.nullable(),gesture:Mo.nullable(),cursorChat:n.string().max(140).nullable().default(null),expiresAt:n.iso.datetime()}),Fo=n.enum([`reading`,`writing`,`creating`,`deleting`,`rendering`]),Io=n.object({activityId:n.uuid(),canvasId:n.uuid(),actor:Do,phase:Fo,nodeIds:n.array(n.string().min(1).max(200)).max(100),bounds:Ao.nullable(),expiresAt:n.iso.datetime()}),Lo=n.object({canvasId:n.uuid(),protocols:n.array(n.literal(bo)).min(1).max(1)}),Ro=n.object({endpoint:n.url(),ticket:n.string().min(1).max(4096),protocol:n.literal(bo),expiresAt:n.iso.datetime()}),zo=n.object({canvasId:n.uuid(),phase:Fo,nodeIds:n.array(n.string().min(1).max(200)).max(100).default([]),bounds:Ao.nullable().default(null)}),Bo=n.object({activityId:n.uuid(),expiresAt:n.iso.datetime(),renewAfterMs:n.number().int().positive()}),Vo=zo.extend({activityId:n.uuid()}),Ho=n.object({canvasId:n.uuid(),activityId:n.uuid()}),Uo=n.object({ended:n.literal(!0)}),Wo={v:n.literal(1),seq:n.number().int().nonnegative()};n.discriminatedUnion(`type`,[n.object({...Wo,type:n.literal(`room.snapshot`),payload:n.object({connectionId:n.uuid(),peers:n.array(Po),activities:n.array(Io),documentVersion:n.number().int().positive()})}),n.object({...Wo,type:n.literal(`presence.patch`),payload:Po}),n.object({...Wo,type:n.literal(`presence.left`),payload:n.object({connectionId:n.uuid()})}),n.object({...Wo,type:n.literal(`agent.activity`),payload:n.object({activityId:n.uuid(),activity:Io.nullable()})}),n.object({...Wo,type:n.literal(`document.committed`),payload:n.object({mutationId:n.uuid(),actor:Oo,previousVersion:n.number().int().positive(),version:n.number().int().positive(),operations:n.array(aa).min(1)})}),n.object({...Wo,type:n.literal(`sync.required`),payload:n.object({version:n.number().int().positive(),reason:n.enum([`gap`,`relay`,`replace`,`history-restored`])})}),n.object({...Wo,type:n.literal(`room.ping`),payload:n.object({pingId:n.uuid(),sentAt:n.iso.datetime()})}),n.object({...Wo,type:n.literal(`room.error`),payload:n.object({code:n.enum([`auth`,`permission`,`protocol`,`payload`,`rate`,`unavailable`]),message:n.string().min(1).max(200)})})]),n.discriminatedUnion(`type`,[n.object({v:n.literal(1),type:n.literal(`presence.patch`),seq:n.number().int().nonnegative(),payload:No}),n.object({v:n.literal(1),type:n.literal(`selection.chunk`),seq:n.number().int().nonnegative(),payload:n.object({transferId:n.uuid(),offset:n.number().int().nonnegative().max(So-1),total:n.number().int().positive().max(So),nodeIds:n.array(n.string().min(1).max(200)).min(1).max(1e3)})}),n.object({v:n.literal(1),type:n.literal(`selection.unavailable`),seq:n.number().int().nonnegative(),payload:n.object({count:n.number().int().min(30001)})}),n.object({v:n.literal(1),type:n.literal(`room.pong`),seq:n.number().int().nonnegative(),payload:n.object({pingId:n.uuid()})})]).refine(e=>e.type!==`selection.chunk`||new TextEncoder().encode(JSON.stringify(e)).byteLength<=49152);const Go=n.uuid(),Ko=E.shape.id,qo=n.array(Ko).max(So),Jo=/^\/c\/([^/]+)\/?$/iu,Yo=e=>{let t=e.trim();if(t.length>2048)return{ok:!1,reason:`length`};let n=Go.safeParse(t);if(n.success)return{ok:!0,value:{canvasId:n.data,nodeIds:[]}};if(!URL.canParse(t))return{ok:!1,reason:`reference`};let r=new URL(t);try{decodeURIComponent(r.search),decodeURIComponent(r.hash)}catch{return{ok:!1,reason:`reference`}}let i=Go.safeParse(Jo.exec(r.pathname)?.[1]);if(!i.success||![`http:`,`https:`].includes(r.protocol))return{ok:!1,reason:`reference`};let a=r.searchParams.getAll(`page`),o=a[0];if(a.length>1||o!==void 0&&!Ko.safeParse(o).success)return{ok:!1,reason:`page`};let s=new URLSearchParams(r.hash.slice(1));if(s.has(`recording`)||s.has(`version`)||r.searchParams.has(`version`))return{ok:!1,reason:`unsupported`};let c=s.getAll(`prototype`),l=s.getAll(`selection`);if(c.length>1||c.length>0&&l.length>0)return{ok:!1,reason:`selection`};let ee=qo.safeParse(c.length>0?c:l);return ee.success?{ok:!0,value:{canvasId:i.data,...o!==void 0&&{pageId:o},nodeIds:[...new Set(ee.data)]}}:{ok:!1,reason:`selection`}},Xo=(e,t)=>{if(!URL.canParse(e)||![`https:`,`http:`].includes(new URL(e).protocol))return{ok:!1,reason:`reference`};let n=new URL(`/c/${encodeURIComponent(t.canvasId)}`,new URL(e).origin);t.pageId!==void 0&&n.searchParams.set(`page`,t.pageId);let r=new URLSearchParams,i=new Set(t.nodeIds);for(let e of i)r.append(`selection`,e);n.hash=r.toString();let a=Yo(n.href);return a.ok?{ok:!0,url:n.href}:a},Zo=`root`,Qo=`canvas-page-default`,$o=e=>Object.entries(e.relationships).filter(([,e])=>e.parentId===Zo).toSorted(([e,t],[n,r])=>t.sortKey===r.sortKey?e.localeCompare(n):t.sortKey<r.sortKey?-1:1).map(([e])=>e),es=e=>{let t=$o(e).filter(t=>e.nodes[t]?.component===Ua);return t.length>0?t:[Qo]},ts=(e,t)=>{let n=new Set,r=t;for(;r!==void 0&&!n.has(r);){n.add(r);let t=e.nodes[r];if(t===void 0||t.component===`page`)return null;let i=e.relationships[r]?.parentId;if(i===Zo){let e=t.props?.canvasPageId;return typeof e==`string`?e:Qo}r=i}return null},ns=(e,t)=>{let n=new Map;for(let[t,r]of Object.entries(e.relationships)){let e=n.get(r.parentId)??[];e.push(t),n.set(r.parentId,e)}let r=new Set,i=[...t];for(;i.length>0;){let t=i.pop();t===void 0||r.has(t)||e.nodes[t]===void 0||(r.add(t),i.push(...n.get(t)??[]))}return r},rs=(e,t)=>{let n=es(t);if(e.pageId!==void 0&&!n.includes(e.pageId))return{ok:!1,reason:`page`};let r=e.nodeIds.map(e=>ts(t,e));if(r.some(e=>e===null||!n.includes(e)))return{ok:!1,reason:`selection`};if(e.pageId!==void 0&&r.some(t=>t!==e.pageId))return{ok:!1,reason:`inconsistent-page`};if(new Set(r).size>1)return{ok:!1,reason:`mixed-pages`};let i=e.pageId??r[0]??null,a=e.nodeIds.length>0?[...new Set(e.nodeIds)]:$o(t).filter(e=>{let n=ts(t,e);return n!==null&&(i===null||n===i)});return{ok:!0,pageId:i,rootNodeIds:a,nodeIds:ns(t,a)}},is=n.object({jobId:n.uuid()}),as=n.object({jobId:n.uuid(),canvasId:n.uuid(),requestedVersion:n.number().int().positive(),target:D,sourceState:Fr.optional()}),os=n.discriminatedUnion(`purpose`,[as.extend({purpose:n.literal(`preparation`),preparation:io,sourceState:n.undefined().optional(),scale:n.literal(1),format:n.literal(`json`)}),as.extend({purpose:n.enum([`inspection`,`snapshot`,`thumbnail`]),scale:n.number().positive().max(4),maxOutputPixels:Nr.optional(),format:n.literal(`png`)}),as.extend({purpose:n.literal(`conversion`),target:n.object({kind:n.literal(`node`),nodeId:n.string().min(1).max(200)}),sourceState:n.undefined().optional(),conversion:ci,scale:n.literal(1),format:n.literal(`json`)})]);n.object({jobId:n.uuid()}),n.object({jobId:n.uuid()});const ss=n.object({jobId:n.uuid(),canvasId:n.uuid(),requestedVersion:n.number().int().positive(),grantToken:n.string().startsWith(`rgr_`).min(40).max(100),grantCookieName:n.string().min(1).max(100),renderUrl:n.url(),releaseIdentity:n.string().min(1).max(100)});n.discriminatedUnion(`purpose`,[ss.extend({purpose:n.literal(`preparation`),target:D,preparation:io,sourceState:n.undefined().optional(),scale:n.literal(1)}),ss.extend({purpose:n.enum([`inspection`,`snapshot`,`thumbnail`]),target:D,sourceState:Fr.optional(),scale:n.number().positive(),maxOutputPixels:Nr.optional(),outputKey:n.string().min(1).max(500)}),ss.extend({purpose:n.literal(`conversion`),target:n.object({kind:n.literal(`node`),nodeId:n.string().min(1).max(200)}),sourceState:n.undefined().optional(),conversion:ci,scale:n.literal(1)})]),n.object({jobId:n.uuid(),loadedVersion:n.number().int().positive(),bounds:Pr,width:n.number().int().positive(),height:n.number().int().positive(),scale:n.number().positive(),bytes:n.number().int().positive().max(Or),storageKey:n.string().min(1).max(500),warnings:n.array(Ur),timings:n.array(Gr),sourceState:Ir.optional(),snapshot:n.object({artifactBytes:n.number().int().positive().max(kr),artifactStorageKey:n.string().min(1).max(500),route:n.string().optional(),title:n.string().optional(),viewport:n.object({width:n.number().int().positive(),height:n.number().int().positive()})}).optional()}),n.object({accepted:n.literal(!0)}),n.object({jobId:n.uuid(),loadedVersion:n.number().int().positive(),draft:br}),n.object({accepted:n.literal(!0)}),n.object({recordingId:n.uuid(),requestedAtMs:n.number().int().nonnegative(),settledAtMs:n.number().int().nonnegative(),artifact:n.string().min(1).max(kr),route:n.string().optional(),title:n.string().optional(),viewport:n.object({width:n.number().int().positive(),height:n.number().int().positive()})}),n.object({jobId:n.uuid(),failure:Wr}),n.object({accepted:n.literal(!0),willRetry:n.boolean()}),n.object({workerId:n.string().regex(/^[\w.-]+$/u).min(1).max(100),releaseIdentity:n.string().min(1).max(100),timestamp:n.coerce.number().int().nonnegative(),nonce:n.uuid(),mac:n.base64().min(32).max(200)});const cs=n.object({total:n.number().int().nonnegative(),loading:n.number().int().nonnegative(),unavailable:n.number().int().nonnegative()}),ls=n.object({jobId:n.uuid(),canvasId:n.uuid().nullable(),requestedVersion:n.number().int().positive().nullable(),loadedVersion:n.number().int().positive().nullable(),phase:zr.exclude([`queued`,`claimed`,`capture`,`upload`,`complete`]),sources:cs,warnings:n.array(Ur),timings:n.array(Gr),sourceState:Ir.optional()}),us=n.object({selector:n.string().min(1).max(500),contentSelector:n.string().min(1).max(500).optional(),bounds:Pr,width:n.number().int().positive(),height:n.number().int().positive(),scale:n.number().positive()});n.discriminatedUnion(`state`,[ls.extend({state:n.literal(`loading`),capture:n.null(),failure:n.null()}),ls.extend({state:n.literal(`ready`),phase:n.literal(`target`),canvasId:n.uuid(),requestedVersion:n.number().int().positive(),loadedVersion:n.number().int().positive(),capture:us,failure:n.null()}),ls.extend({state:n.literal(`failed`),failure:n.object({reason:Vr,message:n.string().min(1).max(500),sourceId:n.string().min(1).max(200).nullable()}),capture:n.null()})]),n.object({jobId:n.uuid(),loadedVersion:n.number().int().positive(),plan:oo});const ds=n.string().min(1).max(200),fs=n.object({canvasId:n.uuid()}),ps=n.object({canvasId:n.uuid(),status:n.enum([`selected`,`none`,`offline`,`stale`,`updating`,`unsupported`]),documentVersion:n.number().int().positive(),selectionRevision:n.number().int().positive().nullable(),selectionChangedAt:n.iso.datetime().nullable(),selectedNodeIds:n.array(ds),missingNodeIds:n.array(ds),nodes:n.array(ya),contextRootId:ds.nullable(),visibleWorldBox:Pr.nullable(),next:n.array(n.string().min(1)).max(12)}),ms=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`recording`),recordingId:n.string()})]),hs=n.object({html:n.string().optional(),viewport:n.object({width:n.number(),height:n.number()}),atMs:n.number(),screenId:n.string().nullable().default(null),provenance:ms.optional()}),gs=n.object({provenance:ms.optional(),report:_r.optional()}),_s=n.object({recordingId:n.string()}),vs=n.object({prototypeId:n.uuid(),deploymentId:n.uuid()}),ys=e=>{let t=[];for(let[n,r]of Object.entries(e))[`kind`,`children`,`text`,`soft`].includes(n)||(n===`styles`||n===`paragraph`?typeof r==`object`&&r&&t.push(...Object.entries(r).map(([e,t])=>[`${n}.${e}`,t])):t.push([n,r]));return Object.fromEntries(t)},bs=e=>Object.fromEntries(Object.entries(e).filter(([e])=>e!==`text`&&e!==`children`)),xs=(e,t)=>[...e,bs(t)],Ss=(e,t)=>{let n={...e,...t};return t.listStyle===`none`&&(Reflect.deleteProperty(n,`listLevel`),Reflect.deleteProperty(n,`listStart`)),n},Cs=(e,t,n)=>{let r=e.listStyle??t;if(r!==`bulleted`&&r!==`numbered`)return e;let i=e.listLevel??1,a=Math.max(1,Math.min(16,i+n));if(a===i)return e;let o={...e,listLevel:a};return Reflect.deleteProperty(o,`listStart`),o},ws=(e,t)=>{let n=0;return e.map(e=>{let r=n;if(n+=w(e.children).length,r<=t.start||r>t.end||e.paragraph?.listStart===void 0)return e;let i={...e.paragraph};return Reflect.deleteProperty(i,`listStart`),{...e,paragraph:i}})},Ts=e=>{let t=[],n=0;for(let{index:r}of e.matchAll(/\n/gu))t.push({start:n,end:r+1,contentEnd:r}),n=r+1;return t.push({start:n,end:e.length,contentEnd:e.length}),t},Es=(e,t)=>{let n=Math.min(t.anchor,t.focus),r=Math.max(t.anchor,t.focus);return n===r?n>=e.start&&n<=e.contentEnd:n<e.end&&r>e.start},Ds=(e,t=0)=>{let n=t;return e.flatMap(e=>{let t=w([e]).length,r=n;return n+=t,e.kind===`span`?[...e.paragraph===void 0?[]:[{start:r,end:n,formatting:e.paragraph}],...Ds(e.children,r)]:[]})},Os=(e,t)=>{let n=e.filter(e=>e.start===e.end?e.start===t:e.start<=t&&t<e.end);if(n.length===0){let n=e.at(-1);return n?.end===t?n.formatting:{}}let r={};for(let e of n)r={...r,...e.formatting};return r},ks=e=>e.flatMap(e=>{if(e.kind!==`span`)return[e];let t=ks(e.children);if(e.paragraph===void 0)return[{...e,children:t}];let n={...e};return Reflect.deleteProperty(n,`paragraph`),Object.keys(n).filter(e=>![`kind`,`children`,`styles`].includes(e)).length===0&&Object.keys(e.styles).length===0?t:[{...n,children:t}]}),As=e=>e.some(e=>e.kind===`span`&&(e.paragraph!==void 0||e.paragraphSpacing!==void 0||e.paragraphIndent!==void 0||e.listSpacing!==void 0||e.wrapStyle!==void 0||As(e.children))),js=e=>{let t=[[]];for(let n of e){let e=n.kind===`span`?js(n.children).map(e=>e.length===0&&n.children.length>0?[]:[{...n,children:e}]):n.kind===`break`?n.soft===!0?[[n]]:[[n],[]]:n.text.split(`
4
4
  `).map((e,t,r)=>{let i=t<r.length-1?`${e}\n`:e;return i===``&&n.text!==``?[]:[{...n,text:i}]});t.at(-1)?.push(...e[0]??[]),t.push(...e.slice(1))}return t},Ms=(e,t)=>{let n={cursor:0};return t.map(({start:t})=>{let r=(n.active??[]).filter(e=>e.end>t);for(n.active=r;n.cursor<e.length;){let i=e[n.cursor];if(i===void 0||i.start>t)break;(i.end>t||i.start===t)&&r.push(i),n.cursor+=1}if(r.length===0){let n=e.at(-1);return n?.end===t?n.formatting:{}}let i={};for(let e of r)i={...i,...e.formatting};return i})},Ns=e=>{let t=w(e),n=Ds(e),r=js(ks(e)),i=Ts(t),a=Ms(n,i);return i.map((e,t)=>({kind:`span`,paragraph:a[t]??{},styles:{},children:r[t]??[]}))},Ps=(e,t,n)=>{let r=Ts(w(e));return Ns(e).map((e,i)=>{let a=r[i];return a===void 0?e:Es(a,t)?{...e,paragraph:n(e.paragraph??{})}:e})},Fs=(e,t)=>Os(Ds(e),t),Is=(e,t,n)=>{if(!As(e))return t;let r=w(t),i=w(e),a=n.replaces&&n.end===i.length&&n.start<i.length,o=r===``||!a&&r.endsWith(`
5
5
  `)?[{kind:`span`,styles:{},children:[],paragraph:Fs(e,r===``?n.start:i.length)}]:[],s=Ns([...t,...o]);return n.replaces?ws(s,{start:n.start,end:r.length-i.length+n.end}):s},Ls={color:`inherit`,textDecorationLine:`underline`,textDecorationThickness:`0.08em`,textUnderlineOffset:`0.14em`},Rs=new Set(On),zs=new Set(Object.entries(bt).flatMap(([e,t])=>t.some(e=>Rs.has(e))?[e.replaceAll(/-([a-z])/gu,(e,t)=>t.toUpperCase())]:[])),Bs=(e,t,n=!1,r={})=>{if(e===null||r.paragraphSpacing!==void 0||r.paragraphIndent!==void 0||r.listSpacing!==void 0||r.hangingPunctuation!==void 0||r.verticalTrim!==void 0||r.wrapStyle!==void 0)return null;if(n){let n=An.safeParse({...e,...r.position!==void 0&&{position:r.position},overrides:{...e.overrides,...Object.fromEntries(Object.entries(t).filter(([e])=>(e!==`fontFeatureSettings`||r.position===void 0)&&zs.has(e)))}});return n.success?n.data:null}return Object.keys(t).some(e=>zs.has(e))?null:e},Vs=e=>({...e.paragraphSpacing!==void 0&&{paragraphSpacing:e.paragraphSpacing},...e.paragraphIndent!==void 0&&{paragraphIndent:e.paragraphIndent},...e.listSpacing!==void 0&&{listSpacing:e.listSpacing},...e.hangingPunctuation!==void 0&&{hangingPunctuation:e.hangingPunctuation},...e.verticalTrim!==void 0&&{verticalTrim:e.verticalTrim},...e.wrapStyle!==void 0&&{wrapStyle:e.wrapStyle}}),Hs=(e,t)=>e.flatMap(e=>{if(e.kind!==`span`)return[e];let n={...e,styles:{...e.styles},children:Hs(e.children,t)};if(t.type===`format`){let e=Object.keys(Vs(t));for(let t of e)Reflect.deleteProperty(n,t);let r=Bs(n.textStyle??null,t.styles,t.shouldOverrideTextStyle,{paragraphSpacing:t.paragraphSpacing,paragraphIndent:t.paragraphIndent,listSpacing:t.listSpacing,hangingPunctuation:t.hangingPunctuation,verticalTrim:t.verticalTrim,wrapStyle:t.wrapStyle,position:t.textStylePosition});r===null?Reflect.deleteProperty(n,`textStyle`):n.textStyle=r}else if(t.type===`text-style`)return Reflect.deleteProperty(n,`textStyle`),[n];if(t.type===`link`)Reflect.deleteProperty(n,`href`);else if(t.type===`paint`)Reflect.deleteProperty(n,`fills`),Reflect.deleteProperty(n.styles,`color`);else for(let e of Object.keys(t.styles))Reflect.deleteProperty(n.styles,e);let r=Object.keys(n).filter(e=>![`kind`,`children`,`styles`].includes(e));return Object.keys(n.styles).length===0&&r.length===0?n.children:[n]}),Us=(e,t)=>e.map(e=>e.kind===`span`?e.children.some(e=>e.kind===`span`)?{...e,children:Us(e.children,t)}:{...e,styles:{...e.styles,...t}}:{kind:`span`,styles:t,children:[e]}),Ws=(e,t)=>{let n=Hs(e,t);if(t.type===`text-style`)return t.binding===null?n:[{kind:`span`,styles:{},textStyle:t.binding,children:n}];if(t.type===`format`){let e=t.styles.textDecorationLine===void 0?[{kind:`span`,styles:t.styles,children:n}]:Us(n,t.styles),r=Vs(t);return Object.keys(r).length===0?e:[{kind:`span`,styles:{},...r,children:e}]}return t.type===`link`?t.href===null?n:[{kind:`span`,styles:Ls,href:t.href,children:n}]:t.fills===null?n:[{kind:`span`,styles:{},fills:t.fills,children:n}]},Gs={},Ks=()=>Gs.current??=new Intl.Segmenter(void 0,{granularity:`grapheme`}),qs=e=>new Set([0,e.length,...Array.from(Ks().segment(e),({index:e})=>e)]),Js=(e,t)=>{let n=qs(e);return t.start<=t.end&&n.has(t.start)&&n.has(t.end)},Ys=e=>e.kind===`text`?e.text.length:e.kind===`break`?1:w(e.children).length,Xs=(e,t,n)=>{let r=0;return e.flatMap(e=>{let i=Ys(e),a=Math.max(0,t-r),o=Math.min(i,n-r);return r+=i,a>=o?[]:a===0&&o===i?[e]:e.kind===`span`?[{...e,children:Xs(e.children,a,o)}]:e.kind===`text`?[{...e,text:e.text.slice(a,o)}]:[e]})},Zs=e=>JSON.stringify(Object.fromEntries(Object.entries(e).filter(([e])=>![`children`,`text`].includes(e)))),Qs=e=>e.kind===`span`&&e.paragraph!==void 0&&w(e.children).endsWith(`
6
6
  `),$s=e=>{let t=[];for(let n of e){let e=t.at(-1);if(e!==void 0&&!Qs(e)&&Zs(e)===Zs(n)){if(e.kind===`text`&&n.kind===`text`){t[t.length-1]={...e,text:e.text+n.text};continue}if(e.kind===`span`&&n.kind===`span`){t[t.length-1]={...e,children:$s([...e.children,...n.children])};continue}}t.push(n)}return t},ec=(e,t)=>e.split(/([\n\u{2028}])/u).flatMap(e=>e===`
7
7
  `||e===`\u2028`?[{kind:`break`,...e===`\u2028`&&{soft:!0}}]:e===``?[]:[{...t?.kind===`text`&&t,kind:`text`,text:e}]),tc=(e,t,n,r=!1)=>{if(n===``&&!r)return[];let i=0;for(let a of e){let o=Ys(a);if(t<i+o||a===e.at(-1))return a.kind===`span`?[{...a,children:tc(a.children,t-i,n,r)}]:ec(n,a);i+=o}return ec(n)},nc=(e,t,n)=>{let r=t.length-e.length+(n?.end??0);if(n!==void 0&&Js(e,n)&&Js(t,{start:n.start,end:r})&&e.slice(0,n.start)===t.slice(0,n.start)&&e.slice(n.end)===t.slice(r))return n;let i=qs(e),a=qs(t),o=0,s=Math.min(e.length,t.length);for(;o<s&&e[o]===t[o];)o+=1;for(;!i.has(o)||!a.has(o);)--o;let c=0;for(;c<Math.min(e.length-o,t.length-o)&&e[e.length-c-1]===t[t.length-c-1];)c+=1;for(;!i.has(e.length-c)||!a.has(t.length-c);)--c;return{start:o,end:e.length-c}},rc=e=>{let t=Hn(e);if(t.length>0)return t;let n=dr(e)??``,r=[],i=0;for(let t of fr(e))i<t.start&&r.push({kind:`text`,text:n.slice(i,t.start)}),r.push({kind:`span`,href:t.href,styles:Ls,children:[{kind:`text`,text:n.slice(t.start,t.end)}]}),i=t.end;return i<n.length&&r.push({kind:`text`,text:n.slice(i)}),r},ic=(e,t)=>e.some(e=>e.kind===`span`&&(t.paragraphSpacing!==void 0&&e.paragraphSpacing!==void 0||t.paragraphIndent!==void 0&&e.paragraphIndent!==void 0||t.listSpacing!==void 0&&e.listSpacing!==void 0||t.wrapStyle!==void 0&&e.wrapStyle!==void 0||ic(e.children,t))),ac=(e,t,n)=>{let r=rc(e),i=w(r),a={hasChange:!1},o=t=>{let r=n.type===`paragraph`?Ss(t,n.formatting):Cs(t,e.typography?.listStyle,n.delta);return a.hasChange||=JSON.stringify(t)!==JSON.stringify(r),r},s=n.type===`paragraph`&&n.wholeLayer===!0?Ns(r).map(e=>({...e,paragraph:o(e.paragraph??{})})):Ps(r,{anchor:t.start,focus:t.end},o);if(n.type===`paragraph`&&ic(r,n.formatting)){let e=Ts(i);s=s.map((r,i)=>{let o=e[i];if(n.wholeLayer!==!0&&(o===void 0||!Es(o,{anchor:t.start,focus:t.end})))return r;let s=Ws(r.children,{type:`format`,styles:{},paragraphSpacing:n.formatting.paragraphSpacing,paragraphIndent:n.formatting.paragraphIndent,listSpacing:n.formatting.listSpacing,wrapStyle:n.formatting.wrapStyle});return a.hasChange||=JSON.stringify(s)!==JSON.stringify(r.children),{...r,children:s}})}if(!a.hasChange||JSON.stringify(s)===JSON.stringify(r))return e.props??{};let c={...e.props,text:i,richText:s};return Reflect.deleteProperty(c,`links`),c},oc=(e,t,n)=>{let r=t.start===0&&t.end===w(e).length,i=tc(e,t.start,n.text,r);return n.text===``?i:((Object.keys(n.styles??{}).length>0||n.paragraphSpacing!==void 0||n.paragraphIndent!==void 0||n.listSpacing!==void 0||n.hangingPunctuation!==void 0||n.wrapStyle!==void 0||n.verticalTrim!==void 0)&&(i=Ws(i,{type:`format`,styles:n.styles??{},paragraphSpacing:n.paragraphSpacing,paragraphIndent:n.paragraphIndent,listSpacing:n.listSpacing,hangingPunctuation:n.hangingPunctuation,verticalTrim:n.verticalTrim,wrapStyle:n.wrapStyle})),n.fills!==void 0&&(i=Ws(i,{type:`paint`,fills:n.fills})),n.textStyle!==void 0&&(i=Ws(i,{type:`text-style`,binding:n.textStyle})),i)},sc=(e,t,n)=>{let r=dr(e)??``;if(!Js(r,t))return e.props??{};if(n.type===`paragraph`||n.type===`list-indent`)return ac(e,t,n);if(n.type!==`replace`&&t.start===t.end&&(r!==``||n.type!==`text-style`&&n.type!==`format`)||n.type===`link`&&n.href!==null&&!Fn(n.href))return e.props??{};let i=rc(e),a=n.type===`replace`?oc(i,t,n):Ws(r===``?i:Xs(i,t.start,t.end),n),o=Is(i,$s([...Xs(i,0,t.start),...a,...Xs(i,t.end,r.length)]),{...t,replaces:n.type===`replace`}),s={...e.props,text:w(o)};return Reflect.deleteProperty(s,`links`),Reflect.deleteProperty(s,`richText`),(n.type!==`replace`||n.fills!==void 0||n.textStyle!==void 0||n.paragraphSpacing!==void 0||n.paragraphIndent!==void 0||n.listSpacing!==void 0||n.hangingPunctuation!==void 0||n.wrapStyle!==void 0||n.verticalTrim!==void 0||Object.keys(n.styles??{}).length>0||Hn(e).length>0||r===``&&Array.isArray(e.props?.richText)&&e.props.richText.length===0||fr(e).length>0)&&(s.richText=o),s},cc=(e,t,n,r)=>{let i=dr(e)??``;if(i===t)return e.props??{};let{range:a,...o}=r??{},s=nc(i,t,a);return sc(e,s,{type:`replace`,styles:n,...o,text:t.slice(s.start,t.length-i.length+s.end)})},lc=e=>Array.isArray(e.props?.richText)?`rich`:Array.isArray(e.props?.links)?`links`:`plain`,uc=(e,t)=>typeof t==`object`&&t&&!Array.isArray(t)?Object.fromEntries(Object.entries(t).toSorted(([e],[t])=>e.localeCompare(t,`en`))):t,dc=(e,t)=>e===t||JSON.stringify(e,uc)===JSON.stringify(t,uc),fc=(e,t)=>Object.fromEntries([...new Set([...Object.keys(e),...Object.keys(t)])].flatMap(n=>dc(e[n],t[n])?[]:[[n,t[n]??null]])),pc=e=>e.kind===`text`?e.text:e.soft===!0?`\u2028`:`
8
8
  `,mc=(e,t,n,r)=>{let i=r;for(let r of e){let e=xs(n,r),a={...t,...ys({...r}),$structure:e};if(r.kind===`span`)r.children.length===0&&(i.endAttributes=a),mc(r.children,a,e,i);else{let e=pc(r);e!==``&&i.chunks.push({text:e,attributes:a}),i.endAttributes=a}}},hc=e=>{let t=rc(e),n={chunks:[],endAttributes:{}};mc(t,{},[],n);let r=Fs(t,(dr(e)??``).length);return{chunks:n.chunks.flatMap((e,t,n)=>{let r=n[t-1];if(r!==void 0&&dc(r.attributes,e.attributes))return[];let i=e.text;for(let r=t+1;r<n.length;r+=1){let t=n[r];if(t===void 0||!dc(e.attributes,t.attributes))break;i+=t.text}return[{...e,text:i}]}),endAttributes:{...n.endAttributes,...Object.fromEntries(Object.entries(r).map(([e,t])=>[`paragraph.${e}`,t]))}}},gc=(e,t,n)=>{let r=0,i=[];for(let a of e){let e=Math.max(0,t-r),o=Math.min(a.text.length,n-r);if(e<o&&i.push({...a,text:a.text.slice(e,o)}),r+=a.text.length,r>=n)break}return i},_c=(e,t)=>{if((t.kind===`insert`?t.text.length:t.count)===0)return;let n=e,r=n.at(-1);if(r?.kind===`delete`&&t.kind===`delete`){n[n.length-1]={kind:`delete`,count:r.count+t.count};return}if(r?.kind===`retain`&&t.kind===`retain`&&JSON.stringify(r.attributes??{})===JSON.stringify(t.attributes??{})){n[n.length-1]={...t,count:r.count+t.count};return}if(r?.kind===`insert`&&t.kind===`insert`&&JSON.stringify(r.attributes??{})===JSON.stringify(t.attributes??{})){n[n.length-1]={...t,text:r.text+t.text};return}n.push(t)},vc=(e,t,n)=>{let r=0;for(let i of t){let t=gc(n,r,r+i.text.length);for(let n of t){let t=fc(i.attributes,n.attributes);_c(e,{kind:`retain`,count:n.text.length,...Object.keys(t).length>0&&{attributes:t}})}r+=i.text.length}},yc=(e,t,n)=>{let r=dr(e)??``,i=dr(t)??``,a=hc(e),o=hc(t),s=r===i?{start:r.length,end:r.length}:nc(r,i,n),c=i.length-r.length+s.end,l=[];vc(l,gc(a.chunks,0,s.start),gc(o.chunks,0,s.start)),_c(l,{kind:`delete`,count:s.end-s.start});for(let e of gc(o.chunks,s.start,c))_c(l,{kind:`insert`,...e});vc(l,gc(a.chunks,s.end,r.length),gc(o.chunks,c,i.length));let ee=fc(a.endAttributes,o.endAttributes),te=Object.fromEntries(Object.entries(fc(e.props??{},t.props??{})).filter(([e])=>![`text`,`richText`,`links`].includes(e))),ne=lc(t);return{...ne!==lc(e)&&{representation:ne},...Object.keys(te).length>0&&{properties:te},baseLength:r.length,steps:l,...Object.keys(ee).length>0&&{endAttributes:ee}}},bc=new Set(On);new Set(Object.entries(bt).flatMap(([e,t])=>t.some(e=>bc.has(e))?[e]:[]));const xc=[[`features`,`featureChanges`],[`variations`,`variationChanges`]],Sc=(e,t)=>{let n={...e};for(let e of vt){let r=t[e];r!==void 0&&Reflect.set(n,e,r)}for(let[r,i]of xc){let a=t[i];if(a===void 0)continue;let o={...e?.[r],...a.set},s=a.clear??[];for(let e of s)Reflect.deleteProperty(o,e);a.removeIfEmpty===!0&&Object.keys(o).length===0?Reflect.deleteProperty(n,r):n[r]=o}let r=t.clear??[];for(let e of r)Reflect.deleteProperty(n,e);return Object.keys(n).length===0?null:n},Cc=e=>[...new Set(Object.entries(bt).flatMap(([t,n])=>e.has(t)?n:[]))],wc=1e3,Tc=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`person`),personId:n.uuid(),displayName:n.string().min(1).max(200),initials:n.string().min(1).max(2)}),n.object({kind:n.literal(`agent`),personId:n.uuid(),displayName:n.string().min(1).max(200),initials:n.string().min(1).max(2),tokenLabel:n.string().min(1).max(200)})]),Ec=n.object({id:n.uuid(),canvasId:n.uuid(),documentVersion:n.number().int().positive(),origin:n.enum([`automatic`,`manual`,`restore`]),restoreRole:n.enum([`before`,`result`]).nullable(),retention:n.enum([`automatic`,`named`,`restore-boundary`]),title:n.string().min(1).max(200).nullable(),description:n.string().max(wc).nullable(),actor:Tc,sourceVersionEntryId:n.uuid().nullable(),expiresAt:n.iso.datetime().nullable(),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime(),screenCount:n.number().int().min(0)}),Dc=n.object({canvasId:n.uuid(),limit:n.number().int().min(1).max(100).default(50),cursor:n.string().min(1).max(1e3).optional(),includeAutomatic:n.boolean().default(!1),actor:n.enum([`all`,`mine`]).default(`all`)}),Oc=n.object({current:n.object({documentVersion:n.number().int().positive(),updatedAt:n.iso.datetime()}),items:n.array(Ec),nextCursor:n.string().min(1).nullable(),hasExpiredHistory:n.boolean()}),kc=n.object({canvasId:n.uuid(),versionId:n.uuid()}),Ac=n.object({outcome:n.literal(`ready`),entry:Ec,document:sa,screens:n.array(la)}),jc=n.object({outcome:n.literal(`missing-resources`),entry:Ec,document:sa,screens:n.array(la),missingScreenIds:n.array(n.uuid()).min(1)}),Mc=n.discriminatedUnion(`outcome`,[Ac,jc,n.object({outcome:n.literal(`corrupt`),entry:Ec})]),Nc=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`current`),expectedVersion:n.number().int().positive()}),n.object({kind:n.literal(`version`),versionId:n.uuid()})]),Pc=n.object({canvasId:n.uuid(),target:Nc,title:n.string().trim().min(1).max(200),description:n.string().trim().max(wc).nullable().default(null)}),Fc=n.object({canvasId:n.uuid(),versionId:n.uuid(),title:n.string().trim().min(1).max(200),description:n.string().trim().max(wc).nullable().default(null)}),Ic=n.object({canvasId:n.uuid(),versionId:n.uuid()}),Lc=n.object({entry:Ec}),Rc=n.object({canvasId:n.uuid(),documentFormatVersion:Qn,versionId:n.uuid(),expectedVersion:n.number().int().positive()}),zc=n.object({canvasId:n.uuid(),version:n.number().int().positive(),beforeVersionId:n.uuid(),restoredVersionId:n.uuid(),restoreFenceVersion:n.number().int().positive()}),Bc=n.object({canvasId:n.uuid(),documentFormatVersion:Qn,versionId:n.uuid(),organisationId:n.union([n.uuid(),n.literal(`personal`)]),title:n.string().trim().min(1).max(200).optional()}),Vc=n.object({canvasId:n.uuid(),title:n.string().min(1).max(200),version:n.literal(1)}),Hc=(e,t)=>{let n=e.split(` `).map(e=>Number(e.replace(`%`,``)));return n.every(e=>e>0&&e<=t)&&(n.length===1||(n[0]??0)<=(n[1]??0))},Uc=n.string().regex(/^[a-f0-9]{64}$/u),Wc=n.string().trim().min(1).max(200),Gc=n.object({organisationId:n.uuid().nullable()}),Kc=n.object({family:n.string().regex(/^uploaded-font-[a-f0-9]{64}(?:-[a-f0-9]{12})?$/u),familyName:Wc,subfamilyName:Wc,version:Wc,weight:n.string().regex(/^\d+(?:\.\d+)?(?: \d+(?:\.\d+)?)?$/u).refine(e=>Hc(e,1e3)),style:n.enum([`normal`,`italic`,`oblique`]),stretch:n.union([n.enum([`normal`,`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`]),n.string().regex(/^\d+(?:\.\d+)?%(?: \d+(?:\.\d+)?%)?$/u).refine(e=>Hc(e,1e3))]),format:n.enum([`truetype`,`opentype`,`woff`,`woff2`])}),qc=n.object({kind:n.enum([`personal`,`team`]),ownerId:n.uuid(),sha256:Uc}),Jc=Gc.extend({sha256:Uc,bytes:n.number().int().positive().max(Rt),contentType:n.enum(zt)}),Yc=n.object({upload:C}),Xc=Jc.extend({metadata:Kc,hasSharingRights:n.literal(!0)}),Zc=qc.extend({bytes:n.number().int().positive().max(Rt),metadata:Kc,createdAt:n.iso.datetime(),path:n.string().startsWith(`/v1/font-catalog/`)}),Qc=n.object({entries:n.array(Zc),canManage:n.boolean()}),$c=Gc.extend({sha256:Uc}),el=Gc.extend({canvasId:n.uuid(),sha256:n.array(Uc).min(1).max(100)}),tl=n.object({resources:n.array(n.object({entry:Zc,path:n.string().startsWith(`/v1/canvas-assets/`)}))}),nl=n.object({inviteId:n.uuid(),email:n.string().max(254),accessLevel:de,sendCount:n.number().int().min(1),lastSentAt:n.iso.datetime(),expiresAt:n.iso.datetime(),state:n.enum([`pending`,`expired`]),deliveryState:n.enum([`queued`,`accepted`,`failed`]),deliveryError:n.string()}),rl=n.object({canvasTitle:n.string().min(1),invitedBy:n.string().min(1),email:n.string().max(254).pipe(n.email()),accessLevel:de,expiresAt:n.iso.datetime(),state:n.enum([`pending`,`accepted`]),hasAccount:n.boolean()}),il=n.object({canvasId:n.uuid(),email:n.string().max(254).transform(e=>e.trim().toLowerCase()).pipe(n.email()),accessLevel:de}),al=n.object({invite:nl,acceptToken:n.string().max(512).optional()}),ol=n.object({canvasId:n.uuid()}),sl=d(nl),cl=n.object({canvasId:n.uuid(),inviteId:n.uuid()}),ll=n.object({canvasId:n.uuid(),inviteId:n.uuid()}),ul=n.string().min(1).max(512),dl=n.object({token:ul}),fl=n.object({token:ul}),pl=n.object({canvasId:n.uuid(),accessLevel:de}),ml=n.object({personId:n.uuid().nullable(),email:n.string().max(254).nullable(),displayName:n.string().max(120).nullable(),initials:n.string().max(4).nullable(),avatarUrl:n.string().max(u).nullable(),accessLevel:ue,isPending:n.boolean(),reviewState:n.enum([`not-started`,`in-progress`,`done`]).nullable(),lastViewedAt:n.iso.datetime().nullable()}),hl=n.object({canvasId:n.uuid()}),gl=d(ml),_l=n.object({canvasId:n.uuid(),personId:n.uuid(),accessLevel:de}),vl=n.object({canvasId:n.uuid(),personId:n.uuid()}),yl=n.object({personId:n.uuid(),revoked:n.boolean()}),bl=n.object({canvasId:n.uuid(),reviewState:n.enum([`not-started`,`in-progress`,`done`])}),xl=n.object({reviewState:bl.shape.reviewState.nullable()}),Sl=se.extend({cursor:n.string().max(2048).nullable().default(null)}),Cl=n.object({selector:n.string().min(1).max(2e3),tagName:n.string().min(1).max(40),label:n.string().max(80).nullable(),source:n.object({file:n.string().min(1).max(1024),line:n.number().int().min(0).nullable()}).nullable()}),wl=n.object({x:n.number(),y:n.number()}),Tl=n.object({x:n.number().min(0).max(1),y:n.number().min(0).max(1)}),El=n.object({x:n.number().min(0).max(1),y:n.number().min(0).max(1),width:n.number().min(0).max(1),height:n.number().min(0).max(1)}),Dl=Cl.extend({role:n.string().min(1).max(80).optional()}),Ol=n.object({path:n.array(n.number().int().min(0)).max(64),offset:n.number().int().min(0)}),kl=n.object({version:n.literal(1),kind:n.literal(`element`),locator:Dl,attachment:Tl,fallbackBounds:El}),Al=n.object({version:n.literal(1),kind:n.literal(`text`),root:Dl,quote:n.object({exact:n.string().min(1).max(1e3),prefix:n.string().max(120),suffix:n.string().max(120)}),range:n.object({start:Ol,end:Ol}),attachment:Tl,fallbackBounds:El}),jl=n.object({version:n.literal(1),kind:n.literal(`elements`),members:n.array(Dl).min(2).max(32),truncated:n.boolean(),attachment:Tl,fallbackBounds:El}),Ml=n.object({version:n.literal(1),kind:n.literal(`area`),bounds:El,attachment:Tl}),Nl=n.discriminatedUnion(`kind`,[kl,Al,jl,Ml]),Pl=n.discriminatedUnion(`on`,[n.object({on:n.literal(`canvas`),point:wl}),n.object({on:n.literal(`node`),nodeId:n.string().min(1).max(120),point:wl,element:n.null()}),n.object({on:n.literal(`screen`),nodeId:n.string().min(1).max(120),screenId:n.uuid(),point:wl,element:Cl.nullable(),target:Nl.optional()})]),Fl=n.object({kind:n.enum([`person`,`agent`]),personId:n.uuid(),name:n.string().min(1).max(120),initials:n.string().min(1).max(4),avatarUrl:n.string().max(u).nullable(),tokenLabel:n.string().max(120).nullable()}),Il=n.object({personId:n.uuid(),name:n.string().min(1).max(120)}),Ll=n.object({emoji:n.string().min(1).max(16),people:n.array(Il).min(1)}),Rl=n.object({messageId:n.uuid(),seq:n.number().int().min(1),body:n.string().min(1),author:Fl,createdAt:n.iso.datetime(),editedAt:n.iso.datetime().nullable(),mentions:n.array(Il),reactions:n.array(Ll)}),zl=n.object({kind:n.enum([`person`,`agent`]),personId:n.uuid(),name:n.string().min(1).max(120),tokenLabel:n.string().max(120).nullable()}),Bl=n.object({revision:n.number().int().positive(),threadId:n.uuid(),canvasId:n.uuid(),anchor:Pl,author:Fl,messages:n.array(Rl).min(1).max(50),messageCount:n.number().int().min(1),hasMoreMessages:n.boolean(),isResolved:n.boolean(),resolvedAt:n.iso.datetime().nullable(),resolvedBy:zl.nullable(),createdAt:n.iso.datetime(),lastMessageAt:n.iso.datetime()}),Vl=n.strictObject({canvasRef:n.string().min(1).max(u),expectedVersion:n.number().int().positive()}),Hl=Vl.extend({coordinateSpace:n.enum([`canvas-world`,`node-normalized`,`screen-normalized`])}),Ul=n.object({context:Vl.optional(),page:Sl.optional(),canvasId:n.uuid(),filter:n.enum([`open`,`resolved`,`all`]).default(`open`),authorPersonId:n.uuid().optional(),agentActionable:n.boolean().default(!1),query:n.string().trim().max(200).optional()}),Wl=d(Bl).extend({nextCursor:n.string().nullable().optional()}),Gl=Sl.extend({context:Vl.optional(),canvasId:n.uuid(),threadId:n.uuid(),expectedRevision:n.number().int().positive().optional()}),Kl=n.object({thread:Bl.omit({messages:!0,hasMoreMessages:!0}),messages:n.array(Rl).max(100),nextCursor:n.string().nullable()}),ql=n.object({context:Hl.optional(),canvasId:n.uuid(),clientThreadId:n.uuid(),anchor:Pl,body:n.string().trim().min(1).max(ie),mentionedPersonIds:n.array(n.uuid()).max(10).default([])}),Jl=n.object({context:Vl.optional(),canvasId:n.uuid(),threadId:n.uuid(),clientMessageId:n.uuid(),body:n.string().trim().min(1).max(ie),mentionedPersonIds:n.array(n.uuid()).max(10).default([])}),Yl=Bl.extend({postedMessage:Rl}),Xl=n.object({canvasId:n.uuid(),threadId:n.uuid(),messageId:n.uuid(),body:n.string().trim().min(1).max(ie),mentionedPersonIds:n.array(n.uuid()).max(10).default([])}),Zl=n.object({canvasId:n.uuid(),threadId:n.uuid(),messageId:n.uuid(),emoji:n.string().trim().min(1).max(16),reacted:n.boolean()}),Ql=n.object({canvasId:n.uuid(),threadId:n.uuid(),anchor:Pl}),$l=n.object({context:Vl.optional(),expectedRevision:n.number().int().positive().optional(),canvasId:n.uuid(),threadId:n.uuid(),resolved:n.boolean()}),eu=n.object({canvasId:n.uuid(),threadId:n.uuid(),messageId:n.uuid().optional()}),tu=n.object({deletedThreadIds:n.array(n.uuid()),deletedMessageIds:n.array(n.uuid())}),F={shortText:200,name:100,instruction:4e4,label:500,prompt:1e5,items:1e3,attachments:10,messages:1e4,content:1e6,imageBytes:2e7,preview:5e5,encodedImage:28e6,page:50,cursor:64,answer:2e3,questionOptions:3},I=n.uuid(),nu=n.string().min(1).max(F.shortText),ru=n.object({id:I,name:n.string().trim().min(1).max(F.name),content:n.string().trim().min(1).max(F.instruction),version:n.string().min(1).max(F.name)}),iu=n.object({canvasId:I,nodeId:nu,label:n.string().max(F.label),role:n.enum([`target`,`reference`])}),au=n.discriminatedUnion(`type`,[n.object({type:n.literal(`text`),text:n.string().max(F.prompt)}),iu.extend({type:n.literal(`object`)})]),ou=n.object({revision:n.number().int().nonnegative(),text:n.string().max(F.prompt),task:n.enum([`chat`,`rewrite`,`shorten`,`translate`,`replace`,`rename`]).default(`chat`),references:n.array(iu).max(F.items),contentVersion:n.literal(1).default(1),parts:n.array(au).max(F.messages).optional(),attachmentIds:n.array(I).max(F.attachments),model:n.enum([`default`,`sonnet`,`opus`,`haiku`]).default(`default`),effort:n.enum([`default`,`low`,`medium`,`high`]).default(`default`),instructions:n.array(n.object({name:n.string().max(F.name),content:n.string().max(F.instruction),version:n.string().max(F.name)})).max(F.attachments).default([])}).transform((e,t)=>{let r=e.parts??[...e.references.flatMap(e=>[{type:`object`,...e},{type:`text`,text:`
9
- `}]),{type:`text`,text:e.text}],i=r.map(e=>e.type===`text`?e.text:e.label).join(``),a=new Map;for(let e of r){if(e.type===`text`)continue;let t=`${e.canvasId}:${e.nodeId}`,n=a.get(t);a.set(t,{canvasId:e.canvasId,nodeId:e.nodeId,label:e.label,role:n?.role===`target`?`target`:e.role})}return i.length>F.prompt||a.size>F.items?(t.addIssue({code:`custom`,message:`This draft exceeds the supported content limits.`}),n.NEVER):{...e,text:i,references:Array.from(a,([,e])=>e),parts:r}}),su=n.object({state:n.enum([`checking`,`not-installed`,`unsupported`,`signed-out`,`signing-in`,`connected`,`usage-limited`,`auth-expired`,`unavailable`]),version:n.string().nullable(),account:n.string().nullable(),issue:n.string().nullable()}),cu=n.object({canvasId:I,mutationId:I,previousVersion:n.number().int().positive(),version:n.number().int().positive(),nodeIds:n.array(nu).max(F.messages),reverted:n.boolean().default(!1),review:Ha.optional()}),lu=n.object({prompt:n.string().trim().min(1).max(F.items),options:n.array(n.string().trim().min(1).max(F.shortText)).max(F.questionOptions).refine(e=>new Set(e).size===e.length,`Options must be distinct.`).default([])}).extend({id:I,digest:n.string().min(1).max(F.name),state:n.enum([`pending`,`answered`,`cancelled`]),answer:n.string().max(F.answer).nullable()}),uu=n.object({jobId:I,version:n.number().int().positive(),target:D,state:n.enum([`rendered`,`checked`,`needs-review`]),summary:n.string().max(F.label)}),du=n.object({parts:n.array(au).max(F.messages).optional(),id:n.string().min(1).max(F.shortText),role:n.enum([`user`,`assistant`,`tool`]),text:n.string().max(F.content),tool:n.string().nullable().default(null),outcome:n.enum([`running`,`completed`,`denied`,`failed`]).nullable().default(null)}),fu=n.object({id:n.string().min(1).max(F.shortText),tool:n.string().max(F.shortText),digest:n.string().max(F.name),input:n.record(n.string(),n.unknown())}),pu=n.object({mutationId:I,canvasId:I,procedure:n.enum([`canvas.applyOperations`,`canvas.render.importSource`]),input:n.record(n.string(),n.unknown()),state:n.enum([`recorded`,`accepted`,`unknown`,`refused`])}),mu=n.object({id:I,name:n.string().max(F.shortText),mediaType:n.enum([`image/png`,`image/jpeg`,`image/webp`]),width:n.number().int().positive(),height:n.number().int().positive(),bytes:n.number().int().positive().max(F.imageBytes),preview:n.string().max(F.preview).regex(/^data:image\/(?:png|jpeg|webp);base64,[A-Za-z0-9+/=]+$/u)}),hu=n.object({id:I,state:n.enum([`preparing`,`starting`,`running`,`waiting`,`stopping`,`reconciling`,`completed`,`stopped`,`failed`,`interrupted`,`needs-review`]),submittedDraft:ou,attachments:n.array(mu).max(F.attachments).optional(),model:n.string().nullable().default(null),runtimeVersion:n.string().nullable().default(null),lastActivityAt:n.iso.datetime().optional(),stillWorking:n.boolean().default(!1),preparedContext:n.string().max(F.content).default(``),baseVersion:n.number().int().positive(),startedAt:n.iso.datetime(),endedAt:n.iso.datetime().nullable(),messages:n.array(du).max(F.messages),receipts:n.array(cu).max(F.items),inspections:n.array(uu).max(F.items).default([]),questions:n.array(lu).max(F.items).optional(),intents:n.array(pu).max(F.items).default([]),pending:fu.nullable(),recoveryIssue:n.string().max(F.answer).nullable().optional(),issue:n.string().nullable()}),gu=n.object({id:I,canvasId:I,ownerId:I,title:n.string().trim().min(1).max(F.shortText),titleSource:n.enum([`automatic`,`manual`]).optional(),visibility:n.enum([`private`,`shared`]),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime(),sessionId:I,hasSession:n.boolean(),draft:ou,turns:n.array(hu).max(F.items),earlierMessages:n.number().int().nonnegative().optional(),sequence:n.number().int().nonnegative()}),_u=n.uuid(),vu=hu.pick({id:!0,state:!0,model:!0,runtimeVersion:!0,stillWorking:!0,startedAt:!0,endedAt:!0,messages:!0,attachments:!0,receipts:!0,inspections:!0,questions:!0,recoveryIssue:!0,issue:!0}),yu=n.object({canvasId:_u,chatId:_u,title:n.string().trim().min(1).max(F.shortText),visibility:n.enum([`private`,`shared`]),sequence:n.number().int().nonnegative(),mergeTurns:n.boolean().optional(),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime(),turns:n.array(vu).max(F.items)}),bu=yu.omit({mergeTurns:!0}).extend({earlierMessages:n.number().int().nonnegative().optional(),ownerId:_u,ownerName:n.string().optional(),readSequence:n.number().int().nonnegative().optional(),unread:n.boolean().optional()}),xu=n.object({canvasId:_u,search:n.string().max(F.shortText).default(``),ownerId:_u.optional(),sort:n.enum([`date`,`unread`]).default(`date`),cursor:n.object({updatedAt:n.iso.datetime(),chatId:_u,unread:n.boolean().optional()}).optional(),limit:n.number().int().min(1).max(F.page).default(F.page)}),Su=n.object({items:n.array(bu),next:n.object({updatedAt:n.iso.datetime(),chatId:_u,unread:n.boolean().optional()}).nullable()}),Cu=n.object({canvasId:_u,chatId:_u}),wu=Cu.extend({before:n.number().int().nonnegative().optional()}),Tu=n.object({chat:bu.nullable(),next:n.number().int().nonnegative().nullable()}),Eu=Cu.extend({sequence:n.number().int().nonnegative()}),Du=n.object({saved:n.boolean()}),Ou=n.object({canvasId:_u,cursor:n.string().max(F.cursor).default(``)}),ku=n.object({cursor:n.string(),changed:n.boolean()}),Au=n.string().min(1).max(F.shortText),L=n.uuid();n.object({protocol:n.literal(4),shellVersion:n.string(),hostId:L.optional(),eventSequence:n.number().int().nonnegative().default(0),installationId:L,profileId:L.nullable(),credential:n.object({tokenId:L,expiresAt:n.iso.datetime()}).nullable().default(null),connection:su,chats:n.array(gu),chatPages:n.array(n.object({canvasId:L,hasMore:n.boolean()})).default([]),attachments:n.array(mu),instructions:n.array(ru).default([]),issue:n.string().nullable(),capabilities:n.object({images:n.boolean(),dictation:n.boolean()})});const ju=n.object({personId:L,tokenId:L,token:n.string().startsWith(`enh_`).max(F.label),expiresAt:n.iso.datetime()}),Mu=n.object({canvasId:L,rootIds:n.array(Au).max(F.items),version:n.number().int().positive()});n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`desktop.describe`)}),n.object({kind:n.literal(`claude.status`)}),n.object({kind:n.literal(`claude.connect`)}),n.object({kind:n.literal(`claude.cancelConnection`)}),n.object({kind:n.literal(`claude.chooseExecutable`)}),n.object({kind:n.literal(`profile.connect`),profile:ju}),n.object({kind:n.literal(`profile.disconnect`)}),n.object({kind:n.literal(`instruction.import`),name:n.string().trim().min(1).max(F.name),content:n.string().trim().min(1).max(F.instruction)}),n.object({kind:n.literal(`instruction.remove`),instructionId:L}),n.object({kind:n.literal(`chat.list`),canvasId:L,more:n.boolean().optional()}),n.object({kind:n.literal(`chat.read`),chatId:L,more:n.boolean().optional()}),n.object({kind:n.literal(`chat.create`),canvasId:L,visibility:n.enum([`private`,`shared`])}),n.object({kind:n.literal(`chat.saveDraft`),chatId:L,expectedRevision:n.number().int().nonnegative(),draft:ou}),n.object({kind:n.literal(`chat.rename`),chatId:L,title:n.string().trim().min(1).max(F.shortText)}),n.object({kind:n.literal(`chat.visibility`),chatId:L,visibility:n.enum([`private`,`shared`])}),n.object({kind:n.literal(`chat.delete`),chatId:L,stop:n.boolean()}),n.object({kind:n.literal(`turn.start`),chatId:L,draftRevision:n.number().int().nonnegative(),scope:Mu}),n.object({kind:n.literal(`turn.stop`),chatId:L,turnId:L}),n.object({kind:n.literal(`turn.checkChanges`),chatId:L,turnId:L}),n.object({kind:n.literal(`turn.undo`),chatId:L,turnId:L}),n.object({kind:n.literal(`question.respond`),chatId:L,turnId:L,questionId:L,digest:n.string().min(1).max(F.name),answer:n.string().trim().min(1).max(F.answer).nullable()}),n.object({kind:n.literal(`request.respond`),chatId:L,turnId:L,requestId:n.string().max(F.shortText),digest:n.string().max(F.name),allow:n.boolean()}),n.object({kind:n.literal(`attachment.choose`),chatId:L}),n.object({kind:n.literal(`attachment.prepare`),chatId:L,name:n.string().max(F.shortText),bytes:n.string().max(F.encodedImage)}),n.object({kind:n.literal(`attachment.remove`),chatId:L,attachmentId:L}),n.object({kind:n.literal(`desktop.update`)}),n.object({kind:n.literal(`desktop.retryHost`)}),n.object({kind:n.literal(`desktop.openHistory`)})]);const Nu=n.string().trim().min(1).max(2e3),Pu=n.object({message:Nu,diagnostics:n.unknown().optional(),workspaceId:n.uuid().optional(),canvasId:n.uuid().optional()}),Fu=n.object({status:n.enum([`sent`,`unavailable`,`unconfirmed`]),attemptId:n.uuid(),retryAfterSeconds:n.number().int().min(1).max(3600).optional()}),Iu=n.enum([`home`,`recents`,`shared`,`trash`,`team`,`canvas`,`invite`,`sign-in`,`sign-up`,`other`]),Lu=n.enum([`Error`,`TypeError`,`RangeError`,`ReferenceError`,`SyntaxError`,`URIError`,`AbortError`,`NetworkError`,`SecurityError`,`UnhandledRejection`]),Ru=1e6,zu=n.number().int().min(0).max(864e5),Bu=n.object({name:Lu,atMs:zu,source:n.enum([`application`,`external`,`unknown`]),line:n.number().int().min(0).max(Ru).optional(),column:n.number().int().min(0).max(Ru).optional()}),Vu=n.object({path:n.string().max(256).regex(/^(?:canvas|comment|organisation|person|prototype|recording|recordingAsset|screen|transcript|telemetry)(?:\.[A-Za-z]+){1,4}$/u),status:n.enum([`ok`,`refused`,`unavailable`,`cancelled`]),durationMs:zu,atMs:zu,correlationId:n.uuid().optional()}),Hu=n.object({action:n.enum([`navigate`,`feedback.open`]),route:Iu,atMs:zu}),Uu=n.string().max(512).transform((e,t)=>{let r=URL.parse(e),i=r?.searchParams.get(`replay_id`),a=r?.searchParams.get(`distinct_id`),o=r?.searchParams.get(`token`);return typeof o!=`string`||r?.origin!==`https://mixpanel.com`||r.pathname!==`/projects/replay-redirect`||!n.uuid().safeParse(i).success||!n.uuid().safeParse(a).success||!/^[\da-f]{32}$/iu.test(o)?(t.addIssue({code:`custom`,message:`unsupported replay reference`}),n.NEVER):`https://mixpanel.com/projects/replay-redirect?${new URLSearchParams({replay_id:i??``,distinct_id:a??``,token:o}).toString()}`}),Wu=n.object({route:Iu,environment:n.object({browser:n.enum([`Chrome`,`Edge`,`Firefox`,`Safari`,`Other`]),os:n.enum([`macOS`,`Windows`,`Linux`,`iOS`,`Android`,`Other`]),release:n.string().max(256).regex(/^[\w.+-]+$/u)}),errors:n.array(Bu).max(10),api:n.array(Vu).max(10),activity:n.array(Hu).max(20),replayUrl:Uu.optional().catch(void 0)}),Gu=e=>{try{let t=JSON.stringify(e);if(new TextEncoder().encode(t).length>32768)return;let n=Wu.safeParse(e);return n.success?n.data:void 0}catch{return}},Ku=`root`,qu=e=>`a${String(e).padStart(4,`0`)}`,Ju=()=>({version:6,nodes:{[Ku]:{id:Ku,label:`Canvas`,component:`root`,styles:{}}},relationships:{}}),Yu=(e,t)=>({...e,nodes:{...e.nodes,[t.id]:t},relationships:{...e.relationships,[t.id]:{parentId:Ku,sortKey:qu(Object.keys(e.relationships).length)}}}),Xu=(e,t)=>Yu(e,{id:t.id,label:t.label,component:`screen`,props:{capture:{viewport:t.viewport,atMs:0,screenId:t.screenId}},styles:{},box:{...t.at,...t.viewport}}),Zu=n.enum([`owner`,`admin`,`member`]),Qu=n.object({id:n.uuid(),name:n.string().min(1).max(120),role:Zu}),$u=n.object({}),ed=d(Qu),td=n.object({name:n.string().trim().min(1).max(120)}),nd=n.object({organisation:Qu}),rd=n.object({organisationId:n.uuid(),name:n.string().trim().min(1).max(120)}),id=n.object({organisationId:n.uuid()}),ad=n.object({organisationId:n.uuid(),movedCanvasCount:n.number().int().min(0)}),od=n.object({personId:n.uuid(),displayName:n.string().max(120),initials:n.string().max(4),avatarUrl:n.string().max(u).nullable().optional(),email:n.string().max(254).nullable(),role:Zu}),sd=n.object({organisationId:n.uuid()}),cd=d(od),ld=n.object({organisationId:n.uuid(),email:n.email().trim().toLowerCase().max(254),role:n.enum([`admin`,`member`]).default(`member`)}),ud=n.object({personId:n.uuid()}),dd=n.object({organisationId:n.uuid(),personId:n.uuid(),role:n.enum([`admin`,`member`])}),fd=dd.pick({personId:!0,role:!0}),pd=n.object({organisationId:n.uuid(),personId:n.uuid()}),md=n.object({personId:n.uuid(),removed:n.literal(!0)}),hd=n.object({organisationId:n.uuid(),personId:n.uuid()}),gd=n.object({ownerPersonId:n.uuid()}),_d=n.object({inviteId:n.uuid(),email:n.string().max(254).pipe(n.email()),role:n.enum([`admin`,`member`]),sendCount:n.number().int().min(1),lastSentAt:n.iso.datetime(),expiresAt:n.iso.datetime(),state:n.enum([`pending`,`expired`]),deliveryState:n.enum([`queued`,`accepted`,`failed`]),deliveryError:n.string()}),vd=n.object({organisationId:n.uuid(),email:n.string().trim().toLowerCase().max(254).pipe(n.email()),role:n.enum([`admin`,`member`]).default(`member`)}),yd=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`member`),personId:n.uuid()}),n.object({kind:n.literal(`invitation`),invite:_d})]),bd=n.object({invite:_d}),xd=n.object({organisationId:n.uuid()}),Sd=d(_d),Cd=n.object({organisationId:n.uuid(),inviteId:n.uuid()}),wd=Cd.extend({}),Td=n.string().min(1).max(512),Ed=n.object({token:Td}),Dd=n.object({token:Td}),Od=n.object({teamName:n.string().min(1).max(120),invitedBy:n.string().min(1).max(120),email:n.string().max(254).pipe(n.email()),role:n.enum([`admin`,`member`]),expiresAt:n.iso.datetime(),state:n.enum([`pending`,`accepted`]),hasAccount:n.boolean()}),kd=n.object({organisationId:n.uuid()}),Ad=n.object({id:n.uuid(),label:n.string().min(1).max(120),createdAt:n.iso.datetime(),lastUsedAt:n.iso.datetime().nullable(),expiresAt:n.iso.datetime().nullable(),revoked:n.boolean()}),jd=n.object({label:n.string().trim().min(1).max(120).describe(`Label naming the agent.`),expiresAt:n.iso.datetime().nullable().describe(`Expiry timestamp, or null for a token that does not expire.`)}),Md=n.object({token:n.string().startsWith(`enh_`),agentToken:Ad}),Nd=n.object({}),Pd=n.object({items:n.array(Ad),isConnected:n.boolean()}),Fd=n.object({tokenId:n.uuid()}),Id=n.object({tokenId:n.uuid(),revoked:n.literal(!0)}),Ld=n.discriminatedUnion(`method`,[n.object({method:n.literal(`token`)}),n.object({method:n.literal(`browser`),issuer:n.url(),clientId:n.string().min(1),scope:n.literal(`openid`)})]),Rd=n.object({id:n.uuid(),preparedCanvasId:n.uuid(),displayName:n.string().min(1).max(120),initials:n.string().min(1).max(4),avatarUrl:n.string().max(u).nullable(),email:n.string().max(254).nullable(),createdAt:n.iso.datetime()}),zd=n.object({}),Bd=n.object({person:Rd.nullable(),authentication:n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`anonymous`)}),n.object({kind:n.literal(`person`)}),n.object({kind:n.literal(`agent`),tokenId:n.uuid(),tokenLabel:n.string(),expiresAt:n.iso.datetime().nullable()}),n.object({kind:n.literal(`oauth-agent`),tokenId:n.uuid(),tokenLabel:n.string(),clientId:n.string().min(1),scopes:n.array(n.string()),expiresAt:n.iso.datetime(),resource:n.url()})])}),Vd=n.object({displayName:n.string().trim().min(1).max(120)}),Hd=n.object({person:Rd}),Ud=n.string().trim().toLowerCase().min(3).max(40).regex(/^[a-z0-9][a-z0-9._-]*$/,`letters, digits, dot, underscore and dash only`),Wd=n.enum([`cookie`,`token`]).default(`cookie`),Gd=n.object({username:Ud,password:n.string().min(10).max(200),displayName:n.string().trim().min(1).max(120),deliver:Wd,email:n.string().max(254).transform(e=>e.trim().toLowerCase()).pipe(n.email())}),Kd=n.object({username:Ud,password:n.string().min(1).max(200),deliver:Wd}),qd=n.object({person:Rd,token:n.string().nullable()}),Jd=qd.extend({preparedCanvasId:n.uuid()}),Yd=n.object({}),Xd=n.object({signedOut:n.literal(!0)}),Zd=n.enum([`image/jpeg`,`image/png`,`image/webp`]),Qd=n.object({contentType:Zd,bytes:n.number().int().positive().max(5242880)}),$d=n.object({assetId:n.uuid(),upload:n.object({url:n.url(),headers:n.record(n.string(),n.string()),expiresAt:n.iso.datetime()})}),ef=n.object({assetId:n.uuid()}),tf=n.object({assetId:n.uuid(),previewUrl:n.url()}),nf=n.object({abandoned:n.boolean()}),rf=n.object({requestId:n.uuid(),displayName:n.string().trim().min(1).max(120),photoAssetId:n.uuid().optional()}),af=n.object({person:Rd}),of=n.string().max(254).pipe(n.email()),sf=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`person`),personId:n.uuid(),displayName:n.string().min(1).max(120),initials:n.string().min(1).max(4),avatarUrl:n.string().max(u).nullable().optional(),email:of}),n.object({kind:n.literal(`email`),email:of})]),cf=n.object({query:n.string().trim().min(1).max(200)}),lf=n.object({recipients:n.array(sf).max(5)}),uf=n.object({}),df=lf.extend({}),ff=`enhance3:session-handoff`;n.union([n.object({kind:n.literal(ff),body:n.object({token:n.string().min(1),displayName:n.string().min(1)})}),n.object({kind:n.literal(ff),signedOut:n.literal(!0)})]);const pf=n.string().min(1).max(500).refine(e=>!e.startsWith(`/`)&&!e.endsWith(`/`)&&!e.includes(`\\`)&&!e.includes(`\0`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`),{message:`prototype paths must be portable relative file paths`}),mf=n.object({path:pf,contentType:n.string().min(1).max(200),bytes:n.number().int().nonnegative().max(26214400)}),hf=n.enum([`uploading`,`verifying`,`ready`,`failed`,`abandoned`]),gf=n.object({canvasId:n.uuid(),prototypeId:n.uuid().optional(),clientToken:n.uuid(),nodeId:n.string().min(1).max(200),title:n.string().trim().min(1).max(200),entryPath:pf.default(`index.html`),files:n.array(mf).min(1).max(2e3),box:T.extend({width:n.number().positive(),height:n.number().positive()})}),_f=n.object({prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1).max(200),state:hf,alreadyExists:n.boolean(),fileCount:n.number().int().positive(),totalBytes:n.number().int().positive().max(262144e3)}),vf=n.object({canvasId:n.uuid(),deploymentId:n.uuid(),cursor:n.number().int().min(0).default(0)}),yf=n.object({path:pf,upload:C}),bf=n.object({deploymentId:n.uuid(),uploads:n.array(yf).max(50),nextCursor:n.number().int().min(0).optional()}),xf=n.object({canvasId:n.uuid(),deploymentId:n.uuid(),baseVersion:n.number().int().positive(),canvasPageId:n.string().min(1).max(200).optional()}),Sf=n.object({canvasId:n.uuid(),prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1).max(200),version:n.number().int().positive(),state:n.literal(`ready`),origin:n.url(),openUrl:n.string().startsWith(`/c/`)}),Cf=n.object({canvasId:n.uuid(),prototypeId:n.uuid(),deploymentId:n.uuid()}),wf=n.object({deploymentId:n.uuid(),origin:n.url(),bootUrl:n.url(),expiresAt:n.iso.datetime()}),Tf=`__enhance/manifest.json`,Ef=n.string().length(64).refine(e=>{for(let t of e)if(!/[\da-f]/u.test(t))return!1;return!0}),Df=e=>{for(let t of e){let e=t.codePointAt(0);if(e!==void 0&&(e===127||e<=31))return!0}return!1},Of=e=>e.normalize(`NFKC`).toUpperCase().toLowerCase(),kf=n.string().min(1).refine(e=>e===e.normalize(`NFC`),{message:`prototype paths must use NFC Unicode normalization`}).refine(e=>!e.startsWith(`/`)&&!/^[A-Za-z]:\//u.test(e)&&!e.endsWith(`/`)&&!e.includes(`\\`)&&!Df(e)&&!e.startsWith(`__enhance/`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`),{message:`prototype paths must be portable relative file paths`}),Af=n.object({path:kf,contentType:n.string().trim().min(1).max(200).refine(e=>!Df(e)),bytes:n.number().int().nonnegative().max(2**53-1),sha256:Ef}),jf=n.object({version:n.literal(1),entryPath:kf,files:n.array(Af).min(1)}),Mf=n.object({artifactBytes:n.number().int().positive().max(2**53-1),expandedBytes:n.number().int().positive().max(2**53-1),fileBytes:n.number().int().positive().max(2**53-1),manifestBytes:n.number().int().positive().max(2**53-1),fileCount:n.number().int().positive().max(2**53-1),pathBytes:n.number().int().positive().max(2**53-1)}),Nf=n.object({}),Pf=n.object({attachmentProtocolVersion:n.literal(1).optional(),protocolVersion:n.literal(1),format:n.literal(`zip`),limits:Mf}),Ff=n.object({protocolVersion:n.literal(1),format:n.literal(`zip`),bytes:n.number().int().positive().max(2**53-1),sha256:Ef,fileCount:n.number().int().positive().max(2**53-1),expandedBytes:n.number().int().positive().max(2**53-1)}),If=n.object({canvasId:n.uuid(),prototypeId:n.uuid().optional(),clientToken:n.uuid(),nodeId:n.string().min(1),title:n.string().trim().min(1).max(200),entryPath:kf,artifact:Ff,box:T.extend({width:n.number().positive(),height:n.number().positive()})}),Lf=n.enum([`uploading`,`queued`,`ingesting`,`ready`,`failed`,`abandoned`]),Rf=n.object({prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1),alreadyExists:n.boolean(),artifact:Ff}),zf=n.discriminatedUnion(`state`,[Rf.extend({state:n.literal(`uploading`),upload:C}),Rf.extend({state:n.enum([`queued`,`ingesting`,`ready`,`failed`,`abandoned`])})]),Bf=n.object({canvasId:n.uuid(),deploymentId:n.uuid()}),Vf=n.object({deploymentId:n.uuid(),state:Lf}),Hf=n.object(Bf.shape),Uf=n.object({prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1),fileCount:n.number().int().nonnegative(),totalBytes:n.number().int().nonnegative().max(2**53-1),processedFiles:n.number().int().nonnegative()}),Wf=n.discriminatedUnion(`state`,[Uf.extend({state:n.literal(`failed`),failure:n.object({code:n.string().min(1),message:n.string().min(1),path:kf.optional()})}),Uf.extend({state:n.enum([`uploading`,`queued`,`ingesting`,`ready`,`abandoned`])})]),Gf=n.object({canvasId:n.uuid(),deploymentId:n.uuid(),baseVersion:n.number().int().positive(),canvasPageId:n.string().min(1).max(200).optional(),attachment:n.object({clientToken:n.uuid(),scope:n.object({pageId:n.string().min(1).max(200).optional(),nodeIds:n.array(n.string().min(1).max(200)).max(100)})}).optional()}),Kf=n.object({canvasId:n.uuid(),prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1),version:n.number().int().positive(),state:n.literal(`ready`),origin:n.url(),openUrl:n.string().startsWith(`/c/`),attachment:n.discriminatedUnion(`outcome`,[n.object({outcome:n.literal(`committed`),mutationId:n.uuid(),previousVersion:n.number().int().positive(),version:n.number().int().positive()}),n.object({outcome:n.literal(`no_op`),version:n.number().int().positive()})]).optional()});n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.capture`),requestId:n.uuid(),connectionId:n.uuid().optional(),documentId:n.uuid().optional()}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.connect`),connectionId:n.uuid()}).extend({type:n.literal(`enhance.prototype.connected`),documentId:n.uuid(),capabilities:n.array(n.string()),release:n.string().min(1)}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.unloading`),documentId:n.uuid()}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.ready`)}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.escape`)}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.zoom`),deltaX:n.number(),deltaY:n.number(),deltaMode:n.union([n.literal(0),n.literal(1),n.literal(2)]),anchorX:n.number().min(0).max(1),anchorY:n.number().min(0).max(1)}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.navigate`),direction:n.enum([`back`,`forward`])}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.navigation`),canGoBack:n.boolean(),canGoForward:n.boolean()});const qf=n.object({artifact:n.string().min(1),viewport:n.object({width:n.number().positive(),height:n.number().positive()}),title:n.string()}),Jf=n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.captured`),requestId:n.uuid(),connectionId:n.uuid().optional(),documentId:n.uuid().optional()});n.discriminatedUnion(`outcome`,[Jf.extend({outcome:n.literal(`captured`),screen:qf}),Jf.extend({outcome:n.literal(`failed`),error:n.string().min(1),code:n.enum([`capture-failed`,`capture-busy`]).optional()})]);const Yf=2166136261,Xf=Number.parseInt(`9e3779b9`,16),Zf=Number.parseInt(`85ebca6b`,16),Qf=Number.parseInt(`c2b2ae35`,16);Yf^Xf,Yf^Zf,Yf^Qf;const $f=(e,t)=>`/v1/recording-assets/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,ep=n.object({width:n.number().int().positive(),height:n.number().int().positive()}),tp=16*oe,np=8*oe,rp=u,ip=n.object({mimeType:n.string().min(1).max(100),sampleRate:n.number().int().min(8e3).max(192e3)}),ap=n.object({sourceUrl:n.string().max(rp),viewport:ep,pageTitle:n.string().max(200).nullable(),audio:ip.nullable().default(null)}),op=n.object({recordingId:n.uuid(),ownerPersonId:n.uuid(),chunkIndex:n.literal(0),upload:C,audioUpload:C.nullable()}),sp=n.object({recordingId:n.uuid(),index:n.number().int().min(0),firstEventMs:n.number().int().min(0),lastEventMs:n.number().int().min(0),eventCount:n.number().int().min(0),continues:n.boolean().default(!1),bytes:n.number().int().min(1).max(tp),etag:n.string().min(1).max(200).optional()}),cp=n.object({nextChunkIndex:n.number().int().min(1),upload:C}),lp=n.object({recordingId:n.uuid(),index:n.number().int().min(0),firstMs:n.number().int().min(0),lastMs:n.number().int().min(0),bytes:n.number().int().min(1).max(tp),epoch:n.number().int().min(0).default(0),startsEpoch:n.boolean().default(!1),etag:n.string().min(1).max(200).optional()}),up=n.object({nextChunkIndex:n.number().int().min(1),upload:C}),dp=n.object({recordingId:n.uuid(),durationMs:n.number().int().min(0).max(144e5),viewport:ep,sourceUrl:n.string().max(rp),interrupted:n.boolean().default(!1),canvasId:n.uuid().optional(),organisationId:n.uuid().optional(),audioChunkCount:n.number().int().min(0).default(0),hasRecoverableBytes:n.boolean().default(!1)}).refine(e=>e.canvasId===void 0||e.organisationId===void 0,{message:`choose an existing canvas or a team for a new canvas, not both`}),fp=n.enum([`whole`,`recovering`,`partial`]),pp=n.enum([`dom`,`audio`]),mp=n.object({recordingId:n.uuid(),canvasId:n.uuid(),canvasTitle:n.string().min(1).max(200),isNewCanvas:n.boolean(),storedChunkCount:n.number().int().min(0),missingChunkIndexes:n.array(n.number().int().min(0)).max(64),missingChunkCount:n.number().int().min(0),storedAudioChunkCount:n.number().int().min(0),missingAudioChunkIndexes:n.array(n.number().int().min(0)).max(64),missingAudioChunkCount:n.number().int().min(0),integrity:fp}),hp=n.object({recordingId:n.uuid(),durationMs:n.number().int().min(0),viewport:ep,interrupted:n.boolean(),chunkCount:n.number().int().min(0),startedAt:n.iso.datetime()}),gp=n.object({recordingId:n.uuid(),assets:n.array(n.object({url:n.url().max(rp),contentType:n.string().min(1).max(200),byteSize:n.number().int().min(1).max(np)})).max(400)}),_p=n.object({reserved:n.array(n.object({url:n.string(),upload:C}))}),vp=n.object({recordingId:n.uuid(),arrived:n.array(n.object({url:n.url().max(rp),etag:n.string().min(1).max(200),byteSize:n.number().int().min(1).max(np)})).max(400)}),yp=n.object({missingAssetCount:n.number().int().min(0)}),bp=n.object({canvasId:n.uuid(),recordingId:n.uuid()}),xp=n.object({seq:n.number().int().min(0),firstEventMs:n.number().int().min(0),lastEventMs:n.number().int().min(0),continues:n.boolean()}),Sp=n.discriminatedUnion(`state`,[xp.extend({state:n.literal(`available`),download:Ot}),xp.extend({state:n.literal(`missing`)})]),Cp=n.object({seq:n.number().int().min(0),firstMs:n.number().int().min(0),lastMs:n.number().int().min(0),epoch:n.number().int().min(0),startsEpoch:n.boolean()}),wp=n.discriminatedUnion(`state`,[Cp.extend({state:n.literal(`available`),download:Ot}),Cp.extend({state:n.literal(`missing`)})]),Tp=n.object({recordingId:n.uuid(),durationMs:n.number().int().min(0),viewport:ep,sourceUrl:n.string().max(rp),interrupted:n.boolean(),integrity:fp,chunks:n.array(Sp),audio:n.object({mimeType:n.string(),chunks:n.array(wp)}).nullable(),assets:n.array(n.object({url:n.string(),contentType:n.string(),path:n.string().startsWith(`/v1/recording-assets/`)})),missingAssetCount:n.number().int().min(0),missingAssetUrls:n.array(n.string()).optional()}),Ep=n.object({recordingId:n.uuid(),track:pp,index:n.number().int().min(0)}),Dp=n.object({upload:C}),Op=Ep.extend({etag:n.string().min(1).max(200)}),kp=n.object({integrity:fp}),Ap=n.object({canvasId:n.uuid()}),jp=d(hp),Mp=n.object({recordingId:n.uuid()}),Np=n.object({recordingId:n.uuid(),discarded:n.literal(!0)}),Pp=n.object({canvasId:n.uuid(),recordingId:n.uuid()}),Fp=n.object({recordingId:n.uuid(),detachedScreenCount:n.number().int().min(0)});[`[data-enhance-unsupported]:not([data-enhance-unsupported-hidden]):not([style*="display: none"]) {
9
+ `}]),{type:`text`,text:e.text}],i=r.map(e=>e.type===`text`?e.text:e.label).join(``),a=new Map;for(let e of r){if(e.type===`text`)continue;let t=`${e.canvasId}:${e.nodeId}`,n=a.get(t);a.set(t,{canvasId:e.canvasId,nodeId:e.nodeId,label:e.label,role:n?.role===`target`?`target`:e.role})}return i.length>F.prompt||a.size>F.items?(t.addIssue({code:`custom`,message:`This draft exceeds the supported content limits.`}),n.NEVER):{...e,text:i,references:Array.from(a,([,e])=>e),parts:r}}),su=n.object({state:n.enum([`checking`,`not-installed`,`unsupported`,`signed-out`,`signing-in`,`connected`,`usage-limited`,`auth-expired`,`unavailable`]),version:n.string().nullable(),account:n.string().nullable(),issue:n.string().nullable()}),cu=n.object({canvasId:I,mutationId:I,previousVersion:n.number().int().positive(),version:n.number().int().positive(),nodeIds:n.array(nu).max(F.messages),reverted:n.boolean().default(!1),review:Ha.optional()}),lu=n.object({prompt:n.string().trim().min(1).max(F.items),options:n.array(n.string().trim().min(1).max(F.shortText)).max(F.questionOptions).refine(e=>new Set(e).size===e.length,`Options must be distinct.`).default([])}).extend({id:I,digest:n.string().min(1).max(F.name),state:n.enum([`pending`,`answered`,`cancelled`]),answer:n.string().max(F.answer).nullable()}),uu=n.object({jobId:I,version:n.number().int().positive(),target:D,state:n.enum([`rendered`,`checked`,`needs-review`]),summary:n.string().max(F.label)}),du=n.object({parts:n.array(au).max(F.messages).optional(),id:n.string().min(1).max(F.shortText),role:n.enum([`user`,`assistant`,`tool`]),text:n.string().max(F.content),tool:n.string().nullable().default(null),outcome:n.enum([`running`,`completed`,`denied`,`failed`]).nullable().default(null)}),fu=n.object({id:n.string().min(1).max(F.shortText),tool:n.string().max(F.shortText),digest:n.string().max(F.name),input:n.record(n.string(),n.unknown())}),pu=n.object({mutationId:I,canvasId:I,procedure:n.enum([`canvas.applyOperations`,`canvas.render.importSource`]),input:n.record(n.string(),n.unknown()),state:n.enum([`recorded`,`accepted`,`unknown`,`refused`])}),mu=n.object({id:I,name:n.string().max(F.shortText),mediaType:n.enum([`image/png`,`image/jpeg`,`image/webp`]),width:n.number().int().positive(),height:n.number().int().positive(),bytes:n.number().int().positive().max(F.imageBytes),preview:n.string().max(F.preview).regex(/^data:image\/(?:png|jpeg|webp);base64,[A-Za-z0-9+/=]+$/u)}),hu=n.object({id:I,state:n.enum([`preparing`,`starting`,`running`,`waiting`,`stopping`,`reconciling`,`completed`,`stopped`,`failed`,`interrupted`,`needs-review`]),submittedDraft:ou,attachments:n.array(mu).max(F.attachments).optional(),model:n.string().nullable().default(null),runtimeVersion:n.string().nullable().default(null),lastActivityAt:n.iso.datetime().optional(),stillWorking:n.boolean().default(!1),preparedContext:n.string().max(F.content).default(``),baseVersion:n.number().int().positive(),startedAt:n.iso.datetime(),endedAt:n.iso.datetime().nullable(),messages:n.array(du).max(F.messages),receipts:n.array(cu).max(F.items),inspections:n.array(uu).max(F.items).default([]),questions:n.array(lu).max(F.items).optional(),intents:n.array(pu).max(F.items).default([]),pending:fu.nullable(),recoveryIssue:n.string().max(F.answer).nullable().optional(),issue:n.string().nullable()}),gu=n.object({id:I,canvasId:I,ownerId:I,title:n.string().trim().min(1).max(F.shortText),titleSource:n.enum([`automatic`,`manual`]).optional(),visibility:n.enum([`private`,`shared`]),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime(),sessionId:I,hasSession:n.boolean(),draft:ou,turns:n.array(hu).max(F.items),earlierMessages:n.number().int().nonnegative().optional(),sequence:n.number().int().nonnegative()}),_u=n.uuid(),vu=hu.pick({id:!0,state:!0,model:!0,runtimeVersion:!0,stillWorking:!0,startedAt:!0,endedAt:!0,messages:!0,attachments:!0,receipts:!0,inspections:!0,questions:!0,recoveryIssue:!0,issue:!0}),yu=n.object({canvasId:_u,chatId:_u,title:n.string().trim().min(1).max(F.shortText),visibility:n.enum([`private`,`shared`]),sequence:n.number().int().nonnegative(),mergeTurns:n.boolean().optional(),createdAt:n.iso.datetime(),updatedAt:n.iso.datetime(),turns:n.array(vu).max(F.items)}),bu=yu.omit({mergeTurns:!0}).extend({earlierMessages:n.number().int().nonnegative().optional(),ownerId:_u,ownerName:n.string().optional(),readSequence:n.number().int().nonnegative().optional(),unread:n.boolean().optional()}),xu=n.object({canvasId:_u,search:n.string().max(F.shortText).default(``),ownerId:_u.optional(),sort:n.enum([`date`,`unread`]).default(`date`),cursor:n.object({updatedAt:n.iso.datetime(),chatId:_u,unread:n.boolean().optional()}).optional(),limit:n.number().int().min(1).max(F.page).default(F.page)}),Su=n.object({items:n.array(bu),next:n.object({updatedAt:n.iso.datetime(),chatId:_u,unread:n.boolean().optional()}).nullable()}),Cu=n.object({canvasId:_u,chatId:_u}),wu=Cu.extend({before:n.number().int().nonnegative().optional()}),Tu=n.object({chat:bu.nullable(),next:n.number().int().nonnegative().nullable()}),Eu=Cu.extend({sequence:n.number().int().nonnegative()}),Du=n.object({saved:n.boolean()}),Ou=n.object({canvasId:_u,cursor:n.string().max(F.cursor).default(``)}),ku=n.object({cursor:n.string(),changed:n.boolean()}),Au=n.string().min(1).max(F.shortText),L=n.uuid();n.object({protocol:n.literal(4),shellVersion:n.string(),hostId:L.optional(),eventSequence:n.number().int().nonnegative().default(0),installationId:L,profileId:L.nullable(),credential:n.object({tokenId:L,expiresAt:n.iso.datetime()}).nullable().default(null),connection:su,chats:n.array(gu),chatPages:n.array(n.object({canvasId:L,hasMore:n.boolean()})).default([]),attachments:n.array(mu),instructions:n.array(ru).default([]),issue:n.string().nullable(),capabilities:n.object({images:n.boolean(),dictation:n.boolean()})});const ju=n.object({personId:L,tokenId:L,token:n.string().startsWith(`enh_`).max(F.label),expiresAt:n.iso.datetime()}),Mu=n.object({canvasId:L,rootIds:n.array(Au).max(F.items),version:n.number().int().positive()});n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`desktop.describe`)}),n.object({kind:n.literal(`claude.status`)}),n.object({kind:n.literal(`claude.connect`)}),n.object({kind:n.literal(`claude.cancelConnection`)}),n.object({kind:n.literal(`claude.chooseExecutable`)}),n.object({kind:n.literal(`profile.connect`),profile:ju}),n.object({kind:n.literal(`profile.disconnect`)}),n.object({kind:n.literal(`instruction.import`),name:n.string().trim().min(1).max(F.name),content:n.string().trim().min(1).max(F.instruction)}),n.object({kind:n.literal(`instruction.remove`),instructionId:L}),n.object({kind:n.literal(`chat.list`),canvasId:L,more:n.boolean().optional()}),n.object({kind:n.literal(`chat.read`),chatId:L,more:n.boolean().optional()}),n.object({kind:n.literal(`chat.create`),canvasId:L,visibility:n.enum([`private`,`shared`])}),n.object({kind:n.literal(`chat.saveDraft`),chatId:L,expectedRevision:n.number().int().nonnegative(),draft:ou}),n.object({kind:n.literal(`chat.rename`),chatId:L,title:n.string().trim().min(1).max(F.shortText)}),n.object({kind:n.literal(`chat.visibility`),chatId:L,visibility:n.enum([`private`,`shared`])}),n.object({kind:n.literal(`chat.delete`),chatId:L,stop:n.boolean()}),n.object({kind:n.literal(`turn.start`),chatId:L,draftRevision:n.number().int().nonnegative(),scope:Mu}),n.object({kind:n.literal(`turn.stop`),chatId:L,turnId:L}),n.object({kind:n.literal(`turn.checkChanges`),chatId:L,turnId:L}),n.object({kind:n.literal(`turn.undo`),chatId:L,turnId:L}),n.object({kind:n.literal(`question.respond`),chatId:L,turnId:L,questionId:L,digest:n.string().min(1).max(F.name),answer:n.string().trim().min(1).max(F.answer).nullable()}),n.object({kind:n.literal(`request.respond`),chatId:L,turnId:L,requestId:n.string().max(F.shortText),digest:n.string().max(F.name),allow:n.boolean()}),n.object({kind:n.literal(`attachment.choose`),chatId:L}),n.object({kind:n.literal(`attachment.prepare`),chatId:L,name:n.string().max(F.shortText),bytes:n.string().max(F.encodedImage)}),n.object({kind:n.literal(`attachment.remove`),chatId:L,attachmentId:L}),n.object({kind:n.literal(`desktop.update`)}),n.object({kind:n.literal(`desktop.retryHost`)}),n.object({kind:n.literal(`desktop.openHistory`)})]);const Nu=n.string().trim().min(1).max(2e3),Pu=n.object({message:Nu,diagnostics:n.unknown().optional(),workspaceId:n.uuid().optional(),canvasId:n.uuid().optional()}),Fu=n.object({status:n.enum([`sent`,`unavailable`,`unconfirmed`]),attemptId:n.uuid(),retryAfterSeconds:n.number().int().min(1).max(3600).optional()}),Iu=n.enum([`home`,`recents`,`shared`,`trash`,`team`,`canvas`,`invite`,`sign-in`,`sign-up`,`other`]),Lu=n.enum([`Error`,`TypeError`,`RangeError`,`ReferenceError`,`SyntaxError`,`URIError`,`AbortError`,`NetworkError`,`SecurityError`,`UnhandledRejection`]),Ru=1e6,zu=n.number().int().min(0).max(864e5),Bu=n.object({name:Lu,atMs:zu,source:n.enum([`application`,`external`,`unknown`]),line:n.number().int().min(0).max(Ru).optional(),column:n.number().int().min(0).max(Ru).optional()}),Vu=n.object({path:n.string().max(256).regex(/^(?:canvas|comment|organisation|person|prototype|recording|recordingAsset|screen|transcript|telemetry)(?:\.[A-Za-z]+){1,4}$/u),status:n.enum([`ok`,`refused`,`unavailable`,`cancelled`]),durationMs:zu,atMs:zu,correlationId:n.uuid().optional()}),Hu=n.object({action:n.enum([`navigate`,`feedback.open`]),route:Iu,atMs:zu}),Uu=n.string().max(512).transform((e,t)=>{let r=URL.parse(e),i=r?.searchParams.get(`replay_id`),a=r?.searchParams.get(`distinct_id`),o=r?.searchParams.get(`token`);return typeof o!=`string`||r?.origin!==`https://mixpanel.com`||r.pathname!==`/projects/replay-redirect`||!n.uuid().safeParse(i).success||!n.uuid().safeParse(a).success||!/^[\da-f]{32}$/iu.test(o)?(t.addIssue({code:`custom`,message:`unsupported replay reference`}),n.NEVER):`https://mixpanel.com/projects/replay-redirect?${new URLSearchParams({replay_id:i??``,distinct_id:a??``,token:o}).toString()}`}),Wu=n.object({route:Iu,environment:n.object({browser:n.enum([`Chrome`,`Edge`,`Firefox`,`Safari`,`Other`]),os:n.enum([`macOS`,`Windows`,`Linux`,`iOS`,`Android`,`Other`]),release:n.string().max(256).regex(/^[\w.+-]+$/u)}),errors:n.array(Bu).max(10),api:n.array(Vu).max(10),activity:n.array(Hu).max(20),replayUrl:Uu.optional().catch(void 0)}),Gu=e=>{try{let t=JSON.stringify(e);if(new TextEncoder().encode(t).length>32768)return;let n=Wu.safeParse(e);return n.success?n.data:void 0}catch{return}},Ku=`root`,qu=e=>`a${String(e).padStart(4,`0`)}`,Ju=()=>({version:7,nodes:{[Ku]:{id:Ku,label:`Canvas`,component:`root`,styles:{}}},relationships:{}}),Yu=(e,t)=>({...e,nodes:{...e.nodes,[t.id]:t},relationships:{...e.relationships,[t.id]:{parentId:Ku,sortKey:qu(Object.keys(e.relationships).length)}}}),Xu=(e,t)=>Yu(e,{id:t.id,label:t.label,component:`screen`,props:{capture:{viewport:t.viewport,atMs:0,screenId:t.screenId}},styles:{},box:{...t.at,...t.viewport}}),Zu=n.enum([`owner`,`admin`,`member`]),Qu=n.object({id:n.uuid(),name:n.string().min(1).max(120),role:Zu}),$u=n.object({}),ed=d(Qu),td=n.object({name:n.string().trim().min(1).max(120)}),nd=n.object({organisation:Qu}),rd=n.object({organisationId:n.uuid(),name:n.string().trim().min(1).max(120)}),id=n.object({organisationId:n.uuid()}),ad=n.object({organisationId:n.uuid(),movedCanvasCount:n.number().int().min(0)}),od=n.object({personId:n.uuid(),displayName:n.string().max(120),initials:n.string().max(4),avatarUrl:n.string().max(u).nullable().optional(),email:n.string().max(254).nullable(),role:Zu}),sd=n.object({organisationId:n.uuid()}),cd=d(od),ld=n.object({organisationId:n.uuid(),email:n.email().trim().toLowerCase().max(254),role:n.enum([`admin`,`member`]).default(`member`)}),ud=n.object({personId:n.uuid()}),dd=n.object({organisationId:n.uuid(),personId:n.uuid(),role:n.enum([`admin`,`member`])}),fd=dd.pick({personId:!0,role:!0}),pd=n.object({organisationId:n.uuid(),personId:n.uuid()}),md=n.object({personId:n.uuid(),removed:n.literal(!0)}),hd=n.object({organisationId:n.uuid(),personId:n.uuid()}),gd=n.object({ownerPersonId:n.uuid()}),_d=n.object({inviteId:n.uuid(),email:n.string().max(254).pipe(n.email()),role:n.enum([`admin`,`member`]),sendCount:n.number().int().min(1),lastSentAt:n.iso.datetime(),expiresAt:n.iso.datetime(),state:n.enum([`pending`,`expired`]),deliveryState:n.enum([`queued`,`accepted`,`failed`]),deliveryError:n.string()}),vd=n.object({organisationId:n.uuid(),email:n.string().trim().toLowerCase().max(254).pipe(n.email()),role:n.enum([`admin`,`member`]).default(`member`)}),yd=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`member`),personId:n.uuid()}),n.object({kind:n.literal(`invitation`),invite:_d})]),bd=n.object({invite:_d}),xd=n.object({organisationId:n.uuid()}),Sd=d(_d),Cd=n.object({organisationId:n.uuid(),inviteId:n.uuid()}),wd=Cd.extend({}),Td=n.string().min(1).max(512),Ed=n.object({token:Td}),Dd=n.object({token:Td}),Od=n.object({teamName:n.string().min(1).max(120),invitedBy:n.string().min(1).max(120),email:n.string().max(254).pipe(n.email()),role:n.enum([`admin`,`member`]),expiresAt:n.iso.datetime(),state:n.enum([`pending`,`accepted`]),hasAccount:n.boolean()}),kd=n.object({organisationId:n.uuid()}),Ad=n.object({id:n.uuid(),label:n.string().min(1).max(120),createdAt:n.iso.datetime(),lastUsedAt:n.iso.datetime().nullable(),expiresAt:n.iso.datetime().nullable(),revoked:n.boolean()}),jd=n.object({label:n.string().trim().min(1).max(120).describe(`Label naming the agent.`),expiresAt:n.iso.datetime().nullable().describe(`Expiry timestamp, or null for a token that does not expire.`)}),Md=n.object({token:n.string().startsWith(`enh_`),agentToken:Ad}),Nd=n.object({}),Pd=n.object({items:n.array(Ad),isConnected:n.boolean()}),Fd=n.object({tokenId:n.uuid()}),Id=n.object({tokenId:n.uuid(),revoked:n.literal(!0)}),Ld=n.discriminatedUnion(`method`,[n.object({method:n.literal(`token`)}),n.object({method:n.literal(`browser`),issuer:n.url(),clientId:n.string().min(1),scope:n.literal(`openid`)})]),Rd=n.object({id:n.uuid(),preparedCanvasId:n.uuid(),displayName:n.string().min(1).max(120),initials:n.string().min(1).max(4),avatarUrl:n.string().max(u).nullable(),email:n.string().max(254).nullable(),createdAt:n.iso.datetime()}),zd=n.object({}),Bd=n.object({person:Rd.nullable(),authentication:n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`anonymous`)}),n.object({kind:n.literal(`person`)}),n.object({kind:n.literal(`agent`),tokenId:n.uuid(),tokenLabel:n.string(),expiresAt:n.iso.datetime().nullable()}),n.object({kind:n.literal(`oauth-agent`),tokenId:n.uuid(),tokenLabel:n.string(),clientId:n.string().min(1),scopes:n.array(n.string()),expiresAt:n.iso.datetime(),resource:n.url()})])}),Vd=n.object({displayName:n.string().trim().min(1).max(120)}),Hd=n.object({person:Rd}),Ud=n.string().trim().toLowerCase().min(3).max(40).regex(/^[a-z0-9][a-z0-9._-]*$/,`letters, digits, dot, underscore and dash only`),Wd=n.enum([`cookie`,`token`]).default(`cookie`),Gd=n.object({username:Ud,password:n.string().min(10).max(200),displayName:n.string().trim().min(1).max(120),deliver:Wd,email:n.string().max(254).transform(e=>e.trim().toLowerCase()).pipe(n.email())}),Kd=n.object({username:Ud,password:n.string().min(1).max(200),deliver:Wd}),qd=n.object({person:Rd,token:n.string().nullable()}),Jd=qd.extend({preparedCanvasId:n.uuid()}),Yd=n.object({}),Xd=n.object({signedOut:n.literal(!0)}),Zd=n.enum([`image/jpeg`,`image/png`,`image/webp`]),Qd=n.object({contentType:Zd,bytes:n.number().int().positive().max(5242880)}),$d=n.object({assetId:n.uuid(),upload:n.object({url:n.url(),headers:n.record(n.string(),n.string()),expiresAt:n.iso.datetime()})}),ef=n.object({assetId:n.uuid()}),tf=n.object({assetId:n.uuid(),previewUrl:n.url()}),nf=n.object({abandoned:n.boolean()}),rf=n.object({requestId:n.uuid(),displayName:n.string().trim().min(1).max(120),photoAssetId:n.uuid().optional()}),af=n.object({person:Rd}),of=n.string().max(254).pipe(n.email()),sf=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`person`),personId:n.uuid(),displayName:n.string().min(1).max(120),initials:n.string().min(1).max(4),avatarUrl:n.string().max(u).nullable().optional(),email:of}),n.object({kind:n.literal(`email`),email:of})]),cf=n.object({query:n.string().trim().min(1).max(200)}),lf=n.object({recipients:n.array(sf).max(5)}),uf=n.object({}),df=lf.extend({}),ff=`enhance3:session-handoff`;n.union([n.object({kind:n.literal(ff),body:n.object({token:n.string().min(1),displayName:n.string().min(1)})}),n.object({kind:n.literal(ff),signedOut:n.literal(!0)})]);const pf=n.string().min(1).max(500).refine(e=>!e.startsWith(`/`)&&!e.endsWith(`/`)&&!e.includes(`\\`)&&!e.includes(`\0`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`),{message:`prototype paths must be portable relative file paths`}),mf=n.object({path:pf,contentType:n.string().min(1).max(200),bytes:n.number().int().nonnegative().max(26214400)}),hf=n.enum([`uploading`,`verifying`,`ready`,`failed`,`abandoned`]),gf=n.object({canvasId:n.uuid(),prototypeId:n.uuid().optional(),clientToken:n.uuid(),nodeId:n.string().min(1).max(200),title:n.string().trim().min(1).max(200),entryPath:pf.default(`index.html`),files:n.array(mf).min(1).max(2e3),box:T.extend({width:n.number().positive(),height:n.number().positive()})}),_f=n.object({prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1).max(200),state:hf,alreadyExists:n.boolean(),fileCount:n.number().int().positive(),totalBytes:n.number().int().positive().max(262144e3)}),vf=n.object({canvasId:n.uuid(),deploymentId:n.uuid(),cursor:n.number().int().min(0).default(0)}),yf=n.object({path:pf,upload:C}),bf=n.object({deploymentId:n.uuid(),uploads:n.array(yf).max(50),nextCursor:n.number().int().min(0).optional()}),xf=n.object({canvasId:n.uuid(),deploymentId:n.uuid(),baseVersion:n.number().int().positive(),canvasPageId:n.string().min(1).max(200).optional()}),Sf=n.object({canvasId:n.uuid(),prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1).max(200),version:n.number().int().positive(),state:n.literal(`ready`),origin:n.url(),openUrl:n.string().startsWith(`/c/`)}),Cf=n.object({canvasId:n.uuid(),prototypeId:n.uuid(),deploymentId:n.uuid()}),wf=n.object({deploymentId:n.uuid(),origin:n.url(),bootUrl:n.url(),expiresAt:n.iso.datetime()}),Tf=`__enhance/manifest.json`,Ef=n.string().length(64).refine(e=>{for(let t of e)if(!/[\da-f]/u.test(t))return!1;return!0}),Df=e=>{for(let t of e){let e=t.codePointAt(0);if(e!==void 0&&(e===127||e<=31))return!0}return!1},Of=e=>e.normalize(`NFKC`).toUpperCase().toLowerCase(),kf=n.string().min(1).refine(e=>e===e.normalize(`NFC`),{message:`prototype paths must use NFC Unicode normalization`}).refine(e=>!e.startsWith(`/`)&&!/^[A-Za-z]:\//u.test(e)&&!e.endsWith(`/`)&&!e.includes(`\\`)&&!Df(e)&&!e.startsWith(`__enhance/`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`),{message:`prototype paths must be portable relative file paths`}),Af=n.object({path:kf,contentType:n.string().trim().min(1).max(200).refine(e=>!Df(e)),bytes:n.number().int().nonnegative().max(2**53-1),sha256:Ef}),jf=n.object({version:n.literal(1),entryPath:kf,files:n.array(Af).min(1)}),Mf=n.object({artifactBytes:n.number().int().positive().max(2**53-1),expandedBytes:n.number().int().positive().max(2**53-1),fileBytes:n.number().int().positive().max(2**53-1),manifestBytes:n.number().int().positive().max(2**53-1),fileCount:n.number().int().positive().max(2**53-1),pathBytes:n.number().int().positive().max(2**53-1)}),Nf=n.object({}),Pf=n.object({attachmentProtocolVersion:n.literal(1).optional(),protocolVersion:n.literal(1),format:n.literal(`zip`),limits:Mf}),Ff=n.object({protocolVersion:n.literal(1),format:n.literal(`zip`),bytes:n.number().int().positive().max(2**53-1),sha256:Ef,fileCount:n.number().int().positive().max(2**53-1),expandedBytes:n.number().int().positive().max(2**53-1)}),If=n.object({canvasId:n.uuid(),prototypeId:n.uuid().optional(),clientToken:n.uuid(),nodeId:n.string().min(1),title:n.string().trim().min(1).max(200),entryPath:kf,artifact:Ff,box:T.extend({width:n.number().positive(),height:n.number().positive()})}),Lf=n.enum([`uploading`,`queued`,`ingesting`,`ready`,`failed`,`abandoned`]),Rf=n.object({prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1),alreadyExists:n.boolean(),artifact:Ff}),zf=n.discriminatedUnion(`state`,[Rf.extend({state:n.literal(`uploading`),upload:C}),Rf.extend({state:n.enum([`queued`,`ingesting`,`ready`,`failed`,`abandoned`])})]),Bf=n.object({canvasId:n.uuid(),deploymentId:n.uuid()}),Vf=n.object({deploymentId:n.uuid(),state:Lf}),Hf=n.object(Bf.shape),Uf=n.object({prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1),fileCount:n.number().int().nonnegative(),totalBytes:n.number().int().nonnegative().max(2**53-1),processedFiles:n.number().int().nonnegative()}),Wf=n.discriminatedUnion(`state`,[Uf.extend({state:n.literal(`failed`),failure:n.object({code:n.string().min(1),message:n.string().min(1),path:kf.optional()})}),Uf.extend({state:n.enum([`uploading`,`queued`,`ingesting`,`ready`,`abandoned`])})]),Gf=n.object({canvasId:n.uuid(),deploymentId:n.uuid(),baseVersion:n.number().int().positive(),canvasPageId:n.string().min(1).max(200).optional(),attachment:n.object({clientToken:n.uuid(),scope:n.object({pageId:n.string().min(1).max(200).optional(),nodeIds:n.array(n.string().min(1).max(200)).max(100)})}).optional()}),Kf=n.object({canvasId:n.uuid(),prototypeId:n.uuid(),deploymentId:n.uuid(),nodeId:n.string().min(1),version:n.number().int().positive(),state:n.literal(`ready`),origin:n.url(),openUrl:n.string().startsWith(`/c/`),attachment:n.discriminatedUnion(`outcome`,[n.object({outcome:n.literal(`committed`),mutationId:n.uuid(),previousVersion:n.number().int().positive(),version:n.number().int().positive()}),n.object({outcome:n.literal(`no_op`),version:n.number().int().positive()})]).optional()});n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.capture`),requestId:n.uuid(),connectionId:n.uuid().optional(),documentId:n.uuid().optional()}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.connect`),connectionId:n.uuid()}).extend({type:n.literal(`enhance.prototype.connected`),documentId:n.uuid(),capabilities:n.array(n.string()),release:n.string().min(1)}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.unloading`),documentId:n.uuid()}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.ready`)}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.escape`)}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.zoom`),deltaX:n.number(),deltaY:n.number(),deltaMode:n.union([n.literal(0),n.literal(1),n.literal(2)]),anchorX:n.number().min(0).max(1),anchorY:n.number().min(0).max(1)}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.navigate`),direction:n.enum([`back`,`forward`])}),n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.navigation`),canGoBack:n.boolean(),canGoForward:n.boolean()});const qf=n.object({artifact:n.string().min(1),viewport:n.object({width:n.number().positive(),height:n.number().positive()}),title:n.string()}),Jf=n.object({protocol:n.literal(1),type:n.literal(`enhance.prototype.captured`),requestId:n.uuid(),connectionId:n.uuid().optional(),documentId:n.uuid().optional()});n.discriminatedUnion(`outcome`,[Jf.extend({outcome:n.literal(`captured`),screen:qf}),Jf.extend({outcome:n.literal(`failed`),error:n.string().min(1),code:n.enum([`capture-failed`,`capture-busy`]).optional()})]);const Yf=2166136261,Xf=Number.parseInt(`9e3779b9`,16),Zf=Number.parseInt(`85ebca6b`,16),Qf=Number.parseInt(`c2b2ae35`,16);Yf^Xf,Yf^Zf,Yf^Qf;const $f=(e,t)=>`/v1/recording-assets/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,ep=n.object({width:n.number().int().positive(),height:n.number().int().positive()}),tp=16*oe,np=8*oe,rp=u,ip=n.object({mimeType:n.string().min(1).max(100),sampleRate:n.number().int().min(8e3).max(192e3)}),ap=n.object({sourceUrl:n.string().max(rp),viewport:ep,pageTitle:n.string().max(200).nullable(),audio:ip.nullable().default(null)}),op=n.object({recordingId:n.uuid(),ownerPersonId:n.uuid(),chunkIndex:n.literal(0),upload:C,audioUpload:C.nullable()}),sp=n.object({recordingId:n.uuid(),index:n.number().int().min(0),firstEventMs:n.number().int().min(0),lastEventMs:n.number().int().min(0),eventCount:n.number().int().min(0),continues:n.boolean().default(!1),bytes:n.number().int().min(1).max(tp),etag:n.string().min(1).max(200).optional()}),cp=n.object({nextChunkIndex:n.number().int().min(1),upload:C}),lp=n.object({recordingId:n.uuid(),index:n.number().int().min(0),firstMs:n.number().int().min(0),lastMs:n.number().int().min(0),bytes:n.number().int().min(1).max(tp),epoch:n.number().int().min(0).default(0),startsEpoch:n.boolean().default(!1),etag:n.string().min(1).max(200).optional()}),up=n.object({nextChunkIndex:n.number().int().min(1),upload:C}),dp=n.object({recordingId:n.uuid(),durationMs:n.number().int().min(0).max(144e5),viewport:ep,sourceUrl:n.string().max(rp),interrupted:n.boolean().default(!1),canvasId:n.uuid().optional(),organisationId:n.uuid().optional(),audioChunkCount:n.number().int().min(0).default(0),hasRecoverableBytes:n.boolean().default(!1)}).refine(e=>e.canvasId===void 0||e.organisationId===void 0,{message:`choose an existing canvas or a team for a new canvas, not both`}),fp=n.enum([`whole`,`recovering`,`partial`]),pp=n.enum([`dom`,`audio`]),mp=n.object({recordingId:n.uuid(),canvasId:n.uuid(),canvasTitle:n.string().min(1).max(200),isNewCanvas:n.boolean(),storedChunkCount:n.number().int().min(0),missingChunkIndexes:n.array(n.number().int().min(0)).max(64),missingChunkCount:n.number().int().min(0),storedAudioChunkCount:n.number().int().min(0),missingAudioChunkIndexes:n.array(n.number().int().min(0)).max(64),missingAudioChunkCount:n.number().int().min(0),integrity:fp}),hp=n.object({recordingId:n.uuid(),durationMs:n.number().int().min(0),viewport:ep,interrupted:n.boolean(),chunkCount:n.number().int().min(0),startedAt:n.iso.datetime()}),gp=n.object({recordingId:n.uuid(),assets:n.array(n.object({url:n.url().max(rp),contentType:n.string().min(1).max(200),byteSize:n.number().int().min(1).max(np)})).max(400)}),_p=n.object({reserved:n.array(n.object({url:n.string(),upload:C}))}),vp=n.object({recordingId:n.uuid(),arrived:n.array(n.object({url:n.url().max(rp),etag:n.string().min(1).max(200),byteSize:n.number().int().min(1).max(np)})).max(400)}),yp=n.object({missingAssetCount:n.number().int().min(0)}),bp=n.object({canvasId:n.uuid(),recordingId:n.uuid()}),xp=n.object({seq:n.number().int().min(0),firstEventMs:n.number().int().min(0),lastEventMs:n.number().int().min(0),continues:n.boolean()}),Sp=n.discriminatedUnion(`state`,[xp.extend({state:n.literal(`available`),download:Ot}),xp.extend({state:n.literal(`missing`)})]),Cp=n.object({seq:n.number().int().min(0),firstMs:n.number().int().min(0),lastMs:n.number().int().min(0),epoch:n.number().int().min(0),startsEpoch:n.boolean()}),wp=n.discriminatedUnion(`state`,[Cp.extend({state:n.literal(`available`),download:Ot}),Cp.extend({state:n.literal(`missing`)})]),Tp=n.object({recordingId:n.uuid(),durationMs:n.number().int().min(0),viewport:ep,sourceUrl:n.string().max(rp),interrupted:n.boolean(),integrity:fp,chunks:n.array(Sp),audio:n.object({mimeType:n.string(),chunks:n.array(wp)}).nullable(),assets:n.array(n.object({url:n.string(),contentType:n.string(),path:n.string().startsWith(`/v1/recording-assets/`)})),missingAssetCount:n.number().int().min(0),missingAssetUrls:n.array(n.string()).optional()}),Ep=n.object({recordingId:n.uuid(),track:pp,index:n.number().int().min(0)}),Dp=n.object({upload:C}),Op=Ep.extend({etag:n.string().min(1).max(200)}),kp=n.object({integrity:fp}),Ap=n.object({canvasId:n.uuid()}),jp=d(hp),Mp=n.object({recordingId:n.uuid()}),Np=n.object({recordingId:n.uuid(),discarded:n.literal(!0)}),Pp=n.object({canvasId:n.uuid(),recordingId:n.uuid()}),Fp=n.object({recordingId:n.uuid(),detachedScreenCount:n.number().int().min(0)});[`[data-enhance-unsupported]:not([data-enhance-unsupported-hidden]):not([style*="display: none"]) {
10
10
  align-items: center !important;
11
11
  background-color: #f7f7f8 !important;
12
12
  background-image: linear-gradient(to top right, transparent calc(50% - 1px), #a8a8b0 50%, transparent calc(50% + 1px)), linear-gradient(to bottom right, transparent calc(50% - 1px), #a8a8b0 50%, transparent calc(50% + 1px)) !important;