{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "z-kbd",
  "title": "Z Kbd",
  "dependencies": [],
  "devDependencies": [],
  "registryDependencies": [
    "https://ui.orchid.ai/r/orchid-foundation.json",
    "https://ui.orchid.ai/r/orchid-theme.json"
  ],
  "files": [
    {
      "path": "registry/ui/orchid/spectrum/atoms/z-kbd/z-kbd.tsx",
      "content": "\"use client\";\nimport { usePlatform } from \"../../../hooks/use-platform\";\nimport { isMac } from \"../../../hooks/use-platform\";\ntype Props = {\n    shortcut: string;\n    children?: React.ReactNode;\n    forcePlatform?: 'mac' | 'windows' | 'linux';\n};\nexport default function ZKbd({ shortcut, forcePlatform }: Props) {\n    const detectedPlatform = usePlatform();\n    const platform = forcePlatform ? forcePlatform : detectedPlatform;\n    const macShortCutMap: Record<string, string> = {\n        shift: '⇧',\n        alt: '⌥',\n        meta: '⌘',\n        ctrl: '⌃',\n        return: '↵',\n        escape: 'esc',\n        space: '⎵',\n        tab: '⇥',\n        delete: '⌫',\n    };\n    const windowsShortCutMap: Record<string, string> = {\n        shift: '⇧',\n        alt: 'Alt',\n        meta: 'Ctrl',\n        ctrl: 'Ctrl',\n        return: '↵',\n        escape: 'esc',\n        space: '⎵',\n        tab: '⇥',\n        delete: '⌫',\n    };\n    const shortCutMap = isMac(platform) ? macShortCutMap : windowsShortCutMap;\n    const keyAliases: Record<string, string> = {\n        cmd: 'meta',\n        enter: 'return',\n        esc: 'escape',\n        option: 'alt',\n    };\n    function formatShortcut(shortcut: string) {\n        let keys = shortcut.split('+').map((key) => keyAliases[key] || key);\n        if (!isMac(platform)) {\n            keys = keys.map((key) => {\n                if (key === 'meta' || key === 'cmd')\n                    return 'ctrl';\n                return key;\n            });\n        }\n        const modifierKeys = new Set(['shift', 'alt', 'meta', 'ctrl', 'return', 'tab']);\n        const modifiers = keys.filter((key) => modifierKeys.has(key));\n        const regularKeys = keys.filter((key) => !modifierKeys.has(key));\n        const formattedModifiers = modifiers.map((key) => shortCutMap[key]);\n        const formattedRegularKeys = regularKeys.map((key) => shortCutMap[key] || key.toUpperCase());\n        const separator = isMac(platform) ? '' : '+';\n        const joinedModifiers = formattedModifiers.join(separator);\n        if (joinedModifiers && formattedRegularKeys.length > 0) {\n            return joinedModifiers + '+' + formattedRegularKeys.join('+');\n        }\n        else if (joinedModifiers) {\n            return joinedModifiers;\n        }\n        else {\n            return formattedRegularKeys.join('+');\n        }\n    }\n    return (<div className=\"bg-surface-weak border-neutral text-neutral-weak text-copy-sm hidden h-4 items-center rounded border px-1 shadow-xs md:inline-flex\">\n      {formatShortcut(shortcut)}\n    </div>);\n}\n",
      "type": "registry:ui",
      "target": "@ui/orchid/spectrum/atoms/z-kbd/z-kbd.tsx"
    }
  ],
  "type": "registry:ui"
}