@hyphen/hyphen-components 2.12.1 → 2.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"hyphen-components.cjs.development.js","sources":["../src/lib/cssShorthandToClasses.ts","../src/lib/generateResponsiveClasses.ts","../src/lib/doesStringIncludeCssUnit.ts","../src/lib/getDimensionCss.ts","../src/lib/getElementType.ts","../src/components/Box/Box.tsx","../src/components/Icon/Icon.tsx","../src/components/Alert/Alert.constants.ts","../src/components/Alert/Alert.tsx","../src/components/Badge/Badge.tsx","../src/components/Spinner/Spinner.tsx","../src/lib/reactRouterClickHandler.ts","../src/components/Button/Button.tsx","../src/components/Card/components/CardFooter/CardFooter.tsx","../src/components/Heading/Heading.constants.ts","../src/components/Heading/Heading.tsx","../src/components/Card/components/CardHeader/CardHeader.tsx","../src/components/Card/components/CardSection/CardSection.tsx","../src/components/Card/Card.tsx","../src/components/CheckboxInput/components/CheckboxIcon.tsx","../src/components/CheckboxInput/components/Checkbox.tsx","../src/components/InputValidationMessage/InputValidationMessage.tsx","../src/components/HelpText/HelpText.tsx","../src/components/FormLabel/FormLabel.tsx","../src/components/CheckboxInput/CheckboxInput.tsx","../src/components/DatePicker/DatePicker.tsx","../src/components/FormControl/FormControl.tsx","../src/lib/getAutoCompleteValue.ts","../src/components/TextInput/TextInput.tsx","../src/lib/getColumnKeys.ts","../src/lib/isFunction.ts","../src/lib/mergeRefs.ts","../src/lib/prefersReducedMotion.ts","../src/lib/resolveValue.ts","../src/lib/tokens.ts","../src/components/Popover/Popover.tsx","../src/components/DateInput/DateInput.tsx","../src/constants/keyCodes.ts","../src/components/Details/DetailsSummary.tsx","../src/components/Details/Details.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Formik/FormikCheckboxInput/FormikCheckboxInput.tsx","../src/components/RadioGroup/RadioInput/RadioInputIcon.tsx","../src/components/RadioGroup/RadioInput/RadioInput.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/Formik/FormikRadioGroup/FormikRadioGroup.tsx","../src/components/SelectInput/SelectInput.tsx","../src/components/Formik/FormikSelectInput/FormikSelectInput.tsx","../src/components/SelectInputInset/SelectInputInset.tsx","../src/components/Formik/FormikSelectInputInset/FormikSelectInputInset.tsx","../src/components/TextareaInputInset/TextareaInputInset.tsx","../src/components/Formik/FormikTextareaInputInset/FormikTextareaInputInset.tsx","../src/components/TextInputInset/TextInputInset.tsx","../src/components/Formik/FormikTextInputInset/FormikTextInputInset.tsx","../src/components/SelectInputNative/SelectInputNative.tsx","../src/components/Formik/FormikSelectInputNative/FormikSelectInputNative.tsx","../src/components/Formik/FormikTextInput/FormikTextInput.tsx","../src/components/TextareaInput/TextareaInput.tsx","../src/components/Formik/FormikTextareaInput/FormikTextareaInput.tsx","../src/components/TimePicker/TimePicker.tsx","../src/components/Formik/FormikTimePicker/FormikTimePicker.tsx","../src/components/TimePickerNative/TimePickerNative.tsx","../src/components/Formik/FormikTimePickerNative/FormikTimePickerNative.tsx","../src/components/Toggle/Toggle.tsx","../src/components/Formik/FormikToggle/FormikToggle.tsx","../src/components/Modal/components/ModalFooter/ModalFooter.tsx","../src/components/Modal/components/ModalHeader/ModalHeader.tsx","../src/components/Modal/components/ModalBody/ModalBody.tsx","../src/components/Modal/Modal.tsx","../src/components/Pagination/Pagination.utilities.ts","../src/components/Pagination/Pagination.tsx","../src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayouEffect.ts","../src/components/ResponsiveProvider/ResponsiveProvider.tsx","../src/components/Table/TableBody/TableBodyCell/TableBodyCell.tsx","../src/components/Table/TableHead/TableHeaderCell/TableHeaderCell.tsx","../src/components/Table/common/TableRow/TableRow.tsx","../src/components/Table/TableBody/TableBody.tsx","../src/components/Table/TableHead/TableHead.tsx","../src/components/Table/Table.tsx","../src/components/ThemeProvider/ThemeProvider.tsx","../src/components/Toast/ToastNotification.tsx","../src/components/Toast/Toast.store.ts","../src/components/Toast/toast.ts","../src/components/Toast/useToasts.ts","../src/components/Toast/ToastContainer.tsx","../src/hooks/useWindowSize/useWindowSize.ts","../src/hooks/useBreakpoint/useBreakpoint.ts","../src/hooks/useOpenClose/useOpenClose.tsx","../src/hooks/useTheme/useTheme.ts"],"sourcesContent":["import { ResponsiveProp, BreakpointSizeWithBase } from '../types';\n\nexport function isValidSpacingValue(\n value?: string | ResponsiveProp<string | undefined>\n): boolean {\n if (\n value === undefined ||\n value === null ||\n (typeof value !== 'string' && typeof value !== 'object')\n ) {\n return false;\n }\n\n return true;\n}\n\nexport function generateBaseClasses(\n attribute: string | undefined,\n value?: string | ResponsiveProp<string | undefined>\n): string[] {\n if (typeof value !== 'string') return [];\n\n const trimmedValue = value.trim();\n\n if (trimmedValue !== value) {\n // eslint-disable-next-line no-console\n console.warn(`\n Hyphen Components: It seems you've passed an incorrect\n shorthand value as a prop in your component. The value\n has extra whitespace either at the beginning or the end of it.\n We have trimmed this whitespace, but please double-check that\n the prop value is correct.\n attribute: \"${attribute}\"\n value: \"${value}\"\n `);\n }\n\n const classes: string[] = [];\n let shorthand: { [key: number]: string[] };\n\n if (attribute === 'br') {\n shorthand = {\n /* top-left-and-bottom-right | top-right-and-bottom-left */\n 2: ['top-left', 'top-right'],\n /* top-left | top-right-and-bottom-left | bottom-right */\n 3: ['top-left', 'top-right', 'bottom-right'],\n 4: ['top-left', 'top-right', 'bottom-right', 'bottom-left'],\n };\n } else if (attribute === 'g') {\n shorthand = { 2: ['rg', 'cg'] };\n } else {\n shorthand = {\n 2: ['v', 'h'],\n 3: ['top', 'h', 'bottom'],\n 4: ['top', 'right', 'bottom', 'left'],\n };\n }\n\n if (trimmedValue.includes(' ') && trimmedValue.split(' ').length > 1) {\n const sides = trimmedValue.split(' ');\n\n if (sides.length > 4) {\n // eslint-disable-next-line no-console\n console.warn(`\n Hyphen Components: It seems you've passed an incorrect\n shorthand value as a prop in your component. The value\n has more than four string components. While it will not break anything,\n please double-check your prop values to ensure the expected result is correct.\n attribute: \"${attribute}\"\n value: \"${value}\"\n `);\n }\n\n const trimmedSides = sides.slice(0, 4);\n\n // br = border radius -- the corner logic is different than sides.\n if (attribute === 'br') {\n trimmedSides.forEach((v, index) => {\n classes.push(\n `${attribute}-${shorthand[trimmedSides.length][index]}-${v}`\n );\n\n if (trimmedSides.length === 3 && index === 1) {\n classes.push(`${attribute}-bottom-left-${trimmedSides[index]}`);\n } else if (trimmedSides.length === 2 && index === 0) {\n classes.push(`${attribute}-bottom-right-${trimmedSides[index]}`);\n } else if (trimmedSides.length === 2 && index === 1) {\n classes.push(`${attribute}-bottom-left-${trimmedSides[index]}`);\n }\n });\n } else if (attribute === 'g') {\n trimmedSides.forEach((v, index) => {\n classes.push(`${shorthand[trimmedSides.length][index]}-${v}`);\n });\n } else {\n trimmedSides.forEach((v, index) => {\n classes.push(\n `${attribute}-${shorthand[trimmedSides.length][index]}-${v}`\n );\n });\n }\n } else {\n classes.push(`${attribute}-${trimmedValue}`);\n }\n\n return classes;\n}\n\nexport function cssShorthandToClasses(\n attribute: string,\n value?: string | ResponsiveProp<string | undefined>\n): string[] {\n if (!isValidSpacingValue(value)) return [];\n\n const classes: string[] = [];\n\n if (typeof value === 'object') {\n Object.keys(value).forEach((key) => {\n const baseClasses = generateBaseClasses(\n attribute,\n value[key as BreakpointSizeWithBase]\n );\n const responsiveClasses = baseClasses?.map((baseClass) =>\n key === 'base' ? baseClass : `${baseClass}-${key}`\n );\n classes.push(...responsiveClasses);\n });\n } else if (typeof value === 'string') {\n classes.push(...generateBaseClasses(attribute, value));\n }\n\n return classes;\n}\n","import { ResponsiveProp, BreakpointSizeWithBase } from '../types';\n\n// eslint-disable-next-line\nexport function generateResponsiveClasses(\n classRoot: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: ResponsiveProp<any> | string | undefined\n): string[] {\n if (\n value === null ||\n (typeof value !== 'string' && typeof value !== 'object')\n )\n return [];\n\n const classes: string[] = [];\n\n if (typeof value === 'object') {\n Object.keys(value).forEach((key) => {\n const baseClass = `${classRoot}-${value[key as BreakpointSizeWithBase]}`;\n const responsiveClass =\n key === 'base' ? baseClass : `${baseClass}-${key}`;\n\n classes.push(responsiveClass);\n });\n } else if (typeof value === 'string') {\n classes.push(`${classRoot}-${value}`);\n }\n\n return classes;\n}\n","// eslint-disable-next-line import/prefer-default-export\nexport function doesStringIncludeCssUnit(value: string | undefined): boolean {\n const cssUnits = ['px', 'em', 'rem', '%', 'vw', 'vh'];\n\n return cssUnits.some((unit) => value?.includes(unit));\n}\n","import { CSSProperties } from 'react';\nimport {\n StylesAndClasses,\n CssDimensionAbbreviation,\n ResponsiveProp,\n DimensionSize,\n} from '../types';\nimport { doesStringIncludeCssUnit } from './doesStringIncludeCssUnit';\nimport { generateResponsiveClasses } from './generateResponsiveClasses';\n\nexport function getDimensionStyles(\n dimension: CssDimensionAbbreviation,\n value?: DimensionSize | ResponsiveProp<DimensionSize> | string\n): { [key: string]: string } | undefined {\n if (value === undefined) return value;\n\n let styles;\n // value is a css unit so set its style property\n if (typeof value === 'string' && doesStringIncludeCssUnit(value)) {\n switch (dimension) {\n case 'h':\n styles = { height: value };\n break;\n case 'mw':\n styles = { maxWidth: value };\n break;\n case 'mh':\n styles = { maxHeight: value };\n break;\n case 'minw':\n styles = { minWidth: value };\n break;\n case 'minh':\n styles = { minHeight: value };\n break;\n default:\n styles = { width: value };\n }\n }\n return styles;\n}\n\nexport function getDimensionClasses(\n dimension: CssDimensionAbbreviation,\n value?: DimensionSize | ResponsiveProp<DimensionSize> | string\n): string[] | undefined {\n if (value === undefined) return value;\n\n const classes = [];\n if (\n (typeof value === 'string' && !doesStringIncludeCssUnit(value)) ||\n (typeof value === 'object' &&\n Object.values(value).every((v) => !doesStringIncludeCssUnit(v)))\n ) {\n classes.push(...generateResponsiveClasses(dimension, value));\n }\n\n return classes;\n}\n/**\n * Returns an object of styles and class names that correspond with the given value\n * @param {CssDimensionAbbreviation} dimension width or height\n * @param {string} [value] value of the dimension\n */\nexport function getDimensionCss(\n dimension: CssDimensionAbbreviation,\n value?: DimensionSize | ResponsiveProp<DimensionSize> | string\n): StylesAndClasses<CSSProperties> {\n return {\n styles: getDimensionStyles(dimension, value),\n classes: getDimensionClasses(dimension, value),\n };\n}\n","import React from 'react';\n/**\n * Returns a createElement() type based on the props of the Component.\n * Useful for calculating what type a component should render as.\n *\n * @param {function} Component A function or ReactClass.\n * @param {object} props A ReactElement props object\n * @param {function} [getDefault] A function that returns a default element type.\n * @returns {string} A ReactElement type\n */\nexport function getElementType( // eslint-disable-line import/prefer-default-export\n Component: React.Component | React.FC,\n props: { [key: string]: unknown },\n getDefault?: () => string\n): string {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const { defaultProps = {} } = Component;\n\n // ----------------------------------------\n // user defined \"as\" element type\n\n if (props.as && props.as !== defaultProps.as) return props.as as string;\n\n // ----------------------------------------\n // computed default element type\n\n if (getDefault) {\n const computedDefault = getDefault();\n if (computedDefault) return computedDefault;\n }\n\n // ----------------------------------------\n // infer anchor links\n\n if (props.href) return 'a';\n\n // ----------------------------------------\n // use defaultProp or 'div'\n\n return defaultProps.as || 'div';\n}\n","import * as CSS from 'csstype';\n\nimport {\n BaseSpacing,\n BorderRadiusSize,\n BorderSize,\n BoxShadowSize,\n // BaseColor,\n BreakpointSizeWithBase,\n CssAlignContentValue,\n CssAlignItemsValue,\n CssDisplayValue,\n CssFlexDirectionValue,\n CssFlexValue,\n CssJustifyContentValue,\n CssOverflowValue,\n CssTextAlignValue,\n DimensionSize,\n FontColor,\n FontFamily,\n FontSize,\n FontWeight,\n ResponsiveProp,\n SpacingSize,\n ZIndexSize,\n BackgroundColor,\n BorderColor,\n} from '../../types';\nimport {\n CSSProperties,\n Children,\n FC,\n ReactElement,\n ReactNode,\n cloneElement,\n createElement,\n forwardRef,\n} from 'react';\n\nimport { KnownKeys } from '../../types/lib.types';\nimport classNames from 'classnames';\nimport { cssShorthandToClasses } from '../../lib/cssShorthandToClasses';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { getDimensionCss } from '../../lib/getDimensionCss';\nimport { getElementType } from '../../lib/getElementType';\nimport styles from './Box.module.scss';\n\nexport type HoverableBoxProperties =\n | 'color'\n | 'borderColor'\n | 'shadow'\n | 'background';\nexport interface BoxProps {\n /**\n * The element type to be rendered.\n */\n as?: string;\n /**\n * How to align the contents along the cross axis.\n */\n alignItems?: CssAlignItemsValue | ResponsiveProp<CssAlignItemsValue>;\n /**\n * How to align the contents when there is extra space in the cross axis.\n * This property has no effect when there is only one line of flex items.\n */\n alignContent?: CssAlignContentValue | ResponsiveProp<CssAlignContentValue>;\n /**\n * How to align along the cross axis when contained in a Box.\n * This allows the default alignment (or the one specified by `align`) to be overridden for the individual Box.\n */\n alignSelf?: CssAlignItemsValue | ResponsiveProp<CssAlignItemsValue>;\n /**\n * Any valid background color token, or a `url()` for an image\n */\n background?: BackgroundColor;\n /**\n * Any valid border color token\n */\n borderColor?: BorderColor;\n /**\n * Width of the Box's border\n * Can be a single [border width token](/?path=/docs/foundation-design-tokens--docs#border-width).\n * Can also be a string of [border width tokens](/?path=/docs/foundation-design-tokens--docs#border-width)\n * that models itself after the css shorthand property,\n * where you can set the border width on all four sides of an element.\n * e.g: \"0 sm xs 0\" --> top: 0, right: sm, bottom: xs, left: 0;\n */\n borderWidth?: BorderSize | string | ResponsiveProp<BorderSize | string>;\n /**\n * Additional class names to add\n */\n className?: string;\n /**\n * The amount of spacing (implemented as margin) between child elements.\n * Can be a single [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing).\n * NOTE: this prop is incompatible with reverse flex direction values (row-reverse, column-reverse).\n * For grid and flex layouts, use 'gap' instead.\n */\n childGap?: SpacingSize | ResponsiveProp<SpacingSize>;\n /**\n * The box's contents\n */\n children?: ReactNode;\n /**\n * A color token identifier to use for the text color.\n */\n color?: FontColor;\n /**\n * Sets the gaps (gutters) between columns.\n */\n columnGap?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * Cursor style. Use any standard CSS value.\n */\n cursor?: CSS.Property.Cursor;\n /**\n * Sets how flex items are placed inside the Box, defining the main axis and the direction\n * NOTE: reverse directions are incompatible with the `childGap` prop.\n */\n direction?: CssFlexDirectionValue | ResponsiveProp<CssFlexDirectionValue>;\n /**\n * Display property. Only select values supported.\n */\n display?: CssDisplayValue | ResponsiveProp<CssDisplayValue>;\n /**\n * Can be used as shorthand for the flexbox css properties `flex-grow`, `flex-shrink`, `flex-basis`\n */\n flex?: CssFlexValue | ResponsiveProp<CssFlexValue>;\n /**\n * Pass style modifiers for focus states. The following properties can be modified on focus.\n * `* background`\n * `* borderColor`\n * `* borderWidth`\n * `* color`\n * `* shadow`\n */\n focus?: {\n background?: BoxProps['background'];\n borderColor?: BoxProps['borderColor'];\n borderWidth?: BoxProps['borderWidth'];\n color?: BoxProps['color'];\n shadow?: BoxProps['shadow'];\n };\n /**\n * The [font family token](/?path=/docs/foundation-design-tokens--docs#font-family) identifier for the Box's text\n */\n fontFamily?: FontFamily | ResponsiveProp<FontFamily>;\n /**\n * The [font size token](/?path=/docs/foundation-design-tokens--docs#font-size) identifier for the Box's text\n */\n fontSize?: FontSize | ResponsiveProp<FontSize>;\n /**\n * The [font weight token](/?path=/docs/design-tokens-design-tokens--page#font-weight) identifier for the Box's text\n */\n fontWeight?: FontWeight | ResponsiveProp<FontWeight>;\n /**\n * The height of the element. Can be given a standard css value (px, rem, em, %),\n * or a [height token](/?path=/docs/foundation-design-tokens--docs#height)\n */\n height?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * Pass style modifiers for hover states. The following properties can be modified on hover:\n * `* background`\n * `* borderColor`\n * `* borderWidth`\n * `* color`\n * `* fontSize`\n * `* shadow`\n */\n hover?: {\n background?: BoxProps['background'];\n borderColor?: BoxProps['borderColor'];\n borderWidth?: BoxProps['borderWidth'];\n color?: BoxProps['color'];\n fontSize?: BoxProps['fontSize'];\n shadow?: BoxProps['shadow'];\n };\n /**\n * Sets the gaps (gutters) between rows and columns.\n */\n gap?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * How space between and around content items is distributed along the main-axis a flex Box\n */\n justifyContent?:\n | CssJustifyContentValue\n | ResponsiveProp<CssJustifyContentValue>;\n /**\n * Amount of space around the element.\n * Can be a single [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing).\n * Can also be a string of [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing)\n * that models itself after the css shorthand property,\n * where you can set the margin area on all four sides of an element. It is shorthand for top, right, bottom, left.\n */\n margin?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * The maximum height of the element. Can be given a standard css value (px, rem, em, %),\n * or a [height token](/?path=/docs/foundation-design-tokens--docs#height)\n */\n maxHeight?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * The minimum height of the element. Can be given a standard css value (px, rem, em, %),\n * or a [height token](/?path=/docs/foundation-design-tokens--docs#height)\n */\n minHeight?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * The maximum width of the element. Can be given a standard css value (px, rem, em, %),\n * or a [width token](/?path=/docs/foundation-design-tokens--docs#width)\n */\n maxWidth?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * The minimum width of the element. Can be given a standard css value (px, rem, em, %),\n * or a [width token](/?path=/docs/foundation-design-tokens--docs#width)\n */\n minWidth?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * The css overflow behavior of the Box\n */\n overflow?: CssOverflowValue | ResponsiveProp<CssOverflowValue>;\n /**\n * Amount of space within the element around the Box contents.\n * Can be a single [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing).\n * Can also be a string of [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing)\n * that models itself after the css shorthand property,\n * where you can set the margin area on all four sides of an element. It is shorthand for top, right, bottom, left.\n */\n padding?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * CSS position property.\n */\n position?: CSS.Property.Position | ResponsiveProp<CSS.Property.Position>;\n /**\n * Set the radius of all corners\n */\n radius?: BorderRadiusSize | ResponsiveProp<BorderRadiusSize>;\n /**\n * Sets the gaps (gutters) between rows.\n */\n rowGap?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * The size of the drop shadow applied to the Box\n */\n shadow?: BoxShadowSize | ResponsiveProp<BoxShadowSize>;\n /**\n * CSS Style object\n */\n style?: CSSProperties;\n /**\n * the alignment of the text\n */\n textAlign?: CssTextAlignValue | ResponsiveProp<CssTextAlignValue>;\n /**\n * By default, a Box's items will all try to fit onto one line.\n * Change that and allow the items to wrap as needed wrap\n */\n wrap?: boolean | ResponsiveProp<boolean>;\n /**\n * The width of the element. Can be given a standard css value (px, rem, em, %),\n * or a [width token](/?path=/docs/foundation-design-tokens--docs#width)\n */\n width?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * ZIndex value for the element. Can be one of the predetermined token values.\n * Can be responsive.\n */\n zIndex?: ZIndexSize | ResponsiveProp<ZIndexSize>;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\n/**\n * A `<Box>` is a layout component to build UIs with consistent padding and spacing between\n * elements.\n */\nexport const Box: FC<BoxProps> = forwardRef(\n (\n {\n as = 'div',\n alignItems = undefined,\n alignContent = undefined,\n alignSelf = undefined,\n background = undefined,\n borderColor = undefined,\n borderWidth = undefined,\n children = undefined,\n childGap = undefined,\n className = '',\n color = undefined,\n columnGap = undefined,\n cursor = undefined,\n display = 'flex',\n direction = 'column',\n flex = undefined,\n fontFamily = undefined,\n fontSize = 'inherit',\n focus = undefined,\n fontWeight = undefined,\n gap = undefined,\n height = undefined,\n hover = undefined,\n justifyContent = undefined,\n margin = undefined,\n maxHeight = undefined,\n minHeight = undefined,\n maxWidth = undefined,\n minWidth = undefined,\n overflow = undefined,\n padding = undefined,\n position = undefined,\n radius = undefined,\n rowGap = undefined,\n shadow = undefined,\n style = {},\n textAlign = undefined,\n wrap = undefined,\n width = undefined,\n zIndex = undefined,\n ...restProps\n },\n ref\n ) => {\n const heightCss = getDimensionCss('h', height);\n const widthCss = getDimensionCss('w', width);\n const maxHeightCss = getDimensionCss('mh', maxHeight);\n const maxWidthCss = getDimensionCss('mw', maxWidth);\n const minHeightCss = getDimensionCss('minh', minHeight);\n const minWidthCss = getDimensionCss('minw', minWidth);\n\n const isFlexBox = typeof display === 'string' && display.includes('flex');\n const flexDirectionClasses = isFlexBox\n ? generateResponsiveClasses('flex-direction', direction)\n : null;\n\n const cssPropertyMap: {\n [key: string]: {\n classPrefix: string;\n transformer:\n | typeof generateResponsiveClasses\n | typeof cssShorthandToClasses;\n };\n } = {\n color: {\n classPrefix: 'font-color',\n transformer: generateResponsiveClasses,\n },\n background: {\n classPrefix: 'background-color',\n transformer: generateResponsiveClasses,\n },\n borderColor: {\n classPrefix: 'border-color',\n transformer: generateResponsiveClasses,\n },\n borderWidth: {\n classPrefix: 'border-width',\n transformer: cssShorthandToClasses,\n },\n shadow: { classPrefix: 'shadow', transformer: generateResponsiveClasses },\n fontSize: {\n classPrefix: 'font-size',\n transformer: generateResponsiveClasses,\n },\n };\n\n const getStatefulClasses = (\n stateKey: 'hover' | 'focus',\n values: BoxProps['hover' | 'hover']\n ) =>\n values // eslint-disable-line\n ? Object.entries(values).map(\n ([key, value]) =>\n cssPropertyMap[key].transformer(\n `${stateKey}:${\n cssPropertyMap[key as keyof BoxProps['focus' | 'hover']]\n .classPrefix\n }`,\n value\n ) // eslint-disable-line max-len\n )\n : undefined;\n\n const hoverClasses = getStatefulClasses('hover', hover);\n const focusClasses = getStatefulClasses('focus', focus);\n\n const boxClasses = classNames(\n className,\n cssShorthandToClasses('m', margin),\n cssShorthandToClasses('p', padding),\n cssShorthandToClasses('br', radius),\n cssShorthandToClasses('g', gap),\n cssShorthandToClasses('cg', columnGap),\n cssShorthandToClasses('rg', rowGap),\n heightCss.classes,\n maxHeightCss.classes,\n minHeightCss.classes,\n maxWidthCss.classes,\n minWidthCss.classes,\n widthCss.classes,\n flexDirectionClasses,\n generateResponsiveClasses('display', display),\n generateResponsiveClasses('justify-content', justifyContent),\n generateResponsiveClasses('align-items', alignItems),\n generateResponsiveClasses('align-content', alignContent),\n generateResponsiveClasses('align-self', alignSelf),\n generateResponsiveClasses('font-family', fontFamily),\n generateResponsiveClasses('font-size', fontSize),\n generateResponsiveClasses('overflow', overflow),\n generateResponsiveClasses('shadow', shadow),\n generateResponsiveClasses('flex', flex),\n cssShorthandToClasses('bw', borderWidth),\n generateResponsiveClasses('font-weight', fontWeight),\n generateResponsiveClasses('text-align', textAlign),\n generateResponsiveClasses('position', position),\n generateResponsiveClasses('z-index', zIndex),\n ...(hoverClasses ?? []),\n ...(focusClasses ?? []),\n {\n 'flex-wrap': isFlexBox && wrap,\n 'flex-nowrap': isFlexBox && wrap === false,\n [`background-color-${background}`]: background,\n [`font-color-${color}`]: color,\n [`border-color-${borderColor}`]: borderColor,\n [`cursor-${cursor}`]: cursor,\n [styles['box-transition']]: hover || focus,\n }\n );\n\n const boxStyles = {\n ...style,\n ...heightCss.styles,\n ...maxHeightCss.styles,\n ...maxWidthCss.styles,\n ...widthCss.styles,\n ...minHeightCss.styles,\n ...minWidthCss.styles,\n };\n\n /**\n * Creates an object that maps the flex direction to either `right` or `bottom`\n * so a margin can be applied to that side.\n */\n const generateChildGapDirection = (): ResponsiveProp<string> => {\n let childGapDirection = {};\n\n const getChildGapMarginDirection = (d: CssFlexDirectionValue) => {\n let marginDirection = '';\n if (d?.includes('row')) marginDirection = 'right';\n else if (d?.includes('column')) marginDirection = 'bottom';\n\n return marginDirection;\n };\n\n if (typeof direction === 'string') {\n childGapDirection = { base: getChildGapMarginDirection(direction) };\n } else if (typeof direction === 'object' && direction !== null) {\n childGapDirection = Object.keys(direction).reduce(\n (acc, curr) => ({\n ...acc,\n [curr]: getChildGapMarginDirection(\n direction[curr as BreakpointSizeWithBase]\n ),\n }),\n {}\n );\n }\n\n return childGapDirection;\n };\n\n /**\n * Shapes the childGap prop into a ResponsiveSpacing object\n * so that we can cross-reference values between direction and childGap values to generate\n * responsive classes.\n */\n const generateChildGap = (): ResponsiveProp<SpacingSize> => {\n let childGapObj = {};\n\n if (typeof childGap === 'string') {\n childGapObj = { base: childGap };\n } else if (typeof childGap === 'object' && childGap !== null) {\n childGapObj = { ...childGap };\n }\n\n return childGapObj;\n };\n\n const childGapClasses: string[] = [];\n\n if (childGap && direction) {\n const childGapDirection = generateChildGapDirection();\n const childGapValues = generateChildGap();\n const breakpoints: BreakpointSizeWithBase[] = [\n 'hd',\n 'desktop',\n 'tablet',\n 'base',\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const findMatchingBreakpoint = (\n responsiveObj: ResponsiveProp<any>,\n key: BreakpointSizeWithBase\n ): string => {\n const index = breakpoints.findIndex((breakpoint) => breakpoint === key);\n let value = '';\n\n value = responsiveObj[key];\n\n if (!value)\n return findMatchingBreakpoint(responsiveObj, breakpoints[index + 1]);\n\n return value;\n };\n\n breakpoints.forEach((breakpoint) => {\n const foundDirection = findMatchingBreakpoint(\n childGapDirection,\n breakpoint as BreakpointSizeWithBase\n );\n const foundChildGap = findMatchingBreakpoint(\n childGapValues,\n breakpoint as BreakpointSizeWithBase\n );\n\n const classSuffix = breakpoint === 'base' ? '' : `-${breakpoint}`;\n const oppositeDirection =\n foundDirection === 'bottom' ? 'right' : 'bottom';\n\n childGapClasses.push(\n `m-${foundDirection}-${foundChildGap}${classSuffix}`\n );\n childGapClasses.push(`m-${oppositeDirection}-0${classSuffix}`);\n });\n }\n\n /**\n * Shallow merges existing classes of child node with a className based on the childGap value.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const decorateChildren = (\n child: string | number | ReactElement<any>,\n i: number,\n array: ReactElement<any>[]\n ) => {\n if (\n i === array.length - 1 ||\n !child ||\n typeof child === 'string' ||\n typeof child === 'number'\n ) {\n return child; // Not gap if child is last element or if the children are strings or numbers.\n }\n\n const childClasses = classNames(child.props.className, [\n ...Array.from(new Set(childGapClasses)),\n ]);\n\n return cloneElement(child, {\n className: childClasses,\n key: child.key ?? i,\n });\n };\n\n let decoratedChildren = Children.toArray(children).filter(\n (child) => child !== null\n );\n\n if (childGapClasses && decoratedChildren.length > 1) {\n decoratedChildren = decoratedChildren.map((value, index, array) =>\n decorateChildren(\n value as string | number | ReactElement<any>, // eslint-disable-line @typescript-eslint/no-explicit-any\n index,\n array as ReactElement<any>[] // eslint-disable-line @typescript-eslint/no-explicit-any\n )\n );\n }\n\n const element = getElementType(Box, { as });\n\n return createElement(\n element,\n {\n className: boxClasses,\n style: boxStyles,\n ref,\n ...restProps,\n },\n children !== null && children !== undefined ? decoratedChildren : null\n );\n }\n);\n\nexport const boxPropsKeys: (keyof Pick<BoxProps, KnownKeys<BoxProps>>)[] = [\n 'as',\n 'alignItems',\n 'alignContent',\n 'alignSelf',\n 'background',\n 'borderColor',\n 'borderWidth',\n 'className',\n 'childGap',\n 'children',\n 'color',\n 'columnGap',\n 'cursor',\n 'direction',\n 'display',\n 'flex',\n 'focus',\n 'fontFamily',\n 'fontSize',\n 'fontWeight',\n 'gap',\n 'height',\n 'hover',\n 'justifyContent',\n 'margin',\n 'maxHeight',\n 'minHeight',\n 'maxWidth',\n 'minWidth',\n 'overflow',\n 'padding',\n 'position',\n 'radius',\n 'rowGap',\n 'shadow',\n 'style',\n 'textAlign',\n 'wrap',\n 'width',\n 'zIndex',\n];\n","import { FontColor, FontSize, IconName, ResponsiveProp } from '../../types';\nimport React, { FC, forwardRef } from 'react';\n\nimport { Box } from '../Box/Box';\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport icons from '@hyphen/hyphen-design-tokens/build/assets/icons/react';\n\nexport interface IconProps {\n className?: string;\n /**\n * A color token identifier to use for the text color.\n */\n color?: FontColor | ResponsiveProp<FontColor>;\n /**\n * A [font size token](/?path=/docs/design-tokens-design-tokens--page#font-size) identifier\n */\n size?: FontSize | ResponsiveProp<FontSize>;\n /**\n * Name of the icon\n */\n name: IconName;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const Icon: FC<IconProps> = forwardRef<SVGSVGElement, IconProps>(\n ({ className = undefined, name, color, size, ...restProps }, ref) => {\n const IconComponent = icons[name];\n\n if (!IconComponent) console.error(`Icon '${name}' not found`); // eslint-disable-line no-console\n\n const iconClasses = classNames(\n className,\n generateResponsiveClasses('font-color', color),\n generateResponsiveClasses('font-size', size)\n );\n\n return IconComponent ? (\n <IconComponent\n className={iconClasses || null}\n ref={ref}\n data-testid={`icon-testid--${name}`}\n {...restProps}\n />\n ) : (\n <Box\n fontWeight=\"bold\"\n background=\"error\"\n color=\"white\"\n padding=\"2xs\"\n fontSize=\"sm\"\n display=\"inline\"\n >\n ???\n </Box>\n );\n }\n);\n","import { IconName } from '../../types';\nimport { AlertVariant } from './Alert.types';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const ALERT_VARIANTS: AlertVariant[] = [\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'default',\n];\n\nexport const ALERT_ICONS_MAP: { [key in AlertVariant]: { icon: IconName } } = {\n default: { icon: 'c-warning' },\n info: { icon: 'c-info' },\n success: { icon: 'c-check' },\n warning: { icon: 't-warning' },\n danger: { icon: 'c-remove' },\n};\n","import React, { FC, ReactNode, MouseEvent, KeyboardEvent } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../Box/Box';\nimport { Icon } from '../Icon/Icon';\nimport styles from './Alert.module.scss';\nimport { AlertVariant } from './Alert.types';\nimport { ALERT_ICONS_MAP } from './Alert.constants';\n\nexport interface AlertProps {\n /**\n * Custom class to apply to the alert.\n */\n className?: string;\n /**\n * Custom text to use as a close button.\n */\n closeText?: string;\n /**\n * Whether the alert as an icon that corresponds to its variant (Success, warning, etc.).\n */\n hasIcon?: boolean;\n /**\n * Whether the alert can be closed by the user. If `true` it will render\n * the 'close' icon on the right hand side of the alert.\n */\n isClosable?: boolean;\n /**\n * Renders a version of the alert with smaller padding.\n */\n isCompact?: boolean;\n /**\n * The text message or ReactNode to be rendered in the alert.\n */\n message?: string | ReactNode;\n /**\n * Whether the alert can be closed by the user. If `true` it will render\n * the 'close' icon on the right hand side of the alert.\n */\n onClose?: (\n event: MouseEvent<HTMLOrSVGElement> | KeyboardEvent<HTMLSpanElement>\n ) => void;\n /**\n * A render function that returns JSX if preferred over a static ReactNode or string.\n */\n render?: () => ReactNode;\n /**\n * The title for the alert.\n */\n title?: string;\n /**\n * The type/color of the alert to show.\n */\n variant?: AlertVariant;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\nexport const Alert: FC<AlertProps> = ({\n className = '',\n closeText = '',\n hasIcon = false,\n isCompact = false,\n isClosable = false,\n message = '',\n onClose = undefined,\n render = undefined,\n title = '',\n variant = 'default',\n ...restProps\n}) => {\n const handleClose = (\n event: MouseEvent<HTMLOrSVGElement> | KeyboardEvent<HTMLSpanElement>\n ): void => {\n if (!onClose) return;\n\n onClose(event);\n };\n\n const renderAlertIcon = (): ReactNode => (\n <Box fontSize=\"md\" className={styles[`alert__icon__${variant}`]}>\n <Icon\n name={ALERT_ICONS_MAP[variant].icon}\n data-testid={`alert-icon-${variant}-test-id`}\n />\n </Box>\n );\n\n const renderCloseIcon = (): ReactNode => {\n const handleCloseKeyPress = (\n event: KeyboardEvent<HTMLSpanElement>\n ): void => {\n if (event.keyCode === 13) handleClose(event);\n };\n\n return (\n <Box\n margin=\"0 0 0 auto\"\n color=\"secondary\"\n className={styles['close-icon']}\n >\n <button\n type=\"button\"\n onClick={handleClose}\n onKeyUp={handleCloseKeyPress}\n >\n {closeText || (\n <Icon name=\"remove\" data-testid=\"alert-close-icon-test-id\" />\n )}\n </button>\n </Box>\n );\n };\n\n const alertContainerClasses: string = classNames(\n styles[`alert__${variant}`],\n styles.alert,\n className\n );\n\n return (\n <Box\n alignItems=\"flex-start\"\n gap=\"md\"\n className={alertContainerClasses}\n direction=\"row\"\n padding={isCompact ? 'xs' : 'md'}\n radius=\"md\"\n role=\"alert\"\n fontSize=\"sm\"\n {...restProps}\n >\n {hasIcon && renderAlertIcon()}\n <div>\n {render ? (\n render()\n ) : (\n <Box display=\"block\" childGap={message && title ? '2xs' : undefined}>\n {title && (\n <Box\n as=\"h4\"\n fontSize=\"sm\"\n fontWeight=\"semibold\"\n className={styles['alert-heading']}\n >\n {title}\n </Box>\n )}\n {message &&\n (typeof message === 'string' ? <p>{message}</p> : message)}\n </Box>\n )}\n </div>\n {isClosable && renderCloseIcon()}\n </Box>\n );\n};\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { FontSize, BaseSpacing, ResponsiveProp } from '../../types';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport styles from './Badge.module.scss';\nimport { Box } from '../Box/Box';\n\nexport type BadgeSize = 'sm' | 'md' | 'lg';\n\nexport type BadgeVariant =\n | 'light-grey'\n | 'dark-grey'\n | 'inverse'\n | 'green'\n | 'yellow'\n | 'blue'\n | 'red'\n | 'purple'\n | 'hyphen';\n\nexport type BadgeSizeAttributes = { fontSize: FontSize; padding: BaseSpacing };\nexport interface BadgeProps {\n /**\n * Custom class to apply to the badge container div.\n */\n className?: string;\n /**\n * The text message or ReactNode to be rendered in the badge.\n */\n message?: string | ReactNode;\n /**\n * The size of the button.\n */\n size?: BadgeSize | ResponsiveProp<BadgeSize>;\n /**\n * The type/color of the badge to show.\n */\n variant?: BadgeVariant;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const Badge: FC<BadgeProps> = ({\n className = '',\n message = '',\n variant = 'light-grey',\n size = 'md',\n ...restProps\n}) => {\n const responsiveClasses = generateResponsiveClasses('size', size).map(\n (c) => styles[c]\n );\n\n const badgeClasses: string = classNames(\n styles.badge,\n className,\n responsiveClasses,\n {\n [styles[variant]]: variant,\n }\n );\n\n return (\n <Box className={badgeClasses} display=\"inline-block\" {...restProps}>\n {message}\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport classNames from 'classnames';\nimport styles from './Spinner.module.scss';\n\nexport interface SpinnerProps {\n /**\n * Custom className to be applied to spinner container div element.\n */\n className?: string;\n /**\n * Size of the spinner.\n */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nexport const Spinner: FC<SpinnerProps> = ({ className, size = 'md' }) => {\n const classes = classNames(className, styles.spinner);\n\n const sizeInPixels = () => {\n let pixels;\n if (size === 'sm') pixels = '12';\n if (size === 'md') pixels = '16';\n if (size === 'lg') pixels = '24';\n if (size === 'xl') pixels = '30';\n\n return pixels;\n };\n\n return (\n <span className={classes}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={sizeInPixels()}\n height={sizeInPixels()}\n viewBox=\"0 0 16 16\"\n data-testid=\"spinner-testid\"\n >\n <g fill=\"currentColor\">\n <rect\n fill=\"currentColor\"\n height=\"2\"\n rx=\".5\"\n width=\"4\"\n x=\"12\"\n y=\"7\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"4.001\"\n rx=\".5\"\n width=\"1.999\"\n opacity=\".4\"\n x=\"11.243\"\n y=\"10.242\"\n transform=\"rotate(-44.975 12.243 12.243)\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"4\"\n rx=\".5\"\n width=\"2\"\n opacity=\".4\"\n x=\"7\"\n y=\"12\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"1.999\"\n rx=\".5\"\n width=\"4.001\"\n opacity=\".4\"\n x=\"1.757\"\n y=\"11.243\"\n transform=\"rotate(-45.03 3.757 12.242)\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"2\"\n rx=\".5\"\n width=\"4\"\n opacity=\".4\"\n y=\"7\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"4.001\"\n rx=\".5\"\n width=\"1.999\"\n opacity=\".4\"\n x=\"2.758\"\n y=\"1.757\"\n transform=\"rotate(-44.975 3.757 3.757)\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"4\"\n rx=\".5\"\n width=\"2\"\n opacity=\".6\"\n x=\"7\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"1.999\"\n rx=\".5\"\n width=\"4.001\"\n opacity=\".8\"\n x=\"10.242\"\n y=\"2.758\"\n transform=\"rotate(-45.03 12.242 3.757)\"\n ></rect>\n </g>\n </svg>\n </span>\n );\n};\n","import { MouseEvent, AnchorHTMLAttributes } from 'react';\n\nexport const isModifiedEvent = (\n e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n): boolean => !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);\n\n/**\n * Due to react-router's handling of custom components used in RR <Link>\n * we must add this validation that ensures the router will execute the passed `navigate`\n * prop, thus navigating the user without triggering a refresh.\n *\n * SOURCES:\n * https://github.com/ReactTraining/react-router/issues/7727\n * https://github.com/ReactTraining/react-router/issues/7761\n * */\n// eslint-disable-next-line import/prefer-default-export\nexport const handleReactRouterClick = (\n event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n onClick:\n | ((e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void)\n | undefined,\n target: AnchorHTMLAttributes<HTMLAnchorElement>['target'] | undefined,\n navigate: (() => void) | undefined\n): void => {\n if (onClick) onClick(event);\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) && // ignore clicks with modifier keys\n navigate\n ) {\n event.preventDefault();\n navigate();\n }\n};\n","import { IconName, ResponsiveProp } from '../../types';\nimport React, {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n FocusEvent,\n MouseEvent,\n ReactNode,\n createElement,\n forwardRef,\n} from 'react';\n\nimport { Box } from '../Box/Box';\nimport { Icon } from '../Icon/Icon';\nimport { Spinner } from '../Spinner/Spinner';\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { getElementType } from '../../lib/getElementType';\nimport { handleReactRouterClick } from '../../lib/reactRouterClickHandler';\nimport styles from './Button.module.scss';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'danger';\n\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n\nexport interface BaseButtonProps {\n /**\n * Contents of the button.\n */\n children?: ReactNode;\n /**\n * Additional ClassNames to add to button.\n */\n className?: string;\n /**\n * Button takes up the full width of its parent container.\n */\n fullWidth?: boolean;\n /**\n * Name of the icon to include before the button text\n */\n iconPrefix?: IconName;\n /**\n * Name of the icon to include after the button text\n */\n iconSuffix?: IconName;\n /**\n * A unique identifier for the button.\n */\n id?: string;\n /**\n * URL to navigate to when clicked. Passing this attribute automatically\n * renders an anchor <a> tag, NOT a <button> element.\n */\n href?: string;\n /**\n * Disables the button, making it inoperable.\n */\n isDisabled?: boolean;\n /**\n * Replaces the button text with a loading indicator and disables the button.\n */\n isLoading?: boolean;\n /**\n * Prop reserved for when component is wrapped by `<Link>` from react-router.\n */\n navigate?: () => void;\n /**\n * Callback when Button is pressed.\n */\n onClick?: (event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /**\n * Callback when focus leaves Button.\n */\n onBlur?: (event: FocusEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /**\n * Callback when Button receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /**\n * Specify the tabIndex of the button.\n */\n tabIndex?: number;\n /**\n * Useful when using button as an anchor tag.\n */\n target?: AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * The size of the button.\n */\n size?: ButtonSize | ResponsiveProp<ButtonSize>;\n /**\n * The color variant of the button\n */\n variant?: ButtonVariant;\n /**\n * ref - currently cannot be typed due to limitations of using the `as` prop\n */\n}\n\nexport type AnchorButtonProps = { as: 'a' } & BaseButtonProps &\n Omit<\n React.DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n >,\n 'ref'\n >;\n\nexport type NormalButtonProps = { as?: 'button' } & BaseButtonProps &\n Omit<\n React.DetailedHTMLProps<\n ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >,\n 'ref'\n >;\n\nexport type ButtonProps = NormalButtonProps | AnchorButtonProps;\n\nexport const Button = forwardRef<\n HTMLAnchorElement | HTMLButtonElement,\n ButtonProps\n>(\n (\n {\n children = undefined,\n as = 'button',\n className = '',\n fullWidth = false,\n id = undefined,\n href = undefined,\n iconPrefix = undefined,\n iconSuffix = undefined,\n isDisabled = false,\n isLoading = false,\n navigate = undefined,\n onClick = undefined,\n onFocus = undefined,\n onBlur = undefined,\n tabIndex = undefined,\n target = undefined,\n type = undefined,\n size = 'md',\n variant = 'primary',\n ...restProps\n },\n ref\n ) => {\n const disabled = isLoading || isDisabled;\n\n const responsiveClasses = generateResponsiveClasses('size', size).map(\n (c) => styles[c]\n );\n\n const buttonClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles.button,\n className,\n responsiveClasses,\n {\n [styles.loading]: isLoading,\n [styles[variant]]: variant,\n [styles['full-width']]: fullWidth,\n }\n );\n\n const handleClick = handleReactRouterClick;\n\n const handleFocus = (\n event: FocusEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (onFocus) onFocus(event);\n };\n\n const handleBlur = (\n event: FocusEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (onBlur) onBlur(event);\n };\n\n const buttonContent =\n iconPrefix || iconSuffix ? (\n <Box display=\"inline-flex\" direction=\"row\" alignItems=\"center\" gap=\"md\">\n {isLoading && <Spinner className={styles['spinner-wrapper']} />}\n {iconPrefix && (\n <Icon\n className={styles.label}\n name={iconPrefix}\n aria-hidden=\"true\"\n focusable=\"false\"\n data-testid=\"prefixIcon\"\n size={size === 'md' ? 'sm' : size}\n />\n )}\n {children && <span className={styles.label}>{children}</span>}\n {iconSuffix && (\n <Icon\n className={styles.label}\n name={iconSuffix}\n aria-hidden=\"true\"\n focusable=\"false\"\n data-testid=\"suffixIcon\"\n size={size === 'md' ? 'sm' : size}\n />\n )}\n </Box>\n ) : (\n <>\n {isLoading && <Spinner className={styles['spinner-wrapper']} />}\n {(() => {\n if (children) {\n return <span className={styles.label}>{children}</span>;\n }\n return null;\n })()}\n </>\n );\n\n const buttonElement = getElementType(Button, { as });\n\n return createElement(\n buttonElement,\n {\n id,\n href,\n className: buttonClasses,\n disabled,\n target: as === 'a' && href ? target : null,\n onBlur: handleBlur,\n onClick: (event: MouseEvent<HTMLAnchorElement | HTMLButtonElement>) =>\n handleClick(event, onClick, target, navigate),\n onFocus: handleFocus,\n ref,\n type: type || (as !== 'a' && !href ? 'button' : undefined),\n tabIndex,\n ...restProps,\n },\n buttonContent\n );\n }\n);\n","import { Box, BoxProps } from '../../../Box/Box';\nimport React, { FC, ReactNode } from 'react';\nexport interface CardFooterProps extends BoxProps {\n /**\n * Contents of the Footer.\n */\n children?: ReactNode;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const CardFooter: FC<CardFooterProps> = ({\n background = 'secondary',\n borderColor = 'subtle',\n borderWidth = 'xs 0 0 0',\n children = null,\n display = 'block',\n padding = '2xl',\n ...restProps\n}) => {\n return (\n <Box\n display={display}\n padding={padding}\n background={background}\n borderColor={borderColor}\n borderWidth={borderWidth}\n {...restProps}\n >\n {children}\n </Box>\n );\n};\n","export type HEADING_LEVELS_TYPE = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nexport const HEADING_LEVELS: HEADING_LEVELS_TYPE[] = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n]; // eslint-disable-line import/prefer-default-export\n\nexport const HEADING_DEFAULT_SIZE_MAP = {\n h1: '3xl',\n h2: '2xl',\n h3: 'xl',\n h4: 'lg',\n h5: 'md',\n h6: 'sm',\n};\n","import { FC, ReactNode, createElement } from 'react';\nimport { FontColor, HeadingSize, ResponsiveProp } from '../../types';\nimport {\n HEADING_DEFAULT_SIZE_MAP,\n HEADING_LEVELS_TYPE,\n} from './Heading.constants';\n\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { getElementType } from '../../lib/getElementType';\nimport styles from './Heading.module.scss';\n\nexport interface HeadingProps {\n /**\n * The DOM tag or react component to use for the element.\n * Select the appropriate semantic element (h1-h6).\n */\n as?: HEADING_LEVELS_TYPE;\n /**\n * Content of the heading. Can be a string or any valid DOM node.\n */\n children?: ReactNode;\n /**\n * Additional class names to add.\n */\n className?: string;\n /**\n * A variant token identifier to use for the text variant. Available variants found:\n * [here](https://github.com/hyphen/hyphen-design-tokens/blob/main/properties/color/font.json).\n */\n color?: FontColor;\n /**\n * By default, size is determined by the chosen tag (e.g. h1 is bigger than h2).\n * However, size can be set independently so that its size is appropriate for the surrounding content.\n * Available sizes found:\n * [here](https://github.com/hyphen/hyphen-design-tokens/blob/main/properties/size/font.json).\n */\n size?: HeadingSize | ResponsiveProp<HeadingSize>;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const Heading: FC<HeadingProps> = ({\n as = 'h4',\n children,\n className,\n color,\n size,\n ...restProps\n}) => {\n const element = getElementType(Heading, { as });\n\n const headingSize = size || HEADING_DEFAULT_SIZE_MAP[as];\n\n const classes = classNames(\n styles.heading,\n className,\n generateResponsiveClasses('heading', headingSize),\n {\n [`font-color-${color}`]: color,\n }\n );\n\n return createElement(element, { className: classes, ...restProps }, children);\n};\n","import React, { FC, ReactNode } from 'react';\nimport { Box, BoxProps } from '../../../Box/Box';\nimport { Heading } from '../../../Heading/Heading';\n\nexport interface CardHeaderProps extends BoxProps {\n /**\n * contents of the Header\n */\n children?: ReactNode;\n /**\n * Additional class names to add\n */\n className?: string;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const CardHeader: FC<CardHeaderProps> = ({\n childGap = '2xs',\n children = null,\n className = undefined,\n display = 'block',\n padding = '2xl',\n title = null,\n ...restProps\n}) => {\n const renderTitle = () =>\n typeof title === 'string' ? (\n <Heading size=\"sm\" as=\"h4\">\n {title}\n </Heading>\n ) : (\n title\n );\n\n return (\n <Box\n childGap={childGap}\n display={display}\n padding={padding}\n className={className}\n {...restProps}\n >\n {title && renderTitle()}\n {children}\n </Box>\n );\n};\n","import { Box, BoxProps } from '../../../Box/Box';\nimport React, { FC, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport styles from '../../Card.module.scss';\n\nexport interface CardSectionProps extends BoxProps {\n /**\n * Any valid background color token, or a `url()` for an image\n */\n background?: BoxProps['background'];\n /**\n * If defined as a prop, this value will take higher precedence than the corresponding component design token value\n * Any valid border color token\n * Or a responsive prop with borderColor for each breakpoint.\n */\n borderColor?: BoxProps['borderColor'];\n /**\n * If defined as a prop, this value will take higher precedence than the corresponding component design token value\n * Width of the section's border\n * Can be a single [border width token](/?path=/docs/foundation-design-tokens--docs#border-width).\n * Can also be a string of [border width tokens](/?path=/docs/foundation-design-tokens--docs#border-width)\n * that models itself after the css shorthand property,\n * where you can set the border width on all four sides of an element.\n * e.g: \"0 sm xs 0\" --> top: 0, right: sm, bottom: xs, left: 0;\n */\n borderWidth?: BoxProps['borderWidth'];\n /**\n * Contents of the Section.\n */\n children?: ReactNode;\n /**\n * Custom class to be applied to section container.\n */\n className?: string;\n /**\n * Visually subdued the appearance of the section.\n */\n subdued?: boolean;\n /**\n * Title for the section.\n */\n title?: ReactNode;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const CardSection: FC<CardSectionProps> = ({\n background = undefined,\n borderColor = undefined,\n borderWidth = undefined,\n children = null,\n childGap = undefined,\n gap = undefined,\n className = undefined,\n display = 'block',\n padding = '2xl',\n subdued = undefined,\n title = undefined,\n ...restProps\n}) => {\n const renderTitle =\n typeof title === 'string' ? (\n <Box className=\"m-bottom-md\">\n <Box as=\"h4\" fontWeight=\"bold\" fontSize=\"sm\" color=\"base\">\n {title}\n </Box>\n </Box>\n ) : (\n title\n );\n\n const sectionClasses = classNames(\n {\n [styles['card-section-border']]:\n borderColor === undefined && borderWidth === undefined,\n [styles['card-subdued']]: subdued,\n },\n className\n );\n\n return (\n <Box\n background={background}\n borderColor={borderColor}\n borderWidth={borderWidth}\n className={sectionClasses}\n display={display}\n padding={padding}\n {...restProps}\n >\n {renderTitle}\n <Box gap={gap} childGap={childGap}>\n {children}\n </Box>\n </Box>\n );\n};\n\nexport default CardSection;\n","import { Box, BoxProps } from '../Box/Box';\nimport { CardFooter, CardHeader, CardSection } from './components';\nimport React, { ReactNode } from 'react';\n\nexport interface CardProps extends BoxProps {\n /**\n * The Card's contents.\n */\n children?: ReactNode;\n}\n\nexport const CardBaseComponent: React.FC<CardProps> = React.forwardRef(\n (\n {\n children,\n subdued,\n overflow = 'hidden',\n display = 'block',\n width = '100',\n ...restProps\n },\n ref\n ) => {\n return (\n <Box\n background={subdued ? 'secondary' : 'primary'}\n borderWidth=\"sm\"\n borderColor=\"subtle\"\n overflow={overflow}\n display={display}\n ref={ref}\n shadow=\"2xs\"\n width={width}\n radius=\"lg\"\n {...restProps}\n >\n {children}\n </Box>\n );\n }\n);\n\nexport interface CardStatic {\n Header: typeof CardHeader;\n Section: typeof CardSection;\n Footer: typeof CardFooter;\n}\n\nexport type CardWithStaticComponents = typeof CardBaseComponent & CardStatic;\n\n// Actual component is wrapped in an IIFE for the export\n// To allow tree-shaking even with static properties (subcomponents in this case).\nexport const Card = (() => {\n const Card = CardBaseComponent as CardWithStaticComponents; // eslint-disable-line no-shadow\n\n Card.Header = CardHeader;\n Card.Section = CardSection;\n Card.Footer = CardFooter;\n\n return Card;\n})();\n","import React from 'react';\nimport { Box, BoxProps } from '../../Box/Box';\nimport { Icon } from '../../Icon/Icon';\nimport { FontColor } from '../../../types';\nimport { CheckboxProps } from './Checkbox'; // eslint-disable-line import/no-cycle\n\nexport interface CheckboxIconProps extends BoxProps {\n /**\n * Custom className to be applied to root node of component.\n */\n className?: string;\n /**\n * Whether the input is in an error state. The icon will visually change accordingly.\n */\n error?: CheckboxProps['error'];\n /**\n * The checkbox input \"checked\" attribute.\n */\n isChecked?: CheckboxProps['isChecked'];\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: CheckboxProps['isDisabled'];\n /**\n * Whether the checkbox is rendered in an indeterminate state.\n * NOTE: this change is only visual and it does not affect the checked or unchecked state of the checkbox.\n */\n isIndeterminate?: CheckboxProps['isIndeterminate'];\n}\n\nexport const CheckboxIcon: React.FC<CheckboxIconProps> = ({\n className = undefined,\n error = null,\n isChecked = false,\n isDisabled = false,\n isIndeterminate = false,\n ...restProps\n}) => {\n let color: FontColor = 'base';\n let name:\n | 'checkbox-btn'\n | 'checkbox-btn-checked'\n | 'checkbox-btn-indeterminate' = 'checkbox-btn';\n\n if (isChecked) name = 'checkbox-btn-checked';\n else name = 'checkbox-btn';\n\n if (isIndeterminate) name = 'checkbox-btn-indeterminate';\n\n if (isChecked && isDisabled) {\n color = 'disabled';\n } else if (isChecked && !isDisabled) {\n color = 'base';\n } else if (isDisabled) {\n color = 'disabled';\n }\n\n if (error) color = 'danger';\n if (isDisabled && error) color = 'danger-disabled';\n\n return (\n <Box\n className={className}\n display=\"inline-block\"\n color={color}\n {...restProps}\n >\n <Icon name={name} />\n </Box>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../../types';\nimport { generateResponsiveClasses } from '../../../lib/generateResponsiveClasses';\nimport { Box, BoxProps } from '../../Box/Box';\nimport { CheckboxIcon } from './CheckboxIcon'; // eslint-disable-line import/no-cycle\nimport styles from './Checkbox.module.scss';\n\ntype BaseSize = 'sm' | 'md' | 'lg';\nexport type CheckboxSize = BaseSize | ResponsiveProp<BaseSize>;\n\nexport interface CheckboxProps\n extends Omit<BoxProps, 'radius' | 'background' | 'as' | 'height'> {\n /**\n * The id attribute of the input.\n */\n id: string;\n /**\n * The checkbox input \"checked\" attribute.\n */\n isChecked: boolean;\n /**\n * Custom content to be displayed to right of checkbox.\n */\n label: string;\n /**\n * Callback function when input is changed.\n */\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Custom class to apply to the checkbox container.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: React.ReactNode;\n /**\n * id of the element that labels the Checkbox\n */\n labelledby?: string;\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * If the radio input should be hidden to make way for a custom checkbox.\n */\n isHidden?: boolean;\n /**\n * Whether the checkbox is rendered in an indeterminate state.\n * NOTE: this change is only visual and it does not affect the checked or unchecked state of the checkbox.\n */\n isIndeterminate?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Callback function when input is blurred.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function when input is focused.\n */\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * The size of the checkbox.\n */\n size?: CheckboxSize;\n /**\n * Value of the checkbox input element\n */\n value?: string | number;\n}\n\nexport const Checkbox: React.FC<CheckboxProps> = React.forwardRef(\n (\n {\n className = '',\n display = 'inline',\n id,\n isChecked,\n label,\n labelledby,\n onChange,\n error = false,\n isDisabled = false,\n isHidden = false,\n isIndeterminate = false,\n isRequired = false,\n onBlur = undefined,\n onFocus = undefined,\n size = 'md',\n value = undefined,\n ...restProps\n },\n ref\n ) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n if (inputRef?.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\n if (onBlur) onBlur(event);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n onChange(event);\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>): void => {\n if (onFocus) onFocus(event);\n };\n\n const inputProps = {\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': labelledby,\n 'aria-required': isRequired,\n id,\n checked: !!isChecked,\n disabled: isDisabled,\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus,\n required: isRequired,\n type: 'checkbox',\n ref: inputRef,\n ...(value && { value }),\n };\n\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const containerClasses = classNames(\n styles.checkbox,\n className,\n ...responsiveClasses.map((c) => styles[c]),\n { [styles.hidden]: isHidden }\n );\n\n const iconClasses = classNames(...responsiveClasses.map((c) => styles[c]));\n\n return (\n <Box\n display={display}\n ref={ref}\n style={{ position: 'relative' }}\n className={containerClasses}\n {...restProps}\n >\n <input\n {...inputProps}\n style={{\n position: 'absolute',\n opacity: '0',\n }}\n />\n {!isHidden && (\n <CheckboxIcon\n isChecked={isChecked}\n isDisabled={isDisabled}\n isIndeterminate={isIndeterminate}\n className={iconClasses}\n error={error}\n />\n )}\n </Box>\n );\n }\n);\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport styles from './InputValidationMessage.module.scss';\n\n/**\n * Used by form inputs such as TextInput, to display a validation message for an invalid input.\n */\n\nexport interface InputValidationMessageProps {\n children: ReactNode;\n size?: 'xs' | 'sm' | 'md';\n}\n\nexport const InputValidationMessage: FC<InputValidationMessageProps> = ({\n children,\n size = 'sm',\n}) => {\n const classes = classNames(\n 'hyphen-components__variables__form-control',\n styles['input-validation-message'],\n 'font-color-danger',\n `font-size-${size}`,\n 'm-top-sm'\n );\n\n return <div className={classes}>{children}</div>;\n};\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../Box/Box';\nimport styles from './HelpText.module.scss';\n\nexport interface HelpTextProps {\n /**\n * Contents of the help text.\n */\n children?: React.ReactNode;\n /**\n * Additional class names to add.\n */\n className?: string;\n}\n\nexport const HelpText = forwardRef<HTMLDivElement, HelpTextProps>(\n ({ children, className }, ref) => (\n <Box\n ref={ref}\n className={classNames(\n 'hyphen-components__variables__form-control',\n styles['help-text'],\n className\n )}\n display=\"block\"\n color=\"secondary\"\n fontSize=\"sm\"\n >\n {children}\n </Box>\n )\n);\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { Box, BoxProps } from '../Box/Box';\nimport styles from './FormLabel.module.scss';\nimport { HelpText } from '../HelpText/HelpText';\n\nexport interface FormLabelProps extends BoxProps {\n /**\n * Content to be rendered inside the label.\n */\n children: ReactNode;\n /**\n * The id of the form control that the label is labeling\n */\n inputId: string;\n /**\n * Custom class to pass to label element.\n */\n className?: string;\n /**\n * Additional clarifying text to that helps describe the field\n */\n helpText?: ReactNode;\n /**\n * Mark the label has disabled\n */\n isDisabled?: boolean;\n /**\n * prop deprecated: no longer in use and will be remove in next major release.\n */\n isFieldRequired?: boolean;\n /**\n * Apply custom styling to labels for a radio input\n */\n isRadioInputLabel?: boolean;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const FormLabel: FC<FormLabelProps> = ({\n children,\n inputId,\n className = '',\n display = 'block',\n helpText,\n isDisabled = false,\n isFieldRequired = false,\n isRadioInputLabel = false,\n requiredIndicator = ' *',\n margin = '0',\n padding = '0',\n ...restProps\n}) => {\n const labelClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles.label,\n className,\n {\n [styles.disabled]: isDisabled,\n [styles.disabled]: isDisabled,\n [styles['radio-input-label']]: isRadioInputLabel,\n }\n );\n\n return (\n <Box\n as=\"label\"\n id={`${inputId}Label`}\n className={labelClasses}\n display={display}\n margin={margin}\n padding={padding}\n htmlFor={inputId}\n {...restProps}\n >\n {children}\n {isFieldRequired && requiredIndicator && <span>{requiredIndicator}</span>}\n {helpText && <HelpText>{helpText}</HelpText>}\n </Box>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { cssShorthandToClasses } from '../../lib/cssShorthandToClasses';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { Box } from '../Box/Box';\nimport { Checkbox, CheckboxSize, CheckboxProps } from './components/Checkbox';\n\nconst labelMarginSizeMap = {\n sm: '2xs 0 0 0',\n md: 'xs 0 0 0',\n lg: 'sm 0 0 0',\n};\n\nconst computedResponsiveSize = (\n // eslint-disable-line @typescript-eslint/explicit-module-boundary-types\n size: CheckboxInputProps['size']\n) => {\n if (size && !(typeof size === 'string') && typeof size === 'object') {\n return Object.entries(size).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: labelMarginSizeMap[value || 'md'],\n }),\n {}\n );\n }\n\n return labelMarginSizeMap[size || 'md'] as string;\n};\nexport interface CheckboxInputProps {\n /**\n * The id attribute of the input.\n */\n id: string;\n /**\n * The checkbox input \"checked\" attribute.\n */\n isChecked: boolean;\n /**\n * Custom content to be displayed to right of checkbox.\n */\n label: string;\n /**\n * Callback function when input is changed.\n */\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: React.ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: React.ReactNode;\n /**\n * Determines if the label is not shown for stylistic reasons.\n * Note the label is still a required prop and will be used as the aria-label for accessibility reasons.\n */\n hideLabel?: boolean;\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * Whether the checkbox is rendered in an indeterminate state.\n * NOTE: this change is only visual and it does not affect the checked or unchecked state of the checkbox.\n */\n isIndeterminate?: CheckboxProps['isIndeterminate'];\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Callback function when input is blurred.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function when input is focused.\n */\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: React.ReactNode;\n /**\n * The size of the checkbox.\n */\n size?: CheckboxSize;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const CheckboxInput: React.FC<CheckboxInputProps> = ({\n id,\n isChecked,\n label,\n onChange,\n className = '',\n error = false,\n hideLabel = false,\n helpText,\n isDisabled = false,\n isIndeterminate = false,\n isRequired = false,\n onBlur = undefined,\n onFocus = undefined,\n requiredIndicator = ' *',\n size = 'md',\n ...restProps\n}) => {\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\n if (onBlur) onBlur(event);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n onChange(event);\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>): void => {\n if (onFocus) onFocus(event);\n };\n\n const checkboxProps = {\n id,\n isChecked: !!isChecked,\n isDisabled,\n isIndeterminate,\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus,\n isRequired,\n size,\n label,\n className: classNames(\n 'hyphen-components__variables__form-control',\n 'm-right-md'\n ),\n error,\n };\n\n const labelProps = {\n inputId: id,\n helpText,\n isDisabled,\n isFieldRequired: isRequired,\n requiredIndicator,\n className: classNames(\n ...cssShorthandToClasses('m', computedResponsiveSize(size))\n ),\n };\n\n return (\n <Box className={className} {...restProps}>\n <Box alignItems=\"flex-start\" direction=\"row\">\n <Checkbox {...checkboxProps} labelledby={`${id}Label`} />\n {label && !hideLabel && <FormLabel {...labelProps}>{label}</FormLabel>}\n </Box>\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n};\n","import React, { FC, SyntheticEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport ReactDatePicker, { ReactDatePickerProps } from 'react-datepicker';\nimport styles from './DatePicker.module.scss';\n\nexport interface DatePickerProps extends ReactDatePickerProps<any, any> {\n /**\n * React children (to be rendered below the calendar dates).\n */\n children?: ReactNode;\n /**\n * Custom classname to be applied to the DatePicker container.\n */\n className?: string;\n /**\n * Callback that fires when a date is changed/selected.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onChange: (\n date: Date | [Date, Date] | null,\n event?: React.SyntheticEvent<any> | undefined\n ) => void;\n /**\n * Callback that fires when a date is clicked.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSelect?:\n | ((date: Date, event: SyntheticEvent<any, Event> | undefined) => void)\n | undefined;\n /**\n * Custom Class to be applied to a single day element based on a date.\n */\n dayClassName?: ((date: Date) => string | null) | undefined;\n /**\n * Custom Class to be applied to a single week element based on a date.\n */\n weekClassName?: ((date: Date) => string | null) | undefined;\n /**\n * Custom Class to be applied to a single month element based on a date.\n */\n monthClassName?: ((date: Date) => string | null) | undefined;\n /**\n * Custom Class to be applied to a specific time.\n */\n timeClassName?: ((date: Date) => string | null) | undefined;\n /**\n * Custom format for weekday.\n */\n formatWeekDay?: (formattedDate: string) => string;\n /**\n * Last allowable/shown date\n */\n maxDate?: Date | null;\n /**\n * First allowable/shown date\n */\n minDate?: Date | null;\n /**\n * Months to be shown at one time\n */\n monthsShown?: number;\n /**\n * Date that the calendar will open to by default.\n */\n openToDate?: Date;\n /**\n * Currently selected date.\n */\n selected?: Date | null;\n /**\n * Whether or not the picker will return a range of dates.\n */\n selectsRange?: boolean;\n /**\n * Start date in a range\n */\n startDate?: Date | null;\n /**\n * Show month picker in two columns\n */\n showTwoColumnMonthYearPicker?: boolean;\n /**\n * See full month name in the month picker\n */\n showFullMonthYearPicker?: boolean;\n /**\n * Use the month picker\n */\n showMonthYearPicker?: boolean;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const DatePicker: FC<DatePickerProps> = ({\n children = null,\n dayClassName = undefined,\n maxDate = undefined,\n minDate = undefined,\n monthsShown = undefined,\n openToDate = undefined,\n startDate = undefined,\n selected = undefined,\n selectsRange = undefined,\n showTwoColumnMonthYearPicker = false,\n showFullMonthYearPicker = false,\n showMonthYearPicker = false,\n className = undefined,\n formatWeekDay = (formattedDate) => formattedDate[0], // Make days show as 1 character.\n ...restProps\n}) => {\n const datePickerClasses = classNames(styles['react-datepicker'], className);\n\n return (\n <ReactDatePicker\n inline\n calendarClassName={datePickerClasses}\n formatWeekDay={formatWeekDay}\n maxDate={maxDate}\n minDate={minDate}\n monthsShown={monthsShown}\n openToDate={openToDate}\n selected={selected}\n startDate={startDate}\n selectsRange={selectsRange}\n showTwoColumnMonthYearPicker={showTwoColumnMonthYearPicker}\n showFullMonthYearPicker={showFullMonthYearPicker}\n showMonthYearPicker={showMonthYearPicker}\n dayClassName={dayClassName}\n {...restProps}\n >\n {children}\n </ReactDatePicker>\n );\n};\n\nexport default DatePicker;\n","import React, { ReactNode } from 'react';\nimport { Box, BoxProps } from '../Box/Box';\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\n\nexport interface FormControlProps extends BoxProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Visually hide the label.\n */\n hideLabel?: boolean;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n}\n\nexport const FormControl = React.forwardRef<HTMLDivElement, FormControlProps>(\n (\n {\n label,\n hideLabel,\n children,\n error,\n id,\n isRequired,\n helpText,\n isDisabled,\n requiredIndicator,\n width = '100',\n ...restProps\n },\n ref\n ) => {\n const labelProps = {\n inputId: id,\n helpText,\n margin: '0 0 xs 0',\n isDisabled,\n isFieldRequired: isRequired,\n requiredIndicator,\n };\n\n return (\n <Box width={width} ref={ref} {...restProps}>\n {label && !hideLabel && <FormLabel {...labelProps}>{label}</FormLabel>}\n {children}\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n }\n);\n","// eslint-disable-next-line import/prefer-default-export\nexport function getAutoCompleteValue(value: string | boolean): string {\n if (!value || (typeof value !== 'boolean' && typeof value !== 'string')) {\n return 'off';\n }\n\n if (typeof value === 'boolean' && value) {\n return 'on';\n }\n\n return value;\n}\n","import { Box, BoxProps } from '../Box/Box';\nimport React, {\n ChangeEvent,\n FocusEvent,\n ForwardRefExoticComponent,\n HTMLProps,\n InputHTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n forwardRef,\n} from 'react';\n\nimport { FormControl } from '../FormControl/FormControl';\nimport { Icon } from '../Icon/Icon';\nimport { ResponsiveProp } from '../../types';\nimport classNames from 'classnames';\n\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport styles from './TextInput.module.scss';\n\nexport type TextInputSizeType = 'sm' | 'md' | 'lg';\nexport interface TextInputProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * The text value of the input. Required since our Input is a controlled component.\n */\n value: InputHTMLAttributes<HTMLInputElement>['value'];\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Visually hide the label.\n */\n hideLabel?: boolean;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Props passed directly to the input element of the component\n */\n inputProps?: BoxProps & HTMLProps<HTMLInputElement>;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'maxlength' attribute.\n * NOTE: initializing the input with a value longer than the desired maxlength will not trim this value.\n */\n maxLength?: number;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call when input us cleared. When this is passed,\n * the input will display an icon on the right side, for triggering this callback.\n */\n onClear?: (\n event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\n ) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * An input helper rendered before the input field value\n */\n prefix?: ReactNode;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * The size of the text input.\n */\n size?: TextInputSizeType | ResponsiveProp<TextInputSizeType>;\n /**\n * An input helper rendered after the input field value\n */\n suffix?: ReactNode;\n /**\n * The input 'type' value. Defaults to type 'text'.\n */\n type?: InputHTMLAttributes<HTMLInputElement>['type'];\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const TextInput: ForwardRefExoticComponent<TextInputProps> = forwardRef<\n HTMLDivElement,\n TextInputProps\n>(\n (\n {\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n error = false,\n helpText,\n hideLabel = false,\n inputProps = {},\n isDisabled = false,\n isRequired = false,\n maxLength = undefined,\n name = '',\n onBlur = undefined,\n onClear = undefined,\n onFocus = undefined,\n prefix = undefined,\n placeholder = '',\n requiredIndicator = ' *',\n suffix = undefined,\n size = 'md',\n type = 'text',\n ...restProps\n },\n ref\n ) => {\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['text-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.error]: error,\n [styles.disabled]: isDisabled,\n [styles['is-clearable']]: onClear,\n }\n );\n\n const clearBtnClasses = classNames(styles['clear-button'], styles.md);\n\n const renderClearIcon = (): ReactNode => {\n const handleKeyPress = (\n event: KeyboardEvent<HTMLButtonElement>\n ): void => {\n if (event.keyCode === 13 && onClear) onClear(event);\n };\n\n return (\n <button\n type=\"button\"\n onClick={onClear}\n onKeyUp={handleKeyPress}\n className={clearBtnClasses}\n data-testid=\"text-input-clear-button\"\n aria-label=\"clear input\"\n >\n <Icon name=\"remove\" className=\"display-block\" />\n </button>\n );\n };\n\n const computedInputProps: TextInputProps['inputProps'] = {\n ...inputProps, // These are spread first so that we don't have top level props overwritten by the user.\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label && !hideLabel ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n disabled: isDisabled,\n id,\n maxLength,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n required: isRequired,\n type,\n value,\n className: classNames(inputProps.className, {\n // 'p-left-xs p-left-xs-tablet p-left-xs-desktop p-left-xs-hd': prefix,\n // 'p-right-xs p-right-xs-tablet p-right-xs-desktop p-right-xs-hd': suffix,\n 'p-h-0': !suffix && !prefix,\n }),\n };\n\n return (\n <FormControl\n helpText={helpText}\n error={error}\n label={label}\n id={id}\n hideLabel={hideLabel}\n isDisabled={isDisabled}\n isRequired={isRequired}\n requiredIndicator={requiredIndicator}\n ref={ref}\n {...restProps}\n >\n <Box direction=\"row\" overflow=\"hidden\" className={inputWrapperClasses}>\n {prefix && (\n <Box\n color=\"secondary\"\n background=\"secondary\"\n className={classNames(styles.prefix, 'ws-nowrap')}\n >\n {prefix}\n </Box>\n )}\n\n <Box as=\"input\" {...computedInputProps} />\n\n {!!onClear && !!value && renderClearIcon()}\n {suffix && (\n <Box\n color=\"secondary\"\n background=\"secondary\"\n className={classNames(styles.suffix, 'ws-nowrap')}\n >\n {suffix}\n </Box>\n )}\n </Box>\n </FormControl>\n );\n }\n);\n","import { Key } from 'react';\nimport { Column } from '../types';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const getColumnKeys = (columns: Column[]): Key[] => {\n const INTERNAL_KEY_PREFIX = 'columnKeyPrefix';\n const columnKeys: React.Key[] = [];\n const keys: Record<any, boolean> = {};\n\n columns.forEach((column) => {\n const { key, dataKey } = column || {};\n const shapedDataKey = dataKey?.includes(' ')\n ? dataKey.split(' ').join('-')\n : dataKey;\n\n let mergedKey = key || shapedDataKey || INTERNAL_KEY_PREFIX;\n\n while (keys[mergedKey as any]) {\n mergedKey = `${mergedKey}_next`;\n }\n keys[mergedKey as any] = true;\n\n columnKeys.push(mergedKey);\n });\n\n return columnKeys;\n};\n","import { ValueOrFunction, ValueFunction } from '../types';\n\nexport const isFunction = <TValue, TArg>( // eslint-disable-line import/prefer-default-export\n valOrFunction: ValueOrFunction<TValue, TArg>\n): valOrFunction is ValueFunction<TValue, TArg> =>\n typeof valOrFunction === 'function';\n","import React from 'react';\n\nexport function mergeRefs<T = any>(\n refs: Array<React.MutableRefObject<T> | React.LegacyRef<T> | undefined | null>\n): React.RefCallback<T> {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n });\n };\n}\n","export const prefersReducedMotion = (() => {\n // eslint-disable-line import/prefer-default-export\n let shouldReduceMotion: boolean | undefined;\n\n return () => {\n if (shouldReduceMotion === undefined) {\n const mediaQuery = window?.matchMedia('(prefers-reduced-motion: reduce)');\n shouldReduceMotion = !mediaQuery || mediaQuery.matches;\n }\n return shouldReduceMotion;\n };\n})();\n","import { ValueOrFunction } from '../types';\nimport { isFunction } from './isFunction';\n\nexport const resolveValue = <TValue, TArg>( // eslint-disable-line import/prefer-default-export\n valOrFunction: ValueOrFunction<TValue, TArg>,\n arg: TArg\n): TValue => (isFunction(valOrFunction) ? valOrFunction(arg) : valOrFunction);\n","import designTokens from '@hyphen/hyphen-design-tokens/build/json/variables';\nimport { ICON_NAMES as iconNames } from '@hyphen/hyphen-design-tokens/build/assets/icons';\n\nimport {\n BaseColor,\n BackgroundColor,\n BorderColor,\n BorderRadiusSize,\n BorderSize,\n Breakpoint,\n BreakpointSizeWithBase,\n BoxShadowSize,\n ColorName,\n FontColor,\n FontSize,\n FontFamily,\n FontWeight,\n HeadingSize,\n HeightSize,\n IconName,\n LineHeightSize,\n SpacingSize,\n WidthSize,\n ZIndexSize,\n} from '../types';\n\nexport const ICON_NAMES = iconNames as IconName[];\n\nexport const BORDER_RADIUS_OPTIONS = Object.keys(\n designTokens.size['border-radius']\n) as BorderRadiusSize[];\n// export const BORDER_RADIUS_VALUES = Object.values(designTokens.size['border-radius']);\n\nexport const BORDER_SIZE_OPTIONS = Object.keys(\n designTokens.size['border-width']\n) as BorderSize[];\n// export const BORDER_SIZE_VALUES = Object.values(designTokens.size['border-width']);\n\nexport const BREAKPOINT_OPTIONS = Object.keys(\n designTokens.size.breakpoint\n) as BreakpointSizeWithBase[];\n// export const BREAKPOINT_VALUES = Object.values(designTokens.size.breakpoint);\n\nexport const BREAKPOINTS = [\n ...Object.entries(designTokens.size.breakpoint),\n ['base', { value: '0' }],\n].map(([name, data]) => {\n if (typeof data === 'object' && data !== null && 'value' in data) {\n return {\n name,\n minWidth: parseInt(data['value'] as string, 10),\n };\n }\n}) as Breakpoint[];\n\nexport const BASE_COLOR_OPTIONS = (\n Object.keys(designTokens.color.base) as ColorName[]\n)\n .map((colorName) => {\n if (\n colorName === 'white' ||\n colorName === 'black' ||\n colorName === 'magenta'\n )\n return `${colorName}`;\n return Object.keys(designTokens.color.base[colorName]).map((colorGrade) =>\n colorGrade === 'base' ? colorName : `${colorName}-${colorGrade}`\n );\n })\n .flat() as BaseColor[];\n\nexport const BASE_COLOR_NAMES = Object.keys(\n designTokens.color.base\n) as ColorName[];\n// export const BASE_COLOR_VALUES = Object.values(designTokens.color.base);\n\nexport const FONT_COLOR_OPTIONS = Object.keys(\n designTokens.color.font\n) as FontColor[];\n// export const FONT_COLOR_VALUES = designTokens.color.font;\n\nexport const BACKGROUND_COLOR_OPTIONS = Object.keys(\n designTokens.color.background\n) as BackgroundColor[];\n// export const BACKGROUND_COLOR_VALUES = designTokens.color.background;\n\nexport const BORDER_COLOR_OPTIONS = Object.keys(\n designTokens.color.border\n) as BorderColor[];\n// export const BORDER_COLOR_VALUES = designTokens.color.border;\n\nexport const FONT_SIZE_OPTIONS = Object.keys(\n (designTokens.size as any)['font-size']\n) as FontSize[];\n// export const FONT_SIZE_VALUES = Object.values(designTokens.size['font-size']);\n\nexport const FONT_FAMILY_OPTIONS = Object.keys(\n designTokens.assets['font-family']\n) as FontFamily[];\n// export const FONT_FAMILY_VALUES = designTokens.assets['font-family'];\n\nexport const FONT_WEIGHT_OPTIONS = Object.keys(\n (designTokens.size as any)['font-weight']\n) as FontWeight[];\n// export const FONT_WEIGHT_VALUES = designTokens.size['font-weight'];\n\nexport const HEADING_SIZE_OPTIONS = Object.keys(\n designTokens.size.heading\n) as HeadingSize[];\n\nexport const HEIGHT_OPTIONS = Object.keys(\n (designTokens.size as any).dimension\n) as HeightSize[];\n// export const HEIGHT_VALUES = designTokens.size.dimension;\n\nexport const LINE_HEIGHT_OPTIONS = Object.keys(\n designTokens.size['line-height']\n) as LineHeightSize[];\n// export const LINE_HEIGHT_VALUES = designTokens.size['line-height'];\n\nexport const SPACING_OPTIONS = Object.keys(\n designTokens.size.spacing\n) as SpacingSize[];\n// export const SPACING_VALUES = designTokens.size.spacing;\n\nexport const WIDTH_OPTIONS = Object.keys(\n (designTokens.size as any).dimension\n) as WidthSize[];\n// export const WIDTH_VALUES = designTokens.size.dimension;\n\nexport const Z_INDEX_OPTIONS = Object.keys(\n designTokens.size['z-index']\n) as ZIndexSize[];\nexport const Z_INDEX_VALUES = designTokens.size['z-index'];\n\nexport const BOX_SHADOW_OPTIONS = Object.keys(\n designTokens.size['box-shadow']\n) as BoxShadowSize[];\n// export const BOX_SHADOW_VALUES = designTokens.size['box-shadow'];\n","import React, {\n cloneElement,\n FC,\n isValidElement,\n ReactNode,\n useEffect,\n useRef,\n useState,\n RefObject,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport FocusTrap from 'focus-trap-react';\nimport classNames from 'classnames';\nimport { BackgroundColor } from '../../types';\nimport styles from './Popover.module.scss';\nimport { Box, BoxProps } from '../Box/Box';\nimport { mergeRefs } from '../../lib';\n\nexport type PopoverProps = {\n /**\n * Custom class to apply to the alert.\n */\n className?: string;\n /**\n * The trigger element\n */\n children: ReactNode;\n /**\n * Content of the tooltip. Can be any JSX node.\n */\n content: ReactNode;\n /**\n * The Popover is a controlled input, and will be shown when `isOpen === true`.\n */\n isOpen: boolean;\n /**\n * Color of the arrow background. NOTE: That the arrowColor will default to the\n * `background` color applied in the `contentContainerProps`, but can be overwritten\n * by passing a specific value here.\n */\n arrowColor?: BackgroundColor;\n /**\n * An object matching the interface of the `Box` component props.\n * This is useful for styling the tooltip container using all the options available in\n * a `Box`.\n */\n contentContainerProps?: BoxProps;\n /**\n * Whether the arrow is shown.\n */\n hasArrow?: boolean;\n /**\n * How far (in pixels) the Popover element will be from the target.\n * Note that this is from the edge of the target to the edge of the popover content,\n * and it DOES NOT include the arrow element.\n */\n offsetFromTarget?: number;\n /**\n * Callback function to handle when a user clicks outside the Popover\n */\n onClickOutside?: (event: MouseEvent | KeyboardEvent) => void;\n /**\n * The placement (position) of the Popover relative to its trigger.\n */\n placement?: Placement;\n /**\n * Whether you want to trap focus in the Popover element when it is open.\n * Read more about focus traps:\n * [Here](https://allyjs.io/tutorials/accessible-dialog.html#trapping-focus-inside-the-dialog)\n */\n trapFocus?: boolean;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n} & (\n | {\n /**\n * Whether the element should be rendered outside its DOM structure\n * for reasons of placement. Use this when the element is being cut-off or\n * re-positioned due to lack of space in the parent container.\n * NOTE: `portalTarget` is required if this is true.\n */\n withPortal: true;\n /**\n * The target element where the Popover will be portaled to, when `withPortal === true`.\n * `document.body` will work for many cases, but you can also use a custom container for this.\n * Only required if withPortal is true.\n */\n portalTarget: HTMLElement;\n }\n | {\n withPortal?: false;\n portalTarget?: never;\n }\n);\n\nconst contentContainerDefaults: BoxProps = {\n background: 'primary',\n padding: 'sm',\n radius: 'sm',\n shadow: 'md',\n};\n\nexport const Popover: FC<PopoverProps> = ({\n className,\n isOpen,\n children,\n content,\n arrowColor = undefined,\n contentContainerProps = { ...contentContainerDefaults },\n hasArrow = true,\n offsetFromTarget = 12,\n onClickOutside = undefined,\n placement = 'right',\n withPortal = false,\n portalTarget,\n trapFocus = false,\n ...restProps\n}) => {\n const triggerRef = useRef<HTMLElement>(null);\n const popperRef = useRef<HTMLElement>(null);\n const [arrowElement, setArrowElement] = useState<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n const popover = popperRef.current;\n const trigger = triggerRef.current;\n\n if (!popover || !trigger) {\n return;\n }\n\n if (event.target === trigger || trigger?.contains(event.target as Node)) {\n return;\n }\n\n if (\n event.target !== popover &&\n !popover?.contains(event.target as Node)\n ) {\n if (onClickOutside) onClickOutside(event);\n }\n };\n\n const handleKeyUp = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n if (onClickOutside) onClickOutside(event);\n }\n };\n\n if (onClickOutside) {\n document.body.addEventListener('click', handleClickOutside, false);\n document.body.addEventListener('keyup', handleKeyUp);\n }\n\n return () => {\n if (onClickOutside) {\n document.body.removeEventListener('click', handleClickOutside, false);\n document.body.removeEventListener('keyup', handleKeyUp);\n }\n };\n }, [onClickOutside]);\n\n const { styles: popperStyles, attributes } = usePopper(\n triggerRef.current,\n popperRef.current,\n {\n placement,\n modifiers: [\n {\n name: 'arrow',\n options: { element: arrowElement },\n },\n {\n name: 'offset',\n options: {\n offset: [0, offsetFromTarget],\n },\n },\n ],\n }\n );\n\n const containerBoxProps = {\n ...contentContainerDefaults,\n ...contentContainerProps,\n };\n\n const computedArrowColor = arrowColor || containerBoxProps.background;\n\n const arrowClasses = classNames(\n styles['popover-arrow'],\n `background-color-${computedArrowColor}`,\n {\n 'display-none': !hasArrow,\n }\n );\n\n const renderPopperContent = () => {\n const renderPopperBox = () => (\n <Box\n ref={popperRef}\n className={classNames(styles.popover, className)}\n style={popperStyles.popper}\n role=\"dialog\"\n aria-label=\"Popover\"\n aria-hidden={!isOpen}\n {...containerBoxProps}\n {...attributes.popper}\n {...restProps}\n >\n <div\n ref={setArrowElement}\n style={popperStyles.arrow}\n className={arrowClasses}\n data-popper-arrow\n />\n {content}\n </Box>\n );\n\n return trapFocus ? (\n <FocusTrap\n active={isOpen}\n focusTrapOptions={{\n clickOutsideDeactivates: true,\n }}\n >\n {renderPopperBox()}\n </FocusTrap>\n ) : (\n renderPopperBox()\n );\n };\n\n const childrenWithRef = React.Children.map(children, (child) => {\n const childProps = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: triggerRef as RefObject<HTMLElement> | ((instance: any) => void),\n role: 'button',\n 'aria-expanded': isOpen,\n 'aria-haspopup': true,\n };\n\n // Merge local ref with any ref passed originally to child component.\n // We have to cast with `as` so TS compiler doesn't complain since ReactNode/ReactChild types don't\n // explicitly declare ref as a property in the object.\n if ((child as ReactNode & { ref: any })?.ref) {\n // eslint-disable-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n childProps.ref = mergeRefs([\n (child as ReactNode & { ref: any })?.ref,\n childProps.ref,\n ]);\n }\n\n if (isValidElement(child)) {\n return cloneElement(child, childProps);\n }\n\n return child;\n });\n\n return (\n <>\n {childrenWithRef}\n {isOpen &&\n // portalTarget should always be defined if withPortal is true, but better safe than sorry here!\n (withPortal && portalTarget\n ? createPortal(renderPopperContent(), portalTarget)\n : renderPopperContent())}\n </>\n );\n};\n","import React, { FC, useState } from 'react';\nimport format from 'date-fns/format';\nimport { DatePicker, DatePickerProps } from '../DatePicker/DatePicker';\nimport { TextInput, TextInputProps } from '../TextInput/TextInput';\nimport { Popover, PopoverProps } from '../Popover/Popover';\n\nexport interface DateInputProps {\n /**\n * Props object for DatePicker component.\n */\n datePickerProps: DatePickerProps;\n /**\n * Props object for TextInput component.\n */\n textInputProps: Omit<TextInputProps, 'onChange'>;\n /**\n * Format for final date to be displayed.\n * Relies on date-fns/format --> https://date-fns.org/v1.9.0/docs/format\n */\n dateFormat?: string;\n /**\n * Additional settings for formatting date.\n */\n dateOptions?: {\n /**\n * The user's locale.\n */\n locale?: globalThis.Locale | undefined;\n /**\n * Start of week.\n */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined;\n /**\n * Should determine which week is week 1 of a new year.\n */\n firstWeekContainsDate?: number | undefined;\n /**\n * Whether to accept unicode tokens in format.\n * See here --> https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n */\n useAdditionalWeekYearTokens?: boolean | undefined;\n /**\n * Whether to accept unicode tokens in format.\n * See here --> https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n */\n useAdditionalDayOfYearTokens?: boolean | undefined;\n };\n /**\n * Props to pass down to the Popover component.\n */\n popoverProps?: Omit<PopoverProps, 'children' | 'content' | 'isOpen'>;\n /**\n * Additional props to be spread to the `TextInput` element.\n */\n [x: string]: any; // eslint-disable-line\n}\n\nconst defaultDatePickerProps: Omit<DatePickerProps, 'onChange'> = {\n selected: null,\n selectsRange: false,\n};\n\nconst defaultPopoverProps: Omit<\n PopoverProps,\n 'children' | 'content' | 'isOpen'\n> = {\n placement: 'bottom',\n};\n\nconst defaultTextInputProps: Omit<TextInputProps, 'id'> = {\n label: 'Select Date',\n};\n\nexport const DateInput: FC<DateInputProps> = ({\n datePickerProps,\n textInputProps,\n dateFormat = 'MM/dd/yyyy',\n dateOptions = undefined,\n popoverProps = { ...defaultPopoverProps },\n ...restProps\n}) => {\n const mergedDatePickerProps = {\n ...defaultDatePickerProps,\n ...datePickerProps,\n };\n\n const mergedPopoverProps = {\n ...defaultPopoverProps,\n ...popoverProps,\n };\n\n const mergedTextInputProps = {\n ...defaultTextInputProps,\n ...textInputProps,\n };\n\n const getTextInputValue = () => {\n const { selectsRange, startDate, endDate, selected } =\n mergedDatePickerProps;\n\n const formattedStartDate = startDate\n ? format(startDate, dateFormat, dateOptions)\n : '';\n const formattedEndDate = endDate\n ? format(endDate, dateFormat, dateOptions)\n : '';\n const formattedSelectedDate = selected\n ? format(selected, dateFormat, dateOptions)\n : '';\n\n if (selectsRange) {\n return `${formattedStartDate}${\n formattedStartDate || formattedEndDate ? ' - ' : ''\n }${formattedEndDate}`;\n }\n\n return formattedSelectedDate;\n };\n\n const [isPopoverOpen, setPopoverOpen] = useState(false);\n\n const handleTogglePopover = (newPopoverOpenState: boolean) => {\n setPopoverOpen(newPopoverOpenState);\n };\n\n const handleDatePickerChange = (\n date: Date | [Date, Date] | null,\n event?: React.SyntheticEvent<any, Event> // eslint-disable-line @typescript-eslint/no-explicit-any\n ) => {\n mergedDatePickerProps.onChange(date, event);\n\n if (!mergedDatePickerProps.selectsRange && date) setPopoverOpen(false);\n };\n\n /**\n * This function is a one-off workaround to an edge case when detecting outside clicks.\n * in Popover.tsx, outside clicks are detected by seeing if the clicked element is a child\n * of the popover, which would mean it is NOT an outside click. However, when using min/max dates\n * in the Datepicker, the month navigation elements are removed from the DOM when the max/min date has been reached.\n * Because our outside click detector sees that the clicked element\n * is not a child of the popover (it doesn't exist in the DOM anymore)\n * It registers an outside click and closes the Popover.\n * With this code we specifically guard against closing the popover\n * if a user has clicked one of the month navigation arrows.\n * */\n const handleOnClickOutside = (event: MouseEvent | KeyboardEvent) => {\n const target = event.target as Element;\n\n if (target.classList.contains('react-datepicker__navigation')) {\n return;\n }\n\n handleTogglePopover(false);\n };\n\n const renderDatePicker = () => (\n <DatePicker\n {...mergedDatePickerProps}\n onChange={handleDatePickerChange}\n selected={mergedDatePickerProps.selected}\n selectsRange={mergedDatePickerProps.selectsRange}\n />\n );\n\n return (\n <Popover\n {...mergedPopoverProps}\n isOpen={isPopoverOpen}\n content={renderDatePicker()}\n withPortal\n portalTarget={document.body}\n onClickOutside={handleOnClickOutside}\n >\n <TextInput\n {...mergedTextInputProps}\n id={mergedTextInputProps.id}\n name={mergedTextInputProps.name}\n label={mergedTextInputProps.label}\n value={getTextInputValue()}\n onChange={() =>\n null\n } /* Empty function since we hijack the onChange event */\n onClick={() => handleTogglePopover(true)}\n readOnly\n {...restProps}\n />\n </Popover>\n );\n};\n","export const ENTER = 13;\nexport const SPACE = 32;\n","import React, { MouseEvent, KeyboardEvent } from 'react';\nimport { ENTER, SPACE } from '../../constants/keyCodes';\nimport { Box, BoxProps } from '../Box/Box';\n\nexport interface DetailsSummaryProps extends BoxProps {\n isDetailsOpen: boolean;\n onToggle?: (\n event: MouseEvent<HTMLElement> | KeyboardEvent<HTMLElement>\n ) => void;\n}\n\nexport const DetailsSummary: React.FC<DetailsSummaryProps> = ({\n children,\n display = 'block',\n isDetailsOpen,\n onToggle,\n ...restProps\n}) => {\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n // Needed to avoid default `details` behavior on a click event and keep this as controlled component.\n event.preventDefault();\n\n if (!onToggle && !restProps?.onClick) return;\n\n if (onToggle) {\n onToggle(event);\n }\n\n if (restProps?.onClick) {\n restProps.onClick(event);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if ([ENTER, SPACE].indexOf(event.keyCode) !== -1) {\n // Needed to avoid default `details` behavior on a click event and keep this as controlled component.\n event.preventDefault();\n }\n\n if (!onToggle && !restProps?.onKeyDown) return;\n\n if (onToggle && [ENTER, SPACE].indexOf(event.keyCode) !== -1) {\n onToggle(event);\n }\n\n if (restProps?.onKeyDown) {\n restProps.onKeyDown(event);\n }\n };\n\n return (\n <Box\n {...restProps}\n as=\"summary\"\n display={display}\n role=\"button\"\n aria-expanded={isDetailsOpen}\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </Box>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DetailsSummary } from './DetailsSummary';\nimport styles from './Details.module.scss';\nimport { Box, BoxProps } from '../Box/Box';\n\nexport interface DetailsProps extends BoxProps {\n /**\n * Whether the details below the summary are opened. Directly corresponds to `open` property in <details> element.\n */\n isOpen: boolean;\n}\n\nexport const DetailsBaseComponent: React.FC<DetailsProps> = React.forwardRef<\n HTMLDetailsElement,\n DetailsProps\n>(({ children, className, display = 'block', isOpen, ...restProps }, ref) => {\n const detailsClasses = classNames(\n className,\n styles['details-reset'],\n styles.details\n );\n\n return (\n <Box\n as=\"details\"\n className={detailsClasses}\n display={display}\n open={isOpen}\n ref={ref}\n {...restProps}\n >\n {children}\n </Box>\n );\n});\n\nexport interface DetailsStatic {\n Summary: typeof DetailsSummary;\n}\n\nexport type DetailsWithStaticComponents = typeof DetailsBaseComponent &\n DetailsStatic;\n\n// Actual component is wrapped in an IIFE for the export\n// To allow tree-shaking even with static properties (subcomponents in this case).\nexport const Details = (() => {\n const Details = DetailsBaseComponent as DetailsWithStaticComponents; // eslint-disable-line no-shadow\n Details.Summary = DetailsSummary;\n return Details;\n})();\n","import React, {\n CSSProperties,\n RefObject,\n forwardRef,\n useCallback,\n} from 'react';\nimport ReactModal from 'react-modal';\nimport FocusLock from 'react-focus-lock';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport classNames from 'classnames';\nimport { DimensionSize, CssDimensionValue } from '../../types';\nimport { Box } from '../Box/Box';\nimport styles from './Drawer.module.scss';\nimport { Button } from '../Button/Button';\n\nexport type DrawerPlacementType = 'left' | 'right' | 'top' | 'bottom';\nexport interface DrawerProps {\n /**\n * If the drawer is open\n */\n isOpen: boolean;\n /**\n * Handle zoom/pinch gestures on iOS devices when scroll locking is enabled.\n */\n allowPinchZoom?: boolean;\n /**\n * A drawer needs to be properly labeled to provide context for users with\n * assistive technology such as screen readers. If a drawer is announced to\n * the user without a label, it can be confusing and difficult to navigate.\n */\n ariaLabel?: string;\n /**\n * The id of the element that should be used as the drawer's label by assistive technologies like screen readers.\n */\n ariaLabelledBy?: string;\n /**\n * Contents of the dialog.\n */\n children?: React.ReactNode;\n /**\n * Additional class names to add to the drawer content.\n */\n className?: string;\n /**\n * Whether the drawer has a visible close button.\n * If a title is defined, then a close button will be rendered\n */\n closeButton?: boolean;\n /**\n * If true, the drawer will close when the overlay is clicked\n */\n closeOnOverlayClick?: boolean;\n /**\n * The ref of the container where the drawer will be inserted into the DOM.\n * By default, drawers are inserted in the document.body, but if need be they can\n * be scoped as necessary.\n */\n containerRef?: React.RefObject<Node>;\n /**\n * By default, focus is trapped within the drawer.\n * If true, focus will not be trapped within the contents of the drawer.\n */\n dangerouslyBypassFocusLock?: boolean;\n /**\n * By default, the drawer locks scrolling on the body, but in some cases you may want to allow for scrolling.\n * If true, this will allow the body to scroll while the drawer is open.\n */\n dangerouslyBypassScrollLock?: boolean;\n /**\n * If true, the overlay will not be rendered, scrolling for the entire page will remain enabled,\n * and focus will not be locked to the contents of the drawer\n */\n hideOverlay?: boolean;\n /**\n * By default the first focusable element will receive focus when the dialog\n * opens but you can provide a ref to focus instead.\n *\n * @see Docs https://reach.tech/dialog#dialog-initialfocusref\n */\n initialFocusRef?: RefObject<HTMLDivElement>;\n /**\n * Which edge of the viewport should the drawer appear from\n */\n placement?: DrawerPlacementType;\n /**\n * Function that is called whenever the user either hits\n * the \"Escape\" key, clicks the close button icon, or clicks the overlay.\n */\n onDismiss?: (event?: React.SyntheticEvent) => void;\n /**\n * Title to be displayed at the top of the Drawer.\n * A close button will be rendered automatically if this prop is defined.\n */\n title?: string;\n /**\n * The width of the Drawer when opened. Can be given a standard css value (px, rem, em, %),\n * or a [width token](/?path=/story/design-tokens-design-tokens--page#width)\n */\n width?: DimensionSize | CssDimensionValue;\n}\nexport const Drawer: React.FC<DrawerProps> = forwardRef<\n HTMLDivElement,\n DrawerProps\n>(\n (\n {\n ariaLabel = undefined,\n ariaLabelledBy = undefined,\n allowPinchZoom = false,\n children = undefined,\n className = undefined,\n closeButton = false,\n closeOnOverlayClick = true,\n containerRef = undefined,\n dangerouslyBypassFocusLock = false,\n dangerouslyBypassScrollLock = false,\n hideOverlay = false,\n initialFocusRef = undefined,\n isOpen,\n onDismiss = undefined,\n placement = 'right',\n title = undefined,\n width = undefined,\n },\n ref\n ) => {\n const activateFocusLock = useCallback(() => {\n setTimeout(() => {\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus();\n }\n }, 100);\n }, [initialFocusRef]);\n\n const dynamicWidth = width;\n\n const dynamicStyle: CSSProperties = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ['--w' as any]: dynamicWidth,\n };\n\n const overlayClassnames = classNames(styles.overlay, styles.drawer, {\n [styles['hide-overlay']]: hideOverlay,\n [styles[`hide-overlay-${placement}`]]: hideOverlay,\n 'position-fixed': containerRef === undefined,\n 'position-absolute': containerRef !== undefined,\n });\n\n const contentClassnames = classNames(\n styles['drawer-content'],\n styles[placement],\n {\n [styles['hide-overlay']]: hideOverlay,\n 'overflow-auto': !closeButton && !title,\n className,\n }\n );\n\n const renderHeader = () => {\n if (closeButton && onDismiss && !title) {\n return (\n <Box alignItems=\"flex-end\" justifyContent=\"center\" padding=\"md lg\">\n <Button\n variant=\"tertiary\"\n onClick={onDismiss}\n aria-label=\"close\"\n type=\"button\"\n iconPrefix=\"remove\"\n />\n </Box>\n );\n }\n if (title) {\n return (\n <Box\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n padding=\"2xl\"\n >\n <Box className={styles.title} fontWeight=\"bold\">\n {title}\n </Box>\n {onDismiss && (\n <Button\n variant=\"tertiary\"\n onClick={onDismiss}\n aria-label=\"close\"\n type=\"button\"\n iconPrefix=\"remove\"\n />\n )}\n </Box>\n );\n }\n return null;\n };\n\n const content =\n title || closeButton ? (\n <Box flex=\"auto\" overflow=\"auto\">\n {children}\n </Box>\n ) : (\n children\n );\n\n const parentElement = containerRef?.current\n ? (containerRef.current as HTMLElement)\n : document.body;\n\n const isDisabledFocusLock = hideOverlay || dangerouslyBypassFocusLock;\n const isDisabledRemoveScroll = hideOverlay || dangerouslyBypassScrollLock;\n\n return (\n <FocusLock\n autoFocus\n returnFocus\n disabled={isDisabledFocusLock || !isOpen}\n onActivation={activateFocusLock}\n >\n <RemoveScroll\n allowPinchZoom={allowPinchZoom}\n enabled={!isDisabledRemoveScroll && isOpen}\n >\n <Box ref={ref}>\n <ReactModal\n isOpen={isOpen}\n overlayClassName={overlayClassnames}\n className={contentClassnames}\n onRequestClose={closeOnOverlayClick ? onDismiss : undefined}\n ariaHideApp={false}\n style={{\n content: dynamicStyle,\n overlay: dynamicStyle,\n }}\n parentSelector={() => parentElement}\n >\n <Box aria-label={ariaLabel} aria-labelledby={ariaLabelledBy}>\n {renderHeader()}\n {content}\n </Box>\n </ReactModal>\n </Box>\n </RemoveScroll>\n </FocusLock>\n );\n }\n);\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport {\n CheckboxInput,\n CheckboxInputProps,\n} from '../../CheckboxInput/CheckboxInput';\n\nexport interface FormikCheckboxInputProps\n extends Omit<CheckboxInputProps, 'onChange'> {\n field: FieldAttributes<HTMLInputElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: CheckboxInputProps['onChange'];\n}\n\nexport const FormikCheckboxInput: React.FC<FormikCheckboxInputProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <CheckboxInput\n {...props}\n id={id}\n label={label}\n error={getIn(touched, name) && getIn(errors, name)}\n isChecked={value}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange} // eslint-disable-line\n />\n);\n","import React from 'react';\nimport { Box, BoxProps } from '../../Box/Box';\nimport { Icon } from '../../Icon/Icon';\nimport { FontColor } from '../../../types';\nimport { RadioInputProps } from './RadioInput'; // eslint-disable-line import/no-cycle\nimport { RadioGroupProps } from '../RadioGroup'; // eslint-disable-line import/no-cycle\n\nexport interface RadioIconProps extends BoxProps {\n /**\n * Custom className to be applied to root node of component.\n */\n className?: string;\n /**\n * Whether the input is in an error state. The icon will visually change accordingly.\n */\n error?: RadioGroupProps['error'];\n /**\n * Whether the radio is selected.\n */\n isSelected?: RadioInputProps['isSelected'];\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: RadioInputProps['isDisabled'];\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const RadioInputIcon: React.FC<RadioIconProps> = ({\n className = undefined,\n isSelected = false,\n isDisabled = false,\n error = null,\n ...restProps\n}) => {\n let color: FontColor = 'secondary';\n let name: 'radio-btn-unchecked' | 'radio-btn-checked' = 'radio-btn-unchecked';\n\n if (isSelected && isDisabled) {\n color = 'disabled';\n name = 'radio-btn-checked';\n } else if (isSelected && !isDisabled) {\n color = 'base';\n name = 'radio-btn-checked';\n } else if (isDisabled) {\n color = 'disabled';\n }\n\n if (error) color = 'danger';\n if (isDisabled && error) color = 'danger-disabled';\n\n return (\n <Box className={className} {...restProps}>\n <Icon color={color} name={name} />\n </Box>\n );\n};\n","import React, { ChangeEvent, FocusEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../../types';\nimport { generateResponsiveClasses } from '../../../lib/generateResponsiveClasses';\nimport { Box, BoxProps } from '../../Box/Box';\nimport { FormLabel } from '../../FormLabel/FormLabel';\nimport { RadioInputIcon } from './RadioInputIcon'; // eslint-disable-line import/no-cycle\nimport styles from './RadioInput.module.scss';\n\ntype BaseSize = 'sm' | 'md' | 'lg';\nexport type RadioSize = BaseSize | ResponsiveProp<BaseSize>;\n\nexport interface RadioInputProps {\n /**\n * Radio input name.\n */\n name: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Options for radio group.\n */\n option: {\n id: string;\n value: string;\n label: ReactNode;\n disabled?: boolean | null;\n };\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * If the radio group should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * If the radio input should be hidden to make way for a custom radio.\n */\n isHidden?: boolean;\n /**\n * The required and aria-required attributes\n */\n isRequired?: boolean;\n /**\n * If the radio group should be disabled and not focusable.\n */\n isSelected?: boolean;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The size of the radio icon.\n */\n size: RadioSize;\n}\n\nexport const RadioInput = React.forwardRef<HTMLDivElement, RadioInputProps>(\n (\n {\n name,\n onChange,\n option,\n className = '',\n isDisabled = false,\n isHidden = false,\n isRequired = false,\n isSelected = false,\n onBlur = undefined,\n onFocus = undefined,\n size = 'md',\n },\n ref\n ) => {\n const responsiveClasses = classNames(\n ...generateResponsiveClasses('size', size).map((c) => styles[c])\n );\n\n const labelProps = {\n inputId: option.id,\n isDisabled,\n display: 'flex' as BoxProps['display'],\n isRadioInputLabel: true,\n justifyContent: 'center' as BoxProps['justifyContent'],\n };\n\n const containerClasses = classNames(\n 'hyphen-components__variables__form-control',\n className,\n styles['radio-container'],\n responsiveClasses,\n { [styles.hidden]: isHidden }\n );\n\n return (\n <>\n {option && (\n <Box\n className={containerClasses}\n key={option.id}\n direction=\"row\"\n alignItems=\"center\"\n ref={ref}\n position=\"relative\"\n >\n <Box\n aria-required={isRequired}\n as=\"input\"\n id={option.id}\n type=\"radio\"\n name={name}\n value={option.value}\n checked={isSelected}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n disabled={isDisabled}\n position=\"absolute\"\n required={isRequired}\n style={{ opacity: '0' }}\n margin={isHidden ? '0' : '0 xs 0 2xs'}\n />\n {!isHidden && (\n <RadioInputIcon\n isSelected={isSelected}\n isDisabled={isDisabled}\n margin={isHidden ? '0' : '0 xs 0 2xs'}\n className={responsiveClasses}\n background={isDisabled && !isSelected ? 'secondary' : 'primary'}\n radius=\"circle\"\n />\n )}\n {option.label && (\n <FormLabel {...labelProps}>{option.label}</FormLabel>\n )}\n </Box>\n )}\n </>\n );\n }\n);\n","import React, { FC, ChangeEvent, FocusEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../Box/Box';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport { RadioInput, RadioInputProps } from './RadioInput/RadioInput'; // eslint-disable-line import/no-cycle\nimport styles from './RadioGroup.module.scss';\n\nexport interface RadioGroupProps {\n /**\n * Radio group name.\n */\n name: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Options for radio group.\n */\n options: {\n id: string;\n value: string;\n label: ReactNode;\n disabled?: boolean | null;\n }[];\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Description to be displayed below the title, and above the RadioGroup.\n */\n description?: ReactNode;\n /**\n * Whether the radios should be aligned in a row or in a column\n */\n direction?: 'row' | 'column';\n /**\n * Mark the radio group as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * If the radio group should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * If the radio group is required or not\n */\n isRequired?: boolean;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: React.ReactNode;\n /**\n * Size of the radio icons in the group.\n */\n size?: RadioInputProps['size'];\n /**\n * Title to be displayed above the RadioGroup.\n */\n title?: ReactNode;\n /**\n * The value of selected radio input.\n */\n value?: string;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const RadioGroup: FC<RadioGroupProps> = ({\n name,\n onChange,\n options,\n className = '',\n description = undefined,\n direction = 'column',\n error = false,\n isDisabled = false,\n isRequired = false,\n onBlur = undefined,\n onFocus = undefined,\n requiredIndicator = ' *',\n size = 'md',\n title = undefined,\n value = undefined,\n ...restProps\n}) => {\n const groupClasses = classNames(\n 'hyphen-components__variables__form-control',\n className,\n {\n [styles.loading]: error,\n }\n );\n\n return (\n <div\n className={classNames(styles['radio-group'], groupClasses)}\n {...restProps}\n >\n <fieldset className={styles.fieldset}>\n {(title || description) && (\n <legend className={styles.legend}>\n {title}\n {isRequired && <span>{requiredIndicator}</span>}\n {description && (\n <div className={styles.description}>{description}</div>\n )}\n </legend>\n )}\n <Box direction={direction} gap=\"sm\" className={styles.options}>\n {options &&\n options.map((option) => (\n <RadioInput\n key={option.id}\n name={name}\n onChange={onChange}\n option={option}\n isDisabled={isDisabled || option.disabled || false}\n isRequired={isRequired}\n isSelected={value === option.value}\n onBlur={onBlur}\n onFocus={onFocus}\n size={size}\n />\n ))}\n </Box>\n </fieldset>\n {error && typeof error !== 'boolean' && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport { RadioGroup, RadioGroupProps } from '../../RadioGroup/RadioGroup';\n\nexport interface FormikRadioGroupProps\n extends Omit<RadioGroupProps, 'onChange'> {\n field: FieldAttributes<HTMLInputElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: RadioGroupProps['onChange'];\n}\n\nexport const FormikRadioGroup: React.FC<FormikRadioGroupProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n options,\n ...props\n}) => (\n <RadioGroup\n {...props}\n options={options}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, { FC, FocusEvent, ReactNode, FocusEventHandler } from 'react';\nimport classNames from 'classnames';\nimport Select, {\n components,\n ClearIndicatorProps,\n OptionsOrGroups,\n OnChangeValue,\n} from 'react-select';\nimport { ResponsiveProp } from '../../types';\nimport { Z_INDEX_VALUES } from '../../lib/tokens';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { Box } from '../Box/Box';\nimport { Icon } from '../Icon/Icon';\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport styles from './SelectInput.module.scss';\nimport { GroupBase } from 'react-select/dist/declarations/src/types';\n\ntype SelectOptions = any;\ntype SelectGroupOptions = GroupBase<SelectOptions>;\nexport type SelectInputOptions = OptionsOrGroups<\n SelectOptions,\n SelectGroupOptions\n>;\n\nexport type SimulatedEventPayloadType = {\n target: {\n name: string;\n value: OnChangeValue<SelectInputOptions, boolean>;\n };\n};\n\nexport type TextInputSize =\n | 'sm'\n | 'md'\n | 'lg'\n | ResponsiveProp<'sm' | 'md' | 'lg'>;\n\nexport interface SelectInputProps {\n /**\n * The id attribute of the input.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: SimulatedEventPayloadType) => void;\n /**\n * Options for dropdown list.\n */\n options: SelectInputOptions;\n /**\n * The value(s) of select.\n */\n value: any | any[]; // eslint-disable-line @typescript-eslint/no-explicit-any\n /**\n * Autofocus select input on render.\n */\n autoFocus?: boolean;\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Visually hide the label.\n */\n hideLabel?: boolean;\n /**\n * If the input value is clearable programmatically.\n */\n isClearable?: boolean;\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * Is multi select enabled.\n */\n isMulti?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Select 'name' attribute.\n */\n name?: string;\n /**\n * A ref to portal the dropdown menu to. This is useful when the dropdown is located in a smaller container\n * and we want to avoid cutting off the menu.\n */\n menuPortalTarget?: HTMLElement;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLElement>) => void;\n /**\n * Placeholder for input.\n */\n placeholder?: string;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * The size of the text input.\n */\n size?: TextInputSize;\n /**\n * Additional props to be spread. These will be applied specifically to\n * the `react-select` component that powers the select. For full docs on\n * react-select props, [Click Here](https://react-select.com/props)\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const SelectInput: FC<SelectInputProps> = ({\n id,\n label,\n onChange,\n options,\n value,\n autoFocus = false,\n className = '',\n error = false,\n helpText,\n hideLabel = false,\n isClearable = false,\n isDisabled = false,\n isMulti = false,\n isRequired = false,\n menuPortalTarget = null,\n name = '',\n onFocus = null,\n onBlur = null,\n placeholder = undefined,\n requiredIndicator = ' *',\n size = 'md',\n ...restProps\n}) => {\n const handleChange = (values: OnChangeValue<SelectInputOptions, boolean>) => {\n const simulatedEventPayloadType: SimulatedEventPayloadType = {\n target: {\n name,\n value: values,\n },\n };\n\n onChange(simulatedEventPayloadType);\n };\n\n const handleFocus: FocusEventHandler<HTMLInputElement> = (e) => {\n if (onFocus) onFocus(e);\n };\n\n const handleBlur: FocusEventHandler<HTMLInputElement> = (e) => {\n if (onBlur) onBlur(e);\n };\n\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const wrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n 'select-input-wrapper',\n className,\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.disabled]: isDisabled,\n }\n );\n\n const inputClasses = classNames('react-select', { [styles.error]: error });\n\n const labelProps = {\n inputId: id,\n helpText,\n className: styles['select-input-label'],\n isDisabled,\n isFieldRequired: isRequired,\n requiredIndicator,\n };\n\n const ClearIndicator = (\n props: ClearIndicatorProps<\n OptionsOrGroups<SelectOptions, SelectGroupOptions>\n >\n ) => (\n <components.ClearIndicator {...props}>\n <Icon name=\"remove\" />\n </components.ClearIndicator>\n );\n\n return (\n <Box width=\"100%\" className={wrapperClasses}>\n {label && !hideLabel && <FormLabel {...labelProps}>{label}</FormLabel>}\n <Select\n {...restProps}\n inputId={id}\n aria-label={label}\n components={{ ClearIndicator }}\n aria-labelledby={label && !hideLabel ? `${id}Label` : undefined}\n className={inputClasses}\n classNamePrefix=\"react-select\"\n placeholder={placeholder}\n isClearable={isClearable}\n isDisabled={isDisabled}\n isMulti={isMulti}\n menuPortalTarget={menuPortalTarget}\n name={name}\n autoFocus={autoFocus}\n options={options}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n styles={{\n menuPortal: (base) => ({\n ...base,\n zIndex: Number(Z_INDEX_VALUES.popover),\n }),\n }}\n value={value}\n />\n {error && typeof error !== 'boolean' && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n};\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport { SelectInput, SelectInputProps } from '../../SelectInput/SelectInput';\n\nexport interface FormikSelectInputProps\n extends Omit<SelectInputProps, 'onChange'> {\n field: FieldAttributes<HTMLSelectElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: SelectInputProps['onChange'];\n}\n\nexport const FormikSelectInput: React.FC<FormikSelectInputProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n options,\n ...props\n}) => (\n <SelectInput\n {...props}\n id={id}\n label={label}\n options={options}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, {\n ChangeEvent,\n forwardRef,\n MouseEvent,\n KeyboardEvent,\n FocusEvent,\n ForwardRefExoticComponent,\n ReactNode,\n HTMLProps,\n} from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../types';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\n\nimport { Box, BoxProps } from '../Box/Box';\nimport { HelpText } from '../HelpText/HelpText';\nimport { Icon } from '../Icon/Icon';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport styles from './SelectInputInset.module.scss';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\n\nexport type SelectInputInsetSize = 'md' | 'lg';\nexport interface SelectInputInsetProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * List of options for the select input.\n */\n options: { value: string | number; label: string | number }[];\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Value of selected option. Should match the value key in the option object.\n */\n value: string | number | null;\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Props passed directly to the input element of the component\n */\n inputProps?: BoxProps & HTMLProps<HTMLInputElement>;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call when input us cleared. When this is passed,\n * the input will display an icon on the right side, for triggering this callback.\n */\n onClear?: (\n event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\n ) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * The size of the text input.\n */\n size?: SelectInputInsetSize | ResponsiveProp<SelectInputInsetSize>;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const SelectInputInset: ForwardRefExoticComponent<SelectInputInsetProps> =\n forwardRef<HTMLDivElement, SelectInputInsetProps>(\n (\n {\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n error = false,\n helpText,\n inputProps = {},\n isDisabled = false,\n isRequired = false,\n name = '',\n onBlur = undefined,\n onClear = undefined,\n onFocus = undefined,\n options,\n placeholder = 'Select...',\n requiredIndicator = ' *',\n size = 'md',\n },\n ref\n ) => {\n const placeholderOption = { value: '', label: placeholder };\n const optionsWithPlaceholder = [{ ...placeholderOption }, ...options];\n\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['text-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.error]: error,\n [styles.disabled]: isDisabled,\n [styles['is-clearable']]: onClear,\n }\n );\n\n const clearBtnClasses = classNames(styles['clear-button'], styles.md);\n\n const renderClearIcon = (): ReactNode => {\n const handleKeyPress = (\n event: KeyboardEvent<HTMLButtonElement>\n ): void => {\n if (event.keyCode === 13 && onClear) onClear(event);\n };\n\n return (\n <button\n type=\"button\"\n onClick={onClear}\n onKeyUp={handleKeyPress}\n className={clearBtnClasses}\n data-testid=\"text-input-clear-button\"\n aria-label=\"clear input\"\n >\n <Icon name=\"remove\" className=\"display-block\" />\n </button>\n );\n };\n\n const computedInputProps: SelectInputInsetProps['inputProps'] = {\n ...inputProps, // These are spread first so that we don't have top level props overwritten by the user.\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n disabled: isDisabled,\n id,\n name,\n onBlur,\n onChange,\n onFocus,\n required: isRequired,\n value: value ?? '',\n className: classNames(inputProps.className),\n };\n\n return (\n <div ref={ref}>\n <Box\n direction=\"row\"\n flex=\"auto\"\n position=\"relative\"\n className={inputWrapperClasses}\n >\n <Box as=\"select\" {...computedInputProps}>\n {optionsWithPlaceholder.map((option) => (\n <Box\n as=\"option\"\n key={option.value}\n value={option.value}\n disabled={option.value === ''}\n hidden={option.value === ''}\n color={option.value === '' ? 'secondary' : 'base'}\n >\n {option.label}\n </Box>\n ))}\n </Box>\n {!!onClear && !!value && renderClearIcon()}\n <label\n htmlFor={id}\n className={styles['select-input-label']}\n id={`${id}Label`}\n >\n {label}\n {isRequired && requiredIndicator && (\n <span>{requiredIndicator}</span>\n )}\n </label>\n </Box>\n {helpText && <HelpText>{helpText}</HelpText>}\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </div>\n );\n }\n );\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport {\n SelectInputInset,\n SelectInputInsetProps,\n} from '../../SelectInputInset/SelectInputInset';\n\nexport interface FormikSelectInputInsetProps\n extends Omit<SelectInputInsetProps, 'onChange'> {\n field: FieldAttributes<HTMLSelectElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: SelectInputInsetProps['onChange'];\n}\n\nexport const FormikSelectInputInset: React.FC<FormikSelectInputInsetProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n options,\n ...props\n}) => (\n <SelectInputInset\n {...props}\n id={id}\n label={label}\n options={options}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, {\n ChangeEvent,\n forwardRef,\n FocusEvent,\n ForwardRefExoticComponent,\n ReactNode,\n HTMLProps,\n InputHTMLAttributes,\n} from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../types';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\n\nimport { Box, BoxProps } from '../Box/Box';\nimport { HelpText } from '../HelpText/HelpText';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport styles from './TextareaInputInset.module.scss';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\n\nexport type TextareaInputInsetSize = 'md' | 'lg';\nexport interface TextareaInputInsetProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * The text value of the input. Required since our Input is a controlled component.\n */\n value: InputHTMLAttributes<HTMLInputElement>['value'];\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Props passed directly to the input element of the component\n */\n inputProps?: BoxProps & HTMLProps<HTMLInputElement>;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'maxlength' attribute.\n * NOTE: initializing the input with a value longer than the desired maxlength will not trim this value.\n */\n maxLength?: number;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * An input helper rendered before the input field value\n */\n prefix?: ReactNode;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * Textarea resize behavior\n */\n resize?: 'vertical' | 'horizontal' | 'none' | 'both';\n /**\n * number of visible text lines for the control.\n */\n rows?: number;\n /**\n * The size of the text input.\n */\n size?: TextareaInputInsetSize | ResponsiveProp<TextareaInputInsetSize>;\n /**\n * An input helper rendered after the input field value\n */\n suffix?: ReactNode;\n /**\n * The input 'type' value. Defaults to type 'text'.\n */\n type?: InputHTMLAttributes<HTMLInputElement>['type'];\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const TextareaInputInset: ForwardRefExoticComponent<TextareaInputInsetProps> =\n forwardRef<HTMLDivElement, TextareaInputInsetProps>(\n (\n {\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n className,\n error = false,\n helpText,\n inputProps = {},\n isDisabled = false,\n isRequired = false,\n maxLength = undefined,\n name = '',\n onBlur = undefined,\n onFocus = undefined,\n placeholder = ' ',\n requiredIndicator = ' *',\n resize = 'vertical',\n rows = 5,\n size = 'md',\n type = 'text',\n },\n ref\n ) => {\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['text-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.disabled]: isDisabled,\n }\n );\n\n const computedInputProps: TextareaInputInsetProps['inputProps'] = {\n ...inputProps, // These are spread first so that we don't have top level props overwritten by the user.\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n className: classNames(styles[`textarea-resize-${resize}`], {\n [styles.error]: error,\n }),\n disabled: isDisabled,\n id,\n maxLength,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n required: isRequired,\n rows,\n type,\n value,\n };\n\n return (\n <Box width=\"100\" ref={ref} className={className}>\n <Box\n display=\"block\"\n position=\"relative\"\n className={inputWrapperClasses}\n >\n <Box as=\"textarea\" {...computedInputProps} />\n <label\n htmlFor={id}\n className={styles['text-input-label']}\n id={`${id}Label`}\n >\n {label}\n {isRequired && requiredIndicator && (\n <span>{requiredIndicator}</span>\n )}\n </label>\n </Box>\n {helpText && <HelpText>{helpText}</HelpText>}\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n }\n );\n","import React, { FC } from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FormikValues,\n FieldAttributes,\n getIn,\n} from 'formik';\nimport {\n TextareaInputInset,\n TextareaInputInsetProps,\n} from '../../TextareaInputInset/TextareaInputInset';\n\nexport interface FormikTextareaInputInsetProps\n extends Omit<TextareaInputInsetProps, 'onChange'> {\n field: FieldAttributes<HTMLTextAreaElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TextareaInputInsetProps['onChange'];\n}\n\nexport const FormikTextareaInputInset: FC<FormikTextareaInputInsetProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <TextareaInputInset\n {...props}\n id={id}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, {\n ChangeEvent,\n forwardRef,\n MouseEvent,\n KeyboardEvent,\n FocusEvent,\n ForwardRefExoticComponent,\n ReactNode,\n HTMLProps,\n InputHTMLAttributes,\n} from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../types';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\n\nimport { Box, BoxProps } from '../Box/Box';\nimport { HelpText } from '../HelpText/HelpText';\nimport { Icon } from '../Icon/Icon';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport styles from './TextInputInset.module.scss';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\n\nexport type TextInputInsetSize = 'md' | 'lg';\nexport interface TextInputInsetProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * The text value of the input. Required since our Input is a controlled component.\n */\n value: InputHTMLAttributes<HTMLInputElement>['value'];\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Props passed directly to the input element of the component\n */\n inputProps?: BoxProps & HTMLProps<HTMLInputElement>;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'maxlength' attribute.\n * NOTE: initializing the input with a value longer than the desired maxlength will not trim this value.\n */\n maxLength?: number;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call when input us cleared. When this is passed,\n * the input will display an icon on the right side, for triggering this callback.\n */\n onClear?: (\n event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\n ) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * An input helper rendered before the input field value\n */\n prefix?: ReactNode;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * The size of the text input.\n */\n size?: TextInputInsetSize | ResponsiveProp<TextInputInsetSize>;\n /**\n * An input helper rendered after the input field value\n */\n suffix?: ReactNode;\n /**\n * The input 'type' value. Defaults to type 'text'.\n */\n type?: InputHTMLAttributes<HTMLInputElement>['type'];\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const TextInputInset: ForwardRefExoticComponent<TextInputInsetProps> =\n forwardRef<HTMLDivElement, TextInputInsetProps>(\n (\n {\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n error = false,\n helpText,\n inputProps = {},\n isDisabled = false,\n isRequired = false,\n maxLength = undefined,\n name = '',\n onBlur = undefined,\n onClear = undefined,\n onFocus = undefined,\n prefix = undefined,\n placeholder = ' ',\n requiredIndicator = ' *',\n suffix = undefined,\n size = 'md',\n type = 'text',\n },\n ref\n ) => {\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['text-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.error]: error,\n [styles.disabled]: isDisabled,\n [styles['is-clearable']]: onClear,\n }\n );\n\n const clearBtnClasses = classNames(styles['clear-button'], styles.md);\n\n const renderClearIcon = (): ReactNode => {\n const handleKeyPress = (\n event: KeyboardEvent<HTMLButtonElement>\n ): void => {\n if (event.keyCode === 13 && onClear) onClear(event);\n };\n\n return (\n <button\n type=\"button\"\n onClick={onClear}\n onKeyUp={handleKeyPress}\n className={clearBtnClasses}\n data-testid=\"text-input-clear-button\"\n aria-label=\"clear input\"\n >\n <Icon name=\"remove\" className=\"display-block\" />\n </button>\n );\n };\n\n const computedInputProps: TextInputInsetProps['inputProps'] = {\n ...inputProps, // These are spread first so that we don't have top level props overwritten by the user.\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n disabled: isDisabled,\n id,\n maxLength,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n required: isRequired,\n type,\n value,\n className: classNames(inputProps.className),\n };\n\n return (\n <Box width=\"100\" ref={ref}>\n <Box direction=\"row\" className={inputWrapperClasses}>\n {prefix && (\n <Box\n color=\"base\"\n alignItems=\"center\"\n justifyContent=\"center\"\n background=\"secondary\"\n className={classNames(styles.prefix, 'ws-nowrap')}\n >\n {prefix}\n </Box>\n )}\n <Box\n direction=\"row\"\n position=\"relative\"\n className=\"label-input-wrapper\"\n flex=\"auto\"\n >\n <Box as=\"input\" {...computedInputProps} />\n {!!onClear && !!value && renderClearIcon()}\n <label\n htmlFor={id}\n className={styles['text-input-label']}\n id={`${id}Label`}\n >\n {label}\n {isRequired && requiredIndicator && (\n <span>{requiredIndicator}</span>\n )}\n </label>\n </Box>\n {suffix && (\n <Box\n color=\"base\"\n background=\"secondary\"\n className={classNames(styles.suffix, 'ws-nowrap')}\n >\n {suffix}\n </Box>\n )}\n </Box>\n {helpText && <HelpText>{helpText}</HelpText>}\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n }\n );\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport {\n TextInputInset,\n TextInputInsetProps,\n} from '../../TextInputInset/TextInputInset';\n\nexport interface FormikTextInputInsetProps\n extends Omit<TextInputInsetProps, 'onChange'> {\n field: FieldAttributes<HTMLInputElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TextInputInsetProps['onChange'];\n}\n\nexport const FormikTextInputInset: React.FC<FormikTextInputInsetProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <TextInputInset\n {...props}\n id={id}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { ResponsiveProp } from '../../types';\nimport { Box, BoxProps } from '../Box/Box';\nimport { FormControl, FormControlProps } from '../FormControl/FormControl';\nimport styles from './SelectInputNative.module.scss';\n\nexport type SelectInputNativeSize = 'sm' | 'md' | 'lg';\nexport interface SelectInputNativeProps extends BoxProps, FormControlProps {\n /**\n * List of options for the select input.\n */\n options: { value: string | number; label: string | number }[];\n /**\n * onChange callback from select element.\n */\n onChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n /**\n * Value of selected option. Should match the value key in the option object.\n */\n value: string | number | null;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: React.ReactNode;\n /**\n * Size of the input. ('sm' | 'md' | 'lg')\n */\n size?: SelectInputNativeSize | ResponsiveProp<SelectInputNativeSize>;\n /**\n * Whether the input is autofocused on initial render.\n */\n autoFocus?: HTMLSelectElement['autofocus'];\n /**\n * Additional props to be spread.\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const SelectInputNative: React.FC<SelectInputNativeProps> = ({\n autoFocus = false,\n label,\n hideLabel,\n helpText,\n error,\n id,\n isDisabled,\n isRequired,\n name,\n value,\n options,\n onChange,\n placeholder = 'Select...',\n requiredIndicator = ' *',\n size = 'md',\n ...restProps\n}) => {\n const placeholderOption = { value: '', label: placeholder };\n const optionsWithPlaceholder = [{ ...placeholderOption }, ...options];\n\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const selectWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['select-input-native-wrapper'],\n ...responsiveClasses.map((className) => styles[className]),\n {\n [styles.disabled]: isDisabled,\n [styles.error]: error,\n }\n );\n\n return (\n <FormControl\n label={label}\n hideLabel={hideLabel}\n id={id}\n error={error}\n helpText={helpText}\n isDisabled={isDisabled}\n isRequired={isRequired}\n requiredIndicator={requiredIndicator}\n {...restProps}\n >\n <Box className={selectWrapperClasses}>\n <Box\n as=\"select\"\n aria-label={label}\n aria-labelledby={label && !hideLabel ? `${id}Label` : undefined}\n aria-required={isRequired}\n value={value ?? ''}\n onChange={onChange}\n color={!value ? 'disabled' : 'base'}\n autoFocus={autoFocus}\n disabled={isDisabled}\n name={name}\n id={id}\n required={isRequired}\n >\n {optionsWithPlaceholder.map((option) => (\n <Box\n as=\"option\"\n key={option.value}\n value={option.value}\n disabled={option.value === ''}\n hidden={option.value === ''}\n color={option.value === '' ? 'disabled' : 'base'}\n >\n {option.label}\n </Box>\n ))}\n </Box>\n </Box>\n </FormControl>\n );\n};\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport {\n SelectInputNative,\n SelectInputNativeProps,\n} from '../../SelectInputNative/SelectInputNative';\n\nexport interface FormikSelectInputNativeProps\n extends Omit<SelectInputNativeProps, 'onChange'> {\n field: FieldAttributes<HTMLSelectElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: SelectInputNativeProps['onChange'];\n}\n\nexport const FormikSelectInputNative: React.FC<\n FormikSelectInputNativeProps\n> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n options,\n id,\n label,\n ...props\n}) => (\n <SelectInputNative\n {...props}\n options={options}\n id={id}\n label={label}\n onChange={onChange ?? formikOnChange}\n name={name}\n onBlur={onBlur}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport { TextInput, TextInputProps } from '../../TextInput/TextInput';\n\nexport interface FormikTextInputProps extends Omit<TextInputProps, 'onChange'> {\n field: FieldAttributes<HTMLInputElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TextInputProps['onChange'];\n}\n\nexport const FormikTextInput: React.FC<FormikTextInputProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <TextInput\n {...props}\n id={id}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, { FC, ChangeEvent, FocusEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../types';\nimport { Box, BoxProps } from '../Box/Box';\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport styles from './TextareaInput.module.scss';\n\nexport type TextareaInputSize = 'sm' | 'md' | 'lg';\nexport interface TextareaInputProps extends Omit<BoxProps, 'as' | 'width'> {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLTextAreaElement>) => void;\n /**\n * The text value of the input. Required since our Input is a controlled component.\n */\n value: string;\n /**\n * The input's 'autocomplete' attribute.\n */\n autoComplete?: boolean | string;\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Visually hide the label.\n */\n hideLabel?: boolean;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'maxlength' attribute.\n * NOTE: initializing the input with a value longer than the desired maxlength will not trim this value.\n */\n maxLength?: number;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * Textarea resize behavior\n */\n resize?: 'vertical' | 'horizontal' | 'none' | 'both';\n /**\n * number of visible text lines for the control.\n */\n rows?: number;\n /**\n * The size of the text input.\n */\n size?: TextareaInputSize | ResponsiveProp<TextareaInputSize>;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const TextareaInput: FC<TextareaInputProps> = ({\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n className = undefined,\n error = false,\n helpText,\n hideLabel = false,\n isDisabled = false,\n isRequired = false,\n maxLength = undefined,\n name = undefined,\n onBlur = undefined,\n onFocus = undefined,\n placeholder = '',\n requiredIndicator = ' *',\n resize = 'vertical',\n rows = 3,\n size = 'md',\n ...restProps\n}) => {\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['textarea-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.error]: error,\n [styles.disabled]: isDisabled,\n }\n );\n\n const inputProps = {\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label && !hideLabel ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n className: classNames(styles[`textarea-resize-${resize}`]),\n disabled: isDisabled,\n id,\n maxLength,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n required: isRequired,\n rows,\n value,\n };\n\n const labelProps = {\n inputId: id,\n helpText,\n className: styles['textarea-input-label'],\n isDisabled,\n isFieldRequired: isRequired,\n requiredIndicator,\n };\n\n return (\n <Box width=\"100%\" className={className} {...restProps}>\n {label && !hideLabel && <FormLabel {...labelProps}>{label}</FormLabel>}\n <Box display=\"block\" className={inputWrapperClasses}>\n <Box as=\"textarea\" {...inputProps} />\n </Box>\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FormikValues,\n FieldAttributes,\n getIn,\n} from 'formik';\nimport {\n TextareaInput,\n TextareaInputProps,\n} from '../../TextareaInput/TextareaInput';\n\nexport interface FormikTextareaInputProps\n extends Omit<TextareaInputProps, 'onChange'> {\n field: FieldAttributes<HTMLTextAreaElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TextareaInputProps['onChange'];\n}\n\nexport const FormikTextareaInput: FC<FormikTextareaInputProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <TextareaInput\n {...props}\n id={id}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, { FC } from 'react';\nimport { SelectInput, SelectInputProps } from '../SelectInput/SelectInput';\n\nexport type TimePickerProps = Omit<SelectInputProps, 'options'> & {\n /**\n * Options to govern the display of the option labels in the select.\n * This is a direct passthrough to the second argument of JS `toLocaleTimeString`.\n * [More](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString)\n */\n dateDisplayOptions?: Intl.DateTimeFormatOptions;\n /**\n * End hour and minute\n */\n endTime?: { hour: number; minute: number };\n /**\n * Interval of displayed times (in seconds). Defaults to 900 seconds (15 minutes).\n */\n interval?: number;\n /**\n * Locale(s) to be passed down in order to format the label values in the select.\n * This corresponds to the first argument of JS `toLocaleTimeString`.\n * [More](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString)\n */\n locales?: string | string[];\n /**\n * Start hour and minute\n */\n startTime?: { hour: number; minute: number };\n};\n\nexport const TimePicker: FC<TimePickerProps> = ({\n id,\n name,\n label,\n onChange,\n value,\n dateDisplayOptions = { hour: '2-digit', minute: '2-digit' },\n endTime = undefined,\n interval = 900,\n locales = 'en-US',\n placeholder = 'HH:MM',\n startTime = undefined,\n ...restProps\n}) => {\n const generateTimes = () => {\n const first = new Date();\n first.setHours(startTime?.hour || 0, startTime?.minute || 0, 0, 0);\n\n const last = new Date();\n last.setHours(\n endTime?.hour || first.getHours() + 24,\n endTime?.minute || 0,\n 0,\n 0\n );\n\n const timeOptions = [];\n const currentTime: Date = new Date(first);\n\n while (currentTime < last) {\n timeOptions.push({\n value: currentTime.toISOString(),\n label: currentTime.toLocaleTimeString(locales, dateDisplayOptions),\n });\n currentTime.setSeconds(first.getSeconds() + interval);\n }\n\n return timeOptions;\n };\n\n return (\n <SelectInput\n {...restProps}\n id={id}\n name={name}\n label={label}\n onChange={onChange}\n options={generateTimes()}\n placeholder={placeholder}\n value={value}\n />\n );\n};\n","import React, { FC } from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FormikValues,\n FieldAttributes,\n getIn,\n} from 'formik';\nimport { TimePicker, TimePickerProps } from '../../TimePicker/TimePicker';\n\nexport interface FormikTimePickerProps\n extends Omit<TimePickerProps, 'onChange'> {\n field: FieldAttributes<HTMLSelectElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TimePickerProps['onChange'];\n}\n\nexport const FormikTimePicker: FC<FormikTimePickerProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n options,\n onChange,\n ...props\n}) => (\n <TimePicker\n {...props}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n options={options}\n />\n);\n","import React, { FC } from 'react';\nimport {\n SelectInputNative,\n SelectInputNativeProps,\n} from '../SelectInputNative/SelectInputNative';\n\nexport interface TimePickerNativeProps\n extends Omit<SelectInputNativeProps, 'options'> {\n /**\n * Options to govern the display of the option labels in the select.\n * This is a direct passthrough to the second argument of JS `toLocaleTimeString`.\n * [More](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString)\n */\n dateDisplayOptions?: Intl.DateTimeFormatOptions;\n /**\n * End hour and minute\n */\n endTime?: { hour: number; minute: number };\n /**\n * Interval of displayed times (in seconds). Defaults to 900 seconds (15 minutes).\n */\n interval?: number;\n /**\n * Locale(s) to be passed down in order to format the label values in the select.\n * This corresponds to the first argument of JS `toLocaleTimeString`.\n * [More](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString)\n */\n locales?: string | string[];\n /**\n * Start hour and minute\n */\n startTime?: { hour: number; minute: number };\n /**\n * Should be ISO timestamp as returned by `onChange`, and matching value of option object.\n */\n value: SelectInputNativeProps['value'];\n}\n\nexport const TimePickerNative: FC<TimePickerNativeProps> = ({\n id,\n name,\n label,\n onChange,\n value,\n dateDisplayOptions = { hour: '2-digit', minute: '2-digit' },\n endTime = undefined,\n interval = 900,\n locales = 'en-US',\n placeholder = 'HH:MM',\n startTime = undefined,\n ...restProps\n}) => {\n const generateTimes = () => {\n const first = new Date();\n first.setHours(startTime?.hour || 0, startTime?.minute || 0, 0, 0);\n\n const last = new Date();\n last.setHours(\n endTime?.hour || first.getHours() + 24,\n endTime?.minute || 0,\n 0,\n 0\n );\n\n const timeOptions = [];\n const currentTime: Date = new Date(first);\n\n while (currentTime < last) {\n timeOptions.push({\n value: currentTime.toISOString(),\n label: currentTime.toLocaleTimeString(locales, dateDisplayOptions),\n });\n currentTime.setSeconds(first.getSeconds() + interval);\n }\n\n return timeOptions;\n };\n\n const options = generateTimes();\n\n return (\n <SelectInputNative\n {...restProps}\n id={id}\n name={name}\n label={label}\n onChange={onChange}\n options={options}\n placeholder={placeholder}\n value={value}\n />\n );\n};\n","import React, { FC } from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FormikValues,\n FieldAttributes,\n getIn,\n} from 'formik';\nimport {\n TimePickerNative,\n TimePickerNativeProps,\n} from '../../TimePickerNative/TimePickerNative';\n\nexport interface FormikTimePickerNativeProps\n extends Omit<TimePickerNativeProps, 'onChange'> {\n field: FieldAttributes<HTMLTextAreaElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange: TimePickerNativeProps['onChange'];\n}\n\nexport const FormikTimePickerNative: FC<FormikTimePickerNativeProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n ...props\n}) => (\n <TimePickerNative\n {...props}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import { Box, BoxProps } from '../Box/Box';\nimport React, { ChangeEvent, FC, FocusEvent, ReactNode } from 'react';\n\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport { ResponsiveProp } from '../../types';\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport styles from './Toggle.module.scss';\n\nexport type ToggleSize = 'sm' | 'md' | 'lg';\nexport interface ToggleProps {\n /**\n * The id attribute of the input.\n */\n id: string;\n /**\n * The toggle input \"checked\" attribute.\n */\n isChecked: boolean;\n /**\n * Custom content to be displayed to right of toggle.\n */\n label: string;\n /**\n * Callback function when input is changed.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Determines if the label is not shown for stylistic reasons.\n * Note the label is still a required prop and will be used as the aria-label for accessibility reasons.\n */\n hideLabel?: boolean;\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Callback function when input is blurred.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function when input is focused.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: React.ReactNode;\n /**\n * The size of the toggle.\n */\n size?: ToggleSize | ResponsiveProp<ToggleSize>;\n}\n\nexport const Toggle: FC<ToggleProps> = ({\n id,\n isChecked,\n label,\n onChange,\n className = '',\n error = false,\n hideLabel = false,\n helpText,\n isDisabled = false,\n isRequired = false,\n onBlur = undefined,\n onFocus = undefined,\n requiredIndicator = ' *',\n size = 'md',\n}) => {\n const handleBlur = (event: FocusEvent<HTMLInputElement>): void => {\n if (onBlur) onBlur(event);\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>): void => {\n onChange(event);\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>): void => {\n if (onFocus) onFocus(event);\n };\n\n const wrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n { [styles.disabled]: isDisabled }\n );\n const trackClasses = classNames(\n styles['toggle-track'],\n ...generateResponsiveClasses('track-size', size).map((c) => styles[c]),\n {\n [styles.error]: error,\n }\n );\n const thumbClasses = classNames(\n styles['toggle-thumb'],\n ...generateResponsiveClasses('thumb-size', size).map((c) => styles[c])\n );\n\n const inputProps = {\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label && !hideLabel ? `${id}Label` : undefined,\n id,\n checked: !!isChecked,\n disabled: isDisabled,\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus,\n required: isRequired,\n type: 'checkbox',\n className: styles['toggle-input'],\n };\n\n const labelProps = {\n inputId: id,\n isDisabled,\n display: 'flex' as BoxProps['display'],\n direction: 'row' as BoxProps['direction'],\n childGap: 'md' as BoxProps['childGap'],\n alignItems: helpText ? 'flex-start' : ('center' as BoxProps['alignItems']),\n isFieldRequired: isRequired,\n requiredIndicator,\n };\n\n return (\n <Box className={className}>\n <Box className={wrapperClasses}>\n <FormLabel {...labelProps}>\n <input {...inputProps} />\n <span\n aria-hidden=\"true\"\n className={trackClasses}\n data-testid=\"toggleTrack\"\n >\n <span className={thumbClasses} data-testid=\"toggleThumb\" />\n </span>\n {!hideLabel && (\n <Box\n gap=\"2xs\"\n className={\n helpText && (size === 'md' || size === 'lg') ? 'm-top-2xs' : ''\n }\n >\n {label && <div>{label}</div>}\n {helpText && (\n <Box\n as=\"p\"\n display=\"block\"\n fontSize=\"sm\"\n fontWeight=\"normal\"\n color=\"secondary\"\n >\n {helpText}\n </Box>\n )}\n </Box>\n )}\n </FormLabel>\n </Box>\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n};\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport { Toggle } from '../../Toggle/Toggle';\n\nexport interface FormikToggleProps {\n field: FieldAttributes<HTMLTextAreaElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n id: string;\n label: string;\n}\n\nexport const FormikToggle: React.FC<FormikToggleProps> = ({\n field: {\n name,\n onBlur, // eslint-disable-line no-unused-vars\n onChange, // eslint-disable-line no-unused-vars\n value,\n },\n form: { touched, errors },\n ...props\n}) => (\n <Toggle\n error={getIn(touched, name) && getIn(errors, name)}\n isChecked={value}\n onBlur={onBlur}\n onChange={onChange} // eslint-disable-line\n {...props}\n />\n);\n","import React, { FC } from 'react';\nimport { Box, BoxProps } from '../../../Box/Box';\n\nexport type ModalFooterProps = Omit<\n BoxProps,\n 'as' | 'background' | 'borderColor' | 'borderWidth' | 'radius'\n>;\n\nexport const ModalFooter: FC<ModalFooterProps> = ({\n children,\n padding = 'xl',\n direction = 'row',\n alignItems = 'center',\n justifyContent = 'flex-end',\n background = 'secondary',\n gap = 'sm',\n style,\n ...restProps\n}) => (\n <Box\n background={background}\n padding={padding}\n direction={direction}\n alignItems={alignItems}\n justifyContent={justifyContent}\n borderWidth=\"sm 0 0 0\"\n borderColor=\"default\"\n gap={gap}\n style={{\n flexShrink: 0,\n ...style,\n }}\n {...restProps}\n >\n {children}\n </Box>\n);\n","import React, { FC } from 'react';\nimport { Box } from '../../../Box/Box';\nimport { Icon } from '../../../Icon/Icon';\nimport styles from '../../Modal.module.scss';\n\nexport type ModalHeaderProps = {\n /**\n * id of the element containing the title, used by the Modal `aria-labelledby` prop\n */\n id: string;\n /**\n * Modal's header title\n */\n title?: string;\n /**\n * If defined, will render a 'x' close button on the right side of the ModalHeader\n */\n onDismiss?: (event?: React.SyntheticEvent) => void;\n};\n\nexport const ModalHeader: FC<ModalHeaderProps> = ({\n id,\n onDismiss,\n title = undefined,\n}) => {\n const justifyContentValue =\n title === undefined && onDismiss ? 'flex-end' : 'space-between';\n\n return (\n <Box\n padding=\"xl\"\n direction=\"row\"\n alignItems=\"center\"\n justifyContent={justifyContentValue}\n borderWidth=\"0 0 sm 0\"\n borderColor=\"default\"\n style={{\n flexShrink: 0,\n }}\n >\n {title && (\n <Box as=\"h4\" fontSize={{ base: 'md', tablet: 'lg' }} id={id}>\n {title}\n </Box>\n )}\n {onDismiss && (\n <button\n aria-label=\"close\"\n type=\"button\"\n className={styles['modal-close']}\n onClick={onDismiss}\n >\n <Icon name=\"remove\" />\n </button>\n )}\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, BoxProps } from '../../../Box/Box';\n\nexport type ModalBodyProps = BoxProps;\n\nexport const ModalBody: FC<ModalBodyProps> = ({\n children,\n flex = 'auto',\n padding = 'xl',\n overflow = 'auto',\n height = '100',\n ...restProps\n}) => (\n <Box\n padding={padding}\n flex={flex}\n overflow={overflow}\n height={height}\n style={{ position: 'relative' }}\n {...restProps}\n >\n {children}\n </Box>\n);\n","import React, { ReactNode, RefObject, forwardRef, useCallback } from 'react';\nimport ReactModal from 'react-modal';\nimport FocusLock from 'react-focus-lock';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport classNames from 'classnames';\nimport { CssOverflowValue } from '../../types';\nimport { getDimensionCss } from '../../lib/getDimensionCss';\nimport { Box, BoxProps } from '../Box/Box';\nimport { ModalFooter, ModalHeader, ModalBody } from './components';\nimport styles from './Modal.module.scss';\n\nexport interface ModalProps {\n /**\n * Handle zoom/pinch gestures on iOS devices when scroll locking is enabled.\n */\n allowPinchZoom?: boolean;\n /**\n * Each modal needs to be properly labeled to provide context for users with\n * assistive technology such as screen readers. If a modal is announced to\n * the user without a label, it can be confusing and difficult to navigate.\n */\n ariaLabel?: string;\n /**\n * The id of the element that should be used as the Modal's label by assistive\n * technologies like screen readers. Usually the id is set on the `Modal.Header`\n */\n ariaLabelledBy?: string;\n /**\n * Contents of the dialog.\n */\n children?: ReactNode;\n /**\n * Additional ClassNames to add to dialog.\n */\n className?: string;\n /**\n * The ref of the container where the dialog will be inserted into the DOM.\n * By default, Modals are inserted in the document.body, but if need be they can\n * be scoped as necessary.\n */\n containerRef?: React.RefObject<Node>;\n /**\n * At mobile viewport widths, the modal will take up the fullscreen\n */\n fullScreenMobile?: boolean;\n /**\n * By default the first focusable element will receive focus when the dialog\n * opens but you can provide a ref to focus instead.\n *\n * @see Docs https://reach.tech/dialog#dialog-initialfocusref\n */\n initialFocusRef?: RefObject<HTMLDivElement>;\n /**\n * Whether the modal is visible or not\n */\n isOpen: boolean;\n /**\n * Max width for modal content. Uses the same maxWidth prop as the `Box` component,\n * and as such can be responsive as well.\n */\n maxWidth?: BoxProps['maxWidth'];\n /**\n * Function that is called whenever the user hits \"Escape\" key or clicks outside the modal.\n */\n onDismiss: (event?: React.SyntheticEvent) => void;\n /**\n * The css overflow behavior of the Modal\n */\n overflow?: CssOverflowValue;\n /**\n * Allows spread props\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const ModalBaseComponent: React.FC<ModalProps> = forwardRef<\n HTMLDivElement,\n ModalProps\n>(\n (\n {\n ariaLabel,\n ariaLabelledBy,\n allowPinchZoom = false,\n children,\n className,\n containerRef = undefined,\n fullScreenMobile = false,\n initialFocusRef,\n isOpen,\n maxWidth = undefined,\n onDismiss,\n overflow = 'hidden',\n ...restProps\n },\n ref\n ) => {\n const activateFocusLock = useCallback(() => {\n setTimeout(() => {\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus();\n }\n }, 100);\n }, [initialFocusRef]);\n\n const maxWidthCss = getDimensionCss('mw', maxWidth);\n\n const overlayClassnames = classNames(styles.overlay, styles.modal, {\n fullscreen: fullScreenMobile,\n });\n const contentClassnames = classNames(\n styles['modal-content'],\n className,\n maxWidthCss.classes,\n {\n [`overflow-${overflow}`]: overflow,\n }\n );\n\n const parentElement = containerRef?.current\n ? (containerRef.current as HTMLElement)\n : undefined;\n return (\n <FocusLock\n autoFocus\n returnFocus\n disabled={!isOpen}\n onActivation={activateFocusLock}\n crossFrame\n >\n <RemoveScroll allowPinchZoom={allowPinchZoom} enabled={isOpen}>\n <Box ref={ref}>\n <ReactModal\n isOpen={isOpen}\n overlayClassName={overlayClassnames}\n className={contentClassnames}\n onRequestClose={onDismiss}\n ariaHideApp={false}\n parentSelector={parentElement ? () => parentElement : undefined}\n {...restProps}\n >\n <Box\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n style={{ ...maxWidthCss.styles }}\n height=\"100\"\n >\n {children}\n </Box>\n </ReactModal>\n </Box>\n </RemoveScroll>\n </FocusLock>\n );\n }\n);\n\nexport interface ModalStatic {\n Body: typeof ModalBody;\n Header: typeof ModalHeader;\n Footer: typeof ModalFooter;\n}\n\nexport type ModalWithStaticComponents = typeof ModalBaseComponent & ModalStatic;\n\n// Actual component is wrapped in an IIFE for the export\n// To allow tree-shaking even with static properties (subcomponents in this case).\nexport const Modal = (() => {\n const Modal = ModalBaseComponent as ModalWithStaticComponents; // eslint-disable-line no-shadow\n Modal.Body = ModalBody;\n Modal.Footer = ModalFooter;\n Modal.Header = ModalHeader;\n return Modal;\n})();\n","export interface Page {\n isPage: boolean;\n pageNumber: number;\n}\n\nexport const generatePages = (\n pageRange: number,\n pageTotal: number,\n activePage: number,\n numberOfPagesDisplayed: number\n): Page[] => {\n const pages: Page[] = [];\n let startingPage = 1;\n let endingPage = pageRange;\n\n if (pageTotal <= pageRange) {\n startingPage = 1;\n endingPage = pageRange;\n } else if (activePage + numberOfPagesDisplayed > pageTotal) {\n startingPage = pageTotal - (numberOfPagesDisplayed - 1);\n endingPage = startingPage + (numberOfPagesDisplayed - 1);\n } else if (\n activePage > numberOfPagesDisplayed &&\n activePage + numberOfPagesDisplayed <= pageTotal\n ) {\n startingPage = activePage - Math.floor(numberOfPagesDisplayed / 2);\n endingPage = startingPage + (numberOfPagesDisplayed - 1);\n }\n\n for (let i = startingPage; i <= endingPage; i += 1) {\n pages.push({ pageNumber: i, isPage: true });\n }\n\n if (pageTotal > pages[pages.length - 1]?.pageNumber) {\n const secondToLastPage =\n pageTotal !== activePage + numberOfPagesDisplayed\n ? activePage + numberOfPagesDisplayed\n : pageTotal - 1;\n\n // only add ellipsis if there are more than 0 pages between the final page and the rest of the pages\n if (pageTotal > numberOfPagesDisplayed + 1) {\n pages.push({ pageNumber: secondToLastPage, isPage: false });\n }\n\n pages.push({ pageNumber: pageTotal, isPage: true });\n }\n\n if (activePage > numberOfPagesDisplayed) {\n const threeDotsPage =\n activePage - numberOfPagesDisplayed > 1\n ? activePage - numberOfPagesDisplayed\n : activePage - numberOfPagesDisplayed + 1;\n\n pages.unshift(\n { pageNumber: 1, isPage: true },\n { pageNumber: threeDotsPage, isPage: false }\n );\n }\n\n return [...pages];\n};\n\n// Return the true page range in cases\n// where number of pages wanted for display is larger than the actual page total.\nexport const generatePageRange = (\n numberOfPagesDisplayed: number,\n pageTotal: number\n): number =>\n numberOfPagesDisplayed > pageTotal ? pageTotal : numberOfPagesDisplayed;\n\nexport const generatePageTotal = (\n totalItemsCount: number,\n itemsPerPage: number\n): number => Math.ceil(totalItemsCount / itemsPerPage);\n\n// Returns the range of current items displayed based on the specific page.\n// E.G: if the items per page is 20 and we are on page 1, it will return:\n// { first: 1, last: 20 }\nexport const generateActiveListRange = (\n activePage: number,\n totalItemsCount: number,\n itemsPerPage: number\n): { first?: number; last?: number } => {\n const activePageRange: { first?: number; last?: number } = {};\n\n const pageTotal = generatePageTotal(totalItemsCount, itemsPerPage);\n\n if (activePage === 1) {\n activePageRange.first = 1;\n activePageRange.last =\n totalItemsCount > itemsPerPage ? itemsPerPage : totalItemsCount;\n } else if (activePage < pageTotal) {\n activePageRange.first = activePage * itemsPerPage - (itemsPerPage - 1);\n activePageRange.last = activePage * itemsPerPage;\n } else {\n activePageRange.first = activePage * itemsPerPage - (itemsPerPage - 1);\n activePageRange.last = totalItemsCount;\n }\n\n return activePageRange;\n};\n","import React, { FC, ReactNode, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../Box/Box';\nimport { Button } from '../Button/Button';\nimport {\n generatePages,\n generatePageRange,\n generatePageTotal,\n generateActiveListRange,\n} from './Pagination.utilities';\n\nexport interface PaginationProps {\n /**\n * The current page number being displayed.\n */\n activePage: number;\n /**\n * The number of list items contained in a page.\n */\n itemsPerPage: number;\n /**\n * Callback fired when the user clicks a page or prev/next button.\n */\n onChange: (pageNumber: number) => void;\n /**\n * The total number of items in the list\n */\n totalItemsCount: number;\n /**\n * Boolean to determine if individual page buttons (or dropdown are visible). Takes a `ResponsiveProp`\n * if you want to render it differently at different breakpoints\n */\n arePagesVisible?: boolean;\n /**\n * Custom class to pass down to the pagination container.\n */\n className?: string;\n /**\n * Pass true to render a version of Pagination with smaller buttons.\n */\n isCompact?: boolean;\n /**\n * Boolean to determine if the list totals (and current range) are visible.\n * NOTE: these are hidden on mobile regardless of this prop value.\n */\n isTotalVisible?: boolean;\n /**\n * The text (or react node) to pass to the NEXT page button.\n */\n nextPageText?: string | ReactNode;\n /**\n * Number of pages shown in paginator, not including navigation blocks (prev, next), as well as first, last pages.\n * In other words the number of pages displayed 'in the middle', that the user can navigate to.\n */\n numberOfPagesDisplayed?: number;\n /**\n * The text (or react node) to pass to the PREVIOUS page button.\n */\n prevPageText?: string | ReactNode;\n}\n\nexport const Pagination: FC<PaginationProps> = ({\n activePage,\n itemsPerPage,\n onChange,\n totalItemsCount,\n arePagesVisible = false,\n className = undefined,\n isCompact = false,\n isTotalVisible = true,\n nextPageText = 'Next',\n numberOfPagesDisplayed = 5,\n prevPageText = 'Previous',\n}) => {\n const pageTotal = useMemo(\n () => generatePageTotal(totalItemsCount, itemsPerPage),\n [totalItemsCount, itemsPerPage]\n );\n\n const pageRange = useMemo(\n () => generatePageRange(numberOfPagesDisplayed, pageTotal),\n [numberOfPagesDisplayed, pageTotal]\n );\n\n const activeListRange = useMemo(\n () => generateActiveListRange(activePage, totalItemsCount, itemsPerPage),\n [activePage, totalItemsCount, itemsPerPage]\n );\n\n const pages = useMemo(\n () =>\n generatePages(pageRange, pageTotal, activePage, numberOfPagesDisplayed),\n [pageRange, pageTotal, activePage, numberOfPagesDisplayed]\n );\n\n return (\n <Box\n as=\"nav\"\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n className={classNames(className)}\n >\n <Box\n direction=\"row\"\n justifyContent={{ base: 'space-between' }}\n flex={{ base: 'auto', tablet: 'none' }}\n gap={isCompact ? 'xs' : 'sm'}\n >\n <Button\n variant=\"secondary\"\n size={isCompact ? 'sm' : 'md'}\n isDisabled={activePage === 1}\n onClick={() => onChange(activePage - 1)}\n >\n {prevPageText}\n </Button>\n {arePagesVisible && (\n <Box direction=\"row\" gap=\"2xs\">\n {pages.map(({ pageNumber, isPage }) => {\n console.log(activePage, pageNumber, isPage);\n return (\n <Button\n key={pageNumber}\n onClick={() => onChange(pageNumber)}\n variant={pageNumber === activePage ? 'secondary' : 'tertiary'}\n size={isCompact ? 'sm' : 'md'}\n style={{\n minWidth: isCompact ? '33px' : '42px',\n }}\n className={className}\n >\n {isPage ? pageNumber : '...'}\n </Button>\n );\n })}\n </Box>\n )}\n <Button\n variant=\"secondary\"\n size={isCompact ? 'sm' : 'md'}\n isDisabled={activePage === pageTotal}\n onClick={() => onChange(activePage + 1)}\n >\n {nextPageText}\n </Button>\n </Box>\n <Box\n as=\"p\"\n display={{\n base: 'none',\n tablet: 'block',\n }}\n fontSize={isCompact ? 'sm' : 'md'}\n >\n {isTotalVisible &&\n `Showing ${activeListRange.first}-${activeListRange.last} of ${totalItemsCount}`}\n </Box>\n </Box>\n );\n};\n","import { useLayoutEffect, useEffect } from 'react';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n","import React, { useState, createContext } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../hooks/useIsomorphicLayoutEffect/useIsomorphicLayouEffect';\n\nexport interface ResponsiveContextShape {\n isCreated: boolean;\n innerWidth?: number;\n innerHeight?: number;\n outerWidth?: number;\n outerHeight?: number;\n}\n\nexport const ResponsiveContext = createContext<ResponsiveContextShape>({\n isCreated: false,\n});\n\nexport interface ResponsiveProviderProps {\n children?: React.ReactNode;\n /**\n * Time (in milliseconds) to delay execution of resize handler. Default is 50.\n */\n throttle?: number;\n}\n\nexport const ResponsiveProvider: React.FC<ResponsiveProviderProps> = ({\n children = null,\n throttle = 50,\n}) => {\n const [innerWidth, setInnerWidth] = useState(0);\n const [innerHeight, setInnerHeight] = useState(0);\n const [outerWidth, setOuterWidth] = useState(0);\n const [outerHeight, setOuterHeight] = useState(0);\n\n const handleWindowResize = () => {\n setInnerWidth(window?.innerWidth ?? 0);\n setInnerHeight(window?.innerHeight ?? 0);\n setOuterWidth(window?.outerWidth ?? 0);\n setOuterHeight(window?.outerHeight ?? 0);\n };\n\n useIsomorphicLayoutEffect(() => {\n // eslint-disable-line consistent-return\n if (typeof window !== 'undefined') {\n // Set values on render if window wasn't available for useState initialization.\n handleWindowResize();\n\n let timeoutId: any; // eslint-disable-line\n const throttledResize = () => {\n // prevent execution of previous setTimeout\n clearTimeout(timeoutId);\n // change width from the state object after throttle time has elapsed.\n timeoutId = setTimeout(handleWindowResize, throttle);\n };\n\n window.addEventListener('resize', throttledResize);\n\n return () => window.removeEventListener('resize', throttledResize);\n }\n }, [throttle]);\n\n return (\n <ResponsiveContext.Provider\n value={{\n innerWidth,\n innerHeight,\n outerHeight,\n outerWidth,\n isCreated: true,\n }}\n >\n {children}\n </ResponsiveContext.Provider>\n );\n};\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../../../Box/Box';\nimport styles from './TableBodyCell.module.scss';\n\nexport interface TableBodyCellProps {\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Children node to be rendered.\n */\n children?: ReactNode;\n /**\n * Custom class to be applied to `<tr>` element.\n */\n className?: string;\n /**\n * Remove borders around td elements.\n */\n isBorderless?: boolean;\n /**\n * Reduces padding inside table cells.\n */\n isCompact?: boolean;\n /**\n * Will stick to either the left or right side of a table during horizontal scroll.\n */\n sticky?: 'left' | 'right';\n /**\n * Truncates the cell contents based on width established by `Column`\n * NOTE: Truncate only on cells with primitive data types.\n */\n truncateOverflow?: boolean;\n /**\n * Placeholder for an empty cell, will be rendered when content is `null` `undefined`\n * or `''`. Placeholders will not be rendered on values of `0`.\n */\n emptyCellPlaceholder?: ReactNode;\n /**\n * Fixed width for a particular cell.\n * Value should be taken from column config so it matches its parent.\n */\n width?: number;\n}\n\nconst TableBodyCell: FC<TableBodyCellProps> = ({\n align = 'left',\n children = null,\n className = '',\n emptyCellPlaceholder = null,\n isBorderless = false,\n isCompact = false,\n sticky = undefined,\n truncateOverflow = false,\n width = undefined,\n}) => {\n const columnIsSticky = sticky === 'left' || sticky === 'right';\n const tableCellClasses = classNames(\n styles['table-cell'],\n {\n [styles.truncated]: truncateOverflow,\n [styles.compact]: isCompact,\n [styles.borderless]: isBorderless,\n [styles['sticky-column']]: columnIsSticky,\n [styles['sticky-column-left']]: sticky === 'left',\n [styles['sticky-column-right']]: sticky === 'right',\n [styles['align-right']]: align === 'right',\n [styles['align-center']]: align === 'center',\n },\n className\n );\n\n return (\n <Box\n as={columnIsSticky ? 'th' : 'td'}\n className={tableCellClasses}\n display=\"table-cell\"\n width={`${width}px`}\n style={{\n ...(width && { minWidth: `${width}px`, maxWidth: `${width}px` }),\n }}\n scope=\"row\"\n >\n {children === null || typeof children === 'undefined' || children === ''\n ? emptyCellPlaceholder\n : children}\n </Box>\n );\n};\n\nexport default TableBodyCell;\n","import React, { FC, Key, KeyboardEvent, MouseEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../../../Box/Box';\nimport { Icon } from '../../../Icon/Icon';\nimport { Column, EventWithColumnKey } from '../../../../types';\nimport styles from './TableHeaderCell.module.scss';\n\nexport interface TableHeaderCellProps {\n /**\n * Title to display for the column.\n */\n column: Column;\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Custom class to apply to the `<th>` element.\n */\n className?: string;\n /**\n * Key of corresponding data value in the table.\n */\n dataKey?: Key;\n /**\n * Remove borders around th elements.\n */\n isBorderless?: boolean;\n /**\n * Determines if table header cells should render as compact (less padding);\n */\n isCompact?: boolean;\n /**\n * If table scrolls vertically, header will remain stuck to the top of the table, and not scroll away.\n */\n hasStickyHeader?: boolean;\n /**\n * Boolean to mark if a column is sortable. This will show the sorting icons. Use\n * in conjunction with the `sortDirection` prop to determine which icon is shown.\n */\n isSortable?: boolean;\n /**\n * Callback function to execute when a sortable column's header is clicked.\n * Column can be sorted without providing an onSort method, it means that the arrows\n * will not be clickable, but they will still represent the sort state\n * of a column as determined by the `sortDirection` prop.\n */\n onSort?: (event: EventWithColumnKey) => void;\n /**\n * The key of the sorted column and its sort direction.\n */\n sortedColumn?: {\n dataKey: string | undefined;\n sortDirection: 'none' | 'ascending' | 'descending' | undefined;\n };\n /**\n * Will stick to either the left or right side of a table during horizontal scroll.\n */\n sticky?: 'left' | 'right';\n /**\n * Whether the text should be cut off with ellipsis if it exceeds the width of the column.\n */\n truncateOverflow?: boolean;\n /**\n * Width of the column, if using the `useFixedWidthColumns` prop is set to true.\n */\n width?: number;\n}\n\n// eslint-disable-line import/prefer-default-export\nexport const TableHeaderCell: FC<TableHeaderCellProps> = ({\n column,\n align = 'left',\n className = undefined,\n dataKey = undefined,\n isBorderless = false,\n isCompact = false,\n hasStickyHeader = false,\n isSortable = false,\n onSort = undefined,\n sortedColumn = undefined,\n sticky = undefined,\n truncateOverflow = false,\n width = undefined,\n}) => {\n const isColumnSorted = (columnDataKey: Key | undefined): boolean =>\n !!sortedColumn && sortedColumn.dataKey === columnDataKey;\n\n const getSortDirection = ():\n | 'ascending'\n | 'descending'\n | 'none'\n | undefined =>\n sortedColumn && isColumnSorted(column.dataKey)\n ? sortedColumn.sortDirection\n : 'none';\n\n const renderIcon = (): ReactNode => {\n const renderArrows = (): ReactNode => {\n if (getSortDirection() === 'ascending') {\n return (\n <Icon\n name=\"caret-sm-up\"\n data-testid=\"tableHeaderCellSortAsc-testid\"\n />\n );\n }\n if (getSortDirection() === 'descending') {\n return (\n <Icon\n name=\"caret-sm-down\"\n data-testid=\"tableHeaderCellSortDesc-testid\"\n />\n );\n }\n\n return (\n <Box\n display=\"inline-block\"\n width=\"12px\"\n height=\"12px\"\n aria-hidden=\"true\"\n data-testid=\"tableHeaderCellSortNone-testid\"\n />\n );\n };\n\n return <span className={styles['sort-icon']}>{renderArrows()}</span>;\n };\n\n const handleKeyPress = (\n event: KeyboardEvent<HTMLTableHeaderCellElement>\n ): void => {\n if (!onSort || !isSortable) return;\n\n const enterKey = 13;\n const spaceKey = 32;\n\n if (event.keyCode === enterKey || event.keyCode === spaceKey) {\n const eventWithKey: EventWithColumnKey = { ...event, sortedKey: dataKey };\n onSort(eventWithKey);\n }\n };\n\n const handleSort = (event: MouseEvent<HTMLTableHeaderCellElement>): void => {\n if (!onSort || !isSortable) return;\n\n const eventWithKey: EventWithColumnKey = { ...event, sortedKey: dataKey };\n onSort(eventWithKey);\n };\n\n const tableHeaderClasses = classNames(\n styles['table-header-cell'],\n {\n [styles.sortable]: isSortable,\n [styles.compact]: isCompact,\n [styles.truncated]: truncateOverflow,\n [styles.borderless]: isBorderless,\n [styles['sticky-header']]: hasStickyHeader,\n [styles['sticky-column']]: sticky === 'left' || sticky === 'right',\n [styles['sticky-column-left']]: sticky === 'left',\n [styles['sticky-column-right']]: sticky === 'right',\n [styles['align-right']]: align === 'right',\n [styles['align-center']]: align === 'center',\n },\n className\n );\n\n return (\n <Box\n as=\"th\"\n display=\"table-cell\"\n className={tableHeaderClasses}\n width={`${width}px`}\n aria-sort={\n sortedColumn && isColumnSorted(column.dataKey)\n ? sortedColumn.sortDirection\n : 'none'\n }\n tabIndex={isSortable ? 0 : undefined}\n onClick={handleSort}\n onKeyDown={handleKeyPress}\n scope=\"col\"\n >\n <div className={styles.heading}>\n {column.heading}\n {isSortable && renderIcon()}\n </div>\n </Box>\n );\n};\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport styles from './TableRow.module.scss';\nimport { Column, EventWithColumnKey, Row } from '../../../../types';\nimport { getColumnKeys } from '../../../../lib/getColumnKeys';\nimport TableBodyCell from '../../TableBody/TableBodyCell/TableBodyCell';\nimport { TableHeaderCell } from '../../TableHead/TableHeaderCell/TableHeaderCell';\n\nexport interface TableRowProps {\n /**\n * The table columns to be rendered\n */\n columns: Column[];\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Custom class to be applied to `<tr>` element.\n */\n className?: string;\n /**\n * A global placeholder for empty cells. Note: can be overwriten by\n * the same attribute passed for an individual column config object.\n */\n emptyCellPlaceholder?: string | number | undefined;\n /**\n * Whether the table has borders or not.\n */\n isBorderless?: boolean;\n /**\n * Whether the table rows have smaller padding\n */\n isCompact?: boolean;\n /**\n * If table scrolls vertically, header will remain stuck to the top of the table, and not scroll away.\n */\n hasStickyHeader?: boolean;\n /**\n * Determine whether row is hoverable\n */\n isHoverable?: boolean;\n /**\n * Whether the row is inside the table head (thead).\n */\n isTableHead?: boolean;\n /**\n * Callback function to fire on sorting one of the table headers.\n */\n onSort?: (event: EventWithColumnKey) => void;\n /**\n * The specific row to be rendered.\n */\n row?: Row;\n /**\n * The unique key to identify a React node for each row.\n */\n rowIndex?: number;\n /**\n * The key of the sorted column and its sort direction.\n */\n sortedColumn?: {\n dataKey: string | undefined;\n sortDirection: 'none' | 'ascending' | 'descending' | undefined;\n };\n /**\n * Truncate overflow inside column based on column width. Can be overwritten on specific columns,\n * by passing `truncateOverflow` value on a specific Column\n */\n truncateOverflow?: boolean;\n}\n\nexport const TableRow: FC<TableRowProps> = ({\n columns,\n align = 'left',\n className = '',\n emptyCellPlaceholder = '',\n isBorderless = false,\n isCompact = false,\n hasStickyHeader = false,\n isHoverable = false,\n isTableHead = false,\n onSort = undefined,\n sortedColumn = undefined,\n row = undefined,\n rowIndex = undefined,\n truncateOverflow = false,\n}) => {\n const tableRowClasses = classNames(\n styles['table-row'],\n { [styles.hoverable]: isHoverable },\n className\n );\n\n const renderCellContent = (column: Column): ReactNode => {\n if (column.render) {\n const cellValue = column.dataKey && row ? row[column.dataKey] : undefined;\n return column.render(cellValue, row, rowIndex);\n }\n\n return column.dataKey && row ? row[column.dataKey] : null;\n };\n\n const getCellClassName = (column: Column): string | undefined => {\n if (column.cellClassName) {\n if (typeof column.cellClassName === 'function') {\n return column.cellClassName(column, row, rowIndex);\n }\n return column.cellClassName;\n }\n return undefined;\n };\n\n return (\n <tr className={tableRowClasses}>\n {Object.values(columns).map((column, columnIndex) =>\n isTableHead ? (\n <TableHeaderCell\n column={column}\n align={column.align || align}\n key={getColumnKeys(columns)[columnIndex]}\n dataKey={column.dataKey}\n className={column.headerClassName}\n isSortable={column.isSortable}\n onSort={onSort}\n isBorderless={isBorderless}\n isCompact={isCompact}\n sortedColumn={sortedColumn}\n truncateOverflow={column.truncateOverflow || truncateOverflow}\n width={column.width}\n hasStickyHeader={hasStickyHeader}\n sticky={column.sticky}\n />\n ) : (\n <TableBodyCell\n align={column.align || align}\n className={getCellClassName(column)}\n emptyCellPlaceholder={\n column.emptyCellPlaceholder || emptyCellPlaceholder\n }\n truncateOverflow={column.truncateOverflow || truncateOverflow}\n key={getColumnKeys(columns)[columnIndex]}\n isBorderless={isBorderless}\n isCompact={isCompact}\n width={column.width}\n sticky={column.sticky}\n >\n {renderCellContent(column)}\n </TableBodyCell>\n )\n )}\n </tr>\n );\n};\n","import React, { FC, Key } from 'react';\nimport classNames from 'classnames';\nimport styles from './TableBody.module.scss';\nimport { Column, Row } from '../../../types';\nimport { TableRow } from '../common/TableRow/TableRow';\n\nexport interface TableBodyProps {\n /**\n * The table columns to be rendered\n */\n columns: Column[];\n /**\n * The unique key to identify a React node for each row.\n */\n rowKey: Key;\n /**\n * The table rows to be rendered\n */\n rows: Row[];\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * A custom class to apply to the table body.\n */\n className?: string;\n /**\n * A global placeholder for empty cells. Note: can be overwriten by\n * the same attribute passed for an individual column config object.\n */\n emptyCellPlaceholder?: string | number | undefined;\n /**\n * Enable a hover state on table rows.\n */\n hoverableRows?: boolean;\n /**\n * Whether the table has borders or not.\n */\n isBorderless?: boolean;\n /**\n * Whether the table rows have smaller padding\n */\n isCompact?: boolean;\n /**\n * Whether the table rows have a striped pattern\n */\n isStriped?: boolean;\n /**\n * Truncate overflow inside column based on column width. Can be overwritten on specific columns,\n * by passing `truncateOverflow` value on a specific Column\n */\n truncateOverflow?: boolean;\n}\n\nexport const TableBody: FC<TableBodyProps> = ({\n columns,\n rowKey,\n rows,\n align = 'left',\n className = '',\n emptyCellPlaceholder = '',\n hoverableRows = false,\n isBorderless = false,\n isCompact = false,\n isStriped = false,\n truncateOverflow = false,\n}) => {\n const tableBodyClasses = classNames(\n styles['table-body'],\n {\n [styles.striped]: isStriped,\n [styles.hover]: hoverableRows,\n },\n className\n );\n\n return (\n <tbody className={tableBodyClasses}>\n {rows.map((row, rowIndex) => (\n <TableRow\n columns={columns}\n row={row}\n rowIndex={rowIndex}\n align={align}\n key={row[rowKey as any]}\n emptyCellPlaceholder={emptyCellPlaceholder}\n truncateOverflow={truncateOverflow}\n isBorderless={isBorderless}\n isCompact={isCompact}\n />\n ))}\n </tbody>\n );\n};\n","import React, { FC } from 'react';\nimport classNames from 'classnames';\nimport { Column, EventWithColumnKey } from '../../../types';\nimport { TableRow } from '../common/TableRow/TableRow';\n\nexport interface TableHeadProps {\n /**\n * The table columns to be rendered\n */\n columns: Column[];\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Custom class to be applied to the `<thead>` element.\n */\n className?: string;\n /**\n * Whether the table has borders or not.\n */\n isBorderless?: boolean;\n /**\n * Whether the table rows have smaller padding\n */\n isCompact?: boolean;\n /**\n * If table scrolls vertically, header will remain stuck to the top of the table, and not scroll away.\n */\n hasStickyHeader?: boolean;\n /**\n * Callback function to fire on sorting one of the table headers.\n */\n onSort?: (event: EventWithColumnKey) => void;\n /**\n * The key of the sorted column and its sort direction.\n */\n sortedColumn?: {\n dataKey: string | undefined;\n sortDirection: 'none' | 'ascending' | 'descending' | undefined;\n };\n /**\n * Truncate overflow inside column based on column width. Can be overwritten on specific columns,\n * by passing `truncateOverflow` value on a specific Column\n */\n truncateOverflow?: boolean;\n}\n\nexport const TableHead: FC<TableHeadProps> = ({\n columns,\n align = 'left',\n className = '',\n isBorderless = false,\n isCompact = false,\n hasStickyHeader = false,\n onSort = undefined,\n sortedColumn = undefined,\n truncateOverflow = false,\n}) => {\n const tableHeadClasses = classNames(className);\n\n return (\n <thead className={tableHeadClasses}>\n <TableRow\n columns={columns}\n align={align}\n isTableHead\n isBorderless={isBorderless}\n isCompact={isCompact}\n onSort={onSort}\n sortedColumn={sortedColumn}\n truncateOverflow={truncateOverflow}\n hasStickyHeader={hasStickyHeader}\n />\n </thead>\n );\n};\n","import React, { FC } from 'react';\nimport classNames from 'classnames';\nimport { Column, Row, EventWithColumnKey } from '../../types';\nimport { Spinner } from '../Spinner/Spinner';\nimport styles from './Table.module.scss';\nimport { TableBody } from './TableBody/TableBody';\nimport { TableHead } from './TableHead/TableHead';\n\nexport interface TableProps {\n /**\n * Columns for the table. See Column definition below for details.\n */\n columns: Column[];\n /**\n * The data rows to be displayed\n */\n rows: Row[];\n /**\n * Key that represents a unique value for a row. This is necessary in\n * order to supply React with a node key on each row.\n */\n rowKey: string;\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Global placeholder for empty cells. Can be overwritten by setting the same attribute\n * in the `Column` config.\n */\n emptyCellPlaceholder?: string | number | undefined;\n /**\n * Enable a hover state on table rows.\n */\n hoverableRows?: boolean;\n /**\n * Remove borders around table, thead, tbody, td, etc.\n */\n isBorderless?: boolean;\n /**\n * Make Table more compact by cutting cell padding in half.\n */\n isCompact?: boolean;\n /**\n * If table scrolls vertically, header will remain stuck to the top of the table, and not scroll away.\n */\n hasStickyHeader?: boolean;\n /**\n * Set to true if data is loading.\n */\n isLoading?: boolean;\n /**\n * Set the maximum width and height and enable scrolling within the container when the table grows\n * past those values. Useful for when we want to render a large table but not force the parent container\n * to grow and instead make the user scroll. Set values to boolean `true` to enable `overflow: scroll` on the table\n * without specifying a width/height\n */\n isScrollable?: {\n x?: boolean;\n y?: boolean;\n };\n /**\n * Adds zebra-striping to any table row within the table body.\n */\n isStriped?: boolean;\n /**\n * Callback function to fire on sorting one of the table headers.\n */\n onSort?: (event: EventWithColumnKey) => void;\n /**\n * The key of the sorted column and its sort direction.\n */\n sortedColumn?: {\n dataKey: string | undefined;\n sortDirection: 'none' | 'ascending' | 'descending' | undefined;\n };\n /**\n * Control the `table-layout` css property for the table.\n */\n useFixedTableLayout?: boolean;\n /**\n * Truncate overflow inside column based on column width. Can be overwritten on specific columns,\n * by passing `truncateOverflow` value on a specific Column\n */\n truncateOverflow?: boolean;\n}\n\nexport const Table: FC<TableProps> = ({\n columns,\n rows,\n rowKey,\n align = 'left',\n className = undefined,\n emptyCellPlaceholder = undefined,\n hoverableRows = false,\n isBorderless = false,\n isCompact = false,\n hasStickyHeader = false,\n isLoading = false,\n isScrollable = undefined,\n isStriped = false,\n onSort = undefined,\n sortedColumn = undefined,\n useFixedTableLayout = false,\n truncateOverflow = false,\n}) => {\n const containerClasses = classNames(styles.container, {\n [styles['full-height']]: !!isScrollable?.y,\n });\n\n const scrollContainerClasses = classNames(\n styles['scroll-container'],\n {\n [styles.scrollable]: !!isScrollable?.x || !!isScrollable?.y,\n [styles['scrollable-x']]: !!isScrollable?.x,\n [styles['scrollable-y']]: !!isScrollable?.y,\n },\n className\n );\n\n const tableClasses = classNames(styles.table, {\n [styles.fixed]: useFixedTableLayout,\n [styles.striped]: isStriped,\n [styles.borderless]: isBorderless,\n [styles.compact]: isCompact,\n });\n\n return (\n <div className={containerClasses}>\n {isLoading && (\n <div className={styles['loading-mask']}>\n <Spinner size=\"xl\" />\n </div>\n )}\n <div\n className={scrollContainerClasses}\n data-testid=\"tableContainerDiv-testid\"\n >\n <table className={tableClasses}>\n <TableHead\n columns={columns}\n align={align}\n onSort={onSort}\n isBorderless={isBorderless}\n isCompact={isCompact}\n sortedColumn={sortedColumn}\n truncateOverflow={truncateOverflow}\n hasStickyHeader={hasStickyHeader}\n />\n <TableBody\n rows={rows}\n columns={columns}\n rowKey={rowKey}\n align={align}\n isStriped={isStriped}\n emptyCellPlaceholder={emptyCellPlaceholder}\n hoverableRows={hoverableRows}\n truncateOverflow={truncateOverflow}\n isBorderless={isBorderless}\n isCompact={isCompact}\n />\n </table>\n </div>\n </div>\n );\n};\n","import React, { createContext, useState, useEffect } from 'react';\n\nexport type Theme = 'dark' | 'light' | 'system';\n\ntype ThemeProviderProps = {\n children: React.ReactNode;\n defaultTheme?: Theme;\n storageKey?: string;\n};\n\ntype ThemeProviderState = {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n isDarkMode?: boolean;\n};\n\nconst initialState: ThemeProviderState = {\n theme: 'system',\n setTheme: () => null,\n};\n\nexport const ThemeProviderContext =\n createContext<ThemeProviderState>(initialState);\n\nexport function ThemeProvider({\n children,\n defaultTheme = 'system',\n storageKey = 'hyphen-ui-theme',\n ...props\n}: ThemeProviderProps) {\n const [theme, setTheme] = useState<Theme>(\n () => (localStorage.getItem(storageKey) as Theme) || defaultTheme\n );\n\n useEffect(() => {\n const root = window.document.documentElement;\n\n root.classList.remove('light', 'dark');\n\n if (theme === 'system') {\n const systemTheme = window.matchMedia('(prefers-color-scheme: dark)')\n .matches\n ? 'dark'\n : 'light';\n\n root.classList.add(systemTheme);\n return;\n }\n\n root.classList.add(theme);\n }, [theme]);\n\n const isDarkMode =\n theme === 'dark' ||\n (theme === 'system' &&\n window.matchMedia('(prefers-color-scheme: dark)').matches);\n\n const value = {\n theme,\n setTheme: (theme: Theme) => {\n localStorage.setItem(storageKey, theme);\n setTheme(theme);\n },\n isDarkMode,\n };\n\n return (\n <ThemeProviderContext.Provider {...props} value={value}>\n {children}\n </ThemeProviderContext.Provider>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Toast, ToastPosition } from './Toast.types';\nimport { resolveValue } from '../../lib/resolveValue';\nimport { prefersReducedMotion } from '../../lib/prefersReducedMotion';\nimport { Box } from '../Box/Box';\nimport { Icon } from '../Icon/Icon';\nimport { Spinner } from '../Spinner/Spinner';\nimport { IconName, FontColor } from '../../types';\nimport styles from './ToastNotification.module.scss';\n\ninterface ToastNotificationProps {\n /**\n * Toast object\n */\n toast: Toast;\n /**\n * Custom position for toast (overrides global container toast position).\n */\n position?: ToastPosition;\n /**\n * Custom styles for toast.\n */\n style?: React.CSSProperties;\n /**\n * Render function to create custom toast notification.\n */\n children?: (components: { message: React.ReactNode }) => React.ReactNode;\n /**\n * Handler for when the dismiss button is pressed.\n */\n onDismiss?: () => void;\n}\n\nconst getAnimationClass = (\n position: ToastPosition,\n visible: boolean\n): React.CSSProperties | string => {\n const verticalPosition = position.includes('top') ? 'top' : 'bottom';\n const horizontalPosition = position.includes('left') ? 'left' : 'right';\n const isCentered = position.includes('center');\n\n const [enter, exit] = prefersReducedMotion()\n ? [\n styles['toast-notification-fade-in'],\n styles['toast-notification-fade-out'],\n ]\n : [\n styles[`toast-notification-enter-${verticalPosition}`],\n styles[\n `toast-notification-exit-${\n isCentered ? verticalPosition : horizontalPosition\n }`\n ],\n ];\n\n return visible ? enter : exit;\n};\n\nconst renderToastIcon = (toast: Toast) => {\n const { type } = toast;\n\n if (type === 'blank') return;\n\n let iconName: IconName = 'exclamation-mark';\n let iconColor: FontColor = 'base'; // dark\n\n if (type === 'success') {\n iconName = 'c-check';\n iconColor = 'success';\n }\n\n if (type === 'error') {\n iconName = 'c-warning';\n iconColor = 'white';\n }\n\n const icon =\n type !== 'loading' ? (\n <Icon name={iconName} color={iconColor} />\n ) : (\n <Spinner />\n );\n\n // eslint-disable-next-line consistent-return\n return (\n <Box justifyContent=\"center\" height=\"100\">\n {icon}\n </Box>\n );\n};\n\nconst renderDismissIcon = (\n toast: Toast,\n onDismiss: ToastNotificationProps['onDismiss']\n) => {\n if (!toast.canDismiss) return;\n\n // eslint-disable-next-line consistent-return\n return (\n <Box\n as=\"button\"\n borderWidth=\"0\"\n className={styles['toast-dismiss']}\n padding=\"0 0 0 sm\"\n alignItems=\"center\"\n justifyContent=\"center\"\n cursor=\"pointer\"\n background=\"transparent\" // transparent\n height=\"100\"\n onClick={onDismiss}\n aria-label=\"dismiss notification\"\n >\n <Icon name=\"remove\" />\n </Box>\n );\n};\n\n// eslint-disable-next-line import/prefer-default-export\nexport const ToastNotification: React.FC<ToastNotificationProps> = React.memo(\n ({ toast, position = 'top-center', style, children, onDismiss }) => {\n const message = (\n <Box\n direction=\"row\"\n justifyContent=\"center\"\n style={{\n flex: '1 1 auto',\n }}\n {...toast.ariaProps}\n >\n {resolveValue(toast.message, toast)}\n </Box>\n );\n\n const animationClass = toast?.height\n ? getAnimationClass(toast.position || position, toast.visible)\n : undefined;\n\n const classes = classNames(\n toast.className,\n styles['toast-notification'],\n animationClass,\n {\n 'toast-notification--not-visible': !toast.visible,\n [styles['toast-error']]: toast.type === 'error',\n }\n );\n\n return (\n <Box\n alignItems=\"center\"\n maxWidth=\"300px\"\n padding={toast.isCompact ? 'sm' : 'md'}\n direction=\"row\"\n className={classes}\n gap=\"sm\"\n style={{\n ...style,\n ...toast.style,\n ...(!toast.height && { opacity: 0 }),\n }}\n >\n {typeof children === 'function' ? (\n children({\n message,\n })\n ) : (\n <>\n {renderToastIcon(toast)}\n {message}\n {renderDismissIcon(toast, onDismiss)}\n </>\n )}\n </Box>\n );\n }\n);\n","import { useState, useEffect } from 'react';\nimport { Toast, ExtendedToastOptions, ToastType } from './Toast.types';\n\nconst TOAST_LIMIT = 20;\n\n// eslint-disable-next-line no-shadow\nexport enum ToastStoreActionType {\n ADD_TOAST = 'TOAST/ADD_TOAST',\n UPDATE_TOAST = 'TOAST/UPDATE_TOAST',\n UPSERT_TOAST = 'TOAST/UPSERT_TOAST',\n DISMISS_TOAST = 'TOAST/DISMISS_TOAST',\n REMOVE_TOAST = 'TOAST/REMOVE_TOAST',\n START_PAUSE = 'TOAST/START_PAUSE',\n END_PAUSE = 'TOAST/END_PAUSE',\n}\n\ntype GenericAction<\n TActionType extends PropertyKey,\n TPayload extends Record<string, unknown>\n> = {\n type: TActionType;\n payload: TPayload;\n};\n\ntype ToastStoreAction =\n | GenericAction<ToastStoreActionType.ADD_TOAST, { toast: Toast }>\n | GenericAction<ToastStoreActionType.UPSERT_TOAST, { toast: Toast }>\n | GenericAction<ToastStoreActionType.UPDATE_TOAST, { toast: Partial<Toast> }>\n | GenericAction<ToastStoreActionType.DISMISS_TOAST, { toastId?: string }>\n | GenericAction<ToastStoreActionType.REMOVE_TOAST, { toastId?: string }>\n | GenericAction<ToastStoreActionType.START_PAUSE, { time: number }>\n | GenericAction<ToastStoreActionType.END_PAUSE, { time: number }>;\n\ninterface ToastState {\n toasts: Toast[];\n pausedAt: number | undefined;\n}\n\nconst toastTimeouts = new Map<Toast['id'], ReturnType<typeof setTimeout>>();\n\nconst addToDismissedQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n // eslint-disable-line\n type: ToastStoreActionType.REMOVE_TOAST,\n payload: { toastId },\n });\n }, 1000);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nconst clearFromDismissedQueue = (toastId: string) => {\n const timeout = toastTimeouts.get(toastId);\n if (timeout) {\n clearTimeout(timeout);\n }\n};\n\ntype ReducerCallback<TState, TAction> = (\n state: TState,\n action: TAction\n) => TState;\ntype HandlerMap<\n TActionTypes extends PropertyKey,\n TAction extends GenericAction<TActionTypes, Record<string, unknown>>,\n TState\n> = {\n [action in TActionTypes]: ReducerCallback<TState, TAction>;\n};\ntype ToastStoreHandlerMap = HandlerMap<\n ToastStoreActionType,\n ToastStoreAction,\n ToastState\n>;\n\nconst createReducer =\n <\n TActionTypes extends PropertyKey,\n TAction extends GenericAction<TActionTypes, Record<string, unknown>>,\n TState,\n THandlers extends HandlerMap<TActionTypes, TAction, TState>\n >(\n initialState: TState,\n handlers: THandlers\n ) =>\n (state: TState = initialState, action: TAction) => {\n if (handlers.hasOwnProperty(action.type)) {\n // eslint-disable-line\n return handlers[action.type](state, action);\n }\n\n return state;\n };\n\ntype ToastStoreHandler = ReducerCallback<ToastState, ToastStoreAction>;\n\nconst handleAddToast: ToastStoreHandler = (state, action) => {\n if (!('toast' in action.payload)) return state;\n\n const { toast } = action.payload;\n\n return {\n ...state,\n toasts: [toast as Toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n};\n\nconst handleUpdateToast: ToastStoreHandler = (state, action) => {\n const { toast } = action.payload as { toast: Toast };\n\n // @TODO -- Side effects\n if (toast.id) {\n clearFromDismissedQueue(toast.id);\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toast.id ? { ...t, ...toast } : t\n ), // eslint-disable-line\n };\n};\n\nconst handleUpsertToast: ToastStoreHandler = (state, action) => {\n const { toast } = action.payload as { toast: Toast };\n\n // @TODO -- refactor to avoid using recursive function before 'reducer is declared'\n return state.toasts.find((t) => t.id === toast.id)\n ? reducer(state, {\n type: ToastStoreActionType.UPDATE_TOAST,\n payload: { toast },\n }) // eslint-disable-line\n : reducer(state, {\n type: ToastStoreActionType.ADD_TOAST,\n payload: { toast } as { toast: Toast },\n }); // eslint-disable-line\n};\n\nconst handleDismissToast: ToastStoreHandler = (state, action) => {\n const { toastId } = action.payload as { toastId: string };\n\n if (toastId) {\n addToDismissedQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToDismissedQueue(toast.id);\n });\n }\n\n return {\n ...state,\n // eslint-disable-next-line no-confusing-arrow\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined ? { ...t, visible: false } : t\n ),\n };\n};\n\nconst handleRemoveToast: ToastStoreHandler = (state, action) => {\n const { toastId } = action.payload as { toastId: string };\n\n if (toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== toastId),\n };\n};\n\nconst handleStartPause: ToastStoreHandler = (state, action) => {\n const { time } = action.payload as { time: number };\n\n return {\n ...state,\n pausedAt: time,\n };\n};\n\nconst handleEndPause: ToastStoreHandler = (state, action) => {\n const { time } = action.payload as { time: number };\n\n const diff = time - (state.pausedAt || 0);\n\n return {\n ...state,\n pausedAt: undefined,\n toasts: state.toasts.map((t) => ({\n ...t,\n pauseDuration: t.pauseDuration + diff,\n })),\n };\n};\n\nconst actionHandlers: ToastStoreHandlerMap = {\n [ToastStoreActionType.ADD_TOAST]: handleAddToast,\n [ToastStoreActionType.UPDATE_TOAST]: handleUpdateToast,\n [ToastStoreActionType.UPSERT_TOAST]: handleUpsertToast,\n [ToastStoreActionType.DISMISS_TOAST]: handleDismissToast,\n [ToastStoreActionType.REMOVE_TOAST]: handleRemoveToast,\n [ToastStoreActionType.START_PAUSE]: handleStartPause,\n [ToastStoreActionType.END_PAUSE]: handleEndPause,\n};\n\nconst toastReducer = createReducer<\n ToastStoreActionType,\n ToastStoreAction,\n ToastState,\n ToastStoreHandlerMap\n>({ toasts: [], pausedAt: undefined }, actionHandlers);\n\nconst reducer = (state: ToastState, action: ToastStoreAction) =>\n toastReducer(state, action);\n\nconst listeners: Array<(state: ToastState) => void> = [];\n\nlet memoryState: ToastState = { toasts: [], pausedAt: undefined };\n\nexport const dispatch = (action: ToastStoreAction): void => {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n};\n\nconst defaultTimeouts: {\n [key in ToastType]: number;\n} = {\n blank: 4000,\n error: 4000,\n success: 2000,\n loading: Infinity,\n custom: 4000,\n};\n\nexport const useToastStore = (\n toastOptions: ExtendedToastOptions = {}\n): ToastState => {\n const [state, setState] = useState<ToastState>(memoryState);\n useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n const mergedToasts = state.toasts.map((t) => ({\n ...toastOptions,\n ...toastOptions[t.type],\n ...t,\n duration:\n t.duration ||\n toastOptions[t.type]?.duration ||\n toastOptions?.duration ||\n defaultTimeouts[t.type],\n style: {\n ...toastOptions.style,\n ...toastOptions[t.type]?.style,\n ...t.style,\n },\n }));\n\n return {\n ...state,\n toasts: mergedToasts,\n };\n};\n","import React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { resolveValue } from '../../lib/resolveValue';\nimport { ValueOrFunction } from '../../types';\nimport {\n Toast,\n ToastOptions,\n ToastType,\n ExtendedToastOptions,\n} from './Toast.types';\nimport { ToastStoreActionType, dispatch } from './Toast.store';\n\ntype Message = ValueOrFunction<React.ReactNode, Toast>;\n\ntype ToastHandler = (message: Message, options?: ToastOptions) => string;\n\nconst createToast = (\n message: Message,\n type: ToastType,\n opts?: ToastOptions\n): Toast => ({\n createdAt: Date.now(),\n visible: true,\n type,\n ariaProps: {\n role: 'status',\n 'aria-live': 'polite',\n },\n message,\n pauseDuration: 0,\n ...opts,\n id: opts?.id || uuidv4(),\n canDismiss: type !== 'loading' && opts?.canDismiss !== false,\n});\n\nconst createHandler =\n (type: ToastType): ToastHandler =>\n (message, options) => {\n const toast = createToast(message, type, options);\n\n dispatch({\n type: ToastStoreActionType.UPSERT_TOAST,\n payload: { toast },\n });\n return toast.id;\n };\n\n// eslint-disable-next-line\nconst toast = (message: Message, opts?: ToastOptions) =>\n createHandler('blank')(message, opts);\n\ntoast.error = createHandler('error');\ntoast.success = createHandler('success');\ntoast.loading = createHandler('loading');\ntoast.custom = createHandler('custom');\n\ntoast.dismiss = (toastId?: string) => {\n dispatch({\n type: ToastStoreActionType.DISMISS_TOAST,\n payload: { toastId },\n });\n};\n\ntoast.remove = (toastId?: string) =>\n dispatch({\n type: ToastStoreActionType.REMOVE_TOAST,\n payload: { toastId },\n });\n\n// eslint-disable-next-line func-names\ntoast.async = function <T>(\n promise: Promise<T>,\n messages: {\n loading: React.ReactNode;\n success: ValueOrFunction<React.ReactNode, T>;\n error: ValueOrFunction<React.ReactNode, unknown>;\n },\n opts?: ExtendedToastOptions\n) {\n const id = toast.loading(messages.loading, { ...opts, ...opts?.loading });\n\n promise\n .then((data) => {\n toast.success(resolveValue(messages.success, data), {\n id,\n ...opts,\n ...opts?.success,\n });\n return data;\n })\n .catch((err) => {\n toast.error(resolveValue(messages.error, err), {\n id,\n ...opts,\n ...opts?.error,\n });\n });\n\n return promise;\n};\n\nexport { toast }; // eslint-disable-line import/prefer-default-export\n","import { useEffect, useMemo } from 'react';\nimport { ExtendedToastOptions, Toast, ToastPosition } from './Toast.types';\nimport { useToastStore, dispatch, ToastStoreActionType } from './Toast.store';\nimport { toast } from './toast';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useToasts = (toastOptions?: ExtendedToastOptions) => {\n // eslint-disable-line import/prefer-default-export\n const { toasts, pausedAt } = useToastStore(toastOptions);\n\n useEffect(() => {\n if (pausedAt) {\n return;\n }\n\n const now = Date.now();\n const timeouts = toasts.map((t) => {\n if (t.duration === Infinity) {\n return undefined;\n }\n\n const durationLeft =\n (t.duration || 0) + t.pauseDuration - (now - t.createdAt);\n\n if (durationLeft < 0) {\n if (t.visible) {\n toast.dismiss(t.id);\n }\n return undefined;\n }\n return setTimeout(() => toast.dismiss(t.id), durationLeft); // eslint-disable-line consistent-return\n });\n\n return () => {\n // eslint-disable-line consistent-return\n timeouts.forEach((timeout) => timeout && clearTimeout(timeout));\n };\n }, [toasts, pausedAt]);\n\n const handlers = useMemo(\n () => ({\n startPause: () => {\n dispatch({\n type: ToastStoreActionType.START_PAUSE,\n payload: { time: Date.now() },\n });\n },\n endPause: () => {\n if (pausedAt) {\n dispatch({\n type: ToastStoreActionType.END_PAUSE,\n payload: { time: Date.now() },\n });\n }\n },\n updateHeight: (toastId: string, height: number) => {\n if (toasts.find((t) => t.id === toastId)?.height === height) {\n return;\n }\n dispatch({\n type: ToastStoreActionType.UPDATE_TOAST,\n payload: { toast: { id: toastId, height } },\n });\n },\n calculateOffset: (\n currentToast: Toast,\n opts: {\n reverseOrder: boolean;\n gutter: number;\n defaultPosition?: ToastPosition;\n }\n ) => {\n const { reverseOrder, gutter, defaultPosition } = opts || {};\n\n const relevantToasts = toasts.filter(\n (t) =>\n (t.position || defaultPosition) ===\n (currentToast.position || defaultPosition) && t.height\n );\n const toastIndex = relevantToasts.findIndex(\n (t) => t.id === currentToast.id\n );\n const toastsBefore = relevantToasts.filter(\n (t, i) => i < toastIndex && t.visible\n ).length;\n\n const offset = relevantToasts\n .filter((t) => t.visible)\n .slice(...(reverseOrder ? [toastsBefore + 1] : [0, toastsBefore]))\n .reduce((acc, t) => acc + (t.height || 0) + gutter, 0);\n\n return offset;\n },\n }),\n [toasts, pausedAt]\n );\n\n return {\n toasts,\n handlers,\n };\n};\n","import React from 'react';\nimport { prefersReducedMotion } from '../../lib/prefersReducedMotion';\nimport { resolveValue } from '../../lib/resolveValue';\nimport { Box } from '../Box/Box';\nimport { Toast, ToastPosition, ExtendedToastOptions } from './Toast.types';\nimport { ToastNotification } from './ToastNotification';\nimport { useToasts } from './useToasts';\nimport { toast } from './toast';\n\nexport const createRectRef =\n (onRect: (rect: DOMRect) => void) =>\n (el: HTMLElement | null): void => {\n if (el) {\n const boundingRect = el.getBoundingClientRect();\n onRect(boundingRect);\n }\n };\n\nconst getPositionStyle = (\n position: ToastPosition,\n offset: number\n): React.CSSProperties => {\n const top = position.includes('top');\n const verticalStyle: React.CSSProperties = top ? { top: 0 } : { bottom: 0 };\n const horizontalStyle = {\n ...(position.includes('center') && { justifyContent: 'center' }),\n ...(!position.includes('center') &&\n position.includes('right') && { justifyContent: 'flex-end' }),\n };\n return {\n left: 0,\n right: 0,\n display: 'flex',\n position: 'absolute',\n transition: prefersReducedMotion()\n ? undefined\n : 'all 230ms cubic-bezier(.21,1.02,.73,1)',\n transform: `translateY(${offset * (top ? 1 : -1)}px)`,\n ...verticalStyle,\n ...horizontalStyle,\n };\n};\n\nexport interface ToastContainerProps {\n /**\n * Render function for each individual toast.\n * This can be used to render custom toasts, although we recommend using the standard version,\n * unless absolutely necessary.\n */\n children?: (t: Toast) => JSX.Element;\n /**\n * Style object for the toast container if needed.\n */\n containerStyle?: React.CSSProperties;\n /**\n * Custom classname for toast container if needed.\n */\n containerClassName?: string;\n /**\n * The vertical gap between each toast notification when multiple toasts are on screen (in pixels).\n */\n gutter?: number;\n /**\n * Global position for all toasts in container.\n * NOTE: This can be overwritten by the position property of each individual toast.\n */\n position?: ToastPosition;\n /**\n * Display toasts in reverse order.\n * NOTE: Reverse order in this case means that older toasts remain close to the position origin.\n * and newer toasts appear further away from the origin.\n */\n reverseOrder?: boolean;\n /**\n * Global options for each toast. Can be overwritten for each individual toast as needed.\n */\n toastOptions?: ExtendedToastOptions;\n /**\n * Props spread into main container.\n */\n [x: string]: unknown; // eslint-disable-line\n}\n\nconst DEFAULT_OFFSET = 16;\n\nconst renderNotification = (\n currentToast: Toast,\n children: ((t: Toast) => JSX.Element) | undefined,\n containerPosition: ToastContainerProps['position']\n) => {\n const toastPosition = currentToast.position || containerPosition;\n\n if (currentToast.type === 'custom') {\n return resolveValue(currentToast.message, currentToast);\n }\n\n if (children) {\n return children(currentToast);\n }\n\n return (\n <ToastNotification\n toast={currentToast}\n position={toastPosition}\n onDismiss={() => toast.dismiss(currentToast.id)}\n />\n );\n};\n\nexport const ToastContainer: React.FC<ToastContainerProps> = ({\n children = undefined,\n containerStyle = undefined,\n containerClassName = undefined,\n gutter = 8,\n position = 'top-center',\n reverseOrder = false,\n toastOptions,\n ...restProps\n}) => {\n const { toasts, handlers } = useToasts(toastOptions);\n\n return (\n <Box\n style={{\n top: DEFAULT_OFFSET,\n left: DEFAULT_OFFSET,\n right: DEFAULT_OFFSET,\n bottom: DEFAULT_OFFSET,\n pointerEvents: 'none', // ensure background elements are clickable\n ...containerStyle,\n }}\n position=\"fixed\"\n zIndex=\"popover\"\n className={containerClassName}\n onMouseEnter={handlers.startPause}\n onMouseLeave={handlers.endPause}\n {...restProps}\n >\n {toasts.map((t) => {\n const toastPosition = t.position || position;\n const offset = handlers.calculateOffset(t, {\n reverseOrder,\n gutter,\n defaultPosition: position,\n });\n const positionStyle = getPositionStyle(toastPosition, offset);\n\n const ref = t.height\n ? undefined\n : createRectRef((rect) => {\n handlers.updateHeight(t.id, rect.height);\n });\n\n return (\n <Box\n ref={ref}\n zIndex={t.visible ? 'popover' : undefined}\n key={t.id}\n style={{\n ...positionStyle,\n }}\n display=\"block\"\n >\n {renderNotification(t, children, position)}\n </Box>\n );\n })}\n </Box>\n );\n};\n","import React from 'react';\nimport { ResponsiveContext } from '../../components/ResponsiveProvider/ResponsiveProvider';\n\nexport interface HookWindowSize {\n innerWidth?: number;\n innerHeight?: number;\n outerWidth?: number;\n outerHeight?: number;\n}\nexport const useWindowSize = (): HookWindowSize => {\n const { innerWidth, innerHeight, outerHeight, outerWidth, isCreated } =\n React.useContext(ResponsiveContext);\n\n if (isCreated) {\n return {\n innerHeight,\n innerWidth,\n outerHeight,\n outerWidth,\n };\n }\n\n return {};\n};\n","import { useState } from 'react';\nimport { BREAKPOINTS } from '../../lib/tokens';\nimport { Breakpoint } from '../../types';\nimport { useWindowSize } from '../useWindowSize/useWindowSize';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayouEffect';\n\nconst defaultBreakpoint: Breakpoint = { name: 'base', minWidth: 0 };\n\nexport interface BreakpointState {\n isPhone: boolean;\n isTablet: boolean;\n isDesktop: boolean;\n isHd: boolean;\n activeBreakpoint: Breakpoint;\n}\n\nexport const useBreakpoint = (): BreakpointState => {\n const windowSize = useWindowSize();\n\n const [breakpoint, setBreakpoint] = useState<Breakpoint>({\n ...defaultBreakpoint,\n });\n\n useIsomorphicLayoutEffect(() => {\n const sortedBreakpoints = [...BREAKPOINTS].sort(\n (a, b) => b.minWidth - a.minWidth\n );\n const activeBreakpoint =\n windowSize &&\n sortedBreakpoints.find(\n (b) => b.minWidth <= (windowSize.innerWidth as number)\n );\n\n setBreakpoint(activeBreakpoint || { ...defaultBreakpoint });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n windowSize.innerWidth,\n windowSize.innerHeight,\n windowSize.outerWidth,\n windowSize.outerHeight,\n ]);\n\n return {\n isPhone: breakpoint.name === 'base',\n isTablet: breakpoint.name === 'tablet',\n isDesktop: breakpoint.name === 'desktop',\n isHd: breakpoint.name === 'hd',\n activeBreakpoint: breakpoint,\n };\n};\n","import { useCallback, useState } from 'react';\n\nexport interface UseOpenCloseProps {\n /**\n * Initial visibility of the component\n */\n defaultIsOpen?: boolean;\n /**\n * If defined, visibility of the component is assumed to be controlled\n */\n isOpen?: boolean;\n /**\n * Callback function when component is closed\n * @returns void\n */\n onClose?: () => void;\n /**\n * Callback function when component is opened\n * @returns void\n */\n onOpen?: () => void;\n}\n\nexport interface UseOpenCloseState {\n /**\n * If true, sets the controlled component to its visible state\n */\n isOpen: boolean;\n /**\n * Callback function to set a falsy value for the `isOpen` parameter.\n */\n handleClose: () => void;\n /**\n * Callback function to set a truthy value for the `isOpen` parameter.\n */\n handleOpen: () => void;\n /**\n * Callback function to toggle the value of the `isOpen` parameter.\n */\n handleToggle: () => void;\n}\n\nexport const useOpenClose = (\n props: UseOpenCloseProps = {}\n): UseOpenCloseState => {\n const {\n defaultIsOpen,\n isOpen: isOpenProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n } = props;\n\n const openCallback = useCallback(() => {\n onOpenProp?.();\n }, [onOpenProp]);\n\n const closeCallback = useCallback(() => {\n onCloseProp?.();\n }, [onCloseProp]);\n\n const [isOpenState, setIsOpen] = useState(defaultIsOpen || false);\n\n const isOpen = isOpenProp !== undefined ? isOpenProp : isOpenState;\n\n const isControlled = isOpenProp !== undefined;\n\n const handleClose = useCallback(() => {\n if (!isControlled) {\n setIsOpen(false);\n }\n closeCallback?.();\n }, [isControlled, closeCallback]);\n\n const handleOpen = useCallback(() => {\n if (!isControlled) {\n setIsOpen(true);\n }\n openCallback?.();\n }, [isControlled, openCallback]);\n\n const handleToggle = useCallback(() => {\n if (isOpen) {\n handleClose();\n } else {\n handleOpen();\n }\n }, [isOpen, handleOpen, handleClose]);\n\n return {\n isOpen,\n handleClose,\n handleOpen,\n handleToggle,\n };\n};\n","import React from 'react';\nimport { ThemeProviderContext } from '../../components/ThemeProvider/ThemeProvider';\n\nexport const useTheme = () => {\n const context = React.useContext(ThemeProviderContext);\n if (context === undefined)\n throw new Error(\n 'useTheme must be used within a ThemeProvider. Be sure your App is wrapped in ThemeProvider.'\n );\n return context;\n};\n"],"names":["isValidSpacingValue","value","undefined","generateBaseClasses","attribute","trimmedValue","trim","console","warn","classes","shorthand","includes","split","length","sides","trimmedSides","slice","forEach","v","index","push","cssShorthandToClasses","Object","keys","key","baseClasses","responsiveClasses","map","baseClass","apply","generateResponsiveClasses","classRoot","responsiveClass","doesStringIncludeCssUnit","cssUnits","some","unit","getDimensionStyles","dimension","styles","height","maxWidth","maxHeight","minWidth","minHeight","width","getDimensionClasses","values","every","getDimensionCss","getElementType","Component","props","getDefault","_Component$defaultPro","defaultProps","as","computedDefault","href","Box","forwardRef","_ref","ref","_ref3","_ref$as","_ref$alignItems","alignItems","_ref$alignContent","alignContent","_ref$alignSelf","alignSelf","_ref$background","background","_ref$borderColor","borderColor","_ref$borderWidth","borderWidth","_ref$children","children","_ref$childGap","childGap","_ref$className","className","_ref$color","color","_ref$columnGap","columnGap","_ref$cursor","cursor","_ref$display","display","_ref$direction","direction","_ref$flex","flex","_ref$fontFamily","fontFamily","_ref$fontSize","fontSize","_ref$focus","focus","_ref$fontWeight","fontWeight","_ref$gap","gap","_ref$height","_ref$hover","hover","_ref$justifyContent","justifyContent","_ref$margin","margin","_ref$maxHeight","_ref$minHeight","_ref$maxWidth","_ref$minWidth","_ref$overflow","overflow","_ref$padding","padding","_ref$position","position","_ref$radius","radius","_ref$rowGap","rowGap","_ref$shadow","shadow","_ref$style","style","_ref$textAlign","textAlign","_ref$wrap","wrap","_ref$width","_ref$zIndex","zIndex","restProps","_objectWithoutPropertiesLoose","_excluded","heightCss","widthCss","maxHeightCss","maxWidthCss","minHeightCss","minWidthCss","isFlexBox","flexDirectionClasses","cssPropertyMap","classPrefix","transformer","getStatefulClasses","stateKey","entries","_ref2","hoverClasses","focusClasses","boxClasses","classNames","concat","boxStyles","_extends","generateChildGapDirection","childGapDirection","getChildGapMarginDirection","d","marginDirection","base","reduce","acc","curr","_extends2","generateChildGap","childGapObj","childGapClasses","childGapValues","breakpoints","findMatchingBreakpoint","responsiveObj","findIndex","breakpoint","foundDirection","foundChildGap","classSuffix","oppositeDirection","decorateChildren","child","i","array","_child$key","childClasses","Array","from","Set","cloneElement","decoratedChildren","Children","toArray","filter","element","createElement","boxPropsKeys","Icon","name","size","IconComponent","icons","error","iconClasses","React","ALERT_ICONS_MAP","icon","info","success","warning","danger","Alert","_ref$closeText","closeText","_ref$hasIcon","hasIcon","_ref$isCompact","isCompact","_ref$isClosable","isClosable","_ref$message","message","_ref$onClose","onClose","_ref$render","render","_ref$title","title","_ref$variant","variant","handleClose","event","renderAlertIcon","renderCloseIcon","handleCloseKeyPress","keyCode","type","onClick","onKeyUp","alertContainerClasses","alert","role","Badge","_classNames","_ref$size","c","badgeClasses","badge","Spinner","spinner","sizeInPixels","pixels","xmlns","viewBox","fill","rx","x","y","opacity","transform","isModifiedEvent","e","metaKey","altKey","ctrlKey","shiftKey","handleReactRouterClick","target","navigate","defaultPrevented","button","preventDefault","Button","_ref$fullWidth","fullWidth","_ref$id","id","_ref$href","_ref$iconPrefix","iconPrefix","_ref$iconSuffix","iconSuffix","_ref$isDisabled","isDisabled","_ref$isLoading","isLoading","_ref$navigate","_ref$onClick","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$tabIndex","tabIndex","_ref$target","_ref$type","disabled","buttonClasses","loading","handleClick","handleFocus","handleBlur","buttonContent","label","focusable","Fragment","buttonElement","CardFooter","HEADING_DEFAULT_SIZE_MAP","h1","h2","h3","h4","h5","h6","Heading","headingSize","heading","CardHeader","renderTitle","CardSection","_ref$subdued","subdued","sectionClasses","CardBaseComponent","Card","Header","Section","Footer","CheckboxIcon","_ref$error","_ref$isChecked","isChecked","_ref$isIndeterminate","isIndeterminate","Checkbox","labelledby","onChange","_ref$isHidden","isHidden","_ref$isRequired","isRequired","_ref$value","inputRef","useRef","useEffect","current","indeterminate","handleChange","inputProps","checked","required","containerClasses","checkbox","hidden","InputValidationMessage","HelpText","FormLabel","inputId","helpText","_ref$isFieldRequired","isFieldRequired","_ref$isRadioInputLabe","isRadioInputLabel","_ref$requiredIndicato","requiredIndicator","labelClasses","htmlFor","labelMarginSizeMap","sm","md","lg","computedResponsiveSize","CheckboxInput","_ref2$className","_ref2$error","_ref2$hideLabel","hideLabel","_ref2$isDisabled","_ref2$isIndeterminate","_ref2$isRequired","_ref2$onBlur","_ref2$onFocus","_ref2$requiredIndicat","_ref2$size","checkboxProps","labelProps","DatePicker","_ref$dayClassName","dayClassName","_ref$maxDate","maxDate","_ref$minDate","minDate","_ref$monthsShown","monthsShown","_ref$openToDate","openToDate","_ref$startDate","startDate","_ref$selected","selected","_ref$selectsRange","selectsRange","_ref$showTwoColumnMon","showTwoColumnMonthYearPicker","_ref$showFullMonthYea","showFullMonthYearPicker","_ref$showMonthYearPic","showMonthYearPicker","_ref$formatWeekDay","formatWeekDay","formattedDate","datePickerClasses","ReactDatePicker","inline","calendarClassName","FormControl","getAutoCompleteValue","TextInput","_ref$autoComplete","autoComplete","_ref$autoFocus","autoFocus","_ref$hideLabel","_ref$inputProps","_ref$maxLength","maxLength","_ref$name","_ref$onClear","onClear","_ref$prefix","prefix","_ref$placeholder","placeholder","_ref$suffix","suffix","inputWrapperClasses","clearBtnClasses","renderClearIcon","handleKeyPress","computedInputProps","getColumnKeys","columns","INTERNAL_KEY_PREFIX","columnKeys","column","dataKey","shapedDataKey","join","mergedKey","isFunction","valOrFunction","mergeRefs","refs","prefersReducedMotion","shouldReduceMotion","_window","mediaQuery","window","matchMedia","matches","resolveValue","arg","BREAKPOINTS","designTokens","data","parseInt","Z_INDEX_VALUES","contentContainerDefaults","Popover","isOpen","content","_ref$arrowColor","arrowColor","_ref$contentContainer","contentContainerProps","_ref$hasArrow","hasArrow","_ref$offsetFromTarget","offsetFromTarget","_ref$onClickOutside","onClickOutside","_ref$placement","placement","_ref$withPortal","withPortal","portalTarget","_ref$trapFocus","trapFocus","triggerRef","popperRef","_useState","useState","arrowElement","setArrowElement","handleClickOutside","popover","trigger","contains","handleKeyUp","document","body","addEventListener","removeEventListener","_usePopper","usePopper","modifiers","options","offset","popperStyles","attributes","containerBoxProps","computedArrowColor","arrowClasses","renderPopperContent","renderPopperBox","popper","arrow","FocusTrap","active","focusTrapOptions","clickOutsideDeactivates","childrenWithRef","childProps","isValidElement","createPortal","defaultDatePickerProps","defaultPopoverProps","defaultTextInputProps","DateInput","datePickerProps","textInputProps","_ref$dateFormat","dateFormat","_ref$dateOptions","dateOptions","_ref$popoverProps","popoverProps","mergedDatePickerProps","mergedPopoverProps","mergedTextInputProps","getTextInputValue","endDate","formattedStartDate","format","formattedEndDate","formattedSelectedDate","isPopoverOpen","setPopoverOpen","handleTogglePopover","newPopoverOpenState","handleDatePickerChange","date","handleOnClickOutside","classList","renderDatePicker","readOnly","ENTER","SPACE","DetailsSummary","isDetailsOpen","onToggle","handleKeyDown","indexOf","onKeyDown","DetailsBaseComponent","detailsClasses","details","open","Details","Summary","Drawer","_dynamicStyle","_classNames2","_ref$ariaLabel","ariaLabel","_ref$ariaLabelledBy","ariaLabelledBy","_ref$allowPinchZoom","allowPinchZoom","_ref$closeButton","closeButton","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$containerRef","containerRef","_ref$dangerouslyBypas","dangerouslyBypassFocusLock","_ref$dangerouslyBypas2","dangerouslyBypassScrollLock","_ref$hideOverlay","hideOverlay","_ref$initialFocusRef","initialFocusRef","_ref$onDismiss","onDismiss","activateFocusLock","useCallback","setTimeout","dynamicWidth","dynamicStyle","overlayClassnames","overlay","drawer","contentClassnames","renderHeader","parentElement","isDisabledFocusLock","isDisabledRemoveScroll","FocusLock","returnFocus","onActivation","RemoveScroll","enabled","ReactModal","overlayClassName","onRequestClose","ariaHideApp","parentSelector","FormikCheckboxInput","_ref$field","field","formikOnChange","_ref$form","form","touched","errors","getIn","RadioInputIcon","_ref$isSelected","isSelected","RadioInput","option","RadioGroup","_ref$description","description","groupClasses","fieldset","legend","FormikRadioGroup","SelectInput","_ref$isClearable","isClearable","_ref$isMulti","isMulti","_ref$menuPortalTarget","menuPortalTarget","simulatedEventPayloadType","wrapperClasses","inputClasses","ClearIndicator","components","Select","classNamePrefix","menuPortal","Number","FormikSelectInput","SelectInputInset","placeholderOption","optionsWithPlaceholder","FormikSelectInputInset","TextareaInputInset","_ref$resize","resize","_ref$rows","rows","FormikTextareaInputInset","TextInputInset","FormikTextInputInset","SelectInputNative","selectWrapperClasses","FormikSelectInputNative","FormikTextInput","TextareaInput","FormikTextareaInput","TimePicker","_ref$dateDisplayOptio","dateDisplayOptions","hour","minute","_ref$endTime","endTime","_ref$interval","interval","_ref$locales","locales","_ref$startTime","startTime","generateTimes","first","Date","setHours","last","getHours","timeOptions","currentTime","toISOString","toLocaleTimeString","setSeconds","getSeconds","FormikTimePicker","TimePickerNative","FormikTimePickerNative","Toggle","trackClasses","thumbClasses","FormikToggle","ModalFooter","flexShrink","ModalHeader","justifyContentValue","tablet","ModalBody","ModalBaseComponent","_ref$fullScreenMobile","fullScreenMobile","modal","fullscreen","crossFrame","Modal","Body","generatePages","pageRange","pageTotal","activePage","numberOfPagesDisplayed","_pages","pages","startingPage","endingPage","Math","floor","pageNumber","isPage","secondToLastPage","threeDotsPage","unshift","generatePageRange","generatePageTotal","totalItemsCount","itemsPerPage","ceil","generateActiveListRange","activePageRange","Pagination","_ref$arePagesVisible","arePagesVisible","_ref$isTotalVisible","isTotalVisible","_ref$nextPageText","nextPageText","_ref$numberOfPagesDis","_ref$prevPageText","prevPageText","useMemo","activeListRange","log","useIsomorphicLayoutEffect","useLayoutEffect","ResponsiveContext","createContext","isCreated","ResponsiveProvider","_ref$throttle","throttle","innerWidth","setInnerWidth","_useState2","innerHeight","setInnerHeight","_useState3","outerWidth","setOuterWidth","_useState4","outerHeight","setOuterHeight","handleWindowResize","_window$innerWidth","_window$innerHeight","_window2","_window$outerWidth","_window3","_window$outerHeight","_window4","timeoutId","throttledResize","clearTimeout","Provider","TableBodyCell","_ref$align","align","_ref$emptyCellPlaceho","emptyCellPlaceholder","_ref$isBorderless","isBorderless","_ref$sticky","sticky","_ref$truncateOverflow","truncateOverflow","columnIsSticky","tableCellClasses","truncated","compact","borderless","scope","TableHeaderCell","_ref$dataKey","_ref$hasStickyHeader","hasStickyHeader","_ref$isSortable","isSortable","_ref$onSort","onSort","_ref$sortedColumn","sortedColumn","isColumnSorted","columnDataKey","getSortDirection","sortDirection","renderIcon","renderArrows","enterKey","spaceKey","eventWithKey","sortedKey","handleSort","tableHeaderClasses","sortable","TableRow","_ref$isHoverable","isHoverable","_ref$isTableHead","isTableHead","_ref$row","row","_ref$rowIndex","rowIndex","tableRowClasses","hoverable","renderCellContent","cellValue","getCellClassName","cellClassName","columnIndex","headerClassName","TableBody","rowKey","_ref$hoverableRows","hoverableRows","_ref$isStriped","isStriped","tableBodyClasses","striped","TableHead","tableHeadClasses","Table","_classNames3","_ref$isScrollable","isScrollable","_ref$useFixedTableLay","useFixedTableLayout","container","scrollContainerClasses","scrollable","tableClasses","table","fixed","initialState","theme","setTheme","ThemeProviderContext","ThemeProvider","_ref$defaultTheme","defaultTheme","_ref$storageKey","storageKey","localStorage","getItem","root","documentElement","remove","systemTheme","add","isDarkMode","setItem","getAnimationClass","visible","verticalPosition","horizontalPosition","isCentered","enter","exit","renderToastIcon","toast","iconName","iconColor","renderDismissIcon","canDismiss","ToastNotification","memo","_ref2$position","ariaProps","animationClass","TOAST_LIMIT","ToastStoreActionType","toastTimeouts","Map","addToDismissedQueue","toastId","has","timeout","dispatch","REMOVE_TOAST","payload","set","clearFromDismissedQueue","get","createReducer","handlers","state","action","hasOwnProperty","handleAddToast","toasts","handleUpdateToast","t","handleUpsertToast","find","reducer","UPDATE_TOAST","ADD_TOAST","handleDismissToast","handleRemoveToast","handleStartPause","time","pausedAt","handleEndPause","diff","pauseDuration","actionHandlers","_actionHandlers","UPSERT_TOAST","DISMISS_TOAST","START_PAUSE","END_PAUSE","toastReducer","listeners","memoryState","listener","defaultTimeouts","blank","Infinity","custom","useToastStore","toastOptions","setState","splice","mergedToasts","_toastOptions$t$type","_toastOptions","_toastOptions$t$type2","duration","createToast","opts","createdAt","now","uuidv4","createHandler","dismiss","async","promise","messages","then","err","useToasts","_useToastStore","timeouts","durationLeft","startPause","endPause","updateHeight","_toasts$find","calculateOffset","currentToast","_relevantToasts$filte","reverseOrder","gutter","defaultPosition","relevantToasts","toastIndex","toastsBefore","createRectRef","onRect","el","boundingRect","getBoundingClientRect","getPositionStyle","top","verticalStyle","bottom","horizontalStyle","left","right","transition","DEFAULT_OFFSET","renderNotification","containerPosition","toastPosition","ToastContainer","_ref$containerStyle","containerStyle","_ref$containerClassNa","containerClassName","_ref$gutter","_ref$reverseOrder","_useToasts","pointerEvents","onMouseEnter","onMouseLeave","positionStyle","rect","useWindowSize","_React$useContext","useContext","defaultBreakpoint","useBreakpoint","windowSize","setBreakpoint","sortedBreakpoints","sort","a","b","activeBreakpoint","isPhone","isTablet","isDesktop","isHd","useOpenClose","_props","defaultIsOpen","isOpenProp","onCloseProp","onOpenProp","onOpen","openCallback","closeCallback","isOpenState","setIsOpen","isControlled","handleOpen","handleToggle","useTheme","context","Error"],"mappings":"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"}
1
+ {"version":3,"file":"hyphen-components.cjs.development.js","sources":["../src/lib/cssShorthandToClasses.ts","../src/lib/generateResponsiveClasses.ts","../src/lib/doesStringIncludeCssUnit.ts","../src/lib/getDimensionCss.ts","../src/lib/getElementType.ts","../src/components/Box/Box.tsx","../src/components/Icon/Icon.tsx","../src/components/Alert/Alert.constants.ts","../src/components/Alert/Alert.tsx","../src/components/Badge/Badge.tsx","../src/components/Spinner/Spinner.tsx","../src/lib/reactRouterClickHandler.ts","../src/components/Button/Button.tsx","../src/components/Card/components/CardFooter/CardFooter.tsx","../src/components/Heading/Heading.constants.ts","../src/components/Heading/Heading.tsx","../src/components/Card/components/CardHeader/CardHeader.tsx","../src/components/Card/components/CardSection/CardSection.tsx","../src/components/Card/Card.tsx","../src/components/CheckboxInput/components/CheckboxIcon.tsx","../src/components/CheckboxInput/components/Checkbox.tsx","../src/components/InputValidationMessage/InputValidationMessage.tsx","../src/components/HelpText/HelpText.tsx","../src/components/FormLabel/FormLabel.tsx","../src/components/CheckboxInput/CheckboxInput.tsx","../src/components/DatePicker/DatePicker.tsx","../src/components/FormControl/FormControl.tsx","../src/lib/getAutoCompleteValue.ts","../src/components/TextInput/TextInput.tsx","../src/lib/getColumnKeys.ts","../src/lib/isFunction.ts","../src/lib/mergeRefs.ts","../src/lib/prefersReducedMotion.ts","../src/lib/resolveValue.ts","../src/lib/tokens.ts","../src/components/Popover/Popover.tsx","../src/components/DateInput/DateInput.tsx","../src/constants/keyCodes.ts","../src/components/Details/DetailsSummary.tsx","../src/components/Details/Details.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Formik/FormikCheckboxInput/FormikCheckboxInput.tsx","../src/components/RadioGroup/RadioInput/RadioInputIcon.tsx","../src/components/RadioGroup/RadioInput/RadioInput.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/Formik/FormikRadioGroup/FormikRadioGroup.tsx","../src/components/SelectInput/SelectInput.tsx","../src/components/Formik/FormikSelectInput/FormikSelectInput.tsx","../src/components/SelectInputInset/SelectInputInset.tsx","../src/components/Formik/FormikSelectInputInset/FormikSelectInputInset.tsx","../src/components/TextareaInputInset/TextareaInputInset.tsx","../src/components/Formik/FormikTextareaInputInset/FormikTextareaInputInset.tsx","../src/components/TextInputInset/TextInputInset.tsx","../src/components/Formik/FormikTextInputInset/FormikTextInputInset.tsx","../src/components/SelectInputNative/SelectInputNative.tsx","../src/components/Formik/FormikSelectInputNative/FormikSelectInputNative.tsx","../src/components/Formik/FormikTextInput/FormikTextInput.tsx","../src/components/TextareaInput/TextareaInput.tsx","../src/components/Formik/FormikTextareaInput/FormikTextareaInput.tsx","../src/components/TimePicker/TimePicker.tsx","../src/components/Formik/FormikTimePicker/FormikTimePicker.tsx","../src/components/TimePickerNative/TimePickerNative.tsx","../src/components/Formik/FormikTimePickerNative/FormikTimePickerNative.tsx","../src/components/Toggle/Toggle.tsx","../src/components/Formik/FormikToggle/FormikToggle.tsx","../src/components/Modal/components/ModalFooter/ModalFooter.tsx","../src/components/Modal/components/ModalHeader/ModalHeader.tsx","../src/components/Modal/components/ModalBody/ModalBody.tsx","../src/components/Modal/Modal.tsx","../src/components/Pagination/Pagination.utilities.ts","../src/components/Pagination/Pagination.tsx","../src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayouEffect.ts","../src/components/ResponsiveProvider/ResponsiveProvider.tsx","../src/components/Table/TableBody/TableBodyCell/TableBodyCell.tsx","../src/components/Table/TableHead/TableHeaderCell/TableHeaderCell.tsx","../src/components/Table/common/TableRow/TableRow.tsx","../src/components/Table/TableBody/TableBody.tsx","../src/components/Table/TableHead/TableHead.tsx","../src/components/Table/Table.tsx","../src/components/ThemeProvider/ThemeProvider.tsx","../src/components/Toast/ToastNotification.tsx","../src/components/Toast/Toast.store.ts","../src/components/Toast/toast.ts","../src/components/Toast/useToasts.ts","../src/components/Toast/ToastContainer.tsx","../src/hooks/useWindowSize/useWindowSize.ts","../src/hooks/useBreakpoint/useBreakpoint.ts","../src/hooks/useOpenClose/useOpenClose.tsx","../src/hooks/useTheme/useTheme.ts"],"sourcesContent":["import { ResponsiveProp, BreakpointSizeWithBase } from '../types';\n\nexport function isValidSpacingValue(\n value?: string | ResponsiveProp<string | undefined>\n): boolean {\n if (\n value === undefined ||\n value === null ||\n (typeof value !== 'string' && typeof value !== 'object')\n ) {\n return false;\n }\n\n return true;\n}\n\nexport function generateBaseClasses(\n attribute: string | undefined,\n value?: string | ResponsiveProp<string | undefined>\n): string[] {\n if (typeof value !== 'string') return [];\n\n const trimmedValue = value.trim();\n\n if (trimmedValue !== value) {\n // eslint-disable-next-line no-console\n console.warn(`\n Hyphen Components: It seems you've passed an incorrect\n shorthand value as a prop in your component. The value\n has extra whitespace either at the beginning or the end of it.\n We have trimmed this whitespace, but please double-check that\n the prop value is correct.\n attribute: \"${attribute}\"\n value: \"${value}\"\n `);\n }\n\n const classes: string[] = [];\n let shorthand: { [key: number]: string[] };\n\n if (attribute === 'br') {\n shorthand = {\n /* top-left-and-bottom-right | top-right-and-bottom-left */\n 2: ['top-left', 'top-right'],\n /* top-left | top-right-and-bottom-left | bottom-right */\n 3: ['top-left', 'top-right', 'bottom-right'],\n 4: ['top-left', 'top-right', 'bottom-right', 'bottom-left'],\n };\n } else if (attribute === 'g') {\n shorthand = { 2: ['rg', 'cg'] };\n } else {\n shorthand = {\n 2: ['v', 'h'],\n 3: ['top', 'h', 'bottom'],\n 4: ['top', 'right', 'bottom', 'left'],\n };\n }\n\n if (trimmedValue.includes(' ') && trimmedValue.split(' ').length > 1) {\n const sides = trimmedValue.split(' ');\n\n if (sides.length > 4) {\n // eslint-disable-next-line no-console\n console.warn(`\n Hyphen Components: It seems you've passed an incorrect\n shorthand value as a prop in your component. The value\n has more than four string components. While it will not break anything,\n please double-check your prop values to ensure the expected result is correct.\n attribute: \"${attribute}\"\n value: \"${value}\"\n `);\n }\n\n const trimmedSides = sides.slice(0, 4);\n\n // br = border radius -- the corner logic is different than sides.\n if (attribute === 'br') {\n trimmedSides.forEach((v, index) => {\n classes.push(\n `${attribute}-${shorthand[trimmedSides.length][index]}-${v}`\n );\n\n if (trimmedSides.length === 3 && index === 1) {\n classes.push(`${attribute}-bottom-left-${trimmedSides[index]}`);\n } else if (trimmedSides.length === 2 && index === 0) {\n classes.push(`${attribute}-bottom-right-${trimmedSides[index]}`);\n } else if (trimmedSides.length === 2 && index === 1) {\n classes.push(`${attribute}-bottom-left-${trimmedSides[index]}`);\n }\n });\n } else if (attribute === 'g') {\n trimmedSides.forEach((v, index) => {\n classes.push(`${shorthand[trimmedSides.length][index]}-${v}`);\n });\n } else {\n trimmedSides.forEach((v, index) => {\n classes.push(\n `${attribute}-${shorthand[trimmedSides.length][index]}-${v}`\n );\n });\n }\n } else {\n classes.push(`${attribute}-${trimmedValue}`);\n }\n\n return classes;\n}\n\nexport function cssShorthandToClasses(\n attribute: string,\n value?: string | ResponsiveProp<string | undefined>\n): string[] {\n if (!isValidSpacingValue(value)) return [];\n\n const classes: string[] = [];\n\n if (typeof value === 'object') {\n Object.keys(value).forEach((key) => {\n const baseClasses = generateBaseClasses(\n attribute,\n value[key as BreakpointSizeWithBase]\n );\n const responsiveClasses = baseClasses?.map((baseClass) =>\n key === 'base' ? baseClass : `${baseClass}-${key}`\n );\n classes.push(...responsiveClasses);\n });\n } else if (typeof value === 'string') {\n classes.push(...generateBaseClasses(attribute, value));\n }\n\n return classes;\n}\n","import { ResponsiveProp, BreakpointSizeWithBase } from '../types';\n\n// eslint-disable-next-line\nexport function generateResponsiveClasses(\n classRoot: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: ResponsiveProp<any> | string | undefined\n): string[] {\n if (\n value === null ||\n (typeof value !== 'string' && typeof value !== 'object')\n )\n return [];\n\n const classes: string[] = [];\n\n if (typeof value === 'object') {\n Object.keys(value).forEach((key) => {\n const baseClass = `${classRoot}-${value[key as BreakpointSizeWithBase]}`;\n const responsiveClass =\n key === 'base' ? baseClass : `${baseClass}-${key}`;\n\n classes.push(responsiveClass);\n });\n } else if (typeof value === 'string') {\n classes.push(`${classRoot}-${value}`);\n }\n\n return classes;\n}\n","// eslint-disable-next-line import/prefer-default-export\nexport function doesStringIncludeCssUnit(value: string | undefined): boolean {\n const cssUnits = ['px', 'em', 'rem', '%', 'vw', 'vh'];\n\n return cssUnits.some((unit) => value?.includes(unit));\n}\n","import { CSSProperties } from 'react';\nimport {\n StylesAndClasses,\n CssDimensionAbbreviation,\n ResponsiveProp,\n DimensionSize,\n} from '../types';\nimport { doesStringIncludeCssUnit } from './doesStringIncludeCssUnit';\nimport { generateResponsiveClasses } from './generateResponsiveClasses';\n\nexport function getDimensionStyles(\n dimension: CssDimensionAbbreviation,\n value?: DimensionSize | ResponsiveProp<DimensionSize> | string\n): { [key: string]: string } | undefined {\n if (value === undefined) return value;\n\n let styles;\n // value is a css unit so set its style property\n if (typeof value === 'string' && doesStringIncludeCssUnit(value)) {\n switch (dimension) {\n case 'h':\n styles = { height: value };\n break;\n case 'mw':\n styles = { maxWidth: value };\n break;\n case 'mh':\n styles = { maxHeight: value };\n break;\n case 'minw':\n styles = { minWidth: value };\n break;\n case 'minh':\n styles = { minHeight: value };\n break;\n default:\n styles = { width: value };\n }\n }\n return styles;\n}\n\nexport function getDimensionClasses(\n dimension: CssDimensionAbbreviation,\n value?: DimensionSize | ResponsiveProp<DimensionSize> | string\n): string[] | undefined {\n if (value === undefined) return value;\n\n const classes = [];\n if (\n (typeof value === 'string' && !doesStringIncludeCssUnit(value)) ||\n (typeof value === 'object' &&\n Object.values(value).every((v) => !doesStringIncludeCssUnit(v)))\n ) {\n classes.push(...generateResponsiveClasses(dimension, value));\n }\n\n return classes;\n}\n/**\n * Returns an object of styles and class names that correspond with the given value\n * @param {CssDimensionAbbreviation} dimension width or height\n * @param {string} [value] value of the dimension\n */\nexport function getDimensionCss(\n dimension: CssDimensionAbbreviation,\n value?: DimensionSize | ResponsiveProp<DimensionSize> | string\n): StylesAndClasses<CSSProperties> {\n return {\n styles: getDimensionStyles(dimension, value),\n classes: getDimensionClasses(dimension, value),\n };\n}\n","import React from 'react';\n/**\n * Returns a createElement() type based on the props of the Component.\n * Useful for calculating what type a component should render as.\n *\n * @param {function} Component A function or ReactClass.\n * @param {object} props A ReactElement props object\n * @param {function} [getDefault] A function that returns a default element type.\n * @returns {string} A ReactElement type\n */\nexport function getElementType( // eslint-disable-line import/prefer-default-export\n Component: React.Component | React.FC,\n props: { [key: string]: unknown },\n getDefault?: () => string\n): string {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const { defaultProps = {} } = Component;\n\n // ----------------------------------------\n // user defined \"as\" element type\n\n if (props.as && props.as !== defaultProps.as) return props.as as string;\n\n // ----------------------------------------\n // computed default element type\n\n if (getDefault) {\n const computedDefault = getDefault();\n if (computedDefault) return computedDefault;\n }\n\n // ----------------------------------------\n // infer anchor links\n\n if (props.href) return 'a';\n\n // ----------------------------------------\n // use defaultProp or 'div'\n\n return defaultProps.as || 'div';\n}\n","import * as CSS from 'csstype';\n\nimport {\n BaseSpacing,\n BorderRadiusSize,\n BorderSize,\n BoxShadowSize,\n // BaseColor,\n BreakpointSizeWithBase,\n CssAlignContentValue,\n CssAlignItemsValue,\n CssDisplayValue,\n CssFlexDirectionValue,\n CssFlexValue,\n CssJustifyContentValue,\n CssOverflowValue,\n CssTextAlignValue,\n DimensionSize,\n FontColor,\n FontFamily,\n FontSize,\n FontWeight,\n ResponsiveProp,\n SpacingSize,\n ZIndexSize,\n BackgroundColor,\n BorderColor,\n} from '../../types';\nimport {\n CSSProperties,\n Children,\n FC,\n ReactElement,\n ReactNode,\n cloneElement,\n createElement,\n forwardRef,\n} from 'react';\n\nimport { KnownKeys } from '../../types/lib.types';\nimport classNames from 'classnames';\nimport { cssShorthandToClasses } from '../../lib/cssShorthandToClasses';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { getDimensionCss } from '../../lib/getDimensionCss';\nimport { getElementType } from '../../lib/getElementType';\nimport styles from './Box.module.scss';\n\nexport type HoverableBoxProperties =\n | 'color'\n | 'borderColor'\n | 'shadow'\n | 'background';\nexport interface BoxProps {\n /**\n * The element type to be rendered.\n */\n as?: string;\n /**\n * How to align the contents along the cross axis.\n */\n alignItems?: CssAlignItemsValue | ResponsiveProp<CssAlignItemsValue>;\n /**\n * How to align the contents when there is extra space in the cross axis.\n * This property has no effect when there is only one line of flex items.\n */\n alignContent?: CssAlignContentValue | ResponsiveProp<CssAlignContentValue>;\n /**\n * How to align along the cross axis when contained in a Box.\n * This allows the default alignment (or the one specified by `align`) to be overridden for the individual Box.\n */\n alignSelf?: CssAlignItemsValue | ResponsiveProp<CssAlignItemsValue>;\n /**\n * Any valid background color token, or a `url()` for an image\n */\n background?: BackgroundColor;\n /**\n * Any valid border color token\n */\n borderColor?: BorderColor;\n /**\n * Width of the Box's border\n * Can be a single [border width token](/?path=/docs/foundation-design-tokens--docs#border-width).\n * Can also be a string of [border width tokens](/?path=/docs/foundation-design-tokens--docs#border-width)\n * that models itself after the css shorthand property,\n * where you can set the border width on all four sides of an element.\n * e.g: \"0 sm xs 0\" --> top: 0, right: sm, bottom: xs, left: 0;\n */\n borderWidth?: BorderSize | string | ResponsiveProp<BorderSize | string>;\n /**\n * Additional class names to add\n */\n className?: string;\n /**\n * The amount of spacing (implemented as margin) between child elements.\n * Can be a single [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing).\n * NOTE: this prop is incompatible with reverse flex direction values (row-reverse, column-reverse).\n * For grid and flex layouts, use 'gap' instead.\n */\n childGap?: SpacingSize | ResponsiveProp<SpacingSize>;\n /**\n * The box's contents\n */\n children?: ReactNode;\n /**\n * A color token identifier to use for the text color.\n */\n color?: FontColor;\n /**\n * Sets the gaps (gutters) between columns.\n */\n columnGap?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * Cursor style. Use any standard CSS value.\n */\n cursor?: CSS.Property.Cursor;\n /**\n * Sets how flex items are placed inside the Box, defining the main axis and the direction\n * NOTE: reverse directions are incompatible with the `childGap` prop.\n */\n direction?: CssFlexDirectionValue | ResponsiveProp<CssFlexDirectionValue>;\n /**\n * Display property. Only select values supported.\n */\n display?: CssDisplayValue | ResponsiveProp<CssDisplayValue>;\n /**\n * Can be used as shorthand for the flexbox css properties `flex-grow`, `flex-shrink`, `flex-basis`\n */\n flex?: CssFlexValue | ResponsiveProp<CssFlexValue>;\n /**\n * Pass style modifiers for focus states. The following properties can be modified on focus.\n * `* background`\n * `* borderColor`\n * `* borderWidth`\n * `* color`\n * `* shadow`\n */\n focus?: {\n background?: BoxProps['background'];\n borderColor?: BoxProps['borderColor'];\n borderWidth?: BoxProps['borderWidth'];\n color?: BoxProps['color'];\n shadow?: BoxProps['shadow'];\n };\n /**\n * The [font family token](/?path=/docs/foundation-design-tokens--docs#font-family) identifier for the Box's text\n */\n fontFamily?: FontFamily | ResponsiveProp<FontFamily>;\n /**\n * The [font size token](/?path=/docs/foundation-design-tokens--docs#font-size) identifier for the Box's text\n */\n fontSize?: FontSize | ResponsiveProp<FontSize>;\n /**\n * The [font weight token](/?path=/docs/design-tokens-design-tokens--page#font-weight) identifier for the Box's text\n */\n fontWeight?: FontWeight | ResponsiveProp<FontWeight>;\n /**\n * The height of the element. Can be given a standard css value (px, rem, em, %),\n * or a [height token](/?path=/docs/foundation-design-tokens--docs#height)\n */\n height?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * Pass style modifiers for hover states. The following properties can be modified on hover:\n * `* background`\n * `* borderColor`\n * `* borderWidth`\n * `* color`\n * `* fontSize`\n * `* shadow`\n */\n hover?: {\n background?: BoxProps['background'];\n borderColor?: BoxProps['borderColor'];\n borderWidth?: BoxProps['borderWidth'];\n color?: BoxProps['color'];\n fontSize?: BoxProps['fontSize'];\n shadow?: BoxProps['shadow'];\n };\n /**\n * Sets the gaps (gutters) between rows and columns.\n */\n gap?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * How space between and around content items is distributed along the main-axis a flex Box\n */\n justifyContent?:\n | CssJustifyContentValue\n | ResponsiveProp<CssJustifyContentValue>;\n /**\n * Amount of space around the element.\n * Can be a single [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing).\n * Can also be a string of [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing)\n * that models itself after the css shorthand property,\n * where you can set the margin area on all four sides of an element. It is shorthand for top, right, bottom, left.\n */\n margin?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * The maximum height of the element. Can be given a standard css value (px, rem, em, %),\n * or a [height token](/?path=/docs/foundation-design-tokens--docs#height)\n */\n maxHeight?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * The minimum height of the element. Can be given a standard css value (px, rem, em, %),\n * or a [height token](/?path=/docs/foundation-design-tokens--docs#height)\n */\n minHeight?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * The maximum width of the element. Can be given a standard css value (px, rem, em, %),\n * or a [width token](/?path=/docs/foundation-design-tokens--docs#width)\n */\n maxWidth?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * The minimum width of the element. Can be given a standard css value (px, rem, em, %),\n * or a [width token](/?path=/docs/foundation-design-tokens--docs#width)\n */\n minWidth?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * The css overflow behavior of the Box\n */\n overflow?: CssOverflowValue | ResponsiveProp<CssOverflowValue>;\n /**\n * Amount of space within the element around the Box contents.\n * Can be a single [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing).\n * Can also be a string of [spacing value](/?path=/docs/foundation-design-tokens--docs#spacing)\n * that models itself after the css shorthand property,\n * where you can set the margin area on all four sides of an element. It is shorthand for top, right, bottom, left.\n */\n padding?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * CSS position property.\n */\n position?: CSS.Property.Position | ResponsiveProp<CSS.Property.Position>;\n /**\n * Set the radius of all corners\n */\n radius?: BorderRadiusSize | ResponsiveProp<BorderRadiusSize>;\n /**\n * Sets the gaps (gutters) between rows.\n */\n rowGap?: BaseSpacing | ResponsiveProp<BaseSpacing>;\n /**\n * The size of the drop shadow applied to the Box\n */\n shadow?: BoxShadowSize | ResponsiveProp<BoxShadowSize>;\n /**\n * CSS Style object\n */\n style?: CSSProperties;\n /**\n * the alignment of the text\n */\n textAlign?: CssTextAlignValue | ResponsiveProp<CssTextAlignValue>;\n /**\n * By default, a Box's items will all try to fit onto one line.\n * Change that and allow the items to wrap as needed wrap\n */\n wrap?: boolean | ResponsiveProp<boolean>;\n /**\n * The width of the element. Can be given a standard css value (px, rem, em, %),\n * or a [width token](/?path=/docs/foundation-design-tokens--docs#width)\n */\n width?: DimensionSize | ResponsiveProp<DimensionSize> | string;\n /**\n * ZIndex value for the element. Can be one of the predetermined token values.\n * Can be responsive.\n */\n zIndex?: ZIndexSize | ResponsiveProp<ZIndexSize>;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\n/**\n * A `<Box>` is a layout component to build UIs with consistent padding and spacing between\n * elements.\n */\nexport const Box: FC<BoxProps> = forwardRef(\n (\n {\n as = 'div',\n alignItems = undefined,\n alignContent = undefined,\n alignSelf = undefined,\n background = undefined,\n borderColor = undefined,\n borderWidth = undefined,\n children = undefined,\n childGap = undefined,\n className = '',\n color = undefined,\n columnGap = undefined,\n cursor = undefined,\n display = 'flex',\n direction = 'column',\n flex = undefined,\n fontFamily = undefined,\n fontSize = 'inherit',\n focus = undefined,\n fontWeight = undefined,\n gap = undefined,\n height = undefined,\n hover = undefined,\n justifyContent = undefined,\n margin = undefined,\n maxHeight = undefined,\n minHeight = undefined,\n maxWidth = undefined,\n minWidth = undefined,\n overflow = undefined,\n padding = undefined,\n position = undefined,\n radius = undefined,\n rowGap = undefined,\n shadow = undefined,\n style = {},\n textAlign = undefined,\n wrap = undefined,\n width = undefined,\n zIndex = undefined,\n ...restProps\n },\n ref\n ) => {\n const heightCss = getDimensionCss('h', height);\n const widthCss = getDimensionCss('w', width);\n const maxHeightCss = getDimensionCss('mh', maxHeight);\n const maxWidthCss = getDimensionCss('mw', maxWidth);\n const minHeightCss = getDimensionCss('minh', minHeight);\n const minWidthCss = getDimensionCss('minw', minWidth);\n\n const isFlexBox = typeof display === 'string' && display.includes('flex');\n const flexDirectionClasses = isFlexBox\n ? generateResponsiveClasses('flex-direction', direction)\n : null;\n\n const cssPropertyMap: {\n [key: string]: {\n classPrefix: string;\n transformer:\n | typeof generateResponsiveClasses\n | typeof cssShorthandToClasses;\n };\n } = {\n color: {\n classPrefix: 'font-color',\n transformer: generateResponsiveClasses,\n },\n background: {\n classPrefix: 'background-color',\n transformer: generateResponsiveClasses,\n },\n borderColor: {\n classPrefix: 'border-color',\n transformer: generateResponsiveClasses,\n },\n borderWidth: {\n classPrefix: 'border-width',\n transformer: cssShorthandToClasses,\n },\n shadow: { classPrefix: 'shadow', transformer: generateResponsiveClasses },\n fontSize: {\n classPrefix: 'font-size',\n transformer: generateResponsiveClasses,\n },\n };\n\n const getStatefulClasses = (\n stateKey: 'hover' | 'focus',\n values: BoxProps['hover' | 'hover']\n ) =>\n values // eslint-disable-line\n ? Object.entries(values).map(\n ([key, value]) =>\n cssPropertyMap[key].transformer(\n `${stateKey}:${\n cssPropertyMap[key as keyof BoxProps['focus' | 'hover']]\n .classPrefix\n }`,\n value\n ) // eslint-disable-line max-len\n )\n : undefined;\n\n const hoverClasses = getStatefulClasses('hover', hover);\n const focusClasses = getStatefulClasses('focus', focus);\n\n const boxClasses = classNames(\n className,\n cssShorthandToClasses('m', margin),\n cssShorthandToClasses('p', padding),\n cssShorthandToClasses('br', radius),\n cssShorthandToClasses('g', gap),\n cssShorthandToClasses('cg', columnGap),\n cssShorthandToClasses('rg', rowGap),\n heightCss.classes,\n maxHeightCss.classes,\n minHeightCss.classes,\n maxWidthCss.classes,\n minWidthCss.classes,\n widthCss.classes,\n flexDirectionClasses,\n generateResponsiveClasses('display', display),\n generateResponsiveClasses('justify-content', justifyContent),\n generateResponsiveClasses('align-items', alignItems),\n generateResponsiveClasses('align-content', alignContent),\n generateResponsiveClasses('align-self', alignSelf),\n generateResponsiveClasses('font-family', fontFamily),\n generateResponsiveClasses('font-size', fontSize),\n generateResponsiveClasses('overflow', overflow),\n generateResponsiveClasses('shadow', shadow),\n generateResponsiveClasses('flex', flex),\n cssShorthandToClasses('bw', borderWidth),\n generateResponsiveClasses('font-weight', fontWeight),\n generateResponsiveClasses('text-align', textAlign),\n generateResponsiveClasses('position', position),\n generateResponsiveClasses('z-index', zIndex),\n ...(hoverClasses ?? []),\n ...(focusClasses ?? []),\n {\n 'flex-wrap': isFlexBox && wrap,\n 'flex-nowrap': isFlexBox && wrap === false,\n [`background-color-${background}`]: background,\n [`font-color-${color}`]: color,\n [`border-color-${borderColor}`]: borderColor,\n [`cursor-${cursor}`]: cursor,\n [styles['box-transition']]: hover || focus,\n }\n );\n\n const boxStyles = {\n ...style,\n ...heightCss.styles,\n ...maxHeightCss.styles,\n ...maxWidthCss.styles,\n ...widthCss.styles,\n ...minHeightCss.styles,\n ...minWidthCss.styles,\n };\n\n /**\n * Creates an object that maps the flex direction to either `right` or `bottom`\n * so a margin can be applied to that side.\n */\n const generateChildGapDirection = (): ResponsiveProp<string> => {\n let childGapDirection = {};\n\n const getChildGapMarginDirection = (d: CssFlexDirectionValue) => {\n let marginDirection = '';\n if (d?.includes('row')) marginDirection = 'right';\n else if (d?.includes('column')) marginDirection = 'bottom';\n\n return marginDirection;\n };\n\n if (typeof direction === 'string') {\n childGapDirection = {\n base: getChildGapMarginDirection(direction as CssFlexDirectionValue),\n };\n } else if (typeof direction === 'object' && direction !== null) {\n childGapDirection = Object.keys(direction).reduce(\n (acc, curr) => ({\n ...acc,\n [curr]: getChildGapMarginDirection(\n direction[curr as BreakpointSizeWithBase]\n ),\n }),\n {}\n );\n }\n\n return childGapDirection;\n };\n\n /**\n * Shapes the childGap prop into a ResponsiveSpacing object\n * so that we can cross-reference values between direction and childGap values to generate\n * responsive classes.\n */\n const generateChildGap = (): ResponsiveProp<SpacingSize> => {\n let childGapObj = {};\n\n if (typeof childGap === 'string') {\n childGapObj = { base: childGap };\n } else if (typeof childGap === 'object' && childGap !== null) {\n childGapObj = { ...childGap };\n }\n\n return childGapObj;\n };\n\n const childGapClasses: string[] = [];\n\n if (childGap && direction) {\n const childGapDirection = generateChildGapDirection();\n const childGapValues = generateChildGap();\n const breakpoints: BreakpointSizeWithBase[] = [\n 'hd',\n 'desktop',\n 'tablet',\n 'base',\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const findMatchingBreakpoint = (\n responsiveObj: ResponsiveProp<any>,\n key: BreakpointSizeWithBase\n ): string => {\n const index = breakpoints.findIndex((breakpoint) => breakpoint === key);\n let value = '';\n\n value = responsiveObj[key];\n\n if (!value)\n return findMatchingBreakpoint(responsiveObj, breakpoints[index + 1]);\n\n return value;\n };\n\n breakpoints.forEach((breakpoint) => {\n const foundDirection = findMatchingBreakpoint(\n childGapDirection,\n breakpoint as BreakpointSizeWithBase\n );\n const foundChildGap = findMatchingBreakpoint(\n childGapValues,\n breakpoint as BreakpointSizeWithBase\n );\n\n const classSuffix = breakpoint === 'base' ? '' : `-${breakpoint}`;\n const oppositeDirection =\n foundDirection === 'bottom' ? 'right' : 'bottom';\n\n childGapClasses.push(\n `m-${foundDirection}-${foundChildGap}${classSuffix}`\n );\n childGapClasses.push(`m-${oppositeDirection}-0${classSuffix}`);\n });\n }\n\n /**\n * Shallow merges existing classes of child node with a className based on the childGap value.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const decorateChildren = (\n child: string | number | ReactElement<any>,\n i: number,\n array: ReactElement<any>[]\n ) => {\n if (\n i === array.length - 1 ||\n !child ||\n typeof child === 'string' ||\n typeof child === 'number'\n ) {\n return child; // Not gap if child is last element or if the children are strings or numbers.\n }\n\n const childClasses = classNames(child.props.className, [\n ...Array.from(new Set(childGapClasses)),\n ]);\n\n return cloneElement(child, {\n className: childClasses,\n key: child.key ?? i,\n });\n };\n\n let decoratedChildren = Children.toArray(children).filter(\n (child) => child !== null\n );\n\n if (childGapClasses && decoratedChildren.length > 1) {\n decoratedChildren = decoratedChildren.map((value, index, array) =>\n decorateChildren(\n value as string | number | ReactElement<any>, // eslint-disable-line @typescript-eslint/no-explicit-any\n index,\n array as ReactElement<any>[] // eslint-disable-line @typescript-eslint/no-explicit-any\n )\n );\n }\n\n const element = getElementType(Box, { as });\n\n return createElement(\n element,\n {\n className: boxClasses,\n style: boxStyles,\n ref,\n ...restProps,\n },\n children !== null && children !== undefined ? decoratedChildren : null\n );\n }\n);\n\nexport const boxPropsKeys: (keyof Pick<BoxProps, KnownKeys<BoxProps>>)[] = [\n 'as',\n 'alignItems',\n 'alignContent',\n 'alignSelf',\n 'background',\n 'borderColor',\n 'borderWidth',\n 'className',\n 'childGap',\n 'children',\n 'color',\n 'columnGap',\n 'cursor',\n 'direction',\n 'display',\n 'flex',\n 'focus',\n 'fontFamily',\n 'fontSize',\n 'fontWeight',\n 'gap',\n 'height',\n 'hover',\n 'justifyContent',\n 'margin',\n 'maxHeight',\n 'minHeight',\n 'maxWidth',\n 'minWidth',\n 'overflow',\n 'padding',\n 'position',\n 'radius',\n 'rowGap',\n 'shadow',\n 'style',\n 'textAlign',\n 'wrap',\n 'width',\n 'zIndex',\n];\n","import { FontColor, FontSize, IconName, ResponsiveProp } from '../../types';\nimport React, { FC, forwardRef } from 'react';\n\nimport { Box } from '../Box/Box';\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport icons from '@hyphen/hyphen-design-tokens/build/assets/icons/react';\n\nexport interface IconProps {\n className?: string;\n /**\n * A color token identifier to use for the text color.\n */\n color?: FontColor | ResponsiveProp<FontColor>;\n /**\n * A [font size token](/?path=/docs/design-tokens-design-tokens--page#font-size) identifier\n */\n size?: FontSize | ResponsiveProp<FontSize>;\n /**\n * Name of the icon\n */\n name: IconName;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const Icon: FC<IconProps> = forwardRef<SVGSVGElement, IconProps>(\n ({ className = undefined, name, color, size, ...restProps }, ref) => {\n const IconComponent = icons[name];\n\n if (!IconComponent) console.error(`Icon '${name}' not found`); // eslint-disable-line no-console\n\n const iconClasses = classNames(\n className,\n generateResponsiveClasses('font-color', color),\n generateResponsiveClasses('font-size', size)\n );\n\n return IconComponent ? (\n <IconComponent\n className={iconClasses || null}\n ref={ref}\n data-testid={`icon-testid--${name}`}\n {...restProps}\n />\n ) : (\n <Box\n fontWeight=\"bold\"\n background=\"error\"\n color=\"white\"\n padding=\"2xs\"\n fontSize=\"sm\"\n display=\"inline\"\n >\n ???\n </Box>\n );\n }\n);\n","import { IconName } from '../../types';\nimport { AlertVariant } from './Alert.types';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const ALERT_VARIANTS: AlertVariant[] = [\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'default',\n];\n\nexport const ALERT_ICONS_MAP: { [key in AlertVariant]: { icon: IconName } } = {\n default: { icon: 'c-warning' },\n info: { icon: 'c-info' },\n success: { icon: 'c-check' },\n warning: { icon: 't-warning' },\n danger: { icon: 'c-remove' },\n};\n","import React, { FC, ReactNode, MouseEvent, KeyboardEvent } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../Box/Box';\nimport { Icon } from '../Icon/Icon';\nimport styles from './Alert.module.scss';\nimport { AlertVariant } from './Alert.types';\nimport { ALERT_ICONS_MAP } from './Alert.constants';\n\nexport interface AlertProps {\n /**\n * Custom class to apply to the alert.\n */\n className?: string;\n /**\n * Custom text to use as a close button.\n */\n closeText?: string;\n /**\n * Whether the alert as an icon that corresponds to its variant (Success, warning, etc.).\n */\n hasIcon?: boolean;\n /**\n * Whether the alert can be closed by the user. If `true` it will render\n * the 'close' icon on the right hand side of the alert.\n */\n isClosable?: boolean;\n /**\n * Renders a version of the alert with smaller padding.\n */\n isCompact?: boolean;\n /**\n * The text message or ReactNode to be rendered in the alert.\n */\n message?: string | ReactNode;\n /**\n * Whether the alert can be closed by the user. If `true` it will render\n * the 'close' icon on the right hand side of the alert.\n */\n onClose?: (\n event: MouseEvent<HTMLOrSVGElement> | KeyboardEvent<HTMLSpanElement>\n ) => void;\n /**\n * A render function that returns JSX if preferred over a static ReactNode or string.\n */\n render?: () => ReactNode;\n /**\n * The title for the alert.\n */\n title?: string;\n /**\n * The type/color of the alert to show.\n */\n variant?: AlertVariant;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\nexport const Alert: FC<AlertProps> = ({\n className = '',\n closeText = '',\n hasIcon = false,\n isCompact = false,\n isClosable = false,\n message = '',\n onClose = undefined,\n render = undefined,\n title = '',\n variant = 'default',\n ...restProps\n}) => {\n const handleClose = (\n event: MouseEvent<HTMLOrSVGElement> | KeyboardEvent<HTMLSpanElement>\n ): void => {\n if (!onClose) return;\n\n onClose(event);\n };\n\n const renderAlertIcon = (): ReactNode => (\n <Box fontSize=\"md\" className={styles[`alert__icon__${variant}`]}>\n <Icon\n name={ALERT_ICONS_MAP[variant].icon}\n data-testid={`alert-icon-${variant}-test-id`}\n />\n </Box>\n );\n\n const renderCloseIcon = (): ReactNode => {\n const handleCloseKeyPress = (\n event: KeyboardEvent<HTMLSpanElement>\n ): void => {\n if (event.keyCode === 13) handleClose(event);\n };\n\n return (\n <Box\n margin=\"0 0 0 auto\"\n color=\"secondary\"\n className={styles['close-icon']}\n >\n <button\n type=\"button\"\n onClick={handleClose}\n onKeyUp={handleCloseKeyPress}\n >\n {closeText || (\n <Icon name=\"remove\" data-testid=\"alert-close-icon-test-id\" />\n )}\n </button>\n </Box>\n );\n };\n\n const alertContainerClasses: string = classNames(\n styles[`alert__${variant}`],\n styles.alert,\n className\n );\n\n return (\n <Box\n alignItems=\"flex-start\"\n gap=\"md\"\n className={alertContainerClasses}\n direction=\"row\"\n padding={isCompact ? 'xs' : 'md'}\n radius=\"md\"\n role=\"alert\"\n fontSize=\"sm\"\n {...restProps}\n >\n {hasIcon && renderAlertIcon()}\n <div>\n {render ? (\n render()\n ) : (\n <Box display=\"block\" childGap={message && title ? '2xs' : undefined}>\n {title && (\n <Box\n as=\"h4\"\n fontSize=\"sm\"\n fontWeight=\"semibold\"\n className={styles['alert-heading']}\n >\n {title}\n </Box>\n )}\n {message &&\n (typeof message === 'string' ? <p>{message}</p> : message)}\n </Box>\n )}\n </div>\n {isClosable && renderCloseIcon()}\n </Box>\n );\n};\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { FontSize, BaseSpacing, ResponsiveProp } from '../../types';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport styles from './Badge.module.scss';\nimport { Box } from '../Box/Box';\n\nexport type BadgeSize = 'sm' | 'md' | 'lg';\n\nexport type BadgeVariant =\n | 'light-grey'\n | 'dark-grey'\n | 'inverse'\n | 'green'\n | 'yellow'\n | 'blue'\n | 'red'\n | 'purple'\n | 'hyphen';\n\nexport type BadgeSizeAttributes = { fontSize: FontSize; padding: BaseSpacing };\nexport interface BadgeProps {\n /**\n * Custom class to apply to the badge container div.\n */\n className?: string;\n /**\n * The text message or ReactNode to be rendered in the badge.\n */\n message?: string | ReactNode;\n /**\n * The size of the button.\n */\n size?: BadgeSize | ResponsiveProp<BadgeSize>;\n /**\n * The type/color of the badge to show.\n */\n variant?: BadgeVariant;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const Badge: FC<BadgeProps> = ({\n className = '',\n message = '',\n variant = 'light-grey',\n size = 'md',\n ...restProps\n}) => {\n const responsiveClasses = generateResponsiveClasses('size', size).map(\n (c) => styles[c]\n );\n\n const badgeClasses: string = classNames(\n styles.badge,\n className,\n responsiveClasses,\n {\n [styles[variant]]: variant,\n }\n );\n\n return (\n <Box className={badgeClasses} display=\"inline-block\" {...restProps}>\n {message}\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport classNames from 'classnames';\nimport styles from './Spinner.module.scss';\n\nexport interface SpinnerProps {\n /**\n * Custom className to be applied to spinner container div element.\n */\n className?: string;\n /**\n * Size of the spinner.\n */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nexport const Spinner: FC<SpinnerProps> = ({ className, size = 'md' }) => {\n const classes = classNames(className, styles.spinner);\n\n const sizeInPixels = () => {\n let pixels;\n if (size === 'sm') pixels = '12';\n if (size === 'md') pixels = '16';\n if (size === 'lg') pixels = '24';\n if (size === 'xl') pixels = '30';\n\n return pixels;\n };\n\n return (\n <span className={classes}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={sizeInPixels()}\n height={sizeInPixels()}\n viewBox=\"0 0 16 16\"\n data-testid=\"spinner-testid\"\n >\n <g fill=\"currentColor\">\n <rect\n fill=\"currentColor\"\n height=\"2\"\n rx=\".5\"\n width=\"4\"\n x=\"12\"\n y=\"7\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"4.001\"\n rx=\".5\"\n width=\"1.999\"\n opacity=\".4\"\n x=\"11.243\"\n y=\"10.242\"\n transform=\"rotate(-44.975 12.243 12.243)\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"4\"\n rx=\".5\"\n width=\"2\"\n opacity=\".4\"\n x=\"7\"\n y=\"12\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"1.999\"\n rx=\".5\"\n width=\"4.001\"\n opacity=\".4\"\n x=\"1.757\"\n y=\"11.243\"\n transform=\"rotate(-45.03 3.757 12.242)\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"2\"\n rx=\".5\"\n width=\"4\"\n opacity=\".4\"\n y=\"7\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"4.001\"\n rx=\".5\"\n width=\"1.999\"\n opacity=\".4\"\n x=\"2.758\"\n y=\"1.757\"\n transform=\"rotate(-44.975 3.757 3.757)\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"4\"\n rx=\".5\"\n width=\"2\"\n opacity=\".6\"\n x=\"7\"\n ></rect>\n <rect\n fill=\"currentColor\"\n height=\"1.999\"\n rx=\".5\"\n width=\"4.001\"\n opacity=\".8\"\n x=\"10.242\"\n y=\"2.758\"\n transform=\"rotate(-45.03 12.242 3.757)\"\n ></rect>\n </g>\n </svg>\n </span>\n );\n};\n","import { MouseEvent, AnchorHTMLAttributes } from 'react';\n\nexport const isModifiedEvent = (\n e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n): boolean => !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);\n\n/**\n * Due to react-router's handling of custom components used in RR <Link>\n * we must add this validation that ensures the router will execute the passed `navigate`\n * prop, thus navigating the user without triggering a refresh.\n *\n * SOURCES:\n * https://github.com/ReactTraining/react-router/issues/7727\n * https://github.com/ReactTraining/react-router/issues/7761\n * */\n// eslint-disable-next-line import/prefer-default-export\nexport const handleReactRouterClick = (\n event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n onClick:\n | ((e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void)\n | undefined,\n target: AnchorHTMLAttributes<HTMLAnchorElement>['target'] | undefined,\n navigate: (() => void) | undefined\n): void => {\n if (onClick) onClick(event);\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === '_self') && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) && // ignore clicks with modifier keys\n navigate\n ) {\n event.preventDefault();\n navigate();\n }\n};\n","import { IconName, ResponsiveProp } from '../../types';\nimport React, {\n AnchorHTMLAttributes,\n ButtonHTMLAttributes,\n FocusEvent,\n MouseEvent,\n ReactNode,\n createElement,\n forwardRef,\n} from 'react';\n\nimport { Box } from '../Box/Box';\nimport { Icon } from '../Icon/Icon';\nimport { Spinner } from '../Spinner/Spinner';\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { getElementType } from '../../lib/getElementType';\nimport { handleReactRouterClick } from '../../lib/reactRouterClickHandler';\nimport styles from './Button.module.scss';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'danger';\n\nexport type ButtonSize = 'sm' | 'md' | 'lg';\n\nexport interface BaseButtonProps {\n /**\n * Contents of the button.\n */\n children?: ReactNode;\n /**\n * Additional ClassNames to add to button.\n */\n className?: string;\n /**\n * Button takes up the full width of its parent container.\n */\n fullWidth?: boolean;\n /**\n * Name of the icon to include before the button text\n */\n iconPrefix?: IconName;\n /**\n * Name of the icon to include after the button text\n */\n iconSuffix?: IconName;\n /**\n * A unique identifier for the button.\n */\n id?: string;\n /**\n * URL to navigate to when clicked. Passing this attribute automatically\n * renders an anchor <a> tag, NOT a <button> element.\n */\n href?: string;\n /**\n * Disables the button, making it inoperable.\n */\n isDisabled?: boolean;\n /**\n * Replaces the button text with a loading indicator and disables the button.\n */\n isLoading?: boolean;\n /**\n * Prop reserved for when component is wrapped by `<Link>` from react-router.\n */\n navigate?: () => void;\n /**\n * Callback when Button is pressed.\n */\n onClick?: (event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /**\n * Callback when focus leaves Button.\n */\n onBlur?: (event: FocusEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /**\n * Callback when Button receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /**\n * Specify the tabIndex of the button.\n */\n tabIndex?: number;\n /**\n * Useful when using button as an anchor tag.\n */\n target?: AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * The size of the button.\n */\n size?: ButtonSize | ResponsiveProp<ButtonSize>;\n /**\n * The color variant of the button\n */\n variant?: ButtonVariant;\n /**\n * ref - currently cannot be typed due to limitations of using the `as` prop\n */\n}\n\nexport type AnchorButtonProps = { as: 'a' } & BaseButtonProps &\n Omit<\n React.DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n >,\n 'ref'\n >;\n\nexport type NormalButtonProps = { as?: 'button' } & BaseButtonProps &\n Omit<\n React.DetailedHTMLProps<\n ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >,\n 'ref'\n >;\n\nexport type ButtonProps = NormalButtonProps | AnchorButtonProps;\n\nexport const Button = forwardRef<\n HTMLAnchorElement | HTMLButtonElement,\n ButtonProps\n>(\n (\n {\n children = undefined,\n as = 'button',\n className = '',\n fullWidth = false,\n id = undefined,\n href = undefined,\n iconPrefix = undefined,\n iconSuffix = undefined,\n isDisabled = false,\n isLoading = false,\n navigate = undefined,\n onClick = undefined,\n onFocus = undefined,\n onBlur = undefined,\n tabIndex = undefined,\n target = undefined,\n type = undefined,\n size = 'md',\n variant = 'primary',\n ...restProps\n },\n ref\n ) => {\n const disabled = isLoading || isDisabled;\n\n const responsiveClasses = generateResponsiveClasses('size', size).map(\n (c) => styles[c]\n );\n\n const buttonClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles.button,\n className,\n responsiveClasses,\n {\n [styles.loading]: isLoading,\n [styles[variant]]: variant,\n [styles['full-width']]: fullWidth,\n }\n );\n\n const handleClick = handleReactRouterClick;\n\n const handleFocus = (\n event: FocusEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (onFocus) onFocus(event);\n };\n\n const handleBlur = (\n event: FocusEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (onBlur) onBlur(event);\n };\n\n const buttonContent =\n iconPrefix || iconSuffix ? (\n <Box display=\"inline-flex\" direction=\"row\" alignItems=\"center\" gap=\"md\">\n {isLoading && <Spinner className={styles['spinner-wrapper']} />}\n {iconPrefix && (\n <Icon\n className={styles.label}\n name={iconPrefix}\n aria-hidden=\"true\"\n focusable=\"false\"\n data-testid=\"prefixIcon\"\n size={size === 'md' ? 'sm' : size}\n />\n )}\n {children && <span className={styles.label}>{children}</span>}\n {iconSuffix && (\n <Icon\n className={styles.label}\n name={iconSuffix}\n aria-hidden=\"true\"\n focusable=\"false\"\n data-testid=\"suffixIcon\"\n size={size === 'md' ? 'sm' : size}\n />\n )}\n </Box>\n ) : (\n <>\n {isLoading && <Spinner className={styles['spinner-wrapper']} />}\n {(() => {\n if (children) {\n return <span className={styles.label}>{children}</span>;\n }\n return null;\n })()}\n </>\n );\n\n const buttonElement = getElementType(Button, { as });\n\n return createElement(\n buttonElement,\n {\n id,\n href,\n className: buttonClasses,\n disabled,\n target: as === 'a' && href ? target : null,\n onBlur: handleBlur,\n onClick: (event: MouseEvent<HTMLAnchorElement | HTMLButtonElement>) =>\n handleClick(event, onClick, target, navigate),\n onFocus: handleFocus,\n ref,\n type: type || (as !== 'a' && !href ? 'button' : undefined),\n tabIndex,\n ...restProps,\n },\n buttonContent\n );\n }\n);\n","import { Box, BoxProps } from '../../../Box/Box';\nimport React, { FC, ReactNode } from 'react';\nexport interface CardFooterProps extends BoxProps {\n /**\n * Contents of the Footer.\n */\n children?: ReactNode;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const CardFooter: FC<CardFooterProps> = ({\n background = 'secondary',\n borderColor = 'subtle',\n borderWidth = 'xs 0 0 0',\n children = null,\n display = 'block',\n padding = '2xl',\n ...restProps\n}) => {\n return (\n <Box\n display={display}\n padding={padding}\n background={background}\n borderColor={borderColor}\n borderWidth={borderWidth}\n {...restProps}\n >\n {children}\n </Box>\n );\n};\n","export type HEADING_LEVELS_TYPE = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nexport const HEADING_LEVELS: HEADING_LEVELS_TYPE[] = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n]; // eslint-disable-line import/prefer-default-export\n\nexport const HEADING_DEFAULT_SIZE_MAP = {\n h1: '3xl',\n h2: '2xl',\n h3: 'xl',\n h4: 'lg',\n h5: 'md',\n h6: 'sm',\n};\n","import { FC, ReactNode, createElement } from 'react';\nimport { FontColor, HeadingSize, ResponsiveProp } from '../../types';\nimport {\n HEADING_DEFAULT_SIZE_MAP,\n HEADING_LEVELS_TYPE,\n} from './Heading.constants';\n\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { getElementType } from '../../lib/getElementType';\nimport styles from './Heading.module.scss';\n\nexport interface HeadingProps {\n /**\n * The DOM tag or react component to use for the element.\n * Select the appropriate semantic element (h1-h6).\n */\n as?: HEADING_LEVELS_TYPE;\n /**\n * Content of the heading. Can be a string or any valid DOM node.\n */\n children?: ReactNode;\n /**\n * Additional class names to add.\n */\n className?: string;\n /**\n * A variant token identifier to use for the text variant. Available variants found:\n * [here](https://github.com/hyphen/hyphen-design-tokens/blob/main/properties/color/font.json).\n */\n color?: FontColor;\n /**\n * By default, size is determined by the chosen tag (e.g. h1 is bigger than h2).\n * However, size can be set independently so that its size is appropriate for the surrounding content.\n * Available sizes found:\n * [here](https://github.com/hyphen/hyphen-design-tokens/blob/main/properties/size/font.json).\n */\n size?: HeadingSize | ResponsiveProp<HeadingSize>;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const Heading: FC<HeadingProps> = ({\n as = 'h4',\n children,\n className,\n color,\n size,\n ...restProps\n}) => {\n const element = getElementType(Heading, { as });\n\n const headingSize = size || HEADING_DEFAULT_SIZE_MAP[as];\n\n const classes = classNames(\n styles.heading,\n className,\n generateResponsiveClasses('heading', headingSize),\n {\n [`font-color-${color}`]: color,\n }\n );\n\n return createElement(element, { className: classes, ...restProps }, children);\n};\n","import React, { FC, ReactNode } from 'react';\nimport { Box, BoxProps } from '../../../Box/Box';\nimport { Heading } from '../../../Heading/Heading';\n\nexport interface CardHeaderProps extends BoxProps {\n /**\n * contents of the Header\n */\n children?: ReactNode;\n /**\n * Additional class names to add\n */\n className?: string;\n /**\n * The title of the card\n */\n title?: ReactNode;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const CardHeader: FC<CardHeaderProps> = ({\n childGap = '2xs',\n children = null,\n className = undefined,\n display = 'block',\n padding = '2xl',\n title = null,\n ...restProps\n}) => {\n const renderTitle = () =>\n typeof title === 'string' ? (\n <Heading size=\"sm\" as=\"h4\">\n {title}\n </Heading>\n ) : (\n title\n );\n\n return (\n <Box\n childGap={childGap}\n display={display}\n padding={padding}\n className={className}\n {...restProps}\n >\n {title && renderTitle()}\n {children}\n </Box>\n );\n};\n","import { Box, BoxProps } from '../../../Box/Box';\nimport React, { FC, ReactNode } from 'react';\n\nimport classNames from 'classnames';\nimport styles from '../../Card.module.scss';\n\nexport interface CardSectionProps extends BoxProps {\n /**\n * Any valid background color token, or a `url()` for an image\n */\n background?: BoxProps['background'];\n /**\n * If defined as a prop, this value will take higher precedence than the corresponding component design token value\n * Any valid border color token\n * Or a responsive prop with borderColor for each breakpoint.\n */\n borderColor?: BoxProps['borderColor'];\n /**\n * If defined as a prop, this value will take higher precedence than the corresponding component design token value\n * Width of the section's border\n * Can be a single [border width token](/?path=/docs/foundation-design-tokens--docs#border-width).\n * Can also be a string of [border width tokens](/?path=/docs/foundation-design-tokens--docs#border-width)\n * that models itself after the css shorthand property,\n * where you can set the border width on all four sides of an element.\n * e.g: \"0 sm xs 0\" --> top: 0, right: sm, bottom: xs, left: 0;\n */\n borderWidth?: BoxProps['borderWidth'];\n /**\n * Contents of the Section.\n */\n children?: ReactNode;\n /**\n * Custom class to be applied to section container.\n */\n className?: string;\n /**\n * Visually subdued the appearance of the section.\n */\n subdued?: boolean;\n /**\n * Title for the section.\n */\n title?: ReactNode;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const CardSection: FC<CardSectionProps> = ({\n background = undefined,\n borderColor = undefined,\n borderWidth = undefined,\n children = null,\n childGap = undefined,\n gap = undefined,\n className = undefined,\n display = 'block',\n padding = '2xl',\n subdued = undefined,\n title = undefined,\n ...restProps\n}) => {\n const renderTitle =\n typeof title === 'string' ? (\n <Box className=\"m-bottom-md\">\n <Box as=\"h4\" fontWeight=\"bold\" fontSize=\"sm\" color=\"base\">\n {title}\n </Box>\n </Box>\n ) : (\n title\n );\n\n const sectionClasses = classNames(\n {\n [styles['card-section-border']]:\n borderColor === undefined && borderWidth === undefined,\n [styles['card-subdued']]: subdued,\n },\n className\n );\n\n return (\n <Box\n background={background}\n borderColor={borderColor}\n borderWidth={borderWidth}\n className={sectionClasses}\n display={display}\n padding={padding}\n {...restProps}\n >\n {renderTitle}\n <Box gap={gap} childGap={childGap}>\n {children}\n </Box>\n </Box>\n );\n};\n\nexport default CardSection;\n","import { Box, BoxProps } from '../Box/Box';\nimport { CardFooter, CardHeader, CardSection } from './components';\nimport React, { ReactNode } from 'react';\n\nexport interface CardProps extends BoxProps {\n /**\n * The Card's contents.\n */\n children?: ReactNode;\n}\n\nexport const CardBaseComponent: React.FC<CardProps> = React.forwardRef(\n (\n {\n children,\n subdued,\n overflow = 'hidden',\n display = 'block',\n width = '100',\n ...restProps\n },\n ref\n ) => {\n return (\n <Box\n background={subdued ? 'secondary' : 'primary'}\n borderWidth=\"sm\"\n borderColor=\"subtle\"\n overflow={overflow}\n display={display}\n ref={ref}\n shadow=\"2xs\"\n width={width}\n radius=\"lg\"\n {...restProps}\n >\n {children}\n </Box>\n );\n }\n);\n\nexport interface CardStatic {\n Header: typeof CardHeader;\n Section: typeof CardSection;\n Footer: typeof CardFooter;\n}\n\nexport type CardWithStaticComponents = typeof CardBaseComponent & CardStatic;\n\n// Actual component is wrapped in an IIFE for the export\n// To allow tree-shaking even with static properties (subcomponents in this case).\nexport const Card = (() => {\n const Card = CardBaseComponent as CardWithStaticComponents; // eslint-disable-line no-shadow\n\n Card.Header = CardHeader;\n Card.Section = CardSection;\n Card.Footer = CardFooter;\n\n return Card;\n})();\n","import React from 'react';\nimport { Box, BoxProps } from '../../Box/Box';\nimport { Icon } from '../../Icon/Icon';\nimport { FontColor } from '../../../types';\nimport { CheckboxProps } from './Checkbox'; // eslint-disable-line import/no-cycle\n\nexport interface CheckboxIconProps extends BoxProps {\n /**\n * Custom className to be applied to root node of component.\n */\n className?: string;\n /**\n * Whether the input is in an error state. The icon will visually change accordingly.\n */\n error?: CheckboxProps['error'];\n /**\n * The checkbox input \"checked\" attribute.\n */\n isChecked?: CheckboxProps['isChecked'];\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: CheckboxProps['isDisabled'];\n /**\n * Whether the checkbox is rendered in an indeterminate state.\n * NOTE: this change is only visual and it does not affect the checked or unchecked state of the checkbox.\n */\n isIndeterminate?: CheckboxProps['isIndeterminate'];\n}\n\nexport const CheckboxIcon: React.FC<CheckboxIconProps> = ({\n className = undefined,\n error = null,\n isChecked = false,\n isDisabled = false,\n isIndeterminate = false,\n ...restProps\n}) => {\n let color: FontColor = 'base';\n let name:\n | 'checkbox-btn'\n | 'checkbox-btn-checked'\n | 'checkbox-btn-indeterminate' = 'checkbox-btn';\n\n if (isChecked) name = 'checkbox-btn-checked';\n else name = 'checkbox-btn';\n\n if (isIndeterminate) name = 'checkbox-btn-indeterminate';\n\n if (isChecked && isDisabled) {\n color = 'disabled';\n } else if (isChecked && !isDisabled) {\n color = 'base';\n } else if (isDisabled) {\n color = 'disabled';\n }\n\n if (error) color = 'danger';\n if (isDisabled && error) color = 'danger-disabled';\n\n return (\n <Box\n className={className}\n display=\"inline-block\"\n color={color}\n {...restProps}\n >\n <Icon name={name} />\n </Box>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../../types';\nimport { generateResponsiveClasses } from '../../../lib/generateResponsiveClasses';\nimport { Box, BoxProps } from '../../Box/Box';\nimport { CheckboxIcon } from './CheckboxIcon'; // eslint-disable-line import/no-cycle\nimport styles from './Checkbox.module.scss';\n\ntype BaseSize = 'sm' | 'md' | 'lg';\nexport type CheckboxSize = BaseSize | ResponsiveProp<BaseSize>;\n\nexport interface CheckboxProps\n extends Omit<BoxProps, 'radius' | 'background' | 'as' | 'height'> {\n /**\n * The id attribute of the input.\n */\n id: string;\n /**\n * The checkbox input \"checked\" attribute.\n */\n isChecked: boolean;\n /**\n * Custom content to be displayed to right of checkbox.\n */\n label: string;\n /**\n * Callback function when input is changed.\n */\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Custom class to apply to the checkbox container.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: React.ReactNode;\n /**\n * id of the element that labels the Checkbox\n */\n labelledby?: string;\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * If the radio input should be hidden to make way for a custom checkbox.\n */\n isHidden?: boolean;\n /**\n * Whether the checkbox is rendered in an indeterminate state.\n * NOTE: this change is only visual and it does not affect the checked or unchecked state of the checkbox.\n */\n isIndeterminate?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Callback function when input is blurred.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function when input is focused.\n */\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * The size of the checkbox.\n */\n size?: CheckboxSize;\n /**\n * Value of the checkbox input element\n */\n value?: string | number;\n}\n\nexport const Checkbox: React.FC<CheckboxProps> = React.forwardRef(\n (\n {\n className = '',\n display = 'inline',\n id,\n isChecked,\n label,\n labelledby,\n onChange,\n error = false,\n isDisabled = false,\n isHidden = false,\n isIndeterminate = false,\n isRequired = false,\n onBlur = undefined,\n onFocus = undefined,\n size = 'md',\n value = undefined,\n ...restProps\n },\n ref\n ) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n if (inputRef?.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\n if (onBlur) onBlur(event);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n onChange(event);\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>): void => {\n if (onFocus) onFocus(event);\n };\n\n const inputProps = {\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': labelledby,\n 'aria-required': isRequired,\n id,\n checked: !!isChecked,\n disabled: isDisabled,\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus,\n required: isRequired,\n type: 'checkbox',\n ref: inputRef,\n ...(value && { value }),\n };\n\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const containerClasses = classNames(\n styles.checkbox,\n className,\n ...responsiveClasses.map((c) => styles[c]),\n { [styles.hidden]: isHidden }\n );\n\n const iconClasses = classNames(...responsiveClasses.map((c) => styles[c]));\n\n return (\n <Box\n display={display}\n ref={ref}\n style={{ position: 'relative' }}\n className={containerClasses}\n {...restProps}\n >\n <input\n {...inputProps}\n style={{\n position: 'absolute',\n opacity: '0',\n }}\n />\n {!isHidden && (\n <CheckboxIcon\n isChecked={isChecked}\n isDisabled={isDisabled}\n isIndeterminate={isIndeterminate}\n className={iconClasses}\n error={error}\n />\n )}\n </Box>\n );\n }\n);\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport styles from './InputValidationMessage.module.scss';\n\n/**\n * Used by form inputs such as TextInput, to display a validation message for an invalid input.\n */\n\nexport interface InputValidationMessageProps {\n children: ReactNode;\n size?: 'xs' | 'sm' | 'md';\n}\n\nexport const InputValidationMessage: FC<InputValidationMessageProps> = ({\n children,\n size = 'sm',\n}) => {\n const classes = classNames(\n 'hyphen-components__variables__form-control',\n styles['input-validation-message'],\n 'font-color-danger',\n `font-size-${size}`,\n 'm-top-sm'\n );\n\n return <div className={classes}>{children}</div>;\n};\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../Box/Box';\nimport styles from './HelpText.module.scss';\n\nexport interface HelpTextProps {\n /**\n * Contents of the help text.\n */\n children?: React.ReactNode;\n /**\n * Additional class names to add.\n */\n className?: string;\n}\n\nexport const HelpText = forwardRef<HTMLDivElement, HelpTextProps>(\n ({ children, className }, ref) => (\n <Box\n ref={ref}\n className={classNames(\n 'hyphen-components__variables__form-control',\n styles['help-text'],\n className\n )}\n display=\"block\"\n color=\"secondary\"\n fontSize=\"sm\"\n >\n {children}\n </Box>\n )\n);\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { Box, BoxProps } from '../Box/Box';\nimport styles from './FormLabel.module.scss';\nimport { HelpText } from '../HelpText/HelpText';\n\nexport interface FormLabelProps extends BoxProps {\n /**\n * Content to be rendered inside the label.\n */\n children: ReactNode;\n /**\n * The id of the form control that the label is labeling\n */\n inputId: string;\n /**\n * Custom class to pass to label element.\n */\n className?: string;\n /**\n * Additional clarifying text to that helps describe the field\n */\n helpText?: ReactNode;\n /**\n * Mark the label has disabled\n */\n isDisabled?: boolean;\n /**\n * prop deprecated: no longer in use and will be remove in next major release.\n */\n isFieldRequired?: boolean;\n /**\n * Apply custom styling to labels for a radio input\n */\n isRadioInputLabel?: boolean;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const FormLabel: FC<FormLabelProps> = ({\n children,\n inputId,\n className = '',\n display = 'block',\n helpText,\n isDisabled = false,\n isFieldRequired = false,\n isRadioInputLabel = false,\n requiredIndicator = ' *',\n margin = '0',\n padding = '0',\n ...restProps\n}) => {\n const labelClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles.label,\n className,\n {\n [styles.disabled]: isDisabled,\n [styles.disabled]: isDisabled,\n [styles['radio-input-label']]: isRadioInputLabel,\n }\n );\n\n return (\n <Box\n as=\"label\"\n id={`${inputId}Label`}\n className={labelClasses}\n display={display}\n margin={margin}\n padding={padding}\n htmlFor={inputId}\n {...restProps}\n >\n {children}\n {isFieldRequired && requiredIndicator && <span>{requiredIndicator}</span>}\n {helpText && <HelpText>{helpText}</HelpText>}\n </Box>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { cssShorthandToClasses } from '../../lib/cssShorthandToClasses';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { Box } from '../Box/Box';\nimport { Checkbox, CheckboxSize, CheckboxProps } from './components/Checkbox';\n\nconst labelMarginSizeMap = {\n sm: '2xs 0 0 0',\n md: 'xs 0 0 0',\n lg: 'sm 0 0 0',\n};\n\nconst computedResponsiveSize = (\n // eslint-disable-line @typescript-eslint/explicit-module-boundary-types\n size: CheckboxInputProps['size']\n) => {\n if (size && !(typeof size === 'string') && typeof size === 'object') {\n return Object.entries(size).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: labelMarginSizeMap[value || 'md'],\n }),\n {}\n );\n }\n\n return labelMarginSizeMap[size || 'md'] as string;\n};\nexport interface CheckboxInputProps {\n /**\n * The id attribute of the input.\n */\n id: string;\n /**\n * The checkbox input \"checked\" attribute.\n */\n isChecked: boolean;\n /**\n * Custom content to be displayed to right of checkbox.\n */\n label: string;\n /**\n * Callback function when input is changed.\n */\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: React.ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: React.ReactNode;\n /**\n * Determines if the label is not shown for stylistic reasons.\n * Note the label is still a required prop and will be used as the aria-label for accessibility reasons.\n */\n hideLabel?: boolean;\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * Whether the checkbox is rendered in an indeterminate state.\n * NOTE: this change is only visual and it does not affect the checked or unchecked state of the checkbox.\n */\n isIndeterminate?: CheckboxProps['isIndeterminate'];\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Callback function when input is blurred.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function when input is focused.\n */\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: React.ReactNode;\n /**\n * The size of the checkbox.\n */\n size?: CheckboxSize;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const CheckboxInput: React.FC<CheckboxInputProps> = ({\n id,\n isChecked,\n label,\n onChange,\n className = '',\n error = false,\n hideLabel = false,\n helpText,\n isDisabled = false,\n isIndeterminate = false,\n isRequired = false,\n onBlur = undefined,\n onFocus = undefined,\n requiredIndicator = ' *',\n size = 'md',\n ...restProps\n}) => {\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>): void => {\n if (onBlur) onBlur(event);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\n onChange(event);\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>): void => {\n if (onFocus) onFocus(event);\n };\n\n const checkboxProps = {\n id,\n isChecked: !!isChecked,\n isDisabled,\n isIndeterminate,\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus,\n isRequired,\n size,\n label,\n className: classNames(\n 'hyphen-components__variables__form-control',\n 'm-right-md'\n ),\n error,\n };\n\n const labelProps = {\n inputId: id,\n helpText,\n isDisabled,\n isFieldRequired: isRequired,\n requiredIndicator,\n className: classNames(\n ...cssShorthandToClasses('m', computedResponsiveSize(size))\n ),\n };\n\n return (\n <Box className={className} {...restProps}>\n <Box alignItems=\"flex-start\" direction=\"row\">\n <Checkbox {...checkboxProps} labelledby={`${id}Label`} />\n {label && !hideLabel && <FormLabel {...labelProps}>{label}</FormLabel>}\n </Box>\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n};\n","import React, { FC, SyntheticEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport ReactDatePicker, { ReactDatePickerProps } from 'react-datepicker';\nimport styles from './DatePicker.module.scss';\n\nexport interface DatePickerProps extends ReactDatePickerProps<any, any> {\n /**\n * React children (to be rendered below the calendar dates).\n */\n children?: ReactNode;\n /**\n * Custom classname to be applied to the DatePicker container.\n */\n className?: string;\n /**\n * Callback that fires when a date is changed/selected.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onChange: (\n date: Date | [Date, Date] | null,\n event?: React.SyntheticEvent<any> | undefined\n ) => void;\n /**\n * Callback that fires when a date is clicked.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onSelect?:\n | ((date: Date, event: SyntheticEvent<any, Event> | undefined) => void)\n | undefined;\n /**\n * Custom Class to be applied to a single day element based on a date.\n */\n dayClassName?: ((date: Date) => string | null) | undefined;\n /**\n * Custom Class to be applied to a single week element based on a date.\n */\n weekClassName?: ((date: Date) => string | null) | undefined;\n /**\n * Custom Class to be applied to a single month element based on a date.\n */\n monthClassName?: ((date: Date) => string | null) | undefined;\n /**\n * Custom Class to be applied to a specific time.\n */\n timeClassName?: ((date: Date) => string | null) | undefined;\n /**\n * Custom format for weekday.\n */\n formatWeekDay?: (formattedDate: string) => string;\n /**\n * Last allowable/shown date\n */\n maxDate?: Date | null;\n /**\n * First allowable/shown date\n */\n minDate?: Date | null;\n /**\n * Months to be shown at one time\n */\n monthsShown?: number;\n /**\n * Date that the calendar will open to by default.\n */\n openToDate?: Date;\n /**\n * Currently selected date.\n */\n selected?: Date | null;\n /**\n * Whether or not the picker will return a range of dates.\n */\n selectsRange?: boolean;\n /**\n * Start date in a range\n */\n startDate?: Date | null;\n /**\n * Show month picker in two columns\n */\n showTwoColumnMonthYearPicker?: boolean;\n /**\n * See full month name in the month picker\n */\n showFullMonthYearPicker?: boolean;\n /**\n * Use the month picker\n */\n showMonthYearPicker?: boolean;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const DatePicker: FC<DatePickerProps> = ({\n children = null,\n dayClassName = undefined,\n maxDate = undefined,\n minDate = undefined,\n monthsShown = undefined,\n openToDate = undefined,\n startDate = undefined,\n selected = undefined,\n selectsRange = undefined,\n showTwoColumnMonthYearPicker = false,\n showFullMonthYearPicker = false,\n showMonthYearPicker = false,\n className = undefined,\n formatWeekDay = (formattedDate) => formattedDate[0], // Make days show as 1 character.\n ...restProps\n}) => {\n const datePickerClasses = classNames(styles['react-datepicker'], className);\n\n return (\n <ReactDatePicker\n inline\n calendarClassName={datePickerClasses}\n formatWeekDay={formatWeekDay}\n maxDate={maxDate}\n minDate={minDate}\n monthsShown={monthsShown}\n openToDate={openToDate}\n selected={selected}\n startDate={startDate}\n selectsRange={selectsRange}\n showTwoColumnMonthYearPicker={showTwoColumnMonthYearPicker}\n showFullMonthYearPicker={showFullMonthYearPicker}\n showMonthYearPicker={showMonthYearPicker}\n dayClassName={dayClassName}\n {...restProps}\n >\n {children}\n </ReactDatePicker>\n );\n};\n\nexport default DatePicker;\n","import React, { ReactNode } from 'react';\nimport { Box, BoxProps } from '../Box/Box';\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\n\nexport interface FormControlProps extends BoxProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Visually hide the label.\n */\n hideLabel?: boolean;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n}\n\nexport const FormControl = React.forwardRef<HTMLDivElement, FormControlProps>(\n (\n {\n label,\n hideLabel,\n children,\n error,\n id,\n isRequired,\n helpText,\n isDisabled,\n requiredIndicator,\n width = '100',\n ...restProps\n },\n ref\n ) => {\n const labelProps = {\n inputId: id,\n helpText,\n margin: '0 0 xs 0',\n isDisabled,\n isFieldRequired: isRequired,\n requiredIndicator,\n };\n\n return (\n <Box width={width} ref={ref} {...restProps}>\n {label && !hideLabel && <FormLabel {...labelProps}>{label}</FormLabel>}\n {children}\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n }\n);\n","// eslint-disable-next-line import/prefer-default-export\nexport function getAutoCompleteValue(value: string | boolean): string {\n if (!value || (typeof value !== 'boolean' && typeof value !== 'string')) {\n return 'off';\n }\n\n if (typeof value === 'boolean' && value) {\n return 'on';\n }\n\n return value;\n}\n","import { Box, BoxProps } from '../Box/Box';\nimport React, {\n ChangeEvent,\n FocusEvent,\n ForwardRefExoticComponent,\n HTMLProps,\n InputHTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n forwardRef,\n} from 'react';\n\nimport { FormControl } from '../FormControl/FormControl';\nimport { Icon } from '../Icon/Icon';\nimport { ResponsiveProp } from '../../types';\nimport classNames from 'classnames';\n\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport styles from './TextInput.module.scss';\n\nexport type TextInputSizeType = 'sm' | 'md' | 'lg';\nexport interface TextInputProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * The text value of the input. Required since our Input is a controlled component.\n */\n value: InputHTMLAttributes<HTMLInputElement>['value'];\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Visually hide the label.\n */\n hideLabel?: boolean;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Props passed directly to the input element of the component\n */\n inputProps?: BoxProps & HTMLProps<HTMLInputElement>;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'maxlength' attribute.\n * NOTE: initializing the input with a value longer than the desired maxlength will not trim this value.\n */\n maxLength?: number;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call when input us cleared. When this is passed,\n * the input will display an icon on the right side, for triggering this callback.\n */\n onClear?: (\n event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\n ) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * An input helper rendered before the input field value\n */\n prefix?: ReactNode;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * The size of the text input.\n */\n size?: TextInputSizeType | ResponsiveProp<TextInputSizeType>;\n /**\n * An input helper rendered after the input field value\n */\n suffix?: ReactNode;\n /**\n * The input 'type' value. Defaults to type 'text'.\n */\n type?: InputHTMLAttributes<HTMLInputElement>['type'];\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const TextInput: ForwardRefExoticComponent<TextInputProps> = forwardRef<\n HTMLDivElement,\n TextInputProps\n>(\n (\n {\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n error = false,\n helpText,\n hideLabel = false,\n inputProps = {},\n isDisabled = false,\n isRequired = false,\n maxLength = undefined,\n name = '',\n onBlur = undefined,\n onClear = undefined,\n onFocus = undefined,\n prefix = undefined,\n placeholder = '',\n requiredIndicator = ' *',\n suffix = undefined,\n size = 'md',\n type = 'text',\n ...restProps\n },\n ref\n ) => {\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['text-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.error]: error,\n [styles.disabled]: isDisabled,\n [styles['is-clearable']]: onClear,\n }\n );\n\n const clearBtnClasses = classNames(styles['clear-button'], styles.md);\n\n const renderClearIcon = (): ReactNode => {\n const handleKeyPress = (\n event: KeyboardEvent<HTMLButtonElement>\n ): void => {\n if (event.keyCode === 13 && onClear) onClear(event);\n };\n\n return (\n <button\n type=\"button\"\n onClick={onClear}\n onKeyUp={handleKeyPress}\n className={clearBtnClasses}\n data-testid=\"text-input-clear-button\"\n aria-label=\"clear input\"\n >\n <Icon name=\"remove\" className=\"display-block\" />\n </button>\n );\n };\n\n const computedInputProps: TextInputProps['inputProps'] = {\n ...inputProps, // These are spread first so that we don't have top level props overwritten by the user.\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label && !hideLabel ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n disabled: isDisabled,\n id,\n maxLength,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n required: isRequired,\n type,\n value,\n className: classNames(inputProps.className, {\n // 'p-left-xs p-left-xs-tablet p-left-xs-desktop p-left-xs-hd': prefix,\n // 'p-right-xs p-right-xs-tablet p-right-xs-desktop p-right-xs-hd': suffix,\n 'p-h-0': !suffix && !prefix,\n }),\n };\n\n return (\n <FormControl\n helpText={helpText}\n error={error}\n label={label}\n id={id}\n hideLabel={hideLabel}\n isDisabled={isDisabled}\n isRequired={isRequired}\n requiredIndicator={requiredIndicator}\n ref={ref}\n {...restProps}\n >\n <Box direction=\"row\" overflow=\"hidden\" className={inputWrapperClasses}>\n {prefix && (\n <Box\n color=\"secondary\"\n background=\"secondary\"\n className={classNames(styles.prefix, 'ws-nowrap')}\n >\n {prefix}\n </Box>\n )}\n\n <Box as=\"input\" {...computedInputProps} />\n\n {!!onClear && !!value && renderClearIcon()}\n {suffix && (\n <Box\n color=\"secondary\"\n background=\"secondary\"\n className={classNames(styles.suffix, 'ws-nowrap')}\n >\n {suffix}\n </Box>\n )}\n </Box>\n </FormControl>\n );\n }\n);\n","import { Key } from 'react';\nimport { Column } from '../types';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const getColumnKeys = (columns: Column[]): Key[] => {\n const INTERNAL_KEY_PREFIX = 'columnKeyPrefix';\n const columnKeys: React.Key[] = [];\n const keys: Record<any, boolean> = {};\n\n columns.forEach((column) => {\n const { key, dataKey } = column || {};\n const shapedDataKey = dataKey?.includes(' ')\n ? dataKey.split(' ').join('-')\n : dataKey;\n\n let mergedKey = key || shapedDataKey || INTERNAL_KEY_PREFIX;\n\n while (keys[mergedKey as any]) {\n mergedKey = `${mergedKey}_next`;\n }\n keys[mergedKey as any] = true;\n\n columnKeys.push(mergedKey);\n });\n\n return columnKeys;\n};\n","import { ValueOrFunction, ValueFunction } from '../types';\n\nexport const isFunction = <TValue, TArg>( // eslint-disable-line import/prefer-default-export\n valOrFunction: ValueOrFunction<TValue, TArg>\n): valOrFunction is ValueFunction<TValue, TArg> =>\n typeof valOrFunction === 'function';\n","import React from 'react';\n\nexport function mergeRefs<T = any>(\n refs: Array<React.MutableRefObject<T> | React.LegacyRef<T> | undefined | null>\n): React.RefCallback<T> {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n });\n };\n}\n","export const prefersReducedMotion = (() => {\n // eslint-disable-line import/prefer-default-export\n let shouldReduceMotion: boolean | undefined;\n\n return () => {\n if (shouldReduceMotion === undefined) {\n const mediaQuery = window?.matchMedia('(prefers-reduced-motion: reduce)');\n shouldReduceMotion = !mediaQuery || mediaQuery.matches;\n }\n return shouldReduceMotion;\n };\n})();\n","import { ValueOrFunction } from '../types';\nimport { isFunction } from './isFunction';\n\nexport const resolveValue = <TValue, TArg>( // eslint-disable-line import/prefer-default-export\n valOrFunction: ValueOrFunction<TValue, TArg>,\n arg: TArg\n): TValue => (isFunction(valOrFunction) ? valOrFunction(arg) : valOrFunction);\n","import designTokens from '@hyphen/hyphen-design-tokens/build/json/variables';\nimport { ICON_NAMES as iconNames } from '@hyphen/hyphen-design-tokens/build/assets/icons';\n\nimport {\n BaseColor,\n BackgroundColor,\n BorderColor,\n BorderRadiusSize,\n BorderSize,\n Breakpoint,\n BreakpointSizeWithBase,\n BoxShadowSize,\n ColorName,\n FontColor,\n FontSize,\n FontFamily,\n FontWeight,\n HeadingSize,\n HeightSize,\n IconName,\n LineHeightSize,\n SpacingSize,\n WidthSize,\n ZIndexSize,\n} from '../types';\n\nexport const ICON_NAMES = iconNames as IconName[];\n\nexport const BORDER_RADIUS_OPTIONS = Object.keys(\n designTokens.size['border-radius']\n) as BorderRadiusSize[];\n// export const BORDER_RADIUS_VALUES = Object.values(designTokens.size['border-radius']);\n\nexport const BORDER_SIZE_OPTIONS = Object.keys(\n designTokens.size['border-width']\n) as BorderSize[];\n// export const BORDER_SIZE_VALUES = Object.values(designTokens.size['border-width']);\n\nexport const BREAKPOINT_OPTIONS = Object.keys(\n designTokens.size.breakpoint\n) as BreakpointSizeWithBase[];\n// export const BREAKPOINT_VALUES = Object.values(designTokens.size.breakpoint);\n\nexport const BREAKPOINTS = [\n ...Object.entries(designTokens.size.breakpoint),\n ['base', { value: '0' }],\n].map(([name, data]) => {\n if (typeof data === 'object' && data !== null && 'value' in data) {\n return {\n name,\n minWidth: parseInt(data['value'] as string, 10),\n };\n }\n}) as Breakpoint[];\n\nexport const BASE_COLOR_OPTIONS = (\n Object.keys(designTokens.color.base) as ColorName[]\n)\n .map((colorName) => {\n if (\n colorName === 'white' ||\n colorName === 'black' ||\n colorName === 'magenta'\n )\n return `${colorName}`;\n return Object.keys(designTokens.color.base[colorName]).map((colorGrade) =>\n colorGrade === 'base' ? colorName : `${colorName}-${colorGrade}`\n );\n })\n .flat() as BaseColor[];\n\nexport const BASE_COLOR_NAMES = Object.keys(\n designTokens.color.base\n) as ColorName[];\n// export const BASE_COLOR_VALUES = Object.values(designTokens.color.base);\n\nexport const FONT_COLOR_OPTIONS = Object.keys(\n designTokens.color.font\n) as FontColor[];\n// export const FONT_COLOR_VALUES = designTokens.color.font;\n\nexport const BACKGROUND_COLOR_OPTIONS = Object.keys(\n designTokens.color.background\n) as BackgroundColor[];\n// export const BACKGROUND_COLOR_VALUES = designTokens.color.background;\n\nexport const BORDER_COLOR_OPTIONS = Object.keys(\n designTokens.color.border\n) as BorderColor[];\n// export const BORDER_COLOR_VALUES = designTokens.color.border;\n\nexport const FONT_SIZE_OPTIONS = Object.keys(\n (designTokens.size as any)['font-size']\n) as FontSize[];\n// export const FONT_SIZE_VALUES = Object.values(designTokens.size['font-size']);\n\nexport const FONT_FAMILY_OPTIONS = Object.keys(\n designTokens.assets['font-family']\n) as FontFamily[];\n// export const FONT_FAMILY_VALUES = designTokens.assets['font-family'];\n\nexport const FONT_WEIGHT_OPTIONS = Object.keys(\n (designTokens.size as any)['font-weight']\n) as FontWeight[];\n// export const FONT_WEIGHT_VALUES = designTokens.size['font-weight'];\n\nexport const HEADING_SIZE_OPTIONS = Object.keys(\n designTokens.size.heading\n) as HeadingSize[];\n\nexport const HEIGHT_OPTIONS = Object.keys(\n (designTokens.size as any).dimension\n) as HeightSize[];\n// export const HEIGHT_VALUES = designTokens.size.dimension;\n\nexport const LINE_HEIGHT_OPTIONS = Object.keys(\n designTokens.size['line-height']\n) as LineHeightSize[];\n// export const LINE_HEIGHT_VALUES = designTokens.size['line-height'];\n\nexport const SPACING_OPTIONS = Object.keys(\n designTokens.size.spacing\n) as SpacingSize[];\n// export const SPACING_VALUES = designTokens.size.spacing;\n\nexport const WIDTH_OPTIONS = Object.keys(\n (designTokens.size as any).dimension\n) as WidthSize[];\n// export const WIDTH_VALUES = designTokens.size.dimension;\n\nexport const Z_INDEX_OPTIONS = Object.keys(\n designTokens.size['z-index']\n) as ZIndexSize[];\nexport const Z_INDEX_VALUES = designTokens.size['z-index'];\n\nexport const BOX_SHADOW_OPTIONS = Object.keys(\n designTokens.size['box-shadow']\n) as BoxShadowSize[];\n// export const BOX_SHADOW_VALUES = designTokens.size['box-shadow'];\n","import React, {\n cloneElement,\n FC,\n isValidElement,\n ReactNode,\n useEffect,\n useRef,\n useState,\n RefObject,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { usePopper } from 'react-popper';\nimport { Placement } from '@popperjs/core';\nimport FocusTrap from 'focus-trap-react';\nimport classNames from 'classnames';\nimport { BackgroundColor } from '../../types';\nimport styles from './Popover.module.scss';\nimport { Box, BoxProps } from '../Box/Box';\nimport { mergeRefs } from '../../lib';\n\nexport type PopoverProps = {\n /**\n * Custom class to apply to the alert.\n */\n className?: string;\n /**\n * The trigger element\n */\n children: ReactNode;\n /**\n * Content of the tooltip. Can be any JSX node.\n */\n content: ReactNode;\n /**\n * The Popover is a controlled input, and will be shown when `isOpen === true`.\n */\n isOpen: boolean;\n /**\n * Color of the arrow background. NOTE: That the arrowColor will default to the\n * `background` color applied in the `contentContainerProps`, but can be overwritten\n * by passing a specific value here.\n */\n arrowColor?: BackgroundColor;\n /**\n * An object matching the interface of the `Box` component props.\n * This is useful for styling the tooltip container using all the options available in\n * a `Box`.\n */\n contentContainerProps?: BoxProps;\n /**\n * Whether the arrow is shown.\n */\n hasArrow?: boolean;\n /**\n * How far (in pixels) the Popover element will be from the target.\n * Note that this is from the edge of the target to the edge of the popover content,\n * and it DOES NOT include the arrow element.\n */\n offsetFromTarget?: number;\n /**\n * Callback function to handle when a user clicks outside the Popover\n */\n onClickOutside?: (event: MouseEvent | KeyboardEvent) => void;\n /**\n * The placement (position) of the Popover relative to its trigger.\n */\n placement?: Placement;\n /**\n * Whether you want to trap focus in the Popover element when it is open.\n * Read more about focus traps:\n * [Here](https://allyjs.io/tutorials/accessible-dialog.html#trapping-focus-inside-the-dialog)\n */\n trapFocus?: boolean;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n} & (\n | {\n /**\n * Whether the element should be rendered outside its DOM structure\n * for reasons of placement. Use this when the element is being cut-off or\n * re-positioned due to lack of space in the parent container.\n * NOTE: `portalTarget` is required if this is true.\n */\n withPortal: true;\n /**\n * The target element where the Popover will be portaled to, when `withPortal === true`.\n * `document.body` will work for many cases, but you can also use a custom container for this.\n * Only required if withPortal is true.\n */\n portalTarget: HTMLElement;\n }\n | {\n withPortal?: false;\n portalTarget?: never;\n }\n);\n\nconst contentContainerDefaults: BoxProps = {\n background: 'primary',\n padding: 'sm',\n radius: 'sm',\n shadow: 'md',\n};\n\nexport const Popover: FC<PopoverProps> = ({\n className,\n isOpen,\n children,\n content,\n arrowColor = undefined,\n contentContainerProps = { ...contentContainerDefaults },\n hasArrow = true,\n offsetFromTarget = 12,\n onClickOutside = undefined,\n placement = 'right',\n withPortal = false,\n portalTarget,\n trapFocus = false,\n ...restProps\n}) => {\n const triggerRef = useRef<HTMLElement>(null);\n const popperRef = useRef<HTMLElement>(null);\n const [arrowElement, setArrowElement] = useState<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n const popover = popperRef.current;\n const trigger = triggerRef.current;\n\n if (!popover || !trigger) {\n return;\n }\n\n if (event.target === trigger || trigger?.contains(event.target as Node)) {\n return;\n }\n\n if (\n event.target !== popover &&\n !popover?.contains(event.target as Node)\n ) {\n if (onClickOutside) onClickOutside(event);\n }\n };\n\n const handleKeyUp = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n if (onClickOutside) onClickOutside(event);\n }\n };\n\n if (onClickOutside) {\n document.body.addEventListener('click', handleClickOutside, false);\n document.body.addEventListener('keyup', handleKeyUp);\n }\n\n return () => {\n if (onClickOutside) {\n document.body.removeEventListener('click', handleClickOutside, false);\n document.body.removeEventListener('keyup', handleKeyUp);\n }\n };\n }, [onClickOutside]);\n\n const { styles: popperStyles, attributes } = usePopper(\n triggerRef.current,\n popperRef.current,\n {\n placement,\n modifiers: [\n {\n name: 'arrow',\n options: { element: arrowElement },\n },\n {\n name: 'offset',\n options: {\n offset: [0, offsetFromTarget],\n },\n },\n ],\n }\n );\n\n const containerBoxProps = {\n ...contentContainerDefaults,\n ...contentContainerProps,\n };\n\n const computedArrowColor = arrowColor || containerBoxProps.background;\n\n const arrowClasses = classNames(\n styles['popover-arrow'],\n `background-color-${computedArrowColor}`,\n {\n 'display-none': !hasArrow,\n }\n );\n\n const renderPopperContent = () => {\n const renderPopperBox = () => (\n <Box\n ref={popperRef}\n className={classNames(styles.popover, className)}\n style={popperStyles.popper}\n role=\"dialog\"\n aria-label=\"Popover\"\n aria-hidden={!isOpen}\n {...containerBoxProps}\n {...attributes.popper}\n {...restProps}\n >\n <div\n ref={setArrowElement}\n style={popperStyles.arrow}\n className={arrowClasses}\n data-popper-arrow\n />\n {content}\n </Box>\n );\n\n return trapFocus ? (\n <FocusTrap\n active={isOpen}\n focusTrapOptions={{\n clickOutsideDeactivates: true,\n }}\n >\n {renderPopperBox()}\n </FocusTrap>\n ) : (\n renderPopperBox()\n );\n };\n\n const childrenWithRef = React.Children.map(children, (child) => {\n const childProps = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: triggerRef as RefObject<HTMLElement> | ((instance: any) => void),\n role: 'button',\n 'aria-expanded': isOpen,\n 'aria-haspopup': true,\n };\n\n // Merge local ref with any ref passed originally to child component.\n // We have to cast with `as` so TS compiler doesn't complain since ReactNode/ReactChild types don't\n // explicitly declare ref as a property in the object.\n if ((child as ReactNode & { ref: any })?.ref) {\n // eslint-disable-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n childProps.ref = mergeRefs([\n (child as ReactNode & { ref: any })?.ref,\n childProps.ref,\n ]);\n }\n\n if (isValidElement(child)) {\n return cloneElement(child, childProps);\n }\n\n return child;\n });\n\n return (\n <>\n {childrenWithRef}\n {isOpen &&\n // portalTarget should always be defined if withPortal is true, but better safe than sorry here!\n (withPortal && portalTarget\n ? createPortal(renderPopperContent(), portalTarget)\n : renderPopperContent())}\n </>\n );\n};\n","import React, { FC, useState } from 'react';\nimport format from 'date-fns/format';\nimport { DatePicker, DatePickerProps } from '../DatePicker/DatePicker';\nimport { TextInput, TextInputProps } from '../TextInput/TextInput';\nimport { Popover, PopoverProps } from '../Popover/Popover';\n\nexport interface DateInputProps {\n /**\n * Props object for DatePicker component.\n */\n datePickerProps: DatePickerProps;\n /**\n * Props object for TextInput component.\n */\n textInputProps: Omit<TextInputProps, 'onChange'>;\n /**\n * Format for final date to be displayed.\n * Relies on date-fns/format --> https://date-fns.org/v1.9.0/docs/format\n */\n dateFormat?: string;\n /**\n * Additional settings for formatting date.\n */\n dateOptions?: {\n /**\n * The user's locale.\n */\n locale?: globalThis.Locale | undefined;\n /**\n * Start of week.\n */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined;\n /**\n * Should determine which week is week 1 of a new year.\n */\n firstWeekContainsDate?: number | undefined;\n /**\n * Whether to accept unicode tokens in format.\n * See here --> https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n */\n useAdditionalWeekYearTokens?: boolean | undefined;\n /**\n * Whether to accept unicode tokens in format.\n * See here --> https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n */\n useAdditionalDayOfYearTokens?: boolean | undefined;\n };\n /**\n * Props to pass down to the Popover component.\n */\n popoverProps?: Omit<PopoverProps, 'children' | 'content' | 'isOpen'>;\n /**\n * Additional props to be spread to the `TextInput` element.\n */\n [x: string]: any; // eslint-disable-line\n}\n\nconst defaultDatePickerProps: Omit<DatePickerProps, 'onChange'> = {\n selected: null,\n selectsRange: false,\n};\n\nconst defaultPopoverProps: Omit<\n PopoverProps,\n 'children' | 'content' | 'isOpen'\n> = {\n placement: 'bottom',\n};\n\nconst defaultTextInputProps: Omit<TextInputProps, 'id'> = {\n label: 'Select Date',\n};\n\nexport const DateInput: FC<DateInputProps> = ({\n datePickerProps,\n textInputProps,\n dateFormat = 'MM/dd/yyyy',\n dateOptions = undefined,\n popoverProps = { ...defaultPopoverProps },\n ...restProps\n}) => {\n const mergedDatePickerProps = {\n ...defaultDatePickerProps,\n ...datePickerProps,\n };\n\n const mergedPopoverProps = {\n ...defaultPopoverProps,\n ...popoverProps,\n };\n\n const mergedTextInputProps = {\n ...defaultTextInputProps,\n ...textInputProps,\n };\n\n const getTextInputValue = () => {\n const { selectsRange, startDate, endDate, selected } =\n mergedDatePickerProps;\n\n const formattedStartDate = startDate\n ? format(startDate, dateFormat, dateOptions)\n : '';\n const formattedEndDate = endDate\n ? format(endDate, dateFormat, dateOptions)\n : '';\n const formattedSelectedDate = selected\n ? format(selected, dateFormat, dateOptions)\n : '';\n\n if (selectsRange) {\n return `${formattedStartDate}${\n formattedStartDate || formattedEndDate ? ' - ' : ''\n }${formattedEndDate}`;\n }\n\n return formattedSelectedDate;\n };\n\n const [isPopoverOpen, setPopoverOpen] = useState(false);\n\n const handleTogglePopover = (newPopoverOpenState: boolean) => {\n setPopoverOpen(newPopoverOpenState);\n };\n\n const handleDatePickerChange = (\n date: Date | [Date, Date] | null,\n event?: React.SyntheticEvent<any, Event> // eslint-disable-line @typescript-eslint/no-explicit-any\n ) => {\n mergedDatePickerProps.onChange(date, event);\n\n if (!mergedDatePickerProps.selectsRange && date) setPopoverOpen(false);\n };\n\n /**\n * This function is a one-off workaround to an edge case when detecting outside clicks.\n * in Popover.tsx, outside clicks are detected by seeing if the clicked element is a child\n * of the popover, which would mean it is NOT an outside click. However, when using min/max dates\n * in the Datepicker, the month navigation elements are removed from the DOM when the max/min date has been reached.\n * Because our outside click detector sees that the clicked element\n * is not a child of the popover (it doesn't exist in the DOM anymore)\n * It registers an outside click and closes the Popover.\n * With this code we specifically guard against closing the popover\n * if a user has clicked one of the month navigation arrows.\n * */\n const handleOnClickOutside = (event: MouseEvent | KeyboardEvent) => {\n const target = event.target as Element;\n\n if (target.classList.contains('react-datepicker__navigation')) {\n return;\n }\n\n handleTogglePopover(false);\n };\n\n const renderDatePicker = () => (\n <DatePicker\n {...mergedDatePickerProps}\n onChange={handleDatePickerChange}\n selected={mergedDatePickerProps.selected}\n selectsRange={mergedDatePickerProps.selectsRange}\n />\n );\n\n return (\n <Popover\n {...mergedPopoverProps}\n isOpen={isPopoverOpen}\n content={renderDatePicker()}\n withPortal\n portalTarget={document.body}\n onClickOutside={handleOnClickOutside}\n >\n <TextInput\n {...mergedTextInputProps}\n id={mergedTextInputProps.id}\n name={mergedTextInputProps.name}\n label={mergedTextInputProps.label}\n value={getTextInputValue()}\n onChange={() =>\n null\n } /* Empty function since we hijack the onChange event */\n onClick={() => handleTogglePopover(true)}\n readOnly\n {...restProps}\n />\n </Popover>\n );\n};\n","export const ENTER = 13;\nexport const SPACE = 32;\n","import React, { MouseEvent, KeyboardEvent } from 'react';\nimport { ENTER, SPACE } from '../../constants/keyCodes';\nimport { Box, BoxProps } from '../Box/Box';\n\nexport interface DetailsSummaryProps extends BoxProps {\n isDetailsOpen: boolean;\n onToggle?: (\n event: MouseEvent<HTMLElement> | KeyboardEvent<HTMLElement>\n ) => void;\n}\n\nexport const DetailsSummary: React.FC<DetailsSummaryProps> = ({\n children,\n display = 'block',\n isDetailsOpen,\n onToggle,\n ...restProps\n}) => {\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n // Needed to avoid default `details` behavior on a click event and keep this as controlled component.\n event.preventDefault();\n\n if (!onToggle && !restProps?.onClick) return;\n\n if (onToggle) {\n onToggle(event);\n }\n\n if (restProps?.onClick) {\n restProps.onClick(event);\n }\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if ([ENTER, SPACE].indexOf(event.keyCode) !== -1) {\n // Needed to avoid default `details` behavior on a click event and keep this as controlled component.\n event.preventDefault();\n }\n\n if (!onToggle && !restProps?.onKeyDown) return;\n\n if (onToggle && [ENTER, SPACE].indexOf(event.keyCode) !== -1) {\n onToggle(event);\n }\n\n if (restProps?.onKeyDown) {\n restProps.onKeyDown(event);\n }\n };\n\n return (\n <Box\n {...restProps}\n as=\"summary\"\n display={display}\n role=\"button\"\n aria-expanded={isDetailsOpen}\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </Box>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DetailsSummary } from './DetailsSummary';\nimport styles from './Details.module.scss';\nimport { Box, BoxProps } from '../Box/Box';\n\nexport interface DetailsProps extends BoxProps {\n /**\n * Whether the details below the summary are opened. Directly corresponds to `open` property in <details> element.\n */\n isOpen: boolean;\n}\n\nexport const DetailsBaseComponent: React.FC<DetailsProps> = React.forwardRef<\n HTMLDetailsElement,\n DetailsProps\n>(({ children, className, display = 'block', isOpen, ...restProps }, ref) => {\n const detailsClasses = classNames(\n className,\n styles['details-reset'],\n styles.details\n );\n\n return (\n <Box\n as=\"details\"\n className={detailsClasses}\n display={display}\n open={isOpen}\n ref={ref}\n {...restProps}\n >\n {children}\n </Box>\n );\n});\n\nexport interface DetailsStatic {\n Summary: typeof DetailsSummary;\n}\n\nexport type DetailsWithStaticComponents = typeof DetailsBaseComponent &\n DetailsStatic;\n\n// Actual component is wrapped in an IIFE for the export\n// To allow tree-shaking even with static properties (subcomponents in this case).\nexport const Details = (() => {\n const Details = DetailsBaseComponent as DetailsWithStaticComponents; // eslint-disable-line no-shadow\n Details.Summary = DetailsSummary;\n return Details;\n})();\n","import React, {\n CSSProperties,\n RefObject,\n forwardRef,\n useCallback,\n} from 'react';\nimport ReactModal from 'react-modal';\nimport FocusLock from 'react-focus-lock';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport classNames from 'classnames';\nimport { DimensionSize, CssDimensionValue } from '../../types';\nimport { Box } from '../Box/Box';\nimport styles from './Drawer.module.scss';\nimport { Button } from '../Button/Button';\n\nexport type DrawerPlacementType = 'left' | 'right' | 'top' | 'bottom';\nexport interface DrawerProps {\n /**\n * If the drawer is open\n */\n isOpen: boolean;\n /**\n * Handle zoom/pinch gestures on iOS devices when scroll locking is enabled.\n */\n allowPinchZoom?: boolean;\n /**\n * A drawer needs to be properly labeled to provide context for users with\n * assistive technology such as screen readers. If a drawer is announced to\n * the user without a label, it can be confusing and difficult to navigate.\n */\n ariaLabel?: string;\n /**\n * The id of the element that should be used as the drawer's label by assistive technologies like screen readers.\n */\n ariaLabelledBy?: string;\n /**\n * Contents of the dialog.\n */\n children?: React.ReactNode;\n /**\n * Additional class names to add to the drawer content.\n */\n className?: string;\n /**\n * Whether the drawer has a visible close button.\n * If a title is defined, then a close button will be rendered\n */\n closeButton?: boolean;\n /**\n * If true, the drawer will close when the overlay is clicked\n */\n closeOnOverlayClick?: boolean;\n /**\n * The ref of the container where the drawer will be inserted into the DOM.\n * By default, drawers are inserted in the document.body, but if need be they can\n * be scoped as necessary.\n */\n containerRef?: React.RefObject<Node>;\n /**\n * By default, focus is trapped within the drawer.\n * If true, focus will not be trapped within the contents of the drawer.\n */\n dangerouslyBypassFocusLock?: boolean;\n /**\n * By default, the drawer locks scrolling on the body, but in some cases you may want to allow for scrolling.\n * If true, this will allow the body to scroll while the drawer is open.\n */\n dangerouslyBypassScrollLock?: boolean;\n /**\n * If true, the overlay will not be rendered, scrolling for the entire page will remain enabled,\n * and focus will not be locked to the contents of the drawer\n */\n hideOverlay?: boolean;\n /**\n * By default the first focusable element will receive focus when the dialog\n * opens but you can provide a ref to focus instead.\n *\n * @see Docs https://reach.tech/dialog#dialog-initialfocusref\n */\n initialFocusRef?: RefObject<HTMLDivElement>;\n /**\n * Which edge of the viewport should the drawer appear from\n */\n placement?: DrawerPlacementType;\n /**\n * Function that is called whenever the user either hits\n * the \"Escape\" key, clicks the close button icon, or clicks the overlay.\n */\n onDismiss?: (event?: React.SyntheticEvent) => void;\n /**\n * Title to be displayed at the top of the Drawer.\n * A close button will be rendered automatically if this prop is defined.\n */\n title?: string;\n /**\n * The width of the Drawer when opened. Can be given a standard css value (px, rem, em, %),\n * or a [width token](/?path=/story/design-tokens-design-tokens--page#width)\n */\n width?: DimensionSize | CssDimensionValue;\n}\nexport const Drawer: React.FC<DrawerProps> = forwardRef<\n HTMLDivElement,\n DrawerProps\n>(\n (\n {\n ariaLabel = undefined,\n ariaLabelledBy = undefined,\n allowPinchZoom = false,\n children = undefined,\n className = undefined,\n closeButton = false,\n closeOnOverlayClick = true,\n containerRef = undefined,\n dangerouslyBypassFocusLock = false,\n dangerouslyBypassScrollLock = false,\n hideOverlay = false,\n initialFocusRef = undefined,\n isOpen,\n onDismiss = undefined,\n placement = 'right',\n title = undefined,\n width = undefined,\n },\n ref\n ) => {\n const activateFocusLock = useCallback(() => {\n setTimeout(() => {\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus();\n }\n }, 100);\n }, [initialFocusRef]);\n\n const dynamicWidth = width;\n\n const dynamicStyle: CSSProperties = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ['--w' as any]: dynamicWidth,\n };\n\n const overlayClassnames = classNames(styles.overlay, styles.drawer, {\n [styles['hide-overlay']]: hideOverlay,\n [styles[`hide-overlay-${placement}`]]: hideOverlay,\n 'position-fixed': containerRef === undefined,\n 'position-absolute': containerRef !== undefined,\n });\n\n const contentClassnames = classNames(\n styles['drawer-content'],\n styles[placement],\n {\n [styles['hide-overlay']]: hideOverlay,\n 'overflow-auto': !closeButton && !title,\n className,\n }\n );\n\n const renderHeader = () => {\n if (closeButton && onDismiss && !title) {\n return (\n <Box alignItems=\"flex-end\" justifyContent=\"center\" padding=\"md lg\">\n <Button\n variant=\"tertiary\"\n onClick={onDismiss}\n aria-label=\"close\"\n type=\"button\"\n iconPrefix=\"remove\"\n />\n </Box>\n );\n }\n if (title) {\n return (\n <Box\n direction=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n padding=\"2xl\"\n >\n <Box className={styles.title} fontWeight=\"bold\">\n {title}\n </Box>\n {onDismiss && (\n <Button\n variant=\"tertiary\"\n onClick={onDismiss}\n aria-label=\"close\"\n type=\"button\"\n iconPrefix=\"remove\"\n />\n )}\n </Box>\n );\n }\n return null;\n };\n\n const content =\n title || closeButton ? (\n <Box flex=\"auto\" overflow=\"auto\">\n {children}\n </Box>\n ) : (\n children\n );\n\n const parentElement = containerRef?.current\n ? (containerRef.current as HTMLElement)\n : document.body;\n\n const isDisabledFocusLock = hideOverlay || dangerouslyBypassFocusLock;\n const isDisabledRemoveScroll = hideOverlay || dangerouslyBypassScrollLock;\n\n return (\n <FocusLock\n autoFocus\n returnFocus\n disabled={isDisabledFocusLock || !isOpen}\n onActivation={activateFocusLock}\n >\n <RemoveScroll\n allowPinchZoom={allowPinchZoom}\n enabled={!isDisabledRemoveScroll && isOpen}\n >\n <Box ref={ref}>\n <ReactModal\n isOpen={isOpen}\n overlayClassName={overlayClassnames}\n className={contentClassnames}\n onRequestClose={closeOnOverlayClick ? onDismiss : undefined}\n ariaHideApp={false}\n style={{\n content: dynamicStyle,\n overlay: dynamicStyle,\n }}\n parentSelector={() => parentElement}\n >\n <Box aria-label={ariaLabel} aria-labelledby={ariaLabelledBy}>\n {renderHeader()}\n {content}\n </Box>\n </ReactModal>\n </Box>\n </RemoveScroll>\n </FocusLock>\n );\n }\n);\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport {\n CheckboxInput,\n CheckboxInputProps,\n} from '../../CheckboxInput/CheckboxInput';\n\nexport interface FormikCheckboxInputProps\n extends Omit<CheckboxInputProps, 'onChange'> {\n field: FieldAttributes<HTMLInputElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: CheckboxInputProps['onChange'];\n}\n\nexport const FormikCheckboxInput: React.FC<FormikCheckboxInputProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <CheckboxInput\n {...props}\n id={id}\n label={label}\n error={getIn(touched, name) && getIn(errors, name)}\n isChecked={value}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange} // eslint-disable-line\n />\n);\n","import React from 'react';\nimport { Box, BoxProps } from '../../Box/Box';\nimport { Icon } from '../../Icon/Icon';\nimport { FontColor } from '../../../types';\nimport { RadioInputProps } from './RadioInput'; // eslint-disable-line import/no-cycle\nimport { RadioGroupProps } from '../RadioGroup'; // eslint-disable-line import/no-cycle\n\nexport interface RadioIconProps extends BoxProps {\n /**\n * Custom className to be applied to root node of component.\n */\n className?: string;\n /**\n * Whether the input is in an error state. The icon will visually change accordingly.\n */\n error?: RadioGroupProps['error'];\n /**\n * Whether the radio is selected.\n */\n isSelected?: RadioInputProps['isSelected'];\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: RadioInputProps['isDisabled'];\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const RadioInputIcon: React.FC<RadioIconProps> = ({\n className = undefined,\n isSelected = false,\n isDisabled = false,\n error = null,\n ...restProps\n}) => {\n let color: FontColor = 'secondary';\n let name: 'radio-btn-unchecked' | 'radio-btn-checked' = 'radio-btn-unchecked';\n\n if (isSelected && isDisabled) {\n color = 'disabled';\n name = 'radio-btn-checked';\n } else if (isSelected && !isDisabled) {\n color = 'base';\n name = 'radio-btn-checked';\n } else if (isDisabled) {\n color = 'disabled';\n }\n\n if (error) color = 'danger';\n if (isDisabled && error) color = 'danger-disabled';\n\n return (\n <Box className={className} {...restProps}>\n <Icon color={color} name={name} />\n </Box>\n );\n};\n","import React, { ChangeEvent, FocusEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../../types';\nimport { generateResponsiveClasses } from '../../../lib/generateResponsiveClasses';\nimport { Box, BoxProps } from '../../Box/Box';\nimport { FormLabel } from '../../FormLabel/FormLabel';\nimport { RadioInputIcon } from './RadioInputIcon'; // eslint-disable-line import/no-cycle\nimport styles from './RadioInput.module.scss';\n\ntype BaseSize = 'sm' | 'md' | 'lg';\nexport type RadioSize = BaseSize | ResponsiveProp<BaseSize>;\n\nexport interface RadioInputProps {\n /**\n * Radio input name.\n */\n name: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Options for radio group.\n */\n option: {\n id: string;\n value: string;\n label: ReactNode;\n disabled?: boolean | null;\n };\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * If the radio group should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * If the radio input should be hidden to make way for a custom radio.\n */\n isHidden?: boolean;\n /**\n * The required and aria-required attributes\n */\n isRequired?: boolean;\n /**\n * If the radio group should be disabled and not focusable.\n */\n isSelected?: boolean;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The size of the radio icon.\n */\n size: RadioSize;\n}\n\nexport const RadioInput = React.forwardRef<HTMLDivElement, RadioInputProps>(\n (\n {\n name,\n onChange,\n option,\n className = '',\n isDisabled = false,\n isHidden = false,\n isRequired = false,\n isSelected = false,\n onBlur = undefined,\n onFocus = undefined,\n size = 'md',\n },\n ref\n ) => {\n const responsiveClasses = classNames(\n ...generateResponsiveClasses('size', size).map((c) => styles[c])\n );\n\n const labelProps = {\n inputId: option.id,\n isDisabled,\n display: 'flex' as BoxProps['display'],\n isRadioInputLabel: true,\n justifyContent: 'center' as BoxProps['justifyContent'],\n };\n\n const containerClasses = classNames(\n 'hyphen-components__variables__form-control',\n className,\n styles['radio-container'],\n responsiveClasses,\n { [styles.hidden]: isHidden }\n );\n\n return (\n <>\n {option && (\n <Box\n className={containerClasses}\n key={option.id}\n direction=\"row\"\n alignItems=\"center\"\n ref={ref}\n position=\"relative\"\n >\n <Box\n aria-required={isRequired}\n as=\"input\"\n id={option.id}\n type=\"radio\"\n name={name}\n value={option.value}\n checked={isSelected}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n disabled={isDisabled}\n position=\"absolute\"\n required={isRequired}\n style={{ opacity: '0' }}\n margin={isHidden ? '0' : '0 xs 0 2xs'}\n />\n {!isHidden && (\n <RadioInputIcon\n isSelected={isSelected}\n isDisabled={isDisabled}\n margin={isHidden ? '0' : '0 xs 0 2xs'}\n className={responsiveClasses}\n background={isDisabled && !isSelected ? 'secondary' : 'primary'}\n radius=\"circle\"\n />\n )}\n {option.label && (\n <FormLabel {...labelProps}>{option.label}</FormLabel>\n )}\n </Box>\n )}\n </>\n );\n }\n);\n","import React, { FC, ChangeEvent, FocusEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../Box/Box';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport { RadioInput, RadioInputProps } from './RadioInput/RadioInput'; // eslint-disable-line import/no-cycle\nimport styles from './RadioGroup.module.scss';\n\nexport interface RadioGroupProps {\n /**\n * Radio group name.\n */\n name: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Options for radio group.\n */\n options: {\n id: string;\n value: string;\n label: ReactNode;\n disabled?: boolean | null;\n }[];\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Description to be displayed below the title, and above the RadioGroup.\n */\n description?: ReactNode;\n /**\n * Whether the radios should be aligned in a row or in a column\n */\n direction?: 'row' | 'column';\n /**\n * Mark the radio group as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * If the radio group should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * If the radio group is required or not\n */\n isRequired?: boolean;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: React.ReactNode;\n /**\n * Size of the radio icons in the group.\n */\n size?: RadioInputProps['size'];\n /**\n * Title to be displayed above the RadioGroup.\n */\n title?: ReactNode;\n /**\n * The value of selected radio input.\n */\n value?: string;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const RadioGroup: FC<RadioGroupProps> = ({\n name,\n onChange,\n options,\n className = '',\n description = undefined,\n direction = 'column',\n error = false,\n isDisabled = false,\n isRequired = false,\n onBlur = undefined,\n onFocus = undefined,\n requiredIndicator = ' *',\n size = 'md',\n title = undefined,\n value = undefined,\n ...restProps\n}) => {\n const groupClasses = classNames(\n 'hyphen-components__variables__form-control',\n className,\n {\n [styles.loading]: error,\n }\n );\n\n return (\n <div\n className={classNames(styles['radio-group'], groupClasses)}\n {...restProps}\n >\n <fieldset className={styles.fieldset}>\n {(title || description) && (\n <legend className={styles.legend}>\n {title}\n {isRequired && <span>{requiredIndicator}</span>}\n {description && (\n <div className={styles.description}>{description}</div>\n )}\n </legend>\n )}\n <Box direction={direction} gap=\"sm\" className={styles.options}>\n {options &&\n options.map((option) => (\n <RadioInput\n key={option.id}\n name={name}\n onChange={onChange}\n option={option}\n isDisabled={isDisabled || option.disabled || false}\n isRequired={isRequired}\n isSelected={value === option.value}\n onBlur={onBlur}\n onFocus={onFocus}\n size={size}\n />\n ))}\n </Box>\n </fieldset>\n {error && typeof error !== 'boolean' && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport { RadioGroup, RadioGroupProps } from '../../RadioGroup/RadioGroup';\n\nexport interface FormikRadioGroupProps\n extends Omit<RadioGroupProps, 'onChange'> {\n field: FieldAttributes<HTMLInputElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: RadioGroupProps['onChange'];\n}\n\nexport const FormikRadioGroup: React.FC<FormikRadioGroupProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n options,\n ...props\n}) => (\n <RadioGroup\n {...props}\n options={options}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, { FC, FocusEvent, ReactNode, FocusEventHandler } from 'react';\nimport classNames from 'classnames';\nimport Select, {\n components,\n ClearIndicatorProps,\n OptionsOrGroups,\n OnChangeValue,\n} from 'react-select';\nimport { ResponsiveProp } from '../../types';\nimport { Z_INDEX_VALUES } from '../../lib/tokens';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { Box } from '../Box/Box';\nimport { Icon } from '../Icon/Icon';\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport styles from './SelectInput.module.scss';\nimport { GroupBase } from 'react-select/dist/declarations/src/types';\n\ntype SelectOptions = any;\ntype SelectGroupOptions = GroupBase<SelectOptions>;\nexport type SelectInputOptions = OptionsOrGroups<\n SelectOptions,\n SelectGroupOptions\n>;\n\nexport type SimulatedEventPayloadType = {\n target: {\n name: string;\n value: OnChangeValue<SelectInputOptions, boolean>;\n };\n};\n\nexport type TextInputSize =\n | 'sm'\n | 'md'\n | 'lg'\n | ResponsiveProp<'sm' | 'md' | 'lg'>;\n\nexport interface SelectInputProps {\n /**\n * The id attribute of the input.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: SimulatedEventPayloadType) => void;\n /**\n * Options for dropdown list.\n */\n options: SelectInputOptions;\n /**\n * The value(s) of select.\n */\n value: any | any[]; // eslint-disable-line @typescript-eslint/no-explicit-any\n /**\n * Autofocus select input on render.\n */\n autoFocus?: boolean;\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Visually hide the label.\n */\n hideLabel?: boolean;\n /**\n * If the input value is clearable programmatically.\n */\n isClearable?: boolean;\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * Is multi select enabled.\n */\n isMulti?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Select 'name' attribute.\n */\n name?: string;\n /**\n * A ref to portal the dropdown menu to. This is useful when the dropdown is located in a smaller container\n * and we want to avoid cutting off the menu.\n */\n menuPortalTarget?: HTMLElement;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLElement>) => void;\n /**\n * Placeholder for input.\n */\n placeholder?: string;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * The size of the text input.\n */\n size?: TextInputSize;\n /**\n * Additional props to be spread. These will be applied specifically to\n * the `react-select` component that powers the select. For full docs on\n * react-select props, [Click Here](https://react-select.com/props)\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const SelectInput: FC<SelectInputProps> = ({\n id,\n label,\n onChange,\n options,\n value,\n autoFocus = false,\n className = '',\n error = false,\n helpText,\n hideLabel = false,\n isClearable = false,\n isDisabled = false,\n isMulti = false,\n isRequired = false,\n menuPortalTarget = null,\n name = '',\n onFocus = null,\n onBlur = null,\n placeholder = undefined,\n requiredIndicator = ' *',\n size = 'md',\n ...restProps\n}) => {\n const handleChange = (values: OnChangeValue<SelectInputOptions, boolean>) => {\n const simulatedEventPayloadType: SimulatedEventPayloadType = {\n target: {\n name,\n value: values,\n },\n };\n\n onChange(simulatedEventPayloadType);\n };\n\n const handleFocus: FocusEventHandler<HTMLInputElement> = (e) => {\n if (onFocus) onFocus(e);\n };\n\n const handleBlur: FocusEventHandler<HTMLInputElement> = (e) => {\n if (onBlur) onBlur(e);\n };\n\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const wrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n 'select-input-wrapper',\n className,\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.disabled]: isDisabled,\n }\n );\n\n const inputClasses = classNames('react-select', { [styles.error]: error });\n\n const labelProps = {\n inputId: id,\n helpText,\n className: styles['select-input-label'],\n isDisabled,\n isFieldRequired: isRequired,\n requiredIndicator,\n };\n\n const ClearIndicator = (\n props: ClearIndicatorProps<\n OptionsOrGroups<SelectOptions, SelectGroupOptions>\n >\n ) => (\n <components.ClearIndicator {...props}>\n <Icon name=\"remove\" />\n </components.ClearIndicator>\n );\n\n return (\n <Box width=\"100%\" className={wrapperClasses}>\n {label && !hideLabel && <FormLabel {...labelProps}>{label}</FormLabel>}\n <Select\n {...restProps}\n inputId={id}\n aria-label={label}\n components={{ ClearIndicator }}\n aria-labelledby={label && !hideLabel ? `${id}Label` : undefined}\n className={inputClasses}\n classNamePrefix=\"react-select\"\n placeholder={placeholder}\n isClearable={isClearable}\n isDisabled={isDisabled}\n isMulti={isMulti}\n menuPortalTarget={menuPortalTarget}\n name={name}\n autoFocus={autoFocus}\n options={options}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n styles={{\n menuPortal: (base) => ({\n ...base,\n zIndex: Number(Z_INDEX_VALUES.popover),\n }),\n }}\n value={value}\n />\n {error && typeof error !== 'boolean' && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n};\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport { SelectInput, SelectInputProps } from '../../SelectInput/SelectInput';\n\nexport interface FormikSelectInputProps\n extends Omit<SelectInputProps, 'onChange'> {\n field: FieldAttributes<HTMLSelectElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: SelectInputProps['onChange'];\n}\n\nexport const FormikSelectInput: React.FC<FormikSelectInputProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n options,\n ...props\n}) => (\n <SelectInput\n {...props}\n id={id}\n label={label}\n options={options}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, {\n ChangeEvent,\n forwardRef,\n MouseEvent,\n KeyboardEvent,\n FocusEvent,\n ForwardRefExoticComponent,\n ReactNode,\n HTMLProps,\n} from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../types';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\n\nimport { Box, BoxProps } from '../Box/Box';\nimport { HelpText } from '../HelpText/HelpText';\nimport { Icon } from '../Icon/Icon';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport styles from './SelectInputInset.module.scss';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\n\nexport type SelectInputInsetSize = 'md' | 'lg';\nexport interface SelectInputInsetProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * List of options for the select input.\n */\n options: { value: string | number; label: string | number }[];\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Value of selected option. Should match the value key in the option object.\n */\n value: string | number | null;\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Props passed directly to the input element of the component\n */\n inputProps?: BoxProps & HTMLProps<HTMLInputElement>;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call when input us cleared. When this is passed,\n * the input will display an icon on the right side, for triggering this callback.\n */\n onClear?: (\n event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\n ) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * The size of the text input.\n */\n size?: SelectInputInsetSize | ResponsiveProp<SelectInputInsetSize>;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const SelectInputInset: ForwardRefExoticComponent<SelectInputInsetProps> =\n forwardRef<HTMLDivElement, SelectInputInsetProps>(\n (\n {\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n error = false,\n helpText,\n inputProps = {},\n isDisabled = false,\n isRequired = false,\n name = '',\n onBlur = undefined,\n onClear = undefined,\n onFocus = undefined,\n options,\n placeholder = 'Select...',\n requiredIndicator = ' *',\n size = 'md',\n },\n ref\n ) => {\n const placeholderOption = { value: '', label: placeholder };\n const optionsWithPlaceholder = [{ ...placeholderOption }, ...options];\n\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['text-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.error]: error,\n [styles.disabled]: isDisabled,\n [styles['is-clearable']]: onClear,\n }\n );\n\n const clearBtnClasses = classNames(styles['clear-button'], styles.md);\n\n const renderClearIcon = (): ReactNode => {\n const handleKeyPress = (\n event: KeyboardEvent<HTMLButtonElement>\n ): void => {\n if (event.keyCode === 13 && onClear) onClear(event);\n };\n\n return (\n <button\n type=\"button\"\n onClick={onClear}\n onKeyUp={handleKeyPress}\n className={clearBtnClasses}\n data-testid=\"text-input-clear-button\"\n aria-label=\"clear input\"\n >\n <Icon name=\"remove\" className=\"display-block\" />\n </button>\n );\n };\n\n const computedInputProps: SelectInputInsetProps['inputProps'] = {\n ...inputProps, // These are spread first so that we don't have top level props overwritten by the user.\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n disabled: isDisabled,\n id,\n name,\n onBlur,\n onChange,\n onFocus,\n required: isRequired,\n value: value ?? '',\n className: classNames(inputProps.className),\n };\n\n return (\n <div ref={ref}>\n <Box\n direction=\"row\"\n flex=\"auto\"\n position=\"relative\"\n className={inputWrapperClasses}\n >\n <Box as=\"select\" {...computedInputProps}>\n {optionsWithPlaceholder.map((option) => (\n <Box\n as=\"option\"\n key={option.value}\n value={option.value}\n disabled={option.value === ''}\n hidden={option.value === ''}\n color={option.value === '' ? 'secondary' : 'base'}\n >\n {option.label}\n </Box>\n ))}\n </Box>\n {!!onClear && !!value && renderClearIcon()}\n <label\n htmlFor={id}\n className={styles['select-input-label']}\n id={`${id}Label`}\n >\n {label}\n {isRequired && requiredIndicator && (\n <span>{requiredIndicator}</span>\n )}\n </label>\n </Box>\n {helpText && <HelpText>{helpText}</HelpText>}\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </div>\n );\n }\n );\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport {\n SelectInputInset,\n SelectInputInsetProps,\n} from '../../SelectInputInset/SelectInputInset';\n\nexport interface FormikSelectInputInsetProps\n extends Omit<SelectInputInsetProps, 'onChange'> {\n field: FieldAttributes<HTMLSelectElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: SelectInputInsetProps['onChange'];\n}\n\nexport const FormikSelectInputInset: React.FC<FormikSelectInputInsetProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n options,\n ...props\n}) => (\n <SelectInputInset\n {...props}\n id={id}\n label={label}\n options={options}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, {\n ChangeEvent,\n forwardRef,\n FocusEvent,\n ForwardRefExoticComponent,\n ReactNode,\n HTMLProps,\n InputHTMLAttributes,\n} from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../types';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\n\nimport { Box, BoxProps } from '../Box/Box';\nimport { HelpText } from '../HelpText/HelpText';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport styles from './TextareaInputInset.module.scss';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\n\nexport type TextareaInputInsetSize = 'md' | 'lg';\nexport interface TextareaInputInsetProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * The text value of the input. Required since our Input is a controlled component.\n */\n value: InputHTMLAttributes<HTMLInputElement>['value'];\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Props passed directly to the input element of the component\n */\n inputProps?: BoxProps & HTMLProps<HTMLInputElement>;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'maxlength' attribute.\n * NOTE: initializing the input with a value longer than the desired maxlength will not trim this value.\n */\n maxLength?: number;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * An input helper rendered before the input field value\n */\n prefix?: ReactNode;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * Textarea resize behavior\n */\n resize?: 'vertical' | 'horizontal' | 'none' | 'both';\n /**\n * number of visible text lines for the control.\n */\n rows?: number;\n /**\n * The size of the text input.\n */\n size?: TextareaInputInsetSize | ResponsiveProp<TextareaInputInsetSize>;\n /**\n * An input helper rendered after the input field value\n */\n suffix?: ReactNode;\n /**\n * The input 'type' value. Defaults to type 'text'.\n */\n type?: InputHTMLAttributes<HTMLInputElement>['type'];\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const TextareaInputInset: ForwardRefExoticComponent<TextareaInputInsetProps> =\n forwardRef<HTMLDivElement, TextareaInputInsetProps>(\n (\n {\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n className,\n error = false,\n helpText,\n inputProps = {},\n isDisabled = false,\n isRequired = false,\n maxLength = undefined,\n name = '',\n onBlur = undefined,\n onFocus = undefined,\n placeholder = ' ',\n requiredIndicator = ' *',\n resize = 'vertical',\n rows = 5,\n size = 'md',\n type = 'text',\n },\n ref\n ) => {\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['text-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.disabled]: isDisabled,\n }\n );\n\n const computedInputProps: TextareaInputInsetProps['inputProps'] = {\n ...inputProps, // These are spread first so that we don't have top level props overwritten by the user.\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n className: classNames(styles[`textarea-resize-${resize}`], {\n [styles.error]: error,\n }),\n disabled: isDisabled,\n id,\n maxLength,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n required: isRequired,\n rows,\n type,\n value,\n };\n\n return (\n <Box width=\"100\" ref={ref} className={className}>\n <Box\n display=\"block\"\n position=\"relative\"\n className={inputWrapperClasses}\n >\n <Box as=\"textarea\" {...computedInputProps} />\n <label\n htmlFor={id}\n className={styles['text-input-label']}\n id={`${id}Label`}\n >\n {label}\n {isRequired && requiredIndicator && (\n <span>{requiredIndicator}</span>\n )}\n </label>\n </Box>\n {helpText && <HelpText>{helpText}</HelpText>}\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n }\n );\n","import React, { FC } from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FormikValues,\n FieldAttributes,\n getIn,\n} from 'formik';\nimport {\n TextareaInputInset,\n TextareaInputInsetProps,\n} from '../../TextareaInputInset/TextareaInputInset';\n\nexport interface FormikTextareaInputInsetProps\n extends Omit<TextareaInputInsetProps, 'onChange'> {\n field: FieldAttributes<HTMLTextAreaElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TextareaInputInsetProps['onChange'];\n}\n\nexport const FormikTextareaInputInset: FC<FormikTextareaInputInsetProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <TextareaInputInset\n {...props}\n id={id}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, {\n ChangeEvent,\n forwardRef,\n MouseEvent,\n KeyboardEvent,\n FocusEvent,\n ForwardRefExoticComponent,\n ReactNode,\n HTMLProps,\n InputHTMLAttributes,\n} from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../types';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\n\nimport { Box, BoxProps } from '../Box/Box';\nimport { HelpText } from '../HelpText/HelpText';\nimport { Icon } from '../Icon/Icon';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport styles from './TextInputInset.module.scss';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\n\nexport type TextInputInsetSize = 'md' | 'lg';\nexport interface TextInputInsetProps {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * The text value of the input. Required since our Input is a controlled component.\n */\n value: InputHTMLAttributes<HTMLInputElement>['value'];\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Props passed directly to the input element of the component\n */\n inputProps?: BoxProps & HTMLProps<HTMLInputElement>;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'maxlength' attribute.\n * NOTE: initializing the input with a value longer than the desired maxlength will not trim this value.\n */\n maxLength?: number;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function to call when input us cleared. When this is passed,\n * the input will display an icon on the right side, for triggering this callback.\n */\n onClear?: (\n event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>\n ) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * An input helper rendered before the input field value\n */\n prefix?: ReactNode;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * The size of the text input.\n */\n size?: TextInputInsetSize | ResponsiveProp<TextInputInsetSize>;\n /**\n * An input helper rendered after the input field value\n */\n suffix?: ReactNode;\n /**\n * The input 'type' value. Defaults to type 'text'.\n */\n type?: InputHTMLAttributes<HTMLInputElement>['type'];\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const TextInputInset: ForwardRefExoticComponent<TextInputInsetProps> =\n forwardRef<HTMLDivElement, TextInputInsetProps>(\n (\n {\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n error = false,\n helpText,\n inputProps = {},\n isDisabled = false,\n isRequired = false,\n maxLength = undefined,\n name = '',\n onBlur = undefined,\n onClear = undefined,\n onFocus = undefined,\n prefix = undefined,\n placeholder = ' ',\n requiredIndicator = ' *',\n suffix = undefined,\n size = 'md',\n type = 'text',\n },\n ref\n ) => {\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['text-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.error]: error,\n [styles.disabled]: isDisabled,\n [styles['is-clearable']]: onClear,\n }\n );\n\n const clearBtnClasses = classNames(styles['clear-button'], styles.md);\n\n const renderClearIcon = (): ReactNode => {\n const handleKeyPress = (\n event: KeyboardEvent<HTMLButtonElement>\n ): void => {\n if (event.keyCode === 13 && onClear) onClear(event);\n };\n\n return (\n <button\n type=\"button\"\n onClick={onClear}\n onKeyUp={handleKeyPress}\n className={clearBtnClasses}\n data-testid=\"text-input-clear-button\"\n aria-label=\"clear input\"\n >\n <Icon name=\"remove\" className=\"display-block\" />\n </button>\n );\n };\n\n const computedInputProps: TextInputInsetProps['inputProps'] = {\n ...inputProps, // These are spread first so that we don't have top level props overwritten by the user.\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n disabled: isDisabled,\n id,\n maxLength,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n required: isRequired,\n type,\n value,\n className: classNames(inputProps.className),\n };\n\n return (\n <Box width=\"100\" ref={ref}>\n <Box direction=\"row\" className={inputWrapperClasses}>\n {prefix && (\n <Box\n color=\"base\"\n alignItems=\"center\"\n justifyContent=\"center\"\n background=\"secondary\"\n className={classNames(styles.prefix, 'ws-nowrap')}\n >\n {prefix}\n </Box>\n )}\n <Box\n direction=\"row\"\n position=\"relative\"\n className=\"label-input-wrapper\"\n flex=\"auto\"\n >\n <Box as=\"input\" {...computedInputProps} />\n {!!onClear && !!value && renderClearIcon()}\n <label\n htmlFor={id}\n className={styles['text-input-label']}\n id={`${id}Label`}\n >\n {label}\n {isRequired && requiredIndicator && (\n <span>{requiredIndicator}</span>\n )}\n </label>\n </Box>\n {suffix && (\n <Box\n color=\"base\"\n background=\"secondary\"\n className={classNames(styles.suffix, 'ws-nowrap')}\n >\n {suffix}\n </Box>\n )}\n </Box>\n {helpText && <HelpText>{helpText}</HelpText>}\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n }\n );\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport {\n TextInputInset,\n TextInputInsetProps,\n} from '../../TextInputInset/TextInputInset';\n\nexport interface FormikTextInputInsetProps\n extends Omit<TextInputInsetProps, 'onChange'> {\n field: FieldAttributes<HTMLInputElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TextInputInsetProps['onChange'];\n}\n\nexport const FormikTextInputInset: React.FC<FormikTextInputInsetProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <TextInputInset\n {...props}\n id={id}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport { ResponsiveProp } from '../../types';\nimport { Box, BoxProps } from '../Box/Box';\nimport { FormControl, FormControlProps } from '../FormControl/FormControl';\nimport styles from './SelectInputNative.module.scss';\n\nexport type SelectInputNativeSize = 'sm' | 'md' | 'lg';\nexport interface SelectInputNativeProps extends BoxProps, FormControlProps {\n /**\n * List of options for the select input.\n */\n options: { value: string | number; label: string | number }[];\n /**\n * onChange callback from select element.\n */\n onChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n /**\n * Value of selected option. Should match the value key in the option object.\n */\n value: string | number | null;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: React.ReactNode;\n /**\n * Size of the input. ('sm' | 'md' | 'lg')\n */\n size?: SelectInputNativeSize | ResponsiveProp<SelectInputNativeSize>;\n /**\n * Whether the input is autofocused on initial render.\n */\n autoFocus?: HTMLSelectElement['autofocus'];\n /**\n * Additional props to be spread.\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const SelectInputNative: React.FC<SelectInputNativeProps> = ({\n autoFocus = false,\n label,\n hideLabel,\n helpText,\n error,\n id,\n isDisabled,\n isRequired,\n name,\n value,\n options,\n onChange,\n placeholder = 'Select...',\n requiredIndicator = ' *',\n size = 'md',\n ...restProps\n}) => {\n const placeholderOption = { value: '', label: placeholder };\n const optionsWithPlaceholder = [{ ...placeholderOption }, ...options];\n\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const selectWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['select-input-native-wrapper'],\n ...responsiveClasses.map((className) => styles[className]),\n {\n [styles.disabled]: isDisabled,\n [styles.error]: error,\n }\n );\n\n return (\n <FormControl\n label={label}\n hideLabel={hideLabel}\n id={id}\n error={error}\n helpText={helpText}\n isDisabled={isDisabled}\n isRequired={isRequired}\n requiredIndicator={requiredIndicator}\n {...restProps}\n >\n <Box className={selectWrapperClasses}>\n <Box\n as=\"select\"\n aria-label={label}\n aria-labelledby={label && !hideLabel ? `${id}Label` : undefined}\n aria-required={isRequired}\n value={value ?? ''}\n onChange={onChange}\n color={!value ? 'disabled' : 'base'}\n autoFocus={autoFocus}\n disabled={isDisabled}\n name={name}\n id={id}\n required={isRequired}\n >\n {optionsWithPlaceholder.map((option) => (\n <Box\n as=\"option\"\n key={option.value}\n value={option.value}\n disabled={option.value === ''}\n hidden={option.value === ''}\n color={option.value === '' ? 'disabled' : 'base'}\n >\n {option.label}\n </Box>\n ))}\n </Box>\n </Box>\n </FormControl>\n );\n};\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport {\n SelectInputNative,\n SelectInputNativeProps,\n} from '../../SelectInputNative/SelectInputNative';\n\nexport interface FormikSelectInputNativeProps\n extends Omit<SelectInputNativeProps, 'onChange'> {\n field: FieldAttributes<HTMLSelectElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: SelectInputNativeProps['onChange'];\n}\n\nexport const FormikSelectInputNative: React.FC<\n FormikSelectInputNativeProps\n> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n options,\n id,\n label,\n ...props\n}) => (\n <SelectInputNative\n {...props}\n options={options}\n id={id}\n label={label}\n onChange={onChange ?? formikOnChange}\n name={name}\n onBlur={onBlur}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport { TextInput, TextInputProps } from '../../TextInput/TextInput';\n\nexport interface FormikTextInputProps extends Omit<TextInputProps, 'onChange'> {\n field: FieldAttributes<HTMLInputElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TextInputProps['onChange'];\n}\n\nexport const FormikTextInput: React.FC<FormikTextInputProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <TextInput\n {...props}\n id={id}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, { FC, ChangeEvent, FocusEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { ResponsiveProp } from '../../types';\nimport { Box, BoxProps } from '../Box/Box';\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport { getAutoCompleteValue } from '../../lib/getAutoCompleteValue';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport styles from './TextareaInput.module.scss';\n\nexport type TextareaInputSize = 'sm' | 'md' | 'lg';\nexport interface TextareaInputProps extends Omit<BoxProps, 'as' | 'width'> {\n /**\n * The input's id attribute. Used to programmatically tie the input with its label.\n */\n id: string;\n /**\n * Custom content to be displayed above the input. If the label is hidden, will be used to set aria-label attribute.\n */\n label: string;\n /**\n * Callback function to call on change event.\n */\n onChange: (event: ChangeEvent<HTMLTextAreaElement>) => void;\n /**\n * The text value of the input. Required since our Input is a controlled component.\n */\n value: string;\n /**\n * The input's 'autocomplete' attribute.\n */\n autoComplete?: boolean | string;\n /**\n * Automatically focus the input when the page is loaded.\n */\n autoFocus?: boolean;\n /**\n * Custom class to be added to standard input classes.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Visually hide the label.\n */\n hideLabel?: boolean;\n /**\n * The input's disabled attribute\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * The input's 'maxlength' attribute.\n * NOTE: initializing the input with a value longer than the desired maxlength will not trim this value.\n */\n maxLength?: number;\n /**\n * The input's 'name' attribute.\n */\n name?: string;\n /**\n * Callback function to call on blur event.\n */\n onBlur?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * Callback function to call on focus event.\n */\n onFocus?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * The input placeholder attribute.\n */\n placeholder?: string;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: ReactNode;\n /**\n * Textarea resize behavior\n */\n resize?: 'vertical' | 'horizontal' | 'none' | 'both';\n /**\n * number of visible text lines for the control.\n */\n rows?: number;\n /**\n * The size of the text input.\n */\n size?: TextareaInputSize | ResponsiveProp<TextareaInputSize>;\n /**\n * Additional props to be spread to rendered element\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const TextareaInput: FC<TextareaInputProps> = ({\n id,\n label,\n onChange,\n value,\n autoComplete = false,\n autoFocus = false,\n className = undefined,\n error = false,\n helpText,\n hideLabel = false,\n isDisabled = false,\n isRequired = false,\n maxLength = undefined,\n name = undefined,\n onBlur = undefined,\n onFocus = undefined,\n placeholder = '',\n requiredIndicator = ' *',\n resize = 'vertical',\n rows = 3,\n size = 'md',\n ...restProps\n}) => {\n const responsiveClasses = generateResponsiveClasses('size', size);\n\n const inputWrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n styles['textarea-input-wrapper'],\n ...responsiveClasses.map((c) => styles[c]),\n {\n [styles.error]: error,\n [styles.disabled]: isDisabled,\n }\n );\n\n const inputProps = {\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label && !hideLabel ? `${id}Label` : undefined,\n autoComplete: getAutoCompleteValue(autoComplete),\n autoFocus,\n className: classNames(styles[`textarea-resize-${resize}`]),\n disabled: isDisabled,\n id,\n maxLength,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n required: isRequired,\n rows,\n value,\n };\n\n const labelProps = {\n inputId: id,\n helpText,\n className: styles['textarea-input-label'],\n isDisabled,\n isFieldRequired: isRequired,\n requiredIndicator,\n };\n\n return (\n <Box width=\"100%\" className={className} {...restProps}>\n {label && !hideLabel && <FormLabel {...labelProps}>{label}</FormLabel>}\n <Box display=\"block\" className={inputWrapperClasses}>\n <Box as=\"textarea\" {...inputProps} />\n </Box>\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FormikValues,\n FieldAttributes,\n getIn,\n} from 'formik';\nimport {\n TextareaInput,\n TextareaInputProps,\n} from '../../TextareaInput/TextareaInput';\n\nexport interface FormikTextareaInputProps\n extends Omit<TextareaInputProps, 'onChange'> {\n field: FieldAttributes<HTMLTextAreaElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TextareaInputProps['onChange'];\n}\n\nexport const FormikTextareaInput: FC<FormikTextareaInputProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n id,\n label,\n ...props\n}) => (\n <TextareaInput\n {...props}\n id={id}\n label={label}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import React, { FC } from 'react';\nimport { SelectInput, SelectInputProps } from '../SelectInput/SelectInput';\n\nexport type TimePickerProps = Omit<SelectInputProps, 'options'> & {\n /**\n * Options to govern the display of the option labels in the select.\n * This is a direct passthrough to the second argument of JS `toLocaleTimeString`.\n * [More](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString)\n */\n dateDisplayOptions?: Intl.DateTimeFormatOptions;\n /**\n * End hour and minute\n */\n endTime?: { hour: number; minute: number };\n /**\n * Interval of displayed times (in seconds). Defaults to 900 seconds (15 minutes).\n */\n interval?: number;\n /**\n * Locale(s) to be passed down in order to format the label values in the select.\n * This corresponds to the first argument of JS `toLocaleTimeString`.\n * [More](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString)\n */\n locales?: string | string[];\n /**\n * Start hour and minute\n */\n startTime?: { hour: number; minute: number };\n};\n\nexport const TimePicker: FC<TimePickerProps> = ({\n id,\n name,\n label,\n onChange,\n value,\n dateDisplayOptions = { hour: '2-digit', minute: '2-digit' },\n endTime = undefined,\n interval = 900,\n locales = 'en-US',\n placeholder = 'HH:MM',\n startTime = undefined,\n ...restProps\n}) => {\n const generateTimes = () => {\n const first = new Date();\n first.setHours(startTime?.hour || 0, startTime?.minute || 0, 0, 0);\n\n const last = new Date();\n last.setHours(\n endTime?.hour || first.getHours() + 24,\n endTime?.minute || 0,\n 0,\n 0\n );\n\n const timeOptions = [];\n const currentTime: Date = new Date(first);\n\n while (currentTime < last) {\n timeOptions.push({\n value: currentTime.toISOString(),\n label: currentTime.toLocaleTimeString(locales, dateDisplayOptions),\n });\n currentTime.setSeconds(first.getSeconds() + interval);\n }\n\n return timeOptions;\n };\n\n return (\n <SelectInput\n {...restProps}\n id={id}\n name={name}\n label={label}\n onChange={onChange}\n options={generateTimes()}\n placeholder={placeholder}\n value={value}\n />\n );\n};\n","import React, { FC } from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FormikValues,\n FieldAttributes,\n getIn,\n} from 'formik';\nimport { TimePicker, TimePickerProps } from '../../TimePicker/TimePicker';\n\nexport interface FormikTimePickerProps\n extends Omit<TimePickerProps, 'onChange'> {\n field: FieldAttributes<HTMLSelectElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange?: TimePickerProps['onChange'];\n}\n\nexport const FormikTimePicker: FC<FormikTimePickerProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n options,\n onChange,\n ...props\n}) => (\n <TimePicker\n {...props}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n options={options}\n />\n);\n","import React, { FC } from 'react';\nimport {\n SelectInputNative,\n SelectInputNativeProps,\n} from '../SelectInputNative/SelectInputNative';\n\nexport interface TimePickerNativeProps\n extends Omit<SelectInputNativeProps, 'options'> {\n /**\n * Options to govern the display of the option labels in the select.\n * This is a direct passthrough to the second argument of JS `toLocaleTimeString`.\n * [More](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString)\n */\n dateDisplayOptions?: Intl.DateTimeFormatOptions;\n /**\n * End hour and minute\n */\n endTime?: { hour: number; minute: number };\n /**\n * Interval of displayed times (in seconds). Defaults to 900 seconds (15 minutes).\n */\n interval?: number;\n /**\n * Locale(s) to be passed down in order to format the label values in the select.\n * This corresponds to the first argument of JS `toLocaleTimeString`.\n * [More](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString)\n */\n locales?: string | string[];\n /**\n * Start hour and minute\n */\n startTime?: { hour: number; minute: number };\n /**\n * Should be ISO timestamp as returned by `onChange`, and matching value of option object.\n */\n value: SelectInputNativeProps['value'];\n}\n\nexport const TimePickerNative: FC<TimePickerNativeProps> = ({\n id,\n name,\n label,\n onChange,\n value,\n dateDisplayOptions = { hour: '2-digit', minute: '2-digit' },\n endTime = undefined,\n interval = 900,\n locales = 'en-US',\n placeholder = 'HH:MM',\n startTime = undefined,\n ...restProps\n}) => {\n const generateTimes = () => {\n const first = new Date();\n first.setHours(startTime?.hour || 0, startTime?.minute || 0, 0, 0);\n\n const last = new Date();\n last.setHours(\n endTime?.hour || first.getHours() + 24,\n endTime?.minute || 0,\n 0,\n 0\n );\n\n const timeOptions = [];\n const currentTime: Date = new Date(first);\n\n while (currentTime < last) {\n timeOptions.push({\n value: currentTime.toISOString(),\n label: currentTime.toLocaleTimeString(locales, dateDisplayOptions),\n });\n currentTime.setSeconds(first.getSeconds() + interval);\n }\n\n return timeOptions;\n };\n\n const options = generateTimes();\n\n return (\n <SelectInputNative\n {...restProps}\n id={id}\n name={name}\n label={label}\n onChange={onChange}\n options={options}\n placeholder={placeholder}\n value={value}\n />\n );\n};\n","import React, { FC } from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FormikValues,\n FieldAttributes,\n getIn,\n} from 'formik';\nimport {\n TimePickerNative,\n TimePickerNativeProps,\n} from '../../TimePickerNative/TimePickerNative';\n\nexport interface FormikTimePickerNativeProps\n extends Omit<TimePickerNativeProps, 'onChange'> {\n field: FieldAttributes<HTMLTextAreaElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n onChange: TimePickerNativeProps['onChange'];\n}\n\nexport const FormikTimePickerNative: FC<FormikTimePickerNativeProps> = ({\n field: { name, onBlur, onChange: formikOnChange, value },\n form: { touched, errors },\n onChange,\n ...props\n}) => (\n <TimePickerNative\n {...props}\n name={name}\n onBlur={onBlur}\n onChange={onChange ?? formikOnChange}\n value={value}\n error={getIn(touched, name) && getIn(errors, name)}\n />\n);\n","import { Box, BoxProps } from '../Box/Box';\nimport React, { ChangeEvent, FC, FocusEvent, ReactNode } from 'react';\n\nimport { FormLabel } from '../FormLabel/FormLabel';\nimport { InputValidationMessage } from '../InputValidationMessage/InputValidationMessage';\nimport { ResponsiveProp } from '../../types';\nimport classNames from 'classnames';\nimport { generateResponsiveClasses } from '../../lib/generateResponsiveClasses';\nimport styles from './Toggle.module.scss';\n\nexport type ToggleSize = 'sm' | 'md' | 'lg';\nexport interface ToggleProps {\n /**\n * The id attribute of the input.\n */\n id: string;\n /**\n * The toggle input \"checked\" attribute.\n */\n isChecked: boolean;\n /**\n * Custom content to be displayed to right of toggle.\n */\n label: string;\n /**\n * Callback function when input is changed.\n */\n onChange: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Mark the input field as invalid and display a validation message.\n * Pass a string or node to render a validation message below the input.\n */\n error?: ReactNode;\n /**\n * Additional clarifying text to help describe the input\n */\n helpText?: ReactNode;\n /**\n * Determines if the label is not shown for stylistic reasons.\n * Note the label is still a required prop and will be used as the aria-label for accessibility reasons.\n */\n hideLabel?: boolean;\n /**\n * If the input should be disabled and not focusable.\n */\n isDisabled?: boolean;\n /**\n * The required and aria-required attributes on the input\n */\n isRequired?: boolean;\n /**\n * Callback function when input is blurred.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Callback function when input is focused.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Visual indicator that the field is required, that gets appended to the label\n */\n requiredIndicator?: React.ReactNode;\n /**\n * The size of the toggle.\n */\n size?: ToggleSize | ResponsiveProp<ToggleSize>;\n}\n\nexport const Toggle: FC<ToggleProps> = ({\n id,\n isChecked,\n label,\n onChange,\n className = '',\n error = false,\n hideLabel = false,\n helpText,\n isDisabled = false,\n isRequired = false,\n onBlur = undefined,\n onFocus = undefined,\n requiredIndicator = ' *',\n size = 'md',\n}) => {\n const handleBlur = (event: FocusEvent<HTMLInputElement>): void => {\n if (onBlur) onBlur(event);\n };\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>): void => {\n onChange(event);\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>): void => {\n if (onFocus) onFocus(event);\n };\n\n const wrapperClasses = classNames(\n 'hyphen-components__variables__form-control',\n { [styles.disabled]: isDisabled }\n );\n const trackClasses = classNames(\n styles['toggle-track'],\n ...generateResponsiveClasses('track-size', size).map((c) => styles[c]),\n {\n [styles.error]: error,\n }\n );\n const thumbClasses = classNames(\n styles['toggle-thumb'],\n ...generateResponsiveClasses('thumb-size', size).map((c) => styles[c])\n );\n\n const inputProps = {\n 'aria-required': isRequired,\n 'aria-invalid': !!error,\n 'aria-label': label,\n 'aria-labelledby': label && !hideLabel ? `${id}Label` : undefined,\n id,\n checked: !!isChecked,\n disabled: isDisabled,\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus,\n required: isRequired,\n type: 'checkbox',\n className: styles['toggle-input'],\n };\n\n const labelProps = {\n inputId: id,\n isDisabled,\n display: 'flex' as BoxProps['display'],\n direction: 'row' as BoxProps['direction'],\n childGap: 'md' as BoxProps['childGap'],\n alignItems: helpText ? 'flex-start' : ('center' as BoxProps['alignItems']),\n isFieldRequired: isRequired,\n requiredIndicator,\n };\n\n return (\n <Box className={className}>\n <Box className={wrapperClasses}>\n <FormLabel {...labelProps}>\n <input {...inputProps} />\n <span\n aria-hidden=\"true\"\n className={trackClasses}\n data-testid=\"toggleTrack\"\n >\n <span className={thumbClasses} data-testid=\"toggleThumb\" />\n </span>\n {!hideLabel && (\n <Box\n gap=\"2xs\"\n className={\n helpText && (size === 'md' || size === 'lg') ? 'm-top-2xs' : ''\n }\n >\n {label && <div>{label}</div>}\n {helpText && (\n <Box\n as=\"p\"\n display=\"block\"\n fontSize=\"sm\"\n fontWeight=\"normal\"\n color=\"secondary\"\n >\n {helpText}\n </Box>\n )}\n </Box>\n )}\n </FormLabel>\n </Box>\n {error && error !== true && (\n <InputValidationMessage>{error}</InputValidationMessage>\n )}\n </Box>\n );\n};\n","import React from 'react';\nimport {\n FormikTouched,\n FormikErrors,\n FieldAttributes,\n FormikValues,\n getIn,\n} from 'formik';\nimport { Toggle } from '../../Toggle/Toggle';\n\nexport interface FormikToggleProps {\n field: FieldAttributes<HTMLTextAreaElement>;\n form: {\n touched: FormikTouched<FormikValues>;\n errors: FormikErrors<FormikValues>;\n };\n id: string;\n label: string;\n}\n\nexport const FormikToggle: React.FC<FormikToggleProps> = ({\n field: {\n name,\n onBlur, // eslint-disable-line no-unused-vars\n onChange, // eslint-disable-line no-unused-vars\n value,\n },\n form: { touched, errors },\n ...props\n}) => (\n <Toggle\n error={getIn(touched, name) && getIn(errors, name)}\n isChecked={value}\n onBlur={onBlur}\n onChange={onChange} // eslint-disable-line\n {...props}\n />\n);\n","import React, { FC } from 'react';\nimport { Box, BoxProps } from '../../../Box/Box';\n\nexport type ModalFooterProps = Omit<\n BoxProps,\n 'as' | 'background' | 'borderColor' | 'borderWidth' | 'radius'\n>;\n\nexport const ModalFooter: FC<ModalFooterProps> = ({\n children,\n padding = 'xl',\n direction = 'row',\n alignItems = 'center',\n justifyContent = 'flex-end',\n background = 'secondary',\n gap = 'sm',\n style,\n ...restProps\n}) => (\n <Box\n background={background}\n padding={padding}\n direction={direction}\n alignItems={alignItems}\n justifyContent={justifyContent}\n borderWidth=\"sm 0 0 0\"\n borderColor=\"default\"\n gap={gap}\n style={{\n flexShrink: 0,\n ...style,\n }}\n {...restProps}\n >\n {children}\n </Box>\n);\n","import React, { FC } from 'react';\nimport { Box } from '../../../Box/Box';\nimport { Icon } from '../../../Icon/Icon';\nimport styles from '../../Modal.module.scss';\n\nexport type ModalHeaderProps = {\n /**\n * id of the element containing the title, used by the Modal `aria-labelledby` prop\n */\n id: string;\n /**\n * Modal's header title\n */\n title?: string;\n /**\n * If defined, will render a 'x' close button on the right side of the ModalHeader\n */\n onDismiss?: (event?: React.SyntheticEvent) => void;\n};\n\nexport const ModalHeader: FC<ModalHeaderProps> = ({\n id,\n onDismiss,\n title = undefined,\n}) => {\n const justifyContentValue =\n title === undefined && onDismiss ? 'flex-end' : 'space-between';\n\n return (\n <Box\n padding=\"xl\"\n direction=\"row\"\n alignItems=\"center\"\n justifyContent={justifyContentValue}\n borderWidth=\"0 0 sm 0\"\n borderColor=\"default\"\n style={{\n flexShrink: 0,\n }}\n >\n {title && (\n <Box as=\"h4\" fontSize={{ base: 'md', tablet: 'lg' }} id={id}>\n {title}\n </Box>\n )}\n {onDismiss && (\n <button\n aria-label=\"close\"\n type=\"button\"\n className={styles['modal-close']}\n onClick={onDismiss}\n >\n <Icon name=\"remove\" />\n </button>\n )}\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, BoxProps } from '../../../Box/Box';\n\nexport type ModalBodyProps = BoxProps;\n\nexport const ModalBody: FC<ModalBodyProps> = ({\n children,\n flex = 'auto',\n padding = 'xl',\n overflow = 'auto',\n height = '100',\n ...restProps\n}) => (\n <Box\n padding={padding}\n flex={flex}\n overflow={overflow}\n height={height}\n style={{ position: 'relative' }}\n {...restProps}\n >\n {children}\n </Box>\n);\n","import React, { ReactNode, RefObject, forwardRef, useCallback } from 'react';\nimport ReactModal from 'react-modal';\nimport FocusLock from 'react-focus-lock';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport classNames from 'classnames';\nimport { CssOverflowValue } from '../../types';\nimport { getDimensionCss } from '../../lib/getDimensionCss';\nimport { Box, BoxProps } from '../Box/Box';\nimport { ModalFooter, ModalHeader, ModalBody } from './components';\nimport styles from './Modal.module.scss';\n\nexport interface ModalProps {\n /**\n * Handle zoom/pinch gestures on iOS devices when scroll locking is enabled.\n */\n allowPinchZoom?: boolean;\n /**\n * Each modal needs to be properly labeled to provide context for users with\n * assistive technology such as screen readers. If a modal is announced to\n * the user without a label, it can be confusing and difficult to navigate.\n */\n ariaLabel?: string;\n /**\n * The id of the element that should be used as the Modal's label by assistive\n * technologies like screen readers. Usually the id is set on the `Modal.Header`\n */\n ariaLabelledBy?: string;\n /**\n * Contents of the dialog.\n */\n children?: ReactNode;\n /**\n * Additional ClassNames to add to dialog.\n */\n className?: string;\n /**\n * The ref of the container where the dialog will be inserted into the DOM.\n * By default, Modals are inserted in the document.body, but if need be they can\n * be scoped as necessary.\n */\n containerRef?: React.RefObject<Node>;\n /**\n * At mobile viewport widths, the modal will take up the fullscreen\n */\n fullScreenMobile?: boolean;\n /**\n * By default the first focusable element will receive focus when the dialog\n * opens but you can provide a ref to focus instead.\n *\n * @see Docs https://reach.tech/dialog#dialog-initialfocusref\n */\n initialFocusRef?: RefObject<HTMLDivElement>;\n /**\n * Whether the modal is visible or not\n */\n isOpen: boolean;\n /**\n * Max width for modal content. Uses the same maxWidth prop as the `Box` component,\n * and as such can be responsive as well.\n */\n maxWidth?: BoxProps['maxWidth'];\n /**\n * Function that is called whenever the user hits \"Escape\" key or clicks outside the modal.\n */\n onDismiss: (event?: React.SyntheticEvent) => void;\n /**\n * The css overflow behavior of the Modal\n */\n overflow?: CssOverflowValue;\n /**\n * Allows spread props\n */\n [x: string]: any; // eslint-disable-line\n}\n\nexport const ModalBaseComponent: React.FC<ModalProps> = forwardRef<\n HTMLDivElement,\n ModalProps\n>(\n (\n {\n ariaLabel,\n ariaLabelledBy,\n allowPinchZoom = false,\n children,\n className,\n containerRef = undefined,\n fullScreenMobile = false,\n initialFocusRef,\n isOpen,\n maxWidth = undefined,\n onDismiss,\n overflow = 'hidden',\n ...restProps\n },\n ref\n ) => {\n const activateFocusLock = useCallback(() => {\n setTimeout(() => {\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus();\n }\n }, 100);\n }, [initialFocusRef]);\n\n const maxWidthCss = getDimensionCss('mw', maxWidth);\n\n const overlayClassnames = classNames(styles.overlay, styles.modal, {\n fullscreen: fullScreenMobile,\n });\n const contentClassnames = classNames(\n styles['modal-content'],\n className,\n maxWidthCss.classes,\n {\n [`overflow-${overflow}`]: overflow,\n }\n );\n\n const parentElement = containerRef?.current\n ? (containerRef.current as HTMLElement)\n : undefined;\n return (\n <FocusLock\n autoFocus\n returnFocus\n disabled={!isOpen}\n onActivation={activateFocusLock}\n crossFrame\n >\n <RemoveScroll allowPinchZoom={allowPinchZoom} enabled={isOpen}>\n <Box ref={ref}>\n <ReactModal\n isOpen={isOpen}\n overlayClassName={overlayClassnames}\n className={contentClassnames}\n onRequestClose={onDismiss}\n ariaHideApp={false}\n parentSelector={parentElement ? () => parentElement : undefined}\n {...restProps}\n >\n <Box\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n style={{ ...maxWidthCss.styles }}\n height=\"100\"\n >\n {children}\n </Box>\n </ReactModal>\n </Box>\n </RemoveScroll>\n </FocusLock>\n );\n }\n);\n\nexport interface ModalStatic {\n Body: typeof ModalBody;\n Header: typeof ModalHeader;\n Footer: typeof ModalFooter;\n}\n\nexport type ModalWithStaticComponents = typeof ModalBaseComponent & ModalStatic;\n\n// Actual component is wrapped in an IIFE for the export\n// To allow tree-shaking even with static properties (subcomponents in this case).\nexport const Modal = (() => {\n const Modal = ModalBaseComponent as ModalWithStaticComponents; // eslint-disable-line no-shadow\n Modal.Body = ModalBody;\n Modal.Footer = ModalFooter;\n Modal.Header = ModalHeader;\n return Modal;\n})();\n","export interface Page {\n isPage: boolean;\n pageNumber: number;\n}\n\nexport const generatePages = (\n pageRange: number,\n pageTotal: number,\n activePage: number,\n numberOfPagesDisplayed: number\n): Page[] => {\n const pages: Page[] = [];\n let startingPage = 1;\n let endingPage = pageRange;\n\n if (pageTotal <= pageRange) {\n startingPage = 1;\n endingPage = pageRange;\n } else if (activePage + numberOfPagesDisplayed > pageTotal) {\n startingPage = pageTotal - (numberOfPagesDisplayed - 1);\n endingPage = startingPage + (numberOfPagesDisplayed - 1);\n } else if (\n activePage > numberOfPagesDisplayed &&\n activePage + numberOfPagesDisplayed <= pageTotal\n ) {\n startingPage = activePage - Math.floor(numberOfPagesDisplayed / 2);\n endingPage = startingPage + (numberOfPagesDisplayed - 1);\n }\n\n for (let i = startingPage; i <= endingPage; i += 1) {\n pages.push({ pageNumber: i, isPage: true });\n }\n\n if (pageTotal > pages[pages.length - 1]?.pageNumber) {\n const secondToLastPage =\n pageTotal !== activePage + numberOfPagesDisplayed\n ? activePage + numberOfPagesDisplayed\n : pageTotal - 1;\n\n // only add ellipsis if there are more than 0 pages between the final page and the rest of the pages\n if (pageTotal > numberOfPagesDisplayed + 1) {\n pages.push({ pageNumber: secondToLastPage, isPage: false });\n }\n\n pages.push({ pageNumber: pageTotal, isPage: true });\n }\n\n if (activePage > numberOfPagesDisplayed) {\n const threeDotsPage =\n activePage - numberOfPagesDisplayed > 1\n ? activePage - numberOfPagesDisplayed\n : activePage - numberOfPagesDisplayed + 1;\n\n pages.unshift(\n { pageNumber: 1, isPage: true },\n { pageNumber: threeDotsPage, isPage: false }\n );\n }\n\n return [...pages];\n};\n\n// Return the true page range in cases\n// where number of pages wanted for display is larger than the actual page total.\nexport const generatePageRange = (\n numberOfPagesDisplayed: number,\n pageTotal: number\n): number =>\n numberOfPagesDisplayed > pageTotal ? pageTotal : numberOfPagesDisplayed;\n\nexport const generatePageTotal = (\n totalItemsCount: number,\n itemsPerPage: number\n): number => Math.ceil(totalItemsCount / itemsPerPage);\n\n// Returns the range of current items displayed based on the specific page.\n// E.G: if the items per page is 20 and we are on page 1, it will return:\n// { first: 1, last: 20 }\nexport const generateActiveListRange = (\n activePage: number,\n totalItemsCount: number,\n itemsPerPage: number\n): { first?: number; last?: number } => {\n const activePageRange: { first?: number; last?: number } = {};\n\n const pageTotal = generatePageTotal(totalItemsCount, itemsPerPage);\n\n if (activePage === 1) {\n activePageRange.first = 1;\n activePageRange.last =\n totalItemsCount > itemsPerPage ? itemsPerPage : totalItemsCount;\n } else if (activePage < pageTotal) {\n activePageRange.first = activePage * itemsPerPage - (itemsPerPage - 1);\n activePageRange.last = activePage * itemsPerPage;\n } else {\n activePageRange.first = activePage * itemsPerPage - (itemsPerPage - 1);\n activePageRange.last = totalItemsCount;\n }\n\n return activePageRange;\n};\n","import React, { FC, ReactNode, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../Box/Box';\nimport { Button } from '../Button/Button';\nimport {\n generatePages,\n generatePageRange,\n generatePageTotal,\n generateActiveListRange,\n} from './Pagination.utilities';\n\nexport interface PaginationProps {\n /**\n * The current page number being displayed.\n */\n activePage: number;\n /**\n * The number of list items contained in a page.\n */\n itemsPerPage: number;\n /**\n * Callback fired when the user clicks a page or prev/next button.\n */\n onChange: (pageNumber: number) => void;\n /**\n * The total number of items in the list\n */\n totalItemsCount: number;\n /**\n * Boolean to determine if individual page buttons (or dropdown are visible). Takes a `ResponsiveProp`\n * if you want to render it differently at different breakpoints\n */\n arePagesVisible?: boolean;\n /**\n * Custom class to pass down to the pagination container.\n */\n className?: string;\n /**\n * Pass true to render a version of Pagination with smaller buttons.\n */\n isCompact?: boolean;\n /**\n * Boolean to determine if the list totals (and current range) are visible.\n * NOTE: these are hidden on mobile regardless of this prop value.\n */\n isTotalVisible?: boolean;\n /**\n * The text (or react node) to pass to the NEXT page button.\n */\n nextPageText?: string | ReactNode;\n /**\n * Number of pages shown in paginator, not including navigation blocks (prev, next), as well as first, last pages.\n * In other words the number of pages displayed 'in the middle', that the user can navigate to.\n */\n numberOfPagesDisplayed?: number;\n /**\n * The text (or react node) to pass to the PREVIOUS page button.\n */\n prevPageText?: string | ReactNode;\n}\n\nexport const Pagination: FC<PaginationProps> = ({\n activePage,\n itemsPerPage,\n onChange,\n totalItemsCount,\n arePagesVisible = false,\n className = undefined,\n isCompact = false,\n isTotalVisible = true,\n nextPageText = 'Next',\n numberOfPagesDisplayed = 5,\n prevPageText = 'Previous',\n}) => {\n const pageTotal = useMemo(\n () => generatePageTotal(totalItemsCount, itemsPerPage),\n [totalItemsCount, itemsPerPage]\n );\n\n const pageRange = useMemo(\n () => generatePageRange(numberOfPagesDisplayed, pageTotal),\n [numberOfPagesDisplayed, pageTotal]\n );\n\n const activeListRange = useMemo(\n () => generateActiveListRange(activePage, totalItemsCount, itemsPerPage),\n [activePage, totalItemsCount, itemsPerPage]\n );\n\n const pages = useMemo(\n () =>\n generatePages(pageRange, pageTotal, activePage, numberOfPagesDisplayed),\n [pageRange, pageTotal, activePage, numberOfPagesDisplayed]\n );\n\n return (\n <Box\n as=\"nav\"\n direction=\"row\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n className={classNames(className)}\n >\n <Box\n direction=\"row\"\n justifyContent={{ base: 'space-between' }}\n flex={{ base: 'auto', tablet: 'none' }}\n gap={isCompact ? 'xs' : 'sm'}\n >\n <Button\n variant=\"secondary\"\n size={isCompact ? 'sm' : 'md'}\n isDisabled={activePage === 1}\n onClick={() => onChange(activePage - 1)}\n >\n {prevPageText}\n </Button>\n {arePagesVisible && (\n <Box direction=\"row\" gap=\"2xs\">\n {pages.map(({ pageNumber, isPage }) => {\n console.log(activePage, pageNumber, isPage);\n return (\n <Button\n key={pageNumber}\n onClick={() => onChange(pageNumber)}\n variant={pageNumber === activePage ? 'secondary' : 'tertiary'}\n size={isCompact ? 'sm' : 'md'}\n style={{\n minWidth: isCompact ? '33px' : '42px',\n }}\n className={className}\n >\n {isPage ? pageNumber : '...'}\n </Button>\n );\n })}\n </Box>\n )}\n <Button\n variant=\"secondary\"\n size={isCompact ? 'sm' : 'md'}\n isDisabled={activePage === pageTotal}\n onClick={() => onChange(activePage + 1)}\n >\n {nextPageText}\n </Button>\n </Box>\n <Box\n as=\"p\"\n display={{\n base: 'none',\n tablet: 'block',\n }}\n fontSize={isCompact ? 'sm' : 'md'}\n >\n {isTotalVisible &&\n `Showing ${activeListRange.first}-${activeListRange.last} of ${totalItemsCount}`}\n </Box>\n </Box>\n );\n};\n","import { useLayoutEffect, useEffect } from 'react';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n","import React, { useState, createContext } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../hooks/useIsomorphicLayoutEffect/useIsomorphicLayouEffect';\n\nexport interface ResponsiveContextShape {\n isCreated: boolean;\n innerWidth?: number;\n innerHeight?: number;\n outerWidth?: number;\n outerHeight?: number;\n}\n\nexport const ResponsiveContext = createContext<ResponsiveContextShape>({\n isCreated: false,\n});\n\nexport interface ResponsiveProviderProps {\n children?: React.ReactNode;\n /**\n * Time (in milliseconds) to delay execution of resize handler. Default is 50.\n */\n throttle?: number;\n}\n\nexport const ResponsiveProvider: React.FC<ResponsiveProviderProps> = ({\n children = null,\n throttle = 50,\n}) => {\n const [innerWidth, setInnerWidth] = useState(0);\n const [innerHeight, setInnerHeight] = useState(0);\n const [outerWidth, setOuterWidth] = useState(0);\n const [outerHeight, setOuterHeight] = useState(0);\n\n const handleWindowResize = () => {\n setInnerWidth(window?.innerWidth ?? 0);\n setInnerHeight(window?.innerHeight ?? 0);\n setOuterWidth(window?.outerWidth ?? 0);\n setOuterHeight(window?.outerHeight ?? 0);\n };\n\n useIsomorphicLayoutEffect(() => {\n // eslint-disable-line consistent-return\n if (typeof window !== 'undefined') {\n // Set values on render if window wasn't available for useState initialization.\n handleWindowResize();\n\n let timeoutId: any; // eslint-disable-line\n const throttledResize = () => {\n // prevent execution of previous setTimeout\n clearTimeout(timeoutId);\n // change width from the state object after throttle time has elapsed.\n timeoutId = setTimeout(handleWindowResize, throttle);\n };\n\n window.addEventListener('resize', throttledResize);\n\n return () => window.removeEventListener('resize', throttledResize);\n }\n }, [throttle]);\n\n return (\n <ResponsiveContext.Provider\n value={{\n innerWidth,\n innerHeight,\n outerHeight,\n outerWidth,\n isCreated: true,\n }}\n >\n {children}\n </ResponsiveContext.Provider>\n );\n};\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../../../Box/Box';\nimport styles from './TableBodyCell.module.scss';\n\nexport interface TableBodyCellProps {\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Children node to be rendered.\n */\n children?: ReactNode;\n /**\n * Custom class to be applied to `<tr>` element.\n */\n className?: string;\n /**\n * Remove borders around td elements.\n */\n isBorderless?: boolean;\n /**\n * Reduces padding inside table cells.\n */\n isCompact?: boolean;\n /**\n * Will stick to either the left or right side of a table during horizontal scroll.\n */\n sticky?: 'left' | 'right';\n /**\n * Truncates the cell contents based on width established by `Column`\n * NOTE: Truncate only on cells with primitive data types.\n */\n truncateOverflow?: boolean;\n /**\n * Placeholder for an empty cell, will be rendered when content is `null` `undefined`\n * or `''`. Placeholders will not be rendered on values of `0`.\n */\n emptyCellPlaceholder?: ReactNode;\n /**\n * Fixed width for a particular cell.\n * Value should be taken from column config so it matches its parent.\n */\n width?: number;\n}\n\nconst TableBodyCell: FC<TableBodyCellProps> = ({\n align = 'left',\n children = null,\n className = '',\n emptyCellPlaceholder = null,\n isBorderless = false,\n isCompact = false,\n sticky = undefined,\n truncateOverflow = false,\n width = undefined,\n}) => {\n const columnIsSticky = sticky === 'left' || sticky === 'right';\n const tableCellClasses = classNames(\n styles['table-cell'],\n {\n [styles.truncated]: truncateOverflow,\n [styles.compact]: isCompact,\n [styles.borderless]: isBorderless,\n [styles['sticky-column']]: columnIsSticky,\n [styles['sticky-column-left']]: sticky === 'left',\n [styles['sticky-column-right']]: sticky === 'right',\n [styles['align-right']]: align === 'right',\n [styles['align-center']]: align === 'center',\n },\n className\n );\n\n return (\n <Box\n as={columnIsSticky ? 'th' : 'td'}\n className={tableCellClasses}\n display=\"table-cell\"\n width={`${width}px`}\n style={{\n ...(width && { minWidth: `${width}px`, maxWidth: `${width}px` }),\n }}\n scope=\"row\"\n >\n {children === null || typeof children === 'undefined' || children === ''\n ? emptyCellPlaceholder\n : children}\n </Box>\n );\n};\n\nexport default TableBodyCell;\n","import React, { FC, Key, KeyboardEvent, MouseEvent, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport { Box } from '../../../Box/Box';\nimport { Icon } from '../../../Icon/Icon';\nimport { Column, EventWithColumnKey } from '../../../../types';\nimport styles from './TableHeaderCell.module.scss';\n\nexport interface TableHeaderCellProps {\n /**\n * Title to display for the column.\n */\n column: Column;\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Custom class to apply to the `<th>` element.\n */\n className?: string;\n /**\n * Key of corresponding data value in the table.\n */\n dataKey?: Key;\n /**\n * Remove borders around th elements.\n */\n isBorderless?: boolean;\n /**\n * Determines if table header cells should render as compact (less padding);\n */\n isCompact?: boolean;\n /**\n * If table scrolls vertically, header will remain stuck to the top of the table, and not scroll away.\n */\n hasStickyHeader?: boolean;\n /**\n * Boolean to mark if a column is sortable. This will show the sorting icons. Use\n * in conjunction with the `sortDirection` prop to determine which icon is shown.\n */\n isSortable?: boolean;\n /**\n * Callback function to execute when a sortable column's header is clicked.\n * Column can be sorted without providing an onSort method, it means that the arrows\n * will not be clickable, but they will still represent the sort state\n * of a column as determined by the `sortDirection` prop.\n */\n onSort?: (event: EventWithColumnKey) => void;\n /**\n * The key of the sorted column and its sort direction.\n */\n sortedColumn?: {\n dataKey: string | undefined;\n sortDirection: 'none' | 'ascending' | 'descending' | undefined;\n };\n /**\n * Will stick to either the left or right side of a table during horizontal scroll.\n */\n sticky?: 'left' | 'right';\n /**\n * Whether the text should be cut off with ellipsis if it exceeds the width of the column.\n */\n truncateOverflow?: boolean;\n /**\n * Width of the column, if using the `useFixedWidthColumns` prop is set to true.\n */\n width?: number;\n}\n\n// eslint-disable-line import/prefer-default-export\nexport const TableHeaderCell: FC<TableHeaderCellProps> = ({\n column,\n align = 'left',\n className = undefined,\n dataKey = undefined,\n isBorderless = false,\n isCompact = false,\n hasStickyHeader = false,\n isSortable = false,\n onSort = undefined,\n sortedColumn = undefined,\n sticky = undefined,\n truncateOverflow = false,\n width = undefined,\n}) => {\n const isColumnSorted = (columnDataKey: Key | undefined): boolean =>\n !!sortedColumn && sortedColumn.dataKey === columnDataKey;\n\n const getSortDirection = ():\n | 'ascending'\n | 'descending'\n | 'none'\n | undefined =>\n sortedColumn && isColumnSorted(column.dataKey)\n ? sortedColumn.sortDirection\n : 'none';\n\n const renderIcon = (): ReactNode => {\n const renderArrows = (): ReactNode => {\n if (getSortDirection() === 'ascending') {\n return (\n <Icon\n name=\"caret-sm-up\"\n data-testid=\"tableHeaderCellSortAsc-testid\"\n />\n );\n }\n if (getSortDirection() === 'descending') {\n return (\n <Icon\n name=\"caret-sm-down\"\n data-testid=\"tableHeaderCellSortDesc-testid\"\n />\n );\n }\n\n return (\n <Box\n display=\"inline-block\"\n width=\"12px\"\n height=\"12px\"\n aria-hidden=\"true\"\n data-testid=\"tableHeaderCellSortNone-testid\"\n />\n );\n };\n\n return <span className={styles['sort-icon']}>{renderArrows()}</span>;\n };\n\n const handleKeyPress = (\n event: KeyboardEvent<HTMLTableHeaderCellElement>\n ): void => {\n if (!onSort || !isSortable) return;\n\n const enterKey = 13;\n const spaceKey = 32;\n\n if (event.keyCode === enterKey || event.keyCode === spaceKey) {\n const eventWithKey: EventWithColumnKey = { ...event, sortedKey: dataKey };\n onSort(eventWithKey);\n }\n };\n\n const handleSort = (event: MouseEvent<HTMLTableHeaderCellElement>): void => {\n if (!onSort || !isSortable) return;\n\n const eventWithKey: EventWithColumnKey = { ...event, sortedKey: dataKey };\n onSort(eventWithKey);\n };\n\n const tableHeaderClasses = classNames(\n styles['table-header-cell'],\n {\n [styles.sortable]: isSortable,\n [styles.compact]: isCompact,\n [styles.truncated]: truncateOverflow,\n [styles.borderless]: isBorderless,\n [styles['sticky-header']]: hasStickyHeader,\n [styles['sticky-column']]: sticky === 'left' || sticky === 'right',\n [styles['sticky-column-left']]: sticky === 'left',\n [styles['sticky-column-right']]: sticky === 'right',\n [styles['align-right']]: align === 'right',\n [styles['align-center']]: align === 'center',\n },\n className\n );\n\n return (\n <Box\n as=\"th\"\n display=\"table-cell\"\n className={tableHeaderClasses}\n width={`${width}px`}\n aria-sort={\n sortedColumn && isColumnSorted(column.dataKey)\n ? sortedColumn.sortDirection\n : 'none'\n }\n tabIndex={isSortable ? 0 : undefined}\n onClick={handleSort}\n onKeyDown={handleKeyPress}\n scope=\"col\"\n >\n <div className={styles.heading}>\n {column.heading}\n {isSortable && renderIcon()}\n </div>\n </Box>\n );\n};\n","import React, { FC, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport styles from './TableRow.module.scss';\nimport { Column, EventWithColumnKey, Row } from '../../../../types';\nimport { getColumnKeys } from '../../../../lib/getColumnKeys';\nimport TableBodyCell from '../../TableBody/TableBodyCell/TableBodyCell';\nimport { TableHeaderCell } from '../../TableHead/TableHeaderCell/TableHeaderCell';\n\nexport interface TableRowProps {\n /**\n * The table columns to be rendered\n */\n columns: Column[];\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Custom class to be applied to `<tr>` element.\n */\n className?: string;\n /**\n * A global placeholder for empty cells. Note: can be overwriten by\n * the same attribute passed for an individual column config object.\n */\n emptyCellPlaceholder?: string | number | undefined;\n /**\n * Whether the table has borders or not.\n */\n isBorderless?: boolean;\n /**\n * Whether the table rows have smaller padding\n */\n isCompact?: boolean;\n /**\n * If table scrolls vertically, header will remain stuck to the top of the table, and not scroll away.\n */\n hasStickyHeader?: boolean;\n /**\n * Determine whether row is hoverable\n */\n isHoverable?: boolean;\n /**\n * Whether the row is inside the table head (thead).\n */\n isTableHead?: boolean;\n /**\n * Callback function to fire on sorting one of the table headers.\n */\n onSort?: (event: EventWithColumnKey) => void;\n /**\n * The specific row to be rendered.\n */\n row?: Row;\n /**\n * The unique key to identify a React node for each row.\n */\n rowIndex?: number;\n /**\n * The key of the sorted column and its sort direction.\n */\n sortedColumn?: {\n dataKey: string | undefined;\n sortDirection: 'none' | 'ascending' | 'descending' | undefined;\n };\n /**\n * Truncate overflow inside column based on column width. Can be overwritten on specific columns,\n * by passing `truncateOverflow` value on a specific Column\n */\n truncateOverflow?: boolean;\n}\n\nexport const TableRow: FC<TableRowProps> = ({\n columns,\n align = 'left',\n className = '',\n emptyCellPlaceholder = '',\n isBorderless = false,\n isCompact = false,\n hasStickyHeader = false,\n isHoverable = false,\n isTableHead = false,\n onSort = undefined,\n sortedColumn = undefined,\n row = undefined,\n rowIndex = undefined,\n truncateOverflow = false,\n}) => {\n const tableRowClasses = classNames(\n styles['table-row'],\n { [styles.hoverable]: isHoverable },\n className\n );\n\n const renderCellContent = (column: Column): ReactNode => {\n if (column.render) {\n const cellValue = column.dataKey && row ? row[column.dataKey] : undefined;\n return column.render(cellValue, row, rowIndex);\n }\n\n return column.dataKey && row ? row[column.dataKey] : null;\n };\n\n const getCellClassName = (column: Column): string | undefined => {\n if (column.cellClassName) {\n if (typeof column.cellClassName === 'function') {\n return column.cellClassName(column, row, rowIndex);\n }\n return column.cellClassName;\n }\n return undefined;\n };\n\n return (\n <tr className={tableRowClasses}>\n {Object.values(columns).map((column, columnIndex) =>\n isTableHead ? (\n <TableHeaderCell\n column={column}\n align={column.align || align}\n key={getColumnKeys(columns)[columnIndex]}\n dataKey={column.dataKey}\n className={column.headerClassName}\n isSortable={column.isSortable}\n onSort={onSort}\n isBorderless={isBorderless}\n isCompact={isCompact}\n sortedColumn={sortedColumn}\n truncateOverflow={column.truncateOverflow || truncateOverflow}\n width={column.width}\n hasStickyHeader={hasStickyHeader}\n sticky={column.sticky}\n />\n ) : (\n <TableBodyCell\n align={column.align || align}\n className={getCellClassName(column)}\n emptyCellPlaceholder={\n column.emptyCellPlaceholder || emptyCellPlaceholder\n }\n truncateOverflow={column.truncateOverflow || truncateOverflow}\n key={getColumnKeys(columns)[columnIndex]}\n isBorderless={isBorderless}\n isCompact={isCompact}\n width={column.width}\n sticky={column.sticky}\n >\n {renderCellContent(column)}\n </TableBodyCell>\n )\n )}\n </tr>\n );\n};\n","import React, { FC, Key } from 'react';\nimport classNames from 'classnames';\nimport styles from './TableBody.module.scss';\nimport { Column, Row } from '../../../types';\nimport { TableRow } from '../common/TableRow/TableRow';\n\nexport interface TableBodyProps {\n /**\n * The table columns to be rendered\n */\n columns: Column[];\n /**\n * The unique key to identify a React node for each row.\n */\n rowKey: Key;\n /**\n * The table rows to be rendered\n */\n rows: Row[];\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * A custom class to apply to the table body.\n */\n className?: string;\n /**\n * A global placeholder for empty cells. Note: can be overwriten by\n * the same attribute passed for an individual column config object.\n */\n emptyCellPlaceholder?: string | number | undefined;\n /**\n * Enable a hover state on table rows.\n */\n hoverableRows?: boolean;\n /**\n * Whether the table has borders or not.\n */\n isBorderless?: boolean;\n /**\n * Whether the table rows have smaller padding\n */\n isCompact?: boolean;\n /**\n * Whether the table rows have a striped pattern\n */\n isStriped?: boolean;\n /**\n * Truncate overflow inside column based on column width. Can be overwritten on specific columns,\n * by passing `truncateOverflow` value on a specific Column\n */\n truncateOverflow?: boolean;\n}\n\nexport const TableBody: FC<TableBodyProps> = ({\n columns,\n rowKey,\n rows,\n align = 'left',\n className = '',\n emptyCellPlaceholder = '',\n hoverableRows = false,\n isBorderless = false,\n isCompact = false,\n isStriped = false,\n truncateOverflow = false,\n}) => {\n const tableBodyClasses = classNames(\n styles['table-body'],\n {\n [styles.striped]: isStriped,\n [styles.hover]: hoverableRows,\n },\n className\n );\n\n return (\n <tbody className={tableBodyClasses}>\n {rows.map((row, rowIndex) => (\n <TableRow\n columns={columns}\n row={row}\n rowIndex={rowIndex}\n align={align}\n key={row[rowKey as any]}\n emptyCellPlaceholder={emptyCellPlaceholder}\n truncateOverflow={truncateOverflow}\n isBorderless={isBorderless}\n isCompact={isCompact}\n />\n ))}\n </tbody>\n );\n};\n","import React, { FC } from 'react';\nimport classNames from 'classnames';\nimport { Column, EventWithColumnKey } from '../../../types';\nimport { TableRow } from '../common/TableRow/TableRow';\n\nexport interface TableHeadProps {\n /**\n * The table columns to be rendered\n */\n columns: Column[];\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Custom class to be applied to the `<thead>` element.\n */\n className?: string;\n /**\n * Whether the table has borders or not.\n */\n isBorderless?: boolean;\n /**\n * Whether the table rows have smaller padding\n */\n isCompact?: boolean;\n /**\n * If table scrolls vertically, header will remain stuck to the top of the table, and not scroll away.\n */\n hasStickyHeader?: boolean;\n /**\n * Callback function to fire on sorting one of the table headers.\n */\n onSort?: (event: EventWithColumnKey) => void;\n /**\n * The key of the sorted column and its sort direction.\n */\n sortedColumn?: {\n dataKey: string | undefined;\n sortDirection: 'none' | 'ascending' | 'descending' | undefined;\n };\n /**\n * Truncate overflow inside column based on column width. Can be overwritten on specific columns,\n * by passing `truncateOverflow` value on a specific Column\n */\n truncateOverflow?: boolean;\n}\n\nexport const TableHead: FC<TableHeadProps> = ({\n columns,\n align = 'left',\n className = '',\n isBorderless = false,\n isCompact = false,\n hasStickyHeader = false,\n onSort = undefined,\n sortedColumn = undefined,\n truncateOverflow = false,\n}) => {\n const tableHeadClasses = classNames(className);\n\n return (\n <thead className={tableHeadClasses}>\n <TableRow\n columns={columns}\n align={align}\n isTableHead\n isBorderless={isBorderless}\n isCompact={isCompact}\n onSort={onSort}\n sortedColumn={sortedColumn}\n truncateOverflow={truncateOverflow}\n hasStickyHeader={hasStickyHeader}\n />\n </thead>\n );\n};\n","import React, { FC } from 'react';\nimport classNames from 'classnames';\nimport { Column, Row, EventWithColumnKey } from '../../types';\nimport { Spinner } from '../Spinner/Spinner';\nimport styles from './Table.module.scss';\nimport { TableBody } from './TableBody/TableBody';\nimport { TableHead } from './TableHead/TableHead';\n\nexport interface TableProps {\n /**\n * Columns for the table. See Column definition below for details.\n */\n columns: Column[];\n /**\n * The data rows to be displayed\n */\n rows: Row[];\n /**\n * Key that represents a unique value for a row. This is necessary in\n * order to supply React with a node key on each row.\n */\n rowKey: string;\n /**\n * Additional classes to add.\n */\n className?: string;\n /**\n * Text alignment for all table cells. Can be superseded by passing the same prop into the `Column` object\n * for a specific column.\n */\n align?: 'left' | 'right' | 'center';\n /**\n * Global placeholder for empty cells. Can be overwritten by setting the same attribute\n * in the `Column` config.\n */\n emptyCellPlaceholder?: string | number | undefined;\n /**\n * Enable a hover state on table rows.\n */\n hoverableRows?: boolean;\n /**\n * Remove borders around table, thead, tbody, td, etc.\n */\n isBorderless?: boolean;\n /**\n * Make Table more compact by cutting cell padding in half.\n */\n isCompact?: boolean;\n /**\n * If table scrolls vertically, header will remain stuck to the top of the table, and not scroll away.\n */\n hasStickyHeader?: boolean;\n /**\n * Set to true if data is loading.\n */\n isLoading?: boolean;\n /**\n * Set the maximum width and height and enable scrolling within the container when the table grows\n * past those values. Useful for when we want to render a large table but not force the parent container\n * to grow and instead make the user scroll. Set values to boolean `true` to enable `overflow: scroll` on the table\n * without specifying a width/height\n */\n isScrollable?: {\n x?: boolean;\n y?: boolean;\n };\n /**\n * Adds zebra-striping to any table row within the table body.\n */\n isStriped?: boolean;\n /**\n * Callback function to fire on sorting one of the table headers.\n */\n onSort?: (event: EventWithColumnKey) => void;\n /**\n * The key of the sorted column and its sort direction.\n */\n sortedColumn?: {\n dataKey: string | undefined;\n sortDirection: 'none' | 'ascending' | 'descending' | undefined;\n };\n /**\n * Control the `table-layout` css property for the table.\n */\n useFixedTableLayout?: boolean;\n /**\n * Truncate overflow inside column based on column width. Can be overwritten on specific columns,\n * by passing `truncateOverflow` value on a specific Column\n */\n truncateOverflow?: boolean;\n}\n\nexport const Table: FC<TableProps> = ({\n columns,\n rows,\n rowKey,\n align = 'left',\n className = undefined,\n emptyCellPlaceholder = undefined,\n hoverableRows = false,\n isBorderless = false,\n isCompact = false,\n hasStickyHeader = false,\n isLoading = false,\n isScrollable = undefined,\n isStriped = false,\n onSort = undefined,\n sortedColumn = undefined,\n useFixedTableLayout = false,\n truncateOverflow = false,\n}) => {\n const containerClasses = classNames(styles.container, {\n [styles['full-height']]: !!isScrollable?.y,\n });\n\n const scrollContainerClasses = classNames(\n styles['scroll-container'],\n {\n [styles.scrollable]: !!isScrollable?.x || !!isScrollable?.y,\n [styles['scrollable-x']]: !!isScrollable?.x,\n [styles['scrollable-y']]: !!isScrollable?.y,\n },\n className\n );\n\n const tableClasses = classNames(styles.table, {\n [styles.fixed]: useFixedTableLayout,\n [styles.striped]: isStriped,\n [styles.borderless]: isBorderless,\n [styles.compact]: isCompact,\n });\n\n return (\n <div className={containerClasses}>\n {isLoading && (\n <div className={styles['loading-mask']}>\n <Spinner size=\"xl\" />\n </div>\n )}\n <div\n className={scrollContainerClasses}\n data-testid=\"tableContainerDiv-testid\"\n >\n <table className={tableClasses}>\n <TableHead\n columns={columns}\n align={align}\n onSort={onSort}\n isBorderless={isBorderless}\n isCompact={isCompact}\n sortedColumn={sortedColumn}\n truncateOverflow={truncateOverflow}\n hasStickyHeader={hasStickyHeader}\n />\n <TableBody\n rows={rows}\n columns={columns}\n rowKey={rowKey}\n align={align}\n isStriped={isStriped}\n emptyCellPlaceholder={emptyCellPlaceholder}\n hoverableRows={hoverableRows}\n truncateOverflow={truncateOverflow}\n isBorderless={isBorderless}\n isCompact={isCompact}\n />\n </table>\n </div>\n </div>\n );\n};\n","import React, { createContext, useState, useEffect } from 'react';\n\nexport type Theme = 'dark' | 'light' | 'system';\n\ntype ThemeProviderProps = {\n children: React.ReactNode;\n defaultTheme?: Theme;\n storageKey?: string;\n};\n\ntype ThemeProviderState = {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n isDarkMode?: boolean;\n};\n\nconst initialState: ThemeProviderState = {\n theme: 'system',\n setTheme: () => null,\n};\n\nexport const ThemeProviderContext =\n createContext<ThemeProviderState>(initialState);\n\nexport function ThemeProvider({\n children,\n defaultTheme = 'system',\n storageKey = 'hyphen-ui-theme',\n ...props\n}: ThemeProviderProps) {\n const [theme, setTheme] = useState<Theme>(\n () => (localStorage.getItem(storageKey) as Theme) || defaultTheme\n );\n\n useEffect(() => {\n const root = window.document.documentElement;\n\n root.classList.remove('light', 'dark');\n\n if (theme === 'system') {\n const systemTheme = window.matchMedia('(prefers-color-scheme: dark)')\n .matches\n ? 'dark'\n : 'light';\n\n root.classList.add(systemTheme);\n return;\n }\n\n root.classList.add(theme);\n }, [theme]);\n\n const isDarkMode =\n theme === 'dark' ||\n (theme === 'system' &&\n window.matchMedia('(prefers-color-scheme: dark)').matches);\n\n const value = {\n theme,\n setTheme: (theme: Theme) => {\n localStorage.setItem(storageKey, theme);\n setTheme(theme);\n },\n isDarkMode,\n };\n\n return (\n <ThemeProviderContext.Provider {...props} value={value}>\n {children}\n </ThemeProviderContext.Provider>\n );\n}\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Toast, ToastPosition } from './Toast.types';\nimport { resolveValue } from '../../lib/resolveValue';\nimport { prefersReducedMotion } from '../../lib/prefersReducedMotion';\nimport { Box } from '../Box/Box';\nimport { Icon } from '../Icon/Icon';\nimport { Spinner } from '../Spinner/Spinner';\nimport { IconName, FontColor } from '../../types';\nimport styles from './ToastNotification.module.scss';\n\ninterface ToastNotificationProps {\n /**\n * Toast object\n */\n toast: Toast;\n /**\n * Custom position for toast (overrides global container toast position).\n */\n position?: ToastPosition;\n /**\n * Custom styles for toast.\n */\n style?: React.CSSProperties;\n /**\n * Render function to create custom toast notification.\n */\n children?: (components: { message: React.ReactNode }) => React.ReactNode;\n /**\n * Handler for when the dismiss button is pressed.\n */\n onDismiss?: () => void;\n}\n\nconst getAnimationClass = (\n position: ToastPosition,\n visible: boolean\n): React.CSSProperties | string => {\n const verticalPosition = position.includes('top') ? 'top' : 'bottom';\n const horizontalPosition = position.includes('left') ? 'left' : 'right';\n const isCentered = position.includes('center');\n\n const [enter, exit] = prefersReducedMotion()\n ? [\n styles['toast-notification-fade-in'],\n styles['toast-notification-fade-out'],\n ]\n : [\n styles[`toast-notification-enter-${verticalPosition}`],\n styles[\n `toast-notification-exit-${\n isCentered ? verticalPosition : horizontalPosition\n }`\n ],\n ];\n\n return visible ? enter : exit;\n};\n\nconst renderToastIcon = (toast: Toast) => {\n const { type } = toast;\n\n if (type === 'blank') return;\n\n let iconName: IconName = 'exclamation-mark';\n let iconColor: FontColor = 'base'; // dark\n\n if (type === 'success') {\n iconName = 'c-check';\n iconColor = 'success';\n }\n\n if (type === 'error') {\n iconName = 'c-warning';\n iconColor = 'white';\n }\n\n const icon =\n type !== 'loading' ? (\n <Icon name={iconName} color={iconColor} />\n ) : (\n <Spinner />\n );\n\n // eslint-disable-next-line consistent-return\n return (\n <Box justifyContent=\"center\" height=\"100\">\n {icon}\n </Box>\n );\n};\n\nconst renderDismissIcon = (\n toast: Toast,\n onDismiss: ToastNotificationProps['onDismiss']\n) => {\n if (!toast.canDismiss) return;\n\n // eslint-disable-next-line consistent-return\n return (\n <Box\n as=\"button\"\n borderWidth=\"0\"\n className={styles['toast-dismiss']}\n padding=\"0 0 0 sm\"\n alignItems=\"center\"\n justifyContent=\"center\"\n cursor=\"pointer\"\n background=\"transparent\" // transparent\n height=\"100\"\n onClick={onDismiss}\n aria-label=\"dismiss notification\"\n >\n <Icon name=\"remove\" />\n </Box>\n );\n};\n\n// eslint-disable-next-line import/prefer-default-export\nexport const ToastNotification: React.FC<ToastNotificationProps> = React.memo(\n ({ toast, position = 'top-center', style, children, onDismiss }) => {\n const message = (\n <Box\n direction=\"row\"\n justifyContent=\"center\"\n style={{\n flex: '1 1 auto',\n }}\n {...toast.ariaProps}\n >\n {resolveValue(toast.message, toast)}\n </Box>\n );\n\n const animationClass = toast?.height\n ? getAnimationClass(toast.position || position, toast.visible)\n : undefined;\n\n const classes = classNames(\n toast.className,\n styles['toast-notification'],\n animationClass,\n {\n 'toast-notification--not-visible': !toast.visible,\n [styles['toast-error']]: toast.type === 'error',\n }\n );\n\n return (\n <Box\n alignItems=\"center\"\n maxWidth=\"300px\"\n padding={toast.isCompact ? 'sm' : 'md'}\n direction=\"row\"\n className={classes}\n gap=\"sm\"\n style={{\n ...style,\n ...toast.style,\n ...(!toast.height && { opacity: 0 }),\n }}\n >\n {typeof children === 'function' ? (\n children({\n message,\n })\n ) : (\n <>\n {renderToastIcon(toast)}\n {message}\n {renderDismissIcon(toast, onDismiss)}\n </>\n )}\n </Box>\n );\n }\n);\n","import { useState, useEffect } from 'react';\nimport { Toast, ExtendedToastOptions, ToastType } from './Toast.types';\n\nconst TOAST_LIMIT = 20;\n\n// eslint-disable-next-line no-shadow\nexport enum ToastStoreActionType {\n ADD_TOAST = 'TOAST/ADD_TOAST',\n UPDATE_TOAST = 'TOAST/UPDATE_TOAST',\n UPSERT_TOAST = 'TOAST/UPSERT_TOAST',\n DISMISS_TOAST = 'TOAST/DISMISS_TOAST',\n REMOVE_TOAST = 'TOAST/REMOVE_TOAST',\n START_PAUSE = 'TOAST/START_PAUSE',\n END_PAUSE = 'TOAST/END_PAUSE',\n}\n\ntype GenericAction<\n TActionType extends PropertyKey,\n TPayload extends Record<string, unknown>\n> = {\n type: TActionType;\n payload: TPayload;\n};\n\ntype ToastStoreAction =\n | GenericAction<ToastStoreActionType.ADD_TOAST, { toast: Toast }>\n | GenericAction<ToastStoreActionType.UPSERT_TOAST, { toast: Toast }>\n | GenericAction<ToastStoreActionType.UPDATE_TOAST, { toast: Partial<Toast> }>\n | GenericAction<ToastStoreActionType.DISMISS_TOAST, { toastId?: string }>\n | GenericAction<ToastStoreActionType.REMOVE_TOAST, { toastId?: string }>\n | GenericAction<ToastStoreActionType.START_PAUSE, { time: number }>\n | GenericAction<ToastStoreActionType.END_PAUSE, { time: number }>;\n\ninterface ToastState {\n toasts: Toast[];\n pausedAt: number | undefined;\n}\n\nconst toastTimeouts = new Map<Toast['id'], ReturnType<typeof setTimeout>>();\n\nconst addToDismissedQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n // eslint-disable-line\n type: ToastStoreActionType.REMOVE_TOAST,\n payload: { toastId },\n });\n }, 1000);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nconst clearFromDismissedQueue = (toastId: string) => {\n const timeout = toastTimeouts.get(toastId);\n if (timeout) {\n clearTimeout(timeout);\n }\n};\n\ntype ReducerCallback<TState, TAction> = (\n state: TState,\n action: TAction\n) => TState;\ntype HandlerMap<\n TActionTypes extends PropertyKey,\n TAction extends GenericAction<TActionTypes, Record<string, unknown>>,\n TState\n> = {\n [action in TActionTypes]: ReducerCallback<TState, TAction>;\n};\ntype ToastStoreHandlerMap = HandlerMap<\n ToastStoreActionType,\n ToastStoreAction,\n ToastState\n>;\n\nconst createReducer =\n <\n TActionTypes extends PropertyKey,\n TAction extends GenericAction<TActionTypes, Record<string, unknown>>,\n TState,\n THandlers extends HandlerMap<TActionTypes, TAction, TState>\n >(\n initialState: TState,\n handlers: THandlers\n ) =>\n (state: TState = initialState, action: TAction) => {\n if (handlers.hasOwnProperty(action.type)) {\n // eslint-disable-line\n return handlers[action.type](state, action);\n }\n\n return state;\n };\n\ntype ToastStoreHandler = ReducerCallback<ToastState, ToastStoreAction>;\n\nconst handleAddToast: ToastStoreHandler = (state, action) => {\n if (!('toast' in action.payload)) return state;\n\n const { toast } = action.payload;\n\n return {\n ...state,\n toasts: [toast as Toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n};\n\nconst handleUpdateToast: ToastStoreHandler = (state, action) => {\n const { toast } = action.payload as { toast: Toast };\n\n // @TODO -- Side effects\n if (toast.id) {\n clearFromDismissedQueue(toast.id);\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toast.id ? { ...t, ...toast } : t\n ), // eslint-disable-line\n };\n};\n\nconst handleUpsertToast: ToastStoreHandler = (state, action) => {\n const { toast } = action.payload as { toast: Toast };\n\n // @TODO -- refactor to avoid using recursive function before 'reducer is declared'\n return state.toasts.find((t) => t.id === toast.id)\n ? reducer(state, {\n type: ToastStoreActionType.UPDATE_TOAST,\n payload: { toast },\n }) // eslint-disable-line\n : reducer(state, {\n type: ToastStoreActionType.ADD_TOAST,\n payload: { toast } as { toast: Toast },\n }); // eslint-disable-line\n};\n\nconst handleDismissToast: ToastStoreHandler = (state, action) => {\n const { toastId } = action.payload as { toastId: string };\n\n if (toastId) {\n addToDismissedQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToDismissedQueue(toast.id);\n });\n }\n\n return {\n ...state,\n // eslint-disable-next-line no-confusing-arrow\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined ? { ...t, visible: false } : t\n ),\n };\n};\n\nconst handleRemoveToast: ToastStoreHandler = (state, action) => {\n const { toastId } = action.payload as { toastId: string };\n\n if (toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== toastId),\n };\n};\n\nconst handleStartPause: ToastStoreHandler = (state, action) => {\n const { time } = action.payload as { time: number };\n\n return {\n ...state,\n pausedAt: time,\n };\n};\n\nconst handleEndPause: ToastStoreHandler = (state, action) => {\n const { time } = action.payload as { time: number };\n\n const diff = time - (state.pausedAt || 0);\n\n return {\n ...state,\n pausedAt: undefined,\n toasts: state.toasts.map((t) => ({\n ...t,\n pauseDuration: t.pauseDuration + diff,\n })),\n };\n};\n\nconst actionHandlers: ToastStoreHandlerMap = {\n [ToastStoreActionType.ADD_TOAST]: handleAddToast,\n [ToastStoreActionType.UPDATE_TOAST]: handleUpdateToast,\n [ToastStoreActionType.UPSERT_TOAST]: handleUpsertToast,\n [ToastStoreActionType.DISMISS_TOAST]: handleDismissToast,\n [ToastStoreActionType.REMOVE_TOAST]: handleRemoveToast,\n [ToastStoreActionType.START_PAUSE]: handleStartPause,\n [ToastStoreActionType.END_PAUSE]: handleEndPause,\n};\n\nconst toastReducer = createReducer<\n ToastStoreActionType,\n ToastStoreAction,\n ToastState,\n ToastStoreHandlerMap\n>({ toasts: [], pausedAt: undefined }, actionHandlers);\n\nconst reducer = (state: ToastState, action: ToastStoreAction) =>\n toastReducer(state, action);\n\nconst listeners: Array<(state: ToastState) => void> = [];\n\nlet memoryState: ToastState = { toasts: [], pausedAt: undefined };\n\nexport const dispatch = (action: ToastStoreAction): void => {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n};\n\nconst defaultTimeouts: {\n [key in ToastType]: number;\n} = {\n blank: 4000,\n error: 4000,\n success: 2000,\n loading: Infinity,\n custom: 4000,\n};\n\nexport const useToastStore = (\n toastOptions: ExtendedToastOptions = {}\n): ToastState => {\n const [state, setState] = useState<ToastState>(memoryState);\n useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n const mergedToasts = state.toasts.map((t) => ({\n ...toastOptions,\n ...toastOptions[t.type],\n ...t,\n duration:\n t.duration ||\n toastOptions[t.type]?.duration ||\n toastOptions?.duration ||\n defaultTimeouts[t.type],\n style: {\n ...toastOptions.style,\n ...toastOptions[t.type]?.style,\n ...t.style,\n },\n }));\n\n return {\n ...state,\n toasts: mergedToasts,\n };\n};\n","import React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { resolveValue } from '../../lib/resolveValue';\nimport { ValueOrFunction } from '../../types';\nimport {\n Toast,\n ToastOptions,\n ToastType,\n ExtendedToastOptions,\n} from './Toast.types';\nimport { ToastStoreActionType, dispatch } from './Toast.store';\n\ntype Message = ValueOrFunction<React.ReactNode, Toast>;\n\ntype ToastHandler = (message: Message, options?: ToastOptions) => string;\n\nconst createToast = (\n message: Message,\n type: ToastType,\n opts?: ToastOptions\n): Toast => ({\n createdAt: Date.now(),\n visible: true,\n type,\n ariaProps: {\n role: 'status',\n 'aria-live': 'polite',\n },\n message,\n pauseDuration: 0,\n ...opts,\n id: opts?.id || uuidv4(),\n canDismiss: type !== 'loading' && opts?.canDismiss !== false,\n});\n\nconst createHandler =\n (type: ToastType): ToastHandler =>\n (message, options) => {\n const toast = createToast(message, type, options);\n\n dispatch({\n type: ToastStoreActionType.UPSERT_TOAST,\n payload: { toast },\n });\n return toast.id;\n };\n\n// eslint-disable-next-line\nconst toast = (message: Message, opts?: ToastOptions) =>\n createHandler('blank')(message, opts);\n\ntoast.error = createHandler('error');\ntoast.success = createHandler('success');\ntoast.loading = createHandler('loading');\ntoast.custom = createHandler('custom');\n\ntoast.dismiss = (toastId?: string) => {\n dispatch({\n type: ToastStoreActionType.DISMISS_TOAST,\n payload: { toastId },\n });\n};\n\ntoast.remove = (toastId?: string) =>\n dispatch({\n type: ToastStoreActionType.REMOVE_TOAST,\n payload: { toastId },\n });\n\n// eslint-disable-next-line func-names\ntoast.async = function <T>(\n promise: Promise<T>,\n messages: {\n loading: React.ReactNode;\n success: ValueOrFunction<React.ReactNode, T>;\n error: ValueOrFunction<React.ReactNode, unknown>;\n },\n opts?: ExtendedToastOptions\n) {\n const id = toast.loading(messages.loading, { ...opts, ...opts?.loading });\n\n promise\n .then((data) => {\n toast.success(resolveValue(messages.success, data), {\n id,\n ...opts,\n ...opts?.success,\n });\n return data;\n })\n .catch((err) => {\n toast.error(resolveValue(messages.error, err), {\n id,\n ...opts,\n ...opts?.error,\n });\n });\n\n return promise;\n};\n\nexport { toast }; // eslint-disable-line import/prefer-default-export\n","import { useEffect, useMemo } from 'react';\nimport { ExtendedToastOptions, Toast, ToastPosition } from './Toast.types';\nimport { useToastStore, dispatch, ToastStoreActionType } from './Toast.store';\nimport { toast } from './toast';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useToasts = (toastOptions?: ExtendedToastOptions) => {\n // eslint-disable-line import/prefer-default-export\n const { toasts, pausedAt } = useToastStore(toastOptions);\n\n useEffect(() => {\n if (pausedAt) {\n return;\n }\n\n const now = Date.now();\n const timeouts = toasts.map((t) => {\n if (t.duration === Infinity) {\n return undefined;\n }\n\n const durationLeft =\n (t.duration || 0) + t.pauseDuration - (now - t.createdAt);\n\n if (durationLeft < 0) {\n if (t.visible) {\n toast.dismiss(t.id);\n }\n return undefined;\n }\n return setTimeout(() => toast.dismiss(t.id), durationLeft); // eslint-disable-line consistent-return\n });\n\n return () => {\n // eslint-disable-line consistent-return\n timeouts.forEach((timeout) => timeout && clearTimeout(timeout));\n };\n }, [toasts, pausedAt]);\n\n const handlers = useMemo(\n () => ({\n startPause: () => {\n dispatch({\n type: ToastStoreActionType.START_PAUSE,\n payload: { time: Date.now() },\n });\n },\n endPause: () => {\n if (pausedAt) {\n dispatch({\n type: ToastStoreActionType.END_PAUSE,\n payload: { time: Date.now() },\n });\n }\n },\n updateHeight: (toastId: string, height: number) => {\n if (toasts.find((t) => t.id === toastId)?.height === height) {\n return;\n }\n dispatch({\n type: ToastStoreActionType.UPDATE_TOAST,\n payload: { toast: { id: toastId, height } },\n });\n },\n calculateOffset: (\n currentToast: Toast,\n opts: {\n reverseOrder: boolean;\n gutter: number;\n defaultPosition?: ToastPosition;\n }\n ) => {\n const { reverseOrder, gutter, defaultPosition } = opts || {};\n\n const relevantToasts = toasts.filter(\n (t) =>\n (t.position || defaultPosition) ===\n (currentToast.position || defaultPosition) && t.height\n );\n const toastIndex = relevantToasts.findIndex(\n (t) => t.id === currentToast.id\n );\n const toastsBefore = relevantToasts.filter(\n (t, i) => i < toastIndex && t.visible\n ).length;\n\n const offset = relevantToasts\n .filter((t) => t.visible)\n .slice(...(reverseOrder ? [toastsBefore + 1] : [0, toastsBefore]))\n .reduce((acc, t) => acc + (t.height || 0) + gutter, 0);\n\n return offset;\n },\n }),\n [toasts, pausedAt]\n );\n\n return {\n toasts,\n handlers,\n };\n};\n","import React from 'react';\nimport { prefersReducedMotion } from '../../lib/prefersReducedMotion';\nimport { resolveValue } from '../../lib/resolveValue';\nimport { Box } from '../Box/Box';\nimport { Toast, ToastPosition, ExtendedToastOptions } from './Toast.types';\nimport { ToastNotification } from './ToastNotification';\nimport { useToasts } from './useToasts';\nimport { toast } from './toast';\n\nexport const createRectRef =\n (onRect: (rect: DOMRect) => void) =>\n (el: HTMLElement | null): void => {\n if (el) {\n const boundingRect = el.getBoundingClientRect();\n onRect(boundingRect);\n }\n };\n\nconst getPositionStyle = (\n position: ToastPosition,\n offset: number\n): React.CSSProperties => {\n const top = position.includes('top');\n const verticalStyle: React.CSSProperties = top ? { top: 0 } : { bottom: 0 };\n const horizontalStyle = {\n ...(position.includes('center') && { justifyContent: 'center' }),\n ...(!position.includes('center') &&\n position.includes('right') && { justifyContent: 'flex-end' }),\n };\n return {\n left: 0,\n right: 0,\n display: 'flex',\n position: 'absolute',\n transition: prefersReducedMotion()\n ? undefined\n : 'all 230ms cubic-bezier(.21,1.02,.73,1)',\n transform: `translateY(${offset * (top ? 1 : -1)}px)`,\n ...verticalStyle,\n ...horizontalStyle,\n };\n};\n\nexport interface ToastContainerProps {\n /**\n * Render function for each individual toast.\n * This can be used to render custom toasts, although we recommend using the standard version,\n * unless absolutely necessary.\n */\n children?: (t: Toast) => JSX.Element;\n /**\n * Style object for the toast container if needed.\n */\n containerStyle?: React.CSSProperties;\n /**\n * Custom classname for toast container if needed.\n */\n containerClassName?: string;\n /**\n * The vertical gap between each toast notification when multiple toasts are on screen (in pixels).\n */\n gutter?: number;\n /**\n * Global position for all toasts in container.\n * NOTE: This can be overwritten by the position property of each individual toast.\n */\n position?: ToastPosition;\n /**\n * Display toasts in reverse order.\n * NOTE: Reverse order in this case means that older toasts remain close to the position origin.\n * and newer toasts appear further away from the origin.\n */\n reverseOrder?: boolean;\n /**\n * Global options for each toast. Can be overwritten for each individual toast as needed.\n */\n toastOptions?: ExtendedToastOptions;\n /**\n * Props spread into main container.\n */\n [x: string]: unknown; // eslint-disable-line\n}\n\nconst DEFAULT_OFFSET = 16;\n\nconst renderNotification = (\n currentToast: Toast,\n children: ((t: Toast) => JSX.Element) | undefined,\n containerPosition: ToastContainerProps['position']\n) => {\n const toastPosition = currentToast.position || containerPosition;\n\n if (currentToast.type === 'custom') {\n return resolveValue(currentToast.message, currentToast);\n }\n\n if (children) {\n return children(currentToast);\n }\n\n return (\n <ToastNotification\n toast={currentToast}\n position={toastPosition}\n onDismiss={() => toast.dismiss(currentToast.id)}\n />\n );\n};\n\nexport const ToastContainer: React.FC<ToastContainerProps> = ({\n children = undefined,\n containerStyle = undefined,\n containerClassName = undefined,\n gutter = 8,\n position = 'top-center',\n reverseOrder = false,\n toastOptions,\n ...restProps\n}) => {\n const { toasts, handlers } = useToasts(toastOptions);\n\n return (\n <Box\n style={{\n top: DEFAULT_OFFSET,\n left: DEFAULT_OFFSET,\n right: DEFAULT_OFFSET,\n bottom: DEFAULT_OFFSET,\n pointerEvents: 'none', // ensure background elements are clickable\n ...containerStyle,\n }}\n position=\"fixed\"\n zIndex=\"popover\"\n className={containerClassName}\n onMouseEnter={handlers.startPause}\n onMouseLeave={handlers.endPause}\n {...restProps}\n >\n {toasts.map((t) => {\n const toastPosition = t.position || position;\n const offset = handlers.calculateOffset(t, {\n reverseOrder,\n gutter,\n defaultPosition: position,\n });\n const positionStyle = getPositionStyle(toastPosition, offset);\n\n const ref = t.height\n ? undefined\n : createRectRef((rect) => {\n handlers.updateHeight(t.id, rect.height);\n });\n\n return (\n <Box\n ref={ref}\n zIndex={t.visible ? 'popover' : undefined}\n key={t.id}\n style={{\n ...positionStyle,\n }}\n display=\"block\"\n >\n {renderNotification(t, children, position)}\n </Box>\n );\n })}\n </Box>\n );\n};\n","import React from 'react';\nimport { ResponsiveContext } from '../../components/ResponsiveProvider/ResponsiveProvider';\n\nexport interface HookWindowSize {\n innerWidth?: number;\n innerHeight?: number;\n outerWidth?: number;\n outerHeight?: number;\n}\nexport const useWindowSize = (): HookWindowSize => {\n const { innerWidth, innerHeight, outerHeight, outerWidth, isCreated } =\n React.useContext(ResponsiveContext);\n\n if (isCreated) {\n return {\n innerHeight,\n innerWidth,\n outerHeight,\n outerWidth,\n };\n }\n\n return {};\n};\n","import { useState } from 'react';\nimport { BREAKPOINTS } from '../../lib/tokens';\nimport { Breakpoint } from '../../types';\nimport { useWindowSize } from '../useWindowSize/useWindowSize';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect/useIsomorphicLayouEffect';\n\nconst defaultBreakpoint: Breakpoint = { name: 'base', minWidth: 0 };\n\nexport interface BreakpointState {\n isPhone: boolean;\n isTablet: boolean;\n isDesktop: boolean;\n isHd: boolean;\n activeBreakpoint: Breakpoint;\n}\n\nexport const useBreakpoint = (): BreakpointState => {\n const windowSize = useWindowSize();\n\n const [breakpoint, setBreakpoint] = useState<Breakpoint>({\n ...defaultBreakpoint,\n });\n\n useIsomorphicLayoutEffect(() => {\n const sortedBreakpoints = [...BREAKPOINTS].sort(\n (a, b) => b.minWidth - a.minWidth\n );\n const activeBreakpoint =\n windowSize &&\n sortedBreakpoints.find(\n (b) => b.minWidth <= (windowSize.innerWidth as number)\n );\n\n setBreakpoint(activeBreakpoint || { ...defaultBreakpoint });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n windowSize.innerWidth,\n windowSize.innerHeight,\n windowSize.outerWidth,\n windowSize.outerHeight,\n ]);\n\n return {\n isPhone: breakpoint.name === 'base',\n isTablet: breakpoint.name === 'tablet',\n isDesktop: breakpoint.name === 'desktop',\n isHd: breakpoint.name === 'hd',\n activeBreakpoint: breakpoint,\n };\n};\n","import { useCallback, useState } from 'react';\n\nexport interface UseOpenCloseProps {\n /**\n * Initial visibility of the component\n */\n defaultIsOpen?: boolean;\n /**\n * If defined, visibility of the component is assumed to be controlled\n */\n isOpen?: boolean;\n /**\n * Callback function when component is closed\n * @returns void\n */\n onClose?: () => void;\n /**\n * Callback function when component is opened\n * @returns void\n */\n onOpen?: () => void;\n}\n\nexport interface UseOpenCloseState {\n /**\n * If true, sets the controlled component to its visible state\n */\n isOpen: boolean;\n /**\n * Callback function to set a falsy value for the `isOpen` parameter.\n */\n handleClose: () => void;\n /**\n * Callback function to set a truthy value for the `isOpen` parameter.\n */\n handleOpen: () => void;\n /**\n * Callback function to toggle the value of the `isOpen` parameter.\n */\n handleToggle: () => void;\n}\n\nexport const useOpenClose = (\n props: UseOpenCloseProps = {}\n): UseOpenCloseState => {\n const {\n defaultIsOpen,\n isOpen: isOpenProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n } = props;\n\n const openCallback = useCallback(() => {\n onOpenProp?.();\n }, [onOpenProp]);\n\n const closeCallback = useCallback(() => {\n onCloseProp?.();\n }, [onCloseProp]);\n\n const [isOpenState, setIsOpen] = useState(defaultIsOpen || false);\n\n const isOpen = isOpenProp !== undefined ? isOpenProp : isOpenState;\n\n const isControlled = isOpenProp !== undefined;\n\n const handleClose = useCallback(() => {\n if (!isControlled) {\n setIsOpen(false);\n }\n closeCallback?.();\n }, [isControlled, closeCallback]);\n\n const handleOpen = useCallback(() => {\n if (!isControlled) {\n setIsOpen(true);\n }\n openCallback?.();\n }, [isControlled, openCallback]);\n\n const handleToggle = useCallback(() => {\n if (isOpen) {\n handleClose();\n } else {\n handleOpen();\n }\n }, [isOpen, handleOpen, handleClose]);\n\n return {\n isOpen,\n handleClose,\n handleOpen,\n handleToggle,\n };\n};\n","import React from 'react';\nimport { ThemeProviderContext } from '../../components/ThemeProvider/ThemeProvider';\n\nexport const useTheme = () => {\n const context = React.useContext(ThemeProviderContext);\n if (context === undefined)\n throw new Error(\n 'useTheme must be used within a ThemeProvider. Be sure your App is wrapped in ThemeProvider.'\n );\n return context;\n};\n"],"names":["isValidSpacingValue","value","undefined","generateBaseClasses","attribute","trimmedValue","trim","console","warn","classes","shorthand","includes","split","length","sides","trimmedSides","slice","forEach","v","index","push","cssShorthandToClasses","Object","keys","key","baseClasses","responsiveClasses","map","baseClass","apply","generateResponsiveClasses","classRoot","responsiveClass","doesStringIncludeCssUnit","cssUnits","some","unit","getDimensionStyles","dimension","styles","height","maxWidth","maxHeight","minWidth","minHeight","width","getDimensionClasses","values","every","getDimensionCss","getElementType","Component","props","getDefault","_Component$defaultPro","defaultProps","as","computedDefault","href","Box","forwardRef","_ref","ref","_ref3","_ref$as","_ref$alignItems","alignItems","_ref$alignContent","alignContent","_ref$alignSelf","alignSelf","_ref$background","background","_ref$borderColor","borderColor","_ref$borderWidth","borderWidth","_ref$children","children","_ref$childGap","childGap","_ref$className","className","_ref$color","color","_ref$columnGap","columnGap","_ref$cursor","cursor","_ref$display","display","_ref$direction","direction","_ref$flex","flex","_ref$fontFamily","fontFamily","_ref$fontSize","fontSize","_ref$focus","focus","_ref$fontWeight","fontWeight","_ref$gap","gap","_ref$height","_ref$hover","hover","_ref$justifyContent","justifyContent","_ref$margin","margin","_ref$maxHeight","_ref$minHeight","_ref$maxWidth","_ref$minWidth","_ref$overflow","overflow","_ref$padding","padding","_ref$position","position","_ref$radius","radius","_ref$rowGap","rowGap","_ref$shadow","shadow","_ref$style","style","_ref$textAlign","textAlign","_ref$wrap","wrap","_ref$width","_ref$zIndex","zIndex","restProps","_objectWithoutPropertiesLoose","_excluded","heightCss","widthCss","maxHeightCss","maxWidthCss","minHeightCss","minWidthCss","isFlexBox","flexDirectionClasses","cssPropertyMap","classPrefix","transformer","getStatefulClasses","stateKey","entries","_ref2","hoverClasses","focusClasses","boxClasses","classNames","concat","boxStyles","_extends","generateChildGapDirection","childGapDirection","getChildGapMarginDirection","d","marginDirection","base","reduce","acc","curr","_extends2","generateChildGap","childGapObj","childGapClasses","childGapValues","breakpoints","findMatchingBreakpoint","responsiveObj","findIndex","breakpoint","foundDirection","foundChildGap","classSuffix","oppositeDirection","decorateChildren","child","i","array","_child$key","childClasses","Array","from","Set","cloneElement","decoratedChildren","Children","toArray","filter","element","createElement","boxPropsKeys","Icon","name","size","IconComponent","icons","error","iconClasses","React","ALERT_ICONS_MAP","icon","info","success","warning","danger","Alert","_ref$closeText","closeText","_ref$hasIcon","hasIcon","_ref$isCompact","isCompact","_ref$isClosable","isClosable","_ref$message","message","_ref$onClose","onClose","_ref$render","render","_ref$title","title","_ref$variant","variant","handleClose","event","renderAlertIcon","renderCloseIcon","handleCloseKeyPress","keyCode","type","onClick","onKeyUp","alertContainerClasses","alert","role","Badge","_classNames","_ref$size","c","badgeClasses","badge","Spinner","spinner","sizeInPixels","pixels","xmlns","viewBox","fill","rx","x","y","opacity","transform","isModifiedEvent","e","metaKey","altKey","ctrlKey","shiftKey","handleReactRouterClick","target","navigate","defaultPrevented","button","preventDefault","Button","_ref$fullWidth","fullWidth","_ref$id","id","_ref$href","_ref$iconPrefix","iconPrefix","_ref$iconSuffix","iconSuffix","_ref$isDisabled","isDisabled","_ref$isLoading","isLoading","_ref$navigate","_ref$onClick","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$tabIndex","tabIndex","_ref$target","_ref$type","disabled","buttonClasses","loading","handleClick","handleFocus","handleBlur","buttonContent","label","focusable","Fragment","buttonElement","CardFooter","HEADING_DEFAULT_SIZE_MAP","h1","h2","h3","h4","h5","h6","Heading","headingSize","heading","CardHeader","renderTitle","CardSection","_ref$subdued","subdued","sectionClasses","CardBaseComponent","Card","Header","Section","Footer","CheckboxIcon","_ref$error","_ref$isChecked","isChecked","_ref$isIndeterminate","isIndeterminate","Checkbox","labelledby","onChange","_ref$isHidden","isHidden","_ref$isRequired","isRequired","_ref$value","inputRef","useRef","useEffect","current","indeterminate","handleChange","inputProps","checked","required","containerClasses","checkbox","hidden","InputValidationMessage","HelpText","FormLabel","inputId","helpText","_ref$isFieldRequired","isFieldRequired","_ref$isRadioInputLabe","isRadioInputLabel","_ref$requiredIndicato","requiredIndicator","labelClasses","htmlFor","labelMarginSizeMap","sm","md","lg","computedResponsiveSize","CheckboxInput","_ref2$className","_ref2$error","_ref2$hideLabel","hideLabel","_ref2$isDisabled","_ref2$isIndeterminate","_ref2$isRequired","_ref2$onBlur","_ref2$onFocus","_ref2$requiredIndicat","_ref2$size","checkboxProps","labelProps","DatePicker","_ref$dayClassName","dayClassName","_ref$maxDate","maxDate","_ref$minDate","minDate","_ref$monthsShown","monthsShown","_ref$openToDate","openToDate","_ref$startDate","startDate","_ref$selected","selected","_ref$selectsRange","selectsRange","_ref$showTwoColumnMon","showTwoColumnMonthYearPicker","_ref$showFullMonthYea","showFullMonthYearPicker","_ref$showMonthYearPic","showMonthYearPicker","_ref$formatWeekDay","formatWeekDay","formattedDate","datePickerClasses","ReactDatePicker","inline","calendarClassName","FormControl","getAutoCompleteValue","TextInput","_ref$autoComplete","autoComplete","_ref$autoFocus","autoFocus","_ref$hideLabel","_ref$inputProps","_ref$maxLength","maxLength","_ref$name","_ref$onClear","onClear","_ref$prefix","prefix","_ref$placeholder","placeholder","_ref$suffix","suffix","inputWrapperClasses","clearBtnClasses","renderClearIcon","handleKeyPress","computedInputProps","getColumnKeys","columns","INTERNAL_KEY_PREFIX","columnKeys","column","dataKey","shapedDataKey","join","mergedKey","isFunction","valOrFunction","mergeRefs","refs","prefersReducedMotion","shouldReduceMotion","_window","mediaQuery","window","matchMedia","matches","resolveValue","arg","BREAKPOINTS","designTokens","data","parseInt","Z_INDEX_VALUES","contentContainerDefaults","Popover","isOpen","content","_ref$arrowColor","arrowColor","_ref$contentContainer","contentContainerProps","_ref$hasArrow","hasArrow","_ref$offsetFromTarget","offsetFromTarget","_ref$onClickOutside","onClickOutside","_ref$placement","placement","_ref$withPortal","withPortal","portalTarget","_ref$trapFocus","trapFocus","triggerRef","popperRef","_useState","useState","arrowElement","setArrowElement","handleClickOutside","popover","trigger","contains","handleKeyUp","document","body","addEventListener","removeEventListener","_usePopper","usePopper","modifiers","options","offset","popperStyles","attributes","containerBoxProps","computedArrowColor","arrowClasses","renderPopperContent","renderPopperBox","popper","arrow","FocusTrap","active","focusTrapOptions","clickOutsideDeactivates","childrenWithRef","childProps","isValidElement","createPortal","defaultDatePickerProps","defaultPopoverProps","defaultTextInputProps","DateInput","datePickerProps","textInputProps","_ref$dateFormat","dateFormat","_ref$dateOptions","dateOptions","_ref$popoverProps","popoverProps","mergedDatePickerProps","mergedPopoverProps","mergedTextInputProps","getTextInputValue","endDate","formattedStartDate","format","formattedEndDate","formattedSelectedDate","isPopoverOpen","setPopoverOpen","handleTogglePopover","newPopoverOpenState","handleDatePickerChange","date","handleOnClickOutside","classList","renderDatePicker","readOnly","ENTER","SPACE","DetailsSummary","isDetailsOpen","onToggle","handleKeyDown","indexOf","onKeyDown","DetailsBaseComponent","detailsClasses","details","open","Details","Summary","Drawer","_dynamicStyle","_classNames2","_ref$ariaLabel","ariaLabel","_ref$ariaLabelledBy","ariaLabelledBy","_ref$allowPinchZoom","allowPinchZoom","_ref$closeButton","closeButton","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$containerRef","containerRef","_ref$dangerouslyBypas","dangerouslyBypassFocusLock","_ref$dangerouslyBypas2","dangerouslyBypassScrollLock","_ref$hideOverlay","hideOverlay","_ref$initialFocusRef","initialFocusRef","_ref$onDismiss","onDismiss","activateFocusLock","useCallback","setTimeout","dynamicWidth","dynamicStyle","overlayClassnames","overlay","drawer","contentClassnames","renderHeader","parentElement","isDisabledFocusLock","isDisabledRemoveScroll","FocusLock","returnFocus","onActivation","RemoveScroll","enabled","ReactModal","overlayClassName","onRequestClose","ariaHideApp","parentSelector","FormikCheckboxInput","_ref$field","field","formikOnChange","_ref$form","form","touched","errors","getIn","RadioInputIcon","_ref$isSelected","isSelected","RadioInput","option","RadioGroup","_ref$description","description","groupClasses","fieldset","legend","FormikRadioGroup","SelectInput","_ref$isClearable","isClearable","_ref$isMulti","isMulti","_ref$menuPortalTarget","menuPortalTarget","simulatedEventPayloadType","wrapperClasses","inputClasses","ClearIndicator","components","Select","classNamePrefix","menuPortal","Number","FormikSelectInput","SelectInputInset","placeholderOption","optionsWithPlaceholder","FormikSelectInputInset","TextareaInputInset","_ref$resize","resize","_ref$rows","rows","FormikTextareaInputInset","TextInputInset","FormikTextInputInset","SelectInputNative","selectWrapperClasses","FormikSelectInputNative","FormikTextInput","TextareaInput","FormikTextareaInput","TimePicker","_ref$dateDisplayOptio","dateDisplayOptions","hour","minute","_ref$endTime","endTime","_ref$interval","interval","_ref$locales","locales","_ref$startTime","startTime","generateTimes","first","Date","setHours","last","getHours","timeOptions","currentTime","toISOString","toLocaleTimeString","setSeconds","getSeconds","FormikTimePicker","TimePickerNative","FormikTimePickerNative","Toggle","trackClasses","thumbClasses","FormikToggle","ModalFooter","flexShrink","ModalHeader","justifyContentValue","tablet","ModalBody","ModalBaseComponent","_ref$fullScreenMobile","fullScreenMobile","modal","fullscreen","crossFrame","Modal","Body","generatePages","pageRange","pageTotal","activePage","numberOfPagesDisplayed","_pages","pages","startingPage","endingPage","Math","floor","pageNumber","isPage","secondToLastPage","threeDotsPage","unshift","generatePageRange","generatePageTotal","totalItemsCount","itemsPerPage","ceil","generateActiveListRange","activePageRange","Pagination","_ref$arePagesVisible","arePagesVisible","_ref$isTotalVisible","isTotalVisible","_ref$nextPageText","nextPageText","_ref$numberOfPagesDis","_ref$prevPageText","prevPageText","useMemo","activeListRange","log","useIsomorphicLayoutEffect","useLayoutEffect","ResponsiveContext","createContext","isCreated","ResponsiveProvider","_ref$throttle","throttle","innerWidth","setInnerWidth","_useState2","innerHeight","setInnerHeight","_useState3","outerWidth","setOuterWidth","_useState4","outerHeight","setOuterHeight","handleWindowResize","_window$innerWidth","_window$innerHeight","_window2","_window$outerWidth","_window3","_window$outerHeight","_window4","timeoutId","throttledResize","clearTimeout","Provider","TableBodyCell","_ref$align","align","_ref$emptyCellPlaceho","emptyCellPlaceholder","_ref$isBorderless","isBorderless","_ref$sticky","sticky","_ref$truncateOverflow","truncateOverflow","columnIsSticky","tableCellClasses","truncated","compact","borderless","scope","TableHeaderCell","_ref$dataKey","_ref$hasStickyHeader","hasStickyHeader","_ref$isSortable","isSortable","_ref$onSort","onSort","_ref$sortedColumn","sortedColumn","isColumnSorted","columnDataKey","getSortDirection","sortDirection","renderIcon","renderArrows","enterKey","spaceKey","eventWithKey","sortedKey","handleSort","tableHeaderClasses","sortable","TableRow","_ref$isHoverable","isHoverable","_ref$isTableHead","isTableHead","_ref$row","row","_ref$rowIndex","rowIndex","tableRowClasses","hoverable","renderCellContent","cellValue","getCellClassName","cellClassName","columnIndex","headerClassName","TableBody","rowKey","_ref$hoverableRows","hoverableRows","_ref$isStriped","isStriped","tableBodyClasses","striped","TableHead","tableHeadClasses","Table","_classNames3","_ref$isScrollable","isScrollable","_ref$useFixedTableLay","useFixedTableLayout","container","scrollContainerClasses","scrollable","tableClasses","table","fixed","initialState","theme","setTheme","ThemeProviderContext","ThemeProvider","_ref$defaultTheme","defaultTheme","_ref$storageKey","storageKey","localStorage","getItem","root","documentElement","remove","systemTheme","add","isDarkMode","setItem","getAnimationClass","visible","verticalPosition","horizontalPosition","isCentered","enter","exit","renderToastIcon","toast","iconName","iconColor","renderDismissIcon","canDismiss","ToastNotification","memo","_ref2$position","ariaProps","animationClass","TOAST_LIMIT","ToastStoreActionType","toastTimeouts","Map","addToDismissedQueue","toastId","has","timeout","dispatch","REMOVE_TOAST","payload","set","clearFromDismissedQueue","get","createReducer","handlers","state","action","hasOwnProperty","handleAddToast","toasts","handleUpdateToast","t","handleUpsertToast","find","reducer","UPDATE_TOAST","ADD_TOAST","handleDismissToast","handleRemoveToast","handleStartPause","time","pausedAt","handleEndPause","diff","pauseDuration","actionHandlers","_actionHandlers","UPSERT_TOAST","DISMISS_TOAST","START_PAUSE","END_PAUSE","toastReducer","listeners","memoryState","listener","defaultTimeouts","blank","Infinity","custom","useToastStore","toastOptions","setState","splice","mergedToasts","_toastOptions$t$type","_toastOptions","_toastOptions$t$type2","duration","createToast","opts","createdAt","now","uuidv4","createHandler","dismiss","async","promise","messages","then","err","useToasts","_useToastStore","timeouts","durationLeft","startPause","endPause","updateHeight","_toasts$find","calculateOffset","currentToast","_relevantToasts$filte","reverseOrder","gutter","defaultPosition","relevantToasts","toastIndex","toastsBefore","createRectRef","onRect","el","boundingRect","getBoundingClientRect","getPositionStyle","top","verticalStyle","bottom","horizontalStyle","left","right","transition","DEFAULT_OFFSET","renderNotification","containerPosition","toastPosition","ToastContainer","_ref$containerStyle","containerStyle","_ref$containerClassNa","containerClassName","_ref$gutter","_ref$reverseOrder","_useToasts","pointerEvents","onMouseEnter","onMouseLeave","positionStyle","rect","useWindowSize","_React$useContext","useContext","defaultBreakpoint","useBreakpoint","windowSize","setBreakpoint","sortedBreakpoints","sort","a","b","activeBreakpoint","isPhone","isTablet","isDesktop","isHd","useOpenClose","_props","defaultIsOpen","isOpenProp","onCloseProp","onOpenProp","onOpen","openCallback","closeCallback","isOpenState","setIsOpen","isControlled","handleOpen","handleToggle","useTheme","context","Error"],"mappings":"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"}