velloo 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -41
- package/canvas/assets/index-CqXW6xA_.js +29 -0
- package/canvas/assets/index-gB0StCrx.css +2 -0
- package/canvas/assets/lucide-all-C_CNpsMs.js +1 -0
- package/canvas/assets/{radix-C3HaOB-d.js → radix-gmpYzWRH.js} +1 -1
- package/canvas/index.html +3 -3
- package/chunk-0zen7bzb.js +3 -0
- package/{chunk-h0c36khx.js → chunk-1jzhw3p4.js} +1 -1
- package/chunk-1n5kmsxb.js +2 -0
- package/{chunk-k6ferbam.js → chunk-2fgfex9b.js} +1 -1
- package/{chunk-t2ttkxe9.js → chunk-3g3dqej3.js} +1 -1
- package/chunk-3tmsrvaj.js +2 -0
- package/chunk-49cgk5s2.js +2 -0
- package/{chunk-e2ag33vd.js → chunk-4nqr089t.js} +2 -2
- package/chunk-52hxv18g.js +6 -0
- package/chunk-5ezzc1h2.js +688 -0
- package/{chunk-74skmg76.js → chunk-5wv5a52y.js} +1 -1
- package/chunk-6nzqhfqq.js +5 -0
- package/{chunk-fgw3hp2v.js → chunk-6zz9kfbd.js} +1 -1
- package/chunk-788t8y5x.js +2 -0
- package/chunk-7bvvbsqy.js +26 -0
- package/{chunk-cep3ktr3.js → chunk-7k7dpj5y.js} +1 -1
- package/{chunk-hs2j6s1v.js → chunk-7njj1qmq.js} +8 -31
- package/{chunk-8ssr8a8w.js → chunk-80fjfyha.js} +3 -6
- package/chunk-94vx1yb0.js +3 -0
- package/{chunk-n5007jcz.js → chunk-9f22qnge.js} +1 -1
- package/chunk-9g4tr0r6.js +2 -0
- package/{chunk-1gx45384.js → chunk-9nhw49vv.js} +7 -8
- package/{chunk-2z0k59hz.js → chunk-as08hzp3.js} +1 -1
- package/chunk-bhx8k09w.js +3 -0
- package/chunk-bpeezw7w.js +3 -0
- package/{chunk-b2ebm1t3.js → chunk-bvmtq0vn.js} +2 -2
- package/{chunk-w5rzk6ms.js → chunk-c4fym47a.js} +64 -20
- package/{chunk-d385435m.js → chunk-c6hywdvq.js} +1 -1
- package/{chunk-jnsfgtn9.js → chunk-cvn689d5.js} +1 -1
- package/chunk-cxzkkn12.js +2 -0
- package/{chunk-56vqqr8s.js → chunk-d9p6s05n.js} +1 -1
- package/{chunk-5js0qw32.js → chunk-dsks52m7.js} +1 -1
- package/{chunk-b7j86xq7.js → chunk-hfzg98c8.js} +1 -1
- package/{chunk-7e39xe21.js → chunk-js6mz7h1.js} +1 -1
- package/chunk-jx11jvq8.js +7 -0
- package/{chunk-2vx420g2.js → chunk-k6n249vb.js} +2 -2
- package/chunk-k7sehkm8.js +3 -0
- package/{chunk-k784090q.js → chunk-k9219kmj.js} +1 -1
- package/{chunk-65wb0g7d.js → chunk-kz4423th.js} +1 -1
- package/{chunk-g02nd9hn.js → chunk-m3czg1tt.js} +1 -1
- package/chunk-maz6z7tz.js +5 -0
- package/{chunk-rksq3w72.js → chunk-n9kcxaj7.js} +2 -2
- package/chunk-n9t36h0q.js +2 -0
- package/chunk-nr3ej3qf.js +5 -0
- package/{chunk-bk8b7f9a.js → chunk-nte0t7v3.js} +4 -3
- package/{chunk-kxk5x7g6.js → chunk-nycs0z7h.js} +1 -1
- package/{chunk-79ykzywe.js → chunk-pjtg3wnm.js} +1 -1
- package/chunk-qdnb2t6a.js +3 -0
- package/chunk-qgwhd4n6.js +86 -0
- package/chunk-sn9vg42q.js +2 -0
- package/{chunk-7p7ha0qk.js → chunk-t5bb30zy.js} +1 -1
- package/chunk-tbmkq7wy.js +6 -0
- package/chunk-tc4mzzfw.js +2 -0
- package/chunk-td5z2sm4.js +6 -0
- package/chunk-wa6qamwh.js +3 -0
- package/chunk-wcqqx6tz.js +2 -0
- package/chunk-wzngjjeb.js +10 -0
- package/chunk-xyfed1j0.js +2 -0
- package/chunk-y5r2w2z3.js +2 -0
- package/chunk-yeh9gb5w.js +3 -0
- package/cli.js +1 -1
- package/launcher.cjs +1 -1
- package/package.json +3 -3
- package/pkgs/helpers/src/descriptors.ts +7 -1
- package/pkgs/provider-antd/src/index.ts +1 -0
- package/pkgs/provider-chakra/src/index.ts +1 -0
- package/pkgs/provider-mui/src/index.ts +1 -0
- package/pkgs/provider-none/src/index.ts +42 -1
- package/pkgs/provider-none/src/intro.ts +2 -2
- package/pkgs/schema/src/config.ts +27 -1
- package/pkgs/schema/src/extension.ts +26 -0
- package/pkgs/schema/src/index.ts +18 -0
- package/pkgs/schema/src/migrate.ts +57 -4
- package/pkgs/schema/src/node.ts +99 -0
- package/pkgs/schema/src/repo.ts +98 -16
- package/pkgs/schema/src/screen.ts +7 -0
- package/pkgs/schema/src/svg-sanitize.ts +472 -59
- package/pkgs/shadcn-snapshot/dist/manifest.json +9 -1
- package/skills/velloo-setup/SKILL.md +70 -48
- package/canvas/assets/index-BCvDZiBo.css +0 -2
- package/canvas/assets/index-BcBJ11d2.js +0 -28
- package/canvas/assets/lucide-all-BdEyryfF.js +0 -1
- package/chunk-1bywxgc5.js +0 -4
- package/chunk-1y50g9vp.js +0 -2
- package/chunk-1yhc252b.js +0 -3
- package/chunk-2mv65qxs.js +0 -5
- package/chunk-329e3phg.js +0 -451
- package/chunk-40657ggd.js +0 -10
- package/chunk-582y60bv.js +0 -2
- package/chunk-5x173xay.js +0 -2
- package/chunk-75wbh438.js +0 -2
- package/chunk-7dggmqwq.js +0 -53
- package/chunk-946pcnt5.js +0 -5
- package/chunk-9vg3yafz.js +0 -3
- package/chunk-aapybh30.js +0 -6
- package/chunk-bjnhhsak.js +0 -2
- package/chunk-dt03awr1.js +0 -2
- package/chunk-erwfk47h.js +0 -3
- package/chunk-mq4znqv2.js +0 -2
- package/chunk-nfr3q7mg.js +0 -5
- package/chunk-nsqs1bqf.js +0 -2
- package/chunk-pphgrsxa.js +0 -2
- package/chunk-qpvj6kzq.js +0 -6
- package/chunk-qwv7xkms.js +0 -2
- package/chunk-tmtzxcs5.js +0 -2
- package/chunk-xr6f94rj.js +0 -2
- package/chunk-y0zxzefg.js +0 -5
- package/chunk-zf3xc1wz.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{clsx_default,helpersRegistry,parse_default,formatRgb,SX_PROP,catalogFromManifest,helperSourcePath}from"./chunk-329e3phg.js";import{require_react_is_development,require_object_assign,require_emotion_serialize_development_cjs,$_default,import_emotion_react_development_cjs,$_default2,$_default3}from"./chunk-7e39xe21.js";import{DEFAULT_TYPESET_NAME,typesetScale,resolveColors}from"./chunk-bk8b7f9a.js";import{_objectWithoutPropertiesLoose,_extends,_assertThisInitialized,_setPrototypeOf}from"./chunk-h6gchare.js";import{resolveProviderSrcDir}from"./chunk-fjbzk4sw.js";import{require_react_jsx_runtime_development}from"./chunk-d385435m.js";import{require_react_development,require_react_dom}from"./chunk-w5rzk6ms.js";import{__toESM,__commonJS}from"./chunk-2smsg2ct.js";import{MUI_VERSION}from"./chunk-mzhdrawd.js";var require_ReactPropTypesSecret=__commonJS(function(exports,module){var ReactPropTypesSecret="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";module.exports=ReactPropTypesSecret});var require_has=__commonJS(function(exports,module){module.exports=Function.call.bind(Object.prototype.hasOwnProperty)});var require_checkPropTypes=__commonJS(function(exports,module){var printWarning=function(){};ReactPropTypesSecret=require_ReactPropTypesSecret(),loggedTypeFailures={},has=require_has(),printWarning=function(text){var message="Warning: "+text;if(typeof console<"u")console.error(message);try{throw Error(message)}catch(x){}};var ReactPropTypesSecret,loggedTypeFailures,has;function checkPropTypes(typeSpecs,values,location,componentName,getStack){for(var typeSpecName in typeSpecs)if(has(typeSpecs,typeSpecName)){var error;try{if(typeof typeSpecs[typeSpecName]!=="function"){var err=Error((componentName||"React class")+": "+location+" type `"+typeSpecName+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof typeSpecs[typeSpecName]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw err.name="Invariant Violation",err}error=typeSpecs[typeSpecName](values,typeSpecName,componentName,location,null,ReactPropTypesSecret)}catch(ex){error=ex}if(error&&!(error instanceof Error))printWarning((componentName||"React class")+": type specification of "+location+" `"+typeSpecName+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof error+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).");if(error instanceof Error&&!(error.message in loggedTypeFailures)){loggedTypeFailures[error.message]=!0;var stack=getStack?getStack():"";printWarning("Failed "+location+" type: "+error.message+(stack!=null?stack:""))}}}checkPropTypes.resetWarningCache=function(){loggedTypeFailures={}};module.exports=checkPropTypes});var require_factoryWithTypeCheckers=__commonJS(function(exports,module){var ReactIs=__toESM(require_react_is_development()),assign=require_object_assign(),ReactPropTypesSecret=require_ReactPropTypesSecret(),has=require_has(),checkPropTypes=require_checkPropTypes(),printWarning=function(){};printWarning=function(text){var message="Warning: "+text;if(typeof console<"u")console.error(message);try{throw Error(message)}catch(x){}};function emptyFunctionThatReturnsNull(){return null}module.exports=function(isValidElement,throwOnDirectAccess){var ITERATOR_SYMBOL=typeof Symbol==="function"&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator";function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if(typeof iteratorFn==="function")return iteratorFn}var ANONYMOUS="<<anonymous>>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bigint:createPrimitiveTypeChecker("bigint"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createAnyTypeChecker(),arrayOf:createArrayOfTypeChecker,element:createElementTypeChecker(),elementType:createElementTypeTypeChecker(),instanceOf:createInstanceTypeChecker,node:createNodeChecker(),objectOf:createObjectOfTypeChecker,oneOf:createEnumTypeChecker,oneOfType:createUnionTypeChecker,shape:createShapeTypeChecker,exact:createStrictShapeTypeChecker};function is(x,y){if(x===y)return x!==0||1/x===1/y;else return x!==x&&y!==y}function PropTypeError(message,data){this.message=message,this.data=data&&typeof data==="object"?data:{},this.stack=""}PropTypeError.prototype=Error.prototype;function createChainableTypeChecker(validate){var manualPropTypeCallCache={},manualPropTypeWarningCount=0;function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret){if(throwOnDirectAccess){var err=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw err.name="Invariant Violation",err}else if(typeof console<"u"){var cacheKey=componentName+":"+propName;if(!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3)printWarning("You are manually calling a React.PropTypes validation function for the `"+propFullName+"` prop on `"+componentName+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++}}if(props[propName]==null){if(isRequired){if(props[propName]===null)return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required "+("in `"+componentName+"`, but its value is `null`."));return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required in "+("`"+componentName+"`, but its value is `undefined`."))}return null}else return validate(props,propName,componentName,location,propFullName)}var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){function validate(props,propName,componentName,location,propFullName,secret){var propValue=props[propName],propType=getPropType(propValue);if(propType!==expectedType){var preciseType=getPreciseType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+preciseType+"` supplied to `"+componentName+"`, expected ")+("`"+expectedType+"`."),{expectedType})}return null}return createChainableTypeChecker(validate)}function createAnyTypeChecker(){return createChainableTypeChecker(emptyFunctionThatReturnsNull)}function createArrayOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function")return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an array."))}for(var i=0;i<propValue.length;i++){var error=typeChecker(propValue,i,componentName,location,propFullName+"["+i+"]",ReactPropTypesSecret);if(error instanceof Error)return error}return null}return createChainableTypeChecker(validate)}function createElementTypeChecker(){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];if(!isValidElement(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected a single ReactElement."))}return null}return createChainableTypeChecker(validate)}function createElementTypeTypeChecker(){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];if(!ReactIs.isValidElementType(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected a single ReactElement type."))}return null}return createChainableTypeChecker(validate)}function createInstanceTypeChecker(expectedClass){function validate(props,propName,componentName,location,propFullName){if(!(props[propName]instanceof expectedClass)){var expectedClassName=expectedClass.name||ANONYMOUS,actualClassName=getClassName(props[propName]);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+actualClassName+"` supplied to `"+componentName+"`, expected ")+("instance of `"+expectedClassName+"`."))}return null}return createChainableTypeChecker(validate)}function createEnumTypeChecker(expectedValues){if(!Array.isArray(expectedValues)){if(arguments.length>1)printWarning("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).");else printWarning("Invalid argument supplied to oneOf, expected an array.");return emptyFunctionThatReturnsNull}function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];for(var i=0;i<expectedValues.length;i++)if(is(propValue,expectedValues[i]))return null;var valuesString=JSON.stringify(expectedValues,function(key,value){var type=getPreciseType(value);if(type==="symbol")return String(value);return value});return new PropTypeError("Invalid "+location+" `"+propFullName+"` of value `"+String(propValue)+"` "+("supplied to `"+componentName+"`, expected one of "+valuesString+"."))}return createChainableTypeChecker(validate)}function createObjectOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function")return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside objectOf.");var propValue=props[propName],propType=getPropType(propValue);if(propType!=="object")return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an object."));for(var key in propValue)if(has(propValue,key)){var error=typeChecker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error instanceof Error)return error}return null}return createChainableTypeChecker(validate)}function createUnionTypeChecker(arrayOfTypeCheckers){if(!Array.isArray(arrayOfTypeCheckers))return printWarning("Invalid argument supplied to oneOfType, expected an instance of array."),emptyFunctionThatReturnsNull;for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i];if(typeof checker!=="function")return printWarning("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+getPostfixForTypeWarning(checker)+" at index "+i+"."),emptyFunctionThatReturnsNull}function validate(props,propName,componentName,location,propFullName){var expectedTypes=[];for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i],checkerResult=checker(props,propName,componentName,location,propFullName,ReactPropTypesSecret);if(checkerResult==null)return null;if(checkerResult.data&&has(checkerResult.data,"expectedType"))expectedTypes.push(checkerResult.data.expectedType)}var expectedTypesMessage=expectedTypes.length>0?", expected one of type ["+expectedTypes.join(", ")+"]":"";return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`"+expectedTypesMessage+"."))}return createChainableTypeChecker(validate)}function createNodeChecker(){function validate(props,propName,componentName,location,propFullName){if(!isNode(props[propName]))return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`, expected a ReactNode."));return null}return createChainableTypeChecker(validate)}function invalidValidatorError(componentName,location,propFullName,key,type){return new PropTypeError((componentName||"React class")+": "+location+" type `"+propFullName+"."+key+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+type+"`.")}function createShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName],propType=getPropType(propValue);if(propType!=="object")return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."));for(var key in shapeTypes){var checker=shapeTypes[key];if(typeof checker!=="function")return invalidValidatorError(componentName,location,propFullName,key,getPreciseType(checker));var error=checker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error)return error}return null}return createChainableTypeChecker(validate)}function createStrictShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName],propType=getPropType(propValue);if(propType!=="object")return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."));var allKeys=assign({},props[propName],shapeTypes);for(var key in allKeys){var checker=shapeTypes[key];if(has(shapeTypes,key)&&typeof checker!=="function")return invalidValidatorError(componentName,location,propFullName,key,getPreciseType(checker));if(!checker)return new PropTypeError("Invalid "+location+" `"+propFullName+"` key `"+key+"` supplied to `"+componentName+"`.\nBad object: "+JSON.stringify(props[propName],null," ")+`
|
|
2
|
+
import{clsx_default,helpersRegistry,parse_default,formatRgb,SX_PROP,catalogFromManifest,helperSourcePath}from"./chunk-5ezzc1h2.js";import{require_react_is_development,require_object_assign,require_emotion_serialize_development_cjs,$_default,import_emotion_react_development_cjs,$_default2,$_default3}from"./chunk-js6mz7h1.js";import{resolveColors,DEFAULT_TYPESET_NAME,typesetScale}from"./chunk-nte0t7v3.js";import{_objectWithoutPropertiesLoose,_extends,_assertThisInitialized,_setPrototypeOf}from"./chunk-h6gchare.js";import{resolveProviderSrcDir}from"./chunk-fjbzk4sw.js";import{require_react_jsx_runtime_development}from"./chunk-c6hywdvq.js";import{require_react_development,require_react_dom}from"./chunk-c4fym47a.js";import{__toESM,__commonJS}from"./chunk-2smsg2ct.js";import{MUI_VERSION}from"./chunk-mzhdrawd.js";var require_ReactPropTypesSecret=__commonJS(function(exports,module){var ReactPropTypesSecret="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";module.exports=ReactPropTypesSecret});var require_has=__commonJS(function(exports,module){module.exports=Function.call.bind(Object.prototype.hasOwnProperty)});var require_checkPropTypes=__commonJS(function(exports,module){var printWarning=function(){};ReactPropTypesSecret=require_ReactPropTypesSecret(),loggedTypeFailures={},has=require_has(),printWarning=function(text){var message="Warning: "+text;if(typeof console<"u")console.error(message);try{throw Error(message)}catch(x){}};var ReactPropTypesSecret,loggedTypeFailures,has;function checkPropTypes(typeSpecs,values,location,componentName,getStack){for(var typeSpecName in typeSpecs)if(has(typeSpecs,typeSpecName)){var error;try{if(typeof typeSpecs[typeSpecName]!=="function"){var err=Error((componentName||"React class")+": "+location+" type `"+typeSpecName+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof typeSpecs[typeSpecName]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw err.name="Invariant Violation",err}error=typeSpecs[typeSpecName](values,typeSpecName,componentName,location,null,ReactPropTypesSecret)}catch(ex){error=ex}if(error&&!(error instanceof Error))printWarning((componentName||"React class")+": type specification of "+location+" `"+typeSpecName+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof error+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).");if(error instanceof Error&&!(error.message in loggedTypeFailures)){loggedTypeFailures[error.message]=!0;var stack=getStack?getStack():"";printWarning("Failed "+location+" type: "+error.message+(stack!=null?stack:""))}}}checkPropTypes.resetWarningCache=function(){loggedTypeFailures={}};module.exports=checkPropTypes});var require_factoryWithTypeCheckers=__commonJS(function(exports,module){var ReactIs=__toESM(require_react_is_development()),assign=require_object_assign(),ReactPropTypesSecret=require_ReactPropTypesSecret(),has=require_has(),checkPropTypes=require_checkPropTypes(),printWarning=function(){};printWarning=function(text){var message="Warning: "+text;if(typeof console<"u")console.error(message);try{throw Error(message)}catch(x){}};function emptyFunctionThatReturnsNull(){return null}module.exports=function(isValidElement,throwOnDirectAccess){var ITERATOR_SYMBOL=typeof Symbol==="function"&&Symbol.iterator,FAUX_ITERATOR_SYMBOL="@@iterator";function getIteratorFn(maybeIterable){var iteratorFn=maybeIterable&&(ITERATOR_SYMBOL&&maybeIterable[ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL]);if(typeof iteratorFn==="function")return iteratorFn}var ANONYMOUS="<<anonymous>>",ReactPropTypes={array:createPrimitiveTypeChecker("array"),bigint:createPrimitiveTypeChecker("bigint"),bool:createPrimitiveTypeChecker("boolean"),func:createPrimitiveTypeChecker("function"),number:createPrimitiveTypeChecker("number"),object:createPrimitiveTypeChecker("object"),string:createPrimitiveTypeChecker("string"),symbol:createPrimitiveTypeChecker("symbol"),any:createAnyTypeChecker(),arrayOf:createArrayOfTypeChecker,element:createElementTypeChecker(),elementType:createElementTypeTypeChecker(),instanceOf:createInstanceTypeChecker,node:createNodeChecker(),objectOf:createObjectOfTypeChecker,oneOf:createEnumTypeChecker,oneOfType:createUnionTypeChecker,shape:createShapeTypeChecker,exact:createStrictShapeTypeChecker};function is(x,y){if(x===y)return x!==0||1/x===1/y;else return x!==x&&y!==y}function PropTypeError(message,data){this.message=message,this.data=data&&typeof data==="object"?data:{},this.stack=""}PropTypeError.prototype=Error.prototype;function createChainableTypeChecker(validate){var manualPropTypeCallCache={},manualPropTypeWarningCount=0;function checkType(isRequired,props,propName,componentName,location,propFullName,secret){if(componentName=componentName||ANONYMOUS,propFullName=propFullName||propName,secret!==ReactPropTypesSecret){if(throwOnDirectAccess){var err=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw err.name="Invariant Violation",err}else if(typeof console<"u"){var cacheKey=componentName+":"+propName;if(!manualPropTypeCallCache[cacheKey]&&manualPropTypeWarningCount<3)printWarning("You are manually calling a React.PropTypes validation function for the `"+propFullName+"` prop on `"+componentName+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),manualPropTypeCallCache[cacheKey]=!0,manualPropTypeWarningCount++}}if(props[propName]==null){if(isRequired){if(props[propName]===null)return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required "+("in `"+componentName+"`, but its value is `null`."));return new PropTypeError("The "+location+" `"+propFullName+"` is marked as required in "+("`"+componentName+"`, but its value is `undefined`."))}return null}else return validate(props,propName,componentName,location,propFullName)}var chainedCheckType=checkType.bind(null,!1);return chainedCheckType.isRequired=checkType.bind(null,!0),chainedCheckType}function createPrimitiveTypeChecker(expectedType){function validate(props,propName,componentName,location,propFullName,secret){var propValue=props[propName],propType=getPropType(propValue);if(propType!==expectedType){var preciseType=getPreciseType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+preciseType+"` supplied to `"+componentName+"`, expected ")+("`"+expectedType+"`."),{expectedType})}return null}return createChainableTypeChecker(validate)}function createAnyTypeChecker(){return createChainableTypeChecker(emptyFunctionThatReturnsNull)}function createArrayOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function")return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside arrayOf.");var propValue=props[propName];if(!Array.isArray(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an array."))}for(var i=0;i<propValue.length;i++){var error=typeChecker(propValue,i,componentName,location,propFullName+"["+i+"]",ReactPropTypesSecret);if(error instanceof Error)return error}return null}return createChainableTypeChecker(validate)}function createElementTypeChecker(){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];if(!isValidElement(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected a single ReactElement."))}return null}return createChainableTypeChecker(validate)}function createElementTypeTypeChecker(){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];if(!ReactIs.isValidElementType(propValue)){var propType=getPropType(propValue);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected a single ReactElement type."))}return null}return createChainableTypeChecker(validate)}function createInstanceTypeChecker(expectedClass){function validate(props,propName,componentName,location,propFullName){if(!(props[propName]instanceof expectedClass)){var expectedClassName=expectedClass.name||ANONYMOUS,actualClassName=getClassName(props[propName]);return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+actualClassName+"` supplied to `"+componentName+"`, expected ")+("instance of `"+expectedClassName+"`."))}return null}return createChainableTypeChecker(validate)}function createEnumTypeChecker(expectedValues){if(!Array.isArray(expectedValues)){if(arguments.length>1)printWarning("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).");else printWarning("Invalid argument supplied to oneOf, expected an array.");return emptyFunctionThatReturnsNull}function validate(props,propName,componentName,location,propFullName){var propValue=props[propName];for(var i=0;i<expectedValues.length;i++)if(is(propValue,expectedValues[i]))return null;var valuesString=JSON.stringify(expectedValues,function(key,value){var type=getPreciseType(value);if(type==="symbol")return String(value);return value});return new PropTypeError("Invalid "+location+" `"+propFullName+"` of value `"+String(propValue)+"` "+("supplied to `"+componentName+"`, expected one of "+valuesString+"."))}return createChainableTypeChecker(validate)}function createObjectOfTypeChecker(typeChecker){function validate(props,propName,componentName,location,propFullName){if(typeof typeChecker!=="function")return new PropTypeError("Property `"+propFullName+"` of component `"+componentName+"` has invalid PropType notation inside objectOf.");var propValue=props[propName],propType=getPropType(propValue);if(propType!=="object")return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type "+("`"+propType+"` supplied to `"+componentName+"`, expected an object."));for(var key in propValue)if(has(propValue,key)){var error=typeChecker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error instanceof Error)return error}return null}return createChainableTypeChecker(validate)}function createUnionTypeChecker(arrayOfTypeCheckers){if(!Array.isArray(arrayOfTypeCheckers))return printWarning("Invalid argument supplied to oneOfType, expected an instance of array."),emptyFunctionThatReturnsNull;for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i];if(typeof checker!=="function")return printWarning("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+getPostfixForTypeWarning(checker)+" at index "+i+"."),emptyFunctionThatReturnsNull}function validate(props,propName,componentName,location,propFullName){var expectedTypes=[];for(var i=0;i<arrayOfTypeCheckers.length;i++){var checker=arrayOfTypeCheckers[i],checkerResult=checker(props,propName,componentName,location,propFullName,ReactPropTypesSecret);if(checkerResult==null)return null;if(checkerResult.data&&has(checkerResult.data,"expectedType"))expectedTypes.push(checkerResult.data.expectedType)}var expectedTypesMessage=expectedTypes.length>0?", expected one of type ["+expectedTypes.join(", ")+"]":"";return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`"+expectedTypesMessage+"."))}return createChainableTypeChecker(validate)}function createNodeChecker(){function validate(props,propName,componentName,location,propFullName){if(!isNode(props[propName]))return new PropTypeError("Invalid "+location+" `"+propFullName+"` supplied to "+("`"+componentName+"`, expected a ReactNode."));return null}return createChainableTypeChecker(validate)}function invalidValidatorError(componentName,location,propFullName,key,type){return new PropTypeError((componentName||"React class")+": "+location+" type `"+propFullName+"."+key+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+type+"`.")}function createShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName],propType=getPropType(propValue);if(propType!=="object")return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."));for(var key in shapeTypes){var checker=shapeTypes[key];if(typeof checker!=="function")return invalidValidatorError(componentName,location,propFullName,key,getPreciseType(checker));var error=checker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error)return error}return null}return createChainableTypeChecker(validate)}function createStrictShapeTypeChecker(shapeTypes){function validate(props,propName,componentName,location,propFullName){var propValue=props[propName],propType=getPropType(propValue);if(propType!=="object")return new PropTypeError("Invalid "+location+" `"+propFullName+"` of type `"+propType+"` "+("supplied to `"+componentName+"`, expected `object`."));var allKeys=assign({},props[propName],shapeTypes);for(var key in allKeys){var checker=shapeTypes[key];if(has(shapeTypes,key)&&typeof checker!=="function")return invalidValidatorError(componentName,location,propFullName,key,getPreciseType(checker));if(!checker)return new PropTypeError("Invalid "+location+" `"+propFullName+"` key `"+key+"` supplied to `"+componentName+"`.\nBad object: "+JSON.stringify(props[propName],null," ")+`
|
|
3
3
|
Valid keys: `+JSON.stringify(Object.keys(shapeTypes),null," "));var error=checker(propValue,key,componentName,location,propFullName+"."+key,ReactPropTypesSecret);if(error)return error}return null}return createChainableTypeChecker(validate)}function isNode(propValue){switch(typeof propValue){case"number":case"string":case"undefined":return!0;case"boolean":return!propValue;case"object":if(Array.isArray(propValue))return propValue.every(isNode);if(propValue===null||isValidElement(propValue))return!0;var iteratorFn=getIteratorFn(propValue);if(iteratorFn){var iterator=iteratorFn.call(propValue),step;if(iteratorFn!==propValue.entries){while(!(step=iterator.next()).done)if(!isNode(step.value))return!1}else while(!(step=iterator.next()).done){var entry=step.value;if(entry){if(!isNode(entry[1]))return!1}}}else return!1;return!0;default:return!1}}function isSymbol(propType,propValue){if(propType==="symbol")return!0;if(!propValue)return!1;if(propValue["@@toStringTag"]==="Symbol")return!0;if(typeof Symbol==="function"&&propValue instanceof Symbol)return!0;return!1}function getPropType(propValue){var propType=typeof propValue;if(Array.isArray(propValue))return"array";if(propValue instanceof RegExp)return"object";if(isSymbol(propType,propValue))return"symbol";return propType}function getPreciseType(propValue){if(typeof propValue>"u"||propValue===null)return""+propValue;var propType=getPropType(propValue);if(propType==="object"){if(propValue instanceof Date)return"date";else if(propValue instanceof RegExp)return"regexp"}return propType}function getPostfixForTypeWarning(value){var type=getPreciseType(value);switch(type){case"array":case"object":return"an "+type;case"boolean":case"date":case"regexp":return"a "+type;default:return type}}function getClassName(propValue){if(!propValue.constructor||!propValue.constructor.name)return ANONYMOUS;return propValue.constructor.name}return ReactPropTypes.checkPropTypes=checkPropTypes,ReactPropTypes.resetWarningCache=checkPropTypes.resetWarningCache,ReactPropTypes.PropTypes=ReactPropTypes,ReactPropTypes}});var require_prop_types=__commonJS(function(exports,module){var ReactIs=__toESM(require_react_is_development());throwOnDirectAccess=!0,module.exports=require_factoryWithTypeCheckers()(ReactIs.isElement,throwOnDirectAccess);var throwOnDirectAccess});var require_react_is_development2=__commonJS(function(exports){(function(){function typeOf(object){if(typeof object==="object"&&object!==null){var $$typeof=object.$$typeof;switch($$typeof){case REACT_ELEMENT_TYPE:switch(object=object.type,object){case REACT_FRAGMENT_TYPE:case REACT_PROFILER_TYPE:case REACT_STRICT_MODE_TYPE:case REACT_SUSPENSE_TYPE:case REACT_SUSPENSE_LIST_TYPE:case REACT_VIEW_TRANSITION_TYPE:return object;default:switch(object=object&&object.$$typeof,object){case REACT_CONTEXT_TYPE:case REACT_FORWARD_REF_TYPE:case REACT_LAZY_TYPE:case REACT_MEMO_TYPE:return object;case REACT_CONSUMER_TYPE:return object;default:return $$typeof}}case REACT_PORTAL_TYPE:return $$typeof}}}var REACT_ELEMENT_TYPE=Symbol.for("react.transitional.element"),REACT_PORTAL_TYPE=Symbol.for("react.portal"),REACT_FRAGMENT_TYPE=Symbol.for("react.fragment"),REACT_STRICT_MODE_TYPE=Symbol.for("react.strict_mode"),REACT_PROFILER_TYPE=Symbol.for("react.profiler"),REACT_CONSUMER_TYPE=Symbol.for("react.consumer"),REACT_CONTEXT_TYPE=Symbol.for("react.context"),REACT_FORWARD_REF_TYPE=Symbol.for("react.forward_ref"),REACT_SUSPENSE_TYPE=Symbol.for("react.suspense"),REACT_SUSPENSE_LIST_TYPE=Symbol.for("react.suspense_list"),REACT_MEMO_TYPE=Symbol.for("react.memo"),REACT_LAZY_TYPE=Symbol.for("react.lazy"),REACT_VIEW_TRANSITION_TYPE=Symbol.for("react.view_transition"),REACT_CLIENT_REFERENCE=Symbol.for("react.client.reference");exports.ContextConsumer=REACT_CONSUMER_TYPE,exports.ContextProvider=REACT_CONTEXT_TYPE,exports.Element=REACT_ELEMENT_TYPE,exports.ForwardRef=REACT_FORWARD_REF_TYPE,exports.Fragment=REACT_FRAGMENT_TYPE,exports.Lazy=REACT_LAZY_TYPE,exports.Memo=REACT_MEMO_TYPE,exports.Portal=REACT_PORTAL_TYPE,exports.Profiler=REACT_PROFILER_TYPE,exports.StrictMode=REACT_STRICT_MODE_TYPE,exports.Suspense=REACT_SUSPENSE_TYPE,exports.SuspenseList=REACT_SUSPENSE_LIST_TYPE,exports.isContextConsumer=function(object){return typeOf(object)===REACT_CONSUMER_TYPE},exports.isContextProvider=function(object){return typeOf(object)===REACT_CONTEXT_TYPE},exports.isElement=function(object){return typeof object==="object"&&object!==null&&object.$$typeof===REACT_ELEMENT_TYPE},exports.isForwardRef=function(object){return typeOf(object)===REACT_FORWARD_REF_TYPE},exports.isFragment=function(object){return typeOf(object)===REACT_FRAGMENT_TYPE},exports.isLazy=function(object){return typeOf(object)===REACT_LAZY_TYPE},exports.isMemo=function(object){return typeOf(object)===REACT_MEMO_TYPE},exports.isPortal=function(object){return typeOf(object)===REACT_PORTAL_TYPE},exports.isProfiler=function(object){return typeOf(object)===REACT_PROFILER_TYPE},exports.isStrictMode=function(object){return typeOf(object)===REACT_STRICT_MODE_TYPE},exports.isSuspense=function(object){return typeOf(object)===REACT_SUSPENSE_TYPE},exports.isSuspenseList=function(object){return typeOf(object)===REACT_SUSPENSE_LIST_TYPE},exports.isValidElementType=function(type){return typeof type==="string"||typeof type==="function"||type===REACT_FRAGMENT_TYPE||type===REACT_PROFILER_TYPE||type===REACT_STRICT_MODE_TYPE||type===REACT_SUSPENSE_TYPE||type===REACT_SUSPENSE_LIST_TYPE||typeof type==="object"&&type!==null&&(type.$$typeof===REACT_LAZY_TYPE||type.$$typeof===REACT_MEMO_TYPE||type.$$typeof===REACT_CONTEXT_TYPE||type.$$typeof===REACT_CONSUMER_TYPE||type.$$typeof===REACT_FORWARD_REF_TYPE||type.$$typeof===REACT_CLIENT_REFERENCE||type.getModuleId!==void 0)?!0:!1},exports.typeOf=typeOf})()});import{dirname,join}from"path";import{fileURLToPath}from"url";var MUI_INTRO=["**This folder targets Material UI.** Components are real MUI: `Box`/`Stack`/`Container`/`Paper` for layout, `Card`/`CardContent`/`CardHeader`/`CardActions`, `Typography` (ALL text \u2014 pick `variant` for the type scale), `Button`/`IconButton`, `TextField`, `Chip`, `Divider`, `Avatar`, `List`/`ListItem`, `Table*`, `Tabs`/`Tab`, `Alert`, `Tooltip`, and the overlay surface `Dialog`/`Menu`/`Popover`/`Drawer`/`Snackbar` (rendered open + inline in design mode). Call `list_components` for the full set and per-component `example` props.","",'**Style through `sx`.** `update_props { style: { display: "flex", alignItems: "center", gap: 2, p: 3, color: "primary.main" } }` \u2014 an object of MUI system props, where spacing is theme units (`p: 2` = 16px). It merges shallowly; an inner `null` drops a key, `style: null` clears. `emit_code` emits `<Component sx={{\u2026}} />` importing from `@mui/material`; `emit_theme` emits a `createTheme(...)` module. Tailwind utility diagnostics do not apply here \u2014 style via `sx` plus the shared theme tokens from `get_theme`, which project onto MUI.',""];var sx={name:"sx",type:"SxProps | undefined",optional:!0,control:"string"},children={name:"children",type:"ReactNode",optional:!0,control:"string"},enumProp=(name,values,defaultValue)=>({name,type:values.map((v)=>`"${v}"`).join(" | "),optional:!0,control:"enum",enumValues:values,defaultValue});function ui(id,props,notes,example){return{id,category:"ui",source:"mui",props:[...props,sx],designModeNotes:notes,example}}var className={name:"className",type:"string | undefined",optional:!0,control:"string"};function helper(id,props,notes,example){return{id,category:"ui",source:"velloo",props:[...props,className],designModeNotes:notes,example}}var MUI_MANIFEST=[ui("Box",[children],"Generic layout primitive; style via sx."),ui("Stack",[children,enumProp("direction",["row","column"],"column")],"Flex layout; set spacing via sx or the spacing prop."),ui("Container",[children,enumProp("maxWidth",["xs","sm","md","lg","xl"],"lg")],"Centers + max-widths content."),ui("Paper",[children,enumProp("variant",["elevation","outlined"],"elevation")]),ui("Card",[children,enumProp("variant",["elevation","outlined"],"elevation")]),ui("CardContent",[children]),ui("CardHeader",[{name:"title",type:"ReactNode",optional:!0,control:"string"},{name:"subheader",type:"ReactNode",optional:!0,control:"string"}]),ui("CardActions",[children]),ui("Button",[children,enumProp("variant",["text","outlined","contained"],"text"),enumProp("color",["primary","secondary","success","error","inherit"],"primary"),enumProp("size",["small","medium","large"],"medium")],"Action button.",{variant:"contained",color:"primary",children:"Submit"}),ui("Typography",[children,enumProp("variant",["h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","caption","overline"],"body1"),enumProp("color",["text.primary","text.secondary","primary","error"])],"All text. Pick variant for the type scale; this is MUI's Heading + Text.",{variant:"h4",children:"Team analytics"}),ui("TextField",[enumProp("variant",["outlined","filled","standard"],"outlined"),{name:"label",type:"string",optional:!0,control:"string"},{name:"placeholder",type:"string",optional:!0,control:"string"}]),ui("Chip",[{name:"label",type:"ReactNode",optional:!0,control:"string"},enumProp("variant",["filled","outlined"],"filled"),enumProp("color",["default","primary","success","warning","error"],"default"),enumProp("size",["small","medium"],"medium")]),ui("Divider",[]),ui("Avatar",[children,{name:"src",type:"string",optional:!0,control:"string"}]),ui("LinearProgress",[{name:"value",type:"number",optional:!0,control:"number"},enumProp("variant",["determinate","indeterminate"],"indeterminate")]),ui("AppBar",[children,enumProp("position",["fixed","static","sticky"],"fixed"),enumProp("color",["primary","default","transparent","inherit"],"primary")]),ui("Toolbar",[children]),ui("IconButton",[children,enumProp("size",["small","medium","large"],"medium")]),ui("Link",[children,{name:"href",type:"string",optional:!0,control:"string"}]),ui("List",[children]),ui("ListItem",[children]),ui("ListItemText",[{name:"primary",type:"ReactNode",optional:!0,control:"string"},{name:"secondary",type:"ReactNode",optional:!0,control:"string"}]),ui("Table",[children]),ui("TableHead",[children]),ui("TableBody",[children]),ui("TableRow",[children]),ui("TableCell",[children,enumProp("align",["left","center","right"],"left")]),ui("Tabs",[children,{name:"value",type:"number | string",optional:!0,control:"string"}]),ui("Tab",[{name:"label",type:"ReactNode",optional:!0,control:"string"}]),ui("Badge",[children,{name:"badgeContent",type:"ReactNode",optional:!0,control:"string"}]),ui("Checkbox",[{name:"checked",type:"boolean",optional:!0,control:"boolean"}]),ui("Switch",[{name:"checked",type:"boolean",optional:!0,control:"boolean"}]),ui("Select",[children,enumProp("variant",["outlined","filled","standard"],"outlined")]),ui("MenuItem",[children,{name:"value",type:"string | number",optional:!0,control:"string"}]),ui("Tooltip",[children,{name:"title",type:"ReactNode",optional:!0,control:"string"}]),ui("Alert",[children,enumProp("severity",["success","info","warning","error"],"success")]),ui("Dialog",[children,enumProp("maxWidth",["xs","sm","md","lg","xl"],"sm")],"Modal dialog surface \u2014 renders open + inline in design mode. Fill it with DialogTitle / DialogContent / DialogActions.",{maxWidth:"sm"}),ui("DialogTitle",[children],"The dialog's heading row."),ui("DialogContent",[children],"The dialog's body."),ui("DialogContentText",[children],"Secondary text inside DialogContent."),ui("DialogActions",[children],"The dialog's button row (right-aligned)."),ui("Menu",[children],"A menu surface holding MenuItems \u2014 renders open + inline in design mode."),ui("Popover",[children],"A popover surface \u2014 renders open + inline in design mode."),ui("Drawer",[children],"A side panel \u2014 renders inline as a fixed-width column in design mode."),ui("Snackbar",[children,{name:"message",type:"ReactNode",optional:!0,control:"string"}],"A toast \u2014 renders inline as a dark pill in design mode. Use `message` or children.",{message:"Saved"}),helper("Icon",[{name:"name",type:"string",optional:!1,control:"icon"},{name:"size",type:"number",optional:!0,control:"number"}],"A lucide icon \u2014 MUI has no bundled icon set. Set the pixel `size` prop (not Tailwind). `name` is a lucide id (PascalCase or kebab). Emits a `lucide-react` import.",{name:"ArrowRight",size:20}),helper("Image",[{name:"src",type:"string",optional:!1,control:"string"},{name:"alt",type:"string",optional:!1,control:"string"}],"An image. Use velloo assets (`/assets/\u2026`) or a URL."),helper("Placeholder",[{name:"label",type:"string",optional:!0,control:"string"}],"A labeled placeholder box for imagery you haven't authored yet (avatars, hero shots)."),helper("SVG",[{name:"content",type:"string",optional:!1,control:"string"},{name:"viewBox",type:"string",optional:!1,control:"string"}],"Raw inline SVG markup."),helper("Layer",[children],"An absolutely-positioned overlay layer for stacked composition."),helper("Gradient",[{name:"from",type:"string",optional:!0,control:"color"}],"A gradient fill block."),helper("Prose",[children,{name:"preset",type:"string",optional:!0,control:"string"},{name:"as",type:"string",optional:!0,control:"string"}],"A long-form content region. Everything inside \u2014 Typography, headings, lists, quotes, code, tables \u2014 picks up the theme typeset's proportions and vertical rhythm automatically. `preset` selects a named typeset (see set_typeset). Reach for this for articles, docs, and marketing copy instead of setting sizes block by block.",{as:"article"})];var React49=__toESM(require_react_development()),import_prop_types26=__toESM(require_prop_types());function composeClasses(slots,getUtilityClass,classes=void 0){let output={};for(let slotName in slots){let slot=slots[slotName],buffer="",start=!0;for(let i=0;i<slot.length;i+=1){let value=slot[i];if(value){if(buffer+=(start===!0?"":" ")+getUtilityClass(value),start=!1,classes&&classes[value])buffer+=" "+classes[value]}}output[slotName]=buffer}return output}function clamp(val,min=Number.MIN_SAFE_INTEGER,max=Number.MAX_SAFE_INTEGER){return Math.max(min,Math.min(val,max))}var clamp_default=clamp;function clampWrapper(value,min=0,max=1){if(value<min||value>max)console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);return clamp_default(value,min,max)}function hexToRgb(color){color=color.slice(1);let re=new RegExp(`.{1,${color.length>=6?2:1}}`,"g"),colors=color.match(re);if(colors&&colors[0].length===1)colors=colors.map((n)=>n+n);if(color.length!==color.trim().length)console.error(`MUI: The color: "${color}" is invalid. Make sure the color input doesn't contain leading/trailing space.`);return colors?`rgb${colors.length===4?"a":""}(${colors.map((n,index)=>index<3?parseInt(n,16):Math.round(parseInt(n,16)/255*1000)/1000).join(", ")})`:""}function decomposeColor(color){if(color.type)return color;if(color.charAt(0)==="#")return decomposeColor(hexToRgb(color));let marker=color.indexOf("("),type=color.substring(0,marker);if(!["rgb","rgba","hsl","hsla","color"].includes(type))throw Error(`MUI: Unsupported \`${color}\` color.
|
|
4
4
|
The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().`);let values=color.substring(marker+1,color.length-1),colorSpace;if(type==="color"){if(values=values.split(" "),colorSpace=values.shift(),values.length===4&&values[3].charAt(0)==="/")values[3]=values[3].slice(1);if(!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(colorSpace))throw Error(`MUI: unsupported \`${colorSpace}\` color space.
|
|
5
5
|
The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.`)}else values=values.split(",");return values=values.map((value)=>parseFloat(value)),{type,values,colorSpace}}var colorChannel=(color)=>{let decomposedColor=decomposeColor(color);return decomposedColor.values.slice(0,3).map((val,idx)=>decomposedColor.type.includes("hsl")&&idx!==0?`${val}%`:val).join(" ")},private_safeColorChannel=(color,warning)=>{try{return colorChannel(color)}catch(error){if(warning)console.warn(warning);return color}};function recomposeColor(color){let{type,colorSpace}=color,{values}=color;if(type.includes("rgb"))values=values.map((n,i)=>i<3?parseInt(n,10):n);else if(type.includes("hsl"))values[1]=`${values[1]}%`,values[2]=`${values[2]}%`;if(type.includes("color"))values=`${colorSpace} ${values.join(" ")}`;else values=`${values.join(", ")}`;return`${type}(${values})`}function hslToRgb(color){color=decomposeColor(color);let{values}=color,h=values[0],s=values[1]/100,l=values[2]/100,a=s*Math.min(l,1-l),f=(n,k=(n+h/30)%12)=>l-a*Math.max(Math.min(k-3,9-k,1),-1),type="rgb",rgb=[Math.round(f(0)*255),Math.round(f(8)*255),Math.round(f(4)*255)];if(color.type==="hsla")type+="a",rgb.push(values[3]);return recomposeColor({type,values:rgb})}function getLuminance(color){color=decomposeColor(color);let rgb=color.type==="hsl"||color.type==="hsla"?decomposeColor(hslToRgb(color)).values:color.values;return rgb=rgb.map((val)=>{if(color.type!=="color")val/=255;return val<=0.03928?val/12.92:((val+0.055)/1.055)**2.4}),Number((0.2126*rgb[0]+0.7152*rgb[1]+0.0722*rgb[2]).toFixed(3))}function getContrastRatio(foreground,background){let lumA=getLuminance(foreground),lumB=getLuminance(background);return(Math.max(lumA,lumB)+0.05)/(Math.min(lumA,lumB)+0.05)}function alpha(color,value){if(color=decomposeColor(color),value=clampWrapper(value),color.type==="rgb"||color.type==="hsl")color.type+="a";if(color.type==="color")color.values[3]=`/${value}`;else color.values[3]=value;return recomposeColor(color)}function private_safeAlpha(color,value,warning){try{return alpha(color,value)}catch(error){if(warning)console.warn(warning);return color}}function darken(color,coefficient){if(color=decomposeColor(color),coefficient=clampWrapper(coefficient),color.type.includes("hsl"))color.values[2]*=1-coefficient;else if(color.type.includes("rgb")||color.type.includes("color"))for(let i=0;i<3;i+=1)color.values[i]*=1-coefficient;return recomposeColor(color)}function private_safeDarken(color,coefficient,warning){try{return darken(color,coefficient)}catch(error){if(warning)console.warn(warning);return color}}function lighten(color,coefficient){if(color=decomposeColor(color),coefficient=clampWrapper(coefficient),color.type.includes("hsl"))color.values[2]+=(100-color.values[2])*coefficient;else if(color.type.includes("rgb"))for(let i=0;i<3;i+=1)color.values[i]+=(255-color.values[i])*coefficient;else if(color.type.includes("color"))for(let i=0;i<3;i+=1)color.values[i]+=(1-color.values[i])*coefficient;return recomposeColor(color)}function private_safeLighten(color,coefficient,warning){try{return lighten(color,coefficient)}catch(error){if(warning)console.warn(warning);return color}}function emphasize(color,coefficient=0.15){return getLuminance(color)>0.5?darken(color,coefficient):lighten(color,coefficient)}function private_safeEmphasize(color,coefficient,warning){try{return emphasize(color,coefficient)}catch(error){if(warning)console.warn(warning);return color}}var React27=__toESM(require_react_development());function capitalize(string){if(typeof string!=="string")throw Error("MUI: `capitalize(string)` expects a string argument.");return string.charAt(0).toUpperCase()+string.slice(1)}var React=__toESM(require_react_development()),import_react_is=__toESM(require_react_is_development2());function isPlainObject(item){if(typeof item!=="object"||item===null)return!1;let prototype=Object.getPrototypeOf(item);return(prototype===null||prototype===Object.prototype||Object.getPrototypeOf(prototype)===null)&&!(Symbol.toStringTag in item)&&!(Symbol.iterator in item)}function deepClone(source){if(React.isValidElement(source)||import_react_is.isValidElementType(source)||!isPlainObject(source))return source;let output={};return Object.keys(source).forEach((key)=>{output[key]=deepClone(source[key])}),output}function deepmerge(target,source,options={clone:!0}){let output=options.clone?{...target}:target;if(isPlainObject(target)&&isPlainObject(source))Object.keys(source).forEach((key)=>{if(React.isValidElement(source[key])||import_react_is.isValidElementType(source[key]))output[key]=source[key];else if(isPlainObject(source[key])&&Object.prototype.hasOwnProperty.call(target,key)&&isPlainObject(target[key]))output[key]=deepmerge(target[key],source[key],options);else if(options.clone)output[key]=isPlainObject(source[key])?deepClone(source[key]):source[key];else output[key]=source[key]});return output}function merge(acc,item){if(!item)return acc;return deepmerge(acc,item,{clone:!1})}var merge_default=merge;var import_prop_types=__toESM(require_prop_types()),responsivePropType=import_prop_types.default.oneOfType([import_prop_types.default.number,import_prop_types.default.string,import_prop_types.default.object,import_prop_types.default.array]),responsivePropType_default=responsivePropType;function sortContainerQueries(theme,css){if(!theme.containerQueries)return css;let sorted=Object.keys(css).filter((key)=>key.startsWith("@container")).sort((a,b)=>{let regex=/min-width:\s*([0-9.]+)/;return+(a.match(regex)?.[1]||0)-+(b.match(regex)?.[1]||0)});if(!sorted.length)return css;return sorted.reduce((acc,key)=>{let value=css[key];return delete acc[key],acc[key]=value,acc},{...css})}function isCqShorthand(breakpointKeys,value){return value==="@"||value.startsWith("@")&&(breakpointKeys.some((key)=>value.startsWith(`@${key}`))||!!value.match(/^@\d/))}function getContainerQuery(theme,shorthand){let matches=shorthand.match(/^@([^/]+)?\/?(.+)?$/);if(!matches)throw Error(`MUI: The provided shorthand ${`(${shorthand})`} is invalid. The format should be \`@<breakpoint | number>\` or \`@<breakpoint | number>/<container>\`.
|
|
@@ -241,4 +241,4 @@ To suppress this warning, you need to explicitly provide the \`palette.${key}Cha
|
|
|
241
241
|
`))}return null}),children:import_prop_types84.default.oneOfType([import_prop_types84.default.node,import_prop_types84.default.func]),container:import_prop_types84.default.oneOfType([HTMLElementType,import_prop_types84.default.func]),direction:import_prop_types84.default.oneOf(["ltr","rtl"]),disablePortal:import_prop_types84.default.bool,keepMounted:import_prop_types84.default.bool,modifiers:import_prop_types84.default.arrayOf(import_prop_types84.default.shape({data:import_prop_types84.default.object,effect:import_prop_types84.default.func,enabled:import_prop_types84.default.bool,fn:import_prop_types84.default.func,name:import_prop_types84.default.any,options:import_prop_types84.default.object,phase:import_prop_types84.default.oneOf(["afterMain","afterRead","afterWrite","beforeMain","beforeRead","beforeWrite","main","read","write"]),requires:import_prop_types84.default.arrayOf(import_prop_types84.default.string),requiresIfExists:import_prop_types84.default.arrayOf(import_prop_types84.default.string)})),open:import_prop_types84.default.bool.isRequired,placement:import_prop_types84.default.oneOf(["auto-end","auto-start","auto","bottom-end","bottom-start","bottom","left-end","left-start","left","right-end","right-start","right","top-end","top-start","top"]),popperOptions:import_prop_types84.default.shape({modifiers:import_prop_types84.default.array,onFirstUpdate:import_prop_types84.default.func,placement:import_prop_types84.default.oneOf(["auto-end","auto-start","auto","bottom-end","bottom-start","bottom","left-end","left-start","left","right-end","right-start","right","top-end","top-start","top"]),strategy:import_prop_types84.default.oneOf(["absolute","fixed"])}),popperRef:refType_default,slotProps:import_prop_types84.default.shape({root:import_prop_types84.default.oneOfType([import_prop_types84.default.func,import_prop_types84.default.object])}),slots:import_prop_types84.default.shape({root:import_prop_types84.default.elementType}),transition:import_prop_types84.default.bool};var BasePopper_default=Popper;var import_jsx_runtime96=__toESM(require_react_jsx_runtime_development()),PopperRoot=styled_default2(BasePopper_default,{name:"MuiPopper",slot:"Root",overridesResolver:(props,styles)=>styles.root})({}),Popper2=React125.forwardRef(function(inProps,ref){let isRtl=useRtl(),props=useDefaultProps2({props:inProps,name:"MuiPopper"}),{anchorEl,component,components,componentsProps,container,disablePortal,keepMounted,modifiers,open,placement,popperOptions,popperRef,transition,slots,slotProps,...other}=props,RootComponent=slots?.root??components?.Root,otherProps={anchorEl,container,disablePortal,keepMounted,modifiers,open,placement,popperOptions,popperRef,transition,...other};return import_jsx_runtime96.jsx(PopperRoot,{as:component,direction:isRtl?"rtl":"ltr",slots:{root:RootComponent},slotProps:slotProps??componentsProps,...otherProps,ref})});Popper2.propTypes={anchorEl:import_prop_types85.default.oneOfType([HTMLElementType,import_prop_types85.default.object,import_prop_types85.default.func]),children:import_prop_types85.default.oneOfType([import_prop_types85.default.node,import_prop_types85.default.func]),component:import_prop_types85.default.elementType,components:import_prop_types85.default.shape({Root:import_prop_types85.default.elementType}),componentsProps:import_prop_types85.default.shape({root:import_prop_types85.default.oneOfType([import_prop_types85.default.func,import_prop_types85.default.object])}),container:import_prop_types85.default.oneOfType([HTMLElementType,import_prop_types85.default.func]),disablePortal:import_prop_types85.default.bool,keepMounted:import_prop_types85.default.bool,modifiers:import_prop_types85.default.arrayOf(import_prop_types85.default.shape({data:import_prop_types85.default.object,effect:import_prop_types85.default.func,enabled:import_prop_types85.default.bool,fn:import_prop_types85.default.func,name:import_prop_types85.default.any,options:import_prop_types85.default.object,phase:import_prop_types85.default.oneOf(["afterMain","afterRead","afterWrite","beforeMain","beforeRead","beforeWrite","main","read","write"]),requires:import_prop_types85.default.arrayOf(import_prop_types85.default.string),requiresIfExists:import_prop_types85.default.arrayOf(import_prop_types85.default.string)})),open:import_prop_types85.default.bool.isRequired,placement:import_prop_types85.default.oneOf(["auto-end","auto-start","auto","bottom-end","bottom-start","bottom","left-end","left-start","left","right-end","right-start","right","top-end","top-start","top"]),popperOptions:import_prop_types85.default.shape({modifiers:import_prop_types85.default.array,onFirstUpdate:import_prop_types85.default.func,placement:import_prop_types85.default.oneOf(["auto-end","auto-start","auto","bottom-end","bottom-start","bottom","left-end","left-start","left","right-end","right-start","right","top-end","top-start","top"]),strategy:import_prop_types85.default.oneOf(["absolute","fixed"])}),popperRef:refType_default,slotProps:import_prop_types85.default.shape({root:import_prop_types85.default.oneOfType([import_prop_types85.default.func,import_prop_types85.default.object])}),slots:import_prop_types85.default.shape({root:import_prop_types85.default.elementType}),sx:import_prop_types85.default.oneOfType([import_prop_types85.default.arrayOf(import_prop_types85.default.oneOfType([import_prop_types85.default.func,import_prop_types85.default.object,import_prop_types85.default.bool])),import_prop_types85.default.func,import_prop_types85.default.object]),transition:import_prop_types85.default.bool};var Popper_default=Popper2;function getTooltipUtilityClass(slot){return generateUtilityClass("MuiTooltip",slot)}var tooltipClasses=generateUtilityClasses("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]),tooltipClasses_default=tooltipClasses;var import_jsx_runtime97=__toESM(require_react_jsx_runtime_development());function round3(value){return Math.round(value*1e5)/1e5}var useUtilityClasses55=(ownerState)=>{let{classes,disableInteractive,arrow,touch,placement}=ownerState,slots={popper:["popper",!disableInteractive&&"popperInteractive",arrow&&"popperArrow"],tooltip:["tooltip",arrow&&"tooltipArrow",touch&&"touch",`tooltipPlacement${capitalize_default(placement.split("-")[0])}`],arrow:["arrow"]};return composeClasses(slots,getTooltipUtilityClass,classes)},TooltipPopper=styled_default2(Popper_default,{name:"MuiTooltip",slot:"Popper",overridesResolver:(props,styles)=>{let{ownerState}=props;return[styles.popper,!ownerState.disableInteractive&&styles.popperInteractive,ownerState.arrow&&styles.popperArrow,!ownerState.open&&styles.popperClose]}})(memoTheme_default(({theme})=>({zIndex:(theme.vars||theme).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState})=>!ownerState.disableInteractive,style:{pointerEvents:"auto"}},{props:({open})=>!open,style:{pointerEvents:"none"}},{props:({ownerState})=>ownerState.arrow,style:{[`&[data-popper-placement*="bottom"] .${tooltipClasses_default.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${tooltipClasses_default.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${tooltipClasses_default.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${tooltipClasses_default.arrow}`]:{height:"1em",width:"0.71em","&::before":{transformOrigin:"0 0"}}}},{props:({ownerState})=>ownerState.arrow&&!ownerState.isRtl,style:{[`&[data-popper-placement*="right"] .${tooltipClasses_default.arrow}`]:{left:0,marginLeft:"-0.71em"}}},{props:({ownerState})=>ownerState.arrow&&!!ownerState.isRtl,style:{[`&[data-popper-placement*="right"] .${tooltipClasses_default.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState})=>ownerState.arrow&&!ownerState.isRtl,style:{[`&[data-popper-placement*="left"] .${tooltipClasses_default.arrow}`]:{right:0,marginRight:"-0.71em"}}},{props:({ownerState})=>ownerState.arrow&&!!ownerState.isRtl,style:{[`&[data-popper-placement*="left"] .${tooltipClasses_default.arrow}`]:{left:0,marginLeft:"-0.71em"}}}]}))),TooltipTooltip=styled_default2("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(props,styles)=>{let{ownerState}=props;return[styles.tooltip,ownerState.touch&&styles.touch,ownerState.arrow&&styles.tooltipArrow,styles[`tooltipPlacement${capitalize_default(ownerState.placement.split("-")[0])}`]]}})(memoTheme_default(({theme})=>({backgroundColor:theme.vars?theme.vars.palette.Tooltip.bg:alpha(theme.palette.grey[700],0.92),borderRadius:(theme.vars||theme).shape.borderRadius,color:(theme.vars||theme).palette.common.white,fontFamily:theme.typography.fontFamily,padding:"4px 8px",fontSize:theme.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:theme.typography.fontWeightMedium,[`.${tooltipClasses_default.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center"},[`.${tooltipClasses_default.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center"},[`.${tooltipClasses_default.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${tooltipClasses_default.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState})=>ownerState.arrow,style:{position:"relative",margin:0}},{props:({ownerState})=>ownerState.touch,style:{padding:"8px 16px",fontSize:theme.typography.pxToRem(14),lineHeight:`${round3(1.1428571428571428)}em`,fontWeight:theme.typography.fontWeightRegular}},{props:({ownerState})=>!ownerState.isRtl,style:{[`.${tooltipClasses_default.popper}[data-popper-placement*="left"] &`]:{marginRight:"14px"},[`.${tooltipClasses_default.popper}[data-popper-placement*="right"] &`]:{marginLeft:"14px"}}},{props:({ownerState})=>!ownerState.isRtl&&ownerState.touch,style:{[`.${tooltipClasses_default.popper}[data-popper-placement*="left"] &`]:{marginRight:"24px"},[`.${tooltipClasses_default.popper}[data-popper-placement*="right"] &`]:{marginLeft:"24px"}}},{props:({ownerState})=>!!ownerState.isRtl,style:{[`.${tooltipClasses_default.popper}[data-popper-placement*="left"] &`]:{marginLeft:"14px"},[`.${tooltipClasses_default.popper}[data-popper-placement*="right"] &`]:{marginRight:"14px"}}},{props:({ownerState})=>!!ownerState.isRtl&&ownerState.touch,style:{[`.${tooltipClasses_default.popper}[data-popper-placement*="left"] &`]:{marginLeft:"24px"},[`.${tooltipClasses_default.popper}[data-popper-placement*="right"] &`]:{marginRight:"24px"}}},{props:({ownerState})=>ownerState.touch,style:{[`.${tooltipClasses_default.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"}}},{props:({ownerState})=>ownerState.touch,style:{[`.${tooltipClasses_default.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),TooltipArrow=styled_default2("span",{name:"MuiTooltip",slot:"Arrow",overridesResolver:(props,styles)=>styles.arrow})(memoTheme_default(({theme})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:theme.vars?theme.vars.palette.Tooltip.bg:alpha(theme.palette.grey[700],0.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}}))),hystersisOpen=!1,hystersisTimer=new Timeout2,cursorPosition={x:0,y:0};function composeEventHandler(handler,eventHandler){return(event,...params)=>{if(eventHandler)eventHandler(event,...params);handler(event,...params)}}var Tooltip=React126.forwardRef(function(inProps,ref){let props=useDefaultProps2({props:inProps,name:"MuiTooltip"}),{arrow=!1,children:childrenProp,classes:classesProp,components={},componentsProps={},describeChild=!1,disableFocusListener=!1,disableHoverListener=!1,disableInteractive:disableInteractiveProp=!1,disableTouchListener=!1,enterDelay=100,enterNextDelay=0,enterTouchDelay=700,followCursor=!1,id:idProp,leaveDelay=0,leaveTouchDelay=1500,onClose,onOpen,open:openProp,placement="bottom",PopperComponent:PopperComponentProp,PopperProps={},slotProps={},slots={},title,TransitionComponent:TransitionComponentProp,TransitionProps,...other}=props,children=React126.isValidElement(childrenProp)?childrenProp:import_jsx_runtime97.jsx("span",{children:childrenProp}),theme=useTheme5(),isRtl=useRtl(),[childNode,setChildNode]=React126.useState(),[arrowRef,setArrowRef]=React126.useState(null),ignoreNonTouchEvents=React126.useRef(!1),disableInteractive=disableInteractiveProp||followCursor,closeTimer=useTimeout(),enterTimer=useTimeout(),leaveTimer=useTimeout(),touchTimer=useTimeout(),[openState,setOpenState]=useControlled_default({controlled:openProp,default:!1,name:"Tooltip",state:"open"}),open=openState;{let{current:isControlled}=React126.useRef(openProp!==void 0);React126.useEffect(()=>{if(childNode&&childNode.disabled&&!isControlled&&title!==""&&childNode.tagName.toLowerCase()==="button")console.warn(["MUI: You are providing a disabled `button` child to the Tooltip component.","A disabled element does not fire events.","Tooltip needs to listen to the child element's events to display the title.","","Add a simple wrapper element, such as a `span`."].join(`
|
|
242
242
|
`))},[title,childNode,isControlled])}let id=useId_default(idProp),prevUserSelect=React126.useRef(),stopTouchInteraction=useEventCallback_default2(()=>{if(prevUserSelect.current!==void 0)document.body.style.WebkitUserSelect=prevUserSelect.current,prevUserSelect.current=void 0;touchTimer.clear()});React126.useEffect(()=>stopTouchInteraction,[stopTouchInteraction]);let handleOpen=(event)=>{if(hystersisTimer.clear(),hystersisOpen=!0,setOpenState(!0),onOpen&&!open)onOpen(event)},handleClose=useEventCallback_default2((event)=>{if(hystersisTimer.start(800+leaveDelay,()=>{hystersisOpen=!1}),setOpenState(!1),onClose&&open)onClose(event);closeTimer.start(theme.transitions.duration.shortest,()=>{ignoreNonTouchEvents.current=!1})}),handleMouseOver=(event)=>{if(ignoreNonTouchEvents.current&&event.type!=="touchstart")return;if(childNode)childNode.removeAttribute("title");if(enterTimer.clear(),leaveTimer.clear(),enterDelay||hystersisOpen&&enterNextDelay)enterTimer.start(hystersisOpen?enterNextDelay:enterDelay,()=>{handleOpen(event)});else handleOpen(event)},handleMouseLeave=(event)=>{enterTimer.clear(),leaveTimer.start(leaveDelay,()=>{handleClose(event)})},[,setChildIsFocusVisible]=React126.useState(!1),handleBlur=(event)=>{if(!isFocusVisible(event.target))setChildIsFocusVisible(!1),handleMouseLeave(event)},handleFocus=(event)=>{if(!childNode)setChildNode(event.currentTarget);if(isFocusVisible(event.target))setChildIsFocusVisible(!0),handleMouseOver(event)},detectTouchStart=(event)=>{ignoreNonTouchEvents.current=!0;let childrenProps=children.props;if(childrenProps.onTouchStart)childrenProps.onTouchStart(event)},handleTouchStart=(event)=>{detectTouchStart(event),leaveTimer.clear(),closeTimer.clear(),stopTouchInteraction(),prevUserSelect.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",touchTimer.start(enterTouchDelay,()=>{document.body.style.WebkitUserSelect=prevUserSelect.current,handleMouseOver(event)})},handleTouchEnd=(event)=>{if(children.props.onTouchEnd)children.props.onTouchEnd(event);stopTouchInteraction(),leaveTimer.start(leaveTouchDelay,()=>{handleClose(event)})};React126.useEffect(()=>{if(!open)return;function handleKeyDown(nativeEvent){if(nativeEvent.key==="Escape")handleClose(nativeEvent)}return document.addEventListener("keydown",handleKeyDown),()=>{document.removeEventListener("keydown",handleKeyDown)}},[handleClose,open]);let handleRef=useForkRef_default(getReactElementRef(children),setChildNode,ref);if(!title&&title!==0)open=!1;let popperRef=React126.useRef(),handleMouseMove=(event)=>{let childrenProps=children.props;if(childrenProps.onMouseMove)childrenProps.onMouseMove(event);if(cursorPosition={x:event.clientX,y:event.clientY},popperRef.current)popperRef.current.update()},nameOrDescProps={},titleIsString=typeof title==="string";if(describeChild)nameOrDescProps.title=!open&&titleIsString&&!disableHoverListener?title:null,nameOrDescProps["aria-describedby"]=open?id:null;else nameOrDescProps["aria-label"]=titleIsString?title:null,nameOrDescProps["aria-labelledby"]=open&&!titleIsString?id:null;let childrenProps={...nameOrDescProps,...other,...children.props,className:clsx_default(other.className,children.props.className),onTouchStart:detectTouchStart,ref:handleRef,...followCursor?{onMouseMove:handleMouseMove}:{}};childrenProps["data-mui-internal-clone-element"]=!0,React126.useEffect(()=>{if(childNode&&!childNode.getAttribute("data-mui-internal-clone-element"))console.error(["MUI: The `children` component of the Tooltip is not forwarding its props correctly.","Please make sure that props are spread on the same element that the ref is applied to."].join(`
|
|
243
243
|
`))},[childNode]);let interactiveWrapperListeners={};if(!disableTouchListener)childrenProps.onTouchStart=handleTouchStart,childrenProps.onTouchEnd=handleTouchEnd;if(!disableHoverListener){if(childrenProps.onMouseOver=composeEventHandler(handleMouseOver,childrenProps.onMouseOver),childrenProps.onMouseLeave=composeEventHandler(handleMouseLeave,childrenProps.onMouseLeave),!disableInteractive)interactiveWrapperListeners.onMouseOver=handleMouseOver,interactiveWrapperListeners.onMouseLeave=handleMouseLeave}if(!disableFocusListener){if(childrenProps.onFocus=composeEventHandler(handleFocus,childrenProps.onFocus),childrenProps.onBlur=composeEventHandler(handleBlur,childrenProps.onBlur),!disableInteractive)interactiveWrapperListeners.onFocus=handleFocus,interactiveWrapperListeners.onBlur=handleBlur}if(children.props.title)console.error(["MUI: You have provided a `title` prop to the child of <Tooltip />.",`Remove this title prop \`${children.props.title}\` or the Tooltip component.`].join(`
|
|
244
|
-
`));let ownerState={...props,isRtl,arrow,disableInteractive,placement,PopperComponentProp,touch:ignoreNonTouchEvents.current},resolvedPopperProps=typeof slotProps.popper==="function"?slotProps.popper(ownerState):slotProps.popper,popperOptions=React126.useMemo(()=>{let tooltipModifiers=[{name:"arrow",enabled:Boolean(arrowRef),options:{element:arrowRef,padding:4}}];if(PopperProps.popperOptions?.modifiers)tooltipModifiers=tooltipModifiers.concat(PopperProps.popperOptions.modifiers);if(resolvedPopperProps?.popperOptions?.modifiers)tooltipModifiers=tooltipModifiers.concat(resolvedPopperProps.popperOptions.modifiers);return{...PopperProps.popperOptions,...resolvedPopperProps?.popperOptions,modifiers:tooltipModifiers}},[arrowRef,PopperProps.popperOptions,resolvedPopperProps?.popperOptions]),classes=useUtilityClasses55(ownerState),resolvedTransitionProps=typeof slotProps.transition==="function"?slotProps.transition(ownerState):slotProps.transition,externalForwardedProps={slots:{popper:components.Popper,transition:components.Transition??TransitionComponentProp,tooltip:components.Tooltip,arrow:components.Arrow,...slots},slotProps:{arrow:slotProps.arrow??componentsProps.arrow,popper:{...PopperProps,...resolvedPopperProps??componentsProps.popper},tooltip:slotProps.tooltip??componentsProps.tooltip,transition:{...TransitionProps,...resolvedTransitionProps??componentsProps.transition}}},[PopperSlot,popperSlotProps]=useSlot("popper",{elementType:TooltipPopper,externalForwardedProps,ownerState,className:clsx_default(classes.popper,PopperProps?.className)}),[TransitionSlot,transitionSlotProps]=useSlot("transition",{elementType:Grow_default,externalForwardedProps,ownerState}),[TooltipSlot,tooltipSlotProps]=useSlot("tooltip",{elementType:TooltipTooltip,className:classes.tooltip,externalForwardedProps,ownerState}),[ArrowSlot,arrowSlotProps]=useSlot("arrow",{elementType:TooltipArrow,className:classes.arrow,externalForwardedProps,ownerState,ref:setArrowRef});return import_jsx_runtime97.jsxs(React126.Fragment,{children:[React126.cloneElement(children,childrenProps),import_jsx_runtime97.jsx(PopperSlot,{as:PopperComponentProp??Popper_default,placement,anchorEl:followCursor?{getBoundingClientRect:()=>({top:cursorPosition.y,left:cursorPosition.x,right:cursorPosition.x,bottom:cursorPosition.y,width:0,height:0})}:childNode,popperRef,open:childNode?open:!1,id,transition:!0,...interactiveWrapperListeners,...popperSlotProps,popperOptions,children:({TransitionProps:TransitionPropsInner})=>import_jsx_runtime97.jsx(TransitionSlot,{timeout:theme.transitions.duration.shorter,...TransitionPropsInner,...transitionSlotProps,children:import_jsx_runtime97.jsxs(TooltipSlot,{...tooltipSlotProps,children:[title,arrow?import_jsx_runtime97.jsx(ArrowSlot,{...arrowSlotProps}):null]})})})]})});Tooltip.propTypes={arrow:import_prop_types86.default.bool,children:elementAcceptingRef_default.isRequired,classes:import_prop_types86.default.object,className:import_prop_types86.default.string,components:import_prop_types86.default.shape({Arrow:import_prop_types86.default.elementType,Popper:import_prop_types86.default.elementType,Tooltip:import_prop_types86.default.elementType,Transition:import_prop_types86.default.elementType}),componentsProps:import_prop_types86.default.shape({arrow:import_prop_types86.default.object,popper:import_prop_types86.default.object,tooltip:import_prop_types86.default.object,transition:import_prop_types86.default.object}),describeChild:import_prop_types86.default.bool,disableFocusListener:import_prop_types86.default.bool,disableHoverListener:import_prop_types86.default.bool,disableInteractive:import_prop_types86.default.bool,disableTouchListener:import_prop_types86.default.bool,enterDelay:import_prop_types86.default.number,enterNextDelay:import_prop_types86.default.number,enterTouchDelay:import_prop_types86.default.number,followCursor:import_prop_types86.default.bool,id:import_prop_types86.default.string,leaveDelay:import_prop_types86.default.number,leaveTouchDelay:import_prop_types86.default.number,onClose:import_prop_types86.default.func,onOpen:import_prop_types86.default.func,open:import_prop_types86.default.bool,placement:import_prop_types86.default.oneOf(["auto-end","auto-start","auto","bottom-end","bottom-start","bottom","left-end","left-start","left","right-end","right-start","right","top-end","top-start","top"]),PopperComponent:import_prop_types86.default.elementType,PopperProps:import_prop_types86.default.object,slotProps:import_prop_types86.default.shape({arrow:import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object]),popper:import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object]),tooltip:import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object]),transition:import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object])}),slots:import_prop_types86.default.shape({arrow:import_prop_types86.default.elementType,popper:import_prop_types86.default.elementType,tooltip:import_prop_types86.default.elementType,transition:import_prop_types86.default.elementType}),sx:import_prop_types86.default.oneOfType([import_prop_types86.default.arrayOf(import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object,import_prop_types86.default.bool])),import_prop_types86.default.func,import_prop_types86.default.object]),title:import_prop_types86.default.node,TransitionComponent:import_prop_types86.default.elementType,TransitionProps:import_prop_types86.default.object};var Tooltip_default=Tooltip;var React127=__toESM(require_react_development()),import_prop_types87=__toESM(require_prop_types());function getDialogActionsUtilityClass(slot){return generateUtilityClass("MuiDialogActions",slot)}var dialogActionsClasses=generateUtilityClasses("MuiDialogActions",["root","spacing"]);var import_jsx_runtime98=__toESM(require_react_jsx_runtime_development()),useUtilityClasses56=(ownerState)=>{let{classes,disableSpacing}=ownerState;return composeClasses({root:["root",!disableSpacing&&"spacing"]},getDialogActionsUtilityClass,classes)},DialogActionsRoot=styled_default2("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(props,styles)=>{let{ownerState}=props;return[styles.root,!ownerState.disableSpacing&&styles.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState})=>!ownerState.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),DialogActions=React127.forwardRef(function(inProps,ref){let props=useDefaultProps2({props:inProps,name:"MuiDialogActions"}),{className,disableSpacing=!1,...other}=props,ownerState={...props,disableSpacing},classes=useUtilityClasses56(ownerState);return import_jsx_runtime98.jsx(DialogActionsRoot,{className:clsx_default(classes.root,className),ownerState,ref,...other})});DialogActions.propTypes={children:import_prop_types87.default.node,classes:import_prop_types87.default.object,className:import_prop_types87.default.string,disableSpacing:import_prop_types87.default.bool,sx:import_prop_types87.default.oneOfType([import_prop_types87.default.arrayOf(import_prop_types87.default.oneOfType([import_prop_types87.default.func,import_prop_types87.default.object,import_prop_types87.default.bool])),import_prop_types87.default.func,import_prop_types87.default.object])};var DialogActions_default=DialogActions;var React128=__toESM(require_react_development()),import_prop_types88=__toESM(require_prop_types());function getDialogContentUtilityClass(slot){return generateUtilityClass("MuiDialogContent",slot)}var dialogContentClasses=generateUtilityClasses("MuiDialogContent",["root","dividers"]);function getDialogTitleUtilityClass(slot){return generateUtilityClass("MuiDialogTitle",slot)}var dialogTitleClasses=generateUtilityClasses("MuiDialogTitle",["root"]),dialogTitleClasses_default=dialogTitleClasses;var import_jsx_runtime99=__toESM(require_react_jsx_runtime_development()),useUtilityClasses57=(ownerState)=>{let{classes,dividers}=ownerState;return composeClasses({root:["root",dividers&&"dividers"]},getDialogContentUtilityClass,classes)},DialogContentRoot=styled_default2("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(props,styles)=>{let{ownerState}=props;return[styles.root,ownerState.dividers&&styles.dividers]}})(memoTheme_default(({theme})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState})=>ownerState.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(theme.vars||theme).palette.divider}`,borderBottom:`1px solid ${(theme.vars||theme).palette.divider}`}},{props:({ownerState})=>!ownerState.dividers,style:{[`.${dialogTitleClasses_default.root} + &`]:{paddingTop:0}}}]}))),DialogContent=React128.forwardRef(function(inProps,ref){let props=useDefaultProps2({props:inProps,name:"MuiDialogContent"}),{className,dividers=!1,...other}=props,ownerState={...props,dividers},classes=useUtilityClasses57(ownerState);return import_jsx_runtime99.jsx(DialogContentRoot,{className:clsx_default(classes.root,className),ownerState,ref,...other})});DialogContent.propTypes={children:import_prop_types88.default.node,classes:import_prop_types88.default.object,className:import_prop_types88.default.string,dividers:import_prop_types88.default.bool,sx:import_prop_types88.default.oneOfType([import_prop_types88.default.arrayOf(import_prop_types88.default.oneOfType([import_prop_types88.default.func,import_prop_types88.default.object,import_prop_types88.default.bool])),import_prop_types88.default.func,import_prop_types88.default.object])};var DialogContent_default=DialogContent;var React129=__toESM(require_react_development()),import_prop_types89=__toESM(require_prop_types());function getDialogContentTextUtilityClass(slot){return generateUtilityClass("MuiDialogContentText",slot)}var dialogContentTextClasses=generateUtilityClasses("MuiDialogContentText",["root"]);var import_jsx_runtime100=__toESM(require_react_jsx_runtime_development()),useUtilityClasses58=(ownerState)=>{let{classes}=ownerState,composedClasses=composeClasses({root:["root"]},getDialogContentTextUtilityClass,classes);return{...classes,...composedClasses}},DialogContentTextRoot=styled_default2(Typography_default,{shouldForwardProp:(prop)=>rootShouldForwardProp_default(prop)||prop==="classes",name:"MuiDialogContentText",slot:"Root",overridesResolver:(props,styles)=>styles.root})({}),DialogContentText=React129.forwardRef(function(inProps,ref){let props=useDefaultProps2({props:inProps,name:"MuiDialogContentText"}),{children,className,...ownerState}=props,classes=useUtilityClasses58(ownerState);return import_jsx_runtime100.jsx(DialogContentTextRoot,{component:"p",variant:"body1",color:"textSecondary",ref,ownerState,className:clsx_default(classes.root,className),...props,classes})});DialogContentText.propTypes={children:import_prop_types89.default.node,classes:import_prop_types89.default.object,className:import_prop_types89.default.string,sx:import_prop_types89.default.oneOfType([import_prop_types89.default.arrayOf(import_prop_types89.default.oneOfType([import_prop_types89.default.func,import_prop_types89.default.object,import_prop_types89.default.bool])),import_prop_types89.default.func,import_prop_types89.default.object])};var DialogContentText_default=DialogContentText;var React131=__toESM(require_react_development()),import_prop_types90=__toESM(require_prop_types());var React130=__toESM(require_react_development()),DialogContext=React130.createContext({});DialogContext.displayName="DialogContext";var DialogContext_default=DialogContext;var import_jsx_runtime101=__toESM(require_react_jsx_runtime_development()),useUtilityClasses59=(ownerState)=>{let{classes}=ownerState;return composeClasses({root:["root"]},getDialogTitleUtilityClass,classes)},DialogTitleRoot=styled_default2(Typography_default,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(props,styles)=>styles.root})({padding:"16px 24px",flex:"0 0 auto"}),DialogTitle=React131.forwardRef(function(inProps,ref){let props=useDefaultProps2({props:inProps,name:"MuiDialogTitle"}),{className,id:idProp,...other}=props,ownerState=props,classes=useUtilityClasses59(ownerState),{titleId=idProp}=React131.useContext(DialogContext_default);return import_jsx_runtime101.jsx(DialogTitleRoot,{component:"h2",className:clsx_default(classes.root,className),ownerState,ref,variant:"h6",id:idProp??titleId,...other})});DialogTitle.propTypes={children:import_prop_types90.default.node,classes:import_prop_types90.default.object,className:import_prop_types90.default.string,id:import_prop_types90.default.string,sx:import_prop_types90.default.oneOfType([import_prop_types90.default.arrayOf(import_prop_types90.default.oneOfType([import_prop_types90.default.func,import_prop_types90.default.object,import_prop_types90.default.bool])),import_prop_types90.default.func,import_prop_types90.default.object])};var DialogTitle_default=DialogTitle;var import_react7=__toESM(require_react_development(),1);function chrome(props){let className=typeof props.className==="string"?props.className:void 0,nodePath=props["data-node-path"];return{...className!==void 0?{className}:{},...typeof nodePath==="string"?{"data-node-path":nodePath}:{}}}function mergeSx(base,sx){return sx&&typeof sx==="object"&&!Array.isArray(sx)?{...base,...sx}:base}var DIALOG_WIDTH={xs:360,sm:480,md:600,lg:800,xl:960};function Dialog(props){let width=typeof props.maxWidth==="string"?DIALOG_WIDTH[props.maxWidth]??600:600;return import_react7.createElement(Paper_default,{...chrome(props),elevation:8,sx:mergeSx({width:"100%",maxWidth:width,mx:"auto",my:2,borderRadius:2,overflow:"hidden"},props.sx)},props.children)}function Menu2(props){return import_react7.createElement(Paper_default,{...chrome(props),elevation:3,sx:mergeSx({display:"inline-block",minWidth:180,py:1,borderRadius:1.5},props.sx)},props.children)}function Popover3(props){return import_react7.createElement(Paper_default,{...chrome(props),elevation:3,sx:mergeSx({display:"inline-block",p:2,borderRadius:1.5},props.sx)},props.children)}function Drawer(props){return import_react7.createElement(Paper_default,{...chrome(props),elevation:2,square:!0,sx:mergeSx({width:280,height:"100%",p:2},props.sx)},props.children)}function Snackbar(props){let body=props.message!==void 0?props.message:props.children;return import_react7.createElement(Box_default,{...chrome(props),sx:mergeSx({display:"inline-flex",alignItems:"center",px:2,py:1.25,bgcolor:"grey.900",color:"common.white",borderRadius:1,fontSize:14},props.sx)},body)}var REUSED_HELPER_IDS=["Icon","Image","Placeholder","SVG","Layer","Gradient","Prose"],registry={Alert:Alert_default,AppBar:AppBar_default,Avatar:Avatar_default,Badge:Badge_default,Box:Box_default,Button:Button_default,Card:Card_default,CardActions:CardActions_default,CardContent:CardContent_default,CardHeader:CardHeader_default,Checkbox:Checkbox_default,Chip:Chip_default,Container:Container_default,Dialog,DialogActions:DialogActions_default,DialogContent:DialogContent_default,DialogContentText:DialogContentText_default,DialogTitle:DialogTitle_default,Divider:Divider_default,Drawer,IconButton:IconButton_default,LinearProgress:LinearProgress_default,Link:Link_default,List:List_default,ListItem:ListItem_default,ListItemText:ListItemText_default,Menu:Menu2,MenuItem:MenuItem_default,Paper:Paper_default,Popover:Popover3,Select:Select_default,Snackbar,Stack:Stack_default,Switch:Switch_default,Tab:Tab_default,Table:Table_default,TableBody:TableBody_default,TableCell:TableCell_default,TableHead:TableHead_default,TableRow:TableRow_default,Tabs:Tabs_default,TextField:TextField_default,Toolbar:Toolbar_default,Tooltip:Tooltip_default,Typography:Typography_default,...helpersRegistry(REUSED_HELPER_IDS)};var import_react9=__toESM(require_react_development(),1);function muiColor(css){let s=css.trim();if(/^(#|rgb|hsl)/i.test(s))return s;return formatRgb(parse_default(s))??s}function base(slot,fallback){if(typeof slot==="string")return muiColor(slot);if(slot&&typeof slot==="object"&&typeof slot.DEFAULT==="string")return muiColor(slot.DEFAULT);return muiColor(fallback)}function fg(slot,fallback){if(slot&&typeof slot==="object"&&typeof slot.foreground==="string")return muiColor(slot.foreground);return muiColor(fallback)}function radiusPx(theme){let md=theme.radius?.md;if(typeof md==="number")return md;if(typeof md==="string"){let n=Number.parseFloat(md);return Number.isFinite(n)?md.includes("rem")?n*16:n:8}return 8}function muiThemeOptions(theme,dark=!1){let c=resolveColors(theme,dark);return{palette:{mode:dark?"dark":"light",primary:{main:base(c.primary,"#4f46e5"),contrastText:fg(c.primary,"#ffffff")},secondary:{main:base(c.secondary,"#64748b"),contrastText:fg(c.secondary,"#ffffff")},error:{main:base(c.destructive,"#dc2626"),contrastText:fg(c.destructive,"#ffffff")},background:{default:muiColor(c.background),paper:base(c.card,c.background)},text:{primary:muiColor(c.foreground),secondary:base(c.muted,c.foreground)},divider:c.border?muiColor(c.border):"rgba(0,0,0,0.12)"},shape:{borderRadius:radiusPx(theme)},typography:muiTypography(theme)}}function muiTypography(theme){let typography=theme.typography,typeset=typography.typesets?.[DEFAULT_TYPESET_NAME],scale=typesetScale(typeset,{...typography.fontFamily?{fontFamily:typography.fontFamily}:{}}),bodyFamily=scale.body.fontFamily??typography.fontFamily?.sans??"system-ui, -apple-system, sans-serif",variant=(role)=>{let r=scale[role];return{...r.fontFamily&&r.fontFamily!==bodyFamily?{fontFamily:r.fontFamily}:{},fontSize:`${r.fontSize}px`,lineHeight:r.lineHeight,letterSpacing:r.letterSpacing,fontWeight:r.fontWeight}};return{fontFamily:bodyFamily,fontSize:scale.body.fontSize,h1:variant("h1"),h2:variant("h2"),h3:variant("h3"),h4:variant("h4"),h5:variant("h5"),h6:variant("h6"),subtitle1:variant("lead"),subtitle2:variant("small"),body1:variant("body"),body2:variant("caption"),caption:variant("caption")}}function muiThemeFrom(theme,dark=!1){return createTheme2(muiThemeOptions(theme,dark))}function makeRenderPass(theme,dark=!1){let cache=$_default2({key:"vmui",prepend:!0}),server=$_default3(cache),muiTheme=muiThemeFrom(theme,dark);return{wrap:(element)=>import_react9.createElement(import_emotion_react_development_cjs.CacheProvider,{value:cache},import_react9.createElement(ThemeProvider4,{theme:muiTheme},element)),css:(html)=>server.extractCriticalToChunks(html).styles.map((s)=>s.css).join("")}}var here=dirname(fileURLToPath(import.meta.url)),srcDir=resolveProviderSrcDir(here,"provider-mui",process.env.VELLOO_MUI_SRC);function createProvider(){let overlayIds=["Dialog","Menu","Popover","Drawer","Snackbar"];return{id:"mui",version:MUI_VERSION,label:"Material UI v6",componentsDir:srcDir,styleEntryPath:join(srcDir,"tailwind-entry.css"),registry,loadManifest:async()=>MUI_MANIFEST,catalog:async()=>catalogFromManifest(MUI_MANIFEST.filter((c)=>c.source==="mui"),{importPath:"@mui/material"}),styleChannel:SX_PROP,styleChannels:["sx"],mcpIntro:()=>[...MUI_INTRO],renderPass:(theme,dark)=>makeRenderPass(theme,dark??!1),codegenModule:"@mui/material",themeToNative:(theme,dark)=>muiThemeOptions(theme,dark),themeModule:{importLines:['import { createTheme } from "@mui/material/styles";'],factory:"createTheme",defaultPath:"theme.ts"},canvasBundleSpec:{components:(ids)=>ids.flatMap((id)=>{let descriptor=MUI_MANIFEST.find((entry)=>entry.id===id);if(!descriptor)return[];if(descriptor.source==="velloo"){let path=helperSourcePath(id);return path?[{id,sources:[{importPath:path,exportName:id,fidelity:"fallback",note:"Velloo helper used alongside the host framework."}]}]:[]}return[{id,sources:[{importPath:`@mui/material/${id}`,exportName:id,fidelity:overlayIds.includes(id)?"adapted":"exact",...overlayIds.includes(id)?{note:"Real MUI surface rendered through an inline canvas overlay shim."}:{}}]}]}),overlayIds,styleRuntime:{kind:"emotion",cacheKey:"vmui",stylesModule:"@mui/material/styles"}}}}export{createProvider};
|
|
244
|
+
`));let ownerState={...props,isRtl,arrow,disableInteractive,placement,PopperComponentProp,touch:ignoreNonTouchEvents.current},resolvedPopperProps=typeof slotProps.popper==="function"?slotProps.popper(ownerState):slotProps.popper,popperOptions=React126.useMemo(()=>{let tooltipModifiers=[{name:"arrow",enabled:Boolean(arrowRef),options:{element:arrowRef,padding:4}}];if(PopperProps.popperOptions?.modifiers)tooltipModifiers=tooltipModifiers.concat(PopperProps.popperOptions.modifiers);if(resolvedPopperProps?.popperOptions?.modifiers)tooltipModifiers=tooltipModifiers.concat(resolvedPopperProps.popperOptions.modifiers);return{...PopperProps.popperOptions,...resolvedPopperProps?.popperOptions,modifiers:tooltipModifiers}},[arrowRef,PopperProps.popperOptions,resolvedPopperProps?.popperOptions]),classes=useUtilityClasses55(ownerState),resolvedTransitionProps=typeof slotProps.transition==="function"?slotProps.transition(ownerState):slotProps.transition,externalForwardedProps={slots:{popper:components.Popper,transition:components.Transition??TransitionComponentProp,tooltip:components.Tooltip,arrow:components.Arrow,...slots},slotProps:{arrow:slotProps.arrow??componentsProps.arrow,popper:{...PopperProps,...resolvedPopperProps??componentsProps.popper},tooltip:slotProps.tooltip??componentsProps.tooltip,transition:{...TransitionProps,...resolvedTransitionProps??componentsProps.transition}}},[PopperSlot,popperSlotProps]=useSlot("popper",{elementType:TooltipPopper,externalForwardedProps,ownerState,className:clsx_default(classes.popper,PopperProps?.className)}),[TransitionSlot,transitionSlotProps]=useSlot("transition",{elementType:Grow_default,externalForwardedProps,ownerState}),[TooltipSlot,tooltipSlotProps]=useSlot("tooltip",{elementType:TooltipTooltip,className:classes.tooltip,externalForwardedProps,ownerState}),[ArrowSlot,arrowSlotProps]=useSlot("arrow",{elementType:TooltipArrow,className:classes.arrow,externalForwardedProps,ownerState,ref:setArrowRef});return import_jsx_runtime97.jsxs(React126.Fragment,{children:[React126.cloneElement(children,childrenProps),import_jsx_runtime97.jsx(PopperSlot,{as:PopperComponentProp??Popper_default,placement,anchorEl:followCursor?{getBoundingClientRect:()=>({top:cursorPosition.y,left:cursorPosition.x,right:cursorPosition.x,bottom:cursorPosition.y,width:0,height:0})}:childNode,popperRef,open:childNode?open:!1,id,transition:!0,...interactiveWrapperListeners,...popperSlotProps,popperOptions,children:({TransitionProps:TransitionPropsInner})=>import_jsx_runtime97.jsx(TransitionSlot,{timeout:theme.transitions.duration.shorter,...TransitionPropsInner,...transitionSlotProps,children:import_jsx_runtime97.jsxs(TooltipSlot,{...tooltipSlotProps,children:[title,arrow?import_jsx_runtime97.jsx(ArrowSlot,{...arrowSlotProps}):null]})})})]})});Tooltip.propTypes={arrow:import_prop_types86.default.bool,children:elementAcceptingRef_default.isRequired,classes:import_prop_types86.default.object,className:import_prop_types86.default.string,components:import_prop_types86.default.shape({Arrow:import_prop_types86.default.elementType,Popper:import_prop_types86.default.elementType,Tooltip:import_prop_types86.default.elementType,Transition:import_prop_types86.default.elementType}),componentsProps:import_prop_types86.default.shape({arrow:import_prop_types86.default.object,popper:import_prop_types86.default.object,tooltip:import_prop_types86.default.object,transition:import_prop_types86.default.object}),describeChild:import_prop_types86.default.bool,disableFocusListener:import_prop_types86.default.bool,disableHoverListener:import_prop_types86.default.bool,disableInteractive:import_prop_types86.default.bool,disableTouchListener:import_prop_types86.default.bool,enterDelay:import_prop_types86.default.number,enterNextDelay:import_prop_types86.default.number,enterTouchDelay:import_prop_types86.default.number,followCursor:import_prop_types86.default.bool,id:import_prop_types86.default.string,leaveDelay:import_prop_types86.default.number,leaveTouchDelay:import_prop_types86.default.number,onClose:import_prop_types86.default.func,onOpen:import_prop_types86.default.func,open:import_prop_types86.default.bool,placement:import_prop_types86.default.oneOf(["auto-end","auto-start","auto","bottom-end","bottom-start","bottom","left-end","left-start","left","right-end","right-start","right","top-end","top-start","top"]),PopperComponent:import_prop_types86.default.elementType,PopperProps:import_prop_types86.default.object,slotProps:import_prop_types86.default.shape({arrow:import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object]),popper:import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object]),tooltip:import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object]),transition:import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object])}),slots:import_prop_types86.default.shape({arrow:import_prop_types86.default.elementType,popper:import_prop_types86.default.elementType,tooltip:import_prop_types86.default.elementType,transition:import_prop_types86.default.elementType}),sx:import_prop_types86.default.oneOfType([import_prop_types86.default.arrayOf(import_prop_types86.default.oneOfType([import_prop_types86.default.func,import_prop_types86.default.object,import_prop_types86.default.bool])),import_prop_types86.default.func,import_prop_types86.default.object]),title:import_prop_types86.default.node,TransitionComponent:import_prop_types86.default.elementType,TransitionProps:import_prop_types86.default.object};var Tooltip_default=Tooltip;var React127=__toESM(require_react_development()),import_prop_types87=__toESM(require_prop_types());function getDialogActionsUtilityClass(slot){return generateUtilityClass("MuiDialogActions",slot)}var dialogActionsClasses=generateUtilityClasses("MuiDialogActions",["root","spacing"]);var import_jsx_runtime98=__toESM(require_react_jsx_runtime_development()),useUtilityClasses56=(ownerState)=>{let{classes,disableSpacing}=ownerState;return composeClasses({root:["root",!disableSpacing&&"spacing"]},getDialogActionsUtilityClass,classes)},DialogActionsRoot=styled_default2("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(props,styles)=>{let{ownerState}=props;return[styles.root,!ownerState.disableSpacing&&styles.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState})=>!ownerState.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),DialogActions=React127.forwardRef(function(inProps,ref){let props=useDefaultProps2({props:inProps,name:"MuiDialogActions"}),{className,disableSpacing=!1,...other}=props,ownerState={...props,disableSpacing},classes=useUtilityClasses56(ownerState);return import_jsx_runtime98.jsx(DialogActionsRoot,{className:clsx_default(classes.root,className),ownerState,ref,...other})});DialogActions.propTypes={children:import_prop_types87.default.node,classes:import_prop_types87.default.object,className:import_prop_types87.default.string,disableSpacing:import_prop_types87.default.bool,sx:import_prop_types87.default.oneOfType([import_prop_types87.default.arrayOf(import_prop_types87.default.oneOfType([import_prop_types87.default.func,import_prop_types87.default.object,import_prop_types87.default.bool])),import_prop_types87.default.func,import_prop_types87.default.object])};var DialogActions_default=DialogActions;var React128=__toESM(require_react_development()),import_prop_types88=__toESM(require_prop_types());function getDialogContentUtilityClass(slot){return generateUtilityClass("MuiDialogContent",slot)}var dialogContentClasses=generateUtilityClasses("MuiDialogContent",["root","dividers"]);function getDialogTitleUtilityClass(slot){return generateUtilityClass("MuiDialogTitle",slot)}var dialogTitleClasses=generateUtilityClasses("MuiDialogTitle",["root"]),dialogTitleClasses_default=dialogTitleClasses;var import_jsx_runtime99=__toESM(require_react_jsx_runtime_development()),useUtilityClasses57=(ownerState)=>{let{classes,dividers}=ownerState;return composeClasses({root:["root",dividers&&"dividers"]},getDialogContentUtilityClass,classes)},DialogContentRoot=styled_default2("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(props,styles)=>{let{ownerState}=props;return[styles.root,ownerState.dividers&&styles.dividers]}})(memoTheme_default(({theme})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState})=>ownerState.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(theme.vars||theme).palette.divider}`,borderBottom:`1px solid ${(theme.vars||theme).palette.divider}`}},{props:({ownerState})=>!ownerState.dividers,style:{[`.${dialogTitleClasses_default.root} + &`]:{paddingTop:0}}}]}))),DialogContent=React128.forwardRef(function(inProps,ref){let props=useDefaultProps2({props:inProps,name:"MuiDialogContent"}),{className,dividers=!1,...other}=props,ownerState={...props,dividers},classes=useUtilityClasses57(ownerState);return import_jsx_runtime99.jsx(DialogContentRoot,{className:clsx_default(classes.root,className),ownerState,ref,...other})});DialogContent.propTypes={children:import_prop_types88.default.node,classes:import_prop_types88.default.object,className:import_prop_types88.default.string,dividers:import_prop_types88.default.bool,sx:import_prop_types88.default.oneOfType([import_prop_types88.default.arrayOf(import_prop_types88.default.oneOfType([import_prop_types88.default.func,import_prop_types88.default.object,import_prop_types88.default.bool])),import_prop_types88.default.func,import_prop_types88.default.object])};var DialogContent_default=DialogContent;var React129=__toESM(require_react_development()),import_prop_types89=__toESM(require_prop_types());function getDialogContentTextUtilityClass(slot){return generateUtilityClass("MuiDialogContentText",slot)}var dialogContentTextClasses=generateUtilityClasses("MuiDialogContentText",["root"]);var import_jsx_runtime100=__toESM(require_react_jsx_runtime_development()),useUtilityClasses58=(ownerState)=>{let{classes}=ownerState,composedClasses=composeClasses({root:["root"]},getDialogContentTextUtilityClass,classes);return{...classes,...composedClasses}},DialogContentTextRoot=styled_default2(Typography_default,{shouldForwardProp:(prop)=>rootShouldForwardProp_default(prop)||prop==="classes",name:"MuiDialogContentText",slot:"Root",overridesResolver:(props,styles)=>styles.root})({}),DialogContentText=React129.forwardRef(function(inProps,ref){let props=useDefaultProps2({props:inProps,name:"MuiDialogContentText"}),{children,className,...ownerState}=props,classes=useUtilityClasses58(ownerState);return import_jsx_runtime100.jsx(DialogContentTextRoot,{component:"p",variant:"body1",color:"textSecondary",ref,ownerState,className:clsx_default(classes.root,className),...props,classes})});DialogContentText.propTypes={children:import_prop_types89.default.node,classes:import_prop_types89.default.object,className:import_prop_types89.default.string,sx:import_prop_types89.default.oneOfType([import_prop_types89.default.arrayOf(import_prop_types89.default.oneOfType([import_prop_types89.default.func,import_prop_types89.default.object,import_prop_types89.default.bool])),import_prop_types89.default.func,import_prop_types89.default.object])};var DialogContentText_default=DialogContentText;var React131=__toESM(require_react_development()),import_prop_types90=__toESM(require_prop_types());var React130=__toESM(require_react_development()),DialogContext=React130.createContext({});DialogContext.displayName="DialogContext";var DialogContext_default=DialogContext;var import_jsx_runtime101=__toESM(require_react_jsx_runtime_development()),useUtilityClasses59=(ownerState)=>{let{classes}=ownerState;return composeClasses({root:["root"]},getDialogTitleUtilityClass,classes)},DialogTitleRoot=styled_default2(Typography_default,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(props,styles)=>styles.root})({padding:"16px 24px",flex:"0 0 auto"}),DialogTitle=React131.forwardRef(function(inProps,ref){let props=useDefaultProps2({props:inProps,name:"MuiDialogTitle"}),{className,id:idProp,...other}=props,ownerState=props,classes=useUtilityClasses59(ownerState),{titleId=idProp}=React131.useContext(DialogContext_default);return import_jsx_runtime101.jsx(DialogTitleRoot,{component:"h2",className:clsx_default(classes.root,className),ownerState,ref,variant:"h6",id:idProp??titleId,...other})});DialogTitle.propTypes={children:import_prop_types90.default.node,classes:import_prop_types90.default.object,className:import_prop_types90.default.string,id:import_prop_types90.default.string,sx:import_prop_types90.default.oneOfType([import_prop_types90.default.arrayOf(import_prop_types90.default.oneOfType([import_prop_types90.default.func,import_prop_types90.default.object,import_prop_types90.default.bool])),import_prop_types90.default.func,import_prop_types90.default.object])};var DialogTitle_default=DialogTitle;var import_react7=__toESM(require_react_development(),1);function chrome(props){let className=typeof props.className==="string"?props.className:void 0,nodePath=props["data-node-path"];return{...className!==void 0?{className}:{},...typeof nodePath==="string"?{"data-node-path":nodePath}:{}}}function mergeSx(base,sx){return sx&&typeof sx==="object"&&!Array.isArray(sx)?{...base,...sx}:base}var DIALOG_WIDTH={xs:360,sm:480,md:600,lg:800,xl:960};function Dialog(props){let width=typeof props.maxWidth==="string"?DIALOG_WIDTH[props.maxWidth]??600:600;return import_react7.createElement(Paper_default,{...chrome(props),elevation:8,sx:mergeSx({width:"100%",maxWidth:width,mx:"auto",my:2,borderRadius:2,overflow:"hidden"},props.sx)},props.children)}function Menu2(props){return import_react7.createElement(Paper_default,{...chrome(props),elevation:3,sx:mergeSx({display:"inline-block",minWidth:180,py:1,borderRadius:1.5},props.sx)},props.children)}function Popover3(props){return import_react7.createElement(Paper_default,{...chrome(props),elevation:3,sx:mergeSx({display:"inline-block",p:2,borderRadius:1.5},props.sx)},props.children)}function Drawer(props){return import_react7.createElement(Paper_default,{...chrome(props),elevation:2,square:!0,sx:mergeSx({width:280,height:"100%",p:2},props.sx)},props.children)}function Snackbar(props){let body=props.message!==void 0?props.message:props.children;return import_react7.createElement(Box_default,{...chrome(props),sx:mergeSx({display:"inline-flex",alignItems:"center",px:2,py:1.25,bgcolor:"grey.900",color:"common.white",borderRadius:1,fontSize:14},props.sx)},body)}var REUSED_HELPER_IDS=["Icon","Image","Placeholder","SVG","Layer","Gradient","Prose"],registry={Alert:Alert_default,AppBar:AppBar_default,Avatar:Avatar_default,Badge:Badge_default,Box:Box_default,Button:Button_default,Card:Card_default,CardActions:CardActions_default,CardContent:CardContent_default,CardHeader:CardHeader_default,Checkbox:Checkbox_default,Chip:Chip_default,Container:Container_default,Dialog,DialogActions:DialogActions_default,DialogContent:DialogContent_default,DialogContentText:DialogContentText_default,DialogTitle:DialogTitle_default,Divider:Divider_default,Drawer,IconButton:IconButton_default,LinearProgress:LinearProgress_default,Link:Link_default,List:List_default,ListItem:ListItem_default,ListItemText:ListItemText_default,Menu:Menu2,MenuItem:MenuItem_default,Paper:Paper_default,Popover:Popover3,Select:Select_default,Snackbar,Stack:Stack_default,Switch:Switch_default,Tab:Tab_default,Table:Table_default,TableBody:TableBody_default,TableCell:TableCell_default,TableHead:TableHead_default,TableRow:TableRow_default,Tabs:Tabs_default,TextField:TextField_default,Toolbar:Toolbar_default,Tooltip:Tooltip_default,Typography:Typography_default,...helpersRegistry(REUSED_HELPER_IDS)};var import_react9=__toESM(require_react_development(),1);function muiColor(css){let s=css.trim();if(/^(#|rgb|hsl)/i.test(s))return s;return formatRgb(parse_default(s))??s}function base(slot,fallback){if(typeof slot==="string")return muiColor(slot);if(slot&&typeof slot==="object"&&typeof slot.DEFAULT==="string")return muiColor(slot.DEFAULT);return muiColor(fallback)}function fg(slot,fallback){if(slot&&typeof slot==="object"&&typeof slot.foreground==="string")return muiColor(slot.foreground);return muiColor(fallback)}function radiusPx(theme){let md=theme.radius?.md;if(typeof md==="number")return md;if(typeof md==="string"){let n=Number.parseFloat(md);return Number.isFinite(n)?md.includes("rem")?n*16:n:8}return 8}function muiThemeOptions(theme,dark=!1){let c=resolveColors(theme,dark);return{palette:{mode:dark?"dark":"light",primary:{main:base(c.primary,"#4f46e5"),contrastText:fg(c.primary,"#ffffff")},secondary:{main:base(c.secondary,"#64748b"),contrastText:fg(c.secondary,"#ffffff")},error:{main:base(c.destructive,"#dc2626"),contrastText:fg(c.destructive,"#ffffff")},background:{default:muiColor(c.background),paper:base(c.card,c.background)},text:{primary:muiColor(c.foreground),secondary:base(c.muted,c.foreground)},divider:c.border?muiColor(c.border):"rgba(0,0,0,0.12)"},shape:{borderRadius:radiusPx(theme)},typography:muiTypography(theme)}}function muiTypography(theme){let typography=theme.typography,typeset=typography.typesets?.[DEFAULT_TYPESET_NAME],scale=typesetScale(typeset,{...typography.fontFamily?{fontFamily:typography.fontFamily}:{}}),bodyFamily=scale.body.fontFamily??typography.fontFamily?.sans??"system-ui, -apple-system, sans-serif",variant=(role)=>{let r=scale[role];return{...r.fontFamily&&r.fontFamily!==bodyFamily?{fontFamily:r.fontFamily}:{},fontSize:`${r.fontSize}px`,lineHeight:r.lineHeight,letterSpacing:r.letterSpacing,fontWeight:r.fontWeight}};return{fontFamily:bodyFamily,fontSize:scale.body.fontSize,h1:variant("h1"),h2:variant("h2"),h3:variant("h3"),h4:variant("h4"),h5:variant("h5"),h6:variant("h6"),subtitle1:variant("lead"),subtitle2:variant("small"),body1:variant("body"),body2:variant("caption"),caption:variant("caption")}}function muiThemeFrom(theme,dark=!1){return createTheme2(muiThemeOptions(theme,dark))}function makeRenderPass(theme,dark=!1){let cache=$_default2({key:"vmui",prepend:!0}),server=$_default3(cache),muiTheme=muiThemeFrom(theme,dark);return{wrap:(element)=>import_react9.createElement(import_emotion_react_development_cjs.CacheProvider,{value:cache},import_react9.createElement(ThemeProvider4,{theme:muiTheme},element)),css:(html)=>server.extractCriticalToChunks(html).styles.map((s)=>s.css).join("")}}var here=dirname(fileURLToPath(import.meta.url)),srcDir=resolveProviderSrcDir(here,"provider-mui",process.env.VELLOO_MUI_SRC);function createProvider(){let overlayIds=["Dialog","Menu","Popover","Drawer","Snackbar"];return{id:"mui",version:MUI_VERSION,label:"Material UI v6",componentsDir:srcDir,styleEntryPath:join(srcDir,"tailwind-entry.css"),registry,loadManifest:async()=>MUI_MANIFEST,catalog:async()=>catalogFromManifest(MUI_MANIFEST.filter((c)=>c.source==="mui"),{importPath:"@mui/material"}),styleChannel:SX_PROP,styleChannels:["sx"],mcpIntro:()=>[...MUI_INTRO],renderPass:(theme,dark)=>makeRenderPass(theme,dark??!1),codegenModule:"@mui/material",themeToNative:(theme,dark)=>muiThemeOptions(theme,dark),themeModule:{importLines:['import { createTheme } from "@mui/material/styles";'],factory:"createTheme",defaultPath:"theme.ts"},ownedModules:{packages:["@mui/material"]},canvasBundleSpec:{components:(ids)=>ids.flatMap((id)=>{let descriptor=MUI_MANIFEST.find((entry)=>entry.id===id);if(!descriptor)return[];if(descriptor.source==="velloo"){let path=helperSourcePath(id);return path?[{id,sources:[{importPath:path,exportName:id,fidelity:"fallback",note:"Velloo helper used alongside the host framework."}]}]:[]}return[{id,sources:[{importPath:`@mui/material/${id}`,exportName:id,fidelity:overlayIds.includes(id)?"adapted":"exact",...overlayIds.includes(id)?{note:"Real MUI surface rendered through an inline canvas overlay shim."}:{}}]}]}),overlayIds,styleRuntime:{kind:"emotion",cacheKey:"vmui",stylesModule:"@mui/material/styles"}}}}export{createProvider};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{NEVER,string,number,boolean,_null,unknown,array,object,strictObject,union,record,_enum,literal,preprocess,FrameSchemeSchema,MAX_BOARD_NAME_LENGTH,NodeIdSchema,RepoComponentRefSchema,NodeSchema,SnippetParamSchema}from"./chunk-nte0t7v3.js";var Visibility=_enum(["public","private"]),AuthConfigResponseSchema=object({appUrl:string().optional(),issuer:string().optional(),clientId:string().optional()}),HealthResponseSchema=object({ok:boolean().optional(),db:object({ok:boolean().optional()}).optional(),blob:object({ok:boolean().optional()}).optional()}),AccountResponseSchema=object({email:string(),name:string().optional(),tier:string().optional(),creditMicros:number().nullable().optional()}),PRICING_URL="https://velloo.design/pricing";function protectedSharesAllowed(tier){return tier!=="free"}var PROTECTED_SHARES_UNAVAILABLE="private and password-protected links need a Team or Business plan \u2014 free accounts publish public links only",PublishSlotSchema=object({slug:string(),url:string(),title:string(),teamId:string().nullable(),visibility:Visibility,passwordProtected:boolean(),latestVersionId:string().nullable(),lastPublishedAt:string().nullable(),context:object({boardIds:array(string()),selectionFingerprint:string().nullable(),contextKnown:boolean(),repo:string().nullable(),branch:string().nullable()})}),PublishDestinationsResponseSchema=object({effectiveTeamId:string().nullable(),slots:array(PublishSlotSchema)}),LinkResponseSchema=object({slug:string(),visibility:Visibility.optional(),passwordProtected:boolean().optional()}),LinkAccessResponseSchema=object({visibility:Visibility,passwordProtected:boolean()}),VersionUploadResponseSchema=object({files:number(),bytes:number(),url:string(),tier:string().optional(),history:object({retained:boolean(),versions:number(),pruned:number()}).optional()}),PublishedDesignSchema=object({slug:string(),title:string().nullable(),url:string(),visibility:Visibility,passwordProtected:boolean(),canManage:boolean(),mine:boolean(),ownerEmail:string().nullable().optional(),git:object({repo:string().optional(),branch:string().optional()}).nullable().optional(),published:boolean(),lastPublishedAt:string().nullable()}),PublishedDesignsResponseSchema=object({links:array(PublishedDesignSchema).optional()}),TeamSchema=object({id:string(),name:string(),isDefault:boolean().optional()}),TeamsResponseSchema=object({teams:array(TeamSchema)}),DeviceCodeResponseSchema=object({device_code:string(),user_code:string(),verification_uri:string(),verification_uri_complete:string(),expires_in:number(),interval:number()}),DeviceTokenResponseSchema=object({access_token:string().optional(),error:string().optional(),error_description:string().optional()}),CliTokenResponseSchema=object({token:string(),email:string()}),IntentPriceSchema=object({intent:string(),summary:string(),priceMicros:number(),output:_enum(["image","svg"]),aspects:array(string()),defaultAspect:string(),reference:_enum(["forbidden","optional","required"])}),IntentCatalogResponseSchema=object({intents:array(IntentPriceSchema),maxCount:number().optional()}),GeneratedAssetPayloadSchema=object({kind:_enum(["image","svg"]),dataUrl:string()}),GenerateResponseSchema=object({id:string(),intent:string().optional(),chargedMicros:number(),balanceMicros:number(),assets:array(GeneratedAssetPayloadSchema).min(1).optional(),kind:_enum(["image","svg"]).optional(),dataUrl:string().optional()}).transform((r,ctx)=>{let assets=r.assets??(r.dataUrl&&r.kind?[{kind:r.kind,dataUrl:r.dataUrl}]:null);if(!assets)return ctx.addIssue({code:"custom",message:"no assets in the generation reply"}),NEVER;return{id:r.id,intent:r.intent??"",assets,chargedMicros:r.chargedMicros,balanceMicros:r.balanceMicros}}),FeedbackIssuerResponseSchema=object({scheme:string(),publicKey:string()}),FeedbackSignaturesResponseSchema=object({signatures:array(string())});var ACTIVITY_EVENT_TYPE="activity",SocketFrameSchema=union([object({type:literal("screen-changed"),screenId:string().min(1)}),object({type:literal("board-changed"),boardId:string().min(1)}),object({type:literal("theme-changed")}),object({type:literal("snippet-changed"),snippetId:string().min(1)}),object({type:literal("annotations-changed"),screenId:string().min(1)}),object({type:literal("notes-changed"),boardId:string().min(1)}),object({type:literal("comments-changed"),boardId:string().min(1),scope:_enum(["local","shared"])}),object({type:literal("config-changed")}),object({type:literal("folder-reloaded")}),object({type:literal("reload-error"),source:string(),message:string()}),object({type:literal(ACTIVITY_EVENT_TYPE)}).loose()]);var CLOUD_ERROR_CODES=["bad_request","unauthorized","sign_in_required","insufficient_credits","forbidden","not_found","conflict","payload_too_large","unsupported_media_type","rate_limited","generation_failed","billing_upstream","unavailable","storage_unavailable","internal"];function isCloudErrorCode(value){return typeof value==="string"&&CLOUD_ERROR_CODES.includes(value)}var unreachable=(error,opts={})=>({kind:"Unreachable",detail:error instanceof Error?error.message:String(error),...opts.url!==void 0?{url:opts.url}:{},...opts.timedOut?{timedOut:!0}:{}}),httpFailure=(operation,status,detail,code)=>({kind:"HttpFailure",operation,status,detail:detail&&detail.length>0?detail:"unknown",...code!==void 0?{code}:{}}),loggedOut=(detail)=>detail===void 0?{kind:"LoggedOut"}:{kind:"LoggedOut",detail},protocolViolation=(detail)=>({kind:"ProtocolViolation",detail}),uploadRaceLost=()=>({kind:"UploadRaceLost"}),insecureCloudUrl=(url)=>({kind:"InsecureCloudUrl",url}),invalidRequest=(detail)=>({kind:"InvalidRequest",detail});async function readFailure(res){let body=await res.json().catch(()=>{return});if(!body||typeof body!=="object")return{detail:"unknown"};let{message,error}=body,detail=typeof message==="string"&&message.length>0?message:"unknown";return isCloudErrorCode(error)?{detail,code:error}:{detail}}function cloudFailure(operation,status,detail,code){if(status!==401&&code!=="unauthorized")return httpFailure(operation,status,detail,code);return loggedOut(detail&&detail.length>0&&detail!=="unknown"?`velloo-cloud rejected the stored credential (${detail})`:"velloo-cloud rejected the stored credential")}async function httpFailureFrom(operation,res){let{detail,code}=await readFailure(res);return cloudFailure(operation,res.status,detail,code)}function boardLimitFrom(error){if(error.kind!=="HttpFailure"||error.status!==403)return null;let match=/\bthe (\w+) plan is limited to (\d+) active cloud boards\b/.exec(error.detail);if(!match?.[1]||!match[2])return null;return{tier:match[1],limit:Number(match[2])}}function describeBoardLimit({tier,limit}){return`the ${tier} plan keeps ${limit} board${limit===1?"":"s"} published at a time \u2014 take one down to publish another`}var serverTrouble=(status)=>status>=500?" \u2014 the cloud is having trouble; check its status or try again later":"";function describeCloudError(error){switch(error.kind){case"Unreachable":{let target=error.url?`cannot reach ${error.url}`:"cannot reach the cloud";return error.timedOut?`${target} \u2014 timed out (${error.detail}); check your connection and try again`:`${target} (${error.detail}) \u2014 check your connection and try again`}case"HttpFailure":return`${error.operation} failed (${error.status}): ${error.detail}${serverTrouble(error.status)}`;case"LoggedOut":return error.detail?`${error.detail} \u2014 run \`velloo login\``:"you are signed out \u2014 run `velloo login`";case"ProtocolViolation":return`${error.detail} \u2014 this is a bug; please report it`;case"UploadRaceLost":return"upload confirmation was lost and the retry found the publish slot changed \u2014 "+"the publish may have succeeded; check your published boards before retrying";case"InsecureCloudUrl":return`refusing to send credentials to ${error.url} over an insecure connection`;case"InvalidRequest":return error.detail;default:{let exhaustive=error;return"the cloud request failed"}}}function ok(value){return{ok:!0,value}}function err(error){return{ok:!1,error}}function map(r,fn){return r.ok?ok(fn(r.value)):r}async function tryCatchAsync(fn,onError){try{return ok(await fn())}catch(thrown){return err(onError(thrown))}}function*$(r){if(!r.ok)throw yield r,Error("unreachable: generator resumed after err");return r.value}async function DoAsync(gen){let iter=gen(),step=await iter.next();while(!step.done){let r=step.value;if(!r.ok)return r;step=await iter.next(r.value)}return ok(step.value)}async function cloudJson(res,schema,operation){let body;try{body=await res.json()}catch(error){return err(protocolViolation(`${operation}: the cloud's response was not JSON (${error instanceof Error?error.message:String(error)})`))}let parsed=schema.safeParse(body);if(!parsed.success)return err(protocolViolation(`${operation}: the cloud's response did not match the protocol`));return ok(parsed.data)}async function cloudFetch(url,schema,opts){let{operation,token,timeoutMs,...init}=opts,res;try{res=await fetch(url,{...init,headers:{...token!==void 0?{authorization:`Bearer ${token}`}:{},...init.headers},...timeoutMs!==void 0?{signal:AbortSignal.timeout(timeoutMs)}:{}})}catch(error){let timedOut=error instanceof Error&&error.name==="TimeoutError";return err(unreachable(error,{url,...timedOut?{timedOut:!0}:{}}))}if(!res.ok)return err(await httpFailureFrom(operation,res));return cloudJson(res,schema,operation)}var PathArraySchema=array(number()),IdLocatorSchema=string().regex(/^@[a-zA-Z][a-zA-Z0-9_-]*$/,{message:"id locator must match /^@[a-zA-Z][a-zA-Z0-9_-]*$/"}),jsonTolerant=(schema)=>preprocess((v)=>{if(typeof v==="string"){let t=v.trim();if(t.startsWith("[")||t.startsWith("{"))try{return JSON.parse(t)}catch{}}return v},schema),singularTolerant=(schema)=>preprocess((v)=>typeof v==="object"&&v!==null&&!Array.isArray(v)?[v]:v,schema),LocatorSchema=jsonTolerant(union([PathArraySchema,IdLocatorSchema])).describe('Node address: an "@id" like "@hero-cta", or an index path from the root ([0,2,1])'),LocatorOrRootSchema=LocatorSchema.default([]),InnerPathSchema=string().describe('Body node: "@id" (preferred \u2014 survives restructures), a dotted index path ("0.2"), or "" for the root'),PatchRecordSchema=record(string(),unknown());var invalid=(message,issues)=>issues===void 0?{ok:!1,message}:{ok:!1,message,issues},ScreenId=string().min(1),BoardId=string().min(1),FrameId=string().min(1),SnippetId=string().min(1),FramePatchSchema=strictObject({x:number().optional(),y:number().optional(),w:number().int().positive().optional(),h:number().int().positive().optional(),label:string().nullable().optional(),group:string().nullable().optional(),scheme:FrameSchemeSchema.nullable().optional()}),EmitAsSchema=object({name:string().min(1),importPath:string().min(1)}).describe("Mark the node a host-component facade: the canvas renders the subtree, emit_code emits <name /> from importPath instead."),AnnotationPositionSchema=union([object({x:number(),y:number()}),literal("auto")]),addNodeShape={screenId:ScreenId,parentPath:LocatorOrRootSchema,componentRef:string().min(1),id:NodeIdSchema.optional(),props:PatchRecordSchema.optional(),children:jsonTolerant(union([array(NodeSchema),string(),number()])).optional(),index:number().int().nonnegative().optional(),emitAs:EmitAsSchema.optional(),repo:RepoComponentRefSchema.optional().describe("Place an app component by identity (importPath + exportName [+ member]) when it isn't in list_components' repo catalog yet")},AddNodeBody=strictObject(addNodeShape);function normalizeAddNode(input){let{children,...rest}=input;if(typeof children==="string"||typeof children==="number")return invalid("add_node: `children` must be an array of nodes.",[{code:"invalid_type",expected:"array",path:["children"]}]);let props=input.props;return{ok:!0,args:{...rest,...props===void 0?{}:{props},...children===void 0?{}:{children}}}}var StylePayloadSchema=jsonTolerant(union([string(),PatchRecordSchema,_null()])).describe("Native style channel: a className string (Tailwind), an object of properties (sx / style), or null to clear"),PropsPatchEntrySchema=object({path:LocatorSchema,propPatch:PatchRecordSchema.optional(),style:StylePayloadSchema.optional()}).refine((e)=>e.propPatch!==void 0||e.style!==void 0,{message:"each patch needs propPatch, style, or both"}),GestureSchema=string().max(64).optional().describe("Opaque id of the drag this write belongs to; merges its undo steps into one"),updatePropsShape={screenId:ScreenId,patches:jsonTolerant(singularTolerant(array(PropsPatchEntrySchema).min(1))).describe("One entry per node; length 1 for a single edit"),gesture:GestureSchema},UpdatePropsBody=strictObject(updatePropsShape),applyClassesShape={screenId:ScreenId,path:LocatorOrRootSchema,classes:string(),gesture:GestureSchema},ApplyClassesBody=strictObject(applyClassesShape),removeNodeShape={screenId:ScreenId,path:LocatorSchema},RemoveNodeBody=strictObject(removeNodeShape),moveNodeShape={screenId:ScreenId,fromPath:LocatorSchema,toParent:LocatorSchema,toIndex:number().int().nonnegative().optional()},MoveNodeBody=strictObject(moveNodeShape),setNodeIdShape={screenId:ScreenId,path:LocatorSchema,id:NodeIdSchema.nullable()},SetNodeIdBody=strictObject(setNodeIdShape),RoutePath=string().trim().min(1).transform((value)=>value.startsWith("/")?value:`/${value}`),addScreenShape={name:string().min(1),id:string().min(1).optional(),fromScreenId:string().min(1).optional(),tree:NodeSchema.optional(),route:RoutePath.optional()},AddScreenBody=strictObject(addScreenShape),removeScreenShape={screenId:ScreenId},RemoveScreenBody=strictObject(removeScreenShape),setScreenTreeShape={screenId:ScreenId,tree:NodeSchema},SetScreenTreeBody=strictObject(setScreenTreeShape),updateScreenShape={screenId:ScreenId,patch:object({name:string().min(1).optional(),route:RoutePath.nullable().optional()})},UpdateScreenBody=strictObject(updateScreenShape),addBoardShape={name:string().min(1).max(MAX_BOARD_NAME_LENGTH),id:string().min(1).optional(),group:string().min(1).optional()},AddBoardBody=strictObject(addBoardShape),updateBoardShape={boardId:BoardId,patch:object({name:string().min(1).max(MAX_BOARD_NAME_LENGTH).optional(),theme:string().min(1).nullable().optional(),archived:boolean().optional(),group:string().min(1).nullable().optional()})},UpdateBoardBody=strictObject(updateBoardShape),removeBoardShape={boardId:BoardId},RemoveBoardBody=strictObject(removeBoardShape),reorderBoardsShape={order:array(string().min(1))},ReorderBoardsBody=strictObject(reorderBoardsShape),addBoardGroupShape={name:string().min(1),color:string().min(1).optional()},AddBoardGroupBody=strictObject(addBoardGroupShape),updateBoardGroupShape={groupId:string().min(1),patch:object({name:string().min(1).optional(),color:string().min(1).nullable().optional()})},UpdateBoardGroupBody=strictObject(updateBoardGroupShape),removeBoardGroupShape={groupId:string().min(1)},RemoveBoardGroupBody=strictObject(removeBoardGroupShape),reorderBoardGroupsShape={order:array(string().min(1))},ReorderBoardGroupsBody=strictObject(reorderBoardGroupsShape),addFrameShape={boardId:BoardId,screenId:ScreenId,x:number().optional(),y:number().optional(),w:number().int().positive(),h:number().int().positive(),label:string().optional(),group:string().optional(),id:string().min(1).optional()},AddFrameBody=strictObject(addFrameShape),FramePatchEntrySchema=preprocess((v)=>{if(typeof v!=="object"||v===null||Array.isArray(v)||"patch"in v)return v;let{frameId,...patch}=v;return Object.keys(patch).length>0?{frameId,patch}:v},object({frameId:FrameId,patch:FramePatchSchema})),updateFrameShape={boardId:BoardId,patches:jsonTolerant(singularTolerant(array(FramePatchEntrySchema).min(1))).describe("One entry per frame; length 1 for a single edit")},UpdateFrameBody=strictObject(updateFrameShape),removeFrameShape={boardId:BoardId,frameId:FrameId},RemoveFrameBody=strictObject(removeFrameShape),moveFrameShape={boardId:BoardId,frameId:FrameId,toBoardId:BoardId,x:number().optional(),y:number().optional()},MoveFrameBody=strictObject(moveFrameShape),addSnippetShape={name:string().min(1),id:string().min(1).optional(),params:array(SnippetParamSchema).default([]),tree:NodeSchema},AddSnippetBody=strictObject(addSnippetShape),updateSnippetShape={snippetId:SnippetId,patch:object({name:string().min(1).optional(),params:array(SnippetParamSchema).optional(),tree:NodeSchema.optional(),innerPatch:object({innerPath:InnerPathSchema,propPatch:PatchRecordSchema}).optional()})},UpdateSnippetBody=strictObject(updateSnippetShape),removeSnippetShape={snippetId:SnippetId},RemoveSnippetBody=strictObject(removeSnippetShape),instantiateSnippetShape={screenId:ScreenId,parentPath:LocatorOrRootSchema,snippetId:SnippetId,id:NodeIdSchema.optional(),args:PatchRecordSchema.optional(),extraClassName:string().optional().describe("One-off classes layered onto the snippet body's root, for this instance"),overrides:record(string(),object({props:PatchRecordSchema})).optional(),index:number().int().nonnegative().optional()},InstantiateSnippetBody=strictObject(instantiateSnippetShape),overrideSnippetPropsShape={screenId:ScreenId,path:LocatorSchema,innerPath:InnerPathSchema,propPatch:PatchRecordSchema},OverrideSnippetPropsBody=strictObject(overrideSnippetPropsShape),updateSnippetArgsShape={screenId:ScreenId,path:LocatorSchema,argPatch:PatchRecordSchema.default({}),extraClassName:string().nullable().optional(),gesture:GestureSchema},UpdateSnippetArgsBody=strictObject(updateSnippetArgsShape),updateSnippetInstanceShape={screenId:ScreenId,path:LocatorSchema,argPatch:PatchRecordSchema.optional(),extraClassName:string().nullable().optional(),innerPath:InnerPathSchema.optional(),propPatch:PatchRecordSchema.optional()},UpdateSnippetInstanceBody=strictObject(updateSnippetInstanceShape);function normalizeUpdateSnippetInstance(input){let wantsArgs=input.argPatch!==void 0||input.extraClassName!==void 0,hasInner=input.innerPath!==void 0,hasPatch=input.propPatch!==void 0;if(hasInner!==hasPatch)return invalid("update_snippet_instance: innerPath and propPatch go together.");if(!wantsArgs&&!hasInner)return invalid("update_snippet_instance: pass argPatch, extraClassName, or innerPath+propPatch.");let plan={};if(wantsArgs)plan.args={screenId:input.screenId,path:input.path,argPatch:input.argPatch??{},...input.extraClassName!==void 0?{extraClassName:input.extraClassName}:{}};if(hasInner&&input.innerPath!==void 0&&input.propPatch!==void 0)plan.override={screenId:input.screenId,path:input.path,innerPath:input.innerPath,propPatch:input.propPatch};return{ok:!0,args:plan}}var addAnnotationShape={screenId:ScreenId,target:object({locator:LocatorSchema}),body:string(),position:AnnotationPositionSchema.optional(),collapsed:boolean().optional()},AddAnnotationBody=strictObject(addAnnotationShape),updateAnnotationShape={screenId:ScreenId,annotationId:string().min(1),patch:object({body:string().optional(),position:AnnotationPositionSchema.optional(),collapsed:boolean().nullable().optional()})},UpdateAnnotationBody=strictObject(updateAnnotationShape),removeAnnotationShape={screenId:ScreenId,annotationId:string().min(1)},RemoveAnnotationBody=strictObject(removeAnnotationShape),NoteAttachmentSchema=object({frameId:FrameId,screenId:ScreenId,locator:LocatorSchema}),addNoteShape={boardId:BoardId,x:number().optional(),y:number().optional(),width:number().positive().optional(),body:string(),attachment:NoteAttachmentSchema.optional()},AddNoteBody=object(addNoteShape).refine((a)=>a.attachment!==void 0||a.x!==void 0&&a.y!==void 0,{message:"A note without an attachment needs x and y",path:["x"]}),updateNoteShape={boardId:BoardId,noteId:string().min(1),patch:object({x:number().optional(),y:number().optional(),width:number().positive().optional(),body:string().optional()})},UpdateNoteBody=strictObject(updateNoteShape),removeNoteShape={boardId:BoardId,noteId:string().min(1)},RemoveNoteBody=strictObject(removeNoteShape),updateViewportPresetsShape={presets:array(object({name:string().min(1),w:number().int().positive(),h:number().int().positive()}))},UpdateViewportPresetsBody=strictObject(updateViewportPresetsShape),updateDefaultsShape={defaultBoard:string().min(1).nullable().optional(),defaultScreen:string().min(1).nullable().optional()},UpdateDefaultsBody=strictObject(updateDefaultsShape),updateCodegenShape={componentsAlias:string().nullable().optional()},UpdateCodegenBody=strictObject(updateCodegenShape),updateDesignNameShape={name:string()},UpdateDesignNameBody=strictObject(updateDesignNameShape),updateFeedbackShape={enabled:boolean().optional(),contactOk:boolean().optional()},UpdateFeedbackBody=strictObject(updateFeedbackShape);export{ok,err,map,tryCatchAsync,$,DoAsync,isCloudErrorCode,AuthConfigResponseSchema,HealthResponseSchema,AccountResponseSchema,PRICING_URL,protectedSharesAllowed,PROTECTED_SHARES_UNAVAILABLE,PublishDestinationsResponseSchema,LinkResponseSchema,LinkAccessResponseSchema,VersionUploadResponseSchema,PublishedDesignsResponseSchema,TeamsResponseSchema,DeviceCodeResponseSchema,DeviceTokenResponseSchema,CliTokenResponseSchema,IntentCatalogResponseSchema,GenerateResponseSchema,FeedbackIssuerResponseSchema,FeedbackSignaturesResponseSchema,unreachable,loggedOut,protocolViolation,uploadRaceLost,insecureCloudUrl,invalidRequest,readFailure,cloudFailure,httpFailureFrom,boardLimitFrom,describeBoardLimit,describeCloudError,cloudJson,cloudFetch,LocatorSchema,AddNodeBody,normalizeAddNode,updatePropsShape,UpdatePropsBody,ApplyClassesBody,removeNodeShape,RemoveNodeBody,moveNodeShape,MoveNodeBody,setNodeIdShape,SetNodeIdBody,addScreenShape,AddScreenBody,removeScreenShape,RemoveScreenBody,SetScreenTreeBody,updateScreenShape,addBoardShape,AddBoardBody,updateBoardShape,UpdateBoardBody,removeBoardShape,RemoveBoardBody,reorderBoardsShape,ReorderBoardsBody,AddBoardGroupBody,UpdateBoardGroupBody,RemoveBoardGroupBody,ReorderBoardGroupsBody,addFrameShape,AddFrameBody,updateFrameShape,UpdateFrameBody,removeFrameShape,RemoveFrameBody,MoveFrameBody,addSnippetShape,AddSnippetBody,updateSnippetShape,UpdateSnippetBody,removeSnippetShape,RemoveSnippetBody,InstantiateSnippetBody,UpdateSnippetArgsBody,updateSnippetInstanceShape,UpdateSnippetInstanceBody,normalizeUpdateSnippetInstance,AddAnnotationBody,UpdateAnnotationBody,RemoveAnnotationBody,AddNoteBody,UpdateNoteBody,RemoveNoteBody,updateViewportPresetsShape,UpdateViewportPresetsBody,UpdateDefaultsBody,UpdateCodegenBody,UpdateDesignNameBody,UpdateFeedbackBody};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{isCancel,confirm,password,select}from"./chunk-80fjfyha.js";import{PRICING_URL,protectedSharesAllowed,PROTECTED_SHARES_UNAVAILABLE,describeCloudError}from"./chunk-n9t36h0q.js";import"./chunk-nte0t7v3.js";import{closePooledBrowser}from"./chunk-c4fym47a.js";import{loadDesignFolder,screensForBoards,resolveProviders,findHostTailwindConfig,TailwindJit,extraThemeBlock}from"./chunk-5ezzc1h2.js";import{loadCredential}from"./chunk-hfzg98c8.js";import{fail}from"./chunk-s23gtejf.js";import{confirmRenderFailures}from"./chunk-m3czg1tt.js";import{publishedDesignSubtitle,listPublishedDesigns,unpublishDesign,listPublishDestinations,designGitEnv,describePublishError,recommendedPublishSlot,exactPublishSlots,gitContext,resolveTeam,publishDesign,createPublishBundler}from"./chunk-6nzqhfqq.js";import{createProgress}from"./chunk-pjtg3wnm.js";import{DESIGN_ARG_DESCRIPTION,resolveDesign,pickBoards}from"./chunk-td5z2sm4.js";import{fetchAccount}from"./chunk-6zz9kfbd.js";import{defaultCloudUrl,publishedBoardsUrl,billingPageUrl,checkCloudHealth}from"./chunk-as08hzp3.js";import{withSubcommands}from"./chunk-94vx1yb0.js";import{defineCommand}from"./chunk-2smsg2ct.js";import{join as join2}from"path";import{execFileSync}from"child_process";import{realpathSync}from"fs";import{join,relative,resolve,sep}from"path";function plainJsonStem(path,dir){let prefix=`${dir}/`;if(!path.startsWith(prefix)||!path.endsWith(".json"))return null;let stem=path.slice(prefix.length,-5);if(stem.includes("/")||stem.includes("."))return null;return stem}function classifyChanges(changes){let set={screens:new Map,global:!1,snippets:new Set,assets:new Set};for(let{status,path}of changes){let screen=plainJsonStem(path,"screens");if(screen){set.screens.set(screen,status);continue}if(path.startsWith("theme/")||path===".design/config.json"){set.global=!0;continue}let snippet=plainJsonStem(path,"snippets");if(snippet){set.snippets.add(snippet);continue}if(path.startsWith("assets/"))set.assets.add(`/${path}`)}return set}function snippetIdsIn(value,acc){if(Array.isArray(value)){for(let v of value)snippetIdsIn(v,acc);return}if(value!==null&&typeof value==="object"){let id=value.$snippet;if(typeof id==="string")acc.add(id);for(let v of Object.values(value))snippetIdsIn(v,acc)}}function snippetsUsedByScreen(screen,snippets){let used=new Set;snippetIdsIn(screen.tree,used);let grew=!0;while(grew){grew=!1;for(let id of[...used]){let body=snippets.get(id);if(!body)continue;let inner=new Set;snippetIdsIn(body,inner);for(let innerId of inner)if(!used.has(innerId))used.add(innerId),grew=!0}}return used}function detectChangedScreens(changes,afterScreens,afterSnippets){let out=new Map;for(let[id,status]of changes.screens)out.set(id,{id,status:status==="A"?"added":status==="D"?"deleted":"modified",reasons:["screen"]});let markModified=(id,reason)=>{let existing=out.get(id);if(existing){if(!existing.reasons.includes(reason))existing.reasons.push(reason);return}out.set(id,{id,status:"modified",reasons:[reason]})};if(changes.global||changes.snippets.size>0||changes.assets.size>0)for(let[id,screen]of afterScreens){if(changes.global)markModified(id,"theme");if(changes.snippets.size===0&&changes.assets.size===0)continue;let used=snippetsUsedByScreen(screen,afterSnippets);for(let snippetId of changes.snippets)if(used.has(snippetId))markModified(id,`snippet:${snippetId}`);if(changes.assets.size>0){let haystack=JSON.stringify(screen);for(let snippetId of used){let body=afterSnippets.get(snippetId);if(body)haystack+=JSON.stringify(body)}for(let asset of changes.assets)if(haystack.includes(asset))markModified(id,`asset:${asset}`)}}return[...out.values()].sort((a,b)=>a.id.localeCompare(b.id))}function git(repo,args){return execFileSync("git",["-C",repo,...args],{encoding:"utf8",maxBuffer:67108864,stdio:["ignore","pipe","pipe"]})}function resolveGitContext(designFolder,base,head){let repoRoot;try{repoRoot=execFileSync("git",["-C",designFolder,"rev-parse","--show-toplevel"],{encoding:"utf8",stdio:["ignore","pipe","pipe"],env:designGitEnv(designFolder)}).trim()}catch{throw Error(`design folder ${designFolder} is not in a git repository, so there are no refs to compare`)}let designRel=relative(realpathSync.native(repoRoot),realpathSync.native(resolve(designFolder))).split(sep).join("/");if(designRel.startsWith(".."))throw Error(`design folder ${designFolder} is outside the git repo at ${repoRoot}`);let rev=(ref)=>{try{return git(repoRoot,["rev-parse","--verify",`${ref}^{commit}`]).trim()}catch{throw Error(`cannot resolve git ref '${ref}'`)}},baseSha=rev(base),headSha=rev(head),currentSha=rev("HEAD");return{repoRoot,designRel,baseSha,headSha,headIsWorktree:headSha===currentSha}}function diffDesignFolder(ctx){let args=["diff","--name-status","--no-renames",ctx.baseSha];if(!ctx.headIsWorktree)args.push(ctx.headSha);if(ctx.designRel!=="")args.push("--",ctx.designRel);let output=git(ctx.repoRoot,args),prefix=ctx.designRel===""?"":`${ctx.designRel}/`,out=[];for(let line of output.split(`
|
|
3
|
+
`)){if(line.trim()==="")continue;let tab=line.indexOf("\t");if(tab===-1)continue;let code=line.slice(0,tab).trim(),repoPath=line.slice(tab+1);if(!repoPath.startsWith(prefix))continue;let status=code==="A"?"A":code==="D"?"D":code==="M"||code==="T"?"M":null;if(!status)continue;out.push({status,path:repoPath.slice(prefix.length)})}return out}function changedBoardId(path){if(!path.startsWith("boards/")||!path.endsWith(".json"))return null;let id=path.slice(7,-5);return id.includes("/")||id.includes(".")?null:id}function selectChangedPreviews(changes,screens,snippets,boards){let availableScreens=new Map(screens.map((screen)=>[screen.id,screen])),screenIds=new Set(detectChangedScreens(classifyChanges(changes),availableScreens,snippets).filter((change)=>change.status!=="deleted"&&availableScreens.has(change.id)).map((change)=>change.id)),directlyChangedBoards=new Set(changes.map((change)=>changedBoardId(change.path)).filter((id)=>id!==null)),boardIds=new Set(boards.filter((board)=>directlyChangedBoards.has(board.id)||board.frames.some((frame)=>screenIds.has(frame.screen))).map((board)=>board.id));return{screenIds,boardIds}}function changedPreviewsSince(designFolder,baseRef,screens,snippets,boards){let git=resolveGitContext(designFolder,baseRef,"HEAD");return selectChangedPreviews(diffDesignFolder(git),screens,snippets,boards)}async function resolveCloud(command,args){let baseUrl=args.url?args.url.replace(/\/+$/,""):defaultCloudUrl(),token=args.token??process.env.VELLOO_CLOUD_TOKEN??(await loadCredential(baseUrl))?.token;if(!token)fail(command,"not logged in. Run `velloo login` first.");return{baseUrl,token}}function cloudFailure(command,error){fail(command,describeCloudError(error))}async function listPublished(args){let{baseUrl,token}=await resolveCloud("publish list",args),listed=await listPublishedDesigns({baseUrl,token});if(!listed.ok)cloudFailure("publish list",listed.error);let designs=listed.value;if(designs.length===0){console.log("velloo publish: no published designs."),console.log(` ${await publishedBoardsUrl(baseUrl)}`);return}console.log(`velloo publish: ${designs.length} design${designs.length===1?"":"s"}`);for(let design of designs){let access=design.passwordProtected?"password protected":design.visibility==="private"?"private":"public";console.log(`
|
|
4
|
+
${design.title?.trim()||"Untitled design"}`),console.log(` ${access}`),console.log(` ${publishedDesignSubtitle(design)}`),console.log(` ${design.url}`)}console.log(`
|
|
5
|
+
Manage in velloo-cloud: ${await publishedBoardsUrl(baseUrl)}`)}async function removePublished(args){let{baseUrl,token}=await resolveCloud("publish remove",args),interactive=Boolean(process.stdin.isTTY);if(!interactive&&!args.shareUrl)fail("publish remove","pass the full share URL and --yes when there is no interactive terminal");if(!interactive&&args.yes!==!0)fail("publish remove","refusing to remove a published design without --yes");let listed=await listPublishedDesigns({baseUrl,token});if(!listed.ok)cloudFailure("publish remove",listed.error);let designs=listed.value,manageable=designs.filter((design)=>design.canManage);if(manageable.length===0)fail("publish remove",`there are no published designs you can remove. Manage boards at ${await publishedBoardsUrl(baseUrl)}`);let target;if(args.shareUrl){if(target=designFromReference(args.shareUrl,designs),!target)fail("publish remove",`that share URL is not in your published designs. Manage boards at ${await publishedBoardsUrl(baseUrl)}`);if(!target.canManage)fail("publish remove","you do not have permission to remove that design")}else{let value=await select({message:"Design to unpublish",options:manageable.map((design)=>({value:design.slug,label:design.title?.trim()||"Untitled design",hint:publishedDesignSubtitle(design)}))});if(target=resolveUnpublishSelection(isCancel(value)?null:String(value),manageable),!target)fail("publish remove","cancelled")}if(args.yes!==!0){let approved=await confirm({message:`Unpublish \u201C${target.title?.trim()||"Untitled design"}\u201D? Its share URL will stop working.`,initialValue:!1});if(isCancel(approved)||!approved)fail("publish remove","cancelled")}let removed=await unpublishDesign({baseUrl,token,slug:target.slug});if(!removed.ok)cloudFailure("publish remove",removed.error);console.log(`velloo publish: removed ${target.title?.trim()||"Untitled design"}`),console.log(` ${target.url}`)}function resolveUnpublishSelection(value,designs){return value===null?null:designs.find((design)=>design.slug===value)??null}function designFromReference(reference,designs){if(!/^https?:\/\//i.test(reference.trim()))return null;let normalize=(raw)=>{try{let url=new URL(raw.trim());return url.search="",url.hash="",url.toString().replace(/\/+$/,"")}catch{return null}},normalized=normalize(reference);if(normalized===null)return null;return designs.find((design)=>normalize(design.url)===normalized)??null}function privacyFlagsError(args,protectedShares=!0,upgradeUrl=PRICING_URL){if(args.visibility!==void 0&&args.visibility!=="public"&&args.visibility!=="private")return`--visibility must be 'public' or 'private', got '${args.visibility}'`;if(args.private&&args.public)return"--private and --public cannot be used together";if(args.private&&args.visibility==="public")return"--private conflicts with --visibility public";if(args.public&&args.visibility==="private")return"--public conflicts with --visibility private";if((args.private===!0||args.visibility==="private"||args.password===!0)&&!protectedShares)return`${PROTECTED_SHARES_UNAVAILABLE}. Publish with --public, or upgrade at ${upgradeUrl}`;return null}async function resolvePublishPrivacy(args,interactive,{protectedShares=!0,upgradeUrl=PRICING_URL,choose=promptForPrivacyMode}={}){let invalid=privacyFlagsError(args,protectedShares,upgradeUrl);if(invalid)throw Error(invalid);if(args.visibility!==void 0||args.private===!0||args.public===!0||args.password===!0)return{visibility:args.private||args.visibility==="private"?"private":"public",password:args.password===!0};if(!interactive)throw Error("privacy mode is required without a terminal; pass --public, --private, --password, or --visibility");let mode=await choose(protectedShares,upgradeUrl);if(typeof mode==="symbol")throw Error("cancelled");if(mode!=="public"&&!protectedShares)throw Error(PROTECTED_SHARES_UNAVAILABLE);return mode==="private"?{visibility:"private",password:!1}:{visibility:"public",password:mode==="password"}}async function promptForPrivacyMode(protectedShares,upgradeUrl){let locked=protectedShares?{}:{disabled:!0,hint:"Team & Business plans"};return select({message:protectedShares?"Who should be able to view this publish?":`Who should be able to view this publish? (free plan: public links \u2014 upgrade at ${upgradeUrl})`,initialValue:"public",options:[{value:"public",label:"Public",hint:"anyone with the link"},{value:"private",label:"Private",hint:"only your organization",...locked},{value:"password",label:"Password protected",hint:"anyone with the password",...locked}]})}var CLOUD_ARGS={url:{type:"string",description:"velloo-cloud base URL (default: $VELLOO_CLOUD_URL or the built-in default)"},token:{type:"string",description:"velloo-cloud access token (default: $VELLOO_CLOUD_TOKEN)"}},list=defineCommand({meta:{name:"list",description:"List the designs you've published"},args:CLOUD_ARGS,run:({args})=>listPublished(args)}),remove=defineCommand({meta:{name:"remove",description:"Take a published design down"},args:{"share-url":{type:"positional",required:!1,description:"The share URL to take down (default: pick one interactively)"},yes:{type:"boolean",description:"Skip the confirmation (required without an interactive terminal)"},...CLOUD_ARGS},run:({args})=>removePublished({...args,shareUrl:args["share-url"]})}),publish=defineCommand({meta:{name:"publish",description:"Publish a design as a velloo-cloud share link"},args:{design:{type:"positional",required:!1,description:DESIGN_ARG_DESCRIPTION},yes:{type:"boolean",description:"Publish even when a screen's component fails to render (required without an interactive terminal)"},...CLOUD_ARGS,slug:{type:"string",description:"Custom slug for --new (default: server-generated)"},new:{type:"boolean",description:"Create a separate publish link instead of updating an existing slot"},update:{type:"boolean",description:"Update the exact matching published design"},title:{type:"string",description:"Link title (default: the design's name)"},boards:{type:"string",description:"Comma-separated board ids to publish (default: pick interactively; all when non-interactive)"},visibility:{type:"string",description:"public | private \u2014 explicit alternative to the interactive privacy prompt"},public:{type:"boolean",description:"Publish for anyone with the link; skips the privacy prompt"},private:{type:"boolean",description:"Publish for your organization only; skips the privacy prompt"},password:{type:"boolean",description:"Password-protect the link; anyone with the password can view. Prompts for it, or reads $VELLOO_SHARE_PASSWORD"},"password-expires":{type:"string",description:"Stop accepting the password after this date (YYYY-MM-DD or ISO timestamp)"},team:{type:"string",description:"Publish into a team by name or UUID (default: personal workspace)"},w:{type:"string",description:"Viewport width in px (default: 1440)"},h:{type:"string",description:"Viewport height in px (default: 900)"},"changed-since":{type:"string",description:"Capture only screen/board previews affected since this git ref (the full design still publishes)"}},async run({args}){let folder=await resolveDesign(args.design,"publish"),baseUrl=args.url?args.url.replace(/\/+$/,""):defaultCloudUrl(),token=args.token??process.env.VELLOO_CLOUD_TOKEN??(await loadCredential(baseUrl))?.token;if(!token)fail("publish","not logged in. Run `velloo login` (or pass --token / VELLOO_CLOUD_TOKEN).");let interactive=Boolean(process.stdin.isTTY),team=await resolveTeam(baseUrl,token,args.team);if(!team.ok)fail("publish",describePublishError(team.error));let teamId=team.value,viewport={w:args.w?Number(args.w):1440,h:args.h?Number(args.h):900},design=await loadDesignFolder(folder),config=design.config,health=await checkCloudHealth(baseUrl);if(health.status==="unreachable")fail("publish",`cannot reach ${baseUrl} (${health.reason}). Is velloo-cloud up? (bun cloud:up)`);if(health.status==="unhealthy")fail("publish",health.detail);let account=await fetchAccount(baseUrl,token,5000),protectedShares=protectedSharesAllowed(account.status==="ok"?account.account.tier:void 0),upgradeUrl=protectedShares?void 0:await billingPageUrl(baseUrl),flagsError=privacyFlagsError(args,protectedShares,upgradeUrl);if(flagsError)fail("publish",flagsError);let selected=await pickBoards(folder,args.boards,interactive,"publish");if(selected===null){console.log("velloo publish: no boards selected \u2014 nothing was published.");return}let provenance=gitContext(folder),selectedBoardIds=new Set(selected.map((board)=>board.id)),selectedBoards=[...design.boards.values()].filter((board)=>selectedBoardIds.has(board.id)),screenshotSelection=args["changed-since"]?(()=>{try{return changedPreviewsSince(folder,args["changed-since"],[...design.screens.values()],design.snippets,selectedBoards)}catch(error){fail("publish",`cannot determine previews changed since '${args["changed-since"]}': ${error instanceof Error?error.message:String(error)}`)}})():void 0,listed=await(async()=>{if(!config.folderId||args.new===!0)return{effectiveTeamId:teamId??null,slots:[]};let destinations=await listPublishDestinations({baseUrl,token,folderId:config.folderId,...teamId?{teamId}:{}});if(!destinations.ok)fail("publish",describePublishError(destinations.error));return destinations.value})(),source={boardIds:selected.map((board)=>board.id),teamId:listed.effectiveTeamId,...provenance},destination=await choosePublishDestination({slots:listed.slots,source,interactive,createNew:args.new===!0,updateExisting:args.update===!0,customSlug:args.slug,manageUrl:await publishedBoardsUrl(baseUrl)}),privacy=await resolvePublishPrivacy(args,interactive,{protectedShares,...upgradeUrl?{upgradeUrl}:{}}).catch((error)=>fail("publish",error instanceof Error?error.message:String(error))),visibility=privacy.visibility,password=privacy.password?await readSharePassword():void 0,passwordExpiresAt=resolvePasswordExpiry(args["password-expires"],password!=null),{providers,defaultProvider}=await resolveProviders(config,folder);await confirmRenderFailures("publish",{folder:design,providers,defaultProvider},source.boardIds.length>0?screensForBoards(design,source.boardIds):[...design.screens.values()],args.yes===!0);let bundler=createPublishBundler(folder,config),jit=new TailwindJit(Object.values(providers),join2(folder,"screens"),void 0,()=>extraThemeBlock(design),()=>bundler.hostSourceDirs(),()=>findHostTailwindConfig(folder,config.hostApp),config.styling?.framework),progress=createProgress(),report=createPublishReporter(progress),outcome;try{let published=await publishDesign({baseUrl,token},{folder:design,providers,defaultProvider,snapshotCss:()=>jit.build(),liveBundler:bundler},{boardIds:selected.map((b)=>b.id),...args.title?{title:args.title}:{},visibility,...password?{password}:{},...passwordExpiresAt?{passwordExpiresAt}:{},destination,...teamId?{teamId}:{},provenance,viewport,...screenshotSelection?{screenshotSelection}:{}},report);if(!published.ok)progress.fail("publish failed"),fail("publish",describePublishError(published.error));outcome=published.value,progress.succeed("published design")}catch(error){progress.fail("publish failed"),fail("publish",error instanceof Error?error.message:String(error))}finally{await closePooledBrowser()}console.log(`velloo publish: ${outcome.files} files, ${Math.round(outcome.bytes/1024)} KB${outcome.screenshots>0?`, ${outcome.screenshots} screenshots`:""}${outcome.commitSha?`, commit ${outcome.commitSha.slice(0,7)}`:""}`),console.log(` ${outcome.shareUrl}`),console.log(` ${describeAccess(outcome)}`);let history=outcome.history;if(history&&!history.retained&&history.pruned>0)console.log(" replaced the previous version \u2014 the free plan keeps only the latest."),console.log(` Upgrade to Team to keep version history and revisit past publishes: ${PRICING_URL}`);else if(history?.retained&&history.versions>1)console.log(` history: ${history.versions} versions kept \u2014 pin any of them from ${outcome.shareUrl}v/<version>/`)}}),publish_default=withSubcommands(publish,{list,remove});function resolvePublishDestinationChoice(value,slots){if(value===null)return null;if(value==="new")return{mode:"new"};let slug=value.replace(/^update:/,""),slot=slots.find((candidate)=>candidate.slug===slug);if(!slot)return null;return{mode:"update",slug:slot.slug,expectedVersionId:slot.latestVersionId}}async function choosePublishDestination(opts){if(opts.createNew&&opts.updateExisting)fail("publish","choose either --new or --update, not both");if(opts.customSlug&&!opts.createNew)fail("publish","--slug names a new link; use it together with --new");let matching=exactPublishSlots(opts.slots,opts.source);if(opts.updateExisting){let slot=matching[0];if(!slot)fail("publish",`there is no exact published-design match to update. Manage existing boards at ${opts.manageUrl}`);return{mode:"update",slug:slot.slug,expectedVersionId:slot.latestVersionId}}if(opts.createNew)return{mode:"new",...opts.customSlug?{slug:opts.customSlug}:{}};if(matching.length===0)return(opts.log??console.log)("velloo publish: no matching published design \u2014 a new link will be created."),{mode:"new"};if(!opts.interactive)fail("publish","this folder already has published designs; pass --update or --new explicitly");let recommended=recommendedPublishSlot(opts.slots,opts.source),latestMatch=matching[0],value=await select({message:"Publish destination",initialValue:recommended?`update:${recommended.slug}`:"new",options:[...latestMatch?[{value:`update:${latestMatch.slug}`,label:`Update ${latestMatch.title||"Untitled design"}`,hint:"latest exact match for this team, board selection, and source"}]:[],{value:"new",label:"Create a new link",hint:recommended?"keep the matching design separate":"recommended for this source"}]}),destination=resolvePublishDestinationChoice(isCancel(value)?null:String(value),matching);if(!destination)fail("publish",isCancel(value)?"cancelled":"selected publish slot is no longer available");return destination}function createPublishReporter(progress){let latestCapture;return(event)=>{if(event.kind==="capture"){latestCapture=`capturing previews ${event.done}/${event.total}`,progress.step(latestCapture,{transient:!0});return}if(event.kind==="step"){if(latestCapture)progress.step(latestCapture);latestCapture=void 0,progress.step(event.message);return}progress.log(event.message)}}async function readSharePassword(){let fromEnv=process.env.VELLOO_SHARE_PASSWORD?.trim();if(fromEnv){if(fromEnv.length<3)fail("publish","VELLOO_SHARE_PASSWORD must be at least 3 characters");return fromEnv}if(!process.stdin.isTTY)fail("publish","--password needs a terminal to prompt \u2014 set $VELLOO_SHARE_PASSWORD instead");let entered=await password({message:"Password for this share link",validate:(value)=>(value??"").length<3?"At least 3 characters.":void 0});if(isCancel(entered))fail("publish","cancelled");return entered}function resolvePasswordExpiry(raw,hasPassword){if(!raw)return;if(!hasPassword)fail("publish","--password-expires needs --password");let value=/^\d{4}-\d{2}-\d{2}$/.test(raw)?`${raw}T23:59:59`:raw,when=new Date(value);if(Number.isNaN(when.getTime()))fail("publish",`--password-expires must be a date (YYYY-MM-DD) or ISO timestamp, got '${raw}'`);return when.toISOString()}function describeAccess(outcome){if(outcome.visibility==="private")return outcome.passwordProtected?"private \u2014 your organization, or anyone with the password":"private \u2014 anyone signed in at your organization";return outcome.passwordProtected?"public \u2014 anyone with the link and the password":"public \u2014 anyone with the link"}export{publish_default as default};
|