{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "panelui",
  "homepage": "https://panelui.dev/docs/web",
  "items": [
    {
      "name": "alert",
      "type": "registry:component",
      "title": "Alert",
      "description": "A message set into the page that stays until it is dealt with, as a card in a tray of its tone.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/alert.tsx",
          "type": "registry:component",
          "target": "@components/panelui/alert.tsx"
        }
      ]
    },
    {
      "name": "alert-dialog",
      "type": "registry:component",
      "title": "Alert Dialog",
      "description": "A question that must be answered before the page can be used again, with the answers side by side under it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/button.json"
      ],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/alert-dialog.tsx",
          "type": "registry:component",
          "target": "@components/panelui/alert-dialog.tsx"
        }
      ]
    },
    {
      "name": "area-chart",
      "type": "registry:component",
      "title": "Area Chart",
      "description": "Filled bands over time, stacked or overlaid.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "d3-shape",
        "tailwind-variants"
      ],
      "devDependencies": [
        "@types/d3-shape"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/area-chart.tsx",
          "type": "registry:component",
          "target": "@components/panelui/area-chart.tsx"
        }
      ]
    },
    {
      "name": "avatar",
      "type": "registry:component",
      "title": "Avatar",
      "description": "A person or a team as a picture, or their initials in a colour of their own, with a badge and a group that opens up.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/avatar.tsx",
          "type": "registry:component",
          "target": "@components/panelui/avatar.tsx"
        }
      ]
    },
    {
      "name": "badge",
      "type": "registry:component",
      "title": "Badge",
      "description": "A short label for a state or a kind, tinted in its theme colour, with a dot for a state that is still changing.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/badge.tsx",
          "type": "registry:component",
          "target": "@components/panelui/badge.tsx"
        }
      ]
    },
    {
      "name": "bar-chart",
      "type": "registry:component",
      "title": "Bar Chart",
      "description": "Categories compared by length, grouped or stacked.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/bar-chart.tsx",
          "type": "registry:component",
          "target": "@components/panelui/bar-chart.tsx"
        }
      ]
    },
    {
      "name": "bar-picker",
      "type": "registry:component",
      "title": "Bar Picker",
      "description": "A short run of values as columns of lights, one column picked.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/bar-picker.tsx",
          "type": "registry:component",
          "target": "@components/panelui/bar-picker.tsx"
        }
      ]
    },
    {
      "name": "breadcrumb",
      "type": "registry:component",
      "title": "Breadcrumb",
      "description": "The trail of links back up a hierarchy to the page you are on, with the middle folded away when the path runs long.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/breadcrumb/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/breadcrumb/index.tsx"
        },
        {
          "path": "components/panelui/breadcrumb/collapse.ts",
          "type": "registry:component",
          "target": "@components/panelui/breadcrumb/collapse.ts"
        }
      ]
    },
    {
      "name": "bubble-chart",
      "type": "registry:component",
      "title": "Bubble Chart",
      "description": "One labelled circle per row, on two measured axes, with a third quantity on each circle's area.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/bubble-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/bubble-chart/index.tsx"
        },
        {
          "path": "components/panelui/bubble-chart/bubble-scale.ts",
          "type": "registry:component",
          "target": "@components/panelui/bubble-chart/bubble-scale.ts"
        }
      ]
    },
    {
      "name": "bump-chart",
      "type": "registry:component",
      "title": "Bump Chart",
      "description": "How a set of things ranked against each other over time.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/bump-chart.tsx",
          "type": "registry:component",
          "target": "@components/panelui/bump-chart.tsx"
        }
      ]
    },
    {
      "name": "button",
      "type": "registry:component",
      "title": "Button",
      "description": "Something to press, in the weight its action deserves, with a spinner for while it works.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/button.tsx",
          "type": "registry:component",
          "target": "@components/panelui/button.tsx"
        }
      ]
    },
    {
      "name": "button-group",
      "type": "registry:component",
      "title": "Button Group",
      "description": "Related buttons joined into one control, with separators, text cells and fields between them.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/button-group.tsx",
          "type": "registry:component",
          "target": "@components/panelui/button-group.tsx"
        }
      ]
    },
    {
      "name": "candlestick-chart",
      "type": "registry:component",
      "title": "Candlestick Chart",
      "description": "Open, high, low and close for a period, drawn as one mark.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/candlestick-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/candlestick-chart/index.tsx"
        },
        {
          "path": "components/panelui/candlestick-chart/candles.ts",
          "type": "registry:component",
          "target": "@components/panelui/candlestick-chart/candles.ts"
        }
      ]
    },
    {
      "name": "canvas",
      "type": "registry:component",
      "title": "Canvas",
      "description": "A surface of dots, lines or crosses for other components to sit on, with a light that can follow the pointer.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/canvas.tsx",
          "type": "registry:component",
          "target": "@components/panelui/canvas.tsx"
        }
      ]
    },
    {
      "name": "card",
      "type": "registry:component",
      "title": "Card",
      "description": "A surface that holds one thing, with a heading, an action beside it and a footer.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/card.tsx",
          "type": "registry:component",
          "target": "@components/panelui/card.tsx"
        }
      ]
    },
    {
      "name": "checkbox",
      "type": "registry:component",
      "title": "Checkbox",
      "description": "One choice that is on or off, with a tick that draws itself and a parent box for a group.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/checkbox.tsx",
          "type": "registry:component",
          "target": "@components/panelui/checkbox.tsx"
        }
      ]
    },
    {
      "name": "chip",
      "type": "registry:component",
      "title": "Chip",
      "description": "A pill that can be pressed: a filter turned on and off, or an added value with a × to take it out.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/chip.tsx",
          "type": "registry:component",
          "target": "@components/panelui/chip.tsx"
        }
      ]
    },
    {
      "name": "choice-cards",
      "type": "registry:component",
      "title": "Choice Cards",
      "description": "One option chosen from a few, each shown as a picture of what it does.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/choice-cards.tsx",
          "type": "registry:component",
          "target": "@components/panelui/choice-cards.tsx"
        }
      ]
    },
    {
      "name": "combobox",
      "type": "registry:component",
      "title": "Combobox",
      "description": "A text field that filters a list of options as you type.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/spinner.json",
        "utils"
      ],
      "files": [
        {
          "path": "components/panelui/combobox.tsx",
          "type": "registry:component",
          "target": "@components/panelui/combobox.tsx"
        }
      ]
    },
    {
      "name": "command",
      "type": "registry:component",
      "title": "Command",
      "description": "A launcher: type to find a page, an app or an action, and run it with Enter.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/spinner.json"
      ],
      "files": [
        {
          "path": "components/panelui/command.tsx",
          "type": "registry:component",
          "target": "@components/panelui/command.tsx"
        }
      ]
    },
    {
      "name": "command-dock",
      "type": "registry:component",
      "title": "Command Dock",
      "description": "A small button that opens into a field, with the answer arriving under it a row at a time.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/command-dock.tsx",
          "type": "registry:component",
          "target": "@components/panelui/command-dock.tsx"
        }
      ]
    },
    {
      "name": "day-grid",
      "type": "registry:component",
      "title": "Day Grid",
      "description": "A run of days as a field of dots, each sized by how much happened on it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/day-grid.tsx",
          "type": "registry:component",
          "target": "@components/panelui/day-grid.tsx"
        }
      ]
    },
    {
      "name": "dialog",
      "type": "registry:component",
      "title": "Dialog",
      "description": "A task done in a panel over the page, with its buttons in the band beneath it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/dialog.tsx",
          "type": "registry:component",
          "target": "@components/panelui/dialog.tsx"
        }
      ]
    },
    {
      "name": "feedback",
      "type": "registry:component",
      "title": "Feedback",
      "description": "A dialog with a well to write in and two actions in the band around it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/feedback.tsx",
          "type": "registry:component",
          "target": "@components/panelui/feedback.tsx"
        }
      ]
    },
    {
      "name": "field",
      "type": "registry:component",
      "title": "Field",
      "description": "A form control with its label, a line of help and its error, wired to each other.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/label.json"
      ],
      "files": [
        {
          "path": "components/panelui/field.tsx",
          "type": "registry:component",
          "target": "@components/panelui/field.tsx"
        }
      ]
    },
    {
      "name": "flow",
      "type": "registry:component",
      "title": "Flow",
      "description": "A canvas of nodes joined by edges, that you pan, zoom and rearrange.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/flow/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/flow/index.tsx"
        },
        {
          "path": "components/panelui/flow/flow-paths.ts",
          "type": "registry:component",
          "target": "@components/panelui/flow/flow-paths.ts"
        }
      ]
    },
    {
      "name": "frame",
      "type": "registry:component",
      "title": "Frame",
      "description": "A panel of rows set into a tray, with the tray's top strip carrying the title.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/frame.tsx",
          "type": "registry:component",
          "target": "@components/panelui/frame.tsx"
        }
      ]
    },
    {
      "name": "funnel-chart",
      "type": "registry:component",
      "title": "Funnel Chart",
      "description": "Where a population drained away, one step at a time.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/funnel-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/funnel-chart/index.tsx"
        },
        {
          "path": "components/panelui/funnel-chart/funnel-layout.ts",
          "type": "registry:component",
          "target": "@components/panelui/funnel-chart/funnel-layout.ts"
        }
      ]
    },
    {
      "name": "heatmap-chart",
      "type": "registry:component",
      "title": "Heatmap Chart",
      "description": "A calendar of bins, shaded by how much happened in each.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/heatmap-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/heatmap-chart/index.tsx"
        },
        {
          "path": "components/panelui/heatmap-chart/heatmap-calendar.ts",
          "type": "registry:component",
          "target": "@components/panelui/heatmap-chart/heatmap-calendar.ts"
        }
      ]
    },
    {
      "name": "hex-chart",
      "type": "registry:component",
      "title": "Hex Chart",
      "description": "A whole broken into parts, counted out in hexagonal cells.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/hex-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/hex-chart/index.tsx"
        },
        {
          "path": "components/panelui/hex-chart/hex-layout.ts",
          "type": "registry:component",
          "target": "@components/panelui/hex-chart/hex-layout.ts"
        }
      ]
    },
    {
      "name": "input",
      "type": "registry:component",
      "title": "Input",
      "description": "A single line to type into, with icons, units and buttons set inside its box.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/input.tsx",
          "type": "registry:component",
          "target": "@components/panelui/input.tsx"
        }
      ]
    },
    {
      "name": "inspector",
      "type": "registry:component",
      "title": "Inspector",
      "description": "The settings panel beside an editor's canvas: a rail of icons, each opening a page of titled sections.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/inspector.tsx",
          "type": "registry:component",
          "target": "@components/panelui/inspector.tsx"
        }
      ]
    },
    {
      "name": "kpi",
      "type": "registry:component",
      "title": "KPI",
      "description": "One number and what it is doing: its change, its shape over time, its progress to a target.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/kpi.tsx",
          "type": "registry:component",
          "target": "@components/panelui/kpi.tsx"
        }
      ]
    },
    {
      "name": "label",
      "type": "registry:component",
      "title": "Label",
      "description": "The name of a field, with its required mark, a hint and an action on one line.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/label.tsx",
          "type": "registry:component",
          "target": "@components/panelui/label.tsx"
        }
      ]
    },
    {
      "name": "lane-board",
      "type": "registry:component",
      "title": "Lane Board",
      "description": "Lanes of cards that can be dragged within a lane and from one lane to another.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/lane-board.tsx",
          "type": "registry:component",
          "target": "@components/panelui/lane-board.tsx"
        }
      ]
    },
    {
      "name": "line-chart",
      "type": "registry:component",
      "title": "Line Chart",
      "description": "A series over time, drawn in from the left.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "d3-shape",
        "tailwind-variants"
      ],
      "devDependencies": [
        "@types/d3-shape"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/line-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/line-chart/index.tsx"
        },
        {
          "path": "components/panelui/line-chart/line-scale.ts",
          "type": "registry:component",
          "target": "@components/panelui/line-chart/line-scale.ts"
        }
      ]
    },
    {
      "name": "live-line-chart",
      "type": "registry:component",
      "title": "Live Line Chart",
      "description": "A reading that keeps arriving, against a window that keeps moving.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "d3-shape",
        "tailwind-variants"
      ],
      "devDependencies": [
        "@types/d3-shape"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/live-line-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/live-line-chart/index.tsx"
        },
        {
          "path": "components/panelui/live-line-chart/live-line-accessibility.ts",
          "type": "registry:component",
          "target": "@components/panelui/live-line-chart/live-line-accessibility.ts"
        },
        {
          "path": "components/panelui/live-line-chart/live-line-lifecycle.ts",
          "type": "registry:component",
          "target": "@components/panelui/live-line-chart/live-line-lifecycle.ts"
        }
      ]
    },
    {
      "name": "menu",
      "type": "registry:component",
      "title": "Menu",
      "description": "A list of actions that opens from a button, with shortcuts, checks and submenus.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/menu.tsx",
          "type": "registry:component",
          "target": "@components/panelui/menu.tsx"
        }
      ]
    },
    {
      "name": "message",
      "type": "registry:component",
      "title": "Message",
      "description": "One turn of a conversation with an assistant: a person's bubble, or an answer set as prose with actions under it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)"
        }
      },
      "files": [
        {
          "path": "components/panelui/message.tsx",
          "type": "registry:component",
          "target": "@components/panelui/message.tsx"
        }
      ]
    },
    {
      "name": "mirror-area-chart",
      "type": "registry:component",
      "title": "Mirror Area Chart",
      "description": "Two readings of one timeline, one above a baseline and one below it.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "d3-shape",
        "tailwind-variants"
      ],
      "devDependencies": [
        "@types/d3-shape"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/mirror-area-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/mirror-area-chart/index.tsx"
        },
        {
          "path": "components/panelui/mirror-area-chart/mirror-scale.ts",
          "type": "registry:component",
          "target": "@components/panelui/mirror-area-chart/mirror-scale.ts"
        }
      ]
    },
    {
      "name": "model-picker",
      "type": "registry:component",
      "title": "Model Picker",
      "description": "A select for the model a message goes to, searched by name, filtered by provider and starred.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/tooltip.json"
      ],
      "files": [
        {
          "path": "components/panelui/model-picker.tsx",
          "type": "registry:component",
          "target": "@components/panelui/model-picker.tsx"
        }
      ]
    },
    {
      "name": "nav-rail",
      "type": "registry:component",
      "title": "Nav Rail",
      "description": "A collapsible sidebar of destinations that keeps one active pill sliding between rows, and folds to a column of icons with tooltips.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/sheet.json"
      ],
      "files": [
        {
          "path": "components/panelui/nav-rail/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/nav-rail/index.tsx"
        },
        {
          "path": "components/panelui/nav-rail/rail.ts",
          "type": "registry:component",
          "target": "@components/panelui/nav-rail/rail.ts"
        }
      ]
    },
    {
      "name": "not-found",
      "type": "registry:component",
      "title": "Not Found",
      "description": "An error code drawn in pixels that come apart near the pointer, with a title and a way out.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/not-found/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/not-found/index.tsx"
        },
        {
          "path": "components/panelui/not-found/glyphs.ts",
          "type": "registry:component",
          "target": "@components/panelui/not-found/glyphs.ts"
        }
      ]
    },
    {
      "name": "pagination",
      "type": "registry:component",
      "title": "Pagination",
      "description": "Page controls for a long result set: the pages near you, the gaps between them, and a way across.",
      "dependencies": [
        "tailwind-variants"
      ],
      "registryDependencies": [
        "utils"
      ],
      "files": [
        {
          "path": "components/panelui/pagination/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/pagination/index.tsx"
        },
        {
          "path": "components/panelui/pagination/pagination-range.ts",
          "type": "registry:component",
          "target": "@components/panelui/pagination/pagination-range.ts"
        }
      ]
    },
    {
      "name": "pie-chart",
      "type": "registry:component",
      "title": "Pie Chart",
      "description": "One total, divided between its parts.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/pie-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/pie-chart/index.tsx"
        },
        {
          "path": "components/panelui/pie-chart/pie-layout.ts",
          "type": "registry:component",
          "target": "@components/panelui/pie-chart/pie-layout.ts"
        }
      ]
    },
    {
      "name": "planet",
      "type": "registry:component",
      "title": "Planet",
      "description": "The world as dots on a globe you can turn, with markers pinned to it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/planet/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/planet/index.tsx"
        },
        {
          "path": "components/panelui/planet/land.ts",
          "type": "registry:component",
          "target": "@components/panelui/planet/land.ts"
        }
      ]
    },
    {
      "name": "plot",
      "type": "registry:component",
      "title": "Plot",
      "description": "A chart you assemble from marks on one shared scale, for the shapes the named charts do not cover.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/plot/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/plot/index.tsx"
        },
        {
          "path": "components/panelui/plot/plot-scale.ts",
          "type": "registry:component",
          "target": "@components/panelui/plot/plot-scale.ts"
        }
      ]
    },
    {
      "name": "polar-area-chart",
      "type": "registry:component",
      "title": "Polar Area Chart",
      "description": "Several readings compared on one measure, as a dial.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/polar-area-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/polar-area-chart/index.tsx"
        },
        {
          "path": "components/panelui/polar-area-chart/polar-layout.ts",
          "type": "registry:component",
          "target": "@components/panelui/polar-area-chart/polar-layout.ts"
        }
      ]
    },
    {
      "name": "prompt",
      "type": "registry:component",
      "title": "Prompt",
      "description": "A field for writing to an assistant, with its files, model and tools in one card.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/button.json",
        "https://panelui.dev/r/web/menu.json",
        "https://panelui.dev/r/web/select.json",
        "https://panelui.dev/r/web/textarea.json"
      ],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/prompt.tsx",
          "type": "registry:component",
          "target": "@components/panelui/prompt.tsx"
        }
      ]
    },
    {
      "name": "pyramid-chart",
      "type": "registry:component",
      "title": "Pyramid Chart",
      "description": "Two series mirrored about a centre line, one row per category, on one shared scale.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/pyramid-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/pyramid-chart/index.tsx"
        },
        {
          "path": "components/panelui/pyramid-chart/pyramid-scale.ts",
          "type": "registry:component",
          "target": "@components/panelui/pyramid-chart/pyramid-scale.ts"
        }
      ]
    },
    {
      "name": "radar-chart",
      "type": "registry:component",
      "title": "Radar Chart",
      "description": "Several measures of one thing, drawn as one shape.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/radar-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/radar-chart/index.tsx"
        },
        {
          "path": "components/panelui/radar-chart/radar-layout.ts",
          "type": "registry:component",
          "target": "@components/panelui/radar-chart/radar-layout.ts"
        }
      ]
    },
    {
      "name": "radio-group",
      "type": "registry:component",
      "title": "Radio Group",
      "description": "One choice from a short list, with every option visible and the arrow keys moving between them.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/radio-group.tsx",
          "type": "registry:component",
          "target": "@components/panelui/radio-group.tsx"
        }
      ]
    },
    {
      "name": "range-meter",
      "type": "registry:component",
      "title": "Range Meter",
      "description": "A reading on a ruler of ticks that rises where the value is, with the number above it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/range-meter.tsx",
          "type": "registry:component",
          "target": "@components/panelui/range-meter.tsx"
        }
      ]
    },
    {
      "name": "ring-chart",
      "type": "registry:component",
      "title": "Ring Chart",
      "description": "Progress towards several targets, as concentric arcs.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/ring-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/ring-chart/index.tsx"
        },
        {
          "path": "components/panelui/ring-chart/ring-layout.ts",
          "type": "registry:component",
          "target": "@components/panelui/ring-chart/ring-layout.ts"
        }
      ]
    },
    {
      "name": "rolling-number",
      "type": "registry:component",
      "title": "Rolling Number",
      "description": "A number whose digits roll to their new values.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/rolling-number.tsx",
          "type": "registry:component",
          "target": "@components/panelui/rolling-number.tsx"
        }
      ]
    },
    {
      "name": "sankey-chart",
      "type": "registry:component",
      "title": "Sankey Chart",
      "description": "Where a quantity came from and where it ended up, as ribbons between stages.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/sankey-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/sankey-chart/index.tsx"
        },
        {
          "path": "components/panelui/sankey-chart/sankey-layout.ts",
          "type": "registry:component",
          "target": "@components/panelui/sankey-chart/sankey-layout.ts"
        }
      ]
    },
    {
      "name": "scatter-chart",
      "type": "registry:component",
      "title": "Scatter Chart",
      "description": "Two measured quantities against each other, to show how they relate.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/scatter-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/scatter-chart/index.tsx"
        },
        {
          "path": "components/panelui/scatter-chart/scatter-scale.ts",
          "type": "registry:component",
          "target": "@components/panelui/scatter-chart/scatter-scale.ts"
        }
      ]
    },
    {
      "name": "scroll-header",
      "type": "registry:component",
      "title": "Scroll Header",
      "description": "A page title with room around it that hands over to a compact sticky bar as the reader scrolls.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "utils"
      ],
      "files": [
        {
          "path": "components/panelui/scroll-header/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/scroll-header/index.tsx"
        },
        {
          "path": "components/panelui/scroll-header/scroll-header-math.ts",
          "type": "registry:component",
          "target": "@components/panelui/scroll-header/scroll-header-math.ts"
        }
      ]
    },
    {
      "name": "select",
      "type": "registry:component",
      "title": "Select",
      "description": "A button that opens a list of options and shows the one chosen.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/select.tsx",
          "type": "registry:component",
          "target": "@components/panelui/select.tsx"
        }
      ]
    },
    {
      "name": "sheet",
      "type": "registry:component",
      "title": "Sheet",
      "description": "A panel that rises from an edge of the screen, floating clear of it, and leaves with a swipe.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/sheet.tsx",
          "type": "registry:component",
          "target": "@components/panelui/sheet.tsx"
        }
      ]
    },
    {
      "name": "slider",
      "type": "registry:component",
      "title": "Slider",
      "description": "A number set by dragging along a track, with its name and value written inside it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/slider.tsx",
          "type": "registry:component",
          "target": "@components/panelui/slider.tsx"
        }
      ]
    },
    {
      "name": "soundwave",
      "type": "registry:component",
      "title": "Soundwave",
      "description": "A voice drawn while an app listens: capsules, bars, a line, a field of dots, spokes round a person, or rings of dots.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/soundwave.tsx",
          "type": "registry:component",
          "target": "@components/panelui/soundwave.tsx"
        }
      ]
    },
    {
      "name": "spinner",
      "type": "registry:component",
      "title": "Spinner",
      "description": "Something working that has not finished: an arc, spokes, dots, an orbit, a pulse or a dither cell.",
      "dependencies": [
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/spinner.tsx",
          "type": "registry:component",
          "target": "@components/panelui/spinner.tsx"
        }
      ]
    },
    {
      "name": "stat",
      "type": "registry:component",
      "title": "Stat",
      "description": "One figure written large, with a label over it, a unit after it and a badge beside it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/stat.tsx",
          "type": "registry:component",
          "target": "@components/panelui/stat.tsx"
        }
      ]
    },
    {
      "name": "steps",
      "type": "registry:component",
      "title": "Steps",
      "description": "A flow that moves one stop at a time, its numbered stops joined by a line that fills as far as you have got.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/spinner.json"
      ],
      "files": [
        {
          "path": "components/panelui/steps/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/steps/index.tsx"
        },
        {
          "path": "components/panelui/steps/steps-state.ts",
          "type": "registry:component",
          "target": "@components/panelui/steps/steps-state.ts"
        }
      ]
    },
    {
      "name": "switch",
      "type": "registry:component",
      "title": "Switch",
      "description": "On or off, for a setting that takes effect the moment it changes.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/switch.tsx",
          "type": "registry:component",
          "target": "@components/panelui/switch.tsx"
        }
      ]
    },
    {
      "name": "table",
      "type": "registry:component",
      "title": "Table",
      "description": "Rows of records with the same columns, with numbers aligned and a header that stays pinned.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/table.tsx",
          "type": "registry:component",
          "target": "@components/panelui/table.tsx"
        }
      ]
    },
    {
      "name": "table-of-contents",
      "type": "registry:component",
      "title": "Table of Contents",
      "description": "The sections of a long page as a quiet rail, with one mark that moves to what you are reading.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/table-of-contents/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/table-of-contents/index.tsx"
        },
        {
          "path": "components/panelui/table-of-contents/spy.ts",
          "type": "registry:component",
          "target": "@components/panelui/table-of-contents/spy.ts"
        }
      ]
    },
    {
      "name": "tabs",
      "type": "registry:component",
      "title": "Tabs",
      "description": "A few views of one thing, one at a time, chosen from a row of tabs whose marker slides to the one chosen.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/tabs.tsx",
          "type": "registry:component",
          "target": "@components/panelui/tabs.tsx"
        }
      ]
    },
    {
      "name": "textarea",
      "type": "registry:component",
      "title": "Textarea",
      "description": "A field for more than one line that grows as it is written in, up to a limit.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/textarea.tsx",
          "type": "registry:component",
          "target": "@components/panelui/textarea.tsx"
        }
      ]
    },
    {
      "name": "tilt-card",
      "type": "registry:component",
      "title": "Tilt Card",
      "description": "A card that leans towards the pointer, with layers inside it that move by their depth.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/tilt-card.tsx",
          "type": "registry:component",
          "target": "@components/panelui/tilt-card.tsx"
        }
      ]
    },
    {
      "name": "timeline",
      "type": "registry:component",
      "title": "Timeline",
      "description": "Time laid out left to right: tracks of clips under a ruler, with a playhead.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/slider.json"
      ],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/timeline.tsx",
          "type": "registry:component",
          "target": "@components/panelui/timeline.tsx"
        }
      ]
    },
    {
      "name": "toast",
      "type": "registry:component",
      "title": "Toast",
      "description": "A short message that leaves on its own, with a title that changes through dither.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/toast/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/toast/index.tsx"
        },
        {
          "path": "components/panelui/toast/dither-text.tsx",
          "type": "registry:component",
          "target": "@components/panelui/toast/dither-text.tsx"
        },
        {
          "path": "components/panelui/toast/dither.tsx",
          "type": "registry:component",
          "target": "@components/panelui/toast/dither.tsx"
        }
      ]
    },
    {
      "name": "toolbar",
      "type": "registry:component",
      "title": "Toolbar",
      "description": "A strip of tools and actions for an editor, with one tool chosen at a time.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/toolbar.tsx",
          "type": "registry:component",
          "target": "@components/panelui/toolbar.tsx"
        }
      ]
    },
    {
      "name": "tooltip",
      "type": "registry:component",
      "title": "Tooltip",
      "description": "A short hint about a control while it is hovered or focused: a pill, a card, its keys or a status.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/tooltip.tsx",
          "type": "registry:component",
          "target": "@components/panelui/tooltip.tsx"
        }
      ]
    },
    {
      "name": "treemap-chart",
      "type": "registry:component",
      "title": "Treemap Chart",
      "description": "A total, cut into the parts it is made of, sized by area.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/panelui/treemap-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/treemap-chart/index.tsx"
        },
        {
          "path": "components/panelui/treemap-chart/squarify.ts",
          "type": "registry:component",
          "target": "@components/panelui/treemap-chart/squarify.ts"
        }
      ]
    },
    {
      "name": "usage",
      "type": "registry:component",
      "title": "Usage",
      "description": "How full a model's context or a plan is, as a small indicator that opens into the figures.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/rolling-number.json"
      ],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/usage.tsx",
          "type": "registry:component",
          "target": "@components/panelui/usage.tsx"
        }
      ]
    },
    {
      "name": "waterfall-chart",
      "type": "registry:component",
      "title": "Waterfall Chart",
      "description": "How a run of changes carried one total to another, with each step floating on the running balance.",
      "dependencies": [
        "@base-ui/react",
        "@tanstack/charts",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/waterfall-chart/index.tsx",
          "type": "registry:component",
          "target": "@components/panelui/waterfall-chart/index.tsx"
        },
        {
          "path": "components/panelui/waterfall-chart/waterfall-steps.ts",
          "type": "registry:component",
          "target": "@components/panelui/waterfall-chart/waterfall-steps.ts"
        }
      ]
    },
    {
      "name": "workbench",
      "type": "registry:component",
      "title": "Workbench",
      "description": "The frame of an editor: a canvas with the work on it, a toolbar over it, an inspector beside it and a timeline under it.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [
        "https://panelui.dev/r/web/sheet.json"
      ],
      "files": [
        {
          "path": "components/panelui/workbench.tsx",
          "type": "registry:component",
          "target": "@components/panelui/workbench.tsx"
        }
      ]
    },
    {
      "name": "xy-pad",
      "type": "registry:component",
      "title": "XY Pad",
      "description": "Two numbers set with one drag: a point moved across a field.",
      "dependencies": [
        "@base-ui/react",
        "tailwind-variants"
      ],
      "registryDependencies": [],
      "cssVars": {
        "light": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        },
        "dark": {
          "success": "oklch(0.696 0.17 162.48)",
          "warning": "oklch(0.769 0.188 70.08)",
          "info": "oklch(0.623 0.214 259.815)"
        }
      },
      "files": [
        {
          "path": "components/panelui/xy-pad.tsx",
          "type": "registry:component",
          "target": "@components/panelui/xy-pad.tsx"
        }
      ]
    }
  ]
}
