{
  "name": "Page",
  "description": "A simple module for setting up new pages, with routes, etc., and a consistent look & feel",
  "user_stories": [
    "As a developer I would like to quickly configure new pages that handle routing, app/menu toolbar, etc."
  ],
  "screens": "",
  "workflow": "",
  "test_plan": [],
  "components": [
    {
      "name": "Page",
      "type": "Components",
      "description": "A simple module for setting up new pages, with routes, etc., and a consistent look & feel",
      "behaviors": "",
      "exists": "No",
      "package": "No",
      "schema": [
        {
          "name": "name",
          "type": "string",
          "description": "The name of this page",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "path",
          "type": "string",
          "description": "The path to use for the route",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "disableToolbar",
          "type": "boolean",
          "description": "Whether or not to disable showing the toolbar",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "toolbarItems",
          "type": "object",
          "description": "The props to pass along to the toolbar",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "toolbarComponent",
          "type": "React.FC",
          "description": "The component to append to the toolbar.  Useful for adding full customization of the toolbar",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "disableAppDrawer",
          "type": "boolean",
          "description": "Whether or not to disable the app drawer menu",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "appDrawerSettings",
          "type": "object",
          "description": "The props to pass long to the app drawer",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "tabs",
          "type": "object[]",
          "description": "The list of tabs and their settings to display under the toolbar",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "disableTabs",
          "type": "boolean",
          "description": "Whether or not to disable showing the tabs",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "children",
          "type": "JSX.Element",
          "description": "The content to place inside the page",
          "schema_type": "prop",
          "required": false
        },
        {
          "name": "setToolbarContent()",
          "type": "() => void",
          "description": "A method for updating the page's toolbar content.",
          "schema_type": "prop",
          "required": false
        }
      ],
      "tests": [
        {
          "it": "(Rendering) Should render the component in the dom",
          "type": "Integration"
        },
        {
          "it": "(Rendering) Should be accessible at the url path indicated in the path props",
          "type": "Integration"
        },
        {
          "it": "(Rendering) Should not render a toolbar when the disableToolbar props is true",
          "type": "Integration"
        },
        {
          "it": "(Rendering) Should render the component provided in the toolbarComponent props instead of the default toolbar if one is provided",
          "type": "Integration"
        },
        {
          "it": "(Rendering) Should not render an appDrawer if the disableAppDrawer prop is true",
          "type": "Integration"
        },
        {
          "it": "(Rendering) Should render the same number of tabs that are in the tabs array",
          "type": "Integration"
        },
        {
          "it": "(Rendering) Should not render any page tabs if the disableTabs prop is true",
          "type": "Integration"
        },
        {
          "it": "(Rendering) Should always render children",
          "type": "Integration"
        },
        {
          "it": "(Methods) Should update the toolbar content if the setToolbarContent() method is ever called",
          "type": "Integration"
        },
        {
          "it": "(Events) Should trigger the onComponentRender(\"Page\") plugin hook when a Page renders in the dom",
          "type": "Integration"
        },
        {
          "it": "(Events) Should trigger the onComponentRender(\"Toolbar\") plugin hook when a toolbar renders in the dom",
          "type": "Integration"
        },
        {
          "it": "(Events) Should trigger the onComponentRender(\"AppDrawer\") plugin hook when the app drawer renders in the dom",
          "type": "Integration"
        },
        {
          "it": "(Events) Should render the onListItems(\"toolbarItems\") plugin hook when the list of toolbar actions are being generated",
          "type": "Integration"
        },
        {
          "it": "(Events) Should render the onListItems(\"pageTabs\") plugin hook when the list of page tabs are being generated",
          "type": "Integration"
        }
      ]
    }
  ],
  "database": [],
  "api": []
}
