{"version":3,"sources":["../src/catalog.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// =============================================================================\n// Standard Component Definitions for Ink (Terminal)\n// =============================================================================\n\n/**\n * Standard component definitions for Ink terminal catalogs.\n *\n * These can be used directly or extended with custom components.\n * All components are built using Ink core primitives only.\n */\nexport const standardComponentDefinitions = {\n  // ==========================================================================\n  // Layout Components (Ink Primitives)\n  // ==========================================================================\n\n  Box: {\n    props: z.object({\n      flexDirection: z\n        .enum([\"row\", \"row-reverse\", \"column\", \"column-reverse\"])\n        .nullable(),\n      alignItems: z\n        .enum([\"flex-start\", \"center\", \"flex-end\", \"stretch\"])\n        .nullable(),\n      justifyContent: z\n        .enum([\n          \"flex-start\",\n          \"center\",\n          \"flex-end\",\n          \"space-between\",\n          \"space-around\",\n          \"space-evenly\",\n        ])\n        .nullable(),\n      flexGrow: z.number().nullable(),\n      flexShrink: z.number().nullable(),\n      flexWrap: z.enum([\"nowrap\", \"wrap\", \"wrap-reverse\"]).nullable(),\n      width: z.union([z.number().max(500), z.string()]).nullable(),\n      height: z.union([z.number().max(500), z.string()]).nullable(),\n      minWidth: z.union([z.number().max(500), z.string()]).nullable(),\n      minHeight: z.union([z.number().max(500), z.string()]).nullable(),\n      padding: z.number().nullable(),\n      paddingX: z.number().nullable(),\n      paddingY: z.number().nullable(),\n      paddingTop: z.number().nullable(),\n      paddingBottom: z.number().nullable(),\n      paddingLeft: z.number().nullable(),\n      paddingRight: z.number().nullable(),\n      margin: z.number().nullable(),\n      marginX: z.number().nullable(),\n      marginY: z.number().nullable(),\n      marginTop: z.number().nullable(),\n      marginBottom: z.number().nullable(),\n      marginLeft: z.number().nullable(),\n      marginRight: z.number().nullable(),\n      gap: z.number().nullable(),\n      columnGap: z.number().nullable(),\n      rowGap: z.number().nullable(),\n      borderStyle: z\n        .enum([\n          \"single\",\n          \"double\",\n          \"round\",\n          \"bold\",\n          \"singleDouble\",\n          \"doubleSingle\",\n          \"classic\",\n        ])\n        .nullable(),\n      borderColor: z.string().nullable(),\n      borderTop: z.boolean().nullable(),\n      borderBottom: z.boolean().nullable(),\n      borderLeft: z.boolean().nullable(),\n      borderRight: z.boolean().nullable(),\n      borderDimColor: z.boolean().nullable(),\n      display: z.enum([\"flex\", \"none\"]).nullable(),\n      overflow: z.enum([\"visible\", \"hidden\"]).nullable(),\n      backgroundColor: z.string().nullable(),\n    }),\n    slots: [\"default\"],\n    description:\n      \"Flexbox layout container (like a terminal <div>). Use for grouping, spacing, borders, and alignment. Default flexDirection is row.\",\n    example: {\n      flexDirection: \"column\",\n      padding: 1,\n      gap: 1,\n      borderStyle: \"round\",\n    },\n  },\n\n  Text: {\n    props: z.object({\n      text: z.string(),\n      color: z.string().nullable(),\n      backgroundColor: z.string().nullable(),\n      bold: z.boolean().nullable(),\n      italic: z.boolean().nullable(),\n      underline: z.boolean().nullable(),\n      strikethrough: z.boolean().nullable(),\n      dimColor: z.boolean().nullable(),\n      inverse: z.boolean().nullable(),\n      wrap: z\n        .enum([\n          \"wrap\",\n          \"truncate\",\n          \"truncate-end\",\n          \"truncate-middle\",\n          \"truncate-start\",\n        ])\n        .nullable(),\n    }),\n    slots: [],\n    description:\n      \"Text output with optional styling (color, bold, italic, etc.). Use for all text content in the terminal.\",\n    example: { text: \"Hello, world!\", bold: true, color: \"green\" },\n  },\n\n  Newline: {\n    props: z.object({\n      count: z.number().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Inserts one or more blank lines. Must be placed inside a Box with flexDirection column.\",\n    example: { count: 1 },\n  },\n\n  Spacer: {\n    props: z.object({}),\n    slots: [],\n    description:\n      \"Flexible empty space that expands to fill available room along the main axis. Use between elements to push them apart.\",\n  },\n\n  // ==========================================================================\n  // Content Components (Higher-Level)\n  // ==========================================================================\n\n  Heading: {\n    props: z.object({\n      text: z.string(),\n      level: z.enum([\"h1\", \"h2\", \"h3\", \"h4\"]).nullable(),\n      color: z.string().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Section heading. h1 is bold + underlined, h2 is bold, h3 is bold + dimmed, h4 is dimmed.\",\n    example: { text: \"Dashboard\", level: \"h1\" },\n  },\n\n  Divider: {\n    props: z.object({\n      character: z.string().nullable(),\n      color: z.string().nullable(),\n      dimColor: z.boolean().nullable(),\n      title: z.string().nullable(),\n      width: z.number().max(500).nullable(),\n    }),\n    slots: [],\n    description:\n      \"Horizontal separator line. Default width is 40 characters. Optionally includes a centered title.\",\n    example: { title: \"Section\", color: \"gray\", width: 40 },\n  },\n\n  Badge: {\n    props: z.object({\n      label: z.string(),\n      variant: z\n        .enum([\"default\", \"info\", \"success\", \"warning\", \"error\"])\n        .nullable(),\n    }),\n    slots: [],\n    description:\n      \"Small colored inline label for status, counts, and categories.\",\n    example: { label: \"ACTIVE\", variant: \"success\" },\n  },\n\n  Spinner: {\n    props: z.object({\n      label: z.string().nullable(),\n      color: z.string().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Animated loading spinner with optional label text. Uses braille animation characters.\",\n    example: { label: \"Loading...\", color: \"cyan\" },\n  },\n\n  ProgressBar: {\n    props: z.object({\n      progress: z.number(),\n      width: z.number().max(500).nullable(),\n      color: z.string().nullable(),\n      label: z.string().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Horizontal progress bar. Set progress from 0 to 1. Default width is 30 characters.\",\n    example: { progress: 0.65, width: 30, color: \"green\", label: \"Uploading\" },\n  },\n\n  Sparkline: {\n    props: z.object({\n      data: z.array(z.number()),\n      width: z.number().max(500).nullable(),\n      color: z.string().nullable(),\n      label: z.string().nullable(),\n      min: z.number().nullable(),\n      max: z.number().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Inline sparkline chart using Unicode block characters (▁▂▃▄▅▆▇█). Pass an array of numbers to visualize trends compactly. Set min/max to fix the scale across multiple sparklines.\",\n    example: {\n      data: [3, 7, 2, 9, 4, 8, 1, 6, 5],\n      color: \"cyan\",\n      label: \"CPU\",\n    },\n  },\n\n  BarChart: {\n    props: z.object({\n      data: z.array(\n        z.object({\n          label: z.string(),\n          value: z.number(),\n          color: z.string().nullable(),\n        }),\n      ),\n      width: z.number().max(500).nullable(),\n      showValues: z.boolean().nullable(),\n      showPercentage: z.boolean().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Horizontal bar chart. Each item has a label, numeric value, and optional color. Set showValues to display raw numbers, showPercentage to show % of total. Default bar width is 30.\",\n    example: {\n      data: [\n        { label: \"TypeScript\", value: 65, color: \"blue\" },\n        { label: \"Python\", value: 20, color: \"yellow\" },\n        { label: \"Rust\", value: 15, color: \"red\" },\n      ],\n      showPercentage: true,\n    },\n  },\n\n  Table: {\n    props: z.object({\n      columns: z.array(\n        z.object({\n          header: z.string(),\n          key: z.string(),\n          width: z.number().max(200).nullable(),\n          align: z.enum([\"left\", \"center\", \"right\"]).nullable(),\n        }),\n      ),\n      rows: z.array(z.record(z.string(), z.string())),\n      borderStyle: z\n        .enum([\"single\", \"double\", \"round\", \"bold\", \"classic\"])\n        .nullable(),\n      backgroundColor: z.string().nullable(),\n      headerColor: z.string().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Tabular data display with headers and rows. Each row is a record mapping column keys to string values. Set both borderStyle and backgroundColor together so borders share the same shading.\",\n    example: {\n      columns: [\n        { header: \"Name\", key: \"name\", width: 20 },\n        { header: \"Status\", key: \"status\", width: 10 },\n      ],\n      rows: [\n        { name: \"api-server\", status: \"running\" },\n        { name: \"worker\", status: \"stopped\" },\n      ],\n      headerColor: \"cyan\",\n    },\n  },\n\n  List: {\n    props: z.object({\n      items: z.array(z.string()),\n      ordered: z.boolean().nullable(),\n      bulletChar: z.string().nullable(),\n      spacing: z.number().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Bulleted or numbered list. Each item is a string. Use for simple enumerations.\",\n    example: {\n      items: [\"Install dependencies\", \"Run tests\", \"Deploy\"],\n      ordered: true,\n    },\n  },\n\n  ListItem: {\n    props: z.object({\n      title: z.string(),\n      subtitle: z.string().nullable(),\n      leading: z.string().nullable(),\n      trailing: z.string().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Structured list row with title, optional subtitle, and leading/trailing text. Use with repeat for dynamic lists.\",\n    example: {\n      title: \"package.json\",\n      subtitle: \"Modified 2 hours ago\",\n      leading: \"*\",\n      trailing: \"2.1 KB\",\n    },\n  },\n\n  Card: {\n    props: z.object({\n      title: z.string().nullable(),\n      backgroundColor: z.string().nullable(),\n      padding: z.number().nullable(),\n    }),\n    slots: [\"default\"],\n    description:\n      \"Shaded container with optional title. Renders as a filled background area for grouping related content. Default background is a subtle dark shade.\",\n    example: { title: \"Details\", padding: 1 },\n  },\n\n  KeyValue: {\n    props: z.object({\n      label: z.string(),\n      value: z.union([z.string(), z.number(), z.array(z.string())]),\n      labelColor: z.string().nullable(),\n      separator: z.string().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Key-value pair display. Renders label and value on the same line. Value can be a string, number, or array of strings (joined with commas). Default separator is a colon.\",\n    example: { label: \"Status\", value: \"Running\", labelColor: \"cyan\" },\n  },\n\n  Link: {\n    props: z.object({\n      url: z.string(),\n      label: z.string().nullable(),\n      color: z.string().nullable(),\n    }),\n    slots: [],\n    description:\n      'Renders a URL as underlined text. If label is provided, shows \"label (url)\". Most terminals make URLs clickable automatically.',\n    example: { url: \"https://github.com/vercel/next.js\", label: \"Next.js\" },\n  },\n\n  StatusLine: {\n    props: z.object({\n      text: z.string(),\n      status: z.enum([\"info\", \"success\", \"warning\", \"error\"]).nullable(),\n      icon: z.string().nullable(),\n    }),\n    slots: [],\n    description:\n      \"Status message with colored icon. Default icons: info=ℹ, success=✔, warning=⚠, error=✖.\",\n    example: { text: \"Build completed successfully\", status: \"success\" },\n  },\n\n  Metric: {\n    props: z.object({\n      label: z.string(),\n      value: z.string(),\n      detail: z.string().nullable(),\n      trend: z.enum([\"up\", \"down\", \"neutral\"]).nullable(),\n    }),\n    slots: [],\n    description:\n      \"Key metric display with prominent value and optional trend indicator. Use for important numbers that deserve visual emphasis (price, temperature, stars, market cap).\",\n    example: {\n      label: \"Price\",\n      value: \"$70,686\",\n      detail: \"24h change\",\n      trend: \"up\",\n    },\n  },\n\n  Callout: {\n    props: z.object({\n      type: z.enum([\"info\", \"tip\", \"warning\", \"important\"]).nullable(),\n      title: z.string().nullable(),\n      content: z.string(),\n    }),\n    slots: [],\n    description:\n      \"Highlighted callout block with colored left border. Use for key takeaways, tips, warnings, or important notes that should stand out from surrounding content.\",\n    example: {\n      type: \"tip\",\n      title: \"Key Takeaway\",\n      content:\n        \"Revenue peaked in FY2022 driven by iPhone 13/14 upgrade cycles.\",\n    },\n  },\n\n  Timeline: {\n    props: z.object({\n      items: z.array(\n        z.object({\n          title: z.string(),\n          description: z.string().nullable(),\n          date: z.string().nullable(),\n          status: z.enum([\"completed\", \"current\", \"upcoming\"]).nullable(),\n        }),\n      ),\n    }),\n    slots: [],\n    description:\n      \"Vertical timeline showing ordered events, steps, or milestones. Each item has a status-colored dot, title, optional date, and optional description.\",\n    example: {\n      items: [\n        {\n          title: \"Project Started\",\n          description: \"Initial commit and setup\",\n          date: \"Jan 2024\",\n          status: \"completed\",\n        },\n        {\n          title: \"Beta Release\",\n          description: \"Public beta launched\",\n          date: \"Mar 2024\",\n          status: \"current\",\n        },\n        { title: \"v1.0\", date: \"Q2 2024\", status: \"upcoming\" },\n      ],\n    },\n  },\n\n  // ==========================================================================\n  // Interactive Components\n  // ==========================================================================\n\n  TextInput: {\n    props: z.object({\n      placeholder: z.string().nullable(),\n      value: z.string().nullable(),\n      label: z.string().nullable(),\n      mask: z.string().nullable(),\n    }),\n    events: [\"submit\", \"change\"],\n    slots: [],\n    description:\n      \"Text input field for terminal. Use $bindState to bind to the state model for two-way binding. Press Enter to submit. Set mask to '*' for password fields.\",\n    example: { placeholder: \"Type here...\", label: \"Name\" },\n  },\n\n  Select: {\n    props: z.object({\n      options: z.array(\n        z.object({\n          label: z.string(),\n          value: z.string(),\n        }),\n      ),\n      value: z.string().nullable(),\n      label: z.string().nullable(),\n    }),\n    events: [\"change\"],\n    slots: [],\n    description:\n      \"Selection menu navigated with arrow keys. Use $bindState on value to bind the selected value to state. Press Enter to confirm selection.\",\n    example: {\n      options: [\n        { label: \"Development\", value: \"dev\" },\n        { label: \"Staging\", value: \"staging\" },\n        { label: \"Production\", value: \"prod\" },\n      ],\n      label: \"Environment\",\n    },\n  },\n\n  MultiSelect: {\n    props: z.object({\n      options: z.array(\n        z.object({\n          label: z.string(),\n          value: z.string(),\n        }),\n      ),\n      value: z.array(z.string()).nullable(),\n      label: z.string().nullable(),\n      min: z.number().nullable(),\n      max: z.number().nullable(),\n    }),\n    events: [\"change\", \"submit\"],\n    slots: [],\n    description:\n      \"Multi-selection menu. Navigate with arrow keys, toggle with space, confirm with enter. Use $bindState on value to bind the selected values array to state. Set min/max to constrain selection count.\",\n    example: {\n      options: [\n        { label: \"TypeScript\", value: \"ts\" },\n        { label: \"Python\", value: \"py\" },\n        { label: \"Rust\", value: \"rs\" },\n        { label: \"Go\", value: \"go\" },\n      ],\n      label: \"Languages\",\n    },\n  },\n\n  ConfirmInput: {\n    props: z.object({\n      message: z.string().nullable(),\n      defaultValue: z.boolean().nullable(),\n      yesLabel: z.string().nullable(),\n      noLabel: z.string().nullable(),\n    }),\n    events: [\"confirm\", \"deny\"],\n    slots: [],\n    description:\n      \"Yes/No confirmation prompt. Press Y to confirm, N to deny. Use for destructive or irreversible actions.\",\n    example: {\n      message: \"Delete all files?\",\n    },\n  },\n\n  Tabs: {\n    props: z.object({\n      tabs: z.array(\n        z.object({\n          label: z.string(),\n          value: z.string(),\n          icon: z.string().nullable(),\n        }),\n      ),\n      value: z.string().nullable(),\n      color: z.string().nullable(),\n    }),\n    events: [\"change\"],\n    slots: [\"default\"],\n    description:\n      \"Tab bar navigation. Navigate with left/right arrow keys. Use $bindState on value to bind the active tab to state. Place child content inside and use visible conditions on children to show content for the active tab.\",\n    example: {\n      tabs: [\n        { label: \"Overview\", value: \"overview\" },\n        { label: \"Logs\", value: \"logs\" },\n        { label: \"Settings\", value: \"settings\" },\n      ],\n    },\n  },\n\n  Markdown: {\n    props: z.object({\n      text: z.string(),\n    }),\n    slots: [],\n    description:\n      \"Renders markdown-formatted text with proper terminal styling. Supports headings (#), **bold**, *italic*, `inline code`, ~~strikethrough~~, fenced code blocks, lists (ordered and unordered), blockquotes (>), and horizontal rules (---).\",\n    example: {\n      text: \"## Overview\\n\\nThis is **bold** and *italic* text with `inline code`.\\n\\n- First item\\n- Second item\\n\\n> A blockquote\",\n    },\n  },\n};\n\n// =============================================================================\n// Standard Action Definitions for Ink\n// =============================================================================\n\n/**\n * Standard action definitions for Ink terminal catalogs.\n */\nexport const standardActionDefinitions = {\n  setState: {\n    params: z.object({\n      statePath: z.string(),\n      value: z.unknown(),\n    }),\n    description: \"Update a value in the state model at the given statePath.\",\n  },\n\n  pushState: {\n    params: z.object({\n      statePath: z.string(),\n      value: z.unknown(),\n      clearStatePath: z.string().optional(),\n    }),\n    description:\n      'Append an item to an array in the state model. The value can contain { $state: \"/statePath\" } references and \"$id\" for auto IDs. Use clearStatePath to reset another path after pushing.',\n  },\n\n  removeState: {\n    params: z.object({\n      statePath: z.string(),\n      index: z.number(),\n    }),\n    description:\n      \"Remove an item from an array in the state model at the given index.\",\n  },\n\n  exit: {\n    params: z.object({\n      code: z.number().optional(),\n    }),\n    description:\n      \"Exit the terminal application. Optional exit code (default 0).\",\n  },\n\n  log: {\n    params: z.object({\n      message: z.string(),\n    }),\n    description:\n      \"Write a message to stdout outside the Ink render. Useful for persistent output that should remain visible after the UI updates.\",\n  },\n};\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Type for a component definition\n */\nexport type ComponentDefinition = {\n  props: z.ZodType;\n  slots: string[];\n  events?: string[];\n  description: string;\n};\n\n/**\n * Type for an action definition\n */\nexport type ActionDefinition = {\n  params: z.ZodType;\n  description: string;\n};\n"],"mappings":"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","names":[]}