@json-to-office/jto 0.1.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/LICENSE +18 -0
- package/README.md +23 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +5639 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/assets/HomePage-CGK1cPFp.js +99 -0
- package/dist/client/assets/HomePage-CGK1cPFp.js.map +1 -0
- package/dist/client/assets/JsonEditorPage-DKaFqYpM.js +3 -0
- package/dist/client/assets/JsonEditorPage-DKaFqYpM.js.map +1 -0
- package/dist/client/assets/NotFoundPage-Et1QhbQw.js +2 -0
- package/dist/client/assets/NotFoundPage-Et1QhbQw.js.map +1 -0
- package/dist/client/assets/button-B5W5GwSc.js +2 -0
- package/dist/client/assets/button-B5W5GwSc.js.map +1 -0
- package/dist/client/assets/docx-preview-CUjVWdSJ.js +34 -0
- package/dist/client/assets/docx-preview-CUjVWdSJ.js.map +1 -0
- package/dist/client/assets/editor-CH_tiHyn.js +9 -0
- package/dist/client/assets/editor-CH_tiHyn.js.map +1 -0
- package/dist/client/assets/editor-monaco-json-8I2epq6g.js +6 -0
- package/dist/client/assets/editor-monaco-json-8I2epq6g.js.map +1 -0
- package/dist/client/assets/index-B9dV-vCI.css +1 -0
- package/dist/client/assets/index-DactvF4v.js +3 -0
- package/dist/client/assets/index-DactvF4v.js.map +1 -0
- package/dist/client/assets/monaco-editor-DzeBDgmk.js +12 -0
- package/dist/client/assets/monaco-editor-DzeBDgmk.js.map +1 -0
- package/dist/client/assets/preview-CJlTPgks.js +3 -0
- package/dist/client/assets/preview-CJlTPgks.js.map +1 -0
- package/dist/client/assets/query-vendor-UL64zsGL.js +15 -0
- package/dist/client/assets/query-vendor-UL64zsGL.js.map +1 -0
- package/dist/client/assets/radix-ui-CXavUarI.js +2 -0
- package/dist/client/assets/radix-ui-CXavUarI.js.map +1 -0
- package/dist/client/assets/react-vendor-DhdcN9D5.js +102 -0
- package/dist/client/assets/react-vendor-DhdcN9D5.js.map +1 -0
- package/dist/client/assets/settings-store-provider-DuCKtwqs.js +2 -0
- package/dist/client/assets/settings-store-provider-DuCKtwqs.js.map +1 -0
- package/dist/client/assets/state-vendor-CAMVKh-F.js +6 -0
- package/dist/client/assets/state-vendor-CAMVKh-F.js.map +1 -0
- package/dist/client/assets/ui-vendor-C6DsfOoA.js +247 -0
- package/dist/client/assets/ui-vendor-C6DsfOoA.js.map +1 -0
- package/dist/client/css/preview/docxjs.css +11 -0
- package/dist/client/icon.svg +5 -0
- package/dist/client/index.html +23 -0
- package/dist/client/templates/Charts Demo.pptx.json +174 -0
- package/dist/client/templates/Company Branding.pptx.json +143 -0
- package/dist/client/templates/Dashboard.pptx.json +91 -0
- package/dist/client/templates/Product Launch.pptx.json +87 -0
- package/dist/client/templates/Sales Deck.pptx.json +80 -0
- package/dist/client/templates/Wiseair.pptx.json +5382 -0
- package/dist/client/templates/themes/corporate.pptx.theme.json +32 -0
- package/dist/client/templates/themes/minimal.pptx.theme.json +32 -0
- package/dist/client/templates/themes/vibrant.pptx.theme.json +32 -0
- package/dist/index.d.ts +387 -0
- package/dist/index.js +2303 -0
- package/dist/index.js.map +1 -0
- package/package.json +147 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"mappings":"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","names":["initialState","ThemeProviderContext","createContext","ThemeProvider","children","defaultTheme","storageKey","props","theme","setTheme","useState","resolvedTheme","useEffect","root","systemTheme","value","useTheme","context","useContext","CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","className","classParts","getGroupRecursive","getGroupIdForArbitraryProperty","classGroupId","hasPostfixModifier","conflicts","classPartObject","currentClassPart","nextClassPartObject","classGroupFromNextClassPart","classRest","_a","validator","arbitraryPropertyRegex","arbitraryPropertyClassName","property","classGroups","processClassesRecursively","classGroup","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","key","path","currentClassPartObject","pathPart","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","MODIFIER_SEPARATOR_LENGTH","createParseClassName","prefix","experimentalParseClassName","parseClassName","modifiers","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","baseClassNameWithImportantModifier","baseClassName","stripImportantModifier","hasImportantModifier","maybePostfixModifierPosition","fullPrefix","parseClassNameOriginal","createSortModifiers","orderSensitiveModifiers","modifier","sortedModifiers","unsortedModifiers","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","classGroupsInConflict","classNames","result","originalClassName","isExternal","variantModifier","modifierId","classId","conflictGroups","i","group","twJoin","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","isLabelShadow","testLabel","testValue","shouldMatchNoLabel","label","imageLabels","sizeLabels","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scaleOverflow","scaleOverscroll","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleGap","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleUnambiguousSpacing","scalePadding","scaleMargin","scaleSizing","scaleColor","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleBlur","scaleOrigin","scaleRotate","scaleScale","scaleSkew","scaleTranslate","twMerge","cn","inputs","clsx","TooltipProvider","TooltipPrimitive.Provider","Tooltip","TooltipPrimitive.Root","TooltipTrigger","TooltipPrimitive.Trigger","TooltipContent","React.forwardRef","sideOffset","ref","jsx","TooltipPrimitive.Portal","TooltipPrimitive.Content","Toast","variant","_title","_description","_action","_open","_onOpenChange","ToastAction","ToastClose","jsxs","ToastTitle","ToastDescription","ToastViewport","TOAST_LIMIT","TOAST_REMOVE_DELAY","count","genId","toastTimeouts","addToRemoveQueue","toastId","timeout","dispatch","reducer","state","action","t","toast","listeners","memoryState","listener","id","dismiss","open","useToast","setState","React.useState","React.useEffect","Toaster","toasts","title","description","e","RootLayout","Outlet","Spinner","size","sizeClasses","variantClasses","usePluginsStore","create","persist","set","get","plugin","newSelectedPlugins","newMetadata","pluginName","onSuccess","onError","selectedPluginNames","loader","__vitePreload","updateMonacoWithPlugins","monacoConfig","monaco","error","errorMessage","name","str","serialized","IsAsyncIterator","IsObject","IsArray","IsUint8Array","IsBigInt","IsBoolean","IsDate","IsFunction","IsIterator","IsNull","IsNumber","IsRegExp","IsString","IsSymbol","IsUndefined","ArrayType","Visit","DateType","Uint8ArrayType","RegExpType","ObjectType","ValueGuard.IsArray","ValueGuard.IsDate","ValueGuard.IsUint8Array","ValueGuard.IsRegExp","ValueGuard.IsObject","Clone","CloneType","schema","options","IsPromise","IsMap","IsSet","IsTypedArray","HasPropertyKey","IsInteger","IsValueType","TypeSystemPolicy","IsExactOptionalProperty","IsObjectLike","isObject","IsRecordLike","IsNumberLike","IsVoidLike","isUndefined","ImmutableArray","Immutable","ImmutableObject","CreateType","TypeBoxError","message","TransformKind","ReadonlyKind","OptionalKind","Hint","Kind","IsReadonly","IsOptional","IsAny","IsKindOf","IsArgument","IsComputed","IsConstructor","IsIntersect","kind","IsLiteralValue","ValueGuard.IsBoolean","ValueGuard.IsNumber","ValueGuard.IsString","IsLiteral","IsMappedKey","IsMappedResult","IsNever","IsNot","IsRecord","IsRef","IsTemplateLiteral","IsThis","IsTransform","IsTuple","IsUnion","IsUnknown","IsUnsafe","IsVoid","IsKind","IsSchema","KnownTypes","IsPattern","IsControlCharacterFree","code","IsAdditionalProperties","IsOptionalBoolean","IsOptionalBigInt","ValueGuard.IsUndefined","ValueGuard.IsBigInt","IsOptionalNumber","IsOptionalString","IsOptionalPattern","IsOptionalFormat","IsOptionalSchema","IsProperties","IsLiteralString","IsLiteralNumber","IsLiteralBoolean","keys","PatternBoolean","PatternNumber","PatternString","PatternNever","PatternNumberExact","PatternStringExact","PatternNeverExact","map","Has","format","Set","Get","SetIncludes","T","S","SetDistinct","SetIntersect","L","SetIntersectManyResolve","Init","Acc","SetIntersectMany","SetUnionMany","Any","Array","items","Argument","AsyncIterator","Computed","target","parameters","DiscardKey","_","rest","Discard","acc","Never","MappedResult","properties","Constructor","returns","Function","UnionCreate","IsUnionOptional","types","type","RemoveOptionalFromRest","left","RemoveOptionalFromType","ResolveUnion","Optional","UnionEvaluated","Union","TemplateLiteralParserError","Unescape","pattern","IsNonEscaped","char","IsOpenParen","IsCloseParen","IsSeparator","IsGroup","InGroup","IsPrecedenceOr","IsPrecedenceAnd","Or","start","expressions","range","TemplateLiteralParse","And","Group","scan","Range","end","TemplateLiteralParseExact","TemplateLiteralFiniteError","IsNumberExpression","expression","IsBooleanExpression","IsStringExpression","IsTemplateLiteralExpressionFinite","expr","IsTemplateLiteralFinite","TemplateLiteralGenerateError","GenerateReduce","buffer","right","GenerateAnd","TemplateLiteralExpressionGenerate","GenerateOr","GenerateConst","TemplateLiteralGenerate","Literal","Boolean","BigInt","Number","String","FromUnion","syntax","trim","literals","literal","FromTerminal","R","FromSyntax","TemplateLiteralSyntax","TemplateLiteralPatternError","Escape","TemplateLiteralPattern","kinds","TemplateLiteralToUnion","TemplateLiteral","unresolved","FromTemplateLiteral","templateLiteral","IndexPropertyKeys","FromLiteral","literalValue","FromProperties","K2","Index","FromMappedResult","mappedResult","IndexFromMappedResult","FromRest","IndexFromPropertyKey","FromIntersectRest","FromIntersect","IntersectEvaluated","FromUnionRest","FromTuple","FromArray","FromProperty","propertyKey","IndexFromPropertyKeys","propertyKeys","FromSchema","IndexFromMappedKey","MappedIndexPropertyKey","MappedIndexPropertyKeys","MappedIndexProperties","mappedKey","Iterator","RequiredKeys","_Object","required","schematic","Object","Promise","item","RemoveReadonly","AddReadonly","ReadonlyWithFlag","F","Readonly","enable","ReadonlyFromMappedResult","K","P","Tuple","FromSchemaType","MappedKeyToKnownMappedResultProperties","MappedKeyToUnknownMappedResultProperties","MappedKeyToMappedResultProperties","FromMappedKey","FunctionType","Intersect","MappedFunctionReturnType","Mapped","RT","RemoveOptional","AddOptional","OptionalWithFlag","OptionalFromMappedResult","IntersectCreate","allObjects","clonedUnevaluatedProperties","IsIntersectOptional","ResolveIntersect","Ref","args","$ref","FromComputed","FromRef","FromPromise","Awaited","KeyOfPropertyKeys","propertyKeysArray","indexer","FromPatternProperties","patternProperties","includePatternProperties","KeyOfPattern","KeyOfFromType","propertyKeyTypes","KeyOfPropertyKeysToRest","KeyOf","KeyOfFromMappedResult","CompositeKeys","FilterNever","CompositeProperty","CompositeProperties","Composite","Date","Null","Symbol","Undefined","Uint8Array","Unknown","FromValue","ConditionalReadonly","Const","ConstructorParameters","KindGuard.IsConstructor","Enum","values1","anyOf","ExtendsResolverError","ExtendsResult","IntoBooleanResult","Throw","IsStructuralRight","TypeGuard.IsNever","TypeGuard.IsIntersect","TypeGuard.IsUnion","TypeGuard.IsUnknown","TypeGuard.IsAny","StructuralRight","FromNeverRight","FromIntersectRight","FromUnionRight","FromUnknownRight","FromAnyRight","FromAny","FromArrayRight","TypeGuard.IsObject","IsObjectArrayLike","TypeGuard.IsArray","FromAsyncIterator","TypeGuard.IsAsyncIterator","FromBigInt","FromObjectRight","TypeGuard.IsRecord","FromRecordRight","TypeGuard.IsBigInt","FromBooleanRight","TypeGuard.IsLiteralBoolean","TypeGuard.IsBoolean","FromBoolean","FromConstructor","TypeGuard.IsConstructor","FromDate","TypeGuard.IsDate","FromFunction","TypeGuard.IsFunction","FromIntegerRight","TypeGuard.IsLiteral","TypeGuard.IsNumber","TypeGuard.IsInteger","FromInteger","FromIterator","TypeGuard.IsIterator","TypeGuard.IsString","FromStringRight","FromNumberRight","FromNever","UnwrapTNot","current","depth","TypeGuard.IsNot","FromNot","FromNull","TypeGuard.IsNull","TypeGuard.IsLiteralNumber","FromNumber","IsObjectPropertyCount","IsObjectStringLike","IsObjectSymbolLike","TypeGuard.IsUndefined","IsObjectNumberLike","IsObjectBooleanLike","IsObjectBigIntLike","IsObjectDateLike","IsObjectUint8ArrayLike","IsObjectFunctionLike","length","IsObjectConstructorLike","IsObjectPromiseLike","then","Property","TypeGuard.IsOptional","TypeGuard.IsLiteralString","TypeGuard.IsSymbol","TypeGuard.IsUint8Array","RecordKey","FromObject","TypeGuard.IsPromise","RecordValue","Key","Value","FromRecord","FromRegExp","TypeGuard.IsRegExp","FromString","FromSymbol","TypeGuard.IsTemplateLiteral","IsArrayOfTuple","FromTupleRight","TypeGuard.IsTuple","FromUint8Array","FromUndefined","TypeGuard.IsVoid","FromVoidRight","FromUnknown","FromVoid","ExtendsCheck","Right","True","False","Extends","Left","ExtendsFromMappedResult","ExtendsResolve","trueType","falseType","ExtendsFromMappedKey","FromPropertyKey","U","FromPropertyKeys","LK","ExtendsUndefinedCheck","Not","ExcludeFromTemplateLiteral","Exclude","ExcludeRest","excluded","inner","ExcludeFromMappedResult","ExtractFromTemplateLiteral","Extract","ExtractRest","extracted","ExtractFromMappedResult","InstanceType","ReadonlyOptional","RecordCreateFromPattern","RecordCreateFromKeys","FromTemplateLiteralKey","FromUnionKey","FromLiteralKey","FromRegExpKey","FromStringKey","FromAnyKey","FromNeverKey","_key","FromBooleanKey","FromIntegerKey","FromNumberKey","Record","RecordPattern","record","FromTypes","FromType","mappedProperties","mappedValue","FromArgument","isReadonly","KindGuard.IsReadonly","isOptional","KindGuard.IsOptional","mapped","KindGuard.IsFunction","KindGuard.IsIntersect","KindGuard.IsUnion","KindGuard.IsTuple","KindGuard.IsArray","KindGuard.IsAsyncIterator","KindGuard.IsIterator","KindGuard.IsPromise","KindGuard.IsObject","KindGuard.IsRecord","KindGuard.IsArgument","Instantiate","Integer","MappedIntrinsicPropertyKey","M","Intrinsic","MappedIntrinsicPropertyKeys","MappedIntrinsicProperties","IntrinsicFromMappedKey","ApplyUncapitalize","first","ApplyCapitalize","ApplyUppercase","ApplyLowercase","mode","FromLiteralValue","union","Capitalize","Lowercase","Uncapitalize","Uppercase","Omit","OmitFromMappedResult","OmitResolve","omittedProperties","UnionFromPropertyKeys","typeKey","IsArrayValue","isTypeRef","isKeyRef","OmitFromMappedKey","Pick","PickFromMappedResult","PickResolve","PickFromMappedKey","leftKey","partialProperties","PartialResolve","KindGuard.IsComputed","KindGuard.IsRef","KindGuard.IsBigInt","KindGuard.IsBoolean","KindGuard.IsInteger","KindGuard.IsLiteral","KindGuard.IsNull","KindGuard.IsNumber","KindGuard.IsString","KindGuard.IsSymbol","KindGuard.IsUndefined","Partial","KindGuard.IsMappedResult","PartialFromMappedResult","requiredProperties","RequiredResolve","Required","RequiredFromMappedResult","DereferenceParameters","moduleProperties","Dereference","FromAwaited","FromIndex","FromKeyOf","FromPartial","FromOmit","FromPick","FromRequired","dereferenced","instanceType","returnType","FromTransform","transform","KindGuard.IsTransform","ComputeType","ComputeModuleProperties","TModule","$defs","computed","identified","Module","Parameters","Ordinal","Recursive","callback","thisType","RegExp","RestResolve","Rest","ReturnType","TransformDecodeBuilder","decode","TransformEncodeBuilder","encode","Codec","Transform","Unsafe","Void","Type","TypeBuilder","GridMarginSchema","GridGutterSchema","GridConfigSchema","HexColorSchema","SEMANTIC_COLOR_NAMES","SEMANTIC_COLOR_ALIASES","ColorValueSchema","n","STYLE_NAMES","StyleNameSchema","TextStyleSchema","ThemeConfigSchema","SlideBackgroundSchema","TransitionSchema","PptxAlignmentSchema","VerticalAlignmentSchema","ShadowSchema","GridPositionSchema","TextPropsSchema","Type2","PptxImagePropsSchema","Type3","ShapeTypeSchema","Type4","TextSegmentSchema","ShapePropsSchema","PptxTableCellSchema","Type5","PptxTablePropsSchema","PositionValue","Type6","ChartTypeSchema","ChartDataSeriesSchema","PptxChartPropsSchema","PptxHighchartsPropsSchema","Type7","Coord","Type8","contentComponent","propsSchema","TemplateObjectComponentSchema","defaultsComponent","PlaceholderDefaultsSchema","PlaceholderDefinitionSchema","TemplateSlideDefinitionSchema","PresentationPropsSchema","Type9","SlidePropsSchema","Type10","PPTX_STANDARD_COMPONENTS_REGISTRY","createPptxComponentSchemaObject","component","recursiveRef","Type11","baseProperties","createAllPptxComponentSchemas","This","generateUnifiedDocumentSchema","customComponents","Self","componentSchemas","entry","custom","latest","a","b","customDef","replaceRefs","obj","replacement","fixSchemaReferences","rootDefinitionName","traverse","currentPath","schemaValue","convertToJsonSchema","$schema","$id","definitions","schemaJson","recursiveId","extractedDefinitions","extractRecursiveSchemas","definitionName","_id","schemaWithoutId","jsonSchema","SEMVER_RE","parseSemver","version","match","compareSemver","pa","pb","latestVersion","versions","v","isCI","define_process_env_default","hasColorSupport","TextFormattingPropertiesSchema","FontDefinitionSchema","createReportPropsSchema","_moduleRef","ReportPropsSchema","AlignmentSchema","JustifiedAlignmentSchema","HeadingLevelSchema","SpacingSchema","ListSpacingSchema","LineSpacingSchema","IndentSchema","HorizontalPositionRelativeFromSchema","VerticalPositionRelativeFromSchema","HorizontalPositionAlignSchema","VerticalPositionAlignSchema","TextWrappingTypeSchema","TextWrappingSideSchema","FloatingPropertiesSchema","BaseComponentFields","createSectionPropsSchema","moduleRef","SectionPropsSchema","ColumnDescriptorSchema","ColumnsPropsSchema","HeadingPropsSchema","FrameWrapTypeSchema","FrameAnchorTypeSchema","FrameHorizontalAlignSchema","FrameVerticalAlignSchema","FloatingFramePropertiesSchema","AlignmentSchema2","ParagraphPropsSchema","TextBoxPropsSchema","ImagePropsSchema","StatisticPropsSchema","CellContentSchema","HorizontalAlignmentSchema","FontConfigSchema","BorderColorSchema","BorderSizeSchema","HideBordersSchema","PaddingSchema","CellDefaultsSchema","HeaderSchema","CellSchema","ColumnSchema","TablePropsSchema","HeaderPropsSchema","FooterPropsSchema","Type12","LevelFormatSchema","Type13","ListLevelPropsSchema","ListPropsSchema","TocStyleSchema","Type14","TocScopeSchema","TocStyleMappingSchema","TocPropsSchema","HighchartsPropsSchema","Type15","STANDARD_COMPONENTS_REGISTRY","getStandardComponent","c","createComponentSchemaObject","Type16","createAllComponentSchemas","includeStandardComponents","ComponentDefinition","customComponent","versionEntries","versionLiteralDesc","versionDesc","latestEntry","fallbackSchema","fallbackDesc","hasChildren","componentDescription","reportComponent","DefaultErrorFunction","ValueErrorType","errorFunction","GetErrorFunction","TypeDereferenceError","Resolve","references","Deref","Pushref","ValueHashError","ByteMarker","Accumulator","Prime","Size","Bytes","F64","F64In","F64Out","NumberToBytes","byteCount","FNV1A64","BooleanType","BigIntType","byte","NullType","NumberType","StringType","SymbolType","UndefinedType","Hash","ValueCheckUnknownTypeError","IsAnyOrUnknown","IsDefined","element","hashed","containsSchema","containsCount","FromImport","check1","keyPattern","check2","keyCheck","knownKeys","knownKey","valueKeys","valueKey","patternKey","patternSchema","regex","check3","FormatRegistry.Has","FormatRegistry.Get","FromThis","FromKind","TypeRegistry.Has","TypeRegistry.Get","references_","schema_","Check","ValueErrorsUnknownTypeError","EscapeKey","ValueErrorIterator","iterator","next","Create","errorType","errors","hasError","requiredKeys","unknownKeys","requiredKey","propertyValue","Errors","FromTypedArray","FromMap","FromSet","ValueOrDefault","defaultValue","clone","HasDefaultProperty","defaulted","knownPropertyKeys","additionalPropertiesSchema","propertyKeyPattern","propertySchema","knownPropertyKey","max","Default","DocumentMarginsSchema","PageSchema","FontsSchema","BorderStyleSchema","BorderDefinitionSchema","BordersSchema","StylePropertiesSchema","TabStopLeaderSchema","TabStopTypeSchema","TabStopDefinitionSchema","TocStylePropertiesSchema","StyleDefinitionsSchema","HeadingComponentDefaultsSchema","ParagraphComponentDefaultsSchema","ImageComponentDefaultsSchema","StatisticComponentDefaultsSchema","TableComponentDefaultsSchema","SectionComponentDefaultsSchema","ColumnsComponentDefaultsSchema","ListComponentDefaultsSchema","ComponentDefaultsSchema","ComponentDefinitionSchema","TextSpaceAfterPropsSchema","FormatRegistry.Set","STANDARD_COMPONENTS","EnvSchema","validateAndTransformEnv","rawEnv","withDefaults","Value.Default","Value.Check","Value.Errors","env","FORMAT","FORMAT_LABEL","FORMAT_EXT","generateDocxDocumentSchema","unified","generateDocxSchema","convertDocxToJsonSchema","enhancedSchema","enhanceSchemaDescriptions","generatePptxDocumentSchema","generatePptxSchema","convertPptxToJsonSchema","generateReportDefinitionSchema","generateThemeConfigSchema","DocxThemeConfigSchema","PptxThemeConfigSchema","cleanupTypeBoxIds","createReportSchemaConfig","filePatterns","createThemeSchemaConfig","subSchema","_b","componentType","_c","getComponentDescription","_d","enhancePropsDescriptions","descriptions","prop","desc","API_BASE_URL","FORMAT_API","API_ENDPOINTS","SchemaService","__publicField","pluginNames","cacheKey","cached","url","params","response","firstKey","tabType","timestamp","schemaService","isConfigured","completionDisposable","configureMonaco","configureMonacoInstance","removeTrailingCommas","jsonStr","model","text","cleanedText","parsed","formatted","registerJsonCompletionProvider","reportSchema","themeSchema","stripDiscriminator","resetMonacoConfig","lspToMonacoKind","lspKind","position","getWorker","completionList","detail","r","wordInfo","insertText","documentation","suggestion","documentSchema","models","validationSuccess","modelError","s","useMonacoPlugins","monacoRef","useRef","selectedPlugins","previousPluginsRef","success","MonacoPluginProvider","HomePage","lazy","module","JsonEditorPage","NotFoundPage","LazyLoadWrapper","Suspense","routes","Router","useRoutes","queryClient","QueryClient","App","QueryClientProvider","BrowserRouter","rootElement","createRoot"],"ignoreList":[1,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,135,136,137,138,139,140,141],"sources":["../../../src/client/components/theme-provider.tsx","../../../../../node_modules/.pnpm/tailwind-merge@3.0.1/node_modules/tailwind-merge/dist/bundle-mjs.mjs","../../../src/client/lib/utils.ts","../../../src/client/components/ui/tooltip.tsx","../../../src/client/components/ui/toast.tsx","../../../src/client/components/ui/use-toast.tsx","../../../src/client/components/ui/toaster.tsx","../../../src/client/layouts/RootLayout.tsx","../../../src/client/components/ui/spinner.tsx","../../../src/client/store/plugins-store.ts","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/clone/value.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/clone/type.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/value/guard/guard.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/system/policy.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/create/immutable.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/create/type.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/error/error.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/guard/kind.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/guard/type.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/registry/format.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/registry/type.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/sets/set.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/any/any.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/array/array.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/argument/argument.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/computed/computed.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/discard/discard.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/never/never.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/function/function.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/union/union-create.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/union/union.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/literal/literal.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/number/number.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/string/string.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/template-literal/union.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/object/object.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/promise/promise.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/optional/optional.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/ref/ref.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/composite/composite.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/date/date.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/null/null.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/const/const.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/enum/enum.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/extends/extends.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/extract/extract.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/record/record.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/integer/integer.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/omit/omit.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/pick/pick.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/partial/partial.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/required/required.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/module/compute.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/module/module.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/not/not.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/rest/rest.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/transform/transform.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/void/void.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/type/type/index.mjs","../../../../shared-pptx/dist/chunk-MZ3TEFYH.js","../../../../shared-pptx/dist/chunk-2USGRQBI.js","../../../../shared-pptx/dist/chunk-3MJF4X5S.js","../../../../shared-pptx/dist/chunk-USXTHQ7L.js","../../../../shared/dist/chunk-5J43F4XD.js","../../../../shared/dist/chunk-244MHDOZ.js","../../../../shared/dist/chunk-ZKD5BAMU.js","../../../../shared-docx/dist/chunk-F5LVWDTY.js","../../../../shared-docx/dist/chunk-5533WPL6.js","../../../../shared-docx/dist/chunk-LWR4TFZ5.js","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/errors/function.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/value/deref/deref.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/value/hash/hash.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/value/check/check.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/errors/errors.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/value/clone/clone.mjs","../../../../../node_modules/.pnpm/@sinclair+typebox@0.34.38/node_modules/@sinclair/typebox/build/esm/value/default/default.mjs","../../../../shared-docx/dist/chunk-BOUURUYX.js","../../../../shared-docx/dist/chunk-ET6YMNMF.js","../../../../shared-docx/dist/chunk-VP3X6DBP.js","../../../../shared-docx/dist/chunk-BEPLK76M.js","../../../../shared-docx/dist/chunk-EKWM2CWA.js","../../../../shared-docx/dist/index.js","../../../src/client/lib/env.ts","../../../src/client/lib/json-schema-generator.ts","../../../src/client/config/api.ts","../../../src/client/lib/schema-service.ts","../../../src/client/lib/monaco-config.ts","../../../src/client/hooks/useMonacoPlugins.ts","../../../src/client/components/MonacoPluginProvider.tsx","../../../src/client/routes/index.tsx","../../../src/client/Router.tsx","../../../src/client/App.tsx","../../../src/client/main.tsx"],"sourcesContent":["import { createContext, useContext, useEffect, useState } from 'react';\n\ntype Theme = 'dark' | 'light' | 'system';\n\ntype ThemeProviderProps = {\n children: React.ReactNode;\n defaultTheme?: Theme;\n storageKey?: string;\n};\n\ntype ThemeProviderState = {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n resolvedTheme: 'dark' | 'light';\n};\n\nconst initialState: ThemeProviderState = {\n theme: 'system',\n setTheme: () => null,\n resolvedTheme: 'light',\n};\n\nconst ThemeProviderContext = createContext<ThemeProviderState>(initialState);\n\nexport function ThemeProvider({\n children,\n defaultTheme = 'system',\n storageKey = 'vite-ui-theme',\n ...props\n}: ThemeProviderProps) {\n const [theme, setTheme] = useState<Theme>(\n () => (localStorage.getItem(storageKey) as Theme) || defaultTheme\n );\n\n // Compute resolved theme\n const resolvedTheme: 'dark' | 'light' =\n theme === 'system'\n ? window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n : (theme as 'dark' | 'light');\n\n useEffect(() => {\n const root = window.document.documentElement;\n\n root.classList.remove('light', 'dark');\n\n if (theme === 'system') {\n const systemTheme = window.matchMedia('(prefers-color-scheme: dark)')\n .matches\n ? 'dark'\n : 'light';\n\n root.classList.add(systemTheme);\n return;\n }\n\n root.classList.add(theme);\n }, [theme]);\n\n const value = {\n theme,\n resolvedTheme,\n setTheme: (theme: Theme) => {\n localStorage.setItem(storageKey, theme);\n setTheme(theme);\n },\n };\n\n return (\n <ThemeProviderContext.Provider {...props} value={value}>\n {children}\n </ThemeProviderContext.Provider>\n );\n}\n\nexport const useTheme = () => {\n const context = useContext(ThemeProviderContext);\n\n if (context === undefined)\n throw new Error('useTheme must be used within a ThemeProvider');\n\n return context;\n};\n","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => Boolean(value) && !Number.isNaN(Number(value));\nconst isInteger = value => Boolean(value) && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isNever, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position';\nconst imageLabels = /*#__PURE__*/new Set(['image', 'url']);\nconst isLabelImage = label => imageLabels.has(label);\nconst sizeLabels = /*#__PURE__*/new Set(['length', 'size', 'percentage']);\nconst isLabelSize = label => sizeLabels.has(label);\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['bottom', 'center', 'left', 'left-bottom', 'left-top', 'right', 'right-bottom', 'right-top', 'top'];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleInset = () => [isFraction, 'px', 'full', 'auto', isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleGap = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scalePadding = () => ['px', ...scaleUnambiguousSpacing()];\n const scaleMargin = () => ['px', 'auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'px', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleOrigin = () => ['center', 'top', 'top-right', 'right', 'bottom-right', 'bottom', 'bottom-left', 'left', 'top-left', isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', 'px', isArbitraryVariable, isArbitraryValue, themeSpacing];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: [isNumber],\n text: [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: [...scalePosition(), isArbitraryValue, isArbitraryVariable]\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', isArbitraryVariable, isArbitraryValue, themeContainer, themeSpacing]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleGap()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleGap()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleGap()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scalePadding()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scalePadding()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scalePadding()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scalePadding()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scalePadding()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scalePadding()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scalePadding()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scalePadding()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scalePadding()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [isArbitraryVariable, isArbitraryValue, /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, themeSpacing]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: ['px', ...scaleUnambiguousSpacing()]\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition]\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }]\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize]\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: [themeColor]\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', isArbitraryVariable, isArbitraryValue, themeInsetShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scaleOrigin()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scaleOrigin()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['before', 'after', 'placeholder', 'file', 'marker', 'selection', 'first-line', 'first-letter', 'backdrop', '*', '**']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport { cn } from '@/lib/utils';\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-md px-3 py-1.5 text-xs',\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import * as React from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface ToastProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n variant?: 'default' | 'destructive';\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: React.ReactElement;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nexport type ToastActionElement = React.ReactElement;\n\nconst Toast = React.forwardRef<HTMLDivElement, ToastProps>(\n (\n {\n className,\n variant = 'default',\n title: _title,\n description: _description,\n action: _action,\n open: _open,\n onOpenChange: _onOpenChange,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all',\n variant === 'default' && 'border bg-background text-foreground',\n variant === 'destructive' &&\n 'destructive group border-destructive bg-destructive text-destructive-foreground',\n className\n )}\n {...props}\n />\n );\n }\n);\nToast.displayName = 'Toast';\n\nconst ToastAction = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <button\n ref={ref}\n className={cn(\n 'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive',\n className\n )}\n {...props}\n />\n));\nToastAction.displayName = 'ToastAction';\n\nconst ToastClose = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600',\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <svg\n className=\"h-4 w-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n));\nToastClose.displayName = 'ToastClose';\n\nconst ToastTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-sm font-semibold', className)}\n {...props}\n />\n));\nToastTitle.displayName = 'ToastTitle';\n\nconst ToastDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm opacity-90', className)} {...props} />\n));\nToastDescription.displayName = 'ToastDescription';\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<'ol'>,\n React.ComponentPropsWithoutRef<'ol'>\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]',\n className\n )}\n {...props}\n />\n));\nToastViewport.displayName = 'ToastViewport';\n\nexport {\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n ToastTitle,\n ToastViewport,\n};\n","import * as React from 'react';\nimport type { ToastActionElement, ToastProps } from './toast';\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 5000; // 5 seconds auto-dismiss\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST',\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType['ADD_TOAST'];\n toast: ToasterToast;\n }\n | {\n type: ActionType['UPDATE_TOAST'];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType['DISMISS_TOAST'];\n toastId?: ToasterToast['id'];\n }\n | {\n type: ActionType['REMOVE_TOAST'];\n toastId?: ToasterToast['id'];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: 'REMOVE_TOAST',\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case 'ADD_TOAST':\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case 'UPDATE_TOAST':\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case 'DISMISS_TOAST': {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n };\n }\n case 'REMOVE_TOAST':\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, 'id'>;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: 'UPDATE_TOAST',\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id });\n\n dispatch({\n type: 'ADD_TOAST',\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n // Auto-dismiss after TOAST_REMOVE_DELAY\n setTimeout(() => {\n dismiss();\n }, TOAST_REMOVE_DELAY);\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\n };\n}\n\nexport { useToast, toast };\n","import {\n Toast,\n ToastClose,\n ToastDescription,\n ToastTitle,\n ToastViewport,\n} from './toast';\nimport { useToast } from './use-toast';\n\nexport function Toaster() {\n const { toasts, dismiss } = useToast();\n\n return (\n <ToastViewport>\n {toasts.map(function ({\n id,\n title,\n description,\n action,\n open,\n ...props\n }) {\n // Don't render toasts that are closed\n if (open === false) return null;\n\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n {action}\n <ToastClose\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n dismiss(id);\n }}\n />\n </Toast>\n );\n })}\n </ToastViewport>\n );\n}\n","import { Outlet } from 'react-router-dom';\nimport { ThemeProvider } from '../components/theme-provider';\nimport { TooltipProvider } from '../components/ui/tooltip';\nimport { Toaster } from '../components/ui/toaster';\n\nexport function RootLayout() {\n return (\n <ThemeProvider defaultTheme=\"system\" storageKey=\"vite-ui-theme\">\n <TooltipProvider delayDuration={300}>\n <div className=\"min-h-screen bg-background font-sans antialiased\">\n <Outlet />\n </div>\n <Toaster />\n </TooltipProvider>\n </ThemeProvider>\n );\n}\n","import { cn } from '@/lib/utils';\n\ninterface SpinnerProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: 'sm' | 'md' | 'lg';\n variant?: 'primary' | 'secondary' | 'muted';\n}\n\nfunction Spinner({\n className,\n size = 'md',\n variant = 'primary',\n ...props\n}: SpinnerProps) {\n const sizeClasses = {\n sm: 'h-4 w-4',\n md: 'h-6 w-6',\n lg: 'h-8 w-8',\n };\n\n const variantClasses = {\n primary: 'border-primary',\n secondary: 'border-secondary',\n muted: 'border-muted-foreground',\n };\n\n return (\n <div\n className={cn(\n 'animate-spin rounded-full border-2 border-solid',\n sizeClasses[size],\n variantClasses[variant],\n className\n )}\n style={{ borderRightColor: 'transparent' }}\n {...props}\n />\n );\n}\n\nexport { Spinner };\n","import { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\nimport type { PluginMetadata } from '../hooks/useDiscovery';\n\ninterface PluginsState {\n // Selected plugin names (used for schema generation)\n selectedPlugins: Set<string>;\n\n // Full plugin metadata for selected plugins\n selectedPluginMetadata: Map<string, PluginMetadata>;\n\n // Schema application state\n isApplyingPlugins: boolean;\n lastApplyError: string | null;\n\n // Actions\n selectPlugin: (plugin: PluginMetadata) => void;\n deselectPlugin: (pluginName: string) => void;\n togglePlugin: (plugin: PluginMetadata) => void;\n clearSelections: () => void;\n isPluginSelected: (pluginName: string) => boolean;\n getSelectedPluginsList: () => PluginMetadata[];\n getSelectedPluginNames: () => string[];\n applyPluginsWithValidation: (\n onSuccess?: () => void,\n onError?: (error: string) => void\n ) => Promise<boolean>;\n}\n\nexport const usePluginsStore = create<PluginsState>()(\n persist(\n (set, get) => ({\n selectedPlugins: new Set<string>(),\n selectedPluginMetadata: new Map<string, PluginMetadata>(),\n isApplyingPlugins: false,\n lastApplyError: null,\n\n selectPlugin: (plugin: PluginMetadata) => {\n set((state) => {\n const newSelectedPlugins = new Set(state.selectedPlugins);\n const newMetadata = new Map(state.selectedPluginMetadata);\n\n newSelectedPlugins.add(plugin.name);\n newMetadata.set(plugin.name, plugin);\n\n return {\n selectedPlugins: newSelectedPlugins,\n selectedPluginMetadata: newMetadata,\n };\n });\n },\n\n deselectPlugin: (pluginName: string) => {\n set((state) => {\n const newSelectedPlugins = new Set(state.selectedPlugins);\n const newMetadata = new Map(state.selectedPluginMetadata);\n\n newSelectedPlugins.delete(pluginName);\n newMetadata.delete(pluginName);\n\n return {\n selectedPlugins: newSelectedPlugins,\n selectedPluginMetadata: newMetadata,\n };\n });\n },\n\n togglePlugin: (plugin: PluginMetadata) => {\n const isSelected = get().isPluginSelected(plugin.name);\n if (isSelected) {\n get().deselectPlugin(plugin.name);\n } else {\n get().selectPlugin(plugin);\n }\n },\n\n clearSelections: () => {\n set({\n selectedPlugins: new Set<string>(),\n selectedPluginMetadata: new Map<string, PluginMetadata>(),\n });\n },\n\n isPluginSelected: (pluginName: string) => {\n return get().selectedPlugins.has(pluginName);\n },\n\n getSelectedPluginsList: () => {\n return Array.from(get().selectedPluginMetadata.values());\n },\n\n getSelectedPluginNames: () => {\n return Array.from(get().selectedPlugins);\n },\n\n applyPluginsWithValidation: async (onSuccess, onError) => {\n set({ isApplyingPlugins: true, lastApplyError: null });\n\n try {\n // Get the current selected plugins\n const selectedPluginNames = Array.from(get().selectedPlugins);\n\n // Import Monaco and schema update function dynamically\n const { loader } = await import('@monaco-editor/react');\n const { updateMonacoWithPlugins } = await import(\n '../lib/monaco-config'\n );\n\n // Get Monaco instance\n const monaco = await loader.init();\n\n // Apply the plugins and wait for validation\n const success = await updateMonacoWithPlugins(\n monaco,\n selectedPluginNames\n );\n\n if (!success) {\n throw new Error('Schema validation failed');\n }\n\n // Success - schema has been applied and validated\n set({ isApplyingPlugins: false, lastApplyError: null });\n\n if (onSuccess) {\n onSuccess();\n }\n\n return true;\n } catch (error) {\n const errorMessage =\n error instanceof Error\n ? error.message\n : 'Failed to apply plugin schemas';\n\n set({\n isApplyingPlugins: false,\n lastApplyError: errorMessage,\n });\n\n if (onError) {\n onError(errorMessage);\n }\n\n console.error('Failed to apply plugins with validation:', error);\n return false;\n }\n },\n }),\n {\n name: 'jtp-selected-plugins',\n // Custom storage to handle Set and Map serialization\n storage: {\n getItem: (name) => {\n const str = localStorage.getItem(name);\n if (!str) return null;\n\n const { state } = JSON.parse(str);\n return {\n state: {\n ...state,\n selectedPlugins: new Set(state.selectedPlugins || []),\n selectedPluginMetadata: new Map(\n state.selectedPluginMetadata || []\n ),\n },\n };\n },\n setItem: (name, value) => {\n const { state } = value as { state: PluginsState };\n const serialized = JSON.stringify({\n state: {\n ...state,\n selectedPlugins: Array.from(state.selectedPlugins),\n selectedPluginMetadata: Array.from(\n state.selectedPluginMetadata.entries()\n ),\n },\n });\n localStorage.setItem(name, serialized);\n },\n removeItem: (name) => localStorage.removeItem(name),\n },\n }\n )\n);\n","// --------------------------------------------------------------------------\n// PropertyKey\n// --------------------------------------------------------------------------\n/** Returns true if this value has this property key */\nexport function HasPropertyKey(value, key) {\n return key in value;\n}\n// --------------------------------------------------------------------------\n// Object Instances\n// --------------------------------------------------------------------------\n/** Returns true if this value is an async iterator */\nexport function IsAsyncIterator(value) {\n return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.asyncIterator in value;\n}\n/** Returns true if this value is an array */\nexport function IsArray(value) {\n return Array.isArray(value);\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return typeof value === 'bigint';\n}\n/** Returns true if this value is a boolean */\nexport function IsBoolean(value) {\n return typeof value === 'boolean';\n}\n/** Returns true if this value is a Date object */\nexport function IsDate(value) {\n return value instanceof globalThis.Date;\n}\n/** Returns true if this value is a function */\nexport function IsFunction(value) {\n return typeof value === 'function';\n}\n/** Returns true if this value is an iterator */\nexport function IsIterator(value) {\n return IsObject(value) && !IsArray(value) && !IsUint8Array(value) && Symbol.iterator in value;\n}\n/** Returns true if this value is null */\nexport function IsNull(value) {\n return value === null;\n}\n/** Returns true if this value is number */\nexport function IsNumber(value) {\n return typeof value === 'number';\n}\n/** Returns true if this value is an object */\nexport function IsObject(value) {\n return typeof value === 'object' && value !== null;\n}\n/** Returns true if this value is RegExp */\nexport function IsRegExp(value) {\n return value instanceof globalThis.RegExp;\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return typeof value === 'string';\n}\n/** Returns true if this value is symbol */\nexport function IsSymbol(value) {\n return typeof value === 'symbol';\n}\n/** Returns true if this value is a Uint8Array */\nexport function IsUint8Array(value) {\n return value instanceof globalThis.Uint8Array;\n}\n/** Returns true if this value is undefined */\nexport function IsUndefined(value) {\n return value === undefined;\n}\n","import * as ValueGuard from '../guard/value.mjs';\nfunction ArrayType(value) {\n return value.map((value) => Visit(value));\n}\nfunction DateType(value) {\n return new Date(value.getTime());\n}\nfunction Uint8ArrayType(value) {\n return new Uint8Array(value);\n}\nfunction RegExpType(value) {\n return new RegExp(value.source, value.flags);\n}\nfunction ObjectType(value) {\n const result = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n result[key] = Visit(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n result[key] = Visit(value[key]);\n }\n return result;\n}\n// prettier-ignore\nfunction Visit(value) {\n return (ValueGuard.IsArray(value) ? ArrayType(value) :\n ValueGuard.IsDate(value) ? DateType(value) :\n ValueGuard.IsUint8Array(value) ? Uint8ArrayType(value) :\n ValueGuard.IsRegExp(value) ? RegExpType(value) :\n ValueGuard.IsObject(value) ? ObjectType(value) :\n value);\n}\n/** Clones a value */\nexport function Clone(value) {\n return Visit(value);\n}\n","import { Clone } from './value.mjs';\n/** Clones a Rest */\nexport function CloneRest(schemas) {\n return schemas.map((schema) => CloneType(schema));\n}\n/** Clones a Type */\nexport function CloneType(schema, options) {\n return options === undefined ? Clone(schema) : Clone({ ...options, ...schema });\n}\n","// --------------------------------------------------------------------------\n// Iterators\n// --------------------------------------------------------------------------\n/** Returns true if this value is an async iterator */\nexport function IsAsyncIterator(value) {\n return IsObject(value) && globalThis.Symbol.asyncIterator in value;\n}\n/** Returns true if this value is an iterator */\nexport function IsIterator(value) {\n return IsObject(value) && globalThis.Symbol.iterator in value;\n}\n// --------------------------------------------------------------------------\n// Object Instances\n// --------------------------------------------------------------------------\n/** Returns true if this value is not an instance of a class */\nexport function IsStandardObject(value) {\n return IsObject(value) && (globalThis.Object.getPrototypeOf(value) === Object.prototype || globalThis.Object.getPrototypeOf(value) === null);\n}\n/** Returns true if this value is an instance of a class */\nexport function IsInstanceObject(value) {\n return IsObject(value) && !IsArray(value) && IsFunction(value.constructor) && value.constructor.name !== 'Object';\n}\n// --------------------------------------------------------------------------\n// JavaScript\n// --------------------------------------------------------------------------\n/** Returns true if this value is a Promise */\nexport function IsPromise(value) {\n return value instanceof globalThis.Promise;\n}\n/** Returns true if this value is a Date */\nexport function IsDate(value) {\n return value instanceof Date && globalThis.Number.isFinite(value.getTime());\n}\n/** Returns true if this value is an instance of Map<K, T> */\nexport function IsMap(value) {\n return value instanceof globalThis.Map;\n}\n/** Returns true if this value is an instance of Set<T> */\nexport function IsSet(value) {\n return value instanceof globalThis.Set;\n}\n/** Returns true if this value is RegExp */\nexport function IsRegExp(value) {\n return value instanceof globalThis.RegExp;\n}\n/** Returns true if this value is a typed array */\nexport function IsTypedArray(value) {\n return globalThis.ArrayBuffer.isView(value);\n}\n/** Returns true if the value is a Int8Array */\nexport function IsInt8Array(value) {\n return value instanceof globalThis.Int8Array;\n}\n/** Returns true if the value is a Uint8Array */\nexport function IsUint8Array(value) {\n return value instanceof globalThis.Uint8Array;\n}\n/** Returns true if the value is a Uint8ClampedArray */\nexport function IsUint8ClampedArray(value) {\n return value instanceof globalThis.Uint8ClampedArray;\n}\n/** Returns true if the value is a Int16Array */\nexport function IsInt16Array(value) {\n return value instanceof globalThis.Int16Array;\n}\n/** Returns true if the value is a Uint16Array */\nexport function IsUint16Array(value) {\n return value instanceof globalThis.Uint16Array;\n}\n/** Returns true if the value is a Int32Array */\nexport function IsInt32Array(value) {\n return value instanceof globalThis.Int32Array;\n}\n/** Returns true if the value is a Uint32Array */\nexport function IsUint32Array(value) {\n return value instanceof globalThis.Uint32Array;\n}\n/** Returns true if the value is a Float32Array */\nexport function IsFloat32Array(value) {\n return value instanceof globalThis.Float32Array;\n}\n/** Returns true if the value is a Float64Array */\nexport function IsFloat64Array(value) {\n return value instanceof globalThis.Float64Array;\n}\n/** Returns true if the value is a BigInt64Array */\nexport function IsBigInt64Array(value) {\n return value instanceof globalThis.BigInt64Array;\n}\n/** Returns true if the value is a BigUint64Array */\nexport function IsBigUint64Array(value) {\n return value instanceof globalThis.BigUint64Array;\n}\n// --------------------------------------------------------------------------\n// PropertyKey\n// --------------------------------------------------------------------------\n/** Returns true if this value has this property key */\nexport function HasPropertyKey(value, key) {\n return key in value;\n}\n// --------------------------------------------------------------------------\n// Standard\n// --------------------------------------------------------------------------\n/** Returns true of this value is an object type */\nexport function IsObject(value) {\n return value !== null && typeof value === 'object';\n}\n/** Returns true if this value is an array, but not a typed array */\nexport function IsArray(value) {\n return globalThis.Array.isArray(value) && !globalThis.ArrayBuffer.isView(value);\n}\n/** Returns true if this value is an undefined */\nexport function IsUndefined(value) {\n return value === undefined;\n}\n/** Returns true if this value is an null */\nexport function IsNull(value) {\n return value === null;\n}\n/** Returns true if this value is an boolean */\nexport function IsBoolean(value) {\n return typeof value === 'boolean';\n}\n/** Returns true if this value is an number */\nexport function IsNumber(value) {\n return typeof value === 'number';\n}\n/** Returns true if this value is an integer */\nexport function IsInteger(value) {\n return globalThis.Number.isInteger(value);\n}\n/** Returns true if this value is bigint */\nexport function IsBigInt(value) {\n return typeof value === 'bigint';\n}\n/** Returns true if this value is string */\nexport function IsString(value) {\n return typeof value === 'string';\n}\n/** Returns true if this value is a function */\nexport function IsFunction(value) {\n return typeof value === 'function';\n}\n/** Returns true if this value is a symbol */\nexport function IsSymbol(value) {\n return typeof value === 'symbol';\n}\n/** Returns true if this value is a value type such as number, string, boolean */\nexport function IsValueType(value) {\n // prettier-ignore\n return (IsBigInt(value) ||\n IsBoolean(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsString(value) ||\n IsSymbol(value) ||\n IsUndefined(value));\n}\n","import { IsObject, IsArray, IsNumber, IsUndefined } from '../value/guard/index.mjs';\nexport var TypeSystemPolicy;\n(function (TypeSystemPolicy) {\n // ------------------------------------------------------------------\n // TypeSystemPolicy: Instancing\n // ------------------------------------------------------------------\n /**\n * Configures the instantiation behavior of TypeBox types. The `default` option assigns raw JavaScript\n * references for embedded types, which may cause side effects if type properties are explicitly updated\n * outside the TypeBox type builder. The `clone` option creates copies of any shared types upon creation,\n * preventing unintended side effects. The `freeze` option applies `Object.freeze()` to the type, making\n * it fully readonly and immutable. Implementations should use `default` whenever possible, as it is the\n * fastest way to instantiate types. The default setting is `default`.\n */\n TypeSystemPolicy.InstanceMode = 'default';\n // ------------------------------------------------------------------\n // TypeSystemPolicy: Checking\n // ------------------------------------------------------------------\n /** Sets whether TypeBox should assert optional properties using the TypeScript `exactOptionalPropertyTypes` assertion policy. The default is `false` */\n TypeSystemPolicy.ExactOptionalPropertyTypes = false;\n /** Sets whether arrays should be treated as a kind of objects. The default is `false` */\n TypeSystemPolicy.AllowArrayObject = false;\n /** Sets whether `NaN` or `Infinity` should be treated as valid numeric values. The default is `false` */\n TypeSystemPolicy.AllowNaN = false;\n /** Sets whether `null` should validate for void types. The default is `false` */\n TypeSystemPolicy.AllowNullVoid = false;\n /** Checks this value using the ExactOptionalPropertyTypes policy */\n function IsExactOptionalProperty(value, key) {\n return TypeSystemPolicy.ExactOptionalPropertyTypes ? key in value : value[key] !== undefined;\n }\n TypeSystemPolicy.IsExactOptionalProperty = IsExactOptionalProperty;\n /** Checks this value using the AllowArrayObjects policy */\n function IsObjectLike(value) {\n const isObject = IsObject(value);\n return TypeSystemPolicy.AllowArrayObject ? isObject : isObject && !IsArray(value);\n }\n TypeSystemPolicy.IsObjectLike = IsObjectLike;\n /** Checks this value as a record using the AllowArrayObjects policy */\n function IsRecordLike(value) {\n return IsObjectLike(value) && !(value instanceof Date) && !(value instanceof Uint8Array);\n }\n TypeSystemPolicy.IsRecordLike = IsRecordLike;\n /** Checks this value using the AllowNaN policy */\n function IsNumberLike(value) {\n return TypeSystemPolicy.AllowNaN ? IsNumber(value) : Number.isFinite(value);\n }\n TypeSystemPolicy.IsNumberLike = IsNumberLike;\n /** Checks this value using the AllowVoidNull policy */\n function IsVoidLike(value) {\n const isUndefined = IsUndefined(value);\n return TypeSystemPolicy.AllowNullVoid ? isUndefined || value === null : isUndefined;\n }\n TypeSystemPolicy.IsVoidLike = IsVoidLike;\n})(TypeSystemPolicy || (TypeSystemPolicy = {}));\n","import * as ValueGuard from '../guard/value.mjs';\nfunction ImmutableArray(value) {\n return globalThis.Object.freeze(value).map((value) => Immutable(value));\n}\nfunction ImmutableDate(value) {\n return value;\n}\nfunction ImmutableUint8Array(value) {\n return value;\n}\nfunction ImmutableRegExp(value) {\n return value;\n}\nfunction ImmutableObject(value) {\n const result = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n result[key] = Immutable(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n result[key] = Immutable(value[key]);\n }\n return globalThis.Object.freeze(result);\n}\n/** Specialized deep immutable value. Applies freeze recursively to the given value */\n// prettier-ignore\nexport function Immutable(value) {\n return (ValueGuard.IsArray(value) ? ImmutableArray(value) :\n ValueGuard.IsDate(value) ? ImmutableDate(value) :\n ValueGuard.IsUint8Array(value) ? ImmutableUint8Array(value) :\n ValueGuard.IsRegExp(value) ? ImmutableRegExp(value) :\n ValueGuard.IsObject(value) ? ImmutableObject(value) :\n value);\n}\n","import { TypeSystemPolicy } from '../../system/policy.mjs';\nimport { Immutable } from './immutable.mjs';\nimport { Clone } from '../clone/value.mjs';\n/** Creates TypeBox schematics using the configured InstanceMode */\nexport function CreateType(schema, options) {\n const result = options !== undefined ? { ...options, ...schema } : schema;\n switch (TypeSystemPolicy.InstanceMode) {\n case 'freeze':\n return Immutable(result);\n case 'clone':\n return Clone(result);\n default:\n return result;\n }\n}\n","/** The base Error type thrown for all TypeBox exceptions */\nexport class TypeBoxError extends Error {\n constructor(message) {\n super(message);\n }\n}\n","/** Symbol key applied to transform types */\nexport const TransformKind = Symbol.for('TypeBox.Transform');\n/** Symbol key applied to readonly types */\nexport const ReadonlyKind = Symbol.for('TypeBox.Readonly');\n/** Symbol key applied to optional types */\nexport const OptionalKind = Symbol.for('TypeBox.Optional');\n/** Symbol key applied to types */\nexport const Hint = Symbol.for('TypeBox.Hint');\n/** Symbol key applied to types */\nexport const Kind = Symbol.for('TypeBox.Kind');\n","import * as ValueGuard from './value.mjs';\nimport { Kind, Hint, TransformKind, ReadonlyKind, OptionalKind } from '../symbols/index.mjs';\n/** `[Kind-Only]` Returns true if this value has a Readonly symbol */\nexport function IsReadonly(value) {\n return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';\n}\n/** `[Kind-Only]` Returns true if this value has a Optional symbol */\nexport function IsOptional(value) {\n return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';\n}\n/** `[Kind-Only]` Returns true if the given value is TAny */\nexport function IsAny(value) {\n return IsKindOf(value, 'Any');\n}\n/** `[Kind-Only]` Returns true if the given value is TArgument */\nexport function IsArgument(value) {\n return IsKindOf(value, 'Argument');\n}\n/** `[Kind-Only]` Returns true if the given value is TArray */\nexport function IsArray(value) {\n return IsKindOf(value, 'Array');\n}\n/** `[Kind-Only]` Returns true if the given value is TAsyncIterator */\nexport function IsAsyncIterator(value) {\n return IsKindOf(value, 'AsyncIterator');\n}\n/** `[Kind-Only]` Returns true if the given value is TBigInt */\nexport function IsBigInt(value) {\n return IsKindOf(value, 'BigInt');\n}\n/** `[Kind-Only]` Returns true if the given value is TBoolean */\nexport function IsBoolean(value) {\n return IsKindOf(value, 'Boolean');\n}\n/** `[Kind-Only]` Returns true if the given value is TComputed */\nexport function IsComputed(value) {\n return IsKindOf(value, 'Computed');\n}\n/** `[Kind-Only]` Returns true if the given value is TConstructor */\nexport function IsConstructor(value) {\n return IsKindOf(value, 'Constructor');\n}\n/** `[Kind-Only]` Returns true if the given value is TDate */\nexport function IsDate(value) {\n return IsKindOf(value, 'Date');\n}\n/** `[Kind-Only]` Returns true if the given value is TFunction */\nexport function IsFunction(value) {\n return IsKindOf(value, 'Function');\n}\n/** `[Kind-Only]` Returns true if the given value is TInteger */\nexport function IsImport(value) {\n return IsKindOf(value, 'Import');\n}\n/** `[Kind-Only]` Returns true if the given value is TInteger */\nexport function IsInteger(value) {\n return IsKindOf(value, 'Integer');\n}\n/** `[Kind-Only]` Returns true if the given schema is TProperties */\nexport function IsProperties(value) {\n return ValueGuard.IsObject(value);\n}\n/** `[Kind-Only]` Returns true if the given value is TIntersect */\nexport function IsIntersect(value) {\n return IsKindOf(value, 'Intersect');\n}\n/** `[Kind-Only]` Returns true if the given value is TIterator */\nexport function IsIterator(value) {\n return IsKindOf(value, 'Iterator');\n}\n/** `[Kind-Only]` Returns true if the given value is a TKind with the given name. */\nexport function IsKindOf(value, kind) {\n return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral<string> */\nexport function IsLiteralString(value) {\n return IsLiteral(value) && ValueGuard.IsString(value.const);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral<number> */\nexport function IsLiteralNumber(value) {\n return IsLiteral(value) && ValueGuard.IsNumber(value.const);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral<boolean> */\nexport function IsLiteralBoolean(value) {\n return IsLiteral(value) && ValueGuard.IsBoolean(value.const);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteralValue */\nexport function IsLiteralValue(value) {\n return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);\n}\n/** `[Kind-Only]` Returns true if the given value is TLiteral */\nexport function IsLiteral(value) {\n return IsKindOf(value, 'Literal');\n}\n/** `[Kind-Only]` Returns true if the given value is a TMappedKey */\nexport function IsMappedKey(value) {\n return IsKindOf(value, 'MappedKey');\n}\n/** `[Kind-Only]` Returns true if the given value is TMappedResult */\nexport function IsMappedResult(value) {\n return IsKindOf(value, 'MappedResult');\n}\n/** `[Kind-Only]` Returns true if the given value is TNever */\nexport function IsNever(value) {\n return IsKindOf(value, 'Never');\n}\n/** `[Kind-Only]` Returns true if the given value is TNot */\nexport function IsNot(value) {\n return IsKindOf(value, 'Not');\n}\n/** `[Kind-Only]` Returns true if the given value is TNull */\nexport function IsNull(value) {\n return IsKindOf(value, 'Null');\n}\n/** `[Kind-Only]` Returns true if the given value is TNumber */\nexport function IsNumber(value) {\n return IsKindOf(value, 'Number');\n}\n/** `[Kind-Only]` Returns true if the given value is TObject */\nexport function IsObject(value) {\n return IsKindOf(value, 'Object');\n}\n/** `[Kind-Only]` Returns true if the given value is TPromise */\nexport function IsPromise(value) {\n return IsKindOf(value, 'Promise');\n}\n/** `[Kind-Only]` Returns true if the given value is TRecord */\nexport function IsRecord(value) {\n return IsKindOf(value, 'Record');\n}\n/** `[Kind-Only]` Returns true if this value is TRecursive */\nexport function IsRecursive(value) {\n return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';\n}\n/** `[Kind-Only]` Returns true if the given value is TRef */\nexport function IsRef(value) {\n return IsKindOf(value, 'Ref');\n}\n/** `[Kind-Only]` Returns true if the given value is TRegExp */\nexport function IsRegExp(value) {\n return IsKindOf(value, 'RegExp');\n}\n/** `[Kind-Only]` Returns true if the given value is TString */\nexport function IsString(value) {\n return IsKindOf(value, 'String');\n}\n/** `[Kind-Only]` Returns true if the given value is TSymbol */\nexport function IsSymbol(value) {\n return IsKindOf(value, 'Symbol');\n}\n/** `[Kind-Only]` Returns true if the given value is TTemplateLiteral */\nexport function IsTemplateLiteral(value) {\n return IsKindOf(value, 'TemplateLiteral');\n}\n/** `[Kind-Only]` Returns true if the given value is TThis */\nexport function IsThis(value) {\n return IsKindOf(value, 'This');\n}\n/** `[Kind-Only]` Returns true of this value is TTransform */\nexport function IsTransform(value) {\n return ValueGuard.IsObject(value) && TransformKind in value;\n}\n/** `[Kind-Only]` Returns true if the given value is TTuple */\nexport function IsTuple(value) {\n return IsKindOf(value, 'Tuple');\n}\n/** `[Kind-Only]` Returns true if the given value is TUndefined */\nexport function IsUndefined(value) {\n return IsKindOf(value, 'Undefined');\n}\n/** `[Kind-Only]` Returns true if the given value is TUnion */\nexport function IsUnion(value) {\n return IsKindOf(value, 'Union');\n}\n/** `[Kind-Only]` Returns true if the given value is TUint8Array */\nexport function IsUint8Array(value) {\n return IsKindOf(value, 'Uint8Array');\n}\n/** `[Kind-Only]` Returns true if the given value is TUnknown */\nexport function IsUnknown(value) {\n return IsKindOf(value, 'Unknown');\n}\n/** `[Kind-Only]` Returns true if the given value is a raw TUnsafe */\nexport function IsUnsafe(value) {\n return IsKindOf(value, 'Unsafe');\n}\n/** `[Kind-Only]` Returns true if the given value is TVoid */\nexport function IsVoid(value) {\n return IsKindOf(value, 'Void');\n}\n/** `[Kind-Only]` Returns true if the given value is TKind */\nexport function IsKind(value) {\n return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]);\n}\n/** `[Kind-Only]` Returns true if the given value is TSchema */\nexport function IsSchema(value) {\n // prettier-ignore\n return (IsAny(value) ||\n IsArgument(value) ||\n IsArray(value) ||\n IsBoolean(value) ||\n IsBigInt(value) ||\n IsAsyncIterator(value) ||\n IsComputed(value) ||\n IsConstructor(value) ||\n IsDate(value) ||\n IsFunction(value) ||\n IsInteger(value) ||\n IsIntersect(value) ||\n IsIterator(value) ||\n IsLiteral(value) ||\n IsMappedKey(value) ||\n IsMappedResult(value) ||\n IsNever(value) ||\n IsNot(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsObject(value) ||\n IsPromise(value) ||\n IsRecord(value) ||\n IsRef(value) ||\n IsRegExp(value) ||\n IsString(value) ||\n IsSymbol(value) ||\n IsTemplateLiteral(value) ||\n IsThis(value) ||\n IsTuple(value) ||\n IsUndefined(value) ||\n IsUnion(value) ||\n IsUint8Array(value) ||\n IsUnknown(value) ||\n IsUnsafe(value) ||\n IsVoid(value) ||\n IsKind(value));\n}\n","import * as ValueGuard from './value.mjs';\nimport { Kind, Hint, TransformKind, ReadonlyKind, OptionalKind } from '../symbols/index.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\nexport class TypeGuardUnknownTypeError extends TypeBoxError {\n}\nconst KnownTypes = [\n 'Argument',\n 'Any',\n 'Array',\n 'AsyncIterator',\n 'BigInt',\n 'Boolean',\n 'Computed',\n 'Constructor',\n 'Date',\n 'Enum',\n 'Function',\n 'Integer',\n 'Intersect',\n 'Iterator',\n 'Literal',\n 'MappedKey',\n 'MappedResult',\n 'Not',\n 'Null',\n 'Number',\n 'Object',\n 'Promise',\n 'Record',\n 'Ref',\n 'RegExp',\n 'String',\n 'Symbol',\n 'TemplateLiteral',\n 'This',\n 'Tuple',\n 'Undefined',\n 'Union',\n 'Uint8Array',\n 'Unknown',\n 'Void',\n];\nfunction IsPattern(value) {\n try {\n new RegExp(value);\n return true;\n }\n catch {\n return false;\n }\n}\nfunction IsControlCharacterFree(value) {\n if (!ValueGuard.IsString(value))\n return false;\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n if ((code >= 7 && code <= 13) || code === 27 || code === 127) {\n return false;\n }\n }\n return true;\n}\nfunction IsAdditionalProperties(value) {\n return IsOptionalBoolean(value) || IsSchema(value);\n}\nfunction IsOptionalBigInt(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsBigInt(value);\n}\nfunction IsOptionalNumber(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsNumber(value);\n}\nfunction IsOptionalBoolean(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsBoolean(value);\n}\nfunction IsOptionalString(value) {\n return ValueGuard.IsUndefined(value) || ValueGuard.IsString(value);\n}\nfunction IsOptionalPattern(value) {\n return ValueGuard.IsUndefined(value) || (ValueGuard.IsString(value) && IsControlCharacterFree(value) && IsPattern(value));\n}\nfunction IsOptionalFormat(value) {\n return ValueGuard.IsUndefined(value) || (ValueGuard.IsString(value) && IsControlCharacterFree(value));\n}\nfunction IsOptionalSchema(value) {\n return ValueGuard.IsUndefined(value) || IsSchema(value);\n}\n// ------------------------------------------------------------------\n// Modifiers\n// ------------------------------------------------------------------\n/** Returns true if this value has a Readonly symbol */\nexport function IsReadonly(value) {\n return ValueGuard.IsObject(value) && value[ReadonlyKind] === 'Readonly';\n}\n/** Returns true if this value has a Optional symbol */\nexport function IsOptional(value) {\n return ValueGuard.IsObject(value) && value[OptionalKind] === 'Optional';\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\n/** Returns true if the given value is TAny */\nexport function IsAny(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Any') &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TArgument */\nexport function IsArgument(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Argument') &&\n ValueGuard.IsNumber(value.index));\n}\n/** Returns true if the given value is TArray */\nexport function IsArray(value) {\n return (IsKindOf(value, 'Array') &&\n value.type === 'array' &&\n IsOptionalString(value.$id) &&\n IsSchema(value.items) &&\n IsOptionalNumber(value.minItems) &&\n IsOptionalNumber(value.maxItems) &&\n IsOptionalBoolean(value.uniqueItems) &&\n IsOptionalSchema(value.contains) &&\n IsOptionalNumber(value.minContains) &&\n IsOptionalNumber(value.maxContains));\n}\n/** Returns true if the given value is TAsyncIterator */\nexport function IsAsyncIterator(value) {\n // prettier-ignore\n return (IsKindOf(value, 'AsyncIterator') &&\n value.type === 'AsyncIterator' &&\n IsOptionalString(value.$id) &&\n IsSchema(value.items));\n}\n/** Returns true if the given value is TBigInt */\nexport function IsBigInt(value) {\n // prettier-ignore\n return (IsKindOf(value, 'BigInt') &&\n value.type === 'bigint' &&\n IsOptionalString(value.$id) &&\n IsOptionalBigInt(value.exclusiveMaximum) &&\n IsOptionalBigInt(value.exclusiveMinimum) &&\n IsOptionalBigInt(value.maximum) &&\n IsOptionalBigInt(value.minimum) &&\n IsOptionalBigInt(value.multipleOf));\n}\n/** Returns true if the given value is TBoolean */\nexport function IsBoolean(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Boolean') &&\n value.type === 'boolean' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TComputed */\nexport function IsComputed(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Computed') &&\n ValueGuard.IsString(value.target) &&\n ValueGuard.IsArray(value.parameters) &&\n value.parameters.every((schema) => IsSchema(schema)));\n}\n/** Returns true if the given value is TConstructor */\nexport function IsConstructor(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Constructor') &&\n value.type === 'Constructor' &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsArray(value.parameters) &&\n value.parameters.every(schema => IsSchema(schema)) &&\n IsSchema(value.returns));\n}\n/** Returns true if the given value is TDate */\nexport function IsDate(value) {\n return (IsKindOf(value, 'Date') &&\n value.type === 'Date' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.exclusiveMaximumTimestamp) &&\n IsOptionalNumber(value.exclusiveMinimumTimestamp) &&\n IsOptionalNumber(value.maximumTimestamp) &&\n IsOptionalNumber(value.minimumTimestamp) &&\n IsOptionalNumber(value.multipleOfTimestamp));\n}\n/** Returns true if the given value is TFunction */\nexport function IsFunction(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Function') &&\n value.type === 'Function' &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsArray(value.parameters) &&\n value.parameters.every(schema => IsSchema(schema)) &&\n IsSchema(value.returns));\n}\n/** Returns true if the given value is TImport */\nexport function IsImport(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Import') &&\n ValueGuard.HasPropertyKey(value, '$defs') &&\n ValueGuard.IsObject(value.$defs) &&\n IsProperties(value.$defs) &&\n ValueGuard.HasPropertyKey(value, '$ref') &&\n ValueGuard.IsString(value.$ref) &&\n value.$ref in value.$defs // required\n );\n}\n/** Returns true if the given value is TInteger */\nexport function IsInteger(value) {\n return (IsKindOf(value, 'Integer') &&\n value.type === 'integer' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.exclusiveMaximum) &&\n IsOptionalNumber(value.exclusiveMinimum) &&\n IsOptionalNumber(value.maximum) &&\n IsOptionalNumber(value.minimum) &&\n IsOptionalNumber(value.multipleOf));\n}\n/** Returns true if the given schema is TProperties */\nexport function IsProperties(value) {\n // prettier-ignore\n return (ValueGuard.IsObject(value) &&\n Object.entries(value).every(([key, schema]) => IsControlCharacterFree(key) && IsSchema(schema)));\n}\n/** Returns true if the given value is TIntersect */\nexport function IsIntersect(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Intersect') &&\n (ValueGuard.IsString(value.type) && value.type !== 'object' ? false : true) &&\n ValueGuard.IsArray(value.allOf) &&\n value.allOf.every(schema => IsSchema(schema) && !IsTransform(schema)) &&\n IsOptionalString(value.type) &&\n (IsOptionalBoolean(value.unevaluatedProperties) || IsOptionalSchema(value.unevaluatedProperties)) &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TIterator */\nexport function IsIterator(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Iterator') &&\n value.type === 'Iterator' &&\n IsOptionalString(value.$id) &&\n IsSchema(value.items));\n}\n/** Returns true if the given value is a TKind with the given name. */\nexport function IsKindOf(value, kind) {\n return ValueGuard.IsObject(value) && Kind in value && value[Kind] === kind;\n}\n/** Returns true if the given value is TLiteral<string> */\nexport function IsLiteralString(value) {\n return IsLiteral(value) && ValueGuard.IsString(value.const);\n}\n/** Returns true if the given value is TLiteral<number> */\nexport function IsLiteralNumber(value) {\n return IsLiteral(value) && ValueGuard.IsNumber(value.const);\n}\n/** Returns true if the given value is TLiteral<boolean> */\nexport function IsLiteralBoolean(value) {\n return IsLiteral(value) && ValueGuard.IsBoolean(value.const);\n}\n/** Returns true if the given value is TLiteral */\nexport function IsLiteral(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Literal') &&\n IsOptionalString(value.$id) && IsLiteralValue(value.const));\n}\n/** Returns true if the given value is a TLiteralValue */\nexport function IsLiteralValue(value) {\n return ValueGuard.IsBoolean(value) || ValueGuard.IsNumber(value) || ValueGuard.IsString(value);\n}\n/** Returns true if the given value is a TMappedKey */\nexport function IsMappedKey(value) {\n // prettier-ignore\n return (IsKindOf(value, 'MappedKey') &&\n ValueGuard.IsArray(value.keys) &&\n value.keys.every(key => ValueGuard.IsNumber(key) || ValueGuard.IsString(key)));\n}\n/** Returns true if the given value is TMappedResult */\nexport function IsMappedResult(value) {\n // prettier-ignore\n return (IsKindOf(value, 'MappedResult') &&\n IsProperties(value.properties));\n}\n/** Returns true if the given value is TNever */\nexport function IsNever(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Never') &&\n ValueGuard.IsObject(value.not) &&\n Object.getOwnPropertyNames(value.not).length === 0);\n}\n/** Returns true if the given value is TNot */\nexport function IsNot(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Not') &&\n IsSchema(value.not));\n}\n/** Returns true if the given value is TNull */\nexport function IsNull(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Null') &&\n value.type === 'null' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TNumber */\nexport function IsNumber(value) {\n return (IsKindOf(value, 'Number') &&\n value.type === 'number' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.exclusiveMaximum) &&\n IsOptionalNumber(value.exclusiveMinimum) &&\n IsOptionalNumber(value.maximum) &&\n IsOptionalNumber(value.minimum) &&\n IsOptionalNumber(value.multipleOf));\n}\n/** Returns true if the given value is TObject */\nexport function IsObject(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Object') &&\n value.type === 'object' &&\n IsOptionalString(value.$id) &&\n IsProperties(value.properties) &&\n IsAdditionalProperties(value.additionalProperties) &&\n IsOptionalNumber(value.minProperties) &&\n IsOptionalNumber(value.maxProperties));\n}\n/** Returns true if the given value is TPromise */\nexport function IsPromise(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Promise') &&\n value.type === 'Promise' &&\n IsOptionalString(value.$id) &&\n IsSchema(value.item));\n}\n/** Returns true if the given value is TRecord */\nexport function IsRecord(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Record') &&\n value.type === 'object' &&\n IsOptionalString(value.$id) &&\n IsAdditionalProperties(value.additionalProperties) &&\n ValueGuard.IsObject(value.patternProperties) &&\n ((schema) => {\n const keys = Object.getOwnPropertyNames(schema.patternProperties);\n return (keys.length === 1 &&\n IsPattern(keys[0]) &&\n ValueGuard.IsObject(schema.patternProperties) &&\n IsSchema(schema.patternProperties[keys[0]]));\n })(value));\n}\n/** Returns true if this value is TRecursive */\nexport function IsRecursive(value) {\n return ValueGuard.IsObject(value) && Hint in value && value[Hint] === 'Recursive';\n}\n/** Returns true if the given value is TRef */\nexport function IsRef(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Ref') &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsString(value.$ref));\n}\n/** Returns true if the given value is TRegExp */\nexport function IsRegExp(value) {\n // prettier-ignore\n return (IsKindOf(value, 'RegExp') &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsString(value.source) &&\n ValueGuard.IsString(value.flags) &&\n IsOptionalNumber(value.maxLength) &&\n IsOptionalNumber(value.minLength));\n}\n/** Returns true if the given value is TString */\nexport function IsString(value) {\n // prettier-ignore\n return (IsKindOf(value, 'String') &&\n value.type === 'string' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.minLength) &&\n IsOptionalNumber(value.maxLength) &&\n IsOptionalPattern(value.pattern) &&\n IsOptionalFormat(value.format));\n}\n/** Returns true if the given value is TSymbol */\nexport function IsSymbol(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Symbol') &&\n value.type === 'symbol' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TTemplateLiteral */\nexport function IsTemplateLiteral(value) {\n // prettier-ignore\n return (IsKindOf(value, 'TemplateLiteral') &&\n value.type === 'string' &&\n ValueGuard.IsString(value.pattern) &&\n value.pattern[0] === '^' &&\n value.pattern[value.pattern.length - 1] === '$');\n}\n/** Returns true if the given value is TThis */\nexport function IsThis(value) {\n // prettier-ignore\n return (IsKindOf(value, 'This') &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsString(value.$ref));\n}\n/** Returns true of this value is TTransform */\nexport function IsTransform(value) {\n return ValueGuard.IsObject(value) && TransformKind in value;\n}\n/** Returns true if the given value is TTuple */\nexport function IsTuple(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Tuple') &&\n value.type === 'array' &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsNumber(value.minItems) &&\n ValueGuard.IsNumber(value.maxItems) &&\n value.minItems === value.maxItems &&\n (( // empty\n ValueGuard.IsUndefined(value.items) &&\n ValueGuard.IsUndefined(value.additionalItems) &&\n value.minItems === 0) || (ValueGuard.IsArray(value.items) &&\n value.items.every(schema => IsSchema(schema)))));\n}\n/** Returns true if the given value is TUndefined */\nexport function IsUndefined(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Undefined') &&\n value.type === 'undefined' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TUnion<Literal<string | number>[]> */\nexport function IsUnionLiteral(value) {\n return IsUnion(value) && value.anyOf.every((schema) => IsLiteralString(schema) || IsLiteralNumber(schema));\n}\n/** Returns true if the given value is TUnion */\nexport function IsUnion(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Union') &&\n IsOptionalString(value.$id) &&\n ValueGuard.IsObject(value) &&\n ValueGuard.IsArray(value.anyOf) &&\n value.anyOf.every(schema => IsSchema(schema)));\n}\n/** Returns true if the given value is TUint8Array */\nexport function IsUint8Array(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Uint8Array') &&\n value.type === 'Uint8Array' &&\n IsOptionalString(value.$id) &&\n IsOptionalNumber(value.minByteLength) &&\n IsOptionalNumber(value.maxByteLength));\n}\n/** Returns true if the given value is TUnknown */\nexport function IsUnknown(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Unknown') &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is a raw TUnsafe */\nexport function IsUnsafe(value) {\n return IsKindOf(value, 'Unsafe');\n}\n/** Returns true if the given value is TVoid */\nexport function IsVoid(value) {\n // prettier-ignore\n return (IsKindOf(value, 'Void') &&\n value.type === 'void' &&\n IsOptionalString(value.$id));\n}\n/** Returns true if the given value is TKind */\nexport function IsKind(value) {\n return ValueGuard.IsObject(value) && Kind in value && ValueGuard.IsString(value[Kind]) && !KnownTypes.includes(value[Kind]);\n}\n/** Returns true if the given value is TSchema */\nexport function IsSchema(value) {\n // prettier-ignore\n return (ValueGuard.IsObject(value)) && (IsAny(value) ||\n IsArgument(value) ||\n IsArray(value) ||\n IsBoolean(value) ||\n IsBigInt(value) ||\n IsAsyncIterator(value) ||\n IsComputed(value) ||\n IsConstructor(value) ||\n IsDate(value) ||\n IsFunction(value) ||\n IsInteger(value) ||\n IsIntersect(value) ||\n IsIterator(value) ||\n IsLiteral(value) ||\n IsMappedKey(value) ||\n IsMappedResult(value) ||\n IsNever(value) ||\n IsNot(value) ||\n IsNull(value) ||\n IsNumber(value) ||\n IsObject(value) ||\n IsPromise(value) ||\n IsRecord(value) ||\n IsRef(value) ||\n IsRegExp(value) ||\n IsString(value) ||\n IsSymbol(value) ||\n IsTemplateLiteral(value) ||\n IsThis(value) ||\n IsTuple(value) ||\n IsUndefined(value) ||\n IsUnion(value) ||\n IsUint8Array(value) ||\n IsUnknown(value) ||\n IsUnsafe(value) ||\n IsVoid(value) ||\n IsKind(value));\n}\n","export const PatternBoolean = '(true|false)';\nexport const PatternNumber = '(0|[1-9][0-9]*)';\nexport const PatternString = '(.*)';\nexport const PatternNever = '(?!.*)';\nexport const PatternBooleanExact = `^${PatternBoolean}$`;\nexport const PatternNumberExact = `^${PatternNumber}$`;\nexport const PatternStringExact = `^${PatternString}$`;\nexport const PatternNeverExact = `^${PatternNever}$`;\n","/** A registry for user defined string formats */\nconst map = new Map();\n/** Returns the entries in this registry */\nexport function Entries() {\n return new Map(map);\n}\n/** Clears all user defined string formats */\nexport function Clear() {\n return map.clear();\n}\n/** Deletes a registered format */\nexport function Delete(format) {\n return map.delete(format);\n}\n/** Returns true if the user defined string format exists */\nexport function Has(format) {\n return map.has(format);\n}\n/** Sets a validation function for a user defined string format */\nexport function Set(format, func) {\n map.set(format, func);\n}\n/** Gets a validation function for a user defined string format */\nexport function Get(format) {\n return map.get(format);\n}\n","/** A registry for user defined types */\nconst map = new Map();\n/** Returns the entries in this registry */\nexport function Entries() {\n return new Map(map);\n}\n/** Clears all user defined types */\nexport function Clear() {\n return map.clear();\n}\n/** Deletes a registered type */\nexport function Delete(kind) {\n return map.delete(kind);\n}\n/** Returns true if this registry contains this kind */\nexport function Has(kind) {\n return map.has(kind);\n}\n/** Sets a validation function for a user defined type */\nexport function Set(kind, func) {\n map.set(kind, func);\n}\n/** Gets a custom validation function for a user defined type */\nexport function Get(kind) {\n return map.get(kind);\n}\n","/** Returns true if element right is in the set of left */\n// prettier-ignore\nexport function SetIncludes(T, S) {\n return T.includes(S);\n}\n/** Returns true if left is a subset of right */\nexport function SetIsSubset(T, S) {\n return T.every((L) => SetIncludes(S, L));\n}\n/** Returns a distinct set of elements */\nexport function SetDistinct(T) {\n return [...new Set(T)];\n}\n/** Returns the Intersect of the given sets */\nexport function SetIntersect(T, S) {\n return T.filter((L) => S.includes(L));\n}\n/** Returns the Union of the given sets */\nexport function SetUnion(T, S) {\n return [...T, ...S];\n}\n/** Returns the Complement by omitting elements in T that are in S */\n// prettier-ignore\nexport function SetComplement(T, S) {\n return T.filter(L => !S.includes(L));\n}\n// prettier-ignore\nfunction SetIntersectManyResolve(T, Init) {\n return T.reduce((Acc, L) => {\n return SetIntersect(Acc, L);\n }, Init);\n}\n// prettier-ignore\nexport function SetIntersectMany(T) {\n return (T.length === 1\n ? T[0]\n // Use left to initialize the accumulator for resolve\n : T.length > 1\n ? SetIntersectManyResolve(T.slice(1), T[0])\n : []);\n}\n/** Returns the Union of multiple sets */\nexport function SetUnionMany(T) {\n const Acc = [];\n for (const L of T)\n Acc.push(...L);\n return Acc;\n}\n","import { CreateType } from '../create/index.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Any type */\nexport function Any(options) {\n return CreateType({ [Kind]: 'Any' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Array type */\nexport function Array(items, options) {\n return CreateType({ [Kind]: 'Array', type: 'array', items }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates an Argument Type. */\nexport function Argument(index) {\n return CreateType({ [Kind]: 'Argument', index });\n}\n","import { Kind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/type.mjs';\n/** `[JavaScript]` Creates a AsyncIterator type */\nexport function AsyncIterator(items, options) {\n return CreateType({ [Kind]: 'AsyncIterator', type: 'AsyncIterator', items }, options);\n}\n","import { CreateType } from '../create/index.mjs';\nimport { Kind } from '../symbols/symbols.mjs';\n/** `[Internal]` Creates a deferred computed type. This type is used exclusively in modules to defer resolution of computable types that contain interior references */\nexport function Computed(target, parameters, options) {\n return CreateType({ [Kind]: 'Computed', target, parameters }, options);\n}\n","function DiscardKey(value, key) {\n const { [key]: _, ...rest } = value;\n return rest;\n}\n/** Discards property keys from the given value. This function returns a shallow Clone. */\nexport function Discard(value, keys) {\n return keys.reduce((acc, key) => DiscardKey(acc, key), value);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Never type */\nexport function Never(options) {\n return CreateType({ [Kind]: 'Never', not: {} }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n// prettier-ignore\nexport function MappedResult(properties) {\n return CreateType({\n [Kind]: 'MappedResult',\n properties\n });\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Constructor type */\nexport function Constructor(parameters, returns, options) {\n return CreateType({ [Kind]: 'Constructor', type: 'Constructor', parameters, returns }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Function type */\nexport function Function(parameters, returns, options) {\n return CreateType({ [Kind]: 'Function', type: 'Function', parameters, returns }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\nexport function UnionCreate(T, options) {\n return CreateType({ [Kind]: 'Union', anyOf: T }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { OptionalKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { UnionCreate } from './union-create.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsOptional } from '../guard/kind.mjs';\n// prettier-ignore\nfunction IsUnionOptional(types) {\n return types.some(type => IsOptional(type));\n}\n// prettier-ignore\nfunction RemoveOptionalFromRest(types) {\n return types.map(left => IsOptional(left) ? RemoveOptionalFromType(left) : left);\n}\n// prettier-ignore\nfunction RemoveOptionalFromType(T) {\n return (Discard(T, [OptionalKind]));\n}\n// prettier-ignore\nfunction ResolveUnion(types, options) {\n const isOptional = IsUnionOptional(types);\n return (isOptional\n ? Optional(UnionCreate(RemoveOptionalFromRest(types), options))\n : UnionCreate(RemoveOptionalFromRest(types), options));\n}\n/** `[Json]` Creates an evaluated Union type */\nexport function UnionEvaluated(T, options) {\n // prettier-ignore\n return (T.length === 1 ? CreateType(T[0], options) :\n T.length === 0 ? Never(options) :\n ResolveUnion(T, options));\n}\n","import { Never } from '../never/index.mjs';\nimport { CreateType } from '../create/type.mjs';\nimport { UnionCreate } from './union-create.mjs';\n/** `[Json]` Creates a Union type */\nexport function Union(types, options) {\n // prettier-ignore\n return (types.length === 0 ? Never(options) :\n types.length === 1 ? CreateType(types[0], options) :\n UnionCreate(types, options));\n}\n","import { TypeBoxError } from '../error/index.mjs';\n// ------------------------------------------------------------------\n// TemplateLiteralParserError\n// ------------------------------------------------------------------\nexport class TemplateLiteralParserError extends TypeBoxError {\n}\n// -------------------------------------------------------------------\n// Unescape\n//\n// Unescape for these control characters specifically. Note that this\n// function is only called on non union group content, and where we\n// still want to allow the user to embed control characters in that\n// content. For review.\n// -------------------------------------------------------------------\n// prettier-ignore\nfunction Unescape(pattern) {\n return pattern\n .replace(/\\\\\\$/g, '$')\n .replace(/\\\\\\*/g, '*')\n .replace(/\\\\\\^/g, '^')\n .replace(/\\\\\\|/g, '|')\n .replace(/\\\\\\(/g, '(')\n .replace(/\\\\\\)/g, ')');\n}\n// -------------------------------------------------------------------\n// Control Characters\n// -------------------------------------------------------------------\nfunction IsNonEscaped(pattern, index, char) {\n return pattern[index] === char && pattern.charCodeAt(index - 1) !== 92;\n}\nfunction IsOpenParen(pattern, index) {\n return IsNonEscaped(pattern, index, '(');\n}\nfunction IsCloseParen(pattern, index) {\n return IsNonEscaped(pattern, index, ')');\n}\nfunction IsSeparator(pattern, index) {\n return IsNonEscaped(pattern, index, '|');\n}\n// -------------------------------------------------------------------\n// Control Groups\n// -------------------------------------------------------------------\nfunction IsGroup(pattern) {\n if (!(IsOpenParen(pattern, 0) && IsCloseParen(pattern, pattern.length - 1)))\n return false;\n let count = 0;\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n count += 1;\n if (IsCloseParen(pattern, index))\n count -= 1;\n if (count === 0 && index !== pattern.length - 1)\n return false;\n }\n return true;\n}\n// prettier-ignore\nfunction InGroup(pattern) {\n return pattern.slice(1, pattern.length - 1);\n}\n// prettier-ignore\nfunction IsPrecedenceOr(pattern) {\n let count = 0;\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n count += 1;\n if (IsCloseParen(pattern, index))\n count -= 1;\n if (IsSeparator(pattern, index) && count === 0)\n return true;\n }\n return false;\n}\n// prettier-ignore\nfunction IsPrecedenceAnd(pattern) {\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n return true;\n }\n return false;\n}\n// prettier-ignore\nfunction Or(pattern) {\n let [count, start] = [0, 0];\n const expressions = [];\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index))\n count += 1;\n if (IsCloseParen(pattern, index))\n count -= 1;\n if (IsSeparator(pattern, index) && count === 0) {\n const range = pattern.slice(start, index);\n if (range.length > 0)\n expressions.push(TemplateLiteralParse(range));\n start = index + 1;\n }\n }\n const range = pattern.slice(start);\n if (range.length > 0)\n expressions.push(TemplateLiteralParse(range));\n if (expressions.length === 0)\n return { type: 'const', const: '' };\n if (expressions.length === 1)\n return expressions[0];\n return { type: 'or', expr: expressions };\n}\n// prettier-ignore\nfunction And(pattern) {\n function Group(value, index) {\n if (!IsOpenParen(value, index))\n throw new TemplateLiteralParserError(`TemplateLiteralParser: Index must point to open parens`);\n let count = 0;\n for (let scan = index; scan < value.length; scan++) {\n if (IsOpenParen(value, scan))\n count += 1;\n if (IsCloseParen(value, scan))\n count -= 1;\n if (count === 0)\n return [index, scan];\n }\n throw new TemplateLiteralParserError(`TemplateLiteralParser: Unclosed group parens in expression`);\n }\n function Range(pattern, index) {\n for (let scan = index; scan < pattern.length; scan++) {\n if (IsOpenParen(pattern, scan))\n return [index, scan];\n }\n return [index, pattern.length];\n }\n const expressions = [];\n for (let index = 0; index < pattern.length; index++) {\n if (IsOpenParen(pattern, index)) {\n const [start, end] = Group(pattern, index);\n const range = pattern.slice(start, end + 1);\n expressions.push(TemplateLiteralParse(range));\n index = end;\n }\n else {\n const [start, end] = Range(pattern, index);\n const range = pattern.slice(start, end);\n if (range.length > 0)\n expressions.push(TemplateLiteralParse(range));\n index = end - 1;\n }\n }\n return ((expressions.length === 0) ? { type: 'const', const: '' } :\n (expressions.length === 1) ? expressions[0] :\n { type: 'and', expr: expressions });\n}\n// ------------------------------------------------------------------\n// TemplateLiteralParse\n// ------------------------------------------------------------------\n/** Parses a pattern and returns an expression tree */\nexport function TemplateLiteralParse(pattern) {\n // prettier-ignore\n return (IsGroup(pattern) ? TemplateLiteralParse(InGroup(pattern)) :\n IsPrecedenceOr(pattern) ? Or(pattern) :\n IsPrecedenceAnd(pattern) ? And(pattern) :\n { type: 'const', const: Unescape(pattern) });\n}\n// ------------------------------------------------------------------\n// TemplateLiteralParseExact\n// ------------------------------------------------------------------\n/** Parses a pattern and strips forward and trailing ^ and $ */\nexport function TemplateLiteralParseExact(pattern) {\n return TemplateLiteralParse(pattern.slice(1, pattern.length - 1));\n}\n","import { TemplateLiteralParseExact } from './parse.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\n// ------------------------------------------------------------------\n// TemplateLiteralFiniteError\n// ------------------------------------------------------------------\nexport class TemplateLiteralFiniteError extends TypeBoxError {\n}\n// ------------------------------------------------------------------\n// IsTemplateLiteralFiniteCheck\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IsNumberExpression(expression) {\n return (expression.type === 'or' &&\n expression.expr.length === 2 &&\n expression.expr[0].type === 'const' &&\n expression.expr[0].const === '0' &&\n expression.expr[1].type === 'const' &&\n expression.expr[1].const === '[1-9][0-9]*');\n}\n// prettier-ignore\nfunction IsBooleanExpression(expression) {\n return (expression.type === 'or' &&\n expression.expr.length === 2 &&\n expression.expr[0].type === 'const' &&\n expression.expr[0].const === 'true' &&\n expression.expr[1].type === 'const' &&\n expression.expr[1].const === 'false');\n}\n// prettier-ignore\nfunction IsStringExpression(expression) {\n return expression.type === 'const' && expression.const === '.*';\n}\n// ------------------------------------------------------------------\n// IsTemplateLiteralExpressionFinite\n// ------------------------------------------------------------------\n// prettier-ignore\nexport function IsTemplateLiteralExpressionFinite(expression) {\n return (IsNumberExpression(expression) || IsStringExpression(expression) ? false :\n IsBooleanExpression(expression) ? true :\n (expression.type === 'and') ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) :\n (expression.type === 'or') ? expression.expr.every((expr) => IsTemplateLiteralExpressionFinite(expr)) :\n (expression.type === 'const') ? true :\n (() => { throw new TemplateLiteralFiniteError(`Unknown expression type`); })());\n}\n/** Returns true if this TemplateLiteral resolves to a finite set of values */\nexport function IsTemplateLiteralFinite(schema) {\n const expression = TemplateLiteralParseExact(schema.pattern);\n return IsTemplateLiteralExpressionFinite(expression);\n}\n","import { IsTemplateLiteralExpressionFinite } from './finite.mjs';\nimport { TemplateLiteralParseExact } from './parse.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\n// ------------------------------------------------------------------\n// TemplateLiteralGenerateError\n// ------------------------------------------------------------------\nexport class TemplateLiteralGenerateError extends TypeBoxError {\n}\n// ------------------------------------------------------------------\n// TemplateLiteralExpressionGenerate\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction* GenerateReduce(buffer) {\n if (buffer.length === 1)\n return yield* buffer[0];\n for (const left of buffer[0]) {\n for (const right of GenerateReduce(buffer.slice(1))) {\n yield `${left}${right}`;\n }\n }\n}\n// prettier-ignore\nfunction* GenerateAnd(expression) {\n return yield* GenerateReduce(expression.expr.map((expr) => [...TemplateLiteralExpressionGenerate(expr)]));\n}\n// prettier-ignore\nfunction* GenerateOr(expression) {\n for (const expr of expression.expr)\n yield* TemplateLiteralExpressionGenerate(expr);\n}\n// prettier-ignore\nfunction* GenerateConst(expression) {\n return yield expression.const;\n}\nexport function* TemplateLiteralExpressionGenerate(expression) {\n return expression.type === 'and'\n ? yield* GenerateAnd(expression)\n : expression.type === 'or'\n ? yield* GenerateOr(expression)\n : expression.type === 'const'\n ? yield* GenerateConst(expression)\n : (() => {\n throw new TemplateLiteralGenerateError('Unknown expression');\n })();\n}\n/** Generates a tuple of strings from the given TemplateLiteral. Returns an empty tuple if infinite. */\nexport function TemplateLiteralGenerate(schema) {\n const expression = TemplateLiteralParseExact(schema.pattern);\n // prettier-ignore\n return (IsTemplateLiteralExpressionFinite(expression)\n ? [...TemplateLiteralExpressionGenerate(expression)]\n : []);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Literal type */\nexport function Literal(value, options) {\n return CreateType({\n [Kind]: 'Literal',\n const: value,\n type: typeof value,\n }, options);\n}\n","import { Kind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/index.mjs';\n/** `[Json]` Creates a Boolean type */\nexport function Boolean(options) {\n return CreateType({ [Kind]: 'Boolean', type: 'boolean' }, options);\n}\n","import { Kind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/index.mjs';\n/** `[JavaScript]` Creates a BigInt type */\nexport function BigInt(options) {\n return CreateType({ [Kind]: 'BigInt', type: 'bigint' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Number type */\nexport function Number(options) {\n return CreateType({ [Kind]: 'Number', type: 'number' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a String type */\nexport function String(options) {\n return CreateType({ [Kind]: 'String', type: 'string' }, options);\n}\n","import { Literal } from '../literal/index.mjs';\nimport { Boolean } from '../boolean/index.mjs';\nimport { BigInt } from '../bigint/index.mjs';\nimport { Number } from '../number/index.mjs';\nimport { String } from '../string/index.mjs';\nimport { UnionEvaluated } from '../union/index.mjs';\nimport { Never } from '../never/index.mjs';\n// ------------------------------------------------------------------\n// SyntaxParsers\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction* FromUnion(syntax) {\n const trim = syntax.trim().replace(/\"|'/g, '');\n return (trim === 'boolean' ? yield Boolean() :\n trim === 'number' ? yield Number() :\n trim === 'bigint' ? yield BigInt() :\n trim === 'string' ? yield String() :\n yield (() => {\n const literals = trim.split('|').map((literal) => Literal(literal.trim()));\n return (literals.length === 0 ? Never() :\n literals.length === 1 ? literals[0] :\n UnionEvaluated(literals));\n })());\n}\n// prettier-ignore\nfunction* FromTerminal(syntax) {\n if (syntax[1] !== '{') {\n const L = Literal('$');\n const R = FromSyntax(syntax.slice(1));\n return yield* [L, ...R];\n }\n for (let i = 2; i < syntax.length; i++) {\n if (syntax[i] === '}') {\n const L = FromUnion(syntax.slice(2, i));\n const R = FromSyntax(syntax.slice(i + 1));\n return yield* [...L, ...R];\n }\n }\n yield Literal(syntax);\n}\n// prettier-ignore\nfunction* FromSyntax(syntax) {\n for (let i = 0; i < syntax.length; i++) {\n if (syntax[i] === '$') {\n const L = Literal(syntax.slice(0, i));\n const R = FromTerminal(syntax.slice(i));\n return yield* [L, ...R];\n }\n }\n yield Literal(syntax);\n}\n/** Parses TemplateLiteralSyntax and returns a tuple of TemplateLiteralKinds */\nexport function TemplateLiteralSyntax(syntax) {\n return [...FromSyntax(syntax)];\n}\n","import { PatternNumber, PatternString, PatternBoolean } from '../patterns/index.mjs';\nimport { Kind } from '../symbols/index.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsTemplateLiteral, IsUnion, IsNumber, IsInteger, IsBigInt, IsString, IsLiteral, IsBoolean } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// TemplateLiteralPatternError\n// ------------------------------------------------------------------\nexport class TemplateLiteralPatternError extends TypeBoxError {\n}\n// ------------------------------------------------------------------\n// TemplateLiteralPattern\n// ------------------------------------------------------------------\nfunction Escape(value) {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n// prettier-ignore\nfunction Visit(schema, acc) {\n return (IsTemplateLiteral(schema) ? schema.pattern.slice(1, schema.pattern.length - 1) :\n IsUnion(schema) ? `(${schema.anyOf.map((schema) => Visit(schema, acc)).join('|')})` :\n IsNumber(schema) ? `${acc}${PatternNumber}` :\n IsInteger(schema) ? `${acc}${PatternNumber}` :\n IsBigInt(schema) ? `${acc}${PatternNumber}` :\n IsString(schema) ? `${acc}${PatternString}` :\n IsLiteral(schema) ? `${acc}${Escape(schema.const.toString())}` :\n IsBoolean(schema) ? `${acc}${PatternBoolean}` :\n (() => { throw new TemplateLiteralPatternError(`Unexpected Kind '${schema[Kind]}'`); })());\n}\nexport function TemplateLiteralPattern(kinds) {\n return `^${kinds.map((schema) => Visit(schema, '')).join('')}\\$`;\n}\n","import { UnionEvaluated } from '../union/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { TemplateLiteralGenerate } from './generate.mjs';\n/** Returns a Union from the given TemplateLiteral */\nexport function TemplateLiteralToUnion(schema) {\n const R = TemplateLiteralGenerate(schema);\n const L = R.map((S) => Literal(S));\n return UnionEvaluated(L);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { TemplateLiteralSyntax } from './syntax.mjs';\nimport { TemplateLiteralPattern } from './pattern.mjs';\nimport { IsString } from '../guard/value.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a TemplateLiteral type */\n// prettier-ignore\nexport function TemplateLiteral(unresolved, options) {\n const pattern = IsString(unresolved)\n ? TemplateLiteralPattern(TemplateLiteralSyntax(unresolved))\n : TemplateLiteralPattern(unresolved);\n return CreateType({ [Kind]: 'TemplateLiteral', type: 'string', pattern }, options);\n}\n","import { TemplateLiteralGenerate } from '../template-literal/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsTemplateLiteral, IsUnion, IsLiteral, IsNumber, IsInteger } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromTemplateLiteral(templateLiteral) {\n const keys = TemplateLiteralGenerate(templateLiteral);\n return keys.map(key => key.toString());\n}\n// prettier-ignore\nfunction FromUnion(types) {\n const result = [];\n for (const type of types)\n result.push(...IndexPropertyKeys(type));\n return result;\n}\n// prettier-ignore\nfunction FromLiteral(literalValue) {\n return ([literalValue.toString()] // TS 5.4 observes TLiteralValue as not having a toString()\n );\n}\n/** Returns a tuple of PropertyKeys derived from the given TSchema */\n// prettier-ignore\nexport function IndexPropertyKeys(type) {\n return [...new Set((IsTemplateLiteral(type) ? FromTemplateLiteral(type) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsLiteral(type) ? FromLiteral(type.const) :\n IsNumber(type) ? ['[number]'] :\n IsInteger(type) ? ['[number]'] :\n []))];\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { IndexPropertyKeys } from './indexed-property-keys.mjs';\nimport { Index } from './index.mjs';\n// prettier-ignore\nfunction FromProperties(type, properties, options) {\n const result = {};\n for (const K2 of Object.getOwnPropertyNames(properties)) {\n result[K2] = Index(type, IndexPropertyKeys(properties[K2]), options);\n }\n return result;\n}\n// prettier-ignore\nfunction FromMappedResult(type, mappedResult, options) {\n return FromProperties(type, mappedResult.properties, options);\n}\n// prettier-ignore\nexport function IndexFromMappedResult(type, mappedResult, options) {\n const properties = FromMappedResult(type, mappedResult, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { IntersectEvaluated } from '../intersect/index.mjs';\nimport { UnionEvaluated } from '../union/index.mjs';\nimport { IndexPropertyKeys } from './indexed-property-keys.mjs';\nimport { IndexFromMappedKey } from './indexed-from-mapped-key.mjs';\nimport { IndexFromMappedResult } from './indexed-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsIntersect, IsObject, IsMappedKey, IsMappedResult, IsNever, IsSchema, IsTuple, IsUnion, IsRef } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromRest(types, key) {\n return types.map(type => IndexFromPropertyKey(type, key));\n}\n// prettier-ignore\nfunction FromIntersectRest(types) {\n return types.filter(type => !IsNever(type));\n}\n// prettier-ignore\nfunction FromIntersect(types, key) {\n return (IntersectEvaluated(FromIntersectRest(FromRest(types, key))));\n}\n// prettier-ignore\nfunction FromUnionRest(types) {\n return (types.some(L => IsNever(L))\n ? []\n : types);\n}\n// prettier-ignore\nfunction FromUnion(types, key) {\n return (UnionEvaluated(FromUnionRest(FromRest(types, key))));\n}\n// prettier-ignore\nfunction FromTuple(types, key) {\n return (key in types ? types[key] :\n key === '[number]' ? UnionEvaluated(types) :\n Never());\n}\n// prettier-ignore\nfunction FromArray(type, key) {\n return (key === '[number]'\n ? type\n : Never());\n}\n// prettier-ignore\nfunction FromProperty(properties, propertyKey) {\n return (propertyKey in properties ? properties[propertyKey] : Never());\n}\n// prettier-ignore\nexport function IndexFromPropertyKey(type, propertyKey) {\n return (IsIntersect(type) ? FromIntersect(type.allOf, propertyKey) :\n IsUnion(type) ? FromUnion(type.anyOf, propertyKey) :\n IsTuple(type) ? FromTuple(type.items ?? [], propertyKey) :\n IsArray(type) ? FromArray(type.items, propertyKey) :\n IsObject(type) ? FromProperty(type.properties, propertyKey) :\n Never());\n}\n// prettier-ignore\nexport function IndexFromPropertyKeys(type, propertyKeys) {\n return propertyKeys.map(propertyKey => IndexFromPropertyKey(type, propertyKey));\n}\n// prettier-ignore\nfunction FromSchema(type, propertyKeys) {\n return (UnionEvaluated(IndexFromPropertyKeys(type, propertyKeys)));\n}\n// prettier-ignore\nexport function IndexFromComputed(type, key) {\n return Computed('Index', [type, key]);\n}\n/** `[Json]` Returns an Indexed property type for the given keys */\nexport function Index(type, key, options) {\n // computed-type\n if (IsRef(type) || IsRef(key)) {\n const error = `Index types using Ref parameters require both Type and Key to be of TSchema`;\n if (!IsSchema(type) || !IsSchema(key))\n throw new TypeBoxError(error);\n return Computed('Index', [type, key]);\n }\n // mapped-types\n if (IsMappedResult(key))\n return IndexFromMappedResult(type, key, options);\n if (IsMappedKey(key))\n return IndexFromMappedKey(type, key, options);\n // prettier-ignore\n return CreateType(IsSchema(key)\n ? FromSchema(type, IndexPropertyKeys(key))\n : FromSchema(type, key), options);\n}\n","import { Index } from './indexed.mjs';\nimport { MappedResult } from '../mapped/index.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction MappedIndexPropertyKey(type, key, options) {\n return { [key]: Index(type, [key], Clone(options)) };\n}\n// prettier-ignore\nfunction MappedIndexPropertyKeys(type, propertyKeys, options) {\n return propertyKeys.reduce((result, left) => {\n return { ...result, ...MappedIndexPropertyKey(type, left, options) };\n }, {});\n}\n// prettier-ignore\nfunction MappedIndexProperties(type, mappedKey, options) {\n return MappedIndexPropertyKeys(type, mappedKey.keys, options);\n}\n// prettier-ignore\nexport function IndexFromMappedKey(type, mappedKey, options) {\n const properties = MappedIndexProperties(type, mappedKey, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates an Iterator type */\nexport function Iterator(items, options) {\n return CreateType({ [Kind]: 'Iterator', type: 'Iterator', items }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsOptional } from '../guard/kind.mjs';\nfunction RequiredKeys(properties) {\n const keys = [];\n for (let key in properties) {\n if (!IsOptional(properties[key]))\n keys.push(key);\n }\n return keys;\n}\n/** `[Json]` Creates an Object type */\nfunction _Object(properties, options) {\n const required = RequiredKeys(properties);\n const schematic = required.length > 0 ? { [Kind]: 'Object', type: 'object', properties, required } : { [Kind]: 'Object', type: 'object', properties };\n return CreateType(schematic, options);\n}\n/** `[Json]` Creates an Object type */\nexport var Object = _Object;\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Promise type */\nexport function Promise(item, options) {\n return CreateType({ [Kind]: 'Promise', type: 'Promise', item }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { ReadonlyKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { ReadonlyFromMappedResult } from './readonly-from-mapped-result.mjs';\nimport { IsMappedResult } from '../guard/kind.mjs';\nfunction RemoveReadonly(schema) {\n return CreateType(Discard(schema, [ReadonlyKind]));\n}\nfunction AddReadonly(schema) {\n return CreateType({ ...schema, [ReadonlyKind]: 'Readonly' });\n}\n// prettier-ignore\nfunction ReadonlyWithFlag(schema, F) {\n return (F === false\n ? RemoveReadonly(schema)\n : AddReadonly(schema));\n}\n/** `[Json]` Creates a Readonly property */\nexport function Readonly(schema, enable) {\n const F = enable ?? true;\n return IsMappedResult(schema) ? ReadonlyFromMappedResult(schema, F) : ReadonlyWithFlag(schema, F);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Readonly } from './readonly.mjs';\n// prettier-ignore\nfunction FromProperties(K, F) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(K))\n Acc[K2] = Readonly(K[K2], F);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, F) {\n return FromProperties(R.properties, F);\n}\n// prettier-ignore\nexport function ReadonlyFromMappedResult(R, F) {\n const P = FromMappedResult(R, F);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Tuple type */\nexport function Tuple(types, options) {\n // prettier-ignore\n return CreateType(types.length > 0 ?\n { [Kind]: 'Tuple', type: 'array', items: types, additionalItems: false, minItems: types.length, maxItems: types.length } :\n { [Kind]: 'Tuple', type: 'array', minItems: types.length, maxItems: types.length }, options);\n}\n","import { Kind, OptionalKind, ReadonlyKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\n// evaluation types\nimport { Array } from '../array/index.mjs';\nimport { AsyncIterator } from '../async-iterator/index.mjs';\nimport { Constructor } from '../constructor/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Iterator } from '../iterator/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { Promise } from '../promise/index.mjs';\nimport { Readonly } from '../readonly/index.mjs';\nimport { Tuple } from '../tuple/index.mjs';\nimport { Union } from '../union/index.mjs';\n// operator\nimport { SetIncludes } from '../sets/index.mjs';\n// mapping types\nimport { MappedResult } from './mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsAsyncIterator, IsConstructor, IsFunction, IsIntersect, IsIterator, IsReadonly, IsMappedResult, IsMappedKey, IsObject, IsOptional, IsPromise, IsSchema, IsTuple, IsUnion } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromMappedResult(K, P) {\n return (K in P\n ? FromSchemaType(K, P[K])\n : MappedResult(P));\n}\n// prettier-ignore\nfunction MappedKeyToKnownMappedResultProperties(K) {\n return { [K]: Literal(K) };\n}\n// prettier-ignore\nfunction MappedKeyToUnknownMappedResultProperties(P) {\n const Acc = {};\n for (const L of P)\n Acc[L] = Literal(L);\n return Acc;\n}\n// prettier-ignore\nfunction MappedKeyToMappedResultProperties(K, P) {\n return (SetIncludes(P, K)\n ? MappedKeyToKnownMappedResultProperties(K)\n : MappedKeyToUnknownMappedResultProperties(P));\n}\n// prettier-ignore\nfunction FromMappedKey(K, P) {\n const R = MappedKeyToMappedResultProperties(K, P);\n return FromMappedResult(K, R);\n}\n// prettier-ignore\nfunction FromRest(K, T) {\n return T.map(L => FromSchemaType(K, L));\n}\n// prettier-ignore\nfunction FromProperties(K, T) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(T))\n Acc[K2] = FromSchemaType(K, T[K2]);\n return Acc;\n}\n// prettier-ignore\nfunction FromSchemaType(K, T) {\n // required to retain user defined options for mapped type\n const options = { ...T };\n return (\n // unevaluated modifier types\n IsOptional(T) ? Optional(FromSchemaType(K, Discard(T, [OptionalKind]))) :\n IsReadonly(T) ? Readonly(FromSchemaType(K, Discard(T, [ReadonlyKind]))) :\n // unevaluated mapped types\n IsMappedResult(T) ? FromMappedResult(K, T.properties) :\n IsMappedKey(T) ? FromMappedKey(K, T.keys) :\n // unevaluated types\n IsConstructor(T) ? Constructor(FromRest(K, T.parameters), FromSchemaType(K, T.returns), options) :\n IsFunction(T) ? FunctionType(FromRest(K, T.parameters), FromSchemaType(K, T.returns), options) :\n IsAsyncIterator(T) ? AsyncIterator(FromSchemaType(K, T.items), options) :\n IsIterator(T) ? Iterator(FromSchemaType(K, T.items), options) :\n IsIntersect(T) ? Intersect(FromRest(K, T.allOf), options) :\n IsUnion(T) ? Union(FromRest(K, T.anyOf), options) :\n IsTuple(T) ? Tuple(FromRest(K, T.items ?? []), options) :\n IsObject(T) ? Object(FromProperties(K, T.properties), options) :\n IsArray(T) ? Array(FromSchemaType(K, T.items), options) :\n IsPromise(T) ? Promise(FromSchemaType(K, T.item), options) :\n T);\n}\n// prettier-ignore\nexport function MappedFunctionReturnType(K, T) {\n const Acc = {};\n for (const L of K)\n Acc[L] = FromSchemaType(L, T);\n return Acc;\n}\n/** `[Json]` Creates a Mapped object type */\nexport function Mapped(key, map, options) {\n const K = IsSchema(key) ? IndexPropertyKeys(key) : key;\n const RT = map({ [Kind]: 'MappedKey', keys: K });\n const R = MappedFunctionReturnType(K, RT);\n return Object(R, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { OptionalKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { OptionalFromMappedResult } from './optional-from-mapped-result.mjs';\nimport { IsMappedResult } from '../guard/kind.mjs';\nfunction RemoveOptional(schema) {\n return CreateType(Discard(schema, [OptionalKind]));\n}\nfunction AddOptional(schema) {\n return CreateType({ ...schema, [OptionalKind]: 'Optional' });\n}\n// prettier-ignore\nfunction OptionalWithFlag(schema, F) {\n return (F === false\n ? RemoveOptional(schema)\n : AddOptional(schema));\n}\n/** `[Json]` Creates a Optional property */\nexport function Optional(schema, enable) {\n const F = enable ?? true;\n return IsMappedResult(schema) ? OptionalFromMappedResult(schema, F) : OptionalWithFlag(schema, F);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Optional } from './optional.mjs';\n// prettier-ignore\nfunction FromProperties(P, F) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Optional(P[K2], F);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, F) {\n return FromProperties(R.properties, F);\n}\n// prettier-ignore\nexport function OptionalFromMappedResult(R, F) {\n const P = FromMappedResult(R, F);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsObject, IsSchema } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// IntersectCreate\n// ------------------------------------------------------------------\n// prettier-ignore\nexport function IntersectCreate(T, options = {}) {\n const allObjects = T.every((schema) => IsObject(schema));\n const clonedUnevaluatedProperties = IsSchema(options.unevaluatedProperties)\n ? { unevaluatedProperties: options.unevaluatedProperties }\n : {};\n return CreateType((options.unevaluatedProperties === false || IsSchema(options.unevaluatedProperties) || allObjects\n ? { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', type: 'object', allOf: T }\n : { ...clonedUnevaluatedProperties, [Kind]: 'Intersect', allOf: T }), options);\n}\n","import { OptionalKind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/type.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { IntersectCreate } from './intersect-create.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsOptional, IsTransform } from '../guard/kind.mjs';\n// prettier-ignore\nfunction IsIntersectOptional(types) {\n return types.every(left => IsOptional(left));\n}\n// prettier-ignore\nfunction RemoveOptionalFromType(type) {\n return (Discard(type, [OptionalKind]));\n}\n// prettier-ignore\nfunction RemoveOptionalFromRest(types) {\n return types.map(left => IsOptional(left) ? RemoveOptionalFromType(left) : left);\n}\n// prettier-ignore\nfunction ResolveIntersect(types, options) {\n return (IsIntersectOptional(types)\n ? Optional(IntersectCreate(RemoveOptionalFromRest(types), options))\n : IntersectCreate(RemoveOptionalFromRest(types), options));\n}\n/** `[Json]` Creates an evaluated Intersect type */\nexport function IntersectEvaluated(types, options = {}) {\n if (types.length === 1)\n return CreateType(types[0], options);\n if (types.length === 0)\n return Never(options);\n if (types.some((schema) => IsTransform(schema)))\n throw new Error('Cannot intersect transform types');\n return ResolveIntersect(types, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Never } from '../never/index.mjs';\nimport { IntersectCreate } from './intersect-create.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsTransform } from '../guard/kind.mjs';\n/** `[Json]` Creates an evaluated Intersect type */\nexport function Intersect(types, options) {\n if (types.length === 1)\n return CreateType(types[0], options);\n if (types.length === 0)\n return Never(options);\n if (types.some((schema) => IsTransform(schema)))\n throw new Error('Cannot intersect transform types');\n return IntersectCreate(types, options);\n}\n","import { TypeBoxError } from '../error/index.mjs';\nimport { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Ref type. The referenced type must contain a $id */\nexport function Ref(...args) {\n const [$ref, options] = typeof args[0] === 'string' ? [args[0], args[1]] : [args[0].$id, args[1]];\n if (typeof $ref !== 'string')\n throw new TypeBoxError('Ref: $ref must be a string');\n return CreateType({ [Kind]: 'Ref', $ref }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Ref } from '../ref/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsIntersect, IsUnion, IsPromise, IsRef, IsComputed } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromComputed(target, parameters) {\n return Computed('Awaited', [Computed(target, parameters)]);\n}\n// prettier-ignore\nfunction FromRef($ref) {\n return Computed('Awaited', [Ref($ref)]);\n}\n// prettier-ignore\nfunction FromIntersect(types) {\n return Intersect(FromRest(types));\n}\n// prettier-ignore\nfunction FromUnion(types) {\n return Union(FromRest(types));\n}\n// prettier-ignore\nfunction FromPromise(type) {\n return Awaited(type);\n}\n// prettier-ignore\nfunction FromRest(types) {\n return types.map(type => Awaited(type));\n}\n/** `[JavaScript]` Constructs a type by recursively unwrapping Promise types */\nexport function Awaited(type, options) {\n return CreateType(IsComputed(type) ? FromComputed(type.target, type.parameters) : IsIntersect(type) ? FromIntersect(type.allOf) : IsUnion(type) ? FromUnion(type.anyOf) : IsPromise(type) ? FromPromise(type.item) : IsRef(type) ? FromRef(type.$ref) : type, options);\n}\n","import { SetUnionMany, SetIntersectMany } from '../sets/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsIntersect, IsUnion, IsTuple, IsArray, IsObject, IsRecord } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromRest(types) {\n const result = [];\n for (const L of types)\n result.push(KeyOfPropertyKeys(L));\n return result;\n}\n// prettier-ignore\nfunction FromIntersect(types) {\n const propertyKeysArray = FromRest(types);\n const propertyKeys = SetUnionMany(propertyKeysArray);\n return propertyKeys;\n}\n// prettier-ignore\nfunction FromUnion(types) {\n const propertyKeysArray = FromRest(types);\n const propertyKeys = SetIntersectMany(propertyKeysArray);\n return propertyKeys;\n}\n// prettier-ignore\nfunction FromTuple(types) {\n return types.map((_, indexer) => indexer.toString());\n}\n// prettier-ignore\nfunction FromArray(_) {\n return (['[number]']);\n}\n// prettier-ignore\nfunction FromProperties(T) {\n return (globalThis.Object.getOwnPropertyNames(T));\n}\n// ------------------------------------------------------------------\n// FromPatternProperties\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromPatternProperties(patternProperties) {\n if (!includePatternProperties)\n return [];\n const patternPropertyKeys = globalThis.Object.getOwnPropertyNames(patternProperties);\n return patternPropertyKeys.map(key => {\n return (key[0] === '^' && key[key.length - 1] === '$')\n ? key.slice(1, key.length - 1)\n : key;\n });\n}\n/** Returns a tuple of PropertyKeys derived from the given TSchema. */\n// prettier-ignore\nexport function KeyOfPropertyKeys(type) {\n return (IsIntersect(type) ? FromIntersect(type.allOf) :\n IsUnion(type) ? FromUnion(type.anyOf) :\n IsTuple(type) ? FromTuple(type.items ?? []) :\n IsArray(type) ? FromArray(type.items) :\n IsObject(type) ? FromProperties(type.properties) :\n IsRecord(type) ? FromPatternProperties(type.patternProperties) :\n []);\n}\n// ----------------------------------------------------------------\n// KeyOfPattern\n// ----------------------------------------------------------------\nlet includePatternProperties = false;\n/** Returns a regular expression pattern derived from the given TSchema */\nexport function KeyOfPattern(schema) {\n includePatternProperties = true;\n const keys = KeyOfPropertyKeys(schema);\n includePatternProperties = false;\n const pattern = keys.map((key) => `(${key})`);\n return `^(${pattern.join('|')})$`;\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Number } from '../number/index.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Ref } from '../ref/index.mjs';\nimport { KeyOfPropertyKeys } from './keyof-property-keys.mjs';\nimport { UnionEvaluated } from '../union/index.mjs';\nimport { KeyOfFromMappedResult } from './keyof-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedResult, IsRef, IsComputed } from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromComputed(target, parameters) {\n return Computed('KeyOf', [Computed(target, parameters)]);\n}\n// prettier-ignore\nfunction FromRef($ref) {\n return Computed('KeyOf', [Ref($ref)]);\n}\n// prettier-ignore\nfunction KeyOfFromType(type, options) {\n const propertyKeys = KeyOfPropertyKeys(type);\n const propertyKeyTypes = KeyOfPropertyKeysToRest(propertyKeys);\n const result = UnionEvaluated(propertyKeyTypes);\n return CreateType(result, options);\n}\n// prettier-ignore\nexport function KeyOfPropertyKeysToRest(propertyKeys) {\n return propertyKeys.map(L => L === '[number]' ? Number() : Literal(L));\n}\n/** `[Json]` Creates a KeyOf type */\nexport function KeyOf(type, options) {\n return (IsComputed(type) ? FromComputed(type.target, type.parameters) : IsRef(type) ? FromRef(type.$ref) : IsMappedResult(type) ? KeyOfFromMappedResult(type, options) : KeyOfFromType(type, options));\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { KeyOf } from './keyof.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(properties, options) {\n const result = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(properties))\n result[K2] = KeyOf(properties[K2], Clone(options));\n return result;\n}\n// prettier-ignore\nfunction FromMappedResult(mappedResult, options) {\n return FromProperties(mappedResult.properties, options);\n}\n// prettier-ignore\nexport function KeyOfFromMappedResult(mappedResult, options) {\n const properties = FromMappedResult(mappedResult, options);\n return MappedResult(properties);\n}\n","import { IntersectEvaluated } from '../intersect/index.mjs';\nimport { IndexFromPropertyKeys } from '../indexed/index.mjs';\nimport { KeyOfPropertyKeys } from '../keyof/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { SetDistinct } from '../sets/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsNever } from '../guard/kind.mjs';\n// prettier-ignore\nfunction CompositeKeys(T) {\n const Acc = [];\n for (const L of T)\n Acc.push(...KeyOfPropertyKeys(L));\n return SetDistinct(Acc);\n}\n// prettier-ignore\nfunction FilterNever(T) {\n return T.filter(L => !IsNever(L));\n}\n// prettier-ignore\nfunction CompositeProperty(T, K) {\n const Acc = [];\n for (const L of T)\n Acc.push(...IndexFromPropertyKeys(L, [K]));\n return FilterNever(Acc);\n}\n// prettier-ignore\nfunction CompositeProperties(T, K) {\n const Acc = {};\n for (const L of K) {\n Acc[L] = IntersectEvaluated(CompositeProperty(T, L));\n }\n return Acc;\n}\n// prettier-ignore\nexport function Composite(T, options) {\n const K = CompositeKeys(T);\n const P = CompositeProperties(T, K);\n const R = Object(P, options);\n return R;\n}\n","import { Kind } from '../symbols/index.mjs';\nimport { CreateType } from '../create/type.mjs';\n/** `[JavaScript]` Creates a Date type */\nexport function Date(options) {\n return CreateType({ [Kind]: 'Date', type: 'Date' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Null type */\nexport function Null(options) {\n return CreateType({ [Kind]: 'Null', type: 'null' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Symbol type */\nexport function Symbol(options) {\n return CreateType({ [Kind]: 'Symbol', type: 'symbol' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Undefined type */\nexport function Undefined(options) {\n return CreateType({ [Kind]: 'Undefined', type: 'undefined' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Uint8Array type */\nexport function Uint8Array(options) {\n return CreateType({ [Kind]: 'Uint8Array', type: 'Uint8Array' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Unknown type */\nexport function Unknown(options) {\n return CreateType({ [Kind]: 'Unknown' }, options);\n}\n","import { Any } from '../any/index.mjs';\nimport { BigInt } from '../bigint/index.mjs';\nimport { Date } from '../date/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Null } from '../null/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Symbol } from '../symbol/index.mjs';\nimport { Tuple } from '../tuple/index.mjs';\nimport { Readonly } from '../readonly/index.mjs';\nimport { Undefined } from '../undefined/index.mjs';\nimport { Uint8Array } from '../uint8array/index.mjs';\nimport { Unknown } from '../unknown/index.mjs';\nimport { CreateType } from '../create/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsNumber, IsBigInt, IsUint8Array, IsDate, IsIterator, IsObject, IsAsyncIterator, IsFunction, IsUndefined, IsNull, IsSymbol, IsBoolean, IsString } from '../guard/value.mjs';\n// prettier-ignore\nfunction FromArray(T) {\n return T.map(L => FromValue(L, false));\n}\n// prettier-ignore\nfunction FromProperties(value) {\n const Acc = {};\n for (const K of globalThis.Object.getOwnPropertyNames(value))\n Acc[K] = Readonly(FromValue(value[K], false));\n return Acc;\n}\nfunction ConditionalReadonly(T, root) {\n return (root === true ? T : Readonly(T));\n}\n// prettier-ignore\nfunction FromValue(value, root) {\n return (IsAsyncIterator(value) ? ConditionalReadonly(Any(), root) :\n IsIterator(value) ? ConditionalReadonly(Any(), root) :\n IsArray(value) ? Readonly(Tuple(FromArray(value))) :\n IsUint8Array(value) ? Uint8Array() :\n IsDate(value) ? Date() :\n IsObject(value) ? ConditionalReadonly(Object(FromProperties(value)), root) :\n IsFunction(value) ? ConditionalReadonly(FunctionType([], Unknown()), root) :\n IsUndefined(value) ? Undefined() :\n IsNull(value) ? Null() :\n IsSymbol(value) ? Symbol() :\n IsBigInt(value) ? BigInt() :\n IsNumber(value) ? Literal(value) :\n IsBoolean(value) ? Literal(value) :\n IsString(value) ? Literal(value) :\n Object({}));\n}\n/** `[JavaScript]` Creates a readonly const type from the given value. */\nexport function Const(T, options) {\n return CreateType(FromValue(T, true), options);\n}\n","import { Tuple } from '../tuple/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n/** `[JavaScript]` Extracts the ConstructorParameters from the given Constructor type */\nexport function ConstructorParameters(schema, options) {\n return (KindGuard.IsConstructor(schema) ? Tuple(schema.parameters, options) : Never(options));\n}\n","import { Literal } from '../literal/index.mjs';\nimport { Kind, Hint } from '../symbols/index.mjs';\nimport { Union } from '../union/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsUndefined } from '../guard/value.mjs';\n/** `[Json]` Creates a Enum type */\nexport function Enum(item, options) {\n if (IsUndefined(item))\n throw new Error('Enum undefined or empty');\n const values1 = globalThis.Object.getOwnPropertyNames(item)\n .filter((key) => isNaN(key))\n .map((key) => item[key]);\n const values2 = [...new Set(values1)];\n const anyOf = values2.map((value) => Literal(value));\n return Union(anyOf, { ...options, [Hint]: 'Enum' });\n}\n","import { Any } from '../any/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { Number } from '../number/index.mjs';\nimport { String } from '../string/index.mjs';\nimport { Unknown } from '../unknown/index.mjs';\nimport { TemplateLiteralToUnion } from '../template-literal/index.mjs';\nimport { PatternNumberExact, PatternStringExact } from '../patterns/index.mjs';\nimport { Kind, Hint } from '../symbols/index.mjs';\nimport { TypeBoxError } from '../error/index.mjs';\nimport { TypeGuard, ValueGuard } from '../guard/index.mjs';\nexport class ExtendsResolverError extends TypeBoxError {\n}\nexport var ExtendsResult;\n(function (ExtendsResult) {\n ExtendsResult[ExtendsResult[\"Union\"] = 0] = \"Union\";\n ExtendsResult[ExtendsResult[\"True\"] = 1] = \"True\";\n ExtendsResult[ExtendsResult[\"False\"] = 2] = \"False\";\n})(ExtendsResult || (ExtendsResult = {}));\n// ------------------------------------------------------------------\n// IntoBooleanResult\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IntoBooleanResult(result) {\n return result === ExtendsResult.False ? result : ExtendsResult.True;\n}\n// ------------------------------------------------------------------\n// Throw\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction Throw(message) {\n throw new ExtendsResolverError(message);\n}\n// ------------------------------------------------------------------\n// StructuralRight\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IsStructuralRight(right) {\n return (TypeGuard.IsNever(right) ||\n TypeGuard.IsIntersect(right) ||\n TypeGuard.IsUnion(right) ||\n TypeGuard.IsUnknown(right) ||\n TypeGuard.IsAny(right));\n}\n// prettier-ignore\nfunction StructuralRight(left, right) {\n return (TypeGuard.IsNever(right) ? FromNeverRight(left, right) :\n TypeGuard.IsIntersect(right) ? FromIntersectRight(left, right) :\n TypeGuard.IsUnion(right) ? FromUnionRight(left, right) :\n TypeGuard.IsUnknown(right) ? FromUnknownRight(left, right) :\n TypeGuard.IsAny(right) ? FromAnyRight(left, right) :\n Throw('StructuralRight'));\n}\n// ------------------------------------------------------------------\n// Any\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromAnyRight(left, right) {\n return ExtendsResult.True;\n}\n// prettier-ignore\nfunction FromAny(left, right) {\n return (TypeGuard.IsIntersect(right) ? FromIntersectRight(left, right) :\n (TypeGuard.IsUnion(right) && right.anyOf.some((schema) => TypeGuard.IsAny(schema) || TypeGuard.IsUnknown(schema))) ? ExtendsResult.True :\n TypeGuard.IsUnion(right) ? ExtendsResult.Union :\n TypeGuard.IsUnknown(right) ? ExtendsResult.True :\n TypeGuard.IsAny(right) ? ExtendsResult.True :\n ExtendsResult.Union);\n}\n// ------------------------------------------------------------------\n// Array\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromArrayRight(left, right) {\n return (TypeGuard.IsUnknown(left) ? ExtendsResult.False :\n TypeGuard.IsAny(left) ? ExtendsResult.Union :\n TypeGuard.IsNever(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromArray(left, right) {\n return (TypeGuard.IsObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True :\n IsStructuralRight(right) ? StructuralRight(left, right) :\n !TypeGuard.IsArray(right) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.items, right.items)));\n}\n// ------------------------------------------------------------------\n// AsyncIterator\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromAsyncIterator(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n !TypeGuard.IsAsyncIterator(right) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.items, right.items)));\n}\n// ------------------------------------------------------------------\n// BigInt\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromBigInt(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsBigInt(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Boolean\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromBooleanRight(left, right) {\n return (TypeGuard.IsLiteralBoolean(left) ? ExtendsResult.True :\n TypeGuard.IsBoolean(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromBoolean(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsBoolean(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Constructor\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromConstructor(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n !TypeGuard.IsConstructor(right) ? ExtendsResult.False :\n left.parameters.length > right.parameters.length ? ExtendsResult.False :\n (!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.returns, right.returns)));\n}\n// ------------------------------------------------------------------\n// Date\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromDate(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsDate(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Function\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromFunction(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n !TypeGuard.IsFunction(right) ? ExtendsResult.False :\n left.parameters.length > right.parameters.length ? ExtendsResult.False :\n (!left.parameters.every((schema, index) => IntoBooleanResult(Visit(right.parameters[index], schema)) === ExtendsResult.True)) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.returns, right.returns)));\n}\n// ------------------------------------------------------------------\n// Integer\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromIntegerRight(left, right) {\n return (TypeGuard.IsLiteral(left) && ValueGuard.IsNumber(left.const) ? ExtendsResult.True :\n TypeGuard.IsNumber(left) || TypeGuard.IsInteger(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromInteger(left, right) {\n return (TypeGuard.IsInteger(right) || TypeGuard.IsNumber(right) ? ExtendsResult.True :\n IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Intersect\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromIntersectRight(left, right) {\n return right.allOf.every((schema) => Visit(left, schema) === ExtendsResult.True)\n ? ExtendsResult.True\n : ExtendsResult.False;\n}\n// prettier-ignore\nfunction FromIntersect(left, right) {\n return left.allOf.some((schema) => Visit(schema, right) === ExtendsResult.True)\n ? ExtendsResult.True\n : ExtendsResult.False;\n}\n// ------------------------------------------------------------------\n// Iterator\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromIterator(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n !TypeGuard.IsIterator(right) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.items, right.items)));\n}\n// ------------------------------------------------------------------\n// Literal\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromLiteral(left, right) {\n return (TypeGuard.IsLiteral(right) && right.const === left.const ? ExtendsResult.True :\n IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsString(right) ? FromStringRight(left, right) :\n TypeGuard.IsNumber(right) ? FromNumberRight(left, right) :\n TypeGuard.IsInteger(right) ? FromIntegerRight(left, right) :\n TypeGuard.IsBoolean(right) ? FromBooleanRight(left, right) :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Never\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromNeverRight(left, right) {\n return ExtendsResult.False;\n}\n// prettier-ignore\nfunction FromNever(left, right) {\n return ExtendsResult.True;\n}\n// ------------------------------------------------------------------\n// Not\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction UnwrapTNot(schema) {\n let [current, depth] = [schema, 0];\n while (true) {\n if (!TypeGuard.IsNot(current))\n break;\n current = current.not;\n depth += 1;\n }\n return depth % 2 === 0 ? current : Unknown();\n}\n// prettier-ignore\nfunction FromNot(left, right) {\n // TypeScript has no concept of negated types, and attempts to correctly check the negated\n // type at runtime would put TypeBox at odds with TypeScripts ability to statically infer\n // the type. Instead we unwrap to either unknown or T and continue evaluating.\n // prettier-ignore\n return (TypeGuard.IsNot(left) ? Visit(UnwrapTNot(left), right) :\n TypeGuard.IsNot(right) ? Visit(left, UnwrapTNot(right)) :\n Throw('Invalid fallthrough for Not'));\n}\n// ------------------------------------------------------------------\n// Null\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromNull(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsNull(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Number\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromNumberRight(left, right) {\n return (TypeGuard.IsLiteralNumber(left) ? ExtendsResult.True :\n TypeGuard.IsNumber(left) || TypeGuard.IsInteger(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromNumber(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsInteger(right) || TypeGuard.IsNumber(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Object\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IsObjectPropertyCount(schema, count) {\n return Object.getOwnPropertyNames(schema.properties).length === count;\n}\n// prettier-ignore\nfunction IsObjectStringLike(schema) {\n return IsObjectArrayLike(schema);\n}\n// prettier-ignore\nfunction IsObjectSymbolLike(schema) {\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'description' in schema.properties && TypeGuard.IsUnion(schema.properties.description) && schema.properties.description.anyOf.length === 2 && ((TypeGuard.IsString(schema.properties.description.anyOf[0]) &&\n TypeGuard.IsUndefined(schema.properties.description.anyOf[1])) || (TypeGuard.IsString(schema.properties.description.anyOf[1]) &&\n TypeGuard.IsUndefined(schema.properties.description.anyOf[0]))));\n}\n// prettier-ignore\nfunction IsObjectNumberLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectBooleanLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectBigIntLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectDateLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectUint8ArrayLike(schema) {\n return IsObjectArrayLike(schema);\n}\n// prettier-ignore\nfunction IsObjectFunctionLike(schema) {\n const length = Number();\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === ExtendsResult.True);\n}\n// prettier-ignore\nfunction IsObjectConstructorLike(schema) {\n return IsObjectPropertyCount(schema, 0);\n}\n// prettier-ignore\nfunction IsObjectArrayLike(schema) {\n const length = Number();\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'length' in schema.properties && IntoBooleanResult(Visit(schema.properties['length'], length)) === ExtendsResult.True);\n}\n// prettier-ignore\nfunction IsObjectPromiseLike(schema) {\n const then = FunctionType([Any()], Any());\n return IsObjectPropertyCount(schema, 0) || (IsObjectPropertyCount(schema, 1) && 'then' in schema.properties && IntoBooleanResult(Visit(schema.properties['then'], then)) === ExtendsResult.True);\n}\n// ------------------------------------------------------------------\n// Property\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction Property(left, right) {\n return (Visit(left, right) === ExtendsResult.False ? ExtendsResult.False :\n TypeGuard.IsOptional(left) && !TypeGuard.IsOptional(right) ? ExtendsResult.False :\n ExtendsResult.True);\n}\n// prettier-ignore\nfunction FromObjectRight(left, right) {\n return (TypeGuard.IsUnknown(left) ? ExtendsResult.False :\n TypeGuard.IsAny(left) ? ExtendsResult.Union : (TypeGuard.IsNever(left) ||\n (TypeGuard.IsLiteralString(left) && IsObjectStringLike(right)) ||\n (TypeGuard.IsLiteralNumber(left) && IsObjectNumberLike(right)) ||\n (TypeGuard.IsLiteralBoolean(left) && IsObjectBooleanLike(right)) ||\n (TypeGuard.IsSymbol(left) && IsObjectSymbolLike(right)) ||\n (TypeGuard.IsBigInt(left) && IsObjectBigIntLike(right)) ||\n (TypeGuard.IsString(left) && IsObjectStringLike(right)) ||\n (TypeGuard.IsSymbol(left) && IsObjectSymbolLike(right)) ||\n (TypeGuard.IsNumber(left) && IsObjectNumberLike(right)) ||\n (TypeGuard.IsInteger(left) && IsObjectNumberLike(right)) ||\n (TypeGuard.IsBoolean(left) && IsObjectBooleanLike(right)) ||\n (TypeGuard.IsUint8Array(left) && IsObjectUint8ArrayLike(right)) ||\n (TypeGuard.IsDate(left) && IsObjectDateLike(right)) ||\n (TypeGuard.IsConstructor(left) && IsObjectConstructorLike(right)) ||\n (TypeGuard.IsFunction(left) && IsObjectFunctionLike(right))) ? ExtendsResult.True :\n (TypeGuard.IsRecord(left) && TypeGuard.IsString(RecordKey(left))) ? (() => {\n // When expressing a Record with literal key values, the Record is converted into a Object with\n // the Hint assigned as `Record`. This is used to invert the extends logic.\n return right[Hint] === 'Record' ? ExtendsResult.True : ExtendsResult.False;\n })() :\n (TypeGuard.IsRecord(left) && TypeGuard.IsNumber(RecordKey(left))) ? (() => {\n return IsObjectPropertyCount(right, 0) ? ExtendsResult.True : ExtendsResult.False;\n })() :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromObject(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n !TypeGuard.IsObject(right) ? ExtendsResult.False :\n (() => {\n for (const key of Object.getOwnPropertyNames(right.properties)) {\n if (!(key in left.properties) && !TypeGuard.IsOptional(right.properties[key])) {\n return ExtendsResult.False;\n }\n if (TypeGuard.IsOptional(right.properties[key])) {\n return ExtendsResult.True;\n }\n if (Property(left.properties[key], right.properties[key]) === ExtendsResult.False) {\n return ExtendsResult.False;\n }\n }\n return ExtendsResult.True;\n })());\n}\n// ------------------------------------------------------------------\n// Promise\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromPromise(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) && IsObjectPromiseLike(right) ? ExtendsResult.True :\n !TypeGuard.IsPromise(right) ? ExtendsResult.False :\n IntoBooleanResult(Visit(left.item, right.item)));\n}\n// ------------------------------------------------------------------\n// Record\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RecordKey(schema) {\n return (PatternNumberExact in schema.patternProperties ? Number() :\n PatternStringExact in schema.patternProperties ? String() :\n Throw('Unknown record key pattern'));\n}\n// prettier-ignore\nfunction RecordValue(schema) {\n return (PatternNumberExact in schema.patternProperties ? schema.patternProperties[PatternNumberExact] :\n PatternStringExact in schema.patternProperties ? schema.patternProperties[PatternStringExact] :\n Throw('Unable to get record value schema'));\n}\n// prettier-ignore\nfunction FromRecordRight(left, right) {\n const [Key, Value] = [RecordKey(right), RecordValue(right)];\n return ((TypeGuard.IsLiteralString(left) && TypeGuard.IsNumber(Key) && IntoBooleanResult(Visit(left, Value)) === ExtendsResult.True) ? ExtendsResult.True :\n TypeGuard.IsUint8Array(left) && TypeGuard.IsNumber(Key) ? Visit(left, Value) :\n TypeGuard.IsString(left) && TypeGuard.IsNumber(Key) ? Visit(left, Value) :\n TypeGuard.IsArray(left) && TypeGuard.IsNumber(Key) ? Visit(left, Value) :\n TypeGuard.IsObject(left) ? (() => {\n for (const key of Object.getOwnPropertyNames(left.properties)) {\n if (Property(Value, left.properties[key]) === ExtendsResult.False) {\n return ExtendsResult.False;\n }\n }\n return ExtendsResult.True;\n })() :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromRecord(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n !TypeGuard.IsRecord(right) ? ExtendsResult.False :\n Visit(RecordValue(left), RecordValue(right)));\n}\n// ------------------------------------------------------------------\n// RegExp\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromRegExp(left, right) {\n // Note: RegExp types evaluate as strings, not RegExp objects.\n // Here we remap either into string and continue evaluating.\n const L = TypeGuard.IsRegExp(left) ? String() : left;\n const R = TypeGuard.IsRegExp(right) ? String() : right;\n return Visit(L, R);\n}\n// ------------------------------------------------------------------\n// String\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromStringRight(left, right) {\n return (TypeGuard.IsLiteral(left) && ValueGuard.IsString(left.const) ? ExtendsResult.True :\n TypeGuard.IsString(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromString(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsString(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Symbol\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromSymbol(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsSymbol(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// TemplateLiteral\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromTemplateLiteral(left, right) {\n // TemplateLiteral types are resolved to either unions for finite expressions or string\n // for infinite expressions. Here we call to TemplateLiteralResolver to resolve for\n // either type and continue evaluating.\n return (TypeGuard.IsTemplateLiteral(left) ? Visit(TemplateLiteralToUnion(left), right) :\n TypeGuard.IsTemplateLiteral(right) ? Visit(left, TemplateLiteralToUnion(right)) :\n Throw('Invalid fallthrough for TemplateLiteral'));\n}\n// ------------------------------------------------------------------\n// Tuple\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction IsArrayOfTuple(left, right) {\n return (TypeGuard.IsArray(right) &&\n left.items !== undefined &&\n left.items.every((schema) => Visit(schema, right.items) === ExtendsResult.True));\n}\n// prettier-ignore\nfunction FromTupleRight(left, right) {\n return (TypeGuard.IsNever(left) ? ExtendsResult.True :\n TypeGuard.IsUnknown(left) ? ExtendsResult.False :\n TypeGuard.IsAny(left) ? ExtendsResult.Union :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromTuple(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) && IsObjectArrayLike(right) ? ExtendsResult.True :\n TypeGuard.IsArray(right) && IsArrayOfTuple(left, right) ? ExtendsResult.True :\n !TypeGuard.IsTuple(right) ? ExtendsResult.False :\n (ValueGuard.IsUndefined(left.items) && !ValueGuard.IsUndefined(right.items)) || (!ValueGuard.IsUndefined(left.items) && ValueGuard.IsUndefined(right.items)) ? ExtendsResult.False :\n (ValueGuard.IsUndefined(left.items) && !ValueGuard.IsUndefined(right.items)) ? ExtendsResult.True :\n left.items.every((schema, index) => Visit(schema, right.items[index]) === ExtendsResult.True) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Uint8Array\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromUint8Array(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsUint8Array(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Undefined\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromUndefined(left, right) {\n return (IsStructuralRight(right) ? StructuralRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsRecord(right) ? FromRecordRight(left, right) :\n TypeGuard.IsVoid(right) ? FromVoidRight(left, right) :\n TypeGuard.IsUndefined(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Union\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromUnionRight(left, right) {\n return right.anyOf.some((schema) => Visit(left, schema) === ExtendsResult.True)\n ? ExtendsResult.True\n : ExtendsResult.False;\n}\n// prettier-ignore\nfunction FromUnion(left, right) {\n return left.anyOf.every((schema) => Visit(schema, right) === ExtendsResult.True)\n ? ExtendsResult.True\n : ExtendsResult.False;\n}\n// ------------------------------------------------------------------\n// Unknown\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromUnknownRight(left, right) {\n return ExtendsResult.True;\n}\n// prettier-ignore\nfunction FromUnknown(left, right) {\n return (TypeGuard.IsNever(right) ? FromNeverRight(left, right) :\n TypeGuard.IsIntersect(right) ? FromIntersectRight(left, right) :\n TypeGuard.IsUnion(right) ? FromUnionRight(left, right) :\n TypeGuard.IsAny(right) ? FromAnyRight(left, right) :\n TypeGuard.IsString(right) ? FromStringRight(left, right) :\n TypeGuard.IsNumber(right) ? FromNumberRight(left, right) :\n TypeGuard.IsInteger(right) ? FromIntegerRight(left, right) :\n TypeGuard.IsBoolean(right) ? FromBooleanRight(left, right) :\n TypeGuard.IsArray(right) ? FromArrayRight(left, right) :\n TypeGuard.IsTuple(right) ? FromTupleRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsUnknown(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// ------------------------------------------------------------------\n// Void\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromVoidRight(left, right) {\n return (TypeGuard.IsUndefined(left) ? ExtendsResult.True :\n TypeGuard.IsUndefined(left) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction FromVoid(left, right) {\n return (TypeGuard.IsIntersect(right) ? FromIntersectRight(left, right) :\n TypeGuard.IsUnion(right) ? FromUnionRight(left, right) :\n TypeGuard.IsUnknown(right) ? FromUnknownRight(left, right) :\n TypeGuard.IsAny(right) ? FromAnyRight(left, right) :\n TypeGuard.IsObject(right) ? FromObjectRight(left, right) :\n TypeGuard.IsVoid(right) ? ExtendsResult.True :\n ExtendsResult.False);\n}\n// prettier-ignore\nfunction Visit(left, right) {\n return (\n // resolvable\n (TypeGuard.IsTemplateLiteral(left) || TypeGuard.IsTemplateLiteral(right)) ? FromTemplateLiteral(left, right) :\n (TypeGuard.IsRegExp(left) || TypeGuard.IsRegExp(right)) ? FromRegExp(left, right) :\n (TypeGuard.IsNot(left) || TypeGuard.IsNot(right)) ? FromNot(left, right) :\n // standard\n TypeGuard.IsAny(left) ? FromAny(left, right) :\n TypeGuard.IsArray(left) ? FromArray(left, right) :\n TypeGuard.IsBigInt(left) ? FromBigInt(left, right) :\n TypeGuard.IsBoolean(left) ? FromBoolean(left, right) :\n TypeGuard.IsAsyncIterator(left) ? FromAsyncIterator(left, right) :\n TypeGuard.IsConstructor(left) ? FromConstructor(left, right) :\n TypeGuard.IsDate(left) ? FromDate(left, right) :\n TypeGuard.IsFunction(left) ? FromFunction(left, right) :\n TypeGuard.IsInteger(left) ? FromInteger(left, right) :\n TypeGuard.IsIntersect(left) ? FromIntersect(left, right) :\n TypeGuard.IsIterator(left) ? FromIterator(left, right) :\n TypeGuard.IsLiteral(left) ? FromLiteral(left, right) :\n TypeGuard.IsNever(left) ? FromNever(left, right) :\n TypeGuard.IsNull(left) ? FromNull(left, right) :\n TypeGuard.IsNumber(left) ? FromNumber(left, right) :\n TypeGuard.IsObject(left) ? FromObject(left, right) :\n TypeGuard.IsRecord(left) ? FromRecord(left, right) :\n TypeGuard.IsString(left) ? FromString(left, right) :\n TypeGuard.IsSymbol(left) ? FromSymbol(left, right) :\n TypeGuard.IsTuple(left) ? FromTuple(left, right) :\n TypeGuard.IsPromise(left) ? FromPromise(left, right) :\n TypeGuard.IsUint8Array(left) ? FromUint8Array(left, right) :\n TypeGuard.IsUndefined(left) ? FromUndefined(left, right) :\n TypeGuard.IsUnion(left) ? FromUnion(left, right) :\n TypeGuard.IsUnknown(left) ? FromUnknown(left, right) :\n TypeGuard.IsVoid(left) ? FromVoid(left, right) :\n Throw(`Unknown left type operand '${left[Kind]}'`));\n}\nexport function ExtendsCheck(left, right) {\n return Visit(left, right);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Extends } from './extends.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(P, Right, True, False, options) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Extends(P[K2], Right, True, False, Clone(options));\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(Left, Right, True, False, options) {\n return FromProperties(Left.properties, Right, True, False, options);\n}\n// prettier-ignore\nexport function ExtendsFromMappedResult(Left, Right, True, False, options) {\n const P = FromMappedResult(Left, Right, True, False, options);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Union } from '../union/index.mjs';\nimport { ExtendsCheck, ExtendsResult } from './extends-check.mjs';\nimport { ExtendsFromMappedKey } from './extends-from-mapped-key.mjs';\nimport { ExtendsFromMappedResult } from './extends-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedKey, IsMappedResult } from '../guard/kind.mjs';\n// prettier-ignore\nfunction ExtendsResolve(left, right, trueType, falseType) {\n const R = ExtendsCheck(left, right);\n return (R === ExtendsResult.Union ? Union([trueType, falseType]) :\n R === ExtendsResult.True ? trueType :\n falseType);\n}\n/** `[Json]` Creates a Conditional type */\nexport function Extends(L, R, T, F, options) {\n // prettier-ignore\n return (IsMappedResult(L) ? ExtendsFromMappedResult(L, R, T, F, options) :\n IsMappedKey(L) ? CreateType(ExtendsFromMappedKey(L, R, T, F, options)) :\n CreateType(ExtendsResolve(L, R, T, F), options));\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Extends } from './extends.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromPropertyKey(K, U, L, R, options) {\n return {\n [K]: Extends(Literal(K), U, L, R, Clone(options))\n };\n}\n// prettier-ignore\nfunction FromPropertyKeys(K, U, L, R, options) {\n return K.reduce((Acc, LK) => {\n return { ...Acc, ...FromPropertyKey(LK, U, L, R, options) };\n }, {});\n}\n// prettier-ignore\nfunction FromMappedKey(K, U, L, R, options) {\n return FromPropertyKeys(K.keys, U, L, R, options);\n}\n// prettier-ignore\nexport function ExtendsFromMappedKey(T, U, L, R, options) {\n const P = FromMappedKey(T, U, L, R, options);\n return MappedResult(P);\n}\n","import { Kind } from '../symbols/index.mjs';\n/** Fast undefined check used for properties of type undefined */\nfunction Intersect(schema) {\n return schema.allOf.every((schema) => ExtendsUndefinedCheck(schema));\n}\nfunction Union(schema) {\n return schema.anyOf.some((schema) => ExtendsUndefinedCheck(schema));\n}\nfunction Not(schema) {\n return !ExtendsUndefinedCheck(schema.not);\n}\n/** Fast undefined check used for properties of type undefined */\n// prettier-ignore\nexport function ExtendsUndefinedCheck(schema) {\n return (schema[Kind] === 'Intersect' ? Intersect(schema) :\n schema[Kind] === 'Union' ? Union(schema) :\n schema[Kind] === 'Not' ? Not(schema) :\n schema[Kind] === 'Undefined' ? true :\n false);\n}\n","import { Exclude } from './exclude.mjs';\nimport { TemplateLiteralToUnion } from '../template-literal/index.mjs';\nexport function ExcludeFromTemplateLiteral(L, R) {\n return Exclude(TemplateLiteralToUnion(L), R);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { ExtendsCheck, ExtendsResult } from '../extends/index.mjs';\nimport { ExcludeFromMappedResult } from './exclude-from-mapped-result.mjs';\nimport { ExcludeFromTemplateLiteral } from './exclude-from-template-literal.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedResult, IsTemplateLiteral, IsUnion } from '../guard/kind.mjs';\nfunction ExcludeRest(L, R) {\n const excluded = L.filter((inner) => ExtendsCheck(inner, R) === ExtendsResult.False);\n return excluded.length === 1 ? excluded[0] : Union(excluded);\n}\n/** `[Json]` Constructs a type by excluding from unionType all union members that are assignable to excludedMembers */\nexport function Exclude(L, R, options = {}) {\n // overloads\n if (IsTemplateLiteral(L))\n return CreateType(ExcludeFromTemplateLiteral(L, R), options);\n if (IsMappedResult(L))\n return CreateType(ExcludeFromMappedResult(L, R), options);\n // prettier-ignore\n return CreateType(IsUnion(L) ? ExcludeRest(L.anyOf, R) :\n ExtendsCheck(L, R) !== ExtendsResult.False ? Never() : L, options);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Exclude } from './exclude.mjs';\n// prettier-ignore\nfunction FromProperties(P, U) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Exclude(P[K2], U);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, T) {\n return FromProperties(R.properties, T);\n}\n// prettier-ignore\nexport function ExcludeFromMappedResult(R, T) {\n const P = FromMappedResult(R, T);\n return MappedResult(P);\n}\n","import { Extract } from './extract.mjs';\nimport { TemplateLiteralToUnion } from '../template-literal/index.mjs';\nexport function ExtractFromTemplateLiteral(L, R) {\n return Extract(TemplateLiteralToUnion(L), R);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { ExtendsCheck, ExtendsResult } from '../extends/index.mjs';\nimport { ExtractFromMappedResult } from './extract-from-mapped-result.mjs';\nimport { ExtractFromTemplateLiteral } from './extract-from-template-literal.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedResult, IsTemplateLiteral, IsUnion } from '../guard/kind.mjs';\nfunction ExtractRest(L, R) {\n const extracted = L.filter((inner) => ExtendsCheck(inner, R) !== ExtendsResult.False);\n return extracted.length === 1 ? extracted[0] : Union(extracted);\n}\n/** `[Json]` Constructs a type by extracting from type all union members that are assignable to union */\nexport function Extract(L, R, options) {\n // overloads\n if (IsTemplateLiteral(L))\n return CreateType(ExtractFromTemplateLiteral(L, R), options);\n if (IsMappedResult(L))\n return CreateType(ExtractFromMappedResult(L, R), options);\n // prettier-ignore\n return CreateType(IsUnion(L) ? ExtractRest(L.anyOf, R) :\n ExtendsCheck(L, R) !== ExtendsResult.False ? L : Never(), options);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Extract } from './extract.mjs';\n// prettier-ignore\nfunction FromProperties(P, T) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Extract(P[K2], T);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, T) {\n return FromProperties(R.properties, T);\n}\n// prettier-ignore\nexport function ExtractFromMappedResult(R, T) {\n const P = FromMappedResult(R, T);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Never } from '../never/index.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n/** `[JavaScript]` Extracts the InstanceType from the given Constructor type */\nexport function InstanceType(schema, options) {\n return (KindGuard.IsConstructor(schema) ? CreateType(schema.returns, options) : Never(options));\n}\n","import { Readonly } from '../readonly/index.mjs';\nimport { Optional } from '../optional/index.mjs';\n/** `[Json]` Creates a Readonly and Optional property */\nexport function ReadonlyOptional(schema) {\n return Readonly(Optional(schema));\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind, Hint } from '../symbols/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { Number } from '../number/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { String } from '../string/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { IsTemplateLiteralFinite } from '../template-literal/index.mjs';\nimport { PatternStringExact, PatternNumberExact, PatternNeverExact } from '../patterns/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsUndefined } from '../guard/value.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsInteger, IsLiteral, IsAny, IsBoolean, IsNever, IsNumber, IsString, IsRegExp, IsTemplateLiteral, IsUnion } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// RecordCreateFromPattern\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RecordCreateFromPattern(pattern, T, options) {\n return CreateType({ [Kind]: 'Record', type: 'object', patternProperties: { [pattern]: T } }, options);\n}\n// ------------------------------------------------------------------\n// RecordCreateFromKeys\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RecordCreateFromKeys(K, T, options) {\n const result = {};\n for (const K2 of K)\n result[K2] = T;\n return Object(result, { ...options, [Hint]: 'Record' });\n}\n// prettier-ignore\nfunction FromTemplateLiteralKey(K, T, options) {\n return (IsTemplateLiteralFinite(K)\n ? RecordCreateFromKeys(IndexPropertyKeys(K), T, options)\n : RecordCreateFromPattern(K.pattern, T, options));\n}\n// prettier-ignore\nfunction FromUnionKey(key, type, options) {\n return RecordCreateFromKeys(IndexPropertyKeys(Union(key)), type, options);\n}\n// prettier-ignore\nfunction FromLiteralKey(key, type, options) {\n return RecordCreateFromKeys([key.toString()], type, options);\n}\n// prettier-ignore\nfunction FromRegExpKey(key, type, options) {\n return RecordCreateFromPattern(key.source, type, options);\n}\n// prettier-ignore\nfunction FromStringKey(key, type, options) {\n const pattern = IsUndefined(key.pattern) ? PatternStringExact : key.pattern;\n return RecordCreateFromPattern(pattern, type, options);\n}\n// prettier-ignore\nfunction FromAnyKey(_, type, options) {\n return RecordCreateFromPattern(PatternStringExact, type, options);\n}\n// prettier-ignore\nfunction FromNeverKey(_key, type, options) {\n return RecordCreateFromPattern(PatternNeverExact, type, options);\n}\n// prettier-ignore\nfunction FromBooleanKey(_key, type, options) {\n return Object({ true: type, false: type }, options);\n}\n// prettier-ignore\nfunction FromIntegerKey(_key, type, options) {\n return RecordCreateFromPattern(PatternNumberExact, type, options);\n}\n// prettier-ignore\nfunction FromNumberKey(_, type, options) {\n return RecordCreateFromPattern(PatternNumberExact, type, options);\n}\n// ------------------------------------------------------------------\n// TRecordOrObject\n// ------------------------------------------------------------------\n/** `[Json]` Creates a Record type */\nexport function Record(key, type, options = {}) {\n // prettier-ignore\n return (IsUnion(key) ? FromUnionKey(key.anyOf, type, options) :\n IsTemplateLiteral(key) ? FromTemplateLiteralKey(key, type, options) :\n IsLiteral(key) ? FromLiteralKey(key.const, type, options) :\n IsBoolean(key) ? FromBooleanKey(key, type, options) :\n IsInteger(key) ? FromIntegerKey(key, type, options) :\n IsNumber(key) ? FromNumberKey(key, type, options) :\n IsRegExp(key) ? FromRegExpKey(key, type, options) :\n IsString(key) ? FromStringKey(key, type, options) :\n IsAny(key) ? FromAnyKey(key, type, options) :\n IsNever(key) ? FromNeverKey(key, type, options) :\n Never(options));\n}\n// ------------------------------------------------------------------\n// Record Utilities\n// ------------------------------------------------------------------\n/** Gets the Records Pattern */\nexport function RecordPattern(record) {\n return globalThis.Object.getOwnPropertyNames(record.patternProperties)[0];\n}\n/** Gets the Records Key Type */\n// prettier-ignore\nexport function RecordKey(type) {\n const pattern = RecordPattern(type);\n return (pattern === PatternStringExact ? String() :\n pattern === PatternNumberExact ? Number() :\n String({ pattern }));\n}\n/** Gets a Record Value Type */\n// prettier-ignore\nexport function RecordValue(type) {\n return type.patternProperties[RecordPattern(type)];\n}\n","import { CloneType } from '../clone/type.mjs';\nimport { Unknown } from '../unknown/index.mjs';\nimport { ReadonlyOptional } from '../readonly-optional/index.mjs';\nimport { Readonly } from '../readonly/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Record, RecordKey, RecordValue } from '../record/index.mjs';\nimport * as ValueGuard from '../guard/value.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromConstructor(args, type) {\n type.parameters = FromTypes(args, type.parameters);\n type.returns = FromType(args, type.returns);\n return type;\n}\n// prettier-ignore\nfunction FromFunction(args, type) {\n type.parameters = FromTypes(args, type.parameters);\n type.returns = FromType(args, type.returns);\n return type;\n}\n// prettier-ignore\nfunction FromIntersect(args, type) {\n type.allOf = FromTypes(args, type.allOf);\n return type;\n}\n// prettier-ignore\nfunction FromUnion(args, type) {\n type.anyOf = FromTypes(args, type.anyOf);\n return type;\n}\n// prettier-ignore\nfunction FromTuple(args, type) {\n if (ValueGuard.IsUndefined(type.items))\n return type;\n type.items = FromTypes(args, type.items);\n return type;\n}\n// prettier-ignore\nfunction FromArray(args, type) {\n type.items = FromType(args, type.items);\n return type;\n}\n// prettier-ignore\nfunction FromAsyncIterator(args, type) {\n type.items = FromType(args, type.items);\n return type;\n}\n// prettier-ignore\nfunction FromIterator(args, type) {\n type.items = FromType(args, type.items);\n return type;\n}\n// prettier-ignore\nfunction FromPromise(args, type) {\n type.item = FromType(args, type.item);\n return type;\n}\n// prettier-ignore\nfunction FromObject(args, type) {\n const mappedProperties = FromProperties(args, type.properties);\n return { ...type, ...Object(mappedProperties) }; // retain options\n}\n// prettier-ignore\nfunction FromRecord(args, type) {\n const mappedKey = FromType(args, RecordKey(type));\n const mappedValue = FromType(args, RecordValue(type));\n const result = Record(mappedKey, mappedValue);\n return { ...type, ...result }; // retain options\n}\n// prettier-ignore\nfunction FromArgument(args, argument) {\n return argument.index in args ? args[argument.index] : Unknown();\n}\n// prettier-ignore\nfunction FromProperty(args, type) {\n const isReadonly = KindGuard.IsReadonly(type);\n const isOptional = KindGuard.IsOptional(type);\n const mapped = FromType(args, type);\n return (isReadonly && isOptional ? ReadonlyOptional(mapped) :\n isReadonly && !isOptional ? Readonly(mapped) :\n !isReadonly && isOptional ? Optional(mapped) :\n mapped);\n}\n// prettier-ignore\nfunction FromProperties(args, properties) {\n return globalThis.Object.getOwnPropertyNames(properties).reduce((result, key) => {\n return { ...result, [key]: FromProperty(args, properties[key]) };\n }, {});\n}\n// prettier-ignore\nexport function FromTypes(args, types) {\n return types.map(type => FromType(args, type));\n}\n// prettier-ignore\nfunction FromType(args, type) {\n return (KindGuard.IsConstructor(type) ? FromConstructor(args, type) :\n KindGuard.IsFunction(type) ? FromFunction(args, type) :\n KindGuard.IsIntersect(type) ? FromIntersect(args, type) :\n KindGuard.IsUnion(type) ? FromUnion(args, type) :\n KindGuard.IsTuple(type) ? FromTuple(args, type) :\n KindGuard.IsArray(type) ? FromArray(args, type) :\n KindGuard.IsAsyncIterator(type) ? FromAsyncIterator(args, type) :\n KindGuard.IsIterator(type) ? FromIterator(args, type) :\n KindGuard.IsPromise(type) ? FromPromise(args, type) :\n KindGuard.IsObject(type) ? FromObject(args, type) :\n KindGuard.IsRecord(type) ? FromRecord(args, type) :\n KindGuard.IsArgument(type) ? FromArgument(args, type) :\n type);\n}\n/** `[JavaScript]` Instantiates a type with the given parameters */\n// prettier-ignore\nexport function Instantiate(type, args) {\n return FromType(args, CloneType(type));\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates an Integer type */\nexport function Integer(options) {\n return CreateType({ [Kind]: 'Integer', type: 'integer' }, options);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Intrinsic } from './intrinsic.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction MappedIntrinsicPropertyKey(K, M, options) {\n return {\n [K]: Intrinsic(Literal(K), M, Clone(options))\n };\n}\n// prettier-ignore\nfunction MappedIntrinsicPropertyKeys(K, M, options) {\n const result = K.reduce((Acc, L) => {\n return { ...Acc, ...MappedIntrinsicPropertyKey(L, M, options) };\n }, {});\n return result;\n}\n// prettier-ignore\nfunction MappedIntrinsicProperties(T, M, options) {\n return MappedIntrinsicPropertyKeys(T['keys'], M, options);\n}\n// prettier-ignore\nexport function IntrinsicFromMappedKey(T, M, options) {\n const P = MappedIntrinsicProperties(T, M, options);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { TemplateLiteral, TemplateLiteralParseExact, IsTemplateLiteralExpressionFinite, TemplateLiteralExpressionGenerate } from '../template-literal/index.mjs';\nimport { IntrinsicFromMappedKey } from './intrinsic-from-mapped-key.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Union } from '../union/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedKey, IsTemplateLiteral, IsUnion, IsLiteral } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// Apply\n// ------------------------------------------------------------------\nfunction ApplyUncapitalize(value) {\n const [first, rest] = [value.slice(0, 1), value.slice(1)];\n return [first.toLowerCase(), rest].join('');\n}\nfunction ApplyCapitalize(value) {\n const [first, rest] = [value.slice(0, 1), value.slice(1)];\n return [first.toUpperCase(), rest].join('');\n}\nfunction ApplyUppercase(value) {\n return value.toUpperCase();\n}\nfunction ApplyLowercase(value) {\n return value.toLowerCase();\n}\nfunction FromTemplateLiteral(schema, mode, options) {\n // note: template literals require special runtime handling as they are encoded in string patterns.\n // This diverges from the mapped type which would otherwise map on the template literal kind.\n const expression = TemplateLiteralParseExact(schema.pattern);\n const finite = IsTemplateLiteralExpressionFinite(expression);\n if (!finite)\n return { ...schema, pattern: FromLiteralValue(schema.pattern, mode) };\n const strings = [...TemplateLiteralExpressionGenerate(expression)];\n const literals = strings.map((value) => Literal(value));\n const mapped = FromRest(literals, mode);\n const union = Union(mapped);\n return TemplateLiteral([union], options);\n}\n// prettier-ignore\nfunction FromLiteralValue(value, mode) {\n return (typeof value === 'string' ? (mode === 'Uncapitalize' ? ApplyUncapitalize(value) :\n mode === 'Capitalize' ? ApplyCapitalize(value) :\n mode === 'Uppercase' ? ApplyUppercase(value) :\n mode === 'Lowercase' ? ApplyLowercase(value) :\n value) : value.toString());\n}\n// prettier-ignore\nfunction FromRest(T, M) {\n return T.map(L => Intrinsic(L, M));\n}\n/** Applies an intrinsic string manipulation to the given type. */\nexport function Intrinsic(schema, mode, options = {}) {\n // prettier-ignore\n return (\n // Intrinsic-Mapped-Inference\n IsMappedKey(schema) ? IntrinsicFromMappedKey(schema, mode, options) :\n // Standard-Inference\n IsTemplateLiteral(schema) ? FromTemplateLiteral(schema, mode, options) :\n IsUnion(schema) ? Union(FromRest(schema.anyOf, mode), options) :\n IsLiteral(schema) ? Literal(FromLiteralValue(schema.const, mode), options) :\n // Default Type\n CreateType(schema, options));\n}\n","import { Intrinsic } from './intrinsic.mjs';\n/** `[Json]` Intrinsic function to Capitalize LiteralString types */\nexport function Capitalize(T, options = {}) {\n return Intrinsic(T, 'Capitalize', options);\n}\n","import { Intrinsic } from './intrinsic.mjs';\n/** `[Json]` Intrinsic function to Lowercase LiteralString types */\nexport function Lowercase(T, options = {}) {\n return Intrinsic(T, 'Lowercase', options);\n}\n","import { Intrinsic } from './intrinsic.mjs';\n/** `[Json]` Intrinsic function to Uncapitalize LiteralString types */\nexport function Uncapitalize(T, options = {}) {\n return Intrinsic(T, 'Uncapitalize', options);\n}\n","import { Intrinsic } from './intrinsic.mjs';\n/** `[Json]` Intrinsic function to Uppercase LiteralString types */\nexport function Uppercase(T, options = {}) {\n return Intrinsic(T, 'Uppercase', options);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Omit } from './omit.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(properties, propertyKeys, options) {\n const result = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(properties))\n result[K2] = Omit(properties[K2], propertyKeys, Clone(options));\n return result;\n}\n// prettier-ignore\nfunction FromMappedResult(mappedResult, propertyKeys, options) {\n return FromProperties(mappedResult.properties, propertyKeys, options);\n}\n// prettier-ignore\nexport function OmitFromMappedResult(mappedResult, propertyKeys, options) {\n const properties = FromMappedResult(mappedResult, propertyKeys, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Discard } from '../discard/discard.mjs';\nimport { TransformKind } from '../symbols/symbols.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Object } from '../object/index.mjs';\n// ------------------------------------------------------------------\n// Mapped\n// ------------------------------------------------------------------\nimport { OmitFromMappedKey } from './omit-from-mapped-key.mjs';\nimport { OmitFromMappedResult } from './omit-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsMappedKey, IsIntersect, IsUnion, IsObject, IsSchema, IsMappedResult, IsLiteralValue, IsRef } from '../guard/kind.mjs';\nimport { IsArray as IsArrayValue } from '../guard/value.mjs';\n// prettier-ignore\nfunction FromIntersect(types, propertyKeys) {\n return types.map((type) => OmitResolve(type, propertyKeys));\n}\n// prettier-ignore\nfunction FromUnion(types, propertyKeys) {\n return types.map((type) => OmitResolve(type, propertyKeys));\n}\n// ------------------------------------------------------------------\n// FromProperty\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction FromProperty(properties, key) {\n const { [key]: _, ...R } = properties;\n return R;\n}\n// prettier-ignore\nfunction FromProperties(properties, propertyKeys) {\n return propertyKeys.reduce((T, K2) => FromProperty(T, K2), properties);\n}\n// prettier-ignore\nfunction FromObject(properties, propertyKeys) {\n const options = Discard(properties, [TransformKind, '$id', 'required', 'properties']);\n const omittedProperties = FromProperties(properties['properties'], propertyKeys);\n return Object(omittedProperties, options);\n}\n// prettier-ignore\nfunction UnionFromPropertyKeys(propertyKeys) {\n const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []);\n return Union(result);\n}\n// prettier-ignore\nfunction OmitResolve(properties, propertyKeys) {\n return (IsIntersect(properties) ? Intersect(FromIntersect(properties.allOf, propertyKeys)) :\n IsUnion(properties) ? Union(FromUnion(properties.anyOf, propertyKeys)) :\n IsObject(properties) ? FromObject(properties, propertyKeys) :\n Object({}));\n}\n/** `[Json]` Constructs a type whose keys are picked from the given type */\n// prettier-ignore\nexport function Omit(type, key, options) {\n const typeKey = IsArrayValue(key) ? UnionFromPropertyKeys(key) : key;\n const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key;\n const isTypeRef = IsRef(type);\n const isKeyRef = IsRef(key);\n return (IsMappedResult(type) ? OmitFromMappedResult(type, propertyKeys, options) :\n IsMappedKey(key) ? OmitFromMappedKey(type, key, options) :\n (isTypeRef && isKeyRef) ? Computed('Omit', [type, typeKey], options) :\n (!isTypeRef && isKeyRef) ? Computed('Omit', [type, typeKey], options) :\n (isTypeRef && !isKeyRef) ? Computed('Omit', [type, typeKey], options) :\n CreateType({ ...OmitResolve(type, propertyKeys), ...options }));\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Omit } from './omit.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromPropertyKey(type, key, options) {\n return { [key]: Omit(type, [key], Clone(options)) };\n}\n// prettier-ignore\nfunction FromPropertyKeys(type, propertyKeys, options) {\n return propertyKeys.reduce((Acc, LK) => {\n return { ...Acc, ...FromPropertyKey(type, LK, options) };\n }, {});\n}\n// prettier-ignore\nfunction FromMappedKey(type, mappedKey, options) {\n return FromPropertyKeys(type, mappedKey.keys, options);\n}\n// prettier-ignore\nexport function OmitFromMappedKey(type, mappedKey, options) {\n const properties = FromMappedKey(type, mappedKey, options);\n return MappedResult(properties);\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Pick } from './pick.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(properties, propertyKeys, options) {\n const result = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(properties))\n result[K2] = Pick(properties[K2], propertyKeys, Clone(options));\n return result;\n}\n// prettier-ignore\nfunction FromMappedResult(mappedResult, propertyKeys, options) {\n return FromProperties(mappedResult.properties, propertyKeys, options);\n}\n// prettier-ignore\nexport function PickFromMappedResult(mappedResult, propertyKeys, options) {\n const properties = FromMappedResult(mappedResult, propertyKeys, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Discard } from '../discard/discard.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Literal } from '../literal/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { IndexPropertyKeys } from '../indexed/index.mjs';\nimport { TransformKind } from '../symbols/symbols.mjs';\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\nimport { IsMappedKey, IsMappedResult, IsIntersect, IsUnion, IsObject, IsSchema, IsLiteralValue, IsRef } from '../guard/kind.mjs';\nimport { IsArray as IsArrayValue } from '../guard/value.mjs';\n// ------------------------------------------------------------------\n// Infrastructure\n// ------------------------------------------------------------------\nimport { PickFromMappedKey } from './pick-from-mapped-key.mjs';\nimport { PickFromMappedResult } from './pick-from-mapped-result.mjs';\nfunction FromIntersect(types, propertyKeys) {\n return types.map((type) => PickResolve(type, propertyKeys));\n}\n// prettier-ignore\nfunction FromUnion(types, propertyKeys) {\n return types.map((type) => PickResolve(type, propertyKeys));\n}\n// prettier-ignore\nfunction FromProperties(properties, propertyKeys) {\n const result = {};\n for (const K2 of propertyKeys)\n if (K2 in properties)\n result[K2] = properties[K2];\n return result;\n}\n// prettier-ignore\nfunction FromObject(T, K) {\n const options = Discard(T, [TransformKind, '$id', 'required', 'properties']);\n const properties = FromProperties(T['properties'], K);\n return Object(properties, options);\n}\n// prettier-ignore\nfunction UnionFromPropertyKeys(propertyKeys) {\n const result = propertyKeys.reduce((result, key) => IsLiteralValue(key) ? [...result, Literal(key)] : result, []);\n return Union(result);\n}\n// prettier-ignore\nfunction PickResolve(properties, propertyKeys) {\n return (IsIntersect(properties) ? Intersect(FromIntersect(properties.allOf, propertyKeys)) :\n IsUnion(properties) ? Union(FromUnion(properties.anyOf, propertyKeys)) :\n IsObject(properties) ? FromObject(properties, propertyKeys) :\n Object({}));\n}\n/** `[Json]` Constructs a type whose keys are picked from the given type */\n// prettier-ignore\nexport function Pick(type, key, options) {\n const typeKey = IsArrayValue(key) ? UnionFromPropertyKeys(key) : key;\n const propertyKeys = IsSchema(key) ? IndexPropertyKeys(key) : key;\n const isTypeRef = IsRef(type);\n const isKeyRef = IsRef(key);\n return (IsMappedResult(type) ? PickFromMappedResult(type, propertyKeys, options) :\n IsMappedKey(key) ? PickFromMappedKey(type, key, options) :\n (isTypeRef && isKeyRef) ? Computed('Pick', [type, typeKey], options) :\n (!isTypeRef && isKeyRef) ? Computed('Pick', [type, typeKey], options) :\n (isTypeRef && !isKeyRef) ? Computed('Pick', [type, typeKey], options) :\n CreateType({ ...PickResolve(type, propertyKeys), ...options }));\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Pick } from './pick.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromPropertyKey(type, key, options) {\n return {\n [key]: Pick(type, [key], Clone(options))\n };\n}\n// prettier-ignore\nfunction FromPropertyKeys(type, propertyKeys, options) {\n return propertyKeys.reduce((result, leftKey) => {\n return { ...result, ...FromPropertyKey(type, leftKey, options) };\n }, {});\n}\n// prettier-ignore\nfunction FromMappedKey(type, mappedKey, options) {\n return FromPropertyKeys(type, mappedKey.keys, options);\n}\n// prettier-ignore\nexport function PickFromMappedKey(type, mappedKey, options) {\n const properties = FromMappedKey(type, mappedKey, options);\n return MappedResult(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Optional } from '../optional/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Ref } from '../ref/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { TransformKind } from '../symbols/index.mjs';\nimport { PartialFromMappedResult } from './partial-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport * as KindGuard from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromComputed(target, parameters) {\n return Computed('Partial', [Computed(target, parameters)]);\n}\n// prettier-ignore\nfunction FromRef($ref) {\n return Computed('Partial', [Ref($ref)]);\n}\n// prettier-ignore\nfunction FromProperties(properties) {\n const partialProperties = {};\n for (const K of globalThis.Object.getOwnPropertyNames(properties))\n partialProperties[K] = Optional(properties[K]);\n return partialProperties;\n}\n// prettier-ignore\nfunction FromObject(type) {\n const options = Discard(type, [TransformKind, '$id', 'required', 'properties']);\n const properties = FromProperties(type['properties']);\n return Object(properties, options);\n}\n// prettier-ignore\nfunction FromRest(types) {\n return types.map(type => PartialResolve(type));\n}\n// ------------------------------------------------------------------\n// PartialResolve\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction PartialResolve(type) {\n return (\n // Mappable\n KindGuard.IsComputed(type) ? FromComputed(type.target, type.parameters) :\n KindGuard.IsRef(type) ? FromRef(type.$ref) :\n KindGuard.IsIntersect(type) ? Intersect(FromRest(type.allOf)) :\n KindGuard.IsUnion(type) ? Union(FromRest(type.anyOf)) :\n KindGuard.IsObject(type) ? FromObject(type) :\n // Intrinsic\n KindGuard.IsBigInt(type) ? type :\n KindGuard.IsBoolean(type) ? type :\n KindGuard.IsInteger(type) ? type :\n KindGuard.IsLiteral(type) ? type :\n KindGuard.IsNull(type) ? type :\n KindGuard.IsNumber(type) ? type :\n KindGuard.IsString(type) ? type :\n KindGuard.IsSymbol(type) ? type :\n KindGuard.IsUndefined(type) ? type :\n // Passthrough\n Object({}));\n}\n/** `[Json]` Constructs a type where all properties are optional */\nexport function Partial(type, options) {\n if (KindGuard.IsMappedResult(type)) {\n return PartialFromMappedResult(type, options);\n }\n else {\n // special: mapping types require overridable options\n return CreateType({ ...PartialResolve(type), ...options });\n }\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Partial } from './partial.mjs';\nimport { Clone } from '../clone/value.mjs';\n// prettier-ignore\nfunction FromProperties(K, options) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(K))\n Acc[K2] = Partial(K[K2], Clone(options));\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, options) {\n return FromProperties(R.properties, options);\n}\n// prettier-ignore\nexport function PartialFromMappedResult(R, options) {\n const P = FromMappedResult(R, options);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Computed } from '../computed/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Union } from '../union/index.mjs';\nimport { Ref } from '../ref/index.mjs';\nimport { OptionalKind, TransformKind } from '../symbols/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { RequiredFromMappedResult } from './required-from-mapped-result.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport * as KindGuard from '../guard/kind.mjs';\n// prettier-ignore\nfunction FromComputed(target, parameters) {\n return Computed('Required', [Computed(target, parameters)]);\n}\n// prettier-ignore\nfunction FromRef($ref) {\n return Computed('Required', [Ref($ref)]);\n}\n// prettier-ignore\nfunction FromProperties(properties) {\n const requiredProperties = {};\n for (const K of globalThis.Object.getOwnPropertyNames(properties))\n requiredProperties[K] = Discard(properties[K], [OptionalKind]);\n return requiredProperties;\n}\n// prettier-ignore\nfunction FromObject(type) {\n const options = Discard(type, [TransformKind, '$id', 'required', 'properties']);\n const properties = FromProperties(type['properties']);\n return Object(properties, options);\n}\n// prettier-ignore\nfunction FromRest(types) {\n return types.map(type => RequiredResolve(type));\n}\n// ------------------------------------------------------------------\n// RequiredResolve\n// ------------------------------------------------------------------\n// prettier-ignore\nfunction RequiredResolve(type) {\n return (\n // Mappable\n KindGuard.IsComputed(type) ? FromComputed(type.target, type.parameters) :\n KindGuard.IsRef(type) ? FromRef(type.$ref) :\n KindGuard.IsIntersect(type) ? Intersect(FromRest(type.allOf)) :\n KindGuard.IsUnion(type) ? Union(FromRest(type.anyOf)) :\n KindGuard.IsObject(type) ? FromObject(type) :\n // Intrinsic\n KindGuard.IsBigInt(type) ? type :\n KindGuard.IsBoolean(type) ? type :\n KindGuard.IsInteger(type) ? type :\n KindGuard.IsLiteral(type) ? type :\n KindGuard.IsNull(type) ? type :\n KindGuard.IsNumber(type) ? type :\n KindGuard.IsString(type) ? type :\n KindGuard.IsSymbol(type) ? type :\n KindGuard.IsUndefined(type) ? type :\n // Passthrough\n Object({}));\n}\n/** `[Json]` Constructs a type where all properties are required */\nexport function Required(type, options) {\n if (KindGuard.IsMappedResult(type)) {\n return RequiredFromMappedResult(type, options);\n }\n else {\n // special: mapping types require overridable options\n return CreateType({ ...RequiredResolve(type), ...options });\n }\n}\n","import { MappedResult } from '../mapped/index.mjs';\nimport { Required } from './required.mjs';\n// prettier-ignore\nfunction FromProperties(P, options) {\n const Acc = {};\n for (const K2 of globalThis.Object.getOwnPropertyNames(P))\n Acc[K2] = Required(P[K2], options);\n return Acc;\n}\n// prettier-ignore\nfunction FromMappedResult(R, options) {\n return FromProperties(R.properties, options);\n}\n// prettier-ignore\nexport function RequiredFromMappedResult(R, options) {\n const P = FromMappedResult(R, options);\n return MappedResult(P);\n}\n","import { CreateType } from '../create/index.mjs';\nimport { CloneType } from '../clone/index.mjs';\nimport { Discard } from '../discard/index.mjs';\nimport { Array } from '../array/index.mjs';\nimport { Awaited } from '../awaited/index.mjs';\nimport { AsyncIterator } from '../async-iterator/index.mjs';\nimport { Constructor } from '../constructor/index.mjs';\nimport { Index } from '../indexed/index.mjs';\nimport { Function as FunctionType } from '../function/index.mjs';\nimport { Intersect } from '../intersect/index.mjs';\nimport { Iterator } from '../iterator/index.mjs';\nimport { KeyOf } from '../keyof/index.mjs';\nimport { Object } from '../object/index.mjs';\nimport { Omit } from '../omit/index.mjs';\nimport { Pick } from '../pick/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport { Partial } from '../partial/index.mjs';\nimport { RecordValue, RecordPattern } from '../record/index.mjs';\nimport { Required } from '../required/index.mjs';\nimport { Tuple } from '../tuple/index.mjs';\nimport { Union } from '../union/index.mjs';\n// ------------------------------------------------------------------\n// Symbols\n// ------------------------------------------------------------------\nimport { TransformKind, OptionalKind, ReadonlyKind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport * as KindGuard from '../guard/kind.mjs';\n// prettier-ignore\nfunction DereferenceParameters(moduleProperties, types) {\n return types.map((type) => {\n return KindGuard.IsRef(type)\n ? Dereference(moduleProperties, type.$ref)\n : FromType(moduleProperties, type);\n });\n}\n// prettier-ignore\nfunction Dereference(moduleProperties, ref) {\n return (ref in moduleProperties\n ? KindGuard.IsRef(moduleProperties[ref])\n ? Dereference(moduleProperties, moduleProperties[ref].$ref)\n : FromType(moduleProperties, moduleProperties[ref])\n : Never());\n}\n// prettier-ignore\nfunction FromAwaited(parameters) {\n return Awaited(parameters[0]);\n}\n// prettier-ignore\nfunction FromIndex(parameters) {\n return Index(parameters[0], parameters[1]);\n}\n// prettier-ignore\nfunction FromKeyOf(parameters) {\n return KeyOf(parameters[0]);\n}\n// prettier-ignore\nfunction FromPartial(parameters) {\n return Partial(parameters[0]);\n}\n// prettier-ignore\nfunction FromOmit(parameters) {\n return Omit(parameters[0], parameters[1]);\n}\n// prettier-ignore\nfunction FromPick(parameters) {\n return Pick(parameters[0], parameters[1]);\n}\n// prettier-ignore\nfunction FromRequired(parameters) {\n return Required(parameters[0]);\n}\n// prettier-ignore\nfunction FromComputed(moduleProperties, target, parameters) {\n const dereferenced = DereferenceParameters(moduleProperties, parameters);\n return (target === 'Awaited' ? FromAwaited(dereferenced) :\n target === 'Index' ? FromIndex(dereferenced) :\n target === 'KeyOf' ? FromKeyOf(dereferenced) :\n target === 'Partial' ? FromPartial(dereferenced) :\n target === 'Omit' ? FromOmit(dereferenced) :\n target === 'Pick' ? FromPick(dereferenced) :\n target === 'Required' ? FromRequired(dereferenced) :\n Never());\n}\nfunction FromArray(moduleProperties, type) {\n return Array(FromType(moduleProperties, type));\n}\nfunction FromAsyncIterator(moduleProperties, type) {\n return AsyncIterator(FromType(moduleProperties, type));\n}\n// prettier-ignore\nfunction FromConstructor(moduleProperties, parameters, instanceType) {\n return Constructor(FromTypes(moduleProperties, parameters), FromType(moduleProperties, instanceType));\n}\n// prettier-ignore\nfunction FromFunction(moduleProperties, parameters, returnType) {\n return FunctionType(FromTypes(moduleProperties, parameters), FromType(moduleProperties, returnType));\n}\nfunction FromIntersect(moduleProperties, types) {\n return Intersect(FromTypes(moduleProperties, types));\n}\nfunction FromIterator(moduleProperties, type) {\n return Iterator(FromType(moduleProperties, type));\n}\nfunction FromObject(moduleProperties, properties) {\n return Object(globalThis.Object.keys(properties).reduce((result, key) => {\n return { ...result, [key]: FromType(moduleProperties, properties[key]) };\n }, {}));\n}\n// prettier-ignore\nfunction FromRecord(moduleProperties, type) {\n const [value, pattern] = [FromType(moduleProperties, RecordValue(type)), RecordPattern(type)];\n const result = CloneType(type);\n result.patternProperties[pattern] = value;\n return result;\n}\n// prettier-ignore\nfunction FromTransform(moduleProperties, transform) {\n return (KindGuard.IsRef(transform))\n ? { ...Dereference(moduleProperties, transform.$ref), [TransformKind]: transform[TransformKind] }\n : transform;\n}\nfunction FromTuple(moduleProperties, types) {\n return Tuple(FromTypes(moduleProperties, types));\n}\nfunction FromUnion(moduleProperties, types) {\n return Union(FromTypes(moduleProperties, types));\n}\nfunction FromTypes(moduleProperties, types) {\n return types.map((type) => FromType(moduleProperties, type));\n}\n// prettier-ignore\nexport function FromType(moduleProperties, type) {\n return (\n // Modifiers\n KindGuard.IsOptional(type) ? CreateType(FromType(moduleProperties, Discard(type, [OptionalKind])), type) :\n KindGuard.IsReadonly(type) ? CreateType(FromType(moduleProperties, Discard(type, [ReadonlyKind])), type) :\n // Transform\n KindGuard.IsTransform(type) ? CreateType(FromTransform(moduleProperties, type), type) :\n // Types\n KindGuard.IsArray(type) ? CreateType(FromArray(moduleProperties, type.items), type) :\n KindGuard.IsAsyncIterator(type) ? CreateType(FromAsyncIterator(moduleProperties, type.items), type) :\n KindGuard.IsComputed(type) ? CreateType(FromComputed(moduleProperties, type.target, type.parameters)) :\n KindGuard.IsConstructor(type) ? CreateType(FromConstructor(moduleProperties, type.parameters, type.returns), type) :\n KindGuard.IsFunction(type) ? CreateType(FromFunction(moduleProperties, type.parameters, type.returns), type) :\n KindGuard.IsIntersect(type) ? CreateType(FromIntersect(moduleProperties, type.allOf), type) :\n KindGuard.IsIterator(type) ? CreateType(FromIterator(moduleProperties, type.items), type) :\n KindGuard.IsObject(type) ? CreateType(FromObject(moduleProperties, type.properties), type) :\n KindGuard.IsRecord(type) ? CreateType(FromRecord(moduleProperties, type)) :\n KindGuard.IsTuple(type) ? CreateType(FromTuple(moduleProperties, type.items || []), type) :\n KindGuard.IsUnion(type) ? CreateType(FromUnion(moduleProperties, type.anyOf), type) :\n type);\n}\n// prettier-ignore\nexport function ComputeType(moduleProperties, key) {\n return (key in moduleProperties\n ? FromType(moduleProperties, moduleProperties[key])\n : Never());\n}\n// prettier-ignore\nexport function ComputeModuleProperties(moduleProperties) {\n return globalThis.Object.getOwnPropertyNames(moduleProperties).reduce((result, key) => {\n return { ...result, [key]: ComputeType(moduleProperties, key) };\n }, {});\n}\n","import { CreateType } from '../create/index.mjs';\nimport { Kind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// Module Infrastructure Types\n// ------------------------------------------------------------------\nimport { ComputeModuleProperties } from './compute.mjs';\n// ------------------------------------------------------------------\n// Module\n// ------------------------------------------------------------------\n// prettier-ignore\nexport class TModule {\n constructor($defs) {\n const computed = ComputeModuleProperties($defs);\n const identified = this.WithIdentifiers(computed);\n this.$defs = identified;\n }\n /** `[Json]` Imports a Type by Key. */\n Import(key, options) {\n const $defs = { ...this.$defs, [key]: CreateType(this.$defs[key], options) };\n return CreateType({ [Kind]: 'Import', $defs, $ref: key });\n }\n // prettier-ignore\n WithIdentifiers($defs) {\n return globalThis.Object.getOwnPropertyNames($defs).reduce((result, key) => {\n return { ...result, [key]: { ...$defs[key], $id: key } };\n }, {});\n }\n}\n/** `[Json]` Creates a Type Definition Module. */\nexport function Module(properties) {\n return new TModule(properties);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Not type */\nexport function Not(type, options) {\n return CreateType({ [Kind]: 'Not', not: type }, options);\n}\n","import { Tuple } from '../tuple/index.mjs';\nimport { Never } from '../never/index.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n/** `[JavaScript]` Extracts the Parameters from the given Function type */\nexport function Parameters(schema, options) {\n return (KindGuard.IsFunction(schema) ? Tuple(schema.parameters, options) : Never());\n}\n","import { CloneType } from '../clone/type.mjs';\nimport { CreateType } from '../create/type.mjs';\nimport { IsUndefined } from '../guard/value.mjs';\nimport { Kind, Hint } from '../symbols/index.mjs';\n// Auto Tracked For Recursive Types without ID's\nlet Ordinal = 0;\n/** `[Json]` Creates a Recursive type */\nexport function Recursive(callback, options = {}) {\n if (IsUndefined(options.$id))\n options.$id = `T${Ordinal++}`;\n const thisType = CloneType(callback({ [Kind]: 'This', $ref: `${options.$id}` }));\n thisType.$id = options.$id;\n // prettier-ignore\n return CreateType({ [Hint]: 'Recursive', ...thisType }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { IsString } from '../guard/value.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a RegExp type */\nexport function RegExp(unresolved, options) {\n const expr = IsString(unresolved) ? new globalThis.RegExp(unresolved) : unresolved;\n return CreateType({ [Kind]: 'RegExp', type: 'RegExp', source: expr.source, flags: expr.flags }, options);\n}\n","// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsIntersect, IsUnion, IsTuple } from '../guard/kind.mjs';\n// prettier-ignore\nfunction RestResolve(T) {\n return (IsIntersect(T) ? T.allOf :\n IsUnion(T) ? T.anyOf :\n IsTuple(T) ? T.items ?? [] :\n []);\n}\n/** `[Json]` Extracts interior Rest elements from Tuple, Intersect and Union types */\nexport function Rest(T) {\n return RestResolve(T);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Never } from '../never/index.mjs';\nimport * as KindGuard from '../guard/kind.mjs';\n/** `[JavaScript]` Extracts the ReturnType from the given Function type */\nexport function ReturnType(schema, options) {\n return (KindGuard.IsFunction(schema) ? CreateType(schema.returns, options) : Never(options));\n}\n","import { TransformKind } from '../symbols/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsTransform } from '../guard/kind.mjs';\n// ------------------------------------------------------------------\n// TransformBuilders\n// ------------------------------------------------------------------\nexport class TransformDecodeBuilder {\n constructor(schema) {\n this.schema = schema;\n }\n Decode(decode) {\n return new TransformEncodeBuilder(this.schema, decode);\n }\n}\n// prettier-ignore\nexport class TransformEncodeBuilder {\n constructor(schema, decode) {\n this.schema = schema;\n this.decode = decode;\n }\n EncodeTransform(encode, schema) {\n const Encode = (value) => schema[TransformKind].Encode(encode(value));\n const Decode = (value) => this.decode(schema[TransformKind].Decode(value));\n const Codec = { Encode: Encode, Decode: Decode };\n return { ...schema, [TransformKind]: Codec };\n }\n EncodeSchema(encode, schema) {\n const Codec = { Decode: this.decode, Encode: encode };\n return { ...schema, [TransformKind]: Codec };\n }\n Encode(encode) {\n return (IsTransform(this.schema) ? this.EncodeTransform(encode, this.schema) : this.EncodeSchema(encode, this.schema));\n }\n}\n/** `[Json]` Creates a Transform type */\nexport function Transform(schema) {\n return new TransformDecodeBuilder(schema);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[Json]` Creates a Unsafe type that will infers as the generic argument T */\nexport function Unsafe(options = {}) {\n return CreateType({ [Kind]: options[Kind] ?? 'Unsafe' }, options);\n}\n","import { CreateType } from '../create/type.mjs';\nimport { Kind } from '../symbols/index.mjs';\n/** `[JavaScript]` Creates a Void type */\nexport function Void(options) {\n return CreateType({ [Kind]: 'Void', type: 'void' }, options);\n}\n","// ------------------------------------------------------------------\n// JsonTypeBuilder\n// ------------------------------------------------------------------\nexport { JsonTypeBuilder } from './json.mjs';\n// ------------------------------------------------------------------\n// JavaScriptTypeBuilder\n// ------------------------------------------------------------------\nimport * as TypeBuilder from './type.mjs';\nimport { JavaScriptTypeBuilder } from './javascript.mjs';\n/** JavaScript Type Builder with Static Resolution for TypeScript */\nconst Type = TypeBuilder;\nexport { JavaScriptTypeBuilder };\nexport { Type };\n","// src/schemas/theme.ts\nimport { Type } from \"@sinclair/typebox\";\nvar GridMarginSchema = Type.Union(\n [\n Type.Number({ description: \"Margin in inches (all sides)\" }),\n Type.Object(\n {\n top: Type.Number({ description: \"Top margin in inches\" }),\n right: Type.Number({ description: \"Right margin in inches\" }),\n bottom: Type.Number({ description: \"Bottom margin in inches\" }),\n left: Type.Number({ description: \"Left margin in inches\" })\n },\n { additionalProperties: false }\n )\n ],\n { description: \"Slide margins in inches\" }\n);\nvar GridGutterSchema = Type.Union(\n [\n Type.Number({ description: \"Gutter in inches (both axes)\" }),\n Type.Object(\n {\n column: Type.Number({ description: \"Column gutter in inches\" }),\n row: Type.Number({ description: \"Row gutter in inches\" })\n },\n { additionalProperties: false }\n )\n ],\n { description: \"Gaps between grid tracks in inches\" }\n);\nvar GridConfigSchema = Type.Object(\n {\n columns: Type.Optional(Type.Number({ minimum: 1, description: \"Number of columns (default: 12)\" })),\n rows: Type.Optional(Type.Number({ minimum: 1, description: \"Number of rows (default: 6)\" })),\n margin: Type.Optional(GridMarginSchema),\n gutter: Type.Optional(GridGutterSchema)\n },\n { additionalProperties: false, description: \"Grid layout configuration\" }\n);\nvar HexColorSchema = Type.String({ pattern: \"^#?[0-9A-Fa-f]{6}$\", description: \"Hex color (e.g. #FF0000)\" });\nvar SEMANTIC_COLOR_NAMES = [\n \"primary\",\n \"secondary\",\n \"accent\",\n \"background\",\n \"text\",\n \"text2\",\n \"background2\",\n \"accent4\",\n \"accent5\",\n \"accent6\"\n];\nvar SEMANTIC_COLOR_ALIASES = [\n \"accent1\",\n \"accent2\",\n \"accent3\",\n \"tx1\",\n \"tx2\",\n \"bg1\",\n \"bg2\"\n];\nvar ColorValueSchema = Type.Union([\n HexColorSchema,\n ...SEMANTIC_COLOR_NAMES.map((n) => Type.Literal(n)),\n ...SEMANTIC_COLOR_ALIASES.map((n) => Type.Literal(n))\n], { description: \"Hex color or semantic theme color name\" });\nvar STYLE_NAMES = [\n \"title\",\n \"subtitle\",\n \"heading1\",\n \"heading2\",\n \"heading3\",\n \"body\",\n \"caption\"\n];\nvar StyleNameSchema = Type.Union(\n STYLE_NAMES.map((n) => Type.Literal(n)),\n { description: \"Predefined style name\" }\n);\nvar TextStyleSchema = Type.Object({\n fontSize: Type.Optional(Type.Number()),\n fontFace: Type.Optional(Type.String()),\n fontColor: Type.Optional(ColorValueSchema),\n bold: Type.Optional(Type.Boolean()),\n italic: Type.Optional(Type.Boolean()),\n align: Type.Optional(Type.Union([\n Type.Literal(\"left\"),\n Type.Literal(\"center\"),\n Type.Literal(\"right\"),\n Type.Literal(\"justify\")\n ])),\n lineSpacing: Type.Optional(Type.Number()),\n charSpacing: Type.Optional(Type.Number()),\n paraSpaceAfter: Type.Optional(Type.Number())\n}, { additionalProperties: false, description: \"Text style preset\" });\nvar ThemeConfigSchema = Type.Object(\n {\n name: Type.String({ description: \"Theme name\" }),\n colors: Type.Object(\n {\n primary: HexColorSchema,\n secondary: HexColorSchema,\n accent: HexColorSchema,\n background: HexColorSchema,\n text: HexColorSchema,\n text2: Type.Optional(HexColorSchema),\n background2: Type.Optional(HexColorSchema),\n accent4: Type.Optional(HexColorSchema),\n accent5: Type.Optional(HexColorSchema),\n accent6: Type.Optional(HexColorSchema)\n },\n { additionalProperties: false, description: \"Theme color palette (10-slot scheme)\" }\n ),\n fonts: Type.Object(\n {\n heading: Type.String({ description: \"Heading font family\" }),\n body: Type.String({ description: \"Body font family\" })\n },\n { additionalProperties: false, description: \"Font families\" }\n ),\n defaults: Type.Object(\n {\n fontSize: Type.Number({ description: \"Default font size in points\" }),\n fontColor: HexColorSchema\n },\n { additionalProperties: false, description: \"Default text styling\" }\n ),\n styles: Type.Optional(Type.Partial(\n Type.Object(Object.fromEntries(\n STYLE_NAMES.map((n) => [n, TextStyleSchema])\n )),\n { additionalProperties: false, description: \"Named text style presets\" }\n ))\n },\n { additionalProperties: false, description: \"Presentation theme configuration\" }\n);\nfunction isValidThemeConfig(data) {\n return typeof data === \"object\" && data !== null;\n}\n\nexport {\n GridMarginSchema,\n GridGutterSchema,\n GridConfigSchema,\n SEMANTIC_COLOR_NAMES,\n SEMANTIC_COLOR_ALIASES,\n ColorValueSchema,\n STYLE_NAMES,\n StyleNameSchema,\n TextStyleSchema,\n ThemeConfigSchema,\n isValidThemeConfig\n};\n//# sourceMappingURL=chunk-MZ3TEFYH.js.map","import {\n ColorValueSchema,\n GridConfigSchema,\n StyleNameSchema\n} from \"./chunk-MZ3TEFYH.js\";\n\n// src/schemas/component-registry.ts\nimport { Type as Type11 } from \"@sinclair/typebox\";\n\n// src/schemas/components/presentation.ts\nimport { Type as Type9 } from \"@sinclair/typebox\";\n\n// src/schemas/components/template.ts\nimport { Type as Type8 } from \"@sinclair/typebox\";\n\n// src/schemas/components/common.ts\nimport { Type } from \"@sinclair/typebox\";\nvar PositionSchema = Type.Object(\n {\n x: Type.Optional(\n Type.Union([\n Type.Number({ description: \"X position in inches\" }),\n Type.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'X position as percentage (e.g., \"10%\")'\n })\n ])\n ),\n y: Type.Optional(\n Type.Union([\n Type.Number({ description: \"Y position in inches\" }),\n Type.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Y position as percentage (e.g., \"10%\")'\n })\n ])\n ),\n w: Type.Optional(\n Type.Union([\n Type.Number({ description: \"Width in inches\" }),\n Type.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Width as percentage (e.g., \"80%\")'\n })\n ])\n ),\n h: Type.Optional(\n Type.Union([\n Type.Number({ description: \"Height in inches\" }),\n Type.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Height as percentage (e.g., \"20%\")'\n })\n ])\n )\n },\n {\n description: \"Position and size in inches or percentages\",\n additionalProperties: false\n }\n);\nvar SlideBackgroundSchema = Type.Object(\n {\n color: Type.Optional(ColorValueSchema),\n image: Type.Optional(\n Type.Object(\n {\n path: Type.Optional(Type.String({ description: \"Image file path or URL\" })),\n base64: Type.Optional(\n Type.String({ description: \"Base64-encoded image data\" })\n )\n },\n { description: \"Background image\", additionalProperties: false }\n )\n )\n },\n {\n description: \"Slide background configuration\",\n additionalProperties: false\n }\n);\nvar TransitionSchema = Type.Object(\n {\n type: Type.Optional(\n Type.Union(\n [\n Type.Literal(\"fade\"),\n Type.Literal(\"push\"),\n Type.Literal(\"wipe\"),\n Type.Literal(\"zoom\"),\n Type.Literal(\"none\")\n ],\n { description: \"Transition effect type\" }\n )\n ),\n speed: Type.Optional(\n Type.Union(\n [Type.Literal(\"slow\"), Type.Literal(\"medium\"), Type.Literal(\"fast\")],\n { description: \"Transition speed\" }\n )\n )\n },\n {\n description: \"Slide transition configuration\",\n additionalProperties: false\n }\n);\nvar PptxAlignmentSchema = Type.Union(\n [Type.Literal(\"left\"), Type.Literal(\"center\"), Type.Literal(\"right\")],\n { description: \"Horizontal alignment options\" }\n);\nvar VerticalAlignmentSchema = Type.Union(\n [Type.Literal(\"top\"), Type.Literal(\"middle\"), Type.Literal(\"bottom\")],\n { description: \"Vertical alignment options\" }\n);\nvar ShadowSchema = Type.Object(\n {\n type: Type.Optional(\n Type.Union([Type.Literal(\"outer\"), Type.Literal(\"inner\")], {\n description: \"Shadow type\"\n })\n ),\n color: Type.Optional(ColorValueSchema),\n blur: Type.Optional(Type.Number({ description: \"Shadow blur radius in points\" })),\n offset: Type.Optional(Type.Number({ description: \"Shadow offset in points\" })),\n angle: Type.Optional(Type.Number({ description: \"Shadow angle in degrees\" })),\n opacity: Type.Optional(\n Type.Number({\n minimum: 0,\n maximum: 1,\n description: \"Shadow opacity (0-1)\"\n })\n )\n },\n {\n description: \"Shadow configuration\",\n additionalProperties: false\n }\n);\nvar GridPositionSchema = Type.Object(\n {\n column: Type.Number({ minimum: 0, description: \"Starting column (0-indexed)\" }),\n row: Type.Number({ minimum: 0, description: \"Starting row (0-indexed)\" }),\n columnSpan: Type.Optional(Type.Number({ minimum: 1, description: \"Number of columns to span (default: 1)\" })),\n rowSpan: Type.Optional(Type.Number({ minimum: 1, description: \"Number of rows to span (default: 1)\" }))\n },\n { additionalProperties: false, description: \"Grid-based positioning\" }\n);\n\n// src/schemas/components/text.ts\nimport { Type as Type2 } from \"@sinclair/typebox\";\nvar TextPropsSchema = Type2.Object(\n {\n text: Type2.String({ description: \"Text content to display\" }),\n x: Type2.Optional(\n Type2.Union([\n Type2.Number({ description: \"X position in inches\" }),\n Type2.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"X as percentage\" })\n ])\n ),\n y: Type2.Optional(\n Type2.Union([\n Type2.Number({ description: \"Y position in inches\" }),\n Type2.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Y as percentage\" })\n ])\n ),\n w: Type2.Optional(\n Type2.Union([\n Type2.Number({ description: \"Width in inches\" }),\n Type2.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Width as percentage\" })\n ])\n ),\n h: Type2.Optional(\n Type2.Union([\n Type2.Number({ description: \"Height in inches\" }),\n Type2.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Height as percentage\" })\n ])\n ),\n fontSize: Type2.Optional(\n Type2.Number({ minimum: 1, description: \"Font size in points\" })\n ),\n fontFace: Type2.Optional(Type2.String({ description: \"Font family name\" })),\n color: Type2.Optional(\n Type2.String({ description: 'Text color (hex without #, e.g., \"FF0000\")' })\n ),\n bold: Type2.Optional(Type2.Boolean({ description: \"Bold text\" })),\n italic: Type2.Optional(Type2.Boolean({ description: \"Italic text\" })),\n underline: Type2.Optional(\n Type2.Union([\n Type2.Boolean({ description: \"Simple underline toggle\" }),\n Type2.Object(\n {\n style: Type2.Optional(\n Type2.Union([\n Type2.Literal(\"sng\"),\n Type2.Literal(\"dbl\"),\n Type2.Literal(\"dash\"),\n Type2.Literal(\"dotted\")\n ])\n ),\n color: Type2.Optional(Type2.String({ description: \"Underline color (hex)\" }))\n },\n { additionalProperties: false }\n )\n ])\n ),\n strike: Type2.Optional(Type2.Boolean({ description: \"Strikethrough text\" })),\n align: Type2.Optional(PptxAlignmentSchema),\n valign: Type2.Optional(VerticalAlignmentSchema),\n breakLine: Type2.Optional(\n Type2.Boolean({ description: \"Add line break after text\" })\n ),\n bullet: Type2.Optional(\n Type2.Union([\n Type2.Boolean({ description: \"Enable default bullet\" }),\n Type2.Object(\n {\n type: Type2.Optional(\n Type2.Union([Type2.Literal(\"bullet\"), Type2.Literal(\"number\")])\n ),\n style: Type2.Optional(Type2.String({ description: \"Bullet character or style\" })),\n startAt: Type2.Optional(Type2.Number({ description: \"Starting number for numbered lists\" }))\n },\n { additionalProperties: false }\n )\n ])\n ),\n margin: Type2.Optional(\n Type2.Union([\n Type2.Number({ description: \"Margin in points (all sides)\" }),\n Type2.Array(Type2.Number(), {\n description: \"Margins as [top, right, bottom, left] in points\",\n minItems: 4,\n maxItems: 4\n })\n ])\n ),\n rotate: Type2.Optional(Type2.Number({ description: \"Rotation angle in degrees\" })),\n shadow: Type2.Optional(ShadowSchema),\n fill: Type2.Optional(\n Type2.Object(\n {\n color: Type2.String({ description: \"Fill color (hex without #)\" }),\n transparency: Type2.Optional(\n Type2.Number({ minimum: 0, maximum: 100, description: \"Fill transparency (0-100)\" })\n )\n },\n { additionalProperties: false }\n )\n ),\n hyperlink: Type2.Optional(\n Type2.Object(\n {\n url: Type2.Optional(Type2.String({ description: \"Hyperlink URL\" })),\n slide: Type2.Optional(Type2.Number({ description: \"Slide number to link to\" })),\n tooltip: Type2.Optional(Type2.String({ description: \"Hyperlink tooltip\" }))\n },\n { additionalProperties: false }\n )\n ),\n lineSpacing: Type2.Optional(Type2.Number({ description: \"Line spacing in points\" })),\n charSpacing: Type2.Optional(Type2.Number({ description: \"Character spacing in points (positive = wider, negative = tighter)\" })),\n paraSpaceBefore: Type2.Optional(Type2.Number({ description: \"Space before paragraph in points\" })),\n paraSpaceAfter: Type2.Optional(Type2.Number({ description: \"Space after paragraph in points\" })),\n grid: Type2.Optional(GridPositionSchema),\n style: Type2.Optional(StyleNameSchema)\n },\n {\n description: \"Text component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/image.ts\nimport { Type as Type3 } from \"@sinclair/typebox\";\nvar PptxImagePropsSchema = Type3.Object(\n {\n path: Type3.Optional(\n Type3.String({\n description: \"Image file path or URL (mutually exclusive with base64)\"\n })\n ),\n base64: Type3.Optional(\n Type3.String({\n description: \"Base64-encoded image data in data URI format (mutually exclusive with path)\"\n })\n ),\n x: Type3.Optional(\n Type3.Union([\n Type3.Number({ description: \"X position in inches\" }),\n Type3.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"X as percentage\" })\n ])\n ),\n y: Type3.Optional(\n Type3.Union([\n Type3.Number({ description: \"Y position in inches\" }),\n Type3.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Y as percentage\" })\n ])\n ),\n w: Type3.Optional(\n Type3.Union([\n Type3.Number({ description: \"Width in inches\" }),\n Type3.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Width as percentage\" })\n ])\n ),\n h: Type3.Optional(\n Type3.Union([\n Type3.Number({ description: \"Height in inches\" }),\n Type3.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Height as percentage\" })\n ])\n ),\n sizing: Type3.Optional(\n Type3.Object(\n {\n type: Type3.Union(\n [\n Type3.Literal(\"contain\"),\n Type3.Literal(\"cover\"),\n Type3.Literal(\"crop\")\n ],\n { description: \"Image sizing strategy\" }\n ),\n w: Type3.Optional(Type3.Number({ description: \"Target width in inches\" })),\n h: Type3.Optional(Type3.Number({ description: \"Target height in inches\" }))\n },\n { description: \"Image sizing options\", additionalProperties: false }\n )\n ),\n rotate: Type3.Optional(\n Type3.Number({ description: \"Rotation angle in degrees\" })\n ),\n rounding: Type3.Optional(\n Type3.Boolean({ description: \"Apply rounded corners to image\" })\n ),\n shadow: Type3.Optional(ShadowSchema),\n hyperlink: Type3.Optional(\n Type3.Object(\n {\n url: Type3.Optional(Type3.String({ description: \"Hyperlink URL\" })),\n slide: Type3.Optional(Type3.Number({ description: \"Slide number to link to\" })),\n tooltip: Type3.Optional(Type3.String({ description: \"Hyperlink tooltip\" }))\n },\n { additionalProperties: false }\n )\n ),\n alt: Type3.Optional(\n Type3.String({ description: \"Alternative text for accessibility\" })\n ),\n grid: Type3.Optional(GridPositionSchema)\n },\n {\n description: \"PPTX image component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/shape.ts\nimport { Type as Type4 } from \"@sinclair/typebox\";\nvar ShapeTypeSchema = Type4.Union(\n [\n Type4.Literal(\"rect\"),\n Type4.Literal(\"roundRect\"),\n Type4.Literal(\"ellipse\"),\n Type4.Literal(\"triangle\"),\n Type4.Literal(\"diamond\"),\n Type4.Literal(\"pentagon\"),\n Type4.Literal(\"hexagon\"),\n Type4.Literal(\"star5\"),\n Type4.Literal(\"star6\"),\n Type4.Literal(\"line\"),\n Type4.Literal(\"arrow\"),\n Type4.Literal(\"chevron\"),\n Type4.Literal(\"cloud\"),\n Type4.Literal(\"heart\"),\n Type4.Literal(\"lightning\")\n ],\n { description: \"Shape type\" }\n);\nvar TextSegmentSchema = Type4.Object(\n {\n text: Type4.String(),\n fontSize: Type4.Optional(Type4.Number({ minimum: 1 })),\n fontFace: Type4.Optional(Type4.String()),\n color: Type4.Optional(Type4.String({ description: \"Segment color (hex without # or semantic name)\" })),\n bold: Type4.Optional(Type4.Boolean()),\n italic: Type4.Optional(Type4.Boolean()),\n breakLine: Type4.Optional(Type4.Boolean({ description: \"Insert line break after this segment\" })),\n spaceBefore: Type4.Optional(Type4.Number({ minimum: 0, description: \"Space before paragraph in points\" })),\n spaceAfter: Type4.Optional(Type4.Number({ minimum: 0, description: \"Space after paragraph in points\" })),\n charSpacing: Type4.Optional(Type4.Number({ description: \"Character spacing in points\" }))\n },\n { additionalProperties: false }\n);\nvar ShapePropsSchema = Type4.Object(\n {\n type: ShapeTypeSchema,\n x: Type4.Optional(\n Type4.Union([\n Type4.Number({ description: \"X position in inches\" }),\n Type4.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"X as percentage\" })\n ])\n ),\n y: Type4.Optional(\n Type4.Union([\n Type4.Number({ description: \"Y position in inches\" }),\n Type4.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Y as percentage\" })\n ])\n ),\n w: Type4.Optional(\n Type4.Union([\n Type4.Number({ description: \"Width in inches\" }),\n Type4.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Width as percentage\" })\n ])\n ),\n h: Type4.Optional(\n Type4.Union([\n Type4.Number({ description: \"Height in inches\" }),\n Type4.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Height as percentage\" })\n ])\n ),\n fill: Type4.Optional(\n Type4.Object(\n {\n color: Type4.String({ description: \"Fill color (hex without #)\" }),\n transparency: Type4.Optional(\n Type4.Number({ minimum: 0, maximum: 100, description: \"Fill transparency (0-100)\" })\n )\n },\n { additionalProperties: false }\n )\n ),\n line: Type4.Optional(\n Type4.Object(\n {\n color: Type4.Optional(Type4.String({ description: \"Line color (hex without #)\" })),\n width: Type4.Optional(Type4.Number({ minimum: 0, description: \"Line width in points\" })),\n dashType: Type4.Optional(\n Type4.Union([\n Type4.Literal(\"solid\"),\n Type4.Literal(\"dash\"),\n Type4.Literal(\"dot\"),\n Type4.Literal(\"dashDot\")\n ])\n )\n },\n { additionalProperties: false }\n )\n ),\n text: Type4.Optional(Type4.Union([\n Type4.String({ description: \"Plain text\" }),\n Type4.Array(TextSegmentSchema, { description: \"Rich text segments with per-segment formatting\" })\n ], { description: \"Text content inside the shape\" })),\n fontSize: Type4.Optional(Type4.Number({ minimum: 1, description: \"Font size for shape text\" })),\n fontFace: Type4.Optional(Type4.String({ description: \"Font family for shape text\" })),\n fontColor: Type4.Optional(Type4.String({ description: \"Font color for shape text (hex without #)\" })),\n charSpacing: Type4.Optional(Type4.Number({ description: \"Character spacing in points for shape text\" })),\n bold: Type4.Optional(Type4.Boolean({ description: \"Bold shape text\" })),\n italic: Type4.Optional(Type4.Boolean({ description: \"Italic shape text\" })),\n align: Type4.Optional(PptxAlignmentSchema),\n valign: Type4.Optional(VerticalAlignmentSchema),\n rotate: Type4.Optional(Type4.Number({ description: \"Rotation angle in degrees\" })),\n shadow: Type4.Optional(ShadowSchema),\n rectRadius: Type4.Optional(\n Type4.Number({\n minimum: 0,\n description: \"Corner radius for roundRect shape in inches\"\n })\n ),\n grid: Type4.Optional(GridPositionSchema),\n style: Type4.Optional(StyleNameSchema)\n },\n {\n description: \"Shape component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/table.ts\nimport { Type as Type5 } from \"@sinclair/typebox\";\nvar PptxTableCellSchema = Type5.Union([\n Type5.String({ description: \"Simple text cell\" }),\n Type5.Object(\n {\n text: Type5.String({ description: \"Cell text content\" }),\n color: Type5.Optional(Type5.String({ description: \"Text color (hex without #)\" })),\n fill: Type5.Optional(Type5.String({ description: \"Cell background color (hex without #)\" })),\n fontSize: Type5.Optional(Type5.Number({ description: \"Font size in points\" })),\n fontFace: Type5.Optional(Type5.String({ description: \"Font family\" })),\n bold: Type5.Optional(Type5.Boolean({ description: \"Bold text\" })),\n italic: Type5.Optional(Type5.Boolean({ description: \"Italic text\" })),\n align: Type5.Optional(PptxAlignmentSchema),\n valign: Type5.Optional(VerticalAlignmentSchema),\n colspan: Type5.Optional(Type5.Number({ minimum: 1, description: \"Column span\" })),\n rowspan: Type5.Optional(Type5.Number({ minimum: 1, description: \"Row span\" })),\n margin: Type5.Optional(\n Type5.Union([\n Type5.Number({ description: \"Margin in points (all sides)\" }),\n Type5.Array(Type5.Number(), { minItems: 4, maxItems: 4 })\n ])\n )\n },\n { additionalProperties: false }\n )\n]);\nvar PptxTablePropsSchema = Type5.Object(\n {\n rows: Type5.Array(\n Type5.Array(PptxTableCellSchema, { description: \"Row of cells\" }),\n { description: \"Table rows (array of arrays)\", minItems: 1 }\n ),\n x: Type5.Optional(\n Type5.Union([\n Type5.Number({ description: \"X position in inches\" }),\n Type5.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"X as percentage\" })\n ])\n ),\n y: Type5.Optional(\n Type5.Union([\n Type5.Number({ description: \"Y position in inches\" }),\n Type5.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Y as percentage\" })\n ])\n ),\n w: Type5.Optional(\n Type5.Union([\n Type5.Number({ description: \"Width in inches\" }),\n Type5.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Width as percentage\" })\n ])\n ),\n h: Type5.Optional(\n Type5.Union([\n Type5.Number({ description: \"Height in inches\" }),\n Type5.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Height as percentage\" })\n ])\n ),\n colW: Type5.Optional(\n Type5.Union([\n Type5.Number({ description: \"Uniform column width in inches\" }),\n Type5.Array(Type5.Number(), { description: \"Individual column widths in inches\" })\n ])\n ),\n rowH: Type5.Optional(\n Type5.Union([\n Type5.Number({ description: \"Uniform row height in inches\" }),\n Type5.Array(Type5.Number(), { description: \"Individual row heights in inches\" })\n ])\n ),\n border: Type5.Optional(\n Type5.Object(\n {\n type: Type5.Optional(\n Type5.Union([\n Type5.Literal(\"solid\"),\n Type5.Literal(\"dash\"),\n Type5.Literal(\"dot\"),\n Type5.Literal(\"none\")\n ])\n ),\n pt: Type5.Optional(Type5.Number({ minimum: 0, description: \"Border width in points\" })),\n color: Type5.Optional(Type5.String({ description: \"Border color (hex without #)\" }))\n },\n { additionalProperties: false }\n )\n ),\n fill: Type5.Optional(Type5.String({ description: \"Table background color (hex without #)\" })),\n fontSize: Type5.Optional(Type5.Number({ minimum: 1, description: \"Default font size for all cells\" })),\n fontFace: Type5.Optional(Type5.String({ description: \"Default font family for all cells\" })),\n color: Type5.Optional(Type5.String({ description: \"Default text color for all cells (hex without #)\" })),\n align: Type5.Optional(PptxAlignmentSchema),\n valign: Type5.Optional(VerticalAlignmentSchema),\n autoPage: Type5.Optional(\n Type5.Boolean({ description: \"Auto-paginate table across multiple slides when content overflows\" })\n ),\n autoPageRepeatHeader: Type5.Optional(\n Type5.Boolean({ description: \"Repeat first row as header on each auto-paged slide\" })\n ),\n margin: Type5.Optional(\n Type5.Union([\n Type5.Number({ description: \"Cell margin in points (all sides)\" }),\n Type5.Array(Type5.Number(), { minItems: 4, maxItems: 4 })\n ])\n ),\n borderRadius: Type5.Optional(\n Type5.Number({ minimum: 0, description: \"Rounded corner radius in inches. Renders a roundRect shape behind the table.\" })\n ),\n grid: Type5.Optional(GridPositionSchema)\n },\n {\n description: \"PPTX table component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/chart.ts\nimport { Type as Type6 } from \"@sinclair/typebox\";\nvar PositionValue = Type6.Union([\n Type6.Number(),\n Type6.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\" })\n]);\nvar ChartTypeSchema = Type6.Union(\n [\n Type6.Literal(\"area\"),\n Type6.Literal(\"bar\"),\n Type6.Literal(\"bar3D\"),\n Type6.Literal(\"bubble\"),\n Type6.Literal(\"doughnut\"),\n Type6.Literal(\"line\"),\n Type6.Literal(\"pie\"),\n Type6.Literal(\"radar\"),\n Type6.Literal(\"scatter\")\n ],\n { description: \"Chart type\" }\n);\nvar ChartDataSeriesSchema = Type6.Object(\n {\n name: Type6.Optional(Type6.String({ description: \"Series name\" })),\n labels: Type6.Optional(Type6.Array(Type6.String(), { description: \"Category labels\" })),\n values: Type6.Optional(Type6.Array(Type6.Number(), { description: \"Data values\" })),\n sizes: Type6.Optional(Type6.Array(Type6.Number(), { description: \"Bubble sizes (bubble charts only)\" }))\n },\n { additionalProperties: false }\n);\nvar PptxChartPropsSchema = Type6.Object(\n {\n type: ChartTypeSchema,\n data: Type6.Array(ChartDataSeriesSchema, {\n description: \"Chart data series\",\n minItems: 1\n }),\n // Display toggles\n showLegend: Type6.Optional(Type6.Boolean({ description: \"Show chart legend\" })),\n showTitle: Type6.Optional(Type6.Boolean({ description: \"Show chart title\" })),\n showValue: Type6.Optional(Type6.Boolean({ description: \"Show data values\" })),\n showPercent: Type6.Optional(Type6.Boolean({ description: \"Show percentages (pie/doughnut)\" })),\n showLabel: Type6.Optional(Type6.Boolean({ description: \"Show category labels on data points\" })),\n showSerName: Type6.Optional(Type6.Boolean({ description: \"Show series name on data points\" })),\n // Title\n title: Type6.Optional(Type6.String({ description: \"Chart title text\" })),\n titleFontSize: Type6.Optional(Type6.Number({ description: \"Title font size (points)\" })),\n titleColor: Type6.Optional(Type6.String({ description: \"Title color (hex or semantic)\" })),\n titleFontFace: Type6.Optional(Type6.String({ description: \"Title font face\" })),\n // Chart colors\n chartColors: Type6.Optional(\n Type6.Array(Type6.String(), {\n description: \"Series colors (hex or semantic theme names). Defaults to theme palette.\"\n })\n ),\n // Legend\n legendPos: Type6.Optional(\n Type6.Union(\n [Type6.Literal(\"b\"), Type6.Literal(\"l\"), Type6.Literal(\"r\"), Type6.Literal(\"t\"), Type6.Literal(\"tr\")],\n { description: \"Legend position\" }\n )\n ),\n legendFontSize: Type6.Optional(Type6.Number({ description: \"Legend font size\" })),\n legendFontFace: Type6.Optional(Type6.String({ description: \"Legend font face\" })),\n legendColor: Type6.Optional(Type6.String({ description: \"Legend text color\" })),\n // Category axis\n catAxisTitle: Type6.Optional(Type6.String({ description: \"Category axis title\" })),\n catAxisHidden: Type6.Optional(Type6.Boolean({ description: \"Hide category axis\" })),\n catAxisLabelRotate: Type6.Optional(Type6.Number({ description: \"Category axis label rotation (degrees)\" })),\n catAxisLabelFontSize: Type6.Optional(Type6.Number({ description: \"Category axis label font size\" })),\n catAxisLabelColor: Type6.Optional(Type6.String({ description: \"Category axis label color (hex or semantic)\" })),\n // Value axis\n valAxisTitle: Type6.Optional(Type6.String({ description: \"Value axis title\" })),\n valAxisHidden: Type6.Optional(Type6.Boolean({ description: \"Hide value axis\" })),\n valAxisMinVal: Type6.Optional(Type6.Number({ description: \"Value axis minimum\" })),\n valAxisMaxVal: Type6.Optional(Type6.Number({ description: \"Value axis maximum\" })),\n valAxisLabelFormatCode: Type6.Optional(Type6.String({ description: 'Value axis label format (e.g. \"$0.00\", \"#%\")' })),\n valAxisMajorUnit: Type6.Optional(Type6.Number({ description: \"Value axis major unit / tick interval\" })),\n valAxisLabelColor: Type6.Optional(Type6.String({ description: \"Value axis label color (hex or semantic)\" })),\n // Bar-specific\n barDir: Type6.Optional(\n Type6.Union([Type6.Literal(\"bar\"), Type6.Literal(\"col\")], {\n description: 'Bar direction: \"bar\" (horizontal) or \"col\" (vertical, default)'\n })\n ),\n barGrouping: Type6.Optional(\n Type6.Union(\n [Type6.Literal(\"clustered\"), Type6.Literal(\"stacked\"), Type6.Literal(\"percentStacked\")],\n { description: \"Bar grouping style\" }\n )\n ),\n barGapWidthPct: Type6.Optional(\n Type6.Number({ minimum: 0, maximum: 500, description: \"Bar gap width (0-500%)\" })\n ),\n // Line-specific\n lineSmooth: Type6.Optional(Type6.Boolean({ description: \"Smooth lines\" })),\n lineDataSymbol: Type6.Optional(\n Type6.Union(\n [\n Type6.Literal(\"circle\"),\n Type6.Literal(\"dash\"),\n Type6.Literal(\"diamond\"),\n Type6.Literal(\"dot\"),\n Type6.Literal(\"none\"),\n Type6.Literal(\"square\"),\n Type6.Literal(\"triangle\")\n ],\n { description: \"Line data point marker symbol\" }\n )\n ),\n lineSize: Type6.Optional(Type6.Number({ description: \"Line width (points)\" })),\n // Pie/doughnut-specific\n firstSliceAng: Type6.Optional(Type6.Number({ minimum: 0, maximum: 359, description: \"Angle of first slice (degrees)\" })),\n holeSize: Type6.Optional(Type6.Number({ minimum: 10, maximum: 90, description: \"Doughnut hole size (%)\" })),\n // Radar-specific\n radarStyle: Type6.Optional(\n Type6.Union(\n [Type6.Literal(\"standard\"), Type6.Literal(\"marker\"), Type6.Literal(\"filled\")],\n { description: \"Radar chart style\" }\n )\n ),\n // Data labels\n dataLabelColor: Type6.Optional(Type6.String({ description: \"Data label text color\" })),\n dataLabelFontSize: Type6.Optional(Type6.Number({ description: \"Data label font size\" })),\n dataLabelFontFace: Type6.Optional(Type6.String({ description: \"Data label font face\" })),\n dataLabelFontBold: Type6.Optional(Type6.Boolean({ description: \"Bold data labels\" })),\n dataLabelPosition: Type6.Optional(\n Type6.Union(\n [\n Type6.Literal(\"b\"),\n Type6.Literal(\"bestFit\"),\n Type6.Literal(\"ctr\"),\n Type6.Literal(\"l\"),\n Type6.Literal(\"r\"),\n Type6.Literal(\"t\"),\n Type6.Literal(\"inEnd\"),\n Type6.Literal(\"outEnd\")\n ],\n { description: \"Data label position\" }\n )\n ),\n // Positioning\n x: Type6.Optional(PositionValue),\n y: Type6.Optional(PositionValue),\n w: Type6.Optional(PositionValue),\n h: Type6.Optional(PositionValue),\n grid: Type6.Optional(GridPositionSchema)\n },\n {\n description: \"Native PowerPoint chart component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/highcharts.ts\nimport { Type as Type7 } from \"@sinclair/typebox\";\nvar PptxHighchartsPropsSchema = Type7.Object(\n {\n options: Type7.Intersect([\n Type7.Record(Type7.String(), Type7.Unknown()),\n Type7.Object({\n chart: Type7.Object({\n width: Type7.Number(),\n height: Type7.Number()\n })\n })\n ]),\n scale: Type7.Optional(Type7.Number()),\n serverUrl: Type7.Optional(Type7.String({ description: \"Highcharts Export Server URL (default: http://localhost:7801)\" })),\n x: Type7.Optional(\n Type7.Union([\n Type7.Number({ description: \"X position in inches\" }),\n Type7.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"X as percentage\" })\n ])\n ),\n y: Type7.Optional(\n Type7.Union([\n Type7.Number({ description: \"Y position in inches\" }),\n Type7.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Y as percentage\" })\n ])\n ),\n w: Type7.Optional(\n Type7.Union([\n Type7.Number({ description: \"Width in inches\" }),\n Type7.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Width as percentage\" })\n ])\n ),\n h: Type7.Optional(\n Type7.Union([\n Type7.Number({ description: \"Height in inches\" }),\n Type7.String({ pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\", description: \"Height as percentage\" })\n ])\n ),\n grid: Type7.Optional(GridPositionSchema)\n },\n {\n description: \"PPTX Highcharts component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/template.ts\nvar Coord = Type8.Union([\n Type8.Number({ description: \"Position/size in inches\" }),\n Type8.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Position/size as percentage of slide dimension (e.g., \"50%\")'\n })\n]);\nfunction contentComponent(name, propsSchema) {\n return Type8.Object({\n name: Type8.Literal(name),\n id: Type8.Optional(Type8.String()),\n enabled: Type8.Optional(Type8.Boolean({\n default: true,\n description: \"When false, this component is filtered out and not rendered. Defaults to true.\"\n })),\n props: propsSchema\n }, { additionalProperties: false });\n}\nvar TemplateObjectComponentSchema = Type8.Union([\n contentComponent(\"text\", TextPropsSchema),\n contentComponent(\"image\", PptxImagePropsSchema),\n contentComponent(\"shape\", ShapePropsSchema),\n contentComponent(\"table\", PptxTablePropsSchema),\n contentComponent(\"chart\", PptxChartPropsSchema),\n contentComponent(\"highcharts\", PptxHighchartsPropsSchema)\n], {\n discriminator: { propertyName: \"name\" },\n description: \"Fixed component on a template slide (same format as slide children)\"\n});\nfunction defaultsComponent(name, propsSchema) {\n return Type8.Object({\n name: Type8.Literal(name),\n props: Type8.Partial(propsSchema, { description: \"Default props inherited by the component placed in this placeholder\" })\n }, { additionalProperties: false });\n}\nvar PlaceholderDefaultsSchema = Type8.Union([\n defaultsComponent(\"text\", TextPropsSchema),\n defaultsComponent(\"image\", PptxImagePropsSchema),\n defaultsComponent(\"shape\", ShapePropsSchema),\n defaultsComponent(\"table\", PptxTablePropsSchema),\n defaultsComponent(\"chart\", PptxChartPropsSchema),\n defaultsComponent(\"highcharts\", PptxHighchartsPropsSchema)\n], {\n discriminator: { propertyName: \"name\" },\n description: \"Partial component stub \\u2014 styling defaults only\"\n});\nvar PlaceholderDefinitionSchema = Type8.Object({\n name: Type8.String({ description: \"Unique placeholder name\" }),\n x: Type8.Optional(Coord),\n y: Type8.Optional(Coord),\n w: Type8.Optional(Coord),\n h: Type8.Optional(Coord),\n grid: Type8.Optional(GridPositionSchema),\n defaults: Type8.Optional(PlaceholderDefaultsSchema)\n}, { additionalProperties: false, description: \"Placeholder on a template slide \\u2014 defaults is a component stub whose props are inherited by the actual component\" });\nvar TemplateSlideDefinitionSchema = Type8.Object({\n name: Type8.String({ description: \"Unique template slide name\" }),\n background: Type8.Optional(SlideBackgroundSchema),\n margin: Type8.Optional(Type8.Union([\n Type8.Number({ description: \"Margin in inches (all sides)\" }),\n Type8.Array(Type8.Number(), { minItems: 4, maxItems: 4, description: \"Margin [top, right, bottom, left] in inches\" })\n ])),\n slideNumber: Type8.Optional(Type8.Object({\n x: Coord,\n y: Coord,\n w: Type8.Optional(Coord),\n h: Type8.Optional(Coord),\n color: Type8.Optional(ColorValueSchema),\n fontSize: Type8.Optional(Type8.Number({ description: \"Slide number font size in points\" }))\n }, { additionalProperties: false, description: \"Slide number position and styling\" })),\n objects: Type8.Optional(Type8.Array(TemplateObjectComponentSchema, { description: \"Fixed components (logos, footers, decorations) \\u2014 same { name, props } format as slide children\" })),\n placeholders: Type8.Optional(Type8.Array(PlaceholderDefinitionSchema, { description: \"Placeholder regions for slide content\" })),\n grid: Type8.Optional(GridConfigSchema)\n}, { additionalProperties: false, description: \"Template slide definition (reusable slide template)\" });\n\n// src/schemas/components/presentation.ts\nvar PresentationPropsSchema = Type9.Object(\n {\n title: Type9.Optional(\n Type9.String({ description: \"Presentation title metadata\" })\n ),\n author: Type9.Optional(\n Type9.String({ description: \"Presentation author metadata\" })\n ),\n subject: Type9.Optional(\n Type9.String({ description: \"Presentation subject metadata\" })\n ),\n company: Type9.Optional(\n Type9.String({ description: \"Company name metadata\" })\n ),\n theme: Type9.Optional(\n Type9.String({\n description: 'Theme name to apply (default: \"default\")',\n default: \"default\"\n })\n ),\n slideWidth: Type9.Optional(\n Type9.Number({\n description: \"Slide width in inches (default: 10)\",\n default: 10\n })\n ),\n slideHeight: Type9.Optional(\n Type9.Number({\n description: \"Slide height in inches (default: 7.5)\",\n default: 7.5\n })\n ),\n rtlMode: Type9.Optional(\n Type9.Boolean({ description: \"Right-to-left text direction\" })\n ),\n pageNumberFormat: Type9.Optional(\n Type9.Union([Type9.Literal(\"9\"), Type9.Literal(\"09\")], {\n description: 'Format for {PAGE_NUMBER} placeholders: \"9\" = bare number (default), \"09\" = zero-padded',\n default: \"9\"\n })\n ),\n grid: Type9.Optional(GridConfigSchema),\n templates: Type9.Optional(\n Type9.Array(TemplateSlideDefinitionSchema, {\n description: \"Template slide definitions (reusable slide templates)\"\n })\n )\n },\n {\n description: \"Presentation container props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/slide.ts\nimport { Type as Type10 } from \"@sinclair/typebox\";\nvar SlidePropsSchema = Type10.Object(\n {\n background: Type10.Optional(SlideBackgroundSchema),\n transition: Type10.Optional(TransitionSchema),\n notes: Type10.Optional(\n Type10.String({ description: \"Speaker notes for this slide\" })\n ),\n layout: Type10.Optional(\n Type10.String({\n description: 'Slide layout name (e.g., \"Title Slide\", \"Blank\")'\n })\n ),\n hidden: Type10.Optional(\n Type10.Boolean({ description: \"Hide this slide from presentation\" })\n ),\n template: Type10.Optional(\n Type10.String({ description: \"Template slide name to apply\" })\n )\n // Note: `placeholders` is added dynamically by the component registry\n // with the recursive component ref, to avoid circular imports.\n },\n {\n description: \"Slide container props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/component-registry.ts\nvar PPTX_STANDARD_COMPONENTS_REGISTRY = [\n // ========================================================================\n // Container Components (can contain children)\n // ========================================================================\n {\n name: \"pptx\",\n propsSchema: PresentationPropsSchema,\n hasChildren: true,\n category: \"container\",\n description: \"Main presentation container - defines the overall presentation structure. Required as the root component.\",\n special: {\n hasSchemaField: true\n }\n },\n {\n name: \"slide\",\n propsSchema: SlidePropsSchema,\n hasChildren: true,\n hasPlaceholders: true,\n category: \"container\",\n description: \"Slide container - groups content elements on a single slide.\"\n },\n // ========================================================================\n // Content Components (leaf nodes, no children)\n // ========================================================================\n {\n name: \"text\",\n propsSchema: TextPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Text element - displays text with formatting, positioning and styling options.\"\n },\n {\n name: \"image\",\n propsSchema: PptxImagePropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Image element - displays images from file path, URL, or base64 data.\"\n },\n {\n name: \"shape\",\n propsSchema: ShapePropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Shape element - draws geometric shapes with optional text, fill, and line styling.\"\n },\n {\n name: \"table\",\n propsSchema: PptxTablePropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Table element - displays tabular data with rows and columns.\"\n },\n {\n name: \"highcharts\",\n propsSchema: PptxHighchartsPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Highcharts element - renders charts via Highcharts Export Server.\"\n },\n {\n name: \"chart\",\n propsSchema: PptxChartPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Native PowerPoint chart - editable, scalable, no external server needed.\"\n }\n];\nfunction getPptxStandardComponent(name) {\n return PPTX_STANDARD_COMPONENTS_REGISTRY.find((c) => c.name === name);\n}\nfunction getAllPptxComponentNames() {\n return PPTX_STANDARD_COMPONENTS_REGISTRY.map((c) => c.name);\n}\nfunction getPptxComponentsByCategory(category) {\n return PPTX_STANDARD_COMPONENTS_REGISTRY.filter((c) => c.category === category);\n}\nfunction getPptxContainerComponents() {\n return PPTX_STANDARD_COMPONENTS_REGISTRY.filter((c) => c.hasChildren);\n}\nfunction getPptxContentComponents() {\n return PPTX_STANDARD_COMPONENTS_REGISTRY.filter((c) => !c.hasChildren);\n}\nfunction isPptxStandardComponent(name) {\n return PPTX_STANDARD_COMPONENTS_REGISTRY.some((c) => c.name === name);\n}\nfunction createPptxComponentSchemaObject(component, recursiveRef) {\n const schema = {\n name: Type11.Literal(component.name),\n id: Type11.Optional(Type11.String()),\n enabled: Type11.Optional(\n Type11.Boolean({\n default: true,\n description: \"When false, this component is filtered out and not rendered. Defaults to true.\"\n })\n )\n };\n if (component.special?.hasSchemaField) {\n schema.$schema = Type11.Optional(Type11.String({ format: \"uri\" }));\n }\n schema.props = component.propsSchema;\n if (component.hasChildren && recursiveRef) {\n schema.children = Type11.Optional(Type11.Array(recursiveRef));\n }\n if (component.hasPlaceholders && recursiveRef) {\n const baseProperties = component.propsSchema.properties ?? {};\n schema.props = Type11.Object(\n {\n ...baseProperties,\n placeholders: Type11.Optional(\n Type11.Record(\n Type11.String(),\n recursiveRef,\n { description: 'Content for named placeholders: { \"title\": { \"name\": \"text\", ... } }' }\n )\n )\n },\n { additionalProperties: false, description: component.propsSchema.description }\n );\n }\n return Type11.Object(schema, { additionalProperties: false });\n}\nfunction createAllPptxComponentSchemas(recursiveRef) {\n return PPTX_STANDARD_COMPONENTS_REGISTRY.map(\n (component) => createPptxComponentSchemaObject(component, recursiveRef)\n );\n}\n\nexport {\n PositionSchema,\n SlideBackgroundSchema,\n TransitionSchema,\n PptxAlignmentSchema,\n VerticalAlignmentSchema,\n ShadowSchema,\n GridPositionSchema,\n TextPropsSchema,\n PptxImagePropsSchema,\n ShapeTypeSchema,\n TextSegmentSchema,\n ShapePropsSchema,\n PptxTablePropsSchema,\n PptxHighchartsPropsSchema,\n PresentationPropsSchema,\n SlidePropsSchema,\n PPTX_STANDARD_COMPONENTS_REGISTRY,\n getPptxStandardComponent,\n getAllPptxComponentNames,\n getPptxComponentsByCategory,\n getPptxContainerComponents,\n getPptxContentComponents,\n isPptxStandardComponent,\n createPptxComponentSchemaObject,\n createAllPptxComponentSchemas\n};\n//# sourceMappingURL=chunk-2USGRQBI.js.map","import {\n createAllPptxComponentSchemas\n} from \"./chunk-2USGRQBI.js\";\n\n// src/schemas/component-union.ts\nimport { Type } from \"@sinclair/typebox\";\nvar PptxStandardComponentDefinitionSchema = Type.Union(\n [...createAllPptxComponentSchemas(Type.Any())],\n {\n discriminator: { propertyName: \"name\" },\n description: \"Standard PPTX component definition with discriminated union\"\n }\n);\nvar PptxComponentDefinitionSchema = Type.Recursive(\n (This) => Type.Union(\n [...createAllPptxComponentSchemas(This)],\n {\n discriminator: { propertyName: \"name\" },\n description: \"PPTX component definition with discriminated union\"\n }\n )\n);\n\nexport {\n PptxStandardComponentDefinitionSchema,\n PptxComponentDefinitionSchema\n};\n//# sourceMappingURL=chunk-3MJF4X5S.js.map","import {\n PPTX_STANDARD_COMPONENTS_REGISTRY,\n createPptxComponentSchemaObject\n} from \"./chunk-2USGRQBI.js\";\n\n// src/schemas/generator.ts\nimport { Type } from \"@sinclair/typebox\";\nfunction generateUnifiedDocumentSchema(options = {}) {\n const { customComponents = [] } = options;\n return Type.Recursive((Self) => {\n const componentSchemas = [];\n for (const entry of PPTX_STANDARD_COMPONENTS_REGISTRY) {\n componentSchemas.push(createPptxComponentSchemaObject(entry, Self));\n }\n for (const custom of customComponents) {\n if (custom.versions.length > 0) {\n const latest = custom.versions.reduce(\n (a, b) => a.version > b.version ? a : b\n );\n const customDef = {\n name: custom.name,\n propsSchema: latest.propsSchema,\n hasChildren: latest.hasChildren ?? false,\n category: \"content\",\n description: custom.name\n };\n componentSchemas.push(createPptxComponentSchemaObject(customDef, Self));\n }\n }\n if (componentSchemas.length === 0) {\n return Type.Object({});\n }\n return Type.Union(componentSchemas);\n });\n}\n\nexport {\n generateUnifiedDocumentSchema\n};\n//# sourceMappingURL=chunk-USXTHQ7L.js.map","// src/schemas/schema-utils.ts\nimport { Type } from \"@sinclair/typebox\";\nfunction replaceRefs(obj, target, replacement) {\n if (typeof obj !== \"object\" || obj === null) return;\n if (Array.isArray(obj)) {\n obj.forEach((item) => {\n if (typeof item === \"object\" && item !== null) {\n replaceRefs(item, target, replacement);\n }\n });\n return;\n }\n if (obj.$ref === target) {\n obj.$ref = replacement;\n }\n for (const value of Object.values(obj)) {\n if (typeof value === \"object\" && value !== null) {\n replaceRefs(value, target, replacement);\n }\n }\n}\nfunction fixSchemaReferences(schema, rootDefinitionName = \"ComponentDefinition\") {\n function traverse(obj, path = \"\") {\n if (typeof obj !== \"object\" || obj === null) return;\n for (const [key, value] of Object.entries(obj)) {\n const currentPath = path ? `${path}.${key}` : key;\n if (value && typeof value === \"object\") {\n const schemaValue = value;\n if (schemaValue.type === \"array\" && schemaValue.items && Object.keys(schemaValue.items).length === 0) {\n schemaValue.items = {\n $ref: `#/definitions/${rootDefinitionName}`\n };\n }\n if (schemaValue.type === \"array\" && schemaValue.items && typeof schemaValue.items === \"object\" && \"$ref\" in schemaValue.items && typeof schemaValue.items.$ref === \"string\" && /^T\\d+$/.test(schemaValue.items.$ref)) {\n schemaValue.items = {\n $ref: `#/definitions/${rootDefinitionName}`\n };\n }\n if (typeof schemaValue.$ref === \"string\" && (/^T\\d+$/.test(schemaValue.$ref) || schemaValue.$ref === rootDefinitionName)) {\n schemaValue.$ref = `#/definitions/${rootDefinitionName}`;\n }\n if (key === \"$id\" && typeof value === \"string\" && (/^T\\d+$/.test(value) || value === rootDefinitionName) && currentPath !== `definitions.${rootDefinitionName}.$id`) {\n delete obj[key];\n continue;\n }\n traverse(value, currentPath);\n }\n }\n }\n traverse(schema);\n}\nfunction convertToJsonSchema(schema, options = {}) {\n const {\n $schema = \"https://json-schema.org/draft-07/schema#\",\n $id,\n title,\n description,\n definitions = {}\n } = options;\n const schemaJson = JSON.parse(JSON.stringify(schema));\n if (schemaJson.$id && typeof schemaJson.$id === \"string\" && /^T\\d+$/.test(schemaJson.$id)) {\n const recursiveId = schemaJson.$id;\n delete schemaJson.$id;\n replaceRefs(schemaJson, recursiveId, \"#\");\n }\n const extractedDefinitions = { ...definitions };\n function extractRecursiveSchemas(obj, path = \"\") {\n if (typeof obj !== \"object\" || obj === null) return;\n for (const [key, value] of Object.entries(obj)) {\n if (value && typeof value === \"object\") {\n const schemaValue = value;\n if (schemaValue.$id && typeof schemaValue.$id === \"string\") {\n const definitionName = schemaValue.$id;\n if (path !== `definitions.${definitionName}`) {\n const { $id: _id, ...schemaWithoutId } = schemaValue;\n extractedDefinitions[definitionName] = schemaWithoutId;\n obj[key] = { $ref: `#/definitions/${definitionName}` };\n extractRecursiveSchemas(\n schemaWithoutId,\n `definitions.${definitionName}`\n );\n continue;\n }\n }\n extractRecursiveSchemas(\n value,\n path ? `${path}.${key}` : key\n );\n }\n }\n }\n extractRecursiveSchemas(schemaJson);\n const jsonSchema = { $schema };\n if ($id) jsonSchema.$id = $id;\n Object.assign(jsonSchema, schemaJson);\n jsonSchema.$schema = $schema;\n if ($id) jsonSchema.$id = $id;\n if (title !== void 0) jsonSchema.title = title;\n if (description !== void 0) jsonSchema.description = description;\n if (Object.keys(extractedDefinitions).length > 0) {\n jsonSchema.definitions = extractedDefinitions;\n }\n fixSchemaReferences(jsonSchema);\n return jsonSchema;\n}\nfunction createComponentSchema(name, config, containerNames, componentDefinitionSchema) {\n const componentStructure = {\n $schema: \"https://json-schema.org/draft-07/schema#\",\n $id: `${name}.schema.json`,\n title: config.title,\n description: config.description,\n type: \"object\",\n required: [\"name\", \"props\"],\n properties: {\n name: {\n type: \"string\",\n const: name,\n description: `Component name identifier (must be \"${name}\")`\n },\n id: {\n type: \"string\",\n description: \"Optional unique identifier for the component\"\n },\n props: JSON.parse(JSON.stringify(config.schema))\n }\n };\n if (containerNames.includes(name)) {\n componentStructure.properties.children = {\n type: \"array\",\n description: \"Children within this container\",\n items: {\n $ref: \"#/definitions/ComponentDefinition\"\n }\n };\n if (componentDefinitionSchema) {\n componentStructure.definitions = {\n ComponentDefinition: JSON.parse(\n JSON.stringify(componentDefinitionSchema)\n )\n };\n }\n }\n fixSchemaReferences(componentStructure);\n componentStructure.additionalProperties = false;\n return componentStructure;\n}\nasync function exportSchemaToFile(schema, outputPath, options = {}) {\n const { prettyPrint = true } = options;\n const jsonSchema = prettyPrint ? JSON.stringify(schema, null, 2) : JSON.stringify(schema);\n const fs = await import(\"fs/promises\");\n await fs.writeFile(outputPath, jsonSchema, \"utf-8\");\n}\nfunction createComponentSchemaObject(component, recursiveRef) {\n const schema = {\n name: Type.Literal(component.name),\n id: Type.Optional(Type.String()),\n enabled: Type.Optional(\n Type.Boolean({\n default: true,\n description: \"When false, this component is filtered out and not rendered. Defaults to true.\"\n })\n )\n };\n if (component.special?.hasSchemaField) {\n schema.$schema = Type.Optional(Type.String({ format: \"uri\" }));\n }\n schema.props = component.propsSchema;\n if (component.hasChildren && recursiveRef) {\n schema.children = Type.Optional(Type.Array(recursiveRef));\n }\n return Type.Object(schema, { additionalProperties: false });\n}\n\nexport {\n fixSchemaReferences,\n convertToJsonSchema,\n createComponentSchema,\n exportSchemaToFile,\n createComponentSchemaObject\n};\n//# sourceMappingURL=chunk-5J43F4XD.js.map","// src/utils/semver.ts\nvar SEMVER_RE = /^(\\d+)\\.(\\d+)\\.(\\d+)$/;\nfunction isValidSemver(version) {\n return SEMVER_RE.test(version);\n}\nfunction parseSemver(version) {\n const match = version.match(SEMVER_RE);\n if (!match) {\n throw new Error(\n `Invalid semver: \"${version}\". Expected format: major.minor.patch`\n );\n }\n return {\n major: Number(match[1]),\n minor: Number(match[2]),\n patch: Number(match[3])\n };\n}\nfunction compareSemver(a, b) {\n const pa = parseSemver(a);\n const pb = parseSemver(b);\n return pa.major - pb.major || pa.minor - pb.minor || pa.patch - pb.patch;\n}\nfunction latestVersion(versions) {\n if (versions.length === 0) {\n throw new Error(\"Cannot determine latest version from empty array\");\n }\n return versions.reduce(\n (latest, v) => compareSemver(v, latest) > 0 ? v : latest\n );\n}\n\nexport {\n isValidSemver,\n parseSemver,\n compareSemver,\n latestVersion\n};\n//# sourceMappingURL=chunk-244MHDOZ.js.map","// src/validation/unified/schema-utils.ts\nvar componentNamesCache = /* @__PURE__ */ new Map();\nfunction isUnionSchema(schema) {\n return \"anyOf\" in schema && Array.isArray(schema.anyOf);\n}\nfunction isObjectSchema(schema) {\n return schema.type === \"object\" && \"properties\" in schema;\n}\nfunction isLiteralSchema(schema) {\n return \"const\" in schema;\n}\nfunction getObjectSchemaPropertyNames(schema) {\n if (isObjectSchema(schema)) {\n return Object.keys(schema.properties);\n }\n return [];\n}\nfunction getLiteralValue(schema) {\n if (isLiteralSchema(schema)) {\n return schema.const;\n }\n return void 0;\n}\nfunction extractStandardComponentNames(schema) {\n if (componentNamesCache.has(schema)) {\n return componentNamesCache.get(schema);\n }\n const names = [];\n if (\"anyOf\" in schema && Array.isArray(schema.anyOf)) {\n for (const componentSchema of schema.anyOf) {\n if (isObjectSchema(componentSchema)) {\n const nameProperty = componentSchema.properties?.name;\n if (nameProperty && isLiteralSchema(nameProperty)) {\n const nameValue = getLiteralValue(nameProperty);\n if (typeof nameValue === \"string\") {\n names.push(nameValue);\n }\n }\n }\n }\n } else if (isObjectSchema(schema)) {\n const nameProperty = schema.properties?.name ?? schema.properties?.type;\n if (nameProperty && isLiteralSchema(nameProperty)) {\n const nameValue = getLiteralValue(nameProperty);\n if (typeof nameValue === \"string\") {\n names.push(nameValue);\n }\n }\n }\n componentNamesCache.set(schema, names);\n return names;\n}\nfunction clearComponentNamesCache() {\n componentNamesCache.clear();\n}\nfunction getSchemaMetadata(schema) {\n const metadata = {};\n if (\"type\" in schema) {\n metadata.type = String(schema.type);\n }\n if (isObjectSchema(schema)) {\n metadata.properties = getObjectSchemaPropertyNames(schema);\n }\n if (isLiteralSchema(schema)) {\n metadata.literal = getLiteralValue(schema);\n }\n return metadata;\n}\n\n// src/validation/unified/error-formatter-config.ts\nfunction isCI() {\n if (typeof process === \"undefined\" || !process.env) return false;\n return !!(process.env.CI || process.env.GITHUB_ACTIONS || process.env.GITLAB_CI);\n}\nfunction hasColorSupport() {\n if (typeof process === \"undefined\") return false;\n if (process.env?.NO_COLOR) return false;\n if (process.env?.FORCE_COLOR) return true;\n if (process.stdout?.isTTY) return true;\n return !isCI();\n}\nvar DEFAULT_ERROR_CONFIG = {\n includeEmojis: !isCI(),\n verbosity: \"normal\",\n includeSuggestions: true,\n includePath: true,\n maxMessageLength: 0,\n includeDocLinks: false,\n colorSupport: hasColorSupport()\n};\nfunction createErrorConfig(config) {\n return { ...DEFAULT_ERROR_CONFIG, ...config };\n}\nvar ERROR_EMOJIS = {\n ERROR: \"\\u274C\",\n WARNING: \"\\u26A0\\uFE0F\",\n FIX: \"\\u{1F527}\",\n INFO: \"\\u2139\\uFE0F\",\n SUCCESS: \"\\u2705\"\n};\nfunction formatErrorMessage(message, config) {\n if (config.maxMessageLength > 0 && message.length > config.maxMessageLength) {\n return message.substring(0, config.maxMessageLength) + \"...\";\n }\n return message;\n}\n\n// src/validation/unified/error-transformer.ts\nfunction generateEnhancedMessage(error, _config) {\n const typeStr = String(error.type || \"\");\n const path = error.path || \"root\";\n if (typeStr === \"62\" || typeStr === \"union\") {\n return generateUnionErrorMessage(error);\n }\n if (error.message?.includes(\"additionalProperties\")) {\n return generateAdditionalPropertiesMessage(error);\n }\n if (error.message?.includes(\"Required property\")) {\n return generateRequiredPropertyMessage(error);\n }\n if (typeStr === \"string\" || typeStr === \"number\" || typeStr === \"boolean\" || typeStr === \"array\" || typeStr === \"object\") {\n return generateTypeMismatchMessage(error);\n }\n if (typeStr === \"literal\") {\n return generateLiteralErrorMessage(error);\n }\n if (typeStr === \"pattern\" || typeStr === \"RegExp\") {\n return generatePatternErrorMessage(error);\n }\n return `At ${path}: ${error.message}`;\n}\nfunction generateUnionErrorMessage(error) {\n const path = error.path || \"root\";\n const value = error.value;\n if (path === \"root\" || path === \"/\" || path === \"/jsonDefinition\") {\n if (value && typeof value === \"object\") {\n if (\"name\" in value) {\n return `Invalid component configuration for '${value.name}'. Check that all required fields are present.`;\n }\n if (\"children\" in value && Array.isArray(value.children)) {\n return \"Document is missing required 'name' field.\";\n }\n }\n return \"Invalid document structure. Check required fields.\";\n }\n if (path.includes(\"/children/\")) {\n if (value && typeof value === \"object\" && \"name\" in value) {\n const componentType = value.name;\n return `Invalid component configuration for type '${componentType}'. Check that all required fields are present and correctly formatted.`;\n }\n return 'Invalid component structure. Each component must have a \"name\" field and valid configuration.';\n }\n return `Value at ${path} doesn't match any of the expected formats. Check the structure and required fields.`;\n}\nfunction generateAdditionalPropertiesMessage(error) {\n const path = error.path || \"root\";\n const value = error.value;\n if (typeof value === \"object\" && value !== null) {\n const schema = error.schema;\n if (schema && isObjectSchema(schema)) {\n const knownProps = getObjectSchemaPropertyNames(schema);\n const actualProps = Object.keys(value);\n const unknownProps = actualProps.filter((p) => !knownProps.includes(p));\n if (unknownProps.length > 0) {\n return `Unknown properties at ${path}: ${unknownProps.join(\", \")}. Allowed properties are: ${knownProps.join(\", \")}`;\n }\n }\n }\n return `Additional properties not allowed at ${path}. Check for typos or unsupported fields.`;\n}\nfunction generateRequiredPropertyMessage(error) {\n const path = error.path || \"root\";\n const match = error.message?.match(/Required property '([^']+)'/);\n if (match) {\n const propName = match[1];\n return `Missing required field '${propName}' at ${path}. This field is mandatory.`;\n }\n return `Missing required property at ${path}. Check that all mandatory fields are present.`;\n}\nfunction generateTypeMismatchMessage(error) {\n const path = error.path || \"root\";\n const expectedType = String(error.type);\n const actualType = Array.isArray(error.value) ? \"array\" : typeof error.value;\n if (path.includes(\"alignment\")) {\n return `Invalid alignment value at ${path}. Expected one of: left, center, right, justify`;\n }\n if (path.includes(\"color\")) {\n return `Invalid color value at ${path}. Use hex format (#RRGGBB), rgb(r,g,b), or a named color`;\n }\n if (path.includes(\"fontSize\") || path.includes(\"size\")) {\n return `Invalid size value at ${path}. Expected a number (in points)`;\n }\n if (path.includes(\"margin\") || path.includes(\"padding\") || path.includes(\"spacing\")) {\n return `Invalid spacing value at ${path}. Expected a number or spacing object with top/bottom/left/right`;\n }\n return `Type mismatch at ${path}: Expected ${expectedType} but got ${actualType}`;\n}\nfunction generateLiteralErrorMessage(error) {\n const path = error.path || \"root\";\n const expected = error.schema ? JSON.stringify(getLiteralValue(error.schema)) : \"specific value\";\n const actual = JSON.stringify(error.value);\n return `Invalid value at ${path}: Expected exactly ${expected} but got ${actual}`;\n}\nfunction generatePatternErrorMessage(error) {\n const path = error.path || \"root\";\n if (path.includes(\"email\")) {\n return `Invalid email format at ${path}. Use format: user@example.com`;\n }\n if (path.includes(\"url\") || path.includes(\"link\")) {\n return `Invalid URL format at ${path}. Use format: https://example.com`;\n }\n if (path.includes(\"date\")) {\n return `Invalid date format at ${path}. Use ISO format: YYYY-MM-DD`;\n }\n return `Value at ${path} doesn't match the required pattern`;\n}\nfunction transformValueError(error, jsonString, config) {\n const formatterConfig = createErrorConfig(config);\n const enhancedMessage = generateEnhancedMessage(error, formatterConfig);\n const baseError = {\n path: error.path || \"root\",\n message: formatErrorMessage(\n enhancedMessage || error.message,\n formatterConfig\n ),\n code: String(error.type || \"validation_error\"),\n value: error.value\n };\n if (formatterConfig.includeSuggestions) {\n const suggestion = getSuggestion(error, formatterConfig);\n if (suggestion) {\n baseError.suggestion = formatErrorMessage(suggestion, formatterConfig);\n }\n }\n if (jsonString && error.path) {\n const position = calculatePosition(jsonString, error.path);\n if (position) {\n baseError.line = position.line;\n baseError.column = position.column;\n }\n }\n return baseError;\n}\nfunction transformValueErrors(errors, options) {\n const maxErrors = options?.maxErrors ?? Number.MAX_SAFE_INTEGER;\n const result = [];\n const seenPaths = /* @__PURE__ */ new Set();\n for (const error of errors) {\n if (result.length >= maxErrors) break;\n const errorKey = `${error.path}:${error.type}`;\n if (!seenPaths.has(errorKey)) {\n seenPaths.add(errorKey);\n result.push(transformValueError(error, options?.jsonString, void 0));\n }\n }\n return result;\n}\nfunction calculatePosition(jsonString, path) {\n try {\n const pathParts = path.split(\"/\").filter(Boolean);\n if (pathParts.length === 0) {\n return { line: 1, column: 1 };\n }\n const lastPart = pathParts[pathParts.length - 1];\n const searchPattern = `\"${lastPart}\"`;\n const index = jsonString.indexOf(searchPattern);\n if (index === -1) {\n return { line: 1, column: 1 };\n }\n const beforeError = jsonString.substring(0, index);\n const lines = beforeError.split(\"\\n\");\n const line = lines.length;\n const column = lines[lines.length - 1].length + 1;\n return { line, column };\n } catch {\n return null;\n }\n}\nfunction getSuggestion(error, _config) {\n const { type, path } = error;\n const typeStr = String(type);\n if (typeStr === \"62\" || typeStr === \"union\") {\n if (path === \"root\" || path === \"/\") {\n return 'Ensure the document has proper structure with a root \"name\" field';\n }\n if (path?.includes(\"/children/\")) {\n return 'Check that the component has a valid \"name\" and all required fields';\n }\n return \"Review the structure and ensure all required fields are present with correct types\";\n }\n if (error.message?.includes(\"additionalProperties\")) {\n return \"Remove any unknown or unsupported fields.\";\n }\n if (error.message?.includes(\"Required property\")) {\n return \"Add the missing required field to fix this error\";\n }\n if (typeStr === \"string\") {\n if (path?.includes(\"color\")) {\n return \"Use a valid color format (hex: #RRGGBB, rgb: rgb(r,g,b), or named color)\";\n }\n return \"Provide a text string value\";\n }\n if (typeStr === \"number\") {\n return \"Provide a numeric value\";\n }\n if (typeStr === \"boolean\") {\n return \"Use true or false (without quotes)\";\n }\n if (typeStr === \"array\") {\n return \"Provide an array of values using square brackets []\";\n }\n if (typeStr === \"object\") {\n return \"Provide an object with key-value pairs using curly braces {}\";\n }\n if (typeStr === \"literal\") {\n const expected = error.schema ? JSON.stringify(getLiteralValue(error.schema)) : \"specific value\";\n return `Use exactly this value: ${expected}`;\n }\n return void 0;\n}\nfunction formatErrorSummary(errors) {\n if (errors.length === 0) return \"No errors\";\n if (errors.length === 1) {\n return errors[0].message;\n }\n const summary = errors.slice(0, 3).map((e) => `${e.path}: ${e.message}`).join(\", \");\n if (errors.length > 3) {\n return `${summary} and ${errors.length - 3} more...`;\n }\n return summary;\n}\nfunction groupErrorsByPath(errors) {\n const grouped = /* @__PURE__ */ new Map();\n for (const error of errors) {\n const path = error.path || \"root\";\n const group = grouped.get(path) || [];\n group.push(error);\n grouped.set(path, group);\n }\n return grouped;\n}\nfunction createJsonParseError(error, jsonString) {\n const match = error.message.match(/position (\\d+)/);\n const position = match ? parseInt(match[1], 10) : 0;\n let line = 1;\n let column = 1;\n if (position > 0) {\n const lines = jsonString.substring(0, position).split(\"\\n\");\n line = lines.length;\n column = lines[lines.length - 1].length + 1;\n }\n return {\n path: \"root\",\n message: `JSON Parse Error: ${error.message}`,\n code: \"json_parse_error\",\n line,\n column,\n suggestion: \"Check for missing commas, quotes, or brackets\"\n };\n}\n\nexport {\n isUnionSchema,\n isObjectSchema,\n isLiteralSchema,\n getObjectSchemaPropertyNames,\n getLiteralValue,\n extractStandardComponentNames,\n clearComponentNamesCache,\n getSchemaMetadata,\n DEFAULT_ERROR_CONFIG,\n createErrorConfig,\n ERROR_EMOJIS,\n formatErrorMessage,\n transformValueError,\n transformValueErrors,\n calculatePosition,\n formatErrorSummary,\n groupErrorsByPath,\n createJsonParseError\n};\n//# sourceMappingURL=chunk-ZKD5BAMU.js.map","// src/schemas/font.ts\nimport { Type } from \"@sinclair/typebox\";\nvar HexColorSchema = Type.String({\n pattern: \"^(#[0-9A-Fa-f]{6}|[a-zA-Z][a-zA-Z0-9]*)$\",\n description: 'Hex color with # prefix (e.g. \"#000000\") or theme color name'\n});\nvar TextFormattingPropertiesSchema = Type.Object(\n {\n size: Type.Optional(Type.Number({ minimum: 8, maximum: 72 })),\n color: Type.Optional(HexColorSchema),\n bold: Type.Optional(Type.Boolean()),\n italic: Type.Optional(Type.Boolean()),\n underline: Type.Optional(Type.Boolean()),\n lineSpacing: Type.Optional(\n Type.Object({\n type: Type.Union([\n Type.Literal(\"single\"),\n Type.Literal(\"atLeast\"),\n Type.Literal(\"exactly\"),\n Type.Literal(\"double\"),\n Type.Literal(\"multiple\")\n ]),\n value: Type.Optional(Type.Number({ minimum: 0 }))\n })\n ),\n spacing: Type.Optional(\n Type.Object({\n before: Type.Optional(Type.Number({ minimum: 0 })),\n after: Type.Optional(Type.Number({ minimum: 0 }))\n })\n ),\n characterSpacing: Type.Optional(\n Type.Object({\n type: Type.Union([Type.Literal(\"condensed\"), Type.Literal(\"expanded\")]),\n value: Type.Number()\n })\n )\n },\n { additionalProperties: false }\n);\nvar FontDefinitionSchema = Type.Object(\n {\n family: Type.String(),\n ...TextFormattingPropertiesSchema.properties\n },\n {\n description: \"Font definition with family and optional formatting properties\",\n additionalProperties: false\n }\n);\n\nexport {\n HexColorSchema,\n TextFormattingPropertiesSchema,\n FontDefinitionSchema\n};\n//# sourceMappingURL=chunk-F5LVWDTY.js.map","import {\n FontDefinitionSchema,\n HexColorSchema\n} from \"./chunk-F5LVWDTY.js\";\n\n// src/schemas/component-registry.ts\nimport { Type as Type16 } from \"@sinclair/typebox\";\n\n// src/schemas/components/report.ts\nimport { Type } from \"@sinclair/typebox\";\nvar createReportPropsSchema = (_moduleRef) => Type.Object(\n {\n theme: Type.Optional(\n Type.String({\n description: 'Theme name to apply (default: \"minimal\")',\n examples: [\"corporate\", \"professional\", \"minimal\"],\n default: \"minimal\"\n })\n ),\n metadata: Type.Optional(\n Type.Object(\n {\n title: Type.Optional(\n Type.String({\n description: \"Document title\",\n examples: [\"Annual Report 2024\", \"Technical Documentation\"]\n })\n ),\n subtitle: Type.Optional(\n Type.String({\n description: \"Document subtitle\"\n })\n ),\n description: Type.Optional(Type.String()),\n author: Type.Optional(Type.String()),\n company: Type.Optional(Type.String()),\n date: Type.Optional(Type.String()),\n created: Type.Optional(Type.String({ format: \"date-time\" })),\n modified: Type.Optional(Type.String({ format: \"date-time\" })),\n version: Type.Optional(Type.String()),\n tags: Type.Optional(Type.Array(Type.String()))\n },\n {\n description: \"Document metadata (title, author, company, dates, etc.)\",\n additionalProperties: false\n }\n )\n )\n },\n {\n description: \"Report component props\",\n additionalProperties: false\n }\n);\nvar ReportPropsSchema = createReportPropsSchema();\n\n// src/schemas/components/section.ts\nimport { Type as Type3 } from \"@sinclair/typebox\";\n\n// src/schemas/components/common.ts\nimport { Type as Type2 } from \"@sinclair/typebox\";\nvar AlignmentSchema = Type2.Union(\n [Type2.Literal(\"left\"), Type2.Literal(\"center\"), Type2.Literal(\"right\")],\n { description: \"Text alignment options\" }\n);\nvar JustifiedAlignmentSchema = Type2.Union(\n [\n Type2.Literal(\"left\"),\n Type2.Literal(\"center\"),\n Type2.Literal(\"right\"),\n Type2.Literal(\"justify\")\n ],\n { description: \"Text alignment options including justify\" }\n);\nvar HeadingLevelSchema = Type2.Union(\n [\n Type2.Literal(1),\n Type2.Literal(2),\n Type2.Literal(3),\n Type2.Literal(4),\n Type2.Literal(5),\n Type2.Literal(6)\n ],\n { description: \"Heading level (1-6)\" }\n);\nvar SpacingSchema = Type2.Object(\n {\n before: Type2.Optional(\n Type2.Number({\n minimum: 0,\n description: \"Spacing before element in points\"\n })\n ),\n after: Type2.Optional(\n Type2.Number({\n minimum: 0,\n description: \"Spacing after element in points\"\n })\n )\n },\n {\n description: \"Spacing configuration\",\n additionalProperties: false\n }\n);\nvar ListSpacingSchema = Type2.Object(\n {\n before: Type2.Optional(\n Type2.Number({\n minimum: 0,\n description: \"Spacing before list in points\"\n })\n ),\n after: Type2.Optional(\n Type2.Number({\n minimum: 0,\n description: \"Spacing after list in points\"\n })\n ),\n item: Type2.Optional(\n Type2.Number({\n minimum: 0,\n description: \"Spacing between list items in points\"\n })\n )\n },\n {\n description: \"List spacing configuration with item spacing\",\n additionalProperties: false\n }\n);\nvar MarginsSchema = Type2.Object(\n {\n top: Type2.Optional(Type2.Number({ minimum: 0 })),\n bottom: Type2.Optional(Type2.Number({ minimum: 0 })),\n left: Type2.Optional(Type2.Number({ minimum: 0 })),\n right: Type2.Optional(Type2.Number({ minimum: 0 }))\n },\n { description: \"Margin configuration\" }\n);\nvar BorderSchema = Type2.Object(\n {\n style: Type2.Optional(\n Type2.Union([\n Type2.Literal(\"solid\"),\n Type2.Literal(\"dashed\"),\n Type2.Literal(\"dotted\"),\n Type2.Literal(\"double\"),\n Type2.Literal(\"none\")\n ])\n ),\n width: Type2.Optional(Type2.Number({ minimum: 0 })),\n color: Type2.Optional(HexColorSchema)\n },\n { description: \"Border configuration\" }\n);\nvar LineSpacingSchema = Type2.Object(\n {\n type: Type2.Union([\n Type2.Literal(\"single\"),\n Type2.Literal(\"atLeast\"),\n Type2.Literal(\"exactly\"),\n Type2.Literal(\"double\"),\n Type2.Literal(\"multiple\")\n ]),\n value: Type2.Optional(Type2.Number({ minimum: 0 }))\n },\n { description: \"Line spacing configuration\" }\n);\nvar IndentSchema = Type2.Object(\n {\n left: Type2.Optional(Type2.Number({ minimum: 0 })),\n hanging: Type2.Optional(Type2.Number({ minimum: 0 }))\n },\n { description: \"Indentation configuration\" }\n);\nvar HorizontalPositionRelativeFromSchema = Type2.Union(\n [\n Type2.Literal(\"character\"),\n Type2.Literal(\"column\"),\n Type2.Literal(\"margin\"),\n Type2.Literal(\"page\"),\n Type2.Literal(\"text\")\n // VML compatibility for text-box\n ],\n {\n description: \"Horizontal position relative to\"\n }\n);\nvar VerticalPositionRelativeFromSchema = Type2.Union(\n [\n Type2.Literal(\"margin\"),\n Type2.Literal(\"page\"),\n Type2.Literal(\"paragraph\"),\n Type2.Literal(\"line\"),\n Type2.Literal(\"text\")\n // VML compatibility for text-box\n ],\n {\n description: \"Vertical position relative to\"\n }\n);\nvar HorizontalPositionAlignSchema = Type2.Union(\n [\n Type2.Literal(\"left\"),\n Type2.Literal(\"center\"),\n Type2.Literal(\"right\"),\n Type2.Literal(\"inside\"),\n Type2.Literal(\"outside\")\n ],\n {\n description: \"Horizontal alignment\"\n }\n);\nvar VerticalPositionAlignSchema = Type2.Union(\n [\n Type2.Literal(\"top\"),\n Type2.Literal(\"center\"),\n Type2.Literal(\"bottom\"),\n Type2.Literal(\"inside\"),\n Type2.Literal(\"outside\")\n ],\n {\n description: \"Vertical alignment\"\n }\n);\nvar TextWrappingTypeSchema = Type2.Union(\n [\n Type2.Literal(\"none\"),\n Type2.Literal(\"square\"),\n Type2.Literal(\"topAndBottom\"),\n Type2.Literal(\"around\"),\n // VML compatibility for text-box\n Type2.Literal(\"tight\"),\n // VML compatibility for text-box\n Type2.Literal(\"through\")\n // VML compatibility for text-box\n ],\n {\n description: \"Text wrapping type\"\n }\n);\nvar TextWrappingSideSchema = Type2.Union(\n [\n Type2.Literal(\"bothSides\"),\n Type2.Literal(\"left\"),\n Type2.Literal(\"right\"),\n Type2.Literal(\"largest\")\n ],\n {\n description: \"Text wrapping side\"\n }\n);\nvar FloatingPropertiesSchema = Type2.Object(\n {\n horizontalPosition: Type2.Optional(\n Type2.Object(\n {\n relative: Type2.Optional(HorizontalPositionRelativeFromSchema),\n align: Type2.Optional(HorizontalPositionAlignSchema),\n offset: Type2.Optional(\n Type2.Number({\n description: \"Horizontal offset in twips (1/20 of a point)\"\n })\n )\n },\n {\n description: \"Horizontal positioning (use either align or offset, not both)\"\n }\n )\n ),\n verticalPosition: Type2.Optional(\n Type2.Object(\n {\n relative: Type2.Optional(VerticalPositionRelativeFromSchema),\n align: Type2.Optional(VerticalPositionAlignSchema),\n offset: Type2.Optional(\n Type2.Number({\n description: \"Vertical offset in twips (1/20 of a point)\"\n })\n )\n },\n {\n description: \"Vertical positioning (use either align or offset, not both)\"\n }\n )\n ),\n wrap: Type2.Optional(\n Type2.Object(\n {\n type: TextWrappingTypeSchema,\n side: Type2.Optional(TextWrappingSideSchema),\n margins: Type2.Optional(\n Type2.Object(\n {\n top: Type2.Optional(\n Type2.Number({ description: \"Top margin in twips\" })\n ),\n bottom: Type2.Optional(\n Type2.Number({ description: \"Bottom margin in twips\" })\n ),\n left: Type2.Optional(\n Type2.Number({ description: \"Left margin in twips\" })\n ),\n right: Type2.Optional(\n Type2.Number({ description: \"Right margin in twips\" })\n )\n },\n {\n description: \"Distance from text margins\"\n }\n )\n )\n },\n {\n description: \"Text wrapping configuration\"\n }\n )\n ),\n allowOverlap: Type2.Optional(\n Type2.Boolean({\n description: \"Allow element to overlap with other elements\"\n })\n ),\n behindDocument: Type2.Optional(\n Type2.Boolean({\n description: \"Place element behind document text\"\n })\n ),\n lockAnchor: Type2.Optional(\n Type2.Boolean({\n description: \"Lock the anchor position\"\n })\n ),\n layoutInCell: Type2.Optional(\n Type2.Boolean({\n description: \"Layout element within table cell\"\n })\n ),\n zIndex: Type2.Optional(\n Type2.Number({\n minimum: 0,\n description: \"Z-order for overlapping elements (must be non-negative)\"\n })\n ),\n rotation: Type2.Optional(\n Type2.Number({\n description: \"Rotation angle in degrees\"\n })\n ),\n visibility: Type2.Optional(\n Type2.Union([Type2.Literal(\"hidden\"), Type2.Literal(\"inherit\")], {\n description: \"Visibility of the floating element\"\n })\n )\n },\n {\n description: \"Floating element properties\"\n }\n);\nvar NumberingSchema = Type2.Object(\n {\n start: Type2.Optional(Type2.Number({ minimum: 1 })),\n style: Type2.Optional(\n Type2.Union([\n Type2.Literal(\"decimal\"),\n Type2.Literal(\"lowerLetter\"),\n Type2.Literal(\"upperLetter\"),\n Type2.Literal(\"lowerRoman\"),\n Type2.Literal(\"upperRoman\")\n ])\n ),\n separator: Type2.Optional(Type2.String())\n },\n { description: \"Numbering configuration for lists\" }\n);\nvar BaseComponentFields = {};\nvar BaseComponentPropsSchema = Type2.Object(BaseComponentFields, {\n description: \"Base component props\",\n additionalProperties: true\n});\n\n// src/schemas/components/section.ts\nvar createSectionPropsSchema = (moduleRef) => Type3.Object(\n {\n title: Type3.Optional(\n Type3.String({\n description: \"Section title (optional)\"\n })\n ),\n level: Type3.Optional(\n Type3.Number({\n minimum: 1,\n maximum: 9,\n description: \"Heading level for section title (1-9)\",\n default: 1\n })\n ),\n header: Type3.Optional(\n Type3.Union([\n Type3.Array(moduleRef || Type3.Any(), {\n description: \"Section header modules\"\n }),\n Type3.Literal(\"linkToPrevious\", {\n description: \"Link header to previous section\"\n })\n ])\n ),\n footer: Type3.Optional(\n Type3.Union([\n Type3.Array(moduleRef || Type3.Any(), {\n description: \"Section footer modules\"\n }),\n Type3.Literal(\"linkToPrevious\", {\n description: \"Link footer to previous section\"\n })\n ])\n ),\n pageBreak: Type3.Optional(\n Type3.Boolean({\n description: \"Insert page break before section\",\n default: true\n })\n ),\n spacing: Type3.Optional(SpacingSchema),\n page: Type3.Optional(\n Type3.Object(\n {\n size: Type3.Optional(\n Type3.Union([\n Type3.Literal(\"A4\"),\n Type3.Literal(\"A3\"),\n Type3.Literal(\"LETTER\"),\n Type3.Literal(\"LEGAL\"),\n Type3.Object({\n width: Type3.Number({ minimum: 0 }),\n height: Type3.Number({ minimum: 0 })\n })\n ])\n ),\n margins: Type3.Optional(\n Type3.Object(\n {\n top: Type3.Optional(Type3.Number({ minimum: 0 })),\n bottom: Type3.Optional(Type3.Number({ minimum: 0 })),\n left: Type3.Optional(Type3.Number({ minimum: 0 })),\n right: Type3.Optional(Type3.Number({ minimum: 0 })),\n header: Type3.Optional(Type3.Number({ minimum: 0 })),\n footer: Type3.Optional(Type3.Number({ minimum: 0 })),\n gutter: Type3.Optional(Type3.Number({ minimum: 0 }))\n },\n {\n additionalProperties: false\n }\n )\n )\n },\n {\n description: \"Page configuration override for this section (overrides theme page settings)\",\n additionalProperties: false\n }\n )\n )\n },\n {\n description: \"Section component props\",\n additionalProperties: false\n }\n);\nvar SectionPropsSchema = createSectionPropsSchema();\n\n// src/schemas/components/columns.ts\nimport { Type as Type4 } from \"@sinclair/typebox\";\nvar ColumnDescriptorSchema = Type4.Object(\n {\n width: Type4.Optional(\n Type4.Union([\n Type4.Number({\n minimum: 1,\n description: \"Column width in points\"\n }),\n Type4.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Column width as percentage of available width (e.g., \"30%\")'\n }),\n Type4.Literal(\"auto\", {\n description: \"Auto width: consume remaining space after fixed widths and gaps\"\n })\n ])\n ),\n gap: Type4.Optional(\n Type4.Union([\n Type4.Number({\n minimum: 0,\n description: \"Gap after this column in points\"\n }),\n Type4.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Gap after this column as percentage of available width (e.g., \"5%\")'\n })\n ])\n )\n },\n { additionalProperties: false }\n);\nvar ColumnsPropsSchema = Type4.Object(\n {\n columns: Type4.Union([\n Type4.Number({\n minimum: 1,\n description: \"Number of equal-width columns (converter will normalize to array)\"\n }),\n Type4.Array(ColumnDescriptorSchema, {\n minItems: 1,\n description: \"List of columns in order; width and gap can be points, percentages, or auto width\"\n })\n ]),\n gap: Type4.Optional(\n Type4.Union([\n Type4.Number({\n minimum: 0,\n description: \"Default gap applied after each column except the last (points)\"\n }),\n Type4.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Default gap applied after each column except the last as percentage of available width (e.g., \"5%\")'\n })\n ])\n )\n },\n {\n description: \"Columns component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/heading.ts\nimport { Type as Type5 } from \"@sinclair/typebox\";\nvar HeadingPropsSchema = Type5.Object(\n {\n text: Type5.String({\n description: \"Heading text (required)\"\n }),\n level: Type5.Optional(HeadingLevelSchema),\n // Local font override: allows customizing family/size/color/bold/italic/underline\n // without modifying theme styles. Supports partial overrides.\n font: Type5.Optional(Type5.Partial(FontDefinitionSchema)),\n alignment: Type5.Optional(JustifiedAlignmentSchema),\n spacing: Type5.Optional(SpacingSchema),\n lineSpacing: Type5.Optional(\n Type5.Union([Type5.Number({ minimum: 0 }), LineSpacingSchema])\n ),\n pageBreak: Type5.Optional(\n Type5.Boolean({\n description: \"Insert page break before heading\"\n })\n ),\n columnBreak: Type5.Optional(\n Type5.Boolean({\n description: \"Insert column break before heading\"\n })\n ),\n numbering: Type5.Optional(\n Type5.Boolean({\n description: \"Include in numbering\"\n })\n ),\n keepNext: Type5.Optional(\n Type5.Boolean({\n description: \"Keep heading with next paragraph on same page\"\n })\n ),\n keepLines: Type5.Optional(\n Type5.Boolean({\n description: \"Keep all lines of heading together on same page\"\n })\n )\n },\n {\n description: \"Heading component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/paragraph.ts\nimport { Type as Type6 } from \"@sinclair/typebox\";\nvar FrameWrapTypeSchema = Type6.Union(\n [\n Type6.Literal(\"around\"),\n Type6.Literal(\"none\"),\n Type6.Literal(\"notBeside\"),\n Type6.Literal(\"through\"),\n Type6.Literal(\"tight\"),\n Type6.Literal(\"auto\")\n ],\n {\n description: \"Frame text wrapping type\"\n }\n);\nvar FrameAnchorTypeSchema = Type6.Union(\n [Type6.Literal(\"margin\"), Type6.Literal(\"page\"), Type6.Literal(\"text\")],\n {\n description: \"Frame anchor type\"\n }\n);\nvar FrameHorizontalAlignSchema = Type6.Union(\n [\n Type6.Literal(\"left\"),\n Type6.Literal(\"center\"),\n Type6.Literal(\"right\"),\n Type6.Literal(\"inside\"),\n Type6.Literal(\"outside\")\n ],\n {\n description: \"Frame horizontal alignment\"\n }\n);\nvar FrameVerticalAlignSchema = Type6.Union(\n [\n Type6.Literal(\"top\"),\n Type6.Literal(\"center\"),\n Type6.Literal(\"bottom\"),\n Type6.Literal(\"inside\"),\n Type6.Literal(\"outside\")\n ],\n {\n description: \"Frame vertical alignment\"\n }\n);\nvar FloatingFramePropertiesSchema = Type6.Object(\n {\n horizontalPosition: Type6.Optional(\n Type6.Object(\n {\n relative: Type6.Optional(FrameAnchorTypeSchema),\n align: Type6.Optional(FrameHorizontalAlignSchema),\n offset: Type6.Optional(\n Type6.Number({\n description: \"Horizontal offset in twips (1/20 of a point)\"\n })\n )\n },\n {\n description: \"Horizontal positioning (use either align or offset, not both)\"\n }\n )\n ),\n verticalPosition: Type6.Optional(\n Type6.Object(\n {\n relative: Type6.Optional(FrameAnchorTypeSchema),\n align: Type6.Optional(FrameVerticalAlignSchema),\n offset: Type6.Optional(\n Type6.Number({\n description: \"Vertical offset in twips (1/20 of a point)\"\n })\n )\n },\n {\n description: \"Vertical positioning (use either align or offset, not both)\"\n }\n )\n ),\n wrap: Type6.Optional(\n Type6.Object(\n {\n type: FrameWrapTypeSchema\n },\n {\n description: \"Text wrapping configuration\"\n }\n )\n ),\n lockAnchor: Type6.Optional(\n Type6.Boolean({\n description: \"Lock the anchor position\"\n })\n ),\n width: Type6.Optional(\n Type6.Number({\n minimum: 1,\n description: \"Frame width in twips (DXA units)\"\n })\n ),\n height: Type6.Optional(\n Type6.Number({\n minimum: 1,\n description: \"Frame height in twips (DXA units)\"\n })\n )\n },\n {\n description: \"Floating text frame properties\"\n }\n);\nvar AlignmentSchema2 = Type6.Union(\n [\n Type6.Literal(\"left\"),\n Type6.Literal(\"center\"),\n Type6.Literal(\"right\"),\n Type6.Literal(\"justify\")\n ],\n {\n description: \"Paragraph text alignment\"\n }\n);\nvar ParagraphPropsSchema = Type6.Object(\n {\n text: Type6.String({\n description: \"Text content (required)\"\n }),\n // New nested font object, aligned with theme's FontDefinitionSchema\n // Allow partial overrides (family not required when overriding a subset)\n font: Type6.Optional(Type6.Partial(FontDefinitionSchema)),\n // Optional reference to a named style from theme.styles (e.g., 'heading1', 'normal')\n themeStyle: Type6.Optional(Type6.String()),\n // Rich-text decoration color for bold segments (kept as top-level behavior option)\n boldColor: Type6.Optional(Type6.String()),\n // Paragraph spacing (in points) — limited paragraph-level option allowed\n spacing: Type6.Optional(SpacingSchema),\n // Paragraph alignment (moved from font to config level)\n alignment: Type6.Optional(AlignmentSchema2),\n pageBreak: Type6.Optional(\n Type6.Boolean({\n description: \"Insert page break before paragraph\"\n })\n ),\n columnBreak: Type6.Optional(\n Type6.Boolean({\n description: \"Insert column break before paragraph\"\n })\n ),\n floating: Type6.Optional(FloatingFramePropertiesSchema),\n keepNext: Type6.Optional(\n Type6.Boolean({\n description: \"Keep paragraph with next paragraph on same page\"\n })\n ),\n keepLines: Type6.Optional(\n Type6.Boolean({\n description: \"Keep all lines of paragraph together on same page\"\n })\n ),\n id: Type6.Optional(\n Type6.String({\n description: \"Unique identifier for internal linking (bookmark anchor)\"\n })\n )\n },\n {\n description: \"Paragraph component props (font nested for theme consistency; no flat font properties)\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/text-box.ts\nimport { Type as Type7 } from \"@sinclair/typebox\";\nvar TextBoxPropsSchema = Type7.Object(\n {\n width: Type7.Optional(\n Type7.Union(\n [\n Type7.Number({\n minimum: 1,\n description: \"Text box width in pixels\"\n }),\n Type7.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Text box width as percentage (e.g., \"50%\") relative to content width'\n })\n ],\n {\n description: 'Text box width in pixels (number) or as percentage string (e.g., \"50%\")'\n }\n )\n ),\n height: Type7.Optional(\n Type7.Union(\n [\n Type7.Number({\n minimum: 1,\n description: \"Text box height in pixels\"\n }),\n Type7.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Text box height as percentage (e.g., \"50%\") relative to content height'\n })\n ],\n {\n description: 'Text box height in pixels (number) or as percentage string (e.g., \"50%\")'\n }\n )\n ),\n floating: Type7.Optional(FloatingPropertiesSchema),\n style: Type7.Optional(\n Type7.Object(\n {\n padding: Type7.Optional(\n Type7.Object(\n {\n top: Type7.Optional(Type7.Number({ minimum: 0 })),\n right: Type7.Optional(Type7.Number({ minimum: 0 })),\n bottom: Type7.Optional(Type7.Number({ minimum: 0 })),\n left: Type7.Optional(Type7.Number({ minimum: 0 }))\n },\n { additionalProperties: false }\n )\n ),\n border: Type7.Optional(\n Type7.Object(\n {\n top: Type7.Optional(\n // Reuse border schema semantics: style/width/color\n Type7.Object({\n style: Type7.Optional(\n Type7.Union([\n Type7.Literal(\"solid\"),\n Type7.Literal(\"dashed\"),\n Type7.Literal(\"dotted\"),\n Type7.Literal(\"double\"),\n Type7.Literal(\"none\")\n ])\n ),\n width: Type7.Optional(Type7.Number({ minimum: 0 })),\n color: Type7.Optional(HexColorSchema)\n })\n ),\n right: Type7.Optional(\n Type7.Object({\n style: Type7.Optional(\n Type7.Union([\n Type7.Literal(\"solid\"),\n Type7.Literal(\"dashed\"),\n Type7.Literal(\"dotted\"),\n Type7.Literal(\"double\"),\n Type7.Literal(\"none\")\n ])\n ),\n width: Type7.Optional(Type7.Number({ minimum: 0 })),\n color: Type7.Optional(HexColorSchema)\n })\n ),\n bottom: Type7.Optional(\n Type7.Object({\n style: Type7.Optional(\n Type7.Union([\n Type7.Literal(\"solid\"),\n Type7.Literal(\"dashed\"),\n Type7.Literal(\"dotted\"),\n Type7.Literal(\"double\"),\n Type7.Literal(\"none\")\n ])\n ),\n width: Type7.Optional(Type7.Number({ minimum: 0 })),\n color: Type7.Optional(HexColorSchema)\n })\n ),\n left: Type7.Optional(\n Type7.Object({\n style: Type7.Optional(\n Type7.Union([\n Type7.Literal(\"solid\"),\n Type7.Literal(\"dashed\"),\n Type7.Literal(\"dotted\"),\n Type7.Literal(\"double\"),\n Type7.Literal(\"none\")\n ])\n ),\n width: Type7.Optional(Type7.Number({ minimum: 0 })),\n color: Type7.Optional(HexColorSchema)\n })\n )\n },\n { additionalProperties: false }\n )\n ),\n shading: Type7.Optional(\n Type7.Object(\n {\n fill: Type7.Optional(Type7.String())\n },\n { additionalProperties: false }\n )\n )\n },\n { additionalProperties: false }\n )\n )\n },\n { additionalProperties: false }\n);\n\n// src/schemas/components/image.ts\nimport { Type as Type8 } from \"@sinclair/typebox\";\nvar ImagePropsSchema = Type8.Object(\n {\n path: Type8.Optional(\n Type8.String({\n description: \"Image source URL or file path (mutually exclusive with base64)\"\n })\n ),\n base64: Type8.Optional(\n Type8.String({\n description: 'Base64-encoded image data in data URI format (e.g., \"data:image/png;base64,iVBORw0KGgo...\") (mutually exclusive with path)'\n })\n ),\n alt: Type8.Optional(\n Type8.String({\n description: \"Alternative text for accessibility\"\n })\n ),\n width: Type8.Optional(\n Type8.Union(\n [\n Type8.Number({\n minimum: 1,\n description: \"Image width in pixels\"\n }),\n Type8.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Image width as percentage (e.g., \"90%\") relative to widthRelativeTo (defaults to content width)'\n })\n ],\n {\n description: 'Image width in pixels (number) or as percentage string (e.g., \"90%\")',\n default: \"100%\"\n }\n )\n ),\n height: Type8.Optional(\n Type8.Union(\n [\n Type8.Number({\n minimum: 1,\n description: \"Image height in pixels\"\n }),\n Type8.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Image height as percentage (e.g., \"90%\") relative to heightRelativeTo (defaults to content height)'\n })\n ],\n {\n description: 'Image height in pixels (number) or as percentage string (e.g., \"90%\")'\n }\n )\n ),\n widthRelativeTo: Type8.Optional(\n Type8.Union([Type8.Literal(\"content\"), Type8.Literal(\"page\")], {\n description: \"Reference for width percentages: content (page width minus margins) or page (full page width)\",\n default: \"content\"\n })\n ),\n heightRelativeTo: Type8.Optional(\n Type8.Union([Type8.Literal(\"content\"), Type8.Literal(\"page\")], {\n description: \"Reference for height percentages: content (page height minus margins) or page (full page height)\",\n default: \"content\"\n })\n ),\n alignment: Type8.Optional(AlignmentSchema),\n caption: Type8.Optional(\n Type8.String({\n description: \"Image caption (supports rich text with **bold**, *italic*, ***both***)\"\n })\n ),\n spacing: Type8.Optional(SpacingSchema),\n floating: Type8.Optional(FloatingPropertiesSchema),\n keepNext: Type8.Optional(\n Type8.Boolean({\n description: \"Keep paragraph with next paragraph on same page\"\n })\n ),\n keepLines: Type8.Optional(\n Type8.Boolean({\n description: \"Keep all lines of paragraph together on same page\"\n })\n )\n },\n {\n description: \"Image component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/statistic.ts\nimport { Type as Type9 } from \"@sinclair/typebox\";\nvar StatisticPropsSchema = Type9.Object(\n {\n number: Type9.String({\n description: \"Statistic number/value (required)\"\n }),\n description: Type9.String({\n description: \"Statistic description (required)\"\n }),\n unit: Type9.Optional(\n Type9.String({\n description: \"Unit of measurement\"\n })\n ),\n format: Type9.Optional(\n Type9.String({\n description: \"Number format pattern\"\n })\n ),\n trend: Type9.Optional(\n Type9.Union([\n Type9.Literal(\"up\"),\n Type9.Literal(\"down\"),\n Type9.Literal(\"neutral\")\n ])\n ),\n trendValue: Type9.Optional(Type9.Union([Type9.String(), Type9.Number()])),\n alignment: Type9.Optional(AlignmentSchema),\n spacing: Type9.Optional(SpacingSchema),\n size: Type9.Optional(\n Type9.Union([\n Type9.Literal(\"small\"),\n Type9.Literal(\"medium\"),\n Type9.Literal(\"large\")\n ])\n )\n },\n {\n description: \"Statistic component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/table.ts\nimport { Type as Type10 } from \"@sinclair/typebox\";\nvar CellContentSchema = Type10.Recursive(\n (This) => Type10.Union([\n Type10.String(),\n Type10.Object(\n {\n name: Type10.String(),\n props: Type10.Object({}, { additionalProperties: true }),\n children: Type10.Optional(Type10.Array(This))\n },\n { additionalProperties: false }\n )\n ])\n);\nvar HorizontalAlignmentSchema = Type10.Union(\n [\n Type10.Literal(\"left\"),\n Type10.Literal(\"center\"),\n Type10.Literal(\"right\"),\n Type10.Literal(\"justify\")\n ],\n { description: \"Horizontal text alignment\" }\n);\nvar VerticalAlignmentSchema = Type10.Union(\n [Type10.Literal(\"top\"), Type10.Literal(\"middle\"), Type10.Literal(\"bottom\")],\n { description: \"Vertical cell alignment\" }\n);\nvar FontConfigSchema = Type10.Object({\n family: Type10.Optional(Type10.String({ description: \"Font family name\" })),\n size: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Font size in points\" })\n ),\n bold: Type10.Optional(Type10.Boolean({ description: \"Bold text\" })),\n italic: Type10.Optional(Type10.Boolean({ description: \"Italic text\" })),\n underline: Type10.Optional(Type10.Boolean({ description: \"Underlined text\" }))\n});\nvar BorderColorSchema = Type10.Union([\n Type10.String({ description: \"Border color for all sides (hex without #)\" }),\n Type10.Object({\n bottom: Type10.Optional(\n Type10.String({ description: \"Bottom border color (hex without #)\" })\n ),\n top: Type10.Optional(\n Type10.String({ description: \"Top border color (hex without #)\" })\n ),\n right: Type10.Optional(\n Type10.String({ description: \"Right border color (hex without #)\" })\n ),\n left: Type10.Optional(\n Type10.String({ description: \"Left border color (hex without #)\" })\n )\n })\n]);\nvar BorderSizeSchema = Type10.Union([\n Type10.Number({\n minimum: 0,\n description: \"Border size for all sides in points\"\n }),\n Type10.Object({\n bottom: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Bottom border size in points\" })\n ),\n top: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Top border size in points\" })\n ),\n right: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Right border size in points\" })\n ),\n left: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Left border size in points\" })\n )\n })\n]);\nvar HideBordersSchema = Type10.Union([\n Type10.Boolean({\n description: \"Hide all borders when true\"\n }),\n Type10.Object(\n {\n bottom: Type10.Optional(\n Type10.Boolean({ description: \"Hide bottom border\" })\n ),\n top: Type10.Optional(Type10.Boolean({ description: \"Hide top border\" })),\n right: Type10.Optional(Type10.Boolean({ description: \"Hide right border\" })),\n left: Type10.Optional(Type10.Boolean({ description: \"Hide left border\" })),\n insideHorizontal: Type10.Optional(\n Type10.Boolean({ description: \"Hide horizontal borders between rows\" })\n ),\n insideVertical: Type10.Optional(\n Type10.Boolean({ description: \"Hide vertical borders between columns\" })\n )\n },\n { description: \"Selectively hide specific borders\" }\n )\n]);\nvar PaddingSchema = Type10.Union([\n Type10.Number({ minimum: 0, description: \"Padding for all sides in points\" }),\n Type10.Object({\n bottom: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Bottom padding in points\" })\n ),\n top: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Top padding in points\" })\n ),\n right: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Right padding in points\" })\n ),\n left: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Left padding in points\" })\n )\n })\n]);\nvar CellDefaultsSchema = Type10.Object({\n color: Type10.Optional(HexColorSchema),\n backgroundColor: Type10.Optional(HexColorSchema),\n horizontalAlignment: Type10.Optional(HorizontalAlignmentSchema),\n verticalAlignment: Type10.Optional(VerticalAlignmentSchema),\n font: Type10.Optional(FontConfigSchema),\n borderColor: Type10.Optional(BorderColorSchema),\n borderSize: Type10.Optional(BorderSizeSchema),\n padding: Type10.Optional(PaddingSchema),\n height: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Cell height in points\" })\n )\n});\nvar HeaderSchema = Type10.Object({\n color: Type10.Optional(HexColorSchema),\n backgroundColor: Type10.Optional(HexColorSchema),\n horizontalAlignment: Type10.Optional(HorizontalAlignmentSchema),\n verticalAlignment: Type10.Optional(VerticalAlignmentSchema),\n font: Type10.Optional(FontConfigSchema),\n borderColor: Type10.Optional(BorderColorSchema),\n borderSize: Type10.Optional(BorderSizeSchema),\n padding: Type10.Optional(PaddingSchema),\n height: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Cell height in points\" })\n ),\n content: Type10.Optional(CellContentSchema)\n});\nvar CellSchema = Type10.Object({\n color: Type10.Optional(HexColorSchema),\n backgroundColor: Type10.Optional(HexColorSchema),\n horizontalAlignment: Type10.Optional(HorizontalAlignmentSchema),\n verticalAlignment: Type10.Optional(VerticalAlignmentSchema),\n font: Type10.Optional(FontConfigSchema),\n borderColor: Type10.Optional(BorderColorSchema),\n borderSize: Type10.Optional(BorderSizeSchema),\n padding: Type10.Optional(PaddingSchema),\n height: Type10.Optional(\n Type10.Number({ minimum: 0, description: \"Cell height in points\" })\n ),\n content: Type10.Optional(CellContentSchema)\n});\nvar ColumnSchema = Type10.Object({\n width: Type10.Optional(\n Type10.Number({\n minimum: 0,\n description: \"Column width in points. When set on some columns, remaining columns will automatically share the leftover table space equally. Leave undefined to distribute space evenly among unspecified columns.\"\n })\n ),\n cellDefaults: Type10.Optional(CellDefaultsSchema),\n header: Type10.Optional(HeaderSchema),\n cells: Type10.Optional(Type10.Array(CellSchema))\n});\nvar TablePropsSchema = Type10.Object(\n {\n borderColor: Type10.Optional(BorderColorSchema),\n borderSize: Type10.Optional(BorderSizeSchema),\n hideBorders: Type10.Optional(HideBordersSchema),\n cellDefaults: Type10.Optional(CellDefaultsSchema),\n headerCellDefaults: Type10.Optional(CellDefaultsSchema),\n width: Type10.Optional(\n Type10.Number({\n minimum: 0,\n maximum: 100,\n description: \"Table width in percentage (0-100)\"\n })\n ),\n columns: Type10.Array(ColumnSchema, {\n description: \"Table columns with headers and cells\",\n minItems: 1\n }),\n keepInOnePage: Type10.Optional(\n Type10.Boolean({\n description: \"Keep table rows together on the same page by setting keepNext on all paragraphs\"\n })\n ),\n keepNext: Type10.Optional(\n Type10.Boolean({\n description: \"Set keepNext on the last row to keep it connected to the next element. Works independently of keepInOnePage. Defaults to false.\"\n })\n ),\n repeatHeaderOnPageBreak: Type10.Optional(\n Type10.Boolean({\n description: \"Repeat the header row on each page when the table spans multiple pages. Defaults to false.\",\n default: true\n })\n )\n },\n {\n description: \"Table component props with column-based structure\"\n }\n);\n\n// src/schemas/components/header.ts\nimport { Type as Type11 } from \"@sinclair/typebox\";\nvar HeaderPropsSchema = Type11.Object(\n {\n text: Type11.Optional(\n Type11.String({\n description: \"Header text\"\n })\n ),\n logo: Type11.Optional(\n Type11.String({\n description: \"Logo image URL or path\"\n })\n ),\n alignment: Type11.Optional(AlignmentSchema),\n position: Type11.Optional(\n Type11.Union([Type11.Literal(\"top\"), Type11.Literal(\"bottom\")])\n ),\n firstPage: Type11.Optional(\n Type11.Boolean({\n description: \"Show header on first page\"\n })\n ),\n oddPages: Type11.Optional(\n Type11.Boolean({\n description: \"Show header on odd pages\"\n })\n ),\n evenPages: Type11.Optional(\n Type11.Boolean({\n description: \"Show header on even pages\"\n })\n ),\n showPageNumbers: Type11.Optional(Type11.Boolean()),\n showDate: Type11.Optional(Type11.Boolean()),\n height: Type11.Optional(Type11.Number({ minimum: 0 }))\n },\n {\n description: \"Document header configuration\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/footer.ts\nimport { Type as Type12 } from \"@sinclair/typebox\";\nvar FooterPropsSchema = Type12.Object(\n {\n text: Type12.Optional(\n Type12.String({\n description: \"Footer text\"\n })\n ),\n alignment: Type12.Optional(AlignmentSchema),\n position: Type12.Optional(\n Type12.Union([Type12.Literal(\"top\"), Type12.Literal(\"bottom\")])\n ),\n firstPage: Type12.Optional(\n Type12.Boolean({\n description: \"Show footer on first page\"\n })\n ),\n oddPages: Type12.Optional(\n Type12.Boolean({\n description: \"Show footer on odd pages\"\n })\n ),\n evenPages: Type12.Optional(\n Type12.Boolean({\n description: \"Show footer on even pages\"\n })\n ),\n showPageNumbers: Type12.Optional(Type12.Boolean()),\n showDate: Type12.Optional(Type12.Boolean()),\n height: Type12.Optional(Type12.Number({ minimum: 0 }))\n },\n {\n description: \"Document footer configuration\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/list.ts\nimport { Type as Type13 } from \"@sinclair/typebox\";\nvar LevelFormatSchema = Type13.Union(\n [\n Type13.Literal(\"decimal\"),\n Type13.Literal(\"upperRoman\"),\n Type13.Literal(\"lowerRoman\"),\n Type13.Literal(\"upperLetter\"),\n Type13.Literal(\"lowerLetter\"),\n Type13.Literal(\"bullet\"),\n Type13.Literal(\"ordinal\"),\n Type13.Literal(\"cardinalText\"),\n Type13.Literal(\"ordinalText\"),\n Type13.Literal(\"hex\"),\n Type13.Literal(\"chicago\"),\n Type13.Literal(\"ideographDigital\"),\n Type13.Literal(\"japaneseCounting\"),\n Type13.Literal(\"aiueo\"),\n Type13.Literal(\"iroha\"),\n Type13.Literal(\"decimalFullWidth\"),\n Type13.Literal(\"decimalHalfWidth\"),\n Type13.Literal(\"japaneseLegal\"),\n Type13.Literal(\"japaneseDigitalTenThousand\"),\n Type13.Literal(\"decimalEnclosedCircle\"),\n Type13.Literal(\"decimalFullWidth2\"),\n Type13.Literal(\"aiueoFullWidth\"),\n Type13.Literal(\"irohaFullWidth\"),\n Type13.Literal(\"decimalZero\"),\n Type13.Literal(\"ganada\"),\n Type13.Literal(\"chosung\"),\n Type13.Literal(\"decimalEnclosedFullstop\"),\n Type13.Literal(\"decimalEnclosedParen\"),\n Type13.Literal(\"decimalEnclosedCircleChinese\"),\n Type13.Literal(\"ideographEnclosedCircle\"),\n Type13.Literal(\"ideographTraditional\"),\n Type13.Literal(\"ideographZodiac\"),\n Type13.Literal(\"ideographZodiacTraditional\"),\n Type13.Literal(\"taiwaneseCounting\"),\n Type13.Literal(\"ideographLegalTraditional\"),\n Type13.Literal(\"taiwaneseCountingThousand\"),\n Type13.Literal(\"taiwaneseDigital\"),\n Type13.Literal(\"chineseCounting\"),\n Type13.Literal(\"chineseLegalSimplified\"),\n Type13.Literal(\"chineseCountingThousand\"),\n Type13.Literal(\"koreanDigital\"),\n Type13.Literal(\"koreanCounting\"),\n Type13.Literal(\"koreanLegal\"),\n Type13.Literal(\"koreanDigital2\"),\n Type13.Literal(\"vietnameseCounting\"),\n Type13.Literal(\"russianLower\"),\n Type13.Literal(\"russianUpper\"),\n Type13.Literal(\"none\"),\n Type13.Literal(\"numberInDash\"),\n Type13.Literal(\"hebrew1\"),\n Type13.Literal(\"hebrew2\"),\n Type13.Literal(\"arabicAlpha\"),\n Type13.Literal(\"arabicAbjad\"),\n Type13.Literal(\"hindiVowels\"),\n Type13.Literal(\"hindiConsonants\"),\n Type13.Literal(\"hindiNumbers\"),\n Type13.Literal(\"hindiCounting\"),\n Type13.Literal(\"thaiLetters\"),\n Type13.Literal(\"thaiNumbers\"),\n Type13.Literal(\"thaiCounting\")\n ],\n {\n description: \"Number or bullet format for list levels\"\n }\n);\nvar ListLevelPropsSchema = Type13.Object(\n {\n level: Type13.Number({\n minimum: 0,\n maximum: 8,\n description: \"Nesting level (0 = root, 1 = first sublevel, etc.)\"\n }),\n format: Type13.Optional(LevelFormatSchema),\n text: Type13.Optional(\n Type13.String({\n description: 'Number format string (e.g., \"%1.\" for \"1.\", \"%1)\" for \"1)\", custom bullet character for bullet format)'\n })\n ),\n alignment: Type13.Optional(\n Type13.Union(\n [\n Type13.Literal(\"start\"),\n Type13.Literal(\"end\"),\n Type13.Literal(\"left\"),\n Type13.Literal(\"right\"),\n Type13.Literal(\"center\")\n ],\n {\n description: \"Alignment of the numbering/bullet\"\n }\n )\n ),\n indent: Type13.Optional(IndentSchema),\n start: Type13.Optional(\n Type13.Number({\n minimum: 1,\n description: \"Starting number for this level (default: 1)\"\n })\n )\n },\n {\n description: \"Configuration for a single list level\"\n }\n);\nvar ListPropsSchema = Type13.Object(\n {\n items: Type13.Array(\n Type13.Union([\n Type13.String(),\n Type13.Object({\n text: Type13.String(),\n level: Type13.Optional(\n Type13.Number({\n minimum: 0,\n maximum: 8,\n description: \"Nesting level for this item\"\n })\n )\n })\n ]),\n {\n description: \"List items (required)\",\n minItems: 1\n }\n ),\n reference: Type13.Optional(\n Type13.String({\n description: \"Unique reference ID for this numbering configuration (auto-generated if not provided)\"\n })\n ),\n levels: Type13.Optional(\n Type13.Array(ListLevelPropsSchema, {\n description: \"Configuration for each nesting level\",\n minItems: 1,\n maxItems: 9\n })\n ),\n // Simplified options for common use cases (when levels not specified)\n format: Type13.Optional(\n Type13.Union(\n [LevelFormatSchema, Type13.Literal(\"numbered\"), Type13.Literal(\"none\")],\n {\n description: \"Format for level 0 (simplified option when levels not specified)\"\n }\n )\n ),\n bullet: Type13.Optional(\n Type13.String({\n description: \"Custom bullet character (simplified option when levels not specified)\"\n })\n ),\n start: Type13.Optional(\n Type13.Number({\n minimum: 1,\n description: \"Starting number for level 0 (simplified option when levels not specified)\"\n })\n ),\n spacing: Type13.Optional(ListSpacingSchema),\n alignment: Type13.Optional(JustifiedAlignmentSchema),\n indent: Type13.Optional(\n Type13.Union([Type13.Number({ minimum: 0 }), IndentSchema])\n )\n },\n {\n description: \"List component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/toc.ts\nimport { Type as Type14 } from \"@sinclair/typebox\";\nvar TocStyleSchema = Type14.Union(\n [Type14.Literal(\"numeric\"), Type14.Literal(\"bullet\"), Type14.Literal(\"none\")],\n { description: \"TOC numbering style\" }\n);\nvar TocScopeSchema = Type14.Union(\n [Type14.Literal(\"document\"), Type14.Literal(\"section\")],\n { description: \"TOC scope: document-wide or section-only\" }\n);\nvar TocStyleMappingSchema = Type14.Object(\n {\n styleId: Type14.String({\n description: \"Custom style ID matching a key in theme.styles\"\n }),\n level: Type14.Number({\n minimum: 1,\n maximum: 6,\n description: \"TOC level (1-6) to assign to this style\"\n })\n },\n {\n description: \"Mapping of custom style to TOC level\",\n additionalProperties: false\n }\n);\nvar TocDepthRangeSchema = Type14.Object(\n {\n from: Type14.Optional(\n Type14.Number({\n minimum: 1,\n maximum: 6,\n default: 1,\n description: \"Starting heading level (1-6). Defaults to 1 if not specified.\"\n })\n ),\n to: Type14.Optional(\n Type14.Number({\n minimum: 1,\n maximum: 6,\n default: 3,\n description: \"Ending heading level (1-6). Defaults to 3 if not specified.\"\n })\n )\n },\n {\n description: 'Range of heading levels to include in TOC. Specify at least one of \"from\" or \"to\".',\n additionalProperties: false\n }\n);\nvar TocPropsSchema = Type14.Object(\n {\n pageBreak: Type14.Optional(\n Type14.Boolean({\n description: \"Insert page break before TOC block\"\n })\n ),\n depth: Type14.Optional(\n Type14.Object(\n {\n from: Type14.Optional(\n Type14.Number({\n minimum: 1,\n maximum: 6,\n default: 1,\n description: \"Starting heading level (1-6). Defaults to 1 if not specified.\"\n })\n ),\n to: Type14.Optional(\n Type14.Number({\n minimum: 1,\n maximum: 6,\n default: 3,\n description: \"Ending heading level (1-6). Defaults to 3 if not specified.\"\n })\n )\n },\n {\n description: 'Range of heading levels to include in TOC. Specify \"from\", \"to\", or both. Defaults: from=1, to=3',\n additionalProperties: false,\n default: { to: 3 }\n }\n )\n ),\n pageNumbersDepth: Type14.Optional(\n Type14.Object(\n {\n from: Type14.Optional(\n Type14.Number({\n minimum: 1,\n maximum: 6,\n default: 1,\n description: \"Starting heading level (1-6). Defaults to 1 if not specified.\"\n })\n ),\n to: Type14.Optional(\n Type14.Number({\n minimum: 1,\n maximum: 6,\n default: 3,\n description: \"Ending heading level (1-6). Defaults to 3 if not specified.\"\n })\n )\n },\n {\n description: 'Range of heading levels to show page numbers. Specify \"from\", \"to\", or both. When specified, page numbers are hidden for entries outside this range.',\n additionalProperties: false\n }\n )\n ),\n numberingStyle: Type14.Optional(TocStyleSchema),\n title: Type14.Optional(\n Type14.String({\n description: \"TOC heading title\"\n })\n ),\n includePageNumbers: Type14.Optional(\n Type14.Boolean({\n default: true,\n description: \"Show page numbers next to entries\"\n })\n ),\n numberSeparator: Type14.Optional(\n Type14.Boolean({\n default: true,\n description: 'Use tab separator between entry and page number. True applies \"\\\\t\" (default), false applies \" \"'\n })\n ),\n scope: Type14.Optional(\n Type14.Union([TocScopeSchema, Type14.Literal(\"auto\")], {\n default: \"auto\",\n description: 'TOC scope: \"document\" for entire document, \"section\" for parent section only, \"auto\" for automatic detection (section if inside section, otherwise document)'\n })\n ),\n styles: Type14.Optional(\n Type14.Array(TocStyleMappingSchema, {\n description: \"Custom style mappings for TOC entries. Maps custom theme styles to TOC levels.\"\n })\n )\n },\n {\n description: \"Table of Contents component props\",\n additionalProperties: false\n }\n);\n\n// src/schemas/components/highcharts.ts\nimport { Type as Type15 } from \"@sinclair/typebox\";\nvar HighchartsPropsSchema = Type15.Object({\n // Highcharts chart options - can be anything but must at least have chart.width and chart.height\n options: Type15.Intersect([\n Type15.Record(Type15.String(), Type15.Unknown()),\n Type15.Object({\n chart: Type15.Object({\n width: Type15.Number(),\n height: Type15.Number()\n })\n })\n ]),\n // Optional scale factor for export\n scale: Type15.Optional(Type15.Number()),\n // Optional Highcharts Export Server URL override\n serverUrl: Type15.Optional(Type15.String({ description: \"Highcharts Export Server URL (default: http://localhost:7801)\" })),\n // Optional width for rendering (overrides chart width)\n width: Type15.Optional(\n Type15.Union(\n [\n Type15.Number({\n minimum: 1,\n description: \"Image width in pixels\"\n }),\n Type15.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Image width as percentage (e.g., \"90%\") relative to content width'\n })\n ],\n {\n description: 'Rendered image width in pixels (number) or as percentage string (e.g., \"90%\")'\n }\n )\n ),\n // Optional height for rendering (overrides chart height)\n height: Type15.Optional(\n Type15.Union(\n [\n Type15.Number({\n minimum: 1,\n description: \"Image height in pixels\"\n }),\n Type15.String({\n pattern: \"^\\\\d+(\\\\.\\\\d+)?%$\",\n description: 'Image height as percentage (e.g., \"90%\") relative to content height'\n })\n ],\n {\n description: 'Rendered image height in pixels (number) or as percentage string (e.g., \"90%\")'\n }\n )\n )\n});\n\n// src/schemas/component-registry.ts\nvar STANDARD_COMPONENTS_REGISTRY = [\n // ========================================================================\n // Container Components (can contain children)\n // ========================================================================\n {\n name: \"docx\",\n propsSchema: ReportPropsSchema,\n hasChildren: true,\n category: \"container\",\n description: \"Main document container - defines the overall document structure. Required as the root component.\",\n special: {\n hasSchemaField: true\n // Only docx root has $schema field\n }\n },\n {\n name: \"section\",\n propsSchema: SectionPropsSchema,\n hasChildren: true,\n category: \"container\",\n description: \"Section container - groups related content with optional title. Use for organizing document structure.\"\n },\n {\n name: \"columns\",\n propsSchema: ColumnsPropsSchema,\n hasChildren: true,\n category: \"layout\",\n description: \"Multi-column layout - arranges content in 2-4 columns. Great for side-by-side content.\"\n },\n {\n name: \"text-box\",\n propsSchema: TextBoxPropsSchema,\n hasChildren: true,\n category: \"layout\",\n description: \"Floating text container - allows positioning text anywhere on the page with absolute or relative positioning.\"\n },\n // ========================================================================\n // Content Components (leaf nodes, no children)\n // ========================================================================\n {\n name: \"heading\",\n propsSchema: HeadingPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Heading text - supports levels 1-6 for document hierarchy. Level 1 is largest.\"\n },\n {\n name: \"paragraph\",\n propsSchema: ParagraphPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Paragraph text - supports formatting like bold, italic, and color. Main content element.\"\n },\n {\n name: \"image\",\n propsSchema: ImagePropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Image element - displays images with optional caption. Supports various formats.\"\n },\n {\n name: \"statistic\",\n propsSchema: StatisticPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Statistic display - shows a number with description. Perfect for KPIs and metrics.\"\n },\n {\n name: \"table\",\n propsSchema: TablePropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Data table - displays tabular data with headers. Supports formatting and alignment.\"\n },\n {\n name: \"header\",\n propsSchema: HeaderPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Page header - appears at the top of pages. Can include text and page numbers.\"\n },\n {\n name: \"footer\",\n propsSchema: FooterPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Page footer - appears at the bottom of pages. Can include text and page numbers.\"\n },\n {\n name: \"list\",\n propsSchema: ListPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"List element - bulleted or numbered list items. Supports nested lists.\"\n },\n {\n name: \"toc\",\n propsSchema: TocPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Table of contents - automatically generates TOC from document headings. Supports depth ranges and custom styles.\"\n },\n {\n name: \"highcharts\",\n propsSchema: HighchartsPropsSchema,\n hasChildren: false,\n category: \"content\",\n description: \"Chart component powered by Highcharts - render line, bar, pie, heatmap, and more with rich options.\"\n }\n];\nfunction getStandardComponent(name) {\n return STANDARD_COMPONENTS_REGISTRY.find((c) => c.name === name);\n}\nfunction getAllStandardComponentNames() {\n return STANDARD_COMPONENTS_REGISTRY.map((c) => c.name);\n}\nfunction getComponentsByCategory(category) {\n return STANDARD_COMPONENTS_REGISTRY.filter((c) => c.category === category);\n}\nfunction getContainerComponents() {\n return STANDARD_COMPONENTS_REGISTRY.filter((c) => c.hasChildren);\n}\nfunction getContentComponents() {\n return STANDARD_COMPONENTS_REGISTRY.filter((c) => !c.hasChildren);\n}\nfunction isStandardComponent(name) {\n return STANDARD_COMPONENTS_REGISTRY.some((c) => c.name === name);\n}\nfunction createComponentSchemaObject(component, recursiveRef) {\n const schema = {\n name: Type16.Literal(component.name),\n id: Type16.Optional(Type16.String()),\n enabled: Type16.Optional(\n Type16.Boolean({\n default: true,\n description: \"When false, this component is filtered out and not rendered. Defaults to true. Useful for conditional component inclusion.\"\n })\n )\n };\n if (component.special?.hasSchemaField) {\n schema.$schema = Type16.Optional(Type16.String({ format: \"uri\" }));\n }\n schema.props = component.propsSchema;\n if (component.hasChildren && recursiveRef) {\n schema.children = Type16.Optional(Type16.Array(recursiveRef));\n }\n return Type16.Object(schema, { additionalProperties: false });\n}\nfunction createAllComponentSchemas(recursiveRef) {\n return STANDARD_COMPONENTS_REGISTRY.map(\n (component) => createComponentSchemaObject(component, recursiveRef)\n );\n}\n\nexport {\n createReportPropsSchema,\n ReportPropsSchema,\n AlignmentSchema,\n JustifiedAlignmentSchema,\n HeadingLevelSchema,\n SpacingSchema,\n ListSpacingSchema,\n MarginsSchema,\n BorderSchema,\n LineSpacingSchema,\n IndentSchema,\n HorizontalPositionRelativeFromSchema,\n VerticalPositionRelativeFromSchema,\n HorizontalPositionAlignSchema,\n VerticalPositionAlignSchema,\n TextWrappingTypeSchema,\n TextWrappingSideSchema,\n FloatingPropertiesSchema,\n NumberingSchema,\n BaseComponentFields,\n BaseComponentPropsSchema,\n createSectionPropsSchema,\n SectionPropsSchema,\n ColumnsPropsSchema,\n HeadingPropsSchema,\n ParagraphPropsSchema,\n TextBoxPropsSchema,\n ImagePropsSchema,\n StatisticPropsSchema,\n TablePropsSchema,\n HeaderPropsSchema,\n FooterPropsSchema,\n LevelFormatSchema,\n ListLevelPropsSchema,\n ListPropsSchema,\n TocStyleSchema,\n TocScopeSchema,\n TocStyleMappingSchema,\n TocDepthRangeSchema,\n TocPropsSchema,\n HighchartsPropsSchema,\n STANDARD_COMPONENTS_REGISTRY,\n getStandardComponent,\n getAllStandardComponentNames,\n getComponentsByCategory,\n getContainerComponents,\n getContentComponents,\n isStandardComponent,\n createComponentSchemaObject,\n createAllComponentSchemas\n};\n//# sourceMappingURL=chunk-5533WPL6.js.map","import {\n STANDARD_COMPONENTS_REGISTRY,\n createComponentSchemaObject,\n getStandardComponent\n} from \"./chunk-5533WPL6.js\";\n\n// src/schemas/generator.ts\nimport { Type } from \"@sinclair/typebox\";\nimport { latestVersion } from \"@json-to-office/shared\";\nfunction generateUnifiedDocumentSchema(options = {}) {\n const {\n includeStandardComponents = true,\n customComponents = [],\n title = \"JSON Report Definition\",\n description = \"JSON report definition with TypeBox schemas\"\n } = options;\n const ComponentDefinition = Type.Recursive(\n (This) => {\n const componentSchemas = [];\n if (includeStandardComponents) {\n for (const component of STANDARD_COMPONENTS_REGISTRY) {\n componentSchemas.push(createComponentSchemaObject(component, This));\n }\n }\n for (const customComponent of customComponents) {\n if (customComponent.versionedProps && customComponent.versionedProps.length > 0) {\n const versionEntries = customComponent.versionedProps;\n const latest = latestVersion(versionEntries.map((e) => e.version));\n for (const entry of versionEntries) {\n const versionLiteralDesc = entry.description || customComponent.description;\n const schema = {\n name: Type.Literal(customComponent.name),\n id: Type.Optional(Type.String()),\n version: versionLiteralDesc ? Type.Literal(entry.version, {\n description: versionLiteralDesc\n }) : Type.Literal(entry.version),\n props: entry.propsSchema\n };\n if (entry.hasChildren) {\n schema.children = Type.Optional(Type.Array(This));\n }\n const versionDesc = entry.description ? `${customComponent.name} v${entry.version} \\u2014 ${entry.description}` : customComponent.description ? `${customComponent.name} v${entry.version} \\u2014 ${customComponent.description}` : `${customComponent.name} v${entry.version}`;\n componentSchemas.push(\n Type.Object(schema, {\n additionalProperties: false,\n description: versionDesc\n })\n );\n }\n const latestEntry = versionEntries.find((e) => e.version === latest);\n const fallbackSchema = {\n name: Type.Literal(customComponent.name),\n id: Type.Optional(Type.String()),\n props: latestEntry.propsSchema\n };\n if (latestEntry.hasChildren) {\n fallbackSchema.children = Type.Optional(Type.Array(This));\n }\n const fallbackDesc = latestEntry.description ? `${customComponent.name} (latest: v${latest}) \\u2014 ${latestEntry.description}` : customComponent.description ? `${customComponent.name} (latest: v${latest}) \\u2014 ${customComponent.description}` : `${customComponent.name} (latest: v${latest})`;\n componentSchemas.push(\n Type.Object(fallbackSchema, {\n additionalProperties: false,\n description: fallbackDesc\n })\n );\n } else {\n const hasChildren = !!customComponent.hasChildren;\n const schema = {\n name: Type.Literal(customComponent.name),\n id: Type.Optional(Type.String()),\n props: customComponent.propsSchema\n };\n if (hasChildren) {\n schema.children = Type.Optional(Type.Array(This));\n }\n componentSchemas.push(\n Type.Object(schema, {\n additionalProperties: false,\n ...customComponent.description ? { description: customComponent.description } : {}\n })\n );\n }\n }\n if (componentSchemas.length === 0) {\n return Type.Any();\n } else if (componentSchemas.length === 1) {\n return componentSchemas[0];\n } else {\n const componentDescription = customComponents.length > 0 ? \"Component definition with discriminated union including custom components\" : \"Component definition with discriminated union\";\n return Type.Union(componentSchemas, {\n discriminator: { propertyName: \"name\" },\n description: componentDescription\n });\n }\n },\n { $id: \"ComponentDefinition\" }\n );\n const reportComponent = getStandardComponent(\"docx\");\n if (!reportComponent) {\n throw new Error(\"Docx root component not found in registry\");\n }\n return Type.Object(\n {\n name: Type.Literal(\"docx\"),\n id: Type.Optional(Type.String()),\n $schema: Type.Optional(Type.String({ format: \"uri\" })),\n props: reportComponent.propsSchema,\n children: Type.Optional(Type.Array(ComponentDefinition))\n },\n {\n additionalProperties: false,\n title,\n description\n }\n );\n}\n\nexport {\n generateUnifiedDocumentSchema\n};\n//# sourceMappingURL=chunk-LWR4TFZ5.js.map","import { Kind } from '../type/symbols/index.mjs';\nimport { ValueErrorType } from './errors.mjs';\n/** Creates an error message using en-US as the default locale */\nexport function DefaultErrorFunction(error) {\n switch (error.errorType) {\n case ValueErrorType.ArrayContains:\n return 'Expected array to contain at least one matching value';\n case ValueErrorType.ArrayMaxContains:\n return `Expected array to contain no more than ${error.schema.maxContains} matching values`;\n case ValueErrorType.ArrayMinContains:\n return `Expected array to contain at least ${error.schema.minContains} matching values`;\n case ValueErrorType.ArrayMaxItems:\n return `Expected array length to be less or equal to ${error.schema.maxItems}`;\n case ValueErrorType.ArrayMinItems:\n return `Expected array length to be greater or equal to ${error.schema.minItems}`;\n case ValueErrorType.ArrayUniqueItems:\n return 'Expected array elements to be unique';\n case ValueErrorType.Array:\n return 'Expected array';\n case ValueErrorType.AsyncIterator:\n return 'Expected AsyncIterator';\n case ValueErrorType.BigIntExclusiveMaximum:\n return `Expected bigint to be less than ${error.schema.exclusiveMaximum}`;\n case ValueErrorType.BigIntExclusiveMinimum:\n return `Expected bigint to be greater than ${error.schema.exclusiveMinimum}`;\n case ValueErrorType.BigIntMaximum:\n return `Expected bigint to be less or equal to ${error.schema.maximum}`;\n case ValueErrorType.BigIntMinimum:\n return `Expected bigint to be greater or equal to ${error.schema.minimum}`;\n case ValueErrorType.BigIntMultipleOf:\n return `Expected bigint to be a multiple of ${error.schema.multipleOf}`;\n case ValueErrorType.BigInt:\n return 'Expected bigint';\n case ValueErrorType.Boolean:\n return 'Expected boolean';\n case ValueErrorType.DateExclusiveMinimumTimestamp:\n return `Expected Date timestamp to be greater than ${error.schema.exclusiveMinimumTimestamp}`;\n case ValueErrorType.DateExclusiveMaximumTimestamp:\n return `Expected Date timestamp to be less than ${error.schema.exclusiveMaximumTimestamp}`;\n case ValueErrorType.DateMinimumTimestamp:\n return `Expected Date timestamp to be greater or equal to ${error.schema.minimumTimestamp}`;\n case ValueErrorType.DateMaximumTimestamp:\n return `Expected Date timestamp to be less or equal to ${error.schema.maximumTimestamp}`;\n case ValueErrorType.DateMultipleOfTimestamp:\n return `Expected Date timestamp to be a multiple of ${error.schema.multipleOfTimestamp}`;\n case ValueErrorType.Date:\n return 'Expected Date';\n case ValueErrorType.Function:\n return 'Expected function';\n case ValueErrorType.IntegerExclusiveMaximum:\n return `Expected integer to be less than ${error.schema.exclusiveMaximum}`;\n case ValueErrorType.IntegerExclusiveMinimum:\n return `Expected integer to be greater than ${error.schema.exclusiveMinimum}`;\n case ValueErrorType.IntegerMaximum:\n return `Expected integer to be less or equal to ${error.schema.maximum}`;\n case ValueErrorType.IntegerMinimum:\n return `Expected integer to be greater or equal to ${error.schema.minimum}`;\n case ValueErrorType.IntegerMultipleOf:\n return `Expected integer to be a multiple of ${error.schema.multipleOf}`;\n case ValueErrorType.Integer:\n return 'Expected integer';\n case ValueErrorType.IntersectUnevaluatedProperties:\n return 'Unexpected property';\n case ValueErrorType.Intersect:\n return 'Expected all values to match';\n case ValueErrorType.Iterator:\n return 'Expected Iterator';\n case ValueErrorType.Literal:\n return `Expected ${typeof error.schema.const === 'string' ? `'${error.schema.const}'` : error.schema.const}`;\n case ValueErrorType.Never:\n return 'Never';\n case ValueErrorType.Not:\n return 'Value should not match';\n case ValueErrorType.Null:\n return 'Expected null';\n case ValueErrorType.NumberExclusiveMaximum:\n return `Expected number to be less than ${error.schema.exclusiveMaximum}`;\n case ValueErrorType.NumberExclusiveMinimum:\n return `Expected number to be greater than ${error.schema.exclusiveMinimum}`;\n case ValueErrorType.NumberMaximum:\n return `Expected number to be less or equal to ${error.schema.maximum}`;\n case ValueErrorType.NumberMinimum:\n return `Expected number to be greater or equal to ${error.schema.minimum}`;\n case ValueErrorType.NumberMultipleOf:\n return `Expected number to be a multiple of ${error.schema.multipleOf}`;\n case ValueErrorType.Number:\n return 'Expected number';\n case ValueErrorType.Object:\n return 'Expected object';\n case ValueErrorType.ObjectAdditionalProperties:\n return 'Unexpected property';\n case ValueErrorType.ObjectMaxProperties:\n return `Expected object to have no more than ${error.schema.maxProperties} properties`;\n case ValueErrorType.ObjectMinProperties:\n return `Expected object to have at least ${error.schema.minProperties} properties`;\n case ValueErrorType.ObjectRequiredProperty:\n return 'Expected required property';\n case ValueErrorType.Promise:\n return 'Expected Promise';\n case ValueErrorType.RegExp:\n return 'Expected string to match regular expression';\n case ValueErrorType.StringFormatUnknown:\n return `Unknown format '${error.schema.format}'`;\n case ValueErrorType.StringFormat:\n return `Expected string to match '${error.schema.format}' format`;\n case ValueErrorType.StringMaxLength:\n return `Expected string length less or equal to ${error.schema.maxLength}`;\n case ValueErrorType.StringMinLength:\n return `Expected string length greater or equal to ${error.schema.minLength}`;\n case ValueErrorType.StringPattern:\n return `Expected string to match '${error.schema.pattern}'`;\n case ValueErrorType.String:\n return 'Expected string';\n case ValueErrorType.Symbol:\n return 'Expected symbol';\n case ValueErrorType.TupleLength:\n return `Expected tuple to have ${error.schema.maxItems || 0} elements`;\n case ValueErrorType.Tuple:\n return 'Expected tuple';\n case ValueErrorType.Uint8ArrayMaxByteLength:\n return `Expected byte length less or equal to ${error.schema.maxByteLength}`;\n case ValueErrorType.Uint8ArrayMinByteLength:\n return `Expected byte length greater or equal to ${error.schema.minByteLength}`;\n case ValueErrorType.Uint8Array:\n return 'Expected Uint8Array';\n case ValueErrorType.Undefined:\n return 'Expected undefined';\n case ValueErrorType.Union:\n return 'Expected union value';\n case ValueErrorType.Void:\n return 'Expected void';\n case ValueErrorType.Kind:\n return `Expected kind '${error.schema[Kind]}'`;\n default:\n return 'Unknown error type';\n }\n}\n/** Manages error message providers */\nlet errorFunction = DefaultErrorFunction;\n/** Sets the error function used to generate error messages. */\nexport function SetErrorFunction(callback) {\n errorFunction = callback;\n}\n/** Gets the error function used to generate error messages */\nexport function GetErrorFunction() {\n return errorFunction;\n}\n","import { TypeBoxError } from '../../type/error/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\nimport { IsString } from '../guard/guard.mjs';\nexport class TypeDereferenceError extends TypeBoxError {\n constructor(schema) {\n super(`Unable to dereference schema with $id '${schema.$ref}'`);\n this.schema = schema;\n }\n}\nfunction Resolve(schema, references) {\n const target = references.find((target) => target.$id === schema.$ref);\n if (target === undefined)\n throw new TypeDereferenceError(schema);\n return Deref(target, references);\n}\n/** `[Internal]` Pushes a schema onto references if the schema has an $id and does not exist on references */\nexport function Pushref(schema, references) {\n if (!IsString(schema.$id) || references.some((target) => target.$id === schema.$id))\n return references;\n references.push(schema);\n return references;\n}\n/** `[Internal]` Dereferences a schema from the references array or throws if not found */\nexport function Deref(schema, references) {\n // prettier-ignore\n return (schema[Kind] === 'This' || schema[Kind] === 'Ref')\n ? Resolve(schema, references)\n : schema;\n}\n","import { IsArray, IsBoolean, IsBigInt, IsDate, IsNull, IsNumber, IsObject, IsString, IsSymbol, IsUint8Array, IsUndefined } from '../guard/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueHashError extends TypeBoxError {\n constructor(value) {\n super(`Unable to hash value`);\n this.value = value;\n }\n}\n// ------------------------------------------------------------------\n// ByteMarker\n// ------------------------------------------------------------------\nvar ByteMarker;\n(function (ByteMarker) {\n ByteMarker[ByteMarker[\"Undefined\"] = 0] = \"Undefined\";\n ByteMarker[ByteMarker[\"Null\"] = 1] = \"Null\";\n ByteMarker[ByteMarker[\"Boolean\"] = 2] = \"Boolean\";\n ByteMarker[ByteMarker[\"Number\"] = 3] = \"Number\";\n ByteMarker[ByteMarker[\"String\"] = 4] = \"String\";\n ByteMarker[ByteMarker[\"Object\"] = 5] = \"Object\";\n ByteMarker[ByteMarker[\"Array\"] = 6] = \"Array\";\n ByteMarker[ByteMarker[\"Date\"] = 7] = \"Date\";\n ByteMarker[ByteMarker[\"Uint8Array\"] = 8] = \"Uint8Array\";\n ByteMarker[ByteMarker[\"Symbol\"] = 9] = \"Symbol\";\n ByteMarker[ByteMarker[\"BigInt\"] = 10] = \"BigInt\";\n})(ByteMarker || (ByteMarker = {}));\n// ------------------------------------------------------------------\n// State\n// ------------------------------------------------------------------\nlet Accumulator = BigInt('14695981039346656037');\nconst [Prime, Size] = [BigInt('1099511628211'), BigInt('18446744073709551616' /* 2 ^ 64 */)];\nconst Bytes = Array.from({ length: 256 }).map((_, i) => BigInt(i));\nconst F64 = new Float64Array(1);\nconst F64In = new DataView(F64.buffer);\nconst F64Out = new Uint8Array(F64.buffer);\n// ------------------------------------------------------------------\n// NumberToBytes\n// ------------------------------------------------------------------\nfunction* NumberToBytes(value) {\n const byteCount = value === 0 ? 1 : Math.ceil(Math.floor(Math.log2(value) + 1) / 8);\n for (let i = 0; i < byteCount; i++) {\n yield (value >> (8 * (byteCount - 1 - i))) & 0xff;\n }\n}\n// ------------------------------------------------------------------\n// Hashing Functions\n// ------------------------------------------------------------------\nfunction ArrayType(value) {\n FNV1A64(ByteMarker.Array);\n for (const item of value) {\n Visit(item);\n }\n}\nfunction BooleanType(value) {\n FNV1A64(ByteMarker.Boolean);\n FNV1A64(value ? 1 : 0);\n}\nfunction BigIntType(value) {\n FNV1A64(ByteMarker.BigInt);\n F64In.setBigInt64(0, value);\n for (const byte of F64Out) {\n FNV1A64(byte);\n }\n}\nfunction DateType(value) {\n FNV1A64(ByteMarker.Date);\n Visit(value.getTime());\n}\nfunction NullType(value) {\n FNV1A64(ByteMarker.Null);\n}\nfunction NumberType(value) {\n FNV1A64(ByteMarker.Number);\n F64In.setFloat64(0, value);\n for (const byte of F64Out) {\n FNV1A64(byte);\n }\n}\nfunction ObjectType(value) {\n FNV1A64(ByteMarker.Object);\n for (const key of globalThis.Object.getOwnPropertyNames(value).sort()) {\n Visit(key);\n Visit(value[key]);\n }\n}\nfunction StringType(value) {\n FNV1A64(ByteMarker.String);\n for (let i = 0; i < value.length; i++) {\n for (const byte of NumberToBytes(value.charCodeAt(i))) {\n FNV1A64(byte);\n }\n }\n}\nfunction SymbolType(value) {\n FNV1A64(ByteMarker.Symbol);\n Visit(value.description);\n}\nfunction Uint8ArrayType(value) {\n FNV1A64(ByteMarker.Uint8Array);\n for (let i = 0; i < value.length; i++) {\n FNV1A64(value[i]);\n }\n}\nfunction UndefinedType(value) {\n return FNV1A64(ByteMarker.Undefined);\n}\nfunction Visit(value) {\n if (IsArray(value))\n return ArrayType(value);\n if (IsBoolean(value))\n return BooleanType(value);\n if (IsBigInt(value))\n return BigIntType(value);\n if (IsDate(value))\n return DateType(value);\n if (IsNull(value))\n return NullType(value);\n if (IsNumber(value))\n return NumberType(value);\n if (IsObject(value))\n return ObjectType(value);\n if (IsString(value))\n return StringType(value);\n if (IsSymbol(value))\n return SymbolType(value);\n if (IsUint8Array(value))\n return Uint8ArrayType(value);\n if (IsUndefined(value))\n return UndefinedType(value);\n throw new ValueHashError(value);\n}\nfunction FNV1A64(byte) {\n Accumulator = Accumulator ^ Bytes[byte];\n Accumulator = (Accumulator * Prime) % Size;\n}\n// ------------------------------------------------------------------\n// Hash\n// ------------------------------------------------------------------\n/** Creates a FNV1A-64 non cryptographic hash of the given value */\nexport function Hash(value) {\n Accumulator = BigInt('14695981039346656037');\n Visit(value);\n return Accumulator;\n}\n","import { TypeSystemPolicy } from '../../system/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { Hash } from '../hash/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\nimport { KeyOfPattern } from '../../type/keyof/index.mjs';\nimport { ExtendsUndefinedCheck } from '../../type/extends/index.mjs';\nimport { TypeRegistry, FormatRegistry } from '../../type/registry/index.mjs';\nimport { TypeBoxError } from '../../type/error/index.mjs';\nimport { Never } from '../../type/never/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsUint8Array, IsDate, IsPromise, IsFunction, IsAsyncIterator, IsIterator, IsBoolean, IsNumber, IsBigInt, IsString, IsSymbol, IsInteger, IsNull, IsUndefined } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// KindGuard\n// ------------------------------------------------------------------\nimport { IsSchema } from '../../type/guard/kind.mjs';\n// ------------------------------------------------------------------\n// Errors\n// ------------------------------------------------------------------\nexport class ValueCheckUnknownTypeError extends TypeBoxError {\n constructor(schema) {\n super(`Unknown type`);\n this.schema = schema;\n }\n}\n// ------------------------------------------------------------------\n// TypeGuards\n// ------------------------------------------------------------------\nfunction IsAnyOrUnknown(schema) {\n return schema[Kind] === 'Any' || schema[Kind] === 'Unknown';\n}\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\nfunction IsDefined(value) {\n return value !== undefined;\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nfunction FromAny(schema, references, value) {\n return true;\n}\nfunction FromArgument(schema, references, value) {\n return true;\n}\nfunction FromArray(schema, references, value) {\n if (!IsArray(value))\n return false;\n if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {\n return false;\n }\n if (IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) {\n return false;\n }\n if (!value.every((value) => Visit(schema.items, references, value))) {\n return false;\n }\n // prettier-ignore\n if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) {\n const hashed = Hash(element);\n if (set.has(hashed)) {\n return false;\n }\n else {\n set.add(hashed);\n }\n } return true; })())) {\n return false;\n }\n // contains\n if (!(IsDefined(schema.contains) || IsNumber(schema.minContains) || IsNumber(schema.maxContains))) {\n return true; // exit\n }\n const containsSchema = IsDefined(schema.contains) ? schema.contains : Never();\n const containsCount = value.reduce((acc, value) => (Visit(containsSchema, references, value) ? acc + 1 : acc), 0);\n if (containsCount === 0) {\n return false;\n }\n if (IsNumber(schema.minContains) && containsCount < schema.minContains) {\n return false;\n }\n if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) {\n return false;\n }\n return true;\n}\nfunction FromAsyncIterator(schema, references, value) {\n return IsAsyncIterator(value);\n}\nfunction FromBigInt(schema, references, value) {\n if (!IsBigInt(value))\n return false;\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n return false;\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n return false;\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n return false;\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) {\n return false;\n }\n return true;\n}\nfunction FromBoolean(schema, references, value) {\n return IsBoolean(value);\n}\nfunction FromConstructor(schema, references, value) {\n return Visit(schema.returns, references, value.prototype);\n}\nfunction FromDate(schema, references, value) {\n if (!IsDate(value))\n return false;\n if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) {\n return false;\n }\n if (IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) {\n return false;\n }\n return true;\n}\nfunction FromFunction(schema, references, value) {\n return IsFunction(value);\n}\nfunction FromImport(schema, references, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n return Visit(target, [...references, ...definitions], value);\n}\nfunction FromInteger(schema, references, value) {\n if (!IsInteger(value)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n return false;\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n return false;\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n return false;\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n return false;\n }\n return true;\n}\nfunction FromIntersect(schema, references, value) {\n const check1 = schema.allOf.every((schema) => Visit(schema, references, value));\n if (schema.unevaluatedProperties === false) {\n const keyPattern = new RegExp(KeyOfPattern(schema));\n const check2 = Object.getOwnPropertyNames(value).every((key) => keyPattern.test(key));\n return check1 && check2;\n }\n else if (IsSchema(schema.unevaluatedProperties)) {\n const keyCheck = new RegExp(KeyOfPattern(schema));\n const check2 = Object.getOwnPropertyNames(value).every((key) => keyCheck.test(key) || Visit(schema.unevaluatedProperties, references, value[key]));\n return check1 && check2;\n }\n else {\n return check1;\n }\n}\nfunction FromIterator(schema, references, value) {\n return IsIterator(value);\n}\nfunction FromLiteral(schema, references, value) {\n return value === schema.const;\n}\nfunction FromNever(schema, references, value) {\n return false;\n}\nfunction FromNot(schema, references, value) {\n return !Visit(schema.not, references, value);\n}\nfunction FromNull(schema, references, value) {\n return IsNull(value);\n}\nfunction FromNumber(schema, references, value) {\n if (!TypeSystemPolicy.IsNumberLike(value))\n return false;\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n return false;\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n return false;\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n return false;\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n return false;\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n return false;\n }\n return true;\n}\nfunction FromObject(schema, references, value) {\n if (!TypeSystemPolicy.IsObjectLike(value))\n return false;\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n return false;\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n return false;\n }\n const knownKeys = Object.getOwnPropertyNames(schema.properties);\n for (const knownKey of knownKeys) {\n const property = schema.properties[knownKey];\n if (schema.required && schema.required.includes(knownKey)) {\n if (!Visit(property, references, value[knownKey])) {\n return false;\n }\n if ((ExtendsUndefinedCheck(property) || IsAnyOrUnknown(property)) && !(knownKey in value)) {\n return false;\n }\n }\n else {\n if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey) && !Visit(property, references, value[knownKey])) {\n return false;\n }\n }\n }\n if (schema.additionalProperties === false) {\n const valueKeys = Object.getOwnPropertyNames(value);\n // optimization: value is valid if schemaKey length matches the valueKey length\n if (schema.required && schema.required.length === knownKeys.length && valueKeys.length === knownKeys.length) {\n return true;\n }\n else {\n return valueKeys.every((valueKey) => knownKeys.includes(valueKey));\n }\n }\n else if (typeof schema.additionalProperties === 'object') {\n const valueKeys = Object.getOwnPropertyNames(value);\n return valueKeys.every((key) => knownKeys.includes(key) || Visit(schema.additionalProperties, references, value[key]));\n }\n else {\n return true;\n }\n}\nfunction FromPromise(schema, references, value) {\n return IsPromise(value);\n}\nfunction FromRecord(schema, references, value) {\n if (!TypeSystemPolicy.IsRecordLike(value)) {\n return false;\n }\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n return false;\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n return false;\n }\n const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0];\n const regex = new RegExp(patternKey);\n // prettier-ignore\n const check1 = Object.entries(value).every(([key, value]) => {\n return (regex.test(key)) ? Visit(patternSchema, references, value) : true;\n });\n // prettier-ignore\n const check2 = typeof schema.additionalProperties === 'object' ? Object.entries(value).every(([key, value]) => {\n return (!regex.test(key)) ? Visit(schema.additionalProperties, references, value) : true;\n }) : true;\n const check3 = schema.additionalProperties === false\n ? Object.getOwnPropertyNames(value).every((key) => {\n return regex.test(key);\n })\n : true;\n return check1 && check2 && check3;\n}\nfunction FromRef(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromRegExp(schema, references, value) {\n const regex = new RegExp(schema.source, schema.flags);\n if (IsDefined(schema.minLength)) {\n if (!(value.length >= schema.minLength))\n return false;\n }\n if (IsDefined(schema.maxLength)) {\n if (!(value.length <= schema.maxLength))\n return false;\n }\n return regex.test(value);\n}\nfunction FromString(schema, references, value) {\n if (!IsString(value)) {\n return false;\n }\n if (IsDefined(schema.minLength)) {\n if (!(value.length >= schema.minLength))\n return false;\n }\n if (IsDefined(schema.maxLength)) {\n if (!(value.length <= schema.maxLength))\n return false;\n }\n if (IsDefined(schema.pattern)) {\n const regex = new RegExp(schema.pattern);\n if (!regex.test(value))\n return false;\n }\n if (IsDefined(schema.format)) {\n if (!FormatRegistry.Has(schema.format))\n return false;\n const func = FormatRegistry.Get(schema.format);\n return func(value);\n }\n return true;\n}\nfunction FromSymbol(schema, references, value) {\n return IsSymbol(value);\n}\nfunction FromTemplateLiteral(schema, references, value) {\n return IsString(value) && new RegExp(schema.pattern).test(value);\n}\nfunction FromThis(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromTuple(schema, references, value) {\n if (!IsArray(value)) {\n return false;\n }\n if (schema.items === undefined && !(value.length === 0)) {\n return false;\n }\n if (!(value.length === schema.maxItems)) {\n return false;\n }\n if (!schema.items) {\n return true;\n }\n for (let i = 0; i < schema.items.length; i++) {\n if (!Visit(schema.items[i], references, value[i]))\n return false;\n }\n return true;\n}\nfunction FromUndefined(schema, references, value) {\n return IsUndefined(value);\n}\nfunction FromUnion(schema, references, value) {\n return schema.anyOf.some((inner) => Visit(inner, references, value));\n}\nfunction FromUint8Array(schema, references, value) {\n if (!IsUint8Array(value)) {\n return false;\n }\n if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) {\n return false;\n }\n if (IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) {\n return false;\n }\n return true;\n}\nfunction FromUnknown(schema, references, value) {\n return true;\n}\nfunction FromVoid(schema, references, value) {\n return TypeSystemPolicy.IsVoidLike(value);\n}\nfunction FromKind(schema, references, value) {\n if (!TypeRegistry.Has(schema[Kind]))\n return false;\n const func = TypeRegistry.Get(schema[Kind]);\n return func(schema, value);\n}\nfunction Visit(schema, references, value) {\n const references_ = IsDefined(schema.$id) ? Pushref(schema, references) : references;\n const schema_ = schema;\n switch (schema_[Kind]) {\n case 'Any':\n return FromAny(schema_, references_, value);\n case 'Argument':\n return FromArgument(schema_, references_, value);\n case 'Array':\n return FromArray(schema_, references_, value);\n case 'AsyncIterator':\n return FromAsyncIterator(schema_, references_, value);\n case 'BigInt':\n return FromBigInt(schema_, references_, value);\n case 'Boolean':\n return FromBoolean(schema_, references_, value);\n case 'Constructor':\n return FromConstructor(schema_, references_, value);\n case 'Date':\n return FromDate(schema_, references_, value);\n case 'Function':\n return FromFunction(schema_, references_, value);\n case 'Import':\n return FromImport(schema_, references_, value);\n case 'Integer':\n return FromInteger(schema_, references_, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, value);\n case 'Iterator':\n return FromIterator(schema_, references_, value);\n case 'Literal':\n return FromLiteral(schema_, references_, value);\n case 'Never':\n return FromNever(schema_, references_, value);\n case 'Not':\n return FromNot(schema_, references_, value);\n case 'Null':\n return FromNull(schema_, references_, value);\n case 'Number':\n return FromNumber(schema_, references_, value);\n case 'Object':\n return FromObject(schema_, references_, value);\n case 'Promise':\n return FromPromise(schema_, references_, value);\n case 'Record':\n return FromRecord(schema_, references_, value);\n case 'Ref':\n return FromRef(schema_, references_, value);\n case 'RegExp':\n return FromRegExp(schema_, references_, value);\n case 'String':\n return FromString(schema_, references_, value);\n case 'Symbol':\n return FromSymbol(schema_, references_, value);\n case 'TemplateLiteral':\n return FromTemplateLiteral(schema_, references_, value);\n case 'This':\n return FromThis(schema_, references_, value);\n case 'Tuple':\n return FromTuple(schema_, references_, value);\n case 'Undefined':\n return FromUndefined(schema_, references_, value);\n case 'Union':\n return FromUnion(schema_, references_, value);\n case 'Uint8Array':\n return FromUint8Array(schema_, references_, value);\n case 'Unknown':\n return FromUnknown(schema_, references_, value);\n case 'Void':\n return FromVoid(schema_, references_, value);\n default:\n if (!TypeRegistry.Has(schema_[Kind]))\n throw new ValueCheckUnknownTypeError(schema_);\n return FromKind(schema_, references_, value);\n }\n}\n/** Returns true if the value matches the given type. */\nexport function Check(...args) {\n return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);\n}\n","import { TypeSystemPolicy } from '../system/index.mjs';\nimport { KeyOfPattern } from '../type/keyof/index.mjs';\nimport { TypeRegistry, FormatRegistry } from '../type/registry/index.mjs';\nimport { ExtendsUndefinedCheck } from '../type/extends/extends-undefined.mjs';\nimport { GetErrorFunction } from './function.mjs';\nimport { TypeBoxError } from '../type/error/index.mjs';\nimport { Deref } from '../value/deref/index.mjs';\nimport { Hash } from '../value/hash/index.mjs';\nimport { Check } from '../value/check/index.mjs';\nimport { Kind } from '../type/symbols/index.mjs';\nimport { Never } from '../type/never/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\n// prettier-ignore\nimport { IsArray, IsUint8Array, IsDate, IsPromise, IsFunction, IsAsyncIterator, IsIterator, IsBoolean, IsNumber, IsBigInt, IsString, IsSymbol, IsInteger, IsNull, IsUndefined } from '../value/guard/index.mjs';\n// ------------------------------------------------------------------\n// ValueErrorType\n// ------------------------------------------------------------------\nexport var ValueErrorType;\n(function (ValueErrorType) {\n ValueErrorType[ValueErrorType[\"ArrayContains\"] = 0] = \"ArrayContains\";\n ValueErrorType[ValueErrorType[\"ArrayMaxContains\"] = 1] = \"ArrayMaxContains\";\n ValueErrorType[ValueErrorType[\"ArrayMaxItems\"] = 2] = \"ArrayMaxItems\";\n ValueErrorType[ValueErrorType[\"ArrayMinContains\"] = 3] = \"ArrayMinContains\";\n ValueErrorType[ValueErrorType[\"ArrayMinItems\"] = 4] = \"ArrayMinItems\";\n ValueErrorType[ValueErrorType[\"ArrayUniqueItems\"] = 5] = \"ArrayUniqueItems\";\n ValueErrorType[ValueErrorType[\"Array\"] = 6] = \"Array\";\n ValueErrorType[ValueErrorType[\"AsyncIterator\"] = 7] = \"AsyncIterator\";\n ValueErrorType[ValueErrorType[\"BigIntExclusiveMaximum\"] = 8] = \"BigIntExclusiveMaximum\";\n ValueErrorType[ValueErrorType[\"BigIntExclusiveMinimum\"] = 9] = \"BigIntExclusiveMinimum\";\n ValueErrorType[ValueErrorType[\"BigIntMaximum\"] = 10] = \"BigIntMaximum\";\n ValueErrorType[ValueErrorType[\"BigIntMinimum\"] = 11] = \"BigIntMinimum\";\n ValueErrorType[ValueErrorType[\"BigIntMultipleOf\"] = 12] = \"BigIntMultipleOf\";\n ValueErrorType[ValueErrorType[\"BigInt\"] = 13] = \"BigInt\";\n ValueErrorType[ValueErrorType[\"Boolean\"] = 14] = \"Boolean\";\n ValueErrorType[ValueErrorType[\"DateExclusiveMaximumTimestamp\"] = 15] = \"DateExclusiveMaximumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateExclusiveMinimumTimestamp\"] = 16] = \"DateExclusiveMinimumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateMaximumTimestamp\"] = 17] = \"DateMaximumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateMinimumTimestamp\"] = 18] = \"DateMinimumTimestamp\";\n ValueErrorType[ValueErrorType[\"DateMultipleOfTimestamp\"] = 19] = \"DateMultipleOfTimestamp\";\n ValueErrorType[ValueErrorType[\"Date\"] = 20] = \"Date\";\n ValueErrorType[ValueErrorType[\"Function\"] = 21] = \"Function\";\n ValueErrorType[ValueErrorType[\"IntegerExclusiveMaximum\"] = 22] = \"IntegerExclusiveMaximum\";\n ValueErrorType[ValueErrorType[\"IntegerExclusiveMinimum\"] = 23] = \"IntegerExclusiveMinimum\";\n ValueErrorType[ValueErrorType[\"IntegerMaximum\"] = 24] = \"IntegerMaximum\";\n ValueErrorType[ValueErrorType[\"IntegerMinimum\"] = 25] = \"IntegerMinimum\";\n ValueErrorType[ValueErrorType[\"IntegerMultipleOf\"] = 26] = \"IntegerMultipleOf\";\n ValueErrorType[ValueErrorType[\"Integer\"] = 27] = \"Integer\";\n ValueErrorType[ValueErrorType[\"IntersectUnevaluatedProperties\"] = 28] = \"IntersectUnevaluatedProperties\";\n ValueErrorType[ValueErrorType[\"Intersect\"] = 29] = \"Intersect\";\n ValueErrorType[ValueErrorType[\"Iterator\"] = 30] = \"Iterator\";\n ValueErrorType[ValueErrorType[\"Kind\"] = 31] = \"Kind\";\n ValueErrorType[ValueErrorType[\"Literal\"] = 32] = \"Literal\";\n ValueErrorType[ValueErrorType[\"Never\"] = 33] = \"Never\";\n ValueErrorType[ValueErrorType[\"Not\"] = 34] = \"Not\";\n ValueErrorType[ValueErrorType[\"Null\"] = 35] = \"Null\";\n ValueErrorType[ValueErrorType[\"NumberExclusiveMaximum\"] = 36] = \"NumberExclusiveMaximum\";\n ValueErrorType[ValueErrorType[\"NumberExclusiveMinimum\"] = 37] = \"NumberExclusiveMinimum\";\n ValueErrorType[ValueErrorType[\"NumberMaximum\"] = 38] = \"NumberMaximum\";\n ValueErrorType[ValueErrorType[\"NumberMinimum\"] = 39] = \"NumberMinimum\";\n ValueErrorType[ValueErrorType[\"NumberMultipleOf\"] = 40] = \"NumberMultipleOf\";\n ValueErrorType[ValueErrorType[\"Number\"] = 41] = \"Number\";\n ValueErrorType[ValueErrorType[\"ObjectAdditionalProperties\"] = 42] = \"ObjectAdditionalProperties\";\n ValueErrorType[ValueErrorType[\"ObjectMaxProperties\"] = 43] = \"ObjectMaxProperties\";\n ValueErrorType[ValueErrorType[\"ObjectMinProperties\"] = 44] = \"ObjectMinProperties\";\n ValueErrorType[ValueErrorType[\"ObjectRequiredProperty\"] = 45] = \"ObjectRequiredProperty\";\n ValueErrorType[ValueErrorType[\"Object\"] = 46] = \"Object\";\n ValueErrorType[ValueErrorType[\"Promise\"] = 47] = \"Promise\";\n ValueErrorType[ValueErrorType[\"RegExp\"] = 48] = \"RegExp\";\n ValueErrorType[ValueErrorType[\"StringFormatUnknown\"] = 49] = \"StringFormatUnknown\";\n ValueErrorType[ValueErrorType[\"StringFormat\"] = 50] = \"StringFormat\";\n ValueErrorType[ValueErrorType[\"StringMaxLength\"] = 51] = \"StringMaxLength\";\n ValueErrorType[ValueErrorType[\"StringMinLength\"] = 52] = \"StringMinLength\";\n ValueErrorType[ValueErrorType[\"StringPattern\"] = 53] = \"StringPattern\";\n ValueErrorType[ValueErrorType[\"String\"] = 54] = \"String\";\n ValueErrorType[ValueErrorType[\"Symbol\"] = 55] = \"Symbol\";\n ValueErrorType[ValueErrorType[\"TupleLength\"] = 56] = \"TupleLength\";\n ValueErrorType[ValueErrorType[\"Tuple\"] = 57] = \"Tuple\";\n ValueErrorType[ValueErrorType[\"Uint8ArrayMaxByteLength\"] = 58] = \"Uint8ArrayMaxByteLength\";\n ValueErrorType[ValueErrorType[\"Uint8ArrayMinByteLength\"] = 59] = \"Uint8ArrayMinByteLength\";\n ValueErrorType[ValueErrorType[\"Uint8Array\"] = 60] = \"Uint8Array\";\n ValueErrorType[ValueErrorType[\"Undefined\"] = 61] = \"Undefined\";\n ValueErrorType[ValueErrorType[\"Union\"] = 62] = \"Union\";\n ValueErrorType[ValueErrorType[\"Void\"] = 63] = \"Void\";\n})(ValueErrorType || (ValueErrorType = {}));\n// ------------------------------------------------------------------\n// ValueErrors\n// ------------------------------------------------------------------\nexport class ValueErrorsUnknownTypeError extends TypeBoxError {\n constructor(schema) {\n super('Unknown type');\n this.schema = schema;\n }\n}\n// ------------------------------------------------------------------\n// EscapeKey\n// ------------------------------------------------------------------\nfunction EscapeKey(key) {\n return key.replace(/~/g, '~0').replace(/\\//g, '~1'); // RFC6901 Path\n}\n// ------------------------------------------------------------------\n// Guards\n// ------------------------------------------------------------------\nfunction IsDefined(value) {\n return value !== undefined;\n}\n// ------------------------------------------------------------------\n// ValueErrorIterator\n// ------------------------------------------------------------------\nexport class ValueErrorIterator {\n constructor(iterator) {\n this.iterator = iterator;\n }\n [Symbol.iterator]() {\n return this.iterator;\n }\n /** Returns the first value error or undefined if no errors */\n First() {\n const next = this.iterator.next();\n return next.done ? undefined : next.value;\n }\n}\n// --------------------------------------------------------------------------\n// Create\n// --------------------------------------------------------------------------\nfunction Create(errorType, schema, path, value, errors = []) {\n return {\n type: errorType,\n schema,\n path,\n value,\n message: GetErrorFunction()({ errorType, path, schema, value, errors }),\n errors,\n };\n}\n// --------------------------------------------------------------------------\n// Types\n// --------------------------------------------------------------------------\nfunction* FromAny(schema, references, path, value) { }\nfunction* FromArgument(schema, references, path, value) { }\nfunction* FromArray(schema, references, path, value) {\n if (!IsArray(value)) {\n return yield Create(ValueErrorType.Array, schema, path, value);\n }\n if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {\n yield Create(ValueErrorType.ArrayMinItems, schema, path, value);\n }\n if (IsDefined(schema.maxItems) && !(value.length <= schema.maxItems)) {\n yield Create(ValueErrorType.ArrayMaxItems, schema, path, value);\n }\n for (let i = 0; i < value.length; i++) {\n yield* Visit(schema.items, references, `${path}/${i}`, value[i]);\n }\n // prettier-ignore\n if (schema.uniqueItems === true && !((function () { const set = new Set(); for (const element of value) {\n const hashed = Hash(element);\n if (set.has(hashed)) {\n return false;\n }\n else {\n set.add(hashed);\n }\n } return true; })())) {\n yield Create(ValueErrorType.ArrayUniqueItems, schema, path, value);\n }\n // contains\n if (!(IsDefined(schema.contains) || IsDefined(schema.minContains) || IsDefined(schema.maxContains))) {\n return;\n }\n const containsSchema = IsDefined(schema.contains) ? schema.contains : Never();\n const containsCount = value.reduce((acc, value, index) => (Visit(containsSchema, references, `${path}${index}`, value).next().done === true ? acc + 1 : acc), 0);\n if (containsCount === 0) {\n yield Create(ValueErrorType.ArrayContains, schema, path, value);\n }\n if (IsNumber(schema.minContains) && containsCount < schema.minContains) {\n yield Create(ValueErrorType.ArrayMinContains, schema, path, value);\n }\n if (IsNumber(schema.maxContains) && containsCount > schema.maxContains) {\n yield Create(ValueErrorType.ArrayMaxContains, schema, path, value);\n }\n}\nfunction* FromAsyncIterator(schema, references, path, value) {\n if (!IsAsyncIterator(value))\n yield Create(ValueErrorType.AsyncIterator, schema, path, value);\n}\nfunction* FromBigInt(schema, references, path, value) {\n if (!IsBigInt(value))\n return yield Create(ValueErrorType.BigInt, schema, path, value);\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n yield Create(ValueErrorType.BigIntExclusiveMaximum, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n yield Create(ValueErrorType.BigIntExclusiveMinimum, schema, path, value);\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n yield Create(ValueErrorType.BigIntMaximum, schema, path, value);\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n yield Create(ValueErrorType.BigIntMinimum, schema, path, value);\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === BigInt(0))) {\n yield Create(ValueErrorType.BigIntMultipleOf, schema, path, value);\n }\n}\nfunction* FromBoolean(schema, references, path, value) {\n if (!IsBoolean(value))\n yield Create(ValueErrorType.Boolean, schema, path, value);\n}\nfunction* FromConstructor(schema, references, path, value) {\n yield* Visit(schema.returns, references, path, value.prototype);\n}\nfunction* FromDate(schema, references, path, value) {\n if (!IsDate(value))\n return yield Create(ValueErrorType.Date, schema, path, value);\n if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {\n yield Create(ValueErrorType.DateExclusiveMaximumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimumTimestamp) && !(value.getTime() > schema.exclusiveMinimumTimestamp)) {\n yield Create(ValueErrorType.DateExclusiveMinimumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.maximumTimestamp) && !(value.getTime() <= schema.maximumTimestamp)) {\n yield Create(ValueErrorType.DateMaximumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.minimumTimestamp) && !(value.getTime() >= schema.minimumTimestamp)) {\n yield Create(ValueErrorType.DateMinimumTimestamp, schema, path, value);\n }\n if (IsDefined(schema.multipleOfTimestamp) && !(value.getTime() % schema.multipleOfTimestamp === 0)) {\n yield Create(ValueErrorType.DateMultipleOfTimestamp, schema, path, value);\n }\n}\nfunction* FromFunction(schema, references, path, value) {\n if (!IsFunction(value))\n yield Create(ValueErrorType.Function, schema, path, value);\n}\nfunction* FromImport(schema, references, path, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n yield* Visit(target, [...references, ...definitions], path, value);\n}\nfunction* FromInteger(schema, references, path, value) {\n if (!IsInteger(value))\n return yield Create(ValueErrorType.Integer, schema, path, value);\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n yield Create(ValueErrorType.IntegerExclusiveMaximum, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n yield Create(ValueErrorType.IntegerExclusiveMinimum, schema, path, value);\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n yield Create(ValueErrorType.IntegerMaximum, schema, path, value);\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n yield Create(ValueErrorType.IntegerMinimum, schema, path, value);\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n yield Create(ValueErrorType.IntegerMultipleOf, schema, path, value);\n }\n}\nfunction* FromIntersect(schema, references, path, value) {\n let hasError = false;\n for (const inner of schema.allOf) {\n for (const error of Visit(inner, references, path, value)) {\n hasError = true;\n yield error;\n }\n }\n if (hasError) {\n return yield Create(ValueErrorType.Intersect, schema, path, value);\n }\n if (schema.unevaluatedProperties === false) {\n const keyCheck = new RegExp(KeyOfPattern(schema));\n for (const valueKey of Object.getOwnPropertyNames(value)) {\n if (!keyCheck.test(valueKey)) {\n yield Create(ValueErrorType.IntersectUnevaluatedProperties, schema, `${path}/${valueKey}`, value);\n }\n }\n }\n if (typeof schema.unevaluatedProperties === 'object') {\n const keyCheck = new RegExp(KeyOfPattern(schema));\n for (const valueKey of Object.getOwnPropertyNames(value)) {\n if (!keyCheck.test(valueKey)) {\n const next = Visit(schema.unevaluatedProperties, references, `${path}/${valueKey}`, value[valueKey]).next();\n if (!next.done)\n yield next.value; // yield interior\n }\n }\n }\n}\nfunction* FromIterator(schema, references, path, value) {\n if (!IsIterator(value))\n yield Create(ValueErrorType.Iterator, schema, path, value);\n}\nfunction* FromLiteral(schema, references, path, value) {\n if (!(value === schema.const))\n yield Create(ValueErrorType.Literal, schema, path, value);\n}\nfunction* FromNever(schema, references, path, value) {\n yield Create(ValueErrorType.Never, schema, path, value);\n}\nfunction* FromNot(schema, references, path, value) {\n if (Visit(schema.not, references, path, value).next().done === true)\n yield Create(ValueErrorType.Not, schema, path, value);\n}\nfunction* FromNull(schema, references, path, value) {\n if (!IsNull(value))\n yield Create(ValueErrorType.Null, schema, path, value);\n}\nfunction* FromNumber(schema, references, path, value) {\n if (!TypeSystemPolicy.IsNumberLike(value))\n return yield Create(ValueErrorType.Number, schema, path, value);\n if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {\n yield Create(ValueErrorType.NumberExclusiveMaximum, schema, path, value);\n }\n if (IsDefined(schema.exclusiveMinimum) && !(value > schema.exclusiveMinimum)) {\n yield Create(ValueErrorType.NumberExclusiveMinimum, schema, path, value);\n }\n if (IsDefined(schema.maximum) && !(value <= schema.maximum)) {\n yield Create(ValueErrorType.NumberMaximum, schema, path, value);\n }\n if (IsDefined(schema.minimum) && !(value >= schema.minimum)) {\n yield Create(ValueErrorType.NumberMinimum, schema, path, value);\n }\n if (IsDefined(schema.multipleOf) && !(value % schema.multipleOf === 0)) {\n yield Create(ValueErrorType.NumberMultipleOf, schema, path, value);\n }\n}\nfunction* FromObject(schema, references, path, value) {\n if (!TypeSystemPolicy.IsObjectLike(value))\n return yield Create(ValueErrorType.Object, schema, path, value);\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n yield Create(ValueErrorType.ObjectMinProperties, schema, path, value);\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value);\n }\n const requiredKeys = Array.isArray(schema.required) ? schema.required : [];\n const knownKeys = Object.getOwnPropertyNames(schema.properties);\n const unknownKeys = Object.getOwnPropertyNames(value);\n for (const requiredKey of requiredKeys) {\n if (unknownKeys.includes(requiredKey))\n continue;\n yield Create(ValueErrorType.ObjectRequiredProperty, schema.properties[requiredKey], `${path}/${EscapeKey(requiredKey)}`, undefined);\n }\n if (schema.additionalProperties === false) {\n for (const valueKey of unknownKeys) {\n if (!knownKeys.includes(valueKey)) {\n yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(valueKey)}`, value[valueKey]);\n }\n }\n }\n if (typeof schema.additionalProperties === 'object') {\n for (const valueKey of unknownKeys) {\n if (knownKeys.includes(valueKey))\n continue;\n yield* Visit(schema.additionalProperties, references, `${path}/${EscapeKey(valueKey)}`, value[valueKey]);\n }\n }\n for (const knownKey of knownKeys) {\n const property = schema.properties[knownKey];\n if (schema.required && schema.required.includes(knownKey)) {\n yield* Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]);\n if (ExtendsUndefinedCheck(schema) && !(knownKey in value)) {\n yield Create(ValueErrorType.ObjectRequiredProperty, property, `${path}/${EscapeKey(knownKey)}`, undefined);\n }\n }\n else {\n if (TypeSystemPolicy.IsExactOptionalProperty(value, knownKey)) {\n yield* Visit(property, references, `${path}/${EscapeKey(knownKey)}`, value[knownKey]);\n }\n }\n }\n}\nfunction* FromPromise(schema, references, path, value) {\n if (!IsPromise(value))\n yield Create(ValueErrorType.Promise, schema, path, value);\n}\nfunction* FromRecord(schema, references, path, value) {\n if (!TypeSystemPolicy.IsRecordLike(value))\n return yield Create(ValueErrorType.Object, schema, path, value);\n if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {\n yield Create(ValueErrorType.ObjectMinProperties, schema, path, value);\n }\n if (IsDefined(schema.maxProperties) && !(Object.getOwnPropertyNames(value).length <= schema.maxProperties)) {\n yield Create(ValueErrorType.ObjectMaxProperties, schema, path, value);\n }\n const [patternKey, patternSchema] = Object.entries(schema.patternProperties)[0];\n const regex = new RegExp(patternKey);\n for (const [propertyKey, propertyValue] of Object.entries(value)) {\n if (regex.test(propertyKey))\n yield* Visit(patternSchema, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue);\n }\n if (typeof schema.additionalProperties === 'object') {\n for (const [propertyKey, propertyValue] of Object.entries(value)) {\n if (!regex.test(propertyKey))\n yield* Visit(schema.additionalProperties, references, `${path}/${EscapeKey(propertyKey)}`, propertyValue);\n }\n }\n if (schema.additionalProperties === false) {\n for (const [propertyKey, propertyValue] of Object.entries(value)) {\n if (regex.test(propertyKey))\n continue;\n return yield Create(ValueErrorType.ObjectAdditionalProperties, schema, `${path}/${EscapeKey(propertyKey)}`, propertyValue);\n }\n }\n}\nfunction* FromRef(schema, references, path, value) {\n yield* Visit(Deref(schema, references), references, path, value);\n}\nfunction* FromRegExp(schema, references, path, value) {\n if (!IsString(value))\n return yield Create(ValueErrorType.String, schema, path, value);\n if (IsDefined(schema.minLength) && !(value.length >= schema.minLength)) {\n yield Create(ValueErrorType.StringMinLength, schema, path, value);\n }\n if (IsDefined(schema.maxLength) && !(value.length <= schema.maxLength)) {\n yield Create(ValueErrorType.StringMaxLength, schema, path, value);\n }\n const regex = new RegExp(schema.source, schema.flags);\n if (!regex.test(value)) {\n return yield Create(ValueErrorType.RegExp, schema, path, value);\n }\n}\nfunction* FromString(schema, references, path, value) {\n if (!IsString(value))\n return yield Create(ValueErrorType.String, schema, path, value);\n if (IsDefined(schema.minLength) && !(value.length >= schema.minLength)) {\n yield Create(ValueErrorType.StringMinLength, schema, path, value);\n }\n if (IsDefined(schema.maxLength) && !(value.length <= schema.maxLength)) {\n yield Create(ValueErrorType.StringMaxLength, schema, path, value);\n }\n if (IsString(schema.pattern)) {\n const regex = new RegExp(schema.pattern);\n if (!regex.test(value)) {\n yield Create(ValueErrorType.StringPattern, schema, path, value);\n }\n }\n if (IsString(schema.format)) {\n if (!FormatRegistry.Has(schema.format)) {\n yield Create(ValueErrorType.StringFormatUnknown, schema, path, value);\n }\n else {\n const format = FormatRegistry.Get(schema.format);\n if (!format(value)) {\n yield Create(ValueErrorType.StringFormat, schema, path, value);\n }\n }\n }\n}\nfunction* FromSymbol(schema, references, path, value) {\n if (!IsSymbol(value))\n yield Create(ValueErrorType.Symbol, schema, path, value);\n}\nfunction* FromTemplateLiteral(schema, references, path, value) {\n if (!IsString(value))\n return yield Create(ValueErrorType.String, schema, path, value);\n const regex = new RegExp(schema.pattern);\n if (!regex.test(value)) {\n yield Create(ValueErrorType.StringPattern, schema, path, value);\n }\n}\nfunction* FromThis(schema, references, path, value) {\n yield* Visit(Deref(schema, references), references, path, value);\n}\nfunction* FromTuple(schema, references, path, value) {\n if (!IsArray(value))\n return yield Create(ValueErrorType.Tuple, schema, path, value);\n if (schema.items === undefined && !(value.length === 0)) {\n return yield Create(ValueErrorType.TupleLength, schema, path, value);\n }\n if (!(value.length === schema.maxItems)) {\n return yield Create(ValueErrorType.TupleLength, schema, path, value);\n }\n if (!schema.items) {\n return;\n }\n for (let i = 0; i < schema.items.length; i++) {\n yield* Visit(schema.items[i], references, `${path}/${i}`, value[i]);\n }\n}\nfunction* FromUndefined(schema, references, path, value) {\n if (!IsUndefined(value))\n yield Create(ValueErrorType.Undefined, schema, path, value);\n}\nfunction* FromUnion(schema, references, path, value) {\n if (Check(schema, references, value))\n return;\n const errors = schema.anyOf.map((variant) => new ValueErrorIterator(Visit(variant, references, path, value)));\n yield Create(ValueErrorType.Union, schema, path, value, errors);\n}\nfunction* FromUint8Array(schema, references, path, value) {\n if (!IsUint8Array(value))\n return yield Create(ValueErrorType.Uint8Array, schema, path, value);\n if (IsDefined(schema.maxByteLength) && !(value.length <= schema.maxByteLength)) {\n yield Create(ValueErrorType.Uint8ArrayMaxByteLength, schema, path, value);\n }\n if (IsDefined(schema.minByteLength) && !(value.length >= schema.minByteLength)) {\n yield Create(ValueErrorType.Uint8ArrayMinByteLength, schema, path, value);\n }\n}\nfunction* FromUnknown(schema, references, path, value) { }\nfunction* FromVoid(schema, references, path, value) {\n if (!TypeSystemPolicy.IsVoidLike(value))\n yield Create(ValueErrorType.Void, schema, path, value);\n}\nfunction* FromKind(schema, references, path, value) {\n const check = TypeRegistry.Get(schema[Kind]);\n if (!check(schema, value))\n yield Create(ValueErrorType.Kind, schema, path, value);\n}\nfunction* Visit(schema, references, path, value) {\n const references_ = IsDefined(schema.$id) ? [...references, schema] : references;\n const schema_ = schema;\n switch (schema_[Kind]) {\n case 'Any':\n return yield* FromAny(schema_, references_, path, value);\n case 'Argument':\n return yield* FromArgument(schema_, references_, path, value);\n case 'Array':\n return yield* FromArray(schema_, references_, path, value);\n case 'AsyncIterator':\n return yield* FromAsyncIterator(schema_, references_, path, value);\n case 'BigInt':\n return yield* FromBigInt(schema_, references_, path, value);\n case 'Boolean':\n return yield* FromBoolean(schema_, references_, path, value);\n case 'Constructor':\n return yield* FromConstructor(schema_, references_, path, value);\n case 'Date':\n return yield* FromDate(schema_, references_, path, value);\n case 'Function':\n return yield* FromFunction(schema_, references_, path, value);\n case 'Import':\n return yield* FromImport(schema_, references_, path, value);\n case 'Integer':\n return yield* FromInteger(schema_, references_, path, value);\n case 'Intersect':\n return yield* FromIntersect(schema_, references_, path, value);\n case 'Iterator':\n return yield* FromIterator(schema_, references_, path, value);\n case 'Literal':\n return yield* FromLiteral(schema_, references_, path, value);\n case 'Never':\n return yield* FromNever(schema_, references_, path, value);\n case 'Not':\n return yield* FromNot(schema_, references_, path, value);\n case 'Null':\n return yield* FromNull(schema_, references_, path, value);\n case 'Number':\n return yield* FromNumber(schema_, references_, path, value);\n case 'Object':\n return yield* FromObject(schema_, references_, path, value);\n case 'Promise':\n return yield* FromPromise(schema_, references_, path, value);\n case 'Record':\n return yield* FromRecord(schema_, references_, path, value);\n case 'Ref':\n return yield* FromRef(schema_, references_, path, value);\n case 'RegExp':\n return yield* FromRegExp(schema_, references_, path, value);\n case 'String':\n return yield* FromString(schema_, references_, path, value);\n case 'Symbol':\n return yield* FromSymbol(schema_, references_, path, value);\n case 'TemplateLiteral':\n return yield* FromTemplateLiteral(schema_, references_, path, value);\n case 'This':\n return yield* FromThis(schema_, references_, path, value);\n case 'Tuple':\n return yield* FromTuple(schema_, references_, path, value);\n case 'Undefined':\n return yield* FromUndefined(schema_, references_, path, value);\n case 'Union':\n return yield* FromUnion(schema_, references_, path, value);\n case 'Uint8Array':\n return yield* FromUint8Array(schema_, references_, path, value);\n case 'Unknown':\n return yield* FromUnknown(schema_, references_, path, value);\n case 'Void':\n return yield* FromVoid(schema_, references_, path, value);\n default:\n if (!TypeRegistry.Has(schema_[Kind]))\n throw new ValueErrorsUnknownTypeError(schema);\n return yield* FromKind(schema_, references_, path, value);\n }\n}\n/** Returns an iterator for each error in this value. */\nexport function Errors(...args) {\n const iterator = args.length === 3 ? Visit(args[0], args[1], '', args[2]) : Visit(args[0], [], '', args[1]);\n return new ValueErrorIterator(iterator);\n}\n","// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsDate, IsMap, IsSet, IsObject, IsTypedArray, IsValueType } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// Clonable\n// ------------------------------------------------------------------\nfunction FromObject(value) {\n const Acc = {};\n for (const key of Object.getOwnPropertyNames(value)) {\n Acc[key] = Clone(value[key]);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n Acc[key] = Clone(value[key]);\n }\n return Acc;\n}\nfunction FromArray(value) {\n return value.map((element) => Clone(element));\n}\nfunction FromTypedArray(value) {\n return value.slice();\n}\nfunction FromMap(value) {\n return new Map(Clone([...value.entries()]));\n}\nfunction FromSet(value) {\n return new Set(Clone([...value.entries()]));\n}\nfunction FromDate(value) {\n return new Date(value.toISOString());\n}\nfunction FromValue(value) {\n return value;\n}\n// ------------------------------------------------------------------\n// Clone\n// ------------------------------------------------------------------\n/** Returns a clone of the given value */\nexport function Clone(value) {\n if (IsArray(value))\n return FromArray(value);\n if (IsDate(value))\n return FromDate(value);\n if (IsTypedArray(value))\n return FromTypedArray(value);\n if (IsMap(value))\n return FromMap(value);\n if (IsSet(value))\n return FromSet(value);\n if (IsObject(value))\n return FromObject(value);\n if (IsValueType(value))\n return FromValue(value);\n throw new Error('ValueClone: Unable to clone value');\n}\n","import { Check } from '../check/index.mjs';\nimport { Clone } from '../clone/index.mjs';\nimport { Deref, Pushref } from '../deref/index.mjs';\nimport { Kind } from '../../type/symbols/index.mjs';\n// ------------------------------------------------------------------\n// ValueGuard\n// ------------------------------------------------------------------\nimport { IsArray, IsDate, IsFunction, IsObject, IsUndefined, HasPropertyKey } from '../guard/index.mjs';\n// ------------------------------------------------------------------\n// TypeGuard\n// ------------------------------------------------------------------\nimport { IsKind } from '../../type/guard/kind.mjs';\n// ------------------------------------------------------------------\n// ValueOrDefault\n// ------------------------------------------------------------------\nfunction ValueOrDefault(schema, value) {\n const defaultValue = HasPropertyKey(schema, 'default') ? schema.default : undefined;\n const clone = IsFunction(defaultValue) ? defaultValue() : Clone(defaultValue);\n return IsUndefined(value) ? clone : IsObject(value) && IsObject(clone) ? Object.assign(clone, value) : value;\n}\n// ------------------------------------------------------------------\n// HasDefaultProperty\n// ------------------------------------------------------------------\nfunction HasDefaultProperty(schema) {\n return IsKind(schema) && 'default' in schema;\n}\n// ------------------------------------------------------------------\n// Types\n// ------------------------------------------------------------------\nfunction FromArray(schema, references, value) {\n // if the value is an array, we attempt to initialize it's elements\n if (IsArray(value)) {\n for (let i = 0; i < value.length; i++) {\n value[i] = Visit(schema.items, references, value[i]);\n }\n return value;\n }\n // ... otherwise use default initialization\n const defaulted = ValueOrDefault(schema, value);\n if (!IsArray(defaulted))\n return defaulted;\n for (let i = 0; i < defaulted.length; i++) {\n defaulted[i] = Visit(schema.items, references, defaulted[i]);\n }\n return defaulted;\n}\nfunction FromDate(schema, references, value) {\n // special case intercept for dates\n return IsDate(value) ? value : ValueOrDefault(schema, value);\n}\nfunction FromImport(schema, references, value) {\n const definitions = globalThis.Object.values(schema.$defs);\n const target = schema.$defs[schema.$ref];\n return Visit(target, [...references, ...definitions], value);\n}\nfunction FromIntersect(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n return schema.allOf.reduce((acc, schema) => {\n const next = Visit(schema, references, defaulted);\n return IsObject(next) ? { ...acc, ...next } : next;\n }, {});\n}\nfunction FromObject(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n // return defaulted\n if (!IsObject(defaulted))\n return defaulted;\n const knownPropertyKeys = Object.getOwnPropertyNames(schema.properties);\n // properties\n for (const key of knownPropertyKeys) {\n // note: we need to traverse into the object and test if the return value\n // yielded a non undefined result. Here we interpret an undefined result as\n // a non assignable property and continue.\n const propertyValue = Visit(schema.properties[key], references, defaulted[key]);\n if (IsUndefined(propertyValue))\n continue;\n defaulted[key] = Visit(schema.properties[key], references, defaulted[key]);\n }\n // return if not additional properties\n if (!HasDefaultProperty(schema.additionalProperties))\n return defaulted;\n // additional properties\n for (const key of Object.getOwnPropertyNames(defaulted)) {\n if (knownPropertyKeys.includes(key))\n continue;\n defaulted[key] = Visit(schema.additionalProperties, references, defaulted[key]);\n }\n return defaulted;\n}\nfunction FromRecord(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n if (!IsObject(defaulted))\n return defaulted;\n const additionalPropertiesSchema = schema.additionalProperties;\n const [propertyKeyPattern, propertySchema] = Object.entries(schema.patternProperties)[0];\n const knownPropertyKey = new RegExp(propertyKeyPattern);\n // properties\n for (const key of Object.getOwnPropertyNames(defaulted)) {\n if (!(knownPropertyKey.test(key) && HasDefaultProperty(propertySchema)))\n continue;\n defaulted[key] = Visit(propertySchema, references, defaulted[key]);\n }\n // return if not additional properties\n if (!HasDefaultProperty(additionalPropertiesSchema))\n return defaulted;\n // additional properties\n for (const key of Object.getOwnPropertyNames(defaulted)) {\n if (knownPropertyKey.test(key))\n continue;\n defaulted[key] = Visit(additionalPropertiesSchema, references, defaulted[key]);\n }\n return defaulted;\n}\nfunction FromRef(schema, references, value) {\n return Visit(Deref(schema, references), references, ValueOrDefault(schema, value));\n}\nfunction FromThis(schema, references, value) {\n return Visit(Deref(schema, references), references, value);\n}\nfunction FromTuple(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n if (!IsArray(defaulted) || IsUndefined(schema.items))\n return defaulted;\n const [items, max] = [schema.items, Math.max(schema.items.length, defaulted.length)];\n for (let i = 0; i < max; i++) {\n if (i < items.length)\n defaulted[i] = Visit(items[i], references, defaulted[i]);\n }\n return defaulted;\n}\nfunction FromUnion(schema, references, value) {\n const defaulted = ValueOrDefault(schema, value);\n for (const inner of schema.anyOf) {\n const result = Visit(inner, references, Clone(defaulted));\n if (Check(inner, references, result)) {\n return result;\n }\n }\n return defaulted;\n}\nfunction Visit(schema, references, value) {\n const references_ = Pushref(schema, references);\n const schema_ = schema;\n switch (schema_[Kind]) {\n case 'Array':\n return FromArray(schema_, references_, value);\n case 'Date':\n return FromDate(schema_, references_, value);\n case 'Import':\n return FromImport(schema_, references_, value);\n case 'Intersect':\n return FromIntersect(schema_, references_, value);\n case 'Object':\n return FromObject(schema_, references_, value);\n case 'Record':\n return FromRecord(schema_, references_, value);\n case 'Ref':\n return FromRef(schema_, references_, value);\n case 'This':\n return FromThis(schema_, references_, value);\n case 'Tuple':\n return FromTuple(schema_, references_, value);\n case 'Union':\n return FromUnion(schema_, references_, value);\n default:\n return ValueOrDefault(schema_, value);\n }\n}\n/** `[Mutable]` Generates missing properties on a value using default schema annotations if available. This function does not check the value and returns an unknown type. You should Check the result before use. Default is a mutable operation. To avoid mutation, Clone the value first. */\nexport function Default(...args) {\n return args.length === 3 ? Visit(args[0], args[1], args[2]) : Visit(args[0], [], args[1]);\n}\n","import {\n ColumnsPropsSchema,\n HeadingPropsSchema,\n ImagePropsSchema,\n IndentSchema,\n ListPropsSchema,\n ParagraphPropsSchema,\n SectionPropsSchema,\n StatisticPropsSchema,\n TablePropsSchema\n} from \"./chunk-5533WPL6.js\";\nimport {\n FontDefinitionSchema,\n HexColorSchema,\n TextFormattingPropertiesSchema\n} from \"./chunk-F5LVWDTY.js\";\n\n// src/schemas/theme.ts\nimport { Type } from \"@sinclair/typebox\";\nimport { Value } from \"@sinclair/typebox/value\";\nvar DocumentMarginsSchema = Type.Object(\n {\n top: Type.Number({ minimum: 0 }),\n bottom: Type.Number({ minimum: 0 }),\n left: Type.Number({ minimum: 0 }),\n right: Type.Number({ minimum: 0 }),\n header: Type.Number({ minimum: 0 }),\n footer: Type.Number({ minimum: 0 }),\n gutter: Type.Number({ minimum: 0 })\n },\n { description: \"Document margin configuration\" }\n);\nvar PageDimensionsSchema = Type.Object(\n {\n width: Type.Number({ minimum: 0 }),\n height: Type.Number({ minimum: 0 })\n },\n { description: \"Page dimensions in twips\" }\n);\nvar PageSchema = Type.Object(\n {\n size: Type.Union(\n [\n Type.Literal(\"A4\"),\n Type.Literal(\"A3\"),\n Type.Literal(\"LETTER\"),\n Type.Literal(\"LEGAL\"),\n Type.Object({\n width: Type.Number({ minimum: 0 }),\n height: Type.Number({ minimum: 0 })\n })\n ],\n { description: \"Standard page size or custom dimensions\" }\n ),\n margins: DocumentMarginsSchema\n },\n {\n description: \"Page configuration including dimensions and margins\",\n additionalProperties: false\n }\n);\nvar FontsSchema = Type.Object(\n {\n heading: FontDefinitionSchema,\n body: FontDefinitionSchema,\n mono: FontDefinitionSchema,\n light: FontDefinitionSchema\n },\n { description: \"Font definitions for different text types\" }\n);\nvar BorderStyleSchema = Type.Union(\n [\n Type.Literal(\"single\"),\n Type.Literal(\"dashDotStroked\"),\n Type.Literal(\"dashed\"),\n Type.Literal(\"dashSmallGap\"),\n Type.Literal(\"dotDash\"),\n Type.Literal(\"dotDotDash\"),\n Type.Literal(\"dotted\"),\n Type.Literal(\"double\"),\n Type.Literal(\"doubleWave\"),\n Type.Literal(\"inset\"),\n Type.Literal(\"nil\"),\n Type.Literal(\"none\"),\n Type.Literal(\"outset\"),\n Type.Literal(\"thick\"),\n Type.Literal(\"thickThinLargeGap\"),\n Type.Literal(\"thickThinMediumGap\"),\n Type.Literal(\"thickThinSmallGap\"),\n Type.Literal(\"thinThickLargeGap\"),\n Type.Literal(\"thinThickMediumGap\"),\n Type.Literal(\"thinThickSmallGap\"),\n Type.Literal(\"thinThickThinLargeGap\"),\n Type.Literal(\"thinThickThinMediumGap\"),\n Type.Literal(\"thinThickThinSmallGap\"),\n Type.Literal(\"threeDEmboss\"),\n Type.Literal(\"threeDEngrave\"),\n Type.Literal(\"triple\"),\n Type.Literal(\"wave\")\n ],\n { description: \"Paragraph border style\" }\n);\nvar BorderDefinitionSchema = Type.Object(\n {\n style: BorderStyleSchema,\n size: Type.Number({\n minimum: 0,\n description: \"Width in eighths of a point (docx sz)\"\n }),\n color: HexColorSchema,\n space: Type.Optional(\n Type.Number({\n minimum: 0,\n description: \"Space between text and border in points\"\n })\n )\n },\n {\n additionalProperties: false,\n description: \"Paragraph border side definition\"\n }\n);\nvar BordersSchema = Type.Object(\n {\n top: Type.Optional(BorderDefinitionSchema),\n bottom: Type.Optional(BorderDefinitionSchema),\n left: Type.Optional(BorderDefinitionSchema),\n right: Type.Optional(BorderDefinitionSchema)\n },\n { additionalProperties: false, description: \"Paragraph borders (per side)\" }\n);\nvar AlignmentSchema = Type.Optional(\n Type.Union([\n Type.Literal(\"left\"),\n Type.Literal(\"center\"),\n Type.Literal(\"right\"),\n Type.Literal(\"justify\")\n ])\n);\nvar StylePropertiesSchema = Type.Object(\n {\n font: Type.Optional(\n Type.Union([\n Type.Literal(\"heading\"),\n Type.Literal(\"body\"),\n Type.Literal(\"mono\"),\n Type.Literal(\"light\")\n ])\n ),\n ...TextFormattingPropertiesSchema.properties,\n // Paragraph-level alignment (not a font property)\n alignment: AlignmentSchema,\n // Additional properties specific to styles\n priority: Type.Optional(Type.Number()),\n baseStyle: Type.Optional(Type.String()),\n followingStyle: Type.Optional(Type.String()),\n widowControl: Type.Optional(Type.Boolean()),\n keepNext: Type.Optional(Type.Boolean()),\n keepLinesTogether: Type.Optional(Type.Boolean()),\n outlineLevel: Type.Optional(Type.Number()),\n borders: Type.Optional(BordersSchema),\n indent: Type.Optional(IndentSchema)\n },\n { additionalProperties: false }\n);\nvar TabStopLeaderSchema = Type.Union(\n [\n Type.Literal(\"dot\"),\n Type.Literal(\"hyphen\"),\n Type.Literal(\"middleDot\"),\n Type.Literal(\"none\"),\n Type.Literal(\"underscore\")\n ],\n {\n description: \"Tab leader style: dot (dotted), hyphen (dashed), middleDot, none (blank), or underscore\"\n }\n);\nvar TabStopTypeSchema = Type.Union(\n [\n Type.Literal(\"left\"),\n Type.Literal(\"right\"),\n Type.Literal(\"center\"),\n Type.Literal(\"bar\"),\n Type.Literal(\"clear\"),\n Type.Literal(\"decimal\"),\n Type.Literal(\"end\"),\n Type.Literal(\"num\"),\n Type.Literal(\"start\")\n ],\n {\n description: \"Tab stop alignment type\"\n }\n);\nvar TabStopDefinitionSchema = Type.Object(\n {\n type: TabStopTypeSchema,\n position: Type.Union([\n Type.Number({\n description: \"Tab stop position in twips (1/1440 inch). Common: 9026 for right-aligned at page margin\"\n }),\n Type.Literal(\"max\", {\n description: \"Use maximum position (TabStopPosition.MAX = 9026 twips)\"\n })\n ]),\n leader: Type.Optional(TabStopLeaderSchema)\n },\n {\n description: \"Tab stop configuration with position, alignment, and optional leader\",\n additionalProperties: false\n }\n);\nvar TocStylePropertiesSchema = Type.Object(\n {\n font: Type.Optional(\n Type.Union([\n Type.Literal(\"heading\"),\n Type.Literal(\"body\"),\n Type.Literal(\"mono\"),\n Type.Literal(\"light\")\n ])\n ),\n ...TextFormattingPropertiesSchema.properties,\n // Paragraph-level alignment (not a font property)\n alignment: AlignmentSchema,\n // Tab stops for controlling TOC entry formatting (leader dots, alignment, etc.)\n tabStops: Type.Optional(\n Type.Array(TabStopDefinitionSchema, {\n description: \"Tab stops for TOC entries. Use right-aligned tab with leader to create dotted lines to page numbers.\",\n default: [{ type: \"right\", position: \"max\", leader: \"none\" }]\n })\n ),\n // Additional properties specific to styles (baseStyle intentionally excluded)\n priority: Type.Optional(Type.Number()),\n followingStyle: Type.Optional(Type.String()),\n widowControl: Type.Optional(Type.Boolean()),\n keepNext: Type.Optional(Type.Boolean()),\n keepLinesTogether: Type.Optional(Type.Boolean()),\n outlineLevel: Type.Optional(Type.Number()),\n borders: Type.Optional(BordersSchema),\n indent: Type.Optional(IndentSchema)\n },\n { additionalProperties: false }\n);\nvar StyleDefinitionsSchema = Type.Object(\n {\n normal: Type.Optional(StylePropertiesSchema),\n heading1: Type.Optional(StylePropertiesSchema),\n heading2: Type.Optional(StylePropertiesSchema),\n heading3: Type.Optional(StylePropertiesSchema),\n heading4: Type.Optional(StylePropertiesSchema),\n heading5: Type.Optional(StylePropertiesSchema),\n heading6: Type.Optional(StylePropertiesSchema),\n title: Type.Optional(StylePropertiesSchema),\n subtitle: Type.Optional(StylePropertiesSchema),\n // TOC entry styles (used by Word to format TOC entries)\n // Note: TOC styles use TocStylePropertiesSchema which excludes baseStyle to prevent coupling with Headings\n TOC1: Type.Optional(TocStylePropertiesSchema),\n TOC2: Type.Optional(TocStylePropertiesSchema),\n TOC3: Type.Optional(TocStylePropertiesSchema),\n TOC4: Type.Optional(TocStylePropertiesSchema),\n TOC5: Type.Optional(TocStylePropertiesSchema),\n TOC6: Type.Optional(TocStylePropertiesSchema)\n },\n {\n additionalProperties: StylePropertiesSchema,\n description: \"Style definitions supporting predefined styles (normal, heading1..6, title, subtitle), TOC entry styles (TOC1..TOC6), and arbitrary custom styles.\"\n }\n);\nvar HeadingDefinitionSchema = Type.Object(\n {\n level: Type.Union([\n Type.Literal(1),\n Type.Literal(2),\n Type.Literal(3),\n Type.Literal(4),\n Type.Literal(5),\n Type.Literal(6)\n ]),\n ...StylePropertiesSchema.properties\n },\n { additionalProperties: false }\n);\nvar HeadingComponentDefaultsSchema = Type.Partial(HeadingPropsSchema);\nvar ParagraphComponentDefaultsSchema = Type.Partial(ParagraphPropsSchema);\nvar ImageComponentDefaultsSchema = Type.Partial(ImagePropsSchema);\nvar StatisticComponentDefaultsSchema = Type.Partial(StatisticPropsSchema);\nvar TableComponentDefaultsSchema = Type.Partial(TablePropsSchema);\nvar SectionComponentDefaultsSchema = Type.Partial(SectionPropsSchema);\nvar ColumnsComponentDefaultsSchema = Type.Partial(ColumnsPropsSchema);\nvar ListComponentDefaultsSchema = Type.Partial(ListPropsSchema);\nvar ComponentDefaultsSchema = Type.Object(\n {\n heading: Type.Optional(HeadingComponentDefaultsSchema),\n paragraph: Type.Optional(ParagraphComponentDefaultsSchema),\n image: Type.Optional(ImageComponentDefaultsSchema),\n statistic: Type.Optional(StatisticComponentDefaultsSchema),\n table: Type.Optional(TableComponentDefaultsSchema),\n section: Type.Optional(SectionComponentDefaultsSchema),\n columns: Type.Optional(ColumnsComponentDefaultsSchema),\n list: Type.Optional(ListComponentDefaultsSchema)\n },\n { additionalProperties: true }\n // TODO: add a way to add strict custom component defaults when the plugin/registry paradigm will be implemented\n);\nvar ThemeConfigSchema = Type.Object(\n {\n $schema: Type.Optional(Type.String()),\n name: Type.String(),\n displayName: Type.String(),\n description: Type.String(),\n version: Type.String(),\n colors: Type.Object(\n {\n primary: HexColorSchema,\n secondary: HexColorSchema,\n accent: HexColorSchema,\n text: HexColorSchema,\n background: HexColorSchema,\n border: HexColorSchema,\n // Additional semantic color names\n textPrimary: HexColorSchema,\n textSecondary: HexColorSchema,\n textMuted: HexColorSchema,\n borderPrimary: HexColorSchema,\n borderSecondary: HexColorSchema,\n backgroundPrimary: HexColorSchema,\n backgroundSecondary: HexColorSchema\n },\n { additionalProperties: false }\n ),\n fonts: FontsSchema,\n page: PageSchema,\n styles: Type.Optional(StyleDefinitionsSchema),\n componentDefaults: Type.Optional(ComponentDefaultsSchema)\n },\n {\n additionalProperties: false,\n description: \"Theme configuration\"\n }\n);\nfunction isValidThemeConfig(data) {\n return Value.Check(ThemeConfigSchema, data);\n}\n\nexport {\n DocumentMarginsSchema,\n PageDimensionsSchema,\n PageSchema,\n FontsSchema,\n StyleDefinitionsSchema,\n HeadingDefinitionSchema,\n HeadingComponentDefaultsSchema,\n ParagraphComponentDefaultsSchema,\n ImageComponentDefaultsSchema,\n StatisticComponentDefaultsSchema,\n TableComponentDefaultsSchema,\n SectionComponentDefaultsSchema,\n ColumnsComponentDefaultsSchema,\n ListComponentDefaultsSchema,\n ComponentDefaultsSchema,\n ThemeConfigSchema,\n isValidThemeConfig\n};\n//# sourceMappingURL=chunk-BOUURUYX.js.map","import {\n createAllComponentSchemas\n} from \"./chunk-5533WPL6.js\";\n\n// src/schemas/components.ts\nimport { Type } from \"@sinclair/typebox\";\nvar StandardComponentDefinitionSchema = Type.Union(\n // Use Type.Any() for non-recursive standard components\n // Convert readonly array to mutable array for Type.Union\n [...createAllComponentSchemas(Type.Any())],\n {\n discriminator: { propertyName: \"name\" },\n description: \"Standard component definition with discriminated union\"\n }\n);\nvar ComponentDefinitionSchema = Type.Recursive(\n (This) => Type.Union(\n [\n // Standard components from registry - SINGLE SOURCE OF TRUTH\n // Note: Report and section use special factory functions with recursive refs\n // Convert readonly array to mutable array for Type.Union\n ...createAllComponentSchemas(This)\n ],\n {\n discriminator: { propertyName: \"name\" },\n description: \"Component definition with discriminated union\"\n }\n )\n);\n\nexport {\n StandardComponentDefinitionSchema,\n ComponentDefinitionSchema\n};\n//# sourceMappingURL=chunk-ET6YMNMF.js.map","// src/schemas/custom-components.ts\nimport { Type } from \"@sinclair/typebox\";\nvar TextSpaceAfterPropsSchema = Type.Object({\n content: Type.String({\n description: \"Text content (required)\"\n }),\n spaceAfter: Type.Optional(\n Type.Number({\n minimum: 0,\n description: \"Spacing after text in points\"\n })\n ),\n fontSize: Type.Optional(Type.Number({ minimum: 1 })),\n fontFamily: Type.Optional(Type.String()),\n bold: Type.Optional(Type.Boolean()),\n italic: Type.Optional(Type.Boolean()),\n underline: Type.Optional(Type.Boolean()),\n color: Type.Optional(\n Type.String({\n pattern: \"^#[0-9A-Fa-f]{6}$\"\n })\n ),\n alignment: Type.Optional(\n Type.Union([\n Type.Literal(\"left\"),\n Type.Literal(\"center\"),\n Type.Literal(\"right\"),\n Type.Literal(\"justify\")\n ])\n )\n});\nvar TextSpaceAfterComponentSchema = Type.Object({\n name: Type.Literal(\"text-space-after\"),\n id: Type.Optional(Type.String()),\n props: TextSpaceAfterPropsSchema\n});\nvar CustomComponentDefinitionSchema = TextSpaceAfterComponentSchema;\n\nexport {\n TextSpaceAfterPropsSchema,\n TextSpaceAfterComponentSchema,\n CustomComponentDefinitionSchema\n};\n//# sourceMappingURL=chunk-VP3X6DBP.js.map","import {\n ThemeConfigSchema\n} from \"./chunk-BOUURUYX.js\";\nimport {\n documentValidator,\n strictDocumentValidator,\n validateAgainstSchema,\n validateJson\n} from \"./chunk-LOE6BZQG.js\";\nimport {\n ComponentDefinitionSchema\n} from \"./chunk-ET6YMNMF.js\";\nimport {\n ColumnsPropsSchema,\n FooterPropsSchema,\n HeaderPropsSchema,\n HeadingPropsSchema,\n ImagePropsSchema,\n ListPropsSchema,\n ParagraphPropsSchema,\n ReportPropsSchema,\n SectionPropsSchema,\n StatisticPropsSchema,\n TablePropsSchema\n} from \"./chunk-5533WPL6.js\";\nimport {\n CustomComponentDefinitionSchema\n} from \"./chunk-VP3X6DBP.js\";\n\n// src/validation/unified/index.ts\nimport {\n transformValueError,\n transformValueErrors,\n calculatePosition,\n formatErrorSummary,\n groupErrorsByPath,\n createJsonParseError\n} from \"@json-to-office/shared\";\nimport {\n isUnionSchema,\n isObjectSchema,\n isLiteralSchema,\n getObjectSchemaPropertyNames,\n getLiteralValue,\n extractStandardComponentNames,\n clearComponentNamesCache,\n getSchemaMetadata\n} from \"@json-to-office/shared\";\nimport {\n DEFAULT_ERROR_CONFIG as DEFAULT_ERROR_CONFIG2,\n ERROR_EMOJIS,\n createErrorConfig,\n formatErrorMessage\n} from \"@json-to-office/shared\";\n\n// src/validation/unified/error-formatter-config.ts\nfunction getDefaultConfig() {\n return {\n includeEmojis: !isCI(),\n verbosity: \"normal\",\n includeSuggestions: true,\n includePath: true,\n maxMessageLength: 0,\n includeDocLinks: false,\n colorSupport: hasColorSupport()\n };\n}\nvar DEFAULT_ERROR_CONFIG = getDefaultConfig();\nvar ERROR_TEMPLATES = {\n UNION_NO_MATCH: \"Value doesn't match any of the expected formats\",\n TYPE_MISMATCH: \"Expected {expected} but got {actual}\",\n MISSING_REQUIRED: \"Missing required field '{field}'\",\n UNKNOWN_PROPERTY: \"Unknown property '{property}'\",\n INVALID_FORMAT: \"Invalid {type} format\",\n PATTERN_MISMATCH: \"Value doesn't match the required pattern\"\n};\nvar DOC_LINKS = {\n MODULE_TYPES: \"https://docs.json-to-docx.com/modules\",\n THEME_CONFIG: \"https://docs.json-to-docx.com/themes\",\n VALIDATION: \"https://docs.json-to-docx.com/validation\"\n};\nfunction isCI() {\n if (typeof process === \"undefined\" || !process.env) {\n return false;\n }\n return !!(process.env.CI || process.env.CONTINUOUS_INTEGRATION || process.env.GITHUB_ACTIONS || process.env.GITLAB_CI || process.env.CIRCLECI || process.env.TRAVIS || process.env.JENKINS_URL);\n}\nfunction hasColorSupport() {\n if (typeof process === \"undefined\") {\n return false;\n }\n if (process.env?.NO_COLOR) {\n return false;\n }\n if (process.env?.FORCE_COLOR) {\n return true;\n }\n if (process.stdout?.isTTY) {\n return true;\n }\n return !isCI();\n}\n\n// src/validation/unified/theme-validator.ts\nfunction validateTheme(data, options) {\n if (typeof data === \"string\") {\n return {\n valid: true,\n themeName: data\n };\n }\n const result = validateAgainstSchema(ThemeConfigSchema, data, options);\n const themeResult = {\n ...result\n };\n if (result.valid && result.data) {\n const theme = result.data;\n if (theme.name) {\n themeResult.themeName = theme.name;\n }\n }\n return themeResult;\n}\nfunction validateThemeJson(jsonInput, options) {\n const result = validateJson(ThemeConfigSchema, jsonInput, options);\n const themeResult = {\n ...result\n };\n if (result.valid && result.data) {\n const theme = result.data;\n if (typeof theme === \"object\" && !theme.$schema) {\n theme.$schema = \"./json-schemas/theme.schema.json\";\n }\n if (theme.name) {\n themeResult.themeName = theme.name;\n }\n }\n return themeResult;\n}\nfunction validateThemeWithEnhancement(data, options) {\n const result = validateTheme(data, options);\n if (!result.valid && result.errors) {\n result.errors = result.errors.map((error) => {\n if (error.path.includes(\"colors\") && !error.suggestion) {\n error.suggestion = \"Colors must be valid hex, rgb, or named colors\";\n }\n if (error.path.includes(\"fonts\") && !error.suggestion) {\n error.suggestion = \"Fonts must include size and family properties\";\n }\n if (error.path.includes(\"headings\") && !error.suggestion) {\n error.suggestion = \"Headings must be an array of 6 style definitions\";\n }\n return error;\n });\n }\n return result;\n}\nfunction isValidTheme(result) {\n return result.valid === true && result.data !== void 0;\n}\nfunction createThemeValidator(defaultOptions) {\n return {\n validate: (data, options) => validateTheme(data, { ...defaultOptions, ...options }),\n validateJson: (jsonInput, options) => validateThemeJson(jsonInput, { ...defaultOptions, ...options }),\n validateWithEnhancement: (data, options) => validateThemeWithEnhancement(data, { ...defaultOptions, ...options })\n };\n}\nvar themeValidator = createThemeValidator({\n clean: true,\n applyDefaults: true\n});\nvar strictThemeValidator = createThemeValidator({\n clean: false,\n applyDefaults: false,\n maxErrors: 10\n});\nfunction getThemeName(data) {\n if (typeof data === \"string\") {\n return data;\n }\n if (typeof data === \"object\" && data !== null && \"name\" in data) {\n const theme = data;\n if (typeof theme.name === \"string\") {\n return theme.name;\n }\n }\n return void 0;\n}\nfunction isThemeConfig(data) {\n if (!data || typeof data !== \"object\") {\n return false;\n }\n const theme = data;\n return !!(theme.colors && theme.fonts);\n}\n\n// src/validation/unified/component-validator.ts\nimport { Value } from \"@sinclair/typebox/value\";\nvar COMPONENT_SCHEMA_MAP = {\n report: ReportPropsSchema,\n section: SectionPropsSchema,\n heading: HeadingPropsSchema,\n paragraph: ParagraphPropsSchema,\n columns: ColumnsPropsSchema,\n image: ImagePropsSchema,\n statistic: StatisticPropsSchema,\n table: TablePropsSchema,\n header: HeaderPropsSchema,\n footer: FooterPropsSchema,\n list: ListPropsSchema,\n custom: CustomComponentDefinitionSchema\n};\nfunction validateComponent(name, props, options) {\n const schema = COMPONENT_SCHEMA_MAP[name];\n if (!schema) {\n const customResult = validateAgainstSchema(\n CustomComponentDefinitionSchema,\n props,\n options\n );\n return {\n ...customResult,\n success: customResult.valid,\n // Add success for backward compatibility\n componentName: name,\n isCustomComponent: true\n };\n }\n const result = validateAgainstSchema(schema, props, options);\n return {\n ...result,\n success: result.valid,\n // Add success for backward compatibility\n componentName: name,\n isCustomComponent: name === \"custom\"\n };\n}\nfunction validateComponentDefinition(component, options) {\n const result = validateAgainstSchema(\n ComponentDefinitionSchema,\n component,\n options\n );\n const componentResult = {\n ...result\n };\n if (result.valid && result.data) {\n const comp = result.data;\n componentResult.componentName = comp.name;\n componentResult.isCustomComponent = !isStandardComponentName(comp.name);\n }\n return componentResult;\n}\nfunction validateCustomComponentProps(componentSchema, config, options) {\n try {\n const result = validateAgainstSchema(componentSchema, config, {\n ...options,\n clean: options?.clean ?? true,\n applyDefaults: options?.applyDefaults ?? true\n });\n return {\n ...result,\n success: result.valid,\n // Add success for backward compatibility\n data: result.data,\n // Cast to generic type T\n componentName: \"custom\",\n isCustomComponent: true\n };\n } catch (error) {\n return {\n valid: false,\n success: false,\n // Add success for backward compatibility\n errors: [\n {\n path: \"props\",\n message: error instanceof Error ? error.message : \"Unknown validation error\",\n code: \"validation_exception\"\n }\n ],\n componentName: \"custom\",\n isCustomComponent: true\n };\n }\n}\nfunction validateComponents(components, options) {\n return components.map(({ name, props }) => {\n if (isStandardComponentName(name)) {\n return validateComponent(name, props, options);\n }\n return validateComponent(\"custom\", props, options);\n });\n}\nfunction isStandardComponentName(name) {\n return name in COMPONENT_SCHEMA_MAP;\n}\nfunction isReportProps(config) {\n return Value.Check(ReportPropsSchema, config);\n}\nfunction isSectionProps(config) {\n return Value.Check(SectionPropsSchema, config);\n}\nfunction isHeadingProps(config) {\n return Value.Check(HeadingPropsSchema, config);\n}\nfunction isParagraphProps(config) {\n return Value.Check(ParagraphPropsSchema, config);\n}\nfunction isColumnsProps(config) {\n return Value.Check(ColumnsPropsSchema, config);\n}\nfunction isImageProps(config) {\n return Value.Check(ImagePropsSchema, config);\n}\nfunction isStatisticProps(config) {\n return Value.Check(StatisticPropsSchema, config);\n}\nfunction isTableProps(config) {\n return Value.Check(TablePropsSchema, config);\n}\nfunction isHeaderProps(config) {\n return Value.Check(HeaderPropsSchema, config);\n}\nfunction isFooterProps(config) {\n return Value.Check(FooterPropsSchema, config);\n}\nfunction isListProps(config) {\n return Value.Check(ListPropsSchema, config);\n}\nfunction isCustomComponentProps(config) {\n return Value.Check(CustomComponentDefinitionSchema, config);\n}\nfunction createComponentValidator(defaultOptions) {\n return {\n validate: (name, props, options) => {\n if (isStandardComponentName(name)) {\n return validateComponent(name, props, {\n ...defaultOptions,\n ...options\n });\n }\n return validateComponent(\"custom\", props, {\n ...defaultOptions,\n ...options\n });\n },\n validateDefinition: (component, options) => validateComponentDefinition(component, { ...defaultOptions, ...options }),\n validateCustom: (schema, config, options) => validateCustomComponentProps(schema, config, {\n ...defaultOptions,\n ...options\n })\n };\n}\nvar componentValidator = createComponentValidator({\n clean: true,\n applyDefaults: true\n});\nvar strictComponentValidator = createComponentValidator({\n clean: false,\n applyDefaults: false,\n maxErrors: 10\n});\n\n// src/validation/unified/index.ts\nvar validate = {\n // Document validation\n document: (data) => documentValidator.validate(data),\n jsonDocument: (jsonInput) => documentValidator.validateJson(jsonInput),\n // Theme validation\n theme: (data) => themeValidator.validate(data),\n jsonTheme: (jsonInput) => themeValidator.validateJson(jsonInput),\n // Component validation\n component: (name, props) => componentValidator.validate(name, props),\n componentDefinition: (component) => componentValidator.validateDefinition(component),\n // Batch operations\n components: (components) => components.map((c) => componentValidator.validate(c.name, c.props)),\n // Type checking (non-throwing)\n isDocument: (data) => {\n const result = documentValidator.validate(data);\n return result.valid;\n },\n isTheme: (data) => {\n const result = themeValidator.validate(data);\n return result.valid;\n },\n isComponent: (name, props) => {\n const result = componentValidator.validate(name, props);\n return result.valid;\n }\n};\nvar validateStrict = {\n document: (data) => strictDocumentValidator.validate(data),\n jsonDocument: (jsonInput) => strictDocumentValidator.validateJson(jsonInput),\n theme: (data) => strictThemeValidator.validate(data),\n jsonTheme: (jsonInput) => strictThemeValidator.validateJson(jsonInput),\n component: (name, props) => strictComponentValidator.validate(name, props),\n componentDefinition: (component) => strictComponentValidator.validateDefinition(component)\n};\n\nexport {\n validateTheme,\n validateThemeJson,\n validateThemeWithEnhancement,\n isValidTheme,\n createThemeValidator,\n themeValidator,\n strictThemeValidator,\n getThemeName,\n isThemeConfig,\n validateComponent,\n validateComponentDefinition,\n validateCustomComponentProps,\n validateComponents,\n isStandardComponentName,\n isReportProps,\n isSectionProps,\n isHeadingProps,\n isParagraphProps,\n isColumnsProps,\n isImageProps,\n isStatisticProps,\n isTableProps,\n isHeaderProps,\n isFooterProps,\n isListProps,\n isCustomComponentProps,\n createComponentValidator,\n componentValidator,\n strictComponentValidator,\n ERROR_TEMPLATES,\n DOC_LINKS,\n validate,\n validateStrict,\n transformValueError,\n transformValueErrors,\n calculatePosition,\n formatErrorSummary,\n groupErrorsByPath,\n createJsonParseError,\n isUnionSchema,\n isObjectSchema,\n isLiteralSchema,\n getObjectSchemaPropertyNames,\n getLiteralValue,\n extractStandardComponentNames,\n clearComponentNamesCache,\n getSchemaMetadata,\n DEFAULT_ERROR_CONFIG2 as DEFAULT_ERROR_CONFIG,\n ERROR_EMOJIS,\n createErrorConfig,\n formatErrorMessage\n};\n//# sourceMappingURL=chunk-BEPLK76M.js.map","import {\n ComponentDefinitionSchema\n} from \"./chunk-ET6YMNMF.js\";\n\n// src/schemas/api.ts\nimport { Type } from \"@sinclair/typebox\";\nvar GenerateDocumentRequestSchema = Type.Object(\n {\n definition: ComponentDefinitionSchema,\n format: Type.Optional(\n Type.Union([\n Type.Literal(\"docx\"),\n Type.Literal(\"pdf\"),\n Type.Literal(\"html\")\n ])\n ),\n options: Type.Optional(\n Type.Object(\n {\n includeMetadata: Type.Optional(Type.Boolean()),\n includeComments: Type.Optional(Type.Boolean()),\n trackChanges: Type.Optional(Type.Boolean())\n },\n { additionalProperties: true }\n )\n )\n },\n {\n additionalProperties: false,\n description: \"Document generation request\"\n }\n);\nvar ValidateDocumentRequestSchema = Type.Object(\n {\n definition: Type.Unknown(),\n strict: Type.Optional(Type.Boolean())\n },\n {\n additionalProperties: false,\n description: \"Document validation request\"\n }\n);\nvar GenerateDocumentResponseSchema = Type.Object(\n {\n success: Type.Boolean(),\n documentId: Type.Optional(Type.String()),\n downloadUrl: Type.Optional(Type.String()),\n error: Type.Optional(Type.String()),\n metadata: Type.Optional(\n Type.Object(\n {\n pageCount: Type.Optional(Type.Number()),\n wordCount: Type.Optional(Type.Number()),\n generatedAt: Type.Optional(Type.String({ format: \"date-time\" }))\n },\n { additionalProperties: true }\n )\n )\n },\n {\n additionalProperties: false,\n description: \"Document generation response\"\n }\n);\nvar ValidateDocumentResponseSchema = Type.Object(\n {\n valid: Type.Boolean(),\n errors: Type.Array(\n Type.Object({\n path: Type.String(),\n message: Type.String(),\n code: Type.Optional(Type.String())\n })\n ),\n warnings: Type.Optional(\n Type.Array(\n Type.Object({\n path: Type.String(),\n message: Type.String(),\n code: Type.Optional(Type.String())\n })\n )\n )\n },\n {\n additionalProperties: false,\n description: \"Document validation response\"\n }\n);\n\nexport {\n GenerateDocumentRequestSchema,\n ValidateDocumentRequestSchema,\n GenerateDocumentResponseSchema,\n ValidateDocumentResponseSchema\n};\n//# sourceMappingURL=chunk-EKWM2CWA.js.map","import {\n generateUnifiedDocumentSchema\n} from \"./chunk-LWR4TFZ5.js\";\nimport {\n DOC_LINKS,\n ERROR_TEMPLATES,\n componentValidator,\n createComponentValidator,\n createThemeValidator,\n getThemeName,\n isColumnsProps,\n isCustomComponentProps,\n isFooterProps,\n isHeaderProps,\n isHeadingProps,\n isImageProps,\n isListProps,\n isParagraphProps,\n isReportProps,\n isSectionProps,\n isStandardComponentName,\n isStatisticProps,\n isTableProps,\n isThemeConfig,\n isValidTheme,\n strictComponentValidator,\n strictThemeValidator,\n themeValidator,\n validate,\n validateComponent,\n validateComponentDefinition,\n validateCustomComponentProps,\n validateStrict,\n validateTheme,\n validateThemeJson,\n validateThemeWithEnhancement\n} from \"./chunk-BEPLK76M.js\";\nimport {\n ThemeConfigSchema,\n isValidThemeConfig\n} from \"./chunk-BOUURUYX.js\";\nimport {\n GenerateDocumentRequestSchema,\n GenerateDocumentResponseSchema,\n ValidateDocumentRequestSchema,\n ValidateDocumentResponseSchema\n} from \"./chunk-EKWM2CWA.js\";\nimport {\n JSON_SCHEMA_URLS,\n JsonComponentDefinitionSchema\n} from \"./chunk-AA4HIXRG.js\";\nimport {\n comprehensiveValidateDocument,\n createDocumentValidator,\n createJsonValidator,\n createValidator,\n deepValidateDocument,\n documentValidator,\n getValidationSummary,\n isValidDocument,\n isValidationSuccess,\n strictDocumentValidator,\n transformValueError,\n transformValueErrors,\n validateAgainstSchema,\n validateBatch,\n validateDocument,\n validateDocumentWithSchema,\n validateJson,\n validateJsonComponent,\n validateJsonDocument,\n validateWithEnhancement\n} from \"./chunk-LOE6BZQG.js\";\nimport {\n ComponentDefinitionSchema,\n StandardComponentDefinitionSchema\n} from \"./chunk-ET6YMNMF.js\";\nimport {\n AlignmentSchema,\n BaseComponentPropsSchema,\n BorderSchema,\n ColumnsPropsSchema,\n FooterPropsSchema,\n HeaderPropsSchema,\n HeadingLevelSchema,\n HeadingPropsSchema,\n HighchartsPropsSchema,\n ImagePropsSchema,\n IndentSchema,\n JustifiedAlignmentSchema,\n LineSpacingSchema,\n ListPropsSchema,\n MarginsSchema,\n NumberingSchema,\n ParagraphPropsSchema,\n ReportPropsSchema,\n SectionPropsSchema,\n SpacingSchema,\n StatisticPropsSchema,\n TablePropsSchema,\n TextBoxPropsSchema,\n TocPropsSchema\n} from \"./chunk-5533WPL6.js\";\nimport {\n CustomComponentDefinitionSchema,\n TextSpaceAfterComponentSchema,\n TextSpaceAfterPropsSchema\n} from \"./chunk-VP3X6DBP.js\";\nimport {\n BASE_SCHEMA_METADATA,\n COMPONENT_METADATA,\n THEME_SCHEMA_METADATA,\n convertToJsonSchema,\n createComponentSchema,\n exportSchemaToFile,\n fixSchemaReferences\n} from \"./chunk-HHMK2RWF.js\";\nimport \"./chunk-F5LVWDTY.js\";\n\n// src/index.ts\nimport {\n fixSchemaReferences as fixSchemaReferences2,\n convertToJsonSchema as convertToJsonSchema2,\n createComponentSchema as createComponentSchema2,\n createComponentSchemaObject,\n exportSchemaToFile as exportSchemaToFile2\n} from \"@json-to-office/shared\";\nimport {\n transformValueError as transformValueError2,\n transformValueErrors as transformValueErrors2,\n formatErrorSummary,\n groupErrorsByPath,\n createJsonParseError,\n calculatePosition\n} from \"@json-to-office/shared\";\nimport {\n DEFAULT_ERROR_CONFIG,\n createErrorConfig,\n ERROR_EMOJIS,\n formatErrorMessage\n} from \"@json-to-office/shared\";\nimport {\n isUnionSchema,\n isObjectSchema,\n isLiteralSchema,\n getObjectSchemaPropertyNames,\n getLiteralValue,\n extractStandardComponentNames,\n clearComponentNamesCache,\n getSchemaMetadata\n} from \"@json-to-office/shared\";\nimport {\n isValidSemver,\n parseSemver,\n compareSemver,\n latestVersion\n} from \"@json-to-office/shared\";\n\n// src/validation/parsers/json.ts\nimport { Value } from \"@sinclair/typebox/value\";\nimport { FormatRegistry } from \"@sinclair/typebox\";\nFormatRegistry.Set(\"uri\", (value) => {\n try {\n new URL(value);\n return true;\n } catch {\n if (value.includes(\".json\") || value.includes(\"/\") || value.includes(\"\\\\\")) {\n return true;\n }\n return /^https?:\\/\\/.+/.test(value);\n }\n});\nFormatRegistry.Set(\"date-time\", (value) => {\n const dateTimeRegex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z?$/;\n return dateTimeRegex.test(value) && !isNaN(Date.parse(value));\n});\nvar JsonDocumentParser = class {\n schema = ComponentDefinitionSchema;\n constructor() {\n }\n /**\n * Parse JSON input (string or object) and validate against schema\n * Only supports unified ComponentDefinition structure where document IS a report component\n */\n parse(jsonInput) {\n let parsedObject;\n if (typeof jsonInput === \"string\") {\n try {\n parsedObject = JSON.parse(jsonInput);\n } catch (error) {\n throw new JsonParsingError(\n \"Invalid JSON syntax\",\n this.extractJSONSyntaxError(error, jsonInput)\n );\n }\n } else {\n parsedObject = jsonInput;\n }\n if (typeof parsedObject !== \"object\" || parsedObject === null || !(\"name\" in parsedObject) || parsedObject.name !== \"docx\") {\n throw new JsonValidationError(\n 'Invalid document structure: Document must be a docx component with name=\"docx\"',\n [\n {\n path: \"name\",\n message: 'Document must be a docx component with name=\"docx\"',\n code: \"INVALID_STRUCTURE\"\n }\n ]\n );\n }\n if (!Value.Check(this.schema, parsedObject)) {\n const errors = [...Value.Errors(this.schema, parsedObject)];\n throw new JsonValidationError(\n \"JSON validation failed\",\n this.formatTypeBoxErrors(\n errors,\n typeof jsonInput === \"string\" ? jsonInput : JSON.stringify(jsonInput, null, 2)\n )\n );\n }\n return parsedObject;\n }\n /**\n * Validate JSON without throwing errors - returns ValidationResult\n */\n validate(jsonInput) {\n try {\n this.parse(jsonInput);\n return {\n valid: true,\n errors: [],\n warnings: []\n };\n } catch (error) {\n if (error instanceof JsonParsingError || error instanceof JsonValidationError) {\n return {\n valid: false,\n errors: error.validationErrors,\n warnings: []\n };\n }\n return {\n valid: false,\n errors: [\n {\n path: \"\",\n message: error instanceof Error ? error.message : \"Unknown validation error\",\n code: \"UNEXPECTED_ERROR\"\n }\n ],\n warnings: []\n };\n }\n }\n /**\n * Parse JSON file content with line number tracking\n */\n parseWithLineNumbers(jsonString) {\n const lines = jsonString.split(\"\\n\");\n try {\n return this.parse(jsonString);\n } catch (error) {\n if (error instanceof JsonParsingError || error instanceof JsonValidationError) {\n const enhancedErrors = error.validationErrors.map((err) => ({\n ...err,\n ...this.findLineNumber(err.path, jsonString, lines)\n }));\n if (error instanceof JsonParsingError) {\n throw new JsonParsingError(error.message, enhancedErrors);\n } else {\n throw new JsonValidationError(error.message, enhancedErrors);\n }\n }\n throw error;\n }\n }\n /**\n * Extract JSON syntax error information\n */\n extractJSONSyntaxError(error, jsonString) {\n const message = error.message;\n const positionMatch = message.match(/position\\s+(\\d+)/i) || message.match(/at\\s+(\\d+)/i) || message.match(/character\\s+(\\d+)/i);\n let line = 0;\n let column = 0;\n if (positionMatch) {\n const position = parseInt(positionMatch[1], 10);\n const lines = jsonString.substring(0, position).split(\"\\n\");\n line = lines.length;\n column = lines[lines.length - 1].length + 1;\n }\n return [\n {\n path: \"\",\n message: `JSON syntax error: ${message}`,\n code: \"JSON_SYNTAX_ERROR\",\n line: line || void 0,\n column: column || void 0,\n suggestions: [\n \"Check for missing commas, brackets, or quotes\",\n \"Validate JSON syntax using a JSON validator\",\n \"Ensure all strings are properly quoted\"\n ]\n }\n ];\n }\n /**\n * Format TypeBox validation errors into ValidationError format\n */\n formatTypeBoxErrors(errors, originalJson) {\n return errors.map((error) => {\n const path = error.path || \"\";\n const lineInfo = this.findLineNumber(path, originalJson);\n return {\n path,\n message: this.formatTypeBoxErrorMessage(error),\n code: this.getErrorCode(error),\n line: lineInfo.line,\n column: lineInfo.column,\n suggestions: this.generateSuggestions(error)\n };\n });\n }\n /**\n * Format individual TypeBox error message\n */\n formatTypeBoxErrorMessage(error) {\n const path = error.path ? `at \"${error.path}\"` : \"\";\n const message = error.message;\n if (message.includes(\"Expected\")) {\n return `${message} ${path}`;\n } else if (message.includes(\"Required property\")) {\n return `${message} ${path}`;\n } else if (message.includes(\"Unexpected property\")) {\n return `${message} ${path}`;\n } else if (message.includes(\"minimum\")) {\n return `Value is too small ${path}. ${message}`;\n } else if (message.includes(\"maximum\")) {\n return `Value is too big ${path}. ${message}`;\n } else {\n return `${message} ${path}`;\n }\n }\n /**\n * Get error code from TypeBox error\n */\n getErrorCode(error) {\n const baseCode = String(error.type || \"VALIDATION_ERROR\").toUpperCase();\n const path = error.path ? error.path.replace(/\\//g, \"_\").toUpperCase() : \"\";\n return path ? `${baseCode}_${path}` : baseCode;\n }\n /**\n * Generate helpful suggestions based on error type\n */\n generateSuggestions(error) {\n const suggestions = [];\n const message = error.message;\n if (message.includes(\"Expected string\")) {\n suggestions.push(\"Ensure the value is wrapped in quotes\");\n } else if (message.includes(\"Expected number\")) {\n suggestions.push(\"Remove quotes around numeric values\");\n } else if (message.includes(\"Expected array\")) {\n suggestions.push(\"Use square brackets [] for arrays\");\n } else if (message.includes(\"Expected object\")) {\n suggestions.push(\"Use curly braces {} for objects\");\n } else if (message.includes(\"Expected literal\")) {\n const match = message.match(/Expected literal (.+)/);\n if (match) {\n suggestions.push(`Use the exact value: ${match[1]}`);\n }\n } else if (message.includes(\"Unexpected property\")) {\n suggestions.push(\"Remove unknown properties or check spelling\");\n suggestions.push(\n \"Refer to the JSON schema documentation for valid properties\"\n );\n } else if (message.includes(\"Expected union\")) {\n suggestions.push(\n \"Check that the value matches one of the allowed formats\"\n );\n suggestions.push(\"Verify the module type is spelled correctly\");\n } else if (message.includes(\"minimum\")) {\n const match = message.match(/minimum.*?(\\d+)/);\n if (match) {\n if (message.includes(\"Array\")) {\n suggestions.push(`Array must have at least ${match[1]} items`);\n } else {\n suggestions.push(`Value must be at least ${match[1]}`);\n }\n }\n } else if (message.includes(\"format\") && message.includes(\"uri\")) {\n suggestions.push(\n \"Ensure the URL is valid and starts with http:// or https://\"\n );\n }\n if (suggestions.length === 0) {\n suggestions.push(\"Check the JSON schema documentation for valid values\");\n suggestions.push(\"Verify the property name and value format\");\n }\n return suggestions;\n }\n /**\n * Find line and column number for a given JSON path\n */\n findLineNumber(path, jsonString, lines) {\n if (!path) {\n return {};\n }\n const jsonLines = lines || jsonString.split(\"\\n\");\n const pathParts = path.split(\".\");\n for (let i = 0; i < jsonLines.length; i++) {\n const line = jsonLines[i];\n const lastPathPart = pathParts[pathParts.length - 1];\n if (line.includes(`\"${lastPathPart}\"`)) {\n const column = line.indexOf(`\"${lastPathPart}\"`) + 1;\n return {\n line: i + 1,\n column\n };\n }\n }\n return {};\n }\n};\nvar JsonParsingError = class extends Error {\n validationErrors;\n constructor(message, errors) {\n super(message);\n this.name = \"JsonParsingError\";\n this.validationErrors = errors;\n }\n};\nvar JsonValidationError = class extends Error {\n validationErrors;\n constructor(message, errors) {\n super(message);\n this.name = \"JsonValidationError\";\n this.validationErrors = errors;\n }\n};\nfunction parseJsonComponent(jsonInput) {\n const parser = new JsonDocumentParser();\n return parser.parse(jsonInput);\n}\nfunction parseJsonWithLineNumbers(jsonString) {\n const parser = new JsonDocumentParser();\n return parser.parseWithLineNumbers(jsonString);\n}\n\n// src/validation/validators/theme.ts\nfunction formatValidationErrors(errors) {\n if (!Array.isArray(errors)) return [];\n return errors.map((error) => {\n if (typeof error === \"string\") return error;\n const path = error.path ? `${error.path}: ` : \"\";\n const message = error.message || \"Validation error\";\n return `${path}${message}`;\n });\n}\n\n// src/validation/validators/component.ts\nfunction safeValidateComponentProps(name, props) {\n const componentName = isStandardComponentName(name) ? name : \"custom\";\n const result = validateComponent(componentName, props);\n if (result.valid) {\n return { success: true, data: result.data };\n }\n return { success: false, error: result.errors || [] };\n}\nfunction safeValidateComponentDefinition(component) {\n const result = validateComponentDefinition(component);\n if (result.valid) {\n return { success: true, data: result.data };\n }\n return { success: false, error: result.errors || [] };\n}\nfunction getValidationErrors(props, name) {\n const componentName = name && isStandardComponentName(name) ? name : \"custom\";\n const result = validateComponent(componentName, props);\n if (result.valid) return [];\n return (result.errors || []).map(\n (e) => e.path ? `${e.path}: ${e.message}` : e.message\n );\n}\n\n// src/validation/core/validator.ts\nimport { Value as Value2 } from \"@sinclair/typebox/value\";\n\n// src/validation/core/errors.ts\nfunction formatSingleIssue(issue) {\n const path = issue.path || \"root\";\n let message = issue.message;\n let suggestion;\n let expected;\n let received;\n let options;\n if (message.includes(\"Expected\")) {\n const match = message.match(/Expected (.+) but received (.+)/);\n if (match) {\n expected = match[1];\n received = match[2];\n suggestion = getSuggestionForType(expected, received);\n }\n }\n if (message.includes(\"Required property\")) {\n const match = message.match(/Required property '(.+)'/);\n if (match) {\n message = `Missing required field: ${match[1]}`;\n suggestion = `Add the required field: ${match[1]}`;\n }\n }\n if (message.includes(\"Unexpected property\")) {\n const match = message.match(/Unexpected property '(.+)'/);\n if (match) {\n message = `Unknown property: ${match[1]}`;\n suggestion = `Remove the unknown property: ${match[1]}`;\n }\n }\n if (message.includes(\"Expected union\")) {\n message = \"Value does not match any of the expected types\";\n suggestion = \"Check the documentation for valid format options\";\n }\n if (message.includes(\"Expected literal\")) {\n const match = message.match(/Expected literal (.+)/);\n if (match) {\n expected = match[1];\n message = `Expected value: ${expected}`;\n suggestion = `Use the exact value: ${expected}`;\n }\n }\n if (message.includes(\"String length\")) {\n const minMatch = message.match(/minimum length of (\\d+)/);\n const maxMatch = message.match(/maximum length of (\\d+)/);\n if (minMatch) {\n message = `String must be at least ${minMatch[1]} characters long`;\n suggestion = `Add more characters to meet the minimum length of ${minMatch[1]}`;\n } else if (maxMatch) {\n message = `String must be at most ${maxMatch[1]} characters long`;\n suggestion = `Reduce to ${maxMatch[1]} characters or less`;\n }\n }\n if (message.includes(\"Expected number\")) {\n const minMatch = message.match(/minimum value of ([\\d.]+)/);\n const maxMatch = message.match(/maximum value of ([\\d.]+)/);\n if (minMatch) {\n message = `Number must be greater than or equal to ${minMatch[1]}`;\n suggestion = `Use a value of ${minMatch[1]} or higher`;\n } else if (maxMatch) {\n message = `Number must be less than or equal to ${maxMatch[1]}`;\n suggestion = `Use a value of ${maxMatch[1]} or lower`;\n }\n }\n if (message.includes(\"Array length\")) {\n const minMatch = message.match(/minimum length of (\\d+)/);\n const maxMatch = message.match(/maximum length of (\\d+)/);\n if (minMatch) {\n message = `Array must have at least ${minMatch[1]} items`;\n suggestion = `Add more items to meet the minimum of ${minMatch[1]}`;\n } else if (maxMatch) {\n message = `Array must have at most ${maxMatch[1]} items`;\n suggestion = `Remove items to meet the maximum of ${maxMatch[1]}`;\n }\n }\n if (message.includes(\"format\")) {\n if (message.includes(\"email\")) {\n message = \"Invalid email address format\";\n suggestion = \"Use a valid email format like user@example.com\";\n } else if (message.includes(\"uri\") || message.includes(\"url\")) {\n message = \"Invalid URL format\";\n suggestion = \"Use a valid URL format like https://example.com\";\n } else if (message.includes(\"date-time\")) {\n message = \"Invalid date-time format\";\n suggestion = \"Use ISO 8601 format like 2024-01-01T00:00:00Z\";\n }\n }\n if (message.includes(\"pattern\")) {\n message = \"String does not match the required pattern\";\n suggestion = \"Check the format requirements for this field\";\n }\n return {\n path,\n message,\n code: String(issue.type || \"validation_error\"),\n suggestion,\n expected,\n received,\n options\n };\n}\nfunction getSuggestionForType(expected, received) {\n if (expected === \"number\" && received === \"string\") {\n return \"Remove quotes or convert the string to a number\";\n }\n if (expected === \"string\" && received === \"number\") {\n return \"Add quotes or convert the number to a string\";\n }\n if (expected === \"boolean\") {\n return \"Use true or false (without quotes)\";\n }\n if (expected === \"array\" && received === \"object\") {\n return \"Use square brackets [] for arrays instead of curly braces {}\";\n }\n if (expected === \"object\" && received === \"array\") {\n return \"Use curly braces {} for objects instead of square brackets []\";\n }\n if (received === \"null\" || received === \"undefined\") {\n return `Provide a valid ${expected} value or mark the field as optional`;\n }\n return void 0;\n}\nfunction formatTypeBoxError(errors) {\n return errors.map(formatSingleIssue);\n}\nfunction formatTypeBoxErrorStrings(errors) {\n return formatTypeBoxError(errors).map((err) => {\n let msg = `${err.path}: ${err.message}`;\n if (err.suggestion) {\n msg += ` (Suggestion: ${err.suggestion})`;\n }\n return msg;\n });\n}\nfunction getErrorSummary(errors) {\n const summary = /* @__PURE__ */ new Map();\n for (const formattedError of formatTypeBoxError(errors)) {\n const existing = summary.get(formattedError.path) || [];\n existing.push(formattedError);\n summary.set(formattedError.path, existing);\n }\n return summary;\n}\nfunction formatErrorReport(errors) {\n const formattedErrors = formatTypeBoxError(errors);\n const summary = getErrorSummary(errors);\n let report = `Validation failed with ${formattedErrors.length} error${formattedErrors.length > 1 ? \"s\" : \"\"}:\n\n`;\n for (const [path, pathErrors] of summary) {\n report += `\\u{1F4CD} ${path}:\n`;\n for (const err of pathErrors) {\n report += ` \\u274C ${err.message}\n`;\n if (err.suggestion) {\n report += ` \\u{1F4A1} ${err.suggestion}\n`;\n }\n if (err.expected && err.received) {\n report += ` \\u{1F4CB} Expected: ${err.expected}, Received: ${err.received}\n`;\n }\n if (err.options) {\n report += ` \\u{1F4CB} Valid options: ${err.options.join(\", \")}\n`;\n }\n }\n report += \"\\n\";\n }\n return report;\n}\nfunction hasCriticalErrors(errors) {\n return errors.some((issue) => {\n if (issue.message.includes(\"Required property\")) {\n return true;\n }\n if (issue.path.includes(\"name\") && issue.message.includes(\"Expected literal\")) {\n return true;\n }\n if (issue.message.includes(\"Expected union\") || issue.message.includes(\"Never\")) {\n return true;\n }\n return false;\n });\n}\nfunction getValidationContext(path) {\n if (!path || path === \"root\") return \"document root\";\n const pathParts = path.split(\".\");\n if (pathParts.includes(\"children\")) {\n const childIndex = pathParts.indexOf(\"children\");\n if (pathParts.length > childIndex + 1) {\n const index = pathParts[childIndex + 1];\n return `component at index ${index}`;\n }\n }\n if (pathParts.includes(\"props\")) {\n return \"props section\";\n }\n if (pathParts.includes(\"theme\")) {\n return \"theme configuration\";\n }\n return pathParts.join(\" > \");\n}\nvar formatValidationError = formatTypeBoxError;\nvar formatValidationErrorStrings = formatTypeBoxErrorStrings;\n\n// src/validation/core/validator.ts\nvar COMPONENT_SCHEMA_MAP = {\n report: ReportPropsSchema,\n section: SectionPropsSchema,\n heading: HeadingPropsSchema,\n paragraph: ParagraphPropsSchema,\n columns: ColumnsPropsSchema,\n image: ImagePropsSchema,\n statistic: StatisticPropsSchema,\n table: TablePropsSchema,\n header: HeaderPropsSchema,\n footer: FooterPropsSchema,\n list: ListPropsSchema\n};\nfunction validateComponent2(name, props, options) {\n const schema = COMPONENT_SCHEMA_MAP[name];\n if (!schema) {\n if (Value2.Check(CustomComponentDefinitionSchema, props)) {\n return {\n success: true,\n data: props\n };\n }\n const errors2 = [...Value2.Errors(CustomComponentDefinitionSchema, props)];\n const formattedErrors2 = formatTypeBoxError(errors2);\n return {\n success: false,\n errors: formattedErrors2,\n errorStrings: formatTypeBoxErrorStrings(errors2),\n report: options?.includeReport ? formatErrorReport(errors2) : void 0,\n hasCriticalErrors: options?.checkCritical ? hasCriticalErrors(errors2) : void 0\n };\n }\n if (Value2.Check(schema, props)) {\n return {\n success: true,\n data: props\n };\n }\n const errors = [...Value2.Errors(schema, props)];\n const formattedErrors = formatTypeBoxError(errors);\n return {\n success: false,\n errors: formattedErrors,\n errorStrings: formatTypeBoxErrorStrings(errors),\n report: options?.includeReport ? formatErrorReport(errors) : void 0,\n hasCriticalErrors: options?.checkCritical ? hasCriticalErrors(errors) : void 0\n };\n}\nfunction validateComponentDefinition2(component, options) {\n const maxDepth = options?.maxDepth ?? 10;\n const currentDepth = options?.currentDepth ?? 0;\n if (currentDepth > maxDepth) {\n return {\n success: false,\n errors: [\n {\n path: \"children\",\n message: `Maximum nesting depth (${maxDepth}) exceeded`,\n code: \"custom\",\n suggestion: \"Reduce the nesting level of components\"\n }\n ],\n errorStrings: [`Maximum nesting depth (${maxDepth}) exceeded`],\n hasCriticalErrors: true\n };\n }\n if (Value2.Check(ComponentDefinitionSchema, component)) {\n const data = component;\n const warnings = [];\n if (data.children && Array.isArray(data.children)) {\n for (let i = 0; i < data.children.length; i++) {\n const nestedResult = validateComponentDefinition2(data.children[i], {\n ...options,\n currentDepth: currentDepth + 1\n });\n if (!nestedResult.success) {\n const nestedErrors = nestedResult.errors?.map((err) => ({\n ...err,\n path: `children[${i}].${err.path}`\n }));\n return {\n success: false,\n errors: nestedErrors,\n errorStrings: nestedErrors?.map(\n (err) => `${err.path}: ${err.message}`\n ),\n report: options?.includeReport ? `Validation failed in nested component at index ${i}:\n${nestedResult.report}` : void 0,\n hasCriticalErrors: nestedResult.hasCriticalErrors\n };\n }\n if (nestedResult.warnings) {\n warnings.push(\n ...nestedResult.warnings.map((w) => `children[${i}]: ${w}`)\n );\n }\n }\n }\n return {\n success: true,\n data: component,\n warnings: warnings.length > 0 ? warnings : void 0\n };\n }\n const errors = [...Value2.Errors(ComponentDefinitionSchema, component)];\n const formattedErrors = formatTypeBoxError(errors);\n return {\n success: false,\n errors: formattedErrors,\n errorStrings: formatTypeBoxErrorStrings(errors),\n report: options?.includeReport ? formatErrorReport(errors) : void 0,\n hasCriticalErrors: options?.checkCritical ? hasCriticalErrors(errors) : void 0\n };\n}\nfunction validateComponents2(components, options) {\n const results = [];\n let criticalCount = 0;\n for (const { name, props } of components) {\n const result = name in COMPONENT_SCHEMA_MAP ? validateComponent2(name, props, options) : validateComponentDefinition2(props, options);\n results.push(result);\n if (result.hasCriticalErrors) {\n criticalCount++;\n }\n if (!result.success && options?.stopOnFirst) {\n break;\n }\n }\n const valid = results.filter((r) => r.success).length;\n const invalid = results.length - valid;\n return {\n success: invalid === 0,\n results,\n summary: {\n total: results.length,\n valid,\n invalid,\n criticalErrors: criticalCount\n }\n };\n}\nfunction transformAndValidate(name, data, transformer) {\n try {\n const transformed = transformer ? transformer(data) : data;\n return validateComponent2(name, transformed, {\n includeReport: true,\n checkCritical: true\n });\n } catch (error) {\n return {\n success: false,\n errors: [\n {\n path: \"root\",\n message: `Transformation failed: ${error instanceof Error ? error.message : String(error)}`,\n code: \"custom\"\n }\n ],\n errorStrings: [\n `Transformation failed: ${error instanceof Error ? error.message : String(error)}`\n ],\n hasCriticalErrors: true\n };\n }\n}\nfunction createValidatedComponent(name, partialConfig) {\n const schema = COMPONENT_SCHEMA_MAP[name];\n if (!schema) {\n return {\n success: false,\n errors: [\n {\n path: \"name\",\n message: `Unknown component name: ${name}`,\n code: \"custom\",\n suggestion: `Use one of: ${Object.keys(COMPONENT_SCHEMA_MAP).join(\", \")}`\n }\n ],\n errorStrings: [`Unknown component name: ${name}`],\n hasCriticalErrors: true\n };\n }\n if (Value2.Check(schema, partialConfig)) {\n return {\n success: true,\n data: partialConfig\n };\n }\n const errors = [...Value2.Errors(schema, partialConfig)];\n const formattedErrors = formatTypeBoxError(errors);\n return {\n success: false,\n errors: formattedErrors,\n errorStrings: formatTypeBoxErrorStrings(errors),\n report: formatErrorReport(errors),\n hasCriticalErrors: hasCriticalErrors(errors)\n };\n}\nfunction isValidComponent(name, props) {\n const result = validateComponent2(name, props);\n return result.success;\n}\n\n// src/types/components.ts\nvar STANDARD_COMPONENTS = [\n \"columns\",\n \"footer\",\n \"header\",\n \"heading\",\n \"highcharts\",\n \"image\",\n \"list\",\n \"paragraph\",\n \"docx\",\n \"section\",\n \"statistic\",\n \"table\",\n \"text-box\",\n \"toc\"\n];\nvar STANDARD_COMPONENTS_SET = new Set(STANDARD_COMPONENTS);\nfunction isReportComponent(component) {\n return component.name === \"docx\";\n}\nfunction isSectionComponent(component) {\n return component.name === \"section\";\n}\nfunction isColumnsComponent(component) {\n return component.name === \"columns\";\n}\nfunction isHeadingComponent(component) {\n return component.name === \"heading\";\n}\nfunction isParagraphComponent(component) {\n return component.name === \"paragraph\";\n}\nfunction isImageComponent(component) {\n return component.name === \"image\";\n}\nfunction isTextBoxComponent(component) {\n return component.name === \"text-box\";\n}\nfunction isStatisticComponent(component) {\n return component.name === \"statistic\";\n}\nfunction isTableComponent(component) {\n return component.name === \"table\";\n}\nfunction isHeaderComponent(component) {\n return component.name === \"header\";\n}\nfunction isFooterComponent(component) {\n return component.name === \"footer\";\n}\nfunction isListComponent(component) {\n return component.name === \"list\";\n}\nfunction isTocComponent(component) {\n return component.name === \"toc\";\n}\nfunction isHighchartsComponent(component) {\n return component.name === \"highcharts\";\n}\nfunction isTextSpaceAfterComponent(component) {\n return component.name === \"text-space-after\";\n}\n\n// src/index.ts\nvar SHARED_DOCX_VERSION = \"1.0.0\";\nexport {\n AlignmentSchema,\n BASE_SCHEMA_METADATA,\n BaseComponentPropsSchema,\n BorderSchema,\n COMPONENT_METADATA,\n ColumnsPropsSchema,\n ComponentDefinitionSchema,\n CustomComponentDefinitionSchema,\n DEFAULT_ERROR_CONFIG,\n DOC_LINKS,\n ERROR_EMOJIS,\n ERROR_TEMPLATES,\n FooterPropsSchema,\n GenerateDocumentRequestSchema,\n GenerateDocumentResponseSchema,\n HeaderPropsSchema,\n HeadingLevelSchema,\n HeadingPropsSchema,\n HighchartsPropsSchema,\n ImagePropsSchema,\n IndentSchema,\n JSON_SCHEMA_URLS,\n JsonComponentDefinitionSchema,\n JsonDocumentParser,\n JsonParsingError,\n JsonValidationError,\n JustifiedAlignmentSchema,\n LineSpacingSchema,\n ListPropsSchema,\n MarginsSchema,\n NumberingSchema,\n ParagraphPropsSchema,\n ReportPropsSchema,\n SHARED_DOCX_VERSION,\n STANDARD_COMPONENTS,\n STANDARD_COMPONENTS_SET,\n SectionPropsSchema,\n SpacingSchema,\n StandardComponentDefinitionSchema,\n StatisticPropsSchema,\n THEME_SCHEMA_METADATA,\n TablePropsSchema,\n TextBoxPropsSchema,\n TextSpaceAfterComponentSchema,\n TextSpaceAfterPropsSchema,\n ThemeConfigSchema,\n TocPropsSchema,\n ValidateDocumentRequestSchema,\n ValidateDocumentResponseSchema,\n calculatePosition,\n clearComponentNamesCache,\n compareSemver,\n componentValidator,\n comprehensiveValidateDocument,\n convertToJsonSchema as convertDocxToJsonSchema,\n convertToJsonSchema2 as convertToJsonSchema,\n createComponentSchema2 as createComponentSchema,\n createComponentValidator,\n createDocumentValidator,\n createComponentSchema as createDocxComponentSchema,\n createErrorConfig,\n createJsonParseError,\n createJsonValidator,\n createThemeValidator,\n createValidatedComponent,\n createValidator,\n deepValidateDocument,\n documentValidator,\n exportSchemaToFile as exportDocxSchemaToFile,\n exportSchemaToFile2 as exportSchemaToFile,\n extractStandardComponentNames,\n fixSchemaReferences as fixDocxSchemaReferences,\n fixSchemaReferences2 as fixSchemaReferences,\n formatErrorMessage,\n formatErrorReport,\n formatErrorSummary,\n formatValidationError,\n formatValidationErrorStrings,\n formatValidationErrors,\n generateUnifiedDocumentSchema,\n getErrorSummary,\n getLiteralValue,\n getObjectSchemaPropertyNames,\n getSchemaMetadata,\n getThemeName,\n getValidationContext,\n getValidationErrors,\n getValidationSummary,\n groupErrorsByPath,\n hasCriticalErrors,\n isColumnsComponent,\n isColumnsProps,\n isCustomComponentProps,\n isFooterComponent,\n isFooterProps,\n isHeaderComponent,\n isHeaderProps,\n isHeadingComponent,\n isHeadingProps,\n isHighchartsComponent,\n isImageComponent,\n isImageProps,\n isListComponent,\n isListProps,\n isLiteralSchema,\n isObjectSchema,\n isParagraphComponent,\n isParagraphProps,\n isReportComponent,\n isReportProps,\n isSectionComponent,\n isSectionProps,\n isStandardComponentName,\n isStatisticComponent,\n isStatisticProps,\n isTableComponent,\n isTableProps,\n isTextBoxComponent,\n isTextSpaceAfterComponent,\n isThemeConfig,\n isTocComponent,\n isUnionSchema,\n isValidComponent,\n isValidDocument,\n isValidSemver,\n isValidTheme,\n isValidThemeConfig,\n isValidTheme as isValidThemeJson,\n isValidationSuccess,\n latestVersion,\n parseJsonComponent,\n parseJsonWithLineNumbers,\n parseSemver,\n safeValidateComponentDefinition,\n safeValidateComponentProps,\n createComponentSchemaObject as sharedCreateComponentSchemaObject,\n strictComponentValidator,\n strictDocumentValidator,\n strictThemeValidator,\n themeValidator,\n transformAndValidate,\n transformValueError as transformDocxValueError,\n transformValueErrors as transformDocxValueErrors,\n transformValueError2 as transformValueError,\n transformValueErrors2 as transformValueErrors,\n validate,\n validateAgainstSchema,\n validateBatch,\n validateComponent2 as validateComponent,\n validateComponentDefinition2 as validateComponentDefinition,\n validateComponent as validateComponentProps,\n validateComponents2 as validateComponents,\n validateCustomComponentProps,\n validateDocument,\n validateDocumentWithSchema,\n validateJson,\n validateJsonDocument as validateJsonComponent,\n validateJsonComponent as validateJsonComponentDoc,\n validateJsonDocument,\n validateStrict,\n validateTheme,\n validateThemeJson,\n validateThemeWithEnhancement,\n validateWithEnhancement\n};\n//# sourceMappingURL=index.js.map","import { Type, Static } from '@sinclair/typebox';\nimport { Value } from '@sinclair/typebox/value';\n\nexport type FormatName = 'docx' | 'pptx';\n\nconst EnvSchema = Type.Object({\n basePath: Type.String({ default: '' }),\n});\n\ntype Env = Static<typeof EnvSchema>;\n\nfunction validateAndTransformEnv(rawEnv: unknown): Env {\n const withDefaults = Value.Default(EnvSchema, rawEnv) as any;\n\n if (withDefaults.basePath && withDefaults.basePath !== '') {\n if (\n !withDefaults.basePath.startsWith('/') ||\n withDefaults.basePath.endsWith('/')\n ) {\n throw new Error('basePath must start with / and not end with /');\n }\n }\n\n if (!Value.Check(EnvSchema, withDefaults)) {\n const errors = [...Value.Errors(EnvSchema, withDefaults)];\n throw new Error(\n `Environment validation failed: ${errors.map((e) => e.message).join(', ')}`\n );\n }\n\n return withDefaults as Env;\n}\n\nexport const env = validateAndTransformEnv({\n basePath: import.meta.env.VITE_BASE_PATH || '',\n});\n\n// Format injected by server via window.__JTO_FORMAT__\ndeclare global {\n interface Window {\n __JTO_FORMAT__?: FormatName;\n }\n}\n\nexport const FORMAT: FormatName =\n (typeof window !== 'undefined' && window.__JTO_FORMAT__) || 'docx';\n\nexport const FORMAT_LABEL = FORMAT === 'docx' ? 'Document' : 'Presentation';\nexport const FORMAT_EXT = FORMAT === 'docx' ? '.docx' : '.pptx';\n","/**\n * JSON Schema Generator for Monaco Editor\n *\n * Uses TypeBox's native JSON Schema generation for rich autocomplete.\n * Format-aware: generates docx or pptx schemas based on FORMAT.\n */\nimport {\n generateUnifiedDocumentSchema as generatePptxSchema,\n convertToJsonSchema as convertPptxToJsonSchema,\n PptxComponentDefinitionSchema,\n PresentationPropsSchema,\n SlidePropsSchema,\n TextPropsSchema,\n PptxImagePropsSchema,\n ShapePropsSchema,\n PptxTablePropsSchema,\n ThemeConfigSchema as PptxThemeConfigSchema,\n} from '@json-to-office/shared-pptx';\n\nimport {\n generateUnifiedDocumentSchema as generateDocxSchema,\n convertToJsonSchema as convertDocxToJsonSchema,\n ComponentDefinitionSchema as DocxComponentDefinitionSchema,\n ReportPropsSchema,\n SectionPropsSchema,\n HeadingPropsSchema,\n ParagraphPropsSchema,\n ImagePropsSchema,\n TablePropsSchema as DocxTablePropsSchema,\n ThemeConfigSchema as DocxThemeConfigSchema,\n} from '@json-to-office/shared-docx';\n\nimport { FORMAT } from './env';\n\nexport interface MonacoSchemaConfig {\n uri: string;\n fileMatch: string[];\n schema: any;\n}\n\n// ---------------------------------------------------------------------------\n// Document schema\n// ---------------------------------------------------------------------------\n\nfunction generateDocxDocumentSchema(): any {\n const unified = generateDocxSchema({ customComponents: [] });\n const schema = convertDocxToJsonSchema(unified, {\n $schema: 'https://json-schema.org/draft-07/schema#',\n $id: 'https://json-to-office.dev/schema/document/v1.0.0',\n title: 'JSON to DOCX Document Definition',\n description: 'Schema for JSON to DOCX JSON document definitions',\n });\n\n const enhancedSchema: any = {\n ...schema,\n default: {\n name: 'docx',\n props: { title: 'New Document' },\n children: [],\n },\n properties: {\n ...(schema as any).properties,\n children: {\n ...((schema as any).properties?.children || {}),\n description:\n 'Array of document components. Type \"name\" to see available component types.',\n markdownDescription:\n 'Array of document components. Available types:\\n- `docx` - Main container\\n- `section` - Section container\\n- `heading` - Heading element\\n- `paragraph` - Paragraph element\\n- `image` - Image element\\n- `table` - Data table\\n- `list` - List element\\n- `columns` - Column layout\\n- `statistic` - Statistic element\\n- `highcharts` - Highcharts chart\\n- `toc` - Table of contents\\n- `header` - Page header\\n- `footer` - Page footer',\n },\n },\n definitions: {\n ...((schema as any).definitions || {}),\n },\n };\n\n enhanceSchemaDescriptions(enhancedSchema);\n return enhancedSchema;\n}\n\nfunction generatePptxDocumentSchema(): any {\n const unified = generatePptxSchema({ customComponents: [] });\n const schema = convertPptxToJsonSchema(unified, {\n $schema: 'https://json-schema.org/draft-07/schema#',\n $id: 'https://json-to-office.dev/schema/presentation/v1.0.0',\n title: 'JSON to PPTX Presentation Definition',\n description: 'Schema for JSON to PPTX JSON presentation definitions',\n });\n\n const enhancedSchema: any = {\n ...schema,\n default: {\n name: 'pptx',\n props: { title: 'New Presentation' },\n children: [],\n },\n properties: {\n ...(schema as any).properties,\n children: {\n ...((schema as any).properties?.children || {}),\n description:\n 'Array of slide components. Type \"name\" to see available component types.',\n markdownDescription:\n 'Array of presentation components. Available types:\\n- `pptx` - Main container\\n- `slide` - Slide container\\n- `text` - Text element\\n- `image` - Image element\\n- `shape` - Shape element\\n- `table` - Data table\\n- `highcharts` - Highcharts chart',\n },\n },\n definitions: {\n ...((schema as any).definitions || {}),\n },\n };\n\n enhanceSchemaDescriptions(enhancedSchema);\n return enhancedSchema;\n}\n\n/**\n * Generates JSON Schema for document/presentation definitions (format-aware)\n */\nexport function generateReportDefinitionSchema(): any {\n return FORMAT === 'docx'\n ? generateDocxDocumentSchema()\n : generatePptxDocumentSchema();\n}\n\n// ---------------------------------------------------------------------------\n// Theme schema\n// ---------------------------------------------------------------------------\n\n/**\n * Generates JSON Schema for theme definitions (format-aware)\n */\nexport function generateThemeConfigSchema(): any {\n const source =\n FORMAT === 'docx' ? DocxThemeConfigSchema : PptxThemeConfigSchema;\n const schema = JSON.parse(JSON.stringify(source));\n cleanupTypeBoxIds(schema);\n\n const label = FORMAT === 'docx' ? 'DOCX' : 'PPTX';\n return {\n ...schema,\n $schema: 'https://json-schema.org/draft-07/schema#',\n $id: 'https://json-to-office.dev/schemas/theme/v1.0.0',\n title: `JSON to ${label} Theme`,\n description: `Theme definition for JSON to ${label} ${FORMAT === 'docx' ? 'documents' : 'presentations'}`,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Component definition schema\n// ---------------------------------------------------------------------------\n\n/**\n * Generates JSON Schema for component definitions with enhanced descriptions\n */\nexport function generateComponentDefinitionSchema(): any {\n const source =\n FORMAT === 'docx'\n ? DocxComponentDefinitionSchema\n : PptxComponentDefinitionSchema;\n const schema = JSON.parse(JSON.stringify(source));\n enhanceSchemaDescriptions(schema);\n\n const label = FORMAT === 'docx' ? 'DOCX' : 'PPTX';\n return {\n ...schema,\n $schema: 'https://json-schema.org/draft-07/schema#',\n title: 'Component Definition',\n description: `Individual component configuration for JSON to ${label}`,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Component schemas per type\n// ---------------------------------------------------------------------------\n\nfunction generateDocxComponentSchemas(): Record<string, any> {\n const componentSchemas: Record<\n string,\n { schema: any; name: string; description: string }\n > = {\n docx: {\n schema: ReportPropsSchema,\n name: 'ReportProps',\n description: 'Main document container configuration',\n },\n section: {\n schema: SectionPropsSchema,\n name: 'SectionProps',\n description: 'Section container for organizing content',\n },\n heading: {\n schema: HeadingPropsSchema,\n name: 'HeadingProps',\n description: 'Heading element with level and formatting',\n },\n paragraph: {\n schema: ParagraphPropsSchema,\n name: 'ParagraphProps',\n description: 'Paragraph element with text and formatting',\n },\n image: {\n schema: ImagePropsSchema,\n name: 'ImageProps',\n description: 'Image element with sizing and positioning',\n },\n table: {\n schema: DocxTablePropsSchema,\n name: 'TableProps',\n description: 'Tabular data display with rows and columns',\n },\n };\n\n return buildComponentResult(componentSchemas);\n}\n\nfunction generatePptxComponentSchemas(): Record<string, any> {\n const componentSchemas: Record<\n string,\n { schema: any; name: string; description: string }\n > = {\n pptx: {\n schema: PresentationPropsSchema,\n name: 'PresentationProps',\n description: 'Main presentation container configuration',\n },\n slide: {\n schema: SlidePropsSchema,\n name: 'SlideProps',\n description: 'Slide container for organizing content',\n },\n text: {\n schema: TextPropsSchema,\n name: 'TextProps',\n description: 'Text element with formatting and positioning',\n },\n image: {\n schema: PptxImagePropsSchema,\n name: 'ImageProps',\n description: 'Image element with sizing and positioning',\n },\n shape: {\n schema: ShapePropsSchema,\n name: 'ShapeProps',\n description: 'Geometric shape with optional text and styling',\n },\n table: {\n schema: PptxTablePropsSchema,\n name: 'TableProps',\n description: 'Tabular data display with rows and columns',\n },\n };\n\n return buildComponentResult(componentSchemas);\n}\n\nfunction buildComponentResult(\n componentSchemas: Record<\n string,\n { schema: any; name: string; description: string }\n >\n): Record<string, any> {\n const result: Record<string, any> = {};\n for (const [type, config] of Object.entries(componentSchemas)) {\n const schema = JSON.parse(JSON.stringify(config.schema));\n result[type] = {\n ...schema,\n title: config.name,\n description: config.description,\n };\n }\n return result;\n}\n\n/**\n * Generates schemas for all component types (format-aware)\n */\nexport function generateComponentSchemas(): Record<string, any> {\n return FORMAT === 'docx'\n ? generateDocxComponentSchemas()\n : generatePptxComponentSchemas();\n}\n\n// ---------------------------------------------------------------------------\n// Monaco schema configs\n// ---------------------------------------------------------------------------\n\n/**\n * Creates Monaco editor schema configuration for document/presentation definitions\n */\nexport function createReportSchemaConfig(\n filePatterns: string[] = FORMAT === 'docx'\n ? ['*.docx.json']\n : ['*.pptx.json']\n): MonacoSchemaConfig {\n return {\n uri: 'https://json-to-office.dev/schema/report/v1.0.0',\n fileMatch: filePatterns,\n schema: generateReportDefinitionSchema(),\n };\n}\n\n/**\n * Creates Monaco editor schema configuration for theme definitions\n */\nexport function createThemeSchemaConfig(\n filePatterns: string[] = [`*.${FORMAT}.theme.json`]\n): MonacoSchemaConfig {\n return {\n uri: 'https://json-to-office.dev/schemas/theme/v1.0.0',\n fileMatch: filePatterns,\n schema: generateThemeConfigSchema(),\n };\n}\n\n/**\n * Generates a complete schema configuration for Monaco editor\n */\nexport function generateMonacoSchemaConfigs(): MonacoSchemaConfig[] {\n return [\n createReportSchemaConfig(),\n createThemeSchemaConfig(),\n ];\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction enhanceSchemaDescriptions(schema: any): void {\n if (typeof schema !== 'object' || schema === null) return;\n\n if (schema.anyOf) {\n schema.anyOf.forEach((subSchema: any) => {\n if (subSchema.properties?.name?.const) {\n const componentType = subSchema.properties.name?.const;\n subSchema.description = getComponentDescription(componentType);\n\n if (subSchema.properties?.props) {\n enhancePropsDescriptions(componentType, subSchema.properties.props);\n }\n }\n });\n }\n\n Object.values(schema).forEach((value) => {\n if (typeof value === 'object' && value !== null) {\n enhanceSchemaDescriptions(value);\n }\n });\n}\n\nfunction getComponentDescription(type: string): string {\n const descriptions: Record<string, string> = {\n // docx\n docx: 'Main document container - defines the overall document structure.',\n section: 'Section container - groups content within a document section.',\n heading: 'Heading element - displays headings with level and formatting.',\n paragraph: 'Paragraph element - displays text with formatting.',\n columns: 'Column layout - arranges content in multiple columns.',\n list: 'List element - displays ordered or unordered lists.',\n statistic: 'Statistic element - displays key metrics.',\n highcharts: 'Highcharts chart - renders a chart from Highcharts options.',\n toc: 'Table of contents - generates a document TOC.',\n header: 'Page header - content displayed at the top of each page.',\n footer: 'Page footer - content displayed at the bottom of each page.',\n 'text-box': 'Text box element - a positioned box with text content.',\n // pptx\n pptx:\n 'Main presentation container - defines the overall presentation structure.',\n slide:\n 'Slide container - groups content elements within a single slide.',\n text: 'Text element - displays text with formatting and positioning.',\n shape:\n 'Shape element - geometric shapes with optional text and styling.',\n // shared\n image: 'Image element - displays images with sizing and positioning.',\n table: 'Table element - displays tabular data with headers and rows.',\n custom:\n 'Custom component - user-defined component type for specialized content.',\n };\n\n return descriptions[type] || `${type} component`;\n}\n\nfunction enhancePropsDescriptions(\n componentType: string,\n propsSchema: any\n): void {\n if (!propsSchema.properties) return;\n\n const propertyDescriptions: Record<string, Record<string, string>> = {\n // pptx\n text: {\n text: 'The text content to display',\n fontSize: 'Font size in points',\n bold: 'Whether to bold the text',\n color: 'Text color as hex string',\n align: 'Text alignment',\n },\n shape: {\n type: 'Shape type (rect, ellipse, etc.)',\n text: 'Text content inside the shape',\n fill: 'Fill color',\n },\n // docx\n heading: {\n text: 'The heading text',\n level: 'Heading level (1-6)',\n },\n paragraph: {\n text: 'The paragraph text content',\n },\n // shared\n image: {\n path: 'Path or URL to the image',\n w: 'Image width in inches',\n h: 'Image height in inches',\n },\n table: {\n rows: 'Array of rows, each containing cell values',\n colW: 'Column widths',\n },\n };\n\n const descriptions = propertyDescriptions[componentType];\n if (descriptions) {\n Object.entries(descriptions).forEach(([prop, desc]) => {\n if (propsSchema.properties[prop]) {\n propsSchema.properties[prop].description = desc;\n }\n });\n }\n}\n\nfunction cleanupTypeBoxIds(schema: any): void {\n if (typeof schema !== 'object' || schema === null) return;\n\n if (schema.$id && /^T\\d+$/.test(schema.$id)) {\n delete schema.$id;\n }\n\n if (schema.$ref && /^T\\d+$/.test(schema.$ref)) {\n schema.$ref = '#/definitions/ComponentDefinition';\n }\n\n if (Array.isArray(schema)) {\n schema.forEach((item) => cleanupTypeBoxIds(item));\n return;\n }\n\n Object.keys(schema).forEach((key) => {\n if (typeof schema[key] === 'object' && schema[key] !== null) {\n cleanupTypeBoxIds(schema[key]);\n }\n });\n}\n","import { FORMAT } from '../lib/env';\n\nexport const API_BASE_URL = import.meta.env.VITE_API_URL || '/api';\n\n// Format-specific API prefix\nconst FORMAT_API = `${API_BASE_URL}/${FORMAT}`;\n\nexport const API_ENDPOINTS = {\n discovery: {\n all: `${API_BASE_URL}/discovery/all`,\n plugins: `${API_BASE_URL}/discovery/plugins`,\n documents: `${API_BASE_URL}/discovery/documents`,\n themes: `${API_BASE_URL}/discovery/themes`,\n schemas: {\n document: `${API_BASE_URL}/discovery/schemas/document`,\n theme: `${API_BASE_URL}/discovery/schemas/theme`,\n },\n },\n generate: `${FORMAT_API}/generate`,\n validate: `${FORMAT_API}/validate`,\n preview: {\n libreoffice: `${FORMAT_API}/preview/libreoffice`,\n },\n cacheStats: `${FORMAT_API}/cache-stats`,\n};\n","/**\n * Client-side service for fetching and caching JSON schemas\n */\n\nimport { API_BASE_URL } from '../config/api';\n\ninterface SchemaResponse {\n success: boolean;\n data?: any;\n error?: string;\n}\n\nclass SchemaService {\n private documentSchemaCache: any | null = null;\n private themeSchemaCache: any | null = null;\n private pluginSchemaCache: Map<string, any> = new Map();\n private cacheTimestamp: { [key: string]: number } = {};\n private readonly CACHE_DURATION = 5 * 60 * 1000; // 5 minutes\n private readonly MAX_PLUGIN_CACHE = 10;\n\n /**\n * Fetch the JSON schema for document validation\n * @param pluginNames Optional array of plugin names to include in the schema\n */\n async fetchDocumentSchema(pluginNames?: string[]): Promise<any> {\n // Create cache key based on plugins\n const cacheKey = pluginNames?.length\n ? `document-${pluginNames.sort().join(',')}`\n : 'document';\n\n // Check cache first\n if (pluginNames?.length) {\n const cached = this.pluginSchemaCache.get(cacheKey);\n if (cached && this.isCacheValid(cacheKey)) {\n return cached;\n }\n } else if (this.documentSchemaCache && this.isCacheValid('document')) {\n return this.documentSchemaCache;\n }\n\n try {\n // Build URL with plugin query params\n let url = `${API_BASE_URL}/discovery/schemas/document`;\n if (pluginNames?.length) {\n // eslint-disable-next-line no-undef\n const params = new URLSearchParams();\n params.append('plugins', pluginNames.join(','));\n url = `${url}?${params.toString()}`;\n }\n\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(\n `Failed to fetch document schema: ${response.statusText}`\n );\n }\n\n const result: SchemaResponse = await response.json();\n\n if (!result.success || !result.data) {\n throw new Error(result.error || 'Failed to fetch document schema');\n }\n\n // Cache the schema\n if (pluginNames?.length) {\n if (this.pluginSchemaCache.size >= this.MAX_PLUGIN_CACHE) {\n const firstKey = this.pluginSchemaCache.keys().next().value;\n if (firstKey) this.pluginSchemaCache.delete(firstKey);\n }\n this.pluginSchemaCache.set(cacheKey, result.data);\n } else {\n this.documentSchemaCache = result.data;\n }\n this.cacheTimestamp[cacheKey] = Date.now();\n\n return result.data;\n } catch (error) {\n console.error('Error fetching document schema:', error);\n throw error;\n }\n }\n\n /**\n * Fetch the JSON schema for theme validation\n */\n async fetchThemeSchema(): Promise<any> {\n // Check cache first\n if (this.themeSchemaCache && this.isCacheValid('theme')) {\n return this.themeSchemaCache;\n }\n\n try {\n const response = await fetch(`${API_BASE_URL}/discovery/schemas/theme`);\n\n if (!response.ok) {\n throw new Error(`Failed to fetch theme schema: ${response.statusText}`);\n }\n\n const result: SchemaResponse = await response.json();\n\n if (!result.success || !result.data) {\n throw new Error(result.error || 'Failed to fetch theme schema');\n }\n\n // Cache the schema\n this.themeSchemaCache = result.data;\n this.cacheTimestamp.theme = Date.now();\n\n return result.data;\n } catch (error) {\n console.error('Error fetching theme schema:', error);\n throw error;\n }\n }\n\n /**\n * Get the appropriate schema based on the active tab type\n */\n async getSchemaForActiveTab(tabType: 'document' | 'theme'): Promise<any> {\n if (tabType === 'theme') {\n return this.fetchThemeSchema();\n }\n return this.fetchDocumentSchema();\n }\n\n /**\n * Clear all cached schemas\n */\n clearCache(): void {\n this.documentSchemaCache = null;\n this.themeSchemaCache = null;\n this.pluginSchemaCache.clear();\n this.cacheTimestamp = {};\n }\n\n /**\n * Clear plugin-specific schema cache\n */\n clearPluginSchemaCache(): void {\n this.pluginSchemaCache.clear();\n // Clear cache timestamps for plugin schemas\n Object.keys(this.cacheTimestamp).forEach((key) => {\n if (key.startsWith('document-')) {\n delete this.cacheTimestamp[key];\n }\n });\n }\n\n /**\n * Check if cache is still valid\n */\n private isCacheValid(type: string): boolean {\n const timestamp = this.cacheTimestamp[type];\n if (!timestamp) return false;\n\n return Date.now() - timestamp < this.CACHE_DURATION;\n }\n\n /**\n * Format schema for display (pretty print)\n */\n formatSchemaForDisplay(schema: any): string {\n return JSON.stringify(schema, null, 2);\n }\n\n /**\n * Get schema metadata\n */\n getSchemaMetadata(schema: any): {\n title?: string;\n description?: string;\n version?: string;\n $schema?: string;\n } {\n return {\n title: schema.title,\n description: schema.description,\n version: schema.version || schema.$id,\n $schema: schema.$schema,\n };\n }\n}\n\n// Export singleton instance\nexport const schemaService = new SchemaService();\n\n// Export types\nexport type SchemaType = 'document' | 'theme';\n","/**\n * Global Monaco Editor Configuration\n * Sets up JSON schemas and language defaults for all Monaco instances\n */\n\nimport { loader } from '@monaco-editor/react';\nimport type { Monaco } from '@monaco-editor/react';\nimport {\n createReportSchemaConfig,\n createThemeSchemaConfig,\n} from './json-schema-generator';\nimport { schemaService } from './schema-service';\n\nlet isConfigured = false;\nlet completionDisposable: { dispose(): void } | null = null;\n\nexport interface MonacoSchemaConfig {\n uri: string;\n fileMatch: string[];\n schema: any;\n}\n\n/**\n * Configure Monaco globally with JSON schemas\n * This should be called once when the app initializes\n */\nexport async function configureMonaco(): Promise<void> {\n if (isConfigured) {\n return;\n }\n\n try {\n const monaco = await loader.init();\n configureMonacoInstance(monaco);\n isConfigured = true;\n console.log('Monaco configured globally with JSON schemas');\n } catch (error) {\n console.error('Failed to configure Monaco globally:', error);\n }\n}\n\n/**\n * Remove trailing commas from JSON string\n * This is a simple regex-based approach that handles most cases\n */\nfunction removeTrailingCommas(jsonStr: string): string {\n // Remove trailing commas before closing brackets/braces\n // This regex finds commas followed by optional whitespace and then ] or }\n return jsonStr.replace(/,(\\s*[}\\]])/g, '$1');\n}\n\n/**\n * Configure a Monaco instance with JSON schemas\n */\nexport function configureMonacoInstance(monaco: Monaco): void {\n // Configure JSON language defaults with enhanced settings\n monaco.languages.json.jsonDefaults.setModeConfiguration({\n documentFormattingEdits: true,\n documentRangeFormattingEdits: true,\n completionItems: false,\n hovers: true,\n documentSymbols: true,\n tokens: true,\n colors: true,\n foldingRanges: true,\n diagnostics: true,\n selectionRanges: true,\n });\n\n // Register custom document formatting provider to remove trailing commas\n monaco.languages.registerDocumentFormattingEditProvider('json', {\n provideDocumentFormattingEdits(model) {\n const text = model.getValue();\n\n // First, remove trailing commas\n const cleanedText = removeTrailingCommas(text);\n\n // Parse and re-stringify to ensure proper formatting\n try {\n const parsed = JSON.parse(cleanedText);\n const formatted = JSON.stringify(parsed, null, 2);\n\n return [\n {\n range: model.getFullModelRange(),\n text: formatted,\n },\n ];\n } catch (error) {\n // If parsing fails, just return the text with trailing commas removed\n // Monaco's built-in formatter will handle the rest\n return [\n {\n range: model.getFullModelRange(),\n text: cleanedText,\n },\n ];\n }\n },\n });\n\n // Register custom JSON completion provider that shows schema descriptions inline\n registerJsonCompletionProvider(monaco);\n\n // Generate schemas for both report and theme files\n const reportSchema = createReportSchemaConfig();\n const themeSchema = createThemeSchemaConfig();\n\n // Strip non-standard discriminator keyword from static schemas too\n stripDiscriminator(reportSchema.schema);\n\n // Set up JSON validation with schemas - enhanced for better autocomplete\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n validate: true,\n enableSchemaRequest: false,\n allowComments: false,\n trailingCommas: 'error',\n schemaValidation: 'error', // Strict schema validation\n schemas: [reportSchema, themeSchema],\n schemaRequest: 'ignore', // Ignore unresolvable $schema URIs (domain doesn't exist)\n });\n\n console.log('Monaco instance configured with schemas:', {\n reportSchema: {\n uri: reportSchema.uri,\n fileMatch: reportSchema.fileMatch,\n schemaKeys: Object.keys(reportSchema.schema),\n },\n themeSchema: {\n uri: themeSchema.uri,\n fileMatch: themeSchema.fileMatch,\n schemaKeys: Object.keys(themeSchema.schema),\n },\n });\n}\n\n/**\n * Reset Monaco configuration\n * Useful for testing or when schemas need to be updated\n */\nexport async function resetMonacoConfig(): Promise<void> {\n isConfigured = false;\n await configureMonaco();\n}\n\n/**\n * Recursively strip 'discriminator' keywords from a JSON Schema object.\n * The OpenAPI-style 'discriminator' is not part of JSON Schema Draft-07\n * and may cause unexpected behavior in Monaco's JSON validator.\n */\nfunction stripDiscriminator(obj: any): void {\n if (typeof obj !== 'object' || obj === null) return;\n if (Array.isArray(obj)) {\n obj.forEach((item) => stripDiscriminator(item));\n return;\n }\n delete obj.discriminator;\n for (const value of Object.values(obj)) {\n stripDiscriminator(value);\n }\n}\n\n/**\n * Map LSP CompletionItemKind (1-based) to Monaco CompletionItemKind\n */\nfunction lspToMonacoKind(lspKind: number | undefined, monaco: Monaco): number {\n if (lspKind === undefined) {\n return monaco.languages.CompletionItemKind.Property;\n }\n const map: Record<number, number> = {\n 1: monaco.languages.CompletionItemKind.Text,\n 2: monaco.languages.CompletionItemKind.Method,\n 3: monaco.languages.CompletionItemKind.Function,\n 4: monaco.languages.CompletionItemKind.Constructor,\n 5: monaco.languages.CompletionItemKind.Field,\n 6: monaco.languages.CompletionItemKind.Variable,\n 7: monaco.languages.CompletionItemKind.Class,\n 8: monaco.languages.CompletionItemKind.Interface,\n 9: monaco.languages.CompletionItemKind.Module,\n 10: monaco.languages.CompletionItemKind.Property,\n 11: monaco.languages.CompletionItemKind.Unit,\n 12: monaco.languages.CompletionItemKind.Value,\n 13: monaco.languages.CompletionItemKind.Enum,\n 14: monaco.languages.CompletionItemKind.Keyword,\n 15: monaco.languages.CompletionItemKind.Snippet,\n 16: monaco.languages.CompletionItemKind.Color,\n 17: monaco.languages.CompletionItemKind.File,\n 18: monaco.languages.CompletionItemKind.Reference,\n 19: monaco.languages.CompletionItemKind.Folder,\n 20: monaco.languages.CompletionItemKind.EnumMember,\n 21: monaco.languages.CompletionItemKind.Constant,\n 22: monaco.languages.CompletionItemKind.Struct,\n 23: monaco.languages.CompletionItemKind.Event,\n 24: monaco.languages.CompletionItemKind.Operator,\n 25: monaco.languages.CompletionItemKind.TypeParameter,\n };\n return map[lspKind] ?? monaco.languages.CompletionItemKind.Property;\n}\n\n/**\n * Register a custom JSON completion provider that wraps the built-in JSON worker\n * and copies schema `description` into the `detail` field (shown as inline muted text).\n */\nfunction registerJsonCompletionProvider(monaco: Monaco): void {\n if (completionDisposable) {\n completionDisposable.dispose();\n completionDisposable = null;\n }\n\n completionDisposable = monaco.languages.registerCompletionItemProvider(\n 'json',\n {\n triggerCharacters: ['\"', ':', ' '],\n\n async provideCompletionItems(model, position) {\n // Access the JSON worker via the undeclared-but-available getWorker export\n const getWorker = (monaco.languages.json as any).getWorker;\n if (!getWorker) return { suggestions: [] };\n\n const workerFn = await getWorker();\n const worker = await workerFn(model.uri);\n\n // doComplete expects LSP Position (0-based line, 0-based character)\n const completionList = await worker.doComplete(model.uri.toString(), {\n line: position.lineNumber - 1,\n character: position.column - 1,\n });\n\n if (!completionList?.items) {\n return { suggestions: [] };\n }\n\n const suggestions = completionList.items.map((item: any) => {\n // Extract documentation text for inline detail display\n let detail = '';\n if (item.documentation) {\n if (typeof item.documentation === 'string') {\n detail = item.documentation;\n } else if (item.documentation.value) {\n detail = item.documentation.value;\n }\n }\n if (!detail && item.detail) {\n detail = item.detail;\n }\n\n // Convert LSP textEdit range (0-based) to Monaco range (1-based)\n let range;\n if (item.textEdit) {\n const r = item.textEdit.range;\n range = {\n startLineNumber: r.start.line + 1,\n startColumn: r.start.character + 1,\n endLineNumber: r.end.line + 1,\n endColumn: r.end.character + 1,\n };\n } else {\n const wordInfo = model.getWordUntilPosition(position);\n range = {\n startLineNumber: position.lineNumber,\n startColumn: wordInfo.startColumn,\n endLineNumber: position.lineNumber,\n endColumn: wordInfo.endColumn,\n };\n }\n\n const insertText =\n item.textEdit?.newText ??\n item.insertText ??\n (typeof item.label === 'string'\n ? item.label\n : item.label?.label ?? '');\n\n // Build Monaco documentation from LSP documentation\n let documentation: string | { value: string } | undefined;\n if (item.documentation) {\n if (typeof item.documentation === 'string') {\n documentation = item.documentation;\n } else if (item.documentation.kind === 'markdown') {\n documentation = { value: item.documentation.value };\n } else {\n documentation = item.documentation.value;\n }\n }\n\n const suggestion: any = {\n label:\n typeof item.label === 'string'\n ? item.label\n : item.label?.label ?? '',\n kind: lspToMonacoKind(item.kind, monaco),\n detail,\n documentation,\n insertText,\n range,\n sortText: item.sortText,\n filterText: item.filterText,\n preselect: item.preselect,\n };\n\n if (item.insertTextFormat === 2) {\n suggestion.insertTextRules =\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet;\n }\n\n return suggestion;\n });\n\n return { suggestions };\n },\n }\n );\n}\n\n/**\n * Update Monaco schemas with plugin-aware document schema\n * @param monaco Monaco instance\n * @param pluginNames Array of plugin names to include in the schema\n * @returns Promise that resolves to true if successful, false otherwise\n */\nexport async function updateMonacoWithPlugins(\n monaco: Monaco,\n pluginNames?: string[]\n): Promise<boolean> {\n try {\n // Clear stale plugin schema cache to ensure fresh data after rebuilds\n schemaService.clearPluginSchemaCache();\n\n // Fetch the enhanced schema with plugins from the backend\n const documentSchema = await schemaService.fetchDocumentSchema(pluginNames);\n\n // Validate that we received a valid schema\n if (!documentSchema || typeof documentSchema !== 'object') {\n throw new Error('Invalid schema received from server');\n }\n\n // Strip non-standard 'discriminator' keyword from definitions.\n // Monaco's JSON validator (vscode-json-languageservice) may not fully\n // support OpenAPI-style discriminators; standard anyOf validation works\n // correctly without it.\n stripDiscriminator(documentSchema);\n\n // Create the Monaco schema configuration with the SAME URI as the base schema\n const reportSchema: MonacoSchemaConfig = {\n uri: 'https://json-to-office.dev/schema/report/v1.0.0', // Use consistent URI\n fileMatch: ['*.docx.json', '*.pptx.json'],\n schema: documentSchema,\n };\n\n // Keep the theme schema as is\n const themeSchema = createThemeSchemaConfig();\n\n // Re-register custom document formatting provider to ensure it's available\n monaco.languages.registerDocumentFormattingEditProvider('json', {\n provideDocumentFormattingEdits(model) {\n const text = model.getValue();\n\n // First, remove trailing commas\n const cleanedText = removeTrailingCommas(text);\n\n // Parse and re-stringify to ensure proper formatting\n try {\n const parsed = JSON.parse(cleanedText);\n const formatted = JSON.stringify(parsed, null, 2);\n\n return [\n {\n range: model.getFullModelRange(),\n text: formatted,\n },\n ];\n } catch (error) {\n // If parsing fails, just return the text with trailing commas removed\n return [\n {\n range: model.getFullModelRange(),\n text: cleanedText,\n },\n ];\n }\n },\n });\n\n // Update Monaco's JSON defaults with the new schemas\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n validate: true,\n enableSchemaRequest: false,\n allowComments: false,\n trailingCommas: 'error',\n schemaValidation: 'error',\n schemas: [reportSchema, themeSchema],\n schemaRequest: 'ignore',\n });\n\n console.log('Monaco updated with plugin-aware schemas:', {\n plugins: pluginNames || [],\n reportSchema: {\n uri: reportSchema.uri,\n fileMatch: reportSchema.fileMatch,\n },\n });\n\n // Force Monaco to re-validate all open models with the new schema\n const models = monaco.editor.getModels();\n let validationSuccess = true;\n\n models.forEach((model) => {\n if (model.getLanguageId() === 'json') {\n try {\n // Trigger revalidation by re-setting the language\n monaco.editor.setModelLanguage(model, 'json');\n console.log('🔄 Re-validating model:', model.uri.toString());\n } catch (modelError) {\n console.error(\n 'Failed to revalidate model:',\n model.uri.toString(),\n modelError\n );\n validationSuccess = false;\n }\n }\n });\n\n // Verify that the schema was properly applied\n const diagnosticsOptions =\n monaco.languages.json.jsonDefaults.diagnosticsOptions;\n const hasSchema = diagnosticsOptions.schemas?.some(\n (s: any) => s.uri === reportSchema.uri\n );\n\n if (!hasSchema) {\n throw new Error('Schema was not properly applied to Monaco editor');\n }\n\n console.log('✅ Schema validation successful');\n return validationSuccess;\n } catch (error) {\n console.error('Failed to update Monaco with plugin schemas:', error);\n // Fallback to default schemas\n configureMonacoInstance(monaco);\n throw error; // Re-throw to let caller handle the error\n }\n}\n","import { useEffect, useRef } from 'react';\nimport { loader } from '@monaco-editor/react';\nimport type { Monaco } from '@monaco-editor/react';\nimport { usePluginsStore } from '../store/plugins-store';\nimport { updateMonacoWithPlugins } from '../lib/monaco-config';\n\n/**\n * Hook to synchronize selected plugins with Monaco editor schemas\n * This ensures real-time validation includes plugin-specific schemas\n */\nexport function useMonacoPlugins() {\n const monacoRef = useRef<Monaco | null>(null);\n const selectedPlugins = usePluginsStore((state) => state.selectedPlugins);\n const selectedPluginNames = Array.from(selectedPlugins);\n const previousPluginsRef = useRef<string[]>([]);\n\n useEffect(() => {\n // Initialize Monaco reference\n loader\n .init()\n .then((monaco) => {\n monacoRef.current = monaco;\n // Initial update with current plugins\n updateMonacoWithPlugins(monaco, selectedPluginNames)\n .then((success) => {\n if (success) {\n console.log(\n '✅ [useMonacoPlugins] Monaco initialized with plugins:',\n selectedPluginNames\n );\n } else {\n console.warn(\n '⚠️ [useMonacoPlugins] Monaco initialization completed with warnings'\n );\n }\n })\n .catch((error) => {\n console.error(\n '❌ [useMonacoPlugins] Failed to update Monaco with plugins:',\n error\n );\n });\n previousPluginsRef.current = [...selectedPluginNames];\n })\n .catch((error) => {\n console.error('Failed to initialize Monaco:', error);\n });\n }, []); // Keep empty dependency to run only once\n\n useEffect(() => {\n // Check if plugins have actually changed\n const pluginsChanged =\n selectedPluginNames.length !== previousPluginsRef.current.length ||\n selectedPluginNames.some(\n (name, index) => name !== previousPluginsRef.current[index]\n );\n\n if (!pluginsChanged) {\n return;\n }\n\n // Update Monaco schemas when plugins change\n if (monacoRef.current) {\n console.log(\n '🔄 [useMonacoPlugins] Updating Monaco schemas for plugins:',\n selectedPluginNames\n );\n updateMonacoWithPlugins(monacoRef.current, selectedPluginNames).catch(\n (error) => {\n console.error(\n '⚠️ [useMonacoPlugins] Failed to update Monaco schemas:',\n error\n );\n }\n );\n previousPluginsRef.current = [...selectedPluginNames];\n } else {\n console.log(\n '⚠️ [useMonacoPlugins] Monaco not yet initialized, skipping update'\n );\n }\n }, [selectedPluginNames]);\n\n return {\n monaco: monacoRef.current,\n selectedPlugins: selectedPluginNames,\n };\n}\n","import { useMonacoPlugins } from '../hooks/useMonacoPlugins';\n\n/**\n * Provider component that manages Monaco plugin synchronization\n * This must be rendered within the app after stores are initialized\n */\nexport function MonacoPluginProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n // Initialize Monaco plugin synchronization\n useMonacoPlugins();\n\n return <>{children}</>;\n}\n","import { lazy, Suspense } from 'react';\nimport { RouteObject } from 'react-router-dom';\nimport { RootLayout } from '@/layouts/RootLayout';\nimport { Spinner } from '@/components/ui/spinner';\nimport { MonacoPluginProvider } from '@/components/MonacoPluginProvider';\n\n// Lazy load all pages for code splitting\nconst HomePage = lazy(() =>\n import('@/pages/HomePage').then((module) => ({ default: module.HomePage }))\n);\nconst JsonEditorPage = lazy(() =>\n import('@/pages/JsonEditorPage').then((module) => ({\n default: module.JsonEditorPage,\n }))\n);\nconst NotFoundPage = lazy(() =>\n import('@/pages/NotFoundPage').then((module) => ({\n default: module.NotFoundPage,\n }))\n);\n\n// Loading component for lazy loaded routes\nconst LazyLoadWrapper = ({ children }: { children: React.ReactNode }) => (\n <Suspense\n fallback={\n <div className=\"flex items-center justify-center h-screen\">\n <Spinner className=\"w-8 h-8\" />\n </div>\n }\n >\n {children}\n </Suspense>\n);\n\nexport const routes: RouteObject[] = [\n {\n path: '/',\n element: <RootLayout />,\n children: [\n {\n index: true,\n element: (\n <LazyLoadWrapper>\n <MonacoPluginProvider>\n <HomePage />\n </MonacoPluginProvider>\n </LazyLoadWrapper>\n ),\n },\n {\n path: 'json-editor',\n element: (\n <LazyLoadWrapper>\n <MonacoPluginProvider>\n <JsonEditorPage />\n </MonacoPluginProvider>\n </LazyLoadWrapper>\n ),\n },\n ],\n },\n {\n path: '*',\n element: (\n <LazyLoadWrapper>\n <NotFoundPage />\n </LazyLoadWrapper>\n ),\n },\n];\n","import { useRoutes } from 'react-router-dom';\nimport { routes } from './routes';\n\nexport function Router() {\n const element = useRoutes(routes);\n return element;\n}\n","import { BrowserRouter } from 'react-router-dom';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { Router } from './Router';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 1000 * 60 * 5, // 5 minutes\n retry: 1,\n },\n },\n});\n\nfunction App() {\n return (\n <QueryClientProvider client={queryClient}>\n <BrowserRouter>\n <Router />\n </BrowserRouter>\n </QueryClientProvider>\n );\n}\n\nexport default App;\n","import { StrictMode } from 'react';\nimport { createRoot } from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport { configureMonaco } from './lib/monaco-config';\n\n// Initialize Monaco configuration early for better autocomplete\nconfigureMonaco()\n .then(() => {\n console.log(\n 'Monaco editor configured with JSON schemas for better autocomplete'\n );\n })\n .catch((error) => {\n console.error('Failed to configure Monaco:', error);\n });\n\nconst rootElement = document.getElementById('root')!;\nconst root = createRoot(rootElement);\n\n// Only use StrictMode in development\nif (import.meta.env.DEV) {\n root.render(\n <StrictMode>\n <App />\n </StrictMode>\n );\n} else {\n root.render(<App />);\n}\n"],"file":"assets/index-DactvF4v.js"}
|