@patternfly/context-for-ai 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +615 -0
  2. package/codemod/ALL_COMPONENTS_REFERENCE.md +815 -0
  3. package/codemod/ATTRIBUTE_DECISION_LOGIC.md +320 -0
  4. package/codemod/README.md +400 -0
  5. package/codemod/add-semantic-attributes.sh +69 -0
  6. package/codemod/component-attributes-reference.json +129 -0
  7. package/codemod/example-after.tsx +51 -0
  8. package/codemod/example-before.tsx +19 -0
  9. package/codemod/static-inference.js +5015 -0
  10. package/codemod/transform.js +1108 -0
  11. package/dist/components/advanced/index.d.ts +2 -0
  12. package/dist/components/advanced/index.d.ts.map +1 -0
  13. package/dist/components/core/Button.d.ts +14 -0
  14. package/dist/components/core/Button.d.ts.map +1 -0
  15. package/dist/components/core/Link.d.ts +15 -0
  16. package/dist/components/core/Link.d.ts.map +1 -0
  17. package/dist/components/core/StarIcon.d.ts +15 -0
  18. package/dist/components/core/StarIcon.d.ts.map +1 -0
  19. package/dist/components/core/index.d.ts +4 -0
  20. package/dist/components/core/index.d.ts.map +1 -0
  21. package/dist/components/data-display/Card.d.ts +14 -0
  22. package/dist/components/data-display/Card.d.ts.map +1 -0
  23. package/dist/components/data-display/StatusBadge.d.ts +13 -0
  24. package/dist/components/data-display/StatusBadge.d.ts.map +1 -0
  25. package/dist/components/data-display/Tbody.d.ts +12 -0
  26. package/dist/components/data-display/Tbody.d.ts.map +1 -0
  27. package/dist/components/data-display/Td.d.ts +14 -0
  28. package/dist/components/data-display/Td.d.ts.map +1 -0
  29. package/dist/components/data-display/Th.d.ts +14 -0
  30. package/dist/components/data-display/Th.d.ts.map +1 -0
  31. package/dist/components/data-display/Thead.d.ts +12 -0
  32. package/dist/components/data-display/Thead.d.ts.map +1 -0
  33. package/dist/components/data-display/Tr.d.ts +16 -0
  34. package/dist/components/data-display/Tr.d.ts.map +1 -0
  35. package/dist/components/data-display/index.d.ts +8 -0
  36. package/dist/components/data-display/index.d.ts.map +1 -0
  37. package/dist/components/feedback/index.d.ts +2 -0
  38. package/dist/components/feedback/index.d.ts.map +1 -0
  39. package/dist/components/forms/Checkbox.d.ts +16 -0
  40. package/dist/components/forms/Checkbox.d.ts.map +1 -0
  41. package/dist/components/forms/Form.d.ts +12 -0
  42. package/dist/components/forms/Form.d.ts.map +1 -0
  43. package/dist/components/forms/Radio.d.ts +32 -0
  44. package/dist/components/forms/Radio.d.ts.map +1 -0
  45. package/dist/components/forms/Select.d.ts +33 -0
  46. package/dist/components/forms/Select.d.ts.map +1 -0
  47. package/dist/components/forms/Switch.d.ts +31 -0
  48. package/dist/components/forms/Switch.d.ts.map +1 -0
  49. package/dist/components/forms/TextArea.d.ts +29 -0
  50. package/dist/components/forms/TextArea.d.ts.map +1 -0
  51. package/dist/components/forms/TextInput.d.ts +29 -0
  52. package/dist/components/forms/TextInput.d.ts.map +1 -0
  53. package/dist/components/forms/index.d.ts +8 -0
  54. package/dist/components/forms/index.d.ts.map +1 -0
  55. package/dist/components/index.d.ts +9 -0
  56. package/dist/components/index.d.ts.map +1 -0
  57. package/dist/components/layout/Flex.d.ts +16 -0
  58. package/dist/components/layout/Flex.d.ts.map +1 -0
  59. package/dist/components/layout/FlexItem.d.ts +16 -0
  60. package/dist/components/layout/FlexItem.d.ts.map +1 -0
  61. package/dist/components/layout/index.d.ts +3 -0
  62. package/dist/components/layout/index.d.ts.map +1 -0
  63. package/dist/components/navigation/DropdownItem.d.ts +8 -0
  64. package/dist/components/navigation/DropdownItem.d.ts.map +1 -0
  65. package/dist/components/navigation/MenuToggle.d.ts +8 -0
  66. package/dist/components/navigation/MenuToggle.d.ts.map +1 -0
  67. package/dist/components/navigation/index.d.ts +3 -0
  68. package/dist/components/navigation/index.d.ts.map +1 -0
  69. package/dist/components/overlay/Drawer.d.ts +12 -0
  70. package/dist/components/overlay/Drawer.d.ts.map +1 -0
  71. package/dist/components/overlay/Modal.d.ts +16 -0
  72. package/dist/components/overlay/Modal.d.ts.map +1 -0
  73. package/dist/components/overlay/index.d.ts +3 -0
  74. package/dist/components/overlay/index.d.ts.map +1 -0
  75. package/dist/context/SemanticContext.d.ts +28 -0
  76. package/dist/context/SemanticContext.d.ts.map +1 -0
  77. package/dist/hooks/index.d.ts +3 -0
  78. package/dist/hooks/index.d.ts.map +1 -0
  79. package/dist/hooks/useAccessibility.d.ts +13 -0
  80. package/dist/hooks/useAccessibility.d.ts.map +1 -0
  81. package/dist/hooks/useSemanticMetadata.d.ts +9 -0
  82. package/dist/hooks/useSemanticMetadata.d.ts.map +1 -0
  83. package/dist/index.d.ts +574 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.esm.js +1362 -0
  86. package/dist/index.esm.js.map +1 -0
  87. package/dist/index.js +1426 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/types/index.d.ts +47 -0
  90. package/dist/types/index.d.ts.map +1 -0
  91. package/dist/utils/accessibility.d.ts +16 -0
  92. package/dist/utils/accessibility.d.ts.map +1 -0
  93. package/dist/utils/index.d.ts +4 -0
  94. package/dist/utils/index.d.ts.map +1 -0
  95. package/dist/utils/inference.d.ts +136 -0
  96. package/dist/utils/inference.d.ts.map +1 -0
  97. package/dist/utils/metadata.d.ts +17 -0
  98. package/dist/utils/metadata.d.ts.map +1 -0
  99. package/package.json +104 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/utils/inference.ts","../src/context/SemanticContext.tsx","../src/components/core/Button.tsx","../src/components/core/Link.tsx","../src/components/core/StarIcon.tsx","../src/components/forms/Form.tsx","../src/components/forms/Checkbox.tsx","../src/components/forms/TextInput.tsx","../src/components/forms/TextArea.tsx","../src/components/forms/Select.tsx","../src/components/forms/Radio.tsx","../src/components/forms/Switch.tsx","../src/components/data-display/Card.tsx","../src/components/data-display/StatusBadge.tsx","../src/components/data-display/Tbody.tsx","../src/components/data-display/Td.tsx","../src/components/data-display/Th.tsx","../src/components/data-display/Thead.tsx","../src/components/data-display/Tr.tsx","../src/components/layout/Flex.tsx","../src/components/layout/FlexItem.tsx","../src/components/overlay/Modal.tsx","../src/components/overlay/Drawer.tsx","../src/components/navigation/MenuToggle.tsx","../src/components/navigation/DropdownItem.tsx","../src/utils/metadata.ts","../src/utils/accessibility.ts","../src/hooks/useSemanticMetadata.ts","../src/hooks/useAccessibility.ts"],"sourcesContent":["/**\n * Inference utilities for automatically determining semantic properties\n * from PatternFly component props\n */\n\n/**\n * Determine if a component is a visual parent (requires user action to see contents)\n * vs a wrapper/structure (always visible)\n */\nexport const isVisualParent = (componentName: string): boolean => {\n const visualParents = [\n 'modal', 'drawer', 'popover', 'tooltip', // Overlays\n 'wizardstep', 'wizard', 'tab', 'accordion', // Navigation containers\n 'expandable', 'dropdown', 'menu', 'menutoggle' // Expandable containers\n ];\n return visualParents.includes(componentName.toLowerCase());\n};\n\n/**\n * Infer button action from PatternFly variant and props\n * Returns both behavior (what it does) and styling (how it looks)\n */\nexport const inferButtonAction = (\n variant?: string,\n href?: string,\n onClick?: unknown,\n target?: string\n): { type: string; variant: string } => {\n // Determine behavior - what the button DOES\n let behaviorType = 'default';\n \n if (href) {\n // Has href - it's a link\n if (href.startsWith('http')) behaviorType = 'external';\n else if (target === '_blank') behaviorType = 'external';\n else if (href.startsWith('/')) behaviorType = 'navigation';\n else behaviorType = 'navigation';\n } else if (onClick) {\n // Has onClick but no href - it's an action\n behaviorType = 'action';\n }\n \n // Determine styling - visual importance/appearance\n let styleVariant = 'secondary';\n \n switch (variant) {\n case 'primary':\n styleVariant = 'primary';\n break;\n case 'danger':\n styleVariant = 'destructive';\n break;\n case 'control':\n styleVariant = 'toggle';\n break;\n case 'secondary':\n case 'tertiary':\n case 'plain':\n case 'link':\n styleVariant = variant;\n break;\n }\n \n return {\n type: behaviorType,\n variant: styleVariant\n };\n};\n\n/**\n * Infer input purpose from type\n */\nexport const inferInputPurpose = (type?: string): string => {\n switch (type) {\n case 'email':\n return 'email-input';\n case 'password':\n return 'password-input';\n case 'search':\n return 'search-input';\n case 'tel':\n return 'phone-input';\n case 'url':\n return 'url-input';\n case 'number':\n return 'numeric-input';\n case 'date':\n case 'datetime-local':\n case 'time':\n return 'date-time-input';\n case 'text':\n default:\n return 'text-input';\n }\n};\n\n/**\n * Infer alert severity\n */\nexport const inferAlertSeverity = (variant?: string): string => {\n switch (variant) {\n case 'success':\n return 'success';\n case 'danger':\n return 'error';\n case 'warning':\n return 'warning';\n case 'info':\n case 'default':\n default:\n return 'info';\n }\n};\n\n/**\n * Infer context from parent or usage\n */\nexport const inferContext = (props: Record<string, unknown>): string => {\n if (props.onClick || props.onSubmit) return 'active';\n if (props.isDisabled) return 'disabled';\n if (props.isReadOnly) return 'readonly';\n return 'default';\n};\n\n/**\n * Infer card purpose from PatternFly props\n */\nexport const inferCardPurpose = (props: Record<string, unknown>): string => {\n // Interactive cards\n if (props.isSelectable) return 'selection-panel';\n if (props.isClickable) return 'action-panel';\n if (props.isExpanded !== undefined) return 'expandable-content';\n \n // Layout-based cards\n if (props.isCompact) return 'data-summary';\n if (props.isPlain) return 'content-display';\n \n // Content-based cards (based on children analysis)\n if (props.children) {\n const childrenStr = props.children.toString().toLowerCase();\n if (childrenStr.includes('logo') || childrenStr.includes('brand')) return 'brand-display';\n if (childrenStr.includes('chart') || childrenStr.includes('graph')) return 'data-visualization';\n if (childrenStr.includes('form') || childrenStr.includes('input')) return 'form-container';\n if (childrenStr.includes('table') || childrenStr.includes('list')) return 'data-display';\n }\n \n return 'content-display';\n};\n\n/**\n * Infer modal purpose from props\n */\nexport const inferModalPurpose = (props: Record<string, unknown>): string => {\n if (props.variant === 'small') return 'confirmation';\n if (props.variant === 'large') return 'form';\n return 'information';\n};\n\n/**\n * Infer accessibility features from props\n */\nexport const inferAccessibilityFeatures = (props: Record<string, unknown>): string[] => {\n const features: string[] = ['keyboard-navigable'];\n \n if (props['aria-label'] || props['aria-labelledby']) {\n features.push('screen-reader-friendly');\n }\n \n if (props.autoFocus) {\n features.push('auto-focus');\n }\n \n if (props.role) {\n features.push('semantic-role');\n }\n \n return features;\n};\n\n/**\n * Infer usage patterns from component type and props\n */\nexport const inferUsagePatterns = (\n componentType: string,\n props: Record<string, unknown>\n): string[] => {\n const patterns: string[] = ['user-interface'];\n \n // Component-specific patterns\n switch (componentType.toLowerCase()) {\n case 'button':\n if (props.type === 'submit') patterns.push('form-submission');\n if (props.onClick) patterns.push('user-interaction');\n break;\n case 'textinput':\n case 'textarea':\n patterns.push('data-entry', 'form-input');\n if (props.validated === 'error') patterns.push('validation');\n break;\n case 'select':\n patterns.push('data-entry', 'selection');\n break;\n case 'checkbox':\n case 'radio':\n patterns.push('user-selection', 'form-input');\n break;\n case 'modal':\n patterns.push('user-interaction', 'workflow-step');\n break;\n case 'card':\n patterns.push('content-organization', 'data-presentation');\n break;\n }\n \n return patterns;\n};\n\n/**\n * Generate comprehensive metadata from props\n */\nexport const generateMetadataFromProps = (\n componentName: string,\n props: Record<string, unknown>\n): {\n description: string;\n category: string;\n accessibility: string[];\n usage: string[];\n} => {\n return {\n description: `${componentName} component`,\n category: inferCategory(componentName),\n accessibility: inferAccessibilityFeatures(props),\n usage: inferUsagePatterns(componentName, props)\n };\n};\n\n/**\n * Infer card content type from PatternFly props and children\n */\nexport const inferCardContentType = (props: Record<string, unknown>): string => {\n // Interactive states - keep them separate\n if (props.isSelectable) return 'selectable';\n if (props.isClickable) return 'clickable';\n if (props.isExpanded !== undefined) return 'expandable';\n \n // Content analysis based on children\n if (props.children) {\n const childrenStr = props.children.toString().toLowerCase();\n \n // Logo content (media cards should only contain logos)\n if (childrenStr.includes('logo') || childrenStr.includes('brand')) {\n return 'logo';\n }\n \n // Data content\n if (childrenStr.includes('table') || childrenStr.includes('chart') || childrenStr.includes('graph') || \n childrenStr.includes('metric') || childrenStr.includes('stat')) {\n return 'data';\n }\n \n // Form content\n if (childrenStr.includes('form') || childrenStr.includes('input') || childrenStr.includes('button')) {\n return 'interactive';\n }\n \n // Text content\n if (childrenStr.includes('text') || childrenStr.includes('description') || childrenStr.includes('paragraph')) {\n return 'text';\n }\n }\n \n return 'mixed'; // Default fallback\n};\n\n/**\n * Infer card interactive state from PatternFly props\n */\nexport const inferCardInteractiveState = (props: Record<string, unknown>): string => {\n // Interactive states\n if (props.isSelectable) {\n if (props.isSelected) return 'selected';\n return 'selectable';\n }\n \n if (props.isClickable) {\n if (props.isDisabled) return 'disabled-clickable';\n return 'clickable';\n }\n \n if (props.isExpanded !== undefined) {\n if (props.isExpanded) return 'expanded';\n return 'collapsed';\n }\n \n // Default state\n return 'static';\n};\n\n/**\n * Infer modal interaction type\n */\nexport const inferModalInteractionType = (isOpen?: boolean): string => {\n return isOpen ? 'blocking' : 'non-blocking';\n};\n\n/**\n * Infer select purpose\n */\nexport const inferSelectPurpose = (): string => {\n return 'data-entry';\n};\n\n/**\n * Infer select selection type\n */\nexport const inferSelectSelectionType = (variant?: string): string => {\n return variant === 'typeahead' ? 'typeahead' : 'single';\n};\n\n/**\n * Infer radio purpose\n */\nexport const inferRadioPurpose = (): string => {\n return 'option-selection';\n};\n\n/**\n * Infer radio group context\n */\nexport const inferRadioGroupContext = (name?: string): string => {\n return name || 'unknown-group';\n};\n\n/**\n * Infer switch purpose\n */\nexport const inferSwitchPurpose = (): string => {\n return 'setting';\n};\n\n/**\n * Infer switch toggle target\n */\nexport const inferSwitchToggleTarget = (): string => {\n return 'feature';\n};\n\n/**\n * Infer textarea purpose\n */\nexport const inferTextAreaPurpose = (): string => {\n return 'content';\n};\n\n/**\n * Infer textarea content type\n */\nexport const inferTextAreaContentType = (): string => {\n return 'plain-text';\n};\n\n/**\n * Infer checkbox purpose\n */\nexport const inferCheckboxPurpose = (isChecked?: boolean): string => {\n return isChecked !== undefined ? 'selection' : 'form-input';\n};\n\n/**\n * Infer link purpose\n */\nexport const inferLinkPurpose = (href?: string, children?: unknown): string => {\n if (href?.startsWith('http')) return 'external';\n if (href === '#') return 'action';\n if (href?.includes('download')) return 'download';\n if (children?.toString().toLowerCase().includes('launch')) return 'launch';\n return 'navigation';\n};\n\n/**\n * Infer star icon purpose\n */\nexport const inferStarIconPurpose = (isFavorited?: boolean): string => {\n return isFavorited !== undefined ? 'favorite-toggle' : 'rating';\n};\n\n/**\n * Infer validation context\n */\nexport const inferValidationContext = (isRequired?: boolean): string => {\n return isRequired ? 'required' : 'optional';\n};\n\n/**\n * Infer form context (default for most form components)\n */\nexport const inferFormContext = (): string => {\n return 'form';\n};\n\n/**\n * Infer settings context (default for switches)\n */\nexport const inferSettingsContext = (): string => {\n return 'settings';\n};\n\n/**\n * Infer status badge type from content\n */\nexport const inferStatusBadgeType = (content?: string): string => {\n const lower = content?.toLowerCase() || '';\n if (lower.includes('ready')) return 'ready';\n if (lower.includes('success')) return 'success';\n if (lower.includes('warning')) return 'warning';\n if (lower.includes('error') || lower.includes('fail')) return 'error';\n if (lower.includes('pending')) return 'pending';\n return 'info';\n};\n\n/**\n * Infer status badge purpose\n */\nexport const inferStatusBadgePurpose = (): string => {\n return 'status-indicator';\n};\n\n/**\n * Infer category from component name\n * Category describes WHAT the component IS, not what it DOES (that's the action)\n */\nexport const inferCategory = (componentName: string): string => {\n const name = componentName.toLowerCase();\n \n // Component type categorization\n if (name === 'button') {\n return 'button';\n }\n if (['textinput', 'textarea', 'select', 'radio', 'checkbox', 'switch'].includes(name)) {\n return 'forms';\n }\n if (['nav', 'breadcrumb', 'tabs', 'pagination', 'masthead'].includes(name)) {\n return 'navigation';\n }\n if (['card', 'table', 'datalist', 'label', 'badge'].includes(name)) {\n return 'data-display';\n }\n if (['alert', 'banner', 'toast', 'progress', 'spinner'].includes(name)) {\n return 'feedback';\n }\n if (['modal', 'drawer', 'popover', 'tooltip'].includes(name)) {\n return 'overlay';\n }\n if (['flex', 'grid', 'stack', 'panel'].includes(name)) {\n return 'layout';\n }\n \n return 'data-display';\n};\n\n","import React, { createContext, useContext, useState, ReactNode } from 'react';\nimport { isVisualParent } from '../utils/inference';\n\nexport interface HierarchyData {\n fullPath: string; // All components: \"Modal > Form > Card\"\n qualifiedParents: string[]; // Only visual parents: [\"Modal\"]\n wrappers: string[]; // Only wrapper components: [\"Form\", \"Card\"]\n immediateParent: string; // Last qualified parent: \"Modal\"\n immediateWrapper: string; // Last wrapper: \"Card\"\n depth: number; // Count of visual parents: 1\n}\n\ninterface ContextItem {\n name: string; // Component type: \"Button\", \"Modal\", etc.\n semanticName: string; // Semantic name: \"Table Action\", \"Build New\", etc.\n isQualified: boolean;\n}\n\ninterface SemanticContextType {\n contextStack: ContextItem[];\n addContext: (context: string, semanticName?: string, isQualified?: boolean) => void;\n removeContext: () => void;\n getHierarchy: () => HierarchyData;\n clearContext: () => void;\n}\n\nconst SemanticContext = createContext<SemanticContextType | undefined>(undefined);\n\nexport const useSemanticContext = () => {\n const context = useContext(SemanticContext);\n if (!context) {\n throw new Error('useSemanticContext must be used within a SemanticProvider');\n }\n return context;\n};\n\ninterface SemanticProviderProps {\n children: ReactNode;\n}\n\nexport const SemanticProvider: React.FC<SemanticProviderProps> = ({ children }) => {\n const [contextStack, setContextStack] = useState<ContextItem[]>([]);\n\n const addContext = (context: string, semanticName?: string, isQualified?: boolean) => {\n // Auto-detect if not specified\n const qualified = isQualified !== undefined ? isQualified : isVisualParent(context);\n setContextStack(prev => [...prev, { \n name: context, \n semanticName: semanticName || context, // Use semantic name if provided, otherwise fallback to context\n isQualified: qualified \n }]);\n };\n\n const removeContext = () => {\n setContextStack(prev => prev.slice(0, -1));\n };\n\n const clearContext = () => {\n setContextStack([]);\n };\n\n const getHierarchy = (): HierarchyData => {\n const allSemanticNames = contextStack.map(c => c.semanticName);\n const qualifiedOnly = contextStack.filter(c => c.isQualified).map(c => c.semanticName);\n const wrappersOnly = contextStack.filter(c => !c.isQualified).map(c => c.semanticName);\n \n return {\n fullPath: allSemanticNames.length > 0 ? allSemanticNames.join(' > ') : '',\n qualifiedParents: qualifiedOnly,\n wrappers: wrappersOnly,\n immediateParent: qualifiedOnly.length > 0 ? qualifiedOnly[qualifiedOnly.length - 1] : '',\n immediateWrapper: wrappersOnly.length > 0 ? wrappersOnly[wrappersOnly.length - 1] : '',\n depth: qualifiedOnly.length\n };\n };\n\n return (\n <SemanticContext.Provider\n value={{\n contextStack,\n addContext,\n removeContext,\n getHierarchy,\n clearContext,\n }}\n >\n {children}\n </SemanticContext.Provider>\n );\n};\n","import React from 'react';\nimport { Button as PFButton } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { inferButtonAction, inferContext } from '../../utils/inference';\nimport { useSemanticContext } from '../../context/SemanticContext';\n\nexport interface ButtonProps extends Omit<React.ComponentProps<typeof PFButton>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic action this button performs (auto-inferred from variant if not provided) */\n action?: 'primary' | 'secondary' | 'destructive' | 'navigation' | 'toggle';\n /** Context of where this button is used (auto-inferred from props if not provided) */\n context?: 'form' | 'toolbar' | 'modal' | 'card' | 'navigation' | 'table' | 'alert';\n}\n\n/** Button - PatternFly Button wrapper with semantic metadata for AI tooling */\nexport const Button: React.FC<ButtonProps> = ({\n semanticRole,\n aiMetadata: _aiMetadata,\n action,\n context,\n target,\n semanticName,\n children,\n variant,\n onClick,\n isDisabled,\n ...props\n}) => {\n // Get hierarchy from context (optional - gracefully handles no provider)\n let hierarchy;\n let addContext, removeContext;\n try {\n const semanticContext = useSemanticContext();\n hierarchy = semanticContext.getHierarchy();\n addContext = semanticContext.addContext;\n removeContext = semanticContext.removeContext;\n } catch {\n hierarchy = { fullPath: '', qualifiedParents: [], wrappers: [], immediateParent: '', immediateWrapper: '', depth: 0 };\n addContext = () => {};\n removeContext = () => {};\n }\n\n // Auto-infer semantic properties from PatternFly props\n const inferredAction = inferButtonAction(variant, props.href as string, onClick, target);\n const actionType = action || inferredAction.type;\n const actionVariant = inferredAction.variant;\n const inferredContext = context || inferContext({ onClick, isDisabled, ...props });\n \n // Generate semantic role (combines category, action, context into one)\n const role = semanticRole || `button-${actionType}-${inferredContext}`;\n \n // Generate semantic name: wrapper > parent > action type\n // Button acts on wrapper (if exists), otherwise parent, otherwise standalone\n const componentName = semanticName || (() => {\n // Format action type: \"action\" → \"Action\", \"navigation\" → \"Navigation\", \"external\" → \"External Link\"\n // Treat \"default\" as \"Action\"\n let actionLabel;\n if (actionType === 'default') {\n actionLabel = 'Action';\n } else if (actionType === 'external') {\n actionLabel = 'External Link';\n } else {\n actionLabel = actionType.charAt(0).toUpperCase() + actionType.slice(1);\n }\n \n // Priority: wrapper (immediate context) > parent > standalone\n if (hierarchy.immediateWrapper) {\n return `${hierarchy.immediateWrapper} ${actionLabel}`;\n } else if (hierarchy.immediateParent) {\n return `${hierarchy.immediateParent} ${actionLabel}`;\n }\n \n // Otherwise just the action label\n return actionLabel;\n })();\n \n // Register button with its semantic name in context (for modal triggering)\n React.useEffect(() => {\n addContext('Button', componentName, false); // false = not a visual parent\n return () => removeContext();\n }, [addContext, removeContext, componentName]);\n \n const consequence = actionVariant === 'destructive' ? 'destructive-permanent' : 'safe';\n const affectsParent = target === 'parent-modal' || target === 'parent-form';\n\n return (\n <PFButton\n {...props}\n variant={variant}\n onClick={onClick}\n isDisabled={isDisabled}\n data-semantic-name={componentName}\n data-semantic-path={hierarchy.fullPath ? `${hierarchy.fullPath} > ${componentName}` : componentName}\n data-parent={hierarchy.immediateParent || 'none'}\n data-wrapper={hierarchy.immediateWrapper || 'none'}\n data-num-parents={hierarchy.depth}\n data-semantic-role={role}\n data-action-variant={actionVariant}\n data-target={target || 'default'}\n data-consequence={consequence}\n data-affects-parent={affectsParent}\n >\n {children}\n </PFButton>\n );\n};\n\nexport default Button;\n","import React from 'react';\nimport { SemanticComponentProps } from '../../types';\nimport { inferLinkPurpose, inferContext, inferCategory } from '../../utils/inference';\nimport { useSemanticContext } from '../../context/SemanticContext';\n\nexport interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'target'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this link (auto-inferred from props if not provided) */\n purpose?: 'navigation' | 'action' | 'download' | 'external' | 'launch';\n /** The context where this link is used (auto-inferred from props if not provided) */\n context?: 'table' | 'card' | 'navigation' | 'content';\n /** HTML target attribute (_blank, _self, etc) */\n htmlTarget?: string;\n}\n\n/** Link - HTML anchor wrapper with semantic metadata for AI tooling */\nexport const Link: React.FC<LinkProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n context,\n target,\n htmlTarget,\n children,\n href,\n onClick,\n ...props\n}) => {\n // Get hierarchy from context (optional - gracefully handles no provider)\n let hierarchy;\n try {\n const semanticContext = useSemanticContext();\n hierarchy = semanticContext.getHierarchy();\n } catch {\n hierarchy = { fullPath: '', qualifiedParents: [], wrappers: [], immediateParent: '', immediateWrapper: '', depth: 0 };\n }\n\n // Auto-infer semantic properties from props\n const inferredPurpose = purpose || inferLinkPurpose(href, children);\n const inferredContext = context || (onClick ? inferContext({ onClick }) : 'content');\n const componentName = semanticName || 'Link';\n\n // Generate semantic role and AI metadata\n const role = semanticRole || `link-${inferredPurpose}-${inferredContext}`;\n const metadata = aiMetadata || {\n description: `${inferredPurpose} link for ${inferredContext} context`,\n category: inferCategory('Link'),\n usage: [`${inferredContext}-${inferredPurpose}`, 'user-interaction'],\n hierarchy,\n action: {\n type: inferredPurpose,\n target: target || 'default'\n }\n };\n\n return (\n <a\n {...props}\n href={href}\n onClick={onClick}\n target={htmlTarget}\n data-semantic-name={componentName}\n data-semantic-path={hierarchy.fullPath ? `${hierarchy.fullPath} > ${componentName}` : componentName}\n data-parent={hierarchy.immediateParent || 'none'}\n data-wrapper={hierarchy.immediateWrapper || 'none'}\n data-num-parents={hierarchy.depth}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-target={target || 'default'}\n data-context={inferredContext}\n >\n {children}\n </a>\n );\n};\n\nexport default Link;\n","import React from 'react';\nimport { SemanticComponentProps } from '../../types';\nimport { inferStarIconPurpose, inferContext } from '../../utils/inference';\n\nexport interface StarIconProps extends React.HTMLAttributes<HTMLSpanElement>, SemanticComponentProps {\n children?: React.ReactNode;\n /** Whether this star is favorited/active */\n isFavorited?: boolean;\n /** The semantic purpose of this star icon (auto-inferred from props if not provided) */\n purpose?: 'favorite-toggle' | 'rating' | 'bookmark' | 'highlight';\n /** The context where this star is used (auto-inferred from props if not provided) */\n context?: 'table' | 'card' | 'list' | 'content';\n}\n\n/** StarIcon - HTML span wrapper with semantic metadata for AI tooling */\nexport const StarIcon: React.FC<StarIconProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n context,\n children,\n isFavorited,\n onClick,\n ...props\n}) => {\n // Auto-infer semantic properties from props\n const inferredPurpose = purpose || inferStarIconPurpose(isFavorited);\n const inferredContext = context || (onClick ? inferContext({ onClick }) : 'display');\n\n // Generate semantic role and AI metadata\n const role = semanticRole || `star-icon-${inferredPurpose}-${inferredContext}`;\n const metadata = aiMetadata || {\n description: `${inferredPurpose} star icon for ${inferredContext} context`,\n category: 'forms',\n complexity: 'simple',\n usage: [`${inferredContext}-${inferredPurpose}`, 'user-interaction']\n };\n\n // Default semantic name if not provided\n const defaultSemanticName = semanticName || 'Row Item';\n\n return (\n <span\n {...props}\n onClick={onClick}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-context={inferredContext}\n data-is-favorited={isFavorited}\n >\n {children}\n </span>\n );\n};\n\nexport default StarIcon;\n","import React from 'react';\nimport { Form as PFForm } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { useSemanticContext } from '../../context/SemanticContext';\n\nexport interface FormProps extends Omit<React.ComponentProps<typeof PFForm>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this form */\n purpose?: 'create' | 'edit' | 'search' | 'filter' | 'settings';\n}\n\n/** Form - PatternFly Form wrapper with semantic metadata for AI tooling */\nexport const Form: React.FC<FormProps> = ({\n semanticName,\n semanticRole,\n purpose,\n children,\n ...props\n}) => {\n // Register as wrapper (not a visual parent) in semantic context\n const { addContext, removeContext } = useSemanticContext();\n \n React.useEffect(() => {\n addContext('Form', undefined, false); // false = wrapper (always visible)\n return () => removeContext();\n }, [addContext, removeContext]);\n\n // Get hierarchy from context\n let hierarchy;\n try {\n const semanticContext = useSemanticContext();\n hierarchy = semanticContext.getHierarchy();\n } catch {\n hierarchy = { fullPath: '', qualifiedParents: [], wrappers: [], immediateParent: '', immediateWrapper: '', depth: 0 };\n }\n\n // Auto-infer purpose from context if not provided\n const inferredPurpose = purpose || 'edit';\n \n // Generate semantic role\n const role = semanticRole || `form-${inferredPurpose}`;\n\n // Default semantic name if not provided\n const componentName = semanticName || 'Form';\n\n return (\n <PFForm\n {...props}\n data-semantic-name={componentName}\n data-semantic-path={hierarchy.fullPath ? `${hierarchy.fullPath} > ${componentName}` : componentName}\n data-parent={hierarchy.immediateParent || 'none'}\n data-wrapper={hierarchy.immediateWrapper || 'none'}\n data-num-parents={hierarchy.depth}\n data-semantic-role={role}\n data-purpose={inferredPurpose}\n >\n {children}\n </PFForm>\n );\n};\n\nexport default Form;\n\n","import React from 'react';\nimport { Checkbox as PFCheckbox } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { inferCheckboxPurpose, inferContext, inferFormContext, inferCategory } from '../../utils/inference';\n\nexport interface CheckboxProps extends Omit<React.ComponentProps<typeof PFCheckbox>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this checkbox (auto-inferred from props if not provided) */\n purpose?: 'selection' | 'toggle' | 'form-input' | 'filter';\n /** The context where this checkbox is used (auto-inferred from props if not provided) */\n context?: 'table' | 'form' | 'filter' | 'settings';\n /** Required id for PatternFly Checkbox */\n id: string;\n}\n\n/** Checkbox - PatternFly Checkbox wrapper with semantic metadata for AI tooling */\nexport const Checkbox: React.FC<CheckboxProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n context,\n children,\n isChecked,\n onChange,\n id,\n ...props\n}) => {\n // Auto-infer semantic properties from PatternFly props\n const inferredPurpose = purpose || inferCheckboxPurpose(isChecked);\n const inferredContext = context || (onChange ? inferContext({ onChange }) : inferFormContext());\n\n // Generate semantic role and AI metadata\n const role = semanticRole || `checkbox-${inferredPurpose}-${inferredContext}`;\n const metadata = aiMetadata || {\n description: `${inferredPurpose} checkbox for ${inferredContext} context`,\n category: inferCategory('Checkbox'),\n usage: [`${inferredContext}-${inferredPurpose}`, 'user-interaction']\n };\n\n // Default semantic name if not provided\n const defaultSemanticName = semanticName || 'Row Item';\n\n return (\n <PFCheckbox\n {...props}\n id={id}\n isChecked={isChecked}\n onChange={onChange}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-context={inferredContext}\n >\n {children}\n </PFCheckbox>\n );\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport { TextInput as PFTextInput } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { \n inferInputPurpose, \n inferFormContext, \n inferValidationContext,\n generateMetadataFromProps \n} from '../../utils/inference';\n\nexport interface TextInputProps \n extends Omit<React.ComponentProps<typeof PFTextInput>, 'children'>, \n SemanticComponentProps {\n /** The semantic purpose of this input field */\n purpose?: 'text-input' | 'email-input' | 'password-input' | 'search-input' | 'phone-input' | 'url-input' | 'numeric-input';\n /** The context where this input is used */\n context?: 'form' | 'search' | 'filter' | 'inline-edit' | 'settings';\n /** Validation context for semantic understanding */\n validationContext?: 'required' | 'optional' | 'conditional';\n}\n\n/**\n * TextInput - PatternFly TextInput wrapper with semantic metadata for AI tooling\n * \n * @example\n * ```tsx\n * <TextInput\n * type=\"email\"\n * purpose=\"email-input\"\n * context=\"form\"\n * placeholder=\"Enter your email\"\n * value={email}\n * onChange={handleChange}\n * />\n * ```\n */\nexport const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n context,\n validationContext,\n type = 'text',\n validated,\n isRequired,\n ...props\n}, ref) => {\n // 1. Auto-infer semantic properties from PatternFly props\n const inferredPurpose = purpose || inferInputPurpose(type);\n const inferredContext = context || inferFormContext();\n const inferredValidation = validationContext || inferValidationContext(isRequired);\n \n // 2. Generate semantic role and AI metadata\n const role = semanticRole || `textinput-${inferredPurpose}-${inferredContext}`;\n const metadata = aiMetadata || {\n ...generateMetadataFromProps('TextInput', { type, validated, isRequired, ...props }),\n description: `${inferredPurpose} for ${inferredContext} context`,\n usage: ['data-entry', 'form-input', 'user-interaction']\n };\n \n // 3. Default semantic name\n const defaultSemanticName = semanticName || 'TextInput';\n \n // 4. Render PatternFly component with semantic data attributes\n return (\n <PFTextInput\n {...props}\n ref={ref}\n type={type}\n validated={validated}\n isRequired={isRequired}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-context={inferredContext}\n data-validation-context={inferredValidation}\n />\n );\n});\n\nTextInput.displayName = 'TextInput';\n\nexport default TextInput;\n\n","import React from 'react';\nimport { TextArea as PFTextArea } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { \n inferTextAreaPurpose,\n inferTextAreaContentType,\n inferFormContext,\n generateMetadataFromProps \n} from '../../utils/inference';\n\nexport interface TextAreaProps \n extends Omit<React.ComponentProps<typeof PFTextArea>, 'children'>, \n SemanticComponentProps {\n /** The semantic purpose of this textarea */\n purpose?: 'comment' | 'description' | 'note' | 'message' | 'feedback' | 'content';\n /** The context where this textarea is used */\n context?: 'form' | 'comment-section' | 'message-box' | 'editor' | 'settings';\n /** Expected content type */\n contentType?: 'plain-text' | 'formatted-text' | 'code' | 'markdown';\n}\n\n/**\n * TextArea - PatternFly TextArea wrapper with semantic metadata for AI tooling\n * \n * @example\n * ```tsx\n * <TextArea\n * purpose=\"comment\"\n * context=\"comment-section\"\n * placeholder=\"Add your comment...\"\n * value={comment}\n * onChange={handleChange}\n * resizeOrientation=\"vertical\"\n * />\n * ```\n */\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n context,\n contentType,\n validated,\n isRequired,\n ...props\n}, ref) => {\n // 1. Auto-infer semantic properties\n const inferredPurpose = purpose || inferTextAreaPurpose();\n const inferredContext = context || inferFormContext();\n const inferredContentType = contentType || inferTextAreaContentType();\n \n // 2. Generate semantic role and AI metadata\n const role = semanticRole || `textarea-${inferredPurpose}-${inferredContext}`;\n const metadata = aiMetadata || {\n ...generateMetadataFromProps('TextArea', { validated, isRequired, ...props }),\n description: `${inferredPurpose} textarea for ${inferredContext} containing ${inferredContentType}`,\n usage: ['data-entry', 'long-form-input', 'user-interaction']\n };\n \n // 3. Default semantic name\n const defaultSemanticName = semanticName || 'TextArea';\n \n // 4. Render PatternFly component with semantic data attributes\n return (\n <PFTextArea\n {...props}\n ref={ref}\n validated={validated}\n isRequired={isRequired}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-context={inferredContext}\n data-content-type={inferredContentType}\n />\n );\n});\n\nTextArea.displayName = 'TextArea';\n\nexport default TextArea;\n\n","import React from 'react';\nimport { Select as PFSelect } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { \n inferSelectPurpose,\n inferSelectSelectionType,\n inferFormContext,\n generateMetadataFromProps \n} from '../../utils/inference';\n\nexport interface SelectProps \n extends Omit<React.ComponentProps<typeof PFSelect>, 'children'>, \n SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this select */\n purpose?: 'category-selection' | 'filter' | 'setting' | 'navigation' | 'data-entry';\n /** The context where this select is used */\n context?: 'form' | 'toolbar' | 'filter-bar' | 'settings' | 'navigation';\n /** Selection behavior */\n selectionType?: 'single' | 'multiple' | 'typeahead';\n}\n\n/**\n * Select - PatternFly Select wrapper with semantic metadata for AI tooling\n * \n * @example\n * ```tsx\n * <Select\n * purpose=\"category-selection\"\n * context=\"form\"\n * isOpen={isOpen}\n * onToggle={handleToggle}\n * selections={selected}\n * onSelect={handleSelect}\n * >\n * <SelectOption value=\"option1\" />\n * <SelectOption value=\"option2\" />\n * </Select>\n * ```\n */\nexport const Select: React.FC<SelectProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n context,\n selectionType,\n variant,\n children,\n ...props\n}) => {\n // 1. Auto-infer semantic properties\n const inferredPurpose = purpose || inferSelectPurpose();\n const inferredContext = context || inferFormContext();\n const inferredSelectionType = selectionType || inferSelectSelectionType(variant);\n \n // 2. Generate semantic role and AI metadata\n const role = semanticRole || `select-${inferredPurpose}-${inferredContext}`;\n const metadata = aiMetadata || {\n ...generateMetadataFromProps('Select', { variant, ...props }),\n description: `${inferredPurpose} select with ${inferredSelectionType} selection for ${inferredContext}`,\n usage: ['data-entry', 'user-selection', 'user-interaction']\n };\n \n // 3. Default semantic name\n const defaultSemanticName = semanticName || 'Select';\n \n // 4. Render PatternFly component with semantic data attributes\n return (\n <PFSelect\n {...props}\n variant={variant}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-context={inferredContext}\n data-selection-type={inferredSelectionType}\n >\n {children}\n </PFSelect>\n );\n};\n\nexport default Select;\n\n","import React from 'react';\nimport { Radio as PFRadio } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { \n inferRadioPurpose,\n inferRadioGroupContext,\n inferFormContext,\n generateMetadataFromProps \n} from '../../utils/inference';\n\nexport interface RadioProps \n extends Omit<React.ComponentProps<typeof PFRadio>, 'children' | 'ref'>, \n SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this radio button */\n purpose?: 'option-selection' | 'preference' | 'setting' | 'filter' | 'answer';\n /** The context where this radio is used */\n context?: 'form' | 'settings' | 'filter' | 'survey' | 'quiz';\n /** The group this radio belongs to */\n groupContext?: string;\n}\n\n/**\n * Radio - PatternFly Radio wrapper with semantic metadata for AI tooling\n * \n * @example\n * ```tsx\n * <Radio\n * purpose=\"preference\"\n * context=\"settings\"\n * groupContext=\"theme-selection\"\n * name=\"theme\"\n * id=\"theme-light\"\n * label=\"Light Theme\"\n * isChecked={theme === 'light'}\n * onChange={handleChange}\n * />\n * ```\n */\nexport const Radio: React.FC<RadioProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n context,\n groupContext,\n name,\n isChecked,\n isDisabled,\n children,\n ...props\n}) => {\n // 1. Auto-infer semantic properties\n const inferredPurpose = purpose || inferRadioPurpose();\n const inferredContext = context || inferFormContext();\n const inferredGroupContext = groupContext || inferRadioGroupContext(name);\n \n // 2. Generate semantic role and AI metadata\n const role = semanticRole || `radio-${inferredPurpose}-${inferredContext}`;\n const metadata = aiMetadata || {\n ...generateMetadataFromProps('Radio', { name, isChecked, isDisabled, ...props }),\n description: `${inferredPurpose} radio button in ${inferredGroupContext} group for ${inferredContext}`,\n usage: ['user-selection', 'form-input', 'user-interaction']\n };\n \n // 3. Default semantic name\n const defaultSemanticName = semanticName || 'Radio';\n \n // 4. Render PatternFly component with semantic data attributes\n return (\n <PFRadio\n {...props}\n name={name}\n isChecked={isChecked}\n isDisabled={isDisabled}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-context={inferredContext}\n data-group-context={inferredGroupContext}\n >\n {children}\n </PFRadio>\n );\n};\n\nexport default Radio;\n\n","import React from 'react';\nimport { Switch as PFSwitch } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { \n inferSwitchPurpose,\n inferSwitchToggleTarget,\n inferSettingsContext,\n generateMetadataFromProps \n} from '../../utils/inference';\n\nexport interface SwitchProps \n extends Omit<React.ComponentProps<typeof PFSwitch>, 'children' | 'ref'>, \n SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this switch */\n purpose?: 'feature-toggle' | 'setting' | 'preference' | 'filter' | 'mode-switch';\n /** The context where this switch is used */\n context?: 'settings' | 'toolbar' | 'card' | 'table-row' | 'form';\n /** What is being toggled */\n toggleTarget?: 'feature' | 'visibility' | 'mode' | 'status' | 'permission';\n}\n\n/**\n * Switch - PatternFly Switch wrapper with semantic metadata for AI tooling\n * \n * @example\n * ```tsx\n * <Switch\n * purpose=\"feature-toggle\"\n * context=\"settings\"\n * toggleTarget=\"feature\"\n * id=\"notifications\"\n * label=\"Enable notifications\"\n * isChecked={notificationsEnabled}\n * onChange={handleToggle}\n * />\n * ```\n */\nexport const Switch: React.FC<SwitchProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n context,\n toggleTarget,\n isChecked,\n isDisabled,\n children,\n ...props\n}) => {\n // 1. Auto-infer semantic properties\n const inferredPurpose = purpose || inferSwitchPurpose();\n const inferredContext = context || inferSettingsContext();\n const inferredToggleTarget = toggleTarget || inferSwitchToggleTarget();\n \n // 2. Generate semantic role and AI metadata\n const role = semanticRole || `switch-${inferredPurpose}-${inferredContext}`;\n const metadata = aiMetadata || {\n ...generateMetadataFromProps('Switch', { isChecked, isDisabled, ...props }),\n description: `${inferredPurpose} switch for toggling ${inferredToggleTarget} in ${inferredContext}`,\n usage: ['user-interaction', 'toggle-control', 'settings-control']\n };\n \n // 3. Default semantic name\n const defaultSemanticName = semanticName || 'Switch';\n \n // 4. Render PatternFly component with semantic data attributes\n return (\n <PFSwitch\n {...props}\n isChecked={isChecked}\n isDisabled={isDisabled}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-context={inferredContext}\n data-toggle-target={inferredToggleTarget}\n >\n {children}\n </PFSwitch>\n );\n};\n\nexport default Switch;\n\n","import React from 'react';\nimport { Card as PFCard } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { inferCardPurpose, inferCardContentType, inferCardInteractiveState } from '../../utils/inference';\nimport { useSemanticContext } from '../../context/SemanticContext';\n\nexport interface CardProps extends Omit<React.ComponentProps<typeof PFCard>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this card (auto-inferred from props if not provided) */\n purpose?: 'content-display' | 'data-summary' | 'action-panel' | 'information' | 'navigation';\n /** The type of content this card contains (auto-inferred from children if not provided) */\n contentType?: 'text' | 'data' | 'media' | 'mixed' | 'interactive';\n}\n\n/** Card - PatternFly Card wrapper with semantic metadata for AI tooling */\nexport const Card: React.FC<CardProps> = ({\n semanticName,\n semanticRole,\n aiMetadata: _aiMetadata,\n purpose,\n contentType,\n children,\n isSelectable,\n isClickable,\n isExpanded,\n isCompact,\n isSelected,\n isDisabled,\n ...props\n}) => {\n // Get hierarchy from context (optional - gracefully handles no provider)\n let hierarchy;\n let addContext, removeContext;\n try {\n const semanticContext = useSemanticContext();\n hierarchy = semanticContext.getHierarchy();\n addContext = semanticContext.addContext;\n removeContext = semanticContext.removeContext;\n } catch {\n hierarchy = { fullPath: '', qualifiedParents: [], wrappers: [], immediateParent: '', immediateWrapper: '', depth: 0 };\n addContext = () => {};\n removeContext = () => {};\n }\n\n // Auto-infer semantic properties from PatternFly props and children\n const inferredPurpose = purpose || inferCardPurpose({ isSelectable, isClickable, isExpanded, isCompact, children });\n const inferredContentType = contentType || inferCardContentType({ isSelectable, isClickable, isExpanded, children });\n const inferredInteractiveState = inferCardInteractiveState({ isSelectable, isClickable, isExpanded, isSelected, isDisabled });\n \n // Generate semantic role\n const role = semanticRole || `card-${inferredPurpose}-${inferredContentType}`;\n\n // Generate semantic name: wrapper > parent > standalone\n // Card acts on wrapper (if exists), otherwise parent, otherwise standalone\n const componentName = semanticName || (() => {\n // Priority: wrapper (immediate context) > parent > standalone\n if (hierarchy.immediateWrapper) {\n return `${hierarchy.immediateWrapper} Card`;\n } else if (hierarchy.immediateParent) {\n return `${hierarchy.immediateParent} Card`;\n }\n \n // Otherwise just \"Card\"\n return 'Card';\n })();\n\n // Register card with its semantic name in context\n React.useEffect(() => {\n addContext('Card', componentName, false); // false = wrapper (always visible)\n return () => removeContext();\n }, [addContext, removeContext, componentName]);\n\n return (\n <PFCard\n {...props}\n isSelectable={isSelectable}\n isClickable={isClickable}\n isExpanded={isExpanded}\n isCompact={isCompact}\n isSelected={isSelected}\n isDisabled={isDisabled}\n data-semantic-name={componentName}\n data-semantic-path={hierarchy.fullPath ? `${hierarchy.fullPath} > ${componentName}` : componentName}\n data-parent={hierarchy.immediateParent || 'none'}\n data-wrapper={hierarchy.immediateWrapper || 'none'}\n data-num-parents={hierarchy.depth}\n data-semantic-role={role}\n data-purpose={inferredPurpose}\n data-content-type={inferredContentType}\n data-interactive-state={inferredInteractiveState}\n >\n {children}\n </PFCard>\n );\n};\n\nexport default Card;\n","import React from 'react';\nimport { SemanticComponentProps } from '../../types';\nimport { inferStatusBadgeType, inferStatusBadgePurpose } from '../../utils/inference';\n\nexport interface StatusBadgeProps extends React.HTMLAttributes<HTMLSpanElement>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this status badge (auto-inferred from content if not provided) */\n purpose?: 'status-indicator' | 'progress-indicator' | 'state-display' | 'alert-indicator';\n /** The status type (auto-inferred from content if not provided) */\n statusType?: 'success' | 'warning' | 'error' | 'info' | 'pending' | 'ready';\n}\n\n/** StatusBadge - HTML span wrapper with semantic metadata for AI tooling */\nexport const StatusBadge: React.FC<StatusBadgeProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n statusType,\n children,\n ...props\n}) => {\n // Auto-infer semantic properties from content\n const content = children?.toString();\n const inferredStatusType = statusType || inferStatusBadgeType(content);\n const inferredPurpose = purpose || inferStatusBadgePurpose();\n\n // Generate semantic role and AI metadata\n const role = semanticRole || `status-badge-${inferredPurpose}-${inferredStatusType}`;\n const metadata = aiMetadata || {\n description: `${inferredPurpose} showing ${inferredStatusType} status`,\n category: 'data-display',\n complexity: 'simple',\n usage: [`${inferredPurpose}`, 'status-display', 'state-indication']\n };\n\n // Default semantic name if not provided\n const defaultSemanticName = semanticName || 'Row Item';\n\n return (\n <span\n {...props}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-status-type={inferredStatusType}\n >\n {children}\n </span>\n );\n};\n\nexport default StatusBadge;\n","import React from 'react';\nimport { Tbody as PFTbody } from '@patternfly/react-table';\nimport { SemanticComponentProps } from '../../types';\n\nexport interface TbodyProps extends Omit<React.ComponentProps<typeof PFTbody>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this table body section (auto-inferred from props if not provided) */\n purpose?: 'data-rows' | 'selectable-rows' | 'action-rows' | 'mixed-content';\n}\n\n/** Tbody - PatternFly Table Body wrapper with semantic metadata for AI tooling */\nexport const Tbody: React.FC<TbodyProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n children,\n ...props\n}) => {\n // Auto-infer semantic properties from children content\n const inferredPurpose = purpose || (React.Children.toArray(children).some(child => \n React.isValidElement(child) && React.Children.toArray(child.props?.children).some(cell => \n React.isValidElement(cell) && cell.props?.children?.toString().toLowerCase().includes('select'))) ? 'selectable-rows' :\n React.Children.toArray(children).some(child => \n React.isValidElement(child) && React.Children.toArray(child.props?.children).some(cell => \n React.isValidElement(cell) && cell.props?.children?.toString().toLowerCase().includes('action'))) ? 'action-rows' :\n React.Children.toArray(children).some(child => \n React.isValidElement(child) && React.Children.toArray(child.props?.children).some(cell => \n React.isValidElement(cell) && typeof cell.props?.children === 'object')) ? 'mixed-content' : 'data-rows');\n \n // Generate semantic role and AI metadata\n const role = semanticRole || `table-body-section-${inferredPurpose}`;\n const metadata = aiMetadata || {\n description: `Table body section with ${inferredPurpose}`,\n category: 'data-display',\n complexity: 'moderate',\n usage: [`table-${inferredPurpose}`, 'data-presentation', 'row-content']\n };\n\n // Default semantic name if not provided\n const defaultSemanticName = semanticName || 'Body Section';\n\n return (\n <PFTbody\n {...props}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n >\n {children}\n </PFTbody>\n );\n};\n\nexport default Tbody;\n","import React from 'react';\nimport { Td as PFTd } from '@patternfly/react-table';\nimport { SemanticComponentProps } from '../../types';\n\nexport interface TdProps extends Omit<React.ComponentProps<typeof PFTd>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this table cell (auto-inferred from props if not provided) */\n purpose?: 'data-cell' | 'action-cell' | 'selectable-cell' | 'status-cell';\n /** The data type this cell contains (auto-inferred from content if not provided) */\n dataType?: 'text' | 'number' | 'date' | 'boolean' | 'action' | 'mixed';\n}\n\n/** Td - PatternFly Table Data wrapper with semantic metadata for AI tooling */\nexport const Td: React.FC<TdProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n dataType,\n children,\n ...props\n}) => {\n // Auto-infer semantic properties from PatternFly props and content\n const inferredPurpose = purpose || (React.Children.toArray(children).some(child => \n React.isValidElement(child) && child.type?.toString().includes('Button')) ? 'action-cell' :\n React.Children.toArray(children).some(child => \n React.isValidElement(child) && child.type?.toString().includes('Checkbox')) ? 'selectable-cell' :\n children?.toString().toLowerCase().includes('status') ? 'status-cell' : 'data-cell');\n \n // Simple data type inference based on content\n const inferredDataType = dataType || (typeof children === 'number' ? 'number' :\n children?.toString().match(/^\\d{4}-\\d{2}-\\d{2}/) ? 'date' :\n children?.toString().toLowerCase() === 'true' || \n children?.toString().toLowerCase() === 'false' ? 'boolean' :\n React.Children.toArray(children).some(child => \n React.isValidElement(child) && child.type?.toString().includes('Button')) ? 'action' : 'text');\n \n // Generate semantic role and AI metadata\n const role = semanticRole || `table-cell-${inferredPurpose}-${inferredDataType}`;\n const metadata = aiMetadata || {\n description: `${inferredPurpose} containing ${inferredDataType} data`,\n category: 'data-display',\n complexity: 'simple',\n usage: [`table-${inferredPurpose}`, 'data-presentation', 'row-content']\n };\n\n // Default semantic name if not provided\n const defaultSemanticName = semanticName || 'Row Item';\n\n return (\n <PFTd\n {...props}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-data-type={inferredDataType}\n >\n {children}\n </PFTd>\n );\n};\n\nexport default Td;\n","import React from 'react';\nimport { Th as PFTh } from '@patternfly/react-table';\nimport { SemanticComponentProps } from '../../types';\n\nexport interface ThProps extends Omit<React.ComponentProps<typeof PFTh>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this table header (auto-inferred from props if not provided) */\n purpose?: 'column-header' | 'sortable-header' | 'selectable-header' | 'action-header';\n /** The data type this header represents (auto-inferred from content if not provided) */\n dataType?: 'text' | 'number' | 'date' | 'boolean' | 'action' | 'mixed';\n}\n\n/** Th - PatternFly Table Header wrapper with semantic metadata for AI tooling */\nexport const Th: React.FC<ThProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n dataType,\n children,\n sort,\n ...props\n}) => {\n // Auto-infer semantic properties from PatternFly props\n const inferredPurpose = purpose || (sort ? 'sortable-header' : \n children?.toString().toLowerCase().includes('select') ? 'selectable-header' :\n children?.toString().toLowerCase().includes('action') ? 'action-header' : 'column-header');\n \n // Simple data type inference based on content\n const inferredDataType = dataType || (children?.toString().toLowerCase().includes('date') ? 'date' :\n children?.toString().toLowerCase().includes('id') || \n children?.toString().toLowerCase().includes('count') ? 'number' :\n children?.toString().toLowerCase().includes('action') ? 'action' : 'text');\n \n // Generate semantic role and AI metadata\n const role = semanticRole || `table-header-${inferredPurpose}-${inferredDataType}`;\n const metadata = aiMetadata || {\n description: `${inferredPurpose} for ${inferredDataType} data`,\n category: 'data-display',\n complexity: 'simple',\n usage: [`table-${inferredPurpose}`, 'data-organization', 'column-definition']\n };\n\n // Always use 'Th' for component type identification (for validation)\n // Store custom semantic name separately as instance name\n const componentType = 'Th';\n const instanceName = semanticName;\n\n return (\n <PFTh\n {...props}\n sort={sort}\n data-semantic-name={componentType}\n data-instance-name={instanceName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-data-type={inferredDataType}\n >\n {children}\n </PFTh>\n );\n};\n\nexport default Th;\n","import React from 'react';\nimport { Thead as PFThead } from '@patternfly/react-table';\nimport { SemanticComponentProps } from '../../types';\n\nexport interface TheadProps extends Omit<React.ComponentProps<typeof PFThead>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this table header section (auto-inferred from props if not provided) */\n purpose?: 'column-definition' | 'sortable-headers' | 'selectable-headers' | 'action-headers';\n}\n\n/** Thead - PatternFly Table Header wrapper with semantic metadata for AI tooling */\nexport const Thead: React.FC<TheadProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n children,\n ...props\n}) => {\n // Auto-infer semantic properties from children content\n const inferredPurpose = purpose || (React.Children.toArray(children).some(child => \n React.isValidElement(child) && child.props?.sort) ? 'sortable-headers' :\n React.Children.toArray(children).some(child => \n React.isValidElement(child) && child.props?.children?.toString().toLowerCase().includes('select')) ? 'selectable-headers' :\n React.Children.toArray(children).some(child => \n React.isValidElement(child) && child.props?.children?.toString().toLowerCase().includes('action')) ? 'action-headers' : 'column-definition');\n \n // Generate semantic role and AI metadata\n const role = semanticRole || `table-header-section-${inferredPurpose}`;\n const metadata = aiMetadata || {\n description: `Table header section with ${inferredPurpose}`,\n category: 'data-display',\n complexity: 'moderate',\n usage: [`table-${inferredPurpose}`, 'data-organization', 'column-structure']\n };\n\n // Default semantic name if not provided\n const defaultSemanticName = semanticName || 'Header Section';\n\n return (\n <PFThead\n {...props}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n >\n {children}\n </PFThead>\n );\n};\n\nexport default Thead;\n","import React from 'react';\nimport { Tr as PFTr } from '@patternfly/react-table';\nimport { SemanticComponentProps } from '../../types';\n\nexport interface TrProps extends Omit<React.ComponentProps<typeof PFTr>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this table row (auto-inferred from props if not provided) */\n purpose?: 'data-row' | 'header-row' | 'selectable-row' | 'expandable-row' | 'action-row';\n /** The interaction type for this row (auto-inferred from props if not provided) */\n interactionType?: 'clickable' | 'selectable' | 'expandable' | 'static';\n /** The row state (auto-inferred from props if not provided) */\n rowState?: 'normal' | 'selected' | 'expanded' | 'disabled' | 'highlighted';\n}\n\n/** Tr - PatternFly Table Row wrapper with semantic metadata for AI tooling */\nexport const Tr: React.FC<TrProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n interactionType,\n rowState,\n children,\n isClickable,\n isSelectable,\n isExpanded,\n isStriped,\n ...props\n}) => {\n // Auto-infer semantic properties from PatternFly props and content\n const inferredPurpose = purpose || (\n React.Children.toArray(children).some(child =>\n React.isValidElement(child) && \n React.Children.toArray(child.props?.children).some(cell =>\n React.isValidElement(cell) && cell.type?.toString().includes('Th')\n )\n ) ? 'header-row' :\n React.Children.toArray(children).some(child =>\n React.isValidElement(child) && \n React.Children.toArray(child.props?.children).some(cell =>\n React.isValidElement(cell) && cell.type?.toString().includes('Checkbox')\n )\n ) ? 'selectable-row' :\n isExpanded ? 'expandable-row' :\n React.Children.toArray(children).some(child =>\n React.isValidElement(child) && \n React.Children.toArray(child.props?.children).some(cell =>\n React.isValidElement(cell) && cell.type?.toString().includes('Button')\n )\n ) ? 'action-row' : 'data-row'\n );\n \n const inferredInteractionType = interactionType || (\n isClickable ? 'clickable' :\n isSelectable ? 'selectable' :\n isExpanded !== undefined ? 'expandable' :\n 'static'\n );\n \n const inferredRowState = rowState || (\n isExpanded ? 'expanded' :\n isSelectable ? 'selected' :\n isStriped ? 'highlighted' :\n 'normal'\n );\n \n // Generate semantic role and AI metadata\n const role = semanticRole || `table-row-${inferredPurpose}-${inferredInteractionType}`;\n const metadata = aiMetadata || {\n description: `${inferredPurpose} with ${inferredInteractionType} interaction`,\n category: 'data-display',\n complexity: inferredInteractionType === 'static' ? 'simple' : 'medium',\n usage: [`table-${inferredPurpose}`, 'row-interaction', 'data-presentation'],\n interactionType: inferredInteractionType,\n rowState: inferredRowState,\n isStriped: isStriped || false\n };\n\n // Default semantic name if not provided\n const defaultSemanticName = semanticName || 'Table Row';\n\n return (\n <PFTr\n {...props}\n isClickable={isClickable}\n isSelectable={isSelectable}\n isExpanded={isExpanded}\n isStriped={isStriped}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-interaction-type={inferredInteractionType}\n data-row-state={inferredRowState}\n >\n {children}\n </PFTr>\n );\n};\n\nexport default Tr;\n\n\n\n","import React from 'react';\nimport { Flex as PFFlex } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\n\nexport interface FlexProps extends Omit<React.ComponentProps<typeof PFFlex>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The layout purpose of this flex container (auto-inferred from props if not provided) */\n purpose?: 'layout' | 'navigation' | 'toolbar' | 'form' | 'content' | 'action-group';\n /** The layout type (auto-inferred from direction if not provided) */\n layoutType?: 'row' | 'column' | 'responsive';\n /** The alignment context (auto-inferred from props if not provided) */\n alignmentContext?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n}\n\n/** Flex - PatternFly Flex wrapper with semantic metadata for AI tooling */\nexport const Flex: React.FC<FlexProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n purpose,\n layoutType,\n alignmentContext,\n children,\n direction,\n justifyContent,\n alignItems,\n alignSelf,\n flex,\n spaceItems,\n gap,\n columnGap,\n rowGap,\n order,\n component,\n display,\n ...props\n}) => {\n // Auto-infer semantic properties from PatternFly props\n const inferredPurpose = purpose || (\n justifyContent?.default === 'justifyContentSpaceBetween' ? 'toolbar' :\n justifyContent?.default === 'justifyContentCenter' ? 'content' :\n spaceItems ? 'action-group' :\n 'layout'\n );\n \n const inferredLayoutType = layoutType || (\n direction?.default === 'column' ? 'column' :\n direction?.lg ? 'responsive' :\n 'row'\n );\n \n const inferredAlignmentContext = alignmentContext || (\n alignItems?.default === 'alignItemsCenter' ? 'center' :\n alignItems?.default === 'alignItemsFlexEnd' ? 'end' :\n alignItems?.default === 'alignItemsFlexStart' ? 'start' :\n alignItems?.default === 'alignItemsStretch' ? 'stretch' :\n alignItems?.default === 'alignItemsBaseline' ? 'baseline' :\n 'start'\n );\n \n // Generate semantic role and AI metadata\n const role = semanticRole || `flex-${inferredPurpose}-${inferredLayoutType}`;\n const metadata = aiMetadata || {\n description: `${inferredPurpose} flex container with ${inferredLayoutType} layout`,\n category: 'layout',\n complexity: inferredLayoutType === 'responsive' ? 'medium' : 'simple',\n usage: [`${inferredPurpose}-layout`, `${inferredLayoutType}-container`, 'responsive-design'],\n alignment: inferredAlignmentContext,\n layoutDirection: direction?.default || 'row'\n };\n\n // Default semantic name if not provided\n const defaultSemanticName = semanticName || 'Flex Container';\n\n return (\n <PFFlex\n {...props}\n direction={direction}\n justifyContent={justifyContent}\n alignItems={alignItems}\n alignSelf={alignSelf}\n flex={flex}\n spaceItems={spaceItems}\n gap={gap}\n columnGap={columnGap}\n rowGap={rowGap}\n order={order}\n component={component}\n display={display}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-purpose={inferredPurpose}\n data-layout-type={inferredLayoutType}\n data-alignment-context={inferredAlignmentContext}\n >\n {children}\n </PFFlex>\n );\n};\n\nexport default Flex;\n\n\n\n","import React from 'react';\nimport { FlexItem as PFFlexItem } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\n\nexport interface FlexItemProps extends Omit<React.ComponentProps<typeof PFFlexItem>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The content type of this flex item (auto-inferred from props if not provided) */\n contentType?: 'text' | 'button' | 'icon' | 'form-control' | 'media' | 'navigation' | 'action';\n /** The positioning context (auto-inferred from props if not provided) */\n positioningContext?: 'start' | 'center' | 'end' | 'stretch' | 'baseline' | 'auto';\n /** The sizing behavior (auto-inferred from flex prop if not provided) */\n sizingBehavior?: 'fixed' | 'flexible' | 'grow' | 'shrink' | 'auto';\n}\n\n/** FlexItem - PatternFly FlexItem wrapper with semantic metadata for AI tooling */\nexport const FlexItem: React.FC<FlexItemProps> = ({\n semanticName,\n semanticRole,\n aiMetadata,\n contentType,\n positioningContext,\n sizingBehavior,\n children,\n flex,\n align,\n alignSelf,\n spacer,\n order,\n component,\n ...props\n}) => {\n // Auto-infer semantic properties from PatternFly props\n const inferredContentType = contentType || (\n React.Children.toArray(children).some(child =>\n React.isValidElement(child) && \n (child.type?.toString().includes('Button') || \n child.props?.variant === 'primary' || \n child.props?.variant === 'secondary')\n ) ? 'button' :\n React.Children.toArray(children).some(child =>\n React.isValidElement(child) && \n child.type?.toString().includes('Icon')\n ) ? 'icon' :\n React.Children.toArray(children).some(child =>\n React.isValidElement(child) && \n (child.type?.toString().includes('Input') || \n child.type?.toString().includes('Select') ||\n child.type?.toString().includes('Checkbox'))\n ) ? 'form-control' :\n React.Children.toArray(children).some(child =>\n React.isValidElement(child) && \n (child.type?.toString().includes('img') || \n child.type?.toString().includes('Image'))\n ) ? 'media' :\n React.Children.toArray(children).some(child =>\n React.isValidElement(child) && \n child.type?.toString().includes('Link')\n ) ? 'navigation' :\n 'text'\n );\n \n const inferredPositioningContext = positioningContext || (\n align?.default === 'alignRight' ? 'end' :\n align?.default === 'alignLeft' ? 'start' :\n align?.default === 'alignCenter' ? 'center' :\n alignSelf?.default === 'alignSelfFlexEnd' ? 'end' :\n alignSelf?.default === 'alignSelfFlexStart' ? 'start' :\n alignSelf?.default === 'alignSelfCenter' ? 'center' :\n alignSelf?.default === 'alignSelfStretch' ? 'stretch' :\n alignSelf?.default === 'alignSelfBaseline' ? 'baseline' :\n 'auto'\n );\n \n const inferredSizingBehavior = sizingBehavior || (\n flex?.default === 'flex_1' ? 'flexible' :\n flex?.default === 'flex_2' ? 'grow' :\n flex?.default === 'flex_3' ? 'grow' :\n flex?.default === 'flexNone' ? 'fixed' :\n flex?.default === 'flexDefault' ? 'auto' :\n flex?.default === 'flex_4' ? 'auto' :\n 'auto'\n );\n \n // Generate semantic role and AI metadata\n const role = semanticRole || `flex-item-${inferredContentType}-${inferredSizingBehavior}`;\n const metadata = aiMetadata || {\n description: `${inferredContentType} flex item with ${inferredSizingBehavior} sizing`,\n category: 'layout',\n complexity: 'simple',\n usage: [`${inferredContentType}-item`, `${inferredSizingBehavior}-sizing`, 'flex-layout'],\n positioning: inferredPositioningContext,\n sizing: inferredSizingBehavior,\n spacing: spacer?.default || 'none'\n };\n\n // Default semantic name if not provided\n const defaultSemanticName = semanticName || 'Flex Item';\n\n return (\n <PFFlexItem\n {...props}\n flex={flex}\n align={align}\n alignSelf={alignSelf}\n spacer={spacer}\n order={order}\n component={component}\n data-semantic-name={defaultSemanticName}\n data-semantic-role={role}\n data-ai-metadata={JSON.stringify(metadata)}\n data-content-type={inferredContentType}\n data-positioning-context={inferredPositioningContext}\n data-sizing-behavior={inferredSizingBehavior}\n >\n {children}\n </PFFlexItem>\n );\n};\n\nexport default FlexItem;\n\n\n\n","import React from 'react';\nimport { Modal as PFModal } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { inferModalPurpose, inferModalInteractionType } from '../../utils/inference';\nimport { useSemanticContext } from '../../context/SemanticContext';\n\nexport interface ModalProps extends Omit<React.ComponentProps<typeof PFModal>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this modal (auto-inferred from variant if not provided) */\n purpose?: 'confirmation' | 'form' | 'information' | 'selection' | 'workflow';\n /** The type of interaction this modal facilitates (auto-inferred from props if not provided) */\n interactionType?: 'blocking' | 'non-blocking' | 'progressive' | 'multi-step';\n /** The component that triggered this modal to open (auto-inferred from context if not provided) */\n triggeredBy?: string;\n}\n\n/** Modal - PatternFly Modal wrapper with semantic metadata for AI tooling */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const Modal = React.forwardRef<any, ModalProps>(({\n semanticName,\n semanticRole,\n aiMetadata: _aiMetadata,\n purpose,\n interactionType,\n triggeredBy,\n children,\n variant,\n isOpen,\n ...props\n}, ref) => {\n // Register as visual parent in semantic context\n const { addContext, removeContext } = useSemanticContext();\n \n React.useEffect(() => {\n addContext('Modal', undefined, true); // true = qualified visual parent\n return () => removeContext();\n }, [addContext, removeContext]);\n\n // Get hierarchy from context\n let hierarchy;\n try {\n const semanticContext = useSemanticContext();\n hierarchy = semanticContext.getHierarchy();\n } catch {\n hierarchy = { fullPath: '', qualifiedParents: [], wrappers: [], immediateParent: '', immediateWrapper: '', depth: 0 };\n }\n\n // Auto-infer semantic properties from PatternFly props\n const inferredPurpose = purpose || inferModalPurpose({ variant });\n const inferredInteractionType = interactionType || inferModalInteractionType(isOpen);\n \n // Auto-infer triggeredBy from current hierarchy context\n // Extract the semantic name of the last component (usually the triggering button)\n const inferredTriggeredBy = triggeredBy || (hierarchy.fullPath ? \n hierarchy.fullPath.split(' > ').pop() || 'unknown' : 'unknown');\n \n // Generate semantic role\n const role = semanticRole || `modal-${inferredPurpose}-${inferredInteractionType}`;\n\n // Default semantic name if not provided\n const componentName = semanticName || 'Modal';\n\n return (\n <PFModal\n {...props}\n ref={ref}\n variant={variant}\n isOpen={isOpen}\n data-semantic-name={componentName}\n data-semantic-path={hierarchy.fullPath ? `${hierarchy.fullPath} > ${componentName}` : componentName}\n data-parent={hierarchy.immediateParent || 'none'}\n data-wrapper={hierarchy.immediateWrapper || 'none'}\n data-num-parents={hierarchy.depth}\n data-triggered-by={inferredTriggeredBy}\n data-semantic-role={role}\n data-purpose={inferredPurpose}\n data-interaction-type={inferredInteractionType}\n >\n {children}\n </PFModal>\n );\n});\n\nModal.displayName = 'Modal';\n\nexport default Modal;\n","import React from 'react';\nimport { Drawer as PFDrawer } from '@patternfly/react-core';\nimport { SemanticComponentProps } from '../../types';\nimport { useSemanticContext } from '../../context/SemanticContext';\n\nexport interface DrawerProps extends Omit<React.ComponentProps<typeof PFDrawer>, 'children'>, SemanticComponentProps {\n children?: React.ReactNode;\n /** The semantic purpose of this drawer */\n purpose?: 'navigation' | 'filter' | 'details' | 'form' | 'settings';\n}\n\n/** Drawer - PatternFly Drawer wrapper with semantic metadata for AI tooling */\nexport const Drawer: React.FC<DrawerProps> = ({\n semanticName,\n semanticRole,\n purpose,\n children,\n isExpanded,\n ...props\n}) => {\n // Register as visual parent in semantic context\n const { addContext, removeContext } = useSemanticContext();\n \n React.useEffect(() => {\n addContext('Drawer', undefined, true); // true = qualified visual parent\n return () => removeContext();\n }, [addContext, removeContext]);\n\n // Get hierarchy from context\n let hierarchy;\n try {\n const semanticContext = useSemanticContext();\n hierarchy = semanticContext.getHierarchy();\n } catch {\n hierarchy = { fullPath: '', qualifiedParents: [], wrappers: [], immediateParent: '', immediateWrapper: '', depth: 0 };\n }\n\n // Auto-infer purpose if not provided\n const inferredPurpose = purpose || 'details';\n \n // Generate semantic role\n const role = semanticRole || `drawer-${inferredPurpose}`;\n\n // Default semantic name if not provided\n const componentName = semanticName || 'Drawer';\n\n return (\n <PFDrawer\n {...props}\n isExpanded={isExpanded}\n data-semantic-name={componentName}\n data-semantic-path={hierarchy.fullPath ? `${hierarchy.fullPath} > ${componentName}` : componentName}\n data-parent={hierarchy.immediateParent || 'none'}\n data-wrapper={hierarchy.immediateWrapper || 'none'}\n data-num-parents={hierarchy.depth}\n data-semantic-role={role}\n data-purpose={inferredPurpose}\n data-is-expanded={isExpanded}\n >\n {children}\n </PFDrawer>\n );\n};\n\nexport default Drawer;\n\n","import React from 'react';\nimport { MenuToggle as PFMenuToggle } from '@patternfly/react-core';\nimport { useSemanticContext } from '../../context/SemanticContext';\nimport { SemanticComponentProps } from '../../types';\n\ninterface MenuToggleProps extends SemanticComponentProps, React.ComponentProps<typeof PFMenuToggle> {\n // PatternFly MenuToggle props are inherited\n}\n\nexport const MenuToggle: React.FC<MenuToggleProps> = ({ \n semanticName,\n semanticRole,\n aiMetadata,\n target,\n children,\n ...props \n}) => {\n // Get hierarchy from context (optional)\n let hierarchy;\n let semanticContext;\n try {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n semanticContext = useSemanticContext();\n } catch {\n semanticContext = null;\n }\n\n const { addContext, removeContext, getHierarchy } = semanticContext || {\n addContext: () => {},\n removeContext: () => {},\n getHierarchy: () => ({ fullPath: '', qualifiedParents: [], wrappers: [], immediateParent: '', immediateWrapper: '', depth: 0 })\n };\n\n // Add \"menu\" context when this component mounts/renders\n React.useEffect(() => {\n addContext('Menu'); // Auto-detected as non-qualified (wrapper)\n return () => removeContext();\n }, [addContext, removeContext]);\n\n hierarchy = getHierarchy();\n\n const componentName = semanticName || 'Toggle';\n const metadata = aiMetadata || {\n hierarchy,\n action: {\n type: 'toggle',\n target: target || 'menu'\n }\n };\n\n return (\n <PFMenuToggle\n {...props}\n data-semantic-name={componentName}\n data-semantic-path={hierarchy.fullPath ? `${hierarchy.fullPath} > ${componentName}` : componentName}\n data-parent={hierarchy.immediateParent || 'none'}\n data-wrapper={hierarchy.immediateWrapper || 'none'}\n data-num-parents={hierarchy.depth}\n data-semantic-role={semanticRole || 'menu-trigger'}\n data-ai-metadata={JSON.stringify(metadata)}\n data-target={target || 'menu'}\n >\n {children}\n </PFMenuToggle>\n );\n};\n","import React from 'react';\nimport { DropdownItem as PFDropdownItem } from '@patternfly/react-core';\nimport { useSemanticContext } from '../../context/SemanticContext';\nimport { SemanticComponentProps } from '../../types';\n\ninterface DropdownItemProps extends SemanticComponentProps, React.ComponentProps<typeof PFDropdownItem> {\n // PatternFly DropdownItem props are inherited\n}\n\nexport const DropdownItem: React.FC<DropdownItemProps> = ({ \n semanticName,\n semanticRole,\n aiMetadata,\n target,\n children,\n ...props \n}) => {\n // Get hierarchy from context (optional)\n let hierarchy;\n try {\n const semanticContext = useSemanticContext();\n hierarchy = semanticContext.getHierarchy();\n } catch {\n hierarchy = { fullPath: '', qualifiedParents: [], wrappers: [], immediateParent: '', immediateWrapper: '', depth: 0 };\n }\n\n const componentName = semanticName || 'Action';\n const metadata = aiMetadata || {\n hierarchy,\n action: {\n type: 'menu-action',\n target: target || 'default'\n }\n };\n\n return (\n <PFDropdownItem\n {...props}\n data-semantic-name={componentName}\n data-semantic-path={hierarchy.fullPath ? `${hierarchy.fullPath} > ${componentName}` : componentName}\n data-parent={hierarchy.immediateParent || 'none'}\n data-wrapper={hierarchy.immediateWrapper || 'none'}\n data-num-parents={hierarchy.depth}\n data-semantic-role={semanticRole || 'menu-item'}\n data-ai-metadata={JSON.stringify(metadata)}\n data-target={target || 'default'}\n >\n {children}\n </PFDropdownItem>\n );\n};\n","import { ComponentMetadata } from '../types';\n\n/**\n * Utility functions for managing component metadata\n */\n\n/**\n * Generates default metadata for a component based on its type and props\n */\nexport const generateComponentMetadata = (\n componentName: string,\n props: Record<string, unknown> = {}\n): ComponentMetadata => {\n const baseMetadata: ComponentMetadata = {\n name: componentName,\n description: `Semantic wrapper for ${componentName}`,\n category: 'data-display',\n accessibility: ['keyboard-navigable'],\n usage: ['user-interface'],\n props: props\n };\n\n // Customize based on component type\n switch (componentName.toLowerCase()) {\n case 'button':\n return {\n ...baseMetadata,\n category: 'forms',\n description: 'Interactive button with semantic meaning',\n usage: ['user-interaction', 'form-submission', 'navigation']\n };\n case 'card':\n return {\n ...baseMetadata,\n category: 'data-display',\n description: 'Content container with semantic purpose',\n usage: ['content-organization', 'data-presentation']\n };\n case 'modal':\n return {\n ...baseMetadata,\n category: 'overlay',\n description: 'Overlay dialog with semantic purpose',\n accessibility: ['keyboard-navigable', 'focus-management', 'screen-reader-friendly'],\n usage: ['user-interaction', 'workflow-step', 'confirmation']\n };\n default:\n return baseMetadata;\n }\n};\n\n/**\n * Validates component metadata\n */\nexport const validateMetadata = (metadata: ComponentMetadata): boolean => {\n return !!(\n metadata.name &&\n metadata.description &&\n metadata.category &&\n Array.isArray(metadata.accessibility) &&\n Array.isArray(metadata.usage)\n );\n};\n\n/**\n * Merges user-provided metadata with defaults\n */\nexport const mergeMetadata = (\n userMetadata: Partial<ComponentMetadata>,\n defaultMetadata: ComponentMetadata\n): ComponentMetadata => {\n return {\n ...defaultMetadata,\n ...userMetadata,\n accessibility: [...defaultMetadata.accessibility, ...(userMetadata.accessibility || [])],\n usage: [...defaultMetadata.usage, ...(userMetadata.usage || [])]\n };\n};\n","/**\n * Accessibility utility functions\n */\n\n/**\n * Generates ARIA attributes based on component context\n */\nexport const generateAriaAttributes = (\n componentType: string\n): Record<string, string> => {\n const baseAttributes: Record<string, string> = {};\n\n switch (componentType.toLowerCase()) {\n case 'button':\n return {\n ...baseAttributes,\n role: 'button',\n tabIndex: '0'\n };\n case 'card':\n return {\n ...baseAttributes,\n role: 'region',\n tabIndex: '0'\n };\n case 'modal':\n return {\n ...baseAttributes,\n role: 'dialog',\n 'aria-modal': 'true',\n tabIndex: '-1'\n };\n default:\n return baseAttributes;\n }\n};\n\n/**\n * Validates accessibility requirements\n */\nexport const validateAccessibility = (\n componentType: string,\n props: Record<string, unknown>\n): string[] => {\n const issues: string[] = [];\n\n // Check for required ARIA attributes\n if (componentType === 'button' && !props['aria-label'] && !props.children) {\n issues.push('Button should have aria-label or visible text content');\n }\n\n if (componentType === 'modal' && !props['aria-labelledby'] && !props.title) {\n issues.push('Modal should have aria-labelledby or title');\n }\n\n return issues;\n};\n\n/**\n * Generates keyboard shortcuts metadata\n */\nexport const generateKeyboardShortcuts = (\n componentType: string,\n context: Record<string, unknown> = {}\n): string[] => {\n const shortcuts: string[] = [];\n\n switch (componentType.toLowerCase()) {\n case 'button':\n shortcuts.push('Enter', 'Space');\n if (context.action === 'close') {\n shortcuts.push('Escape');\n }\n break;\n case 'modal':\n shortcuts.push('Escape', 'Tab', 'Shift+Tab');\n break;\n case 'card':\n if (context.interactive) {\n shortcuts.push('Enter', 'Space');\n }\n break;\n }\n\n return shortcuts;\n};\n","import React from 'react';\nimport { ComponentMetadata } from '../types';\nimport { generateComponentMetadata, mergeMetadata } from '../utils/metadata';\n\n/**\n * Hook for managing semantic metadata for components\n */\nexport const useSemanticMetadata = (\n componentName: string,\n userMetadata?: Partial<ComponentMetadata>,\n props: Record<string, unknown> = {}\n) => {\n const [metadata, setMetadata] = React.useState<ComponentMetadata>(() => {\n const defaultMetadata = generateComponentMetadata(componentName, props);\n return userMetadata ? mergeMetadata(userMetadata, defaultMetadata) : defaultMetadata;\n });\n\n React.useEffect(() => {\n const defaultMetadata = generateComponentMetadata(componentName, props);\n const mergedMetadata = userMetadata ? mergeMetadata(userMetadata, defaultMetadata) : defaultMetadata;\n setMetadata(mergedMetadata);\n }, [componentName, userMetadata, props]);\n\n const updateMetadata = (updates: Partial<ComponentMetadata>) => {\n setMetadata(prev => ({ ...prev, ...updates }));\n };\n\n return {\n metadata,\n updateMetadata\n };\n};\n","import React from 'react';\nimport { generateAriaAttributes, validateAccessibility, generateKeyboardShortcuts } from '../utils/accessibility';\n\n/**\n * Hook for managing accessibility features\n */\nexport const useAccessibility = (\n componentType: string,\n props: Record<string, unknown> = {},\n context: Record<string, unknown> = {}\n) => {\n const ariaAttributes = React.useMemo(() => \n generateAriaAttributes(componentType),\n [componentType]\n );\n\n const keyboardShortcuts = React.useMemo(() => \n generateKeyboardShortcuts(componentType, context),\n [componentType, context]\n );\n\n const accessibilityIssues = React.useMemo(() => \n validateAccessibility(componentType, props),\n [componentType, props]\n );\n\n const enhancedProps = React.useMemo(() => ({\n ...props,\n ...ariaAttributes,\n 'data-keyboard-shortcuts': keyboardShortcuts.join(','),\n 'data-accessibility-issues': accessibilityIssues.join(',')\n }), [props, ariaAttributes, keyboardShortcuts, accessibilityIssues]);\n\n return {\n ariaAttributes,\n keyboardShortcuts,\n accessibilityIssues,\n enhancedProps\n };\n};\n"],"names":["createContext","useContext","useState","_jsx","PFButton","PFForm","PFCheckbox","PFTextInput","PFTextArea","PFSelect","PFRadio","PFSwitch","PFCard","PFTbody","PFTd","PFTh","PFThead","PFTr","PFFlex","PFFlexItem","PFModal","PFDrawer","PFMenuToggle","PFDropdownItem"],"mappings":";;;;;;;AAAA;;;AAGG;AAEH;;;AAGG;AACU,MAAA,cAAc,GAAG,CAAC,aAAqB,KAAa;AAC/D,IAAA,MAAM,aAAa,GAAG;AACpB,QAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;AACvC,QAAA,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW;AAC1C,QAAA,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY;KAC/C,CAAC;IACF,OAAO,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7D,EAAE;AAEF;;;AAGG;AACI,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,IAAa,EACb,OAAiB,EACjB,MAAe,KACsB;;IAErC,IAAI,YAAY,GAAG,SAAS,CAAC;IAE7B,IAAI,IAAI,EAAE;;AAER,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,YAAY,GAAG,UAAU,CAAC;aAClD,IAAI,MAAM,KAAK,QAAQ;YAAE,YAAY,GAAG,UAAU,CAAC;AACnD,aAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,YAAY,GAAG,YAAY,CAAC;;YACtD,YAAY,GAAG,YAAY,CAAC;KAClC;SAAM,IAAI,OAAO,EAAE;;QAElB,YAAY,GAAG,QAAQ,CAAC;KACzB;;IAGD,IAAI,YAAY,GAAG,WAAW,CAAC;IAE/B,QAAQ,OAAO;AACb,QAAA,KAAK,SAAS;YACZ,YAAY,GAAG,SAAS,CAAC;YACzB,MAAM;AACR,QAAA,KAAK,QAAQ;YACX,YAAY,GAAG,aAAa,CAAC;YAC7B,MAAM;AACR,QAAA,KAAK,SAAS;YACZ,YAAY,GAAG,QAAQ,CAAC;YACxB,MAAM;AACR,QAAA,KAAK,WAAW,CAAC;AACjB,QAAA,KAAK,UAAU,CAAC;AAChB,QAAA,KAAK,OAAO,CAAC;AACb,QAAA,KAAK,MAAM;YACT,YAAY,GAAG,OAAO,CAAC;YACvB,MAAM;KACT;IAED,OAAO;AACL,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,OAAO,EAAE,YAAY;KACtB,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,iBAAiB,GAAG,CAAC,IAAa,KAAY;IACzD,QAAQ,IAAI;AACV,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,aAAa,CAAC;AACvB,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,gBAAgB,CAAC;AAC1B,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,cAAc,CAAC;AACxB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,aAAa,CAAC;AACvB,QAAA,KAAK,KAAK;AACR,YAAA,OAAO,WAAW,CAAC;AACrB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,eAAe,CAAC;AACzB,QAAA,KAAK,MAAM,CAAC;AACZ,QAAA,KAAK,gBAAgB,CAAC;AACtB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,iBAAiB,CAAC;AAC3B,QAAA,KAAK,MAAM,CAAC;AACZ,QAAA;AACE,YAAA,OAAO,YAAY,CAAC;KACvB;AACH,EAAE;AAEF;;AAEG;AACU,MAAA,kBAAkB,GAAG,CAAC,OAAgB,KAAY;IAC7D,QAAQ,OAAO;AACb,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,SAAS,CAAC;AACnB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,OAAO,CAAC;AACjB,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,SAAS,CAAC;AACnB,QAAA,KAAK,MAAM,CAAC;AACZ,QAAA,KAAK,SAAS,CAAC;AACf,QAAA;AACE,YAAA,OAAO,MAAM,CAAC;KACjB;AACH,EAAE;AAEF;;AAEG;AACU,MAAA,YAAY,GAAG,CAAC,KAA8B,KAAY;AACrE,IAAA,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ;AAAE,QAAA,OAAO,QAAQ,CAAC;IACrD,IAAI,KAAK,CAAC,UAAU;AAAE,QAAA,OAAO,UAAU,CAAC;IACxC,IAAI,KAAK,CAAC,UAAU;AAAE,QAAA,OAAO,UAAU,CAAC;AACxC,IAAA,OAAO,SAAS,CAAC;AACnB,EAAE;AAEF;;AAEG;AACU,MAAA,gBAAgB,GAAG,CAAC,KAA8B,KAAY;;IAEzE,IAAI,KAAK,CAAC,YAAY;AAAE,QAAA,OAAO,iBAAiB,CAAC;IACjD,IAAI,KAAK,CAAC,WAAW;AAAE,QAAA,OAAO,cAAc,CAAC;AAC7C,IAAA,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;AAAE,QAAA,OAAO,oBAAoB,CAAC;;IAGhE,IAAI,KAAK,CAAC,SAAS;AAAE,QAAA,OAAO,cAAc,CAAC;IAC3C,IAAI,KAAK,CAAC,OAAO;AAAE,QAAA,OAAO,iBAAiB,CAAC;;AAG5C,IAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;QAClB,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;AAC5D,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;AAAE,YAAA,OAAO,eAAe,CAAC;AAC1F,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;AAAE,YAAA,OAAO,oBAAoB,CAAC;AAChG,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;AAAE,YAAA,OAAO,gBAAgB,CAAC;AAC3F,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;AAAE,YAAA,OAAO,cAAc,CAAC;KAC1F;AAED,IAAA,OAAO,iBAAiB,CAAC;AAC3B,EAAE;AAEF;;AAEG;AACU,MAAA,iBAAiB,GAAG,CAAC,KAA8B,KAAY;AAC1E,IAAA,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO;AAAE,QAAA,OAAO,cAAc,CAAC;AACrD,IAAA,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO;AAAE,QAAA,OAAO,MAAM,CAAC;AAC7C,IAAA,OAAO,aAAa,CAAC;AACvB,EAAE;AAEF;;AAEG;AACU,MAAA,0BAA0B,GAAG,CAAC,KAA8B,KAAc;AACrF,IAAA,MAAM,QAAQ,GAAa,CAAC,oBAAoB,CAAC,CAAC;IAElD,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE;AACnD,QAAA,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACzC;AAED,IAAA,IAAI,KAAK,CAAC,SAAS,EAAE;AACnB,QAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC7B;AAED,IAAA,IAAI,KAAK,CAAC,IAAI,EAAE;AACd,QAAA,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAChC;AAED,IAAA,OAAO,QAAQ,CAAC;AAClB,EAAE;AAEF;;AAEG;MACU,kBAAkB,GAAG,CAChC,aAAqB,EACrB,KAA8B,KAClB;AACZ,IAAA,MAAM,QAAQ,GAAa,CAAC,gBAAgB,CAAC,CAAC;;AAG9C,IAAA,QAAQ,aAAa,CAAC,WAAW,EAAE;AACjC,QAAA,KAAK,QAAQ;AACX,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;AAAE,gBAAA,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9D,IAAI,KAAK,CAAC,OAAO;AAAE,gBAAA,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACrD,MAAM;AACR,QAAA,KAAK,WAAW,CAAC;AACjB,QAAA,KAAK,UAAU;AACb,YAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC1C,YAAA,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO;AAAE,gBAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,MAAM;AACR,QAAA,KAAK,QAAQ;AACX,YAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACzC,MAAM;AACR,QAAA,KAAK,UAAU,CAAC;AAChB,QAAA,KAAK,OAAO;AACV,YAAA,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;YAC9C,MAAM;AACR,QAAA,KAAK,OAAO;AACV,YAAA,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;YACnD,MAAM;AACR,QAAA,KAAK,MAAM;AACT,YAAA,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;YAC3D,MAAM;KACT;AAED,IAAA,OAAO,QAAQ,CAAC;AAClB,EAAE;AAEF;;AAEG;MACU,yBAAyB,GAAG,CACvC,aAAqB,EACrB,KAA8B,KAM5B;IACF,OAAO;QACL,WAAW,EAAE,CAAG,EAAA,aAAa,CAAY,UAAA,CAAA;AACzC,QAAA,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC;AACtC,QAAA,aAAa,EAAE,0BAA0B,CAAC,KAAK,CAAC;AAChD,QAAA,KAAK,EAAE,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC;KAChD,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,oBAAoB,GAAG,CAAC,KAA8B,KAAY;;IAE7E,IAAI,KAAK,CAAC,YAAY;AAAE,QAAA,OAAO,YAAY,CAAC;IAC5C,IAAI,KAAK,CAAC,WAAW;AAAE,QAAA,OAAO,WAAW,CAAC;AAC1C,IAAA,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;AAAE,QAAA,OAAO,YAAY,CAAC;;AAGxD,IAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;QAClB,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;;AAG5D,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACjE,YAAA,OAAO,MAAM,CAAC;SACf;;AAGD,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC/F,YAAA,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAClE,YAAA,OAAO,MAAM,CAAC;SACf;;QAGD,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACnG,YAAA,OAAO,aAAa,CAAC;SACtB;;QAGD,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC5G,YAAA,OAAO,MAAM,CAAC;SACf;KACF;IAED,OAAO,OAAO,CAAC;AACjB,EAAE;AAEF;;AAEG;AACU,MAAA,yBAAyB,GAAG,CAAC,KAA8B,KAAY;;AAElF,IAAA,IAAI,KAAK,CAAC,YAAY,EAAE;QACtB,IAAI,KAAK,CAAC,UAAU;AAAE,YAAA,OAAO,UAAU,CAAC;AACxC,QAAA,OAAO,YAAY,CAAC;KACrB;AAED,IAAA,IAAI,KAAK,CAAC,WAAW,EAAE;QACrB,IAAI,KAAK,CAAC,UAAU;AAAE,YAAA,OAAO,oBAAoB,CAAC;AAClD,QAAA,OAAO,WAAW,CAAC;KACpB;AAED,IAAA,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;QAClC,IAAI,KAAK,CAAC,UAAU;AAAE,YAAA,OAAO,UAAU,CAAC;AACxC,QAAA,OAAO,WAAW,CAAC;KACpB;;AAGD,IAAA,OAAO,QAAQ,CAAC;AAClB,EAAE;AAEF;;AAEG;AACU,MAAA,yBAAyB,GAAG,CAAC,MAAgB,KAAY;IACpE,OAAO,MAAM,GAAG,UAAU,GAAG,cAAc,CAAC;AAC9C,EAAE;AAEF;;AAEG;AACI,MAAM,kBAAkB,GAAG,MAAa;AAC7C,IAAA,OAAO,YAAY,CAAC;AACtB,EAAE;AAEF;;AAEG;AACU,MAAA,wBAAwB,GAAG,CAAC,OAAgB,KAAY;IACnE,OAAO,OAAO,KAAK,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;AAC1D,EAAE;AAEF;;AAEG;AACI,MAAM,iBAAiB,GAAG,MAAa;AAC5C,IAAA,OAAO,kBAAkB,CAAC;AAC5B,EAAE;AAEF;;AAEG;AACU,MAAA,sBAAsB,GAAG,CAAC,IAAa,KAAY;IAC9D,OAAO,IAAI,IAAI,eAAe,CAAC;AACjC,EAAE;AAEF;;AAEG;AACI,MAAM,kBAAkB,GAAG,MAAa;AAC7C,IAAA,OAAO,SAAS,CAAC;AACnB,EAAE;AAEF;;AAEG;AACI,MAAM,uBAAuB,GAAG,MAAa;AAClD,IAAA,OAAO,SAAS,CAAC;AACnB,EAAE;AAEF;;AAEG;AACI,MAAM,oBAAoB,GAAG,MAAa;AAC/C,IAAA,OAAO,SAAS,CAAC;AACnB,EAAE;AAEF;;AAEG;AACI,MAAM,wBAAwB,GAAG,MAAa;AACnD,IAAA,OAAO,YAAY,CAAC;AACtB,EAAE;AAEF;;AAEG;AACU,MAAA,oBAAoB,GAAG,CAAC,SAAmB,KAAY;IAClE,OAAO,SAAS,KAAK,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;AAC9D,EAAE;AAEF;;AAEG;MACU,gBAAgB,GAAG,CAAC,IAAa,EAAE,QAAkB,KAAY;AAC5E,IAAA,IAAI,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,UAAU,CAAC;IAChD,IAAI,IAAI,KAAK,GAAG;AAAE,QAAA,OAAO,QAAQ,CAAC;AAClC,IAAA,IAAI,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC;AAAE,QAAA,OAAO,UAAU,CAAC;IAClD,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAAE,QAAA,OAAO,QAAQ,CAAC;AAC3E,IAAA,OAAO,YAAY,CAAC;AACtB,EAAE;AAEF;;AAEG;AACU,MAAA,oBAAoB,GAAG,CAAC,WAAqB,KAAY;IACpE,OAAO,WAAW,KAAK,SAAS,GAAG,iBAAiB,GAAG,QAAQ,CAAC;AAClE,EAAE;AAEF;;AAEG;AACU,MAAA,sBAAsB,GAAG,CAAC,UAAoB,KAAY;IACrE,OAAO,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;AAC9C,EAAE;AAEF;;AAEG;AACI,MAAM,gBAAgB,GAAG,MAAa;AAC3C,IAAA,OAAO,MAAM,CAAC;AAChB,EAAE;AAEF;;AAEG;AACI,MAAM,oBAAoB,GAAG,MAAa;AAC/C,IAAA,OAAO,UAAU,CAAC;AACpB,EAAE;AAEF;;AAEG;AACU,MAAA,oBAAoB,GAAG,CAAC,OAAgB,KAAY;IAC/D,MAAM,KAAK,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC3C,IAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;AAAE,QAAA,OAAO,OAAO,CAAC;AAC5C,IAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AAAE,QAAA,OAAO,SAAS,CAAC;AAChD,IAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AAAE,QAAA,OAAO,SAAS,CAAC;AAChD,IAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,OAAO,CAAC;AACtE,IAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AAAE,QAAA,OAAO,SAAS,CAAC;AAChD,IAAA,OAAO,MAAM,CAAC;AAChB,EAAE;AAEF;;AAEG;AACI,MAAM,uBAAuB,GAAG,MAAa;AAClD,IAAA,OAAO,kBAAkB,CAAC;AAC5B,EAAE;AAEF;;;AAGG;AACU,MAAA,aAAa,GAAG,CAAC,aAAqB,KAAY;AAC7D,IAAA,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;;AAGzC,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,QAAA,OAAO,QAAQ,CAAC;KACjB;AACD,IAAA,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACrF,QAAA,OAAO,OAAO,CAAC;KAChB;AACD,IAAA,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1E,QAAA,OAAO,YAAY,CAAC;KACrB;AACD,IAAA,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClE,QAAA,OAAO,cAAc,CAAC;KACvB;AACD,IAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACtE,QAAA,OAAO,UAAU,CAAC;KACnB;AACD,IAAA,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC5D,QAAA,OAAO,SAAS,CAAC;KAClB;AACD,IAAA,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACrD,QAAA,OAAO,QAAQ,CAAC;KACjB;AAED,IAAA,OAAO,cAAc,CAAC;AACxB;;ACjbA,MAAM,eAAe,GAAGA,mBAAa,CAAkC,SAAS,CAAC,CAAC;AAE3E,MAAM,kBAAkB,GAAG,MAAK;AACrC,IAAA,MAAM,OAAO,GAAGC,gBAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;KAC9E;AACD,IAAA,OAAO,OAAO,CAAC;AACjB,EAAE;MAMW,gBAAgB,GAAoC,CAAC,EAAE,QAAQ,EAAE,KAAI;IAChF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGC,cAAQ,CAAgB,EAAE,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,YAAqB,EAAE,WAAqB,KAAI;;AAEnF,QAAA,MAAM,SAAS,GAAG,WAAW,KAAK,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACpF,eAAe,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;AAChC,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,YAAY,EAAE,YAAY,IAAI,OAAO;AACrC,gBAAA,WAAW,EAAE,SAAS;AACvB,aAAA,CAAC,CAAC,CAAC;AACN,KAAC,CAAC;IAEF,MAAM,aAAa,GAAG,MAAK;AACzB,QAAA,eAAe,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,KAAC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAK;QACxB,eAAe,CAAC,EAAE,CAAC,CAAC;AACtB,KAAC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAoB;AACvC,QAAA,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;QACvF,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;QAEvF,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;AACzE,YAAA,gBAAgB,EAAE,aAAa;AAC/B,YAAA,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;YACxF,gBAAgB,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;YACtF,KAAK,EAAE,aAAa,CAAC,MAAM;SAC5B,CAAC;AACJ,KAAC,CAAC;AAEF,IAAA,QACEC,cAAC,CAAA,eAAe,CAAC,QAAQ,EAAA,EACvB,KAAK,EAAE;YACL,YAAY;YACZ,UAAU;YACV,aAAa;YACb,YAAY;YACZ,YAAY;SACb,EAEA,QAAA,EAAA,QAAQ,EACgB,CAAA,EAC3B;AACJ;;AC3EA;AACO,MAAM,MAAM,GAA0B,CAAC,EAC5C,YAAY,EACZ,UAAU,EAAE,WAAW,EACvB,MAAM,EACN,OAAO,EACP,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,EACP,UAAU,EACV,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,IAAI,SAAS,CAAC;IACd,IAAI,UAAU,EAAE,aAAa,CAAC;AAC9B,IAAA,IAAI;AACF,QAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAC7C,QAAA,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;AAC3C,QAAA,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;AACxC,QAAA,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;KAC/C;AAAC,IAAA,MAAM;QACN,SAAS,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACtH,QAAA,UAAU,GAAG,MAAK,GAAG,CAAC;AACtB,QAAA,aAAa,GAAG,MAAK,GAAG,CAAC;KAC1B;;AAGD,IAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,IAAc,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACzF,IAAA,MAAM,UAAU,GAAG,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC;AACjD,IAAA,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC;AAC7C,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;;IAGnF,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,UAAU,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;;;AAIvE,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,CAAC,MAAK;;;AAG1C,QAAA,IAAI,WAAW,CAAC;AAChB,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,WAAW,GAAG,QAAQ,CAAC;SACxB;AAAM,aAAA,IAAI,UAAU,KAAK,UAAU,EAAE;YACpC,WAAW,GAAG,eAAe,CAAC;SAC/B;aAAM;AACL,YAAA,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACxE;;AAGD,QAAA,IAAI,SAAS,CAAC,gBAAgB,EAAE;AAC9B,YAAA,OAAO,GAAG,SAAS,CAAC,gBAAgB,CAAI,CAAA,EAAA,WAAW,EAAE,CAAC;SACvD;AAAM,aAAA,IAAI,SAAS,CAAC,eAAe,EAAE;AACpC,YAAA,OAAO,GAAG,SAAS,CAAC,eAAe,CAAI,CAAA,EAAA,WAAW,EAAE,CAAC;SACtD;;AAGD,QAAA,OAAO,WAAW,CAAC;KACpB,GAAG,CAAC;;AAGL,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACnB,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AAC3C,QAAA,OAAO,MAAM,aAAa,EAAE,CAAC;KAC9B,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;AAE/C,IAAA,MAAM,WAAW,GAAG,aAAa,KAAK,aAAa,GAAG,uBAAuB,GAAG,MAAM,CAAC;IACvF,MAAM,aAAa,GAAG,MAAM,KAAK,cAAc,IAAI,MAAM,KAAK,aAAa,CAAC;AAE5E,IAAA,QACEA,cAAA,CAACC,gBAAQ,EAAA,EAAA,GACH,KAAK,EACT,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EAAA,oBAAA,EACF,aAAa,EAAA,oBAAA,EACb,SAAS,CAAC,QAAQ,GAAG,CAAA,EAAG,SAAS,CAAC,QAAQ,CAAA,GAAA,EAAM,aAAa,CAAE,CAAA,GAAG,aAAa,EAAA,aAAA,EACtF,SAAS,CAAC,eAAe,IAAI,MAAM,EAClC,cAAA,EAAA,SAAS,CAAC,gBAAgB,IAAI,MAAM,sBAChC,SAAS,CAAC,KAAK,EAAA,oBAAA,EACb,IAAI,EAAA,qBAAA,EACH,aAAa,EAAA,aAAA,EACrB,MAAM,IAAI,SAAS,EACd,kBAAA,EAAA,WAAW,yBACR,aAAa,EAAA,QAAA,EAEjC,QAAQ,EAAA,CACA,EACX;AACJ;;AC1FA;AACO,MAAM,IAAI,GAAwB,CAAC,EACxC,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,IAAI,SAAS,CAAC;AACd,IAAA,IAAI;AACF,QAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAC7C,QAAA,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;KAC5C;AAAC,IAAA,MAAM;QACN,SAAS,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACvH;;IAGD,MAAM,eAAe,GAAG,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,eAAe,GAAG,OAAO,KAAK,OAAO,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;AACrF,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,MAAM,CAAC;;IAG7C,MAAM,IAAI,GAAG,YAAY,IAAI,QAAQ,eAAe,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;IAC1E,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,WAAW,EAAE,CAAA,EAAG,eAAe,CAAA,UAAA,EAAa,eAAe,CAAU,QAAA,CAAA;AACrE,QAAA,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC;QAC/B,KAAK,EAAE,CAAC,CAAG,EAAA,eAAe,IAAI,eAAe,CAAA,CAAE,EAAE,kBAAkB,CAAC;QACpE,SAAS;AACT,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,MAAM,IAAI,SAAS;AAC5B,SAAA;KACF,CAAC;AAEF,IAAA,QACED,cAAA,CAAA,GAAA,EAAA,EAAA,GACM,KAAK,EACT,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,UAAU,EACE,oBAAA,EAAA,aAAa,EACb,oBAAA,EAAA,SAAS,CAAC,QAAQ,GAAG,CAAG,EAAA,SAAS,CAAC,QAAQ,MAAM,aAAa,CAAA,CAAE,GAAG,aAAa,EAAA,aAAA,EACtF,SAAS,CAAC,eAAe,IAAI,MAAM,EAAA,cAAA,EAClC,SAAS,CAAC,gBAAgB,IAAI,MAAM,sBAChC,SAAS,CAAC,KAAK,EAAA,oBAAA,EACb,IAAI,EACN,kBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA,cAAA,EAC5B,eAAe,EAChB,aAAA,EAAA,MAAM,IAAI,SAAS,kBAClB,eAAe,EAAA,QAAA,EAE5B,QAAQ,EAAA,CACP,EACJ;AACJ;;AC9DA;AACa,MAAA,QAAQ,GAA4B,CAAC,EAChD,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,QAAQ,EACR,WAAW,EACX,OAAO,EACP,GAAG,KAAK,EACT,KAAI;;IAEH,MAAM,eAAe,GAAG,OAAO,IAAI,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,eAAe,GAAG,OAAO,KAAK,OAAO,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;;IAGrF,MAAM,IAAI,GAAG,YAAY,IAAI,aAAa,eAAe,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;IAC/E,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,WAAW,EAAE,CAAA,EAAG,eAAe,CAAA,eAAA,EAAkB,eAAe,CAAU,QAAA,CAAA;AAC1E,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAG,EAAA,eAAe,IAAI,eAAe,CAAA,CAAE,EAAE,kBAAkB,CAAC;KACrE,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,UAAU,CAAC;AAEvD,IAAA,QACEA,cAAA,CAAA,MAAA,EAAA,EAAA,GACM,KAAK,EACT,OAAO,EAAE,OAAO,EAAA,oBAAA,EACI,mBAAmB,EAAA,oBAAA,EACnB,IAAI,EAAA,kBAAA,EACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC5B,cAAA,EAAA,eAAe,EACf,cAAA,EAAA,eAAe,EACV,mBAAA,EAAA,WAAW,EAE7B,QAAA,EAAA,QAAQ,EACJ,CAAA,EACP;AACJ;;AC7CA;AACa,MAAA,IAAI,GAAwB,CAAC,EACxC,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;IAEH,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,CAAC;AAE3D,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACnB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AACrC,QAAA,OAAO,MAAM,aAAa,EAAE,CAAC;AAC/B,KAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;;AAGhC,IAAA,IAAI,SAAS,CAAC;AACd,IAAA,IAAI;AACF,QAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAC7C,QAAA,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;KAC5C;AAAC,IAAA,MAAM;QACN,SAAS,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACvH;;AAGD,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,MAAM,CAAC;;AAG1C,IAAA,MAAM,IAAI,GAAG,YAAY,IAAI,CAAQ,KAAA,EAAA,eAAe,EAAE,CAAC;;AAGvD,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,MAAM,CAAC;IAE7C,QACEA,eAACE,cAAM,EAAA,EAAA,GACD,KAAK,EACW,oBAAA,EAAA,aAAa,EACb,oBAAA,EAAA,SAAS,CAAC,QAAQ,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAM,GAAA,EAAA,aAAa,CAAE,CAAA,GAAG,aAAa,EACtF,aAAA,EAAA,SAAS,CAAC,eAAe,IAAI,MAAM,EAClC,cAAA,EAAA,SAAS,CAAC,gBAAgB,IAAI,MAAM,sBAChC,SAAS,CAAC,KAAK,EAAA,oBAAA,EACb,IAAI,EAAA,cAAA,EACV,eAAe,EAE5B,QAAA,EAAA,QAAQ,EACF,CAAA,EACT;AACJ;;AC5CA;AACO,MAAM,QAAQ,GAA4B,CAAC,EAChD,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,EAAE,EACF,GAAG,KAAK,EACT,KAAI;;IAEH,MAAM,eAAe,GAAG,OAAO,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,OAAO,KAAK,QAAQ,GAAG,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,CAAC;;IAGhG,MAAM,IAAI,GAAG,YAAY,IAAI,YAAY,eAAe,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;IAC9E,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,WAAW,EAAE,CAAA,EAAG,eAAe,CAAA,cAAA,EAAiB,eAAe,CAAU,QAAA,CAAA;AACzE,QAAA,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC;QACnC,KAAK,EAAE,CAAC,CAAG,EAAA,eAAe,IAAI,eAAe,CAAA,CAAE,EAAE,kBAAkB,CAAC;KACrE,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,UAAU,CAAC;AAEvD,IAAA,QACEF,cAAC,CAAAG,kBAAU,EACL,EAAA,GAAA,KAAK,EACT,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAAA,oBAAA,EACE,mBAAmB,EAAA,oBAAA,EACnB,IAAI,EACN,kBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC5B,cAAA,EAAA,eAAe,kBACf,eAAe,EAAA,QAAA,EAE5B,QAAQ,EAAA,CACE,EACb;AACJ;;ACrCA;;;;;;;;;;;;;;AAcG;AACU,MAAA,SAAS,GAAG,KAAK,CAAC,UAAU,CAAmC,CAAC,EAC3E,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,IAAI,GAAG,MAAM,EACb,SAAS,EACT,UAAU,EACV,GAAG,KAAK,EACT,EAAE,GAAG,KAAI;;IAER,MAAM,eAAe,GAAG,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC3D,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,gBAAgB,EAAE,CAAC;IACtD,MAAM,kBAAkB,GAAG,iBAAiB,IAAI,sBAAsB,CAAC,UAAU,CAAC,CAAC;;IAGnF,MAAM,IAAI,GAAG,YAAY,IAAI,aAAa,eAAe,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;IAC/E,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,GAAG,yBAAyB,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,CAAC;AACpF,QAAA,WAAW,EAAE,CAAA,EAAG,eAAe,CAAA,KAAA,EAAQ,eAAe,CAAU,QAAA,CAAA;AAChE,QAAA,KAAK,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,kBAAkB,CAAC;KACxD,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,WAAW,CAAC;;AAGxD,IAAA,QACEH,cAAC,CAAAI,mBAAW,OACN,KAAK,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EAAA,oBAAA,EACF,mBAAmB,EACnB,oBAAA,EAAA,IAAI,sBACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA,cAAA,EAC5B,eAAe,EACf,cAAA,EAAA,eAAe,6BACJ,kBAAkB,EAAA,CAC3C,EACF;AACJ,CAAC,EAAE;AAEH,SAAS,CAAC,WAAW,GAAG,WAAW;;AC7DnC;;;;;;;;;;;;;;AAcG;AACI,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAqC,CAAC,EAC5E,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,GAAG,KAAK,EACT,EAAE,GAAG,KAAI;;AAER,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,oBAAoB,EAAE,CAAC;AAC1D,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,gBAAgB,EAAE,CAAC;AACtD,IAAA,MAAM,mBAAmB,GAAG,WAAW,IAAI,wBAAwB,EAAE,CAAC;;IAGtE,MAAM,IAAI,GAAG,YAAY,IAAI,YAAY,eAAe,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;IAC9E,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,GAAG,yBAAyB,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,CAAC;AAC7E,QAAA,WAAW,EAAE,CAAG,EAAA,eAAe,iBAAiB,eAAe,CAAA,YAAA,EAAe,mBAAmB,CAAE,CAAA;AACnG,QAAA,KAAK,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;KAC7D,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,UAAU,CAAC;;AAGvD,IAAA,QACEJ,cAAC,CAAAK,kBAAU,EACL,EAAA,GAAA,KAAK,EACT,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EAAA,oBAAA,EACF,mBAAmB,EAAA,oBAAA,EACnB,IAAI,EACN,kBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC5B,cAAA,EAAA,eAAe,kBACf,eAAe,EAAA,mBAAA,EACV,mBAAmB,EAAA,CACtC,EACF;AACJ,CAAC,EAAE;AAEH,QAAQ,CAAC,WAAW,GAAG,UAAU;;AC1DjC;;;;;;;;;;;;;;;;;AAiBG;AACU,MAAA,MAAM,GAA0B,CAAC,EAC5C,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,aAAa,EACb,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,kBAAkB,EAAE,CAAC;AACxD,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,gBAAgB,EAAE,CAAC;IACtD,MAAM,qBAAqB,GAAG,aAAa,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAC;;IAGjF,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,eAAe,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,UAAU,IAAI;QAC7B,GAAG,yBAAyB,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AAC7D,QAAA,WAAW,EAAE,CAAG,EAAA,eAAe,gBAAgB,qBAAqB,CAAA,eAAA,EAAkB,eAAe,CAAE,CAAA;AACvG,QAAA,KAAK,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;KAC5D,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,QAAQ,CAAC;;AAGrD,IAAA,QACEL,cAAA,CAACM,gBAAQ,EAAA,EAAA,GACH,KAAK,EACT,OAAO,EAAE,OAAO,EAAA,oBAAA,EACI,mBAAmB,EAAA,oBAAA,EACnB,IAAI,EACN,kBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA,cAAA,EAC5B,eAAe,EAAA,cAAA,EACf,eAAe,EAAA,qBAAA,EACR,qBAAqB,EAAA,QAAA,EAEzC,QAAQ,EAAA,CACA,EACX;AACJ;;AC5DA;;;;;;;;;;;;;;;;AAgBG;AACI,MAAM,KAAK,GAAyB,CAAC,EAC1C,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,iBAAiB,EAAE,CAAC;AACvD,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,gBAAgB,EAAE,CAAC;IACtD,MAAM,oBAAoB,GAAG,YAAY,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;;IAG1E,MAAM,IAAI,GAAG,YAAY,IAAI,SAAS,eAAe,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;IAC3E,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,GAAG,yBAAyB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,CAAC;AAChF,QAAA,WAAW,EAAE,CAAG,EAAA,eAAe,oBAAoB,oBAAoB,CAAA,WAAA,EAAc,eAAe,CAAE,CAAA;AACtG,QAAA,KAAK,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,CAAC;KAC5D,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,OAAO,CAAC;;AAGpD,IAAA,QACEN,cAAC,CAAAO,eAAO,EACF,EAAA,GAAA,KAAK,EACT,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACF,oBAAA,EAAA,mBAAmB,EACnB,oBAAA,EAAA,IAAI,sBACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA,cAAA,EAC5B,eAAe,EAAA,cAAA,EACf,eAAe,EACT,oBAAA,EAAA,oBAAoB,YAEvC,QAAQ,EAAA,CACD,EACV;AACJ;;AC/DA;;;;;;;;;;;;;;;AAeG;AACI,MAAM,MAAM,GAA0B,CAAC,EAC5C,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,kBAAkB,EAAE,CAAC;AACxD,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,oBAAoB,EAAE,CAAC;AAC1D,IAAA,MAAM,oBAAoB,GAAG,YAAY,IAAI,uBAAuB,EAAE,CAAC;;IAGvE,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,eAAe,CAAA,CAAA,EAAI,eAAe,CAAA,CAAE,CAAC;IAC5E,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,GAAG,yBAAyB,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,CAAC;AAC3E,QAAA,WAAW,EAAE,CAAG,EAAA,eAAe,wBAAwB,oBAAoB,CAAA,IAAA,EAAO,eAAe,CAAE,CAAA;AACnG,QAAA,KAAK,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;KAClE,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,QAAQ,CAAC;;AAGrD,IAAA,QACEP,cAAA,CAACQ,gBAAQ,EAAA,EAAA,GACH,KAAK,EACT,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EAAA,oBAAA,EACF,mBAAmB,EACnB,oBAAA,EAAA,IAAI,EACN,kBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC5B,cAAA,EAAA,eAAe,EACf,cAAA,EAAA,eAAe,wBACT,oBAAoB,EAAA,QAAA,EAEvC,QAAQ,EAAA,CACA,EACX;AACJ;;ACpEA;AACa,MAAA,IAAI,GAAwB,CAAC,EACxC,YAAY,EACZ,YAAY,EACZ,UAAU,EAAE,WAAW,EACvB,OAAO,EACP,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,IAAI,SAAS,CAAC;IACd,IAAI,UAAU,EAAE,aAAa,CAAC;AAC9B,IAAA,IAAI;AACF,QAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAC7C,QAAA,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;AAC3C,QAAA,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;AACxC,QAAA,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC;KAC/C;AAAC,IAAA,MAAM;QACN,SAAS,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACtH,QAAA,UAAU,GAAG,MAAK,GAAG,CAAC;AACtB,QAAA,aAAa,GAAG,MAAK,GAAG,CAAC;KAC1B;;AAGD,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,gBAAgB,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpH,IAAA,MAAM,mBAAmB,GAAG,WAAW,IAAI,oBAAoB,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrH,IAAA,MAAM,wBAAwB,GAAG,yBAAyB,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;;IAG9H,MAAM,IAAI,GAAG,YAAY,IAAI,QAAQ,eAAe,CAAA,CAAA,EAAI,mBAAmB,CAAA,CAAE,CAAC;;;AAI9E,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,CAAC,MAAK;;AAE1C,QAAA,IAAI,SAAS,CAAC,gBAAgB,EAAE;AAC9B,YAAA,OAAO,CAAG,EAAA,SAAS,CAAC,gBAAgB,OAAO,CAAC;SAC7C;AAAM,aAAA,IAAI,SAAS,CAAC,eAAe,EAAE;AACpC,YAAA,OAAO,CAAG,EAAA,SAAS,CAAC,eAAe,OAAO,CAAC;SAC5C;;AAGD,QAAA,OAAO,MAAM,CAAC;KACf,GAAG,CAAC;;AAGL,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACnB,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACzC,QAAA,OAAO,MAAM,aAAa,EAAE,CAAC;KAC9B,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;AAE/C,IAAA,QACER,cAAC,CAAAS,cAAM,EACD,EAAA,GAAA,KAAK,EACT,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EAAA,oBAAA,EACF,aAAa,EACb,oBAAA,EAAA,SAAS,CAAC,QAAQ,GAAG,CAAG,EAAA,SAAS,CAAC,QAAQ,CAAA,GAAA,EAAM,aAAa,CAAA,CAAE,GAAG,aAAa,EAAA,aAAA,EACtF,SAAS,CAAC,eAAe,IAAI,MAAM,kBAClC,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAChC,kBAAA,EAAA,SAAS,CAAC,KAAK,wBACb,IAAI,EAAA,cAAA,EACV,eAAe,EAAA,mBAAA,EACV,mBAAmB,EACd,wBAAA,EAAA,wBAAwB,YAE/C,QAAQ,EAAA,CACF,EACT;AACJ;;AClFA;MACa,WAAW,GAA+B,CAAC,EACtD,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,UAAU,EACV,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,MAAM,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrC,MAAM,kBAAkB,GAAG,UAAU,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACvE,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,uBAAuB,EAAE,CAAC;;IAG7D,MAAM,IAAI,GAAG,YAAY,IAAI,gBAAgB,eAAe,CAAA,CAAA,EAAI,kBAAkB,CAAA,CAAE,CAAC;IACrF,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,WAAW,EAAE,CAAA,EAAG,eAAe,CAAA,SAAA,EAAY,kBAAkB,CAAS,OAAA,CAAA;AACtE,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAG,EAAA,eAAe,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;KACpE,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,UAAU,CAAC;IAEvD,QACET,4BACM,KAAK,EAAA,oBAAA,EACW,mBAAmB,EACnB,oBAAA,EAAA,IAAI,EACN,kBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAC5B,eAAe,EAAA,kBAAA,EACX,kBAAkB,EAEnC,QAAA,EAAA,QAAQ,EACJ,CAAA,EACP;AACJ;;ACzCA;MACa,KAAK,GAAyB,CAAC,EAC1C,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,MAAM,eAAe,GAAG,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IAC7E,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,IACpF,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,iBAAiB;AACvH,QAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,IACpF,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa;AACrH,YAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,IACpF,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,GAAG,eAAe,GAAG,WAAW,CAAC,CAAC;;AAGhH,IAAA,MAAM,IAAI,GAAG,YAAY,IAAI,CAAsB,mBAAA,EAAA,eAAe,EAAE,CAAC;IACrE,MAAM,QAAQ,GAAG,UAAU,IAAI;QAC7B,WAAW,EAAE,CAA2B,wBAAA,EAAA,eAAe,CAAE,CAAA;AACzD,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,CAAC,CAAS,MAAA,EAAA,eAAe,EAAE,EAAE,mBAAmB,EAAE,aAAa,CAAC;KACxE,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,cAAc,CAAC;IAE3D,QACEA,eAACU,gBAAO,EAAA,EAAA,GACF,KAAK,EACW,oBAAA,EAAA,mBAAmB,EACnB,oBAAA,EAAA,IAAI,EACN,kBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA,cAAA,EAC5B,eAAe,EAE5B,QAAA,EAAA,QAAQ,EACD,CAAA,EACV;AACJ;;ACzCA;MACa,EAAE,GAAsB,CAAC,EACpC,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;IAEH,MAAM,eAAe,GAAG,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IAC7E,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,aAAa;AACzF,QAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,iBAAiB;YACjG,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,aAAa,GAAG,WAAW,CAAC,CAAC;;AAGvF,IAAA,MAAM,gBAAgB,GAAG,QAAQ,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ;AACxC,QAAA,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,MAAM;AACzD,YAAA,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM;AAC7C,gBAAA,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,SAAS;AAC1D,gBAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;;IAGtI,MAAM,IAAI,GAAG,YAAY,IAAI,cAAc,eAAe,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAE,CAAC;IACjF,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,WAAW,EAAE,CAAA,EAAG,eAAe,CAAA,YAAA,EAAe,gBAAgB,CAAO,KAAA,CAAA;AACrE,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAS,MAAA,EAAA,eAAe,EAAE,EAAE,mBAAmB,EAAE,aAAa,CAAC;KACxE,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,UAAU,CAAC;IAEvD,QACEV,cAAC,CAAAW,aAAI,EACC,EAAA,GAAA,KAAK,wBACW,mBAAmB,EAAA,oBAAA,EACnB,IAAI,EAAA,kBAAA,EACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA,cAAA,EAC5B,eAAe,EAAA,gBAAA,EACb,gBAAgB,EAE/B,QAAA,EAAA,QAAQ,EACJ,CAAA,EACP;AACJ;;ACjDA;AACa,MAAA,EAAE,GAAsB,CAAC,EACpC,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,GAAG,KAAK,EACT,KAAI;;IAEH,MAAM,eAAe,GAAG,OAAO,KAAK,IAAI,GAAG,iBAAiB;AACzB,QAAA,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,mBAAmB;YAC3E,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,eAAe,GAAG,eAAe,CAAC,CAAC;;IAG9H,MAAM,gBAAgB,GAAG,QAAQ,KAAK,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM;QAC7D,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjD,YAAA,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ;YAC/D,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;;IAGhH,MAAM,IAAI,GAAG,YAAY,IAAI,gBAAgB,eAAe,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAE,CAAC;IACnF,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,WAAW,EAAE,CAAA,EAAG,eAAe,CAAA,KAAA,EAAQ,gBAAgB,CAAO,KAAA,CAAA;AAC9D,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAS,MAAA,EAAA,eAAe,EAAE,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;KAC9E,CAAC;;;IAIF,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,MAAM,YAAY,GAAG,YAAY,CAAC;AAElC,IAAA,QACEX,cAAA,CAACY,aAAI,EAAA,EAAA,GACC,KAAK,EACT,IAAI,EAAE,IAAI,EAAA,oBAAA,EACU,aAAa,EAAA,oBAAA,EACb,YAAY,EACZ,oBAAA,EAAA,IAAI,EACN,kBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA,cAAA,EAC5B,eAAe,EAAA,gBAAA,EACb,gBAAgB,EAAA,QAAA,EAE/B,QAAQ,EAAA,CACJ,EACP;AACJ;;ACpDA;MACa,KAAK,GAAyB,CAAC,EAC1C,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,MAAM,eAAe,GAAG,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IAC7E,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,kBAAkB;AACtE,QAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,oBAAoB;YAC3H,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,gBAAgB,GAAG,mBAAmB,CAAC,CAAC;;AAGjJ,IAAA,MAAM,IAAI,GAAG,YAAY,IAAI,CAAwB,qBAAA,EAAA,eAAe,EAAE,CAAC;IACvE,MAAM,QAAQ,GAAG,UAAU,IAAI;QAC7B,WAAW,EAAE,CAA6B,0BAAA,EAAA,eAAe,CAAE,CAAA;AAC3D,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,CAAC,CAAS,MAAA,EAAA,eAAe,EAAE,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;KAC7E,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,gBAAgB,CAAC;IAE7D,QACEZ,eAACa,gBAAO,EAAA,EAAA,GACF,KAAK,EACW,oBAAA,EAAA,mBAAmB,EACnB,oBAAA,EAAA,IAAI,EACN,kBAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA,cAAA,EAC5B,eAAe,EAE5B,QAAA,EAAA,QAAQ,EACD,CAAA,EACV;AACJ;;ACpCA;AACO,MAAM,EAAE,GAAsB,CAAC,EACpC,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,KAAI;;IAEH,MAAM,eAAe,GAAG,OAAO,KAC7B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;AAC3B,QAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,IACrD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CACnE,CACF,GAAG,YAAY;AAChB,QAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;AAC3B,YAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,IACrD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CACzE,CACF,GAAG,gBAAgB;AACpB,YAAA,UAAU,GAAG,gBAAgB;AAC7B,gBAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;oBAC3B,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,IACrD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACvE,CACF,GAAG,YAAY,GAAG,UAAU,CAC9B,CAAC;IAEF,MAAM,uBAAuB,GAAG,eAAe,KAC7C,WAAW,GAAG,WAAW;AACzB,QAAA,YAAY,GAAG,YAAY;AAC3B,YAAA,UAAU,KAAK,SAAS,GAAG,YAAY;AACvC,gBAAA,QAAQ,CACT,CAAC;IAEF,MAAM,gBAAgB,GAAG,QAAQ,KAC/B,UAAU,GAAG,UAAU;AACvB,QAAA,YAAY,GAAG,UAAU;AACzB,YAAA,SAAS,GAAG,aAAa;AACzB,gBAAA,QAAQ,CACT,CAAC;;IAGF,MAAM,IAAI,GAAG,YAAY,IAAI,aAAa,eAAe,CAAA,CAAA,EAAI,uBAAuB,CAAA,CAAE,CAAC;IACvF,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,WAAW,EAAE,CAAA,EAAG,eAAe,CAAA,MAAA,EAAS,uBAAuB,CAAc,YAAA,CAAA;AAC7E,QAAA,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,uBAAuB,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ;QACtE,KAAK,EAAE,CAAC,CAAS,MAAA,EAAA,eAAe,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,CAAC;AAC3E,QAAA,eAAe,EAAE,uBAAuB;AACxC,QAAA,QAAQ,EAAE,gBAAgB;QAC1B,SAAS,EAAE,SAAS,IAAI,KAAK;KAC9B,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,WAAW,CAAC;AAExD,IAAA,QACEb,cAAC,CAAAc,aAAI,OACC,KAAK,EACT,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACA,oBAAA,EAAA,mBAAmB,wBACnB,IAAI,EAAA,kBAAA,EACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAC5B,eAAe,EAAA,uBAAA,EACN,uBAAuB,EAC9B,gBAAA,EAAA,gBAAgB,YAE/B,QAAQ,EAAA,CACJ,EACP;AACJ;;ACpFA;MACa,IAAI,GAAwB,CAAC,EACxC,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,SAAS,EACT,IAAI,EACJ,UAAU,EACV,GAAG,EACH,SAAS,EACT,MAAM,EACN,KAAK,EACL,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,MAAM,eAAe,GAAG,OAAO,KAC7B,cAAc,EAAE,OAAO,KAAK,4BAA4B,GAAG,SAAS;QACpE,cAAc,EAAE,OAAO,KAAK,sBAAsB,GAAG,SAAS;AAC9D,YAAA,UAAU,GAAG,cAAc;AAC3B,gBAAA,QAAQ,CACT,CAAC;AAEF,IAAA,MAAM,kBAAkB,GAAG,UAAU,KACnC,SAAS,EAAE,OAAO,KAAK,QAAQ,GAAG,QAAQ;AAC1C,QAAA,SAAS,EAAE,EAAE,GAAG,YAAY;AAC5B,YAAA,KAAK,CACN,CAAC;AAEF,IAAA,MAAM,wBAAwB,GAAG,gBAAgB,KAC/C,UAAU,EAAE,OAAO,KAAK,kBAAkB,GAAG,QAAQ;QACrD,UAAU,EAAE,OAAO,KAAK,mBAAmB,GAAG,KAAK;YACnD,UAAU,EAAE,OAAO,KAAK,qBAAqB,GAAG,OAAO;gBACvD,UAAU,EAAE,OAAO,KAAK,mBAAmB,GAAG,SAAS;oBACvD,UAAU,EAAE,OAAO,KAAK,oBAAoB,GAAG,UAAU;AACzD,wBAAA,OAAO,CACR,CAAC;;IAGF,MAAM,IAAI,GAAG,YAAY,IAAI,QAAQ,eAAe,CAAA,CAAA,EAAI,kBAAkB,CAAA,CAAE,CAAC;IAC7E,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,WAAW,EAAE,CAAA,EAAG,eAAe,CAAA,qBAAA,EAAwB,kBAAkB,CAAS,OAAA,CAAA;AAClF,QAAA,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,kBAAkB,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ;QACrE,KAAK,EAAE,CAAC,CAAA,EAAG,eAAe,CAAA,OAAA,CAAS,EAAE,CAAA,EAAG,kBAAkB,CAAA,UAAA,CAAY,EAAE,mBAAmB,CAAC;AAC5F,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,eAAe,EAAE,SAAS,EAAE,OAAO,IAAI,KAAK;KAC7C,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,gBAAgB,CAAC;AAE7D,IAAA,QACEd,cAAA,CAACe,cAAM,EAAA,EAAA,GACD,KAAK,EACT,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,wBACI,mBAAmB,EAAA,oBAAA,EACnB,IAAI,EAAA,kBAAA,EACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC5B,cAAA,EAAA,eAAe,EACX,kBAAA,EAAA,kBAAkB,4BACZ,wBAAwB,EAAA,QAAA,EAE/C,QAAQ,EAAA,CACF,EACT;AACJ;;ACrFA;AACa,MAAA,QAAQ,GAA4B,CAAC,EAChD,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACT,MAAM,EACN,KAAK,EACL,SAAS,EACT,GAAG,KAAK,EACT,KAAI;;IAEH,MAAM,mBAAmB,GAAG,WAAW,KACrC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;SAC1B,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACzC,YAAA,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS;AAClC,YAAA,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,WAAW,CAAC,CACvC,GAAG,QAAQ;AACZ,QAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;AAC3B,YAAA,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxC,GAAG,MAAM;AACV,YAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;iBAC1B,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACxC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACzC,oBAAA,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAC9C,GAAG,cAAc;AAClB,gBAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;qBAC1B,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AACtC,wBAAA,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAC3C,GAAG,OAAO;AACX,oBAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;AAC3B,wBAAA,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CACxC,GAAG,YAAY;AAChB,wBAAA,MAAM,CACP,CAAC;AAEF,IAAA,MAAM,0BAA0B,GAAG,kBAAkB,KACnD,KAAK,EAAE,OAAO,KAAK,YAAY,GAAG,KAAK;QACvC,KAAK,EAAE,OAAO,KAAK,WAAW,GAAG,OAAO;YACxC,KAAK,EAAE,OAAO,KAAK,aAAa,GAAG,QAAQ;gBAC3C,SAAS,EAAE,OAAO,KAAK,kBAAkB,GAAG,KAAK;oBACjD,SAAS,EAAE,OAAO,KAAK,oBAAoB,GAAG,OAAO;wBACrD,SAAS,EAAE,OAAO,KAAK,iBAAiB,GAAG,QAAQ;4BACnD,SAAS,EAAE,OAAO,KAAK,kBAAkB,GAAG,SAAS;gCACrD,SAAS,EAAE,OAAO,KAAK,mBAAmB,GAAG,UAAU;AACvD,oCAAA,MAAM,CACP,CAAC;AAEF,IAAA,MAAM,sBAAsB,GAAG,cAAc,KAC3C,IAAI,EAAE,OAAO,KAAK,QAAQ,GAAG,UAAU;QACvC,IAAI,EAAE,OAAO,KAAK,QAAQ,GAAG,MAAM;YACnC,IAAI,EAAE,OAAO,KAAK,QAAQ,GAAG,MAAM;gBACnC,IAAI,EAAE,OAAO,KAAK,UAAU,GAAG,OAAO;oBACtC,IAAI,EAAE,OAAO,KAAK,aAAa,GAAG,MAAM;wBACxC,IAAI,EAAE,OAAO,KAAK,QAAQ,GAAG,MAAM;AACnC,4BAAA,MAAM,CACP,CAAC;;IAGF,MAAM,IAAI,GAAG,YAAY,IAAI,aAAa,mBAAmB,CAAA,CAAA,EAAI,sBAAsB,CAAA,CAAE,CAAC;IAC1F,MAAM,QAAQ,GAAG,UAAU,IAAI;AAC7B,QAAA,WAAW,EAAE,CAAA,EAAG,mBAAmB,CAAA,gBAAA,EAAmB,sBAAsB,CAAS,OAAA,CAAA;AACrF,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAA,EAAG,mBAAmB,CAAA,KAAA,CAAO,EAAE,CAAA,EAAG,sBAAsB,CAAA,OAAA,CAAS,EAAE,aAAa,CAAC;AACzF,QAAA,WAAW,EAAE,0BAA0B;AACvC,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,MAAM;KACnC,CAAC;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAAY,IAAI,WAAW,CAAC;IAExD,QACEf,eAACgB,kBAAU,EAAA,EAAA,GACL,KAAK,EACT,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACA,oBAAA,EAAA,mBAAmB,wBACnB,IAAI,EAAA,kBAAA,EACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAA,mBAAA,EACvB,mBAAmB,EAAA,0BAAA,EACZ,0BAA0B,EAAA,sBAAA,EAC9B,sBAAsB,EAE3C,QAAA,EAAA,QAAQ,EACE,CAAA,EACb;AACJ;;ACrGA;AACA;AACa,MAAA,KAAK,GAAG,KAAK,CAAC,UAAU,CAAkB,CAAC,EACtD,YAAY,EACZ,YAAY,EACZ,UAAU,EAAE,WAAW,EACvB,OAAO,EACP,eAAe,EACf,WAAW,EACX,QAAQ,EACR,OAAO,EACP,MAAM,EACN,GAAG,KAAK,EACT,EAAE,GAAG,KAAI;;IAER,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,CAAC;AAE3D,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACnB,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACrC,QAAA,OAAO,MAAM,aAAa,EAAE,CAAC;AAC/B,KAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;;AAGhC,IAAA,IAAI,SAAS,CAAC;AACd,IAAA,IAAI;AACF,QAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAC7C,QAAA,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;KAC5C;AAAC,IAAA,MAAM;QACN,SAAS,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACvH;;IAGD,MAAM,eAAe,GAAG,OAAO,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAClE,MAAM,uBAAuB,GAAG,eAAe,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;;;IAIrF,MAAM,mBAAmB,GAAG,WAAW,KAAK,SAAS,CAAC,QAAQ;AAC5D,QAAA,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC;;IAGlE,MAAM,IAAI,GAAG,YAAY,IAAI,SAAS,eAAe,CAAA,CAAA,EAAI,uBAAuB,CAAA,CAAE,CAAC;;AAGnF,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,OAAO,CAAC;AAE9C,IAAA,QACEhB,cAAA,CAACiB,eAAO,EAAA,EAAA,GACF,KAAK,EACT,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACM,oBAAA,EAAA,aAAa,EACb,oBAAA,EAAA,SAAS,CAAC,QAAQ,GAAG,CAAA,EAAG,SAAS,CAAC,QAAQ,CAAM,GAAA,EAAA,aAAa,CAAE,CAAA,GAAG,aAAa,EAAA,aAAA,EACtF,SAAS,CAAC,eAAe,IAAI,MAAM,EAAA,cAAA,EAClC,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAChC,kBAAA,EAAA,SAAS,CAAC,KAAK,EACd,mBAAA,EAAA,mBAAmB,wBAClB,IAAI,EAAA,cAAA,EACV,eAAe,EAAA,uBAAA,EACN,uBAAuB,EAAA,QAAA,EAE7C,QAAQ,EAAA,CACD,EACV;AACJ,CAAC,EAAE;AAEH,KAAK,CAAC,WAAW,GAAG,OAAO;;ACxE3B;MACa,MAAM,GAA0B,CAAC,EAC5C,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,UAAU,EACV,GAAG,KAAK,EACT,KAAI;;IAEH,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,EAAE,CAAC;AAE3D,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACnB,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACtC,QAAA,OAAO,MAAM,aAAa,EAAE,CAAC;AAC/B,KAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;;AAGhC,IAAA,IAAI,SAAS,CAAC;AACd,IAAA,IAAI;AACF,QAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAC7C,QAAA,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;KAC5C;AAAC,IAAA,MAAM;QACN,SAAS,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACvH;;AAGD,IAAA,MAAM,eAAe,GAAG,OAAO,IAAI,SAAS,CAAC;;AAG7C,IAAA,MAAM,IAAI,GAAG,YAAY,IAAI,CAAU,OAAA,EAAA,eAAe,EAAE,CAAC;;AAGzD,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,QAAQ,CAAC;IAE/C,QACEjB,cAAC,CAAAkB,gBAAQ,EACH,EAAA,GAAA,KAAK,EACT,UAAU,EAAE,UAAU,EAAA,oBAAA,EACF,aAAa,EAAA,oBAAA,EACb,SAAS,CAAC,QAAQ,GAAG,CAAA,EAAG,SAAS,CAAC,QAAQ,CAAA,GAAA,EAAM,aAAa,CAAA,CAAE,GAAG,aAAa,EAAA,aAAA,EACtF,SAAS,CAAC,eAAe,IAAI,MAAM,EAAA,cAAA,EAClC,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAAA,kBAAA,EAChC,SAAS,CAAC,KAAK,EACb,oBAAA,EAAA,IAAI,EACV,cAAA,EAAA,eAAe,EACX,kBAAA,EAAA,UAAU,EAE3B,QAAA,EAAA,QAAQ,EACA,CAAA,EACX;AACJ;;MCrDa,UAAU,GAA8B,CAAC,EACpD,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,IAAI,SAAS,CAAC;AACd,IAAA,IAAI,eAAe,CAAC;AACpB,IAAA,IAAI;;QAEF,eAAe,GAAG,kBAAkB,EAAE,CAAC;KACxC;AAAC,IAAA,MAAM;QACN,eAAe,GAAG,IAAI,CAAC;KACxB;IAED,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,eAAe,IAAI;AACrE,QAAA,UAAU,EAAE,MAAK,GAAG;AACpB,QAAA,aAAa,EAAE,MAAK,GAAG;AACvB,QAAA,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KAChI,CAAC;;AAGF,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACnB,QAAA,UAAU,CAAC,MAAM,CAAC,CAAC;AACnB,QAAA,OAAO,MAAM,aAAa,EAAE,CAAC;AAC/B,KAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhC,SAAS,GAAG,YAAY,EAAE,CAAC;AAE3B,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,QAAQ,CAAC;IAC/C,MAAM,QAAQ,GAAG,UAAU,IAAI;QAC7B,SAAS;AACT,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,MAAM,IAAI,MAAM;AACzB,SAAA;KACF,CAAC;AAEF,IAAA,QACElB,cAAA,CAACmB,oBAAY,EAAA,EAAA,GACP,KAAK,EAAA,oBAAA,EACW,aAAa,EAAA,oBAAA,EACb,SAAS,CAAC,QAAQ,GAAG,CAAG,EAAA,SAAS,CAAC,QAAQ,CAAM,GAAA,EAAA,aAAa,CAAE,CAAA,GAAG,aAAa,EAAA,aAAA,EACtF,SAAS,CAAC,eAAe,IAAI,MAAM,EAAA,cAAA,EAClC,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAAA,kBAAA,EAChC,SAAS,CAAC,KAAK,EAAA,oBAAA,EACb,YAAY,IAAI,cAAc,EAAA,kBAAA,EAChC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC7B,aAAA,EAAA,MAAM,IAAI,MAAM,EAE5B,QAAA,EAAA,QAAQ,EACI,CAAA,EACf;AACJ;;MCxDa,YAAY,GAAgC,CAAC,EACxD,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,KAAI;;AAEH,IAAA,IAAI,SAAS,CAAC;AACd,IAAA,IAAI;AACF,QAAA,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;AAC7C,QAAA,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;KAC5C;AAAC,IAAA,MAAM;QACN,SAAS,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;KACvH;AAED,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,QAAQ,CAAC;IAC/C,MAAM,QAAQ,GAAG,UAAU,IAAI;QAC7B,SAAS;AACT,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,MAAM,IAAI,SAAS;AAC5B,SAAA;KACF,CAAC;AAEF,IAAA,QACEnB,cAAA,CAACoB,sBAAc,EAAA,EAAA,GACT,KAAK,EAAA,oBAAA,EACW,aAAa,EAAA,oBAAA,EACb,SAAS,CAAC,QAAQ,GAAG,CAAG,EAAA,SAAS,CAAC,QAAQ,CAAM,GAAA,EAAA,aAAa,CAAE,CAAA,GAAG,aAAa,EAAA,aAAA,EACtF,SAAS,CAAC,eAAe,IAAI,MAAM,EAAA,cAAA,EAClC,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAAA,kBAAA,EAChC,SAAS,CAAC,KAAK,EAAA,oBAAA,EACb,YAAY,IAAI,WAAW,EAAA,kBAAA,EAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAC7B,aAAA,EAAA,MAAM,IAAI,SAAS,EAE/B,QAAA,EAAA,QAAQ,EACM,CAAA,EACjB;AACJ;;AChDA;;AAEG;AAEH;;AAEG;AACU,MAAA,yBAAyB,GAAG,CACvC,aAAqB,EACrB,KAAA,GAAiC,EAAE,KACd;AACrB,IAAA,MAAM,YAAY,GAAsB;AACtC,QAAA,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,CAAwB,qBAAA,EAAA,aAAa,CAAE,CAAA;AACpD,QAAA,QAAQ,EAAE,cAAc;QACxB,aAAa,EAAE,CAAC,oBAAoB,CAAC;QACrC,KAAK,EAAE,CAAC,gBAAgB,CAAC;AACzB,QAAA,KAAK,EAAE,KAAK;KACb,CAAC;;AAGF,IAAA,QAAQ,aAAa,CAAC,WAAW,EAAE;AACjC,QAAA,KAAK,QAAQ;YACX,OAAO;AACL,gBAAA,GAAG,YAAY;AACf,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,WAAW,EAAE,0CAA0C;AACvD,gBAAA,KAAK,EAAE,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,CAAC;aAC7D,CAAC;AACJ,QAAA,KAAK,MAAM;YACT,OAAO;AACL,gBAAA,GAAG,YAAY;AACf,gBAAA,QAAQ,EAAE,cAAc;AACxB,gBAAA,WAAW,EAAE,yCAAyC;AACtD,gBAAA,KAAK,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;aACrD,CAAC;AACJ,QAAA,KAAK,OAAO;YACV,OAAO;AACL,gBAAA,GAAG,YAAY;AACf,gBAAA,QAAQ,EAAE,SAAS;AACnB,gBAAA,WAAW,EAAE,sCAAsC;AACnD,gBAAA,aAAa,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,wBAAwB,CAAC;AACnF,gBAAA,KAAK,EAAE,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC;aAC7D,CAAC;AACJ,QAAA;AACE,YAAA,OAAO,YAAY,CAAC;KACvB;AACH,EAAE;AAEF;;AAEG;AACU,MAAA,gBAAgB,GAAG,CAAC,QAA2B,KAAa;AACvE,IAAA,OAAO,CAAC,EACN,QAAQ,CAAC,IAAI;AACb,QAAA,QAAQ,CAAC,WAAW;AACpB,QAAA,QAAQ,CAAC,QAAQ;AACjB,QAAA,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC9B,CAAC;AACJ,EAAE;AAEF;;AAEG;MACU,aAAa,GAAG,CAC3B,YAAwC,EACxC,eAAkC,KACb;IACrB,OAAO;AACL,QAAA,GAAG,eAAe;AAClB,QAAA,GAAG,YAAY;AACf,QAAA,aAAa,EAAE,CAAC,GAAG,eAAe,CAAC,aAAa,EAAE,IAAI,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;AACxF,QAAA,KAAK,EAAE,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;KACjE,CAAC;AACJ;;AC7EA;;AAEG;AAEH;;AAEG;AACU,MAAA,sBAAsB,GAAG,CACpC,aAAqB,KACK;IAC1B,MAAM,cAAc,GAA2B,EAAE,CAAC;AAElD,IAAA,QAAQ,aAAa,CAAC,WAAW,EAAE;AACjC,QAAA,KAAK,QAAQ;YACX,OAAO;AACL,gBAAA,GAAG,cAAc;AACjB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,QAAQ,EAAE,GAAG;aACd,CAAC;AACJ,QAAA,KAAK,MAAM;YACT,OAAO;AACL,gBAAA,GAAG,cAAc;AACjB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,QAAQ,EAAE,GAAG;aACd,CAAC;AACJ,QAAA,KAAK,OAAO;YACV,OAAO;AACL,gBAAA,GAAG,cAAc;AACjB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,YAAY,EAAE,MAAM;AACpB,gBAAA,QAAQ,EAAE,IAAI;aACf,CAAC;AACJ,QAAA;AACE,YAAA,OAAO,cAAc,CAAC;KACzB;AACH,EAAE;AAEF;;AAEG;MACU,qBAAqB,GAAG,CACnC,aAAqB,EACrB,KAA8B,KAClB;IACZ,MAAM,MAAM,GAAa,EAAE,CAAC;;AAG5B,IAAA,IAAI,aAAa,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACzE,QAAA,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;KACtE;AAED,IAAA,IAAI,aAAa,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1E,QAAA,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;KAC3D;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,EAAE;AAEF;;AAEG;AACU,MAAA,yBAAyB,GAAG,CACvC,aAAqB,EACrB,OAAA,GAAmC,EAAE,KACzB;IACZ,MAAM,SAAS,GAAa,EAAE,CAAC;AAE/B,IAAA,QAAQ,aAAa,CAAC,WAAW,EAAE;AACjC,QAAA,KAAK,QAAQ;AACX,YAAA,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACjC,YAAA,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;AAC9B,gBAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1B;YACD,MAAM;AACR,QAAA,KAAK,OAAO;YACV,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAC7C,MAAM;AACR,QAAA,KAAK,MAAM;AACT,YAAA,IAAI,OAAO,CAAC,WAAW,EAAE;AACvB,gBAAA,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;aAClC;YACD,MAAM;KACT;AAED,IAAA,OAAO,SAAS,CAAC;AACnB;;ACjFA;;AAEG;AACI,MAAM,mBAAmB,GAAG,CACjC,aAAqB,EACrB,YAAyC,EACzC,KAAA,GAAiC,EAAE,KACjC;IACF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAoB,MAAK;QACrE,MAAM,eAAe,GAAG,yBAAyB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACxE,QAAA,OAAO,YAAY,GAAG,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,eAAe,CAAC;AACvF,KAAC,CAAC,CAAC;AAEH,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACnB,MAAM,eAAe,GAAG,yBAAyB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACxE,QAAA,MAAM,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,eAAe,CAAC;QACrG,WAAW,CAAC,cAAc,CAAC,CAAC;KAC7B,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AAEzC,IAAA,MAAM,cAAc,GAAG,CAAC,OAAmC,KAAI;AAC7D,QAAA,WAAW,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;AACjD,KAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,cAAc;KACf,CAAC;AACJ;;AC5BA;;AAEG;AACI,MAAM,gBAAgB,GAAG,CAC9B,aAAqB,EACrB,KAAA,GAAiC,EAAE,EACnC,OAAmC,GAAA,EAAE,KACnC;AACF,IAAA,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,MACnC,sBAAsB,CAAC,aAAa,CAAC,EACrC,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,MACtC,yBAAyB,CAAC,aAAa,EAAE,OAAO,CAAC,EACjD,CAAC,aAAa,EAAE,OAAO,CAAC,CACzB,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,MACxC,qBAAqB,CAAC,aAAa,EAAE,KAAK,CAAC,EAC3C,CAAC,aAAa,EAAE,KAAK,CAAC,CACvB,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO;AACzC,QAAA,GAAG,KAAK;AACR,QAAA,GAAG,cAAc;AACjB,QAAA,yBAAyB,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;AACtD,QAAA,2BAA2B,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;KAC3D,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAErE,OAAO;QACL,cAAc;QACd,iBAAiB;QACjB,mBAAmB;QACnB,aAAa;KACd,CAAC;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ export interface HierarchyMetadata {
3
+ parents: string[];
4
+ depth: number;
5
+ path: string;
6
+ }
7
+ export interface ActionMetadata {
8
+ type: string;
9
+ target?: string;
10
+ consequence?: string;
11
+ affectsParent?: boolean;
12
+ }
13
+ export interface SemanticComponentProps {
14
+ /** Human-readable semantic name for the component instance */
15
+ semanticName?: string;
16
+ /** Semantic role or purpose of the component */
17
+ semanticRole?: string;
18
+ /** What this component acts upon */
19
+ target?: string;
20
+ /** Additional metadata for AI tooling */
21
+ aiMetadata?: {
22
+ description?: string;
23
+ category?: string;
24
+ accessibility?: string[];
25
+ usage?: string[];
26
+ hierarchy?: HierarchyMetadata;
27
+ action?: ActionMetadata;
28
+ };
29
+ /** Accessibility enhancements */
30
+ accessibility?: {
31
+ ariaLabel?: string;
32
+ ariaDescription?: string;
33
+ keyboardShortcuts?: string[];
34
+ };
35
+ }
36
+ export interface ComponentMetadata {
37
+ name: string;
38
+ description: string;
39
+ category: 'layout' | 'navigation' | 'forms' | 'data-display' | 'feedback' | 'overlay';
40
+ accessibility: string[];
41
+ usage: string[];
42
+ props: Record<string, unknown>;
43
+ hierarchy?: HierarchyMetadata;
44
+ action?: ActionMetadata;
45
+ }
46
+ export type SemanticComponent<T = Record<string, unknown>> = React.ComponentType<T & SemanticComponentProps>;
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,EAAE,iBAAiB,CAAC;QAC9B,MAAM,CAAC,EAAE,cAAc,CAAC;KACzB,CAAC;IACF,iCAAiC;IACjC,aAAa,CAAC,EAAE;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,CAAC;IACtF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Accessibility utility functions
3
+ */
4
+ /**
5
+ * Generates ARIA attributes based on component context
6
+ */
7
+ export declare const generateAriaAttributes: (componentType: string) => Record<string, string>;
8
+ /**
9
+ * Validates accessibility requirements
10
+ */
11
+ export declare const validateAccessibility: (componentType: string, props: Record<string, unknown>) => string[];
12
+ /**
13
+ * Generates keyboard shortcuts metadata
14
+ */
15
+ export declare const generateKeyboardShortcuts: (componentType: string, context?: Record<string, unknown>) => string[];
16
+ //# sourceMappingURL=accessibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../src/utils/accessibility.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,eAAe,MAAM,KACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CA0BvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,eAAe,MAAM,EACrB,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,MAAM,EAaR,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,eAAe,MAAM,EACrB,UAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,KACpC,MAAM,EAqBR,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './metadata';
2
+ export * from './accessibility';
3
+ export * from './inference';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Inference utilities for automatically determining semantic properties
3
+ * from PatternFly component props
4
+ */
5
+ /**
6
+ * Determine if a component is a visual parent (requires user action to see contents)
7
+ * vs a wrapper/structure (always visible)
8
+ */
9
+ export declare const isVisualParent: (componentName: string) => boolean;
10
+ /**
11
+ * Infer button action from PatternFly variant and props
12
+ * Returns both behavior (what it does) and styling (how it looks)
13
+ */
14
+ export declare const inferButtonAction: (variant?: string, href?: string, onClick?: unknown, target?: string) => {
15
+ type: string;
16
+ variant: string;
17
+ };
18
+ /**
19
+ * Infer input purpose from type
20
+ */
21
+ export declare const inferInputPurpose: (type?: string) => string;
22
+ /**
23
+ * Infer alert severity
24
+ */
25
+ export declare const inferAlertSeverity: (variant?: string) => string;
26
+ /**
27
+ * Infer context from parent or usage
28
+ */
29
+ export declare const inferContext: (props: Record<string, unknown>) => string;
30
+ /**
31
+ * Infer card purpose from PatternFly props
32
+ */
33
+ export declare const inferCardPurpose: (props: Record<string, unknown>) => string;
34
+ /**
35
+ * Infer modal purpose from props
36
+ */
37
+ export declare const inferModalPurpose: (props: Record<string, unknown>) => string;
38
+ /**
39
+ * Infer accessibility features from props
40
+ */
41
+ export declare const inferAccessibilityFeatures: (props: Record<string, unknown>) => string[];
42
+ /**
43
+ * Infer usage patterns from component type and props
44
+ */
45
+ export declare const inferUsagePatterns: (componentType: string, props: Record<string, unknown>) => string[];
46
+ /**
47
+ * Generate comprehensive metadata from props
48
+ */
49
+ export declare const generateMetadataFromProps: (componentName: string, props: Record<string, unknown>) => {
50
+ description: string;
51
+ category: string;
52
+ accessibility: string[];
53
+ usage: string[];
54
+ };
55
+ /**
56
+ * Infer card content type from PatternFly props and children
57
+ */
58
+ export declare const inferCardContentType: (props: Record<string, unknown>) => string;
59
+ /**
60
+ * Infer card interactive state from PatternFly props
61
+ */
62
+ export declare const inferCardInteractiveState: (props: Record<string, unknown>) => string;
63
+ /**
64
+ * Infer modal interaction type
65
+ */
66
+ export declare const inferModalInteractionType: (isOpen?: boolean) => string;
67
+ /**
68
+ * Infer select purpose
69
+ */
70
+ export declare const inferSelectPurpose: () => string;
71
+ /**
72
+ * Infer select selection type
73
+ */
74
+ export declare const inferSelectSelectionType: (variant?: string) => string;
75
+ /**
76
+ * Infer radio purpose
77
+ */
78
+ export declare const inferRadioPurpose: () => string;
79
+ /**
80
+ * Infer radio group context
81
+ */
82
+ export declare const inferRadioGroupContext: (name?: string) => string;
83
+ /**
84
+ * Infer switch purpose
85
+ */
86
+ export declare const inferSwitchPurpose: () => string;
87
+ /**
88
+ * Infer switch toggle target
89
+ */
90
+ export declare const inferSwitchToggleTarget: () => string;
91
+ /**
92
+ * Infer textarea purpose
93
+ */
94
+ export declare const inferTextAreaPurpose: () => string;
95
+ /**
96
+ * Infer textarea content type
97
+ */
98
+ export declare const inferTextAreaContentType: () => string;
99
+ /**
100
+ * Infer checkbox purpose
101
+ */
102
+ export declare const inferCheckboxPurpose: (isChecked?: boolean) => string;
103
+ /**
104
+ * Infer link purpose
105
+ */
106
+ export declare const inferLinkPurpose: (href?: string, children?: unknown) => string;
107
+ /**
108
+ * Infer star icon purpose
109
+ */
110
+ export declare const inferStarIconPurpose: (isFavorited?: boolean) => string;
111
+ /**
112
+ * Infer validation context
113
+ */
114
+ export declare const inferValidationContext: (isRequired?: boolean) => string;
115
+ /**
116
+ * Infer form context (default for most form components)
117
+ */
118
+ export declare const inferFormContext: () => string;
119
+ /**
120
+ * Infer settings context (default for switches)
121
+ */
122
+ export declare const inferSettingsContext: () => string;
123
+ /**
124
+ * Infer status badge type from content
125
+ */
126
+ export declare const inferStatusBadgeType: (content?: string) => string;
127
+ /**
128
+ * Infer status badge purpose
129
+ */
130
+ export declare const inferStatusBadgePurpose: () => string;
131
+ /**
132
+ * Infer category from component name
133
+ * Category describes WHAT the component IS, not what it DOES (that's the action)
134
+ */
135
+ export declare const inferCategory: (componentName: string) => string;
136
+ //# sourceMappingURL=inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference.d.ts","sourceRoot":"","sources":["../../src/utils/inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ComponentMetadata } from '../types';
2
+ /**
3
+ * Utility functions for managing component metadata
4
+ */
5
+ /**
6
+ * Generates default metadata for a component based on its type and props
7
+ */
8
+ export declare const generateComponentMetadata: (componentName: string, props?: Record<string, unknown>) => ComponentMetadata;
9
+ /**
10
+ * Validates component metadata
11
+ */
12
+ export declare const validateMetadata: (metadata: ComponentMetadata) => boolean;
13
+ /**
14
+ * Merges user-provided metadata with defaults
15
+ */
16
+ export declare const mergeMetadata: (userMetadata: Partial<ComponentMetadata>, defaultMetadata: ComponentMetadata) => ComponentMetadata;
17
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/utils/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,eAAe,MAAM,EACrB,QAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,KAClC,iBAqCF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,iBAAiB,KAAG,OAQ9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,cAAc,OAAO,CAAC,iBAAiB,CAAC,EACxC,iBAAiB,iBAAiB,KACjC,iBAOF,CAAC"}