{
  "name": "file-upload-dnd",
  "kind": "block",
  "primary": "card-ui",
  "page": "/catalog/ui-patterns/v050-form-blocks/v050-form-blocks.contents.html",
  "slots": [],
  "nested": [],
  "attrs": {},
  "html": "<card-ui>\n    <section>\n      <col-ui gap=\"3\">\n        <field-ui label=\"Attachments\" hint=\"PDF, PNG, JPG up to 10MB each\">\n          <upload-ui multiple accept=\".pdf,.png,.jpg\">\n            <text-ui>Drop files here or click to browse</text-ui>\n          </upload-ui>\n        </field-ui>\n        <col-ui gap=\"1\">\n          <row-ui gap=\"2\" align=\"center\">\n            <icon-ui name=\"file-pdf\" size=\"sm\" color=\"subtle\"></icon-ui>\n            <text-ui size=\"sm\" grow>report-q4.pdf</text-ui>\n            <text-ui size=\"sm\" color=\"subtle\">2.4 MB</text-ui>\n            <button-ui icon=\"x\" variant=\"ghost\" size=\"sm\"></button-ui>\n          </row-ui>\n          <row-ui gap=\"2\" align=\"center\">\n            <icon-ui name=\"file-image\" size=\"sm\" color=\"subtle\"></icon-ui>\n            <text-ui size=\"sm\" grow>screenshot.png</text-ui>\n            <text-ui size=\"sm\" color=\"subtle\">840 KB</text-ui>\n            <button-ui icon=\"x\" variant=\"ghost\" size=\"sm\"></button-ui>\n          </row-ui>\n        </col-ui>\n      </col-ui>\n    </section>\n  </card-ui>",
  "source": "catalog/ui-patterns/v050-form-blocks/v050-form-blocks.contents.html",
  "metadata": {
    "domain": "forms",
    "description": "File upload form with drag and drop zone and file list. Upload-ui with browse fallback, file-type hints, and max-size note.",
    "keywords": [
      "file",
      "upload",
      "drag-and-drop",
      "dnd",
      "browse",
      "attachments",
      "form-input",
      "drop",
      "zone",
      "file-list",
      "upload-zone"
    ]
  },
  "captured_at": "2026-06-07T19:28:13.657Z",
  "template": [
    {
      "id": "text",
      "component": "Text",
      "textContent": "Drop files here or click to browse"
    },
    {
      "id": "upload",
      "component": "Upload",
      "accept": ".pdf,.png,.jpg",
      "multiple": true,
      "children": [
        "text"
      ]
    },
    {
      "id": "field",
      "component": "Field",
      "hint": "PDF, PNG, JPG up to 10MB each",
      "label": "Attachments",
      "children": [
        "upload"
      ]
    },
    {
      "id": "file-pdf",
      "component": "Icon",
      "name": "file-pdf",
      "size": "sm"
    },
    {
      "id": "text-2",
      "component": "Text",
      "size": "sm",
      "textContent": "report-q4.pdf"
    },
    {
      "id": "text-3",
      "component": "Text",
      "color": "subtle",
      "size": "sm",
      "textContent": "2.4 MB"
    },
    {
      "id": "button",
      "component": "Button",
      "icon": "x",
      "size": "sm",
      "variant": "ghost"
    },
    {
      "id": "row",
      "component": "Row",
      "align": "center",
      "gap": "2",
      "children": [
        "file-pdf",
        "text-2",
        "text-3",
        "button"
      ]
    },
    {
      "id": "file-image",
      "component": "Icon",
      "name": "file-image",
      "size": "sm"
    },
    {
      "id": "text-4",
      "component": "Text",
      "size": "sm",
      "textContent": "screenshot.png"
    },
    {
      "id": "text-5",
      "component": "Text",
      "color": "subtle",
      "size": "sm",
      "textContent": "840 KB"
    },
    {
      "id": "button-2",
      "component": "Button",
      "icon": "x",
      "size": "sm",
      "variant": "ghost"
    },
    {
      "id": "row-2",
      "component": "Row",
      "align": "center",
      "gap": "2",
      "children": [
        "file-image",
        "text-4",
        "text-5",
        "button-2"
      ]
    },
    {
      "id": "column-2",
      "component": "Column",
      "gap": "1",
      "children": [
        "row",
        "row-2"
      ]
    },
    {
      "id": "column",
      "component": "Column",
      "gap": "3",
      "children": [
        "field",
        "column-2"
      ]
    },
    {
      "id": "section",
      "component": "Section",
      "children": [
        "column"
      ]
    },
    {
      "id": "root",
      "component": "Card",
      "children": [
        "section"
      ]
    }
  ]
}
