@wireweave/language-data 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -34
- package/dist/codemirror/index.cjs +1223 -0
- package/dist/codemirror/index.cjs.map +1 -0
- package/dist/codemirror/index.d.cts +130 -0
- package/dist/codemirror/index.d.ts +130 -0
- package/dist/codemirror/index.js +1191 -0
- package/dist/codemirror/index.js.map +1 -0
- package/dist/index.cjs +390 -217
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +82 -7
- package/dist/index.d.ts +82 -7
- package/dist/index.js +382 -217
- package/dist/index.js.map +1 -1
- package/dist/monaco/index.cjs +1270 -0
- package/dist/monaco/index.cjs.map +1 -0
- package/dist/monaco/index.d.cts +143 -0
- package/dist/monaco/index.d.ts +143 -0
- package/dist/monaco/index.js +1233 -0
- package/dist/monaco/index.js.map +1 -0
- package/package.json +11 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/components.ts","../src/attributes.ts","../src/keywords.ts","../src/utils.ts"],"sourcesContent":["/**\n * @wireweave/language-data\n *\n * Shared language definitions for Wireweave DSL editors\n * Used by VS Code Extension, Playground, and other editor integrations\n */\n\n// Types\nexport type { ComponentDef, AttributeDef, ComponentCategory } from './types.js';\n\n// Data\nexport { ALL_COMPONENTS } from './components.js';\nexport { ATTRIBUTES } from './attributes.js';\nexport {\n CATEGORY_LABELS,\n VALUE_KEYWORDS,\n COMMON_NUMBERS,\n SPACING_SCALE,\n} from './keywords.js';\n\n// Utilities\nexport {\n getComponent,\n getAttribute,\n getValidChildren,\n isValidChild,\n getComponentAttributes,\n getComponentsByCategory,\n getAttributeTypeLabel,\n formatAttributeValues,\n isComponent,\n isAttribute,\n getComponentNames,\n getAttributeNames,\n} from './utils.js';\n","/**\n * Component definitions for Wireweave DSL\n * Based on @wireweave/core AST types\n */\n\nimport type { ComponentDef } from './types.js';\n\nexport const ALL_COMPONENTS: ComponentDef[] = [\n // Layout\n {\n name: 'page',\n description: 'Page root container. Starting point for the entire layout.',\n category: 'layout',\n attributes: ['title', 'width', 'height', 'viewport', 'device', 'centered', 'p', 'px', 'py', 'pt', 'pr', 'pb', 'pl', 'm', 'gap'],\n hasChildren: true,\n validChildren: ['header', 'main', 'footer', 'sidebar', 'section', 'nav', 'row', 'col', 'card'],\n validParents: [],\n example: 'page \"Dashboard\" centered { ... }',\n },\n {\n name: 'header',\n description: 'Page header area. Place navigation, logo, etc.',\n category: 'layout',\n attributes: ['p', 'px', 'py', 'border', 'gap', 'justify', 'align'],\n hasChildren: true,\n validParents: ['page'],\n example: 'header p=4 border { ... }',\n },\n {\n name: 'main',\n description: 'Main content area. Place primary content here.',\n category: 'layout',\n attributes: ['p', 'px', 'py', 'gap'],\n hasChildren: true,\n validParents: ['page'],\n example: 'main p=6 { ... }',\n },\n {\n name: 'footer',\n description: 'Page footer area. Place copyright, links, etc.',\n category: 'layout',\n attributes: ['p', 'px', 'py', 'border', 'gap'],\n hasChildren: true,\n validParents: ['page'],\n example: 'footer p=4 border { ... }',\n },\n {\n name: 'sidebar',\n description: 'Sidebar area. Place auxiliary navigation or information.',\n category: 'layout',\n attributes: ['position', 'w', 'p', 'px', 'py', 'gap'],\n hasChildren: true,\n validParents: ['page'],\n example: 'sidebar w=240 { ... }',\n },\n {\n name: 'section',\n description: 'Section area. Logically group content.',\n category: 'layout',\n attributes: ['title', 'expanded', 'p', 'px', 'py', 'gap'],\n hasChildren: true,\n example: 'section \"Settings\" expanded { ... }',\n },\n\n // Grid\n {\n name: 'row',\n description: 'Horizontal flex container. Arrange children horizontally.',\n category: 'grid',\n attributes: ['gap', 'justify', 'align', 'wrap', 'direction', 'flex', 'p', 'm', 'mt', 'mb'],\n hasChildren: true,\n example: 'row flex gap=4 justify=between { ... }',\n },\n {\n name: 'col',\n description: 'Vertical flex container or grid column.',\n category: 'grid',\n attributes: ['span', 'sm', 'md', 'lg', 'xl', 'order', 'gap', 'justify', 'align', 'p', 'm', 'w'],\n hasChildren: true,\n example: 'col span=6 md=4 { ... }',\n },\n\n // Container\n {\n name: 'card',\n description: 'Card component. Group and display content.',\n category: 'container',\n attributes: ['title', 'p', 'shadow', 'border', 'gap'],\n hasChildren: true,\n example: 'card \"Settings\" p=4 shadow=md { ... }',\n },\n {\n name: 'modal',\n description: 'Modal dialog. Display content on an overlay.',\n category: 'container',\n attributes: ['title', 'w', 'h', 'p'],\n hasChildren: true,\n example: 'modal \"Confirm\" w=400 { ... }',\n },\n {\n name: 'drawer',\n description: 'Drawer panel. Slides in from the edge of the screen.',\n category: 'container',\n attributes: ['title', 'position', 'p'],\n hasChildren: true,\n example: 'drawer \"Menu\" position=left { ... }',\n },\n {\n name: 'accordion',\n description: 'Accordion. Collapsible content panel.',\n category: 'container',\n attributes: ['title', 'p'],\n hasChildren: true,\n example: 'accordion { section \"FAQ 1\" { ... } }',\n },\n\n // Text\n {\n name: 'text',\n description: 'Text element. Display plain text.',\n category: 'text',\n attributes: ['size', 'weight', 'align', 'muted', 'm', 'mt', 'mb'],\n hasChildren: false,\n example: 'text \"Hello World\" size=lg weight=bold',\n },\n {\n name: 'title',\n description: 'Title element. Display h1-h6 headings.',\n category: 'text',\n attributes: ['level', 'size', 'align', 'm', 'mt', 'mb'],\n hasChildren: false,\n example: 'title \"Welcome\" level=2',\n },\n {\n name: 'link',\n description: 'Link element. Display clickable hyperlink.',\n category: 'text',\n attributes: ['href', 'external'],\n hasChildren: false,\n example: 'link \"Learn more\" href=\"/docs\" external',\n },\n\n // Input\n {\n name: 'input',\n description: 'Input field. Accept text, email, password, etc.',\n category: 'input',\n attributes: ['label', 'inputType', 'placeholder', 'value', 'disabled', 'required', 'readonly', 'icon', 'm', 'mb'],\n hasChildren: false,\n example: 'input \"Email\" inputType=email placeholder=\"user@example.com\" required',\n },\n {\n name: 'textarea',\n description: 'Multi-line input field. Accept long text.',\n category: 'input',\n attributes: ['label', 'placeholder', 'value', 'rows', 'disabled', 'required', 'm', 'mb'],\n hasChildren: false,\n example: 'textarea \"Description\" rows=4 placeholder=\"Enter description...\"',\n },\n {\n name: 'select',\n description: 'Dropdown select. Choose one from multiple options.',\n category: 'input',\n attributes: ['label', 'placeholder', 'value', 'disabled', 'required', 'm', 'mb'],\n hasChildren: false,\n example: 'select \"Country\" [\"USA\", \"Canada\", \"UK\"] placeholder=\"Select...\"',\n },\n {\n name: 'checkbox',\n description: 'Checkbox. Select true/false value.',\n category: 'input',\n attributes: ['label', 'checked', 'disabled', 'm', 'mb'],\n hasChildren: false,\n example: 'checkbox \"I agree to terms\" checked',\n },\n {\n name: 'radio',\n description: 'Radio button. Select one within a group.',\n category: 'input',\n attributes: ['label', 'name', 'checked', 'disabled', 'm', 'mb'],\n hasChildren: false,\n example: 'radio \"Option A\" name=\"choice\" checked',\n },\n {\n name: 'switch',\n description: 'Toggle switch. Switch on/off state.',\n category: 'input',\n attributes: ['label', 'checked', 'disabled', 'm', 'mb'],\n hasChildren: false,\n example: 'switch \"Dark mode\" checked',\n },\n {\n name: 'slider',\n description: 'Slider. Select a value within a range.',\n category: 'input',\n attributes: ['label', 'min', 'max', 'value', 'step', 'disabled', 'm', 'mb'],\n hasChildren: false,\n example: 'slider \"Volume\" min=0 max=100 value=50',\n },\n\n // Button\n {\n name: 'button',\n description: 'Button element. Display clickable button.',\n category: 'input',\n attributes: ['primary', 'secondary', 'outline', 'ghost', 'danger', 'size', 'icon', 'disabled', 'loading', 'w'],\n hasChildren: false,\n example: 'button \"Submit\" primary icon=send',\n },\n\n // Display\n {\n name: 'image',\n description: 'Image element. Display an image.',\n category: 'display',\n attributes: ['src', 'alt', 'w', 'h'],\n hasChildren: false,\n example: 'image w=200 h=150',\n },\n {\n name: 'placeholder',\n description: 'Placeholder. Image or content placeholder.',\n category: 'display',\n attributes: ['label', 'w', 'h'],\n hasChildren: false,\n example: 'placeholder \"Banner Image\" w=full h=200',\n },\n {\n name: 'avatar',\n description: 'Avatar element. Display user profile image.',\n category: 'display',\n attributes: ['name', 'src', 'size'],\n hasChildren: false,\n example: 'avatar \"John Doe\" size=lg',\n },\n {\n name: 'badge',\n description: 'Badge element. Display status or count as a small label.',\n category: 'display',\n attributes: ['variant', 'pill', 'icon', 'size'],\n hasChildren: false,\n example: 'badge \"New\" variant=success pill',\n },\n {\n name: 'icon',\n description: 'Icon element. Display a Lucide icon.',\n category: 'display',\n attributes: ['name', 'size', 'muted'],\n hasChildren: false,\n example: 'icon \"settings\" size=lg',\n },\n\n // Data\n {\n name: 'table',\n description: 'Table component. Display data in tabular format.',\n category: 'data',\n attributes: ['striped', 'bordered', 'hover'],\n hasChildren: false,\n example: 'table striped bordered { columns [\"Name\", \"Email\"] row [\"John\", \"john@example.com\"] }',\n },\n {\n name: 'list',\n description: 'List component. Display items as a list.',\n category: 'data',\n attributes: ['ordered', 'none', 'gap'],\n hasChildren: false,\n example: 'list ordered [\"First\", \"Second\", \"Third\"]',\n },\n\n // Feedback\n {\n name: 'alert',\n description: 'Alert element. Display a message to the user.',\n category: 'feedback',\n attributes: ['variant', 'dismissible', 'icon'],\n hasChildren: false,\n example: 'alert \"Changes saved!\" variant=success',\n },\n {\n name: 'toast',\n description: 'Toast notification. Display a temporary message.',\n category: 'feedback',\n attributes: ['position', 'variant'],\n hasChildren: false,\n example: 'toast \"Item deleted\" position=bottom-right variant=danger',\n },\n {\n name: 'progress',\n description: 'Progress bar. Display progress status.',\n category: 'feedback',\n attributes: ['value', 'max', 'label', 'indeterminate'],\n hasChildren: false,\n example: 'progress value=75 label=\"Uploading...\"',\n },\n {\n name: 'spinner',\n description: 'Loading spinner. Display loading status.',\n category: 'feedback',\n attributes: ['label', 'size'],\n hasChildren: false,\n example: 'spinner size=lg',\n },\n\n // Overlay\n {\n name: 'tooltip',\n description: 'Tooltip element. Show additional info on hover.',\n category: 'overlay',\n attributes: ['position'],\n hasChildren: true,\n example: 'tooltip \"More info\" position=top { icon \"help-circle\" }',\n },\n {\n name: 'popover',\n description: 'Popover. Show additional content on click.',\n category: 'overlay',\n attributes: ['title'],\n hasChildren: true,\n example: 'popover \"Details\" { ... }',\n },\n {\n name: 'dropdown',\n description: 'Dropdown menu. Expand menu on click.',\n category: 'overlay',\n attributes: [],\n hasChildren: false,\n example: 'dropdown { item \"Edit\" icon=edit item \"Delete\" icon=trash danger }',\n },\n\n // Navigation\n {\n name: 'nav',\n description: 'Navigation area. Place menu items.',\n category: 'navigation',\n attributes: ['vertical', 'gap'],\n hasChildren: false,\n example: 'nav [{ label=\"Home\" icon=home active }, { label=\"Settings\" icon=settings }] vertical',\n },\n {\n name: 'tabs',\n description: 'Tabs component. Switch between multiple panels.',\n category: 'navigation',\n attributes: ['active'],\n hasChildren: true,\n example: 'tabs { tab \"General\" active { ... } tab \"Advanced\" { ... } }',\n },\n {\n name: 'breadcrumb',\n description: 'Breadcrumb. Display current location as a path.',\n category: 'navigation',\n attributes: [],\n hasChildren: false,\n example: 'breadcrumb [{ label=\"Home\" href=\"/\" }, { label=\"Products\" }, { label=\"Details\" }]',\n },\n\n // Divider\n {\n name: 'divider',\n description: 'Divider element. Visually separate content.',\n category: 'display',\n attributes: ['m', 'my', 'mx'],\n hasChildren: false,\n example: 'divider my=4',\n },\n];\n","/**\n * Attribute definitions for Wireweave DSL\n */\n\nimport type { AttributeDef } from './types.js';\n\nexport const ATTRIBUTES: AttributeDef[] = [\n // Spacing\n { name: 'p', description: 'Padding. Set inner spacing.', values: 'number', example: 'p=4' },\n { name: 'px', description: 'Horizontal padding.', values: 'number', example: 'px=4' },\n { name: 'py', description: 'Vertical padding.', values: 'number', example: 'py=4' },\n { name: 'pt', description: 'Top padding.', values: 'number', example: 'pt=4' },\n { name: 'pr', description: 'Right padding.', values: 'number', example: 'pr=4' },\n { name: 'pb', description: 'Bottom padding.', values: 'number', example: 'pb=4' },\n { name: 'pl', description: 'Left padding.', values: 'number', example: 'pl=4' },\n { name: 'm', description: 'Margin. Set outer spacing.', values: 'number', example: 'm=4' },\n { name: 'mx', description: 'Horizontal margin. Can be \"auto\" for centering.', values: 'number', example: 'mx=auto' },\n { name: 'my', description: 'Vertical margin.', values: 'number', example: 'my=4' },\n { name: 'mt', description: 'Top margin.', values: 'number', example: 'mt=4' },\n { name: 'mr', description: 'Right margin.', values: 'number', example: 'mr=4' },\n { name: 'mb', description: 'Bottom margin.', values: 'number', example: 'mb=4' },\n { name: 'ml', description: 'Left margin.', values: 'number', example: 'ml=4' },\n { name: 'gap', description: 'Gap between child elements.', values: 'number', example: 'gap=4' },\n\n // Grid Layout\n { name: 'span', description: 'Grid column width (1-12).', values: 'number', example: 'span=6' },\n { name: 'sm', description: 'Column width at 576px and above.', values: 'number', example: 'sm=6' },\n { name: 'md', description: 'Column width at 768px and above.', values: 'number', example: 'md=4' },\n { name: 'lg', description: 'Column width at 992px and above.', values: 'number', example: 'lg=3' },\n { name: 'xl', description: 'Column width at 1200px and above.', values: 'number', example: 'xl=2' },\n { name: 'order', description: 'Order within flex container.', values: 'number', example: 'order=1' },\n\n // Flex Layout\n { name: 'flex', description: 'Enable flexbox layout.', values: 'boolean', example: 'flex' },\n { name: 'direction', description: 'Flex direction.', values: ['row', 'column', 'row-reverse', 'column-reverse'], example: 'direction=column' },\n { name: 'justify', description: 'Main axis alignment.', values: ['start', 'center', 'end', 'between', 'around', 'evenly'], example: 'justify=center' },\n { name: 'align', description: 'Cross axis alignment.', values: ['start', 'center', 'end', 'stretch', 'baseline'], example: 'align=center' },\n { name: 'wrap', description: 'Allow child elements to wrap.', values: 'boolean', example: 'wrap' },\n\n // Size\n { name: 'width', description: 'Width in pixels.', values: 'number', example: 'width=400' },\n { name: 'height', description: 'Height in pixels.', values: 'number', example: 'height=300' },\n { name: 'w', description: 'Width (full, auto, screen, fit, or number).', values: ['full', 'auto', 'screen', 'fit'], example: 'w=full' },\n { name: 'h', description: 'Height (full, auto, screen, or number).', values: ['full', 'auto', 'screen'], example: 'h=full' },\n { name: 'minW', description: 'Minimum width.', values: 'number', example: 'minW=200' },\n { name: 'maxW', description: 'Maximum width.', values: 'number', example: 'maxW=600' },\n { name: 'minH', description: 'Minimum height.', values: 'number', example: 'minH=100' },\n { name: 'maxH', description: 'Maximum height.', values: 'number', example: 'maxH=400' },\n { name: 'size', description: 'Size preset.', values: ['xs', 'sm', 'md', 'lg', 'xl'], example: 'size=lg' },\n { name: 'viewport', description: 'Viewport size (e.g., \"1440x900\").', values: 'string', example: 'viewport=\"1440x900\"' },\n { name: 'device', description: 'Device preset.', values: ['iphone14', 'iphone14pro', 'desktop', 'tablet'], example: 'device=\"iphone14\"' },\n\n // Visual\n { name: 'border', description: 'Show border.', values: 'boolean', example: 'border' },\n { name: 'shadow', description: 'Box shadow.', values: ['none', 'sm', 'md', 'lg', 'xl'], example: 'shadow=md' },\n { name: 'position', description: 'Position setting.', values: ['left', 'right', 'top', 'bottom', 'top-left', 'top-center', 'top-right', 'bottom-left', 'bottom-center', 'bottom-right'], example: 'position=left' },\n\n // Text\n { name: 'level', description: 'Heading level (1-6).', values: 'number', example: 'level=2' },\n { name: 'weight', description: 'Font weight.', values: ['normal', 'medium', 'semibold', 'bold'], example: 'weight=bold' },\n { name: 'muted', description: 'Muted style.', values: 'boolean', example: 'muted' },\n\n // Button variants\n { name: 'primary', description: 'Primary emphasis style.', values: 'boolean', example: 'primary' },\n { name: 'secondary', description: 'Secondary style.', values: 'boolean', example: 'secondary' },\n { name: 'outline', description: 'Outline style.', values: 'boolean', example: 'outline' },\n { name: 'ghost', description: 'Ghost/transparent style.', values: 'boolean', example: 'ghost' },\n { name: 'danger', description: 'Danger/delete style.', values: 'boolean', example: 'danger' },\n\n // Status variants\n { name: 'variant', description: 'Variant style.', values: ['default', 'primary', 'secondary', 'success', 'warning', 'danger', 'info'], example: 'variant=success' },\n\n // Form\n { name: 'inputType', description: 'Input field type.', values: ['text', 'email', 'password', 'number', 'tel', 'url', 'search', 'date'], example: 'inputType=email' },\n { name: 'placeholder', description: 'Placeholder text.', values: 'string', example: 'placeholder=\"Enter text\"' },\n { name: 'value', description: 'Default value.', values: 'string', example: 'value=\"default\"' },\n { name: 'label', description: 'Label text.', values: 'string', example: 'label=\"Name\"' },\n { name: 'required', description: 'Required field.', values: 'boolean', example: 'required' },\n { name: 'disabled', description: 'Disabled state.', values: 'boolean', example: 'disabled' },\n { name: 'readonly', description: 'Read-only.', values: 'boolean', example: 'readonly' },\n { name: 'checked', description: 'Checked state.', values: 'boolean', example: 'checked' },\n { name: 'loading', description: 'Loading state.', values: 'boolean', example: 'loading' },\n { name: 'name', description: 'Form element name attribute.', values: 'string', example: 'name=\"field\"' },\n { name: 'rows', description: 'Number of textarea rows.', values: 'number', example: 'rows=4' },\n { name: 'min', description: 'Minimum value.', values: 'number', example: 'min=0' },\n { name: 'max', description: 'Maximum value.', values: 'number', example: 'max=100' },\n { name: 'step', description: 'Step increment.', values: 'number', example: 'step=1' },\n\n // Other\n { name: 'title', description: 'Title text.', values: 'string', example: 'title=\"Title\"' },\n { name: 'centered', description: 'Center alignment.', values: 'boolean', example: 'centered' },\n { name: 'vertical', description: 'Vertical orientation.', values: 'boolean', example: 'vertical' },\n { name: 'expanded', description: 'Expanded state.', values: 'boolean', example: 'expanded' },\n { name: 'active', description: 'Active state/index.', values: 'number', example: 'active=0' },\n { name: 'href', description: 'Link URL.', values: 'string', example: 'href=\"/path\"' },\n { name: 'external', description: 'External link.', values: 'boolean', example: 'external' },\n { name: 'src', description: 'Image source URL.', values: 'string', example: 'src=\"/image.png\"' },\n { name: 'alt', description: 'Alternative text.', values: 'string', example: 'alt=\"Image\"' },\n { name: 'icon', description: 'Icon name (Lucide icons).', values: 'string', example: 'icon=\"home\"' },\n { name: 'pill', description: 'Rounded pill badge.', values: 'boolean', example: 'pill' },\n { name: 'dismissible', description: 'Can be dismissed.', values: 'boolean', example: 'dismissible' },\n { name: 'indeterminate', description: 'Indeterminate state.', values: 'boolean', example: 'indeterminate' },\n { name: 'striped', description: 'Striped style.', values: 'boolean', example: 'striped' },\n { name: 'bordered', description: 'Bordered style.', values: 'boolean', example: 'bordered' },\n { name: 'hover', description: 'Hover effect.', values: 'boolean', example: 'hover' },\n { name: 'ordered', description: 'Ordered list.', values: 'boolean', example: 'ordered' },\n { name: 'none', description: 'No list style.', values: 'boolean', example: 'none' },\n];\n","/**\n * Keywords and labels for Wireweave DSL\n */\n\nimport type { ComponentCategory } from './types.js';\n\n// Category labels for display\nexport const CATEGORY_LABELS: Record<ComponentCategory, string> = {\n layout: 'Layout',\n container: 'Container',\n grid: 'Grid',\n text: 'Text',\n input: 'Input',\n display: 'Display',\n data: 'Data',\n feedback: 'Feedback',\n overlay: 'Overlay',\n navigation: 'Navigation',\n};\n\n// Value keywords used in the language\nexport const VALUE_KEYWORDS = [\n // Booleans\n 'true',\n 'false',\n\n // Button variants\n 'primary',\n 'secondary',\n 'outline',\n 'ghost',\n\n // Status variants\n 'success',\n 'danger',\n 'warning',\n 'info',\n 'default',\n\n // Sizes\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n 'base',\n '2xl',\n '3xl',\n\n // Flex alignment\n 'start',\n 'center',\n 'end',\n 'between',\n 'around',\n 'evenly',\n 'stretch',\n 'baseline',\n\n // Positions\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n\n // Sizing\n 'full',\n 'auto',\n 'screen',\n 'fit',\n\n // Font weights\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n\n // Input types\n 'text',\n 'email',\n 'password',\n 'number',\n 'tel',\n 'url',\n 'search',\n 'date',\n\n // Flex direction\n 'row',\n 'column',\n 'row-reverse',\n 'column-reverse',\n\n // List\n 'none',\n 'nowrap',\n];\n\n// Common number suggestions for attributes\nexport const COMMON_NUMBERS = [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32, 48, 64];\n\n// Spacing scale (4px base)\nexport const SPACING_SCALE: Record<number, string> = {\n 0: '0px',\n 1: '4px',\n 2: '8px',\n 3: '12px',\n 4: '16px',\n 5: '20px',\n 6: '24px',\n 8: '32px',\n 10: '40px',\n 12: '48px',\n 16: '64px',\n 20: '80px',\n 24: '96px',\n};\n","/**\n * Utility functions for Wireweave language data\n */\n\nimport type { ComponentDef, AttributeDef } from './types.js';\nimport { ALL_COMPONENTS } from './components.js';\nimport { ATTRIBUTES } from './attributes.js';\n\n/**\n * Get component definition by name\n */\nexport function getComponent(name: string): ComponentDef | undefined {\n return ALL_COMPONENTS.find((c) => c.name === name.toLowerCase());\n}\n\n/**\n * Get attribute definition by name\n */\nexport function getAttribute(name: string): AttributeDef | undefined {\n return ATTRIBUTES.find((a) => a.name === name);\n}\n\n/**\n * Get valid child components for a parent component\n */\nexport function getValidChildren(componentName: string): ComponentDef[] {\n const component = getComponent(componentName);\n if (!component || !component.hasChildren) return [];\n\n if (component.validChildren === undefined) {\n // All components except page are valid children\n return ALL_COMPONENTS.filter((c) => c.name !== 'page');\n }\n\n return component.validChildren\n .map((name) => getComponent(name))\n .filter((c): c is ComponentDef => c !== undefined);\n}\n\n/**\n * Check if a component is a valid child of another\n */\nexport function isValidChild(childName: string, parentName: string): boolean {\n const parent = getComponent(parentName);\n if (!parent || !parent.hasChildren) return false;\n\n if (parent.validChildren === undefined) return true;\n return parent.validChildren.includes(childName.toLowerCase());\n}\n\n/**\n * Get attribute definitions for a specific component\n */\nexport function getComponentAttributes(componentName: string): AttributeDef[] {\n const component = getComponent(componentName);\n if (!component) return ATTRIBUTES;\n\n return ATTRIBUTES.filter((attr) => component.attributes.includes(attr.name));\n}\n\n/**\n * Get all components in a category\n */\nexport function getComponentsByCategory(category: string): ComponentDef[] {\n return ALL_COMPONENTS.filter((c) => c.category === category);\n}\n\n/**\n * Get attribute type label for display\n */\nexport function getAttributeTypeLabel(attr: AttributeDef): string {\n if (attr.values === 'number') return 'number';\n if (attr.values === 'string') return 'string';\n if (attr.values === 'boolean') return 'boolean';\n if (Array.isArray(attr.values)) {\n const preview = attr.values.slice(0, 3).join(' | ');\n return attr.values.length > 3 ? `${preview}...` : preview;\n }\n return '';\n}\n\n/**\n * Format attribute values for display\n */\nexport function formatAttributeValues(attr: AttributeDef): string {\n if (attr.values === 'number') return 'Type: number';\n if (attr.values === 'string') return 'Type: string';\n if (attr.values === 'boolean') return 'Type: boolean (can be omitted)';\n if (Array.isArray(attr.values)) {\n return `Values: ${attr.values.join(' | ')}`;\n }\n return '';\n}\n\n/**\n * Check if a word is a known component\n */\nexport function isComponent(word: string): boolean {\n return ALL_COMPONENTS.some((c) => c.name === word.toLowerCase());\n}\n\n/**\n * Check if a word is a known attribute\n */\nexport function isAttribute(word: string): boolean {\n return ATTRIBUTES.some((a) => a.name === word);\n}\n\n/**\n * Get all component names\n */\nexport function getComponentNames(): string[] {\n return ALL_COMPONENTS.map((c) => c.name);\n}\n\n/**\n * Get all attribute names\n */\nexport function getAttributeNames(): string[] {\n return ATTRIBUTES.map((a) => a.name);\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/attributes.ts","../src/components.ts","../src/keywords.ts","../src/utils.ts"],"sourcesContent":["/**\n * @wireweave/language-data\n *\n * Language definitions and metadata for Wireweave DSL editor integrations.\n * This package is independent of @wireweave/core.\n *\n * Provides:\n * - Component and attribute definitions\n * - Editor utilities (autocomplete, validation hints)\n * - Monaco language configuration (coming soon)\n */\n\n// Types\nexport type {\n ComponentDef,\n AttributeDef,\n ComponentCategory,\n AttributeValueType,\n} from './types.js';\n\n// Data\nexport {\n ALL_COMPONENTS,\n COMPONENT_MAP,\n NODE_TYPE_MAP,\n VALID_COMPONENT_NAMES,\n} from './components.js';\nexport {\n ATTRIBUTES,\n ATTRIBUTE_MAP,\n COMMON_ATTRIBUTES,\n VALID_ATTRIBUTE_NAMES,\n} from './attributes.js';\nexport {\n CATEGORY_LABELS,\n VALUE_KEYWORDS,\n COMMON_NUMBERS,\n SPACING_SCALE,\n} from './keywords.js';\n\n// Utilities\nexport {\n getComponent,\n getComponentByNodeType,\n getAttribute,\n getValidChildren,\n isValidChild,\n getComponentAttributes,\n getComponentsByCategory,\n getAttributeTypeLabel,\n formatAttributeValues,\n isComponent,\n isAttribute,\n getComponentNames,\n getAttributeNames,\n getCategories,\n} from './utils.js';\n","/**\n * Attribute definitions for Wireweave DSL\n *\n * Complete attribute definitions for editor integrations.\n * This is the authoritative source for editor-related attribute data.\n */\n\nimport type { AttributeDef } from './types.js';\n\n/**\n * Common attributes available to most components\n */\nexport const COMMON_ATTRIBUTES: readonly string[] = [\n // Spacing\n 'p', 'px', 'py', 'pt', 'pr', 'pb', 'pl',\n 'm', 'mx', 'my', 'mt', 'mr', 'mb', 'ml',\n 'gap',\n // Size\n 'w', 'h', 'minW', 'maxW', 'minH', 'maxH',\n // Flex\n 'flex', 'direction', 'justify', 'align', 'wrap',\n // Grid\n 'span',\n // Position\n 'x', 'y',\n];\n\n/**\n * All attributes in Wireweave DSL\n */\nexport const ATTRIBUTES: AttributeDef[] = [\n // ============================================\n // Spacing Attributes\n // ============================================\n { name: 'p', type: 'number', description: 'Padding (all sides)', example: 'p=4' },\n { name: 'px', type: 'number', description: 'Horizontal padding', example: 'px=4' },\n { name: 'py', type: 'number', description: 'Vertical padding', example: 'py=4' },\n { name: 'pt', type: 'number', description: 'Top padding', example: 'pt=4' },\n { name: 'pr', type: 'number', description: 'Right padding', example: 'pr=4' },\n { name: 'pb', type: 'number', description: 'Bottom padding', example: 'pb=4' },\n { name: 'pl', type: 'number', description: 'Left padding', example: 'pl=4' },\n { name: 'm', type: 'number', description: 'Margin (all sides)', example: 'm=4' },\n { name: 'mx', type: 'string', description: 'Horizontal margin (number or \"auto\")', example: 'mx=auto' },\n { name: 'my', type: 'number', description: 'Vertical margin', example: 'my=4' },\n { name: 'mt', type: 'number', description: 'Top margin', example: 'mt=4' },\n { name: 'mr', type: 'number', description: 'Right margin', example: 'mr=4' },\n { name: 'mb', type: 'number', description: 'Bottom margin', example: 'mb=4' },\n { name: 'ml', type: 'number', description: 'Left margin', example: 'ml=4' },\n { name: 'gap', type: 'number', description: 'Gap between children', example: 'gap=4' },\n\n // ============================================\n // Size Attributes\n // ============================================\n { name: 'w', type: 'string', description: 'Width (number, \"full\", \"auto\", \"screen\", \"fit\")', example: 'w=full' },\n { name: 'h', type: 'string', description: 'Height (number, \"full\", \"auto\", \"screen\")', example: 'h=full' },\n { name: 'width', type: 'number', description: 'Width in pixels (page only)', example: 'width=400' },\n { name: 'height', type: 'number', description: 'Height in pixels (page only)', example: 'height=300' },\n { name: 'minW', type: 'number', description: 'Minimum width', example: 'minW=200' },\n { name: 'maxW', type: 'number', description: 'Maximum width', example: 'maxW=600' },\n { name: 'minH', type: 'number', description: 'Minimum height', example: 'minH=100' },\n { name: 'maxH', type: 'number', description: 'Maximum height', example: 'maxH=400' },\n\n // ============================================\n // Flex/Grid Layout Attributes\n // ============================================\n { name: 'flex', type: 'boolean', description: 'Enable flexbox', example: 'flex' },\n { name: 'direction', type: 'enum', values: ['row', 'column', 'row-reverse', 'column-reverse'], description: 'Flex direction', example: 'direction=column' },\n { name: 'justify', type: 'enum', values: ['start', 'center', 'end', 'between', 'around', 'evenly'], description: 'Main axis alignment', example: 'justify=center' },\n { name: 'align', type: 'enum', values: ['start', 'center', 'end', 'stretch', 'baseline'], description: 'Cross axis alignment', example: 'align=center' },\n { name: 'wrap', type: 'boolean', description: 'Enable flex wrap', example: 'wrap' },\n { name: 'span', type: 'number', description: 'Grid column span (1-12)', example: 'span=6' },\n { name: 'sm', type: 'number', description: 'Responsive span at 576px+', example: 'sm=6' },\n { name: 'md', type: 'number', description: 'Responsive span at 768px+', example: 'md=4' },\n { name: 'lg', type: 'number', description: 'Responsive span at 992px+', example: 'lg=3' },\n { name: 'xl', type: 'number', description: 'Responsive span at 1200px+', example: 'xl=2' },\n { name: 'order', type: 'number', description: 'Flex order', example: 'order=1' },\n\n // ============================================\n // Position Attributes\n // ============================================\n { name: 'x', type: 'number', description: 'Horizontal position', example: 'x=100' },\n { name: 'y', type: 'number', description: 'Vertical position', example: 'y=50' },\n { name: 'position', type: 'enum', values: ['left', 'right', 'top', 'bottom', 'top-left', 'top-center', 'top-right', 'bottom-left', 'bottom-center', 'bottom-right'], description: 'Position preset', example: 'position=left' },\n\n // ============================================\n // Visual Attributes\n // ============================================\n { name: 'border', type: 'boolean', description: 'Show border', example: 'border' },\n { name: 'rounded', type: 'boolean', description: 'Apply border radius', example: 'rounded' },\n { name: 'shadow', type: 'enum', values: ['none', 'sm', 'md', 'lg', 'xl'], description: 'Box shadow', example: 'shadow=md' },\n { name: 'bg', type: 'enum', values: ['muted', 'primary', 'secondary'], description: 'Background variant', example: 'bg=muted' },\n\n // ============================================\n // Text Attributes\n // ============================================\n { name: 'size', type: 'enum', values: ['xs', 'sm', 'base', 'md', 'lg', 'xl', '2xl', '3xl'], description: 'Size preset', example: 'size=lg' },\n { name: 'weight', type: 'enum', values: ['normal', 'medium', 'semibold', 'bold'], description: 'Font weight', example: 'weight=bold' },\n { name: 'level', type: 'number', description: 'Heading level (1-6)', example: 'level=2' },\n { name: 'muted', type: 'boolean', description: 'Muted/dimmed style', example: 'muted' },\n { name: 'bold', type: 'boolean', description: 'Bold text', example: 'bold' },\n\n // ============================================\n // Button Variant Attributes\n // ============================================\n { name: 'primary', type: 'boolean', description: 'Primary style', example: 'primary' },\n { name: 'secondary', type: 'boolean', description: 'Secondary style', example: 'secondary' },\n { name: 'outline', type: 'boolean', description: 'Outline style', example: 'outline' },\n { name: 'ghost', type: 'boolean', description: 'Ghost/transparent style', example: 'ghost' },\n { name: 'danger', type: 'boolean', description: 'Danger/destructive style', example: 'danger' },\n\n // ============================================\n // Status Variant Attributes\n // ============================================\n { name: 'variant', type: 'enum', values: ['default', 'primary', 'secondary', 'success', 'warning', 'danger', 'info'], description: 'Status variant', example: 'variant=success' },\n\n // ============================================\n // Form Attributes\n // ============================================\n { name: 'inputType', type: 'enum', values: ['text', 'email', 'password', 'number', 'tel', 'url', 'search', 'date'], description: 'Input field type', example: 'inputType=email' },\n { name: 'placeholder', type: 'string', description: 'Placeholder text', example: 'placeholder=\"Enter text\"' },\n { name: 'value', type: 'string', description: 'Default value', example: 'value=\"default\"' },\n { name: 'label', type: 'string', description: 'Field label', example: 'label=\"Name\"' },\n { name: 'name', type: 'string', description: 'Form field name', example: 'name=\"field\"' },\n { name: 'required', type: 'boolean', description: 'Required field', example: 'required' },\n { name: 'disabled', type: 'boolean', description: 'Disabled state', example: 'disabled' },\n { name: 'readonly', type: 'boolean', description: 'Read-only state', example: 'readonly' },\n { name: 'checked', type: 'boolean', description: 'Checked state', example: 'checked' },\n { name: 'loading', type: 'boolean', description: 'Loading state', example: 'loading' },\n { name: 'rows', type: 'number', description: 'Textarea rows', example: 'rows=4' },\n { name: 'min', type: 'number', description: 'Minimum value', example: 'min=0' },\n { name: 'max', type: 'number', description: 'Maximum value', example: 'max=100' },\n { name: 'step', type: 'number', description: 'Step increment', example: 'step=1' },\n\n // ============================================\n // Content Attributes\n // ============================================\n { name: 'title', type: 'string', description: 'Title text', example: 'title=\"Title\"' },\n { name: 'src', type: 'string', description: 'Source URL', example: 'src=\"/image.png\"' },\n { name: 'alt', type: 'string', description: 'Alt text', example: 'alt=\"Image\"' },\n { name: 'href', type: 'string', description: 'Link URL', example: 'href=\"/path\"' },\n { name: 'icon', type: 'string', description: 'Icon name', example: 'icon=\"home\"' },\n { name: 'external', type: 'boolean', description: 'External link', example: 'external' },\n\n // ============================================\n // State Attributes\n // ============================================\n { name: 'active', type: 'number', description: 'Active index', example: 'active=0' },\n { name: 'expanded', type: 'boolean', description: 'Expanded state', example: 'expanded' },\n { name: 'centered', type: 'boolean', description: 'Center content', example: 'centered' },\n { name: 'vertical', type: 'boolean', description: 'Vertical orientation', example: 'vertical' },\n { name: 'scroll', type: 'boolean', description: 'Enable scrolling', example: 'scroll' },\n\n // ============================================\n // Feedback Attributes\n // ============================================\n { name: 'dismissible', type: 'boolean', description: 'Can be dismissed', example: 'dismissible' },\n { name: 'indeterminate', type: 'boolean', description: 'Indeterminate state', example: 'indeterminate' },\n { name: 'pill', type: 'boolean', description: 'Pill/rounded style', example: 'pill' },\n\n // ============================================\n // Data Attributes\n // ============================================\n { name: 'striped', type: 'boolean', description: 'Striped rows', example: 'striped' },\n { name: 'bordered', type: 'boolean', description: 'Full borders', example: 'bordered' },\n { name: 'hover', type: 'boolean', description: 'Hover effect', example: 'hover' },\n { name: 'ordered', type: 'boolean', description: 'Ordered list', example: 'ordered' },\n { name: 'none', type: 'boolean', description: 'No list markers', example: 'none' },\n\n // ============================================\n // Page/Viewport Attributes\n // ============================================\n { name: 'viewport', type: 'string', description: 'Viewport size (e.g., \"1440x900\")', example: 'viewport=\"1440x900\"' },\n { name: 'device', type: 'string', description: 'Device preset', example: 'device=\"iphone14\"' },\n];\n\n/**\n * Map of attribute name to definition for quick lookup\n */\nexport const ATTRIBUTE_MAP: Map<string, AttributeDef> = new Map(\n ATTRIBUTES.map((attr) => [attr.name, attr])\n);\n\n/**\n * Set of all valid attribute names\n */\nexport const VALID_ATTRIBUTE_NAMES: ReadonlySet<string> = new Set(\n ATTRIBUTES.map((attr) => attr.name)\n);\n","/**\n * Component definitions for Wireweave DSL\n *\n * Complete component definitions for editor integrations.\n * This is the authoritative source for editor-related component data.\n */\n\nimport type { ComponentDef } from './types.js';\nimport { COMMON_ATTRIBUTES } from './attributes.js';\n\n/**\n * All components in Wireweave DSL\n */\nexport const ALL_COMPONENTS: ComponentDef[] = [\n // ============================================\n // Layout Components\n // ============================================\n {\n name: 'page',\n nodeType: 'Page',\n category: 'layout',\n attributes: [...COMMON_ATTRIBUTES, 'title', 'width', 'height', 'viewport', 'device', 'centered'],\n hasChildren: true,\n description: 'Root container for a wireframe page',\n example: 'page \"Dashboard\" centered { ... }',\n validChildren: ['header', 'main', 'footer', 'sidebar', 'section', 'nav', 'row', 'col', 'card'],\n validParents: [],\n },\n {\n name: 'header',\n nodeType: 'Header',\n category: 'layout',\n attributes: [...COMMON_ATTRIBUTES, 'border'],\n hasChildren: true,\n description: 'Page header section',\n example: 'header h=56 border { ... }',\n validParents: ['page'],\n },\n {\n name: 'main',\n nodeType: 'Main',\n category: 'layout',\n attributes: [...COMMON_ATTRIBUTES, 'scroll'],\n hasChildren: true,\n description: 'Main content section',\n example: 'main p=6 scroll { ... }',\n validParents: ['page'],\n },\n {\n name: 'footer',\n nodeType: 'Footer',\n category: 'layout',\n attributes: [...COMMON_ATTRIBUTES, 'border'],\n hasChildren: true,\n description: 'Page footer section',\n example: 'footer h=48 border { ... }',\n validParents: ['page'],\n },\n {\n name: 'sidebar',\n nodeType: 'Sidebar',\n category: 'layout',\n attributes: [...COMMON_ATTRIBUTES, 'position', 'border', 'bg'],\n hasChildren: true,\n description: 'Side navigation or content area',\n example: 'sidebar w=240 border { ... }',\n validParents: ['page'],\n },\n {\n name: 'section',\n nodeType: 'Section',\n category: 'layout',\n attributes: [...COMMON_ATTRIBUTES, 'title', 'expanded'],\n hasChildren: true,\n description: 'Grouped content section',\n example: 'section \"Settings\" expanded { ... }',\n },\n\n // ============================================\n // Grid Components\n // ============================================\n {\n name: 'row',\n nodeType: 'Row',\n category: 'grid',\n attributes: [...COMMON_ATTRIBUTES, 'border', 'bg'],\n hasChildren: true,\n description: 'Horizontal flex container',\n example: 'row flex gap=4 justify=between { ... }',\n },\n {\n name: 'col',\n nodeType: 'Col',\n category: 'grid',\n attributes: [...COMMON_ATTRIBUTES, 'sm', 'md', 'lg', 'xl', 'order', 'border', 'bg', 'scroll'],\n hasChildren: true,\n description: 'Vertical flex container or grid column',\n example: 'col span=6 md=4 { ... }',\n },\n\n // ============================================\n // Container Components\n // ============================================\n {\n name: 'card',\n nodeType: 'Card',\n category: 'container',\n attributes: [...COMMON_ATTRIBUTES, 'title', 'shadow', 'border', 'rounded'],\n hasChildren: true,\n description: 'Card container with optional title',\n example: 'card \"Settings\" p=4 shadow=md { ... }',\n },\n {\n name: 'modal',\n nodeType: 'Modal',\n category: 'container',\n attributes: [...COMMON_ATTRIBUTES, 'title'],\n hasChildren: true,\n description: 'Modal dialog overlay',\n example: 'modal \"Confirm\" w=400 { ... }',\n },\n {\n name: 'drawer',\n nodeType: 'Drawer',\n category: 'container',\n attributes: [...COMMON_ATTRIBUTES, 'title', 'position'],\n hasChildren: true,\n description: 'Slide-in drawer panel',\n example: 'drawer \"Menu\" position=left { ... }',\n },\n {\n name: 'accordion',\n nodeType: 'Accordion',\n category: 'container',\n attributes: [...COMMON_ATTRIBUTES, 'title'],\n hasChildren: true,\n description: 'Collapsible sections container',\n example: 'accordion { section \"FAQ 1\" { ... } }',\n },\n\n // ============================================\n // Text Components\n // ============================================\n {\n name: 'text',\n nodeType: 'Text',\n category: 'text',\n attributes: [...COMMON_ATTRIBUTES, 'size', 'weight', 'muted', 'bold'],\n hasChildren: false,\n description: 'Text content',\n example: 'text \"Hello World\" size=lg weight=bold',\n },\n {\n name: 'title',\n nodeType: 'Title',\n category: 'text',\n attributes: [...COMMON_ATTRIBUTES, 'level', 'size'],\n hasChildren: false,\n description: 'Heading element (h1-h6)',\n example: 'title \"Welcome\" level=2',\n },\n {\n name: 'link',\n nodeType: 'Link',\n category: 'text',\n attributes: [...COMMON_ATTRIBUTES, 'href', 'external'],\n hasChildren: false,\n description: 'Hyperlink text',\n example: 'link \"Learn more\" href=\"/docs\" external',\n },\n\n // ============================================\n // Input Components\n // ============================================\n {\n name: 'input',\n nodeType: 'Input',\n category: 'input',\n attributes: [...COMMON_ATTRIBUTES, 'label', 'inputType', 'placeholder', 'value', 'disabled', 'required', 'readonly', 'icon', 'size', 'rounded'],\n hasChildren: false,\n description: 'Text input field',\n example: 'input \"Email\" inputType=email placeholder=\"user@example.com\" required',\n },\n {\n name: 'textarea',\n nodeType: 'Textarea',\n category: 'input',\n attributes: [...COMMON_ATTRIBUTES, 'label', 'placeholder', 'value', 'rows', 'disabled', 'required'],\n hasChildren: false,\n description: 'Multi-line text input',\n example: 'textarea \"Description\" rows=4 placeholder=\"Enter description...\"',\n },\n {\n name: 'select',\n nodeType: 'Select',\n category: 'input',\n attributes: [...COMMON_ATTRIBUTES, 'label', 'placeholder', 'value', 'disabled', 'required'],\n hasChildren: false,\n description: 'Dropdown select',\n example: 'select \"Country\" [\"USA\", \"Canada\", \"UK\"] placeholder=\"Select...\"',\n },\n {\n name: 'checkbox',\n nodeType: 'Checkbox',\n category: 'input',\n attributes: [...COMMON_ATTRIBUTES, 'label', 'checked', 'disabled'],\n hasChildren: false,\n description: 'Checkbox input',\n example: 'checkbox \"I agree to terms\" checked',\n },\n {\n name: 'radio',\n nodeType: 'Radio',\n category: 'input',\n attributes: [...COMMON_ATTRIBUTES, 'label', 'name', 'checked', 'disabled'],\n hasChildren: false,\n description: 'Radio button input',\n example: 'radio \"Option A\" name=\"choice\" checked',\n },\n {\n name: 'switch',\n nodeType: 'Switch',\n category: 'input',\n attributes: [...COMMON_ATTRIBUTES, 'label', 'checked', 'disabled'],\n hasChildren: false,\n description: 'Toggle switch',\n example: 'switch \"Dark mode\" checked',\n },\n {\n name: 'slider',\n nodeType: 'Slider',\n category: 'input',\n attributes: [...COMMON_ATTRIBUTES, 'label', 'min', 'max', 'value', 'step', 'disabled'],\n hasChildren: false,\n description: 'Range slider',\n example: 'slider \"Volume\" min=0 max=100 value=50',\n },\n {\n name: 'button',\n nodeType: 'Button',\n category: 'input',\n attributes: [...COMMON_ATTRIBUTES, 'primary', 'secondary', 'outline', 'ghost', 'danger', 'size', 'icon', 'disabled', 'loading'],\n hasChildren: false,\n description: 'Clickable button',\n example: 'button \"Submit\" primary icon=send',\n },\n\n // ============================================\n // Display Components\n // ============================================\n {\n name: 'image',\n nodeType: 'Image',\n category: 'display',\n attributes: [...COMMON_ATTRIBUTES, 'src', 'alt'],\n hasChildren: false,\n description: 'Image placeholder',\n example: 'image w=200 h=150',\n },\n {\n name: 'placeholder',\n nodeType: 'Placeholder',\n category: 'display',\n attributes: [...COMMON_ATTRIBUTES, 'label'],\n hasChildren: true,\n description: 'Generic placeholder',\n example: 'placeholder \"Banner Image\" w=full h=200 { ... }',\n },\n {\n name: 'avatar',\n nodeType: 'Avatar',\n category: 'display',\n attributes: [...COMMON_ATTRIBUTES, 'name', 'src', 'size'],\n hasChildren: false,\n description: 'User avatar',\n example: 'avatar \"John Doe\" size=lg',\n },\n {\n name: 'badge',\n nodeType: 'Badge',\n category: 'display',\n attributes: [...COMMON_ATTRIBUTES, 'variant', 'pill', 'icon', 'size'],\n hasChildren: false,\n description: 'Status badge',\n example: 'badge \"New\" variant=success pill',\n },\n {\n name: 'icon',\n nodeType: 'Icon',\n category: 'display',\n attributes: [...COMMON_ATTRIBUTES, 'size', 'muted'],\n hasChildren: false,\n description: 'Lucide icon',\n example: 'icon \"settings\" size=lg',\n },\n\n // ============================================\n // Data Components\n // ============================================\n {\n name: 'table',\n nodeType: 'Table',\n category: 'data',\n attributes: [...COMMON_ATTRIBUTES, 'striped', 'bordered', 'hover'],\n hasChildren: false,\n description: 'Data table',\n example: 'table striped bordered { columns [\"Name\", \"Email\"] row [\"John\", \"john@example.com\"] }',\n },\n {\n name: 'list',\n nodeType: 'List',\n category: 'data',\n attributes: [...COMMON_ATTRIBUTES, 'ordered', 'none'],\n hasChildren: false,\n description: 'List of items',\n example: 'list ordered [\"First\", \"Second\", \"Third\"]',\n },\n\n // ============================================\n // Feedback Components\n // ============================================\n {\n name: 'alert',\n nodeType: 'Alert',\n category: 'feedback',\n attributes: [...COMMON_ATTRIBUTES, 'variant', 'dismissible', 'icon'],\n hasChildren: false,\n description: 'Alert message',\n example: 'alert \"Changes saved!\" variant=success',\n },\n {\n name: 'toast',\n nodeType: 'Toast',\n category: 'feedback',\n attributes: [...COMMON_ATTRIBUTES, 'position', 'variant'],\n hasChildren: false,\n description: 'Toast notification',\n example: 'toast \"Item deleted\" position=bottom-right variant=danger',\n },\n {\n name: 'progress',\n nodeType: 'Progress',\n category: 'feedback',\n attributes: [...COMMON_ATTRIBUTES, 'value', 'max', 'label', 'indeterminate'],\n hasChildren: false,\n description: 'Progress bar',\n example: 'progress value=75 label=\"Uploading...\"',\n },\n {\n name: 'spinner',\n nodeType: 'Spinner',\n category: 'feedback',\n attributes: [...COMMON_ATTRIBUTES, 'label', 'size'],\n hasChildren: false,\n description: 'Loading spinner',\n example: 'spinner size=lg',\n },\n\n // ============================================\n // Overlay Components\n // ============================================\n {\n name: 'tooltip',\n nodeType: 'Tooltip',\n category: 'overlay',\n attributes: [...COMMON_ATTRIBUTES, 'position'],\n hasChildren: false,\n description: 'Tooltip on hover',\n example: 'tooltip \"More info\" position=top { icon \"help-circle\" }',\n },\n {\n name: 'popover',\n nodeType: 'Popover',\n category: 'overlay',\n attributes: [...COMMON_ATTRIBUTES, 'title'],\n hasChildren: true,\n description: 'Popover panel',\n example: 'popover \"Details\" { ... }',\n },\n {\n name: 'dropdown',\n nodeType: 'Dropdown',\n category: 'overlay',\n attributes: [...COMMON_ATTRIBUTES],\n hasChildren: false,\n description: 'Dropdown menu',\n example: 'dropdown { item \"Edit\" icon=edit item \"Delete\" icon=trash danger }',\n },\n\n // ============================================\n // Navigation Components\n // ============================================\n {\n name: 'nav',\n nodeType: 'Nav',\n category: 'navigation',\n attributes: [...COMMON_ATTRIBUTES, 'vertical'],\n hasChildren: false,\n description: 'Navigation menu',\n example: 'nav [{ label=\"Home\" icon=home active }, { label=\"Settings\" icon=settings }] vertical',\n },\n {\n name: 'tabs',\n nodeType: 'Tabs',\n category: 'navigation',\n attributes: [...COMMON_ATTRIBUTES, 'active'],\n hasChildren: true,\n description: 'Tab navigation',\n example: 'tabs { tab \"General\" active { ... } tab \"Advanced\" { ... } }',\n },\n {\n name: 'breadcrumb',\n nodeType: 'Breadcrumb',\n category: 'navigation',\n attributes: [...COMMON_ATTRIBUTES],\n hasChildren: false,\n description: 'Breadcrumb navigation',\n example: 'breadcrumb [{ label=\"Home\" href=\"/\" }, { label=\"Products\" }, { label=\"Details\" }]',\n },\n\n // ============================================\n // Divider Component\n // ============================================\n {\n name: 'divider',\n nodeType: 'Divider',\n category: 'layout',\n attributes: [...COMMON_ATTRIBUTES, 'vertical'],\n hasChildren: false,\n description: 'Horizontal separator',\n example: 'divider my=4',\n },\n];\n\n/**\n * Map of component name to definition for quick lookup\n */\nexport const COMPONENT_MAP: Map<string, ComponentDef> = new Map(\n ALL_COMPONENTS.map((comp) => [comp.name, comp])\n);\n\n/**\n * Map of AST node type to definition for quick lookup\n */\nexport const NODE_TYPE_MAP: Map<string, ComponentDef> = new Map(\n ALL_COMPONENTS.map((comp) => [comp.nodeType, comp])\n);\n\n/**\n * Set of all valid component names\n */\nexport const VALID_COMPONENT_NAMES: ReadonlySet<string> = new Set(\n ALL_COMPONENTS.map((comp) => comp.name)\n);\n","/**\n * Keywords and labels for Wireweave DSL\n */\n\nimport type { ComponentCategory } from './types.js';\n\n// Category labels for display\nexport const CATEGORY_LABELS: Record<ComponentCategory, string> = {\n layout: 'Layout',\n container: 'Container',\n grid: 'Grid',\n text: 'Text',\n input: 'Input',\n display: 'Display',\n data: 'Data',\n feedback: 'Feedback',\n overlay: 'Overlay',\n navigation: 'Navigation',\n};\n\n// Value keywords used in the language\nexport const VALUE_KEYWORDS = [\n // Booleans\n 'true',\n 'false',\n\n // Button variants\n 'primary',\n 'secondary',\n 'outline',\n 'ghost',\n\n // Status variants\n 'success',\n 'danger',\n 'warning',\n 'info',\n 'default',\n\n // Sizes\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n 'base',\n '2xl',\n '3xl',\n\n // Flex alignment\n 'start',\n 'center',\n 'end',\n 'between',\n 'around',\n 'evenly',\n 'stretch',\n 'baseline',\n\n // Positions\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n\n // Sizing\n 'full',\n 'auto',\n 'screen',\n 'fit',\n\n // Font weights\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n\n // Input types\n 'text',\n 'email',\n 'password',\n 'number',\n 'tel',\n 'url',\n 'search',\n 'date',\n\n // Flex direction\n 'row',\n 'column',\n 'row-reverse',\n 'column-reverse',\n\n // List\n 'none',\n 'nowrap',\n];\n\n// Common number suggestions for attributes\nexport const COMMON_NUMBERS = [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 32, 48, 64];\n\n// Spacing scale (4px base)\nexport const SPACING_SCALE: Record<number, string> = {\n 0: '0px',\n 1: '4px',\n 2: '8px',\n 3: '12px',\n 4: '16px',\n 5: '20px',\n 6: '24px',\n 8: '32px',\n 10: '40px',\n 12: '48px',\n 16: '64px',\n 20: '80px',\n 24: '96px',\n};\n","/**\n * Utility functions for Wireweave language data\n */\n\nimport type { ComponentDef, AttributeDef } from './types.js';\nimport { ALL_COMPONENTS, COMPONENT_MAP, NODE_TYPE_MAP } from './components.js';\nimport { ATTRIBUTES, ATTRIBUTE_MAP } from './attributes.js';\n\n/**\n * Get component definition by name\n */\nexport function getComponent(name: string): ComponentDef | undefined {\n return COMPONENT_MAP.get(name.toLowerCase());\n}\n\n/**\n * Get component definition by AST node type\n */\nexport function getComponentByNodeType(nodeType: string): ComponentDef | undefined {\n return NODE_TYPE_MAP.get(nodeType);\n}\n\n/**\n * Get attribute definition by name\n */\nexport function getAttribute(name: string): AttributeDef | undefined {\n return ATTRIBUTE_MAP.get(name);\n}\n\n/**\n * Get valid child components for a parent component\n */\nexport function getValidChildren(componentName: string): ComponentDef[] {\n const component = getComponent(componentName);\n if (!component || !component.hasChildren) return [];\n\n if (component.validChildren === undefined) {\n // All components except page are valid children\n return ALL_COMPONENTS.filter((c) => c.name !== 'page');\n }\n\n return component.validChildren\n .map((name) => getComponent(name))\n .filter((c): c is ComponentDef => c !== undefined);\n}\n\n/**\n * Check if a component is a valid child of another\n */\nexport function isValidChild(childName: string, parentName: string): boolean {\n const parent = getComponent(parentName);\n if (!parent || !parent.hasChildren) return false;\n\n if (parent.validChildren === undefined) return true;\n return parent.validChildren.includes(childName.toLowerCase());\n}\n\n/**\n * Get attribute definitions for a specific component\n */\nexport function getComponentAttributes(componentName: string): AttributeDef[] {\n const component = getComponent(componentName);\n if (!component) return ATTRIBUTES;\n\n return ATTRIBUTES.filter((attr) => component.attributes.includes(attr.name));\n}\n\n/**\n * Get all components in a category\n */\nexport function getComponentsByCategory(category: string): ComponentDef[] {\n return ALL_COMPONENTS.filter((c) => c.category === category);\n}\n\n/**\n * Get attribute type label for display\n */\nexport function getAttributeTypeLabel(attr: AttributeDef): string {\n if (attr.type === 'boolean') return 'boolean';\n if (attr.type === 'number') return 'number';\n if (attr.type === 'string' || attr.type === 'string[]') return 'string';\n if (attr.type === 'enum' && attr.values) {\n const preview = attr.values.slice(0, 3).join(' | ');\n return attr.values.length > 3 ? `${preview}...` : preview;\n }\n return attr.type;\n}\n\n/**\n * Format attribute values for display\n */\nexport function formatAttributeValues(attr: AttributeDef): string {\n if (attr.type === 'number') return 'Type: number';\n if (attr.type === 'string') return 'Type: string';\n if (attr.type === 'boolean') return 'Type: boolean (can be omitted)';\n if (attr.type === 'enum' && attr.values) {\n return `Values: ${attr.values.join(' | ')}`;\n }\n return `Type: ${attr.type}`;\n}\n\n/**\n * Check if a word is a known component\n */\nexport function isComponent(word: string): boolean {\n return COMPONENT_MAP.has(word.toLowerCase());\n}\n\n/**\n * Check if a word is a known attribute\n */\nexport function isAttribute(word: string): boolean {\n return ATTRIBUTE_MAP.has(word);\n}\n\n/**\n * Get all component names\n */\nexport function getComponentNames(): string[] {\n return ALL_COMPONENTS.map((c) => c.name);\n}\n\n/**\n * Get all attribute names\n */\nexport function getAttributeNames(): string[] {\n return ATTRIBUTES.map((a) => a.name);\n}\n\n/**\n * Get all unique categories\n */\nexport function getCategories(): string[] {\n return [...new Set(ALL_COMPONENTS.map((c) => c.category))];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACYO,IAAM,oBAAuC;AAAA;AAAA,EAElD;AAAA,EAAK;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACnC;AAAA,EAAK;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACnC;AAAA;AAAA,EAEA;AAAA,EAAK;AAAA,EAAK;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA;AAAA,EAElC;AAAA,EAAQ;AAAA,EAAa;AAAA,EAAW;AAAA,EAAS;AAAA;AAAA,EAEzC;AAAA;AAAA,EAEA;AAAA,EAAK;AACP;AAKO,IAAM,aAA6B;AAAA;AAAA;AAAA;AAAA,EAIxC,EAAE,MAAM,KAAK,MAAM,UAAU,aAAa,uBAAuB,SAAS,MAAM;AAAA,EAChF,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,sBAAsB,SAAS,OAAO;AAAA,EACjF,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,oBAAoB,SAAS,OAAO;AAAA,EAC/E,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,eAAe,SAAS,OAAO;AAAA,EAC1E,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,iBAAiB,SAAS,OAAO;AAAA,EAC5E,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,kBAAkB,SAAS,OAAO;AAAA,EAC7E,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,gBAAgB,SAAS,OAAO;AAAA,EAC3E,EAAE,MAAM,KAAK,MAAM,UAAU,aAAa,sBAAsB,SAAS,MAAM;AAAA,EAC/E,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,wCAAwC,SAAS,UAAU;AAAA,EACtG,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,mBAAmB,SAAS,OAAO;AAAA,EAC9E,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,cAAc,SAAS,OAAO;AAAA,EACzE,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,gBAAgB,SAAS,OAAO;AAAA,EAC3E,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,iBAAiB,SAAS,OAAO;AAAA,EAC5E,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,eAAe,SAAS,OAAO;AAAA,EAC1E,EAAE,MAAM,OAAO,MAAM,UAAU,aAAa,wBAAwB,SAAS,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKrF,EAAE,MAAM,KAAK,MAAM,UAAU,aAAa,mDAAmD,SAAS,SAAS;AAAA,EAC/G,EAAE,MAAM,KAAK,MAAM,UAAU,aAAa,6CAA6C,SAAS,SAAS;AAAA,EACzG,EAAE,MAAM,SAAS,MAAM,UAAU,aAAa,+BAA+B,SAAS,YAAY;AAAA,EAClG,EAAE,MAAM,UAAU,MAAM,UAAU,aAAa,gCAAgC,SAAS,aAAa;AAAA,EACrG,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,iBAAiB,SAAS,WAAW;AAAA,EAClF,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,iBAAiB,SAAS,WAAW;AAAA,EAClF,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,kBAAkB,SAAS,WAAW;AAAA,EACnF,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,kBAAkB,SAAS,WAAW;AAAA;AAAA;AAAA;AAAA,EAKnF,EAAE,MAAM,QAAQ,MAAM,WAAW,aAAa,kBAAkB,SAAS,OAAO;AAAA,EAChF,EAAE,MAAM,aAAa,MAAM,QAAQ,QAAQ,CAAC,OAAO,UAAU,eAAe,gBAAgB,GAAG,aAAa,kBAAkB,SAAS,mBAAmB;AAAA,EAC1J,EAAE,MAAM,WAAW,MAAM,QAAQ,QAAQ,CAAC,SAAS,UAAU,OAAO,WAAW,UAAU,QAAQ,GAAG,aAAa,uBAAuB,SAAS,iBAAiB;AAAA,EAClK,EAAE,MAAM,SAAS,MAAM,QAAQ,QAAQ,CAAC,SAAS,UAAU,OAAO,WAAW,UAAU,GAAG,aAAa,wBAAwB,SAAS,eAAe;AAAA,EACvJ,EAAE,MAAM,QAAQ,MAAM,WAAW,aAAa,oBAAoB,SAAS,OAAO;AAAA,EAClF,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,2BAA2B,SAAS,SAAS;AAAA,EAC1F,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,6BAA6B,SAAS,OAAO;AAAA,EACxF,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,6BAA6B,SAAS,OAAO;AAAA,EACxF,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,6BAA6B,SAAS,OAAO;AAAA,EACxF,EAAE,MAAM,MAAM,MAAM,UAAU,aAAa,8BAA8B,SAAS,OAAO;AAAA,EACzF,EAAE,MAAM,SAAS,MAAM,UAAU,aAAa,cAAc,SAAS,UAAU;AAAA;AAAA;AAAA;AAAA,EAK/E,EAAE,MAAM,KAAK,MAAM,UAAU,aAAa,uBAAuB,SAAS,QAAQ;AAAA,EAClF,EAAE,MAAM,KAAK,MAAM,UAAU,aAAa,qBAAqB,SAAS,OAAO;AAAA,EAC/E,EAAE,MAAM,YAAY,MAAM,QAAQ,QAAQ,CAAC,QAAQ,SAAS,OAAO,UAAU,YAAY,cAAc,aAAa,eAAe,iBAAiB,cAAc,GAAG,aAAa,mBAAmB,SAAS,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAK9N,EAAE,MAAM,UAAU,MAAM,WAAW,aAAa,eAAe,SAAS,SAAS;AAAA,EACjF,EAAE,MAAM,WAAW,MAAM,WAAW,aAAa,uBAAuB,SAAS,UAAU;AAAA,EAC3F,EAAE,MAAM,UAAU,MAAM,QAAQ,QAAQ,CAAC,QAAQ,MAAM,MAAM,MAAM,IAAI,GAAG,aAAa,cAAc,SAAS,YAAY;AAAA,EAC1H,EAAE,MAAM,MAAM,MAAM,QAAQ,QAAQ,CAAC,SAAS,WAAW,WAAW,GAAG,aAAa,sBAAsB,SAAS,WAAW;AAAA;AAAA;AAAA;AAAA,EAK9H,EAAE,MAAM,QAAQ,MAAM,QAAQ,QAAQ,CAAC,MAAM,MAAM,QAAQ,MAAM,MAAM,MAAM,OAAO,KAAK,GAAG,aAAa,eAAe,SAAS,UAAU;AAAA,EAC3I,EAAE,MAAM,UAAU,MAAM,QAAQ,QAAQ,CAAC,UAAU,UAAU,YAAY,MAAM,GAAG,aAAa,eAAe,SAAS,cAAc;AAAA,EACrI,EAAE,MAAM,SAAS,MAAM,UAAU,aAAa,uBAAuB,SAAS,UAAU;AAAA,EACxF,EAAE,MAAM,SAAS,MAAM,WAAW,aAAa,sBAAsB,SAAS,QAAQ;AAAA,EACtF,EAAE,MAAM,QAAQ,MAAM,WAAW,aAAa,aAAa,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA,EAK3E,EAAE,MAAM,WAAW,MAAM,WAAW,aAAa,iBAAiB,SAAS,UAAU;AAAA,EACrF,EAAE,MAAM,aAAa,MAAM,WAAW,aAAa,mBAAmB,SAAS,YAAY;AAAA,EAC3F,EAAE,MAAM,WAAW,MAAM,WAAW,aAAa,iBAAiB,SAAS,UAAU;AAAA,EACrF,EAAE,MAAM,SAAS,MAAM,WAAW,aAAa,2BAA2B,SAAS,QAAQ;AAAA,EAC3F,EAAE,MAAM,UAAU,MAAM,WAAW,aAAa,4BAA4B,SAAS,SAAS;AAAA;AAAA;AAAA;AAAA,EAK9F,EAAE,MAAM,WAAW,MAAM,QAAQ,QAAQ,CAAC,WAAW,WAAW,aAAa,WAAW,WAAW,UAAU,MAAM,GAAG,aAAa,kBAAkB,SAAS,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAKhL,EAAE,MAAM,aAAa,MAAM,QAAQ,QAAQ,CAAC,QAAQ,SAAS,YAAY,UAAU,OAAO,OAAO,UAAU,MAAM,GAAG,aAAa,oBAAoB,SAAS,kBAAkB;AAAA,EAChL,EAAE,MAAM,eAAe,MAAM,UAAU,aAAa,oBAAoB,SAAS,2BAA2B;AAAA,EAC5G,EAAE,MAAM,SAAS,MAAM,UAAU,aAAa,iBAAiB,SAAS,kBAAkB;AAAA,EAC1F,EAAE,MAAM,SAAS,MAAM,UAAU,aAAa,eAAe,SAAS,eAAe;AAAA,EACrF,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,mBAAmB,SAAS,eAAe;AAAA,EACxF,EAAE,MAAM,YAAY,MAAM,WAAW,aAAa,kBAAkB,SAAS,WAAW;AAAA,EACxF,EAAE,MAAM,YAAY,MAAM,WAAW,aAAa,kBAAkB,SAAS,WAAW;AAAA,EACxF,EAAE,MAAM,YAAY,MAAM,WAAW,aAAa,mBAAmB,SAAS,WAAW;AAAA,EACzF,EAAE,MAAM,WAAW,MAAM,WAAW,aAAa,iBAAiB,SAAS,UAAU;AAAA,EACrF,EAAE,MAAM,WAAW,MAAM,WAAW,aAAa,iBAAiB,SAAS,UAAU;AAAA,EACrF,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,iBAAiB,SAAS,SAAS;AAAA,EAChF,EAAE,MAAM,OAAO,MAAM,UAAU,aAAa,iBAAiB,SAAS,QAAQ;AAAA,EAC9E,EAAE,MAAM,OAAO,MAAM,UAAU,aAAa,iBAAiB,SAAS,UAAU;AAAA,EAChF,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,kBAAkB,SAAS,SAAS;AAAA;AAAA;AAAA;AAAA,EAKjF,EAAE,MAAM,SAAS,MAAM,UAAU,aAAa,cAAc,SAAS,gBAAgB;AAAA,EACrF,EAAE,MAAM,OAAO,MAAM,UAAU,aAAa,cAAc,SAAS,mBAAmB;AAAA,EACtF,EAAE,MAAM,OAAO,MAAM,UAAU,aAAa,YAAY,SAAS,cAAc;AAAA,EAC/E,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,YAAY,SAAS,eAAe;AAAA,EACjF,EAAE,MAAM,QAAQ,MAAM,UAAU,aAAa,aAAa,SAAS,cAAc;AAAA,EACjF,EAAE,MAAM,YAAY,MAAM,WAAW,aAAa,iBAAiB,SAAS,WAAW;AAAA;AAAA;AAAA;AAAA,EAKvF,EAAE,MAAM,UAAU,MAAM,UAAU,aAAa,gBAAgB,SAAS,WAAW;AAAA,EACnF,EAAE,MAAM,YAAY,MAAM,WAAW,aAAa,kBAAkB,SAAS,WAAW;AAAA,EACxF,EAAE,MAAM,YAAY,MAAM,WAAW,aAAa,kBAAkB,SAAS,WAAW;AAAA,EACxF,EAAE,MAAM,YAAY,MAAM,WAAW,aAAa,wBAAwB,SAAS,WAAW;AAAA,EAC9F,EAAE,MAAM,UAAU,MAAM,WAAW,aAAa,oBAAoB,SAAS,SAAS;AAAA;AAAA;AAAA;AAAA,EAKtF,EAAE,MAAM,eAAe,MAAM,WAAW,aAAa,oBAAoB,SAAS,cAAc;AAAA,EAChG,EAAE,MAAM,iBAAiB,MAAM,WAAW,aAAa,uBAAuB,SAAS,gBAAgB;AAAA,EACvG,EAAE,MAAM,QAAQ,MAAM,WAAW,aAAa,sBAAsB,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA,EAKpF,EAAE,MAAM,WAAW,MAAM,WAAW,aAAa,gBAAgB,SAAS,UAAU;AAAA,EACpF,EAAE,MAAM,YAAY,MAAM,WAAW,aAAa,gBAAgB,SAAS,WAAW;AAAA,EACtF,EAAE,MAAM,SAAS,MAAM,WAAW,aAAa,gBAAgB,SAAS,QAAQ;AAAA,EAChF,EAAE,MAAM,WAAW,MAAM,WAAW,aAAa,gBAAgB,SAAS,UAAU;AAAA,EACpF,EAAE,MAAM,QAAQ,MAAM,WAAW,aAAa,mBAAmB,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA,EAKjF,EAAE,MAAM,YAAY,MAAM,UAAU,aAAa,oCAAoC,SAAS,sBAAsB;AAAA,EACpH,EAAE,MAAM,UAAU,MAAM,UAAU,aAAa,iBAAiB,SAAS,oBAAoB;AAC/F;AAKO,IAAM,gBAA2C,IAAI;AAAA,EAC1D,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC;AAC5C;AAKO,IAAM,wBAA6C,IAAI;AAAA,EAC5D,WAAW,IAAI,CAAC,SAAS,KAAK,IAAI;AACpC;;;AC9KO,IAAM,iBAAiC;AAAA;AAAA;AAAA;AAAA,EAI5C;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,SAAS,UAAU,YAAY,UAAU,UAAU;AAAA,IAC/F,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,eAAe,CAAC,UAAU,QAAQ,UAAU,WAAW,WAAW,OAAO,OAAO,OAAO,MAAM;AAAA,IAC7F,cAAc,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,QAAQ;AAAA,IAC3C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc,CAAC,MAAM;AAAA,EACvB;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,QAAQ;AAAA,IAC3C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc,CAAC,MAAM;AAAA,EACvB;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,QAAQ;AAAA,IAC3C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc,CAAC,MAAM;AAAA,EACvB;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,YAAY,UAAU,IAAI;AAAA,IAC7D,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,IACT,cAAc,CAAC,MAAM;AAAA,EACvB;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,UAAU;AAAA,IACtD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,UAAU,IAAI;AAAA,IACjD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,MAAM,MAAM,MAAM,MAAM,SAAS,UAAU,MAAM,QAAQ;AAAA,IAC5F,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,UAAU,UAAU,SAAS;AAAA,IACzE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,OAAO;AAAA,IAC1C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,UAAU;AAAA,IACtD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,OAAO;AAAA,IAC1C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,QAAQ,UAAU,SAAS,MAAM;AAAA,IACpE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,MAAM;AAAA,IAClD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,QAAQ,UAAU;AAAA,IACrD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,aAAa,eAAe,SAAS,YAAY,YAAY,YAAY,QAAQ,QAAQ,SAAS;AAAA,IAC9I,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,eAAe,SAAS,QAAQ,YAAY,UAAU;AAAA,IAClG,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,eAAe,SAAS,YAAY,UAAU;AAAA,IAC1F,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,WAAW,UAAU;AAAA,IACjE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,QAAQ,WAAW,UAAU;AAAA,IACzE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,WAAW,UAAU;AAAA,IACjE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,OAAO,OAAO,SAAS,QAAQ,UAAU;AAAA,IACrF,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,WAAW,aAAa,WAAW,SAAS,UAAU,QAAQ,QAAQ,YAAY,SAAS;AAAA,IAC9H,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,OAAO,KAAK;AAAA,IAC/C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,OAAO;AAAA,IAC1C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,QAAQ,OAAO,MAAM;AAAA,IACxD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,WAAW,QAAQ,QAAQ,MAAM;AAAA,IACpE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,QAAQ,OAAO;AAAA,IAClD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,WAAW,YAAY,OAAO;AAAA,IACjE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,WAAW,MAAM;AAAA,IACpD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,WAAW,eAAe,MAAM;AAAA,IACnE,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,YAAY,SAAS;AAAA,IACxD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,OAAO,SAAS,eAAe;AAAA,IAC3E,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,SAAS,MAAM;AAAA,IAClD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,UAAU;AAAA,IAC7C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,OAAO;AAAA,IAC1C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,iBAAiB;AAAA,IACjC,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,UAAU;AAAA,IAC7C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,QAAQ;AAAA,IAC3C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,iBAAiB;AAAA,IACjC,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,IACE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,UAAU;AAAA,IACV,YAAY,CAAC,GAAG,mBAAmB,UAAU;AAAA,IAC7C,aAAa;AAAA,IACb,aAAa;AAAA,IACb,SAAS;AAAA,EACX;AACF;AAKO,IAAM,gBAA2C,IAAI;AAAA,EAC1D,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC;AAChD;AAKO,IAAM,gBAA2C,IAAI;AAAA,EAC1D,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,UAAU,IAAI,CAAC;AACpD;AAKO,IAAM,wBAA6C,IAAI;AAAA,EAC5D,eAAe,IAAI,CAAC,SAAS,KAAK,IAAI;AACxC;;;AC9bO,IAAM,kBAAqD;AAAA,EAChE,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AACd;AAGO,IAAM,iBAAiB;AAAA;AAAA,EAE5B;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AACF;AAGO,IAAM,iBAAiB,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE;AAG9E,IAAM,gBAAwC;AAAA,EACnD,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;;;AC/GO,SAAS,aAAa,MAAwC;AACnE,SAAO,cAAc,IAAI,KAAK,YAAY,CAAC;AAC7C;AAKO,SAAS,uBAAuB,UAA4C;AACjF,SAAO,cAAc,IAAI,QAAQ;AACnC;AAKO,SAAS,aAAa,MAAwC;AACnE,SAAO,cAAc,IAAI,IAAI;AAC/B;AAKO,SAAS,iBAAiB,eAAuC;AACtE,QAAM,YAAY,aAAa,aAAa;AAC5C,MAAI,CAAC,aAAa,CAAC,UAAU,YAAa,QAAO,CAAC;AAElD,MAAI,UAAU,kBAAkB,QAAW;AAEzC,WAAO,eAAe,OAAO,CAAC,MAAM,EAAE,SAAS,MAAM;AAAA,EACvD;AAEA,SAAO,UAAU,cACd,IAAI,CAAC,SAAS,aAAa,IAAI,CAAC,EAChC,OAAO,CAAC,MAAyB,MAAM,MAAS;AACrD;AAKO,SAAS,aAAa,WAAmB,YAA6B;AAC3E,QAAM,SAAS,aAAa,UAAU;AACtC,MAAI,CAAC,UAAU,CAAC,OAAO,YAAa,QAAO;AAE3C,MAAI,OAAO,kBAAkB,OAAW,QAAO;AAC/C,SAAO,OAAO,cAAc,SAAS,UAAU,YAAY,CAAC;AAC9D;AAKO,SAAS,uBAAuB,eAAuC;AAC5E,QAAM,YAAY,aAAa,aAAa;AAC5C,MAAI,CAAC,UAAW,QAAO;AAEvB,SAAO,WAAW,OAAO,CAAC,SAAS,UAAU,WAAW,SAAS,KAAK,IAAI,CAAC;AAC7E;AAKO,SAAS,wBAAwB,UAAkC;AACxE,SAAO,eAAe,OAAO,CAAC,MAAM,EAAE,aAAa,QAAQ;AAC7D;AAKO,SAAS,sBAAsB,MAA4B;AAChE,MAAI,KAAK,SAAS,UAAW,QAAO;AACpC,MAAI,KAAK,SAAS,SAAU,QAAO;AACnC,MAAI,KAAK,SAAS,YAAY,KAAK,SAAS,WAAY,QAAO;AAC/D,MAAI,KAAK,SAAS,UAAU,KAAK,QAAQ;AACvC,UAAM,UAAU,KAAK,OAAO,MAAM,GAAG,CAAC,EAAE,KAAK,KAAK;AAClD,WAAO,KAAK,OAAO,SAAS,IAAI,GAAG,OAAO,QAAQ;AAAA,EACpD;AACA,SAAO,KAAK;AACd;AAKO,SAAS,sBAAsB,MAA4B;AAChE,MAAI,KAAK,SAAS,SAAU,QAAO;AACnC,MAAI,KAAK,SAAS,SAAU,QAAO;AACnC,MAAI,KAAK,SAAS,UAAW,QAAO;AACpC,MAAI,KAAK,SAAS,UAAU,KAAK,QAAQ;AACvC,WAAO,WAAW,KAAK,OAAO,KAAK,KAAK,CAAC;AAAA,EAC3C;AACA,SAAO,SAAS,KAAK,IAAI;AAC3B;AAKO,SAAS,YAAY,MAAuB;AACjD,SAAO,cAAc,IAAI,KAAK,YAAY,CAAC;AAC7C;AAKO,SAAS,YAAY,MAAuB;AACjD,SAAO,cAAc,IAAI,IAAI;AAC/B;AAKO,SAAS,oBAA8B;AAC5C,SAAO,eAAe,IAAI,CAAC,MAAM,EAAE,IAAI;AACzC;AAKO,SAAS,oBAA8B;AAC5C,SAAO,WAAW,IAAI,CAAC,MAAM,EAAE,IAAI;AACrC;AAKO,SAAS,gBAA0B;AACxC,SAAO,CAAC,GAAG,IAAI,IAAI,eAAe,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC3D;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,36 +1,103 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Type definitions for Wireweave language data
|
|
3
|
+
*
|
|
4
|
+
* Editor-specific types for IDE integrations.
|
|
5
|
+
* This package is independent of @wireweave/core.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Attribute value type
|
|
9
|
+
*/
|
|
10
|
+
type AttributeValueType = 'boolean' | 'number' | 'string' | 'string[]' | 'enum';
|
|
11
|
+
/**
|
|
12
|
+
* Component category
|
|
13
|
+
*/
|
|
14
|
+
type ComponentCategory = 'layout' | 'grid' | 'container' | 'text' | 'input' | 'display' | 'data' | 'feedback' | 'overlay' | 'navigation';
|
|
15
|
+
/**
|
|
16
|
+
* Component definition for editors
|
|
3
17
|
*/
|
|
4
|
-
type ComponentCategory = 'layout' | 'container' | 'grid' | 'text' | 'input' | 'display' | 'data' | 'feedback' | 'overlay' | 'navigation';
|
|
5
18
|
interface ComponentDef {
|
|
19
|
+
/** Component name (lowercase, as used in DSL) */
|
|
6
20
|
name: string;
|
|
7
|
-
|
|
21
|
+
/** AST node type (PascalCase) */
|
|
22
|
+
nodeType: string;
|
|
23
|
+
/** Component category */
|
|
8
24
|
category: ComponentCategory;
|
|
25
|
+
/** Valid attributes for this component */
|
|
9
26
|
attributes: string[];
|
|
27
|
+
/** Whether this component can have children */
|
|
10
28
|
hasChildren: boolean;
|
|
29
|
+
/** Human-readable description */
|
|
30
|
+
description: string;
|
|
31
|
+
/** Code example for documentation */
|
|
32
|
+
example: string;
|
|
33
|
+
/** Valid child components (for autocomplete) */
|
|
11
34
|
validChildren?: string[];
|
|
35
|
+
/** Valid parent components (for validation hints) */
|
|
12
36
|
validParents?: string[];
|
|
13
|
-
example?: string;
|
|
14
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Attribute definition for editors
|
|
40
|
+
*/
|
|
15
41
|
interface AttributeDef {
|
|
42
|
+
/** Attribute name */
|
|
16
43
|
name: string;
|
|
44
|
+
/** Value type */
|
|
45
|
+
type: AttributeValueType;
|
|
46
|
+
/** Enum values (if type is 'enum') */
|
|
47
|
+
values?: string[];
|
|
48
|
+
/** Human-readable description */
|
|
17
49
|
description: string;
|
|
18
|
-
|
|
19
|
-
example
|
|
50
|
+
/** Code example for documentation */
|
|
51
|
+
example: string;
|
|
20
52
|
}
|
|
21
53
|
|
|
22
54
|
/**
|
|
23
55
|
* Component definitions for Wireweave DSL
|
|
24
|
-
*
|
|
56
|
+
*
|
|
57
|
+
* Complete component definitions for editor integrations.
|
|
58
|
+
* This is the authoritative source for editor-related component data.
|
|
25
59
|
*/
|
|
26
60
|
|
|
61
|
+
/**
|
|
62
|
+
* All components in Wireweave DSL
|
|
63
|
+
*/
|
|
27
64
|
declare const ALL_COMPONENTS: ComponentDef[];
|
|
65
|
+
/**
|
|
66
|
+
* Map of component name to definition for quick lookup
|
|
67
|
+
*/
|
|
68
|
+
declare const COMPONENT_MAP: Map<string, ComponentDef>;
|
|
69
|
+
/**
|
|
70
|
+
* Map of AST node type to definition for quick lookup
|
|
71
|
+
*/
|
|
72
|
+
declare const NODE_TYPE_MAP: Map<string, ComponentDef>;
|
|
73
|
+
/**
|
|
74
|
+
* Set of all valid component names
|
|
75
|
+
*/
|
|
76
|
+
declare const VALID_COMPONENT_NAMES: ReadonlySet<string>;
|
|
28
77
|
|
|
29
78
|
/**
|
|
30
79
|
* Attribute definitions for Wireweave DSL
|
|
80
|
+
*
|
|
81
|
+
* Complete attribute definitions for editor integrations.
|
|
82
|
+
* This is the authoritative source for editor-related attribute data.
|
|
31
83
|
*/
|
|
32
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Common attributes available to most components
|
|
87
|
+
*/
|
|
88
|
+
declare const COMMON_ATTRIBUTES: readonly string[];
|
|
89
|
+
/**
|
|
90
|
+
* All attributes in Wireweave DSL
|
|
91
|
+
*/
|
|
33
92
|
declare const ATTRIBUTES: AttributeDef[];
|
|
93
|
+
/**
|
|
94
|
+
* Map of attribute name to definition for quick lookup
|
|
95
|
+
*/
|
|
96
|
+
declare const ATTRIBUTE_MAP: Map<string, AttributeDef>;
|
|
97
|
+
/**
|
|
98
|
+
* Set of all valid attribute names
|
|
99
|
+
*/
|
|
100
|
+
declare const VALID_ATTRIBUTE_NAMES: ReadonlySet<string>;
|
|
34
101
|
|
|
35
102
|
/**
|
|
36
103
|
* Keywords and labels for Wireweave DSL
|
|
@@ -49,6 +116,10 @@ declare const SPACING_SCALE: Record<number, string>;
|
|
|
49
116
|
* Get component definition by name
|
|
50
117
|
*/
|
|
51
118
|
declare function getComponent(name: string): ComponentDef | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* Get component definition by AST node type
|
|
121
|
+
*/
|
|
122
|
+
declare function getComponentByNodeType(nodeType: string): ComponentDef | undefined;
|
|
52
123
|
/**
|
|
53
124
|
* Get attribute definition by name
|
|
54
125
|
*/
|
|
@@ -93,5 +164,9 @@ declare function getComponentNames(): string[];
|
|
|
93
164
|
* Get all attribute names
|
|
94
165
|
*/
|
|
95
166
|
declare function getAttributeNames(): string[];
|
|
167
|
+
/**
|
|
168
|
+
* Get all unique categories
|
|
169
|
+
*/
|
|
170
|
+
declare function getCategories(): string[];
|
|
96
171
|
|
|
97
|
-
export { ALL_COMPONENTS, ATTRIBUTES, type AttributeDef, CATEGORY_LABELS, COMMON_NUMBERS, type ComponentCategory, type ComponentDef, SPACING_SCALE, VALUE_KEYWORDS, formatAttributeValues, getAttribute, getAttributeNames, getAttributeTypeLabel, getComponent, getComponentAttributes, getComponentNames, getComponentsByCategory, getValidChildren, isAttribute, isComponent, isValidChild };
|
|
172
|
+
export { ALL_COMPONENTS, ATTRIBUTES, ATTRIBUTE_MAP, type AttributeDef, type AttributeValueType, CATEGORY_LABELS, COMMON_ATTRIBUTES, COMMON_NUMBERS, COMPONENT_MAP, type ComponentCategory, type ComponentDef, NODE_TYPE_MAP, SPACING_SCALE, VALID_ATTRIBUTE_NAMES, VALID_COMPONENT_NAMES, VALUE_KEYWORDS, formatAttributeValues, getAttribute, getAttributeNames, getAttributeTypeLabel, getCategories, getComponent, getComponentAttributes, getComponentByNodeType, getComponentNames, getComponentsByCategory, getValidChildren, isAttribute, isComponent, isValidChild };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,36 +1,103 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Type definitions for Wireweave language data
|
|
3
|
+
*
|
|
4
|
+
* Editor-specific types for IDE integrations.
|
|
5
|
+
* This package is independent of @wireweave/core.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Attribute value type
|
|
9
|
+
*/
|
|
10
|
+
type AttributeValueType = 'boolean' | 'number' | 'string' | 'string[]' | 'enum';
|
|
11
|
+
/**
|
|
12
|
+
* Component category
|
|
13
|
+
*/
|
|
14
|
+
type ComponentCategory = 'layout' | 'grid' | 'container' | 'text' | 'input' | 'display' | 'data' | 'feedback' | 'overlay' | 'navigation';
|
|
15
|
+
/**
|
|
16
|
+
* Component definition for editors
|
|
3
17
|
*/
|
|
4
|
-
type ComponentCategory = 'layout' | 'container' | 'grid' | 'text' | 'input' | 'display' | 'data' | 'feedback' | 'overlay' | 'navigation';
|
|
5
18
|
interface ComponentDef {
|
|
19
|
+
/** Component name (lowercase, as used in DSL) */
|
|
6
20
|
name: string;
|
|
7
|
-
|
|
21
|
+
/** AST node type (PascalCase) */
|
|
22
|
+
nodeType: string;
|
|
23
|
+
/** Component category */
|
|
8
24
|
category: ComponentCategory;
|
|
25
|
+
/** Valid attributes for this component */
|
|
9
26
|
attributes: string[];
|
|
27
|
+
/** Whether this component can have children */
|
|
10
28
|
hasChildren: boolean;
|
|
29
|
+
/** Human-readable description */
|
|
30
|
+
description: string;
|
|
31
|
+
/** Code example for documentation */
|
|
32
|
+
example: string;
|
|
33
|
+
/** Valid child components (for autocomplete) */
|
|
11
34
|
validChildren?: string[];
|
|
35
|
+
/** Valid parent components (for validation hints) */
|
|
12
36
|
validParents?: string[];
|
|
13
|
-
example?: string;
|
|
14
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Attribute definition for editors
|
|
40
|
+
*/
|
|
15
41
|
interface AttributeDef {
|
|
42
|
+
/** Attribute name */
|
|
16
43
|
name: string;
|
|
44
|
+
/** Value type */
|
|
45
|
+
type: AttributeValueType;
|
|
46
|
+
/** Enum values (if type is 'enum') */
|
|
47
|
+
values?: string[];
|
|
48
|
+
/** Human-readable description */
|
|
17
49
|
description: string;
|
|
18
|
-
|
|
19
|
-
example
|
|
50
|
+
/** Code example for documentation */
|
|
51
|
+
example: string;
|
|
20
52
|
}
|
|
21
53
|
|
|
22
54
|
/**
|
|
23
55
|
* Component definitions for Wireweave DSL
|
|
24
|
-
*
|
|
56
|
+
*
|
|
57
|
+
* Complete component definitions for editor integrations.
|
|
58
|
+
* This is the authoritative source for editor-related component data.
|
|
25
59
|
*/
|
|
26
60
|
|
|
61
|
+
/**
|
|
62
|
+
* All components in Wireweave DSL
|
|
63
|
+
*/
|
|
27
64
|
declare const ALL_COMPONENTS: ComponentDef[];
|
|
65
|
+
/**
|
|
66
|
+
* Map of component name to definition for quick lookup
|
|
67
|
+
*/
|
|
68
|
+
declare const COMPONENT_MAP: Map<string, ComponentDef>;
|
|
69
|
+
/**
|
|
70
|
+
* Map of AST node type to definition for quick lookup
|
|
71
|
+
*/
|
|
72
|
+
declare const NODE_TYPE_MAP: Map<string, ComponentDef>;
|
|
73
|
+
/**
|
|
74
|
+
* Set of all valid component names
|
|
75
|
+
*/
|
|
76
|
+
declare const VALID_COMPONENT_NAMES: ReadonlySet<string>;
|
|
28
77
|
|
|
29
78
|
/**
|
|
30
79
|
* Attribute definitions for Wireweave DSL
|
|
80
|
+
*
|
|
81
|
+
* Complete attribute definitions for editor integrations.
|
|
82
|
+
* This is the authoritative source for editor-related attribute data.
|
|
31
83
|
*/
|
|
32
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Common attributes available to most components
|
|
87
|
+
*/
|
|
88
|
+
declare const COMMON_ATTRIBUTES: readonly string[];
|
|
89
|
+
/**
|
|
90
|
+
* All attributes in Wireweave DSL
|
|
91
|
+
*/
|
|
33
92
|
declare const ATTRIBUTES: AttributeDef[];
|
|
93
|
+
/**
|
|
94
|
+
* Map of attribute name to definition for quick lookup
|
|
95
|
+
*/
|
|
96
|
+
declare const ATTRIBUTE_MAP: Map<string, AttributeDef>;
|
|
97
|
+
/**
|
|
98
|
+
* Set of all valid attribute names
|
|
99
|
+
*/
|
|
100
|
+
declare const VALID_ATTRIBUTE_NAMES: ReadonlySet<string>;
|
|
34
101
|
|
|
35
102
|
/**
|
|
36
103
|
* Keywords and labels for Wireweave DSL
|
|
@@ -49,6 +116,10 @@ declare const SPACING_SCALE: Record<number, string>;
|
|
|
49
116
|
* Get component definition by name
|
|
50
117
|
*/
|
|
51
118
|
declare function getComponent(name: string): ComponentDef | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* Get component definition by AST node type
|
|
121
|
+
*/
|
|
122
|
+
declare function getComponentByNodeType(nodeType: string): ComponentDef | undefined;
|
|
52
123
|
/**
|
|
53
124
|
* Get attribute definition by name
|
|
54
125
|
*/
|
|
@@ -93,5 +164,9 @@ declare function getComponentNames(): string[];
|
|
|
93
164
|
* Get all attribute names
|
|
94
165
|
*/
|
|
95
166
|
declare function getAttributeNames(): string[];
|
|
167
|
+
/**
|
|
168
|
+
* Get all unique categories
|
|
169
|
+
*/
|
|
170
|
+
declare function getCategories(): string[];
|
|
96
171
|
|
|
97
|
-
export { ALL_COMPONENTS, ATTRIBUTES, type AttributeDef, CATEGORY_LABELS, COMMON_NUMBERS, type ComponentCategory, type ComponentDef, SPACING_SCALE, VALUE_KEYWORDS, formatAttributeValues, getAttribute, getAttributeNames, getAttributeTypeLabel, getComponent, getComponentAttributes, getComponentNames, getComponentsByCategory, getValidChildren, isAttribute, isComponent, isValidChild };
|
|
172
|
+
export { ALL_COMPONENTS, ATTRIBUTES, ATTRIBUTE_MAP, type AttributeDef, type AttributeValueType, CATEGORY_LABELS, COMMON_ATTRIBUTES, COMMON_NUMBERS, COMPONENT_MAP, type ComponentCategory, type ComponentDef, NODE_TYPE_MAP, SPACING_SCALE, VALID_ATTRIBUTE_NAMES, VALID_COMPONENT_NAMES, VALUE_KEYWORDS, formatAttributeValues, getAttribute, getAttributeNames, getAttributeTypeLabel, getCategories, getComponent, getComponentAttributes, getComponentByNodeType, getComponentNames, getComponentsByCategory, getValidChildren, isAttribute, isComponent, isValidChild };
|