{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "mac-os-terminal",
  "title": "Mac OS Terminal",
  "description": "macOS Terminal window mock with zsh prompt, typed CLI demo, and shadcn install outputâ€”ideal for integrations and developer tooling sections.",
  "dependencies": [
    "geist@^1.7.0"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/new-york/blocks/mac-os-terminal/page.tsx",
      "content": "import MacOsTerminal from \"./components/mac-os-terminal\"\n\nexport default function Page() {\n  return (\n    <div className=\"px-4 py-10 md:px-6 md:py-14\">\n      <MacOsTerminal />\n    </div>\n  )\n}\n",
      "type": "registry:page",
      "target": "app/mac-os-terminal/page.tsx"
    },
    {
      "path": "registry/new-york/blocks/mac-os-terminal/components/mac-os-terminal.tsx",
      "content": "\"use client\"\n\nimport { GeistSans } from \"geist/font/sans\"\nimport { Folder } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nimport { useTerminalAnimation } from \"../hooks/use-terminal-animation\"\nimport Spinner from \"./spinner\"\nimport PromptShell from \"./prompt-shell\"\nimport TrafficLights from \"./traffic-lights\"\nimport SyntaxCode from \"./syntax-code\"\nimport { CODE_DEMO } from \"../lib/mac-os-terminal-code-segments\"\nimport type { LineColor } from \"../lib/config\"\n\nimport \"../styles/mac-os-terminal.css\"\n\nconst codeBlockWrap =\n  \"mot-codeblock my-2 border-l-2 py-2 pr-2 pl-3 font-mono text-[11px] leading-[1.45]\"\n\nfunction colorCls(c?: LineColor) {\n  if (!c) return \"text-[var(--mot-t-body-fg)]\"\n  switch (c) {\n    case \"green\":\n      return \"text-[var(--mot-t-line-green)]\"\n    case \"cyan\":\n      return \"text-[var(--mot-t-line-cyan)]\"\n    case \"dim\":\n      return \"text-[var(--mot-t-line-dim)]\"\n  }\n}\n\nexport default function MacOsTerminal({ className }: { className?: string }) {\n  const { lines, typed, phase, codeIdx, scrollRef } = useTerminalAnimation()\n\n  return (\n    <div\n      className={cn(\n        \"mot-terminal mx-auto w-full max-w-3xl min-w-0 overflow-hidden rounded-md border border-(--mot-t-border) bg-(--mot-t-shell-bg) font-mono shadow-(--mot-t-shadow) outline-none outline-1 -outline-offset-1 outline-(--mot-t-ring)\",\n        className\n      )}\n    >\n      <div className=\"relative flex h-7 shrink-0 items-center border-b border-(--mot-t-titlebar-border) bg-(--mot-t-titlebar-bg) select-none\">\n        <TrafficLights />\n        <div\n          className={cn(\n            GeistSans.className,\n            \"flex w-full items-center justify-center gap-1.5 px-20 text-center text-[10px] font-medium tracking-tight text-(--mot-t-title-fg)\"\n          )}\n        >\n          <Folder\n            size={12}\n            className=\"size-3 shrink-0\"\n            fill=\"#3b8eea\"\n            stroke=\"none\"\n            strokeWidth={0}\n            aria-hidden\n          />\n          <span>Projects</span>\n          <span className=\"text-[#a1a1aa] dark:text-[#6b6b6b]\" aria-hidden>\n            —\n          </span>\n          <span>-zsh</span>\n          <span className=\"text-[#a1a1aa] dark:text-[#6b6b6b]\" aria-hidden>\n            —\n          </span>\n          <span className=\"tabular-nums\">80×24</span>\n        </div>\n      </div>\n\n      <div\n        ref={scrollRef}\n        className=\"mot-terminal-body h-128 overflow-y-auto bg-(--mot-t-body-bg) px-3.5 py-2 text-left font-mono text-[11px] leading-[1.45] text-(--mot-t-body-fg) [&::-webkit-scrollbar]:hidden\"\n        style={{ scrollbarWidth: \"none\" }}\n      >\n        {lines.map((line) => (\n          <div\n            key={line.id}\n            className={cn(\"mot-terminal-line-in\", colorCls(line.color))}\n          >\n            {line.spinning ? (\n              <span>\n                <Spinner /> {line.text}\n              </span>\n            ) : (\n              line.text || \"\\u00A0\"\n            )}\n          </div>\n        ))}\n\n        {(phase === \"typingCode\" || phase === \"done\") && (\n          <div className={codeBlockWrap}>\n            <pre className=\"m-0 font-mono wrap-break-word whitespace-pre-wrap\">\n              <SyntaxCode\n                visibleChars={phase === \"done\" ? CODE_DEMO.length : codeIdx}\n              />\n              {phase === \"typingCode\" && (\n                <span className=\"mot-terminal-cursor ml-px inline-block h-[1em] w-2 translate-y-px bg-(--mot-terminal-cursor-bg) align-text-bottom\" />\n              )}\n            </pre>\n          </div>\n        )}\n\n        {(phase === \"idle\" || phase === \"typing\") && (\n          <div className=\"flex min-w-0 flex-wrap items-center gap-x-1 gap-y-0\">\n            <PromptShell />\n            <span className=\"min-w-0\">{typed}</span>\n            <span className=\"mot-terminal-cursor ml-px inline-block h-[1em] w-2 translate-y-px bg-(--mot-terminal-cursor-bg) align-text-bottom\" />\n          </div>\n        )}\n\n        {phase === \"done\" && (\n          <div className=\"mt-2 flex items-center gap-x-1\">\n            <PromptShell />\n            <span className=\"mot-terminal-cursor ml-px inline-block h-[1em] w-2 translate-y-px bg-(--mot-terminal-cursor-bg) align-text-bottom\" />\n          </div>\n        )}\n      </div>\n    </div>\n  )\n}\n",
      "type": "registry:component",
      "target": "app/mac-os-terminal/components/mac-os-terminal.tsx"
    },
    {
      "path": "registry/new-york/blocks/mac-os-terminal/components/prompt-shell.tsx",
      "content": "import type { ReactNode } from \"react\"\nimport { PROMPT } from \"../lib/config\"\n\nexport default function PromptShell({ children }: { children?: ReactNode }) {\n  return (\n    <div className=\"flex min-w-0 flex-wrap items-center gap-x-1\">\n      <span className=\"shrink-0 tabular-nums\">{PROMPT}</span>\n      {children}\n    </div>\n  )\n}\n",
      "type": "registry:component",
      "target": "app/mac-os-terminal/components/prompt-shell.tsx"
    },
    {
      "path": "registry/new-york/blocks/mac-os-terminal/components/spinner.tsx",
      "content": "\"use client\"\n\nimport { useEffect, useState } from \"react\"\n\nconst FRAMES = [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"]\n\nexport default function Spinner() {\n  const [frame, setFrame] = useState(0)\n  useEffect(() => {\n    const t = setInterval(() => setFrame((f) => (f + 1) % FRAMES.length), 80)\n    return () => clearInterval(t)\n  }, [])\n  return <span>{FRAMES[frame]}</span>\n}\n",
      "type": "registry:component",
      "target": "app/mac-os-terminal/components/spinner.tsx"
    },
    {
      "path": "registry/new-york/blocks/mac-os-terminal/components/syntax-code.tsx",
      "content": "import type { ReactNode } from \"react\"\nimport { CODE_SYNTAX_PARTS } from \"../lib/mac-os-terminal-code-segments\"\n\nexport default function SyntaxCode({ visibleChars }: { visibleChars: number }) {\n  let remaining = visibleChars\n  const nodes: ReactNode[] = []\n  let key = 0\n  for (const { t, c } of CODE_SYNTAX_PARTS) {\n    if (remaining <= 0) break\n    const take = Math.min(t.length, remaining)\n    if (take > 0) {\n      nodes.push(\n        <span key={key++} className={c}>\n          {t.slice(0, take)}\n        </span>\n      )\n      remaining -= take\n    }\n  }\n  return <>{nodes}</>\n}\n",
      "type": "registry:component",
      "target": "app/mac-os-terminal/components/syntax-code.tsx"
    },
    {
      "path": "registry/new-york/blocks/mac-os-terminal/components/traffic-lights.tsx",
      "content": "export default function TrafficLights() {\n  return (\n    <div className=\"absolute left-3 flex gap-2\" aria-hidden>\n      <button\n        type=\"button\"\n        tabIndex={-1}\n        className=\"size-3 shrink-0 rounded-full bg-[#ff5f57] ring-1 ring-black/10\"\n      />\n      <button\n        type=\"button\"\n        tabIndex={-1}\n        className=\"size-3 shrink-0 rounded-full bg-[#febc2e] ring-1 ring-black/10\"\n      />\n      <button\n        type=\"button\"\n        tabIndex={-1}\n        className=\"size-3 shrink-0 rounded-full bg-[#28c840] ring-1 ring-black/10\"\n      />\n    </div>\n  )\n}\n",
      "type": "registry:component",
      "target": "app/mac-os-terminal/components/traffic-lights.tsx"
    },
    {
      "path": "registry/new-york/blocks/mac-os-terminal/hooks/use-terminal-animation.ts",
      "content": "// Phase flow: idle → typing → output → typingCode → done → idle (loops)\nimport { useEffect, useRef, useState } from \"react\"\n\nimport {\n  COMMAND, INIT_LINES, OUTPUT_SEQUENCE, PROMPT,\n  TYPE_CODE_MS, TYPE_CODE_NEWLINE_MS, TYPE_SPEED,\n  type Line, type Phase,\n} from \"../lib/config\"\nimport { CODE_DEMO } from \"../lib/mac-os-terminal-code-segments\"\n\nexport function useTerminalAnimation() {\n  const [lines, setLines] = useState<Line[]>(INIT_LINES)\n  const [typed, setTyped] = useState(\"\")\n  const [phase, setPhase] = useState<Phase>(\"idle\")\n  const [outIdx, setOutIdx] = useState(0)\n  const [codeIdx, setCodeIdx] = useState(0)\n  const idRef = useRef(10)\n  const spinTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n  const scrollRef = useRef<HTMLDivElement>(null)\n\n  useEffect(() => {\n    if (scrollRef.current) {\n      scrollRef.current.scrollTop = scrollRef.current.scrollHeight\n    }\n  }, [lines, typed, codeIdx, phase])\n\n  useEffect(() => {\n    if (phase !== \"idle\") return\n    const t = setTimeout(() => setPhase(\"typing\"), 1600)\n    return () => clearTimeout(t)\n  }, [phase])\n\n  useEffect(() => {\n    if (phase !== \"typing\") return\n    if (typed.length < COMMAND.length) {\n      const t = setTimeout(() => setTyped(COMMAND.slice(0, typed.length + 1)), TYPE_SPEED)\n      return () => clearTimeout(t)\n    }\n    const t = setTimeout(() => {\n      setLines((prev) => [...prev, { id: idRef.current++, text: `${PROMPT}${COMMAND}` }])\n      setTyped(\"\")\n      setOutIdx(0)\n      setPhase(\"output\")\n    }, 360)\n    return () => clearTimeout(t)\n  }, [phase, typed])\n\n  useEffect(() => {\n    if (phase !== \"output\") return\n    if (outIdx >= OUTPUT_SEQUENCE.length) {\n      const t = setTimeout(() => { setCodeIdx(0); setPhase(\"typingCode\") }, 450)\n      return () => clearTimeout(t)\n    }\n    const item = OUTPUT_SEQUENCE[outIdx]\n    if (item.type === \"spinner\") {\n      const t = setTimeout(() => {\n        const spinId = idRef.current++\n        setLines((prev) => [...prev, { id: spinId, text: item.text, spinning: true }])\n        spinTimerRef.current = setTimeout(() => {\n          setLines((prev) =>\n            prev.map((l) =>\n              l.id === spinId\n                ? { ...l, spinning: false, text: `✓ ${item.doneText}`, color: \"green\" as const }\n                : l,\n            ),\n          )\n          setOutIdx((i) => i + 1)\n        }, item.duration)\n      }, item.delay)\n      return () => {\n        clearTimeout(t)\n        if (spinTimerRef.current) clearTimeout(spinTimerRef.current)\n      }\n    }\n    const t = setTimeout(() => {\n      setLines((prev) => [...prev, { id: idRef.current++, text: item.text, color: item.color }])\n      setOutIdx((i) => i + 1)\n    }, item.delay)\n    return () => clearTimeout(t)\n  }, [phase, outIdx])\n\n  useEffect(() => {\n    if (phase !== \"typingCode\") return\n    if (codeIdx >= CODE_DEMO.length) {\n      const t = setTimeout(() => setPhase(\"done\"), 320)\n      return () => clearTimeout(t)\n    }\n    const ch = CODE_DEMO[codeIdx]\n    const delay = ch === \"\\n\" ? TYPE_CODE_NEWLINE_MS : TYPE_CODE_MS\n    const t = setTimeout(() => setCodeIdx((i) => i + 1), delay)\n    return () => clearTimeout(t)\n  }, [phase, codeIdx])\n\n  useEffect(() => {\n    if (phase !== \"done\") return\n    const t = setTimeout(() => {\n      idRef.current = 10\n      setTyped(\"\")\n      setOutIdx(0)\n      setCodeIdx(0)\n      setLines(INIT_LINES)\n      setPhase(\"idle\")\n    }, 8000)\n    return () => clearTimeout(t)\n  }, [phase])\n\n  return { lines, typed, phase, codeIdx, scrollRef }\n}\n",
      "type": "registry:hook",
      "target": "app/mac-os-terminal/hooks/use-terminal-animation.ts"
    },
    {
      "path": "registry/new-york/blocks/mac-os-terminal/lib/config.ts",
      "content": "export type LineColor = \"green\" | \"cyan\" | \"dim\"\n\nexport type Phase = \"idle\" | \"typing\" | \"output\" | \"typingCode\" | \"done\"\n\nexport interface Line {\n  id: number\n  text: string\n  color?: LineColor\n  spinning?: boolean\n}\n\nexport type OutputItem =\n  | { type: \"line\"; text: string; color?: LineColor; delay: number }\n  | { type: \"spinner\"; text: string; doneText: string; delay: number; duration: number }\n\nexport const PROMPT = \"user@macbook app % \"\nexport const COMMAND = \"pnpm i ai\"\nexport const TYPE_SPEED = 38\nexport const TYPE_CODE_MS = 11\nexport const TYPE_CODE_NEWLINE_MS = 48\n\nexport const INIT_LINES: Line[] = []\n\nexport const OUTPUT_SEQUENCE: OutputItem[] = [\n  {\n    type: \"spinner\",\n    text: \"Resolving dependencies…\",\n    doneText: \"Resolved dependencies\",\n    delay: 240,\n    duration: 900,\n  },\n  {\n    type: \"spinner\",\n    text: \"Downloading + installing ai…\",\n    doneText: \"Downloaded and installed ai\",\n    delay: 140,\n    duration: 1400,\n  },\n]\n",
      "type": "registry:lib",
      "target": "app/mac-os-terminal/lib/config.ts"
    },
    {
      "path": "registry/new-york/blocks/mac-os-terminal/lib/mac-os-terminal-code-segments.ts",
      "content": "/** Token spans for AI SDK demo — joined string must match CODE_DEMO in mac-os-terminal.tsx */\n\nexport type MotShClass =\n  | \"mot-sh-kw\"\n  | \"mot-sh-str\"\n  | \"mot-sh-fn\"\n  | \"mot-sh-num\"\n  | \"mot-sh-prop\"\n  | \"mot-sh-var\"\n  | \"mot-sh-punct\"\n\nexport const CODE_SYNTAX_PARTS: ReadonlyArray<{ t: string; c: MotShClass }> = [\n  { t: \"import \", c: \"mot-sh-kw\" },\n  { t: \"{ \", c: \"mot-sh-punct\" },\n  { t: \"generateText\", c: \"mot-sh-fn\" },\n  { t: \", \", c: \"mot-sh-punct\" },\n  { t: \"tool\", c: \"mot-sh-fn\" },\n  { t: \" } \", c: \"mot-sh-punct\" },\n  { t: \"from \", c: \"mot-sh-kw\" },\n  { t: \"'ai'\", c: \"mot-sh-str\" },\n  { t: \";\\n\", c: \"mot-sh-punct\" },\n  { t: \"import \", c: \"mot-sh-kw\" },\n  { t: \"{ \", c: \"mot-sh-punct\" },\n  { t: \"z\", c: \"mot-sh-fn\" },\n  { t: \" } \", c: \"mot-sh-punct\" },\n  { t: \"from \", c: \"mot-sh-kw\" },\n  { t: \"'zod'\", c: \"mot-sh-str\" },\n  { t: \";\\n\\n\", c: \"mot-sh-punct\" },\n  { t: \"const\", c: \"mot-sh-kw\" },\n  { t: \" { \", c: \"mot-sh-punct\" },\n  { t: \"text\", c: \"mot-sh-var\" },\n  { t: \" } \", c: \"mot-sh-punct\" },\n  { t: \"= \", c: \"mot-sh-punct\" },\n  { t: \"await\", c: \"mot-sh-kw\" },\n  { t: \" \", c: \"mot-sh-punct\" },\n  { t: \"generateText\", c: \"mot-sh-fn\" },\n  { t: \"({\\n  \", c: \"mot-sh-punct\" },\n  { t: \"model\", c: \"mot-sh-prop\" },\n  { t: \": \", c: \"mot-sh-punct\" },\n  { t: \"'openai/gpt-5.2'\", c: \"mot-sh-str\" },\n  { t: \",\\n  \", c: \"mot-sh-punct\" },\n  { t: \"prompt\", c: \"mot-sh-prop\" },\n  { t: \": \", c: \"mot-sh-punct\" },\n  { t: \"'What is the weather like today in San Francisco?'\", c: \"mot-sh-str\" },\n  { t: \",\\n  \", c: \"mot-sh-punct\" },\n  { t: \"tools\", c: \"mot-sh-prop\" },\n  { t: \": {\\n    \", c: \"mot-sh-punct\" },\n  { t: \"getWeather\", c: \"mot-sh-prop\" },\n  { t: \": \", c: \"mot-sh-punct\" },\n  { t: \"tool\", c: \"mot-sh-fn\" },\n  { t: \"({\\n      \", c: \"mot-sh-punct\" },\n  { t: \"description\", c: \"mot-sh-prop\" },\n  { t: \": \", c: \"mot-sh-punct\" },\n  { t: \"'Get the weather in a location'\", c: \"mot-sh-str\" },\n  { t: \",\\n      \", c: \"mot-sh-punct\" },\n  { t: \"inputSchema\", c: \"mot-sh-prop\" },\n  { t: \": \", c: \"mot-sh-punct\" },\n  { t: \"z\", c: \"mot-sh-fn\" },\n  { t: \".\", c: \"mot-sh-punct\" },\n  { t: \"object\", c: \"mot-sh-fn\" },\n  { t: \"({\\n        \", c: \"mot-sh-punct\" },\n  { t: \"location\", c: \"mot-sh-prop\" },\n  { t: \": \", c: \"mot-sh-punct\" },\n  { t: \"z\", c: \"mot-sh-fn\" },\n  { t: \".\", c: \"mot-sh-punct\" },\n  { t: \"string\", c: \"mot-sh-fn\" },\n  { t: \"()\", c: \"mot-sh-punct\" },\n  { t: \".\", c: \"mot-sh-punct\" },\n  { t: \"describe\", c: \"mot-sh-fn\" },\n  { t: \"(\", c: \"mot-sh-punct\" },\n  { t: \"'The location to get the weather for'\", c: \"mot-sh-str\" },\n  { t: \")\", c: \"mot-sh-punct\" },\n  { t: \",\\n      }),\\n      \", c: \"mot-sh-punct\" },\n  { t: \"execute\", c: \"mot-sh-prop\" },\n  { t: \": \", c: \"mot-sh-punct\" },\n  { t: \"async\", c: \"mot-sh-kw\" },\n  { t: \" \", c: \"mot-sh-punct\" },\n  { t: \"({ \", c: \"mot-sh-punct\" },\n  { t: \"location\", c: \"mot-sh-var\" },\n  { t: \" }) => ({\\n        \", c: \"mot-sh-punct\" },\n  { t: \"location\", c: \"mot-sh-prop\" },\n  { t: \",\\n        \", c: \"mot-sh-punct\" },\n  { t: \"temperature\", c: \"mot-sh-prop\" },\n  { t: \": \", c: \"mot-sh-punct\" },\n  { t: \"72\", c: \"mot-sh-num\" },\n  { t: \" + \", c: \"mot-sh-punct\" },\n  { t: \"Math\", c: \"mot-sh-fn\" },\n  { t: \".\", c: \"mot-sh-punct\" },\n  { t: \"floor\", c: \"mot-sh-fn\" },\n  { t: \"(\", c: \"mot-sh-punct\" },\n  { t: \"Math\", c: \"mot-sh-fn\" },\n  { t: \".\", c: \"mot-sh-punct\" },\n  { t: \"random\", c: \"mot-sh-fn\" },\n  { t: \"() * \", c: \"mot-sh-punct\" },\n  { t: \"21\", c: \"mot-sh-num\" },\n  { t: \") - \", c: \"mot-sh-punct\" },\n  { t: \"10\", c: \"mot-sh-num\" },\n  { t: \",\\n      }),\\n    }),\\n  },\\n});\", c: \"mot-sh-punct\" },\n]\n\nexport const CODE_DEMO = CODE_SYNTAX_PARTS.map((p) => p.t).join(\"\")\n",
      "type": "registry:lib",
      "target": "app/mac-os-terminal/lib/mac-os-terminal-code-segments.ts"
    },
    {
      "path": "registry/new-york/blocks/mac-os-terminal/styles/mac-os-terminal.css",
      "content": "/* mac-os-terminal — theme tokens, caret blink, line fade, syntax hooks */\n\n.mot-terminal {\n  --mot-t-shell-bg: #fafafa;\n  --mot-t-body-bg: #ffffff;\n  --mot-t-body-fg: #3f3f46;\n  --mot-t-border: rgb(0 0 0 / 0.1);\n  --mot-t-ring: rgb(0 0 0 / 0.06);\n  --mot-t-shadow: 0 20px 40px -12px rgb(0 0 0 / 0.12);\n  --mot-t-titlebar-bg: #ececec;\n  --mot-t-titlebar-border: rgb(0 0 0 / 0.08);\n  --mot-t-title-fg: #3c3c3c;\n  --mot-t-line-green: #15803d;\n  --mot-t-line-cyan: #0f766e;\n  --mot-t-line-dim: #71717a;\n  --mot-terminal-cursor-bg: #27272a;\n}\n\n.dark .mot-terminal {\n  --mot-t-shell-bg: #1e1e1e;\n  --mot-t-body-bg: #1e1e1e;\n  --mot-t-body-fg: #cccccc;\n  --mot-t-border: rgb(255 255 255 / 0.1);\n  --mot-t-ring: rgb(0 0 0 / 0.2);\n  --mot-t-shadow: 0 20px 40px -12px rgb(0 0 0 / 0.45);\n  --mot-t-titlebar-bg: #2d2d2d;\n  --mot-t-titlebar-border: rgb(255 255 255 / 0.08);\n  --mot-t-title-fg: #d4d4d8;\n  --mot-t-line-green: #16c60c;\n  --mot-t-line-cyan: #61d6d6;\n  --mot-t-line-dim: #767676;\n  --mot-terminal-cursor-bg: #cccccc;\n}\n\n.mot-terminal-cursor {\n  animation: mot-terminal-blink 1.15s step-start infinite;\n}\n\n.mot-terminal-line-in {\n  animation: mot-terminal-line-fade 0.12s ease-out both;\n}\n\n@keyframes mot-terminal-blink {\n  0%,\n  49.9% {\n    opacity: 1;\n  }\n  50%,\n  100% {\n    opacity: 0;\n  }\n}\n\n@keyframes mot-terminal-line-fade {\n  from {\n    opacity: 0;\n  }\n  to {\n    opacity: 1;\n  }\n}\n\n.mot-codeblock {\n  --mot-sh-kw: #b83280;\n  --mot-sh-str: #166534;\n  --mot-sh-fn: #6d28d9;\n  --mot-sh-num: #0369a1;\n  --mot-sh-prop: #18181b;\n  --mot-sh-var: #0e7490;\n  --mot-sh-punct: #a21caf;\n  --mot-cursor-fg: #27272a;\n\n  border-left-width: 2px;\n  border-left-style: solid;\n  border-left-color: rgb(59 142 234 / 0.55);\n  background-color: rgb(244 244 245 / 0.95);\n}\n\n.dark .mot-codeblock {\n  --mot-sh-kw: #ff79c6;\n  --mot-sh-str: #50fa7b;\n  --mot-sh-fn: #bd93f9;\n  --mot-sh-num: #8be9fd;\n  --mot-sh-prop: #f8f8f2;\n  --mot-sh-var: #8be9fd;\n  --mot-sh-punct: #ff79c6;\n  --mot-cursor-fg: #cccccc;\n\n  border-left-color: rgb(59 142 234 / 0.45);\n  background-color: rgb(0 0 0 / 0.55);\n}\n\n.mot-sh-kw {\n  color: var(--mot-sh-kw);\n}\n.mot-sh-str {\n  color: var(--mot-sh-str);\n}\n.mot-sh-fn {\n  color: var(--mot-sh-fn);\n}\n.mot-sh-num {\n  color: var(--mot-sh-num);\n}\n.mot-sh-prop {\n  color: var(--mot-sh-prop);\n}\n.mot-sh-var {\n  color: var(--mot-sh-var);\n}\n.mot-sh-punct {\n  color: var(--mot-sh-punct);\n}\n\n.mot-codeblock .mot-terminal-cursor {\n  background-color: var(--mot-cursor-fg);\n}\n",
      "type": "registry:file",
      "target": "app/mac-os-terminal/styles/mac-os-terminal.css"
    }
  ],
  "type": "registry:block"
}