{
  "!!!!! DO NOT EDIT THIS FILE !!!!!!": {
    "REGENERATE THIS WITH ONE OF THE FOLLOWING": [
      "yarn docgen ./packages/monorail/src/v2/components/TreeGrid/TreeGrid.tsx",
      "yarn docgen:all"
    ]
  },
  "parameters": {
    "docs": {
      "description": {
        "component": "Displays a list of trees as table/datagrid with rows that can expand/collapse\nif they have child rows. Rows are \"windowed\" or \"virtualized\" to help large\ndata sets render performantly.\n\n**Note: you must wrap this component in a parent element with a bounded\n**height, otherwise the rows will not render**\n\nA TreeGrid essentially consists of the following DOM structure:\n\n```\ntreegrid\n  row\n    columnheader\n    columnheader\n    ...\n  row\n    gridcell\n    gridcell\n    ...\n  row\n    gridcell\n    ...\n  ...\n```\n\nAll rows are siblings in the DOM, even though some rows are parent nodes,\nsome are child nodes, and some are both. The hierarchical relationship\nis visually represented by the order and indentation of rows, and\nprogrammatically represented in the DOM  via the ARIA attributes\n`aria-expanded`, `aria-level`, `aria-setsize`, and `aria-posinset`.\n\nFor more info, see the WAI-Aria guide for \"treegrid\" components:\nhttps://www.w3.org/TR/wai-aria-practices-1.1/#treegrid"
      }
    }
  },
  "argTypes": {
    "ariaLabel": {
      "defaultValue": null,
      "description": "Used to define a string that labels the current element. Use the \"label\"\nvariant in cases where a text label is not visible on the screen. If\nthere is visible text labeling the element, use \"labelledBy\" variant\nto list the DOM nodes providing the label content.",
      "name": "ariaLabel",
      "parent": {
        "fileName": "packages/monorail/src/v2/components/TreeGrid/TreeGrid.tsx",
        "name": "TreeGridProps"
      },
      "required": true,
      "type": { "name": "AriaLabel", "required": true },
      "table": { "type": { "summary": "AriaLabel" } },
      "control": { "type": "object" }
    },
    "columns": {
      "defaultValue": null,
      "description": "Configuration for how to render columns",
      "name": "columns",
      "parent": {
        "fileName": "packages/monorail/src/v2/components/TreeGrid/TreeGrid.tsx",
        "name": "TreeGridProps"
      },
      "required": true,
      "type": { "name": "NonEmptyArray<TreeGridColumn<T>>", "required": true },
      "table": { "type": { "summary": "NonEmptyArray<TreeGridColumn<T>>" } },
      "control": { "type": null }
    },
    "content": {
      "defaultValue": null,
      "description": "The content of the table body. `Left<Element>` could be used\nfor rendering a view for loading, no results, or error. A `Right`\nwill make the table display the rows of the table.",
      "name": "content",
      "parent": {
        "fileName": "packages/monorail/src/v2/components/TreeGrid/TreeGrid.tsx",
        "name": "TreeGridProps"
      },
      "required": true,
      "type": {
        "name": "Either<Element, Forest<KVPair<T>>>",
        "required": true
      },
      "table": { "type": { "summary": "Either<Element, Forest<KVPair<T>>>" } },
      "control": { "type": null }
    },
    "expandCollapse": {
      "defaultValue": null,
      "description": "Allows expand/collapse to be controlled or uncontrolled state",
      "name": "expandCollapse",
      "parent": {
        "fileName": "packages/monorail/src/v2/components/TreeGrid/TreeGrid.tsx",
        "name": "TreeGridProps"
      },
      "required": false,
      "type": {
        "name": "{ tag: \"Uncontrolled\"; } | { tag: \"Controlled\"; expandedNodes: ReadonlySet<Key<T>>; onExpand: (key: Key<T>) => void; onCollapse: (key: Key<T>) => void; }",
        "required": false
      },
      "table": {
        "type": {
          "summary": "{ tag: \"Uncontrolled\"; } | { tag: \"Controlled\"; expandedNodes: ReadonlySet<Key<T>>; onExpand: (key: Key<T>) => void; onCollapse: (key: Key<T>) => void; }"
        }
      },
      "control": { "type": "object" }
    },
    "getRowAttrs": {
      "defaultValue": null,
      "description": "Sets additional attributes/properties on TreeGrid DOM nodes with the\n\"row\" ARIA role, excluding the row of `columnheader`s",
      "name": "getRowAttrs",
      "parent": {
        "fileName": "packages/monorail/src/v2/components/TreeGrid/TreeGrid.tsx",
        "name": "TreeGridProps"
      },
      "required": false,
      "type": { "name": "GetRowAttrs<T>", "required": false },
      "table": { "type": { "summary": "GetRowAttrs<T>" } },
      "control": { "type": null }
    },
    "getTreeGridAttrs": {
      "defaultValue": null,
      "description": "Sets additional attributes/properties on the DOM node\nwith the \"treegrid\" ARIA role",
      "name": "getTreeGridAttrs",
      "parent": {
        "fileName": "packages/monorail/src/v2/components/TreeGrid/TreeGrid.tsx",
        "name": "TreeGridProps"
      },
      "required": false,
      "type": {
        "name": "(() => Pick<HTMLAttributes<HTMLDivElement>, \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | ... 242 more ... | \"onTransitionEndCapture\">)",
        "required": false
      },
      "table": {
        "type": {
          "summary": "(() => Pick<HTMLAttributes<HTMLDivElement>, \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | ... 242 more ... | \"onTransitionEndCapture\">)"
        }
      },
      "control": { "type": null }
    },
    "rowHeightInPx": {
      "defaultValue": null,
      "description": "Sets the height of rows. Defaults to `32`",
      "name": "rowHeightInPx",
      "parent": {
        "fileName": "packages/monorail/src/v2/components/TreeGrid/TreeGrid.tsx",
        "name": "TreeGridProps"
      },
      "required": false,
      "type": { "name": "number", "required": false },
      "table": { "type": { "summary": "number" } },
      "control": { "type": "number" }
    }
  }
}
