{
  "id": "file-dropzone",
  "name": "FileDropzone",
  "level": "molecule",
  "status": "stable",
  "purpose": "Lets people drop files onto an area or browse for them.",
  "description": "Real <input type=\"file\"> clipped behind the surface so click + keyboard work; drag/drop is layered on top, never the only interaction. The molecule never owns drag-state internally — the consumer wires onDragEnter/onDragLeave and flips dragging.",
  "role": "input",
  "import": "@rrios-forge/ui/molecules/file-dropzone",
  "exports": [
    "FileDropzone",
    "FILE_DROPZONE_SIZES",
    "FILE_DROPZONE_TONES",
    "fileDropzoneVariants"
  ],
  "source": "packages/ui/src/molecules/file-dropzone",
  "axes": [
    {
      "axis": "tone",
      "part": null,
      "values": [
        "neutral",
        "info",
        "danger"
      ],
      "default": "neutral",
      "meaning": "Which semantic colour family the element speaks in."
    },
    {
      "axis": "size",
      "part": null,
      "values": [
        "sm",
        "md",
        "lg"
      ],
      "default": "md",
      "meaning": "Ergonomic scale, in three families (control, text, container)."
    },
    {
      "axis": "dragging",
      "part": null,
      "values": [
        "true",
        "false"
      ],
      "default": "false",
      "meaning": "Something is being dragged over it: the drop target lights up."
    },
    {
      "axis": "invalid",
      "part": null,
      "values": [
        "true",
        "false"
      ],
      "default": "false",
      "meaning": "Fails validation: a danger edge, announced as invalid; pair it with an error message."
    },
    {
      "axis": "disabled",
      "part": null,
      "values": [
        "true",
        "false"
      ],
      "default": "false",
      "meaning": "Not available: dimmed, skipped by the keyboard, ignores the pointer."
    }
  ],
  "needs": [
    {
      "need": "Date field / file drop / slider",
      "answer": "`DateField` / `FileDropzone` / `Slider`"
    }
  ],
  "patterns": [],
  "a11yExceptions": [],
  "decisions": [
    {
      "id": "ADR-028",
      "title": "The label is not the fill"
    },
    {
      "id": "ADR-030",
      "title": "Axis vocabulary: one name, one meaning"
    }
  ],
  "stories": [
    {
      "name": "Playground",
      "id": "components-molecules-filedropzone--playground",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-filedropzone--playground",
      "frame": "/iframe.html?id=components-molecules-filedropzone--playground&viewMode=story"
    },
    {
      "name": "Sizes",
      "id": "components-molecules-filedropzone--sizes",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-filedropzone--sizes",
      "frame": "/iframe.html?id=components-molecules-filedropzone--sizes&viewMode=story"
    },
    {
      "name": "Dragging",
      "id": "components-molecules-filedropzone--dragging",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-filedropzone--dragging",
      "frame": "/iframe.html?id=components-molecules-filedropzone--dragging&viewMode=story"
    },
    {
      "name": "Invalid",
      "id": "components-molecules-filedropzone--invalid",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-filedropzone--invalid",
      "frame": "/iframe.html?id=components-molecules-filedropzone--invalid&viewMode=story"
    },
    {
      "name": "Disabled",
      "id": "components-molecules-filedropzone--disabled",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-filedropzone--disabled",
      "frame": "/iframe.html?id=components-molecules-filedropzone--disabled&viewMode=story"
    },
    {
      "name": "With selected files",
      "id": "components-molecules-filedropzone--with-selected-files",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-filedropzone--with-selected-files",
      "frame": "/iframe.html?id=components-molecules-filedropzone--with-selected-files&viewMode=story"
    }
  ],
  "storyFile": "tooling/storybook/stories/components/molecules/file-dropzone.stories.tsx"
}
