@uniformdev/uniform-mcp 20.42.2-alpha.7 → 20.43.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 +1 -1
  2. package/package.json +8 -8
package/dist/index.mjs CHANGED
@@ -237,7 +237,7 @@ See https://reactjs.org/docs/forms.html#controlled-components`),X=K.initialPage?
237
237
  The prompt should describe the information you are looking for.
238
238
  You may be detailed but do not use more than 100 words.
239
239
  When answering a user question, your prompt should be exactly that question.`)}),outputSchema:Hy.object({success:Hy.boolean(),error:Hy.string().optional().describe("The error message if the question was not answered successfully"),answerMarkdown:Hy.string().describe("The answer, in markdown format, from the Uniform docs chatbot")}),runsAt:"server",timeout:60,callable:!0};var Pne=q(Ane());var Ine=(0,Pne.default)(6),p6=class t extends Error{constructor(n,r,o,i,a,l){super(`${n}
240
- ${i}${a?" "+a:""} (${r} ${o}${l?` Request ID: ${l}`:""})`);this.errorMessage=n;this.fetchMethod=r;this.fetchUri=o;this.statusCode=i;this.statusText=a;this.requestId=l;Object.setPrototypeOf(this,t.prototype)}};var m6=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??Ine,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,l=await U8e(()=>o(e.toString(),{...n,signal:i,headers:{...n?.headers,...r}}));if(!l.ok){let c="";try{let d=await l.text();try{let f=JSON.parse(d);f.errorMessage?c=Array.isArray(f.errorMessage)?f.errorMessage.join(", "):f.errorMessage:c=d}catch{c=d}}catch{c="General error"}throw new p6(c,n?.method??"GET",e.toString(),l.status,l.statusText,t.getRequestId(l))}return n?.expectNoContent?{response:l,body:null}:{response:l,body:await l.json()}})}createUrl(e,n,r){let o=new URL(`${r??this.options.apiHost}${e}`);return Object.entries(n??{}).forEach(([i,a])=>{typeof a<"u"&&a!==null&&o.searchParams.append(i,Array.isArray(a)?a.join(","):a?.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 U8e(t){let n=5,r;for(;n>0&&(r=await t(),r.status===429);){let o=0;try{let l=r.clone(),c=l.headers.get("date"),d=c?new Date(c).getTime():void 0,m=(await l.json())?.info?.reset;typeof d=="number"&&typeof m=="number"&&(o=Math.max(0,Math.min(Math.round(1.1*(m-d)),1e4)))}catch{}let i=Math.pow(2,5-n)*333,a=i+Math.round(Math.random()*(i/2))*(Math.random()>.5?1:-1);await new Promise(l=>setTimeout(l,o+a)),n-=1}return r}var h6=class extends m6{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:a,userAgent:l}=this.telemetryContext;i&&(r["x-thread-id"]=i),a&&(r["x-uniform-client"]=a),l&&(r["user-agent"]=l)}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 Fne={name:"@uniformdev/uniform-mcp",version:"20.42.1",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"},sideEffects:!1,scripts:{build:"tsup",dev:"tsup --watch",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.12.0","@types/uuid":"9.0.4","@uniformdev/canvas":"workspace:*","@uniformdev/project-map":"workspace:*","fast-json-patch":"^3.1.1",immer:"10.1.1",jsdom:"24.1.3",uuid:"9.0.1",zod:"3.23.8"},files:["/dist"],publishConfig:{access:"public"},devDependencies:{"@types/jsdom":"^27.0.0","@uniformdev/design-system":"workspace:*","@uniformdev/files":"workspace:*","@uniformdev/mesh-edgehancer-sdk":"workspace:*","@uniformdev/richtext":"workspace:*",vitest:"3.2.4"}};var zne=process.env.UNIFORM_API_KEY,SP=process.env.UNIFORM_PROJECT_ID,Bne=process.env.UNIFORM_API_HOST??"https://uniform.app",H8e=process.env.UNIFORM_AI_API_HOST??"https://ai.uniform.global";if(!zne&&process.env.NODE_ENV!=="test")throw new Error("UNIFORM_API_KEY is not set");if(!SP&&process.env.NODE_ENV!=="test")throw new Error("UNIFORM_PROJECT_ID is not set");var et={apiHost:Bne,apiKey:zne,projectId:SP,aiApiHost:H8e,baseWebUrl:`${Bne}/projects/${SP}`};function Ug(){return new h6({...et,apiHost:et.aiApiHost,telemetryContext:{userAgent:`uniform-mcp/${Fne.version}`,uniformClient:"mcp"}})}function Vne(t){t.tool("askQuestion","Ask the Uniform Docs assistant, Una, questions about Uniform features, usage, and best practices",Mne.inputSchema.shape,async e=>{let r=await Ug().invoke("askQuestion",e);return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}})}import{autoFixParameterGroups as Kne,CanvasClient as lLe}from"@uniformdev/canvas";import*as C6 from"zod";import W8e from"fast-json-patch";function g6(t,e){return W8e.applyPatch(t,e).newDocument}import*as Zc from"zod";var v6=Zc.array(Zc.object({op:Zc.enum(["add","remove","replace"]),path:Zc.string().describe("The JSON path to patch"),value:Zc.unknown().describe("The value to patch - for remove, leave this blank")}));function K8e(t){return Array.isArray(t)&&t.length>0}function Une(t){return!!t&&typeof t=="object"&&"type"in t}function jne(t){return typeof t=="object"&&t!==null&&"root"in t&&Une(t.root)}function jg(t){return"children"in t&&K8e(t.children)}var G8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var Y8e=({context:t,renderChildren:e})=>{if(!jg(t.currentNode))return"";let n=e(t.currentNode.children);return n.endsWith(" ")?n:`${n} `};var Z8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var q8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var J8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var X8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var Q8e=({context:t})=>t.currentNode.text;var eLe=()=>" ";var tLe=()=>" ",nLe=new Map([["text",Q8e],["tab",eLe],["linebreak",tLe],["paragraph",Z8e],["listitem",Y8e],["heading",G8e],["table",q8e],["tablecell",J8e],["tablerow",X8e]]),rLe=t=>{let e=nLe.get(t.currentNode.type);return e||(({context:n,renderChildren:r})=>jg(n.currentNode)?r(n.currentNode.children):"")};function oLe(t,e){let n=[];return e?.ancestorNodes&&(n=n.concat(e.ancestorNodes)),e?.currentNode&&n.unshift(e.currentNode),{...e??{},currentNode:t,ancestorNodes:n}}function wP(t,e){var n;if(!Une(t))return"";let r=oLe(t,e),o=(n=r.resolveRenderer)==null?void 0:n.call(r,r);if(typeof o>"u")o=rLe(r);else if(o===null)return"";let i=a=>iLe(a,r);if(o){let a=o({context:r,renderChildren:i});return r.ancestorNodes.length>0?a:a.trim()}else throw new Error(`There is no renderer for node type: ${r.currentNode.type}`)}function iLe(t,e){return Array.isArray(t)?t.map(n=>wP(n,e)).join(""):""}var aLe=[{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"}],sLe=[{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 y6={required:!1,formatting:{builtIn:sLe.map(t=>t.type)},elements:{builtIn:aLe.map(t=>t.type)},elementsConfig:{asset:{allowedTypes:["image"]}}};import*as jo from"zod";import*as qn from"zod";var b6=qn.object({name:qn.string().describe('Title-cased display name. Ex: "Headline"'),id:qn.string().describe("The public ID. Must be unique within the current entity fields/parameters."),type:qn.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:qn.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:qn.boolean().describe("Whether values are stored as locale-specific"),typeConfig:qn.object({allowedTypes:qn.array(qn.enum(["image","video","audio","other"])).optional().describe("The types of asset allowed. ONLY applies when type=asset, omit for other types"),options:qn.array(qn.object({text:qn.string().describe("The text to display to the author"),value:qn.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:qn.boolean().optional().describe("Whether an author must enter a value for this property"),min:qn.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:qn.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:qn.array(qn.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:qn.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:qn.array(qn.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:qn.boolean().optional().describe("When type=group, this is whether the group is collapsed by default."),schema:qn.any().describe("When type=json, this is an optional JSON schema the property value must follow. Omit for all other types.")}).optional()});var Hne=jo.object({name:jo.string().describe('Title-cased display name of the component. Ex: "Hero"'),id:jo.string().describe("Public ID of the component, the camelCase version of name, using only alphanumeric characters"),description:jo.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:jo.boolean().describe("True if the component can have pages/compositions created from it. False if it is a part of a page."),parameters:jo.array(b6).describe("The properties of the component. The key is the publicId of the property.").optional(),slots:jo.array(jo.object({name:jo.string().describe('Title-cased display name of the slot. Ex: "Content"'),id:jo.string().describe("The public id of the slot. Must be unique within this component's slots."),allowedComponents:jo.array(jo.string()).describe("The components public IDs allowed in the slot."),minComponents:jo.number().describe("The minimum number of components allowed in the slot. Omit for no minimum.").min(0).optional(),maxComponents:jo.number().describe("The maximum number of components allowed in the slot. Omit for no maximum.").min(1).optional(),inheritAllowedComponents:jo.boolean().describe("Set to false")})).describe("The slots of the component. The key is the publicId of the slot.").optional()});function Wne(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 x6(t){return`${et.baseWebUrl}/dashboards/canvas/components/${t}`}function Wy(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=y6;continue}r.typeConfig={...y6,required:r.typeConfig.required??y6.required}}}var uLe={action:C6.enum(["create","update","delete"]).describe("The action to perform"),publicId:C6.string().describe("Public ID of the component, the camelCase version of name, using only alphanumeric characters"),component:Hne.describe("Full component definition to create. Omit for update or delete.").optional(),patches:v6.describe("JSON patch to apply to the existing component definition. Omit for create or delete.").optional()};function Gne(t){t.tool("componentAction","Creates, updates, or deletes a Uniform Component definition (or Composition definition)",uLe,async({publicId:e,action:n,component:r,patches:o})=>{let i=new lLe(et),a=!1;if(n==="create"){if(!r)throw new Error("Component definition is required for create");let l=Wne(r);l.parameters&&(a=Kne(l.parameters),Wy(l.parameters)),await i.updateComponentDefinition({componentDefinition:l})}if(n==="update"){if(!o)throw new Error("Patches are required for update");let l=await i.getComponentDefinitions({componentId:e});if(!l.componentDefinitions.length)throw new Error(`Component with public ID ${e} does not exist, try creating it instead`);let c=l.componentDefinitions[0],d=c.parameters?.filter(m=>m.type==="richText").map(m=>m.id),f=g6(c,o);if(f.parameters){a=Kne(f.parameters);let m=f.parameters?.filter(h=>h.type==="richText").map(h=>h.id).filter(h=>!d?.includes(h));Wy(f.parameters,m)}await i.updateComponentDefinition({componentDefinition:f})}return n==="delete"&&await i.removeComponentDefinition({componentId:e}),{content:[{type:"text",text:JSON.stringify({success:!0,editUrl:x6(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 Yne}from"@uniformdev/canvas";import*as Zne from"zod";var cLe={id:Zne.string()};function qne(t){t.tool("componentList","Lists all Uniform Component definitions",async()=>{let r=(await new Yne(et).getComponentDefinitions({includeSystem:!0})).componentDefinitions.map(o=>({id:o.id,name:o.name,type:o.canBeComposition?"composition":"component",description:o.description,editUrl:x6(o.id)}));return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}),t.tool("componentGet","Gets a Uniform Component definition details (slots, parameters, etc.)",cLe,async({id:e})=>{let r=await new Yne(et).getComponentDefinitions({componentId:e,includeSystem:!0});return{content:[{type:"text",text:JSON.stringify(r.componentDefinitions[0],null,2)}]}})}import*as Kt from"zod";import*as Ky from"zod";var mm=Ky.object({componentId:Ky.string().describe("ID of the component pattern instance the data resource belongs to - can be created in the same call to this tool"),dataResourceName:Ky.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:Ky.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 dLe=Kt.object({parentComponentId:Kt.string().describe("ID of the component the slot belongs to"),slotName:Kt.string().describe("Public ID of the target slot"),slotIndex:Kt.number().describe("Index to insert the new component at. Omit for append.").optional(),newComponentInstanceUuid:Kt.string().uuid().describe("UUID of the new component to create. You MUST generate a valid unique UUID using the `createUuid` tool."),instanceType:Kt.enum(["component","componentPattern"]),componentType:Kt.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:Kt.string().describe("UUID of the component pattern definition to insert. Component pattern must be registered with Uniform. Omit when inserting a component instance.").optional()}),S6=Kt.object({componentId:Kt.string().describe("ID of the component the parameter belongs to - can be created in the same call to this tool"),parameterId:Kt.string().describe("Public ID of the parameter to update. Must be defined in the component type of the parent componentId"),parameterType:Kt.string().describe("The type of the parameterId as defined on the component definition"),fromLocale:Kt.string().describe("When translating from a different locale, use the locale you are translating from. Omit for non-localized values.").optional(),locale:Kt.string().describe("Locale of the parameter value. Omit for non-localized values.").optional(),editInstructions:Kt.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."),w6=Kt.object({createComponentInstances:Kt.array(dLe).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:Kt.array(Kt.object({componentId:Kt.string().describe("Existing component ID to move. Cannot be root component."),newParentComponentId:Kt.string(),newSlotName:Kt.string().describe("Destination slot to move to"),newSlotIndex:Kt.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:Kt.array(Kt.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:Kt.array(Kt.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:Kt.array(mm).describe("Updates to pattern data resources. Use empty array if no changes are needed.").optional()}),hm=Kt.object({enableLocales:Kt.array(Kt.string()).describe("Locales to enable. Omit for no change.").optional(),disableLocales:Kt.array(Kt.string()).describe("Locales to disable. Existing data in disabled locales will be lost. Omit for no change.").optional()}),fLe=Kt.object({summary:Kt.string().describe("Short summary of the edit that was made.").optional(),success:Kt.boolean()}),Dct=Kt.object({success:Kt.boolean().describe("Whether all actions were successful"),actionsTaken:Kt.array(fLe).describe("Array of individual actions that were taken")});import*as Tf from"zod";var pLe=S6.extend({overridable:Tf.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()}),Jne=w6.extend({name:Tf.string().describe("Name of the pattern. If the name does not need to be changed, omit this field. Always include for creates.").optional(),type:Tf.string().describe("Component definition type of the pattern. Must be registered with Uniform. Always include for creates. Omit otherwise.").optional(),description:Tf.string().describe("Description of the pattern for authors. If the description does not need to be changed, omit this field.").optional(),parameterUpdates:Tf.array(pLe).describe("Updates to the parameters of the pattern. Use empty array if no changes are needed.").optional(),dataResourceUpdates:Tf.array(mm).describe("Updates to the pattern instance data resources. Use empty array if no changes are needed.").optional(),localeUpdates:hm.optional()}).describe("Modification instructions for the pattern");import*as gm from"zod";var Xne=gm.object({...w6.shape,name:gm.string().describe("Name of the composition. If the name does not need to be changed, omit this field. Always include for creates.").optional(),type:gm.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:gm.array(S6).describe("Updates to the parameters of the pattern. Use empty array if no changes are needed.").optional(),localeUpdates:hm.optional(),dataResourceUpdates:gm.array(mm).describe("Updates to pattern instance data resources. Use empty array if no changes are needed.").optional()}).describe("Modification instructions for the composition");import*as qc from"zod";import*as Ns from"zod";var EP=Ns.object({fieldId:Ns.string().describe("Public ID of the field to update. Must be defined in the content type of the parent entry."),fieldType:Ns.string().describe("The type of the fieldId as defined on the content type"),fromLocale:Ns.string().describe("When translating from a different locale, use the locale you are translating from. Omit for non-localized values.").optional(),locale:Ns.string().describe("Locale of the field value. Omit for non-localized values.").optional(),editInstructions:Ns.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."),Qne=Ns.object({type:Ns.string().describe("Content type of the entry. Must be registered with Uniform. Always include for creates. Omit otherwise.").optional(),slug:Ns.string().describe("Slug (human-readable identifier) of the entry. If the slug does not need to be changed, omit this field.").optional(),fieldUpdates:Ns.array(EP).describe("Updates to the fields of the entry. Use empty array if no changes are needed.").optional(),localeUpdates:hm.optional(),dataResourceUpdates:Ns.array(mm).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 mLe=EP.extend({overridable:qc.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()}),ere=qc.object({name:qc.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:qc.string().describe("Content type of the entry pattern. Must be registered with Uniform. Always include for creates. Omit otherwise.").optional(),description:qc.string().describe("Description of the entry pattern for authors. If the description does not need to be changed, omit this field.").optional(),fieldUpdates:qc.array(mLe).describe("Updates to the fields of the entry pattern. Use empty array if no changes are needed.").optional(),localeUpdates:hm.optional()}).describe("Modification instructions for the entry pattern");import*as Ki from"zod";import{CANVAS_BLOCK_PARAM_TYPE as Aat}from"@uniformdev/canvas";import{getEffectivePropertyValue as Pat}from"@uniformdev/canvas";import{CANVAS_PERSONALIZATION_PARAM as Iat}from"@uniformdev/canvas";var Hg="uniformContentInternalReference";var hLe="$p:";function tre(t){return`${hLe}${t}`}function TP(t){return{...t,allowedComponentsIndex:new Set(t?.allowedComponents??[]),maxComponents:t?.maxComponents??Number.MAX_VALUE,minComponents:t?.minComponents??0,allowAllPatternsOfAllowedTypes:!t?.patternsInAllowedComponents}}import{CANVAS_LOCALIZATION_SLOT as Wct,CANVAS_LOCALIZATION_TYPE as Kct,CANVAS_PERSONALIZATION_ALGORITHM_PARAM as Gct,CANVAS_PERSONALIZATION_ALGORITHM_TYPE as Yct,CANVAS_PERSONALIZATION_EVENT_NAME_PARAM as Zct,CANVAS_PERSONALIZATION_TAKE_PARAM as qct,CANVAS_PERSONALIZE_SLOT as Jct,CANVAS_PERSONALIZE_TYPE as Xct,CANVAS_SLOT_SECTION_SLOT as Qct,CANVAS_SLOT_SECTION_TYPE as edt,CANVAS_TEST_SLOT as tdt,CANVAS_TEST_TYPE as ndt}from"@uniformdev/canvas";var gLe={$personalization:{isNestableIntoItself:!0},$test:void 0,$localization:void 0,$loop:void 0,$slotSection:{isAutoAllowed:!0,isNestableIntoItself:!0,isOnlyAllowedInPatternEditor:!0}},nre=t=>gLe[t];function E6(t,e,n=!1){let r=nre(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(tre(t._pattern))||!1}var T6=({twee:t,parentSlotDefinition:e,nodeId:n,componentDefinitionsIndex:r})=>{if(!e.inheritAllowedComponents)return e;let o=t.getParentInfo(n);if(!o)return;let i=r[o.value.type]?.slots?.find(({id:a})=>a===o.parentName);if(i)return T6({parentSlotDefinition:i,nodeId:o.parentId,twee:t,componentDefinitionsIndex:r})};function _6(t,e,n,r){return`ref-${t}-${e}`+(n?`-${n}`:"")+(r!==void 0&&r>-1?`(${r})`:"")}function rre(t,e={}){let{targetLocale:n,enabledLocales:r=[],isPatternParameter:o=!1}=e,i=n??(r.length>0?"${locale}":void 0);return{type:Hg,...o?{isPatternParameter:!0}:{},variables:{entryIds:t,...i?{locale:i}:{}}}}function $6({definition:t,lastUserChoice:e,currentValue:n}){if(t&&!t.localizable)return!1;if(n){if(n.locales&&D6(n.locales)||n.localesConditions&&D6(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 D6(t){return Array.isArray(t)?t.some(e=>D6(e)):t===void 0?!1:t===null||typeof t!="object"?!0:Object.values(t).some(e=>D6(e))}function _P({twee:t,nodeId:e,currentEditorLocale:n,definition:r}){let o=t.getNodeById(e),i=o?.propertyValueLocalizability?.[r.id],a=t.getNodeProperty(e,r?.id),l=$6({lastUserChoice:i,currentValue:a,definition:r});if(o&&l!==void 0&&l!==(i??!1)&&t.updateNode({nodeId:e,updateMetadata:c=>{c.propertyValueLocalizability[r.id]=l},doNotSetDirty:!0}),l)return n}function ore({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 _at,CANVAS_PERSONALIZATION_ALGORITHM_PARAM as Dat,CANVAS_PERSONALIZATION_PARAM as $at,CANVAS_PERSONALIZE_SLOT as Nat,convertToBindExpression as Lat,createVariableReference as Mat,isSystemComponentDefinition as Rat}from"@uniformdev/canvas";var ire=Object.prototype.hasOwnProperty;function sa(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--&&sa(t[r],e[r]););return r===-1}if(!n||typeof t=="object"){r=0;for(n in t)if(ire.call(t,n)&&++r&&!ire.call(e,n)||!(n in e)||!sa(t[n],e[n]))return!1;return Object.keys(e).length===r}}return t!==t&&e!==e}function N6(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 vLe={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 DP(t,e){function n(o,i,a){if(!(typeof document>"u")){a=N6({},e,a),typeof a.expires=="number"&&(a.expires=new Date(Date.now()+a.expires*864e5)),a.expires&&(a.expires=a.expires.toUTCString()),o=encodeURIComponent(o).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var l="";for(var c in a)a[c]&&(l+="; "+c,a[c]!==!0&&(l+="="+a[c].split(";")[0]));return document.cookie=o+"="+t.write(i,o)+l}}function r(o){if(!(typeof document>"u"||arguments.length&&!o)){for(var i=document.cookie?document.cookie.split("; "):[],a={},l=0;l<i.length;l++){var c=i[l].split("="),d=c.slice(1).join("=");try{var f=decodeURIComponent(c[0]);if(a[f]=t.read(d,f),o===f)break}catch{}}return o?a[o]:a}}return Object.create({set:n,get:r,remove:function(o,i){n(o,"",N6({},i,{expires:-1}))},withAttributes:function(o){return DP(this.converter,N6({},this.attributes,o))},withConverter:function(o){return DP(N6({},this.converter,o),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}var yLe=DP(vLe,{path:"/"});function FS(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 ure=q(BS(),1);var hre=q(BS(),1),gre=q(BS(),1);var CLe=t=>{throw TypeError(t)};var RP=(t,e,n)=>e.has(t)||CLe("Cannot "+n),mr=(t,e,n)=>(RP(t,e,"read from private field"),n?n.call(t):e.get(t));var sre=(t,e,n,r)=>(RP(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n),VS=(t,e,n)=>(RP(t,e,"access private method"),n);var SLe="_",wLe;wLe=new WeakMap;var ELe,TLe;ELe=new WeakMap;TLe=new WeakMap;var _Le,DLe,$Le,NLe;_Le=new WeakMap;DLe=new WeakMap;$Le=new WeakMap;NLe=new WeakMap;function LLe(t,e){return`${t}${SLe}${e}`}function MLe(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 RLe(t,e){return`${t} ${OLe(e)}`}function OLe(t){return`${t.op} ${t.rhs}`}var $P=LLe("$pvc","v"),kLe=({update:t,criteria:e,commands:n,onLogMessage:r})=>{var o,i;if(e.type!=="PVC")return{result:!1,changed:!1};let a=!!(t.state.url&&(!t.previousState||((o=t.state.url)==null?void 0:o.toString())!==((i=t.previousState.url)==null?void 0:i.toString()))),c=(t.visitor.sessionScores[$P]||0)+1,d={result:!1,changed:a},f=n.some(m=>m.type==="modscoreS"&&m.data.dimension===$P);return a&&!f&&n.push({type:"modscoreS",data:{dimension:$P,delta:1}}),MLe(c,e.match)&&(d.result=!0),r?.(["debug",203,{criteria:e,result:d,explanation:RLe(c,e.match)}]),d};kLe.alwaysExecute=!0;var ALe;ALe=new WeakMap;var lre="ssc";var PLe,ILe,FLe;PLe=new WeakMap;ILe=new WeakMap;FLe=new WeakMap;var NP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Edt=NP.split(""),BLe=new Array(123);for(let t=0;t<NP.length;t++)BLe[NP.charCodeAt(t)]=t;var zLe,VLe,ULe,jLe;zLe=new WeakMap;VLe=new WeakMap;ULe=new WeakMap;jLe=new WeakMap;var HLe,WLe;HLe=new WeakSet;WLe=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};var KLe=()=>({quirks:{},scores:{},sessionScores:{},tests:{},goals:{},consent:!1,controlGroup:!1,personalizeVariants:{}}),Ddt=(0,ure.default)();var GLe,YLe;GLe=new WeakSet;YLe=function(t){return this.partitionKey?`${this.partitionKey}.${t}`:t};var cre="ufvisitor",Wg,OP,L6,gl,zS,dre,ZLe,fre,qLe,LP,JLe;Wg=new WeakMap;OP=new WeakMap;L6=new WeakMap;gl=new WeakMap;zS=new WeakSet;dre=function(){return mr(this,OP).get(cre)};ZLe=function(t,e=!1){var n,r,o,i,a,l,c,d,f,m,h;let g=mr(this,zS,dre),y=Date.now();VS(this,zS,LP).call(this,t.scores),VS(this,zS,LP).call(this,t.sessionScores),(r=(n=mr(this,gl)).decay)==null||r.call(n,{now:y,lastUpd:g?.updated,scores:t.scores,sessionScores:t.sessionScores,onLogMessage:mr(this,gl).onLogMessage});let b=!sa(g?.visitorData.scores,t.scores),S=!sa(g?.visitorData.sessionScores,t.sessionScores),C=!sa(g?.visitorData.quirks,t.quirks),w=!sa(g?.visitorData.tests,t.tests),E=!sa(g?.visitorData.goals,t.goals),_={updated:y,visitorData:t};if(VS(this,zS,fre).call(this),mr(this,OP).set(cre,_,!!t.consent),(i=(o=mr(this,gl)).onLogMessage)==null||i.call(o,["debug",102,t]),!e&&((b||S)&&mr(this,Wg).emit("scoresUpdated",t),C&&mr(this,Wg).emit("quirksUpdated",t),w&&mr(this,Wg).emit("testsUpdated",t),((a=g?.visitorData)==null?void 0:a.consent)!==t.consent&&mr(this,Wg).emit("consentUpdated",t),((l=g?.visitorData)==null?void 0:l.controlGroup)!==t.controlGroup&&(mr(this,Wg).emit("controlGroupUpdated",t),(f=(d=mr(this,gl)).onLogMessage)==null||f.call(d,["debug",104,(c=t.controlGroup)!=null?c:!1])),E)){let D=Object.keys((m=t.goals)!=null?m:{});for(let $=0;$<D.length;$++){let R=D[$];(h=g?.visitorData.goals)!=null&&h[R]||mr(this,Wg).emit("goalConverted",{goalId:R})}}};fre=function(){typeof document>"u"||!mr(this,gl).visitLifespan||(mr(this,L6)&&window.clearTimeout(mr(this,L6)),sre(this,L6,window.setTimeout(()=>{this.data},mr(this,gl).visitLifespan+50)))};qLe=function(t){let e=mr(this,gl).visitLifespan;return e?t.updated+e<Date.now():!1};LP=function(t){var e,n;if(mr(this,gl).manifest)for(let r in t){let o=t[r],i=mr(this,gl).manifest.getDimensionByKey(r);i&&o>i.cap&&((n=(e=mr(this,gl)).onLogMessage)==null||n.call(e,["debug",110,{dim:r,score:o,cap:i.cap}]),t[r]=i.cap)}};JLe=function(){var t,e,n;return{...KLe(),consent:(t=mr(this,gl).defaultConsent)!=null?t:!1,controlGroup:(n=(e=mr(this,gl).manifest)==null?void 0:e.rollForControlGroup())!=null?n:!1}};var XLe,QLe,M6,eMe,tMe,nMe,rMe,oMe,R6,MP,iMe,pre,aMe,mre;XLe=new WeakMap;QLe=new WeakMap;M6=new WeakMap;eMe=new WeakMap;tMe=new WeakMap;nMe=new WeakMap;rMe=new WeakMap;oMe=new WeakMap;R6=new WeakMap;MP=new WeakSet;iMe=function(t){mr(this,R6).emit("testResult",t)};pre=async function(t){let e=this.manifest.computeGoals(t);e.length!==0&&await this.storage.updateData(e)};aMe=function(t){let e=VS(this,MP,mre).call(this,t);!sa(e,mr(this,M6))&&(sre(this,M6,e),VS(this,MP,pre).call(this,{scores:mr(this,M6),quirks:void 0}),mr(this,R6).emit("scoresUpdated",e),mr(this,R6).emit("log",["info",3,e]))};mre=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 Ldt=(0,hre.default)();var Mdt=(0,gre.default)();await ab();var AFe=await(process.env.NODE_ENV!=="production"?Yue().then(()=>Gue):que().then(()=>Zue)),Jue=AFe.createHeadlessEditor;await t$();await l$();await g$();await sfe();await B$();await kfe();await yd();await pi();import{createVariableReference as yat}from"@uniformdev/canvas";var ih=q(_o());Dpe();var v0t=q(re());Vb();var b0t=q($V());hw();var C0t=q(xV());jb();Hb();sN();var Zs=ih.Fragment;function W(t,e,n){return xw.call(e,"css")?ih.jsx(_V,TV(t,e),n):ih.jsx(t,e,n)}function De(t,e,n){return xw.call(e,"css")?ih.jsxs(_V,TV(t,e),n):ih.jsxs(t,e,n)}we();we();we();we();we();function Mpe(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];t&&t.addEventListener&&t.addEventListener.apply(t,e)}function Rpe(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];t&&t.removeEventListener&&t.removeEventListener.apply(t,e)}var Ope=typeof window<"u";var kpe=q(re());var cc=q(re());function LV(t,e){e===void 0&&(e=0);var n=(0,cc.useRef)(!1),r=(0,cc.useRef)(),o=(0,cc.useRef)(t),i=(0,cc.useCallback)(function(){return n.current},[]),a=(0,cc.useCallback)(function(){n.current=!1,r.current&&clearTimeout(r.current),r.current=setTimeout(function(){n.current=!0,o.current()},e)},[e]),l=(0,cc.useCallback)(function(){n.current=null,r.current&&clearTimeout(r.current)},[]);return(0,cc.useEffect)(function(){o.current=t},[t]),(0,cc.useEffect)(function(){return a(),l},[e]),[i,l,a]}function fN(t,e,n){e===void 0&&(e=0),n===void 0&&(n=[]);var r=LV(t,e),o=r[0],i=r[1],a=r[2];return(0,kpe.useEffect)(a,n),[o,i]}var Wb=q(re());var MUe=function(t){return t===void 0&&(t={laptopL:1440,laptop:1024,tablet:768}),function(){var e=(0,Wb.useState)(Ope?window.innerWidth:0),n=e[0],r=e[1];(0,Wb.useEffect)(function(){var a=function(){r(window.innerWidth)};return a(),Mpe(window,"resize",a),function(){Rpe(window,"resize",a)}});var o=(0,Wb.useMemo)(function(){return Object.entries(t).sort(function(a,l){return a[1]>=l[1]?1:-1})},[t]),i=o.reduce(function(a,l){var c=l[0],d=l[1];return n>=d?c:a},o[0][0]);return i}},MV=MUe;we();we();we();var zet=q(re());we();we();var RUe=Object.defineProperty,OUe=Object.defineProperties,kUe=Object.getOwnPropertyDescriptors,pN=Object.getOwnPropertySymbols,Ppe=Object.prototype.hasOwnProperty,Ipe=Object.prototype.propertyIsEnumerable,Ape=(t,e,n)=>e in t?RUe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,me=(t,e)=>{for(var n in e||(e={}))Ppe.call(e,n)&&Ape(t,n,e[n]);if(pN)for(var n of pN(e))Ipe.call(e,n)&&Ape(t,n,e[n]);return t},Le=(t,e)=>OUe(t,kUe(e)),ct=(t,e)=>{var n={};for(var r in t)Ppe.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&pN)for(var r of pN(t))e.indexOf(r)<0&&Ipe.call(t,r)&&(n[r]=t[r]);return n};var AUe=Object.defineProperty,PUe=Object.defineProperties,IUe=Object.getOwnPropertyDescriptors,mN=Object.getOwnPropertySymbols,Bpe=Object.prototype.hasOwnProperty,zpe=Object.prototype.propertyIsEnumerable,Fpe=(t,e,n)=>e in t?AUe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Qt=(t,e)=>{for(var n in e||(e={}))Bpe.call(e,n)&&Fpe(t,n,e[n]);if(mN)for(var n of mN(e))zpe.call(e,n)&&Fpe(t,n,e[n]);return t},dr=(t,e)=>PUe(t,IUe(e)),hN=(t,e)=>{var n={};for(var r in t)Bpe.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&mN)for(var r of mN(t))e.indexOf(r)<0&&zpe.call(t,r)&&(n[r]=t[r]);return n};function $v(...t){}function Cw(t,e){if(FUe(t)){let n=BUe(e)?e():e;return t(n)}return t}function FUe(t){return typeof t=="function"}function BUe(t){return typeof t=="function"}function fs(t,e){return typeof Object.hasOwn=="function"?Object.hasOwn(t,e):Object.prototype.hasOwnProperty.call(t,e)}function Yr(...t){return(...e)=>{for(let n of t)typeof n=="function"&&n(...e)}}function RV(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function OV(t,e){let n=Qt({},t);for(let r of e)fs(n,r)&&delete n[r];return n}function kV(t,e){let n={};for(let r of e)fs(t,r)&&(n[r]=t[r]);return n}function Sw(t){return t}function nn(t,e){if(!t)throw typeof e!="string"?new Error("Invariant failed"):new Error(e)}function AV(t){return Object.keys(t)}function Md(t,...e){let n=typeof t=="function"?t(...e):t;return n==null?!1:!n}function dc(t){return t.disabled||t["aria-disabled"]===!0||t["aria-disabled"]==="true"}function ps(t){let e={};for(let n in t)t[n]!==void 0&&(e[n]=t[n]);return e}function Jt(...t){for(let e of t)if(e!==void 0)return e}var Vpe=q(re(),1);function ww(t,e){typeof t=="function"?t(e):t&&(t.current=e)}function zUe(t){return!t||!(0,Vpe.isValidElement)(t)?!1:"ref"in t.props||"ref"in t}function Upe(t){return zUe(t)?me({},t.props).ref||t.ref:null}function jpe(t,e){let n=me({},t);for(let r in e){if(!fs(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]?me(me({},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]=(...a)=>{o(...a),i(...a)};continue}}n[r]=o}return n}var qf=VUe();function VUe(){var t;return typeof window<"u"&&!!((t=window.document)!=null&&t.createElement)}function Cn(t){return t?"self"in t?t.document:t.ownerDocument||document:document}function Nv(t){return t?"self"in t?t.self:Cn(t).defaultView||window:self}function yl(t,e=!1){let{activeElement:n}=Cn(t);if(!n?.nodeName)return null;if(Ew(n)&&n.contentDocument)return yl(n.contentDocument.body,e);if(e){let r=n.getAttribute("aria-activedescendant");if(r){let o=Cn(n).getElementById(r);if(o)return o}}return n}function jn(t,e){return t===e||t.contains(e)}function Ew(t){return t.tagName==="IFRAME"}function qs(t){let e=t.tagName.toLowerCase();return e==="button"?!0:e==="input"&&t.type?UUe.indexOf(t.type)!==-1:!1}var UUe=["button","color","file","image","reset","submit"];function Tw(t){if(typeof t.checkVisibility=="function")return t.checkVisibility();let e=t;return e.offsetWidth>0||e.offsetHeight>0||t.getClientRects().length>0}function ms(t){try{let e=t instanceof HTMLInputElement&&t.selectionStart!==null,n=t.tagName==="TEXTAREA";return e||n||!1}catch{return!1}}function _w(t){return t.isContentEditable||ms(t)}function PV(t){if(ms(t))return t.value;if(t.isContentEditable){let e=Cn(t).createRange();return e.selectNodeContents(t),e.toString()}return""}function IV(t){let e=0,n=0;if(ms(t))e=t.selectionStart||0,n=t.selectionEnd||0;else if(t.isContentEditable){let r=Cn(t).getSelection();if(r?.rangeCount&&r.anchorNode&&jn(t,r.anchorNode)&&r.focusNode&&jn(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 Kb(t,e){let n=["dialog","menu","listbox","tree","grid"],r=t?.getAttribute("role");return r&&n.indexOf(r)!==-1?r:e}function Dw(t,e){var n;let r={menu:"menuitem",listbox:"option",tree:"treeitem"},o=Kb(t);return o&&(n=r[o])!=null?n:e}function gN(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 gN(t.parentElement)||document.scrollingElement||document.body}function $w(t,e){let n=t.map((o,i)=>[i,o]),r=!1;return n.sort(([o,i],[a,l])=>{let c=e(i),d=e(l);return c===d||!c||!d?0:jUe(c,d)?(o>a&&(r=!0),-1):(o<a&&(r=!0),1)}),r?n.map(([o,i])=>i):t}function jUe(t,e){return!!(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)}function Hpe(){return qf&&!!navigator.maxTouchPoints}function Gb(){return qf?/mac|iphone|ipad|ipod/i.test(navigator.platform):!1}function Lv(){return qf&&Gb()&&/apple/i.test(navigator.vendor)}function FV(){return qf&&/firefox\//i.test(navigator.userAgent)}function BV(){return qf&&navigator.platform.startsWith("Mac")&&!Hpe()}function vN(t){return!!(t.currentTarget&&!jn(t.currentTarget,t.target))}function Pi(t){return t.target===t.currentTarget}function Wpe(t){let e=t.currentTarget;if(!e)return!1;let n=Gb();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 Kpe(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 Gpe(t,e,n){let r=new Event(e,n);return t.dispatchEvent(r)}function Mv(t,e){let n=new FocusEvent("blur",e),r=t.dispatchEvent(n),o=dr(Qt({},e),{bubbles:!0});return t.dispatchEvent(new FocusEvent("focusout",o)),r}function Ype(t,e,n){let r=new KeyboardEvent(e,n);return t.dispatchEvent(r)}function zV(t,e){let n=new MouseEvent("click",e);return t.dispatchEvent(n)}function ah(t,e){let n=e||t.currentTarget,r=t.relatedTarget;return!r||!jn(n,r)}function sh(t,e,n,r){let i=(l=>{if(r){let d=setTimeout(l,r);return()=>clearTimeout(d)}let c=requestAnimationFrame(l);return()=>cancelAnimationFrame(c)})(()=>{t.removeEventListener(e,a,!0),n()}),a=()=>{i(),n()};return t.addEventListener(e,a,{once:!0,capture:!0}),i}function ao(t,e,n,r=window){let o=[];try{r.document.addEventListener(t,e,n);for(let a of Array.from(r.frames))o.push(ao(t,e,n,a))}catch{}return()=>{try{r.document.removeEventListener(t,e,n)}catch{}for(let a of o)a()}}var so=q(re(),1),HUe=q(re(),1),VV=me({},HUe),Zpe=VV.useId,pyt=VV.useDeferredValue,qpe=VV.useInsertionEffect,dn=qf?so.useLayoutEffect:so.useEffect;function bN(t){let e=(0,so.useRef)(t);return dn(()=>{e.current=t}),e}function vt(t){let e=(0,so.useRef)(()=>{throw new Error("Cannot call an event handler while rendering.")});return qpe?qpe(()=>{e.current=t}):e.current=t,(0,so.useCallback)((...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}function Qpe(t){let[e,n]=(0,so.useState)(null);return dn(()=>{if(e==null||!t)return;let r=null;return t(o=>(r=o,e)),()=>{t(r)}},[e,t]),[e,n]}function ln(...t){return(0,so.useMemo)(()=>{if(t.some(Boolean))return e=>{for(let n of t)ww(n,e)}},t)}function du(t){if(Zpe){let r=Zpe();return t||r}let[e,n]=(0,so.useState)(t);return dn(()=>{if(t||e)return;let r=Math.random().toString(36).slice(2,8);n(`id-${r}`)},[t,e]),t||e}function xN(t,e){let n=i=>{if(typeof i=="string")return i},[r,o]=(0,so.useState)(()=>n(e));return dn(()=>{let i=t&&"current"in t?t.current:t;o(i?.tagName.toLowerCase()||n(e))},[t,e]),r}function lh(t,e){let n=(0,so.useRef)(!1);(0,so.useEffect)(()=>{if(n.current)return t();n.current=!0},e),(0,so.useEffect)(()=>()=>{n.current=!1},[])}function eme(){return(0,so.useReducer)(()=>[],[])}function Oo(t){return vt(typeof t=="function"?t:()=>t)}function yr(t,e,n=[]){let r=(0,so.useCallback)(o=>(t.wrapElement&&(o=t.wrapElement(o)),e(o)),[...n,t.wrapElement]);return Le(me({},t),{wrapElement:r})}function Yb(t=!1,e){let[n,r]=(0,so.useState)(null);return{portalRef:ln(r,e),portalNode:n,domReady:!t||n}}function CN(t,e,n){let r=t.onLoadedMetadataCapture,o=(0,so.useMemo)(()=>Object.assign(()=>{},Le(me({},r),{[e]:n})),[r,e,n]);return[r?.[e],{onLoadedMetadataCapture:o}]}function Zb(){return(0,so.useEffect)(()=>{ao("mousemove",KUe,!0),ao("mousedown",yN,!0),ao("mouseup",yN,!0),ao("keydown",yN,!0),ao("scroll",yN,!0)},[]),vt(()=>UV)}var UV=!1,Jpe=0,Xpe=0;function WUe(t){let e=t.movementX||t.screenX-Jpe,n=t.movementY||t.screenY-Xpe;return Jpe=t.screenX,Xpe=t.screenY,e||n||process.env.NODE_ENV==="test"}function KUe(t){WUe(t)&&(UV=!0)}function yN(){UV=!1}var hs=q(re(),1),Rv=q(_o(),1);function lt(t){let e=hs.forwardRef((n,r)=>t(Le(me({},n),{ref:r})));return e.displayName=t.displayName||t.name,e}function qb(t,e){return hs.memo(t,e)}function dt(t,e){let n=e,{wrapElement:r,render:o}=n,i=ct(n,["wrapElement","render"]),a=ln(e.ref,Upe(o)),l;if(hs.isValidElement(o)){let c=Le(me({},o.props),{ref:a});l=hs.cloneElement(o,jpe(i,c))}else o?l=o(i):l=(0,Rv.jsx)(t,me({},i));return r?r(l):l}function pt(t){let e=(n={})=>t(n);return e.displayName=t.name,e}function Ko(t=[],e=[]){let n=hs.createContext(void 0),r=hs.createContext(void 0),o=()=>hs.useContext(n),i=(d=!1)=>{let f=hs.useContext(r),m=o();return d?f:f||m},a=()=>{let d=hs.useContext(r),f=o();if(!(d&&d===f))return f},l=d=>t.reduceRight((f,m)=>(0,Rv.jsx)(m,Le(me({},d),{children:f})),(0,Rv.jsx)(n.Provider,me({},d)));return{context:n,scopedContext:r,useContext:o,useScopedContext:i,useProviderContext:a,ContextProvider:l,ScopedContextProvider:d=>(0,Rv.jsx)(l,Le(me({},d),{children:e.reduceRight((f,m)=>(0,Rv.jsx)(m,Le(me({},d),{children:f})),(0,Rv.jsx)(r.Provider,me({},d)))}))}}var Nw=Ko(),tme=Nw.useContext,xyt=Nw.useScopedContext,Cyt=Nw.useProviderContext,nme=Nw.ContextProvider,rme=Nw.ScopedContextProvider;var jV=q(re(),1),Lw=Ko([nme],[rme]),Jb=Lw.useContext,Tyt=Lw.useScopedContext,ome=Lw.useProviderContext,uh=Lw.ContextProvider,Xb=Lw.ScopedContextProvider,ime=(0,jV.createContext)(void 0),ame=(0,jV.createContext)(void 0);function Ov(t,e){let n=t.__unstableInternals;return nn(n,"Invalid store"),n[e]}function ko(t,...e){let n=t,r=n,o=Symbol(),i=$v,a=new Set,l=new Set,c=new Set,d=new Set,f=new Set,m=new WeakMap,h=new WeakMap,g=M=>(c.add(M),()=>c.delete(M)),y=()=>{let M=a.size,k=Symbol();a.add(k);let A=()=>{a.delete(k),!a.size&&i()};if(M)return A;let I=AV(n).map(V=>Yr(...e.map(j=>{var G;let K=(G=j?.getState)==null?void 0:G.call(j);if(K&&fs(K,V))return hi(j,[V],Z=>{$(V,Z[V],!0)})}))),H=[];for(let V of c)H.push(V());let B=e.map(Qb);return i=Yr(...I,...H,...B),A},b=(M,k,A=d)=>(A.add(k),h.set(k,M),()=>{var I;(I=m.get(k))==null||I(),m.delete(k),h.delete(k),A.delete(k)}),S=(M,k)=>b(M,k),C=(M,k)=>(m.set(k,k(n,n)),b(M,k)),w=(M,k)=>(m.set(k,k(n,r)),b(M,k,f)),E=M=>ko(kV(n,M),R),_=M=>ko(OV(n,M),R),D=()=>n,$=(M,k,A=!1)=>{var I;if(!fs(n,M))return;let H=Cw(k,n[M]);if(H===n[M])return;if(!A)for(let G of e)(I=G?.setState)==null||I.call(G,M,H);let B=n;n=dr(Qt({},n),{[M]:H});let V=Symbol();o=V,l.add(M);let j=(G,K,Z)=>{var X;let se=h.get(G),de=ye=>Z?Z.has(ye):ye===M;(!se||se.some(de))&&((X=m.get(G))==null||X(),m.set(G,G(n,K)))};for(let G of d)j(G,B);queueMicrotask(()=>{if(o!==V)return;let G=n;for(let K of f)j(K,r,l);r=G,l.clear()})},R={getState:D,setState:$,__unstableInternals:{setup:g,init:y,subscribe:S,sync:C,batch:w,pick:E,omit:_}};return R}function Js(t,...e){if(t)return Ov(t,"setup")(...e)}function Qb(t,...e){if(t)return Ov(t,"init")(...e)}function ex(t,...e){if(t)return Ov(t,"subscribe")(...e)}function hi(t,...e){if(t)return Ov(t,"sync")(...e)}function tx(t,...e){if(t)return Ov(t,"batch")(...e)}function kv(t,...e){if(t)return Ov(t,"omit")(...e)}function HV(t,...e){if(t)return Ov(t,"pick")(...e)}function Av(...t){let e=t.reduce((r,o)=>{var i;let a=(i=o?.getState)==null?void 0:i.call(o);return a?Object.assign(r,a):r},{}),n=ko(e,...t);return Object.assign({},...t,n)}function Jf(t,e){if(process.env.NODE_ENV==="production"||!e)return;let n=Object.entries(t).filter(([i,a])=>i.startsWith("default")&&a!==void 0).map(([i])=>{var a;let l=i.replace("default","");return`${((a=l[0])==null?void 0:a.toLowerCase())||""}${l.slice(1)}`});if(!n.length)return;let r=e.getState();if(n.filter(i=>fs(r,i)).length)throw new Error(`Passing a store prop in conjunction with a default state is not supported.
240
+ ${i}${a?" "+a:""} (${r} ${o}${l?` Request ID: ${l}`:""})`);this.errorMessage=n;this.fetchMethod=r;this.fetchUri=o;this.statusCode=i;this.statusText=a;this.requestId=l;Object.setPrototypeOf(this,t.prototype)}};var m6=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??Ine,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,l=await U8e(()=>o(e.toString(),{...n,signal:i,headers:{...n?.headers,...r}}));if(!l.ok){let c="";try{let d=await l.text();try{let f=JSON.parse(d);f.errorMessage?c=Array.isArray(f.errorMessage)?f.errorMessage.join(", "):f.errorMessage:c=d}catch{c=d}}catch{c="General error"}throw new p6(c,n?.method??"GET",e.toString(),l.status,l.statusText,t.getRequestId(l))}return n?.expectNoContent?{response:l,body:null}:{response:l,body:await l.json()}})}createUrl(e,n,r){let o=new URL(`${r??this.options.apiHost}${e}`);return Object.entries(n??{}).forEach(([i,a])=>{typeof a<"u"&&a!==null&&o.searchParams.append(i,Array.isArray(a)?a.join(","):a?.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 U8e(t){let n=5,r;for(;n>0&&(r=await t(),r.status===429);){let o=0;try{let l=r.clone(),c=l.headers.get("date"),d=c?new Date(c).getTime():void 0,m=(await l.json())?.info?.reset;typeof d=="number"&&typeof m=="number"&&(o=Math.max(0,Math.min(Math.round(1.1*(m-d)),1e4)))}catch{}let i=Math.pow(2,5-n)*333,a=i+Math.round(Math.random()*(i/2))*(Math.random()>.5?1:-1);await new Promise(l=>setTimeout(l,o+a)),n-=1}return r}var h6=class extends m6{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:a,userAgent:l}=this.telemetryContext;i&&(r["x-thread-id"]=i),a&&(r["x-uniform-client"]=a),l&&(r["user-agent"]=l)}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 Fne={name:"@uniformdev/uniform-mcp",version:"20.43.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"},sideEffects:!1,scripts:{build:"tsup",dev:"tsup --watch",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.12.0","@types/uuid":"9.0.4","@uniformdev/canvas":"workspace:*","@uniformdev/project-map":"workspace:*","fast-json-patch":"^3.1.1",immer:"10.1.1",jsdom:"24.1.3",uuid:"9.0.1",zod:"3.23.8"},files:["/dist"],publishConfig:{access:"public"},devDependencies:{"@types/jsdom":"^27.0.0","@uniformdev/design-system":"workspace:*","@uniformdev/files":"workspace:*","@uniformdev/mesh-edgehancer-sdk":"workspace:*","@uniformdev/richtext":"workspace:*",vitest:"3.2.4"}};var zne=process.env.UNIFORM_API_KEY,SP=process.env.UNIFORM_PROJECT_ID,Bne=process.env.UNIFORM_API_HOST??"https://uniform.app",H8e=process.env.UNIFORM_AI_API_HOST??"https://ai.uniform.global";if(!zne&&process.env.NODE_ENV!=="test")throw new Error("UNIFORM_API_KEY is not set");if(!SP&&process.env.NODE_ENV!=="test")throw new Error("UNIFORM_PROJECT_ID is not set");var et={apiHost:Bne,apiKey:zne,projectId:SP,aiApiHost:H8e,baseWebUrl:`${Bne}/projects/${SP}`};function Ug(){return new h6({...et,apiHost:et.aiApiHost,telemetryContext:{userAgent:`uniform-mcp/${Fne.version}`,uniformClient:"mcp"}})}function Vne(t){t.tool("askQuestion","Ask the Uniform Docs assistant, Una, questions about Uniform features, usage, and best practices",Mne.inputSchema.shape,async e=>{let r=await Ug().invoke("askQuestion",e);return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}})}import{autoFixParameterGroups as Kne,CanvasClient as lLe}from"@uniformdev/canvas";import*as C6 from"zod";import W8e from"fast-json-patch";function g6(t,e){return W8e.applyPatch(t,e).newDocument}import*as Zc from"zod";var v6=Zc.array(Zc.object({op:Zc.enum(["add","remove","replace"]),path:Zc.string().describe("The JSON path to patch"),value:Zc.unknown().describe("The value to patch - for remove, leave this blank")}));function K8e(t){return Array.isArray(t)&&t.length>0}function Une(t){return!!t&&typeof t=="object"&&"type"in t}function jne(t){return typeof t=="object"&&t!==null&&"root"in t&&Une(t.root)}function jg(t){return"children"in t&&K8e(t.children)}var G8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var Y8e=({context:t,renderChildren:e})=>{if(!jg(t.currentNode))return"";let n=e(t.currentNode.children);return n.endsWith(" ")?n:`${n} `};var Z8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var q8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var J8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var X8e=({context:t,renderChildren:e})=>jg(t.currentNode)?`${e(t.currentNode.children)} `:"";var Q8e=({context:t})=>t.currentNode.text;var eLe=()=>" ";var tLe=()=>" ",nLe=new Map([["text",Q8e],["tab",eLe],["linebreak",tLe],["paragraph",Z8e],["listitem",Y8e],["heading",G8e],["table",q8e],["tablecell",J8e],["tablerow",X8e]]),rLe=t=>{let e=nLe.get(t.currentNode.type);return e||(({context:n,renderChildren:r})=>jg(n.currentNode)?r(n.currentNode.children):"")};function oLe(t,e){let n=[];return e?.ancestorNodes&&(n=n.concat(e.ancestorNodes)),e?.currentNode&&n.unshift(e.currentNode),{...e??{},currentNode:t,ancestorNodes:n}}function wP(t,e){var n;if(!Une(t))return"";let r=oLe(t,e),o=(n=r.resolveRenderer)==null?void 0:n.call(r,r);if(typeof o>"u")o=rLe(r);else if(o===null)return"";let i=a=>iLe(a,r);if(o){let a=o({context:r,renderChildren:i});return r.ancestorNodes.length>0?a:a.trim()}else throw new Error(`There is no renderer for node type: ${r.currentNode.type}`)}function iLe(t,e){return Array.isArray(t)?t.map(n=>wP(n,e)).join(""):""}var aLe=[{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"}],sLe=[{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 y6={required:!1,formatting:{builtIn:sLe.map(t=>t.type)},elements:{builtIn:aLe.map(t=>t.type)},elementsConfig:{asset:{allowedTypes:["image"]}}};import*as jo from"zod";import*as qn from"zod";var b6=qn.object({name:qn.string().describe('Title-cased display name. Ex: "Headline"'),id:qn.string().describe("The public ID. Must be unique within the current entity fields/parameters."),type:qn.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:qn.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:qn.boolean().describe("Whether values are stored as locale-specific"),typeConfig:qn.object({allowedTypes:qn.array(qn.enum(["image","video","audio","other"])).optional().describe("The types of asset allowed. ONLY applies when type=asset, omit for other types"),options:qn.array(qn.object({text:qn.string().describe("The text to display to the author"),value:qn.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:qn.boolean().optional().describe("Whether an author must enter a value for this property"),min:qn.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:qn.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:qn.array(qn.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:qn.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:qn.array(qn.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:qn.boolean().optional().describe("When type=group, this is whether the group is collapsed by default."),schema:qn.any().describe("When type=json, this is an optional JSON schema the property value must follow. Omit for all other types.")}).optional()});var Hne=jo.object({name:jo.string().describe('Title-cased display name of the component. Ex: "Hero"'),id:jo.string().describe("Public ID of the component, the camelCase version of name, using only alphanumeric characters"),description:jo.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:jo.boolean().describe("True if the component can have pages/compositions created from it. False if it is a part of a page."),parameters:jo.array(b6).describe("The properties of the component. The key is the publicId of the property.").optional(),slots:jo.array(jo.object({name:jo.string().describe('Title-cased display name of the slot. Ex: "Content"'),id:jo.string().describe("The public id of the slot. Must be unique within this component's slots."),allowedComponents:jo.array(jo.string()).describe("The components public IDs allowed in the slot."),minComponents:jo.number().describe("The minimum number of components allowed in the slot. Omit for no minimum.").min(0).optional(),maxComponents:jo.number().describe("The maximum number of components allowed in the slot. Omit for no maximum.").min(1).optional(),inheritAllowedComponents:jo.boolean().describe("Set to false")})).describe("The slots of the component. The key is the publicId of the slot.").optional()});function Wne(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 x6(t){return`${et.baseWebUrl}/dashboards/canvas/components/${t}`}function Wy(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=y6;continue}r.typeConfig={...y6,required:r.typeConfig.required??y6.required}}}var uLe={action:C6.enum(["create","update","delete"]).describe("The action to perform"),publicId:C6.string().describe("Public ID of the component, the camelCase version of name, using only alphanumeric characters"),component:Hne.describe("Full component definition to create. Omit for update or delete.").optional(),patches:v6.describe("JSON patch to apply to the existing component definition. Omit for create or delete.").optional()};function Gne(t){t.tool("componentAction","Creates, updates, or deletes a Uniform Component definition (or Composition definition)",uLe,async({publicId:e,action:n,component:r,patches:o})=>{let i=new lLe(et),a=!1;if(n==="create"){if(!r)throw new Error("Component definition is required for create");let l=Wne(r);l.parameters&&(a=Kne(l.parameters),Wy(l.parameters)),await i.updateComponentDefinition({componentDefinition:l})}if(n==="update"){if(!o)throw new Error("Patches are required for update");let l=await i.getComponentDefinitions({componentId:e});if(!l.componentDefinitions.length)throw new Error(`Component with public ID ${e} does not exist, try creating it instead`);let c=l.componentDefinitions[0],d=c.parameters?.filter(m=>m.type==="richText").map(m=>m.id),f=g6(c,o);if(f.parameters){a=Kne(f.parameters);let m=f.parameters?.filter(h=>h.type==="richText").map(h=>h.id).filter(h=>!d?.includes(h));Wy(f.parameters,m)}await i.updateComponentDefinition({componentDefinition:f})}return n==="delete"&&await i.removeComponentDefinition({componentId:e}),{content:[{type:"text",text:JSON.stringify({success:!0,editUrl:x6(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 Yne}from"@uniformdev/canvas";import*as Zne from"zod";var cLe={id:Zne.string()};function qne(t){t.tool("componentList","Lists all Uniform Component definitions",async()=>{let r=(await new Yne(et).getComponentDefinitions({includeSystem:!0})).componentDefinitions.map(o=>({id:o.id,name:o.name,type:o.canBeComposition?"composition":"component",description:o.description,editUrl:x6(o.id)}));return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}),t.tool("componentGet","Gets a Uniform Component definition details (slots, parameters, etc.)",cLe,async({id:e})=>{let r=await new Yne(et).getComponentDefinitions({componentId:e,includeSystem:!0});return{content:[{type:"text",text:JSON.stringify(r.componentDefinitions[0],null,2)}]}})}import*as Kt from"zod";import*as Ky from"zod";var mm=Ky.object({componentId:Ky.string().describe("ID of the component pattern instance the data resource belongs to - can be created in the same call to this tool"),dataResourceName:Ky.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:Ky.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 dLe=Kt.object({parentComponentId:Kt.string().describe("ID of the component the slot belongs to"),slotName:Kt.string().describe("Public ID of the target slot"),slotIndex:Kt.number().describe("Index to insert the new component at. Omit for append.").optional(),newComponentInstanceUuid:Kt.string().uuid().describe("UUID of the new component to create. You MUST generate a valid unique UUID using the `createUuid` tool."),instanceType:Kt.enum(["component","componentPattern"]),componentType:Kt.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:Kt.string().describe("UUID of the component pattern definition to insert. Component pattern must be registered with Uniform. Omit when inserting a component instance.").optional()}),S6=Kt.object({componentId:Kt.string().describe("ID of the component the parameter belongs to - can be created in the same call to this tool"),parameterId:Kt.string().describe("Public ID of the parameter to update. Must be defined in the component type of the parent componentId"),parameterType:Kt.string().describe("The type of the parameterId as defined on the component definition"),fromLocale:Kt.string().describe("When translating from a different locale, use the locale you are translating from. Omit for non-localized values.").optional(),locale:Kt.string().describe("Locale of the parameter value. Omit for non-localized values.").optional(),editInstructions:Kt.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."),w6=Kt.object({createComponentInstances:Kt.array(dLe).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:Kt.array(Kt.object({componentId:Kt.string().describe("Existing component ID to move. Cannot be root component."),newParentComponentId:Kt.string(),newSlotName:Kt.string().describe("Destination slot to move to"),newSlotIndex:Kt.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:Kt.array(Kt.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:Kt.array(Kt.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:Kt.array(mm).describe("Updates to pattern data resources. Use empty array if no changes are needed.").optional()}),hm=Kt.object({enableLocales:Kt.array(Kt.string()).describe("Locales to enable. Omit for no change.").optional(),disableLocales:Kt.array(Kt.string()).describe("Locales to disable. Existing data in disabled locales will be lost. Omit for no change.").optional()}),fLe=Kt.object({summary:Kt.string().describe("Short summary of the edit that was made.").optional(),success:Kt.boolean()}),Dct=Kt.object({success:Kt.boolean().describe("Whether all actions were successful"),actionsTaken:Kt.array(fLe).describe("Array of individual actions that were taken")});import*as Tf from"zod";var pLe=S6.extend({overridable:Tf.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()}),Jne=w6.extend({name:Tf.string().describe("Name of the pattern. If the name does not need to be changed, omit this field. Always include for creates.").optional(),type:Tf.string().describe("Component definition type of the pattern. Must be registered with Uniform. Always include for creates. Omit otherwise.").optional(),description:Tf.string().describe("Description of the pattern for authors. If the description does not need to be changed, omit this field.").optional(),parameterUpdates:Tf.array(pLe).describe("Updates to the parameters of the pattern. Use empty array if no changes are needed.").optional(),dataResourceUpdates:Tf.array(mm).describe("Updates to the pattern instance data resources. Use empty array if no changes are needed.").optional(),localeUpdates:hm.optional()}).describe("Modification instructions for the pattern");import*as gm from"zod";var Xne=gm.object({...w6.shape,name:gm.string().describe("Name of the composition. If the name does not need to be changed, omit this field. Always include for creates.").optional(),type:gm.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:gm.array(S6).describe("Updates to the parameters of the pattern. Use empty array if no changes are needed.").optional(),localeUpdates:hm.optional(),dataResourceUpdates:gm.array(mm).describe("Updates to pattern instance data resources. Use empty array if no changes are needed.").optional()}).describe("Modification instructions for the composition");import*as qc from"zod";import*as Ns from"zod";var EP=Ns.object({fieldId:Ns.string().describe("Public ID of the field to update. Must be defined in the content type of the parent entry."),fieldType:Ns.string().describe("The type of the fieldId as defined on the content type"),fromLocale:Ns.string().describe("When translating from a different locale, use the locale you are translating from. Omit for non-localized values.").optional(),locale:Ns.string().describe("Locale of the field value. Omit for non-localized values.").optional(),editInstructions:Ns.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."),Qne=Ns.object({type:Ns.string().describe("Content type of the entry. Must be registered with Uniform. Always include for creates. Omit otherwise.").optional(),slug:Ns.string().describe("Slug (human-readable identifier) of the entry. If the slug does not need to be changed, omit this field.").optional(),fieldUpdates:Ns.array(EP).describe("Updates to the fields of the entry. Use empty array if no changes are needed.").optional(),localeUpdates:hm.optional(),dataResourceUpdates:Ns.array(mm).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 mLe=EP.extend({overridable:qc.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()}),ere=qc.object({name:qc.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:qc.string().describe("Content type of the entry pattern. Must be registered with Uniform. Always include for creates. Omit otherwise.").optional(),description:qc.string().describe("Description of the entry pattern for authors. If the description does not need to be changed, omit this field.").optional(),fieldUpdates:qc.array(mLe).describe("Updates to the fields of the entry pattern. Use empty array if no changes are needed.").optional(),localeUpdates:hm.optional()}).describe("Modification instructions for the entry pattern");import*as Ki from"zod";import{CANVAS_BLOCK_PARAM_TYPE as Aat}from"@uniformdev/canvas";import{getEffectivePropertyValue as Pat}from"@uniformdev/canvas";import{CANVAS_PERSONALIZATION_PARAM as Iat}from"@uniformdev/canvas";var Hg="uniformContentInternalReference";var hLe="$p:";function tre(t){return`${hLe}${t}`}function TP(t){return{...t,allowedComponentsIndex:new Set(t?.allowedComponents??[]),maxComponents:t?.maxComponents??Number.MAX_VALUE,minComponents:t?.minComponents??0,allowAllPatternsOfAllowedTypes:!t?.patternsInAllowedComponents}}import{CANVAS_LOCALIZATION_SLOT as Wct,CANVAS_LOCALIZATION_TYPE as Kct,CANVAS_PERSONALIZATION_ALGORITHM_PARAM as Gct,CANVAS_PERSONALIZATION_ALGORITHM_TYPE as Yct,CANVAS_PERSONALIZATION_EVENT_NAME_PARAM as Zct,CANVAS_PERSONALIZATION_TAKE_PARAM as qct,CANVAS_PERSONALIZE_SLOT as Jct,CANVAS_PERSONALIZE_TYPE as Xct,CANVAS_SLOT_SECTION_SLOT as Qct,CANVAS_SLOT_SECTION_TYPE as edt,CANVAS_TEST_SLOT as tdt,CANVAS_TEST_TYPE as ndt}from"@uniformdev/canvas";var gLe={$personalization:{isNestableIntoItself:!0},$test:void 0,$localization:void 0,$loop:void 0,$slotSection:{isAutoAllowed:!0,isNestableIntoItself:!0,isOnlyAllowedInPatternEditor:!0}},nre=t=>gLe[t];function E6(t,e,n=!1){let r=nre(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(tre(t._pattern))||!1}var T6=({twee:t,parentSlotDefinition:e,nodeId:n,componentDefinitionsIndex:r})=>{if(!e.inheritAllowedComponents)return e;let o=t.getParentInfo(n);if(!o)return;let i=r[o.value.type]?.slots?.find(({id:a})=>a===o.parentName);if(i)return T6({parentSlotDefinition:i,nodeId:o.parentId,twee:t,componentDefinitionsIndex:r})};function _6(t,e,n,r){return`ref-${t}-${e}`+(n?`-${n}`:"")+(r!==void 0&&r>-1?`(${r})`:"")}function rre(t,e={}){let{targetLocale:n,enabledLocales:r=[],isPatternParameter:o=!1}=e,i=n??(r.length>0?"${locale}":void 0);return{type:Hg,...o?{isPatternParameter:!0}:{},variables:{entryIds:t,...i?{locale:i}:{}}}}function $6({definition:t,lastUserChoice:e,currentValue:n}){if(t&&!t.localizable)return!1;if(n){if(n.locales&&D6(n.locales)||n.localesConditions&&D6(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 D6(t){return Array.isArray(t)?t.some(e=>D6(e)):t===void 0?!1:t===null||typeof t!="object"?!0:Object.values(t).some(e=>D6(e))}function _P({twee:t,nodeId:e,currentEditorLocale:n,definition:r}){let o=t.getNodeById(e),i=o?.propertyValueLocalizability?.[r.id],a=t.getNodeProperty(e,r?.id),l=$6({lastUserChoice:i,currentValue:a,definition:r});if(o&&l!==void 0&&l!==(i??!1)&&t.updateNode({nodeId:e,updateMetadata:c=>{c.propertyValueLocalizability[r.id]=l},doNotSetDirty:!0}),l)return n}function ore({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 _at,CANVAS_PERSONALIZATION_ALGORITHM_PARAM as Dat,CANVAS_PERSONALIZATION_PARAM as $at,CANVAS_PERSONALIZE_SLOT as Nat,convertToBindExpression as Lat,createVariableReference as Mat,isSystemComponentDefinition as Rat}from"@uniformdev/canvas";var ire=Object.prototype.hasOwnProperty;function sa(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--&&sa(t[r],e[r]););return r===-1}if(!n||typeof t=="object"){r=0;for(n in t)if(ire.call(t,n)&&++r&&!ire.call(e,n)||!(n in e)||!sa(t[n],e[n]))return!1;return Object.keys(e).length===r}}return t!==t&&e!==e}function N6(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 vLe={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 DP(t,e){function n(o,i,a){if(!(typeof document>"u")){a=N6({},e,a),typeof a.expires=="number"&&(a.expires=new Date(Date.now()+a.expires*864e5)),a.expires&&(a.expires=a.expires.toUTCString()),o=encodeURIComponent(o).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var l="";for(var c in a)a[c]&&(l+="; "+c,a[c]!==!0&&(l+="="+a[c].split(";")[0]));return document.cookie=o+"="+t.write(i,o)+l}}function r(o){if(!(typeof document>"u"||arguments.length&&!o)){for(var i=document.cookie?document.cookie.split("; "):[],a={},l=0;l<i.length;l++){var c=i[l].split("="),d=c.slice(1).join("=");try{var f=decodeURIComponent(c[0]);if(a[f]=t.read(d,f),o===f)break}catch{}}return o?a[o]:a}}return Object.create({set:n,get:r,remove:function(o,i){n(o,"",N6({},i,{expires:-1}))},withAttributes:function(o){return DP(this.converter,N6({},this.attributes,o))},withConverter:function(o){return DP(N6({},this.converter,o),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(t)}})}var yLe=DP(vLe,{path:"/"});function FS(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 ure=q(BS(),1);var hre=q(BS(),1),gre=q(BS(),1);var CLe=t=>{throw TypeError(t)};var RP=(t,e,n)=>e.has(t)||CLe("Cannot "+n),mr=(t,e,n)=>(RP(t,e,"read from private field"),n?n.call(t):e.get(t));var sre=(t,e,n,r)=>(RP(t,e,"write to private field"),r?r.call(t,n):e.set(t,n),n),VS=(t,e,n)=>(RP(t,e,"access private method"),n);var SLe="_",wLe;wLe=new WeakMap;var ELe,TLe;ELe=new WeakMap;TLe=new WeakMap;var _Le,DLe,$Le,NLe;_Le=new WeakMap;DLe=new WeakMap;$Le=new WeakMap;NLe=new WeakMap;function LLe(t,e){return`${t}${SLe}${e}`}function MLe(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 RLe(t,e){return`${t} ${OLe(e)}`}function OLe(t){return`${t.op} ${t.rhs}`}var $P=LLe("$pvc","v"),kLe=({update:t,criteria:e,commands:n,onLogMessage:r})=>{var o,i;if(e.type!=="PVC")return{result:!1,changed:!1};let a=!!(t.state.url&&(!t.previousState||((o=t.state.url)==null?void 0:o.toString())!==((i=t.previousState.url)==null?void 0:i.toString()))),c=(t.visitor.sessionScores[$P]||0)+1,d={result:!1,changed:a},f=n.some(m=>m.type==="modscoreS"&&m.data.dimension===$P);return a&&!f&&n.push({type:"modscoreS",data:{dimension:$P,delta:1}}),MLe(c,e.match)&&(d.result=!0),r?.(["debug",203,{criteria:e,result:d,explanation:RLe(c,e.match)}]),d};kLe.alwaysExecute=!0;var ALe;ALe=new WeakMap;var lre="ssc";var PLe,ILe,FLe;PLe=new WeakMap;ILe=new WeakMap;FLe=new WeakMap;var NP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Edt=NP.split(""),BLe=new Array(123);for(let t=0;t<NP.length;t++)BLe[NP.charCodeAt(t)]=t;var zLe,VLe,ULe,jLe;zLe=new WeakMap;VLe=new WeakMap;ULe=new WeakMap;jLe=new WeakMap;var HLe,WLe;HLe=new WeakSet;WLe=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};var KLe=()=>({quirks:{},scores:{},sessionScores:{},tests:{},goals:{},consent:!1,controlGroup:!1,personalizeVariants:{}}),Ddt=(0,ure.default)();var GLe,YLe;GLe=new WeakSet;YLe=function(t){return this.partitionKey?`${this.partitionKey}.${t}`:t};var cre="ufvisitor",Wg,OP,L6,gl,zS,dre,ZLe,fre,qLe,LP,JLe;Wg=new WeakMap;OP=new WeakMap;L6=new WeakMap;gl=new WeakMap;zS=new WeakSet;dre=function(){return mr(this,OP).get(cre)};ZLe=function(t,e=!1){var n,r,o,i,a,l,c,d,f,m,h;let g=mr(this,zS,dre),y=Date.now();VS(this,zS,LP).call(this,t.scores),VS(this,zS,LP).call(this,t.sessionScores),(r=(n=mr(this,gl)).decay)==null||r.call(n,{now:y,lastUpd:g?.updated,scores:t.scores,sessionScores:t.sessionScores,onLogMessage:mr(this,gl).onLogMessage});let b=!sa(g?.visitorData.scores,t.scores),S=!sa(g?.visitorData.sessionScores,t.sessionScores),C=!sa(g?.visitorData.quirks,t.quirks),w=!sa(g?.visitorData.tests,t.tests),E=!sa(g?.visitorData.goals,t.goals),_={updated:y,visitorData:t};if(VS(this,zS,fre).call(this),mr(this,OP).set(cre,_,!!t.consent),(i=(o=mr(this,gl)).onLogMessage)==null||i.call(o,["debug",102,t]),!e&&((b||S)&&mr(this,Wg).emit("scoresUpdated",t),C&&mr(this,Wg).emit("quirksUpdated",t),w&&mr(this,Wg).emit("testsUpdated",t),((a=g?.visitorData)==null?void 0:a.consent)!==t.consent&&mr(this,Wg).emit("consentUpdated",t),((l=g?.visitorData)==null?void 0:l.controlGroup)!==t.controlGroup&&(mr(this,Wg).emit("controlGroupUpdated",t),(f=(d=mr(this,gl)).onLogMessage)==null||f.call(d,["debug",104,(c=t.controlGroup)!=null?c:!1])),E)){let D=Object.keys((m=t.goals)!=null?m:{});for(let $=0;$<D.length;$++){let R=D[$];(h=g?.visitorData.goals)!=null&&h[R]||mr(this,Wg).emit("goalConverted",{goalId:R})}}};fre=function(){typeof document>"u"||!mr(this,gl).visitLifespan||(mr(this,L6)&&window.clearTimeout(mr(this,L6)),sre(this,L6,window.setTimeout(()=>{this.data},mr(this,gl).visitLifespan+50)))};qLe=function(t){let e=mr(this,gl).visitLifespan;return e?t.updated+e<Date.now():!1};LP=function(t){var e,n;if(mr(this,gl).manifest)for(let r in t){let o=t[r],i=mr(this,gl).manifest.getDimensionByKey(r);i&&o>i.cap&&((n=(e=mr(this,gl)).onLogMessage)==null||n.call(e,["debug",110,{dim:r,score:o,cap:i.cap}]),t[r]=i.cap)}};JLe=function(){var t,e,n;return{...KLe(),consent:(t=mr(this,gl).defaultConsent)!=null?t:!1,controlGroup:(n=(e=mr(this,gl).manifest)==null?void 0:e.rollForControlGroup())!=null?n:!1}};var XLe,QLe,M6,eMe,tMe,nMe,rMe,oMe,R6,MP,iMe,pre,aMe,mre;XLe=new WeakMap;QLe=new WeakMap;M6=new WeakMap;eMe=new WeakMap;tMe=new WeakMap;nMe=new WeakMap;rMe=new WeakMap;oMe=new WeakMap;R6=new WeakMap;MP=new WeakSet;iMe=function(t){mr(this,R6).emit("testResult",t)};pre=async function(t){let e=this.manifest.computeGoals(t);e.length!==0&&await this.storage.updateData(e)};aMe=function(t){let e=VS(this,MP,mre).call(this,t);!sa(e,mr(this,M6))&&(sre(this,M6,e),VS(this,MP,pre).call(this,{scores:mr(this,M6),quirks:void 0}),mr(this,R6).emit("scoresUpdated",e),mr(this,R6).emit("log",["info",3,e]))};mre=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 Ldt=(0,hre.default)();var Mdt=(0,gre.default)();await ab();var AFe=await(process.env.NODE_ENV!=="production"?Yue().then(()=>Gue):que().then(()=>Zue)),Jue=AFe.createHeadlessEditor;await t$();await l$();await g$();await sfe();await B$();await kfe();await yd();await pi();import{createVariableReference as yat}from"@uniformdev/canvas";var ih=q(_o());Dpe();var v0t=q(re());Vb();var b0t=q($V());hw();var C0t=q(xV());jb();Hb();sN();var Zs=ih.Fragment;function W(t,e,n){return xw.call(e,"css")?ih.jsx(_V,TV(t,e),n):ih.jsx(t,e,n)}function De(t,e,n){return xw.call(e,"css")?ih.jsxs(_V,TV(t,e),n):ih.jsxs(t,e,n)}we();we();we();we();we();function Mpe(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];t&&t.addEventListener&&t.addEventListener.apply(t,e)}function Rpe(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];t&&t.removeEventListener&&t.removeEventListener.apply(t,e)}var Ope=typeof window<"u";var kpe=q(re());var cc=q(re());function LV(t,e){e===void 0&&(e=0);var n=(0,cc.useRef)(!1),r=(0,cc.useRef)(),o=(0,cc.useRef)(t),i=(0,cc.useCallback)(function(){return n.current},[]),a=(0,cc.useCallback)(function(){n.current=!1,r.current&&clearTimeout(r.current),r.current=setTimeout(function(){n.current=!0,o.current()},e)},[e]),l=(0,cc.useCallback)(function(){n.current=null,r.current&&clearTimeout(r.current)},[]);return(0,cc.useEffect)(function(){o.current=t},[t]),(0,cc.useEffect)(function(){return a(),l},[e]),[i,l,a]}function fN(t,e,n){e===void 0&&(e=0),n===void 0&&(n=[]);var r=LV(t,e),o=r[0],i=r[1],a=r[2];return(0,kpe.useEffect)(a,n),[o,i]}var Wb=q(re());var MUe=function(t){return t===void 0&&(t={laptopL:1440,laptop:1024,tablet:768}),function(){var e=(0,Wb.useState)(Ope?window.innerWidth:0),n=e[0],r=e[1];(0,Wb.useEffect)(function(){var a=function(){r(window.innerWidth)};return a(),Mpe(window,"resize",a),function(){Rpe(window,"resize",a)}});var o=(0,Wb.useMemo)(function(){return Object.entries(t).sort(function(a,l){return a[1]>=l[1]?1:-1})},[t]),i=o.reduce(function(a,l){var c=l[0],d=l[1];return n>=d?c:a},o[0][0]);return i}},MV=MUe;we();we();we();var zet=q(re());we();we();var RUe=Object.defineProperty,OUe=Object.defineProperties,kUe=Object.getOwnPropertyDescriptors,pN=Object.getOwnPropertySymbols,Ppe=Object.prototype.hasOwnProperty,Ipe=Object.prototype.propertyIsEnumerable,Ape=(t,e,n)=>e in t?RUe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,me=(t,e)=>{for(var n in e||(e={}))Ppe.call(e,n)&&Ape(t,n,e[n]);if(pN)for(var n of pN(e))Ipe.call(e,n)&&Ape(t,n,e[n]);return t},Le=(t,e)=>OUe(t,kUe(e)),ct=(t,e)=>{var n={};for(var r in t)Ppe.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&pN)for(var r of pN(t))e.indexOf(r)<0&&Ipe.call(t,r)&&(n[r]=t[r]);return n};var AUe=Object.defineProperty,PUe=Object.defineProperties,IUe=Object.getOwnPropertyDescriptors,mN=Object.getOwnPropertySymbols,Bpe=Object.prototype.hasOwnProperty,zpe=Object.prototype.propertyIsEnumerable,Fpe=(t,e,n)=>e in t?AUe(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Qt=(t,e)=>{for(var n in e||(e={}))Bpe.call(e,n)&&Fpe(t,n,e[n]);if(mN)for(var n of mN(e))zpe.call(e,n)&&Fpe(t,n,e[n]);return t},dr=(t,e)=>PUe(t,IUe(e)),hN=(t,e)=>{var n={};for(var r in t)Bpe.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&mN)for(var r of mN(t))e.indexOf(r)<0&&zpe.call(t,r)&&(n[r]=t[r]);return n};function $v(...t){}function Cw(t,e){if(FUe(t)){let n=BUe(e)?e():e;return t(n)}return t}function FUe(t){return typeof t=="function"}function BUe(t){return typeof t=="function"}function fs(t,e){return typeof Object.hasOwn=="function"?Object.hasOwn(t,e):Object.prototype.hasOwnProperty.call(t,e)}function Yr(...t){return(...e)=>{for(let n of t)typeof n=="function"&&n(...e)}}function RV(t){return t.normalize("NFD").replace(/[\u0300-\u036f]/g,"")}function OV(t,e){let n=Qt({},t);for(let r of e)fs(n,r)&&delete n[r];return n}function kV(t,e){let n={};for(let r of e)fs(t,r)&&(n[r]=t[r]);return n}function Sw(t){return t}function nn(t,e){if(!t)throw typeof e!="string"?new Error("Invariant failed"):new Error(e)}function AV(t){return Object.keys(t)}function Md(t,...e){let n=typeof t=="function"?t(...e):t;return n==null?!1:!n}function dc(t){return t.disabled||t["aria-disabled"]===!0||t["aria-disabled"]==="true"}function ps(t){let e={};for(let n in t)t[n]!==void 0&&(e[n]=t[n]);return e}function Jt(...t){for(let e of t)if(e!==void 0)return e}var Vpe=q(re(),1);function ww(t,e){typeof t=="function"?t(e):t&&(t.current=e)}function zUe(t){return!t||!(0,Vpe.isValidElement)(t)?!1:"ref"in t.props||"ref"in t}function Upe(t){return zUe(t)?me({},t.props).ref||t.ref:null}function jpe(t,e){let n=me({},t);for(let r in e){if(!fs(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]?me(me({},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]=(...a)=>{o(...a),i(...a)};continue}}n[r]=o}return n}var qf=VUe();function VUe(){var t;return typeof window<"u"&&!!((t=window.document)!=null&&t.createElement)}function Cn(t){return t?"self"in t?t.document:t.ownerDocument||document:document}function Nv(t){return t?"self"in t?t.self:Cn(t).defaultView||window:self}function yl(t,e=!1){let{activeElement:n}=Cn(t);if(!n?.nodeName)return null;if(Ew(n)&&n.contentDocument)return yl(n.contentDocument.body,e);if(e){let r=n.getAttribute("aria-activedescendant");if(r){let o=Cn(n).getElementById(r);if(o)return o}}return n}function jn(t,e){return t===e||t.contains(e)}function Ew(t){return t.tagName==="IFRAME"}function qs(t){let e=t.tagName.toLowerCase();return e==="button"?!0:e==="input"&&t.type?UUe.indexOf(t.type)!==-1:!1}var UUe=["button","color","file","image","reset","submit"];function Tw(t){if(typeof t.checkVisibility=="function")return t.checkVisibility();let e=t;return e.offsetWidth>0||e.offsetHeight>0||t.getClientRects().length>0}function ms(t){try{let e=t instanceof HTMLInputElement&&t.selectionStart!==null,n=t.tagName==="TEXTAREA";return e||n||!1}catch{return!1}}function _w(t){return t.isContentEditable||ms(t)}function PV(t){if(ms(t))return t.value;if(t.isContentEditable){let e=Cn(t).createRange();return e.selectNodeContents(t),e.toString()}return""}function IV(t){let e=0,n=0;if(ms(t))e=t.selectionStart||0,n=t.selectionEnd||0;else if(t.isContentEditable){let r=Cn(t).getSelection();if(r?.rangeCount&&r.anchorNode&&jn(t,r.anchorNode)&&r.focusNode&&jn(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 Kb(t,e){let n=["dialog","menu","listbox","tree","grid"],r=t?.getAttribute("role");return r&&n.indexOf(r)!==-1?r:e}function Dw(t,e){var n;let r={menu:"menuitem",listbox:"option",tree:"treeitem"},o=Kb(t);return o&&(n=r[o])!=null?n:e}function gN(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 gN(t.parentElement)||document.scrollingElement||document.body}function $w(t,e){let n=t.map((o,i)=>[i,o]),r=!1;return n.sort(([o,i],[a,l])=>{let c=e(i),d=e(l);return c===d||!c||!d?0:jUe(c,d)?(o>a&&(r=!0),-1):(o<a&&(r=!0),1)}),r?n.map(([o,i])=>i):t}function jUe(t,e){return!!(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_PRECEDING)}function Hpe(){return qf&&!!navigator.maxTouchPoints}function Gb(){return qf?/mac|iphone|ipad|ipod/i.test(navigator.platform):!1}function Lv(){return qf&&Gb()&&/apple/i.test(navigator.vendor)}function FV(){return qf&&/firefox\//i.test(navigator.userAgent)}function BV(){return qf&&navigator.platform.startsWith("Mac")&&!Hpe()}function vN(t){return!!(t.currentTarget&&!jn(t.currentTarget,t.target))}function Pi(t){return t.target===t.currentTarget}function Wpe(t){let e=t.currentTarget;if(!e)return!1;let n=Gb();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 Kpe(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 Gpe(t,e,n){let r=new Event(e,n);return t.dispatchEvent(r)}function Mv(t,e){let n=new FocusEvent("blur",e),r=t.dispatchEvent(n),o=dr(Qt({},e),{bubbles:!0});return t.dispatchEvent(new FocusEvent("focusout",o)),r}function Ype(t,e,n){let r=new KeyboardEvent(e,n);return t.dispatchEvent(r)}function zV(t,e){let n=new MouseEvent("click",e);return t.dispatchEvent(n)}function ah(t,e){let n=e||t.currentTarget,r=t.relatedTarget;return!r||!jn(n,r)}function sh(t,e,n,r){let i=(l=>{if(r){let d=setTimeout(l,r);return()=>clearTimeout(d)}let c=requestAnimationFrame(l);return()=>cancelAnimationFrame(c)})(()=>{t.removeEventListener(e,a,!0),n()}),a=()=>{i(),n()};return t.addEventListener(e,a,{once:!0,capture:!0}),i}function ao(t,e,n,r=window){let o=[];try{r.document.addEventListener(t,e,n);for(let a of Array.from(r.frames))o.push(ao(t,e,n,a))}catch{}return()=>{try{r.document.removeEventListener(t,e,n)}catch{}for(let a of o)a()}}var so=q(re(),1),HUe=q(re(),1),VV=me({},HUe),Zpe=VV.useId,pyt=VV.useDeferredValue,qpe=VV.useInsertionEffect,dn=qf?so.useLayoutEffect:so.useEffect;function bN(t){let e=(0,so.useRef)(t);return dn(()=>{e.current=t}),e}function vt(t){let e=(0,so.useRef)(()=>{throw new Error("Cannot call an event handler while rendering.")});return qpe?qpe(()=>{e.current=t}):e.current=t,(0,so.useCallback)((...n)=>{var r;return(r=e.current)==null?void 0:r.call(e,...n)},[])}function Qpe(t){let[e,n]=(0,so.useState)(null);return dn(()=>{if(e==null||!t)return;let r=null;return t(o=>(r=o,e)),()=>{t(r)}},[e,t]),[e,n]}function ln(...t){return(0,so.useMemo)(()=>{if(t.some(Boolean))return e=>{for(let n of t)ww(n,e)}},t)}function du(t){if(Zpe){let r=Zpe();return t||r}let[e,n]=(0,so.useState)(t);return dn(()=>{if(t||e)return;let r=Math.random().toString(36).slice(2,8);n(`id-${r}`)},[t,e]),t||e}function xN(t,e){let n=i=>{if(typeof i=="string")return i},[r,o]=(0,so.useState)(()=>n(e));return dn(()=>{let i=t&&"current"in t?t.current:t;o(i?.tagName.toLowerCase()||n(e))},[t,e]),r}function lh(t,e){let n=(0,so.useRef)(!1);(0,so.useEffect)(()=>{if(n.current)return t();n.current=!0},e),(0,so.useEffect)(()=>()=>{n.current=!1},[])}function eme(){return(0,so.useReducer)(()=>[],[])}function Oo(t){return vt(typeof t=="function"?t:()=>t)}function yr(t,e,n=[]){let r=(0,so.useCallback)(o=>(t.wrapElement&&(o=t.wrapElement(o)),e(o)),[...n,t.wrapElement]);return Le(me({},t),{wrapElement:r})}function Yb(t=!1,e){let[n,r]=(0,so.useState)(null);return{portalRef:ln(r,e),portalNode:n,domReady:!t||n}}function CN(t,e,n){let r=t.onLoadedMetadataCapture,o=(0,so.useMemo)(()=>Object.assign(()=>{},Le(me({},r),{[e]:n})),[r,e,n]);return[r?.[e],{onLoadedMetadataCapture:o}]}function Zb(){return(0,so.useEffect)(()=>{ao("mousemove",KUe,!0),ao("mousedown",yN,!0),ao("mouseup",yN,!0),ao("keydown",yN,!0),ao("scroll",yN,!0)},[]),vt(()=>UV)}var UV=!1,Jpe=0,Xpe=0;function WUe(t){let e=t.movementX||t.screenX-Jpe,n=t.movementY||t.screenY-Xpe;return Jpe=t.screenX,Xpe=t.screenY,e||n||process.env.NODE_ENV==="test"}function KUe(t){WUe(t)&&(UV=!0)}function yN(){UV=!1}var hs=q(re(),1),Rv=q(_o(),1);function lt(t){let e=hs.forwardRef((n,r)=>t(Le(me({},n),{ref:r})));return e.displayName=t.displayName||t.name,e}function qb(t,e){return hs.memo(t,e)}function dt(t,e){let n=e,{wrapElement:r,render:o}=n,i=ct(n,["wrapElement","render"]),a=ln(e.ref,Upe(o)),l;if(hs.isValidElement(o)){let c=Le(me({},o.props),{ref:a});l=hs.cloneElement(o,jpe(i,c))}else o?l=o(i):l=(0,Rv.jsx)(t,me({},i));return r?r(l):l}function pt(t){let e=(n={})=>t(n);return e.displayName=t.name,e}function Ko(t=[],e=[]){let n=hs.createContext(void 0),r=hs.createContext(void 0),o=()=>hs.useContext(n),i=(d=!1)=>{let f=hs.useContext(r),m=o();return d?f:f||m},a=()=>{let d=hs.useContext(r),f=o();if(!(d&&d===f))return f},l=d=>t.reduceRight((f,m)=>(0,Rv.jsx)(m,Le(me({},d),{children:f})),(0,Rv.jsx)(n.Provider,me({},d)));return{context:n,scopedContext:r,useContext:o,useScopedContext:i,useProviderContext:a,ContextProvider:l,ScopedContextProvider:d=>(0,Rv.jsx)(l,Le(me({},d),{children:e.reduceRight((f,m)=>(0,Rv.jsx)(m,Le(me({},d),{children:f})),(0,Rv.jsx)(r.Provider,me({},d)))}))}}var Nw=Ko(),tme=Nw.useContext,xyt=Nw.useScopedContext,Cyt=Nw.useProviderContext,nme=Nw.ContextProvider,rme=Nw.ScopedContextProvider;var jV=q(re(),1),Lw=Ko([nme],[rme]),Jb=Lw.useContext,Tyt=Lw.useScopedContext,ome=Lw.useProviderContext,uh=Lw.ContextProvider,Xb=Lw.ScopedContextProvider,ime=(0,jV.createContext)(void 0),ame=(0,jV.createContext)(void 0);function Ov(t,e){let n=t.__unstableInternals;return nn(n,"Invalid store"),n[e]}function ko(t,...e){let n=t,r=n,o=Symbol(),i=$v,a=new Set,l=new Set,c=new Set,d=new Set,f=new Set,m=new WeakMap,h=new WeakMap,g=M=>(c.add(M),()=>c.delete(M)),y=()=>{let M=a.size,k=Symbol();a.add(k);let A=()=>{a.delete(k),!a.size&&i()};if(M)return A;let I=AV(n).map(V=>Yr(...e.map(j=>{var G;let K=(G=j?.getState)==null?void 0:G.call(j);if(K&&fs(K,V))return hi(j,[V],Z=>{$(V,Z[V],!0)})}))),H=[];for(let V of c)H.push(V());let B=e.map(Qb);return i=Yr(...I,...H,...B),A},b=(M,k,A=d)=>(A.add(k),h.set(k,M),()=>{var I;(I=m.get(k))==null||I(),m.delete(k),h.delete(k),A.delete(k)}),S=(M,k)=>b(M,k),C=(M,k)=>(m.set(k,k(n,n)),b(M,k)),w=(M,k)=>(m.set(k,k(n,r)),b(M,k,f)),E=M=>ko(kV(n,M),R),_=M=>ko(OV(n,M),R),D=()=>n,$=(M,k,A=!1)=>{var I;if(!fs(n,M))return;let H=Cw(k,n[M]);if(H===n[M])return;if(!A)for(let G of e)(I=G?.setState)==null||I.call(G,M,H);let B=n;n=dr(Qt({},n),{[M]:H});let V=Symbol();o=V,l.add(M);let j=(G,K,Z)=>{var X;let se=h.get(G),de=ye=>Z?Z.has(ye):ye===M;(!se||se.some(de))&&((X=m.get(G))==null||X(),m.set(G,G(n,K)))};for(let G of d)j(G,B);queueMicrotask(()=>{if(o!==V)return;let G=n;for(let K of f)j(K,r,l);r=G,l.clear()})},R={getState:D,setState:$,__unstableInternals:{setup:g,init:y,subscribe:S,sync:C,batch:w,pick:E,omit:_}};return R}function Js(t,...e){if(t)return Ov(t,"setup")(...e)}function Qb(t,...e){if(t)return Ov(t,"init")(...e)}function ex(t,...e){if(t)return Ov(t,"subscribe")(...e)}function hi(t,...e){if(t)return Ov(t,"sync")(...e)}function tx(t,...e){if(t)return Ov(t,"batch")(...e)}function kv(t,...e){if(t)return Ov(t,"omit")(...e)}function HV(t,...e){if(t)return Ov(t,"pick")(...e)}function Av(...t){let e=t.reduce((r,o)=>{var i;let a=(i=o?.getState)==null?void 0:i.call(o);return a?Object.assign(r,a):r},{}),n=ko(e,...t);return Object.assign({},...t,n)}function Jf(t,e){if(process.env.NODE_ENV==="production"||!e)return;let n=Object.entries(t).filter(([i,a])=>i.startsWith("default")&&a!==void 0).map(([i])=>{var a;let l=i.replace("default","");return`${((a=l[0])==null?void 0:a.toLowerCase())||""}${l.slice(1)}`});if(!n.length)return;let r=e.getState();if(n.filter(i=>fs(r,i)).length)throw new Error(`Passing a store prop in conjunction with a default state is not supported.
241
241
 
242
242
  const store = useSelectStore();
243
243
  <SelectProvider store={store} defaultValue="Apple" />
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/uniform-mcp",
3
- "version": "20.42.2-alpha.7+7c73a42006",
3
+ "version": "20.43.0",
4
4
  "description": "Uniform MCP Server",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "bin": {
@@ -22,8 +22,8 @@
22
22
  "dependencies": {
23
23
  "@modelcontextprotocol/sdk": "^1.12.0",
24
24
  "@types/uuid": "9.0.4",
25
- "@uniformdev/canvas": "20.42.2-alpha.7+7c73a42006",
26
- "@uniformdev/project-map": "20.42.2-alpha.7+7c73a42006",
25
+ "@uniformdev/canvas": "20.43.0",
26
+ "@uniformdev/project-map": "20.43.0",
27
27
  "fast-json-patch": "^3.1.1",
28
28
  "immer": "10.1.1",
29
29
  "jsdom": "24.1.3",
@@ -38,11 +38,11 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/jsdom": "^27.0.0",
41
- "@uniformdev/design-system": "20.42.2-alpha.7+7c73a42006",
42
- "@uniformdev/files": "20.42.2-alpha.7+7c73a42006",
43
- "@uniformdev/mesh-edgehancer-sdk": "20.42.2-alpha.7+7c73a42006",
44
- "@uniformdev/richtext": "20.42.2-alpha.7+7c73a42006",
41
+ "@uniformdev/design-system": "20.43.0",
42
+ "@uniformdev/files": "20.43.0",
43
+ "@uniformdev/mesh-edgehancer-sdk": "20.43.0",
44
+ "@uniformdev/richtext": "20.43.0",
45
45
  "vitest": "3.2.4"
46
46
  },
47
- "gitHead": "7c73a420066036df69f25a0f423d56613f5ee0af"
47
+ "gitHead": "9a8037f9cd28afa60861e7de0fb8f6153482194f"
48
48
  }