@offlinemediainc/offline-ui 0.2.0 → 0.2.2

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.
@@ -363,6 +363,7 @@ var componentRegistry = {
363
363
  "SidebarMenu",
364
364
  "SidebarMenuItem",
365
365
  "SidebarMenuButton",
366
+ "SidebarMenuButtonLink",
366
367
  "SidebarHeader",
367
368
  "SidebarFooter",
368
369
  "SidebarTrigger",
@@ -559,6 +560,14 @@ var componentRegistry = {
559
560
  composition: ["CollapsibleTrigger", "CollapsibleContent"]
560
561
  },
561
562
  // Draft Components (not recommended for production)
563
+ Alert: {
564
+ name: "Alert",
565
+ status: "draft",
566
+ description: "Banner for inline messages - info, warning, error, success",
567
+ imports: ["Alert", "AlertTitle", "AlertDescription", "alertVariants"],
568
+ variants: { variant: ["default", "destructive", "warning", "success"] },
569
+ composition: ["AlertTitle", "AlertDescription"]
570
+ },
562
571
  Select: {
563
572
  name: "Select",
564
573
  status: "draft",
@@ -1390,7 +1399,7 @@ var offlineDesignSystem = {
1390
1399
  /** Package metadata */
1391
1400
  meta: {
1392
1401
  name: "@offlinemediainc/offline-ui",
1393
- version: "0.2.0",
1402
+ version: "0.2.1",
1394
1403
  description: "Offline Media Design System - LLM-friendly design decisions and patterns"
1395
1404
  },
1396
1405
  /** Quick reference for most common decisions */
@@ -1477,5 +1486,5 @@ var offlineDesignSystem = {
1477
1486
  };
1478
1487
 
1479
1488
  export { __objRest, __spreadProps, __spreadValues, approvedComponents, badgeMappings, chartPatterns, colorHexValues, componentDecisions, componentRegistry, draftComponents, fontFamilyDecisions, getBadgeVariant, getIcon, iconMappings, interactionPatterns, layoutPatterns, modalPatterns, offlineDesignSystem, semanticColors, statePatterns, statusLabels, typographyDecisions, typographyScale };
1480
- //# sourceMappingURL=chunk-BF4GSI6Q.js.map
1481
- //# sourceMappingURL=chunk-BF4GSI6Q.js.map
1489
+ //# sourceMappingURL=chunk-4XVGVUB3.js.map
1490
+ //# sourceMappingURL=chunk-4XVGVUB3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/design-system/semantics/colors.ts","../src/design-system/semantics/typography.ts","../src/design-system/components/decisions.ts","../src/design-system/components/registry.ts","../src/design-system/patterns/layout.ts","../src/design-system/patterns/states.ts","../src/design-system/patterns/interactions.ts","../src/design-system/patterns/charts.ts","../src/design-system/patterns/modals.ts","../src/design-system/mappings/icons.ts","../src/design-system/mappings/badges.ts","../src/design-system/index.ts"],"names":[],"mappings":"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","file":"chunk-4XVGVUB3.js","sourcesContent":["// Semantic Color Mappings\n// Maps semantic purposes to color tokens for consistent usage\n\nexport const semanticColors = {\n brand: {\n /** Yellow-400 (#de8e0f) - brand accent for highlights, badges, premium touches. NEVER for buttons */\n primary: \"yellow-400\",\n /** Blue-400 (#004fff) - for links and clickable text ONLY */\n interactive: \"blue-400\",\n },\n\n text: {\n /** Gray-900 (#191919) - primary text, headings, important content */\n primary: \"gray-900\",\n /** Gray-600 (#636363) - secondary/supporting text */\n secondary: \"gray-600\",\n /** Gray-500 (#7c7c7c) - muted text, timestamps, helpers */\n muted: \"gray-500\",\n /** White text on dark backgrounds */\n onDark: \"white\",\n /** Blue-400 for clickable links */\n link: \"blue-400\",\n /** Success green for positive text */\n positive: \"semantic-success500\",\n /** Red for error/negative text */\n negative: \"red-400\",\n },\n\n surface: {\n /** White - default page/card background */\n default: \"white\",\n /** Gray-50 (#ececec) - muted/secondary backgrounds */\n muted: \"gray-50\",\n /** White with shadow-elevated for floating surfaces */\n elevated: \"white + shadow-elevated\",\n },\n\n border: {\n /** Gray-200 (#c6c6c6) - default borders */\n default: \"gray-200\",\n /** Gray-300 (#aeaeae) - stronger borders */\n strong: \"gray-300\",\n /** Yellow-400 - interactive/accent borders */\n interactive: \"yellow-400\",\n /** Gray-900 - focus ring borders */\n focus: \"gray-900\",\n },\n\n feedback: {\n /** Chart-3 (#099250) - success, positive, growth */\n positive: \"chart-3\",\n /** Chart-5 (#d31a0c) - error, negative, problems */\n negative: \"chart-5\",\n /** Yellow-400 - warning states */\n warning: \"yellow-400\",\n /** Chart-4 (#636363) - neutral/baseline */\n neutral: \"chart-4\",\n },\n} as const;\n\n// Hex value reference for when CSS variables aren't available\nexport const colorHexValues = {\n \"yellow-25\": \"#fff2d8\",\n \"yellow-50\": \"#ffe9bd\",\n \"yellow-100\": \"#ffd386\",\n \"yellow-200\": \"#ffbd54\",\n \"yellow-300\": \"#f0a52c\",\n \"yellow-400\": \"#de8e0f\",\n \"yellow-500\": \"#c57900\",\n \"yellow-600\": \"#a76700\",\n \"yellow-700\": \"#835100\",\n \"yellow-800\": \"#5c3900\",\n \"yellow-900\": \"#331f00\",\n\n \"blue-25\": \"#d8e7ff\",\n \"blue-50\": \"#bed6ff\",\n \"blue-100\": \"#85afff\",\n \"blue-200\": \"#508bff\",\n \"blue-300\": \"#236aff\",\n \"blue-400\": \"#004fff\",\n \"blue-500\": \"#0046e0\",\n \"blue-600\": \"#003bbb\",\n \"blue-700\": \"#002e91\",\n \"blue-800\": \"#001f63\",\n \"blue-900\": \"#001033\",\n\n \"gray-25\": \"#f2f2f2\",\n \"gray-50\": \"#ececec\",\n \"gray-100\": \"#dfdfdf\",\n \"gray-200\": \"#c6c6c6\",\n \"gray-300\": \"#aeaeae\",\n \"gray-400\": \"#959595\",\n \"gray-500\": \"#7c7c7c\",\n \"gray-600\": \"#636363\",\n \"gray-700\": \"#4a4a4a\",\n \"gray-800\": \"#323232\",\n \"gray-900\": \"#191919\",\n\n \"red-400\": \"#d31a0c\",\n \"semantic-success500\": \"#099250\",\n\n \"chart-1\": \"#de8e0f\",\n \"chart-2\": \"#004fff\",\n \"chart-3\": \"#099250\",\n \"chart-4\": \"#636363\",\n \"chart-5\": \"#d31a0c\",\n \"chart-6\": \"#a76700\",\n \"chart-7\": \"#003bbb\",\n \"chart-8\": \"#959595\",\n} as const;\n\nexport type SemanticColors = typeof semanticColors;\nexport type ColorHexValues = typeof colorHexValues;\n","// Typography Decision Tree\n// Maps UI contexts to typography classes for consistent usage\n\nexport const typographyDecisions = {\n // Page structure\n /** Hero headlines, major section titles - Cabinet Grotesk, use sparingly */\n pageTitle: \"display-small\",\n /** Section headings within pages */\n sectionHeading: \"headline-medium\",\n /** Card titles, panel headers */\n cardTitle: \"headline-small\",\n\n // Stats & metrics\n /** Large stat values in dashboards */\n statValueLarge: \"display-medium\",\n /** Smaller stat values */\n statValueSmall: \"display-small\",\n /** Labels under stat values */\n statLabel: \"body-small\",\n\n // Body text\n /** Default body text */\n bodyDefault: \"body-medium\",\n /** Secondary/supporting body text */\n bodySecondary: \"body-small\",\n\n // Forms\n /** Form field labels */\n formLabel: \"label-medium\",\n /** Helper text below inputs */\n formHelper: \"body-small text-muted\",\n /** Error messages below inputs */\n formError: \"body-small text-negative\",\n\n // UI elements\n /** Button text */\n buttonText: \"label-medium\",\n /** Sidebar/nav items */\n navItem: \"body-medium\",\n /** Badge text */\n badgeText: \"label-small\",\n /** Table header cells */\n tableHeader: \"label-medium\",\n /** Table body cells */\n tableCell: \"body-medium\",\n /** Timestamps, dates */\n timestamp: \"body-small text-muted\",\n\n // Empty states\n /** Empty state headline */\n emptyStateTitle: \"headline-small\",\n /** Empty state description */\n emptyStateDescription: \"body-medium text-muted\",\n\n // Dialog/Modal\n /** Dialog title */\n dialogTitle: \"headline-medium\",\n /** Dialog description */\n dialogDescription: \"body-medium text-muted\",\n\n // Sidebar\n /** Sidebar section labels */\n sidebarLabel: \"nav-label\",\n /** Sidebar navigation items */\n sidebarItem: \"body-medium\",\n\n // Breadcrumb\n /** Breadcrumb items */\n breadcrumbItem: \"body-small\",\n /** Current breadcrumb (muted) */\n breadcrumbCurrent: \"body-small text-muted\",\n} as const;\n\n// Font family decisions\nexport const fontFamilyDecisions = {\n /** Cabinet Grotesk - hero headlines, major titles. Use sparingly for impact */\n display: \"var(--font-cabinet-grotesk), var(--font-satoshi), sans-serif\",\n /** Satoshi - everything else: headlines, body, labels. The workhorse font */\n body: \"var(--font-satoshi), sans-serif\",\n /** DM Mono - stats, numbers, code. When precision matters */\n mono: \"var(--font-dm-mono), 'DM Mono', monospace\",\n} as const;\n\n// Typography scale reference (for documentation)\nexport const typographyScale = {\n \"display-large\": { size: \"36px\", lineHeight: \"100%\", weight: 800, font: \"Cabinet Grotesk\" },\n \"display-medium\": { size: \"32px\", lineHeight: \"100%\", weight: 800, font: \"Cabinet Grotesk\" },\n \"display-small\": { size: \"29px\", lineHeight: \"100%\", weight: 800, font: \"Cabinet Grotesk\" },\n \"headline-large\": { size: \"26px\", lineHeight: \"32px\", weight: 700, font: \"Satoshi\" },\n \"headline-medium\": { size: \"23px\", lineHeight: \"28px\", weight: 700, font: \"Satoshi\" },\n \"headline-small\": { size: \"20px\", lineHeight: \"24px\", weight: 700, font: \"Satoshi\" },\n \"title-large\": { size: \"18px\", lineHeight: \"22px\", weight: 700, font: \"Satoshi\" },\n \"title-medium\": { size: \"16px\", lineHeight: \"20px\", weight: 700, font: \"Satoshi\" },\n \"title-small\": { size: \"14px\", lineHeight: \"18px\", weight: 700, font: \"Satoshi\" },\n \"body-large\": { size: \"16px\", lineHeight: \"24px\", weight: 500, font: \"Satoshi\" },\n \"body-medium\": { size: \"14px\", lineHeight: \"20px\", weight: 500, font: \"Satoshi\" },\n \"body-small\": { size: \"12px\", lineHeight: \"16px\", weight: 500, font: \"Satoshi\" },\n \"body-x-small\": { size: \"10px\", lineHeight: \"14px\", weight: 500, font: \"Satoshi\" },\n \"label-large\": { size: \"14px\", lineHeight: \"18px\", weight: 700, font: \"Satoshi\" },\n \"label-medium\": { size: \"12px\", lineHeight: \"16px\", weight: 700, font: \"Satoshi\" },\n \"label-small\": { size: \"10px\", lineHeight: \"14px\", weight: 700, font: \"Satoshi\" },\n \"stat-mono\": { weight: 500, letterSpacing: \"0.04em\", font: \"DM Mono\" },\n} as const;\n\nexport type TypographyDecisions = typeof typographyDecisions;\nexport type FontFamilyDecisions = typeof fontFamilyDecisions;\nexport type TypographyScale = typeof typographyScale;\n","// Component Decision Tree\n// Maps UI scenarios to the correct component choice\n\nexport const componentDecisions = {\n lists: {\n /** Clickable list rows (partners, offers, events) */\n clickableRow: \"Item\",\n /** Structured data with sorting/filtering */\n dataTable: \"Table\",\n /** Grid of cards (dashboard, gallery) */\n cardGrid: \"Card in grid\",\n /** Simple bulleted/numbered lists */\n simpleList: \"ul with body-medium\",\n /** Key-value pairs */\n descriptionList: \"dl with label-medium dt and body-medium dd\",\n },\n\n feedback: {\n /** Success after action (save, create, delete) */\n actionSuccess: \"toast.success\",\n /** Error after action */\n actionError: \"toast.error\",\n /** Warning banner in content area */\n inlineWarning: \"Alert variant=warning\",\n /** Error banner in content area */\n inlineError: \"Alert variant=destructive\",\n /** Form field validation error */\n fieldError: \"body-small text-negative below input\",\n /** Info/tip banner */\n inlineInfo: \"Alert variant=default\",\n },\n\n modals: {\n /** Forms, content entry, multi-step flows */\n formEntry: \"Dialog\",\n /** Destructive action confirmation (delete, discard) */\n confirmDestructive: \"AlertDialog\",\n /** Side panel for details, secondary content */\n sidePanel: \"Sheet side=right\",\n /** Mobile navigation drawer */\n mobileNav: \"Sheet side=left\",\n /** Mobile action sheets */\n mobileActions: \"Sheet side=bottom h-auto max-h-[80vh]\",\n /** Preview/detail view */\n preview: \"Dialog or Sheet\",\n },\n\n navigation: {\n /** Primary app navigation */\n primaryNav: \"Sidebar\",\n /** Page-level tabs */\n pageTabs: \"Tabs\",\n /** Location breadcrumbs */\n breadcrumbs: \"Breadcrumb\",\n /** Section header with back button */\n sectionHeader: \"Breadcrumb + headline\",\n /** Dropdown navigation menu */\n dropdownNav: \"DropdownMenu\",\n },\n\n selection: {\n /** Single choice from 2-5 options */\n singleFromFew: \"radio group\",\n /** Single choice from many options */\n singleFromMany: \"Select\",\n /** Multiple choices allowed */\n multiple: \"Checkbox group\",\n /** On/off toggle */\n toggle: \"single Checkbox\",\n /** Segmented control (view modes) */\n segmented: \"Tabs variant=pill\",\n },\n\n data: {\n /** Status indicator */\n status: \"Badge\",\n /** Progress indication */\n progress: \"Progress\",\n /** Avatar/profile image */\n avatar: \"Avatar\",\n /** Data visualization */\n chart: \"Chart (recharts)\",\n /** Loading placeholder */\n skeleton: \"Skeleton\",\n },\n\n forms: {\n /** Single-line text input */\n textInput: \"Input\",\n /** Multi-line text input */\n textArea: \"Textarea\",\n /** Email/password/number input */\n typedInput: \"Input type=email|password|number\",\n /** OTP/verification code */\n otpInput: \"InputOTP\",\n /** Form field label */\n label: \"Label htmlFor={id}\",\n /** Checkbox with label */\n checkbox: \"Checkbox + Label\",\n },\n\n layout: {\n /** Content card container */\n card: \"Card\",\n /** Expandable content */\n accordion: \"Accordion\",\n /** Collapsible section */\n collapsible: \"Collapsible\",\n /** Visual divider */\n separator: \"Separator\",\n /** Hover information */\n tooltip: \"Tooltip\",\n },\n} as const;\n\nexport type ComponentDecisions = typeof componentDecisions;\n","// Component Registry\n// Metadata for all approved components\n\nimport type { ComponentMeta } from \"../types\";\n\nexport const componentRegistry: Record<string, ComponentMeta> = {\n // Layout Components\n Card: {\n name: \"Card\",\n status: \"approved\",\n description: \"Container for grouped content with optional header/footer\",\n imports: [\"Card\", \"CardHeader\", \"CardTitle\", \"CardDescription\", \"CardContent\", \"CardFooter\"],\n composition: [\"CardHeader\", \"CardTitle\", \"CardDescription\", \"CardContent\", \"CardFooter\"],\n },\n\n Item: {\n name: \"Item\",\n status: \"approved\",\n description: \"Flexible list item with media, content, and actions slots\",\n imports: [\"Item\", \"ItemMedia\", \"ItemContent\", \"ItemTitle\", \"ItemDescription\", \"ItemActions\"],\n variants: { variant: [\"default\", \"outline\", \"muted\"] },\n composition: [\"ItemMedia\", \"ItemContent\", \"ItemTitle\", \"ItemDescription\", \"ItemActions\"],\n },\n\n Separator: {\n name: \"Separator\",\n status: \"approved\",\n description: \"Visual divider between sections\",\n imports: [\"Separator\"],\n },\n\n // Navigation Components\n Sidebar: {\n name: \"Sidebar\",\n status: \"approved\",\n description: \"Primary navigation sidebar with collapsible state\",\n imports: [\n \"Sidebar\", \"SidebarContent\", \"SidebarGroup\", \"SidebarGroupLabel\",\n \"SidebarGroupContent\", \"SidebarMenu\", \"SidebarMenuItem\", \"SidebarMenuButton\",\n \"SidebarMenuButtonLink\", \"SidebarHeader\", \"SidebarFooter\", \"SidebarTrigger\", \"SidebarProvider\",\n ],\n composition: [\"SidebarHeader\", \"SidebarContent\", \"SidebarGroup\", \"SidebarFooter\"],\n },\n\n OfflineSidebar: {\n name: \"OfflineSidebar\",\n status: \"approved\",\n description: \"Pre-configured sidebar with Offline branding (requires Next.js)\",\n imports: [\"OfflineSidebar\", \"OfflineSidebarNav\", \"OfflineSidebarFooter\"],\n },\n\n Breadcrumb: {\n name: \"Breadcrumb\",\n status: \"approved\",\n description: \"Location breadcrumb trail\",\n imports: [\n \"Breadcrumb\", \"BreadcrumbList\", \"BreadcrumbItem\", \"BreadcrumbLink\",\n \"BreadcrumbPage\", \"BreadcrumbSeparator\",\n ],\n composition: [\"BreadcrumbList\", \"BreadcrumbItem\", \"BreadcrumbLink\", \"BreadcrumbPage\"],\n },\n\n Tabs: {\n name: \"Tabs\",\n status: \"approved\",\n description: \"Tab navigation for switching views\",\n imports: [\"Tabs\", \"TabsList\", \"TabsTrigger\", \"TabsContent\"],\n variants: { style: [\"default (pill)\", \"line (underline)\"] },\n composition: [\"TabsList\", \"TabsTrigger\", \"TabsContent\"],\n },\n\n DropdownMenu: {\n name: \"DropdownMenu\",\n status: \"approved\",\n description: \"Dropdown menu for actions\",\n imports: [\n \"DropdownMenu\", \"DropdownMenuTrigger\", \"DropdownMenuContent\",\n \"DropdownMenuItem\", \"DropdownMenuSeparator\", \"DropdownMenuLabel\",\n ],\n composition: [\"DropdownMenuTrigger\", \"DropdownMenuContent\", \"DropdownMenuItem\"],\n },\n\n // Action Components\n Button: {\n name: \"Button\",\n status: \"approved\",\n description: \"Primary action trigger. Black (default) is primary color per brand\",\n imports: [\"Button\", \"buttonVariants\"],\n variants: {\n variant: [\"default\", \"secondary\", \"outline\", \"ghost\", \"destructive\", \"link\"],\n size: [\"default\", \"sm\", \"lg\", \"icon\"],\n },\n },\n\n Badge: {\n name: \"Badge\",\n status: \"approved\",\n description: \"Status indicators, tags, labels\",\n imports: [\"Badge\", \"badgeVariants\"],\n variants: {\n variant: [\"default\", \"secondary\", \"destructive\", \"success\", \"warning\", \"outline\"],\n },\n },\n\n // Form Components\n Input: {\n name: \"Input\",\n status: \"approved\",\n description: \"Single-line text input\",\n imports: [\"Input\"],\n },\n\n Label: {\n name: \"Label\",\n status: \"approved\",\n description: \"Form field label - always use with htmlFor\",\n imports: [\"Label\"],\n },\n\n Checkbox: {\n name: \"Checkbox\",\n status: \"approved\",\n description: \"Checkbox for boolean/multi-select\",\n imports: [\"Checkbox\"],\n },\n\n InputOTP: {\n name: \"InputOTP\",\n status: \"approved\",\n description: \"OTP/verification code input\",\n imports: [\"InputOTP\", \"InputOTPGroup\", \"InputOTPSlot\", \"InputOTPSeparator\"],\n composition: [\"InputOTPGroup\", \"InputOTPSlot\"],\n },\n\n Progress: {\n name: \"Progress\",\n status: \"approved\",\n description: \"Progress bar indicator\",\n imports: [\"Progress\"],\n },\n\n // Overlay Components\n Dialog: {\n name: \"Dialog\",\n status: \"approved\",\n description: \"Modal for forms and content. User can dismiss freely\",\n imports: [\n \"Dialog\", \"DialogTrigger\", \"DialogContent\", \"DialogHeader\",\n \"DialogFooter\", \"DialogTitle\", \"DialogDescription\", \"DialogClose\",\n ],\n composition: [\"DialogTrigger\", \"DialogContent\", \"DialogHeader\", \"DialogFooter\"],\n },\n\n AlertDialog: {\n name: \"AlertDialog\",\n status: \"approved\",\n description: \"Interruption requiring decision. Cannot dismiss by clicking outside\",\n imports: [\n \"AlertDialog\", \"AlertDialogTrigger\", \"AlertDialogContent\", \"AlertDialogHeader\",\n \"AlertDialogFooter\", \"AlertDialogTitle\", \"AlertDialogDescription\",\n \"AlertDialogAction\", \"AlertDialogCancel\",\n ],\n composition: [\"AlertDialogTrigger\", \"AlertDialogContent\", \"AlertDialogAction\", \"AlertDialogCancel\"],\n },\n\n Sheet: {\n name: \"Sheet\",\n status: \"approved\",\n description: \"Slide-in panel for secondary content\",\n imports: [\n \"Sheet\", \"SheetTrigger\", \"SheetContent\", \"SheetHeader\",\n \"SheetFooter\", \"SheetTitle\", \"SheetDescription\", \"SheetClose\",\n ],\n variants: { side: [\"right\", \"left\", \"top\", \"bottom\"] },\n composition: [\"SheetTrigger\", \"SheetContent\", \"SheetHeader\", \"SheetFooter\"],\n },\n\n Tooltip: {\n name: \"Tooltip\",\n status: \"approved\",\n description: \"Hover/focus information overlay\",\n imports: [\"Tooltip\", \"TooltipTrigger\", \"TooltipContent\", \"TooltipProvider\"],\n composition: [\"TooltipTrigger\", \"TooltipContent\"],\n },\n\n // Data Display Components\n Avatar: {\n name: \"Avatar\",\n status: \"approved\",\n description: \"User/entity avatar with fallback\",\n imports: [\"Avatar\", \"AvatarImage\", \"AvatarFallback\"],\n composition: [\"AvatarImage\", \"AvatarFallback\"],\n sizes: [\"default\", \"sm\", \"lg\"],\n },\n\n Skeleton: {\n name: \"Skeleton\",\n status: \"approved\",\n description: \"Loading placeholder matching content shape\",\n imports: [\"Skeleton\"],\n },\n\n Chart: {\n name: \"Chart\",\n status: \"approved\",\n description: \"Data visualization wrapper for Recharts\",\n imports: [\"ChartContainer\", \"ChartTooltip\", \"ChartTooltipContent\", \"ChartLegend\", \"ChartLegendContent\"],\n },\n\n // Interactive Components\n Accordion: {\n name: \"Accordion\",\n status: \"approved\",\n description: \"Expandable content sections\",\n imports: [\"Accordion\", \"AccordionItem\", \"AccordionTrigger\", \"AccordionContent\"],\n composition: [\"AccordionItem\", \"AccordionTrigger\", \"AccordionContent\"],\n },\n\n Collapsible: {\n name: \"Collapsible\",\n status: \"approved\",\n description: \"Single collapsible section\",\n imports: [\"Collapsible\", \"CollapsibleTrigger\", \"CollapsibleContent\"],\n composition: [\"CollapsibleTrigger\", \"CollapsibleContent\"],\n },\n\n // Draft Components (not recommended for production)\n Alert: {\n name: \"Alert\",\n status: \"draft\",\n description: \"Banner for inline messages - info, warning, error, success\",\n imports: [\"Alert\", \"AlertTitle\", \"AlertDescription\", \"alertVariants\"],\n variants: { variant: [\"default\", \"destructive\", \"warning\", \"success\"] },\n composition: [\"AlertTitle\", \"AlertDescription\"],\n },\n\n Select: {\n name: \"Select\",\n status: \"draft\",\n description: \"Dropdown select - still being refined\",\n imports: [\n \"Select\", \"SelectTrigger\", \"SelectContent\", \"SelectItem\",\n \"SelectValue\", \"SelectGroup\", \"SelectLabel\",\n ],\n },\n\n Sonner: {\n name: \"Sonner\",\n status: \"draft\",\n description: \"Toast notifications - integration in progress\",\n imports: [\"Toaster\", \"toast\"],\n },\n\n Table: {\n name: \"Table\",\n status: \"draft\",\n description: \"Data table - needs more patterns\",\n imports: [\n \"Table\", \"TableHeader\", \"TableBody\", \"TableFooter\",\n \"TableHead\", \"TableRow\", \"TableCell\", \"TableCaption\",\n ],\n },\n\n Textarea: {\n name: \"Textarea\",\n status: \"draft\",\n description: \"Multi-line text input - under review\",\n imports: [\"Textarea\"],\n },\n};\n\n// List of approved component names\nexport const approvedComponents = Object.entries(componentRegistry)\n .filter(([_, meta]) => meta.status === \"approved\")\n .map(([name]) => name);\n\n// List of draft component names\nexport const draftComponents = Object.entries(componentRegistry)\n .filter(([_, meta]) => meta.status === \"draft\")\n .map(([name]) => name);\n\nexport type ComponentRegistry = typeof componentRegistry;\n","// Layout Patterns\n// Spacing, grids, and structural patterns\n\nexport const layoutPatterns = {\n page: {\n /** Content area max width */\n maxWidth: \"max-w-4xl\",\n /** Wider content area (dashboards, tables) */\n maxWidthWide: \"max-w-6xl\",\n /** Page padding */\n padding: \"px-4 py-6\",\n /** Gap between major sections */\n sectionGap: \"space-y-8\",\n /** Main content wrapper */\n wrapper: \"mx-auto px-4 py-6\",\n },\n\n cards: {\n /** Standard card padding */\n padding: \"p-6\",\n /** Compact card padding */\n paddingCompact: \"p-4\",\n /** Gap between cards in grid */\n gap: \"gap-4\",\n /** 2-column responsive grid */\n grid2col: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n /** 3-column responsive grid */\n grid3col: \"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\",\n /** 4-column responsive grid */\n grid4col: \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\",\n /** Stack of cards */\n stack: \"flex flex-col gap-4\",\n },\n\n forms: {\n /** Gap between form fields */\n fieldGap: \"space-y-4\",\n /** Gap between label and input */\n labelGap: \"mb-2\",\n /** Gap between input and helper text */\n helperGap: \"mt-1\",\n /** Gap between buttons in button group */\n buttonGap: \"gap-2\",\n /** Gap between form sections */\n sectionGap: \"space-y-6\",\n /** Form container */\n container: \"space-y-4\",\n /** Form actions row */\n actions: \"flex justify-end gap-2 pt-4\",\n /** Full-width form field */\n fieldFull: \"w-full\",\n /** Inline field pair */\n fieldPair: \"grid grid-cols-2 gap-4\",\n },\n\n inline: {\n /** Icon + text alignment */\n iconText: \"inline-flex items-center gap-2\",\n /** Badge group spacing */\n badges: \"flex flex-wrap gap-2\",\n /** Button group spacing */\n buttons: \"flex items-center gap-2\",\n /** Tag list */\n tags: \"flex flex-wrap gap-1\",\n },\n\n header: {\n /** Page header with title and actions */\n pageHeader: \"flex items-center justify-between mb-6\",\n /** Section header */\n sectionHeader: \"flex items-center justify-between mb-4\",\n /** Card header */\n cardHeader: \"flex items-center justify-between\",\n },\n\n sidebar: {\n /** Sidebar width */\n width: \"w-64\",\n /** Collapsed sidebar width */\n widthCollapsed: \"w-16\",\n /** Content area with sidebar */\n contentWithSidebar: \"ml-64\",\n /** Mobile: full width content */\n contentMobile: \"ml-0\",\n },\n\n responsive: {\n /** Hide on mobile, show on tablet+ */\n hideMobile: \"hidden md:block\",\n /** Show on mobile, hide on tablet+ */\n showMobile: \"md:hidden\",\n /** Stack on mobile, row on tablet+ */\n stackToRow: \"flex flex-col md:flex-row\",\n /** Full width on mobile, auto on tablet+ */\n fullToAuto: \"w-full md:w-auto\",\n },\n} as const;\n\nexport type LayoutPatterns = typeof layoutPatterns;\n","// State Patterns\n// Loading, empty, error, and disabled state patterns\n\nexport const statePatterns = {\n loading: {\n /** Full page loading skeleton */\n page: \"Skeleton matching page structure\",\n /** Card loading skeleton */\n card: \"Skeleton matching card structure\",\n /** Button loading state */\n button: {\n icon: \"Loader2\",\n text: \"Loading...\",\n classes: \"disabled opacity-50\",\n iconClasses: \"animate-spin mr-2 h-4 w-4\",\n },\n /** Inline loading spinner */\n inline: {\n icon: \"Loader2\",\n classes: \"animate-spin h-4 w-4\",\n },\n /** Table row skeleton */\n tableRow: \"Skeleton h-12 w-full\",\n /** List item skeleton */\n listItem: \"Skeleton h-16 w-full\",\n /** Avatar skeleton */\n avatar: \"Skeleton h-10 w-10 rounded-full\",\n },\n\n empty: {\n /** Empty state container structure */\n structure: \"flex flex-col items-center justify-center py-12 text-center\",\n /** Empty state icon */\n icon: {\n classes: \"h-12 w-12 text-muted-foreground mb-4\",\n note: \"Use relevant lucide icon for context\",\n },\n /** Empty state title */\n title: {\n classes: \"headline-small mb-2\",\n },\n /** Empty state description */\n description: {\n classes: \"body-medium text-muted-foreground max-w-sm mx-auto mb-4\",\n },\n /** Empty state action button */\n action: {\n variant: \"outline\" as const,\n note: \"Optional - only if user can take action to fill empty state\",\n },\n },\n\n error: {\n /** Full page error */\n page: {\n component: \"Alert\",\n variant: \"destructive\",\n includeRetry: true,\n classes: \"max-w-lg mx-auto my-8\",\n },\n /** Inline error message */\n inline: {\n classes: \"body-small text-destructive\",\n },\n /** Form field error */\n field: {\n inputClasses: \"border-destructive focus:ring-destructive\",\n messageClasses: \"body-small text-destructive mt-1\",\n },\n /** Error banner */\n banner: {\n component: \"Alert\",\n variant: \"destructive\",\n classes: \"mb-4\",\n },\n },\n\n disabled: {\n /** Disabled opacity */\n opacity: \"opacity-50\",\n /** Disabled cursor */\n cursor: \"cursor-not-allowed\",\n /** Prevent interaction */\n interaction: \"pointer-events-none\",\n /** Combined disabled classes */\n combined: \"opacity-50 cursor-not-allowed pointer-events-none\",\n },\n\n success: {\n /** Success toast */\n toast: {\n method: \"toast.success\",\n duration: 3000,\n },\n /** Inline success message */\n inline: {\n classes: \"body-small text-[var(--semantic-success500)]\",\n },\n /** Success banner */\n banner: {\n component: \"Alert\",\n variant: \"default\",\n icon: \"CheckCircle\",\n classes: \"border-[var(--semantic-success500)] bg-green-50\",\n },\n },\n\n warning: {\n /** Warning banner */\n banner: {\n component: \"Alert\",\n variant: \"warning\",\n icon: \"AlertTriangle\",\n },\n /** Inline warning */\n inline: {\n classes: \"body-small text-[var(--colors-yellow-600)]\",\n },\n },\n} as const;\n\nexport type StatePatterns = typeof statePatterns;\n","// Interaction Patterns\n// Hover, focus, active, and transition states\n\nexport const interactionPatterns = {\n clickableCard: {\n /** Default state */\n default: \"shadow-card transition-shadow duration-200\",\n /** Hover state */\n hover: \"hover:shadow-elevated\",\n /** Cursor */\n cursor: \"cursor-pointer\",\n /** Combined classes */\n combined: \"shadow-card hover:shadow-elevated cursor-pointer transition-shadow duration-200\",\n /** With border change */\n withBorder: \"border border-gray-200 hover:border-gray-300 cursor-pointer transition-colors\",\n },\n\n link: {\n /** Default link styling */\n default: \"text-[var(--colors-blue-400)] underline-offset-4\",\n /** Hover state */\n hover: \"hover:underline\",\n /** Combined classes */\n combined: \"text-[var(--colors-blue-400)] underline-offset-4 hover:underline\",\n /** Navigation link (no underline by default) */\n nav: \"text-[var(--colors-blue-400)] hover:underline underline-offset-4\",\n },\n\n iconButton: {\n /** Default state */\n default: \"p-2 rounded-md transition-colors\",\n /** Hover state */\n hover: \"hover:bg-muted\",\n /** Combined classes */\n combined: \"p-2 rounded-md hover:bg-muted transition-colors\",\n /** Destructive icon button */\n destructive: \"p-2 rounded-md hover:bg-destructive/10 hover:text-destructive transition-colors\",\n },\n\n tableRow: {\n /** Default state */\n default: \"transition-colors\",\n /** Hover state */\n hover: \"hover:bg-muted/50\",\n /** Combined classes */\n combined: \"hover:bg-muted/50 transition-colors\",\n /** Clickable row */\n clickable: \"hover:bg-muted/50 cursor-pointer transition-colors\",\n },\n\n listItem: {\n /** Default Item hover */\n default: \"transition-colors\",\n /** Hover state */\n hover: \"hover:bg-muted/50\",\n /** Active/selected state */\n active: \"bg-muted\",\n /** Combined for clickable items */\n combined: \"hover:bg-muted/50 cursor-pointer transition-colors\",\n },\n\n button: {\n /** Focus ring */\n focus: \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n /** Active/pressed state */\n active: \"active:scale-[0.98]\",\n /** Transition */\n transition: \"transition-colors\",\n },\n\n input: {\n /** Default state */\n default: \"border border-gray-200 transition-colors\",\n /** Hover state */\n hover: \"hover:border-gray-300\",\n /** Focus state */\n focus: \"focus:border-gray-900 focus:ring-2 focus:ring-gray-900/10\",\n /** Error state */\n error: \"border-destructive focus:border-destructive focus:ring-destructive/10\",\n /** Combined */\n combined: \"border border-gray-200 hover:border-gray-300 focus:border-gray-900 focus:ring-2 focus:ring-gray-900/10 transition-colors\",\n },\n\n menuItem: {\n /** Default state */\n default: \"transition-colors rounded-sm\",\n /** Hover/focus state */\n hover: \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n /** Combined classes */\n combined: \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground rounded-sm transition-colors\",\n },\n\n sidebarItem: {\n /** Default state */\n default: \"transition-colors rounded-md\",\n /** Hover state */\n hover: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n /** Active/current page */\n active: \"bg-sidebar-accent text-sidebar-accent-foreground\",\n /** Combined */\n combined: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground rounded-md transition-colors\",\n },\n\n transitions: {\n /** Fast transition (colors, opacity) */\n fast: \"transition-colors duration-150\",\n /** Medium transition (transform, shadow) */\n medium: \"transition-all duration-200\",\n /** Slow transition (layout) */\n slow: \"transition-all duration-300\",\n /** Ease functions */\n ease: {\n default: \"ease-in-out\",\n in: \"ease-in\",\n out: \"ease-out\",\n bounce: \"cubic-bezier(0.68, -0.55, 0.265, 1.55)\",\n },\n },\n} as const;\n\nexport type InteractionPatterns = typeof interactionPatterns;\n","// Chart Patterns\n// Color rules, axis styles, and data visualization patterns\n\nexport const chartPatterns = {\n /** Order of colors when assigning to data series */\n colorPriority: [\"chart-1\", \"chart-3\", \"chart-5\", \"chart-4\", \"chart-6\", \"chart-8\"],\n\n /** Rating distribution color mapping (5-star to 1-star) */\n ratingDistribution: {\n \"5\": \"chart-3\", // Green - great\n \"4\": \"chart-1\", // Yellow - good\n \"3\": \"chart-4\", // Gray - neutral\n \"2\": \"chart-5\", // Red - poor\n \"1\": \"chart-5\", // Red - poor\n },\n\n /** Colors for positive/growth metrics */\n positiveMetrics: [\"chart-1\", \"chart-3\", \"chart-6\"],\n\n /** Colors for negative/decline metrics */\n negativeMetrics: [\"chart-5\", \"chart-4\", \"chart-8\"],\n\n /** Comparison pairs (e.g., this period vs last period) */\n comparisonPairs: {\n current: \"chart-1\",\n previous: \"chart-4\",\n },\n\n /** Axis styling (Recharts) */\n axisStyle: {\n tickLine: false,\n axisLine: false,\n tick: {\n fill: \"hsl(var(--muted-foreground))\",\n fontSize: 12,\n },\n tickMargin: 8,\n },\n\n /** Y-axis specific */\n yAxisStyle: {\n tickLine: false,\n axisLine: false,\n tick: {\n fill: \"hsl(var(--muted-foreground))\",\n fontSize: 12,\n },\n width: 40,\n },\n\n /** X-axis specific */\n xAxisStyle: {\n tickLine: false,\n axisLine: false,\n tick: {\n fill: \"hsl(var(--muted-foreground))\",\n fontSize: 12,\n },\n height: 40,\n },\n\n /** Bar chart corner radius */\n barRadius: [4, 4, 0, 0] as [number, number, number, number],\n\n /** Grid styling */\n gridStyle: {\n stroke: \"hsl(var(--border))\",\n strokeDasharray: \"3 3\",\n },\n\n /** Tooltip styling */\n tooltipStyle: {\n contentStyle: {\n backgroundColor: \"hsl(var(--popover))\",\n border: \"1px solid hsl(var(--border))\",\n borderRadius: \"6px\",\n boxShadow: \"var(--card-shadow)\",\n },\n labelStyle: {\n fontWeight: 600,\n marginBottom: 4,\n },\n },\n\n /** Legend styling */\n legendStyle: {\n iconType: \"circle\" as const,\n iconSize: 8,\n wrapperStyle: {\n paddingTop: 16,\n },\n },\n\n /** Chart container sizing */\n containerSizing: {\n /** Small chart (sparkline, mini) */\n small: { height: 100 },\n /** Medium chart (card) */\n medium: { height: 200 },\n /** Large chart (main view) */\n large: { height: 300 },\n /** Full height (dashboard) */\n full: { height: 400 },\n },\n\n /** Margin presets */\n margins: {\n /** No labels */\n none: { top: 0, right: 0, bottom: 0, left: 0 },\n /** With axis labels */\n withAxis: { top: 10, right: 10, bottom: 30, left: 40 },\n /** With legend */\n withLegend: { top: 10, right: 10, bottom: 50, left: 40 },\n },\n\n /** Semantic data series names */\n semanticSeries: {\n revenue: { color: \"chart-1\", label: \"Revenue\" },\n growth: { color: \"chart-3\", label: \"Growth\" },\n decline: { color: \"chart-5\", label: \"Decline\" },\n baseline: { color: \"chart-4\", label: \"Baseline\" },\n target: { color: \"chart-2\", label: \"Target\" },\n },\n} as const;\n\nexport type ChartPatterns = typeof chartPatterns;\n","// Modal Patterns\n// Dialog, AlertDialog, and Sheet patterns\n\nexport const modalPatterns = {\n sizes: {\n /** Small dialogs (simple confirm, single field) */\n small: \"max-w-sm\",\n /** Default dialogs (forms, content) */\n default: \"max-w-lg\",\n /** Large dialogs (complex forms, multi-step) */\n large: \"max-w-2xl\",\n /** Extra large (previews, rich content) */\n xl: \"max-w-3xl\",\n /** Full width (tables, complex layouts) */\n full: \"max-w-4xl\",\n },\n\n /** Header with icon (for important dialogs) */\n headerWithIcon: {\n /** Icon container base classes */\n iconContainer: \"size-12 rounded-full flex items-center justify-center mb-4\",\n /** Positive/success icon background */\n iconPositive: \"bg-yellow-100 text-yellow-600\",\n /** Info icon background */\n iconInfo: \"bg-blue-100 text-blue-600\",\n /** Destructive/warning icon background */\n iconDestructive: \"bg-red-100 text-red-600\",\n /** Success icon background */\n iconSuccess: \"bg-green-100 text-green-600\",\n /** Icon size inside container */\n iconSize: \"h-6 w-6\",\n },\n\n /** Footer patterns */\n footer: {\n /** Standard alignment */\n alignment: \"flex justify-end gap-2\",\n /** Cancel button comes first (left) */\n cancelFirst: true,\n /** Destructive actions */\n destructive: {\n cancelVariant: \"outline\" as const,\n actionVariant: \"destructive\" as const,\n },\n /** Standard actions */\n standard: {\n cancelVariant: \"outline\" as const,\n actionVariant: \"default\" as const,\n },\n },\n\n /** Mobile considerations */\n mobile: {\n /** Dialog content height constraint */\n dialogHeight: \"max-h-[90vh] overflow-y-auto\",\n /** Bottom sheet height */\n bottomSheetHeight: \"h-auto max-h-[80vh]\",\n /** Full screen dialog */\n fullScreen: \"fixed inset-0 max-w-none rounded-none\",\n },\n\n /** Sheet-specific patterns */\n sheet: {\n /** Right panel (default) - detail views */\n right: {\n side: \"right\" as const,\n width: \"w-[400px] sm:max-w-[540px]\",\n },\n /** Left panel - mobile navigation */\n left: {\n side: \"left\" as const,\n width: \"w-[300px] sm:max-w-[400px]\",\n },\n /** Bottom panel - mobile actions */\n bottom: {\n side: \"bottom\" as const,\n height: \"h-auto max-h-[80vh]\",\n rounded: \"rounded-t-xl\",\n },\n },\n\n /** AlertDialog specific (destructive confirmations) */\n alertDialog: {\n /** Header: title + description only. NO icons, NO decoration */\n headerRule: \"Title and description text only\",\n /** Footer button order */\n buttonOrder: [\"AlertDialogCancel\", \"AlertDialogAction\"],\n /** Action button for destructive */\n destructiveAction: {\n variant: \"destructive\" as const,\n text: \"Delete\", // or appropriate action verb\n },\n /** Standard messaging */\n messaging: {\n title: \"Action verb + object (e.g., 'Delete this item?')\",\n description: \"Consequence explanation (e.g., 'This action cannot be undone.')\",\n },\n },\n\n /** Common dialog content patterns */\n contentPatterns: {\n /** Form dialog */\n form: {\n spacing: \"space-y-4\",\n footerSpacing: \"pt-4\",\n },\n /** Confirmation dialog */\n confirmation: {\n textAlign: \"text-center\",\n spacing: \"space-y-2\",\n },\n /** Detail/preview dialog */\n detail: {\n maxHeight: \"max-h-[70vh]\",\n overflow: \"overflow-y-auto\",\n },\n },\n\n /** Animation timing */\n animation: {\n /** Dialog fade/scale */\n dialog: \"duration-200\",\n /** Sheet slide */\n sheet: \"duration-300\",\n /** Overlay fade */\n overlay: \"duration-200\",\n },\n} as const;\n\nexport type ModalPatterns = typeof modalPatterns;\n","// Icon Mappings\n// Consistent icon usage from lucide-react\n\nexport const iconMappings = {\n /** Action icons - for buttons and interactive elements */\n actions: {\n edit: \"Pencil\",\n delete: \"Trash2\",\n add: \"Plus\",\n create: \"Plus\",\n close: \"X\",\n cancel: \"X\",\n menu: \"MoreVertical\",\n menuHorizontal: \"MoreHorizontal\",\n settings: \"Settings\",\n copy: \"Copy\",\n duplicate: \"Copy\",\n download: \"Download\",\n upload: \"Upload\",\n refresh: \"RefreshCw\",\n save: \"Save\",\n send: \"Send\",\n search: \"Search\",\n filter: \"Filter\",\n sort: \"ArrowUpDown\",\n archive: \"Archive\",\n restore: \"ArchiveRestore\",\n undo: \"Undo2\",\n redo: \"Redo2\",\n print: \"Printer\",\n export: \"FileDown\",\n import: \"FileUp\",\n },\n\n /** Navigation icons */\n navigation: {\n back: \"ArrowLeft\",\n forward: \"ArrowRight\",\n up: \"ArrowUp\",\n down: \"ArrowDown\",\n external: \"ExternalLink\",\n expand: \"ChevronDown\",\n collapse: \"ChevronUp\",\n chevronLeft: \"ChevronLeft\",\n chevronRight: \"ChevronRight\",\n home: \"Home\",\n menu: \"Menu\",\n sidebar: \"PanelLeft\",\n grid: \"LayoutGrid\",\n list: \"List\",\n },\n\n /** Status icons */\n status: {\n success: \"CheckCircle\",\n check: \"Check\",\n warning: \"AlertTriangle\",\n error: \"AlertCircle\",\n info: \"Info\",\n loading: \"Loader2\",\n pending: \"Clock\",\n scheduled: \"CalendarClock\",\n draft: \"FileEdit\",\n active: \"CircleDot\",\n inactive: \"Circle\",\n verified: \"BadgeCheck\",\n locked: \"Lock\",\n unlocked: \"Unlock\",\n visible: \"Eye\",\n hidden: \"EyeOff\",\n },\n\n /** Domain-specific icons */\n domain: {\n calendar: \"Calendar\",\n date: \"Calendar\",\n time: \"Clock\",\n location: \"MapPin\",\n address: \"MapPin\",\n team: \"Users\",\n user: \"User\",\n profile: \"UserCircle\",\n email: \"Mail\",\n phone: \"Phone\",\n money: \"DollarSign\",\n payment: \"CreditCard\",\n invoice: \"Receipt\",\n rating: \"Star\",\n favorite: \"Heart\",\n bookmark: \"Bookmark\",\n share: \"Share2\",\n link: \"Link\",\n attachment: \"Paperclip\",\n image: \"Image\",\n file: \"File\",\n folder: \"Folder\",\n document: \"FileText\",\n chart: \"BarChart3\",\n analytics: \"TrendingUp\",\n dashboard: \"LayoutDashboard\",\n notification: \"Bell\",\n message: \"MessageSquare\",\n comment: \"MessageCircle\",\n tag: \"Tag\",\n category: \"Folder\",\n partner: \"Building2\",\n company: \"Building\",\n store: \"Store\",\n product: \"Package\",\n inventory: \"Boxes\",\n order: \"ShoppingCart\",\n offer: \"Ticket\",\n event: \"CalendarDays\",\n campaign: \"Megaphone\",\n },\n\n /** Form icons */\n form: {\n required: \"Asterisk\",\n optional: \"Circle\",\n help: \"HelpCircle\",\n clear: \"XCircle\",\n show: \"Eye\",\n hide: \"EyeOff\",\n increment: \"Plus\",\n decrement: \"Minus\",\n },\n\n /** Empty state icons */\n emptyStates: {\n noData: \"Inbox\",\n noResults: \"SearchX\",\n noItems: \"PackageOpen\",\n noContent: \"FileX\",\n noAccess: \"ShieldX\",\n error: \"AlertOctagon\",\n maintenance: \"Wrench\",\n construction: \"Construction\",\n },\n} as const;\n\n// Helper to get icon name by category and key\nexport const getIcon = (\n category: keyof typeof iconMappings,\n key: string\n): string | undefined => {\n const categoryIcons = iconMappings[category];\n return (categoryIcons as Record<string, string>)[key];\n};\n\nexport type IconMappings = typeof iconMappings;\n","// Badge Mappings\n// Status to badge variant mappings\n\nexport const badgeMappings = {\n /** Status badge variants */\n status: {\n // Positive states\n active: \"success\",\n live: \"success\",\n complete: \"success\",\n completed: \"success\",\n approved: \"success\",\n verified: \"success\",\n published: \"success\",\n online: \"success\",\n\n // Pending/in-progress states\n pending: \"warning\",\n pendingReview: \"warning\",\n inReview: \"warning\",\n processing: \"warning\",\n scheduled: \"warning\",\n\n // Neutral/draft states\n draft: \"secondary\",\n inProgress: \"secondary\",\n paused: \"secondary\",\n inactive: \"secondary\",\n offline: \"secondary\",\n\n // Negative states\n error: \"destructive\",\n failed: \"destructive\",\n cancelled: \"destructive\",\n rejected: \"destructive\",\n expired: \"destructive\",\n overdue: \"destructive\",\n\n // Past/archived states\n archived: \"outline\",\n closed: \"outline\",\n ended: \"outline\",\n past: \"outline\",\n },\n\n /** Generic tag styling */\n tags: \"outline\",\n\n /** Premium/VIP styling (use CSS class, not Badge component) */\n premium: {\n className: \"badge-premium\",\n note: \"Use badge-premium CSS class, not Badge component variant\",\n },\n\n /** Badge with shadow for floating effect */\n floating: {\n additionalClass: \"shadow-tag\",\n note: \"Add shadow-tag class to Badge for floating effect\",\n },\n} as const;\n\n// Helper to get badge variant for a status\nexport const getBadgeVariant = (status: string): string => {\n const normalizedStatus = status.toLowerCase().replace(/[\\s-_]/g, \"\");\n const statusMap = badgeMappings.status as Record<string, string>;\n\n // Try exact match first\n if (statusMap[normalizedStatus]) {\n return statusMap[normalizedStatus];\n }\n\n // Try partial matches\n for (const [key, variant] of Object.entries(statusMap)) {\n if (normalizedStatus.includes(key.toLowerCase())) {\n return variant;\n }\n }\n\n // Default to secondary for unknown statuses\n return \"secondary\";\n};\n\n// Status to badge text mappings (for consistent labeling)\nexport const statusLabels: Record<string, string> = {\n active: \"Active\",\n live: \"Live\",\n complete: \"Complete\",\n completed: \"Completed\",\n approved: \"Approved\",\n verified: \"Verified\",\n published: \"Published\",\n online: \"Online\",\n pending: \"Pending\",\n pendingReview: \"Pending Review\",\n inReview: \"In Review\",\n processing: \"Processing\",\n scheduled: \"Scheduled\",\n draft: \"Draft\",\n inProgress: \"In Progress\",\n paused: \"Paused\",\n inactive: \"Inactive\",\n offline: \"Offline\",\n error: \"Error\",\n failed: \"Failed\",\n cancelled: \"Cancelled\",\n rejected: \"Rejected\",\n expired: \"Expired\",\n overdue: \"Overdue\",\n archived: \"Archived\",\n closed: \"Closed\",\n ended: \"Ended\",\n past: \"Past\",\n};\n\nexport type BadgeMappings = typeof badgeMappings;\n","// @offlinemediainc/offline-ui Design System\n// LLM-friendly design decisions and patterns\n\n// Type definitions\nexport * from \"./types\";\n\n// Semantic mappings\nexport * from \"./semantics\";\n\n// Component decisions and registry\nexport * from \"./components\";\n\n// Layout, state, and interaction patterns\nexport * from \"./patterns\";\n\n// Icon and badge mappings\nexport * from \"./mappings\";\n\n// Import all modules for the combined export\nimport { semanticColors, colorHexValues } from \"./semantics/colors\";\nimport { typographyDecisions, fontFamilyDecisions, typographyScale } from \"./semantics/typography\";\nimport { componentDecisions } from \"./components/decisions\";\nimport { componentRegistry, approvedComponents, draftComponents } from \"./components/registry\";\nimport { layoutPatterns } from \"./patterns/layout\";\nimport { statePatterns } from \"./patterns/states\";\nimport { interactionPatterns } from \"./patterns/interactions\";\nimport { chartPatterns } from \"./patterns/charts\";\nimport { modalPatterns } from \"./patterns/modals\";\nimport { iconMappings } from \"./mappings/icons\";\nimport { badgeMappings, statusLabels } from \"./mappings/badges\";\n\n/**\n * Complete Offline Design System\n *\n * Use this object for LLM consumption - it contains all design decisions,\n * patterns, and component guidance in a single queryable structure.\n *\n * @example\n * // What color for positive feedback?\n * offlineDesignSystem.semantics.colors.feedback.positive // \"chart-3\"\n *\n * // What component for delete confirmation?\n * offlineDesignSystem.components.decisions.modals.confirmDestructive // \"AlertDialog\"\n *\n * // What typography for stat values?\n * offlineDesignSystem.semantics.typography.statValueLarge // \"display-medium\"\n *\n * // What icon for delete action?\n * offlineDesignSystem.mappings.icons.actions.delete // \"Trash2\"\n *\n * // What spacing between form fields?\n * offlineDesignSystem.patterns.layout.forms.fieldGap // \"space-y-4\"\n */\nexport const offlineDesignSystem = {\n /** Package metadata */\n meta: {\n name: \"@offlinemediainc/offline-ui\",\n version: \"0.2.1\",\n description: \"Offline Media Design System - LLM-friendly design decisions and patterns\",\n },\n\n /** Quick reference for most common decisions */\n quickReference: {\n colors: {\n primary: \"#191919 (gray-900) - buttons, text, UI elements\",\n accent: \"#de8e0f (yellow-400) - ACCENT ONLY, never buttons\",\n link: \"#004fff (blue-400) - clickable text only\",\n success: \"#099250 (chart-3) - positive feedback\",\n error: \"#d31a0c (chart-5) - errors, destructive\",\n },\n fonts: {\n display: \"Cabinet Grotesk - hero headlines only\",\n body: \"Satoshi - everything else\",\n mono: \"DM Mono - stats and numbers\",\n },\n shadows: {\n card: \"shadow-card - default for containers\",\n floating: \"shadow-tag - floating badges\",\n modal: \"shadow-elevated - dialogs, popovers\",\n },\n components: {\n formModal: \"Dialog\",\n destructiveConfirm: \"AlertDialog\",\n sidePanel: \"Sheet side=right\",\n listItem: \"Item\",\n toast: \"toast.success / toast.error\",\n },\n },\n\n /** Semantic color and typography mappings */\n semantics: {\n colors: semanticColors,\n colorHexValues,\n typography: typographyDecisions,\n fontFamilies: fontFamilyDecisions,\n typographyScale,\n },\n\n /** Component decisions and metadata */\n components: {\n decisions: componentDecisions,\n registry: componentRegistry,\n approved: approvedComponents,\n draft: draftComponents,\n },\n\n /** Layout, state, and interaction patterns */\n patterns: {\n layout: layoutPatterns,\n states: statePatterns,\n interactions: interactionPatterns,\n charts: chartPatterns,\n modals: modalPatterns,\n },\n\n /** Icon and badge mappings */\n mappings: {\n icons: iconMappings,\n badges: badgeMappings,\n statusLabels,\n },\n\n /** Design rules and anti-patterns */\n rules: {\n critical: [\n \"NEVER use yellow (#de8e0f) for buttons - yellow is accent only\",\n \"Blue (#004fff) is ONLY for clickable text links\",\n \"AlertDialog headers: title + description only, NO icons or decoration\",\n \"Icon-only buttons MUST have aria-label\",\n \"Inputs MUST be paired with Label using htmlFor\",\n ],\n guidelines: [\n \"Use CSS variables instead of hardcoded hex values\",\n \"Match shadow level to element importance: card < tag < elevated\",\n \"Use Cabinet Grotesk (display-*) sparingly for hero headlines\",\n \"Use stat-mono for numerical data and statistics\",\n \"Add max-h-[90vh] overflow-y-auto to Dialog for mobile\",\n ],\n antiPatterns: [\n { bad: \"Yellow buttons\", fix: \"Use Button variant='default' (black)\" },\n { bad: \"Home icon in breadcrumb\", fix: \"Use 'Home' text instead\" },\n { bad: \"Decorated AlertDialog headers\", fix: \"Title + description only\" },\n { bad: \"Missing input labels\", fix: \"Always pair Input with Label htmlFor\" },\n { bad: \"Hardcoded colors\", fix: \"Use CSS variables or semantic classes\" },\n { bad: \"Overusing premium styling\", fix: \"Reserve for actual premium content\" },\n ],\n },\n} as const;\n\nexport type OfflineDesignSystem = typeof offlineDesignSystem;\n"]}
@@ -365,6 +365,7 @@ var componentRegistry = {
365
365
  "SidebarMenu",
366
366
  "SidebarMenuItem",
367
367
  "SidebarMenuButton",
368
+ "SidebarMenuButtonLink",
368
369
  "SidebarHeader",
369
370
  "SidebarFooter",
370
371
  "SidebarTrigger",
@@ -561,6 +562,14 @@ var componentRegistry = {
561
562
  composition: ["CollapsibleTrigger", "CollapsibleContent"]
562
563
  },
563
564
  // Draft Components (not recommended for production)
565
+ Alert: {
566
+ name: "Alert",
567
+ status: "draft",
568
+ description: "Banner for inline messages - info, warning, error, success",
569
+ imports: ["Alert", "AlertTitle", "AlertDescription", "alertVariants"],
570
+ variants: { variant: ["default", "destructive", "warning", "success"] },
571
+ composition: ["AlertTitle", "AlertDescription"]
572
+ },
564
573
  Select: {
565
574
  name: "Select",
566
575
  status: "draft",
@@ -1392,7 +1401,7 @@ var offlineDesignSystem = {
1392
1401
  /** Package metadata */
1393
1402
  meta: {
1394
1403
  name: "@offlinemediainc/offline-ui",
1395
- version: "0.2.0",
1404
+ version: "0.2.1",
1396
1405
  description: "Offline Media Design System - LLM-friendly design decisions and patterns"
1397
1406
  },
1398
1407
  /** Quick reference for most common decisions */
@@ -1501,5 +1510,5 @@ exports.statePatterns = statePatterns;
1501
1510
  exports.statusLabels = statusLabels;
1502
1511
  exports.typographyDecisions = typographyDecisions;
1503
1512
  exports.typographyScale = typographyScale;
1504
- //# sourceMappingURL=chunk-XOGYSEME.cjs.map
1505
- //# sourceMappingURL=chunk-XOGYSEME.cjs.map
1513
+ //# sourceMappingURL=chunk-TVAKDV26.cjs.map
1514
+ //# sourceMappingURL=chunk-TVAKDV26.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/design-system/semantics/colors.ts","../src/design-system/semantics/typography.ts","../src/design-system/components/decisions.ts","../src/design-system/components/registry.ts","../src/design-system/patterns/layout.ts","../src/design-system/patterns/states.ts","../src/design-system/patterns/interactions.ts","../src/design-system/patterns/charts.ts","../src/design-system/patterns/modals.ts","../src/design-system/mappings/icons.ts","../src/design-system/mappings/badges.ts","../src/design-system/index.ts"],"names":[],"mappings":"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","file":"chunk-TVAKDV26.cjs","sourcesContent":["// Semantic Color Mappings\n// Maps semantic purposes to color tokens for consistent usage\n\nexport const semanticColors = {\n brand: {\n /** Yellow-400 (#de8e0f) - brand accent for highlights, badges, premium touches. NEVER for buttons */\n primary: \"yellow-400\",\n /** Blue-400 (#004fff) - for links and clickable text ONLY */\n interactive: \"blue-400\",\n },\n\n text: {\n /** Gray-900 (#191919) - primary text, headings, important content */\n primary: \"gray-900\",\n /** Gray-600 (#636363) - secondary/supporting text */\n secondary: \"gray-600\",\n /** Gray-500 (#7c7c7c) - muted text, timestamps, helpers */\n muted: \"gray-500\",\n /** White text on dark backgrounds */\n onDark: \"white\",\n /** Blue-400 for clickable links */\n link: \"blue-400\",\n /** Success green for positive text */\n positive: \"semantic-success500\",\n /** Red for error/negative text */\n negative: \"red-400\",\n },\n\n surface: {\n /** White - default page/card background */\n default: \"white\",\n /** Gray-50 (#ececec) - muted/secondary backgrounds */\n muted: \"gray-50\",\n /** White with shadow-elevated for floating surfaces */\n elevated: \"white + shadow-elevated\",\n },\n\n border: {\n /** Gray-200 (#c6c6c6) - default borders */\n default: \"gray-200\",\n /** Gray-300 (#aeaeae) - stronger borders */\n strong: \"gray-300\",\n /** Yellow-400 - interactive/accent borders */\n interactive: \"yellow-400\",\n /** Gray-900 - focus ring borders */\n focus: \"gray-900\",\n },\n\n feedback: {\n /** Chart-3 (#099250) - success, positive, growth */\n positive: \"chart-3\",\n /** Chart-5 (#d31a0c) - error, negative, problems */\n negative: \"chart-5\",\n /** Yellow-400 - warning states */\n warning: \"yellow-400\",\n /** Chart-4 (#636363) - neutral/baseline */\n neutral: \"chart-4\",\n },\n} as const;\n\n// Hex value reference for when CSS variables aren't available\nexport const colorHexValues = {\n \"yellow-25\": \"#fff2d8\",\n \"yellow-50\": \"#ffe9bd\",\n \"yellow-100\": \"#ffd386\",\n \"yellow-200\": \"#ffbd54\",\n \"yellow-300\": \"#f0a52c\",\n \"yellow-400\": \"#de8e0f\",\n \"yellow-500\": \"#c57900\",\n \"yellow-600\": \"#a76700\",\n \"yellow-700\": \"#835100\",\n \"yellow-800\": \"#5c3900\",\n \"yellow-900\": \"#331f00\",\n\n \"blue-25\": \"#d8e7ff\",\n \"blue-50\": \"#bed6ff\",\n \"blue-100\": \"#85afff\",\n \"blue-200\": \"#508bff\",\n \"blue-300\": \"#236aff\",\n \"blue-400\": \"#004fff\",\n \"blue-500\": \"#0046e0\",\n \"blue-600\": \"#003bbb\",\n \"blue-700\": \"#002e91\",\n \"blue-800\": \"#001f63\",\n \"blue-900\": \"#001033\",\n\n \"gray-25\": \"#f2f2f2\",\n \"gray-50\": \"#ececec\",\n \"gray-100\": \"#dfdfdf\",\n \"gray-200\": \"#c6c6c6\",\n \"gray-300\": \"#aeaeae\",\n \"gray-400\": \"#959595\",\n \"gray-500\": \"#7c7c7c\",\n \"gray-600\": \"#636363\",\n \"gray-700\": \"#4a4a4a\",\n \"gray-800\": \"#323232\",\n \"gray-900\": \"#191919\",\n\n \"red-400\": \"#d31a0c\",\n \"semantic-success500\": \"#099250\",\n\n \"chart-1\": \"#de8e0f\",\n \"chart-2\": \"#004fff\",\n \"chart-3\": \"#099250\",\n \"chart-4\": \"#636363\",\n \"chart-5\": \"#d31a0c\",\n \"chart-6\": \"#a76700\",\n \"chart-7\": \"#003bbb\",\n \"chart-8\": \"#959595\",\n} as const;\n\nexport type SemanticColors = typeof semanticColors;\nexport type ColorHexValues = typeof colorHexValues;\n","// Typography Decision Tree\n// Maps UI contexts to typography classes for consistent usage\n\nexport const typographyDecisions = {\n // Page structure\n /** Hero headlines, major section titles - Cabinet Grotesk, use sparingly */\n pageTitle: \"display-small\",\n /** Section headings within pages */\n sectionHeading: \"headline-medium\",\n /** Card titles, panel headers */\n cardTitle: \"headline-small\",\n\n // Stats & metrics\n /** Large stat values in dashboards */\n statValueLarge: \"display-medium\",\n /** Smaller stat values */\n statValueSmall: \"display-small\",\n /** Labels under stat values */\n statLabel: \"body-small\",\n\n // Body text\n /** Default body text */\n bodyDefault: \"body-medium\",\n /** Secondary/supporting body text */\n bodySecondary: \"body-small\",\n\n // Forms\n /** Form field labels */\n formLabel: \"label-medium\",\n /** Helper text below inputs */\n formHelper: \"body-small text-muted\",\n /** Error messages below inputs */\n formError: \"body-small text-negative\",\n\n // UI elements\n /** Button text */\n buttonText: \"label-medium\",\n /** Sidebar/nav items */\n navItem: \"body-medium\",\n /** Badge text */\n badgeText: \"label-small\",\n /** Table header cells */\n tableHeader: \"label-medium\",\n /** Table body cells */\n tableCell: \"body-medium\",\n /** Timestamps, dates */\n timestamp: \"body-small text-muted\",\n\n // Empty states\n /** Empty state headline */\n emptyStateTitle: \"headline-small\",\n /** Empty state description */\n emptyStateDescription: \"body-medium text-muted\",\n\n // Dialog/Modal\n /** Dialog title */\n dialogTitle: \"headline-medium\",\n /** Dialog description */\n dialogDescription: \"body-medium text-muted\",\n\n // Sidebar\n /** Sidebar section labels */\n sidebarLabel: \"nav-label\",\n /** Sidebar navigation items */\n sidebarItem: \"body-medium\",\n\n // Breadcrumb\n /** Breadcrumb items */\n breadcrumbItem: \"body-small\",\n /** Current breadcrumb (muted) */\n breadcrumbCurrent: \"body-small text-muted\",\n} as const;\n\n// Font family decisions\nexport const fontFamilyDecisions = {\n /** Cabinet Grotesk - hero headlines, major titles. Use sparingly for impact */\n display: \"var(--font-cabinet-grotesk), var(--font-satoshi), sans-serif\",\n /** Satoshi - everything else: headlines, body, labels. The workhorse font */\n body: \"var(--font-satoshi), sans-serif\",\n /** DM Mono - stats, numbers, code. When precision matters */\n mono: \"var(--font-dm-mono), 'DM Mono', monospace\",\n} as const;\n\n// Typography scale reference (for documentation)\nexport const typographyScale = {\n \"display-large\": { size: \"36px\", lineHeight: \"100%\", weight: 800, font: \"Cabinet Grotesk\" },\n \"display-medium\": { size: \"32px\", lineHeight: \"100%\", weight: 800, font: \"Cabinet Grotesk\" },\n \"display-small\": { size: \"29px\", lineHeight: \"100%\", weight: 800, font: \"Cabinet Grotesk\" },\n \"headline-large\": { size: \"26px\", lineHeight: \"32px\", weight: 700, font: \"Satoshi\" },\n \"headline-medium\": { size: \"23px\", lineHeight: \"28px\", weight: 700, font: \"Satoshi\" },\n \"headline-small\": { size: \"20px\", lineHeight: \"24px\", weight: 700, font: \"Satoshi\" },\n \"title-large\": { size: \"18px\", lineHeight: \"22px\", weight: 700, font: \"Satoshi\" },\n \"title-medium\": { size: \"16px\", lineHeight: \"20px\", weight: 700, font: \"Satoshi\" },\n \"title-small\": { size: \"14px\", lineHeight: \"18px\", weight: 700, font: \"Satoshi\" },\n \"body-large\": { size: \"16px\", lineHeight: \"24px\", weight: 500, font: \"Satoshi\" },\n \"body-medium\": { size: \"14px\", lineHeight: \"20px\", weight: 500, font: \"Satoshi\" },\n \"body-small\": { size: \"12px\", lineHeight: \"16px\", weight: 500, font: \"Satoshi\" },\n \"body-x-small\": { size: \"10px\", lineHeight: \"14px\", weight: 500, font: \"Satoshi\" },\n \"label-large\": { size: \"14px\", lineHeight: \"18px\", weight: 700, font: \"Satoshi\" },\n \"label-medium\": { size: \"12px\", lineHeight: \"16px\", weight: 700, font: \"Satoshi\" },\n \"label-small\": { size: \"10px\", lineHeight: \"14px\", weight: 700, font: \"Satoshi\" },\n \"stat-mono\": { weight: 500, letterSpacing: \"0.04em\", font: \"DM Mono\" },\n} as const;\n\nexport type TypographyDecisions = typeof typographyDecisions;\nexport type FontFamilyDecisions = typeof fontFamilyDecisions;\nexport type TypographyScale = typeof typographyScale;\n","// Component Decision Tree\n// Maps UI scenarios to the correct component choice\n\nexport const componentDecisions = {\n lists: {\n /** Clickable list rows (partners, offers, events) */\n clickableRow: \"Item\",\n /** Structured data with sorting/filtering */\n dataTable: \"Table\",\n /** Grid of cards (dashboard, gallery) */\n cardGrid: \"Card in grid\",\n /** Simple bulleted/numbered lists */\n simpleList: \"ul with body-medium\",\n /** Key-value pairs */\n descriptionList: \"dl with label-medium dt and body-medium dd\",\n },\n\n feedback: {\n /** Success after action (save, create, delete) */\n actionSuccess: \"toast.success\",\n /** Error after action */\n actionError: \"toast.error\",\n /** Warning banner in content area */\n inlineWarning: \"Alert variant=warning\",\n /** Error banner in content area */\n inlineError: \"Alert variant=destructive\",\n /** Form field validation error */\n fieldError: \"body-small text-negative below input\",\n /** Info/tip banner */\n inlineInfo: \"Alert variant=default\",\n },\n\n modals: {\n /** Forms, content entry, multi-step flows */\n formEntry: \"Dialog\",\n /** Destructive action confirmation (delete, discard) */\n confirmDestructive: \"AlertDialog\",\n /** Side panel for details, secondary content */\n sidePanel: \"Sheet side=right\",\n /** Mobile navigation drawer */\n mobileNav: \"Sheet side=left\",\n /** Mobile action sheets */\n mobileActions: \"Sheet side=bottom h-auto max-h-[80vh]\",\n /** Preview/detail view */\n preview: \"Dialog or Sheet\",\n },\n\n navigation: {\n /** Primary app navigation */\n primaryNav: \"Sidebar\",\n /** Page-level tabs */\n pageTabs: \"Tabs\",\n /** Location breadcrumbs */\n breadcrumbs: \"Breadcrumb\",\n /** Section header with back button */\n sectionHeader: \"Breadcrumb + headline\",\n /** Dropdown navigation menu */\n dropdownNav: \"DropdownMenu\",\n },\n\n selection: {\n /** Single choice from 2-5 options */\n singleFromFew: \"radio group\",\n /** Single choice from many options */\n singleFromMany: \"Select\",\n /** Multiple choices allowed */\n multiple: \"Checkbox group\",\n /** On/off toggle */\n toggle: \"single Checkbox\",\n /** Segmented control (view modes) */\n segmented: \"Tabs variant=pill\",\n },\n\n data: {\n /** Status indicator */\n status: \"Badge\",\n /** Progress indication */\n progress: \"Progress\",\n /** Avatar/profile image */\n avatar: \"Avatar\",\n /** Data visualization */\n chart: \"Chart (recharts)\",\n /** Loading placeholder */\n skeleton: \"Skeleton\",\n },\n\n forms: {\n /** Single-line text input */\n textInput: \"Input\",\n /** Multi-line text input */\n textArea: \"Textarea\",\n /** Email/password/number input */\n typedInput: \"Input type=email|password|number\",\n /** OTP/verification code */\n otpInput: \"InputOTP\",\n /** Form field label */\n label: \"Label htmlFor={id}\",\n /** Checkbox with label */\n checkbox: \"Checkbox + Label\",\n },\n\n layout: {\n /** Content card container */\n card: \"Card\",\n /** Expandable content */\n accordion: \"Accordion\",\n /** Collapsible section */\n collapsible: \"Collapsible\",\n /** Visual divider */\n separator: \"Separator\",\n /** Hover information */\n tooltip: \"Tooltip\",\n },\n} as const;\n\nexport type ComponentDecisions = typeof componentDecisions;\n","// Component Registry\n// Metadata for all approved components\n\nimport type { ComponentMeta } from \"../types\";\n\nexport const componentRegistry: Record<string, ComponentMeta> = {\n // Layout Components\n Card: {\n name: \"Card\",\n status: \"approved\",\n description: \"Container for grouped content with optional header/footer\",\n imports: [\"Card\", \"CardHeader\", \"CardTitle\", \"CardDescription\", \"CardContent\", \"CardFooter\"],\n composition: [\"CardHeader\", \"CardTitle\", \"CardDescription\", \"CardContent\", \"CardFooter\"],\n },\n\n Item: {\n name: \"Item\",\n status: \"approved\",\n description: \"Flexible list item with media, content, and actions slots\",\n imports: [\"Item\", \"ItemMedia\", \"ItemContent\", \"ItemTitle\", \"ItemDescription\", \"ItemActions\"],\n variants: { variant: [\"default\", \"outline\", \"muted\"] },\n composition: [\"ItemMedia\", \"ItemContent\", \"ItemTitle\", \"ItemDescription\", \"ItemActions\"],\n },\n\n Separator: {\n name: \"Separator\",\n status: \"approved\",\n description: \"Visual divider between sections\",\n imports: [\"Separator\"],\n },\n\n // Navigation Components\n Sidebar: {\n name: \"Sidebar\",\n status: \"approved\",\n description: \"Primary navigation sidebar with collapsible state\",\n imports: [\n \"Sidebar\", \"SidebarContent\", \"SidebarGroup\", \"SidebarGroupLabel\",\n \"SidebarGroupContent\", \"SidebarMenu\", \"SidebarMenuItem\", \"SidebarMenuButton\",\n \"SidebarMenuButtonLink\", \"SidebarHeader\", \"SidebarFooter\", \"SidebarTrigger\", \"SidebarProvider\",\n ],\n composition: [\"SidebarHeader\", \"SidebarContent\", \"SidebarGroup\", \"SidebarFooter\"],\n },\n\n OfflineSidebar: {\n name: \"OfflineSidebar\",\n status: \"approved\",\n description: \"Pre-configured sidebar with Offline branding (requires Next.js)\",\n imports: [\"OfflineSidebar\", \"OfflineSidebarNav\", \"OfflineSidebarFooter\"],\n },\n\n Breadcrumb: {\n name: \"Breadcrumb\",\n status: \"approved\",\n description: \"Location breadcrumb trail\",\n imports: [\n \"Breadcrumb\", \"BreadcrumbList\", \"BreadcrumbItem\", \"BreadcrumbLink\",\n \"BreadcrumbPage\", \"BreadcrumbSeparator\",\n ],\n composition: [\"BreadcrumbList\", \"BreadcrumbItem\", \"BreadcrumbLink\", \"BreadcrumbPage\"],\n },\n\n Tabs: {\n name: \"Tabs\",\n status: \"approved\",\n description: \"Tab navigation for switching views\",\n imports: [\"Tabs\", \"TabsList\", \"TabsTrigger\", \"TabsContent\"],\n variants: { style: [\"default (pill)\", \"line (underline)\"] },\n composition: [\"TabsList\", \"TabsTrigger\", \"TabsContent\"],\n },\n\n DropdownMenu: {\n name: \"DropdownMenu\",\n status: \"approved\",\n description: \"Dropdown menu for actions\",\n imports: [\n \"DropdownMenu\", \"DropdownMenuTrigger\", \"DropdownMenuContent\",\n \"DropdownMenuItem\", \"DropdownMenuSeparator\", \"DropdownMenuLabel\",\n ],\n composition: [\"DropdownMenuTrigger\", \"DropdownMenuContent\", \"DropdownMenuItem\"],\n },\n\n // Action Components\n Button: {\n name: \"Button\",\n status: \"approved\",\n description: \"Primary action trigger. Black (default) is primary color per brand\",\n imports: [\"Button\", \"buttonVariants\"],\n variants: {\n variant: [\"default\", \"secondary\", \"outline\", \"ghost\", \"destructive\", \"link\"],\n size: [\"default\", \"sm\", \"lg\", \"icon\"],\n },\n },\n\n Badge: {\n name: \"Badge\",\n status: \"approved\",\n description: \"Status indicators, tags, labels\",\n imports: [\"Badge\", \"badgeVariants\"],\n variants: {\n variant: [\"default\", \"secondary\", \"destructive\", \"success\", \"warning\", \"outline\"],\n },\n },\n\n // Form Components\n Input: {\n name: \"Input\",\n status: \"approved\",\n description: \"Single-line text input\",\n imports: [\"Input\"],\n },\n\n Label: {\n name: \"Label\",\n status: \"approved\",\n description: \"Form field label - always use with htmlFor\",\n imports: [\"Label\"],\n },\n\n Checkbox: {\n name: \"Checkbox\",\n status: \"approved\",\n description: \"Checkbox for boolean/multi-select\",\n imports: [\"Checkbox\"],\n },\n\n InputOTP: {\n name: \"InputOTP\",\n status: \"approved\",\n description: \"OTP/verification code input\",\n imports: [\"InputOTP\", \"InputOTPGroup\", \"InputOTPSlot\", \"InputOTPSeparator\"],\n composition: [\"InputOTPGroup\", \"InputOTPSlot\"],\n },\n\n Progress: {\n name: \"Progress\",\n status: \"approved\",\n description: \"Progress bar indicator\",\n imports: [\"Progress\"],\n },\n\n // Overlay Components\n Dialog: {\n name: \"Dialog\",\n status: \"approved\",\n description: \"Modal for forms and content. User can dismiss freely\",\n imports: [\n \"Dialog\", \"DialogTrigger\", \"DialogContent\", \"DialogHeader\",\n \"DialogFooter\", \"DialogTitle\", \"DialogDescription\", \"DialogClose\",\n ],\n composition: [\"DialogTrigger\", \"DialogContent\", \"DialogHeader\", \"DialogFooter\"],\n },\n\n AlertDialog: {\n name: \"AlertDialog\",\n status: \"approved\",\n description: \"Interruption requiring decision. Cannot dismiss by clicking outside\",\n imports: [\n \"AlertDialog\", \"AlertDialogTrigger\", \"AlertDialogContent\", \"AlertDialogHeader\",\n \"AlertDialogFooter\", \"AlertDialogTitle\", \"AlertDialogDescription\",\n \"AlertDialogAction\", \"AlertDialogCancel\",\n ],\n composition: [\"AlertDialogTrigger\", \"AlertDialogContent\", \"AlertDialogAction\", \"AlertDialogCancel\"],\n },\n\n Sheet: {\n name: \"Sheet\",\n status: \"approved\",\n description: \"Slide-in panel for secondary content\",\n imports: [\n \"Sheet\", \"SheetTrigger\", \"SheetContent\", \"SheetHeader\",\n \"SheetFooter\", \"SheetTitle\", \"SheetDescription\", \"SheetClose\",\n ],\n variants: { side: [\"right\", \"left\", \"top\", \"bottom\"] },\n composition: [\"SheetTrigger\", \"SheetContent\", \"SheetHeader\", \"SheetFooter\"],\n },\n\n Tooltip: {\n name: \"Tooltip\",\n status: \"approved\",\n description: \"Hover/focus information overlay\",\n imports: [\"Tooltip\", \"TooltipTrigger\", \"TooltipContent\", \"TooltipProvider\"],\n composition: [\"TooltipTrigger\", \"TooltipContent\"],\n },\n\n // Data Display Components\n Avatar: {\n name: \"Avatar\",\n status: \"approved\",\n description: \"User/entity avatar with fallback\",\n imports: [\"Avatar\", \"AvatarImage\", \"AvatarFallback\"],\n composition: [\"AvatarImage\", \"AvatarFallback\"],\n sizes: [\"default\", \"sm\", \"lg\"],\n },\n\n Skeleton: {\n name: \"Skeleton\",\n status: \"approved\",\n description: \"Loading placeholder matching content shape\",\n imports: [\"Skeleton\"],\n },\n\n Chart: {\n name: \"Chart\",\n status: \"approved\",\n description: \"Data visualization wrapper for Recharts\",\n imports: [\"ChartContainer\", \"ChartTooltip\", \"ChartTooltipContent\", \"ChartLegend\", \"ChartLegendContent\"],\n },\n\n // Interactive Components\n Accordion: {\n name: \"Accordion\",\n status: \"approved\",\n description: \"Expandable content sections\",\n imports: [\"Accordion\", \"AccordionItem\", \"AccordionTrigger\", \"AccordionContent\"],\n composition: [\"AccordionItem\", \"AccordionTrigger\", \"AccordionContent\"],\n },\n\n Collapsible: {\n name: \"Collapsible\",\n status: \"approved\",\n description: \"Single collapsible section\",\n imports: [\"Collapsible\", \"CollapsibleTrigger\", \"CollapsibleContent\"],\n composition: [\"CollapsibleTrigger\", \"CollapsibleContent\"],\n },\n\n // Draft Components (not recommended for production)\n Alert: {\n name: \"Alert\",\n status: \"draft\",\n description: \"Banner for inline messages - info, warning, error, success\",\n imports: [\"Alert\", \"AlertTitle\", \"AlertDescription\", \"alertVariants\"],\n variants: { variant: [\"default\", \"destructive\", \"warning\", \"success\"] },\n composition: [\"AlertTitle\", \"AlertDescription\"],\n },\n\n Select: {\n name: \"Select\",\n status: \"draft\",\n description: \"Dropdown select - still being refined\",\n imports: [\n \"Select\", \"SelectTrigger\", \"SelectContent\", \"SelectItem\",\n \"SelectValue\", \"SelectGroup\", \"SelectLabel\",\n ],\n },\n\n Sonner: {\n name: \"Sonner\",\n status: \"draft\",\n description: \"Toast notifications - integration in progress\",\n imports: [\"Toaster\", \"toast\"],\n },\n\n Table: {\n name: \"Table\",\n status: \"draft\",\n description: \"Data table - needs more patterns\",\n imports: [\n \"Table\", \"TableHeader\", \"TableBody\", \"TableFooter\",\n \"TableHead\", \"TableRow\", \"TableCell\", \"TableCaption\",\n ],\n },\n\n Textarea: {\n name: \"Textarea\",\n status: \"draft\",\n description: \"Multi-line text input - under review\",\n imports: [\"Textarea\"],\n },\n};\n\n// List of approved component names\nexport const approvedComponents = Object.entries(componentRegistry)\n .filter(([_, meta]) => meta.status === \"approved\")\n .map(([name]) => name);\n\n// List of draft component names\nexport const draftComponents = Object.entries(componentRegistry)\n .filter(([_, meta]) => meta.status === \"draft\")\n .map(([name]) => name);\n\nexport type ComponentRegistry = typeof componentRegistry;\n","// Layout Patterns\n// Spacing, grids, and structural patterns\n\nexport const layoutPatterns = {\n page: {\n /** Content area max width */\n maxWidth: \"max-w-4xl\",\n /** Wider content area (dashboards, tables) */\n maxWidthWide: \"max-w-6xl\",\n /** Page padding */\n padding: \"px-4 py-6\",\n /** Gap between major sections */\n sectionGap: \"space-y-8\",\n /** Main content wrapper */\n wrapper: \"mx-auto px-4 py-6\",\n },\n\n cards: {\n /** Standard card padding */\n padding: \"p-6\",\n /** Compact card padding */\n paddingCompact: \"p-4\",\n /** Gap between cards in grid */\n gap: \"gap-4\",\n /** 2-column responsive grid */\n grid2col: \"grid grid-cols-1 md:grid-cols-2 gap-4\",\n /** 3-column responsive grid */\n grid3col: \"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\",\n /** 4-column responsive grid */\n grid4col: \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\",\n /** Stack of cards */\n stack: \"flex flex-col gap-4\",\n },\n\n forms: {\n /** Gap between form fields */\n fieldGap: \"space-y-4\",\n /** Gap between label and input */\n labelGap: \"mb-2\",\n /** Gap between input and helper text */\n helperGap: \"mt-1\",\n /** Gap between buttons in button group */\n buttonGap: \"gap-2\",\n /** Gap between form sections */\n sectionGap: \"space-y-6\",\n /** Form container */\n container: \"space-y-4\",\n /** Form actions row */\n actions: \"flex justify-end gap-2 pt-4\",\n /** Full-width form field */\n fieldFull: \"w-full\",\n /** Inline field pair */\n fieldPair: \"grid grid-cols-2 gap-4\",\n },\n\n inline: {\n /** Icon + text alignment */\n iconText: \"inline-flex items-center gap-2\",\n /** Badge group spacing */\n badges: \"flex flex-wrap gap-2\",\n /** Button group spacing */\n buttons: \"flex items-center gap-2\",\n /** Tag list */\n tags: \"flex flex-wrap gap-1\",\n },\n\n header: {\n /** Page header with title and actions */\n pageHeader: \"flex items-center justify-between mb-6\",\n /** Section header */\n sectionHeader: \"flex items-center justify-between mb-4\",\n /** Card header */\n cardHeader: \"flex items-center justify-between\",\n },\n\n sidebar: {\n /** Sidebar width */\n width: \"w-64\",\n /** Collapsed sidebar width */\n widthCollapsed: \"w-16\",\n /** Content area with sidebar */\n contentWithSidebar: \"ml-64\",\n /** Mobile: full width content */\n contentMobile: \"ml-0\",\n },\n\n responsive: {\n /** Hide on mobile, show on tablet+ */\n hideMobile: \"hidden md:block\",\n /** Show on mobile, hide on tablet+ */\n showMobile: \"md:hidden\",\n /** Stack on mobile, row on tablet+ */\n stackToRow: \"flex flex-col md:flex-row\",\n /** Full width on mobile, auto on tablet+ */\n fullToAuto: \"w-full md:w-auto\",\n },\n} as const;\n\nexport type LayoutPatterns = typeof layoutPatterns;\n","// State Patterns\n// Loading, empty, error, and disabled state patterns\n\nexport const statePatterns = {\n loading: {\n /** Full page loading skeleton */\n page: \"Skeleton matching page structure\",\n /** Card loading skeleton */\n card: \"Skeleton matching card structure\",\n /** Button loading state */\n button: {\n icon: \"Loader2\",\n text: \"Loading...\",\n classes: \"disabled opacity-50\",\n iconClasses: \"animate-spin mr-2 h-4 w-4\",\n },\n /** Inline loading spinner */\n inline: {\n icon: \"Loader2\",\n classes: \"animate-spin h-4 w-4\",\n },\n /** Table row skeleton */\n tableRow: \"Skeleton h-12 w-full\",\n /** List item skeleton */\n listItem: \"Skeleton h-16 w-full\",\n /** Avatar skeleton */\n avatar: \"Skeleton h-10 w-10 rounded-full\",\n },\n\n empty: {\n /** Empty state container structure */\n structure: \"flex flex-col items-center justify-center py-12 text-center\",\n /** Empty state icon */\n icon: {\n classes: \"h-12 w-12 text-muted-foreground mb-4\",\n note: \"Use relevant lucide icon for context\",\n },\n /** Empty state title */\n title: {\n classes: \"headline-small mb-2\",\n },\n /** Empty state description */\n description: {\n classes: \"body-medium text-muted-foreground max-w-sm mx-auto mb-4\",\n },\n /** Empty state action button */\n action: {\n variant: \"outline\" as const,\n note: \"Optional - only if user can take action to fill empty state\",\n },\n },\n\n error: {\n /** Full page error */\n page: {\n component: \"Alert\",\n variant: \"destructive\",\n includeRetry: true,\n classes: \"max-w-lg mx-auto my-8\",\n },\n /** Inline error message */\n inline: {\n classes: \"body-small text-destructive\",\n },\n /** Form field error */\n field: {\n inputClasses: \"border-destructive focus:ring-destructive\",\n messageClasses: \"body-small text-destructive mt-1\",\n },\n /** Error banner */\n banner: {\n component: \"Alert\",\n variant: \"destructive\",\n classes: \"mb-4\",\n },\n },\n\n disabled: {\n /** Disabled opacity */\n opacity: \"opacity-50\",\n /** Disabled cursor */\n cursor: \"cursor-not-allowed\",\n /** Prevent interaction */\n interaction: \"pointer-events-none\",\n /** Combined disabled classes */\n combined: \"opacity-50 cursor-not-allowed pointer-events-none\",\n },\n\n success: {\n /** Success toast */\n toast: {\n method: \"toast.success\",\n duration: 3000,\n },\n /** Inline success message */\n inline: {\n classes: \"body-small text-[var(--semantic-success500)]\",\n },\n /** Success banner */\n banner: {\n component: \"Alert\",\n variant: \"default\",\n icon: \"CheckCircle\",\n classes: \"border-[var(--semantic-success500)] bg-green-50\",\n },\n },\n\n warning: {\n /** Warning banner */\n banner: {\n component: \"Alert\",\n variant: \"warning\",\n icon: \"AlertTriangle\",\n },\n /** Inline warning */\n inline: {\n classes: \"body-small text-[var(--colors-yellow-600)]\",\n },\n },\n} as const;\n\nexport type StatePatterns = typeof statePatterns;\n","// Interaction Patterns\n// Hover, focus, active, and transition states\n\nexport const interactionPatterns = {\n clickableCard: {\n /** Default state */\n default: \"shadow-card transition-shadow duration-200\",\n /** Hover state */\n hover: \"hover:shadow-elevated\",\n /** Cursor */\n cursor: \"cursor-pointer\",\n /** Combined classes */\n combined: \"shadow-card hover:shadow-elevated cursor-pointer transition-shadow duration-200\",\n /** With border change */\n withBorder: \"border border-gray-200 hover:border-gray-300 cursor-pointer transition-colors\",\n },\n\n link: {\n /** Default link styling */\n default: \"text-[var(--colors-blue-400)] underline-offset-4\",\n /** Hover state */\n hover: \"hover:underline\",\n /** Combined classes */\n combined: \"text-[var(--colors-blue-400)] underline-offset-4 hover:underline\",\n /** Navigation link (no underline by default) */\n nav: \"text-[var(--colors-blue-400)] hover:underline underline-offset-4\",\n },\n\n iconButton: {\n /** Default state */\n default: \"p-2 rounded-md transition-colors\",\n /** Hover state */\n hover: \"hover:bg-muted\",\n /** Combined classes */\n combined: \"p-2 rounded-md hover:bg-muted transition-colors\",\n /** Destructive icon button */\n destructive: \"p-2 rounded-md hover:bg-destructive/10 hover:text-destructive transition-colors\",\n },\n\n tableRow: {\n /** Default state */\n default: \"transition-colors\",\n /** Hover state */\n hover: \"hover:bg-muted/50\",\n /** Combined classes */\n combined: \"hover:bg-muted/50 transition-colors\",\n /** Clickable row */\n clickable: \"hover:bg-muted/50 cursor-pointer transition-colors\",\n },\n\n listItem: {\n /** Default Item hover */\n default: \"transition-colors\",\n /** Hover state */\n hover: \"hover:bg-muted/50\",\n /** Active/selected state */\n active: \"bg-muted\",\n /** Combined for clickable items */\n combined: \"hover:bg-muted/50 cursor-pointer transition-colors\",\n },\n\n button: {\n /** Focus ring */\n focus: \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n /** Active/pressed state */\n active: \"active:scale-[0.98]\",\n /** Transition */\n transition: \"transition-colors\",\n },\n\n input: {\n /** Default state */\n default: \"border border-gray-200 transition-colors\",\n /** Hover state */\n hover: \"hover:border-gray-300\",\n /** Focus state */\n focus: \"focus:border-gray-900 focus:ring-2 focus:ring-gray-900/10\",\n /** Error state */\n error: \"border-destructive focus:border-destructive focus:ring-destructive/10\",\n /** Combined */\n combined: \"border border-gray-200 hover:border-gray-300 focus:border-gray-900 focus:ring-2 focus:ring-gray-900/10 transition-colors\",\n },\n\n menuItem: {\n /** Default state */\n default: \"transition-colors rounded-sm\",\n /** Hover/focus state */\n hover: \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n /** Combined classes */\n combined: \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground rounded-sm transition-colors\",\n },\n\n sidebarItem: {\n /** Default state */\n default: \"transition-colors rounded-md\",\n /** Hover state */\n hover: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n /** Active/current page */\n active: \"bg-sidebar-accent text-sidebar-accent-foreground\",\n /** Combined */\n combined: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground rounded-md transition-colors\",\n },\n\n transitions: {\n /** Fast transition (colors, opacity) */\n fast: \"transition-colors duration-150\",\n /** Medium transition (transform, shadow) */\n medium: \"transition-all duration-200\",\n /** Slow transition (layout) */\n slow: \"transition-all duration-300\",\n /** Ease functions */\n ease: {\n default: \"ease-in-out\",\n in: \"ease-in\",\n out: \"ease-out\",\n bounce: \"cubic-bezier(0.68, -0.55, 0.265, 1.55)\",\n },\n },\n} as const;\n\nexport type InteractionPatterns = typeof interactionPatterns;\n","// Chart Patterns\n// Color rules, axis styles, and data visualization patterns\n\nexport const chartPatterns = {\n /** Order of colors when assigning to data series */\n colorPriority: [\"chart-1\", \"chart-3\", \"chart-5\", \"chart-4\", \"chart-6\", \"chart-8\"],\n\n /** Rating distribution color mapping (5-star to 1-star) */\n ratingDistribution: {\n \"5\": \"chart-3\", // Green - great\n \"4\": \"chart-1\", // Yellow - good\n \"3\": \"chart-4\", // Gray - neutral\n \"2\": \"chart-5\", // Red - poor\n \"1\": \"chart-5\", // Red - poor\n },\n\n /** Colors for positive/growth metrics */\n positiveMetrics: [\"chart-1\", \"chart-3\", \"chart-6\"],\n\n /** Colors for negative/decline metrics */\n negativeMetrics: [\"chart-5\", \"chart-4\", \"chart-8\"],\n\n /** Comparison pairs (e.g., this period vs last period) */\n comparisonPairs: {\n current: \"chart-1\",\n previous: \"chart-4\",\n },\n\n /** Axis styling (Recharts) */\n axisStyle: {\n tickLine: false,\n axisLine: false,\n tick: {\n fill: \"hsl(var(--muted-foreground))\",\n fontSize: 12,\n },\n tickMargin: 8,\n },\n\n /** Y-axis specific */\n yAxisStyle: {\n tickLine: false,\n axisLine: false,\n tick: {\n fill: \"hsl(var(--muted-foreground))\",\n fontSize: 12,\n },\n width: 40,\n },\n\n /** X-axis specific */\n xAxisStyle: {\n tickLine: false,\n axisLine: false,\n tick: {\n fill: \"hsl(var(--muted-foreground))\",\n fontSize: 12,\n },\n height: 40,\n },\n\n /** Bar chart corner radius */\n barRadius: [4, 4, 0, 0] as [number, number, number, number],\n\n /** Grid styling */\n gridStyle: {\n stroke: \"hsl(var(--border))\",\n strokeDasharray: \"3 3\",\n },\n\n /** Tooltip styling */\n tooltipStyle: {\n contentStyle: {\n backgroundColor: \"hsl(var(--popover))\",\n border: \"1px solid hsl(var(--border))\",\n borderRadius: \"6px\",\n boxShadow: \"var(--card-shadow)\",\n },\n labelStyle: {\n fontWeight: 600,\n marginBottom: 4,\n },\n },\n\n /** Legend styling */\n legendStyle: {\n iconType: \"circle\" as const,\n iconSize: 8,\n wrapperStyle: {\n paddingTop: 16,\n },\n },\n\n /** Chart container sizing */\n containerSizing: {\n /** Small chart (sparkline, mini) */\n small: { height: 100 },\n /** Medium chart (card) */\n medium: { height: 200 },\n /** Large chart (main view) */\n large: { height: 300 },\n /** Full height (dashboard) */\n full: { height: 400 },\n },\n\n /** Margin presets */\n margins: {\n /** No labels */\n none: { top: 0, right: 0, bottom: 0, left: 0 },\n /** With axis labels */\n withAxis: { top: 10, right: 10, bottom: 30, left: 40 },\n /** With legend */\n withLegend: { top: 10, right: 10, bottom: 50, left: 40 },\n },\n\n /** Semantic data series names */\n semanticSeries: {\n revenue: { color: \"chart-1\", label: \"Revenue\" },\n growth: { color: \"chart-3\", label: \"Growth\" },\n decline: { color: \"chart-5\", label: \"Decline\" },\n baseline: { color: \"chart-4\", label: \"Baseline\" },\n target: { color: \"chart-2\", label: \"Target\" },\n },\n} as const;\n\nexport type ChartPatterns = typeof chartPatterns;\n","// Modal Patterns\n// Dialog, AlertDialog, and Sheet patterns\n\nexport const modalPatterns = {\n sizes: {\n /** Small dialogs (simple confirm, single field) */\n small: \"max-w-sm\",\n /** Default dialogs (forms, content) */\n default: \"max-w-lg\",\n /** Large dialogs (complex forms, multi-step) */\n large: \"max-w-2xl\",\n /** Extra large (previews, rich content) */\n xl: \"max-w-3xl\",\n /** Full width (tables, complex layouts) */\n full: \"max-w-4xl\",\n },\n\n /** Header with icon (for important dialogs) */\n headerWithIcon: {\n /** Icon container base classes */\n iconContainer: \"size-12 rounded-full flex items-center justify-center mb-4\",\n /** Positive/success icon background */\n iconPositive: \"bg-yellow-100 text-yellow-600\",\n /** Info icon background */\n iconInfo: \"bg-blue-100 text-blue-600\",\n /** Destructive/warning icon background */\n iconDestructive: \"bg-red-100 text-red-600\",\n /** Success icon background */\n iconSuccess: \"bg-green-100 text-green-600\",\n /** Icon size inside container */\n iconSize: \"h-6 w-6\",\n },\n\n /** Footer patterns */\n footer: {\n /** Standard alignment */\n alignment: \"flex justify-end gap-2\",\n /** Cancel button comes first (left) */\n cancelFirst: true,\n /** Destructive actions */\n destructive: {\n cancelVariant: \"outline\" as const,\n actionVariant: \"destructive\" as const,\n },\n /** Standard actions */\n standard: {\n cancelVariant: \"outline\" as const,\n actionVariant: \"default\" as const,\n },\n },\n\n /** Mobile considerations */\n mobile: {\n /** Dialog content height constraint */\n dialogHeight: \"max-h-[90vh] overflow-y-auto\",\n /** Bottom sheet height */\n bottomSheetHeight: \"h-auto max-h-[80vh]\",\n /** Full screen dialog */\n fullScreen: \"fixed inset-0 max-w-none rounded-none\",\n },\n\n /** Sheet-specific patterns */\n sheet: {\n /** Right panel (default) - detail views */\n right: {\n side: \"right\" as const,\n width: \"w-[400px] sm:max-w-[540px]\",\n },\n /** Left panel - mobile navigation */\n left: {\n side: \"left\" as const,\n width: \"w-[300px] sm:max-w-[400px]\",\n },\n /** Bottom panel - mobile actions */\n bottom: {\n side: \"bottom\" as const,\n height: \"h-auto max-h-[80vh]\",\n rounded: \"rounded-t-xl\",\n },\n },\n\n /** AlertDialog specific (destructive confirmations) */\n alertDialog: {\n /** Header: title + description only. NO icons, NO decoration */\n headerRule: \"Title and description text only\",\n /** Footer button order */\n buttonOrder: [\"AlertDialogCancel\", \"AlertDialogAction\"],\n /** Action button for destructive */\n destructiveAction: {\n variant: \"destructive\" as const,\n text: \"Delete\", // or appropriate action verb\n },\n /** Standard messaging */\n messaging: {\n title: \"Action verb + object (e.g., 'Delete this item?')\",\n description: \"Consequence explanation (e.g., 'This action cannot be undone.')\",\n },\n },\n\n /** Common dialog content patterns */\n contentPatterns: {\n /** Form dialog */\n form: {\n spacing: \"space-y-4\",\n footerSpacing: \"pt-4\",\n },\n /** Confirmation dialog */\n confirmation: {\n textAlign: \"text-center\",\n spacing: \"space-y-2\",\n },\n /** Detail/preview dialog */\n detail: {\n maxHeight: \"max-h-[70vh]\",\n overflow: \"overflow-y-auto\",\n },\n },\n\n /** Animation timing */\n animation: {\n /** Dialog fade/scale */\n dialog: \"duration-200\",\n /** Sheet slide */\n sheet: \"duration-300\",\n /** Overlay fade */\n overlay: \"duration-200\",\n },\n} as const;\n\nexport type ModalPatterns = typeof modalPatterns;\n","// Icon Mappings\n// Consistent icon usage from lucide-react\n\nexport const iconMappings = {\n /** Action icons - for buttons and interactive elements */\n actions: {\n edit: \"Pencil\",\n delete: \"Trash2\",\n add: \"Plus\",\n create: \"Plus\",\n close: \"X\",\n cancel: \"X\",\n menu: \"MoreVertical\",\n menuHorizontal: \"MoreHorizontal\",\n settings: \"Settings\",\n copy: \"Copy\",\n duplicate: \"Copy\",\n download: \"Download\",\n upload: \"Upload\",\n refresh: \"RefreshCw\",\n save: \"Save\",\n send: \"Send\",\n search: \"Search\",\n filter: \"Filter\",\n sort: \"ArrowUpDown\",\n archive: \"Archive\",\n restore: \"ArchiveRestore\",\n undo: \"Undo2\",\n redo: \"Redo2\",\n print: \"Printer\",\n export: \"FileDown\",\n import: \"FileUp\",\n },\n\n /** Navigation icons */\n navigation: {\n back: \"ArrowLeft\",\n forward: \"ArrowRight\",\n up: \"ArrowUp\",\n down: \"ArrowDown\",\n external: \"ExternalLink\",\n expand: \"ChevronDown\",\n collapse: \"ChevronUp\",\n chevronLeft: \"ChevronLeft\",\n chevronRight: \"ChevronRight\",\n home: \"Home\",\n menu: \"Menu\",\n sidebar: \"PanelLeft\",\n grid: \"LayoutGrid\",\n list: \"List\",\n },\n\n /** Status icons */\n status: {\n success: \"CheckCircle\",\n check: \"Check\",\n warning: \"AlertTriangle\",\n error: \"AlertCircle\",\n info: \"Info\",\n loading: \"Loader2\",\n pending: \"Clock\",\n scheduled: \"CalendarClock\",\n draft: \"FileEdit\",\n active: \"CircleDot\",\n inactive: \"Circle\",\n verified: \"BadgeCheck\",\n locked: \"Lock\",\n unlocked: \"Unlock\",\n visible: \"Eye\",\n hidden: \"EyeOff\",\n },\n\n /** Domain-specific icons */\n domain: {\n calendar: \"Calendar\",\n date: \"Calendar\",\n time: \"Clock\",\n location: \"MapPin\",\n address: \"MapPin\",\n team: \"Users\",\n user: \"User\",\n profile: \"UserCircle\",\n email: \"Mail\",\n phone: \"Phone\",\n money: \"DollarSign\",\n payment: \"CreditCard\",\n invoice: \"Receipt\",\n rating: \"Star\",\n favorite: \"Heart\",\n bookmark: \"Bookmark\",\n share: \"Share2\",\n link: \"Link\",\n attachment: \"Paperclip\",\n image: \"Image\",\n file: \"File\",\n folder: \"Folder\",\n document: \"FileText\",\n chart: \"BarChart3\",\n analytics: \"TrendingUp\",\n dashboard: \"LayoutDashboard\",\n notification: \"Bell\",\n message: \"MessageSquare\",\n comment: \"MessageCircle\",\n tag: \"Tag\",\n category: \"Folder\",\n partner: \"Building2\",\n company: \"Building\",\n store: \"Store\",\n product: \"Package\",\n inventory: \"Boxes\",\n order: \"ShoppingCart\",\n offer: \"Ticket\",\n event: \"CalendarDays\",\n campaign: \"Megaphone\",\n },\n\n /** Form icons */\n form: {\n required: \"Asterisk\",\n optional: \"Circle\",\n help: \"HelpCircle\",\n clear: \"XCircle\",\n show: \"Eye\",\n hide: \"EyeOff\",\n increment: \"Plus\",\n decrement: \"Minus\",\n },\n\n /** Empty state icons */\n emptyStates: {\n noData: \"Inbox\",\n noResults: \"SearchX\",\n noItems: \"PackageOpen\",\n noContent: \"FileX\",\n noAccess: \"ShieldX\",\n error: \"AlertOctagon\",\n maintenance: \"Wrench\",\n construction: \"Construction\",\n },\n} as const;\n\n// Helper to get icon name by category and key\nexport const getIcon = (\n category: keyof typeof iconMappings,\n key: string\n): string | undefined => {\n const categoryIcons = iconMappings[category];\n return (categoryIcons as Record<string, string>)[key];\n};\n\nexport type IconMappings = typeof iconMappings;\n","// Badge Mappings\n// Status to badge variant mappings\n\nexport const badgeMappings = {\n /** Status badge variants */\n status: {\n // Positive states\n active: \"success\",\n live: \"success\",\n complete: \"success\",\n completed: \"success\",\n approved: \"success\",\n verified: \"success\",\n published: \"success\",\n online: \"success\",\n\n // Pending/in-progress states\n pending: \"warning\",\n pendingReview: \"warning\",\n inReview: \"warning\",\n processing: \"warning\",\n scheduled: \"warning\",\n\n // Neutral/draft states\n draft: \"secondary\",\n inProgress: \"secondary\",\n paused: \"secondary\",\n inactive: \"secondary\",\n offline: \"secondary\",\n\n // Negative states\n error: \"destructive\",\n failed: \"destructive\",\n cancelled: \"destructive\",\n rejected: \"destructive\",\n expired: \"destructive\",\n overdue: \"destructive\",\n\n // Past/archived states\n archived: \"outline\",\n closed: \"outline\",\n ended: \"outline\",\n past: \"outline\",\n },\n\n /** Generic tag styling */\n tags: \"outline\",\n\n /** Premium/VIP styling (use CSS class, not Badge component) */\n premium: {\n className: \"badge-premium\",\n note: \"Use badge-premium CSS class, not Badge component variant\",\n },\n\n /** Badge with shadow for floating effect */\n floating: {\n additionalClass: \"shadow-tag\",\n note: \"Add shadow-tag class to Badge for floating effect\",\n },\n} as const;\n\n// Helper to get badge variant for a status\nexport const getBadgeVariant = (status: string): string => {\n const normalizedStatus = status.toLowerCase().replace(/[\\s-_]/g, \"\");\n const statusMap = badgeMappings.status as Record<string, string>;\n\n // Try exact match first\n if (statusMap[normalizedStatus]) {\n return statusMap[normalizedStatus];\n }\n\n // Try partial matches\n for (const [key, variant] of Object.entries(statusMap)) {\n if (normalizedStatus.includes(key.toLowerCase())) {\n return variant;\n }\n }\n\n // Default to secondary for unknown statuses\n return \"secondary\";\n};\n\n// Status to badge text mappings (for consistent labeling)\nexport const statusLabels: Record<string, string> = {\n active: \"Active\",\n live: \"Live\",\n complete: \"Complete\",\n completed: \"Completed\",\n approved: \"Approved\",\n verified: \"Verified\",\n published: \"Published\",\n online: \"Online\",\n pending: \"Pending\",\n pendingReview: \"Pending Review\",\n inReview: \"In Review\",\n processing: \"Processing\",\n scheduled: \"Scheduled\",\n draft: \"Draft\",\n inProgress: \"In Progress\",\n paused: \"Paused\",\n inactive: \"Inactive\",\n offline: \"Offline\",\n error: \"Error\",\n failed: \"Failed\",\n cancelled: \"Cancelled\",\n rejected: \"Rejected\",\n expired: \"Expired\",\n overdue: \"Overdue\",\n archived: \"Archived\",\n closed: \"Closed\",\n ended: \"Ended\",\n past: \"Past\",\n};\n\nexport type BadgeMappings = typeof badgeMappings;\n","// @offlinemediainc/offline-ui Design System\n// LLM-friendly design decisions and patterns\n\n// Type definitions\nexport * from \"./types\";\n\n// Semantic mappings\nexport * from \"./semantics\";\n\n// Component decisions and registry\nexport * from \"./components\";\n\n// Layout, state, and interaction patterns\nexport * from \"./patterns\";\n\n// Icon and badge mappings\nexport * from \"./mappings\";\n\n// Import all modules for the combined export\nimport { semanticColors, colorHexValues } from \"./semantics/colors\";\nimport { typographyDecisions, fontFamilyDecisions, typographyScale } from \"./semantics/typography\";\nimport { componentDecisions } from \"./components/decisions\";\nimport { componentRegistry, approvedComponents, draftComponents } from \"./components/registry\";\nimport { layoutPatterns } from \"./patterns/layout\";\nimport { statePatterns } from \"./patterns/states\";\nimport { interactionPatterns } from \"./patterns/interactions\";\nimport { chartPatterns } from \"./patterns/charts\";\nimport { modalPatterns } from \"./patterns/modals\";\nimport { iconMappings } from \"./mappings/icons\";\nimport { badgeMappings, statusLabels } from \"./mappings/badges\";\n\n/**\n * Complete Offline Design System\n *\n * Use this object for LLM consumption - it contains all design decisions,\n * patterns, and component guidance in a single queryable structure.\n *\n * @example\n * // What color for positive feedback?\n * offlineDesignSystem.semantics.colors.feedback.positive // \"chart-3\"\n *\n * // What component for delete confirmation?\n * offlineDesignSystem.components.decisions.modals.confirmDestructive // \"AlertDialog\"\n *\n * // What typography for stat values?\n * offlineDesignSystem.semantics.typography.statValueLarge // \"display-medium\"\n *\n * // What icon for delete action?\n * offlineDesignSystem.mappings.icons.actions.delete // \"Trash2\"\n *\n * // What spacing between form fields?\n * offlineDesignSystem.patterns.layout.forms.fieldGap // \"space-y-4\"\n */\nexport const offlineDesignSystem = {\n /** Package metadata */\n meta: {\n name: \"@offlinemediainc/offline-ui\",\n version: \"0.2.1\",\n description: \"Offline Media Design System - LLM-friendly design decisions and patterns\",\n },\n\n /** Quick reference for most common decisions */\n quickReference: {\n colors: {\n primary: \"#191919 (gray-900) - buttons, text, UI elements\",\n accent: \"#de8e0f (yellow-400) - ACCENT ONLY, never buttons\",\n link: \"#004fff (blue-400) - clickable text only\",\n success: \"#099250 (chart-3) - positive feedback\",\n error: \"#d31a0c (chart-5) - errors, destructive\",\n },\n fonts: {\n display: \"Cabinet Grotesk - hero headlines only\",\n body: \"Satoshi - everything else\",\n mono: \"DM Mono - stats and numbers\",\n },\n shadows: {\n card: \"shadow-card - default for containers\",\n floating: \"shadow-tag - floating badges\",\n modal: \"shadow-elevated - dialogs, popovers\",\n },\n components: {\n formModal: \"Dialog\",\n destructiveConfirm: \"AlertDialog\",\n sidePanel: \"Sheet side=right\",\n listItem: \"Item\",\n toast: \"toast.success / toast.error\",\n },\n },\n\n /** Semantic color and typography mappings */\n semantics: {\n colors: semanticColors,\n colorHexValues,\n typography: typographyDecisions,\n fontFamilies: fontFamilyDecisions,\n typographyScale,\n },\n\n /** Component decisions and metadata */\n components: {\n decisions: componentDecisions,\n registry: componentRegistry,\n approved: approvedComponents,\n draft: draftComponents,\n },\n\n /** Layout, state, and interaction patterns */\n patterns: {\n layout: layoutPatterns,\n states: statePatterns,\n interactions: interactionPatterns,\n charts: chartPatterns,\n modals: modalPatterns,\n },\n\n /** Icon and badge mappings */\n mappings: {\n icons: iconMappings,\n badges: badgeMappings,\n statusLabels,\n },\n\n /** Design rules and anti-patterns */\n rules: {\n critical: [\n \"NEVER use yellow (#de8e0f) for buttons - yellow is accent only\",\n \"Blue (#004fff) is ONLY for clickable text links\",\n \"AlertDialog headers: title + description only, NO icons or decoration\",\n \"Icon-only buttons MUST have aria-label\",\n \"Inputs MUST be paired with Label using htmlFor\",\n ],\n guidelines: [\n \"Use CSS variables instead of hardcoded hex values\",\n \"Match shadow level to element importance: card < tag < elevated\",\n \"Use Cabinet Grotesk (display-*) sparingly for hero headlines\",\n \"Use stat-mono for numerical data and statistics\",\n \"Add max-h-[90vh] overflow-y-auto to Dialog for mobile\",\n ],\n antiPatterns: [\n { bad: \"Yellow buttons\", fix: \"Use Button variant='default' (black)\" },\n { bad: \"Home icon in breadcrumb\", fix: \"Use 'Home' text instead\" },\n { bad: \"Decorated AlertDialog headers\", fix: \"Title + description only\" },\n { bad: \"Missing input labels\", fix: \"Always pair Input with Label htmlFor\" },\n { bad: \"Hardcoded colors\", fix: \"Use CSS variables or semantic classes\" },\n { bad: \"Overusing premium styling\", fix: \"Reserve for actual premium content\" },\n ],\n },\n} as const;\n\nexport type OfflineDesignSystem = typeof offlineDesignSystem;\n"]}