{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "shadcnui-signage",
  "homepage": "https://wallrun.dev/",
  "description": "Digital signage components optimized for distance readability and long-running displays",
  "items": [
    {
      "name": "metric-card",
      "type": "registry:component",
      "title": "Metric Card",
      "description": "Display KPIs and metrics with values, change indicators, and icons. Optimized for distance readability on signage displays.",
      "registryDependencies": [],
      "dependencies": ["clsx", "lucide-react", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/MetricCard.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "screen-frame",
      "type": "registry:component",
      "title": "Screen Frame",
      "description": "Preview container with aspect ratio enforcement and safe area guides. Useful for development and QA testing.",
      "registryDependencies": [],
      "dependencies": [],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/ScreenFrame.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/resolution.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/signage.types.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "event-card",
      "type": "registry:component",
      "title": "Event Card",
      "description": "Display event information with time, title, speaker, location, and track. Commonly used in event schedules and conference displays.",
      "registryDependencies": [],
      "dependencies": ["clsx", "lucide-react", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/EventCard.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "announcement-card",
      "type": "registry:component",
      "title": "Announcement Card",
      "description": "Display announcement information with title, description, date, icon, and category. Glass morphism effects for modern look.",
      "registryDependencies": [],
      "dependencies": ["clsx", "lucide-react", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/AnnouncementCard.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "directory-card",
      "type": "registry:component",
      "title": "Directory Card",
      "description": "Wayfinding card with department, floor, room, and contact metadata for directory and lobby signage.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/DirectoryCard.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/FloorBadge.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "floor-badge",
      "type": "registry:component",
      "title": "Floor Badge",
      "description": "Compact floor badge for wayfinding, room directories, and map overlays.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/FloorBadge.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "location-indicator",
      "type": "registry:component",
      "title": "Location Indicator",
      "description": "Current-location indicator with map pin iconography for wayfinding and directory signage.",
      "registryDependencies": [],
      "dependencies": ["clsx", "lucide-react", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/LocationIndicator.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "menu-item",
      "type": "registry:component",
      "title": "Menu Item",
      "description": "Menu row with item name, price, optional description, and signage-sized typography.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/MenuItem.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "menu-section",
      "type": "registry:component",
      "title": "Menu Section",
      "description": "Section wrapper for grouped menu categories with headline and accent divider.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/MenuSection.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "signage-panel",
      "type": "registry:component",
      "title": "Signage Panel",
      "description": "Bordered content panel for grouped supporting information on lobby and operational screens.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/SignagePanel.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "meeting-row",
      "type": "registry:component",
      "title": "Meeting Row",
      "description": "Agenda-style row for schedules, room bookings, and office lobby meeting lists.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/MeetingRow.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "info-list",
      "type": "registry:component",
      "title": "Info List",
      "description": "Large-format list for lobby notices, visitor instructions, and operational status notes.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/primitives/InfoList.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "split-screen",
      "type": "registry:component",
      "title": "Split Screen",
      "description": "Two-panel layout with configurable ratio and direction. Perfect for showing multiple content streams side-by-side.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/layouts/SplitScreen.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/signage.types.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "signage-container",
      "type": "registry:component",
      "title": "Signage Container",
      "description": "Full-screen container with gradient backgrounds, ambient orb effects, and optional grid overlay. 8 color variants available.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/layouts/SignageContainer.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "signage-header",
      "type": "registry:component",
      "title": "Signage Header",
      "description": "Standard signage header with optional tag badge, title, and subtitle. Multiple color variants and alignment options.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/layouts/SignageHeader.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "fullscreen-hero",
      "type": "registry:component",
      "title": "Fullscreen Hero",
      "description": "Hero section for welcome screens and main messages. Light/dark variants with optional background images and CTA.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/blocks/FullscreenHero.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/clamp.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/signage.types.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "info-card-grid",
      "type": "registry:component",
      "title": "Info Card Grid",
      "description": "Grid layout for displaying informational cards with titles, values, descriptions, and optional meta text. Responsive column layout.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/blocks/InfoCardGrid.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/clamp.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/card.tsx",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/signage.types.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "menu-board",
      "type": "registry:component",
      "title": "Menu Board",
      "description": "Full-screen menu board shell with header, subtitle, and content region for restaurant and daypart signage.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/blocks/MenuBoard.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/layouts/SignageContainer.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "auto-paging-list",
      "type": "registry:component",
      "title": "Auto Paging List",
      "description": "Renders long lists as pages with automatic advancement. Perfect for scrolling-free displays with configurable dwell time per page.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/behaviour/AutoPagingList.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/hooks/useTicker.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/hooks/usePrefersReducedMotion.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/time.types.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "content-rotator",
      "type": "registry:component",
      "title": "Content Rotator",
      "description": "Cycles through children at fixed intervals with transitions. Supports pause/resume and dynamic content updates.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/behaviour/ContentRotator.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/behaviour/SignageTransition.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/hooks/useTicker.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/hooks/usePrefersReducedMotion.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/time.types.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "schedule-gate",
      "type": "registry:component",
      "title": "Schedule Gate",
      "description": "Conditionally renders content based on weekday and time windows. Supports timezone-aware scheduling for daypart menus and time-based content.",
      "registryDependencies": [],
      "dependencies": ["clsx", "date-fns-tz", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/behaviour/ScheduleGate.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/hooks/useTicker.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/time.types.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "signage-transition",
      "type": "registry:component",
      "title": "Signage Transition",
      "description": "Wraps a single child with signage-appropriate transitions (crossfade, slide). Respects prefers-reduced-motion.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/behaviour/SignageTransition.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/hooks/usePrefersReducedMotion.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "clock",
      "type": "registry:component",
      "title": "Clock",
      "description": "Displays current time with configurable format and timezone. Updates at minute boundaries for efficiency.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/behaviour/Clock.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/hooks/useTicker.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/time.types.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "countdown",
      "type": "registry:component",
      "title": "Countdown",
      "description": "Counts down to a target date/time with configurable format. When the target is reached, the timer stops at zero.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/behaviour/Countdown.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/hooks/useTicker.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/time.types.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "offline-fallback",
      "type": "registry:component",
      "title": "Offline Fallback",
      "description": "Shows fallback UI when content is offline or unhealthy. Manual recovery control for graceful degradation.",
      "registryDependencies": [],
      "dependencies": ["clsx", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/behaviour/OfflineFallback.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "stale-data-indicator",
      "type": "registry:component",
      "title": "Stale Data Indicator",
      "description": "Shows visual indicator when data exceeds a freshness threshold. Useful for monitoring real-time data feeds.",
      "registryDependencies": [],
      "dependencies": ["clsx", "lucide-react", "tailwind-merge"],
      "files": [
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/behaviour/StaleDataIndicator.tsx",
          "type": "registry:component"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/hooks/useTicker.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/types/time.types.ts",
          "type": "registry:lib"
        },
        {
          "path": "https://raw.githubusercontent.com/CambridgeMonorail/WallRun/main/libs/shadcnui-signage/src/lib/utils/cn.ts",
          "type": "registry:lib"
        }
      ]
    }
  ]
}
