Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
/*
* URL of the image to display as the background image
*/
src: PropTypes.string,
/*
* Accessible label
*/
alt: PropTypes.string,
size: PropTypes.oneOf(['auto', 'x-small', 'small', 'medium', 'large', 'x-large']),
shape: PropTypes.oneOf(['circle', 'rectangle']),
/**
* Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `margin="small auto large"`.
*/
margin: ThemeablePropTypes.spacing,
display: PropTypes.oneOf(['inline-block', 'block']),
/**
* Callback fired when the avatar image has loaded
*/
onImageLoaded: PropTypes.func,
/**
* the element type to render as
*/
as: PropTypes.elementType, // eslint-disable-line react/require-default-props
/**
* provides a reference to the underlying html element
*/
elementRef: PropTypes.func,
/* eslint-disable react/require-default-props */
/**
* __Deprecated - use `display`__
class Alert extends Component {
static propTypes = {
/**
* content to be rendered within Alert
*/
children: PropTypes.node,
/**
* Determines color and icon
*/
variant: PropTypes.oneOf(['info', 'success', 'warning', 'error']),
/**
* Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `margin="small auto large"`.
*/
margin: ThemeablePropTypes.spacing,
/**
* Function that returns the DIV where screenreader alerts will be placed.
*/
liveRegion: PropTypes.func,
/**
* Choose the politeness level of screenreader alerts.
*/
liveRegionPoliteness: PropTypes.oneOf(['polite', 'assertive']),
/**
* If the screenreader alert should be atomic
*/
isLiveRegionAtomic: PropTypes.bool,
/**
* If the alert should only be visible to screen readers
*/
screenReaderOnly: PropTypes.bool,
children: PropTypes.node.isRequired,
variant: PropTypes.oneOf(['default', 'unstyled', 'inline']),
delimiter: PropTypes.oneOf(['none', 'pipe', 'slash', 'arrow', 'dashed', 'solid']),
size: PropTypes.oneOf(['small', 'medium', 'large']),
/**
* Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `margin="small auto large"`.
*/
margin: ThemeablePropTypes.spacing,
/**
* Valid values are `0`, `none`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `padding="small x-large large"`.
*/
padding: ThemeablePropTypes.spacing,
spacing: PropTypes.oneOf([
'none',
'xxx-small',
'xx-small',
'x-small',
'small',
'medium',
'large',
'x-large',
'xx-large'
]),
elementRef: PropTypes.func
}
static defaultProps = {
padding: undefined,
---
**/
@testable()
@themeable(theme, styles)
class ListItem extends Component {
static propTypes = {
children: PropTypes.node.isRequired,
variant: PropTypes.oneOf(['default', 'unstyled', 'inline']),
delimiter: PropTypes.oneOf(['none', 'pipe', 'slash', 'arrow', 'dashed', 'solid']),
size: PropTypes.oneOf(['small', 'medium', 'large']),
/**
* Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `margin="small auto large"`.
*/
margin: ThemeablePropTypes.spacing,
/**
* Valid values are `0`, `none`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `padding="small x-large large"`.
*/
padding: ThemeablePropTypes.spacing,
spacing: PropTypes.oneOf([
'none',
'xxx-small',
'xx-small',
'x-small',
'small',
'medium',
'large',
'x-large',
'xx-large'
*/
children: PropTypes.node,
/**
* the element type to render as
*/
as: PropTypes.elementType,
/**
* provides a reference to the underlying html root element
*/
elementRef: PropTypes.func,
/**
* Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `margin="small auto large"`.
*/
margin: ThemeablePropTypes.spacing,
/**
* Valid values are `0`, `none`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `padding="small x-large large"`.
*/
padding: ThemeablePropTypes.spacing,
/**
* overrides the parent Flex's alignItems prop, if needed
*/
align: PropTypes.oneOf(['center', 'start', 'end', 'stretch']),
/**
* Inherits from the parent Flex component
*/
direction: PropTypes.oneOf(['row', 'column']),
/**
* Designates the text alignment inside the Item
as: PropTypes.elementType,
size: PropTypes.oneOf(['small', 'medium', 'large']),
/**
* should the `<button>` fill the width of its container
*/
fluidWidth: PropTypes.bool,
disabled: PropTypes.bool,
readOnly: PropTypes.bool,
href: PropTypes.string,
onClick: PropTypes.func,
/**
* Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `margin="small auto large"`.
*/
margin: ThemeablePropTypes.spacing,
/**
* Add an SVG icon to the button. Do not add icons directly as
* children.
*/
icon: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),
/**
* Specify a mouse cursor to use when hovering over the button.
* The `pointer` cursor is used by default.
*/
cursor: PropTypes.string,
tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
}
static defaultProps = {
as: 'button',
type: 'button',</button>
class Table extends Component {
static propTypes = {
/**
* Set the table's caption for screen reader
*/
caption: PropTypes.string.isRequired,
/**
* Build table via `Table.Head` and `Table.Body`
*/
children: ChildrenPropTypes.oneOf([Head, Body]),
/**
* Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `margin="small auto large"`.
*/
margin: ThemeablePropTypes.spacing,
/**
* Provide a reference to the underlying html element
*/
elementRef: PropTypes.func,
/**
* Highlight each row on hover
*/
hover: PropTypes.bool,
/**
* `auto` lets the browser determine table column widths based on cell content,
* while `fixed` forces columns of equal width. `stacked` renders table in one
* column to be more readable on narrow screens
*/
layout: PropTypes.oneOf(['auto', 'fixed', 'stacked']),
}
*/
color: PropTypes.oneOf(['primary', 'primary-inverse']),
/**
* Control the color of the progress meter. Defaults to showing theme success
* color on completion, based on `valueNow` and `valueMax`.
*/
meterColor: PropTypes.oneOfType([
PropTypes.func,
PropTypes.oneOf(['info', 'warning', 'danger', 'alert', 'success', 'brand'])
]),
/**
* Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `margin="small auto large"`.
*/
margin: ThemeablePropTypes.spacing,
/**
* Provides a reference to the component's root HTML element
*/
elementRef: PropTypes.func,
/**
* Set the element type of the component's root
*/
as: PropTypes.elementType
}
static defaultProps = {
formatScreenReaderValue: ({ valueNow, valueMax }) => `${valueNow} / ${valueMax}`,
size: 'medium',
valueMax: 100,
valueNow: 0,
as: 'div',
label: PropTypes.node,
/**
* Accessible label for next button
*/
labelNext: PropTypes.string,
/**
* Accessible label for previous button
*/
labelPrev: PropTypes.string,
variant: PropTypes.oneOf(['full', 'compact']),
/**
* Valid values are `0`, `none`, `auto`, `xxx-small`, `xx-small`, `x-small`,
* `small`, `medium`, `large`, `x-large`, `xx-large`. Apply these values via
* familiar CSS-like shorthand. For example: `margin="small auto large"`.
*/
margin: ThemeablePropTypes.spacing,
/**
* the element type to render as
*/
as: PropTypes.elementType,
/**
* provides a reference to the underlying html root element
*/
elementRef: PropTypes.func,
/**
* For accessibility, Pagination sets focus on the first or last Pagination.Pages,
* respectively, when the Previous or Next arrow buttons are removed from the DOM.
* Set this property to `false` to prevent this behavior.
*/
shouldHandleFocus: PropTypes.bool
}
*/
elementRef: PropTypes.func,
/**
* By default the display prop is 'auto', meaning it takes on the
* display rules of the html element it's rendered as (see `as` prop).
*/
display: PropTypes.oneOf(['auto', 'inline', 'block', 'inline-block', 'flex', 'inline-flex']),
overflowX: PropTypes.oneOf(['auto', 'hidden', 'visible']),
overflowY: PropTypes.oneOf(['auto', 'hidden', 'visible']),
/**
* Set the margin using familiar CSS shorthand
*/
margin: ThemeablePropTypes.spacing,
/**
* Set the padding using familiar CSS shorthand
*/
padding: ThemeablePropTypes.spacing,
height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
/**
* The children to render inside the `