import React from 'react'; import type { Cursor } from '@instructure/ui-prop-types'; import type { AsElementType, OtherHTMLAttributes, PropValidators, ViewTheme } from '@instructure/shared-types'; import type { WithStyleProps, Spacing, BorderWidth, BorderRadii, Shadow, Stacking, ComponentStyle, StyleObject } from '@instructure/emotion'; type BorderColor = string | 'transparent' | 'primary' | 'secondary' | 'brand' | 'info' | 'success' | 'warning' | 'alert' | 'danger'; type ViewOwnProps = { /** * The element to render as the component root, `span` by default */ as?: AsElementType; /** * provides a reference to the underlying html element */ elementRef?: (element: HTMLElement | null) => void; /** * 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?: 'auto' | 'inline' | 'block' | 'inline-block' | 'flex' | 'inline-flex'; overflowX?: 'auto' | 'hidden' | 'visible'; overflowY?: 'auto' | 'hidden' | 'visible'; height?: string | number; width?: string | number; maxHeight?: string | number; maxWidth?: string | number; minHeight?: string | number; minWidth?: string | number; /** * The children to render inside the */ children?: React.ReactNode; /** * Designates the text alignment within the `` */ textAlign?: 'start' | 'center' | 'end'; /** * Sets the color of the View border. * Accepts a color string value (e.g., "#FFFFFF", "red") or one of the predefined theme color options. */ borderColor?: BorderColor; /** * Designates the background style of the `` */ background?: 'transparent' | 'primary' | 'secondary' | 'primary-inverse' | 'brand' | 'info' | 'alert' | 'success' | 'danger' | 'warning'; /** * Specify a value for the CSS position property. Use `relative` if `focusable` will be true. */ position?: 'static' | 'absolute' | 'relative' | 'sticky' | 'fixed'; /** * The `left` CSS property in left-to-right interfaces. Will not do anything if `position === "static"`. */ insetInlineStart?: string; /** * The `right` CSS property in left-to-right interfaces. Will not do anything if `position === "static"`. */ insetInlineEnd?: string; /** * The `top` CSS property. Will not do anything if `position === "static"`. */ insetBlockStart?: string; /** * The `bottom` CSS property. Will not do anything if `position === "static"`. */ insetBlockEnd?: string; /** * Manually control if the `View` should display a focus outline. * * When left `undefined` (which is the default) the focus outline will display * automatically if the `View` is focusable and receives focus. */ withFocusOutline?: boolean; /** * Determines whether the focus outline displays offset or inset from the focused View */ focusPosition?: 'offset' | 'inset'; /** * Determines the color of the focus outline */ focusColor?: 'info' | 'inverse' | 'success' | 'danger'; /** * Determines if the focus ring should animate when it appears */ shouldAnimateFocus?: boolean; /** * Activate a dotted outline around the component to make building your * layout easier */ withVisualDebug?: boolean; dir?: 'ltr' | 'rtl'; /** * 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?: 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?: Spacing; /** * Accepts the familiar CSS shorthand to designate border widths corresponding * to edges */ borderWidth?: BorderWidth; /** * Accepts `small`, `medium`, `large`, `circle`, and `pill`. Border radius can be * assigned to individual corners in CSS shorthand style (e.g., `"medium large none pill"`). * Also accepts valid CSS length values like `1rem` or `12px` */ borderRadius?: BorderRadii; /** * Controls the shadow depth for the `` */ shadow?: Shadow; /** * Controls the z-index depth for the `` */ stacking?: Stacking; /** * Specify a mouse cursor to use when hovering over the `` */ cursor?: Cursor; /** * Sets what a browser does when reaching the boundary of a scrolling area. * Valid values are `auto`, `contain`, `none`. */ overscrollBehavior?: 'auto' | 'contain' | 'none'; /** * DEPRECATED, this prop does nothing. Use the focusOutlineOffset theme * variable * * Sets the radius of the focus border ring. * * For offset type, the given value is increased by the difference between the focus ring' offset and the focus ring's width. * * For inset type, the given value is decreased by the sum of the focus ring' offset and the focus ring's width. */ focusRingBorderRadius?: string; /** * Display the focus ring when any of the descendants is focused. * (uses the [:focus-within](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within) * CSS selector) */ focusWithin?: boolean; }; type PropKeys = keyof ViewOwnProps; type ViewProps = ViewOwnProps & WithStyleProps & OtherHTMLAttributes; type AllowedPropKeys = Readonly>; type ViewStyle = ComponentStyle<'view'> & { inlineStyles: StyleObject; }; declare const propTypes: PropValidators; declare const allowedProps: AllowedPropKeys; export { propTypes, allowedProps }; export type { ViewProps, ViewOwnProps, ViewStyle, BorderColor }; //# sourceMappingURL=props.d.ts.map