\r\n
\r\n {EnhancedTabs}\r\n
\r\n
\r\n {selectedTabContent || ''}\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nTabs.defaultProps = {\r\n mobile_breakpoint: 800,\r\n colors: {\r\n border: '#d6d6d6',\r\n primary: '#1975FA',\r\n background: '#f9f9f9',\r\n },\r\n vertical: false,\r\n};\r\n\r\nTabs.propTypes = {\r\n /**\r\n * The ID of this component, used to identify dash components\r\n * in callbacks. The ID needs to be unique across all of the\r\n * components in an app.\r\n */\r\n id: PropTypes.string,\r\n\r\n /**\r\n * The value of the currently selected Tab\r\n */\r\n value: PropTypes.string,\r\n\r\n /**\r\n * Appends a class to the Tabs container holding the individual Tab components.\r\n */\r\n className: PropTypes.string,\r\n\r\n /**\r\n * Appends a class to the Tab content container holding the children of the Tab that is selected.\r\n */\r\n content_className: PropTypes.string,\r\n\r\n /**\r\n * Appends a class to the top-level parent container holding both the Tabs container and the content container.\r\n */\r\n parent_className: PropTypes.string,\r\n\r\n /**\r\n * Appends (inline) styles to the Tabs container holding the individual Tab components.\r\n */\r\n style: PropTypes.object,\r\n\r\n /**\r\n * Appends (inline) styles to the top-level parent container holding both the Tabs container and the content container.\r\n */\r\n parent_style: PropTypes.object,\r\n\r\n /**\r\n * Appends (inline) styles to the tab content container holding the children of the Tab that is selected.\r\n */\r\n content_style: PropTypes.object,\r\n\r\n /**\r\n * Renders the tabs vertically (on the side)\r\n */\r\n vertical: PropTypes.bool,\r\n\r\n /**\r\n * Breakpoint at which tabs are rendered full width (can be 0 if you don't want full width tabs on mobile)\r\n */\r\n mobile_breakpoint: PropTypes.number,\r\n\r\n /**\r\n * Array that holds Tab components\r\n */\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n\r\n /**\r\n * Holds the colors used by the Tabs and Tab components. If you set these, you should specify colors for all properties, so:\r\n * colors: {\r\n * border: '#d6d6d6',\r\n * primary: '#1975FA',\r\n * background: '#f9f9f9'\r\n * }\r\n */\r\n colors: PropTypes.exact({\r\n border: PropTypes.string,\r\n primary: PropTypes.string,\r\n background: PropTypes.string,\r\n }),\r\n\r\n /**\r\n * Object that holds the loading state object coming from dash-renderer\r\n */\r\n loading_state: PropTypes.shape({\r\n /**\r\n * Determines if the component is loading or not\r\n */\r\n is_loading: PropTypes.bool,\r\n /**\r\n * Holds which property is loading\r\n */\r\n prop_name: PropTypes.string,\r\n /**\r\n * Holds the name of the component that is loading\r\n */\r\n component_name: PropTypes.string,\r\n }),\r\n};\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {omit} from 'ramda';\r\n\r\n/**\r\n * A basic HTML textarea for entering multiline text.\r\n *\r\n */\r\nexport default class Textarea extends Component {\r\n render() {\r\n const {setProps, loading_state, value} = this.props;\r\n\r\n return (\r\n