@uniformdev/uniform-mcp 20.49.5-alpha.5 → 20.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.mjs +2 -2
  2. package/package.json +8 -8
package/dist/index.mjs CHANGED
@@ -94,8 +94,8 @@ See https://reactjs.org/docs/forms.html#controlled-components`),K=R.initialPage?
94
94
  `),r=[];for(let o of n)r.push("> "+o);return r.join(`
95
95
  `)},regExp:$ne,replace:(t,e,n,r)=>{if(r){let i=t.getPreviousSibling();if(Au(i))return i.splice(i.getChildrenSize(),0,[Kn(),...e]),void t.remove()}let o=F4();o.append(...e),t.replace(o),r||o.select(0,0)},type:"element"},Mne={dependencies:[Fl],export:t=>{if(!Gm(t))return null;let e=t.getTextContent();return"```"+(t.getLanguage()||"")+(e?`
96
96
  `+e:"")+"\n```"},regExpEnd:{optional:!0,regExp:fO},regExpStart:Nne,replace:(t,e,n,r,o,i)=>{let s,a;if(!e&&o){if(o.length===1)r?(s=Is(),a=n[1]+o[0]):(s=Is(n[1]),a=o[0].startsWith(" ")?o[0].slice(1):o[0]);else{if(s=Is(n[1]),o[0].trim().length===0)for(;o.length>0&&!o[0].length;)o.shift();else o[0]=o[0].startsWith(" ")?o[0].slice(1):o[0];for(;o.length>0&&!o[o.length-1].length;)o.pop();a=o.join(`
97
- `)}let l=mt(a);s.append(l),t.append(s)}else e&&Dne(l=>Is(l?l[1]:void 0))(t,e,n,i)},type:"multiline-element"},One={dependencies:[_a,wa],export:(t,e)=>Gr(t)?$E(t,e,0):null,regExp:_ne,replace:mO("bullet"),type:"element"},dTe={dependencies:[_a,wa],export:(t,e)=>Gr(t)?$E(t,e,0):null,regExp:Tne,replace:mO("check"),type:"element"},Ine={dependencies:[_a,wa],export:(t,e)=>Gr(t)?$E(t,e,0):null,regExp:wne,replace:mO("number"),type:"element"},kne={format:["code"],tag:"`",type:"text-format"},Rne={format:["highlight"],tag:"==",type:"text-format"},Pne={format:["bold","italic"],tag:"***",type:"text-format"},Fne={format:["bold","italic"],intraword:!1,tag:"___",type:"text-format"},Bne={format:["bold"],tag:"**",type:"text-format"},zne={format:["bold"],intraword:!1,tag:"__",type:"text-format"},jne={format:["strikethrough"],tag:"~~",type:"text-format"},Vne={format:["italic"],tag:"*",type:"text-format"},Une={format:["italic"],intraword:!1,tag:"_",type:"text-format"},Hne={dependencies:[yE],export:(t,e,n)=>{if(!vE(t)||hE(t))return null;let r=t.getTitle(),o=e(t);return r?`[${o}](${t.getURL()} "${r}")`:`[${o}](${t.getURL()})`},importRegExp:/(?:\[(.+?)\])(?:\((?:([^()\s]+)(?:\s"((?:[^"]*\\")*[^"]*)"\s*)?)\))/,regExp:/(?:\[(.+?)\])(?:\((?:([^()\s]+)(?:\s"((?:[^"]*\\")*[^"]*)"\s*)?)\))$/,replace:(t,e)=>{let[,n,r,o]=e,i=gE(r,{title:o}),s=n.split("[").length-1,a=n.split("]").length-1,l=n,c="";if(s<a)return;if(s>a){let d=n.split("[");c="["+d[0],l=d.slice(1).join("[")}let u=mt(l);return u.setFormat(t.getFormat()),i.append(u),t.replace(i),c&&i.insertBefore(mt(c)),u},trigger:")",type:"text-match"},Kne=[Lne,Ane,One,Ine],Wne=[Mne],Gne=[kne,Pne,Fne,Bne,zne,Rne,Vne,Une,jne],Yne=[Hne],NE=[...Kne,...Wne,...Gne,...Yne]});var Vn,Kpt,Wpt,Gpt,Ypt,Zpt,qpt,Jpt,Xne,Xpt,Qne,Qpt,emt,tmt,nmt,ere,rmt,tre,nre,omt,rre,imt,smt,ore,amt,ire=ue(async()=>{"use strict";Vn=await(process.env.NODE_ENV!=="production"?vne().then(()=>hne):Jne().then(()=>qne)),Kpt=Vn.$convertFromMarkdownString,Wpt=Vn.$convertToMarkdownString,Gpt=Vn.BOLD_ITALIC_STAR,Ypt=Vn.BOLD_ITALIC_UNDERSCORE,Zpt=Vn.BOLD_STAR,qpt=Vn.BOLD_UNDERSCORE,Jpt=Vn.CHECK_LIST,Xne=Vn.CODE,Xpt=Vn.ELEMENT_TRANSFORMERS,Qne=Vn.HEADING,Qpt=Vn.HIGHLIGHT,emt=Vn.INLINE_CODE,tmt=Vn.ITALIC_STAR,nmt=Vn.ITALIC_UNDERSCORE,ere=Vn.LINK,rmt=Vn.MULTILINE_ELEMENT_TRANSFORMERS,tre=Vn.ORDERED_LIST,nre=Vn.QUOTE,omt=Vn.STRIKETHROUGH,rre=Vn.TEXT_FORMAT_TRANSFORMERS,imt=Vn.TEXT_MATCH_TRANSFORMERS,smt=Vn.TRANSFORMERS,ore=Vn.UNORDERED_LIST,amt=Vn.registerMarkdownShortcuts});var gie=_e((z3t,mie)=>{"use strict";var hDe=Object.prototype.hasOwnProperty,vDe=Object.prototype.toString;mie.exports=function(e,n,r){if(vDe.call(n)!=="[object Function]")throw new TypeError("iterator must be a function");var o=e.length;if(o===+o)for(var i=0;i<o;i++)n.call(r,e[i],i,e);else for(var s in e)hDe.call(e,s)&&n.call(r,e[s],s,e)}});var HO=_e((j3t,hie)=>{"use strict";var yDe=gie();hie.exports=_n;function _n(t,e,n){if(arguments.length===3)return _n.set(t,e,n);if(arguments.length===2)return _n.get(t,e);var r=_n.bind(_n,t);for(var o in _n)_n.hasOwnProperty(o)&&(r[o]=_n[o].bind(r,t));return r}_n.get=function(e,n){for(var r=Array.isArray(n)?n:_n.parse(n),o=0;o<r.length;++o){var i=r[o];if(!(typeof e=="object"&&i in e))throw new Error("Invalid reference token: "+i);e=e[i]}return e};_n.set=function(e,n,r){var o=Array.isArray(n)?n:_n.parse(n),i=o[0];if(o.length===0)throw Error("Can not set the root object");for(var s=0;s<o.length-1;++s){var a=o[s];typeof a!="string"&&typeof a!="number"&&(a=String(a)),!(a==="__proto__"||a==="constructor"||a==="prototype")&&(a==="-"&&Array.isArray(e)&&(a=e.length),i=o[s+1],a in e||(i.match(/^(\d+|-)$/)?e[a]=[]:e[a]={}),e=e[a])}return i==="-"&&Array.isArray(e)&&(i=e.length),e[i]=r,this};_n.remove=function(t,e){var n=Array.isArray(e)?e:_n.parse(e),r=n[n.length-1];if(r===void 0)throw new Error('Invalid JSON pointer for remove: "'+e+'"');var o=_n.get(t,n.slice(0,-1));if(Array.isArray(o)){var i=+r;if(r===""&&isNaN(i))throw new Error('Invalid array index: "'+r+'"');Array.prototype.splice.call(o,i,1)}else delete o[r]};_n.dict=function(e,n){var r={};return _n.walk(e,function(o,i){r[i]=o},n),r};_n.walk=function(e,n,r){var o=[];r=r||function(i){var s=Object.prototype.toString.call(i);return s==="[object Object]"||s==="[object Array]"},function i(s){yDe(s,function(a,l){o.push(String(l)),r(a)?i(a):n(a,_n.compile(o)),o.pop()})}(e)};_n.has=function(e,n){try{_n.get(e,n)}catch{return!1}return!0};_n.escape=function(e){return e.toString().replace(/~/g,"~0").replace(/\//g,"~1")};_n.unescape=function(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")};_n.parse=function(e){if(e==="")return[];if(e.charAt(0)!=="/")throw new Error("Invalid JSON pointer: "+e);return e.substring(1).split(/\//).map(_n.unescape)};_n.compile=function(e){return e.length===0?"":"/"+e.map(_n.escape).join("/")}});import{McpServer as lMe}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as cMe}from"@modelcontextprotocol/sdk/server/stdio.js";var cx={name:"@uniformdev/uniform-mcp",version:"20.49.4",description:"Uniform MCP Server",license:"SEE LICENSE IN LICENSE.txt",bin:{"uniform-mcp":"./dist/index.mjs"},exports:{".":{types:"./dist/index.d.mts",import:"./dist/index.mjs"},"./server":{types:"./dist/server.d.mts",import:"./dist/server.mjs"}},sideEffects:!1,scripts:{build:"run-p build:stdio build:server","build:stdio":"tsup --config tsup.stdio.config.ts","build:server":"tsup --config tsup.server.config.ts",dev:"tsup --watch --config tsup.stdio.config.ts",clean:"rimraf dist",lint:'eslint "src/**/*.{js,ts,tsx}"',format:'prettier --write "src/**/*.{js,ts,tsx}"',mcp:"node dist/index.mjs"},dependencies:{"@modelcontextprotocol/sdk":"1.25.2","@types/uuid":"9.0.4","@uniformdev/canvas":"workspace:*","@uniformdev/project-map":"workspace:*","fast-json-patch":"3.1.1",immer:"10.1.3",linkedom:"0.18.12",uuid:"9.0.1",zod:"3.25.76"},files:["/dist"],publishConfig:{access:"public"},devDependencies:{"@uniformdev/design-system":"workspace:*","@uniformdev/files":"workspace:*","@uniformdev/mesh-edgehancer-sdk":"workspace:*","@uniformdev/richtext":"workspace:*"}};var ZI=I(YI());var qI=(0,ZI.default)(6),ux=class t extends Error{constructor(n,r,o,i,s,a){super(`${n}
98
- ${i}${s?" "+s:""} (${r} ${o}${a?` Request ID: ${a}`:""})`);this.errorMessage=n;this.fetchMethod=r;this.fetchUri=o;this.statusCode=i;this.statusText=s;this.requestId=a;Object.setPrototypeOf(this,t.prototype)}};var dx=class t{options;constructor(e){if(!e.apiKey&&!e.bearerToken)throw new Error("You must provide an API key or a bearer token");let n=e.fetch;if(!n)if(typeof window<"u")n=window.fetch.bind(window);else if(typeof fetch<"u")n=fetch;else throw new Error("You must provide or polyfill a fetch implementation when not in a browser");this.options={...e,fetch:n,apiHost:this.ensureApiHost(e.apiHost),apiKey:e.apiKey??null,projectId:e.projectId??null,bearerToken:e.bearerToken??null,limitPolicy:e.limitPolicy??qI,bypassCache:e.bypassCache??!1}}async apiClient(e,n){return(await this.apiClientWithResponse(e,n)).body}async apiClientWithResponse(e,n){return this.options.limitPolicy(async()=>{let r=this.options.apiKey?{"x-api-key":this.options.apiKey}:{Authorization:`Bearer ${this.options.bearerToken}`};this.options.bypassCache&&(r["x-bypass-cache"]="true");let{fetch:o,signal:i}=this.options,a=await Xae(()=>o(e.toString(),{...n,signal:i,headers:{...n?.headers,...r}}));if(!a.ok){let l="";try{let c=await a.text();try{let u=JSON.parse(c);u.errorMessage?l=Array.isArray(u.errorMessage)?u.errorMessage.join(", "):u.errorMessage:l=c}catch{l=c}}catch{l="General error"}throw new ux(l,n?.method??"GET",e.toString(),a.status,a.statusText,t.getRequestId(a))}return n?.expectNoContent?{response:a,body:null}:{response:a,body:await a.json()}})}createUrl(e,n,r){let o=new URL(`${r??this.options.apiHost}${e}`);return Object.entries(n??{}).forEach(([i,s])=>{typeof s<"u"&&s!==null&&o.searchParams.append(i,Array.isArray(s)?s.join(","):s?.toString()??"")}),o}ensureApiHost(e){if(!e)return"https://uniform.app";if(!e?.startsWith("http"))throw new Error('Your apiHost must start with "http"');if(e.indexOf("/",8)>-1)throw new Error("Your apiHost must not contain a path element after the domain");if(e.indexOf("?")>-1)throw new Error("Your apiHost must not contain a query string");return e?.endsWith("/")&&(e=e.substring(0,e.length-1)),e}static getRequestId(e){let n=e.headers.get("apigw-requestid");if(n)return n}};async function Xae(t){let n=5,r;for(;n>0&&(r=await t(),r.status===429);){let o=0;try{let a=r.clone(),l=a.headers.get("date"),c=l?new Date(l).getTime():void 0,d=(await a.json())?.info?.reset;typeof c=="number"&&typeof d=="number"&&(o=Math.max(0,Math.min(Math.round(1.1*(d-c)),1e4)))}catch{}let i=Math.pow(2,5-n)*333,s=i+Math.round(Math.random()*(i/2))*(Math.random()>.5?1:-1);await new Promise(a=>setTimeout(a,o+s)),n-=1}return r}var fx=class extends dx{telemetryContext;constructor(e){e.apiHost||(e.apiHost="https://ai.uniform.global"),super(e),this.telemetryContext=e.telemetryContext}async invoke(e,n){let r={};if(this.telemetryContext){let{threadId:i,uniformClient:s,userAgent:a}=this.telemetryContext;i&&(r["x-thread-id"]=i),s&&(r["x-uniform-client"]=s),a&&(r["user-agent"]=a)}return(await this.apiClientWithResponse(new URL(`/projects/${this.options.projectId}/tools/${e}`,this.options.apiHost),{method:"POST",body:n?JSON.stringify(n):void 0,headers:Object.keys(r).length>0?r:void 0})).body}};var QI=process.env.UNIFORM_API_KEY,Vw=process.env.UNIFORM_PROJECT_ID,JI=process.env.UNIFORM_API_HOST??"https://uniform.app",Qae=process.env.UNIFORM_AI_API_HOST??"https://ai.uniform.global";if(!QI&&process.env.NODE_ENV!=="test")throw new Error("UNIFORM_API_KEY is not set");if(!Vw&&process.env.NODE_ENV!=="test")throw new Error("UNIFORM_PROJECT_ID is not set");var XI={apiHost:JI,apiKey:QI,projectId:Vw,baseWebUrl:`${JI}/projects/${Vw}`},ek={...XI,toolInvoker:new fx({...XI,apiHost:Qae,telemetryContext:{userAgent:`uniform-mcp/${cx.version}`,uniformClient:"mcp"}})};import{z as kp}from"zod";var tk={displayName:"Ask Una",description:"Ask the Uniform Docs assistant, Una, questions about Uniform features, usage, and best practices.",inputSchema:kp.object({question:kp.string().describe(`Prompt for the uniform docs AI assistant.
97
+ `)}let l=mt(a);s.append(l),t.append(s)}else e&&Dne(l=>Is(l?l[1]:void 0))(t,e,n,i)},type:"multiline-element"},One={dependencies:[_a,wa],export:(t,e)=>Gr(t)?$E(t,e,0):null,regExp:_ne,replace:mO("bullet"),type:"element"},dTe={dependencies:[_a,wa],export:(t,e)=>Gr(t)?$E(t,e,0):null,regExp:Tne,replace:mO("check"),type:"element"},Ine={dependencies:[_a,wa],export:(t,e)=>Gr(t)?$E(t,e,0):null,regExp:wne,replace:mO("number"),type:"element"},kne={format:["code"],tag:"`",type:"text-format"},Rne={format:["highlight"],tag:"==",type:"text-format"},Pne={format:["bold","italic"],tag:"***",type:"text-format"},Fne={format:["bold","italic"],intraword:!1,tag:"___",type:"text-format"},Bne={format:["bold"],tag:"**",type:"text-format"},zne={format:["bold"],intraword:!1,tag:"__",type:"text-format"},jne={format:["strikethrough"],tag:"~~",type:"text-format"},Vne={format:["italic"],tag:"*",type:"text-format"},Une={format:["italic"],intraword:!1,tag:"_",type:"text-format"},Hne={dependencies:[yE],export:(t,e,n)=>{if(!vE(t)||hE(t))return null;let r=t.getTitle(),o=e(t);return r?`[${o}](${t.getURL()} "${r}")`:`[${o}](${t.getURL()})`},importRegExp:/(?:\[(.+?)\])(?:\((?:([^()\s]+)(?:\s"((?:[^"]*\\")*[^"]*)"\s*)?)\))/,regExp:/(?:\[(.+?)\])(?:\((?:([^()\s]+)(?:\s"((?:[^"]*\\")*[^"]*)"\s*)?)\))$/,replace:(t,e)=>{let[,n,r,o]=e,i=gE(r,{title:o}),s=n.split("[").length-1,a=n.split("]").length-1,l=n,c="";if(s<a)return;if(s>a){let d=n.split("[");c="["+d[0],l=d.slice(1).join("[")}let u=mt(l);return u.setFormat(t.getFormat()),i.append(u),t.replace(i),c&&i.insertBefore(mt(c)),u},trigger:")",type:"text-match"},Kne=[Lne,Ane,One,Ine],Wne=[Mne],Gne=[kne,Pne,Fne,Bne,zne,Rne,Vne,Une,jne],Yne=[Hne],NE=[...Kne,...Wne,...Gne,...Yne]});var Vn,Kpt,Wpt,Gpt,Ypt,Zpt,qpt,Jpt,Xne,Xpt,Qne,Qpt,emt,tmt,nmt,ere,rmt,tre,nre,omt,rre,imt,smt,ore,amt,ire=ue(async()=>{"use strict";Vn=await(process.env.NODE_ENV!=="production"?vne().then(()=>hne):Jne().then(()=>qne)),Kpt=Vn.$convertFromMarkdownString,Wpt=Vn.$convertToMarkdownString,Gpt=Vn.BOLD_ITALIC_STAR,Ypt=Vn.BOLD_ITALIC_UNDERSCORE,Zpt=Vn.BOLD_STAR,qpt=Vn.BOLD_UNDERSCORE,Jpt=Vn.CHECK_LIST,Xne=Vn.CODE,Xpt=Vn.ELEMENT_TRANSFORMERS,Qne=Vn.HEADING,Qpt=Vn.HIGHLIGHT,emt=Vn.INLINE_CODE,tmt=Vn.ITALIC_STAR,nmt=Vn.ITALIC_UNDERSCORE,ere=Vn.LINK,rmt=Vn.MULTILINE_ELEMENT_TRANSFORMERS,tre=Vn.ORDERED_LIST,nre=Vn.QUOTE,omt=Vn.STRIKETHROUGH,rre=Vn.TEXT_FORMAT_TRANSFORMERS,imt=Vn.TEXT_MATCH_TRANSFORMERS,smt=Vn.TRANSFORMERS,ore=Vn.UNORDERED_LIST,amt=Vn.registerMarkdownShortcuts});var gie=_e((z3t,mie)=>{"use strict";var hDe=Object.prototype.hasOwnProperty,vDe=Object.prototype.toString;mie.exports=function(e,n,r){if(vDe.call(n)!=="[object Function]")throw new TypeError("iterator must be a function");var o=e.length;if(o===+o)for(var i=0;i<o;i++)n.call(r,e[i],i,e);else for(var s in e)hDe.call(e,s)&&n.call(r,e[s],s,e)}});var HO=_e((j3t,hie)=>{"use strict";var yDe=gie();hie.exports=_n;function _n(t,e,n){if(arguments.length===3)return _n.set(t,e,n);if(arguments.length===2)return _n.get(t,e);var r=_n.bind(_n,t);for(var o in _n)_n.hasOwnProperty(o)&&(r[o]=_n[o].bind(r,t));return r}_n.get=function(e,n){for(var r=Array.isArray(n)?n:_n.parse(n),o=0;o<r.length;++o){var i=r[o];if(!(typeof e=="object"&&i in e))throw new Error("Invalid reference token: "+i);e=e[i]}return e};_n.set=function(e,n,r){var o=Array.isArray(n)?n:_n.parse(n),i=o[0];if(o.length===0)throw Error("Can not set the root object");for(var s=0;s<o.length-1;++s){var a=o[s];typeof a!="string"&&typeof a!="number"&&(a=String(a)),!(a==="__proto__"||a==="constructor"||a==="prototype")&&(a==="-"&&Array.isArray(e)&&(a=e.length),i=o[s+1],a in e||(i.match(/^(\d+|-)$/)?e[a]=[]:e[a]={}),e=e[a])}return i==="-"&&Array.isArray(e)&&(i=e.length),e[i]=r,this};_n.remove=function(t,e){var n=Array.isArray(e)?e:_n.parse(e),r=n[n.length-1];if(r===void 0)throw new Error('Invalid JSON pointer for remove: "'+e+'"');var o=_n.get(t,n.slice(0,-1));if(Array.isArray(o)){var i=+r;if(r===""&&isNaN(i))throw new Error('Invalid array index: "'+r+'"');Array.prototype.splice.call(o,i,1)}else delete o[r]};_n.dict=function(e,n){var r={};return _n.walk(e,function(o,i){r[i]=o},n),r};_n.walk=function(e,n,r){var o=[];r=r||function(i){var s=Object.prototype.toString.call(i);return s==="[object Object]"||s==="[object Array]"},function i(s){yDe(s,function(a,l){o.push(String(l)),r(a)?i(a):n(a,_n.compile(o)),o.pop()})}(e)};_n.has=function(e,n){try{_n.get(e,n)}catch{return!1}return!0};_n.escape=function(e){return e.toString().replace(/~/g,"~0").replace(/\//g,"~1")};_n.unescape=function(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")};_n.parse=function(e){if(e==="")return[];if(e.charAt(0)!=="/")throw new Error("Invalid JSON pointer: "+e);return e.substring(1).split(/\//).map(_n.unescape)};_n.compile=function(e){return e.length===0?"":"/"+e.map(_n.escape).join("/")}});import{McpServer as lMe}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as cMe}from"@modelcontextprotocol/sdk/server/stdio.js";var cx={name:"@uniformdev/uniform-mcp",version:"20.50.0",description:"Uniform MCP Server",license:"SEE LICENSE IN LICENSE.txt",bin:{"uniform-mcp":"./dist/index.mjs"},exports:{".":{types:"./dist/index.d.mts",import:"./dist/index.mjs"},"./server":{types:"./dist/server.d.mts",import:"./dist/server.mjs"}},sideEffects:!1,scripts:{build:"run-p build:stdio build:server","build:stdio":"tsup --config tsup.stdio.config.ts","build:server":"tsup --config tsup.server.config.ts",dev:"tsup --watch --config tsup.stdio.config.ts",clean:"rimraf dist",lint:'eslint "src/**/*.{js,ts,tsx}"',format:'prettier --write "src/**/*.{js,ts,tsx}"',mcp:"node dist/index.mjs"},dependencies:{"@modelcontextprotocol/sdk":"1.25.2","@types/uuid":"9.0.4","@uniformdev/canvas":"workspace:*","@uniformdev/project-map":"workspace:*","fast-json-patch":"3.1.1",immer:"10.1.3",linkedom:"0.18.12",uuid:"9.0.1",zod:"3.25.76"},files:["/dist"],publishConfig:{access:"public"},devDependencies:{"@uniformdev/design-system":"workspace:*","@uniformdev/files":"workspace:*","@uniformdev/mesh-edgehancer-sdk":"workspace:*","@uniformdev/richtext":"workspace:*"}};var ZI=I(YI());var qI=(0,ZI.default)(6),ux=class t extends Error{constructor(n,r,o,i,s,a){super(`${n}
98
+ ${i}${s?" "+s:""} (${r} ${o}${a?` Request ID: ${a}`:""})`);this.errorMessage=n;this.fetchMethod=r;this.fetchUri=o;this.statusCode=i;this.statusText=s;this.requestId=a;Object.setPrototypeOf(this,t.prototype)}};var dx=class t{options;constructor(e){if(!e.apiKey&&!e.bearerToken)throw new Error("You must provide an API key or a bearer token");let n=e.fetch;if(!n)if(typeof window<"u")n=window.fetch.bind(window);else if(typeof fetch<"u")n=fetch;else throw new Error("You must provide or polyfill a fetch implementation when not in a browser");this.options={...e,fetch:n,apiHost:this.ensureApiHost(e.apiHost),apiKey:e.apiKey??null,projectId:e.projectId??null,bearerToken:e.bearerToken??null,limitPolicy:e.limitPolicy??qI,bypassCache:e.bypassCache??!1}}async apiClient(e,n){return(await this.apiClientWithResponse(e,n)).body}async apiClientWithResponse(e,n){return this.options.limitPolicy(async()=>{let r=this.options.apiKey?{"x-api-key":this.options.apiKey}:{Authorization:`Bearer ${this.options.bearerToken}`};this.options.bypassCache&&(r["x-bypass-cache"]="true");let{fetch:o,signal:i}=this.options,a=await Xae(()=>o(e.toString(),{...n,signal:i,headers:{...n?.headers,...r}}));if(!a.ok){let l="";try{let c=await a.text();try{let u=JSON.parse(c);u.errorMessage?l=Array.isArray(u.errorMessage)?u.errorMessage.join(", "):u.errorMessage:l=c}catch{l=c}}catch{l="General error"}throw new ux(l,n?.method??"GET",e.toString(),a.status,a.statusText,t.getRequestId(a))}return n?.expectNoContent?{response:a,body:null}:{response:a,body:await a.json()}})}createUrl(e,n,r){let o=new URL(`${r??this.options.apiHost}${e}`);return Object.entries(n??{}).forEach(([i,s])=>{typeof s<"u"&&s!==null&&o.searchParams.append(i,Array.isArray(s)?s.join(","):s?.toString()??"")}),o}ensureApiHost(e){if(!e)return"https://uniform.app";if(!e?.startsWith("http"))throw new Error('Your apiHost must start with "http"');if(e.indexOf("/",8)>-1)throw new Error("Your apiHost must not contain a path element after the domain");if(e.indexOf("?")>-1)throw new Error("Your apiHost must not contain a query string");return e?.endsWith("/")&&(e=e.substring(0,e.length-1)),e}static getRequestId(e){let n=e.headers.get("apigw-requestid");if(n)return n}};async function Xae(t){let n=5,r;for(;n>0&&(r=await t(),r.status===429);){let o=0;try{let a=r.clone(),l=a.headers.get("date"),c=l?new Date(l).getTime():void 0,d=(await a.json())?.info?.reset;typeof c=="number"&&typeof d=="number"&&(o=Math.max(0,Math.min(Math.round(1.1*(d-c)),1e4)))}catch{}let i=Math.pow(2,5-n)*333,s=i+Math.round(Math.random()*(i/2))*(Math.random()>.5?1:-1);await new Promise(a=>setTimeout(a,Math.max(0,o+s))),n-=1}return r}var fx=class extends dx{telemetryContext;constructor(e){e.apiHost||(e.apiHost="https://ai.uniform.global"),super(e),this.telemetryContext=e.telemetryContext}async invoke(e,n){let r={};if(this.telemetryContext){let{threadId:i,uniformClient:s,userAgent:a}=this.telemetryContext;i&&(r["x-thread-id"]=i),s&&(r["x-uniform-client"]=s),a&&(r["user-agent"]=a)}return(await this.apiClientWithResponse(new URL(`/projects/${this.options.projectId}/tools/${e}`,this.options.apiHost),{method:"POST",body:n?JSON.stringify(n):void 0,headers:Object.keys(r).length>0?r:void 0})).body}};var QI=process.env.UNIFORM_API_KEY,Vw=process.env.UNIFORM_PROJECT_ID,JI=process.env.UNIFORM_API_HOST??"https://uniform.app",Qae=process.env.UNIFORM_AI_API_HOST??"https://ai.uniform.global";if(!QI&&process.env.NODE_ENV!=="test")throw new Error("UNIFORM_API_KEY is not set");if(!Vw&&process.env.NODE_ENV!=="test")throw new Error("UNIFORM_PROJECT_ID is not set");var XI={apiHost:JI,apiKey:QI,projectId:Vw,baseWebUrl:`${JI}/projects/${Vw}`},ek={...XI,toolInvoker:new fx({...XI,apiHost:Qae,telemetryContext:{userAgent:`uniform-mcp/${cx.version}`,uniformClient:"mcp"}})};import{z as kp}from"zod";var tk={displayName:"Ask Una",description:"Ask the Uniform Docs assistant, Una, questions about Uniform features, usage, and best practices.",inputSchema:kp.object({question:kp.string().describe(`Prompt for the uniform docs AI assistant.
99
99
  The prompt should describe the information you are looking for.
100
100
  You may be detailed but do not use more than 100 words.
101
101
  When answering a user question, your prompt should be exactly that question.`)}),outputSchema:kp.object({success:kp.boolean(),error:kp.string().optional().describe("The error message if the question was not answered successfully"),answerMarkdown:kp.string().describe("The answer, in markdown format, from the Uniform docs chatbot")}),runsAt:"server",timeout:60,callable:!0};function nk(t,e){t.tool("askQuestion","Ask the Uniform Docs assistant, Una, questions about Uniform features, usage, and best practices",tk.inputSchema.shape,async n=>{let r=await e.toolInvoker.invoke("askQuestion",n);return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}})}import{autoFixParameterGroups as ak,CanvasClient as vle}from"@uniformdev/canvas";import*as yx from"zod/v3";import ele from"fast-json-patch";function px(t,e){return ele.applyPatch(t,e).newDocument}import*as Xs from"zod/v3";var mx=Xs.array(Xs.object({op:Xs.enum(["add","remove","replace"]),path:Xs.string().describe("The JSON path to patch"),value:Xs.unknown().describe("The value to patch - for remove, leave this blank")}));function tle(t){return Array.isArray(t)&&t.length>0}function rk(t){return!!t&&typeof t=="object"&&"type"in t}function ok(t){return typeof t=="object"&&t!==null&&"root"in t&&rk(t.root)}function Dd(t){return"children"in t&&tle(t.children)}var nle=({context:t,renderChildren:e})=>Dd(t.currentNode)?`${e(t.currentNode.children)} `:"";var rle=({context:t,renderChildren:e})=>{if(!Dd(t.currentNode))return"";let n=e(t.currentNode.children);return n.endsWith(" ")?n:`${n} `};var ole=({context:t,renderChildren:e})=>Dd(t.currentNode)?`${e(t.currentNode.children)} `:"";var ile=({context:t,renderChildren:e})=>Dd(t.currentNode)?`${e(t.currentNode.children)} `:"";var sle=({context:t,renderChildren:e})=>Dd(t.currentNode)?`${e(t.currentNode.children)} `:"";var ale=({context:t,renderChildren:e})=>Dd(t.currentNode)?`${e(t.currentNode.children)} `:"";var lle=({context:t})=>t.currentNode.text;var cle=()=>" ";var ule=()=>" ",dle=new Map([["text",lle],["tab",cle],["linebreak",ule],["paragraph",ole],["listitem",rle],["heading",nle],["table",ile],["tablecell",sle],["tablerow",ale]]),fle=t=>{let e=dle.get(t.currentNode.type);return e||(({context:n,renderChildren:r})=>Dd(n.currentNode)?r(n.currentNode.children):"")};function ple(t,e){let n=[];return e?.ancestorNodes&&(n=n.concat(e.ancestorNodes)),e?.currentNode&&n.unshift(e.currentNode),{...e??{},currentNode:t,ancestorNodes:n}}function Uw(t,e){var n;if(!rk(t))return"";let r=ple(t,e),o=(n=r.resolveRenderer)==null?void 0:n.call(r,r);if(typeof o>"u")o=fle(r);else if(o===null)return"";let i=s=>mle(s,r);if(o){let s=o({context:r,renderChildren:i});return r.ancestorNodes.length>0?s:s.trim()}else throw new Error(`There is no renderer for node type: ${r.currentNode.type}`)}function mle(t,e){return Array.isArray(t)?t.map(n=>Uw(n,e)).join(""):""}var gle=[{label:"Heading 1",type:"h1"},{label:"Heading 2",type:"h2"},{label:"Heading 3",type:"h3"},{label:"Heading 4",type:"h4"},{label:"Heading 5",type:"h5"},{label:"Heading 6",type:"h6"},{label:"Bullet List",type:"unorderedList"},{label:"Ordered List",type:"orderedList"},{label:"Link",type:"link"},{label:"Blockquote",type:"quote"},{label:"Code Block",type:"code"},{label:"Table",type:"table"},{label:"Asset",type:"asset"},{label:"Dynamic Token",type:"variable"}],hle=[{label:"Bold",type:"bold"},{label:"Italic",type:"italic"},{label:"Underline",type:"underline"},{label:"Strikethrough",type:"strikethrough"},{label:"Code",type:"code"},{label:"Superscript",type:"superscript"},{label:"Subscript",type:"subscript"}];var gx={required:!1,formatting:{builtIn:hle.map(t=>t.type)},elements:{builtIn:gle.map(t=>t.type)},elementsConfig:{asset:{allowedTypes:["image"]}}};import*as fr from"zod/v3";import*as Kt from"zod/v3";var hx=Kt.object({name:Kt.string().describe('Title-cased display name. Ex: "Headline"'),id:Kt.string().describe("The public ID. Must be unique within the current entity fields/parameters."),type:Kt.enum(["text","richText","select","multi-select","number","date","dateTime","checkbox","link","asset","json","contentReference","$enr","group"]).describe("The data type of the property. The group type defines a grouping of other properties."),guidance:Kt.string().describe('Describe what kind of content should be populated, for a LLM to use as a guide. 1-2 sentences max. Ex: "Meta tags based on the content", "2-3 word headline"'),localizable:Kt.boolean().describe("Whether values are stored as locale-specific"),typeConfig:Kt.object({allowedTypes:Kt.array(Kt.enum(["image","video","audio","other"])).optional().describe("The types of asset allowed. ONLY applies when type=asset, omit for other types"),options:Kt.array(Kt.object({text:Kt.string().describe("The text to display to the author"),value:Kt.string().describe("The value to store for the option")})).optional().describe("The author-selectable options for the select property. ONLY applies when type=select or multi-select, omit for other types"),required:Kt.boolean().optional().describe("Whether an author must enter a value for this property"),min:Kt.number().optional().describe("When type=number, this is the smallest allowed value (omit for no minimum). When type=multi-select, this is the minimum number of selections the author must make (omit for no minimum). When type=reference and isMulti=true, this is the minimum number of references the author must select (omit for no minimum). Omit for all other types."),max:Kt.number().optional().describe("When type=number, this is the largest allowed value (omit for no maximum). When type=multi-select, this is the maximum number of selections the author can make (omit for no maximum). When type=reference and isMulti=true, this is the maximum number of references the author can select (omit for no maximum). Omit for all other types."),allowedContentTypes:Kt.array(Kt.string()).optional().describe("When type=reference, this is a list of content type public IDs the author can reference. The content type ID must already exist. Omit for all other types."),isMulti:Kt.boolean().optional().describe("When type=reference, this is whether the author can select multiple referenced entries. When false, only one reference is allowed. Omit for all other types."),childrenParams:Kt.array(Kt.string()).optional().describe("When type=group, this is a list of public IDs of the properties to group. The property ID must be defined within this definition. Omit for all other types."),collapsed:Kt.boolean().optional().describe("When type=group, this is whether the group is collapsed by default."),schema:Kt.any().describe("When type=json, this is an optional JSON schema the property value must follow. Omit for all other types.")}).optional()});var ik=fr.object({name:fr.string().describe('Title-cased display name of the component. Ex: "Hero"'),id:fr.string().describe("Public ID of the component, the camelCase version of name, using only alphanumeric characters"),description:fr.string().describe('Describe the purpose of the component in 1-2 sentences. If the component seems generic, such as "Promo" or "Hero", this should be blank.'),canBeComposition:fr.boolean().describe("True if the component can have pages/compositions created from it. False if it is a part of a page."),parameters:fr.array(hx).describe("The properties of the component. The key is the publicId of the property.").optional(),slots:fr.array(fr.object({name:fr.string().describe('Title-cased display name of the slot. Ex: "Content"'),id:fr.string().describe("The public id of the slot. Must be unique within this component's slots."),allowedComponents:fr.array(fr.string()).describe("The components public IDs allowed in the slot."),minComponents:fr.number().describe("The minimum number of components allowed in the slot. Omit for no minimum.").min(0).optional(),maxComponents:fr.number().describe("The maximum number of components allowed in the slot. Omit for no maximum.").min(1).optional(),inheritAllowedComponents:fr.boolean().describe("Set to false")})).describe("The slots of the component. The key is the publicId of the slot.").optional()});function sk(t){let e=t.slots?.map(o=>({...o,patternsInAllowedComponents:!0,inheritAllowedComponents:!1,maxComponents:o.maxComponents===0?void 0:o.maxComponents,minComponents:o.minComponents===0?void 0:o.minComponents})),n=t.parameters?.find(o=>o.type==="asset"&&typeof o.typeConfig=="object"&&o.typeConfig!==null&&"allowedTypes"in o.typeConfig&&Array.isArray(o.typeConfig.allowedTypes)&&o.typeConfig.allowedTypes?.includes("image"))?.id,r=t.parameters?.find(o=>o.type==="text")?.id;return{...t,slots:e,titleParameter:r,thumbnailParameter:n}}function vx(t,e){return`${e.baseWebUrl}/dashboards/canvas/components/${t}`}function Rp(t,e){let n=t.filter(r=>e===void 0&&r.type==="richText"||e!==void 0&&e.includes(r.id));if(n.length!==0)for(let r of n){if(r.typeConfig===void 0){r.typeConfig=gx;continue}r.typeConfig={...gx,required:r.typeConfig.required??gx.required}}}var yle={action:yx.enum(["create","update","delete"]).describe("The action to perform"),publicId:yx.string().describe("Public ID of the component, the camelCase version of name, using only alphanumeric characters"),component:ik.describe("Full component definition to create. Omit for update or delete.").optional(),patches:mx.describe("JSON patch to apply to the existing component definition. Omit for create or delete.").optional()};function lk(t,e){t.tool("componentAction","Creates, updates, or deletes a Uniform Component definition (or Composition definition)",yle,async({publicId:n,action:r,component:o,patches:i})=>{let s=new vle(e),a=!1;if(r==="create"){if(!o)throw new Error("Component definition is required for create");let l=sk(o);l.parameters&&(a=ak(l.parameters),Rp(l.parameters)),await s.updateComponentDefinition({componentDefinition:l})}if(r==="update"){if(!i)throw new Error("Patches are required for update");let l=await s.getComponentDefinitions({componentId:n});if(!l.componentDefinitions.length)throw new Error(`Component with public ID ${n} does not exist, try creating it instead`);let c=l.componentDefinitions[0],u=c.parameters?.filter(f=>f.type==="richText").map(f=>f.id),d=px(c,i);if(d.parameters){a=ak(d.parameters);let f=d.parameters?.filter(p=>p.type==="richText").map(p=>p.id).filter(p=>!u?.includes(p));Rp(d.parameters,f)}await s.updateComponentDefinition({componentDefinition:d})}return r==="delete"&&await s.removeComponentDefinition({componentId:n}),{content:[{type:"text",text:JSON.stringify({success:!0,editUrl:vx(n,e),warning:a?"Issues with parameter group order were fixed. Ensure definition data is re-fetched before any future updates.":void 0},null,2)}]}})}import{CanvasClient as ck}from"@uniformdev/canvas";import*as uk from"zod/v3";var ble={id:uk.string()};function dk(t,e){t.tool("componentList","Lists all Uniform Component definitions",async()=>{let o=(await new ck(e).getComponentDefinitions({includeSystem:!0})).componentDefinitions.map(i=>({id:i.id,name:i.name,type:i.canBeComposition?"composition":"component",description:i.description,editUrl:vx(i.id,e)}));return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("componentGet","Gets a Uniform Component definition details (slots, parameters, etc.)",ble,async({id:n})=>{let o=await new ck(e).getComponentDefinitions({componentId:n,includeSystem:!0});return{content:[{type:"text",text:JSON.stringify(o.componentDefinitions[0],null,2)}]}})}import*as Je from"zod/v3";import*as Pp from"zod/v3";var wc=Pp.object({componentId:Pp.string().describe("ID of the component pattern instance the data resource belongs to - can be created in the same call to this tool"),dataResourceName:Pp.string().describe("Name of the data resource to update. Must be defined as a pattern data resource on the pattern, new names cannot be created"),editInstructions:Pp.string().describe('Prompt that will be used to generate the data resource value. Omission will leave the value unchanged. To reset an overridden value to pattern default, say "reset override".').optional()}).describe("A value change to a pattern data resource. Omit unchanged data resources.");var xle=Je.object({parentComponentId:Je.string().describe("ID of the component the slot belongs to"),slotName:Je.string().describe("Public ID of the target slot"),slotIndex:Je.number().describe("Index to insert the new component at. Omit for append.").optional(),newComponentInstanceUuid:Je.string().uuid().describe("UUID of the new component to create. You MUST generate a valid unique UUID using the `createUuid` tool."),instanceType:Je.enum(["component","componentPattern"]),componentType:Je.string().describe("Public ID of the component definition to insert. Component definition must be registered with Uniform. Omit when inserting a component pattern instance.").optional(),componentPatternId:Je.string().describe("UUID of the component pattern definition to insert. Component pattern must be registered with Uniform. Omit when inserting a component instance.").optional()}),bx=Je.object({componentId:Je.string().describe("ID of the component the parameter belongs to - can be created in the same call to this tool"),parameterId:Je.string().describe("Public ID of the parameter to update. Must be defined in the component type of the parent componentId"),parameterType:Je.string().describe("The type of the parameterId as defined on the component definition"),fromLocale:Je.string().describe("When translating from a different locale, use the locale you are translating from. Omit for non-localized values.").optional(),locale:Je.string().describe("Locale of the parameter value. Omit for non-localized values.").optional(),editInstructions:Je.string().describe('Prompt that will be used to generate the parameter value. Omission will leave the value unchanged. To reset an overridden value to pattern default, say "reset override".').optional()}).describe("A value change to a parameter. Omit unchanged parameters."),xx=Je.object({createComponentInstances:Je.array(xle).describe("New components to insert in slots. Do not use for moves or duplications. Omit for delete. These actions are performed before moving, duplicating, or deleting components, and parameter updates.").optional(),moveComponentInstances:Je.array(Je.object({componentId:Je.string().describe("Existing component ID to move. Cannot be root component."),newParentComponentId:Je.string(),newSlotName:Je.string().describe("Destination slot to move to"),newSlotIndex:Je.number().describe("Destination index in the parent slot to move to")})).describe("Moves existing component instances to a new location in a composition. The destination can be the same slot to cause a reorder. Omit for create or delete, or if nothing needs moving. These actions are performed before duplicating or deleting components, and parameter updates.").optional(),duplicateComponentInstances:Je.array(Je.string().describe("Component ID to duplicate. Cannot be root component. All descendants of the duplicated component will be duplicated as well. Duplicates are placed in the same slot as the original component, at the end.")).describe("Component instances to duplicate/copy. Omit when empty. These actions are performed before deleting components and parameter updates.").optional(),deleteComponentInstances:Je.array(Je.string().describe("Component ID to remove. Cannot be the pattern root component.")).describe("Component instances to delete from slots during an update. Omit for create or delete, or if nothing needs deleting. These actions are performed after moving and duplicating components, and before parameter updates.").optional(),dataResourceUpdates:Je.array(wc).describe("Updates to pattern data resources. Use empty array if no changes are needed.").optional()}),_c=Je.object({enableLocales:Je.array(Je.string()).describe("Locales to enable. Omit for no change.").optional(),disableLocales:Je.array(Je.string()).describe("Locales to disable. Existing data in disabled locales will be lost. Omit for no change.").optional()}),Cle=Je.object({summary:Je.string().describe("Short summary of the edit that was made.").optional(),success:Je.boolean()}),GMe=Je.object({success:Je.boolean().describe("Whether all actions were successful"),actionsTaken:Je.array(Cle).describe("Array of individual actions that were taken")});import*as il from"zod/v3";var Sle=bx.extend({overridable:il.enum(["yes","no"]).describe("Whether the parameter value set on the pattern definition is overridable by pattern consumers. Omit when no change is needed.").optional()}),fk=xx.extend({name:il.string().describe("Name of the pattern. If the name does not need to be changed, omit this field. Always include for creates.").optional(),type:il.string().describe("Component definition type of the pattern. Must be registered with Uniform. Always include for creates. Omit otherwise.").optional(),description:il.string().describe("Description of the pattern for authors. If the description does not need to be changed, omit this field.").optional(),parameterUpdates:il.array(Sle).describe("Updates to the parameters of the pattern. Use empty array if no changes are needed.").optional(),dataResourceUpdates:il.array(wc).describe("Updates to the pattern instance data resources. Use empty array if no changes are needed.").optional(),localeUpdates:_c.optional()}).describe("Modification instructions for the pattern");import*as Tc from"zod/v3";var pk=Tc.object({...xx.shape,name:Tc.string().describe("Name of the composition. If the name does not need to be changed, omit this field. Always include for creates.").optional(),type:Tc.string().describe("Component definition type of the composition. Must be registered with Uniform and have canBeComposition=true in the component definition. Always include for creates. Omit otherwise.").optional(),parameterUpdates:Tc.array(bx).describe("Updates to the parameters of the pattern. Use empty array if no changes are needed.").optional(),localeUpdates:_c.optional(),dataResourceUpdates:Tc.array(wc).describe("Updates to pattern instance data resources. Use empty array if no changes are needed.").optional()}).describe("Modification instructions for the composition");import*as Qs from"zod/v3";import*as Ko from"zod/v3";var Hw=Ko.object({fieldId:Ko.string().describe("Public ID of the field to update. Must be defined in the content type of the parent entry."),fieldType:Ko.string().describe("The type of the fieldId as defined on the content type"),fromLocale:Ko.string().describe("When translating from a different locale, use the locale you are translating from. Omit for non-localized values.").optional(),locale:Ko.string().describe("Locale of the field value. Omit for non-localized values.").optional(),editInstructions:Ko.string().describe('Prompt that will be used to generate the field value. Omission will leave the value unchanged. To reset an overridden value to pattern default, say "reset override".').optional()}).describe("A value change to a field. Omit unchanged fields."),mk=Ko.object({type:Ko.string().describe("Content type of the entry. Must be registered with Uniform. Always include for creates. Omit otherwise.").optional(),slug:Ko.string().describe("Slug (human-readable identifier) of the entry. If the slug does not need to be changed, omit this field.").optional(),fieldUpdates:Ko.array(Hw).describe("Updates to the fields of the entry. Use empty array if no changes are needed.").optional(),localeUpdates:_c.optional(),dataResourceUpdates:Ko.array(wc).describe("Updates to the data resources of the entry. Use empty array if no changes are needed.").optional()}).describe("Modification instructions for the entry");var Ele=Hw.extend({overridable:Qs.enum(["yes","no"]).describe("Whether the parameter value set on the pattern definition is overridable by pattern consumers. Omit when no change is needed.").optional()}),gk=Qs.object({name:Qs.string().describe("Name of the entry pattern. If the name does not need to be changed, omit this field. Always include for creates.").optional(),type:Qs.string().describe("Content type of the entry pattern. Must be registered with Uniform. Always include for creates. Omit otherwise.").optional(),description:Qs.string().describe("Description of the entry pattern for authors. If the description does not need to be changed, omit this field.").optional(),fieldUpdates:Qs.array(Ele).describe("Updates to the fields of the entry pattern. Use empty array if no changes are needed.").optional(),localeUpdates:_c.optional()}).describe("Modification instructions for the entry pattern");import*as ro from"zod/v3";import{CANVAS_BLOCK_PARAM_TYPE as cDe}from"@uniformdev/canvas";import{getEffectivePropertyValue as uDe}from"@uniformdev/canvas";import{CANVAS_PERSONALIZATION_PARAM as dDe}from"@uniformdev/canvas";var Ld="uniformContentInternalReference";var wle="$p:";function Cx(t){return`${wle}${t}`}function hk({slotDefinition:t,slotSectionDefinition:e}){return{slotDefinition:{...t,allowedComponentsIndex:new Set(t?.allowedComponents??[]),maxComponents:t?.maxComponents??Number.MAX_VALUE,minComponents:t?.minComponents??0,allowAllPatternsOfAllowedTypes:!t?.patternsInAllowedComponents},slotSectionDefinition:e?{...e,specificTypesIndex:new Set(e?.specificTypes??[])}:void 0}}import{CANVAS_HYPOTHESIS_PARAM as dOe,CANVAS_LOCALIZATION_SLOT as fOe,CANVAS_LOCALIZATION_TYPE as pOe,CANVAS_PERSONALIZATION_ALGORITHM_PARAM as mOe,CANVAS_PERSONALIZATION_ALGORITHM_TYPE as gOe,CANVAS_PERSONALIZATION_EVENT_NAME_PARAM as hOe,CANVAS_PERSONALIZATION_TAKE_PARAM as vOe,CANVAS_PERSONALIZE_SLOT as yOe,CANVAS_PERSONALIZE_TYPE as bOe,CANVAS_SLOT_SECTION_GROUP_TYPE_PARAM as xOe,CANVAS_SLOT_SECTION_MAX_PARAM as COe,CANVAS_SLOT_SECTION_MIN_PARAM as SOe,CANVAS_SLOT_SECTION_NAME_PARAM as EOe,CANVAS_SLOT_SECTION_SLOT as wOe,CANVAS_SLOT_SECTION_SPECIFIC_PARAM as _Oe,CANVAS_SLOT_SECTION_TYPE as TOe,CANVAS_TEST_SLOT as $Oe,CANVAS_TEST_TYPE as NOe}from"@uniformdev/canvas";var _le={$personalization:{isNestableIntoItself:!0},$test:void 0,$localization:void 0,$loop:void 0,$slotSection:{isAutoAllowed:!0,isNestableIntoItself:!0,isOnlyAllowedInPatternEditor:!0}},vk=t=>_le[t];function Sx(t,{slotDefinition:e,slotSectionDefinition:n},r=!1){let o=Tle(t,e,r);return n?o?$le(t,n):!1:o}function Tle(t,e,n=!1){let r=vk(t.type);if(r?.isOnlyAllowedInPatternEditor&&!n)return!1;if(r?.isAutoAllowed||e.allowAllComponents)return!0;let o=e.allowedComponentsIndex.has(t.type);return e.allowAllPatternsOfAllowedTypes||!t._pattern?o:e.allowedComponentsIndex.has(Cx(t._pattern))||!1}function $le(t,e){return e.groupType==="inherit"||!e.groupType?!0:e.groupType==="specific"?t._pattern?e.specificTypesIndex.has(Cx(t._pattern)):e.specificTypesIndex.has(t.type):e.groupType==="except"?t._pattern?!e.specificTypesIndex.has(Cx(t._pattern)):!e.specificTypesIndex.has(t.type):!1}function Ex(t,e,n,r){return`ref-${t}-${e}`+(n?`-${n}`:"")+(r!==void 0&&r>-1?`(${r})`:"")}function yk(t,e={}){let{targetLocale:n,enabledLocales:r=[],isPatternParameter:o=!1}=e,i=n??(r.length>0?"${locale}":void 0);return{type:Ld,...o?{isPatternParameter:!0}:{},variables:{entryIds:t,...i?{locale:i}:{}}}}import{CANVAS_SLOT_SECTION_GROUP_TYPE_PARAM as Nle,CANVAS_SLOT_SECTION_MAX_PARAM as Dle,CANVAS_SLOT_SECTION_MIN_PARAM as Lle,CANVAS_SLOT_SECTION_NAME_PARAM as Ale,CANVAS_SLOT_SECTION_SLOT as Mle,CANVAS_SLOT_SECTION_SPECIFIC_PARAM as Ole,CANVAS_SLOT_SECTION_TYPE as Ile}from"@uniformdev/canvas";var Ww=({twee:t,parentNodeId:e,slotName:n,componentDefinitionsIndex:r})=>{let o=Kw({twee:t,parentNodeId:e,slotName:n,componentDefinitionsIndex:r});if(o)return hk(o)};function Kw({twee:t,parentNodeId:e,slotName:n,componentDefinitionsIndex:r}){let o=t.getNodeById(e);if(!o)return;if(n===Mle){let c=kle({node:o,twee:t}),u=t.getParentInfo(e);if(!u)return;let d=Kw({parentNodeId:u.parentId,slotName:u.parentName,twee:t,componentDefinitionsIndex:r});return d?{slotDefinition:d.slotDefinition,slotSectionDefinition:c}:void 0}let s=r[o.value.type]?.slots?.find(c=>c.id===n);if(!s)return;if(!s.inheritAllowedComponents)return{slotDefinition:s,slotSectionDefinition:void 0};let a=t.getParentInfo(e);if(!a)return{slotDefinition:s,slotSectionDefinition:void 0};let l=Kw({parentNodeId:a.parentId,slotName:a.parentName,twee:t,componentDefinitionsIndex:r});return l?{slotDefinition:l.slotDefinition,slotSectionDefinition:void 0}:{slotDefinition:s,slotSectionDefinition:void 0}}function kle({node:t,twee:e}){if(t.value.type!==Ile)return;let n=e.getNodeProperty(t.nodeId,Nle)?.value??"inherit",r=e.getNodeProperty(t.nodeId,Ale)?.value??"Slot Section",o=Number(e.getNodeProperty(t.nodeId,Lle)?.value),i=Number(e.getNodeProperty(t.nodeId,Dle)?.value),s=e.getNodeProperty(t.nodeId,Ole)?.value??[];return{groupType:n,name:r,specificTypes:s,min:o,max:i}}function _x({definition:t,lastUserChoice:e,currentValue:n}){if(t&&!t.localizable)return!1;if(n){if(n.locales&&wx(n.locales)||n.localesConditions&&wx(n.localesConditions))return!0;if(n.value!==void 0||n.conditions!==void 0)return!1}if(e!==void 0)return e;if(t)return!t.notLocalizedByDefault}function wx(t){return Array.isArray(t)?t.some(e=>wx(e)):t===void 0?!1:t===null||typeof t!="object"?!0:Object.values(t).some(e=>wx(e))}function Gw({twee:t,nodeId:e,currentEditorLocale:n,definition:r}){let o=t.getNodeById(e),i=o?.propertyValueLocalizability?.[r.id],s=t.getNodeProperty(e,r?.id),a=_x({lastUserChoice:i,currentValue:s,definition:r});if(o&&a!==void 0&&a!==(i??!1)&&t.updateNode({nodeId:e,updateMetadata:l=>{l.propertyValueLocalizability[r.id]=a},doNotSetDirty:!0}),a)return n}function bk({twee:t,nodeId:e,dataType:n,dataResourceName:r,dataResourceEdit:o}){if(!t.getNodeById(e))throw new Error(`Node with ID ${e} not found`);o.action==="resetOverride"?t.updateNode({nodeId:e,updateDataResources:[{type:"reset",name:r}]}):o.action==="setValue"&&t.updateNode({nodeId:e,updateDataResources:[{type:"set",name:r,value:{type:n,variables:o.newValue}}]})}import{CANVAS_ENRICHMENT_TAG_PARAM as Q8e,CANVAS_PERSONALIZATION_ALGORITHM_PARAM as eDe,CANVAS_PERSONALIZATION_PARAM as tDe,CANVAS_PERSONALIZE_SLOT as nDe,convertToBindExpression as rDe,createVariableReference as oDe,isSystemComponentDefinition as iDe}from"@uniformdev/canvas";var xk=Object.prototype.hasOwnProperty;function $r(t,e){var n,r;if(t===e)return!0;if(t&&e&&(n=t.constructor)===e.constructor){if(n===Date)return t.getTime()===e.getTime();if(n===RegExp)return t.toString()===e.toString();if(n===Array){if((r=t.length)===e.length)for(;r--&&$r(t[r],e[r]););return r===-1}if(!n||typeof t=="object"){r=0;for(n in t)if(xk.call(t,n)&&++r&&!xk.call(e,n)||!(n in e)||!$r(t[n],e[n]))return!1;return Object.keys(e).length===r}}return t!==t&&e!==e}function Tx(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}var Rle={read:function(t){return t[0]==='"'&&(t=t.slice(1,-1)),t.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(t){return encodeURIComponent(t).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function Yw(t,e){function n(o,i,s){if(!(typeof document>"u")){s=Tx({},e,s),typeof s.expires=="number"&&(s.expires=new Date(Date.now()+s.expires*864e5)),s.expires&&(s.expires=s.expires.toUTCString()),o=encodeURIComponent(o).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var a="";for(var l in s)s[l]&&(a+="; "+l,s[l]!==!0&&(a+="="+s[l].split(";")[0]));return document.cookie=o+"="+t.write(i,o)+a}}function r(o){if(!(typeof document>"u"||arguments.length&&!o)){for(var i=document.cookie?document.cookie.split("; "):[],s={},a=0;a<i.length;a++){var l=i[a].split("="),c=l.slice(1).join("=");try{var u=decodeURIComponent(l[0]);if(s[u]=t.read(c,u),o===u)break}catch{}}return o?s[o]:s}}return Object.create({set:n,get:r,remove:function(o,i){n(o,"",Tx({},i,{expires:-1}))},withAttributes:function(o){return Yw(this.converter,Tx({},this.attributes,o))},withConverter:function(o){return Yw(Tx({},this.converter,o),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}var Ple=Yw(Rle,{path:"/"});function x0(t){return{all:t=t||new Map,on:function(e,n){var r=t.get(e);r?r.push(n):t.set(e,[n])},off:function(e,n){var r=t.get(e);r&&(n?r.splice(r.indexOf(n)>>>0,1):t.set(e,[]))},emit:function(e,n){var r=t.get(e);r&&r.slice().map(function(o){o(n)}),(r=t.get("*"))&&r.slice().map(function(o){o(e,n)})}}}var wk=I(C0(),1);var Lk=I(C0(),1),Ak=I(C0(),1);var zle=t=>{throw TypeError(t)};var Qw=(t,e,n)=>e.has(t)||zle("Cannot "+n),fn=(t,e,n)=>(Qw(t,e,"read from private field"),n?n.call(t):e.get(t));var Sk=(t,e,n,r)=>(Qw(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n),E0=(t,e,n)=>(Qw(t,e,"access private method"),n);var jle="_",Vle;Vle=new WeakMap;var Ule,Hle;Ule=new WeakMap;Hle=new WeakMap;var Kle,Wle,Gle,Yle;Kle=new WeakMap;Wle=new WeakMap;Gle=new WeakMap;Yle=new WeakMap;function Zle(t,e){return`${t}${jle}${e}`}function qle(t,e){var n;if(typeof t>"u"||t===null)return!1;let r=Number(t);if(isNaN(r))return!1;switch((n=e?.op)!=null?n:"="){case"=":return r===e.rhs;case"!=":return r!==e.rhs;case">":return r>e.rhs;case"<":return r<e.rhs;default:return console.warn(`Unknown match type ${e.op} is false.`),!1}}function Jle(t,e){return`${t} ${Xle(e)}`}function Xle(t){return`${t.op} ${t.rhs}`}var Zw=Zle("$pvc","v"),Qle=({update:t,criteria:e,commands:n,onLogMessage:r})=>{var o,i;if(e.type!=="PVC")return{result:!1,changed:!1};let s=!!(t.state.url&&(!t.previousState||((o=t.state.url)==null?void 0:o.toString())!==((i=t.previousState.url)==null?void 0:i.toString()))),l=(t.visitor.sessionScores[Zw]||0)+1,c={result:!1,changed:s},u=n.some(d=>d.type==="modscoreS"&&d.data.dimension===Zw);return s&&!u&&n.push({type:"modscoreS",data:{dimension:Zw,delta:1}}),qle(l,e.match)&&(c.result=!0),r?.(["debug",203,{criteria:e,result:c,explanation:Jle(l,e.match)}]),c};Qle.alwaysExecute=!0;var ece;ece=new WeakMap;var Ek="ssc";var tce,nce,rce;tce=new WeakMap;nce=new WeakMap;rce=new WeakMap;var qw="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",QOe=qw.split(""),oce=new Array(123);for(let t=0;t<qw.length;t++)oce[qw.charCodeAt(t)]=t;var ice,sce,ace,lce;ice=new WeakMap;sce=new WeakMap;ace=new WeakMap;lce=new WeakMap;var cce,uce;cce=new WeakSet;uce=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};var dce=()=>({quirks:{},scores:{},sessionScores:{},tests:{},goals:{},consent:!1,controlGroup:!1,personalizeVariants:{}}),nIe=(0,wk.default)();var fce,pce;fce=new WeakSet;pce=function(t){return this.partitionKey?`${this.partitionKey}.${t}`:t};var _k="ufvisitor",Ad,e_,$x,yi,S0,Tk,mce,$k,gce,Jw,hce;Ad=new WeakMap;e_=new WeakMap;$x=new WeakMap;yi=new WeakMap;S0=new WeakSet;Tk=function(){return fn(this,e_).get(_k)};mce=function(t,e=!1){var n,r,o,i,s,a,l,c,u,d,f;let p=fn(this,S0,Tk),m=Date.now();E0(this,S0,Jw).call(this,t.scores),E0(this,S0,Jw).call(this,t.sessionScores),(r=(n=fn(this,yi)).decay)==null||r.call(n,{now:m,lastUpd:p?.updated,scores:t.scores,sessionScores:t.sessionScores,onLogMessage:fn(this,yi).onLogMessage});let g=!$r(p?.visitorData.scores,t.scores),h=!$r(p?.visitorData.sessionScores,t.sessionScores),v=!$r(p?.visitorData.quirks,t.quirks),y=!$r(p?.visitorData.tests,t.tests),b=!$r(p?.visitorData.goals,t.goals),S={updated:m,visitorData:t};if(E0(this,S0,$k).call(this),fn(this,e_).set(_k,S,!!t.consent),(i=(o=fn(this,yi)).onLogMessage)==null||i.call(o,["debug",102,t]),!e&&((g||h)&&fn(this,Ad).emit("scoresUpdated",t),v&&fn(this,Ad).emit("quirksUpdated",t),y&&fn(this,Ad).emit("testsUpdated",t),((s=p?.visitorData)==null?void 0:s.consent)!==t.consent&&fn(this,Ad).emit("consentUpdated",t),((a=p?.visitorData)==null?void 0:a.controlGroup)!==t.controlGroup&&(fn(this,Ad).emit("controlGroupUpdated",t),(u=(c=fn(this,yi)).onLogMessage)==null||u.call(c,["debug",104,(l=t.controlGroup)!=null?l:!1])),b)){let x=Object.keys((d=t.goals)!=null?d:{});for(let E=0;E<x.length;E++){let w=x[E];(f=p?.visitorData.goals)!=null&&f[w]||fn(this,Ad).emit("goalConverted",{goalId:w})}}};$k=function(){typeof document>"u"||!fn(this,yi).visitLifespan||(fn(this,$x)&&window.clearTimeout(fn(this,$x)),Sk(this,$x,window.setTimeout(()=>{this.data},fn(this,yi).visitLifespan+50)))};gce=function(t){let e=fn(this,yi).visitLifespan;return e?t.updated+e<Date.now():!1};Jw=function(t){var e,n;if(fn(this,yi).manifest)for(let r in t){let o=t[r],i=fn(this,yi).manifest.getDimensionByKey(r);i&&o>i.cap&&((n=(e=fn(this,yi)).onLogMessage)==null||n.call(e,["debug",110,{dim:r,score:o,cap:i.cap}]),t[r]=i.cap)}};hce=function(){var t,e,n;return{...dce(),consent:(t=fn(this,yi).defaultConsent)!=null?t:!1,controlGroup:(n=(e=fn(this,yi).manifest)==null?void 0:e.rollForControlGroup())!=null?n:!1}};var vce,yce,Nx,bce,xce,Cce,Sce,Ece,Dx,Xw,wce,Nk,_ce,Dk;vce=new WeakMap;yce=new WeakMap;Nx=new WeakMap;bce=new WeakMap;xce=new WeakMap;Cce=new WeakMap;Sce=new WeakMap;Ece=new WeakMap;Dx=new WeakMap;Xw=new WeakSet;wce=function(t){fn(this,Dx).emit("testResult",t)};Nk=async function(t){let e=this.manifest.computeGoals(t);e.length!==0&&await this.storage.updateData(e)};_ce=function(t){let e=E0(this,Xw,Dk).call(this,t);!$r(e,fn(this,Nx))&&(Sk(this,Nx,e),E0(this,Xw,Nk).call(this,{scores:fn(this,Nx),quirks:void 0}),fn(this,Dx).emit("scoresUpdated",e),fn(this,Dx).emit("log",["info",3,e]))};Dk=function(t){var e;let n={...t.scores};for(let r in t.sessionScores)n[r]=((e=n[r])!=null?e:0)+t.sessionScores[r];return n=this.manifest.computeAggregateDimensions(n),n};var iIe=(0,Lk.default)();var sIe=(0,Ak.default)();await Ym();var S1e=await(process.env.NODE_ENV!=="production"?jV().then(()=>zV):UV().then(()=>VV)),HV=S1e.createHeadlessEditor;await p4();await M4();await z4();await FW();await a3();await uG();await Ji();await rr();import{createVariableReference as K8e}from"@uniformdev/canvas";var Pu=I(Jn());dN();var gVe=I(H());Bg();var vVe=I(pN());Y1();var bVe=I(oN());jg();Vg();D3();var li=Pu.Fragment,O=function(e,n,r){return $f.call(n,"css")?Pu.jsx(ev,Q1(e,n),r):Pu.jsx(e,n,r)},ie=function(e,n,r){return $f.call(n,"css")?Pu.jsxs(ev,Q1(e,n),r):Pu.jsxs(e,n,r)};ne();ne();ne();ne();ne();function aY(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];t&&t.addEventListener&&t.addEventListener.apply(t,e)}function lY(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];t&&t.removeEventListener&&t.removeEventListener.apply(t,e)}var cY=typeof window<"u";var uY=I(H());var ks=I(H());function gN(t,e){e===void 0&&(e=0);var n=(0,ks.useRef)(!1),r=(0,ks.useRef)(),o=(0,ks.useRef)(t),i=(0,ks.useCallback)(function(){return n.current},[]),s=(0,ks.useCallback)(function(){n.current=!1,r.current&&clearTimeout(r.current),r.current=setTimeout(function(){n.current=!0,o.current()},e)},[e]),a=(0,ks.useCallback)(function(){n.current=null,r.current&&clearTimeout(r.current)},[]);return(0,ks.useEffect)(function(){o.current=t},[t]),(0,ks.useEffect)(function(){return s(),a},[e]),[i,a,s]}function O3(t,e,n){e===void 0&&(e=0),n===void 0&&(n=[]);var r=gN(t,e),o=r[0],i=r[1],s=r[2];return(0,uY.useEffect)(s,n),[o,i]}var Hg=I(H());var oCe=function(t){return t===void 0&&(t={laptopL:1440,laptop:1024,tablet:768}),function(){var e=(0,Hg.useState)(cY?window.innerWidth:0),n=e[0],r=e[1];(0,Hg.useEffect)(function(){var s=function(){r(window.innerWidth)};return s(),aY(window,"resize",s),function(){lY(window,"resize",s)}});var o=(0,Hg.useMemo)(function(){return Object.entries(t).sort(function(s,a){return s[1]>=a[1]?1:-1})},[t]),i=o.reduce(function(s,a){var l=a[0],c=a[1];return n>=c?l:s},o[0][0]);return i}},hN=oCe;ne();ne();ne();var a6e=I(H());ne();ne();function Nf(...t){}function tv(t,e){if(iCe(t)){let n=sCe(e)?e():e;return t(n)}return t}function iCe(t){return typeof t=="function"}function sCe(t){return typeof t=="function"}function ko(t,e){return typeof Object.hasOwn=="function"?Object.hasOwn(t,e):Object.prototype.hasOwnProperty.call(t,e)}function Ln(...t){return(...e)=>{for(let n of t)typeof n=="function"&&n(...e)}}function vN(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function yN(t,e){let n={...t};for(let r of e)ko(n,r)&&delete n[r];return n}function bN(t,e){let n={};for(let r of e)ko(t,r)&&(n[r]=t[r]);return n}function nv(t){return t}function dt(t,e){if(!t)throw typeof e!="string"?new Error("Invariant failed"):new Error(e)}function xN(t){return Object.keys(t)}function Ra(t,...e){let n=typeof t=="function"?t(...e):t;return n==null?!1:!n}function Rs(t){return t.disabled||t["aria-disabled"]===!0||t["aria-disabled"]==="true"}function Ro(t){let e={};for(let n in t)t[n]!==void 0&&(e[n]=t[n]);return e}function et(...t){for(let e of t)if(e!==void 0)return e}var dY=I(H(),1);function rv(t,e){typeof t=="function"?t(e):t&&(t.current=e)}function aCe(t){return!t||!(0,dY.isValidElement)(t)?!1:"ref"in t.props||"ref"in t}function fY(t){return aCe(t)?{...t.props}.ref||t.ref:null}function pY(t,e){let n={...t};for(let r in e){if(!ko(e,r))continue;if(r==="className"){let i="className";n[i]=t[i]?`${t[i]} ${e[i]}`:e[i];continue}if(r==="style"){let i="style";n[i]=t[i]?{...t[i],...e[i]}:e[i];continue}let o=e[r];if(typeof o=="function"&&r.startsWith("on")){let i=t[r];if(typeof i=="function"){n[r]=(...s)=>{o(...s),i(...s)};continue}}n[r]=o}return n}var Wl=lCe();function lCe(){var t;return typeof window<"u"&&!!((t=window.document)!=null&&t.createElement)}function wt(t){return t?"self"in t?t.document:t.ownerDocument||document:document}function Df(t){return t?"self"in t?t.self:wt(t).defaultView||window:self}function _i(t,e=!1){let{activeElement:n}=wt(t);if(!n?.nodeName)return null;if(ov(n)&&n.contentDocument)return _i(n.contentDocument.body,e);if(e){let r=n.getAttribute("aria-activedescendant");if(r){let o=wt(n).getElementById(r);if(o)return o}}return n}function Vt(t,e){return t===e||t.contains(e)}function ov(t){return t.tagName==="IFRAME"}function ci(t){let e=t.tagName.toLowerCase();return e==="button"?!0:e==="input"&&t.type?cCe.indexOf(t.type)!==-1:!1}var cCe=["button","color","file","image","reset","submit"];function iv(t){if(typeof t.checkVisibility=="function")return t.checkVisibility();let e=t;return e.offsetWidth>0||e.offsetHeight>0||t.getClientRects().length>0}function Po(t){try{let e=t instanceof HTMLInputElement&&t.selectionStart!==null,n=t.tagName==="TEXTAREA";return e||n||!1}catch{return!1}}function sv(t){return t.isContentEditable||Po(t)}function CN(t){if(Po(t))return t.value;if(t.isContentEditable){let e=wt(t).createRange();return e.selectNodeContents(t),e.toString()}return""}function SN(t){let e=0,n=0;if(Po(t))e=t.selectionStart||0,n=t.selectionEnd||0;else if(t.isContentEditable){let r=wt(t).getSelection();if(r?.rangeCount&&r.anchorNode&&Vt(t,r.anchorNode)&&r.focusNode&&Vt(t,r.focusNode)){let o=r.getRangeAt(0),i=o.cloneRange();i.selectNodeContents(t),i.setEnd(o.startContainer,o.startOffset),e=i.toString().length,i.setEnd(o.endContainer,o.endOffset),n=i.toString().length}}return{start:e,end:n}}function Kg(t,e){let n=["dialog","menu","listbox","tree","grid"],r=t?.getAttribute("role");return r&&n.indexOf(r)!==-1?r:e}function av(t,e){var n;let r={menu:"menuitem",listbox:"option",tree:"treeitem"},o=Kg(t);return o&&(n=r[o])!=null?n:e}function I3(t){if(!t)return null;let e=n=>n==="auto"||n==="scroll";if(t.clientHeight&&t.scrollHeight>t.clientHeight){let{overflowY:n}=getComputedStyle(t);if(e(n))return t}else if(t.clientWidth&&t.scrollWidth>t.clientWidth){let{overflowX:n}=getComputedStyle(t);if(e(n))return t}return I3(t.parentElement)||document.scrollingElement||document.body}function lv(t,e){let n=t.map((o,i)=>[i,o]),r=!1;return n.sort(([o,i],[s,a])=>{let l=e(i),c=e(a);return l===c||!l||!c?0:uCe(l,c)?(o>s&&(r=!0),-1):(o<s&&(r=!0),1)}),r?n.map(([o,i])=>i):t}function uCe(t,e){return!!(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)}function mY(){return Wl&&!!navigator.maxTouchPoints}function Wg(){return Wl?/mac|iphone|ipad|ipod/i.test(navigator.platform):!1}function Lf(){return Wl&&Wg()&&/apple/i.test(navigator.vendor)}function EN(){return Wl&&/firefox\//i.test(navigator.userAgent)}function wN(){return Wl&&navigator.platform.startsWith("Mac")&&!mY()}function k3(t){return!!(t.currentTarget&&!Vt(t.currentTarget,t.target))}function Zr(t){return t.target===t.currentTarget}function gY(t){let e=t.currentTarget;if(!e)return!1;let n=Wg();if(n&&!t.metaKey||!n&&!t.ctrlKey)return!1;let r=e.tagName.toLowerCase();return r==="a"||r==="button"&&e.type==="submit"||r==="input"&&e.type==="submit"}function hY(t){let e=t.currentTarget;if(!e)return!1;let n=e.tagName.toLowerCase();return t.altKey?n==="a"||n==="button"&&e.type==="submit"||n==="input"&&e.type==="submit":!1}function vY(t,e,n){let r=new Event(e,n);return t.dispatchEvent(r)}function Af(t,e){let n=new FocusEvent("blur",e),r=t.dispatchEvent(n),o={...e,bubbles:!0};return t.dispatchEvent(new FocusEvent("focusout",o)),r}function yY(t,e,n){let r=new KeyboardEvent(e,n);return t.dispatchEvent(r)}function _N(t,e){let n=new MouseEvent("click",e);return t.dispatchEvent(n)}function Fu(t,e){let n=e||t.currentTarget,r=t.relatedTarget;return!r||!Vt(n,r)}function Bu(t,e,n,r){let i=(a=>{if(r){let c=setTimeout(a,r);return()=>clearTimeout(c)}let l=requestAnimationFrame(a);return()=>cancelAnimationFrame(l)})(()=>{t.removeEventListener(e,s,!0),n()}),s=()=>{i(),n()};return t.addEventListener(e,s,{once:!0,capture:!0}),i}function Bn(t,e,n,r=window){let o=[];try{r.document.addEventListener(t,e,n);for(let s of Array.from(r.frames))o.push(Bn(t,e,n,s))}catch{}return()=>{try{r.document.removeEventListener(t,e,n)}catch{}for(let s of o)s()}}var dCe=I(H(),1),zn=I(H(),1),TN={...dCe},bY=TN.useId,iUe=TN.useDeferredValue,xY=TN.useInsertionEffect,ht=Wl?zn.useLayoutEffect:zn.useEffect;function P3(t){let e=(0,zn.useRef)(t);return ht(()=>{e.current=t}),e}function Oe(t){let e=(0,zn.useRef)(()=>{throw new Error("Cannot call an event handler while rendering.")});return xY?xY(()=>{e.current=t}):e.current=t,(0,zn.useCallback)((...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}function wY(t){let[e,n]=(0,zn.useState)(null);return ht(()=>{if(e==null||!t)return;let r=null;return t(o=>(r=o,e)),()=>{t(r)}},[e,t]),[e,n]}function gt(...t){return(0,zn.useMemo)(()=>{if(t.some(Boolean))return e=>{for(let n of t)rv(n,e)}},t)}function ui(t){if(bY){let r=bY();return t||r}let[e,n]=(0,zn.useState)(t);return ht(()=>{if(t||e)return;let r=Math.random().toString(36).slice(2,8);n(`id-${r}`)},[t,e]),t||e}function F3(t,e){let n=i=>{if(typeof i=="string")return i},[r,o]=(0,zn.useState)(()=>n(e));return ht(()=>{let i=t&&"current"in t?t.current:t;o(i?.tagName.toLowerCase()||n(e))},[t,e]),r}function zu(t,e){let n=(0,zn.useRef)(!1);(0,zn.useEffect)(()=>{if(n.current)return t();n.current=!0},e),(0,zn.useEffect)(()=>()=>{n.current=!1},[])}function _Y(){return(0,zn.useReducer)(()=>[],[])}function ar(t){return Oe(typeof t=="function"?t:()=>t)}function bn(t,e,n=[]){let r=(0,zn.useCallback)(o=>(t.wrapElement&&(o=t.wrapElement(o)),e(o)),[...n,t.wrapElement]);return{...t,wrapElement:r}}function Gg(t=!1,e){let[n,r]=(0,zn.useState)(null);return{portalRef:gt(r,e),portalNode:n,domReady:!t||n}}function B3(t,e,n){let r=t.onLoadedMetadataCapture,o=(0,zn.useMemo)(()=>Object.assign(()=>{},{...r,[e]:n}),[r,e,n]);return[r?.[e],{onLoadedMetadataCapture:o}]}var CY=!1;function Yg(){return(0,zn.useEffect)(()=>{CY||(Bn("mousemove",pCe,!0),Bn("mousedown",R3,!0),Bn("mouseup",R3,!0),Bn("keydown",R3,!0),Bn("scroll",R3,!0),CY=!0)},[]),Oe(()=>$N)}var $N=!1,SY=0,EY=0;function fCe(t){let e=t.movementX||t.screenX-SY,n=t.movementY||t.screenY-EY;return SY=t.screenX,EY=t.screenY,e||n||process.env.NODE_ENV==="test"}function pCe(t){fCe(t)&&($N=!0)}function R3(){$N=!1}var Fo=I(H(),1),Mf=I(Jn(),1);function Ee(t){let e=Fo.forwardRef((n,r)=>t({...n,ref:r}));return e.displayName=t.displayName||t.name,e}function ju(t,e){return Fo.memo(t,e)}function Te(t,e){let{wrapElement:n,render:r,...o}=e,i=gt(e.ref,fY(r)),s;if(Fo.isValidElement(r)){let a={...r.props,ref:i};s=Fo.cloneElement(r,pY(o,a))}else r?s=r(o):s=(0,Mf.jsx)(t,{...o});return n?n(s):s}function Ne(t){let e=(n={})=>t(n);return e.displayName=t.name,e}function yr(t=[],e=[]){let n=Fo.createContext(void 0),r=Fo.createContext(void 0),o=()=>Fo.useContext(n),i=(c=!1)=>{let u=Fo.useContext(r),d=o();return c?u:u||d},s=()=>{let c=Fo.useContext(r),u=o();if(!(c&&c===u))return u},a=c=>t.reduceRight((u,d)=>(0,Mf.jsx)(d,{...c,children:u}),(0,Mf.jsx)(n.Provider,{...c}));return{context:n,scopedContext:r,useContext:o,useScopedContext:i,useProviderContext:s,ContextProvider:a,ScopedContextProvider:c=>(0,Mf.jsx)(a,{...c,children:e.reduceRight((u,d)=>(0,Mf.jsx)(d,{...c,children:u}),(0,Mf.jsx)(r.Provider,{...c}))})}}var cv=yr(),TY=cv.useContext,dUe=cv.useScopedContext,fUe=cv.useProviderContext,$Y=cv.ContextProvider,NY=cv.ScopedContextProvider;var NN=I(H(),1),uv=yr([$Y],[NY]),Zg=uv.useContext,hUe=uv.useScopedContext,DY=uv.useProviderContext,Vu=uv.ContextProvider,qg=uv.ScopedContextProvider,LY=(0,NN.createContext)(void 0),AY=(0,NN.createContext)(void 0);var mCe={id:null};function MY(t,e,n=!1){let r=t.findIndex(o=>o.id===e);return[...t.slice(r+1),...n?[mCe]:[],...t.slice(0,r)]}function OY(t,e){return t.find(n=>e?!n.disabled&&n.id!==e:!n.disabled)}function Pa(t,e){return e&&t.item(e)||null}function IY(t){let e=[];for(let n of t){let r=e.find(o=>{var i;return((i=o[0])==null?void 0:i.rowId)===n.rowId});r?r.push(n):e.push([n])}return e}function kY(t,e=!1){if(Po(t))t.setSelectionRange(e?t.value.length:0,t.value.length);else if(t.isContentEditable){let n=wt(t).getSelection();n?.selectAllChildren(t),e&&n?.collapseToEnd()}}var DN=Symbol("FOCUS_SILENTLY");function RY(t){t[DN]=!0,t.focus({preventScroll:!0})}function PY(t){let e=t[DN];return delete t[DN],e}function Of(t,e,n){if(!e||e===n)return!1;let r=t.item(e.id);return!(!r||n&&r.element===n)}var z3=I(H(),1),gCe="div",LN=Ne(function({store:e,shouldRegisterItem:n=!0,getItem:r=nv,element:o,...i}){let s=TY();e=e||s;let a=ui(i.id),l=(0,z3.useRef)(o);return(0,z3.useEffect)(()=>{let c=l.current;if(!a||!c||!n)return;let u=r({id:a,element:c});return e?.renderItem(u)},[a,n,r,e]),i={...i,ref:gt(l,i.ref)},Ro(i)}),wUe=Ee(function(e){let n=LN(e);return Te(gCe,n)});var FY=I(H(),1),j3=(0,FY.createContext)(!0);var V3="input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], summary, iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])";function hCe(t){return Number.parseInt(t.getAttribute("tabindex")||"0",10)<0}function Ti(t){return!(!t.matches(V3)||!iv(t)||t.closest("[inert]"))}function Jg(t){if(!Ti(t)||hCe(t))return!1;if(!("form"in t)||!t.form||t.checked||t.type!=="radio")return!0;let e=t.form.elements.namedItem(t.name);if(!e||!("length"in e))return!0;let n=_i(t);return!n||n===t||!("form"in n)||n.form!==t.form||n.name!==t.name}function AN(t,e){let n=Array.from(t.querySelectorAll(V3));e&&n.unshift(t);let r=n.filter(Ti);return r.forEach((o,i)=>{if(ov(o)&&o.contentDocument){let s=o.contentDocument.body;r.splice(i,1,...AN(s))}}),r}function dv(t,e,n){let r=Array.from(t.querySelectorAll(V3)),o=r.filter(Jg);return e&&Jg(t)&&o.unshift(t),o.forEach((i,s)=>{if(ov(i)&&i.contentDocument){let a=i.contentDocument.body,l=dv(a,!1,n);o.splice(s,1,...l)}}),!o.length&&n?r:o}function BY(t,e,n){let[r]=dv(t,e,n);return r||null}function vCe(t,e,n,r){let o=_i(t),i=AN(t,e),s=i.indexOf(o),a=i.slice(s+1);return a.find(Jg)||(n?i.find(Jg):null)||(r?a[0]:null)||null}function U3(t,e){return vCe(document.body,!1,t,e)}function yCe(t,e,n,r){let o=_i(t),i=AN(t,e).reverse(),s=i.indexOf(o),a=i.slice(s+1);return a.find(Jg)||(n?i.find(Jg):null)||(r?a[0]:null)||null}function MN(t,e){return yCe(document.body,!1,t,e)}function zY(t){for(;t&&!Ti(t);)t=t.closest(V3);return t||null}function If(t){let e=_i(t);if(!e)return!1;if(e===t)return!0;let n=e.getAttribute("aria-activedescendant");return n?n===t.id:!1}function ts(t){let e=_i(t);if(!e)return!1;if(Vt(t,e))return!0;let n=e.getAttribute("aria-activedescendant");return!n||!("id"in t)?!1:n===t.id?!0:!!t.querySelector(`#${CSS.escape(n)}`)}function H3(t){!ts(t)&&Ti(t)&&t.focus()}function bCe(t){var e;let n=(e=t.getAttribute("tabindex"))!=null?e:"";t.setAttribute("data-tabindex",n),t.setAttribute("tabindex","-1")}function jY(t,e){let n=dv(t,e);for(let r of n)bCe(r)}function VY(t){let e=t.querySelectorAll("[data-tabindex]"),n=r=>{let o=r.getAttribute("data-tabindex");r.removeAttribute("data-tabindex"),o?r.setAttribute("tabindex",o):r.removeAttribute("tabindex")};t.hasAttribute("data-tabindex")&&n(t);for(let r of e)n(r)}function UY(t,e){"scrollIntoView"in t?(t.focus({preventScroll:!0}),t.scrollIntoView({block:"nearest",inline:"nearest",...e})):t.focus()}var $i=I(H(),1),xCe="div",HY=Lf(),CCe=["text","search","url","tel","email","password","number","date","month","week","time","datetime","datetime-local"],YY=Symbol("safariFocusAncestor");function ZY(t){return t?!!t[YY]:!1}function KY(t,e){t&&(t[YY]=e)}function SCe(t){let{tagName:e,readOnly:n,type:r}=t;return e==="TEXTAREA"&&!n||e==="SELECT"&&!n?!0:e==="INPUT"&&!n?CCe.includes(r):!!(t.isContentEditable||t.getAttribute("role")==="combobox"&&t.dataset.name)}function ECe(t){return"labels"in t?t.labels:null}function WY(t){return t.tagName.toLowerCase()==="input"&&t.type?t.type==="radio"||t.type==="checkbox":!1}function wCe(t){return t?t==="button"||t==="summary"||t==="input"||t==="select"||t==="textarea"||t==="a":!0}function _Ce(t){return t?t==="button"||t==="input"||t==="select"||t==="textarea":!0}function TCe(t,e,n,r,o){return t?e?n&&!r?-1:void 0:n?o:o||0:o}function ON(t,e){return Oe(n=>{t?.(n),!n.defaultPrevented&&e&&(n.stopPropagation(),n.preventDefault())})}var GY=!1,IN=!0;function $Ce(t){let e=t.target;e&&"hasAttribute"in e&&(e.hasAttribute("data-focus-visible")||(IN=!1))}function NCe(t){t.metaKey||t.ctrlKey||t.altKey||(IN=!0)}var Gl=Ne(function({focusable:e=!0,accessibleWhenDisabled:n,autoFocus:r,onFocusVisible:o,...i}){let s=(0,$i.useRef)(null);(0,$i.useEffect)(()=>{e&&(GY||(Bn("mousedown",$Ce,!0),Bn("keydown",NCe,!0),GY=!0))},[e]),HY&&(0,$i.useEffect)(()=>{if(!e)return;let k=s.current;if(!k||!WY(k))return;let z=ECe(k);if(!z)return;let W=()=>queueMicrotask(()=>k.focus());for(let R of z)R.addEventListener("mouseup",W);return()=>{for(let R of z)R.removeEventListener("mouseup",W)}},[e]);let a=e&&Rs(i),l=!!a&&!n,[c,u]=(0,$i.useState)(!1);(0,$i.useEffect)(()=>{e&&l&&c&&u(!1)},[e,l,c]),(0,$i.useEffect)(()=>{if(!e||!c)return;let k=s.current;if(!k||typeof IntersectionObserver>"u")return;let z=new IntersectionObserver(()=>{Ti(k)||u(!1)});return z.observe(k),()=>z.disconnect()},[e,c]);let d=ON(i.onKeyPressCapture,a),f=ON(i.onMouseDownCapture,a),p=ON(i.onClickCapture,a),m=i.onMouseDown,g=Oe(k=>{if(m?.(k),k.defaultPrevented||!e)return;let z=k.currentTarget;if(!HY||k3(k)||!ci(z)&&!WY(z))return;let W=!1,R=()=>{W=!0},F={capture:!0,once:!0};z.addEventListener("focusin",R,F);let K=zY(z.parentElement);KY(K,!0),Bu(z,"mouseup",()=>{z.removeEventListener("focusin",R,!0),KY(K,!1),!W&&H3(z)})}),h=(k,z)=>{if(z&&(k.currentTarget=z),!e)return;let W=k.currentTarget;W&&If(W)&&(o?.(k),!k.defaultPrevented&&(W.dataset.focusVisible="true",u(!0)))},v=i.onKeyDownCapture,y=Oe(k=>{if(v?.(k),k.defaultPrevented||!e||c||k.metaKey||k.altKey||k.ctrlKey||!Zr(k))return;let z=k.currentTarget;Bu(z,"focusout",()=>h(k,z))}),b=i.onFocusCapture,S=Oe(k=>{if(b?.(k),k.defaultPrevented||!e)return;if(!Zr(k)){u(!1);return}let z=k.currentTarget,W=()=>h(k,z);IN||SCe(k.target)?Bu(k.target,"focusout",W):u(!1)}),x=i.onBlur,E=Oe(k=>{x?.(k),e&&Fu(k)&&(k.currentTarget.removeAttribute("data-focus-visible"),u(!1))}),w=(0,$i.useContext)(j3),_=Oe(k=>{e&&r&&k&&w&&queueMicrotask(()=>{If(k)||Ti(k)&&k.focus()})}),$=F3(s),T=e&&wCe($),N=e&&_Ce($),P=i.style,B=(0,$i.useMemo)(()=>l?{pointerEvents:"none",...P}:P,[l,P]);return i={"data-focus-visible":e&&c||void 0,"data-autofocus":r||void 0,"aria-disabled":a||void 0,...i,ref:gt(s,_,i.ref),style:B,tabIndex:TCe(e,l,T,N,i.tabIndex),disabled:N&&l?!0:void 0,contentEditable:a?void 0:i.contentEditable,onKeyPressCapture:d,onClickCapture:p,onMouseDownCapture:f,onMouseDown:g,onKeyDownCapture:y,onFocusCapture:S,onBlur:E},Ro(i)}),BUe=Ee(function(e){let n=Gl(e);return Te(xCe,n)});var Uu=I(H(),1),DCe="button";function qY(t){if(!t.isTrusted)return!1;let e=t.currentTarget;return t.key==="Enter"?ci(e)||e.tagName==="SUMMARY"||e.tagName==="A":t.key===" "?ci(e)||e.tagName==="SUMMARY"||e.tagName==="INPUT"||e.tagName==="SELECT":!1}var LCe=Symbol("command"),fv=Ne(function({clickOnEnter:e=!0,clickOnSpace:n=!0,...r}){let o=(0,Uu.useRef)(null),[i,s]=(0,Uu.useState)(!1);(0,Uu.useEffect)(()=>{o.current&&s(ci(o.current))},[]);let[a,l]=(0,Uu.useState)(!1),c=(0,Uu.useRef)(!1),u=Rs(r),[d,f]=B3(r,LCe,!0),p=r.onKeyDown,m=Oe(v=>{p?.(v);let y=v.currentTarget;if(v.defaultPrevented||d||u||!Zr(v)||Po(y)||y.isContentEditable)return;let b=e&&v.key==="Enter",S=n&&v.key===" ",x=v.key==="Enter"&&!e,E=v.key===" "&&!n;if(x||E){v.preventDefault();return}if(b||S){let w=qY(v);if(b){if(!w){v.preventDefault();let{view:_,...$}=v,T=()=>_N(y,$);EN()?Bu(y,"keyup",T):queueMicrotask(T)}}else S&&(c.current=!0,w||(v.preventDefault(),l(!0)))}}),g=r.onKeyUp,h=Oe(v=>{if(g?.(v),v.defaultPrevented||d||u||v.metaKey)return;let y=n&&v.key===" ";if(c.current&&y&&(c.current=!1,!qY(v))){v.preventDefault(),l(!1);let b=v.currentTarget,{view:S,...x}=v;queueMicrotask(()=>_N(b,x))}});return r={"data-active":a||void 0,type:i?"button":void 0,...f,...r,ref:gt(o,r.ref),onKeyDown:m,onKeyUp:h},r=Gl(r),r}),YUe=Ee(function(e){let n=fv(e);return Te(DCe,n)});function kf(t,e){let n=t.__unstableInternals;return dt(n,"Invalid store"),n[e]}function lr(t,...e){let n=t,r=n,o=Symbol(),i=Nf,s=new Set,a=new Set,l=new Set,c=new Set,u=new Set,d=new WeakMap,f=new WeakMap,p=_=>(l.add(_),()=>l.delete(_)),m=()=>{let _=s.size,$=Symbol();s.add($);let T=()=>{s.delete($),!s.size&&i()};if(_)return T;let N=xN(n).map(k=>Ln(...e.map(z=>{var W;let R=(W=z?.getState)==null?void 0:W.call(z);if(R&&ko(R,k))return Tr(z,[k],F=>{E(k,F[k],!0)})}))),P=[];for(let k of l)P.push(k());let B=e.map(Xg);return i=Ln(...N,...P,...B),T},g=(_,$,T=c)=>(T.add($),f.set($,_),()=>{var N;(N=d.get($))==null||N(),d.delete($),f.delete($),T.delete($)}),h=(_,$)=>g(_,$),v=(_,$)=>(d.set($,$(n,n)),g(_,$)),y=(_,$)=>(d.set($,$(n,r)),g(_,$,u)),b=_=>lr(bN(n,_),w),S=_=>lr(yN(n,_),w),x=()=>n,E=(_,$,T=!1)=>{var N;if(!ko(n,_))return;let P=tv($,n[_]);if(P===n[_])return;if(!T)for(let W of e)(N=W?.setState)==null||N.call(W,_,P);let B=n;n={...n,[_]:P};let k=Symbol();o=k,a.add(_);let z=(W,R,F)=>{var K;let L=f.get(W),M=A=>F?F.has(A):A===_;(!L||L.some(M))&&((K=d.get(W))==null||K(),d.set(W,W(n,R)))};for(let W of c)z(W,B);queueMicrotask(()=>{if(o!==k)return;let W=n;for(let R of u)z(R,r,a);r=W,a.clear()})},w={getState:x,setState:E,__unstableInternals:{setup:p,init:m,subscribe:h,sync:v,batch:y,pick:b,omit:S}};return w}function di(t,...e){if(t)return kf(t,"setup")(...e)}function Xg(t,...e){if(t)return kf(t,"init")(...e)}function Qg(t,...e){if(t)return kf(t,"subscribe")(...e)}function Tr(t,...e){if(t)return kf(t,"sync")(...e)}function eh(t,...e){if(t)return kf(t,"batch")(...e)}function Rf(t,...e){if(t)return kf(t,"omit")(...e)}function kN(t,...e){if(t)return kf(t,"pick")(...e)}function Pf(...t){var e;let n={};for(let o of t){let i=(e=o?.getState)==null?void 0:e.call(o);i&&Object.assign(n,i)}let r=lr(n,...t);return Object.assign({},...t,r)}function Yl(t,e){if(process.env.NODE_ENV==="production"||!e)return;let n=Object.entries(t).filter(([i,s])=>i.startsWith("default")&&s!==void 0).map(([i])=>{var s;let a=i.replace("default","");return`${((s=a[0])==null?void 0:s.toLowerCase())||""}${a.slice(1)}`});if(!n.length)return;let r=e.getState();if(n.filter(i=>ko(r,i)).length)throw new Error(`Passing a store prop in conjunction with a default state is not supported.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/uniform-mcp",
3
- "version": "20.49.5-alpha.5+eb5527af63",
3
+ "version": "20.50.0",
4
4
  "description": "Uniform MCP Server",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "bin": {
@@ -30,8 +30,8 @@
30
30
  "dependencies": {
31
31
  "@modelcontextprotocol/sdk": "1.25.2",
32
32
  "@types/uuid": "9.0.4",
33
- "@uniformdev/canvas": "20.49.5-alpha.5+eb5527af63",
34
- "@uniformdev/project-map": "20.49.5-alpha.5+eb5527af63",
33
+ "@uniformdev/canvas": "20.50.0",
34
+ "@uniformdev/project-map": "20.50.0",
35
35
  "fast-json-patch": "3.1.1",
36
36
  "immer": "10.1.3",
37
37
  "linkedom": "0.18.12",
@@ -45,10 +45,10 @@
45
45
  "access": "public"
46
46
  },
47
47
  "devDependencies": {
48
- "@uniformdev/design-system": "20.49.5-alpha.5+eb5527af63",
49
- "@uniformdev/files": "20.49.5-alpha.5+eb5527af63",
50
- "@uniformdev/mesh-edgehancer-sdk": "20.49.5-alpha.5+eb5527af63",
51
- "@uniformdev/richtext": "20.49.5-alpha.5+eb5527af63"
48
+ "@uniformdev/design-system": "20.50.0",
49
+ "@uniformdev/files": "20.50.0",
50
+ "@uniformdev/mesh-edgehancer-sdk": "20.50.0",
51
+ "@uniformdev/richtext": "20.50.0"
52
52
  },
53
- "gitHead": "eb5527af632184a0269a47072f4ab4a498ce4d16"
53
+ "gitHead": "58f9d804c4f3e01abea765fa69202b540427e999"
54
54
  }