{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "components-separator",
  "type": "registry:component",
  "title": "Separator",
  "description": "A rule between regions, decorative or announced",
  "author": "sudo-kw <https://github.com/sudo-kw>",
  "dependencies": [
    "@gpuix/native@0.11.0",
    "@gpuix/react@0.11.0"
  ],
  "registryDependencies": [
    "https://gpuixui.sudokw.com/gpuix-primitives.json"
  ],
  "files": [
    {
      "path": "packages/components/src/separator.tsx",
      "target": "@ui/gpuixui/components/separator.tsx",
      "type": "registry:component",
      "content": "/** @jsxImportSource @gpuix/react */\nimport type { StyleDesc } from \"@gpuix/react\";\nimport {\n  Separator as PrimitiveSeparator,\n  type SeparatorProps as PrimitiveSeparatorProps,\n} from \"../primitives/separator.js\";\n\nexport interface SeparatorProps extends Omit<\n  PrimitiveSeparatorProps,\n  \"orientation\"\n> {\n  readonly orientation?: \"horizontal\" | \"vertical\";\n\n  readonly decorative?: boolean;\n\n  readonly \"aria-id\"?: string;\n}\n\nconst roleFrame = (vertical: boolean): StyleDesc => ({\n  display: \"flex\",\n  flexDirection: vertical ? \"row\" : \"column\",\n  flexShrink: 0,\n  alignSelf: \"stretch\",\n  ...(vertical ? {} : { width: \"100%\" }),\n});\n\nexport const Separator = ({\n  orientation,\n  decorative = false,\n  \"aria-id\": controlId,\n  ...rest\n}: SeparatorProps) =>\n  decorative ? (\n    <PrimitiveSeparator {...rest} orientation={orientation ?? \"horizontal\"} />\n  ) : (\n    <div\n      role=\"separator\"\n      aria-id={controlId}\n      style={roleFrame(orientation === \"vertical\")}\n    >\n      <PrimitiveSeparator {...rest} orientation={orientation ?? \"horizontal\"} />\n    </div>\n  );\n\nexport const separatorMeta = {\n  name: \"Separators\",\n  tier: 1,\n  status: \"done\",\n  gpuixSupport: \"yes\",\n  limitations: [\n    \"A filled 1px rule, not a border: `borderStyle` does not apply, so there is no dashed or dotted divider (compose a `Box` for one)\",\n    \"The platform maps the separator role to `Splitter` and publishes no `aria-orientation`\",\n    \"No draggable splitter and no resize event\",\n  ],\n  docs: \"docs/separator.mdx\",\n  example: \"examples/separator.example.tsx\",\n  testFile: \"src/behaviour/separator.test.tsx\",\n} as const;\n"
    }
  ],
  "docs": "[Separator](https://gpuixui.sudokw.com/components/separator) — These are GPUix native components: the files render through GPUix's reconciler against `@gpuix/react`, not the DOM, and need the per-platform `@gpuix/native` binding. The CLI installs the `@gpuixui/*` runtime the components import as registry items, so the copied tree resolves on its own; wrap it in `ThemeProvider` before it renders.",
  "meta": {
    "url": "/components/separator",
    "kind": "component",
    "runtime": "gpuix",
    "registry": "gpuixui"
  }
}