react-magma-dom 2.5.7 → 2.5.8

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":"react-magma-dom.cjs.development.js","sources":["../src/theme/components/transition.ts","../src/theme/magma.ts","../src/theme/ThemeContext.ts","../src/components/StyledButton/styles.ts","../src/i18n/default.ts","../src/i18n/index.ts","../src/utils/index.ts","../src/components/Spinner/index.tsx","../src/components/StyledButton/index.tsx","../src/inverse/index.ts","../src/components/Button/index.tsx","../src/components/IconButton/index.tsx","../src/components/ProgressRing/index.tsx","../src/components/AlertBase/index.tsx","../src/components/Alert/index.tsx","../src/components/Announce/index.tsx","../src/components/AppBar/AppBar.tsx","../src/components/Badge/index.tsx","../src/components/Banner/index.tsx","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Hyperlink/index.tsx","../src/components/Breadcrumb/BreadcrumbItem.tsx","../src/components/HideAtBreakpoint/index.tsx","../src/components/BreakpointsContainer/index.tsx","../src/components/Card/Card.tsx","../src/components/Card/CardBody.tsx","../src/components/Typography/index.tsx","../src/components/Heading/index.tsx","../src/components/Card/CardHeading.tsx","../src/components/SelectionControls/InputStyles.tsx","../src/utils/UtilityStyles.tsx","../src/components/InputBase/index.tsx","../src/components/Input/InputMessage.tsx","../src/components/Label/index.tsx","../src/components/FormGroup/index.tsx","../src/components/SelectionControls/StyledLabel.tsx","../src/components/SelectionControls/StyledContainer.tsx","../src/components/Checkbox/index.tsx","../src/components/Container/Container.tsx","../src/hooks/useControlled.ts","../src/hooks/useDataPagination.ts","../src/components/VisuallyHidden/index.tsx","../src/components/IndeterminateCheckbox/index.tsx","../src/components/Table/Table.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableCell.tsx","../src/components/Table/TableHead.tsx","../src/components/Table/TableHeaderCell.tsx","../src/components/Pagination/usePagination.ts","../src/hooks/useDescendants.ts","../src/components/Dropdown/Dropdown.tsx","../src/components/Dropdown/DropdownButton.tsx","../src/components/Dropdown/DropdownContent.tsx","../src/components/Dropdown/DropdownDivider.tsx","../src/components/Dropdown/DropdownHeader.tsx","../src/components/Dropdown/DropdownMenuGroup.tsx","../src/components/Dropdown/DropdownMenuItem.tsx","../src/components/Dropdown/DropdownSplitButton.tsx","../src/components/Table/TablePagination.tsx","../src/components/Table/TableRow.tsx","../src/components/Datagrid/components.tsx","../src/components/Datagrid/Datagrid.tsx","../src/components/DatePicker/CalendarContext.ts","../src/components/Tooltip/index.tsx","../src/components/DatePicker/utils.ts","../src/components/DatePicker/CalendarHeader.tsx","../src/components/DatePicker/CalendarDay.tsx","../src/components/DatePicker/HelperInformation.tsx","../src/hooks/useFocusLock.ts","../src/components/DatePicker/CalendarMonth.tsx","../src/components/FormFieldContainer/FormFieldContainer.tsx","../src/components/Input/index.tsx","../src/components/DatePicker/index.tsx","../src/components/Dropdown/DropdownMenuNavItem.tsx","../src/components/Flex/Flex.tsx","../src/components/Paragraph/index.tsx","../src/components/Form/index.tsx","../src/components/ProgressBar/index.tsx","../src/components/LoadingIndicator/index.tsx","../src/components/Select/shared.ts","../src/components/Select/components.tsx","../src/components/Select/SelectTriggerButton.tsx","../src/components/NativeSelect/NativeSelect.tsx","../src/components/Tabs/TabsContainer.tsx","../src/components/Tabs/shared.ts","../src/components/Tabs/TabsScrollButtons.tsx","../src/components/Tabs/utils.ts","../src/components/Tabs/Tabs.tsx","../src/hooks/useForceUpdate.ts","../src/components/Tabs/Tab.tsx","../src/components/Tabs/TabPanel.tsx","../src/components/Tabs/TabPanelsContainer.tsx","../src/components/NavTabs/NavTabs.tsx","../src/components/NavTabs/NavTab.tsx","../src/components/Pagination/PageButton.tsx","../src/components/Pagination/Pagination.tsx","../src/components/PasswordInput/index.tsx","../src/components/RadioGroup/index.tsx","../src/components/Radio/index.tsx","../src/components/Transition/Transition.tsx","../src/components/Modal/Modal.tsx","../src/components/Search/index.tsx","../src/components/Select/ItemsList.tsx","../src/components/Select/SelectContainer.tsx","../src/components/Select/Select.tsx","../src/components/Select/MultiSelect.tsx","../src/components/Select/index.tsx","../src/components/Combobox/ComboboxInput.tsx","../src/components/Combobox/shared.ts","../src/components/Combobox/Combobox.tsx","../src/components/Combobox/MultiCombobox.tsx","../src/components/Combobox/index.tsx","../src/components/SkipLink/index.tsx","../src/components/SkipLinkContent/index.tsx","../src/components/Spacer/Spacer.tsx","../src/components/Tag/Tag.tsx","../src/components/Toast/ToastsContainer.tsx","../src/components/Toast/index.tsx","../src/components/Toggle/index.tsx","../src/components/Textarea/index.tsx","../src/components/TimePicker/AmPmToggle.tsx","../src/components/TimePicker/useTimePicker.ts","../src/components/TimePicker/TimePicker.tsx","../src/theme/GlobalStyles/index.tsx","../src/hooks/useMediaQuery.ts","../src/components/Accordion/useAccordion.ts","../src/components/Accordion/Accordion.tsx","../src/components/Accordion/useAccordionItem.ts","../src/components/Accordion/AccordionItem.tsx","../src/components/Accordion/useAccordionButton.ts","../src/components/Accordion/AccordionButton.tsx","../src/components/Accordion/AccordionPanel.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Grid/Grid.tsx","../src/components/BlockQuote/BlockQuote.tsx","../src/components/BlockQuote/BlockQuoteItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Variant } from 'framer-motion';\nexport type MotionVariants<T extends string> = Record<T, Variant>;\n\nexport interface ThemeTransitions {\n [key: string]: {\n motion: MotionVariants<'enter' | 'exit'>;\n baseStyle: React.CSSProperties;\n };\n}\n\nexport const transitions: ThemeTransitions = {\n fade: {\n motion: {\n exit: {\n opacity: 0,\n transition: {\n opacity: {\n duration: 0.1,\n ease: 'easeOut',\n },\n },\n },\n enter: {\n opacity: 1,\n transition: {\n duration: 0.2,\n ease: 'easeIn',\n },\n },\n },\n baseStyle: {},\n },\n slideTop: {\n motion: {\n exit: {\n y: '-100%',\n transition: {\n y: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n y: '0',\n transition: {\n y: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {\n position: 'fixed',\n top: 0,\n right: 0,\n left: 0,\n },\n },\n slideBottom: {\n motion: {\n exit: {\n y: '100%',\n transition: {\n y: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n y: '0',\n transition: {\n y: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {\n position: 'fixed',\n bottom: 0,\n right: 0,\n left: 0,\n },\n },\n slideRight: {\n motion: {\n exit: {\n x: '100%',\n transition: {\n x: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n x: '0',\n transition: {\n x: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n },\n },\n slideLeft: {\n motion: {\n exit: {\n x: '-100%',\n transition: {\n x: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n x: '0',\n transition: {\n x: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {\n position: 'fixed',\n top: 0,\n bottom: 0,\n left: 0,\n },\n },\n nudgeTop: {\n motion: {\n exit: {\n y: '-50px',\n transition: {\n y: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n y: '0',\n transition: {\n y: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {},\n },\n nudgeBottom: {\n motion: {\n exit: {\n y: '50px',\n transition: {\n y: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n y: '0',\n transition: {\n y: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {},\n },\n nudgeRight: {\n motion: {\n exit: {\n x: '50px',\n transition: {\n x: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n x: '0',\n transition: {\n x: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {},\n },\n nudgeLeft: {\n motion: {\n exit: {\n x: '-50px',\n transition: {\n x: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n x: '0',\n transition: {\n x: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {},\n },\n scale: {\n motion: {\n exit: {\n scale: 0.95,\n transition: {\n scale: {\n duration: 0.1,\n ease: 'easeOut',\n },\n },\n },\n enter: {\n scale: 1,\n transition: {\n scale: {\n duration: 0.25,\n ease: 'easeInOut',\n },\n },\n },\n },\n baseStyle: {},\n },\n rotate45: {\n motion: {\n exit: {\n rotate: 0,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n enter: {\n rotate: -45,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n },\n baseStyle: {},\n },\n rotate90: {\n motion: {\n exit: {\n rotate: 0,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n enter: {\n rotate: -90,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n },\n baseStyle: {},\n },\n rotate180: {\n motion: {\n exit: {\n rotate: 0,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n enter: {\n rotate: -180,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n },\n baseStyle: {},\n },\n collapse: {\n motion: {\n exit: {\n height: 0,\n transition: {\n height: { duration: 0.2, ease: 'easeInOut' },\n },\n },\n enter: {\n height: 'auto',\n transition: {\n height: { duration: 0.3, ease: 'easeInOut' },\n },\n },\n },\n baseStyle: {\n overflow: 'hidden',\n },\n },\n};\n","import { ThemeTransitions, transitions } from './components/transition';\n\nexport interface Colors {\n primary: string;\n primaryInverse: string;\n focus: string;\n focusInverse: string;\n foundation: string;\n foundation02: string;\n foundation03: string;\n foundation04: string;\n pop: string;\n pop02: string;\n pop03: string;\n pop04: string;\n pop05: string;\n pop06: string;\n success: string;\n success02: string;\n successInverse: string;\n danger: string;\n dangerInverse: string;\n neutral: string;\n neutral02: string;\n neutral03: string;\n neutral04: string;\n neutral05: string;\n neutral06: string;\n neutral07: string;\n neutral08: string;\n disabledText: string;\n disabledInverseText: string;\n toggleBoxShadow: string;\n shade: string;\n shade02: string;\n tint: string;\n tint02: string;\n tint03: string;\n tint04: string;\n tone: string;\n tone02: string;\n border: string;\n borderInverse: string;\n}\n\nexport interface Breakpoints {\n xs: number;\n small: number;\n medium: number;\n large: number;\n xl: number;\n}\n\nexport interface IconSizes {\n xSmall: number;\n small: number;\n medium: number;\n large: number;\n xLarge: number;\n}\n\nexport interface SpacingScale {\n spacing01: string;\n spacing02: string;\n spacing03: string;\n spacing04: string;\n spacing05: string;\n spacing06: string;\n spacing07: string;\n spacing08: string;\n spacing09: string;\n spacing10: string;\n spacing11: string;\n spacing12: string;\n spacing13: string;\n spacing14: string;\n}\n\nexport interface TypographyExpressiveSizes {\n headingXLarge: any;\n headingLarge: any;\n headingMedium: any;\n headingSmall: any;\n headingXSmall: any;\n headingXXSmall: any;\n bodyLarge: any;\n bodyMedium: any;\n bodySmall: any;\n bodyXSmall: any;\n}\n\nexport interface TypeScaleSize {\n fontSize: string;\n letterSpacing?: string;\n lineHeight: string;\n}\n\nexport interface TypeScale {\n size01: TypeScaleSize;\n size02: TypeScaleSize;\n size03: TypeScaleSize;\n size04: TypeScaleSize;\n size05: TypeScaleSize;\n size06: TypeScaleSize;\n size07: TypeScaleSize;\n size08: TypeScaleSize;\n size09: TypeScaleSize;\n size10: TypeScaleSize;\n size11: TypeScaleSize;\n size12: TypeScaleSize;\n size13: TypeScaleSize;\n}\n\nexport interface VisualStyle {\n mobile: TypeScaleSize;\n desktop: TypeScaleSize;\n fontWeight?: number;\n}\n\nexport interface TypographyVisualStyles {\n headingXLarge: VisualStyle;\n headingLarge: VisualStyle;\n headingMedium: VisualStyle;\n headingSmall: VisualStyle;\n headingXSmall: VisualStyle;\n heading2XSmall: VisualStyle;\n bodyLarge: VisualStyle;\n bodyMedium: VisualStyle;\n bodySmall: VisualStyle;\n bodyXSmall: VisualStyle;\n}\n\ninterface AppBar {\n backgroundColor: string;\n height: string;\n padding: string;\n textColor: string;\n compact: {\n height: string;\n padding: string;\n };\n inverse: {\n backgroundColor: string;\n textColor: string;\n };\n}\nexport interface Modal {\n width: {\n small: string;\n medium: string;\n large: string;\n };\n}\n\ninterface Drawer {\n default: {\n maxWidth: string;\n minHeight: string;\n borderRadius: string;\n margin: string;\n top: string;\n bottom: string;\n left: string;\n right: string;\n position: string;\n };\n right: {\n left: string;\n height: string;\n width: string;\n };\n left: {\n right: string;\n height: string;\n width: string;\n };\n top: {\n bottom: string;\n height: string;\n };\n bottom: {\n top: string;\n height: string;\n };\n}\n\ninterface Combobox {\n menu: {\n maxHeight: string;\n };\n}\n\ninterface Dropdown {\n content: {\n maxHeight: string;\n };\n}\n\ninterface Dropdown {\n content: {\n maxHeight: string;\n };\n}\n\ninterface Select {\n menu: {\n maxHeight: string;\n };\n}\n\ninterface Tabs {\n approxTabSize: {\n horizontal: number;\n vertical: number;\n };\n}\n\nexport interface Tooltip {\n arrowSize: string;\n arrowSizeDoubled: string;\n backgroundColor: string;\n fontWeight: number | string;\n maxWidth: string;\n textColor: string;\n typeScale: TypeScaleSize;\n zIndex: number;\n inverse: any;\n}\n\nexport interface ThemeInterface {\n appBar: AppBar;\n breakpoints: Breakpoints;\n bodyFont: string;\n bodyExpressiveFont: string;\n bodyNarrativeFont: string;\n borderRadius: string;\n colors: Colors;\n combobox: Combobox;\n direction: string;\n drawer: Drawer;\n dropdown: Dropdown;\n headingFont: string;\n iconSizes: IconSizes;\n iterableColors: string[];\n spacingMultiplier: number;\n spaceScale: SpacingScale;\n headingExpressiveFont: string;\n headingNarrativeFont: string;\n select: Select;\n typeScale: TypeScale;\n typographyVisualStyles: TypographyVisualStyles;\n typographyExpressiveVisualStyles: TypographyVisualStyles;\n typographyNarrativeVisualStyles: TypographyVisualStyles;\n modal: Modal;\n tabs: Tabs;\n tooltip: Tooltip;\n transitions: ThemeTransitions;\n}\n\nconst typeScale = {\n size01: {\n fontSize: '12px',\n letterSpacing: '.32px',\n lineHeight: '16px',\n },\n size02: {\n fontSize: '14px',\n letterSpacing: '.16px',\n lineHeight: '20px',\n },\n size03: {\n fontSize: '16px',\n lineHeight: '24px',\n },\n size04: {\n fontSize: '18px',\n lineHeight: '24px',\n },\n size05: {\n fontSize: '20px',\n lineHeight: '32px',\n },\n size06: {\n fontSize: '24px',\n lineHeight: '32px',\n },\n size07: {\n fontSize: '28px',\n lineHeight: '40px',\n },\n size08: {\n fontSize: '32px',\n lineHeight: '40px',\n },\n size09: {\n fontSize: '36px',\n lineHeight: '48px',\n },\n size10: {\n fontSize: '42px',\n lineHeight: '48px',\n },\n size11: {\n fontSize: '48px',\n lineHeight: '56px',\n },\n size12: {\n fontSize: '54px',\n lineHeight: '64px',\n },\n size13: {\n fontSize: '60px',\n lineHeight: '72px',\n },\n};\n\nconst colors = {\n primary: '#006298', // link color blue\n primaryInverse: '#70CDFF', // link color inverse blue\n focus: '#027EE1',\n focusInverse: 'rgba(255,255,255,0.7)',\n foundation: '#00263E',\n foundation02: '#003865',\n foundation03: '#00A9E0',\n foundation04: '#71C5E8',\n pop: '#E0004D',\n pop02: '#FC4C02',\n pop03: '#F2A900',\n pop04: '#FFC72C',\n pop05: '#92278F',\n pop06: '#007A6D',\n success: '#3A8200',\n success02: '#48A200',\n successInverse: '#91CF60',\n danger: '#C61D23',\n dangerInverse: '#F59295',\n neutral: '#3F3F3F', // main dark grey text color\n neutral02: '#575757',\n neutral03: '#707070',\n neutral04: '#8f8f8f', // lightest gray that meets 3:1 contrast ratio\n neutral05: '#BFBFBF',\n neutral06: '#DFDFDF',\n neutral07: '#F7F7F7',\n neutral08: '#FFFFFF', // white\n disabledText: 'rgba(114,114,114,0.6)',\n disabledInverseText: 'rgba(255,255,255,0.25)',\n toggleBoxShadow:\n '0 2px 2px -1px rgba(0, 0, 0, 0.3), 0 0 4px 0 rgba(0, 0, 0, 0.24),0 0 5px 0 rgba(0, 0, 0, 0.22)',\n shade: 'rgba(0,0,0,0.05)',\n shade02: 'rgba(0,0,0,0.3)',\n tint: 'rgba(255,255,255,0.05)',\n tint02: 'rgba(255,255,255,0.1)',\n tint03: 'rgba(255,255,255,0.1)',\n tint04: 'rgba(255,255,255,0.4)',\n tone: 'rgba(63,63,63,0.07)',\n tone02: 'rgba(63,63,63,0.1)',\n border: '#DFDFDF',\n borderInverse: 'rgba(255,255,255,0.25)',\n};\n\nconst spaceScale = {\n spacing01: '2px',\n spacing02: '4px',\n spacing03: '8px',\n spacing04: '12px',\n spacing05: '16px',\n spacing06: '24px',\n spacing07: '28px',\n spacing08: '32px',\n spacing09: '40px',\n spacing10: '48px',\n spacing11: '56px',\n spacing12: '64px',\n spacing13: '96px',\n spacing14: '160px',\n};\n\nexport const magma = {\n bodyFont: '\"Open Sans\",Helvetica,sans-serif',\n bodyExpressiveFont: '\"Open Sans\",Helvetica,sans-serif',\n bodyNarrativeFont: \"'Noto Serif',Times New Roman,serif\",\n borderRadius: '4px',\n colors: colors,\n headingFont: '\"Open Sans\",Helvetica,sans-serif',\n headingExpressiveFont: '\"Open Sans\",Helvetica,sans-serif',\n headingNarrativeFont: \"'Noto Serif',Times New Roman,serif\",\n direction: 'ltr',\n spacingMultiplier: 8,\n transitions,\n // breakpoints\n breakpoints: {\n xs: 0,\n small: 600,\n medium: 768,\n large: 1024,\n xl: 1200,\n },\n\n spaceScale: spaceScale,\n\n iconSizes: {\n xSmall: 16,\n small: 20,\n medium: 24,\n large: 32,\n xLarge: 54,\n },\n\n // Typography\n typeScale: typeScale,\n typographyVisualStyles: {\n headingXLarge: {\n mobile: typeScale.size07,\n desktop: typeScale.size09,\n fontWeight: 600,\n },\n headingLarge: {\n mobile: typeScale.size06,\n desktop: typeScale.size07,\n fontWeight: 600,\n },\n headingMedium: {\n mobile: typeScale.size05,\n desktop: typeScale.size06,\n fontWeight: 600,\n },\n headingSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n fontWeight: 600,\n },\n headingXSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size04,\n fontWeight: 600,\n },\n heading2XSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n fontWeight: 700,\n },\n bodyLarge: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n },\n bodyMedium: {\n mobile: typeScale.size03,\n desktop: typeScale.size03,\n },\n bodySmall: {\n mobile: typeScale.size02,\n desktop: typeScale.size02,\n },\n bodyXSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n },\n },\n typographyExpressiveVisualStyles: {\n headingXLarge: {\n mobile: typeScale.size08,\n desktop: typeScale.size11,\n fontWeight: 600,\n },\n headingLarge: {\n mobile: typeScale.size07,\n desktop: typeScale.size09,\n fontWeight: 300,\n },\n headingMedium: {\n mobile: typeScale.size06,\n desktop: typeScale.size07,\n fontWeight: 300,\n },\n headingSmall: {\n mobile: typeScale.size05,\n desktop: typeScale.size06,\n fontWeight: 300,\n },\n headingXSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n fontWeight: 300,\n },\n heading2XSmall: {\n mobile: typeScale.size03,\n desktop: typeScale.size03,\n fontWeight: 700,\n },\n bodyLarge: {\n mobile: typeScale.size05,\n desktop: typeScale.size06,\n },\n bodyMedium: {\n mobile: typeScale.size03,\n desktop: typeScale.size03,\n },\n bodySmall: {\n mobile: typeScale.size02,\n desktop: typeScale.size02,\n },\n bodyXSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n },\n },\n typographyNarrativeVisualStyles: {\n headingXLarge: {\n mobile: typeScale.size07,\n desktop: typeScale.size08,\n fontWeight: 700,\n },\n headingLarge: {\n mobile: typeScale.size06,\n desktop: typeScale.size07,\n fontWeight: 700,\n },\n headingMedium: {\n mobile: typeScale.size05,\n desktop: typeScale.size06,\n fontWeight: 700,\n },\n headingSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n fontWeight: 700,\n },\n headingXSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size04,\n fontWeight: 700,\n },\n heading2XSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n fontWeight: 700,\n },\n bodyLarge: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n },\n bodyMedium: {\n mobile: typeScale.size03,\n desktop: typeScale.size03,\n },\n bodySmall: {\n mobile: typeScale.size02,\n desktop: typeScale.size02,\n },\n bodyXSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n },\n },\n\n appBar: {\n backgroundColor: colors.neutral08,\n height: '56px',\n padding: `${spaceScale.spacing06} ${spaceScale.spacing05}`,\n textColor: colors.neutral,\n compact: {\n height: '56px',\n padding: `${spaceScale.spacing05} ${spaceScale.spacing05} ${spaceScale.spacing05} ${spaceScale.spacing06}`,\n },\n inverse: {\n backgroundColor: colors.foundation02,\n textColor: colors.neutral08,\n },\n },\n\n combobox: {\n menu: {\n maxHeight: '250px',\n },\n },\n\n modal: {\n width: {\n small: '300px',\n medium: '600px',\n large: '900px',\n },\n },\n\n drawer: {\n default: {\n maxWidth: '100%',\n minHeight: '300px',\n margin: '0',\n borderRadius: '0',\n top: '0',\n right: '0',\n bottom: '0',\n left: '0',\n position: 'relative',\n },\n right: {\n left: 'auto',\n height: '100%',\n width: '300px',\n position: 'fixed',\n },\n left: {\n right: 'auto',\n height: '100%',\n width: '300px',\n },\n top: {\n bottom: 'auto',\n height: '300px',\n },\n bottom: {\n top: 'auto',\n height: '300px',\n position: 'fixed',\n },\n },\n\n dropdown: {\n content: {\n maxHeight: '250px',\n },\n },\n\n iterableColors: [\n '#0085CC',\n '#E0004D',\n '#FA6600',\n '#48A200',\n '#B12FAD',\n '#00A393',\n '#00507A',\n '#8F0033',\n '#B84900',\n '#255200',\n '#711E6E',\n '#005249',\n ],\n\n tabs: {\n approxTabSize: {\n horizontal: 120,\n vertical: 80,\n },\n },\n\n select: {\n menu: {\n maxHeight: '250px',\n },\n },\n\n tag: {\n border: '0',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'space-around',\n },\n\n tooltip: {\n arrowSize: '4px',\n arrowSizeDoubled: '8px',\n backgroundColor: colors.neutral,\n fontWeight: 600,\n maxWidth: '300px',\n textColor: colors.neutral08,\n typeScale: typeScale.size01,\n zIndex: 999,\n inverse: {\n backgroundColor: colors.neutral08,\n textColor: colors.neutral,\n },\n },\n};\n","import * as React from 'react';\nimport { magma } from './magma';\n\nexport const ThemeContext = React.createContext(\n magma // default value\n);\n","import { darken, lighten, tint } from 'polished';\n\nconst DEFAULT_STYLE_PROPS = {\n color: 'primary',\n shape: 'fill',\n size: 'medium',\n textTransform: 'uppercase',\n variant: 'solid',\n};\n\nexport function buildPropsWithDefaultButtonStyles(props) {\n return { ...DEFAULT_STYLE_PROPS, ...props };\n}\n\nexport function buildButtonBorderRadius(props) {\n switch (props.shape) {\n case 'round':\n return '100%';\n case 'leftCap':\n return `${props.theme.borderRadius} 0 0 ${props.theme.borderRadius}`;\n case 'rightCap':\n return `0 ${props.theme.borderRadius} ${props.theme.borderRadius} 0`;\n default:\n //fill\n return props.theme.borderRadius;\n }\n}\n\nexport function buildButtonFontSize(props) {\n switch (props.size) {\n case 'small':\n return props.theme.typeScale.size01.fontSize;\n case 'large':\n return props.theme.typeScale.size04.fontSize;\n default:\n //medium\n return props.theme.typeScale.size03.fontSize;\n }\n}\n\nexport function buildButtonLineHeight(props) {\n switch (props.size) {\n case 'small':\n return props.theme.typeScale.size01.lineHeight;\n case 'large':\n return props.theme.typeScale.size04.lineHeight;\n default:\n //medium\n return props.theme.typeScale.size03.lineHeight;\n }\n}\n\nexport function buildButtonSize(props) {\n switch (props.size) {\n case 'small':\n return props.theme.spaceScale.spacing07;\n case 'large':\n return props.theme.spaceScale.spacing11;\n default:\n //medium\n return props.theme.spaceScale.spacing09;\n }\n}\n\nexport function buildButtonPadding(props) {\n switch (props.size) {\n case 'small':\n return `${props.theme.spaceScale.spacing02} ${props.theme.spaceScale.spacing03}`;\n case 'large':\n return `${props.theme.spaceScale.spacing04} ${props.theme.spaceScale.spacing06}`;\n default:\n //medium\n return `${props.theme.spaceScale.spacing04} ${props.theme.spaceScale.spacing05}`;\n }\n}\n\nexport function buildButtonBackground(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.variant !== 'solid' && props.color !== 'marketing') {\n return 'rgba(0,0,0,0)';\n }\n if (props.disabled) {\n return props.theme.colors.neutral06;\n }\n if (props.color === 'marketing') {\n return props.theme.colors.pop04;\n }\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral08;\n case 'success':\n return props.theme.colors.success;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.primary;\n }\n}\n\nexport function buildBorderColor(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.disabled && props.isInverse && props.variant === 'outline') {\n return props.theme.colors.disabledInverseText;\n }\n if (props.disabled) {\n return props.theme.colors.neutral06;\n }\n if (props.color === 'marketing') {\n return props.theme.colors.pop04;\n }\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.color === 'secondary') {\n return props.theme.colors.neutral05;\n }\n if (props.variant === 'solid') {\n switch (props.color) {\n case 'success':\n return props.theme.colors.success;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.primary;\n }\n }\n}\n\nexport function buildColor(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.disabled && props.isInverse && props.variant !== 'solid') {\n return props.theme.colors.disabledInverseText;\n }\n if (props.disabled) {\n return props.theme.colors.disabledText;\n }\n if (props.color === 'marketing') {\n return props.theme.colors.foundation02;\n }\n if (\n (!props.isInverse && props.variant === 'solid') ||\n (props.isInverse && props.variant !== 'solid')\n ) {\n if (props.color === 'secondary' && !props.isInverse) {\n return props.theme.colors.neutral;\n }\n return props.theme.colors.neutral08;\n }\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral;\n case 'success':\n return props.theme.colors.success;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.primary;\n }\n}\n\nexport function buildFocusBackground(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.color === 'marketing') {\n return lighten(0.1, props.theme.colors.pop04);\n }\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return tint(0.9, props.theme.colors.neutral);\n case 'success':\n return tint(0.9, props.theme.colors.success);\n case 'danger':\n return tint(0.9, props.theme.colors.danger);\n default:\n return tint(0.9, props.theme.colors.primary);\n }\n }\n if (props.variant !== 'solid' && props.isInverse) {\n return 'rgba(0, 0, 0, 0.3)';\n }\n switch (props.color) {\n case 'secondary':\n return darken(0.1, props.theme.colors.neutral08);\n case 'success':\n return darken(0.1, props.theme.colors.success);\n case 'danger':\n return darken(0.1, props.theme.colors.danger);\n default:\n return darken(0.1, props.theme.colors.primary);\n }\n}\n\nexport function buildFocusColor(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n if (props.color === 'marketing') {\n return props.theme.colors.foundation02;\n }\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral;\n case 'success':\n return darken(0.1, props.theme.colors.success);\n case 'danger':\n return darken(0.1, props.theme.colors.danger);\n default:\n return darken(0.1, props.theme.colors.primary);\n }\n }\n if (props.variant !== 'solid' && props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.color === 'secondary' && !props.isInverse) {\n return props.theme.colors.neutral;\n }\n return props.theme.colors.neutral08;\n}\n\nexport function buildAfterBackground(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral;\n case 'success':\n return props.theme.colors.success;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.primary;\n }\n }\n if (\n props.variant === 'solid' &&\n !props.isInverse &&\n props.color === 'secondary'\n ) {\n return props.theme.colors.neutral;\n }\n return props.theme.colors.neutral08;\n}\n\nexport function buildActiveBackground(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.color === 'marketing') {\n return lighten(0.2, props.theme.colors.pop04);\n }\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return tint(0.7, props.theme.colors.neutral);\n case 'success':\n return tint(0.7, props.theme.colors.success);\n case 'danger':\n return tint(0.7, props.theme.colors.danger);\n default:\n return tint(0.7, props.theme.colors.primary);\n }\n }\n if (props.variant !== 'solid' && props.isInverse) {\n return 'rgba(0, 0, 0, 0.5);';\n }\n switch (props.color) {\n case 'secondary':\n return darken(0.2, props.theme.colors.neutral08);\n case 'success':\n return darken(0.2, props.theme.colors.success);\n case 'danger':\n return darken(0.2, props.theme.colors.danger);\n default:\n return darken(0.2, props.theme.colors.primary);\n }\n}\n\nexport function buildActiveColor(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.color === 'marketing') {\n return props.theme.colors.foundation02;\n }\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral;\n case 'success':\n return darken(0.2, props.theme.colors.success);\n case 'danger':\n return darken(0.2, props.theme.colors.danger);\n default:\n return darken(0.2, props.theme.colors.primary);\n }\n }\n if (props.variant !== 'solid' && props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.color === 'secondary' && !props.isInverse) {\n return props.theme.colors.neutral;\n }\n return props.theme.colors.neutral08;\n}\n","import { I18nInterface } from './interface';\n\nexport const defaultI18n: I18nInterface = {\n locale: null,\n dateFormat: 'MM/dd/yyyy',\n timeFormat: '12',\n example:\n 'i18n defaults must be set in packages/react-magma-dom/src/i18n/default.ts',\n months: {\n long: {\n january: 'January',\n february: 'February',\n march: 'March',\n april: 'April',\n may: 'May',\n june: 'June',\n july: 'July',\n august: 'August',\n september: 'September',\n october: 'October',\n november: 'November',\n december: 'December',\n },\n short: {\n january: 'Jan',\n february: 'Feb',\n march: 'Mar',\n april: 'Apr',\n may: 'May',\n june: 'Jun',\n july: 'Jul',\n august: 'Aug',\n september: 'Sep',\n october: 'Oct',\n november: 'Nov',\n december: 'Dec',\n },\n },\n days: {\n long: {\n monday: 'Monday',\n tuesday: 'Tuesday',\n wednesday: 'Wednesday',\n thursday: 'Thursday',\n friday: 'Friday',\n saturday: 'Saturday',\n sunday: 'Sunday',\n },\n short: {\n monday: 'Mon',\n tuesday: 'Tues',\n wednesday: 'Wed',\n thursday: 'Thur',\n friday: 'Fri',\n saturday: 'Sat',\n sunday: 'Sun',\n },\n min: {\n monday: 'M',\n tuesday: 'T',\n wednesday: 'W',\n thursday: 'T',\n friday: 'F',\n saturday: 'S',\n sunday: 'S',\n },\n },\n emptyItemsListText: 'No Options',\n alert: {\n dismissAriaLabel: 'Close this message',\n },\n breadcrumb: {\n navAriaLabel: 'Breadcrumb',\n },\n charts: {\n line: {\n chartTabLabel: 'Chart',\n dataLegendsLabel:\n 'Select one or more of the categories below to filter out the ones you don’t want to see.',\n dataTabLabel: 'Data',\n keyboardInstructions:\n 'In the chart below, use your up and down arrows to move between each line. Use your left and right arrows to move between points on a line.',\n keyboardInstructionsHeader: 'Keyboard Instructions',\n keyboardInstructionsTooltip: 'Keyboard Instructions',\n legendButtonAriaLabel: 'Toggle data for {name}',\n },\n },\n combobox: {\n clearIndicatorAriaLabel:\n 'reset selection for {labelText}. {selectedItem} is selected',\n createLabel: 'Create \"{inputValue}\"',\n },\n datePicker: {\n startOfWeek: 'sunday',\n calendarIconAriaLabel: 'Toggle Calendar Widget',\n calendarOpenAnnounce:\n 'Calendar Widget is now open. Press the question mark key to get the keyboard shortcuts for changing dates.',\n calendarCloseAriaLabel: 'Close Calendar Widget',\n previousMonthAriaLabel: 'Previous Month',\n nextMonthAriaLabel: 'Next Month',\n disabledDayAriaLabel: 'Not Available. ',\n selectedDayAriaLabel: '(Selected)',\n todayAriaLabel: '(Today)',\n helpModal: {\n header: 'Keyboard Shortcuts',\n helpButtonAriaLabel: 'Calendar Widget Help',\n enter: {\n ariaLabel: 'Enter key',\n explanation: 'Select the date in focus.',\n },\n rightAndLeftArrowKeys: {\n ariaLabel: 'Right and left arrow keys',\n explanation: 'Move backward (left) and forward (right) by one day.',\n },\n upAndDownArrowKeys: {\n ariaLabel: 'up and down arrow keys',\n explanation: 'Move backward (up) and forward (down) by one week.',\n },\n pageUpAndPageDownKeys: {\n ariaLabel: 'page up and page down keys',\n displayValue: 'PGUP/PGDN',\n explanation: 'Switch months.',\n },\n homeAndEndKeys: {\n ariaLabel: 'Home and end keys',\n displayValue: 'HOME/END',\n explanation: 'Go to the first or last day of a week.',\n },\n escape: {\n ariaLabel: 'Escape key',\n displayValue: 'ESC',\n explanation: 'Return to the date input field.',\n },\n questionMark: {\n ariaLabel: 'Question Mark',\n explanation: 'Open this panel.',\n },\n },\n },\n dropdown: {\n menuItemSelectedAriaLabel: '(selected)',\n toggleMenuAriaLabel: 'Toggle menu',\n },\n dropzone: {\n browseFiles: 'Browse Files',\n dragMessage: 'Drag and drop or browse files to upload.',\n errors: {\n 'too-many-errors': {\n message: 'Files must not have any errors.',\n },\n 'too-many-files': {\n message: 'You must upload a maximum of',\n },\n 'too-few-files': {\n message: 'You must upload a minimum of',\n },\n 'file-invalid-type': {\n header: 'Invalid File Type',\n message: 'Upload only the allowed file types',\n },\n 'file-too-large': {\n header: 'File exceeds size limit',\n message: 'Upload only files with a maximum size of',\n },\n 'file-too-small': {\n header: 'File size is below the limit',\n message: 'Upload only files with a minimum size of',\n },\n required: {\n message: 'You must upload at least one file.',\n },\n },\n files: 'files',\n bytes: 'Bytes',\n deleteFile: 'Delete file',\n removeFile: 'Remove file',\n },\n header: {\n navigationButtonLabel: 'Open navigation menu',\n search: {\n input: {\n ariaLabel: 'Search',\n placeholder: 'Search',\n },\n iconAriaLabel: 'Search',\n },\n },\n indeterminateCheckbox: {\n isCheckedAnnounce: 'All subitems are checked for {labelText} checkbox',\n isIndeterminateAnnounce:\n 'Some, but not all, subitems are checked for {labelText} checkbox',\n isUncheckedAnnounce: 'No subitems are checked for {labelText} checkbox',\n },\n input: {\n isClearableAriaLabel: 'Clear Input',\n },\n loadingIndicator: {\n progressBar: {\n messages: {\n first: 'Please be patient as this could take up to a minute to load.',\n second: 'Thank you for your patience. Still loading...',\n third: 'Thank you for waiting. We’re almost there!',\n },\n },\n spinner: {\n messages: {\n first: 'Loading...',\n second: 'Thank you for your patience. Still loading...',\n third: 'Sorry for the delay. This is taking longer than expected.',\n },\n },\n },\n modal: {\n closeAriaLabel: 'Close dialog',\n },\n multiSelect: {\n placeholder: 'Select...',\n selectedItemButtonAriaLabel: 'reset item {selectedItem}',\n },\n multiCombobox: {\n selectedItemButtonAriaLabel: 'reset item {selectedItem}',\n },\n pagination: {\n nextButtonLabel: 'Next Page',\n previousButtonLabel: 'Previous Page',\n pageButtonLabel: 'Go to Page',\n },\n password: {\n shown: {\n ariaLabel:\n 'Show password. Note: this will visually expose your password on the screen',\n buttonText: 'Show',\n announce: 'Password is now visible',\n },\n hidden: {\n ariaLabel: 'Hide password',\n buttonText: 'Hide',\n announce: 'Password is now hidden',\n },\n },\n search: {\n input: {\n ariaLabel: 'Search',\n placeholder: 'Search',\n },\n iconAriaLabel: 'Search',\n },\n select: {\n placeholder: 'Select...',\n clearIndicatorAriaLabel:\n 'reset selection for {labelText}. {selectedItem} is selected',\n },\n skipLink: {\n buttonText: 'Skip Navigation',\n },\n spinner: {\n ariaLabel: 'Loading',\n },\n table: {\n pagination: {\n ofLabel: 'of',\n nextAriaLabel: 'Next page',\n previousAriaLabel: 'Previous page',\n rowsPerPageLabel: 'Rows per page',\n },\n },\n tabs: {\n horizontalTabsInstructions:\n 'use the right and left arrow keys to activate other tabs',\n verticalTabsInstructions:\n 'use the down and up arrow keys to activate other tabs',\n nextButtonLabel: 'Scroll tabs forward',\n previousButtonLabel: 'Scroll tabs back',\n },\n tag: {\n deleteAriaLabel: 'Delete {labelText} tag',\n },\n timePicker: {\n hoursAriaLabel: 'Hour',\n minutesAriaLabel: 'Minute',\n amButtonAriaLabel:\n 'AM selected. To change to PM press the p or enter button.',\n pmButtonAriaLabel:\n 'PM selected. To change to AM press the a or enter button.',\n amSelectedAnnounce: 'AM is now selected',\n pmSelectedAnnounce: 'PM is now selected',\n },\n wizard: {\n actions: {\n next: 'next',\n previous: 'previous',\n cancel: 'cancel',\n submit: 'submit',\n },\n optional: 'optional',\n navigationLabel: 'Navigation for the wizard',\n },\n};\n","import * as React from 'react';\nimport { defaultI18n } from './default';\nimport { I18nInterface } from './interface';\n\nexport const I18nContext = React.createContext<I18nInterface>(defaultI18n);\n","import React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport function generateId(id?: string) {\n return id ? id : uuidv4();\n}\n\nexport function useGenerateId(newId?: string) {\n const [id, updateId] = React.useState<string>(newId);\n\n React.useEffect(() => {\n updateId(generateId(newId));\n }, []);\n\n React.useEffect(() => {\n newId && updateId(generateId(newId));\n }, [newId]);\n\n return id;\n}\n\nexport function omit(props, obj) {\n return props.reduce(\n (newObj, val) => (({ [val]: dropped, ...rest }) => rest)(newObj),\n obj\n );\n}\n\nexport type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;\n\ntype Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };\n\nexport type XOR<T, U> = T | U extends object\n ? (Without<T, U> & U) | (Without<U, T> & T)\n : T | U;\n\nexport function usePrevious(value) {\n const ref = React.useRef();\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport function debounce(func, wait) {\n let timeout;\n function debounced(...args) {\n // tslint:disable-next-line\n const context = this;\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n func.apply(context, args);\n }, wait);\n }\n\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n\n return debounced;\n}\n\n// Based on https://stackoverflow.com/a/24394376\nlet cachedType;\n\nexport function detectScrollType() {\n if (cachedType) {\n return cachedType;\n }\n\n const dummy = document.createElement('div');\n dummy.appendChild(document.createTextNode('ABCD'));\n dummy.dir = 'rtl';\n dummy.style.fontSize = '14px';\n dummy.style.width = '4px';\n dummy.style.height = '1px';\n dummy.style.position = 'absolute';\n dummy.style.top = '-1000px';\n dummy.style.overflow = 'scroll';\n\n document.body.appendChild(dummy);\n\n cachedType = 'reverse';\n\n if (dummy.scrollLeft > 0) {\n cachedType = 'default';\n } else {\n dummy.scrollLeft = 1;\n if (dummy.scrollLeft === 0) {\n cachedType = 'negative';\n }\n }\n}\n\nexport function getNormalizedScrollLeft(element, direction) {\n const scrollLeft = element.scrollLeft;\n\n // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior\n if (direction !== 'rtl') {\n return scrollLeft;\n }\n\n const type = detectScrollType();\n\n switch (type) {\n case 'negative':\n return (\n Number(element.scrollWidth) -\n Number(element.clientWidth) +\n Number(scrollLeft)\n );\n case 'reverse':\n return (\n Number(element.scrollWidth) -\n Number(element.clientWidth) -\n Number(scrollLeft)\n );\n default:\n return scrollLeft;\n }\n}\n\nfunction easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\n\nexport function animate(property, element, to, options: any = {}) {\n const { ease = easeInOutSin, duration = 300 } = options;\n\n let start = null;\n const from = Number(element[property]);\n let cancelled = false;\n\n const cancel = () => {\n cancelled = true;\n };\n\n const step = timestamp => {\n if (cancelled) {\n return;\n }\n\n if (start === null) {\n start = timestamp;\n }\n const time = Math.min(1, (timestamp - start) / duration);\n\n element[property] = ease(time) * (to - from) + from;\n\n if (time >= 1) {\n requestAnimationFrame(() => {});\n return;\n }\n\n requestAnimationFrame(step);\n };\n\n if (from === to) {\n return cancel;\n }\n\n requestAnimationFrame(step);\n return cancel;\n}\n\nexport function assignRef(ref, value) {\n if (ref === null) return;\n if (typeof ref === 'function') {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(`Cannot assign value \"${value}\" to ref \"${ref}\"`);\n }\n }\n}\n\nexport function useForkedRef(...refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref === null)) {\n return null;\n }\n return (node: any) => {\n refs.forEach(ref => {\n assignRef(ref, node);\n });\n };\n }, [...refs]);\n}\n\nexport function stringIncludesUnit(x) {\n return x.includes('px') || x.includes('em') || x.includes('%');\n}\n\nexport function convertStyleValueToString(\n value: string | number,\n defaultValue?: string\n): string {\n return value\n ? typeof value === 'number' ||\n (typeof value === 'string' && !stringIncludesUnit(value))\n ? `${value}px`\n : value\n : defaultValue || 'initial';\n}\n\nexport function getNodeText(node) {\n if (['string', 'number'].includes(typeof node)) return node;\n if (node instanceof Array) return node.map(getNodeText).join('');\n if (typeof node === 'object' && node) return getNodeText(node.props.children);\n}\n\nconst candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]:not([tabindex=\"-1\"])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n].join(',');\n\nexport function getTrapElements(container): Array<HTMLElement> {\n return Array.from(container.current.querySelectorAll(candidateSelectors));\n}\n\nexport function toCamelCase(str) {\n return str\n .toLowerCase()\n .replace(/[^a-z 0-9]/gi, '')\n .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (ltr, index) =>\n index === 0 ? ltr.toLowerCase() : ltr.toUpperCase()\n )\n .replace(/\\s+/g, '');\n}\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { stringIncludesUnit } from '../../utils';\nimport { ThemeInterface } from '../../theme/magma';\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * The color of the spinner border\n * @default \"#006298\"\n */\n color?: string;\n /**\n * The height and width of the spinner. Can be a string or number; if number is provided, the size is in px.\n * @default 16\n */\n size?: string | number;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n testId?: string;\n}\n\nconst StyledSpinner = styled.span<SpinnerProps>`\n animation: spinner-border 0.75s linear infinite;\n border: 2px solid ${props => props.color};\n border-right-color: transparent;\n border-radius: 50%;\n display: inline-block;\n height: ${props => props.size};\n width: ${props => props.size};\n\n @keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport const Spinner = React.forwardRef<HTMLSpanElement, SpinnerProps>(\n (props, ref) => {\n const { 'aria-label': ariaLabel, color, size, testId, ...other } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const sizeString = size\n ? typeof size === 'number' ||\n (typeof size === 'string' && !stringIncludesUnit(size))\n ? `${size}px`\n : size\n : theme.spaceScale.spacing05;\n\n return (\n <StyledSpinner\n {...other}\n aria-label={ariaLabel ? ariaLabel : i18n.spinner.ariaLabel}\n color={color ? color : theme.colors.primary}\n data-testid={testId}\n ref={ref}\n role=\"img\"\n size={sizeString}\n />\n );\n }\n);\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport {\n buildActiveBackground,\n buildActiveColor,\n buildAfterBackground,\n buildButtonBorderRadius,\n buildButtonFontSize,\n buildButtonLineHeight,\n buildButtonSize,\n buildButtonPadding,\n buildBorderColor,\n buildButtonBackground,\n buildColor,\n buildFocusBackground,\n buildFocusColor,\n} from './styles';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ButtonType, ButtonProps, ButtonSize, ButtonVariant } from '../Button';\nimport { Spinner } from '../Spinner';\n\nexport interface StyledButtonProps extends ButtonProps {\n href?: string;\n iconOnly?: boolean;\n}\n\nexport const buttonStyles = props => css`\n align-items: center;\n background: ${buildButtonBackground(props)};\n border: ${props.variant === 'outline' ||\n (props.variant !== 'link' && props.color === 'secondary' && !props.isInverse)\n ? '2px solid'\n : '0'};\n border-color: ${buildBorderColor(props)};\n border-radius: ${buildButtonBorderRadius(props)};\n color: ${buildColor(props)};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n display: ${props.isFullWidth ? 'flex' : 'inline-flex'};\n flex-shrink: 0;\n font-family: ${props.theme.bodyFont};\n font-size: ${buildButtonFontSize(props)};\n font-weight: 600;\n height: ${buildButtonSize(props)};\n justify-content: center;\n letter-spacing: ${props.size === 'small'\n ? props.theme.typeScale.size01.letterSpacing\n : 'inherit'};\n line-height: ${buildButtonLineHeight(props)};\n margin: ${props.isFullWidth\n ? `${props.theme.spaceScale.spacing02} 0`\n : props.theme.spaceScale.spacing02};\n min-width: ${props.size === 'small' ? '0' : props.theme.spaceScale.spacing13};\n overflow: hidden;\n padding: ${buildButtonPadding(props)};\n position: relative;\n text-align: center;\n text-decoration: none;\n text-transform: ${props.textTransform || 'uppercase'};\n touch-action: manipulation;\n transition: background 0.35s, border-color 0.35s, box-shadow 0.35s,\n color 0.35s;\n vertical-align: middle;\n white-space: nowrap;\n width: ${props.iconOnly\n ? buildButtonSize(props)\n : props.isFullWidth\n ? '100%'\n : 'auto'};\n\n &:not(:disabled) {\n &:focus {\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 3px;\n }\n\n &:hover,\n &:focus {\n background: ${buildFocusBackground(props)};\n color: ${buildFocusColor(props)};\n }\n\n &:after {\n background: ${buildAfterBackground(props)};\n border-radius: 50%;\n content: '';\n height: ${props.theme.spaceScale.spacing07};\n left: 50%;\n opacity: 0;\n padding: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%) scale(1);\n transition: opacity 1s, transform 0.5s;\n width: ${props.theme.spaceScale.spacing07};\n }\n\n &:active {\n background: ${buildActiveBackground(props)};\n color: ${buildActiveColor(props)};\n &:after {\n opacity: 0.4;\n transform: translate(-50%, -50%) scale(0);\n transition: transform 0s;\n }\n }\n }\n\n svg {\n flex-shrink: 0;\n }\n\n ${props.iconOnly &&\n css`\n display: inline-flex;\n justify-content: center;\n line-height: 1;\n min-width: 0;\n padding: 0;\n `}\n`;\n\nexport const BaseStyledButton = styled.button`\n ${buttonStyles}\n`;\n\nconst SpinnerWrapper = styled.span`\n position: absolute;\n display: flex;\n`;\n\nconst ChildrenWrapper = styled.span<{ isLoading: boolean; testId?: string }>`\n visibility: ${props => (props.isLoading ? 'hidden' : 'visible')};\n display: inline-flex;\n align-items: center;\n`;\n\nexport const StyledButton = React.forwardRef<\n HTMLButtonElement,\n StyledButtonProps\n>((props, ref) => {\n const {\n size,\n variant,\n isInverse,\n children,\n type = ButtonType.button,\n testId,\n isLoading,\n } = props;\n const theme = React.useContext(ThemeContext);\n\n const spinnerColor =\n isInverse &&\n (variant === ButtonVariant.outline || variant === ButtonVariant.link)\n ? theme.colors.neutral08\n : theme.colors.neutral03;\n\n const spinnerSize =\n size === ButtonSize.small\n ? theme.iconSizes.xSmall\n : size === ButtonSize.large\n ? theme.iconSizes.large\n : theme.iconSizes.medium;\n\n return (\n <BaseStyledButton\n {...props}\n data-testid={testId}\n ref={ref}\n type={type}\n theme={theme}\n disabled={isLoading || props.disabled}\n >\n {isLoading && (\n <SpinnerWrapper>\n <Spinner\n testId={`${testId}-spinner`}\n color={spinnerColor}\n size={spinnerSize}\n />\n </SpinnerWrapper>\n )}\n <ChildrenWrapper isLoading={isLoading} testId={`${testId}-children`}>\n {children}\n </ChildrenWrapper>\n </BaseStyledButton>\n );\n});\n","import * as React from 'react';\n\ninterface InverseInterface {\n isInverse?: boolean;\n}\n\nexport const InverseContext = React.createContext<InverseInterface>({\n isInverse: false,\n});\n\nexport function useIsInverse(inverseProp?: boolean) {\n const inverseContext = React.useContext(InverseContext);\n\n return typeof inverseProp !== 'undefined'\n ? Boolean(inverseProp)\n : inverseContext.isInverse;\n}\n","import * as React from 'react';\nimport { StyledButton } from '../StyledButton';\nimport { useIsInverse } from '../../inverse';\n\nexport enum ButtonVariant {\n solid = 'solid', //default\n outline = 'outline',\n link = 'link',\n}\n\nexport enum ButtonColor {\n primary = 'primary', //default\n secondary = 'secondary',\n success = 'success',\n danger = 'danger',\n marketing = 'marketing',\n}\n\nexport enum ButtonShape {\n fill = 'fill', //default\n leftCap = 'leftCap',\n rightCap = 'rightCap',\n round = 'round', // default for icon only buttons\n}\n\nexport enum ButtonSize {\n large = 'large',\n medium = 'medium', //default\n small = 'small',\n}\n\nexport enum ButtonTextTransform {\n uppercase = 'uppercase', //default\n none = 'none',\n}\n\nexport enum ButtonType {\n button = 'button',\n submit = 'submit',\n reset = 'reset',\n}\n\nexport interface ButtonStyles {\n /**\n * The color of the button, indicating its function in the UI\n * @default ButtonColor.primary\n */\n color?: ButtonColor;\n /**\n * Set the button to display full-width.\n * @default false\n */\n isFullWidth?: boolean;\n isInverse?: boolean;\n /**\n * Defines the border radius\n * @default ButtonShape.fill\n */\n shape?: ButtonShape;\n /**\n * Set the button to a loading state\n * @default false\n */\n isLoading?: boolean;\n /**\n * The relative size of the button\n * @default ButtonSize.medium\n */\n size?: ButtonSize;\n /**\n * Determines whether the button appears in all-caps\n * @default ButtonTextTransform.uppercase\n */\n textTransform?: ButtonTextTransform;\n /**\n * The variant of the button\n * @default ButtonVariant.solid\n */\n variant?: ButtonVariant;\n}\n\n/**\n * @children required\n */\ninterface BaseButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n testId?: string;\n /**\n * @internal\n */\n theme?: any;\n /**\n * The type attribute of the button\n * ButtonType.button\n */\n type?: ButtonType;\n}\n\nexport type ButtonProps = BaseButtonProps & ButtonStyles;\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref) => {\n const { children, ...rest } = props;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <StyledButton {...rest} isInverse={isInverse} ref={ref}>\n {children}\n </StyledButton>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { StyledButton } from '../StyledButton';\nimport {\n ButtonProps,\n ButtonColor,\n ButtonShape,\n ButtonSize,\n ButtonVariant,\n ButtonTextTransform,\n} from '../Button';\nimport { IconProps } from 'react-magma-icons';\nimport { omit, Omit, XOR } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\n\nexport enum ButtonIconPosition {\n left = 'left',\n right = 'right',\n}\n\nexport interface IconOnlyButtonProps extends Omit<ButtonProps, 'children'> {\n /**\n * Icon to display within the component\n */\n icon: React.ReactElement<IconProps>;\n /**\n * The text the screen reader will announce. Required for icon-only buttons\n */\n 'aria-label': string;\n}\n\nexport interface IconTextButtonProps extends ButtonProps {\n /**\n * Icon to display within the component\n */\n icon: React.ReactElement<IconProps>;\n children: React.ReactChild | React.ReactChild[];\n /**\n * Position within the button for the icon to appear\n * @default ButtonIconPosition.right\n */\n iconPosition?: ButtonIconPosition;\n}\n\nexport type IconButtonProps = XOR<IconOnlyButtonProps, IconTextButtonProps>;\n\nexport interface SpanProps {\n size?: ButtonSize;\n}\n\nconst SpanTextLeft = styled.span<SpanProps>`\n padding-right: ${props => getIconPadding(props)};\n`;\n\nconst SpanTextRight = styled.span<SpanProps>`\n padding-left: ${props => getIconPadding(props)};\n`;\n\nfunction getIconPadding(props) {\n switch (props.size) {\n case 'large':\n return props.theme.spaceScale.spacing05;\n case 'small':\n return props.theme.spaceScale.spacing02;\n default:\n return props.theme.spaceScale.spacing03;\n }\n}\n\nfunction getIconSize(size, theme) {\n switch (size) {\n case 'large':\n return theme.iconSizes.large;\n case 'small':\n return theme.iconSizes.small;\n default:\n return theme.iconSizes.medium;\n }\n}\n\nexport function instanceOfIconOnly(object: any): object is IconOnlyButtonProps {\n return 'icon' in object && !('children' in object);\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n (props, ref) => {\n let icon;\n let iconPosition;\n let children;\n const { color, shape, size, testId, textTransform, variant, ...rest } =\n props;\n\n const theme = React.useContext(ThemeContext);\n\n if (instanceOfIconOnly(props)) {\n icon = props.icon;\n } else {\n icon = props.icon;\n iconPosition = props.iconPosition;\n children = props.children;\n }\n\n const other = omit(['iconPosition', 'textPosition'], rest);\n\n const isInverse = useIsInverse(props.isInverse);\n\n if (icon && !children) {\n return (\n <StyledButton\n {...other}\n ref={ref}\n color={color ? color : ButtonColor.primary}\n iconOnly\n testId={testId}\n isInverse={isInverse}\n shape={shape ? shape : ButtonShape.round}\n size={size ? size : ButtonSize.medium}\n variant={variant ? variant : ButtonVariant.solid}\n >\n {React.Children.only(\n React.cloneElement(icon, {\n size: icon.props.size\n ? icon.props.size\n : getIconSize(size, theme),\n })\n )}\n </StyledButton>\n );\n }\n return (\n <StyledButton\n {...other}\n ref={ref}\n color={color ? color : ButtonColor.primary}\n isInverse={isInverse}\n shape={shape ? shape : ButtonShape.fill}\n size={size ? size : ButtonSize.medium}\n testId={testId}\n textTransform={\n textTransform ? textTransform : ButtonTextTransform.uppercase\n }\n variant={variant ? variant : ButtonVariant.solid}\n >\n {iconPosition === ButtonIconPosition.right && (\n <SpanTextLeft size={size} theme={theme}>\n {children}\n </SpanTextLeft>\n )}\n {React.Children.only(\n React.cloneElement(icon, {\n size: icon.props.size ? icon.props.size : getIconSize(size, theme),\n 'data-testid': `${testId}-icon`,\n })\n )}\n {iconPosition !== ButtonIconPosition.right && (\n <SpanTextRight size={size} theme={theme}>\n {children}\n </SpanTextRight>\n )}\n </StyledButton>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface ProgressRingProps\n extends React.HTMLAttributes<HTMLDivElement> {\n color?: string;\n duration?: number;\n isActive?: boolean;\n percentage?: number;\n radius?: number;\n strokeWidth?: number;\n testId?: string;\n}\n\nconst Circle = styled.circle`\n transition: stroke-dashoffset 0.35s;\n transform: rotate(-90deg);\n transform-origin: 50% 50%;\n`;\n\nexport const ProgressRing = React.forwardRef<HTMLDivElement, ProgressRingProps>(\n (props, ref) => {\n const {\n color,\n duration = 5000,\n isActive,\n radius = 21,\n strokeWidth = 3,\n testId,\n ...other\n } = props;\n\n const [percentage, setPercentage] = React.useState(100);\n\n React.useEffect(() => {\n const intervalDuration = duration / 50;\n\n let interval = null;\n\n if (isActive) {\n interval = setInterval(() => {\n setPercentage(percentage - 2);\n }, intervalDuration);\n\n if (percentage <= 0) {\n clearInterval(interval);\n }\n } else {\n clearInterval(interval);\n }\n\n return () => clearInterval(interval);\n }, [percentage, isActive]);\n\n const normalizedRadius = radius - strokeWidth * 2;\n const circumference = normalizedRadius * 2 * Math.PI;\n const strokeDashoffset = circumference - (percentage / 100) * circumference;\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <div {...other} ref={ref} data-testid={testId}>\n <svg height={radius * 2} width={radius * 2}>\n <Circle\n cx={radius}\n cy={radius}\n fill=\"transparent\"\n r={normalizedRadius}\n stroke={color ? color : theme.colors.neutral}\n strokeWidth={strokeWidth}\n strokeDasharray={`${circumference} ${circumference}`}\n style={{ strokeDashoffset }}\n />\n </svg>\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n InfoIcon,\n CheckCircleIcon,\n WarningIcon,\n ErrorIcon,\n IconProps,\n CloseIcon,\n} from 'react-magma-icons';\nimport { ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ProgressRing } from '../ProgressRing';\nimport { useGenerateId } from '../../utils';\nimport { I18nContext } from '../../i18n';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\nexport const VARIANT_ICON: {\n [name: string]: React.FunctionComponent<IconProps>;\n} = {\n info: InfoIcon,\n muted: InfoIcon,\n success: CheckCircleIcon,\n warning: WarningIcon,\n danger: ErrorIcon,\n};\n\nexport enum AlertVariant {\n info = 'info', //default,\n muted = 'muted',\n success = 'success',\n warning = 'warning',\n danger = 'danger',\n}\n\nexport interface AlertBaseProps extends React.HTMLAttributes<HTMLDivElement> {\n closeAriaLabel?: string;\n forceDismiss?: () => void;\n hasTimerRing?: boolean;\n isExiting?: boolean;\n isDismissed?: boolean;\n isDismissible?: boolean;\n isInverse?: boolean;\n isPaused?: boolean;\n isToast?: boolean;\n onDismiss?: () => void;\n testId?: string;\n toastDuration?: number;\n variant?: AlertVariant;\n}\n\nexport const transitionDuration = 500;\n\nexport function buildAlertBackground(props) {\n switch (props.variant) {\n case 'muted':\n return 'rgba(0, 0, 0, 0)';\n case 'success':\n return props.theme.colors.success;\n case 'warning':\n return props.theme.colors.pop04;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.neutral;\n }\n}\n\nconst StyledAlert = styled.div<AlertBaseProps>`\n align-items: stretch;\n animation: ${props =>\n props.isExiting\n ? `fadeout ${transitionDuration}ms`\n : `fadein ${transitionDuration}ms`};\n \n display: flex;\n flex-direction: column;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n margin-bottom: ${props => props.theme.spaceScale.spacing06};\n max-width: 100%;\n padding: 0;\n position: relative;\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n }\n\n &:focus {\n outline: 2px dotted ${props =>\n props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n }\n }\n\n ${props =>\n props.isToast &&\n css`\n animation: ${props.isExiting\n ? `slideout ${transitionDuration}ms`\n : `slidein ${transitionDuration}ms`};\n min-width: 375px;\n margin: 0 auto;\n\n @media (max-width: ${props.theme.breakpoints.small}px) {\n min-width: 0;\n width: 100%;\n }\n `}\n\n @keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes fadeout {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n }\n\n \n @keyframes slidein {\n from {\n left: -500px;\n }\n to {\n left: 0;\n }\n }\n\n @keyframes slideout {\n from {\n left: 0;\n }\n to {\n left: -500px;\n }\n }\n\n a {\n color: inherit;\n font-weight: 600;\n text-decoration: underline;\n\n &:focus {\n outline: 2px dotted ${props =>\n props.variant === 'warning'\n ? props.theme.colors.focus\n : props.theme.colors.focusInverse};\n }\n }\n }\n`;\n\nconst StyledAlertInner = styled.div<AlertBaseProps>`\n background-color: ${props => buildAlertBackground(props)};\n border-radius: ${props => props.theme.borderRadius};\n color: ${props =>\n props.variant === AlertVariant.muted\n ? props.theme.colors.neutral03\n : props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: flex;\n position: relative;\n\n ${props =>\n props.isToast &&\n css`\n border: 1px solid ${props.theme.colors.neutral08};\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.4);\n height: ${props.theme.spaceScale.spacing11};\n `}\n`;\n\nconst AlertContents = styled.div`\n align-self: center;\n flex-grow: 1;\n padding: ${props => props.theme.spaceScale.spacing04} 0;\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n padding-left: ${props => props.theme.spaceScale.spacing04};\n }\n`;\n\nconst IconWrapperStyles = css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n margin-right: 1px;\n`;\n\nconst IconWrapper = styled.span<{ isToast?: boolean; theme: any }>`\n ${IconWrapperStyles}\n padding: 0 ${props => props.theme.spaceScale.spacing03} 0 ${props =>\n props.theme.spaceScale.spacing04};\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n display: none;\n }\n`;\n\nconst ProgressRingWrapper = styled.div`\n opacity: 0.7;\n margin-top: ${props => props.theme.spaceScale.spacing01};\n position: absolute;\n top: ${props => props.theme.spaceScale.spacing02};\n right: ${props => props.theme.spaceScale.spacing02};\n`;\n\nconst DismissibleIconWrapper = styled.span<AlertBaseProps>`\n ${IconWrapperStyles}\n`;\n\nconst whitelistProps = ['icon', 'isInverse', 'theme', 'variant'];\n\nconst shouldForwardProp = prop => {\n return isPropValid(prop) || whitelistProps.includes(prop);\n};\n\nconst DismissButton = styled(IconButton, { shouldForwardProp })<{\n alertVariant?: AlertVariant;\n}>`\n align-self: stretch;\n border-radius: 0 ${props => props.theme.borderRadius}\n ${props => props.theme.borderRadius} 0;\n color: inherit;\n height: auto;\n padding: 0 ${props => props.theme.spaceScale.spacing04};\n width: auto;\n\n &&:focus:not(:disabled) {\n outline: 2px dotted\n ${({ alertVariant, theme }) =>\n alertVariant === 'warning'\n ? theme.colors.focus\n : theme.colors.focusInverse};\n outline-offset: 0 !important;\n }\n\n &:hover,\n &:focus {\n :not(:disabled):before {\n background: ${({ alertVariant, theme }) =>\n alertVariant === 'warning'\n ? theme.colors.focus\n : theme.colors.focusInverse};\n opacity: 0.15;\n }\n\n &:after {\n display: none;\n }\n }\n`;\n\nfunction renderIcon(variant = 'info', isToast?: boolean, theme?: any) {\n const Icon = VARIANT_ICON[variant];\n\n return (\n <IconWrapper isToast={isToast} theme={theme}>\n <Icon size={theme.iconSizes.medium} />\n </IconWrapper>\n );\n}\n\nexport const AlertBase = React.forwardRef<HTMLDivElement, AlertBaseProps>(\n (props, ref) => {\n const {\n children,\n closeAriaLabel,\n forceDismiss,\n hasTimerRing,\n id: defaultId,\n isDismissed,\n isDismissible,\n isExiting: externalIsExiting,\n isPaused,\n isToast,\n onDismiss,\n testId,\n toastDuration,\n variant,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n const [isExiting, setIsExiting] = React.useState(false);\n\n const isInverse = useIsInverse(props.isInverse);\n\n React.useEffect(() => {\n if (isExiting) {\n setTimeout(() => {\n setIsExiting(false);\n onDismiss && typeof onDismiss === 'function' && onDismiss();\n }, transitionDuration - 300);\n }\n }, [isExiting]);\n\n React.useEffect(() => {\n if (isDismissed) {\n handleDismiss();\n }\n }, [isDismissed]);\n\n function handleDismiss() {\n setIsExiting(true);\n }\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledAlert\n {...other}\n data-testid={testId}\n id={id}\n tabIndex={-1}\n isInverse={isInverse}\n isExiting={isExiting}\n isToast={isToast}\n ref={ref}\n theme={theme}\n >\n <InverseContext.Provider\n value={{\n isInverse: variant !== AlertVariant.warning,\n }}\n >\n <StyledAlertInner\n isInverse={variant !== AlertVariant.warning}\n isToast={isToast}\n theme={theme}\n variant={variant}\n >\n {renderIcon(variant, isToast, theme)}\n <AlertContents theme={theme}>{children}</AlertContents>\n {isDismissible && (\n <DismissibleIconWrapper variant={variant} theme={theme}>\n {hasTimerRing && isToast && (\n <ProgressRingWrapper theme={theme}>\n <ProgressRing\n color={\n variant === AlertVariant.warning\n ? theme.colors.neutral\n : theme.colors.neutral08\n }\n isActive={!isPaused}\n />\n </ProgressRingWrapper>\n )}\n <DismissButton\n alertVariant={variant}\n aria-label={\n closeAriaLabel\n ? closeAriaLabel\n : i18n.alert.dismissAriaLabel\n }\n icon={\n <CloseIcon\n size={\n hasTimerRing\n ? theme.iconSizes.xSmall\n : theme.iconSizes.small\n }\n />\n }\n isInverse\n onClick={forceDismiss || handleDismiss}\n theme={theme}\n variant={ButtonVariant.link}\n />\n </DismissibleIconWrapper>\n )}\n </StyledAlertInner>\n </InverseContext.Provider>\n </StyledAlert>\n );\n }\n);\n","import * as React from 'react';\nimport { AlertBase, AlertVariant } from '../AlertBase';\n\n/**\n * @children required\n */\nexport interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The text read by screen readers for the close button\n * @default \"Close this message\"\n */\n closeAriaLabel?: string;\n /**\n * If true, the component will be able to be dismissed and will include a close button\n * @default false\n */\n isDismissible?: boolean;\n isInverse?: boolean;\n /**\n * Action that fires when the close button is clicked (required when isDismissible is true)\n */\n onDismiss?: () => void;\n testId?: string;\n /**\n * The variant of the alert, indicating its function in the UI\n * @default `AlertVariant.info`\n */\n variant?: AlertVariant;\n}\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (props, ref) => {\n return <AlertBase ref={ref} {...props} />;\n }\n);\n","import * as React from 'react';\n\n/**\n * @children required\n */\nexport interface AnnounceProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Value of the `aria-live` attribute\n * @default AnnouncePoliteness.polite\n */\n politeness?: AnnouncePoliteness;\n /*\n * Test ID attached to an internal element as `data-testid` for consumer testing\n */\n testId?: string;\n}\n\nexport enum AnnouncePoliteness {\n polite = 'polite', //default\n off = 'off',\n assertive = 'assertive',\n}\n\nexport const Announce = React.forwardRef<HTMLDivElement, AnnounceProps>(\n (props, ref) => {\n const { children, politeness, testId, ...other } = props;\n\n return (\n <div\n {...other}\n aria-live={politeness || AnnouncePoliteness.polite}\n ref={ref}\n data-testid={testId}\n >\n {children}\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface AppBarProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, the component will render at a shorter height with less padding\n * @default false\n **/\n isCompact?: boolean;\n isInverse?: boolean;\n position?: AppBarPosition;\n testId?: string;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nexport enum AppBarPosition {\n absolute = 'absolute',\n fixed = 'fixed',\n relative = 'relative',\n static = 'static', // default\n sticky = 'sticky',\n}\n\nconst StyledHeader = styled.header<{\n isCompact?: boolean;\n isInverse?: boolean;\n position: AppBarPosition;\n}>`\n align-items: center;\n background: ${props =>\n props.isInverse\n ? props.theme.appBar.inverse.backgroundColor\n : props.theme.appBar.backgroundColor};\n border-bottom: 1px solid\n ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral06};\n box-shadow: ${props =>\n props.position === AppBarPosition.sticky ||\n props.position === AppBarPosition.fixed\n ? '0 2px 3px 0 rgb(0 0 0 / 37%)'\n : '0 0 0'};\n color: ${props =>\n props.isInverse\n ? props.theme.appBar.inverse.textColor\n : props.theme.appBar.textColor};\n display: flex;\n height: ${props =>\n props.isCompact\n ? props.theme.appBar.compact.height\n : props.theme.appBar.height};\n left: 0;\n padding: ${props =>\n props.isCompact\n ? props.theme.appBar.compact.padding\n : props.theme.appBar.padding};\n position: ${props => props.position};\n right: 0;\n top: 0;\n z-index: 10;\n`;\n\nexport const AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(\n (props, ref) => {\n const {\n children,\n position = AppBarPosition.static,\n testId,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <InverseContext.Provider\n value={{\n isInverse,\n }}\n >\n <StyledHeader\n {...other}\n data-testid={testId}\n position={position}\n ref={ref}\n theme={theme}\n >\n {children}\n </StyledHeader>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { darken, lighten } from 'polished';\n\n/**\n * @children required\n */\nexport interface BadgeProps extends React.HTMLAttributes<HTMLButtonElement> {\n /**\n * The color variant of the badge\n * @default BadgeColor.primary\n */\n color?: BadgeColor;\n /**\n * Action that fires when the badge is clicked. Causes the Badge to render as a button instead of a span.\n */\n onClick?: () => void;\n testId?: string;\n /**\n * Indicates the style variant of the component\n * @default BadgeVariant.label\n */\n variant?: BadgeVariant;\n}\n\nexport enum BadgeColor {\n danger = 'danger',\n primary = 'primary',\n secondary = 'secondary', // default\n success = 'success',\n light = 'light',\n}\n\nexport enum BadgeVariant {\n counter = 'counter',\n label = 'label', // default\n}\n\nexport function buildBadgeBackground(props) {\n switch (props.color) {\n case 'danger':\n return props.theme.colors.danger;\n case 'light':\n return props.theme.colors.neutral07;\n case 'primary':\n return props.theme.colors.primary;\n case 'secondary':\n return props.theme.colors.neutral02;\n case 'success':\n return props.theme.colors.success;\n\n default:\n return props.theme.colors.neutral02;\n }\n}\n\nexport function buildBadgeFocusBackground(props) {\n switch (props.color) {\n case 'danger':\n return darken(0.1, props.theme.colors.danger);\n case 'light':\n return lighten(0.05, props.theme.colors.neutral07);\n case 'primary':\n return darken(0.1, props.theme.colors.primary);\n case 'secondary':\n return darken(0.1, props.theme.colors.neutral02);\n case 'success':\n return darken(0.1, props.theme.colors.success);\n\n default:\n return darken(0.1, props.theme.colors.neutral02);\n }\n}\n\nexport function buildBadgeActiveBackground(props) {\n switch (props.color) {\n case 'danger':\n return darken(0.2, props.theme.colors.danger);\n case 'light':\n return lighten(0.1, props.theme.colors.neutral07);\n case 'primary':\n return darken(0.2, props.theme.colors.primary);\n case 'secondary':\n return darken(0.2, props.theme.colors.neutral02);\n case 'success':\n return darken(0.2, props.theme.colors.success);\n\n default:\n return darken(0.2, props.theme.colors.neutral02);\n }\n}\n\nexport const baseBadgeStyles = props => css`\n background: ${buildBadgeBackground(props)};\n border: 1px solid;\n border-color: ${props.color === BadgeColor.light\n ? props.theme.colors.neutral06\n : 'transparent'};\n border-radius: ${props.variant === BadgeVariant.counter\n ? props.theme.spaceScale.spacing06\n : props.theme.borderRadius};\n color: ${props.color === 'light'\n ? props.theme.colors.neutral\n : props.theme.colors.neutral08};\n display: inline-block;\n font-weight: bold;\n font-size: ${props.variant === BadgeVariant.counter\n ? props.theme.typeScale.size02.fontSize\n : props.theme.typeScale.size01.fontSize};\n letter-spacing: ${props.variant === BadgeVariant.counter\n ? props.theme.typeScale.size02.letterSpacing\n : props.theme.typeScale.size01.letterSpacing};\n line-height: ${props.variant === BadgeVariant.counter\n ? props.theme.typeScale.size02.lineHeight\n : props.theme.typeScale.size01.lineHeight};\n margin: ${props.variant === BadgeVariant.counter\n ? `0 0 0 ${props.theme.spaceScale.spacing03}`\n : `0 ${props.theme.spaceScale.spacing03} 0 0`};\n max-height: ${props.variant === BadgeVariant.counter\n ? props.theme.spaceScale.spacing06\n : 'auto'};\n min-width: ${props.theme.spaceScale.spacing06};\n padding: ${props.variant === BadgeVariant.counter\n ? `1px ${props.theme.spaceScale.spacing02}`\n : `${props.theme.spaceScale.spacing01} ${props.theme.spaceScale.spacing02}`};\n text-align: ${props.variant == BadgeVariant.counter ? 'center' : 'inherit'};\n`;\n\nconst StyledSpan = styled.span<BadgeProps>`\n ${baseBadgeStyles};\n`;\n\nconst StyledButton = styled.button<BadgeProps>`\n ${baseBadgeStyles};\n cursor: pointer;\n transition: background 0.35s;\n\n &:hover,\n &:focus {\n background: ${props => buildBadgeFocusBackground(props)};\n }\n\n &:active {\n background: ${props => buildBadgeActiveBackground(props)};\n }\n`;\n\nfunction getStyledBadgeComponent(isClickable: boolean) {\n return isClickable ? StyledButton : StyledSpan;\n}\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n (props, ref) => {\n const { children, onClick, testId, variant, ...other } = props;\n\n const BadgeComponent = getStyledBadgeComponent(Boolean(onClick));\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <BadgeComponent\n {...other}\n data-testid={testId}\n variant={variant ? variant : BadgeVariant.label}\n onClick={onClick}\n ref={ref}\n theme={theme}\n >\n {children}\n </BadgeComponent>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { AlertProps } from '../Alert';\nimport { AlertVariant, buildAlertBackground, VARIANT_ICON } from '../AlertBase';\nimport { CloseIcon } from 'react-magma-icons';\nimport { Button, ButtonSize, ButtonVariant, ButtonColor } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\n\n/**\n * @children required\n */\nexport interface BannerProps extends AlertProps {\n /**\n * The text displayed inside of the action button\n */\n actionButtonText?: string;\n /**\n * Action that fires when the action button is clicked. Must be present for button to appear\n */\n actionButtonOnClick?: () => void;\n /**\n * If true, the component will be able to be dismissed and will include a close button\n * @default false\n */\n isDismissible?: boolean;\n}\n\nconst StyledBanner = styled.div<AlertProps>`\n align-items: stretch;\n background: ${props => buildAlertBackground(props)};\n color: ${props =>\n props.variant === 'warning'\n ? props.theme.colors.neutral\n : props.theme.colors.neutral08};\n display: flex;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n position: relative;\n text-align: left;\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n text-align: left;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n }\n`;\n\nconst BannerContents = styled.div`\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: flex-start;\n padding: ${props => props.theme.spaceScale.spacing04};\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n justify-content: flex-start;\n }\n`;\n\nconst ButtonWrapper = styled.span`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n`;\n\nconst allowedProps = ['icon', 'isInverse', 'theme', 'variant'];\n\nconst shouldForwardProp = prop => {\n return isPropValid(prop) || allowedProps.includes(prop);\n};\n\nconst DismissButton = styled(IconButton, { shouldForwardProp })<{\n alertVariant?: AlertVariant;\n}>`\n align-self: stretch;\n border-radius: 0;\n color: ${({ alertVariant, theme }) =>\n alertVariant === 'warning' ? theme.colors.neutral : theme.colors.neutral08};\n height: auto;\n padding: 0 ${props => props.theme.spaceScale.spacing05};\n width: auto;\n\n &&:focus:not(:disabled) {\n outline: 2px dotted\n ${({ alertVariant, theme }) =>\n alertVariant === 'warning'\n ? theme.colors.neutral\n : theme.colors.neutral08};\n outline-offset: 0 !important;\n }\n\n &:hover,\n &:focus {\n :not(:disabled) {\n &:before {\n background: ${({ alertVariant, theme }) =>\n alertVariant === 'warning'\n ? theme.colors.neutral\n : theme.colors.neutral08};\n opacity: 0.15;\n }\n\n &:after {\n display: none;\n }\n }\n }\n`;\n\nconst IconWrapper = styled.span`\n display: inline-flex;\n padding-right: ${props => props.theme.spaceScale.spacing03};\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n display: none;\n }\n`;\n\nfunction renderIcon(variant = 'info', theme: any) {\n const Icon = VARIANT_ICON[variant];\n\n return (\n <IconWrapper theme={theme}>\n <Icon size={theme.iconSizes.medium} />\n </IconWrapper>\n );\n}\n\nfunction getButtonColor(variant: AlertVariant) {\n switch (variant) {\n case 'success':\n return ButtonColor.success;\n case 'warning':\n return ButtonColor.secondary;\n case 'danger':\n return ButtonColor.danger;\n default:\n return ButtonColor.primary;\n }\n}\n\nexport const Banner = React.forwardRef<HTMLDivElement, BannerProps>(\n (props, ref) => {\n const {\n actionButtonText,\n actionButtonOnClick,\n children,\n closeAriaLabel,\n isDismissible,\n onDismiss,\n testId,\n variant,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledBanner\n {...other}\n data-testid={testId}\n ref={ref}\n theme={theme}\n variant={variant}\n >\n <BannerContents theme={theme}>\n {renderIcon(variant, theme)}\n {children}\n {actionButtonText && actionButtonOnClick && (\n <Button\n color={getButtonColor(variant)}\n isInverse\n onClick={actionButtonOnClick}\n style={{ margin: `0 0 0 ${theme.spaceScale.spacing08}` }}\n size={ButtonSize.small}\n >\n {actionButtonText}\n </Button>\n )}\n </BannerContents>\n\n {isDismissible && (\n <ButtonWrapper>\n <DismissButton\n alertVariant={variant}\n aria-label={\n closeAriaLabel ? closeAriaLabel : i18n.alert.dismissAriaLabel\n }\n icon={<CloseIcon size={theme.iconSizes.small} />}\n isInverse\n onClick={onDismiss}\n theme={theme}\n variant={ButtonVariant.link}\n />\n </ButtonWrapper>\n )}\n </StyledBanner>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {\n isInverse?: boolean;\n testId?: string;\n}\n\nconst StyledList = styled('ol', {\n shouldForwardProp: isPropValid,\n})<BreadcrumbProps>`\n display: flex;\n flex-wrap: wrap;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nexport const Breadcrumb = React.forwardRef<HTMLOListElement, BreadcrumbProps>(\n (props, ref) => {\n const {\n 'aria-label': ariaLabel,\n children,\n isInverse: isInverseProp,\n testId,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n const isInverse = useIsInverse(isInverseProp);\n\n return (\n <InverseContext.Provider value={{ isInverse }}>\n <nav\n {...other}\n aria-label={ariaLabel ? ariaLabel : i18n.breadcrumb.navAriaLabel}\n data-testid={testId}\n >\n <StyledList isInverse={isInverse} ref={ref} theme={theme}>\n {children}\n </StyledList>\n </nav>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport { ButtonStyles } from '../Button';\nimport styled from '@emotion/styled';\nimport { css, ClassNames } from '@emotion/core';\nimport { omit, Omit } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { BaseStyledButton, buttonStyles } from '../StyledButton';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface HyperlinkProps\n extends ButtonStyles,\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {\n children: React.ReactNode;\n /**\n * How the hyperlink is styled (can look like either a plain link or a button)\n */\n styledAs?: 'Button' | 'Link';\n testId?: string;\n /**\n * The href value of the link\n */\n to: string;\n}\n\nconst linkStyles = props => css`\n color: ${props.isInverse\n ? props.theme.colors.primaryInverse\n : props.theme.colors.primary};\n text-decoration: underline;\n &:not([disabled]) {\n &:hover,\n &:focus {\n color: ${props.isInverse\n ? props.theme.colors.primaryInverse\n : props.theme.colors.foundation02};\n }\n &:focus {\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 3px;\n }\n }\n`;\n\nconst StyledLink = styled.a<{ isInverse?: boolean; theme: ThemeInterface }>`\n ${linkStyles}\n`;\n\nexport const Hyperlink = React.forwardRef<HTMLAnchorElement, HyperlinkProps>(\n (props, ref) => {\n const { children, to, styledAs, testId, ...rest } = props;\n\n const other = omit(['positionTop', 'positionLeft', 'type'], rest);\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(props.isInverse);\n\n if (typeof children === 'function') {\n const composedStyle =\n styledAs === 'Button'\n ? buttonStyles({ ...props, theme })\n : linkStyles({ ...props, theme });\n\n return (\n <ClassNames>\n {({ css: composedCss }) => {\n const className = composedCss(composedStyle);\n return (children as (props: object) => React.ReactNode)({\n to,\n className,\n isInverse,\n });\n }}\n </ClassNames>\n );\n } else {\n const LinkStyledAsButton = BaseStyledButton.withComponent('a');\n const HyperlinkComponent =\n styledAs === 'Button' ? LinkStyledAsButton : StyledLink;\n\n return (\n <HyperlinkComponent\n {...other}\n ref={ref}\n data-testid={testId}\n href={to}\n isInverse={isInverse}\n theme={theme}\n >\n {children}\n </HyperlinkComponent>\n );\n }\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { Hyperlink } from '../Hyperlink';\nimport { useIsInverse } from '../../inverse';\nimport { ChevronRightIcon } from 'react-magma-icons';\n\n/**\n * @children required\n */\nexport interface BreadcrumbItemProps\n extends React.HTMLAttributes<HTMLLIElement> {\n testId?: string;\n /**\n * The href value of the link. If left blank, the breadcrumb item will render as a span with aria-current=\"page\" on it.\n */\n to?: string;\n}\n\nconst StyledItem = styled.li`\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n`;\n\nconst StyledSpan = styled.span<{ isInverse?: boolean }>`\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral03};\n\n svg {\n margin: 0 ${props => props.theme.spaceScale.spacing02};\n }\n`;\n\nexport const BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n BreadcrumbItemProps\n>((props, ref) => {\n const { children, to, testId, ...other } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse();\n\n return (\n <StyledItem {...other} data-testid={testId} ref={ref}>\n {to ? (\n <>\n <Hyperlink to={to} isInverse={isInverse}>\n {children}\n </Hyperlink>\n <StyledSpan isInverse={isInverse} theme={theme}>\n <ChevronRightIcon size={theme.iconSizes.small} />\n </StyledSpan>\n </>\n ) : (\n <StyledSpan aria-current=\"page\" isInverse={isInverse} theme={theme}>\n {children}\n </StyledSpan>\n )}\n </StyledItem>\n );\n});\n","import * as React from 'react';\nimport styled from '@emotion/styled';\n\n/**\n * @children required\n */\nexport interface HideAtBreakpointProps\n extends React.HTMLAttributes<HTMLDivElement> {\n displayType?: HideAtBreakpointDisplayType;\n /**\n * Maximum width at which to hide the content\n */\n maxWidth?: number;\n /**\n * Minimum width at which to hide the content\n */\n minWidth?: number;\n testId?: string;\n}\n\nexport enum HideAtBreakpointDisplayType {\n block = 'block', // default\n flex = 'flex',\n inline = 'inline',\n inlineFlex = 'inline-flex',\n}\n\nconst Container = styled.div<HideAtBreakpointProps>`\n display: ${props => props.displayType};\n\n @media (min-width: ${props => props.minWidth}px) {\n display: none;\n }\n\n @media (max-width: ${props => props.maxWidth}px) {\n display: none;\n }\n`;\n\nexport const HideAtBreakpoint = React.forwardRef<\n HTMLDivElement,\n HideAtBreakpointProps\n>((props, ref) => {\n const {\n children,\n displayType = HideAtBreakpointDisplayType.block,\n minWidth,\n maxWidth,\n testId,\n ...other\n } = props;\n\n return (\n <Container\n {...other}\n data-testid={testId}\n displayType={displayType}\n maxWidth={maxWidth}\n minWidth={minWidth}\n ref={ref}\n >\n {children}\n </Container>\n );\n});\n","import * as React from 'react';\nimport { HideAtBreakpoint } from '../HideAtBreakpoint';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport enum BreakpointScreenSize {\n xs = 'xs', //default\n small = 'small',\n medium = 'medium',\n large = 'large',\n xl = 'xl',\n}\n\n/**\n * @children required\n */\nexport interface BreakpointsContainerProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Object that defines the pixel size of individual breakpoints\n * @default { xs: 0, small: 600, medium: 768, large: 1024, xl: 1200 }\n */\n breakpoints?: object;\n}\n\nexport interface BreakpointProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The relative screen size for the breakpoint. Will go from pixel width specified up to the next breakpoint.\n * @default BreakpointScreenSize.xs\n */\n screenSize?: BreakpointScreenSize;\n testId?: string;\n}\n\nexport const Breakpoint: React.FunctionComponent<BreakpointProps> = ({\n children,\n screenSize,\n testId,\n ...other\n}: BreakpointProps) => {\n return <div {...other}>{children}</div>;\n};\n\nfunction getMinWidth(\n screenSize: BreakpointScreenSize,\n breakpointValues: object,\n definedBreakpoints: any\n) {\n const sizes = Object.keys(breakpointValues);\n\n const newSizes = sizes.slice(sizes.indexOf(screenSize) + 1);\n\n const nextSize = newSizes.find(newSize =>\n definedBreakpoints.includes(newSize)\n );\n\n return breakpointValues[nextSize];\n}\n\nexport const BreakpointsContainer: React.FunctionComponent<BreakpointsContainerProps> = ({\n children,\n breakpoints,\n ...other\n}: BreakpointsContainerProps) => {\n const definedBreakpoints = [];\n\n React.Children.forEach(children, (child: React.ReactElement) => {\n definedBreakpoints.push(child.props.screenSize);\n });\n\n const theme = React.useContext(ThemeContext);\n\n const defaultBreakpoints = theme.breakpoints;\n\n const breakpointValues = breakpoints ? breakpoints : defaultBreakpoints;\n\n return (\n <>\n {React.Children.map(children, (child: React.ReactElement) => {\n return child.props.screenSize ? (\n <HideAtBreakpoint\n {...other}\n maxWidth={breakpointValues[child.props.screenSize] - 1}\n minWidth={getMinWidth(\n child.props.screenSize,\n breakpointValues,\n definedBreakpoints\n )}\n testId={child.props.testId}\n >\n {child}\n </HideAtBreakpoint>\n ) : (\n child\n );\n })}\n </>\n );\n};\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface CardProps extends React.LabelHTMLAttributes<HTMLDivElement> {\n /**\n * Sets the alignment of the card content\n * @default CardAlignment.left\n */\n align?: CardAlignment;\n /**\n * Color for the background and border-color, set by CSS.\n */\n background?: string;\n /**\n * If a value is passed, the card will be styled as a callout for the specified type.\n * @default none\n */\n calloutType?: CardCalloutType;\n /**\n * If true, card will render with a box-shadow\n * @default false\n */\n hasDropShadow?: boolean;\n isInverse?: boolean;\n testId?: string;\n /**\n * Width of the component, set by CSS.\n */\n width?: string | number;\n}\n\nexport enum CardAlignment {\n center = 'center',\n left = 'left',\n right = 'right',\n}\n\nexport enum CardCalloutType {\n danger = 'danger',\n primary = 'primary',\n success = 'success',\n warning = 'warning',\n}\n\nexport function buildCalloutBackground(\n props: CardProps & { theme: ThemeInterface }\n) {\n if (props.isInverse) {\n switch (props.calloutType) {\n case 'danger':\n return props.theme.colors.dangerInverse;\n case 'success':\n return props.theme.colors.successInverse;\n case 'warning':\n return props.theme.colors.pop04;\n default:\n return props.theme.colors.foundation04;\n }\n }\n\n switch (props.calloutType) {\n case 'danger':\n return props.theme.colors.danger;\n case 'success':\n return props.theme.colors.success;\n case 'warning':\n return props.theme.colors.pop04;\n default:\n return props.theme.colors.primary;\n }\n}\n\nconst StyledCard = styled.div<CardProps>`\n background: ${props =>\n props.background\n ? props.background\n : props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n border: 1px solid\n ${props =>\n props.background ? props.background : props.theme.colors.neutral06};\n border-radius: ${props => props.theme.borderRadius};\n box-shadow: ${props =>\n props.hasDropShadow ? '0 2px 6px 0 rgba(0,0,0,0.18)' : '0 0 0'};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: flex;\n flex-direction: column;\n overflow: visible;\n padding-left: ${props =>\n props.calloutType ? props.theme.spaceScale.spacing02 : '0'};\n position: relative;\n text-align: ${props => props.align};\n width: ${props => props.width};\n\n ${props =>\n props.calloutType &&\n css`\n &:before {\n background: ${buildCalloutBackground(props)};\n border-radius: ${props.theme.borderRadius} 0 0\n ${props.theme.borderRadius};\n content: '';\n display: block;\n height: 100%;\n position: absolute;\n left: 0;\n width: ${props.theme.spaceScale.spacing02};\n }\n `}\n`;\n\ninterface NavTabsContextInterface {\n isInverse?: boolean;\n}\n\nexport const CardContext = React.createContext<NavTabsContextInterface>({\n isInverse: false,\n});\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n (props, ref) => {\n const { align, children, testId, width, ...other } = props;\n\n const isInverse = useIsInverse(props.isInverse);\n\n const theme = React.useContext(ThemeContext);\n\n const widthString = width\n ? typeof width === 'number'\n ? `${width}px`\n : width\n : 'auto';\n\n return (\n <StyledCard\n {...other}\n align={align ? align : CardAlignment.left}\n data-testid={testId}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n width={widthString}\n >\n <CardContext.Provider\n value={{\n isInverse,\n }}\n >\n {children}\n </CardContext.Provider>\n </StyledCard>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { CardProps } from '../Card';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\n/**\n * @children required\n */\nexport interface CardBodyProps\n extends React.LabelHTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nconst StyledCardBody = styled.div<CardProps>`\n padding: ${props => props.theme.spaceScale.spacing05};\n text-align: ${props => props.align};\n\n @media (min-width: ${props => props.theme.breakpoints.small}px) {\n padding: ${props => props.theme.spaceScale.spacing06};\n }\n`;\n\nexport const CardBody = React.forwardRef<HTMLDivElement, CardBodyProps>(\n (props, ref) => {\n const { children, testId, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledCardBody {...other} data-testid={testId} ref={ref} theme={theme}>\n {children}\n </StyledCardBody>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\n\nexport interface TypographyProps<T = HTMLParagraphElement>\n extends React.HTMLAttributes<T> {\n as?: string;\n children?: any;\n color?: TypographyColor;\n contextVariant?: TypographyContextVariant;\n element?: string;\n isInverse?: boolean;\n noMargins?: boolean;\n ref?: any;\n testId?: string;\n theme?: any;\n visualStyle?: TypographyVisualStyle;\n}\n\nexport enum TypographyColor {\n danger = 'danger',\n default = 'default', // default\n success = 'success',\n subdued = 'subdued',\n}\n\nexport enum TypographyContextVariant {\n default = 'default', // default\n expressive = 'expressive',\n narrative = 'narrative',\n}\n\nexport enum TypographyVisualStyle {\n headingXLarge = 'headingXLarge',\n headingLarge = 'headingLarge',\n headingMedium = 'headingMedium',\n headingSmall = 'headingSmall',\n headingXSmall = 'headingXSmall',\n heading2XSmall = 'heading2XSmall',\n bodyLarge = 'bodyLarge',\n bodyMedium = 'bodyMedium',\n bodySmall = 'bodySmall',\n bodyXSmall = 'bodyXSmall',\n}\n\nexport function getBodyFontFamily(props) {\n switch (props.contextVariant) {\n case TypographyContextVariant.expressive:\n return props.theme.bodyExpressiveFont;\n case TypographyContextVariant.narrative:\n return props.theme.bodyNarrativeFont;\n default:\n return props.theme.bodyFont;\n }\n}\n\nexport const colorStyles = props => css`\n color: ${props.isInverse\n ? props.theme.colors.neutral08\n : props.contextVariant === 'expressive'\n ? props.theme.colors.foundation02\n : props.theme.colors.neutral};\n\n ${props.color === TypographyColor.danger &&\n !props.isInverse &&\n css`\n color: ${props.theme.colors.danger};\n `}\n\n ${props.color === TypographyColor.success &&\n !props.isInverse &&\n css`\n color: ${props.theme.colors.success};\n `}\n\n${props.color === TypographyColor.subdued &&\n !props.isInverse &&\n css`\n color: ${props.theme.colors.neutral03};\n `}\n\n ${props.color === TypographyColor.danger &&\n props.isInverse &&\n css`\n color: ${props.theme.colors.dangerInverse};\n `}\n\n ${props.color === TypographyColor.success &&\n props.isInverse &&\n css`\n color: ${props.theme.colors.successInverse};\n `}\n\n${props.color === TypographyColor.subdued &&\n props.isInverse &&\n css`\n color: ${props.theme.colors.focusInverse};\n `}\n`;\n\nconst baseParagraphStyles = props => css`\n ${colorStyles(props)}\n font-family: ${getBodyFontFamily(props)};\n font-weight: normal;\n`;\n\nexport const paragraphLargeStyles = props => css`\n ${baseParagraphStyles(props)}\n\n margin: ${props.noMargins ? '0' : `${props.theme.spaceScale.spacing06} 0`};\n\n font-size: ${props.theme.typographyVisualStyles.bodyLarge.mobile.fontSize};\n line-height: ${props.theme.typographyVisualStyles.bodyLarge.mobile\n .lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.bodyLarge.desktop.fontSize};\n line-height: ${props.theme.typographyVisualStyles.bodyLarge.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === TypographyContextVariant.expressive &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.bodyLarge.mobile\n .fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.bodyLarge.mobile\n .lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.bodyLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.bodyLarge\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const paragraphMediumStyles = props => css`\n ${baseParagraphStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.bodyMedium.mobile.fontSize};\n line-height: ${props.theme.typographyVisualStyles.bodyMedium.mobile\n .lineHeight};\n margin: ${props.noMargins ? '0' : `${props.theme.spaceScale.spacing06} 0`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.bodyMedium.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.bodyMedium.desktop\n .lineHeight};\n }\n`;\n\nexport const paragraphSmallStyles = props => css`\n ${baseParagraphStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.bodySmall.mobile.fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.bodySmall.mobile\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.bodySmall.mobile\n .lineHeight};\n margin: ${props.noMargins ? '0' : `${props.theme.spaceScale.spacing05} 0`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.bodySmall.desktop.fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.bodySmall.desktop\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.bodySmall.desktop\n .lineHeight};\n }\n`;\n\nexport const paragraphXSmallStyles = props => css`\n ${baseParagraphStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.bodyXSmall.mobile.fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.bodyXSmall.mobile\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.bodyXSmall.mobile\n .lineHeight};\n margin: ${props.noMargins ? '0' : `${props.theme.spaceScale.spacing03} 0`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.bodyXSmall.desktop\n .fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.bodyXSmall.desktop\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.bodyXSmall.desktop\n .lineHeight};\n }\n`;\n\nfunction getHeadingFontFamily(props) {\n switch (props.contextVariant) {\n case TypographyContextVariant.expressive:\n return props.theme.headingExpressiveFont;\n case TypographyContextVariant.narrative:\n return props.theme.headingNarrativeFont;\n default:\n return props.theme.headingFont;\n }\n}\n\nconst baseHeadingStyles = props => css`\n border-bottom: 2px solid transparent;\n font-family: ${getHeadingFontFamily(props)};\n padding: 0;\n\n &:focus {\n border-bottom: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline: 0;\n transition: border 0.1s linear;\n }\n\n ${colorStyles(props)}\n`;\n\nexport const headingXLargeStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.headingXLarge.mobile\n .fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingXLarge.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingXLarge.mobile\n .lineHeight};\n margin: ${props.noMargins ? 0 : `0 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingXLarge.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingXLarge.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .mobile.fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const headingLargeStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.headingLarge.mobile.fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingLarge.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingLarge.mobile\n .lineHeight};\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing10} 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingLarge.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingLarge.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingLarge.mobile\n .fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingLarge\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingLarge\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingLarge\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const headingMediumStyles = props => css`\n ${baseHeadingStyles(props)};\n\n font-size: ${props.theme.typographyVisualStyles.headingMedium.mobile\n .fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingMedium.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingMedium.mobile\n .lineHeight};\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing09} 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingMedium.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingMedium.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .mobile.fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const headingSmallStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.headingSmall.mobile.fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingSmall.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingSmall.mobile\n .lineHeight};\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing08} 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingSmall.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingSmall.desktop\n .lineHeight};\n }\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingSmall.mobile\n .fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingSmall\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingSmall\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingSmall\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingSmall\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const headingXSmallStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.headingXSmall.mobile\n .fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingXSmall.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingXSmall.mobile\n .lineHeight};\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing06} 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingXSmall.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingXSmall.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const heading2XSmallStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.heading2XSmall.mobile\n .fontSize};\n font-weight: ${props.theme.typographyVisualStyles.heading2XSmall.fontWeight};\n letter-spacing: ${props.theme.typographyVisualStyles.heading2XSmall.mobile\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.heading2XSmall.mobile\n .lineHeight};\n text-transform: uppercase;\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing06} 0 ${props.theme.spaceScale.spacing03}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.heading2XSmall.desktop\n .fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.heading2XSmall.desktop\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.heading2XSmall.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .fontWeight};\n letter-spacing: ${props.theme.typographyExpressiveVisualStyles\n .heading2XSmall.mobile.letterSpacing};\n line-height: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .mobile.lineHeight};\n text-transform: none;\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .desktop.fontSize};\n letter-spacing: ${props.theme.typographyExpressiveVisualStyles\n .heading2XSmall.desktop.letterSpacing};\n line-height: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .fontWeight};\n letter-spacing: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .mobile.letterSpacing};\n line-height: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .desktop.fontSize};\n letter-spacing: ${props.theme.typographyNarrativeVisualStyles\n .heading2XSmall.desktop.letterSpacing};\n line-height: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .desktop.lineHeight};\n }\n `};\n`;\n\nfunction getTypographyStyles(props) {\n switch (props.visualStyle) {\n case TypographyVisualStyle.headingXLarge:\n return headingXLargeStyles(props);\n case TypographyVisualStyle.headingLarge:\n return headingLargeStyles(props);\n case TypographyVisualStyle.headingMedium:\n return headingMediumStyles(props);\n case TypographyVisualStyle.headingSmall:\n return headingSmallStyles(props);\n case TypographyVisualStyle.headingXSmall:\n return headingXSmallStyles(props);\n case TypographyVisualStyle.heading2XSmall:\n return heading2XSmallStyles(props);\n case TypographyVisualStyle.bodyLarge:\n return paragraphLargeStyles(props);\n case TypographyVisualStyle.bodyMedium:\n return paragraphMediumStyles(props);\n case TypographyVisualStyle.bodySmall:\n return paragraphSmallStyles(props);\n case TypographyVisualStyle.bodyXSmall:\n return paragraphXSmallStyles(props);\n default:\n return headingLargeStyles(props);\n }\n}\n\nexport const TypographyComponent = styled.p<TypographyProps>`\n ${props => getTypographyStyles(props)}\n`;\n","import * as React from 'react';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n TypographyColor,\n TypographyContextVariant,\n TypographyVisualStyle,\n TypographyComponent,\n TypographyProps,\n} from '../Typography';\n\n/**\n * @children required\n */\nexport interface HeadingProps extends TypographyProps<HTMLHeadingElement> {\n /**\n * The color of the component, that helps to convey meaning or relative emphasis\n * @default TypographyColor.default\n */\n color?: TypographyColor;\n /**\n * Additional styles for typography based on the context of the content\n * @default TypographyColor.default\n */\n contextVariant?: TypographyContextVariant;\n isInverse?: boolean;\n /**\n * Number to indicate which level heading will render (e.g. h1, h2 etc.)\n */\n level: 1 | 2 | 3 | 4 | 5 | 6;\n testId?: string;\n /**\n * Applies visual styles including font-size, font-weight, line-height and margins\n */\n visualStyle?: TypographyVisualStyle;\n}\n\nexport const Heading = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n (props, ref) => {\n const { level, testId, visualStyle, children, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n const stylesFromLevel = {\n 1: TypographyVisualStyle.headingXLarge,\n 2: TypographyVisualStyle.headingLarge,\n 3: TypographyVisualStyle.headingMedium,\n 4: TypographyVisualStyle.headingSmall,\n 5: TypographyVisualStyle.headingXSmall,\n 6: TypographyVisualStyle.heading2XSmall,\n };\n\n const headingElement = `h${level}`;\n\n return (\n <TypographyComponent\n {...other}\n as={headingElement}\n data-testid={testId}\n isInverse={useIsInverse(props.isInverse)}\n ref={ref}\n visualStyle={visualStyle ? visualStyle : stylesFromLevel[level]}\n theme={theme}\n >\n {children}\n </TypographyComponent>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { CardContext } from './Card';\nimport { Heading } from '../Heading';\nimport { TypographyColor, TypographyVisualStyle } from '../Typography';\n\n/**\n * @children required\n */\nexport interface CardHeadingProps\n extends React.LabelHTMLAttributes<HTMLHeadingElement> {\n /**\n * Number to indicate which level heading will render (e.g. h1, h2 etc.)\n * @default 4\n */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n isInverse?: boolean;\n testId?: string;\n}\n\nconst StyledCardHeading = styled(Heading)`\n margin-top: 0;\n`;\n\nexport const CardHeading = React.forwardRef<\n HTMLHeadingElement,\n CardHeadingProps\n>((props, ref) => {\n const { headingLevel, children, ...other } = props;\n\n const context = React.useContext(CardContext);\n\n return (\n <StyledCardHeading\n {...other}\n color={TypographyColor.default}\n isInverse={context.isInverse}\n level={headingLevel ? headingLevel : 4}\n ref={ref}\n testId={props.testId}\n visualStyle={TypographyVisualStyle.headingSmall}\n >\n {children}\n </StyledCardHeading>\n );\n});\n","import { css } from '@emotion/core';\n\nexport const DisplayInputStyles = props => css`\n align-items: center;\n display: flex;\n height: ${props.theme.spaceScale.spacing06};\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n transition: all 0.2s ease-out;\n width: ${props.theme.spaceScale.spacing06};\n\n &:before,\n &:after {\n // focus and active states\n content: '';\n position: absolute;\n }\n\n &:after {\n // active state\n border-radius: 50%;\n height: ${props.theme.spaceScale.spacing09};\n left: -${props.theme.spaceScale.spacing03};\n opacity: 0;\n padding: 50%;\n top: -${props.theme.spaceScale.spacing03};\n transform: scale(1);\n transition: opacity 1s, transform 0.5s;\n width: ${props.theme.spaceScale.spacing09};\n }\n`;\n\nexport const DisplayInputActiveStyles = css`\n opacity: 0.4;\n transform: scale(0);\n transition: transform 0s;\n`;\n\nexport function buildDisplayInputActiveBackground(props) {\n return props.isInverse\n ? props.theme.colors.neutral08\n : props.color\n ? props.color\n : props.theme.colors.primary;\n}\n\nexport function buildDisplayInputBorderColor(props) {\n if (props.hasError) {\n if (props.isInverse) {\n return props.theme.colors.dangerInverse;\n }\n return props.theme.colors.danger;\n }\n return 'transparent';\n}\n\nexport function buildDisplayInputFocusStyles(props) {\n return css`\n height: 30px;\n position: absolute;\n width: 30px;\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n `;\n}\n","import { css } from '@emotion/core';\n\nexport const HiddenStyles = css`\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n position: absolute;\n overflow: hidden;\n top: auto;\n white-space: nowrap;\n width: 1px;\n`;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ButtonVariant, ButtonType, ButtonSize, ButtonShape } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ClearIcon, IconProps } from 'react-magma-icons';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeInterface } from '../../theme/magma';\nimport { I18nContext } from '../../i18n';\nimport { useForkedRef } from '../../utils';\n\nexport enum InputSize {\n large = 'large',\n medium = 'medium', //default\n}\n\nexport enum InputType {\n email = 'email',\n file = 'file',\n number = 'number',\n password = 'password',\n search = 'search',\n text = 'text', // default\n}\n\nexport enum InputIconPosition {\n top = 'top',\n left = 'left',\n right = 'right', // default\n}\n\nexport interface InputBaseProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * @internal\n */\n hasError?: boolean;\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * Text for the aria-label attribute for an icon, if provided\n */\n iconAriaLabel?: string;\n /**\n * Position within the component for the icon to appear\n * @default InputIconPosition.right\n */\n iconPosition?: InputIconPosition;\n /**\n * Reference to the icon element\n */\n iconRef?: React.Ref<HTMLButtonElement>;\n /**\n * Relative size of the component\n * @default InputSize.medium\n */\n inputSize?: InputSize;\n /**\n * Style properties for the input element\n */\n inputStyle?: React.CSSProperties;\n /**\n * Clear contents of input by clicking a clear button\n * @default false\n */\n isClearable?: boolean;\n /**\n * Function to be called when the contents of input are cleared by clicking a clear button\n */\n onClear?: () => void;\n isInverse?: boolean;\n /**\n * For use in predictive search which moves the icon to the left\n */\n isPredictive?: boolean;\n /**\n * Action that will fire when icon is clicked\n */\n onIconClick?: () => void;\n /**\n * Action that will fire when icon receives keypress\n */\n onIconKeyDown?: (event) => void;\n testId?: string;\n /**\n * @internal\n */\n theme?: any;\n /**\n * The type attribute of the form field\n * @default InputType.text\n */\n type?: InputType;\n}\n\nexport interface InputWrapperStylesProps {\n width?: string;\n iconPosition?: InputIconPosition;\n isInverse?: boolean;\n isClearable?: boolean;\n isPredictive?: boolean;\n theme?: ThemeInterface;\n hasError?: boolean;\n disabled?: boolean;\n}\n\nexport const inputWrapperStyles = (props: InputWrapperStylesProps) => css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n position: relative;\n width: ${props.width || 'auto'};\n background-color: ${props.theme.colors.neutral08};\n border-radius: ${props.theme.borderRadius};\n border: 1px solid\n ${props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral03};\n\n &:focus-within {\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 4px;\n }\n\n ${props.hasError &&\n css`\n border-color: ${props.theme.colors.danger};\n box-shadow: 0 0 0 1px\n ${props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.danger};\n `}\n\n ${props.disabled &&\n css`\n border-color: ${props.theme.colors.neutral05};\n background-color: ${props.disabled\n ? props.theme.colors.neutral07\n : props.theme.colors.neutral08};\n `}\n button {\n bottom: ${props.iconPosition === InputIconPosition.top\n ? '40px'\n : 'inherit'};\n right: ${props.iconPosition === InputIconPosition.top ? '-4px' : 'inherit'};\n }\n`;\n\nexport interface InputBaseStylesProps {\n isInverse?: boolean;\n iconPosition?: InputIconPosition;\n inputSize?: InputSize;\n isPredictive?: boolean;\n theme?: ThemeInterface;\n disabled?: boolean;\n}\n\nexport const inputBaseStyles = (props: InputBaseStylesProps) => css`\n border: 0;\n border-radius: ${props.theme.borderRadius};\n background: ${props.theme.colors.neutral08};\n color: ${props.theme.colors.neutral};\n display: block;\n font-size: ${props.theme.typeScale.size03.fontSize};\n line-height: ${props.theme.typeScale.size03.lineHeight};\n font-family: ${props.theme.bodyFont};\n height: ${props.theme.spaceScale.spacing09};\n padding: ${props.theme.spaceScale.spacing03};\n -webkit-appearance: none;\n width: 100%;\n\n ${props.iconPosition === 'left' &&\n css`\n padding-left: ${props.theme.spaceScale.spacing09};\n `}\n\n ${props.iconPosition === 'right' &&\n css`\n padding-right: ${props.theme.spaceScale.spacing09};\n `}\n\n ${props.inputSize === 'large' &&\n css`\n font-size: ${props.theme.typeScale.size04.fontSize};\n line-height: ${props.theme.typeScale.size04.lineHeight};\n height: ${props.theme.spaceScale.spacing11};\n padding: 0 ${props.theme.spaceScale.spacing04};\n `}\n\n ${props.iconPosition === 'left' &&\n props.inputSize === 'large' &&\n css`\n padding-left: ${props.theme.spaceScale.spacing10};\n `}\n\n ${props.iconPosition === 'right' &&\n props.inputSize === 'large' &&\n css`\n padding-right: ${props.theme.spaceScale.spacing10};\n `}\n\n &::placeholder {\n color: ${props.theme.colors.neutral03};\n opacity: 1;\n }\n\n &:focus {\n outline: 0;\n }\n\n &[type='search'] {\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n display: none;\n }\n }\n\n ${props.disabled &&\n css`\n background: ${props.theme.colors.neutral07};\n color: ${props.theme.colors.disabledText};\n cursor: not-allowed;\n\n &::placeholder {\n color: ${props.theme.colors.disabledText};\n }\n `}\n`;\n\nexport const InputWrapper = styled.div<InputWrapperStylesProps>`\n ${inputWrapperStyles}\n`;\n\nconst StyledInput = styled.input<InputBaseStylesProps>`\n ${inputBaseStyles}\n`;\n\nconst IconWrapper = styled.span<{\n iconPosition?: InputIconPosition;\n inputSize?: InputSize;\n isClearable?: boolean;\n isPredictive?: boolean;\n disabled?: boolean;\n}>`\n bottom: ${props => (props.iconPosition === 'top' ? '45px' : 'inherit')};\n color: ${props => props.theme.colors.neutral};\n left: ${props =>\n props.iconPosition === 'left' ? props.theme.spaceScale.spacing03 : 'auto'};\n right: ${props =>\n props.iconPosition === 'right'\n ? props.theme.spaceScale.spacing03\n : props.iconPosition === 'top'\n ? '3px'\n : 'auto'};\n position: absolute;\n top: ${props =>\n props.iconPosition === 'top'\n ? 'inherit'\n : props => props.theme.spaceScale.spacing03};\n\n ${props =>\n props.inputSize === 'large' &&\n css`\n bottom: ${props.iconPosition === 'top' ? '56px' : 'inherit'};\n left: ${props.iconPosition === 'left'\n ? props.theme.spaceScale.spacing04\n : 'auto'};\n right: ${props.iconPosition === 'right'\n ? props.theme.spaceScale.spacing04\n : props.iconPosition === 'top'\n ? '3px'\n : 'auto'};\n top: ${props.iconPosition === 'top'\n ? 'inherit'\n : props.theme.spaceScale.spacing04};\n `}\n`;\n\nconst IconButtonContainer = styled.span<{\n iconPosition?: InputIconPosition;\n size?: InputSize;\n theme: ThemeInterface;\n isClearable?: boolean;\n disabled?: boolean;\n}>`\n background-color: ${({ disabled, theme }) =>\n disabled ? theme.colors.neutral07 : theme.colors.neutral08};\n bottom: ${props => (props.iconPosition === 'top' ? '40px' : 'inherit')};\n height: auto;\n margin: 0;\n position: relative;\n right: ${props =>\n props.size === InputSize.large\n ? props.theme.spaceScale.spacing02\n : props.theme.spaceScale.spacing01};\n\n svg {\n height: ${props =>\n props.size === InputSize.large\n ? `${props.theme.iconSizes.large}px`\n : `${props.theme.iconSizes.medium}px`};\n width: ${props =>\n props.size === InputSize.large\n ? `${props.theme.iconSizes.large}px`\n : `${props.theme.iconSizes.medium}px`};\n }\n`;\n\nconst IsClearableContainer = styled.span<{\n size?: InputSize;\n theme: ThemeInterface;\n isClearable?: boolean;\n disabled?: boolean;\n}>`\n background-color: ${({ disabled, theme }) =>\n disabled ? theme.colors.neutral07 : theme.colors.neutral08};\n position: relative;\n right: ${props =>\n props.size === InputSize.large\n ? props.theme.spaceScale.spacing02\n : props.theme.spaceScale.spacing01};\n`;\n\nfunction getIconSize(size: string, theme: ThemeInterface) {\n switch (size) {\n case 'large':\n return theme.iconSizes.large;\n default:\n return theme.iconSizes.medium;\n }\n}\n\nexport const InputBase = React.forwardRef<HTMLInputElement, InputBaseProps>(\n (props, forwardedRef) => {\n const {\n children,\n containerStyle,\n defaultValue,\n disabled,\n hasError,\n icon,\n iconAriaLabel,\n iconRef,\n isClearable,\n isPredictive,\n onClear,\n onIconClick,\n onIconKeyDown,\n inputSize,\n inputStyle,\n testId,\n type,\n ...other\n } = props;\n\n const i18n = React.useContext(I18nContext);\n\n const theme = React.useContext(ThemeContext);\n const iconPosition =\n icon && onIconClick\n ? InputIconPosition.right\n : icon && !props.iconPosition\n ? InputIconPosition.left\n : props.iconPosition;\n\n const [value, setValue] = React.useState<\n string | ReadonlyArray<string> | number\n >(props.defaultValue || props.value || '');\n\n React.useEffect(() => {\n if (props.value !== undefined && props.value !== null) {\n setValue(props.value);\n }\n }, [props.value]);\n\n const inputRef = React.useRef<HTMLInputElement>();\n const ref = useForkedRef(forwardedRef, inputRef);\n\n function handleClearInput() {\n onClear && typeof onClear === 'function' && onClear();\n setValue('');\n inputRef.current.focus();\n }\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n\n setValue(event.target.value);\n }\n\n return (\n <InputWrapper\n disabled={disabled}\n iconPosition={iconPosition}\n isInverse={props.isInverse}\n theme={theme}\n style={containerStyle}\n hasError={hasError}\n isClearable={isClearable}\n >\n <StyledInput\n {...other}\n aria-invalid={hasError}\n disabled={disabled}\n data-testid={testId}\n iconPosition={iconPosition}\n inputSize={inputSize ? inputSize : InputSize.medium}\n isInverse={useIsInverse(props.isInverse)}\n isPredictive={isPredictive}\n ref={ref}\n onChange={handleChange}\n style={inputStyle}\n theme={theme}\n type={type ? type : InputType.text}\n value={value}\n />\n {isClearable && value && (\n <IsClearableContainer theme={theme} disabled={disabled}>\n <IconButton\n aria-label={i18n.input.isClearableAriaLabel}\n disabled={disabled}\n icon={<ClearIcon />}\n isInverse={false}\n onClick={handleClearInput}\n onKeyDown={onIconKeyDown}\n ref={iconRef}\n shape={ButtonShape.fill}\n size={\n inputSize === InputSize.large\n ? ButtonSize.medium\n : ButtonSize.small\n }\n testId=\"clear-button\"\n type={ButtonType.button}\n variant={ButtonVariant.link}\n />\n </IsClearableContainer>\n )}\n\n {icon && !onIconClick && (\n <IconWrapper\n aria-label={iconAriaLabel}\n iconPosition={iconPosition}\n inputSize={inputSize ? inputSize : InputSize.medium}\n isPredictive={isPredictive}\n theme={theme}\n disabled={disabled}\n >\n {React.Children.only(\n React.cloneElement(icon, {\n size: getIconSize(\n inputSize ? inputSize : InputSize.medium,\n theme\n ),\n })\n )}\n </IconWrapper>\n )}\n\n {onIconClick && (\n <IconButtonContainer\n iconPosition={iconPosition}\n size={\n inputSize === InputSize.large ? InputSize.large : InputSize.medium\n }\n theme={theme}\n disabled={disabled}\n >\n <IconButton\n aria-label={iconAriaLabel}\n icon={icon}\n isInverse={false}\n onClick={onIconClick}\n onKeyDown={onIconKeyDown}\n ref={iconRef}\n disabled={disabled}\n shape={ButtonShape.fill}\n size={\n inputSize === InputSize.large\n ? ButtonSize.medium\n : ButtonSize.small\n }\n type={ButtonType.button}\n variant={ButtonVariant.link}\n />\n </IconButtonContainer>\n )}\n\n {children}\n </InputWrapper>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ErrorIcon } from 'react-magma-icons';\nimport { Announce } from '../Announce';\nimport { InputSize } from '../InputBase';\n\nexport interface InputMessageProps\n extends React.HTMLAttributes<HTMLDivElement> {\n hasError?: boolean;\n id?: string;\n inputSize?: InputSize;\n isInverse?: boolean;\n}\n\nfunction BuildMessageColor(props) {\n const { isInverse, hasError, theme } = props;\n if (isInverse) {\n return hasError ? theme.colors.dangerInverse : theme.colors.neutral08;\n }\n return hasError ? theme.colors.danger : theme.colors.neutral03;\n}\n\nconst Message = styled.div<InputMessageProps>`\n align-items: center;\n border-radius: ${props => props.theme.borderRadius};\n color: ${props => BuildMessageColor(props)};\n display: flex;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n margin-top: ${props =>\n props.inputSize === InputSize.large\n ? props.theme.spaceScale.spacing03\n : props.theme.spaceScale.spacing02};\n text-align: left;\n`;\n\nconst IconWrapper = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n padding-right: ${props => props.theme.spaceScale.spacing02};\n`;\n\nexport const InputMessage: React.FunctionComponent<InputMessageProps> = ({\n children,\n id,\n isInverse,\n hasError,\n ...other\n}: InputMessageProps) => {\n const theme = React.useContext(ThemeContext);\n\n return (\n <Announce>\n <Message\n {...other}\n data-testid=\"inputMessage\"\n id={id}\n isInverse={isInverse}\n hasError={hasError}\n theme={theme}\n >\n {hasError && (\n <IconWrapper aria-label=\"Error\" role=\"img\" theme={theme}>\n <ErrorIcon size={theme.iconSizes.small} />\n </IconWrapper>\n )}\n <div>{children}</div>\n </Message>\n </Announce>\n );\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { InputIconPosition, InputSize } from '../InputBase';\nimport { useIsInverse } from '../../inverse';\n\nexport enum LabelPosition {\n left = 'left',\n top = 'top', // default\n}\n\nexport interface LabelProps\n extends React.LabelHTMLAttributes<HTMLLabelElement> {\n actionable?: boolean;\n iconPosition?: InputIconPosition;\n isInverse?: boolean;\n labelPosition?: LabelPosition;\n size?: InputSize;\n theme?: any;\n testId?: string;\n}\n\nconst StyledLabel = styled.label<{\n iconPosition: InputIconPosition;\n isInverse: boolean;\n theme: any;\n size: InputSize;\n labelPosition: LabelPosition;\n}>`\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: inline-block;\n font-size: ${props =>\n props.size === InputSize.large\n ? props.theme.typeScale.size03.fontSize\n : props.theme.typeScale.size02.fontSize};\n font-weight: 600;\n letter-spacing: ${props =>\n props.size === InputSize.large\n ? 'inherit'\n : props.theme.typeScale.size02.letterSpacing};\n line-height: ${props =>\n props.size === InputSize.large\n ? props.theme.typeScale.size03.lineHeight\n : props.theme.typeScale.size02.lineHeight};\n margin: ${props =>\n props.labelPosition === LabelPosition.left\n ? `0 ${props.theme.spaceScale.spacing05} 0 0`\n : `0 0 ${props.theme.spaceScale.spacing03}`};\n max-width: ${props =>\n props.iconPosition === InputIconPosition.top\n ? 'calc(100% - 51px)'\n : '100%'};\n text-align: left;\n white-space: ${props =>\n props.iconPosition === InputIconPosition.top ? 'inherit' : 'nowrap'};\n`;\n\nconst StyledSpan = StyledLabel.withComponent('span');\n\nexport const Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n (props, ref) => {\n const {\n actionable = true,\n children,\n iconPosition,\n labelPosition,\n size,\n testId,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n\n return actionable ? (\n <StyledLabel\n {...other}\n data-testid={testId}\n isInverse={useIsInverse(props.isInverse)}\n iconPosition={iconPosition}\n labelPosition={labelPosition || LabelPosition.top}\n ref={ref}\n size={size ? size : InputSize.medium}\n theme={theme}\n >\n {children}\n </StyledLabel>\n ) : (\n <StyledSpan\n {...other}\n data-testid={testId}\n isInverse={useIsInverse(props.isInverse)}\n iconPosition={iconPosition}\n labelPosition={labelPosition || LabelPosition.top}\n ref={ref}\n size={size ? size : InputSize.medium}\n theme={theme}\n >\n {children}\n </StyledSpan>\n );\n }\n);\n","import * as React from 'react';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { InputMessage } from '../Input/InputMessage';\nimport { Label } from '../Label';\nimport styled from '../../theme/styled';\nimport { omit, useGenerateId } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface FormGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Content of the error message. If a value is provided, the form fields will be styled to show an error state\n */\n errorMessage?: React.ReactNode;\n /**\n * Content of the helper message\n */\n helperMessage?: React.ReactNode;\n isInverse?: boolean;\n /**\n * If true, label text for the form group will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * ID of the element that labels the form group, used in the aria-labelledby attribute for the group. Alternatively, the labelText prop can be used\n */\n labelledById?: string;\n /**\n * Style properties for the label of the form group\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content of label for form group; can be a node or a string. Alternatively, the labelledById prop can be used\n */\n labelText?: React.ReactNode;\n testId?: string;\n}\n\nexport interface FormGroupContextInterface {\n descriptionId?: string;\n hasError?: boolean;\n}\n\nexport const FormGroupContext = React.createContext<FormGroupContextInterface>({\n hasError: false,\n});\n\nconst HiddenLabel = styled.label`\n ${HiddenStyles};\n`;\n\nexport const FormGroup = React.forwardRef<HTMLDivElement, FormGroupProps>(\n (props, ref) => {\n const id = useGenerateId(props.id);\n\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n labelledById,\n labelStyle,\n labelText,\n isTextVisuallyHidden,\n testId,\n children,\n ...rest\n } = props;\n const other = omit(['id'], rest);\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <div\n {...other}\n aria-labelledby={labelledById ? labelledById : id}\n data-testid={testId}\n ref={ref}\n role=\"group\"\n style={containerStyle}\n >\n <FormGroupContext.Provider\n value={{\n descriptionId,\n hasError: !!errorMessage,\n }}\n >\n {labelText && isTextVisuallyHidden && (\n <HiddenLabel id={id} style={labelStyle}>\n {labelText}\n </HiddenLabel>\n )}\n\n {labelText && !isTextVisuallyHidden && (\n <Label\n id={id}\n isInverse={isInverse}\n style={labelStyle}\n theme={theme}\n >\n {labelText}\n </Label>\n )}\n {children}\n\n <InputMessage\n id={descriptionId}\n hasError={!!errorMessage}\n isInverse={isInverse}\n >\n {(errorMessage || helperMessage) && (\n <>{errorMessage ? errorMessage : helperMessage}</>\n )}\n </InputMessage>\n </FormGroupContext.Provider>\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface StyledLabelProps {\n children?: any;\n htmlFor: string;\n isInverse?: boolean;\n style?: React.CSSProperties;\n}\n\nconst StyledLabelComponent = styled.label<StyledLabelProps>`\n align-items: flex-start;\n color: ${props =>\n props.isInverse ? props.theme.colors.neutral08 : 'inherit'};\n display: flex;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n margin: 0;\n padding: ${props => props.theme.spaceScale.spacing03} 0;\n`;\n\nexport const StyledLabel: React.FunctionComponent<StyledLabelProps> = ({\n children,\n htmlFor,\n isInverse,\n style,\n}: StyledLabelProps) => (\n <ThemeContext.Consumer>\n {theme => (\n <StyledLabelComponent\n htmlFor={htmlFor}\n isInverse={isInverse}\n style={style}\n theme={theme}\n >\n {children}\n </StyledLabelComponent>\n )}\n </ThemeContext.Consumer>\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nexport interface ContainerProps {\n children?: any;\n style?: React.CSSProperties;\n}\n\nconst StyledContainerComponent = styled.div<ContainerProps>`\n align-items: baseline;\n display: flex;\n flex-wrap: nowrap;\n position: relative;\n`;\n\nexport const StyledContainer: React.FunctionComponent<ContainerProps> = ({\n children,\n style,\n}: ContainerProps) => (\n <StyledContainerComponent style={style}>{children}</StyledContainerComponent>\n);\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n DisplayInputStyles,\n DisplayInputActiveStyles,\n buildDisplayInputActiveBackground,\n buildDisplayInputBorderColor,\n buildDisplayInputFocusStyles,\n} from '../SelectionControls/InputStyles';\nimport { FormGroupContext } from '../FormGroup';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { InputMessage } from '../Input/InputMessage';\nimport { CheckBoxIcon, CheckBoxOutlineBlankIcon } from 'react-magma-icons';\nimport { StyledLabel } from '../SelectionControls/StyledLabel';\nimport { StyledContainer } from '../SelectionControls/StyledContainer';\nimport styled from '@emotion/styled';\nimport { omit, useGenerateId } from '../../utils';\nimport { useIsInverse } from '../../inverse';\n\nexport enum CheckboxTextPosition {\n left = 'left',\n right = 'right', // default\n}\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * If true, element is checked (i.e. selected)\n * @default false\n */\n checked?: boolean;\n /**\n * Hex code for the background color\n * @default #0000FF\n */\n color?: string;\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * If true, checkbox is checked on first render\n */\n defaultChecked?: boolean;\n /**\n * If true, element is disabled\n * @default false\n */\n disabled?: boolean;\n /**\n * Content of the error message for an individual checkbox. If a value is provided, the input will be styled as an error state and the error message will display.\n */\n errorMessage?: React.ReactNode;\n /*\n * @internal\n */\n hasError?: boolean;\n /**\n * Style properties for the checkbox element\n */\n inputStyle?: React.CSSProperties;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content of label; can be node or string\n */\n labelText: React.ReactNode;\n testId?: string;\n /**\n * Whether the label appears to the left of the right of the checkbox\n * @default CheckboxTextPosition.right\n */\n textPosition?: CheckboxTextPosition;\n}\n\nexport const HiddenLabelText = styled.span`\n ${HiddenStyles};\n`;\n\nexport const HiddenInput = styled.input`\n ${HiddenStyles};\n`;\n\nfunction buildCheckIconColor(props) {\n if (props.disabled) {\n if (props.isInverse) {\n return props.theme.colors.tint04;\n }\n return props.theme.colors.neutral05;\n }\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.isChecked || props.isIndeterminate) {\n return props.color;\n }\n return props.theme.colors.neutral02;\n}\n\nexport const StyledFakeInput = styled.span<{\n isChecked?: boolean;\n color: string;\n disabled?: boolean;\n isIndeterminate?: boolean;\n isInverse?: boolean;\n hasError?: boolean;\n textPosition?: CheckboxTextPosition;\n theme?: any;\n}>`\n ${DisplayInputStyles};\n border: 2px solid;\n border-color: ${props => buildDisplayInputBorderColor(props)};\n color: ${props => buildCheckIconColor(props)};\n cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};\n margin: ${props =>\n props.textPosition === 'left'\n ? `${props.theme.spaceScale.spacing01} 0 0 ${props.theme.spaceScale.spacing03}`\n : `0 ${props.theme.spaceScale.spacing03} 0 0`};\n\n svg {\n flex-shrink: 0;\n pointer-events: none;\n transition: all 0.2s ease-out;\n }\n\n ${HiddenInput}:focus + label & {\n &:before {\n ${props => buildDisplayInputFocusStyles(props)};\n }\n }\n\n &:after {\n // active state\n background: ${props => buildDisplayInputActiveBackground(props)};\n top: -10px;\n left: -10px;\n }\n\n /* prettier-ignore */\n ${HiddenInput}:not(:disabled):active + label & {\n &:after {\n ${DisplayInputActiveStyles}\n }\n }\n`;\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (props, ref) => {\n const { checked, id: defaultId, defaultChecked, onChange } = props;\n const [isChecked, updateIsChecked] = React.useState(\n Boolean(defaultChecked) || Boolean(checked)\n );\n\n const id = useGenerateId(defaultId);\n const isControlled = typeof checked === 'boolean' ? true : false;\n\n React.useEffect(() => {\n if (typeof checked === 'boolean') {\n updateIsChecked(checked);\n }\n }, [checked]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { checked: targetChecked } = event.target;\n\n onChange && typeof onChange === 'function' && onChange(event);\n\n if (!isControlled) {\n updateIsChecked(targetChecked);\n }\n }\n\n const theme = React.useContext(ThemeContext);\n const context = React.useContext(FormGroupContext);\n\n const {\n color = theme.colors.primary,\n containerStyle,\n disabled,\n errorMessage,\n inputStyle,\n labelStyle,\n labelText,\n isTextVisuallyHidden,\n testId,\n textPosition,\n ...rest\n } = props;\n const other = omit(['defaultChecked'], rest);\n\n const descriptionId = errorMessage && `${id}__desc`;\n const groupDescriptionId = context.descriptionId;\n\n const describedBy =\n descriptionId && groupDescriptionId\n ? `${groupDescriptionId} ${descriptionId}`\n : descriptionId\n ? descriptionId\n : groupDescriptionId\n ? groupDescriptionId\n : null;\n\n const hasError = context.hasError || !!errorMessage;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <>\n <StyledContainer style={containerStyle}>\n <HiddenInput\n {...other}\n aria-describedby={describedBy}\n id={id}\n data-testid={testId}\n checked={isChecked}\n disabled={disabled}\n ref={ref}\n type=\"checkbox\"\n onChange={handleChange}\n />\n <StyledLabel htmlFor={id} isInverse={isInverse} style={labelStyle}>\n {!isTextVisuallyHidden &&\n textPosition === CheckboxTextPosition.left &&\n labelText}\n\n <StyledFakeInput\n isChecked={isChecked}\n color={color}\n disabled={disabled}\n hasError={hasError}\n isInverse={isInverse}\n style={inputStyle}\n textPosition={textPosition}\n theme={theme}\n >\n {isChecked ? (\n <CheckBoxIcon size={theme.iconSizes.medium} />\n ) : (\n <CheckBoxOutlineBlankIcon size={theme.iconSizes.medium} />\n )}\n </StyledFakeInput>\n\n {isTextVisuallyHidden ? (\n <HiddenLabelText>{labelText}</HiddenLabelText>\n ) : (\n textPosition !== CheckboxTextPosition.left &&\n labelText &&\n labelText\n )}\n </StyledLabel>\n </StyledContainer>\n {!!errorMessage && (\n <InputMessage id={descriptionId} hasError isInverse={isInverse}>\n {errorMessage}\n </InputMessage>\n )}\n </>\n );\n }\n);\n","import * as React from 'react';\nimport { ThemeInterface } from '../../theme/magma';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { InverseContext, useIsInverse } from '../../inverse';\nimport { convertStyleValueToString } from '../../utils';\nimport styled from '@emotion/styled';\n\n/**\n * @children required\n */\nexport interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n isInverse?: boolean;\n /**\n * Left/right padding, set by CSS. If a number is provided, value will be in pixels\n */\n gutterWidth?: number | string;\n /**\n * Max-width of the component, set by CSS. If a number is provided, value will be in pixels\n */\n maxWidth?: number | string;\n testId?: string;\n}\n\nconst StyledContainer = styled.div<{\n gutterWidth: string;\n isInverse?: boolean;\n maxWidth: string;\n theme: ThemeInterface;\n}>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: flow-root;\n margin: 0 auto;\n max-width: ${props => props.maxWidth};\n padding: ${props => `0 ${props.gutterWidth}`};\n`;\n\nexport const Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n (props, ref) => {\n const theme = React.useContext(ThemeContext);\n const {\n children,\n gutterWidth = theme.spaceScale.spacing06,\n maxWidth,\n testId,\n ...other\n } = props;\n\n const gutterWidthString = convertStyleValueToString(gutterWidth);\n const maxWidthString = convertStyleValueToString(maxWidth, 'none');\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <InverseContext.Provider\n value={{\n isInverse,\n }}\n >\n <StyledContainer\n ref={ref}\n data-testid={testId}\n gutterWidth={gutterWidthString}\n isInverse={isInverse}\n maxWidth={maxWidthString}\n theme={theme}\n {...other}\n >\n {children}\n </StyledContainer>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\n\nexport function useControlled({ controlled, default: defaultProp }) {\n const { current: isControlled } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n\n return [value, setValueIfUncontrolled];\n}\n","import { useControlled } from './useControlled';\n\nexport interface UseDataPaginationProps<PaginatedItem> {\n /**\n * Number of items per page by default when uncontrolled\n * @default 10\n */\n defaultItemsPerPage?: number;\n /**\n * Array of items to be displayed\n */\n items?: PaginatedItem[];\n /**\n * Number of items per page\n */\n itemsPerPage?: number;\n /**\n * Event that fires when the number of items per page is changed\n */\n onItemsPerPageChange?: (newRowsPerPage: number) => void;\n}\nexport interface UseDataPaginationReturn<PaginatedItem> {\n getPageItems: (page: number) => PaginatedItem[];\n itemsPerPage: number;\n length: number;\n onItemsPerPageChange: (newItemsPerPage: number) => void;\n}\n\nexport function useDataPagination<T>(\n props: UseDataPaginationProps<T> = {}\n): UseDataPaginationReturn<T> {\n const {\n defaultItemsPerPage = 10,\n items = [],\n itemsPerPage: itemsPerPageProp,\n onItemsPerPageChange,\n } = props;\n\n const [itemsPerPage, setItemsPerPageState] = useControlled({\n controlled: itemsPerPageProp,\n default: defaultItemsPerPage,\n });\n\n function handleItemsPerPageChange(newItemsPerPage: number) {\n if (!itemsPerPageProp) {\n setItemsPerPageState(newItemsPerPage);\n }\n\n onItemsPerPageChange &&\n typeof onItemsPerPageChange === 'function' &&\n onItemsPerPageChange(newItemsPerPage);\n }\n\n const getPageItems = (page: number) => {\n const isLastPage = page * itemsPerPage >= items.length;\n\n const start = (page - 1) * itemsPerPage;\n const end = isLastPage ? items.length : page * itemsPerPage;\n\n return items.slice(start, end);\n };\n\n const length = Math.ceil(items.length / itemsPerPage);\n\n return {\n getPageItems,\n itemsPerPage,\n length,\n onItemsPerPageChange: handleItemsPerPageChange,\n };\n}\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\n\n/**\n * @children required\n */\nexport interface VisuallyHiddenProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nconst VisuallyHiddenDiv = styled.div`\n ${HiddenStyles}\n`;\n\nexport const VisuallyHidden: React.FunctionComponent<VisuallyHiddenProps> = props => {\n const { children, testId, ...other } = props;\n return (\n <VisuallyHiddenDiv {...other} data-testid={testId}>\n {children}\n </VisuallyHiddenDiv>\n );\n};\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n CheckboxProps,\n HiddenLabelText,\n HiddenInput,\n StyledFakeInput,\n} from '../Checkbox';\nimport {\n CheckBoxIcon,\n CheckBoxOutlineBlankIcon,\n IndeterminateCheckBoxIcon,\n} from 'react-magma-icons';\nimport { FormGroupContext } from '../FormGroup';\nimport { InputMessage } from '../Input/InputMessage';\nimport { StyledLabel } from '../SelectionControls/StyledLabel';\nimport { StyledContainer } from '../SelectionControls/StyledContainer';\nimport { useGenerateId, Omit } from '../../utils';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { Announce } from '../Announce';\nimport { I18nContext } from '../../i18n';\nimport { useIsInverse } from '../../inverse';\n\nexport interface IndeterminateCheckboxProps\n extends Omit<CheckboxProps, 'checked'> {\n /**\n * Status of the indeterminate, three-state checkbox, which includes and indeterminate (e.g. mixed) option.\n * @default IndeterminateCheckboxStatus.unchecked\n */\n status: IndeterminateCheckboxStatus;\n testId?: string;\n}\n\nexport enum IndeterminateCheckboxStatus {\n checked = 'checked',\n indeterminate = 'indeterminate',\n unchecked = 'unchecked', //default\n}\n\nexport const IndeterminateCheckbox = React.forwardRef<\n HTMLInputElement,\n IndeterminateCheckboxProps\n>((props, ref) => {\n const [isChecked, updateIsChecked] = React.useState(\n props.status === 'indeterminate'\n ? false\n : Boolean(props.status === 'checked')\n );\n\n const id = useGenerateId(props.id);\n\n React.useEffect(() => {\n updateIsChecked(\n props.status === 'indeterminate'\n ? false\n : Boolean(props.status === 'checked')\n );\n }, [props.status]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { checked: targetChecked } = event.target;\n\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n\n if (props.status !== 'indeterminate') {\n updateIsChecked(targetChecked);\n }\n }\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n const context = React.useContext(FormGroupContext);\n\n const {\n color = theme.colors.primary,\n containerStyle,\n disabled,\n errorMessage,\n inputStyle,\n labelStyle,\n labelText,\n isTextVisuallyHidden,\n status,\n testId,\n ...other\n } = props;\n\n const isIndeterminate = status === 'indeterminate';\n const isUnchecked = status === 'unchecked';\n\n function replaceLabelTextForAnnounceText(baseAnnounceText) {\n return baseAnnounceText.replace(\n /\\{labelText\\}/g,\n getStringifiedLabelText(labelText)\n );\n }\n\n function getStringifiedLabelText(node) {\n if (['string', 'number'].includes(typeof node)) return node;\n if (node instanceof Array)\n return node.map(getStringifiedLabelText).join('');\n if (typeof node === 'object' && node)\n return getStringifiedLabelText(node.props.children);\n }\n\n const showAnnounce = isChecked || isIndeterminate || isUnchecked;\n const announceText = isChecked\n ? replaceLabelTextForAnnounceText(\n i18n.indeterminateCheckbox.isCheckedAnnounce\n )\n : isIndeterminate\n ? replaceLabelTextForAnnounceText(\n i18n.indeterminateCheckbox.isIndeterminateAnnounce\n )\n : isUnchecked\n ? replaceLabelTextForAnnounceText(\n i18n.indeterminateCheckbox.isUncheckedAnnounce\n )\n : '';\n\n const descriptionId = errorMessage ? `${id}__desc` : null;\n const groupDescriptionId = context.descriptionId;\n\n const describedBy =\n descriptionId && groupDescriptionId\n ? `${groupDescriptionId} ${descriptionId}`\n : descriptionId\n ? descriptionId\n : groupDescriptionId\n ? groupDescriptionId\n : null;\n\n const hasError = context.hasError || !!errorMessage;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <>\n <StyledContainer style={containerStyle}>\n <HiddenInput\n {...other}\n aria-describedby={describedBy}\n checked={isChecked}\n data-testid={testId}\n disabled={disabled}\n id={id}\n ref={ref}\n type=\"checkbox\"\n onChange={handleChange}\n />\n <StyledLabel htmlFor={id} isInverse={isInverse} style={labelStyle}>\n <StyledFakeInput\n isChecked={isChecked}\n color={color}\n disabled={disabled}\n hasError={hasError}\n isIndeterminate={isIndeterminate}\n isInverse={isInverse}\n style={inputStyle}\n theme={theme}\n >\n {isIndeterminate ? (\n <IndeterminateCheckBoxIcon\n testId=\"indeterminateIcon\"\n size={theme.iconSizes.medium}\n />\n ) : isChecked ? (\n <CheckBoxIcon size={theme.iconSizes.medium} />\n ) : (\n <CheckBoxOutlineBlankIcon size={theme.iconSizes.medium} />\n )}\n </StyledFakeInput>\n {isTextVisuallyHidden ? (\n <HiddenLabelText>{labelText}</HiddenLabelText>\n ) : (\n labelText\n )}\n </StyledLabel>\n <Announce>\n {showAnnounce && <VisuallyHidden>{announceText}</VisuallyHidden>}\n </Announce>\n </StyledContainer>\n {!!errorMessage && (\n <InputMessage\n id={descriptionId}\n hasError\n isInverse={isInverse}\n style={{ paddingLeft: theme.spaceScale.spacing08 }}\n >\n {errorMessage}\n </InputMessage>\n )}\n </>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\n/**\n * @children required\n */\nexport interface TableProps extends React.HTMLAttributes<HTMLTableElement> {\n /**\n * Relative padding of the table cells\n * @default TableDensity.normal\n */\n density?: TableDensity;\n /**\n * If true, row will be visually highlighted on hover\n */\n hasHoverStyles?: boolean;\n /**\n * If true, columns will have vertical borders\n */\n hasVerticalBorders?: boolean;\n /**\n * If true, every other row will have a background color\n */\n hasZebraStripes?: boolean;\n isInverse?: boolean;\n /**\n * @internal\n */\n isSelectable?: boolean;\n /**\n * Minimum width for the table in pixels\n * @default 600\n */\n minWidth?: number;\n rowCount?: number;\n selectedItems?: Array<number>;\n testId?: string;\n}\n\nexport enum TableDensity {\n compact = 'compact',\n loose = 'loose',\n normal = 'normal', // default\n}\n\nexport enum TableCellAlign {\n center = 'center',\n inherit = 'inherit',\n justify = 'justify',\n left = 'left', // default\n right = 'right',\n}\n\nexport enum TableSortDirection {\n ascending = 'ascending',\n descending = 'descending',\n none = 'none', // default\n}\n\nexport enum TableRowColor {\n danger = 'danger',\n info = 'info',\n success = 'success',\n warning = 'warning',\n}\n\ninterface TableContextInterface {\n density?: TableDensity;\n hasHoverStyles?: boolean;\n hasVerticalBorders?: boolean;\n hasZebraStripes?: boolean;\n isInverse?: boolean;\n isSelectable?: boolean;\n rowCount?: number;\n selectedItems?: Array<number>;\n}\n\nexport const TableContext = React.createContext<TableContextInterface>({\n density: TableDensity.normal,\n hasHoverStyles: false,\n hasZebraStripes: false,\n hasVerticalBorders: false,\n isInverse: false,\n isSelectable: false,\n rowCount: 0,\n selectedItems: [],\n});\n\nconst TableContainer = styled.div`\n overflow-x: auto;\n`;\n\nconst StyledTable = styled.table<{ isInverse?: boolean; minWidth: number }>`\n border-collapse: collapse;\n border-spacing: 0;\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: table;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n min-width: ${props => props.minWidth}px;\n width: 100%;\n`;\n\nexport const Table = React.forwardRef<HTMLTableElement, TableProps>(\n (props, ref) => {\n const {\n children,\n density,\n hasHoverStyles,\n hasVerticalBorders,\n hasZebraStripes,\n isSelectable,\n minWidth,\n rowCount,\n selectedItems,\n testId,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <TableContext.Provider\n value={{\n density,\n hasHoverStyles,\n hasZebraStripes,\n hasVerticalBorders,\n isInverse: isInverse,\n isSelectable,\n }}\n >\n <TableContainer>\n <StyledTable\n {...other}\n data-testid={testId}\n isInverse={isInverse}\n minWidth={minWidth || theme.breakpoints.small}\n ref={ref}\n theme={theme}\n >\n {children}\n </StyledTable>\n </TableContainer>\n </TableContext.Provider>\n );\n }\n);\n","import * as React from 'react';\n\n/**\n * @children required\n */\nexport interface TableBodyProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n testId?: string;\n}\n\nexport const TableBody = React.forwardRef<\n HTMLTableSectionElement,\n TableBodyProps\n>((props, ref) => {\n const { children, testId, ...other } = props;\n return (\n <tbody {...other} ref={ref} data-testid={testId}>\n {children}\n </tbody>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { TableCellAlign, TableContext, TableDensity } from './Table';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface TableCellProps\n extends React.HTMLAttributes<HTMLTableCellElement> {\n /**\n * Text alignment of the cell content. Right alignment should be used for numeric values\n * @default TableCellAlign.left\n */\n align?: TableCellAlign;\n testId?: string;\n /**\n * Width of the component, set by CSS\n * @default auto\n */\n width?: string | number;\n}\n\nexport const baseTableCellStyle = props => css`\n border-right: ${props.hasVerticalBorders ? '1px solid' : 0};\n border-color: ${props.isInverse\n ? props.theme.colors.tint04\n : props.theme.colors.neutral06};\n display: table-cell;\n font-size: inherit;\n line-height: inherit;\n padding: ${buildCellPaddingStyle(props.density, props.theme)};\n text-align: ${props.textAlign};\n\n &:last-of-type {\n border-right: 0;\n }\n`;\n\nexport function buildCellPaddingStyle(density, theme: any) {\n switch (density) {\n case 'compact':\n return `${theme.spaceScale.spacing02} ${theme.spaceScale.spacing03}`;\n case 'loose':\n return `${theme.spaceScale.spacing06} ${theme.spaceScale.spacing08}`;\n\n default:\n return `${theme.spaceScale.spacing04} ${theme.spaceScale.spacing05}`;\n }\n}\n\nconst StyledCell = styled.td<{\n density?: TableDensity;\n hasVerticalBorders?: boolean;\n isInverse?: boolean;\n textAlign?: TableCellAlign;\n theme?: any;\n width?: string;\n}>`\n ${baseTableCellStyle}\n\n ${props =>\n props.width &&\n css`\n width: ${props.width};\n `}\n`;\n\nexport const TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n (props, ref) => {\n const { align, children, testId, width, ...other } = props;\n const tableContext = React.useContext(TableContext);\n const theme = React.useContext(ThemeContext);\n\n const widthString = typeof width === 'number' ? `${width}px` : width;\n\n return (\n <StyledCell\n {...other}\n data-testid={testId}\n density={tableContext.density}\n hasVerticalBorders={tableContext.hasVerticalBorders}\n isInverse={tableContext.isInverse}\n ref={ref}\n textAlign={align || TableCellAlign.left}\n theme={theme}\n width={widthString}\n >\n {children}\n </StyledCell>\n );\n }\n);\n\nTableCell.displayName = 'TableCell';\n","import * as React from 'react';\n\n/**\n * @children required\n */\nexport interface TableHeadProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n testId?: string;\n}\n\nexport const TableHead = React.forwardRef<\n HTMLTableSectionElement,\n TableHeadProps\n>((props, ref) => {\n const { children, testId, ...other } = props;\n return (\n <thead {...other} ref={ref} data-testid={testId}>\n {children}\n </thead>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { baseTableCellStyle, buildCellPaddingStyle } from './TableCell';\nimport {\n TableCellAlign,\n TableContext,\n TableDensity,\n TableSortDirection,\n} from './Table';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { SortDoubleArrowIcon, SouthIcon, NorthIcon } from 'react-magma-icons';\n\nexport interface TableHeaderCellProps\n extends React.HTMLAttributes<HTMLTableHeaderCellElement> {\n /**\n * Text alignment of the cell content. Right alignment should be used for numeric values\n * @default TableCellAlign.left\n */\n align?: TableCellAlign;\n /**\n * @default false\n * If true, style as a row header rather than a column header\n */\n isRowHeader?: boolean;\n /**\n * If true, the header will render a button for sorting\n */\n isSortable?: boolean;\n /**\n * Event that fires when clicking the table header cell sort button\n */\n onSort?: () => void;\n /**\n * Direction and range of data cells that are covered by the header cell\n * @default TableHeaderCellScope.col\n */\n scope?: TableHeaderCellScope;\n /**\n * Direction by which the column is sorted\n * @default TableSortDirection.none\n */\n sortDirection?: TableSortDirection;\n testId?: string;\n /**\n * Width of the component, set by CSS\n * @default auto\n */\n width?: string | number;\n}\n\nexport enum TableHeaderCellScope {\n col = 'col',\n colgroup = 'colgroup',\n row = 'row',\n rowgroup = 'rowgroup',\n}\n\nconst StyledTableHeaderCell = styled.th<{\n density?: TableDensity;\n hasVerticalBorders?: boolean;\n isInverse?: boolean;\n isRowHeader?: boolean;\n isSortable?: boolean;\n textAlign?: TableCellAlign;\n width?: string;\n}>`\n ${props => {\n return props.isRowHeader\n ? {}\n : {\n background: props.isInverse\n ? props.theme.colors.tint03\n : props.theme.colors.neutral07,\n borderBottom: '2px solid',\n fontWeight: 'bold',\n verticalAlign: 'bottom',\n };\n }}\n\n ${baseTableCellStyle}\n\n ${props =>\n props.isSortable &&\n css`\n padding: 0;\n `}\n\n ${props =>\n props.width &&\n css`\n width: ${props.width};\n `}\n`;\n\nconst SortButton = styled.button<{\n density?: TableDensity;\n isInverse?: boolean;\n textAlign?: TableCellAlign;\n}>`\n align-items: flex-end;\n background: none;\n border: 0;\n color: inherit;\n display: flex;\n justify-content: ${props =>\n props.textAlign === TableCellAlign.right ? 'flex-end' : 'flex-start'};\n margin: 0;\n padding: ${props => buildCellPaddingStyle(props.density, props.theme)}};\n text-align: left;\n width: 100%;\n\n &:focus {\n outline: 2px dotted\n ${props =>\n props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: -2px;\n }\n\n &:hover,\n &:focus {\n background: ${props =>\n props.isInverse ? props.theme.colors.tint : props.theme.colors.neutral06};\n\n svg {\n fill: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n }\n }\n`;\n\nconst IconWrapper = styled.span`\n padding-left: ${props => props.theme.spaceScale.spacing03};\n position: relative;\n top: ${props => props.theme.spaceScale.spacing02};\n`;\n\nexport const TableHeaderCell = React.forwardRef<\n HTMLTableCellElement,\n TableHeaderCellProps\n>((props, ref) => {\n const {\n align,\n children,\n isRowHeader = false,\n isSortable,\n onSort,\n scope = isRowHeader ? TableHeaderCellScope.row : TableHeaderCellScope.col,\n sortDirection,\n testId,\n width,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const tableContext = React.useContext(TableContext);\n\n function handleSort() {\n onSort && typeof onSort === 'function' && onSort();\n }\n\n const SortIcon =\n sortDirection === TableSortDirection.ascending ? (\n <SouthIcon size={theme.iconSizes.small} />\n ) : sortDirection === TableSortDirection.descending ? (\n <NorthIcon size={theme.iconSizes.small} />\n ) : (\n <SortDoubleArrowIcon\n color={\n tableContext.isInverse\n ? theme.colors.neutral06\n : theme.colors.neutral04\n }\n size={theme.iconSizes.small}\n />\n );\n\n const widthString = typeof width === 'number' ? `${width}px` : width;\n\n return (\n <StyledTableHeaderCell\n {...other}\n data-testid={testId}\n density={tableContext.density}\n hasVerticalBorders={tableContext.hasVerticalBorders}\n isInverse={tableContext.isInverse}\n ref={ref}\n isRowHeader={isRowHeader}\n isSortable={isSortable}\n scope={scope}\n textAlign={align || TableCellAlign.left}\n theme={theme}\n width={widthString}\n >\n {isSortable ? (\n <SortButton\n density={tableContext.density}\n isInverse={tableContext.isInverse}\n onClick={handleSort}\n textAlign={align || TableCellAlign.left}\n theme={theme}\n >\n <span>{children}</span>\n <IconWrapper theme={theme}>{SortIcon}</IconWrapper>\n </SortButton>\n ) : (\n <>{children}</>\n )}\n </StyledTableHeaderCell>\n );\n});\n\nTableHeaderCell.displayName = 'TableHeaderCell';\n","import React from 'react';\nimport { I18nContext } from '../../i18n';\nimport { useControlled } from '../../hooks/useControlled';\n\nexport interface UsePaginationProps {\n /**\n * The total number of Pagination buttons\n * @default 1\n */\n count?: number;\n /**\n * Page selected by default when the component is uncontrolled\n */\n defaultPage?: number;\n /**\n * If true, disables all of the Pagination buttons\n * @default false\n */\n disabled?: boolean;\n /**\n * If true, hides the next page button\n * @default false\n */\n hideNextButton?: boolean;\n /**\n * If true, hides the previous page button\n * @default false\n */\n hidePreviousButton?: boolean;\n /**\n * Number of page buttons before and after the current page\n * @default 1\n */\n numberOfAdjacentPages?: number;\n /**\n * Number of page buttons at the beginning and end of the page number buttons list\n * @default 1\n */\n numberOfEdgePages?: number;\n /**\n * Event that fires when the page number changes\n */\n onPageChange?: (event: React.SyntheticEvent, newPage: number) => void;\n /**\n * Current page number\n */\n page?: number;\n /**\n * If true, shows the first page button\n * @default false\n */\n showFirstButton?: boolean;\n /**\n * If true, shows the last page button\n * @default false\n */\n showLastButton?: boolean;\n}\n\nexport function usePagination(props: Partial<UsePaginationProps> = {}) {\n const {\n count = 1,\n defaultPage = 1,\n disabled = false,\n hideNextButton = false,\n hidePreviousButton = false,\n numberOfAdjacentPages = 1,\n numberOfEdgePages = 1,\n onPageChange: handleChange,\n page: pageProp,\n showFirstButton = false,\n showLastButton = false,\n ...other\n } = props;\n\n const i18n = React.useContext(I18nContext);\n\n const [page, setPageState] = useControlled({\n controlled: pageProp,\n default: defaultPage,\n });\n\n const handleClick = (event, value) => {\n if (!pageProp) {\n setPageState(value);\n }\n\n handleChange &&\n typeof handleChange === 'function' &&\n handleChange(event, value);\n };\n\n const range = (start, end) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, i) => start + i);\n };\n\n const startPages = range(1, Math.min(numberOfEdgePages, count));\n const endPages = range(\n Math.max(count - numberOfEdgePages + 1, numberOfEdgePages + 1),\n count\n );\n\n const siblingsStart = Math.max(\n Math.min(\n // Natural start\n page - numberOfAdjacentPages,\n // Lower boundary when page is high\n count - numberOfEdgePages - numberOfAdjacentPages * 2 - 1\n ),\n // Greater than startPages\n numberOfEdgePages + 2\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n // Natural end\n page + numberOfAdjacentPages,\n // Upper boundary when page is low\n numberOfEdgePages + numberOfAdjacentPages * 2 + 2\n ),\n // Less than endPages\n endPages.length > 0 ? endPages[0] - 2 : count - 1\n );\n\n // Basic list of items to render\n const itemList = [\n ...(showFirstButton ? ['first'] : []),\n ...(hidePreviousButton ? [] : ['previous']),\n ...startPages,\n\n // Start ellipsis\n ...(siblingsStart > numberOfEdgePages + 2\n ? ['start-ellipsis']\n : numberOfEdgePages + 1 < count - numberOfEdgePages\n ? [numberOfEdgePages + 1]\n : []),\n\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n\n // End ellipsis\n ...(siblingsEnd < count - numberOfEdgePages - 1\n ? ['end-ellipsis']\n : count - numberOfEdgePages > numberOfEdgePages\n ? [count - numberOfEdgePages]\n : []),\n\n ...endPages,\n ...(hideNextButton ? [] : ['next']),\n ...(showLastButton ? ['last'] : []),\n ];\n\n // Map the button type to its page number\n const buttonPage = type => {\n switch (type) {\n case 'first':\n return 1;\n case 'previous':\n return page - 1;\n case 'next':\n return page + 1;\n case 'last':\n return count;\n default:\n return null;\n }\n };\n\n // Convert the basic item list to PaginationItem props objects\n const pageButtons = itemList.map(item => {\n return typeof item === 'number'\n ? {\n onClick: event => {\n handleClick(event, item);\n },\n type: 'page',\n page: item,\n isSelected: item === page,\n disabled,\n 'aria-current': item === page ? 'true' : undefined,\n 'aria-label': `${i18n.pagination.pageButtonLabel} ${item}`,\n }\n : {\n onClick: event => {\n handleClick(event, buttonPage(item));\n },\n type: item,\n page: buttonPage(item),\n isSelected: false,\n disabled:\n disabled ||\n (item.indexOf('ellipsis') === -1 &&\n (item === 'next' || item === 'last' ? page >= count : page <= 1)),\n };\n });\n\n return {\n page,\n pageButtons,\n setPageState,\n ...other,\n };\n}\n","import React from 'react';\n\nexport function registerDescendant(\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n) {\n if (\n itemRefArray.current.find(\n ({ current: item }) => item === itemRef.current\n ) == null\n ) {\n const index = itemRefArray.current.findIndex(({ current: item }) => {\n if (!item || !itemRef.current) return false;\n\n return Boolean(\n item.compareDocumentPosition(itemRef.current) &\n Node.DOCUMENT_POSITION_PRECEDING\n );\n });\n\n const newItem = itemRef;\n\n itemRefArray.current =\n index === -1\n ? [...itemRefArray.current, newItem]\n : [\n ...itemRefArray.current.slice(0, index),\n newItem,\n ...itemRefArray.current.slice(index),\n ];\n }\n}\n\nexport function unregisterDescendant(\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n) {\n if (!itemRef.current) return;\n\n itemRefArray.current = itemRefArray.current.filter(\n item => itemRef.current !== item.current\n );\n}\n\nexport function useDescendants(): [\n React.MutableRefObject<React.MutableRefObject<Element>[]>,\n (\n refArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n ref: React.MutableRefObject<Element>\n ) => void,\n (\n refArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n ref: React.MutableRefObject<Element>\n ) => void\n] {\n const itemRefArray = React.useRef<React.MutableRefObject<Element>[]>([]);\n\n return [itemRefArray, registerDescendant, unregisterDescendant];\n}","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { useDescendants } from '../../hooks/useDescendants';\nimport { useForkedRef } from '../../utils';\n\nexport enum DropdownDropDirection {\n down = 'down', //default\n left = 'left',\n right = 'right',\n up = 'up',\n}\n\nexport enum DropdownAlignment {\n start = 'start', //default\n end = 'end',\n}\n\nexport interface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Index of the item that will active/selected. If none is provided, no item will appear active\n * @default -1\n */\n activeIndex?: number;\n /**\n * Alignment of the dropdown content\n * @default `DropdownAlignment.start`\n */\n alignment?: DropdownAlignment;\n /**\n * Position of the dropdown content\n * @default `DropdownDropDirection.down`\n */\n dropDirection?: DropdownDropDirection;\n /**\n * Max-height of dropdown content\n * @default 250px\n */\n maxHeight?: string | number;\n /**\n * Function called on dropdown close before focusing the toggle button\n * @deprecated true\n */\n onBeforeShiftFocus?: (event: React.SyntheticEvent) => void;\n /**\n * Function called when closing the dropdown menu\n */\n onClose?: (event: React.SyntheticEvent) => void;\n /**\n * Function called when opening the dropdown menu\n */\n onOpen?: () => void;\n testId?: string;\n /**\n * Width of menu\n * @default Width of longest menu item\n */\n width?: string | number;\n}\n\nconst Container = styled.div`\n display: inline-block;\n position: relative;\n`;\n\ninterface DropdownContextInterface {\n activeItemIndex?: number;\n alignment?: DropdownAlignment;\n closeDropdown?: (event: React.SyntheticEvent | React.KeyboardEvent) => void;\n dropdownButtonId?: React.MutableRefObject<string>;\n dropDirection?: DropdownDropDirection;\n handleDropdownBlur?: (event: React.FocusEvent) => void;\n itemRefArray?: React.MutableRefObject<React.MutableRefObject<Element>[]>;\n isFixedWidth?: boolean;\n isOpen?: boolean;\n maxHeight?: string;\n menuRef?: any;\n openDropdown?: () => void;\n registerDropdownMenuItem: (\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n ) => void;\n setActiveItemIndex?: React.Dispatch<React.SetStateAction<number>>;\n setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n toggleRef?: any;\n width?: string;\n}\n\nexport const DropdownContext = React.createContext<DropdownContextInterface>({\n isOpen: false,\n registerDropdownMenuItem: (elements, element) => {},\n setIsOpen: () => false,\n});\n\nexport const useDropdownContext = () => React.useContext(DropdownContext);\n\nexport const Dropdown = React.forwardRef<HTMLDivElement, DropdownProps>(\n (props, forwardedRef) => {\n const {\n activeIndex,\n alignment,\n children,\n dropDirection,\n maxHeight,\n onBeforeShiftFocus,\n onClose,\n onOpen,\n testId,\n width,\n ...other\n } = props;\n\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n\n const [activeItemIndex, setActiveItemIndex] = React.useState<number>(\n activeIndex || -1\n );\n\n const ownRef = React.useRef<any>();\n const toggleRef = React.useRef<HTMLButtonElement>();\n const menuRef = React.useRef<any>([]);\n const dropdownButtonId = React.useRef<string>('');\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n const [itemRefArray, registerDropdownMenuItem] = useDescendants();\n\n React.useEffect(() => {\n if (activeIndex >= 0) {\n setActiveItemIndex(activeIndex);\n }\n }, [activeIndex]);\n\n function openDropdown() {\n const [filteredItems] = getFilteredItem();\n\n setIsOpen(true);\n\n setTimeout(() => {\n filteredItems.length > 0 &&\n filteredItems[0].current &&\n filteredItems[0].current.focus();\n }, 0);\n\n onOpen && typeof onOpen === 'function' && onOpen();\n }\n\n function closeDropdown(event) {\n setIsOpen(false);\n\n if (onBeforeShiftFocus && typeof onBeforeShiftFocus === 'function') {\n event.preventMagmaFocus = handlePreventMagmaFocus;\n onBeforeShiftFocus(event);\n }\n\n onClose && typeof onClose === 'function' && onClose(event);\n }\n\n function getFilteredItem(): [any, number] {\n const filteredItems = itemRefArray.current.filter(\n itemRef => itemRef.current\n );\n const filteredItemIndex = filteredItems\n .map(filteredItem => filteredItem.current)\n .indexOf(document.activeElement);\n\n return [filteredItems, filteredItemIndex];\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeDropdown(event);\n }\n\n if (event.key === 'ArrowDown') {\n const [filteredItems, filteredItemIndex] = getFilteredItem();\n\n if (filteredItems.length === 0) {\n return;\n }\n\n event.preventDefault();\n\n if (\n filteredItemIndex === -1 ||\n filteredItemIndex === filteredItems.length - 1\n ) {\n filteredItems[0].current.focus();\n } else {\n filteredItems[filteredItemIndex + 1].current.focus();\n }\n }\n\n if (event.key === 'ArrowUp') {\n const [filteredItems, filteredItemIndex] = getFilteredItem();\n\n if (filteredItems.length === 0) {\n return;\n }\n\n event.preventDefault();\n\n if (filteredItemIndex === -1 || filteredItemIndex === 0) {\n filteredItems[filteredItems.length - 1].current.focus();\n } else {\n filteredItems[filteredItemIndex - 1].current.focus();\n }\n }\n }\n\n function handleDropdownBlur(event: React.FocusEvent) {\n const { currentTarget, relatedTarget } = event;\n\n const isInMenu =\n relatedTarget && currentTarget.contains(relatedTarget as Node);\n\n if (!isInMenu && isOpen) {\n closeDropdown(event);\n }\n }\n\n function handlePreventMagmaFocus() {}\n\n const maxHeightString =\n typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\n\n const widthString = typeof width === 'number' ? `${width}px` : width;\n\n return (\n <DropdownContext.Provider\n value={{\n activeItemIndex,\n alignment,\n closeDropdown,\n dropdownButtonId,\n dropDirection,\n handleDropdownBlur,\n itemRefArray,\n isFixedWidth: !!width,\n isOpen,\n maxHeight: maxHeightString,\n menuRef,\n openDropdown,\n registerDropdownMenuItem,\n setActiveItemIndex,\n setIsOpen,\n toggleRef,\n width: widthString,\n }}\n >\n <Container\n {...other}\n ref={ref}\n data-testid={testId}\n onKeyDown={isOpen ? handleKeyDown : null}\n onBlur={handleDropdownBlur}\n >\n {children}\n </Container>\n </DropdownContext.Provider>\n );\n }\n);\n","import { css } from '@emotion/core';\nimport * as React from 'react';\nimport { IconButton, ButtonIconPosition } from '../IconButton';\nimport {\n ArrowDropUpIcon,\n ArrowLeftIcon,\n ArrowRightIcon,\n ArrowDropDownIcon,\n IconProps,\n} from 'react-magma-icons';\nimport { DropdownContext, DropdownDropDirection } from './Dropdown';\nimport { Omit, useForkedRef, useGenerateId, XOR } from '../../utils';\nimport { ButtonProps, ButtonSize } from '../Button';\nimport { useIsInverse } from '../../inverse';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\n\nexport interface IconOnlyDropdownButtonProps\n extends Omit<ButtonProps, 'children'> {\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * The text the screen reader will announce. Required for icon-only buttons\n */\n 'aria-label': string;\n}\n\nexport interface IconTextDropdownButtonProps extends ButtonProps {\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * Position within the button for the icon to appear\n * @default `ButtonIconPosition.right`\n */\n iconPosition?: ButtonIconPosition;\n /**\n * The content of the component\n */\n children: React.ReactChild | React.ReactChild[];\n}\n\nexport type DropdownButtonProps = XOR<\n IconOnlyDropdownButtonProps,\n IconTextDropdownButtonProps\n>;\n\nfunction instanceOfIconOnlyDropdownButton(\n object: any\n): object is IconOnlyDropdownButtonProps {\n return 'icon' in object && !('children' in object);\n}\n\nfunction getButtonPadding(theme: ThemeInterface, size?: ButtonSize) {\n switch (size) {\n case 'small':\n return theme.spaceScale.spacing02;\n case 'large':\n return theme.spaceScale.spacing05;\n default:\n return theme.spaceScale.spacing03;\n }\n}\n\nconst StyledIconButton = styled(IconButton)`\n ${props =>\n props.iconPosition === ButtonIconPosition.right &&\n props.children &&\n css`\n padding-right: ${getButtonPadding(props.theme, props.size)};\n `}\n ${props =>\n props.iconPosition === ButtonIconPosition.left &&\n props.children &&\n css`\n padding-left: ${getButtonPadding(props.theme, props.size)};\n `}\n`;\n\nexport const DropdownButton = React.forwardRef<\n HTMLButtonElement,\n DropdownButtonProps\n>((props, forwardedRef) => {\n const context = React.useContext(DropdownContext);\n const theme = React.useContext(ThemeContext);\n\n context.dropdownButtonId.current = useGenerateId(props.id);\n\n const ref = useForkedRef(context.toggleRef, forwardedRef);\n\n function getButtonIcon(dropDirection: DropdownDropDirection) {\n switch (dropDirection) {\n case DropdownDropDirection.left:\n return <ArrowLeftIcon testId=\"caretLeft\" />;\n case DropdownDropDirection.right:\n return <ArrowRightIcon testId=\"caretRight\" />;\n case DropdownDropDirection.up:\n return <ArrowDropUpIcon testId=\"caretUp\" />;\n\n default:\n return <ArrowDropDownIcon testId=\"caretDown\" />;\n }\n }\n\n const buttonIcon = getButtonIcon(context.dropDirection);\n\n let children;\n const { icon = buttonIcon, iconPosition, ...other } = props;\n\n const isInverse = useIsInverse(props.isInverse);\n\n if (!instanceOfIconOnlyDropdownButton(props)) {\n children = props.children;\n }\n\n function handleClick(event: React.SyntheticEvent) {\n if (context.isOpen) {\n context.closeDropdown(event);\n } else {\n context.openDropdown();\n }\n }\n\n const iconPositionToUse = props.icon\n ? iconPosition\n ? iconPosition\n : ButtonIconPosition.left\n : context.dropDirection === DropdownDropDirection.left\n ? ButtonIconPosition.left\n : ButtonIconPosition.right;\n\n return (\n <StyledIconButton\n {...other}\n aria-expanded={context.isOpen}\n aria-haspopup=\"true\"\n icon={icon}\n iconPosition={iconPositionToUse}\n id={context.dropdownButtonId.current}\n isInverse={isInverse}\n onClick={handleClick}\n ref={ref}\n theme={theme}\n >\n {children}\n </StyledIconButton>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { Card } from '../Card';\nimport {\n DropdownContext,\n DropdownAlignment,\n DropdownDropDirection,\n} from './Dropdown';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useForkedRef } from '../../utils';\n\n/**\n * @children required\n */\nexport interface DropdownContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nconst StyledCard = styled(Card)<{\n alignment?: DropdownAlignment;\n dropDirection?: DropdownDropDirection;\n isOpen?: boolean;\n maxHeight?: string;\n width?: string;\n}>`\n display: ${props => (props.isOpen ? 'block' : 'none')};\n left: ${props => props.theme.spaceScale.spacing02};\n max-height: ${props =>\n props.maxHeight ? props.maxHeight : props.theme.dropdown.content.maxHeight};\n opacity: ${props => (props.isOpen ? '1' : '0')};\n outline: 0;\n overflow-y: auto;\n padding: ${props => props.theme.spaceScale.spacing03} 0;\n position: absolute;\n transition: opacity 0.3s;\n white-space: nowrap;\n z-index: 2;\n\n ${props =>\n props.width &&\n css`\n white-space: normal;\n width: ${props.width};\n `}\n\n ${props =>\n props.dropDirection === 'up' &&\n css`\n top: auto;\n bottom: 100%;\n `}\n\n ${props =>\n props.dropDirection === 'left' &&\n css`\n left: auto;\n right: 100%;\n top: ${props.theme.spaceScale.spacing02};\n `}\n\n ${props =>\n props.dropDirection === 'right' &&\n css`\n left: 100%;\n top: ${props.theme.spaceScale.spacing02};\n `}\n\n ${props =>\n props.alignment === 'end' &&\n props.dropDirection !== 'left' &&\n props.dropDirection !== 'right' &&\n css`\n left: auto;\n right: ${props.theme.spaceScale.spacing02};\n `}\n\n ${props =>\n props.alignment === 'end' &&\n (props.dropDirection === 'left' || props.dropDirection === 'right') &&\n css`\n bottom: ${props.theme.spaceScale.spacing02};\n top: auto;\n `}\n`;\n\nconst StyledDiv = styled.div`\n padding: ${props => props.theme.spaceScale.spacing02} 0;\n`;\n\nexport const DropdownContent = React.forwardRef<\n HTMLDivElement,\n DropdownContentProps\n>((props, forwardedRef) => {\n const { children, testId, ...other } = props;\n const context = React.useContext(DropdownContext);\n const theme = React.useContext(ThemeContext);\n const ref = useForkedRef(forwardedRef, context.menuRef);\n\n return (\n <StyledCard\n {...other}\n alignment={context.alignment}\n dropDirection={context.dropDirection}\n hasDropShadow\n isInverse={false}\n isOpen={context.isOpen}\n maxHeight={context.maxHeight}\n ref={ref}\n tabIndex={-1}\n testId={testId || 'dropdownContent'}\n theme={theme}\n width={context.width}\n >\n <StyledDiv\n aria-labelledby={context.dropdownButtonId.current}\n role=\"menu\"\n theme={theme}\n >\n {children}\n </StyledDiv>\n </StyledCard>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface DropdownDividerProps\n extends React.HTMLAttributes<HTMLHRElement> {\n testId?: string;\n}\n\nconst StyledHr = styled.hr`\n background: ${props => props.theme.colors.neutral06};\n border: 0;\n height: 1px;\n margin: ${props => props.theme.spaceScale.spacing02} 0;\n`;\n\nexport const DropdownDivider: React.FunctionComponent<DropdownDividerProps> = (\n props: DropdownDividerProps\n) => {\n const { testId, ...other } = props;\n\n const theme = React.useContext(ThemeContext);\n return <StyledHr {...other} data-testid={testId} theme={theme} />;\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\n/**\n * @children required\n */\nexport interface DropdownHeaderProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nconst StyledDiv = styled.div`\n color: ${props => props.theme.colors.neutral03};\n font-size: ${props => props.theme.typeScale.size01.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size01.letterSpacing};\n line-height: ${props => props.theme.typeScale.size01.lineHeight};\n font-weight: bold;\n margin: 0;\n padding: ${props =>\n `${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing05} ${props.theme.spaceScale.spacing02}`};\n text-transform: uppercase;\n`;\n\nexport const DropdownHeader = React.forwardRef<\n HTMLDivElement,\n DropdownHeaderProps\n>((props, ref) => {\n const { children, testId, ...other } = props;\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledDiv {...other} data-testid={testId} theme={theme}>\n {children}\n </StyledDiv>\n );\n});\n","import * as React from 'react';\nimport { useGenerateId } from '../../utils';\nimport { DropdownHeader } from './DropdownHeader';\n\n/**\n * @children required\n */\nexport interface DropdownMenuGroupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Header text to use for the menu group\n */\n header?: React.ReactNode;\n}\n\nexport const DropdownMenuGroup: React.FunctionComponent<DropdownMenuGroupProps> = (\n props: DropdownMenuGroupProps\n) => {\n const { children, id: defaultId, header, ...other } = props;\n\n const id = useGenerateId(defaultId);\n\n return (\n <div {...other} aria-labelledby={id} role=\"group\">\n {header && <DropdownHeader id={id}>{header}</DropdownHeader>}\n {children}\n </div>\n );\n};\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { DropdownContext } from './Dropdown';\nimport { IconProps, CheckIcon } from 'react-magma-icons';\nimport { Omit, useForkedRef } from '../../utils';\n\nexport interface DropdownMenuItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * Leading icon for the menu item\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * @internal\n */\n index?: number;\n /**\n * @internal\n */\n isActive?: boolean;\n /**\n * If true, item will be disabled; it will appear dimmed and onClick event (or any other events) will not fire\n * @default false\n */\n disabled?: boolean;\n /**\n * Action that fires when the menu item is clicked. If the menuitem also has a value prop, the value will be passed to the onClick handler\n */\n onClick?: (value?: string | number) => void;\n /**\n * Value of the component, gets passed to the onClick event\n */\n value?: string | number;\n}\n\nexport const MenuItemStyles = props => {\n return css`\n align-items: center;\n color: ${props.disabled\n ? props.theme.colors.disabledText\n : props.theme.colors.neutral};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n display: flex;\n font-size: ${props.theme.typeScale.size03.fontSize};\n line-height: ${props.theme.typeScale.size03.lineHeight};\n margin: 0;\n padding: ${props.isInactive\n ? `${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing05} ${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing11}`\n : `${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing05}`};\n white-space: ${props.isFixedWidth ? 'normal' : 'nowrap'};\n\n &:hover,\n &:focus {\n background: ${props.disabled ? 'none' : props.theme.colors.neutral07};\n color: ${props.disabled\n ? props.theme.colors.disabledText\n : props.theme.colors.neutral};\n }\n\n &:focus {\n outline-offset: -3px;\n }\n `;\n};\n\nconst StyledItem = styled.div<{\n as?: string;\n disabled?: boolean;\n isFixedWidth?: boolean;\n isInactive?: boolean;\n value?: string | number;\n}>`\n ${MenuItemStyles}\n`;\n\nexport const IconWrapper = styled.span`\n color: ${props => props.theme.colors.neutral03};\n display: inline-flex;\n margin-right: ${props => props.theme.spaceScale.spacing05};\n\n svg {\n height: ${props => props.theme.iconSizes.medium}px;\n width: ${props => props.theme.iconSizes.medium}px;\n }\n`;\n\nexport const DropdownMenuItem = React.forwardRef<\n HTMLDivElement,\n DropdownMenuItemProps\n>((props, forwardedRef) => {\n const { children, disabled, icon, onClick, value, ...other } = props;\n\n const ownRef = React.useRef<HTMLDivElement>();\n const theme = React.useContext(ThemeContext);\n const context = React.useContext(DropdownContext);\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n const index = context.itemRefArray.current.findIndex(({ current: item }) => {\n if (!item || !ownRef.current) return false;\n\n return item === ownRef.current;\n });\n\n function handleClick(event: React.SyntheticEvent | React.KeyboardEvent) {\n if (context.activeItemIndex >= 0) {\n context.setActiveItemIndex(index);\n }\n\n if (onClick && !disabled) {\n onClick(value);\n }\n\n if (!disabled && context.activeItemIndex < 0) {\n context.closeDropdown(event);\n }\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n }\n\n const isActive =\n context.activeItemIndex >= 0 && context.activeItemIndex === index;\n\n const isInactive =\n context.activeItemIndex >= 0 && context.activeItemIndex !== index;\n\n React.useEffect(() => {\n if (!disabled)\n context.registerDropdownMenuItem(context.itemRefArray, ownRef);\n }, []);\n\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledItem\n {...other}\n aria-disabled={disabled}\n disabled={disabled}\n isFixedWidth={context.isFixedWidth}\n isInactive={isInactive}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={disabled ? null : ref}\n role=\"menuitem\"\n theme={theme}\n tabIndex={disabled ? null : -1}\n value={value}\n >\n {icon && <IconWrapper theme={theme}>{icon}</IconWrapper>}\n {isActive && (\n <IconWrapper theme={theme}>\n <CheckIcon aria-label={i18n.dropdown.menuItemSelectedAriaLabel} />\n </IconWrapper>\n )}\n {children}\n </StyledItem>\n );\n});\n\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n","import * as React from 'react';\n\nimport { Button, ButtonShape, ButtonStyles, ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ArrowDropUpIcon, ArrowDropDownIcon } from 'react-magma-icons';\nimport { DropdownContext, DropdownDropDirection } from './Dropdown';\nimport { I18nContext } from '../../i18n';\nimport { useForkedRef, useGenerateId } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface DropdownSplitButtonProps extends ButtonStyles {\n /**\n * The text the screen reader will announce. Required for icon-only buttons\n */\n 'aria-label': string;\n /**\n * The content of the component. If no children are provided, the button will render in an icon only style\n */\n children?: any;\n /**\n * Icon to display within the component\n */\n id?: string;\n /**\n * If true, element is disabled\n */\n disabled?: boolean;\n /**\n * Function that fires when the button is clicked\n */\n onClick?: () => void;\n}\n\nexport const DropdownSplitButton = React.forwardRef<\n HTMLButtonElement,\n DropdownSplitButtonProps\n>((props, forwardedRef) => {\n const {\n 'aria-label': ariaLabel,\n children,\n id,\n variant = ButtonVariant.solid,\n onClick,\n ...other\n } = props;\n\n const context = React.useContext(DropdownContext);\n\n const theme = React.useContext(ThemeContext);\n\n const ref = useForkedRef(forwardedRef, context.toggleRef);\n\n context.dropdownButtonId.current = useGenerateId(id);\n\n const buttonIcon =\n context.dropDirection === DropdownDropDirection.up ? (\n <ArrowDropUpIcon size={theme.iconSizes.medium} testId=\"caretUp\" />\n ) : (\n <ArrowDropDownIcon size={theme.iconSizes.medium} testId=\"caretDown\" />\n );\n\n function handleClick(event: React.SyntheticEvent) {\n if (context.isOpen) {\n context.closeDropdown(event);\n } else {\n context.openDropdown();\n }\n }\n\n const i18n = React.useContext(I18nContext);\n\n return (\n <>\n <Button\n {...other}\n id={context.dropdownButtonId.current}\n onClick={onClick}\n shape={ButtonShape.leftCap}\n style={{ borderRight: 0, marginRight: 0 }}\n variant={variant}\n >\n {children}\n </Button>\n <IconButton\n {...other}\n aria-expanded={context.isOpen}\n aria-label={ariaLabel ? ariaLabel : i18n.dropdown.toggleMenuAriaLabel}\n aria-haspopup=\"true\"\n icon={buttonIcon}\n onClick={handleClick}\n shape={ButtonShape.rightCap}\n style={{\n marginLeft:\n variant === ButtonVariant.outline ? 0 : theme.spaceScale.spacing01,\n }}\n ref={ref}\n variant={variant}\n />\n </>\n );\n});\n","import * as React from 'react';\nimport { IconButton } from '../IconButton';\nimport { ButtonColor, ButtonVariant } from '../Button';\nimport { EastIcon, WestIcon } from 'react-magma-icons';\nimport { Label } from '../Label';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { I18nContext } from '../../i18n';\nimport { useIsInverse } from '../../inverse';\nimport { usePagination } from '../Pagination/usePagination';\nimport { XOR } from '../../utils';\nimport { useControlled } from '../../hooks/useControlled';\nimport {\n Dropdown,\n DropdownAlignment,\n DropdownDropDirection,\n DropdownButton,\n DropdownContent,\n DropdownMenuItem,\n} from '../Dropdown';\n\nexport interface BaseTablePaginationProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Position of the dropdown content\n * @default `DropdownDropDirection.up`\n */\n dropdownDropDirection?: DropdownDropDirection;\n /**\n * Total number of rows\n */\n itemCount: number;\n isInverse?: boolean;\n /**\n * Event that fires when the page number changes\n */\n onPageChange?: (event: React.SyntheticEvent, newPage: number) => void;\n /**\n * Event that fires when the number of rows per page changes\n */\n onRowsPerPageChange?: (newRowsPerPage: number) => void;\n /**\n * Values added to the rows per page select\n */\n rowsPerPageValues?: number[];\n testId?: string;\n}\n\nexport interface ControlledPageProps {\n /**\n * Current page number\n */\n page?: number;\n}\n\nexport interface UncontrolledPageProps {\n /**\n * Page selected by default when the component is uncontrolled\n * @default 1\n */\n defaultPage?: number;\n}\n\nexport type PagePaginationProps = XOR<\n ControlledPageProps,\n UncontrolledPageProps\n>;\n\nexport interface ControlledRowsPerPageProps {\n /**\n * Number of rows per page\n */\n rowsPerPage?: number;\n}\n\nexport interface UncontrolledRowsPerPageProps {\n /**\n * Number of rows per page by default when component is uncontrolled\n * @default 10\n */\n defaultRowsPerPage?: number;\n}\n\nexport type RowsPaginationProps = XOR<\n ControlledRowsPerPageProps,\n UncontrolledRowsPerPageProps\n>;\n\nexport type TablePaginationProps = BaseTablePaginationProps &\n PagePaginationProps &\n RowsPaginationProps;\n\nconst StyledContainer = styled.div<{\n isInverse?: boolean;\n theme: ThemeInterface;\n}>`\n align-items: center;\n background: ${props =>\n props.isInverse ? props.theme.colors.tint03 : props.theme.colors.neutral07};\n border-top: 1px solid\n ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral06};\n display: flex;\n justify-content: flex-end;\n padding: ${props => props.theme.spaceScale.spacing02};\n`;\n\nconst PageCount = styled(Label)<{ theme: ThemeInterface }>`\n margin: 0 ${props => props.theme.spaceScale.spacing08};\n`;\n\nconst RowsPerPageLabel = styled.span`\n font-weight: 600;\n line-height: 20px;\n margin: 0 16px 0 0;\n text-align: left;\n`;\n\nexport const TablePagination = React.forwardRef<\n HTMLDivElement,\n TablePaginationProps\n>((props, ref) => {\n const {\n testId,\n defaultPage,\n defaultRowsPerPage = 10,\n dropdownDropDirection = DropdownDropDirection.up,\n itemCount,\n onPageChange,\n onRowsPerPageChange,\n page: pageProp,\n rowsPerPage: rowsPerPageProp,\n rowsPerPageValues = [10, 20, 50, 100],\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n const [rowsPerPage, setRowsPerPageState] = useControlled({\n controlled: rowsPerPageProp,\n default: defaultRowsPerPage,\n });\n\n const { page, pageButtons, setPageState } = usePagination({\n count: itemCount / rowsPerPage,\n defaultPage,\n numberOfEdgePages: 0,\n numberOfAdjacentPages: 0,\n onPageChange,\n page: pageProp,\n });\n\n const isLastPage = page * rowsPerPage >= itemCount;\n\n const displayPageStart = (page - 1) * rowsPerPage + 1;\n const displayPageEnd = isLastPage ? itemCount : page * rowsPerPage;\n\n const rowsPerPageItems = rowsPerPageValues.map(value => ({\n label: value.toString(),\n value,\n }));\n\n function handleRowsPerPageChange(value: number) {\n if (!pageProp) {\n setPageState(1);\n\n onPageChange &&\n typeof onPageChange === 'function' &&\n onPageChange({} as React.SyntheticEvent, 1);\n }\n\n if (!rowsPerPageProp) {\n setRowsPerPageState(value);\n }\n\n onRowsPerPageChange &&\n typeof onRowsPerPageChange === 'function' &&\n onRowsPerPageChange(value);\n }\n\n const previousButton = pageButtons[0];\n const nextButton = pageButtons[pageButtons.length - 1];\n\n return (\n <StyledContainer\n {...other}\n data-testid={testId}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n >\n <RowsPerPageLabel>\n {i18n.table.pagination.rowsPerPageLabel}:\n </RowsPerPageLabel>\n <Dropdown\n alignment={DropdownAlignment.end}\n dropDirection={dropdownDropDirection}\n >\n <DropdownButton\n aria-label={i18n.table.pagination.rowsPerPageLabel}\n color={ButtonColor.secondary}\n style={{ minWidth: 0 }}\n testId=\"rowPerPageDropdownButton\"\n >\n {rowsPerPageItems.find(item => item.value === rowsPerPage).label}\n </DropdownButton>\n <DropdownContent>\n {rowsPerPageItems.map((row, index) => (\n <DropdownMenuItem\n key={index}\n onClick={handleRowsPerPageChange}\n value={row.value}\n >\n {row.label}\n </DropdownMenuItem>\n ))}\n </DropdownContent>\n </Dropdown>\n\n <PageCount isInverse={isInverse} theme={theme}>\n {`${displayPageStart}-${displayPageEnd} ${i18n.table.pagination.ofLabel} ${itemCount}`}\n </PageCount>\n\n <IconButton\n aria-label={i18n.table.pagination.previousAriaLabel}\n color={ButtonColor.secondary}\n disabled={previousButton.disabled}\n icon={<WestIcon />}\n isInverse={isInverse}\n onClick={previousButton.onClick}\n testId=\"previousBtn\"\n variant={ButtonVariant.link}\n />\n <IconButton\n aria-label={i18n.table.pagination.nextAriaLabel}\n color={ButtonColor.secondary}\n disabled={nextButton.disabled}\n icon={<EastIcon />}\n isInverse={isInverse}\n onClick={nextButton.onClick}\n testId=\"nextBtn\"\n variant={ButtonVariant.link}\n />\n </StyledContainer>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { TableContext, TableRowColor, TableCell, TableHeaderCell } from './';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { Checkbox } from '../Checkbox';\nimport {\n IndeterminateCheckbox,\n IndeterminateCheckboxStatus,\n} from '../IndeterminateCheckbox';\n\n/**\n * @children required\n */\nexport interface TableRowProps\n extends React.HTMLAttributes<HTMLTableRowElement> {\n /**\n * The color scheme of the table row, giving contextual meaning to the content\n */\n color?: TableRowColor;\n headerRowStatus?: IndeterminateCheckboxStatus;\n isSelected?: boolean;\n isSelectableDisabled?: boolean;\n onHeaderRowSelect?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onTableRowSelect?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n rowIndex?: number;\n testId?: string;\n}\n\nfunction buildTableRowBackground(props) {\n switch (props.color) {\n case 'success':\n return props.theme.colors.success;\n case 'warning':\n return props.theme.colors.pop04;\n case 'danger':\n return props.theme.colors.danger;\n case 'info':\n return props.theme.colors.primary;\n default:\n return 'inherit';\n }\n}\n\nfunction buildTableRowColor(props) {\n if (props.color === 'warning') {\n return props.theme.colors.neutral;\n }\n\n if (props.color) {\n return props.theme.colors.neutral08;\n }\n\n return 'inherit';\n}\n\nconst StyledTableRow = styled.tr<{\n color?: string;\n hasHoverStyles?: boolean;\n hasZebraStripes?: boolean;\n isInverse?: boolean;\n}>`\n border-bottom: 1px solid\n ${props =>\n props.isInverse\n ? props.theme.colors.tint04\n : props.theme.colors.neutral06};\n color: inherit;\n display: table-row;\n outline: 0;\n vertical-align: top;\n\n &:last-child {\n border-bottom: 0;\n }\n\n ${props =>\n !props.color &&\n css`\n &:nth-of-type(even) {\n background: ${props.hasZebraStripes\n ? props.isInverse\n ? props.theme.colors.tint\n : props.theme.colors.tone\n : 'none'};\n }\n `};\n\n ${props =>\n props.hasHoverStyles &&\n !props.color &&\n css`\n &:hover {\n background: ${\n props.isInverse ? props.theme.colors.tint02 : props.theme.colors.tone02\n };\n `}\n\n ${props =>\n props.color &&\n css`\n background: ${buildTableRowBackground(props)};\n color: ${buildTableRowColor(props)};\n `};\n`;\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n (props, ref) => {\n const {\n children,\n headerRowStatus,\n isSelected,\n isSelectableDisabled,\n onHeaderRowSelect,\n onTableRowSelect,\n rowIndex,\n testId,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const tableContext = React.useContext(TableContext);\n\n let isHeaderRow = false;\n\n React.Children.forEach(children, (child: any) => {\n if (child.type.displayName === 'TableHeaderCell') {\n isHeaderRow = true;\n return;\n }\n });\n\n function getIsCheckboxInverse() {\n if (props.color && props.color === TableRowColor.warning) {\n return false;\n }\n if (props.color && props.color !== TableRowColor.warning) {\n return true;\n }\n\n return tableContext.isInverse;\n }\n\n return (\n <StyledTableRow\n {...other}\n data-testid={testId}\n hasHoverStyles={tableContext.hasHoverStyles && !isHeaderRow}\n hasZebraStripes={tableContext.hasZebraStripes}\n isInverse={tableContext.isInverse}\n ref={ref}\n theme={theme}\n >\n {tableContext.isSelectable && isHeaderRow && (\n <TableHeaderCell width={theme.spaceScale.spacing05}>\n <IndeterminateCheckbox\n status={headerRowStatus}\n isInverse={getIsCheckboxInverse()}\n labelStyle={{ padding: 0 }}\n labelText=\"Select all rows\"\n isTextVisuallyHidden\n onChange={onHeaderRowSelect}\n />\n </TableHeaderCell>\n )}\n {tableContext.isSelectable && !isHeaderRow && (\n <TableCell\n width={theme.spaceScale.spacing05}\n style={{ verticalAlign: 'middle' }}\n >\n <Checkbox\n checked={isSelected}\n disabled={isSelectableDisabled}\n labelStyle={{ padding: 0 }}\n labelText={`Select row ${rowIndex} of ${tableContext.rowCount}`}\n isTextVisuallyHidden\n isInverse={getIsCheckboxInverse()}\n onChange={onTableRowSelect}\n />\n </TableCell>\n )}\n\n {children}\n </StyledTableRow>\n );\n }\n);\n","import * as React from 'react';\nimport { TablePagination } from '../Table';\nimport { DatagridComponents } from './Datagrid';\n\nexport const DefaultPagination = props => {\n return <TablePagination {...props} />;\n};\n\nexport function defaultComponents<T>(components: DatagridComponents) {\n return {\n Pagination: DefaultPagination,\n ...components,\n };\n}\n","import * as React from 'react';\nimport { useControlled } from '../../hooks/useControlled';\nimport { useDataPagination } from '../../hooks/useDataPagination';\nimport { XOR } from '../../utils';\nimport { IndeterminateCheckboxStatus } from '../IndeterminateCheckbox';\nimport {\n Table,\n TableBody,\n TableRow,\n TableCell,\n TableHead,\n TableHeaderCell,\n TableProps,\n TableHeaderCellProps,\n TableRowColor,\n TablePaginationProps,\n} from '../Table';\nimport { defaultComponents } from './components';\n\nexport interface DatagridColumn extends TableHeaderCellProps {\n /**\n * Unique identifier for each column\n */\n field: string;\n /**\n * Header text for each column\n */\n header: string;\n /**\n * @default false\n * Set to true if you want the column to be the header for each row\n */\n isRowHeader?: boolean;\n}\n\nexport interface DatagridRow {\n /**\n * Unique identifier for each row\n */\n id: string | number;\n /**\n * The color scheme of the table row, giving contextual meaning to the content\n */\n color?: TableRowColor;\n /**\n * If true, the select box will be disabled\n */\n isSelectableDisabled?: boolean;\n /**\n * Used to allow each unique column field as a key with the row content as the value\n */\n [key: string]: any;\n}\n\nexport interface DatagridComponents {\n Pagination?: React.FunctionComponent<TablePaginationProps>;\n}\n\nexport interface DatagridComponentsProps {\n pagination?: Partial<\n Omit<\n TablePaginationProps,\n 'page' | 'defaultPage' | 'rowsPerPage' | 'defaultRowsPerPage'\n >\n >;\n}\n\n/**\n * @children required\n */\nexport interface BaseDatagridProps extends TableProps {\n /**\n * Column data to be displayed in the table header\n */\n columns: DatagridColumn[];\n /**\n * Custom components to replace internally used components with\n * @default { Pagination }\n */\n components?: DatagridComponents;\n /**\n * Props to be passed to the default components used internally to build the datagrid\n */\n componentsProps?: DatagridComponentsProps;\n /**\n * Pass in false to turn off pagination\n * @default true\n */\n hasPagination?: boolean;\n /**\n * Row data to be displayed in each row in the table\n */\n rows: DatagridRow[];\n /**\n * Function called when the checkbox in the table header is clicked on\n */\n onHeaderSelect?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Function called when the checkbox in each table row is clicked on\n */\n onRowSelect?: (\n id: string | number,\n event: React.ChangeEvent<HTMLInputElement>\n ) => void;\n /**\n * Function called when the rows selected in the table changes\n */\n onSelectedRowsChange?: (newSelectedRows: (string | number)[]) => void;\n /**\n * Pagination data used to create the pagination footer. Created using the usePagination hook.\n */\n paginationProps?: Partial<TablePaginationProps>;\n}\n\nexport interface ControlledSelectedRowsProps {\n /**\n * Array of rows that are selected in the table when component is controlled\n */\n selectedRows?: (string | number)[];\n}\n\nexport interface UncontrolledSelectedRowsProps {\n /**\n * Array of rows that are selected in the table on render when component is uncontrolled\n */\n defaultSelectedRows?: (string | number)[];\n}\n\nexport type DatagridSelectedRowsProps = XOR<\n ControlledSelectedRowsProps,\n UncontrolledSelectedRowsProps\n>;\n\nexport type DatagridProps = BaseDatagridProps & DatagridSelectedRowsProps;\n\nexport const Datagrid = React.forwardRef<HTMLTableElement, DatagridProps>(\n (props, ref) => {\n const {\n columns,\n components: customComponents,\n componentsProps = {},\n defaultSelectedRows = [],\n onHeaderSelect,\n onRowSelect,\n onSelectedRowsChange,\n paginationProps = {},\n rows,\n selectedRows: selectedRowsProp,\n hasPagination = true,\n ...other\n } = props;\n const [rowsToShow, setRowsToShow] = React.useState<DatagridRow[]>([]);\n const [selectedRows, updatedSelectedRows] = useControlled({\n controlled: selectedRowsProp,\n default: defaultSelectedRows,\n });\n\n const isControlled = selectedRowsProp ? true : false;\n\n const {\n getPageItems,\n itemsPerPage: rowsPerPage,\n onItemsPerPageChange,\n } = useDataPagination({\n defaultItemsPerPage: paginationProps.defaultRowsPerPage,\n items: rows,\n itemsPerPage: paginationProps.rowsPerPage,\n onItemsPerPageChange: paginationProps.onRowsPerPageChange,\n });\n\n const [currentPage, setCurrentPage] = useControlled({\n controlled: paginationProps.page,\n default: paginationProps.defaultPage || 1,\n });\n\n React.useEffect(() => {\n setRowsToShow(hasPagination ? getPageItems(currentPage) : rows);\n }, [currentPage, rowsPerPage]);\n\n const { Pagination } = defaultComponents({\n ...customComponents,\n });\n\n const { defaultPage: _, ...passedOnPaginationProps } = paginationProps;\n\n passedOnPaginationProps.page = currentPage;\n passedOnPaginationProps.itemCount = rows.length;\n passedOnPaginationProps.rowsPerPage = rowsPerPage;\n passedOnPaginationProps.onRowsPerPageChange = onItemsPerPageChange;\n passedOnPaginationProps.onPageChange = React.useCallback(\n (event, newPage: number) => {\n if (!paginationProps.page) {\n setCurrentPage(newPage);\n }\n\n paginationProps.onPageChange &&\n typeof paginationProps.onPageChange === 'function' &&\n paginationProps.onPageChange(event, newPage);\n },\n [paginationProps.onPageChange]\n );\n\n const filteredRows = rowsToShow.filter(row => !row.isSelectableDisabled);\n\n const headerRowStatus =\n selectedRows.length === filteredRows.length\n ? IndeterminateCheckboxStatus.checked\n : selectedRows.length > 0\n ? IndeterminateCheckboxStatus.indeterminate\n : IndeterminateCheckboxStatus.unchecked;\n\n function handleRowSelect(\n id: string | number,\n event: React.ChangeEvent<HTMLInputElement>\n ) {\n const { checked } = event.target;\n const newSelectedRows = [...selectedRows];\n\n checked\n ? newSelectedRows.push(id)\n : newSelectedRows.splice(newSelectedRows.indexOf(id), 1);\n\n handleSelectedRowsChange(newSelectedRows);\n\n onRowSelect &&\n typeof onRowSelect === 'function' &&\n onRowSelect(id, event);\n }\n\n function handleHeaderSelect(event: React.ChangeEvent<HTMLInputElement>) {\n if (\n headerRowStatus === IndeterminateCheckboxStatus.indeterminate ||\n headerRowStatus === IndeterminateCheckboxStatus.checked\n ) {\n handleSelectedRowsChange([]);\n } else {\n handleSelectedRowsChange(filteredRows.map(row => row.id));\n }\n\n onHeaderSelect &&\n typeof onHeaderSelect === 'function' &&\n onHeaderSelect(event);\n }\n\n function handleSelectedRowsChange(newSelectedRows) {\n if (isControlled) {\n onSelectedRowsChange &&\n typeof onSelectedRowsChange === 'function' &&\n onSelectedRowsChange(newSelectedRows);\n } else {\n updatedSelectedRows(newSelectedRows);\n }\n }\n\n return (\n <>\n <Table {...other} ref={ref}>\n <TableHead>\n <TableRow\n headerRowStatus={headerRowStatus}\n onHeaderRowSelect={handleHeaderSelect}\n >\n {columns.map(({ field, header, ...other }) => (\n <TableHeaderCell\n key={`headercell${field}`}\n {...other}\n isRowHeader={false}\n >\n {header}\n </TableHeaderCell>\n ))}\n </TableRow>\n </TableHead>\n\n <TableBody>\n {rowsToShow.map(({ id, color, isSelectableDisabled, ...other }) => (\n <TableRow\n key={`row${id}`}\n color={color}\n isSelected={\n selectedRows ? selectedRows.indexOf(id) > -1 : false\n }\n isSelectableDisabled={isSelectableDisabled}\n onTableRowSelect={event => handleRowSelect(id, event)}\n >\n {columns.map(({ field, isRowHeader }: DatagridColumn) => {\n return isRowHeader ? (\n <TableHeaderCell\n key={`cell${field}`}\n isRowHeader={isRowHeader}\n >\n {other[field]}\n </TableHeaderCell>\n ) : (\n <TableCell key={`cell${field}`}>{other[field]}</TableCell>\n );\n })}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n {hasPagination && (\n <Pagination\n isInverse={props.isInverse}\n itemCount={rows.length}\n {...passedOnPaginationProps}\n {...componentsProps.pagination}\n />\n )}\n </>\n );\n }\n);\n","import * as React from 'react';\n\nexport interface CalendarContextInterface {\n chosenDate: Date;\n focusedDate: Date;\n dateFocused?: boolean;\n maxDate?: Date;\n minDate?: Date;\n helperInformationShown?: boolean;\n buildCalendarMonth: (date: Date, enableOutsideDates?: boolean) => Date[][];\n showHelperInformation: () => void;\n hideHelperInformation: () => void;\n onDateChange: (day: Date, event: React.SyntheticEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n onPrevMonthClick: () => void;\n onNextMonthClick: () => void;\n setDateFocused: (value: boolean) => void;\n}\n\nexport const CalendarContext = React.createContext<CalendarContextInterface>({\n chosenDate: new Date(),\n focusedDate: new Date(),\n buildCalendarMonth: (newDate: Date, enableOutsideDates: boolean) => [\n [newDate],\n ],\n showHelperInformation: () => {},\n hideHelperInformation: () => {},\n onDateChange: (newDate: Date, event: React.SyntheticEvent) => {},\n onKeyDown: (event: React.KeyboardEvent) => {},\n onPrevMonthClick: () => {},\n onNextMonthClick: () => {},\n setDateFocused: (value: boolean) => {},\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useForkedRef, useGenerateId } from '../../utils';\nimport { usePopper } from 'react-popper';\nimport { useIsInverse } from '../../inverse';\n\nexport enum TooltipPosition {\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n top = 'top', //default\n}\n\nexport const EnumTooltipPosition = TooltipPosition;\n\nexport interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Style properties for the arrow element\n */\n arrowStyle?: React.CSSProperties;\n /**\n * The element that triggers the tooltip when it is hovered or focused. Must be a react element (not a string) and should be a focusable element to meet a11y requirements\n */\n children: React.ReactElement;\n /**\n * Style properties for the component container element which includes both the tooltip trigger and the tooltip popover content\n */\n containerStyle?: React.CSSProperties;\n /**\n * The content of the tooltip\n */\n content: React.ReactNode;\n isInverse?: boolean;\n /**\n * Override the default opening of the tooltip on hover/focus to remain open\n */\n open?: boolean;\n /**\n * Position the tooltip appears in relation to its trigger\n */\n position?: TooltipPosition;\n testId?: string;\n /**\n * Style properties for the inner tooltip content\n */\n tooltipStyle?: React.CSSProperties;\n}\n\nexport interface ITooltipState {\n id?: string;\n isVisible?: boolean;\n}\n\nconst TooltipContainer = styled.div`\n display: inline;\n pointer-events: auto;\n`;\n\nexport const TooltipArrow = styled.span<{\n position?: any;\n isInverse?: boolean;\n}>`\n &&,\n &&:before {\n display: block;\n height: ${props => props.theme.tooltip.arrowSizeDoubled};\n position: absolute;\n width: ${props => props.theme.tooltip.arrowSizeDoubled};\n z-index: -1;\n }\n\n &&::before {\n content: '';\n transform: rotate(45deg);\n background: ${props =>\n props.isInverse\n ? props.theme.tooltip.inverse.backgroundColor\n : props.theme.tooltip.backgroundColor};\n }\n`;\n\nexport const StyledTooltip = styled.div<{\n isInverse?: boolean;\n isVisible?: boolean;\n position: TooltipPosition;\n visible?: boolean;\n}>`\n background: ${props =>\n props.isInverse\n ? props.theme.tooltip.inverse.backgroundColor\n : props.theme.tooltip.backgroundColor};\n border-radius: ${props => props.theme.borderRadius};\n color: ${props =>\n props.isInverse\n ? props.theme.tooltip.inverse.textColor\n : props.theme.tooltip.textColor};\n font-size: ${props => props.theme.tooltip.typeScale.fontSize};\n letter-spacing: ${props => props.theme.tooltip.typeScale.letterSpacing};\n line-height: ${props => props.theme.tooltip.typeScale.lineHeight};\n font-weight: ${props => props.theme.tooltip.fontWeight};\n max-width: ${props => props.theme.tooltip.maxWidth};\n min-height: 2.5em;\n padding: ${props => props.theme.spaceScale.spacing03}\n ${props => props.theme.spaceScale.spacing04};\n z-index: ${props => props.theme.tooltip.zIndex};\n\n &[data-popper-placement='top'] {\n margin-bottom: 14px;\n & > span:last-child {\n bottom: 10px;\n }\n }\n\n &[data-popper-placement='bottom'] {\n margin-top: 14px;\n & > span:last-child {\n top: 10px;\n }\n }\n\n &[data-popper-placement='left'] {\n margin-right: 14px;\n & > span:last-child {\n right: 10px;\n }\n }\n\n &[data-popper-placement='right'] {\n margin-left: 14px;\n & > span:last-child {\n left: 10px;\n }\n }\n`;\n\n// Using any for the ref because it is put ont he passed in children which does not have a specific type\nexport const Tooltip = React.forwardRef<any, TooltipProps>((props, ref) => {\n const [isVisible, setIsVisible] = React.useState<boolean>(props.open);\n const [referenceElement, setReferenceElement] =\n React.useState<HTMLElement>(null);\n const [popperElement, setPopperElement] =\n React.useState<HTMLDivElement>(null);\n const [arrowElement, setArrowElement] = React.useState<HTMLSpanElement>(null);\n\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\n modifiers: [\n { name: 'arrow', options: { element: arrowElement } },\n {\n name: 'offset',\n options: {\n offset: [0, 0],\n },\n },\n ],\n placement: props.position || TooltipPosition.top,\n });\n\n const combinedRef = useForkedRef(ref, setReferenceElement);\n\n React.useEffect(() => {\n const handleEsc = event => {\n if (event.key === 'Escape') {\n hideTooltip();\n }\n };\n window.addEventListener('keydown', handleEsc);\n\n return () => {\n window.removeEventListener('keydown', handleEsc);\n };\n }, []);\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n hideTooltip();\n }\n }\n\n function showTooltip() {\n setIsVisible(true);\n }\n\n function hideTooltip() {\n setIsVisible(props.open);\n }\n\n const {\n arrowStyle,\n children,\n content,\n containerStyle,\n id: defaultId,\n position,\n testId,\n tooltipStyle,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n const theme = React.useContext(ThemeContext);\n\n if (Array.isArray(children)) {\n throw new Error('Tooltip children can only be one element.');\n }\n\n const tooltipTrigger = React.cloneElement(children, {\n 'aria-describedby': isVisible ? id : null,\n onBlur: hideTooltip,\n onFocus: showTooltip,\n ref: combinedRef,\n });\n\n const combinedTooltipStyles = {\n ...styles.popper,\n ...tooltipStyle,\n };\n\n const combinedArrowStyle = { ...styles.arrow, ...arrowStyle };\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <TooltipContainer\n {...other}\n data-testid={testId}\n onKeyDown={handleKeyDown}\n onMouseLeave={hideTooltip}\n onMouseEnter={showTooltip}\n style={containerStyle}\n >\n {tooltipTrigger}\n {isVisible && (\n <div\n ref={setPopperElement}\n style={combinedTooltipStyles}\n {...attributes.popper}\n >\n <StyledTooltip\n id={id}\n isInverse={isInverse}\n position={position ? position : TooltipPosition.top}\n theme={theme}\n role=\"tooltip\"\n {...attributes.popper}\n >\n {content}\n <TooltipArrow\n isInverse={isInverse}\n ref={setArrowElement}\n style={combinedArrowStyle}\n theme={theme}\n />\n </StyledTooltip>\n </div>\n )}\n </TooltipContainer>\n );\n});\n","import {\n subDays,\n subWeeks,\n subMonths,\n addDays,\n addWeeks,\n addMonths,\n getDay,\n format,\n startOfWeek,\n endOfWeek,\n startOfMonth,\n endOfMonth,\n differenceInDays,\n} from 'date-fns';\nimport { enUS } from 'date-fns/locale';\n\nexport function handleKeyPress(\n e: React.KeyboardEvent,\n prevDate: Date,\n toggleCalendar?: (calendarOpened: boolean) => void,\n showHelperInformation?: () => void,\n onDateChange?: (day: Date) => void,\n iconRef?: React.RefObject<any>\n) {\n const { key } = e;\n\n if (key === 'Enter' || key === ' ') {\n if (!(e.target as HTMLElement).getAttribute('aria-disabled')) {\n onDateChange(prevDate);\n }\n }\n\n switch (key) {\n case 'ArrowUp':\n e.preventDefault();\n return subWeeks(prevDate, 1);\n\n case 'ArrowLeft':\n e.preventDefault();\n return subDays(prevDate, 1);\n\n case 'Home':\n e.preventDefault();\n return startOfWeek(prevDate);\n\n case 'PageUp':\n e.preventDefault();\n return subMonths(prevDate, 1);\n\n case 'ArrowDown':\n e.preventDefault();\n return addWeeks(prevDate, 1);\n\n case 'ArrowRight':\n e.preventDefault();\n return addDays(prevDate, 1);\n\n case 'End':\n e.preventDefault();\n return endOfWeek(prevDate);\n\n case 'PageDown':\n e.preventDefault();\n return addMonths(prevDate, 1);\n\n case 'Escape':\n e.preventDefault();\n toggleCalendar(false);\n iconRef.current.focus();\n break;\n\n case '?':\n e.preventDefault();\n showHelperInformation();\n break;\n\n default:\n break;\n }\n}\n\nexport function getCalendarMonthWeeks(\n month,\n enableOutsideDays,\n firstDayOfWeek = 0\n): Date[][] {\n const firstOfMonth = startOfMonth(month);\n const lastOfMonth = endOfMonth(month);\n\n const prevDays = (getDay(firstOfMonth) + 7 - firstDayOfWeek) % 7;\n const nextDays = (firstDayOfWeek + 6 - getDay(lastOfMonth)) % 7;\n const firstDay = subDays(firstOfMonth, prevDays);\n const lastDay = addDays(lastOfMonth, nextDays);\n\n const totalDays = differenceInDays(lastDay, firstDay) + 1;\n\n const currentDay = firstDay;\n const weeksInMonth = [];\n\n for (let i = 0; i < totalDays; i += 1) {\n if (i % 7 === 0) {\n weeksInMonth.push([]);\n }\n\n let day = null;\n if ((i >= prevDays && i < totalDays - nextDays) || enableOutsideDays) {\n day = addDays(currentDay, i);\n }\n\n weeksInMonth[weeksInMonth.length - 1].push(day);\n }\n\n return weeksInMonth;\n}\n\nexport function getPrevMonthFromDate(prevDate) {\n return startOfMonth(subMonths(prevDate, 1));\n}\n\nexport function getNextMonthFromDate(prevDate) {\n return startOfMonth(addMonths(prevDate, 1));\n}\n\nexport function i18nFormat(date, formatStr = 'PP', locale = enUS) {\n return (\n date &&\n format(getDateFromString(date), formatStr, {\n locale,\n })\n );\n}\n\nexport function getDateFromString(date) {\n return date ? (date instanceof Date ? date : new Date(date)) : null;\n}\n","import * as React from 'react';\nimport { Announce } from '../Announce';\nimport { CalendarContext } from './CalendarContext';\nimport { ArrowBackIcon, ArrowForwardIcon } from 'react-magma-icons';\nimport { ButtonType, ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { addMonths, subMonths } from 'date-fns';\nimport { enUS } from 'date-fns/locale';\nimport styled from '../../theme/styled';\nimport { useForkedRef, usePrevious } from '../../utils';\nimport { i18nFormat as format } from './utils';\nimport { I18nContext } from '../../i18n';\n\ninterface CalendarHeaderProps {\n focusHeader?: boolean;\n}\n\nconst CalendarHeaderContainer = styled.div`\n align-items: center;\n display: flex;\n padding: ${props => props.theme.spaceScale.spacing10} 0\n ${props => props.theme.spaceScale.spacing03};\n margin-top: -${props => props.theme.spaceScale.spacing01};\n`;\n\nconst CalendarIconButton = styled.div<{ next?: boolean }>`\n flex-grow: 0;\n flex-width: 10%;\n flex-basis: 10%;\n order: ${props => (props.next ? 2 : 0)};\n`;\n\nconst CalendarHeaderText = styled.div`\n caption-side: initial;\n color: ${props => props.theme.colors.neutral};\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n order: 1;\n text-align: center;\n flex-grow: 0;\n flex-width: 90%;\n flex-basis: 90%;\n`;\n\nexport const CalendarHeader = React.forwardRef<\n HTMLDivElement,\n CalendarHeaderProps\n>((props, forwardedRef) => {\n const calendarHeader = React.useRef<HTMLDivElement>();\n const { focusedDate, onPrevMonthClick, onNextMonthClick } =\n React.useContext(CalendarContext);\n const prevFocusHeader = usePrevious(props.focusHeader);\n const ref = useForkedRef(forwardedRef, calendarHeader);\n\n React.useEffect(() => {\n if (!prevFocusHeader && props.focusHeader) {\n calendarHeader.current.focus();\n }\n }, [props.focusHeader]);\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const locale = i18n.locale || enUS;\n\n const currentMonth = format(focusedDate, 'MMMM yyyy', locale);\n\n const capitalizeCurrentMonth =\n currentMonth &&\n currentMonth.charAt(0).toUpperCase() + currentMonth.slice(1);\n\n return (\n <CalendarHeaderContainer theme={theme}>\n <CalendarHeaderText tabIndex={-1} theme={theme} ref={ref}>\n <Announce>{capitalizeCurrentMonth}</Announce>\n </CalendarHeaderText>\n <CalendarIconButton>\n <IconButton\n aria-label={`${i18n.datePicker.previousMonthAriaLabel} ${format(\n subMonths(new Date(focusedDate), 1),\n 'MMMM yyyy',\n locale\n )}`}\n icon={<ArrowBackIcon />}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n onClick={onPrevMonthClick}\n />\n </CalendarIconButton>\n <CalendarIconButton next>\n <IconButton\n aria-label={`${i18n.datePicker.nextMonthAriaLabel} ${format(\n addMonths(new Date(focusedDate), 1),\n 'MMMM yyyy',\n locale\n )}`}\n icon={<ArrowForwardIcon />}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n onClick={onNextMonthClick}\n />\n </CalendarIconButton>\n </CalendarHeaderContainer>\n );\n});\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '../../theme/styled';\nimport { isAfter, isBefore, isSameDay } from 'date-fns';\nimport { enUS } from 'date-fns/locale';\nimport { CalendarContext } from './CalendarContext';\nimport { I18nContext } from '../../i18n';\nimport { i18nFormat as format } from './utils';\n\ninterface CalendarDayProps {\n day: Date;\n dayFocusable?: boolean;\n onDateChange?: (day: Date, event: React.SyntheticEvent) => void;\n}\n\nconst CalendarDayCell = styled.td`\n border: 1px solid ${props => props.theme.colors.neutral06};\n color: ${props => props.theme.colors.neutral};\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n height: ${props => props.theme.spaceScale.spacing09};\n padding: 0;\n position: relative;\n text-align: center;\n width: ${props => props.theme.spaceScale.spacing09};\n`;\n\nconst CalendarDayInner = styled.button<{\n isChosen?: boolean;\n isFocused?: boolean;\n disabled?: boolean;\n}>`\n align-items: center;\n background: ${props =>\n props.isChosen\n ? props.theme.colors.foundation02\n : props.theme.colors.neutral08};\n border: 2px solid transparent;\n border-radius: 100%;\n color: ${props =>\n props.isChosen\n ? props.theme.colors.neutral08\n : props.disabled\n ? props.theme.colors.disabledText\n : props.theme.colors.neutral};\n cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};\n display: flex;\n height: calc(${props => props.theme.spaceScale.spacing09} - 4px);\n justify-content: center;\n margin: ${props => props.theme.spaceScale.spacing01};\n overflow: hidden;\n outline-offset: 0;\n position: relative;\n transition: background 0.5s ease-in-out 0s;\n width: calc(${props => props.theme.spaceScale.spacing09} - 4px);\n\n &:focus {\n outline: 2px dotted ${props => props.theme.colors.focus};\n }\n\n &:before {\n background: ${props => props.theme.colors.neutral};\n content: '';\n height: 200%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: -50%;\n transition: 0.2s;\n width: 200%;\n }\n\n &:hover {\n &:before {\n opacity: ${props => (props.disabled ? 0 : 0.1)};\n }\n }\n`;\n\nconst EmptyCell = styled.td`\n border: 0;\n padding: 0;\n`;\n\nconst TodayIndicator = styled.span`\n border-left: 8px solid ${props => props.theme.colors.pop};\n border-top: 8px solid transparent;\n border-bottom: 8px solid transparent;\n bottom: -6px;\n display: block;\n height: 0;\n position: absolute;\n transform: rotate(45deg);\n right: -2px;\n width: 0;\n`;\n\nexport const CalendarDay: React.FunctionComponent<CalendarDayProps> = (\n props: CalendarDayProps\n) => {\n const dayRef = React.useRef<HTMLButtonElement>();\n const {\n dateFocused,\n focusedDate,\n chosenDate,\n maxDate,\n minDate,\n setDateFocused,\n onDateChange,\n } = React.useContext(CalendarContext);\n const [focused, setFocused] = React.useState<boolean>(false);\n const { day, dayFocusable } = props;\n\n React.useEffect(() => {\n if (dateFocused && isSameDay(props.day, focusedDate)) {\n dayRef.current.focus();\n setFocused(true);\n } else {\n if (focused) {\n setFocused(false);\n }\n }\n }, [focusedDate, dateFocused]);\n\n function onCalendarDayFocus() {\n setDateFocused(true);\n }\n\n function onDayClick(event: React.SyntheticEvent) {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n onDateChange(day, event);\n }\n\n const disabled: boolean =\n (maxDate ? isAfter(props.day, maxDate) : false) ||\n (minDate ? isBefore(props.day, minDate) : false);\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n if (day) {\n const sameDateAsFocusedDate = isSameDay(day, focusedDate);\n const sameDateAsChosenDate = isSameDay(day, chosenDate);\n const sameDateAsToday = isSameDay(day, new Date());\n const locale = i18n.locale || enUS;\n const ariaLabel = `${\n disabled ? i18n.datePicker.disabledDayAriaLabel : ''\n } ${format(day, 'EEEE, MMMM do yyyy', locale)} ${\n sameDateAsToday ? i18n.datePicker.todayAriaLabel : ''\n } ${sameDateAsChosenDate ? i18n.datePicker.selectedDayAriaLabel : ''}`;\n\n return (\n <CalendarDayCell onFocus={onCalendarDayFocus} theme={theme}>\n <CalendarDayInner\n aria-disabled={disabled}\n aria-label={ariaLabel}\n disabled={disabled}\n isChosen={sameDateAsChosenDate}\n isFocused={dayFocusable && sameDateAsFocusedDate}\n onClick={onDayClick}\n ref={dayRef}\n tabIndex={sameDateAsFocusedDate ? 0 : -1}\n type=\"button\"\n theme={theme}\n >\n {format(day, 'd', locale)}\n </CalendarDayInner>\n {sameDateAsToday && (\n <TodayIndicator data-testid=\"todayIndicator\" theme={theme} />\n )}\n </CalendarDayCell>\n );\n } else {\n return <EmptyCell />;\n }\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ButtonColor, ButtonSize, ButtonType, ButtonVariant } from '../Button';\n\nimport { IconButton } from '../IconButton';\nimport { Heading } from '../Heading';\nimport { ArrowBackIcon, CloseIcon } from 'react-magma-icons';\nimport { TypographyVisualStyle } from '../Typography';\n\nimport { I18nContext } from '../../i18n';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\ninterface HelperInformationProps {\n isOpen?: boolean;\n onClose?: (event?: React.SyntheticEvent) => void;\n}\n\nconst List = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n text-align: left;\n`;\n\nconst Item = styled.li`\n display: flex;\n list-style: none;\n margin-bottom: 12px;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n align-items: center;\n span {\n flex: 0 0 100px;\n overflow: hidden;\n line-height: 28px;\n min-height: 36px;\n height: max-content;\n text-align: center;\n }\n div {\n flex: 1;\n }\n`;\n\nconst KeyboardShortcutButtonWrapper = styled.span`\n background: rgb(242, 242, 242);\n font-family: monospace;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n margin-right: ${props => props.theme.spaceScale.spacing03};\n text-transform: uppercase;\n padding: ${props => props.theme.spaceScale.spacing02}\n ${props => props.theme.spaceScale.spacing04};\n`;\n\nconst StyledPopup = styled.div`\n position: relative;\n background: white;\n`;\n\nconst StyledNavContainer = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 2px;\n`;\nconst StyledContent = styled.div`\n z-index: 9999;\n position: relative;\n background: white;\n h2 {\n margin: 10px 0 12px 0;\n }\n`;\n\nexport const HelperInformation: React.FunctionComponent<\n HelperInformationProps\n> = (props: HelperInformationProps) => {\n const i18n = React.useContext(I18nContext);\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledPopup>\n <StyledNavContainer>\n <IconButton\n icon={<ArrowBackIcon />}\n size={ButtonSize.small}\n style={{ top: '4px', left: '-12px' }}\n variant={ButtonVariant.link}\n onClick={props.onClose}\n >\n Back to Calendar\n </IconButton>\n <IconButton\n aria-label={i18n.datePicker.calendarCloseAriaLabel}\n color={ButtonColor.secondary}\n icon={<CloseIcon />}\n size={ButtonSize.medium}\n style={{ left: '16px' }}\n type={ButtonType.button}\n onClick={props.onClose}\n variant={ButtonVariant.link}\n />\n </StyledNavContainer>\n <StyledContent>\n <Heading level={2} visualStyle={TypographyVisualStyle.headingXSmall}>\n {i18n.datePicker.helpModal.header}\n </Heading>\n <List id=\"DayPickerKeyboardShortcuts_description\">\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n aria-label={i18n.datePicker.helpModal.enter.ariaLabel}\n role=\"img\"\n theme={theme}\n >\n ↵\n </KeyboardShortcutButtonWrapper>\n <div>{i18n.datePicker.helpModal.enter.explanation}</div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={\n i18n.datePicker.helpModal.rightAndLeftArrowKeys.ariaLabel\n }\n >\n ←/→\n </KeyboardShortcutButtonWrapper>\n <div>\n {i18n.datePicker.helpModal.rightAndLeftArrowKeys.explanation}\n </div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={\n i18n.datePicker.helpModal.upAndDownArrowKeys.ariaLabel\n }\n >\n ↑/↓\n </KeyboardShortcutButtonWrapper>\n <div>\n {i18n.datePicker.helpModal.upAndDownArrowKeys.explanation}\n </div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={\n i18n.datePicker.helpModal.pageUpAndPageDownKeys.ariaLabel\n }\n >\n {i18n.datePicker.helpModal.pageUpAndPageDownKeys.displayValue}\n </KeyboardShortcutButtonWrapper>\n <div>\n {i18n.datePicker.helpModal.pageUpAndPageDownKeys.explanation}\n </div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={i18n.datePicker.helpModal.homeAndEndKeys.ariaLabel}\n >\n {i18n.datePicker.helpModal.homeAndEndKeys.displayValue}\n </KeyboardShortcutButtonWrapper>\n <div>{i18n.datePicker.helpModal.homeAndEndKeys.explanation}</div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={i18n.datePicker.helpModal.escape.ariaLabel}\n >\n {i18n.datePicker.helpModal.escape.displayValue}\n </KeyboardShortcutButtonWrapper>\n <div>{i18n.datePicker.helpModal.escape.explanation}</div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={i18n.datePicker.helpModal.questionMark.ariaLabel}\n >\n ?\n </KeyboardShortcutButtonWrapper>\n <div>{i18n.datePicker.helpModal.questionMark.explanation}</div>\n </Item>\n </List>\n </StyledContent>\n </StyledPopup>\n );\n};\n","import * as React from 'react';\n\nexport interface FocusableElement extends HTMLElement {\n focus(options?: FocusOptions): void;\n}\n\nexport function useFocusLock(\n active: boolean,\n header?: React.MutableRefObject<FocusableElement>,\n body?: React.MutableRefObject<FocusableElement>\n): React.MutableRefObject<any> {\n const rootNode = React.useRef<HTMLElement>(null);\n const focusableItems = React.useRef<Array<HTMLElement>>([]);\n\n const updateFocusableItems = () => {\n focusableItems.current = rootNode.current?.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), video'\n ) as unknown as Array<HTMLElement>;\n };\n\n React.useEffect(() => {\n if (active) {\n updateFocusableItems();\n\n if (header && header.current) {\n header.current.focus();\n } else if (focusableItems.current && focusableItems.current.length > 0) {\n const { 0: firstItem } = focusableItems.current;\n\n firstItem.focus();\n } else if (body && body.current) {\n (body.current.firstChild as HTMLElement).setAttribute('tabIndex', '-1');\n (body.current.firstChild as HTMLElement).focus();\n }\n }\n }, [active]);\n\n React.useEffect(() => {\n const observer: MutationObserver = new MutationObserver(() => {\n updateFocusableItems();\n });\n\n updateFocusableItems();\n\n rootNode.current &&\n observer.observe(rootNode.current, { childList: true, subtree: true });\n return () => {\n observer.disconnect();\n };\n }, [rootNode]);\n\n React.useEffect(() => {\n const handleKeyPress = (event: KeyboardEvent) => {\n if (!focusableItems.current) return;\n\n const { key, shiftKey } = event;\n const {\n length,\n 0: firstItem,\n [length - 1]: lastItem,\n } = focusableItems.current;\n\n if (active && key === 'Tab') {\n // If no focusable items are\n if (length === 0) {\n event.preventDefault();\n return;\n }\n\n // If only one item then prevent tabbing when locked\n if (length === 1) {\n event.preventDefault();\n if (firstItem !== document.activeElement) {\n firstItem.focus();\n }\n\n return;\n }\n\n // If focused on last item then focus on first item when tab is pressed\n if (!shiftKey && document.activeElement === lastItem) {\n event.preventDefault();\n firstItem.focus();\n return;\n }\n\n // If focused on first item then focus on last item when shift + tab is pressed\n if (\n shiftKey &&\n (document.activeElement === firstItem ||\n document.activeElement === header.current)\n ) {\n event.preventDefault();\n lastItem.focus();\n return;\n }\n }\n };\n\n window.addEventListener('keydown', handleKeyPress);\n\n return () => {\n window.removeEventListener('keydown', handleKeyPress);\n };\n }, [active, focusableItems]);\n\n return rootNode;\n}\n","import * as React from 'react';\nimport { ButtonColor, ButtonSize, ButtonType, ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { Tooltip } from '../Tooltip';\nimport { CloseIcon, KeyboardIcon } from 'react-magma-icons';\nimport { CalendarContext } from './CalendarContext';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CalendarDay } from './CalendarDay';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '../../theme/styled';\nimport { HelperInformation } from './HelperInformation';\nimport { usePrevious } from '../../utils';\nimport { I18nContext } from '../../i18n';\nimport { useFocusLock } from '../../hooks/useFocusLock';\n\ninterface CalendarMonthProps {\n calendarOpened?: boolean;\n focusOnOpen?: boolean;\n handleCloseButtonClick: (event: React.SyntheticEvent) => void;\n setDateFocused?: (value: boolean) => void;\n}\n\nconst CalendarContainer = styled.div`\n background: ${props => props.theme.colors.neutral08};\n padding: 0 ${props => props.theme.spaceScale.spacing05}\n ${props => props.theme.spaceScale.spacing03};\n overflow: visible;\n`;\n\nconst MonthContainer = styled.div`\n background: ${props => props.theme.colors.neutral08};\n text-align: center;\n user-select: none;\n vertical-align: top;\n`;\n\nconst Table = styled.table`\n border-collapse: collapse;\n border-spacing: 0;\n margin-bottom: ${props => props.theme.spaceScale.spacing03};\n`;\n\nconst Th = styled.th`\n border: 0;\n color: ${props => props.theme.colors.neutral};\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n font-weight: normal;\n padding: 0;\n text-align: center;\n`;\n\nconst HelperButton = styled.span<{ theme?: any }>`\n top: ${props => props.theme.spaceScale.spacing01};\n position: absolute;\n left: ${props => props.theme.spaceScale.spacing01};\n z-index: 2;\n`;\n\nconst CloseButton = styled.span<{ theme?: any }>`\n position: absolute;\n right: ${props => props.theme.spaceScale.spacing01};\n top: ${props => props.theme.spaceScale.spacing01};\n z-index: 1;\n`;\n\nexport const CalendarMonth: React.FunctionComponent<CalendarMonthProps> = (\n props: CalendarMonthProps\n) => {\n const lastFocus = React.useRef<any>();\n const headingRef = React.useRef<any>();\n const context = React.useContext(CalendarContext);\n const [dayFocusable, setDayFocusable] = React.useState<boolean>(false);\n const [focusHeader, setFocusHeader] = React.useState<boolean>(false);\n const prevCalendarOpened = usePrevious(props.calendarOpened);\n\n const focusTrapElement = useFocusLock(props.calendarOpened, headingRef);\n\n React.useEffect(() => {\n if (!prevCalendarOpened && props.calendarOpened) {\n lastFocus.current = document.activeElement;\n\n if (props.focusOnOpen) {\n setDayFocusable(true);\n context.setDateFocused(true);\n }\n }\n\n if (props.calendarOpened && !props.focusOnOpen && !focusHeader) {\n setFocusHeader(true);\n }\n\n if (prevCalendarOpened && !props.calendarOpened) {\n setFocusHeader(false);\n }\n }, [props.calendarOpened, props.focusOnOpen]);\n\n function onCalendarTableFocus() {\n setDayFocusable(true);\n }\n\n function onCalendarTableBlur() {\n setDayFocusable(false);\n context.setDateFocused(false);\n }\n\n function turnOffDateFocused() {\n context.setDateFocused(false);\n }\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const days = [\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n ];\n const startOfWeek = days.indexOf(i18n.datePicker.startOfWeek);\n const sortedDays = days.slice(startOfWeek).concat(days.slice(0, startOfWeek));\n const tableDaysHeaders = sortedDays.map((day, index) => (\n <Th key={index} theme={theme}>\n {i18n.days.min[day]}\n </Th>\n ));\n\n return (\n <>\n <CalendarContainer\n data-testid=\"calendarMonthContainer\"\n tabIndex={-1}\n theme={theme}\n onKeyDown={context.onKeyDown}\n >\n {context.helperInformationShown ? (\n <HelperInformation\n isOpen={context.helperInformationShown}\n onClose={context.hideHelperInformation}\n />\n ) : (\n <MonthContainer\n data-testid=\"monthContainer\"\n data-visible=\"true\"\n theme={theme}\n ref={focusTrapElement}\n >\n <CalendarHeader ref={headingRef} focusHeader={focusHeader} />\n\n <Table\n role=\"presentation\"\n onBlur={onCalendarTableBlur}\n onFocus={onCalendarTableFocus}\n theme={theme}\n >\n <tbody>\n <tr>{tableDaysHeaders}</tr>\n {context\n .buildCalendarMonth(context.focusedDate)\n .map((week, i) => (\n <tr key={i}>\n {week.map((day, dayOfWeek) => (\n <CalendarDay\n key={dayOfWeek}\n day={day}\n dayFocusable={dayFocusable}\n onDateChange={context.onDateChange}\n />\n ))}\n </tr>\n ))}\n </tbody>\n </Table>\n <Tooltip\n content={'Keyboard instructions'}\n tooltipStyle={{ position: 'fixed' }}\n >\n <HelperButton theme={theme}>\n <IconButton\n aria-label={i18n.datePicker.helpModal.helpButtonAriaLabel}\n icon={<KeyboardIcon />}\n onClick={context.showHelperInformation}\n size={ButtonSize.small}\n onFocus={turnOffDateFocused}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n />\n </HelperButton>\n </Tooltip>\n\n <CloseButton theme={theme}>\n <IconButton\n aria-label={i18n.datePicker.calendarCloseAriaLabel}\n color={ButtonColor.secondary}\n icon={<CloseIcon />}\n onClick={props.handleCloseButtonClick}\n size={ButtonSize.medium}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n />\n </CloseButton>\n </MonthContainer>\n )}\n </CalendarContainer>\n </>\n );\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { InputIconPosition, InputSize } from '../InputBase';\nimport { InputMessage } from '../Input/InputMessage';\nimport { Label } from '../Label';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface FormFieldContainerProps\n extends FormFieldContainerBaseProps,\n React.HTMLAttributes<HTMLDivElement> {}\n\nexport interface FormFieldContainerBaseProps {\n /**\n * Is the wrapped input hidden with display:none? This would make the input look like an actionable item, so FormFieldContainer uses a span in lieu of a label.\n */\n actionable?: boolean;\n /**\n * Style properties for the outer container\n */\n containerStyle?: React.CSSProperties;\n /**\n * Content of the error message. If a value is provided, the field will be styled as an error state and the error message will display.\n */\n errorMessage?: React.ReactNode;\n /**\n * ID of the form field. Also used in the descrption ID.\n */\n fieldId: string;\n /**\n * Content of the helper message.\n */\n helperMessage?: React.ReactNode;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isLabelVisuallyHidden?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content for label; can be a node or a string\n */\n labelText?: React.ReactNode;\n /**\n * Style properties for the helper or error message\n */\n messageStyle?: React.CSSProperties;\n /**\n * Relative size of the component\n * @default InputSize.medium\n */\n iconPosition?: InputIconPosition;\n inputSize?: InputSize;\n testId?: string;\n isInverse?: boolean;\n}\n\nconst StyledFormFieldContainer = styled.div<{ isInverse?: boolean }>`\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n`;\n\nexport const FormFieldContainer = React.forwardRef<\n HTMLDivElement,\n FormFieldContainerProps\n>((props, ref) => {\n const {\n actionable = true,\n children,\n containerStyle,\n errorMessage,\n fieldId,\n helperMessage,\n iconPosition,\n inputSize,\n isInverse: isInverseProp,\n isLabelVisuallyHidden,\n labelStyle,\n labelText,\n messageStyle,\n testId,\n ...rest\n } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n const descriptionId =\n errorMessage || helperMessage ? `${fieldId}__desc` : null;\n\n return (\n <InverseContext.Provider value={{ isInverse }}>\n <StyledFormFieldContainer\n {...rest}\n data-testid={props.testId}\n isInverse={isInverse}\n ref={ref}\n style={containerStyle}\n theme={theme}\n >\n {labelText && (\n <Label\n actionable={actionable}\n htmlFor={fieldId}\n iconPosition={iconPosition}\n size={inputSize}\n style={labelStyle}\n >\n {isLabelVisuallyHidden ? (\n <VisuallyHidden>{labelText}</VisuallyHidden>\n ) : (\n labelText\n )}\n </Label>\n )}\n {children}\n {(errorMessage || helperMessage) && (\n <InputMessage\n hasError={!!errorMessage}\n id={descriptionId}\n isInverse={isInverse}\n style={messageStyle}\n >\n {(errorMessage || helperMessage) && (\n <>{errorMessage ? errorMessage : helperMessage}</>\n )}\n </InputMessage>\n )}\n </StyledFormFieldContainer>\n </InverseContext.Provider>\n );\n});\n","import * as React from 'react';\nimport {\n FormFieldContainer,\n FormFieldContainerBaseProps,\n} from '../FormFieldContainer';\nimport { InputBase, InputBaseProps, InputSize } from '../InputBase';\nimport { useGenerateId } from '../../utils';\nimport { useIsInverse } from '../../inverse';\n\nexport interface InputProps\n extends Omit<FormFieldContainerBaseProps, 'fieldId'>,\n InputBaseProps {}\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n (props, ref) => {\n const {\n children,\n containerStyle,\n errorMessage,\n helperMessage,\n iconPosition,\n id: defaultId,\n inputSize = InputSize.medium,\n isLabelVisuallyHidden,\n labelStyle,\n labelText,\n messageStyle,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <FormFieldContainer\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n helperMessage={helperMessage}\n iconPosition={iconPosition}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n isInverse={isInverse}\n inputSize={inputSize}\n labelStyle={labelStyle}\n labelText={labelText}\n messageStyle={messageStyle}\n >\n <InputBase\n {...other}\n aria-describedby={\n descriptionId ? descriptionId : props['aria-describedby']\n }\n aria-invalid={!!errorMessage}\n hasError={!!errorMessage}\n iconPosition={iconPosition}\n id={id}\n inputSize={inputSize}\n isInverse={isInverse}\n ref={ref}\n >\n {children}\n </InputBase>\n </FormFieldContainer>\n );\n }\n);\n","import * as React from 'react';\nimport { CalendarContext } from './CalendarContext';\nimport { CalendarMonth } from './CalendarMonth';\nimport { Announce } from '../Announce';\nimport { Input } from '../Input';\nimport { InputType } from '../InputBase';\nimport { isAfter, isBefore, isValid, isSameDay } from 'date-fns';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '../../theme/styled';\nimport { EventIcon } from 'react-magma-icons';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport {\n handleKeyPress,\n getCalendarMonthWeeks,\n getPrevMonthFromDate,\n getNextMonthFromDate,\n i18nFormat as format,\n getDateFromString,\n} from './utils';\nimport { omit, useGenerateId, Omit, useForkedRef } from '../../utils';\nimport { I18nContext } from '../../i18n';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\nexport interface DatePickerProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'value' | 'onChange'\n > {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Default selected date value\n */\n defaultDate?: Date;\n /**\n * Content of the error message. If a value is provided, the component will be styled to show an error state\n */\n errorMessage?: React.ReactNode;\n /**\n * Content of the helper message\n */\n helperMessage?: React.ReactNode;\n /**\n * Style properties for the input element\n */\n inputStyle?: React.CSSProperties;\n /**\n * Clear contents of input by clicking a clear button\n * @default false\n */\n isClearable?: boolean;\n isInverse?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Text for label\n */\n labelText: React.ReactNode;\n /**\n * Maximum date allowed to be chosen in the calendar\n */\n maxDate?: Date;\n /**\n * Style properties for the helper or error message\n */\n messageStyle?: React.CSSProperties;\n /**\n * Minimum date allowed to be chosen in the calendar\n */\n minDate?: Date;\n /**\n * Text for input placeholder\n */\n placeholder?: string;\n /**\n * If true, this component must have a value\n * @default false\n */\n required?: boolean;\n testId?: string;\n /**\n * Value of the date input, used when setting the date value externally\n */\n value?: Date;\n /**\n * Event fired in multiple instances when internal values are changed and can be used as a generic state change event\n */\n onChange?: (\n value: string,\n event: React.ChangeEvent | React.SyntheticEvent\n ) => void;\n /**\n * Event that will fire when day is changed\n */\n onDateChange?: (day: Date, event: React.SyntheticEvent) => void;\n /**\n * Event that will fire when the text input loses focus\n */\n onInputBlur?: (event: React.FocusEvent) => void;\n /**\n * Event that will fire when the text input is changed\n */\n onInputChange?: (event: React.ChangeEvent) => void;\n /**\n * Event that will fire when the text input gains focus\n */\n onInputFocus?: (event: React.FocusEvent) => void;\n}\n\nconst DatePickerContainer = styled.div`\n position: relative;\n`;\n\nconst DatePickerCalendar = styled.div<{ opened: boolean }>`\n border: 1px solid ${props => props.theme.colors.neutral06};\n border-radius: ${props => props.theme.borderRadius};\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.15);\n display: ${props => (props.opened ? 'block' : 'none')};\n margin-top: -${props => props.theme.spaceScale.spacing07};\n opacity: ${props => (props.opened ? '1' : '0')};\n overflow: hidden;\n position: absolute;\n transition: opacity 0.2s ease-in-out 0s;\n width: 320px;\n z-index: ${props => (props.opened ? '998' : '-1')};\n`;\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (props, forwardedRef) => {\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n const iconRef = React.useRef<HTMLButtonElement>();\n const inputRef = React.useRef<HTMLInputElement>();\n const lastFocus = React.useRef<any>();\n const id: string = useGenerateId(props.id);\n const [helperInformationShown, setHelperInformationShown] =\n React.useState<boolean>(false);\n const [calendarOpened, setCalendarOpened] = React.useState<boolean>(false);\n const [dateFocused, setDateFocused] = React.useState<boolean>(false);\n\n const [focusedDate, setFocusedDate] = React.useState<Date>(\n setDateFromConsumer(props.value || props.defaultDate) ||\n setDefaultFocusedDate()\n );\n const [chosenDate, setChosenDate] = React.useState<Date | null>(\n setDateFromConsumer(props.value || props.defaultDate)\n );\n\n const ref = useForkedRef(forwardedRef, inputRef);\n\n React.useEffect(() => {\n if (!calendarOpened) {\n setDateFocused(false);\n }\n }, [calendarOpened]);\n\n React.useEffect(() => {\n if (props.value) {\n setChosenDate(setDateFromConsumer(props.value));\n setFocusedDate(\n setDateFromConsumer(props.value) || setDefaultFocusedDate()\n );\n }\n }, [props.value]);\n\n function showHelperInformation() {\n lastFocus.current = document.activeElement;\n setHelperInformationShown(true);\n }\n\n function hideHelperInformation() {\n setHelperInformationShown(false);\n lastFocus.current.focus();\n }\n\n function setDateFromConsumer(date: Date): Date {\n const convertedDate = getDateFromString(date);\n const convertedMinDate = getDateFromString(props.minDate);\n const convertedMaxDate = getDateFromString(props.maxDate);\n\n return date &&\n inDateRange(convertedDate, convertedMinDate, convertedMaxDate)\n ? convertedDate\n : null;\n }\n\n function setDefaultFocusedDate(): Date {\n const newDate = new Date();\n const convertedMinDate = getDateFromString(props.minDate);\n const convertedMaxDate = getDateFromString(props.maxDate);\n\n if (inDateRange(newDate, convertedMinDate, convertedMaxDate)) {\n return newDate;\n } else if (convertedMaxDate || convertedMinDate) {\n return convertedMinDate ? convertedMinDate : convertedMaxDate;\n }\n }\n\n function inDateRange(\n date: Date,\n minDateValue?: Date,\n maxDateValue?: Date\n ): boolean {\n return (\n (maxDateValue\n ? isBefore(date, maxDateValue) || isSameDay(date, maxDateValue)\n : true) &&\n (minDateValue\n ? isAfter(date, minDateValue) || isSameDay(date, minDateValue)\n : true)\n );\n }\n\n function buildCalendarMonth(date: Date, enableOutsideDates: boolean) {\n const days = [\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n ];\n const { startOfWeek } = i18n.datePicker;\n return getCalendarMonthWeeks(\n date,\n enableOutsideDates,\n days.indexOf(startOfWeek)\n );\n }\n\n function onPrevMonthClick() {\n setFocusedDate(getPrevMonthFromDate);\n }\n\n function onNextMonthClick() {\n setFocusedDate(getNextMonthFromDate);\n }\n\n function onDateChange(day: Date) {\n setChosenDate(day);\n setCalendarOpened(false);\n }\n\n function reset() {\n setFocusedDate(setDefaultFocusedDate());\n setChosenDate(null);\n setDateFocused(false);\n }\n\n function isValidDateFromString(value: string, day: Date) {\n const isValidDateFormat = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/.test(value);\n const isValidDate = isValid(day);\n\n return isValidDateFormat && isValidDate;\n }\n\n function handleInputChange(event) {\n const { value } = event.target;\n const day = new Date(value);\n setCalendarOpened(false);\n\n props.onInputChange &&\n typeof props.onInputChange === 'function' &&\n props.onInputChange(event);\n\n const isValidDay = isValidDateFromString(value, day);\n\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(isValidDay ? day.toISOString() : value, event);\n }\n\n function handleInputFocus(event: React.FocusEvent) {\n props.onInputFocus &&\n typeof props.onInputFocus === 'function' &&\n props.onInputFocus(event);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n const { value } = inputRef.current;\n const day = new Date(value);\n const convertedMinDate = getDateFromString(props.minDate);\n const convertedMaxDate = getDateFromString(props.maxDate);\n\n if (\n isValidDateFromString(value, day) &&\n inDateRange(day, convertedMinDate, convertedMaxDate)\n ) {\n handleDateChange(day, event);\n } else {\n reset && typeof reset === 'function' && reset();\n }\n\n props.onInputBlur &&\n typeof props.onInputBlur === 'function' &&\n props.onInputBlur(event);\n }\n\n function handleInputKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault();\n setCalendarOpened(false);\n inputRef.current.focus();\n }\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (dateFocused && document.activeElement.closest('table')) {\n const newChosenDate = handleKeyPress(\n event,\n focusedDate,\n setCalendarOpened,\n showHelperInformation,\n onDateChange,\n iconRef\n );\n if (newChosenDate) {\n setFocusedDate(newChosenDate);\n }\n } else {\n if (event.key === 'Escape') {\n setCalendarOpened(false);\n iconRef.current.focus();\n }\n\n if (event.key === '?') {\n showHelperInformation();\n }\n }\n }\n\n function handleDateChange(\n day: Date,\n event: React.SyntheticEvent | React.ChangeEvent\n ) {\n props.onDateChange &&\n typeof props.onDateChange === 'function' &&\n props.onDateChange(day, event);\n\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(day.toISOString(), event);\n\n onDateChange(day);\n setFocusedDate(day);\n }\n\n function handleDaySelection(day: Date, event: React.SyntheticEvent) {\n handleDateChange(day, event);\n inputRef.current.focus();\n }\n\n function handleCalendarBlur(event: React.SyntheticEvent) {\n const { currentTarget } = event;\n\n // timeout needed for active element to update. Browser behavior.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=452307\n setTimeout(() => {\n const isInCalendar = currentTarget.contains(document.activeElement);\n\n if (!isInCalendar && !helperInformationShown) {\n setCalendarOpened(false);\n }\n }, 0);\n }\n\n function handleCloseButtonClick(event: React.SyntheticEvent) {\n iconRef.current.focus();\n setCalendarOpened(false);\n }\n\n function toggleCalendarOpened() {\n setCalendarOpened(opened => !opened);\n }\n\n const { placeholder, testId, ...rest } = props;\n const other = omit(\n ['onDateChange', 'onInputChange', 'onInputBlur', 'onInputFocus'],\n rest\n );\n\n const isInverse = useIsInverse(props.isInverse);\n\n const minDate = getDateFromString(props.minDate);\n const maxDate = getDateFromString(props.maxDate);\n\n const dateFormat = i18n.dateFormat;\n\n const inputValue = chosenDate ? format(chosenDate, dateFormat) : '';\n\n return (\n <CalendarContext.Provider\n value={{\n chosenDate,\n focusedDate,\n dateFocused,\n maxDate,\n minDate,\n helperInformationShown,\n buildCalendarMonth,\n showHelperInformation,\n hideHelperInformation,\n onKeyDown: handleKeyDown,\n onPrevMonthClick,\n onNextMonthClick,\n onDateChange: handleDaySelection,\n setDateFocused,\n }}\n >\n <DatePickerContainer data-testid={testId} onBlur={handleCalendarBlur}>\n <Announce>\n {calendarOpened && (\n <VisuallyHidden>\n {i18n.datePicker.calendarOpenAnnounce}\n </VisuallyHidden>\n )}\n </Announce>\n <Input\n {...other}\n icon={<EventIcon />}\n iconAriaLabel={i18n.datePicker.calendarIconAriaLabel}\n iconRef={iconRef}\n onIconClick={toggleCalendarOpened}\n onIconKeyDown={handleInputKeyDown}\n id={id}\n isInverse={isInverse}\n ref={ref}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onKeyDown={handleInputKeyDown}\n placeholder={placeholder ? placeholder : dateFormat.toLowerCase()}\n type={InputType.text}\n value={inputValue}\n />\n <InverseContext.Provider value={{ isInverse: false }}>\n <DatePickerCalendar\n data-testid=\"calendarContainer\"\n opened={calendarOpened}\n theme={theme}\n >\n <CalendarMonth\n focusOnOpen={\n calendarOpened && Boolean(focusedDate) && Boolean(chosenDate)\n }\n handleCloseButtonClick={handleCloseButtonClick}\n calendarOpened={calendarOpened}\n setDateFocused={setDateFocused}\n />\n </DatePickerCalendar>\n </InverseContext.Provider>\n </DatePickerContainer>\n </CalendarContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { MenuItemStyles, IconWrapper } from './DropdownMenuItem';\nimport { DropdownContext } from './Dropdown';\nimport { IconProps } from 'react-magma-icons';\nimport { Omit, useForkedRef } from '../../utils';\n\nexport interface DropdownMenuNavItemProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {\n /**\n * Leading icon for the menu item\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * The href value of the link\n */\n to: string;\n}\n\nconst StyledItem = styled.a<{\n disabled?: boolean;\n isFixedWidth?: boolean;\n isInactive?: boolean;\n}>`\n ${MenuItemStyles}\n text-decoration: none;\n`;\n\nexport const DropdownMenuNavItem = React.forwardRef<\n HTMLAnchorElement,\n DropdownMenuNavItemProps\n>((props, forwardedRef) => {\n const { children, icon, to, ...other } = props;\n\n const ownRef = React.useRef<HTMLDivElement>();\n const theme = React.useContext(ThemeContext);\n const context = React.useContext(DropdownContext);\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n React.useEffect(() => {\n context.registerDropdownMenuItem(context.itemRefArray, ownRef);\n }, []);\n\n return (\n <StyledItem\n {...other}\n href={to}\n isFixedWidth={context.isFixedWidth}\n ref={ref}\n role=\"menuitem\"\n tabIndex={-1}\n theme={theme}\n >\n {icon && <IconWrapper theme={theme}>{icon}</IconWrapper>}\n {children}\n </StyledItem>\n );\n});\n\nDropdownMenuNavItem.displayName = 'DropdownMenuNavItem';\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport enum FlexAlignContent {\n center = 'center',\n flexStart = 'flex-start',\n flexEnd = 'flex-end',\n spaceBetween = 'space-between',\n spaceAround = 'space-around',\n stretch = 'stretch', // default\n}\n\nexport enum FlexAlignItems {\n baseline = 'baseline',\n center = 'center',\n flexStart = 'flex-start',\n flexEnd = 'flex-end',\n stretch = 'stretch', // default\n}\n\nexport enum FlexBehavior {\n container = 'container',\n item = 'item',\n both = 'both',\n}\n\nexport enum FlexDirection {\n column = 'column',\n columnReverse = 'column-reverse',\n row = 'row', // default\n rowReverse = 'row-reverse',\n}\n\nexport enum FlexJustify {\n center = 'center',\n flexStart = 'flex-start', //default\n flexEnd = 'flex-end',\n spaceBetween = 'space-between',\n spaceAround = 'space-around',\n spaceEvenly = 'space-evenly',\n}\n\nexport enum FlexWrap {\n nowrap = 'nowrap',\n wrap = 'wrap', //default\n wrapReverse = 'wrap-reverse',\n}\n\n/**\n * @children required\n */\nexport interface FlexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Defines the align-content style property. It's applied for all screen sizes.\n * @default FlexAlignContent.stretch\n */\n alignContent?: FlexAlignContent;\n /**\n * Defines the align-items style property. It's applied for all screen sizes.\n * @default FlexAlignItems.stretch\n */\n alignItems?: FlexAlignItems;\n /**\n * Defines the flex behavior for the component. Options are container, item or both. You should be wrapping items with a container.\n */\n behavior: FlexBehavior;\n /**\n * Defines the flex-direction style property. It's applied for all screen sizes.\n * @default FlexDirection.row\n */\n direction?: FlexDirection;\n /**\n * If true, the component will have the flex item behavior. You should be wrapping items with a container.\n */\n justify?: FlexJustify;\n /**\n * Defines the space between the type item component. Spacing will be this number multiplied by 8px. It can only be used on a type container component.\n * @default 0\n */\n spacing?: number;\n testId?: string;\n /**\n * Defines the flex-wrap style property. It's applied for all screen sizes.\n * @default FlexWrap.wrap\n */\n wrap?: FlexWrap;\n /**\n * Defines the number of grids the component is going to use. It's applied for all the screen sizes with the lowest priority.\n * @default false\n */\n xs?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n /**\n * Defines the number of grids the component is going to use. It's applied for the small breakpoint and wider screens.\n * @default false\n */\n sm?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n /**\n * Defines the number of grids the component is going to use. It's applied for the medium breakpoint and wider screens.\n * @default false\n */\n md?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n /**\n * Defines the number of grids the component is going to use. It's applied for the large breakpoint and wider screens.\n * @default false\n */\n lg?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n /**\n * Defines the number of grids the component is going to use. It's applied for the extra-large breakpoint and wider screens.\n * @default false\n */\n xl?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n}\n\nfunction getWidth(size) {\n return `${Math.round((size / 12) * 10e7) / 10e5}%`;\n}\n\nconst StyledFlex = styled.div<FlexProps>`\n ${props =>\n props.behavior !== FlexBehavior.item &&\n css`\n align-content: ${props.alignContent};\n align-items: ${props.alignItems};\n flex-direction: ${props.direction};\n display: flex;\n flex-wrap: ${props.wrap};\n justify-content: ${props.justify};\n margin: ${0 - props.spacing * 4}px;\n width: calc(100% + ${props.spacing * props.theme.spacingMultiplier}px);\n\n > div {\n padding: ${props.spacing * 4}px;\n }\n `};\n\n ${props =>\n props.behavior !== FlexBehavior.container &&\n css`\n flex-grow: ${props.xs === true ? '1' : '0'};\n flex-basis: ${props.xs === true ? '0' : getWidth(props.xs)};\n max-width: ${props.xs === true ? '100%' : getWidth(props.xs)};\n\n ${props.sm &&\n css`\n @media (min-width: ${props.theme.breakpoints.small}px) {\n flex-grow: ${props.sm === true ? '1' : '0'};\n flex-basis: ${props.sm === true ? '0' : getWidth(props.sm)};\n max-width: ${props.sm === true ? '100%' : getWidth(props.sm)};\n }\n `};\n\n ${props.md &&\n css`\n @media (min-width: ${props.theme.breakpoints.medium}px) {\n flex-grow: ${props.md === true ? '1' : '0'};\n flex-basis: ${props.md === true ? '0' : getWidth(props.md)};\n max-width: ${props.md === true ? '100%' : getWidth(props.md)};\n }\n `};\n\n ${props.lg &&\n css`\n @media (min-width: ${props.theme.breakpoints.large}px) {\n flex-grow: ${props.lg === true ? '1' : '0'};\n flex-basis: ${props.lg === true ? '0' : getWidth(props.lg)};\n max-width: ${props.lg === true ? '100%' : getWidth(props.lg)};\n }\n `};\n\n ${props.xl &&\n css`\n @media (min-width: ${props.theme.breakpoints.xl}px) {\n flex-grow: ${props.xl === true ? '1' : '0'};\n flex-basis: ${props.xl === true ? '0' : getWidth(props.xl)};\n max-width: ${props.xl === true ? '100%' : getWidth(props.xl)};\n }\n `};\n `};\n`;\n\nexport const Flex = React.forwardRef<HTMLDivElement, FlexProps>(\n (props, ref) => {\n const {\n children,\n alignContent = FlexAlignContent.stretch,\n alignItems = FlexAlignItems.stretch,\n direction = FlexDirection.row,\n justify = FlexJustify.flexStart,\n spacing = 0,\n testId,\n wrap = FlexWrap.wrap,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledFlex\n {...other}\n alignContent={alignContent}\n alignItems={alignItems}\n data-testid={testId}\n direction={direction}\n justify={justify}\n ref={ref}\n spacing={spacing}\n theme={theme}\n wrap={wrap}\n >\n {children}\n </StyledFlex>\n );\n }\n);\n","import * as React from 'react';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n TypographyVisualStyle,\n TypographyColor,\n TypographyContextVariant,\n TypographyComponent,\n} from '../Typography';\n\n/**\n * @children required\n */\nexport interface ParagraphProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * The color of the component, helping to convey meaning or relative emphasis\n * @default TypographyColor.default\n */\n color?: TypographyColor;\n /**\n * Additional styles for typography based on the context of the content\n * @default TypographyContextVariant.default\n */\n contextVariant?: TypographyContextVariant;\n isInverse?: boolean;\n /**\n * If true, the component will not have the default top and bottom margin and instead will a margin value of 0\n * @default false\n */\n noMargins?: boolean;\n testId?: string;\n /**\n * @internal\n */\n theme?: any;\n /**\n * Applies visual styles including font-size, font-weight, line-height and margins\n * @default TypographyVisualStyle.bodyMedium\n */\n visualStyle?: TypographyVisualStyle;\n}\n\nexport const Paragraph = React.forwardRef<HTMLParagraphElement, ParagraphProps>(\n (props, ref) => {\n const { color, testId, visualStyle, children, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n return (\n <TypographyComponent\n {...other}\n color={color || TypographyColor.default}\n data-testid={testId}\n isInverse={useIsInverse(props.isInverse)}\n ref={ref}\n theme={theme}\n visualStyle={visualStyle || TypographyVisualStyle.bodyMedium}\n >\n {children}\n </TypographyComponent>\n );\n }\n);\n","import * as React from 'react';\nimport { Alert } from '../Alert';\nimport { AlertVariant } from '../AlertBase';\nimport { Heading } from '../Heading';\nimport { Paragraph } from '../Paragraph';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { InverseContext, useIsInverse } from '../../inverse';\nimport styled from '@emotion/styled';\n\n/**\n * @children required\n */\nexport interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * React Node containing the form action buttons; will appear under the form fields\n */\n actions: React.ReactNode;\n /**\n * General description of the form\n */\n description?: string;\n /**\n * Additional form level validation message\n */\n errorMessage?: string;\n /**\n * Title of the form\n */\n header: string;\n isInverse?: boolean;\n /**\n * Handler for form submission\n */\n testId?: string;\n}\n\nconst StyledForm = styled.form<{ isInverse?: boolean; theme: ThemeInterface }>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n`;\n\nconst FormActions = styled.div`\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n const {\n actions,\n children,\n header,\n description,\n errorMessage,\n testId,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <InverseContext.Provider\n value={{\n isInverse,\n }}\n >\n <StyledForm\n ref={ref}\n data-testid={testId}\n isInverse={isInverse}\n theme={theme}\n {...other}\n >\n <Heading level={3}>{header}</Heading>\n {description && <Paragraph>{description}</Paragraph>}\n {errorMessage && (\n <Alert variant={AlertVariant.danger}>{errorMessage}</Alert>\n )}\n <div>{children}</div>\n <FormActions>{actions}</FormActions>\n </StyledForm>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { convertStyleValueToString, useGenerateId } from '../../utils';\nimport { useIsInverse } from '../../inverse';\nimport { VisuallyHidden } from '../VisuallyHidden';\n\nexport interface ProgressBarProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The color variant of the progress bar\n * @default ProgressBarColor.primary\n */\n color?: ProgressBarColor;\n /**\n * The height of the progress bar. Can be a string or number; if number is provided height is in px\n * @default 8\n */\n height?: number | string;\n /**\n * If true, the progress bar with have a shimmer animation\n * @default false\n */\n isAnimated?: boolean;\n isInverse?: boolean;\n /**\n * @internal\n */\n isLoadingIndicator?: boolean;\n /**\n * If true, the label with the percentage value will display to the right of the progress bar\n * @default false\n */\n isLabelVisible?: boolean;\n /**\n * The percentage of which the bar is filled\n * @default 0\n */\n percentage?: number;\n testId?: string;\n}\n\nexport enum ProgressBarColor {\n danger = 'danger',\n primary = 'primary', // default\n pop = 'pop',\n pop02 = 'pop02',\n success = 'success',\n}\n\nfunction buildProgressBarBackground(props) {\n if (props.isInverse) {\n switch (props.color) {\n case 'danger':\n return props.theme.colors.dangerInverse;\n case 'success':\n return props.theme.colors.successInverse;\n default:\n return props.theme.colors.primaryInverse;\n }\n }\n switch (props.color) {\n case 'danger':\n return props.theme.colors.danger;\n case 'pop':\n return props.theme.colors.pop;\n case 'pop02':\n return props.theme.colors.pop02;\n case 'success':\n return props.theme.colors.success;\n default:\n return props.theme.colors.primary;\n }\n}\n\nconst Container = styled.div<{ isLoadingIndicator?: boolean }>`\n align-items: center;\n display: ${props => (props.isLoadingIndicator ? 'block' : 'flex')};\n`;\n\nconst Track = styled.div<ProgressBarProps>`\n background: ${props =>\n props.isInverse ? 'rgba(0,0,0,0.25)' : props.theme.colors.neutral08};\n box-shadow: inset 0 0 0 1px\n ${props =>\n props.isInverse\n ? `${props.theme.colors.neutral08}80`\n : props.theme.colors.neutral04};\n border-radius: 50em;\n overflow: hidden;\n display: flex;\n height: ${props => props.height};\n /* padding: 1px; */\n width: 100%;\n`;\n\nconst Bar = styled.div<ProgressBarProps>`\n background: ${props => buildProgressBarBackground(props)};\n border-radius: 50em;\n display: flex;\n transition: width 0.3s;\n width: ${props => props.percentage}%;\n\n ${props =>\n props.isAnimated &&\n css`\n background-image: linear-gradient(\n to right,\n ${buildProgressBarBackground(props)} 0%,\n rgba(255, 255, 255, 0.5) 20%,\n ${buildProgressBarBackground(props)} 40%,\n ${buildProgressBarBackground(props)} 100%\n );\n background-repeat: no-repeat;\n background-size: 1800px 104px;\n display: inline-block;\n position: relative;\n\n animation-duration: 1s;\n animation-fill-mode: forwards;\n animation-iteration-count: infinite;\n animation-name: placeholderShimmer;\n animation-timing-function: linear;\n\n @keyframes placeholderShimmer {\n 0% {\n background-position: -600px 0;\n }\n\n 100% {\n background-position: 600px 0;\n }\n }\n `}\n`;\n\nconst Percentage = styled.span`\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n margin-left: ${props => props.theme.spaceScale.spacing03};\n`;\n\nconst TopPercentage = styled.div`\n font-size: ${props => props.theme.typeScale.size05.fontSize};\n line-height: ${props => props.theme.typeScale.size05.lineHeight};\n margin-bottom: ${props => props.theme.spaceScale.spacing03};\n text-align: center;\n`;\n\nexport const ProgressBar = React.forwardRef<HTMLDivElement, ProgressBarProps>(\n (props, ref) => {\n const {\n color,\n height,\n id: defaultId,\n isAnimated,\n isLabelVisible,\n isLoadingIndicator,\n percentage,\n testId,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n const labelId = `${id}__label`;\n\n const percentageValue = percentage ? percentage : 0;\n\n const theme = React.useContext(ThemeContext);\n\n const heightString = convertStyleValueToString(\n height,\n theme.spaceScale.spacing03\n );\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <Container\n {...other}\n id={defaultId}\n isLoadingIndicator={isLoadingIndicator}\n >\n {isLoadingIndicator && (\n <TopPercentage theme={theme}>{percentageValue}%</TopPercentage>\n )}\n <Track\n data-testid={testId}\n height={heightString}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n >\n <Bar\n aria-labelledby={labelId}\n aria-valuenow={percentageValue}\n aria-valuemin={0}\n aria-valuemax={100}\n color={color}\n isAnimated={isAnimated}\n isInverse={isInverse}\n percentage={percentageValue}\n role=\"progressbar\"\n theme={theme}\n />\n </Track>\n {isLabelVisible ? (\n <Percentage id={labelId} theme={theme}>\n {percentageValue}%\n </Percentage>\n ) : (\n <VisuallyHidden id={labelId}>{percentageValue}%</VisuallyHidden>\n )}\n </Container>\n );\n }\n);\n","import * as React from 'react';\nimport { ProgressBar, ProgressBarColor } from '../ProgressBar';\nimport { Spinner } from '../Spinner';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { I18nContext } from '../../i18n';\n\nexport interface LoadingIndicatorProps\n extends React.HTMLAttributes<HTMLDivElement | HTMLSpanElement> {\n /**\n * @internal\n */\n css?: any; // Adding css prop to fix emotion error\n /**\n * Message displayed for the first five seconds\n * @default \"Loading...\"\n */\n message1?: string;\n /**\n * Message displayed for the first five seconds\n * @default \"Thank you for your patience. Still loading...\"\n */\n message2?: string;\n /**\n * Message displayed after 15 seconds\n * @default \"Sorry for the delay. This is taking longer than expected.\"\n */\n message3?: string;\n /**\n * Message displayed for the first five seconds\n * @default 0\n */\n percentage?: number;\n testId?: string;\n /**\n * Type of loading indictor to display, can be progress bar or spinner\n * @default LoadingIndicatorType.spinner\n */\n type?: LoadingIndicatorType;\n}\n\nexport enum LoadingIndicatorType {\n progressbar = 'progressbar',\n spinner = 'spinner', // default\n}\n\nexport interface LoadingIndicatorState {\n messageLevel: number;\n}\n\nconst StyledLoadingIndicator = styled.div`\n text-align: center;\n`;\n\nconst MessageContainer = styled.div<{ theme: ThemeInterface }>`\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n margin-top: ${props => props.theme.spaceScale.spacing05};\n min-height: 5em;\n position: relative;\n text-align: center;\n`;\n\nconst Message = styled.div<{ hide?: boolean }>`\n opacity: ${props => (props.hide ? '0' : '1')};\n position: absolute;\n transition: opacity 0.3s;\n width: 100%;\n`;\n\nexport const LoadingIndicator = React.forwardRef<\n HTMLDivElement,\n LoadingIndicatorProps\n>((props, ref) => {\n const [messageLevel, setMessageLevel] = React.useState<1 | 2 | 3>(1);\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n React.useEffect(() => {\n const { type: loadingIndicatorType } = props;\n const messageLevel2Timeout = setTimeout(\n () => {\n setMessageLevel(2);\n },\n loadingIndicatorType === LoadingIndicatorType.progressbar ? 10000 : 5000\n );\n\n const messageLevel3Timeout = setTimeout(\n () => {\n setMessageLevel(3);\n },\n loadingIndicatorType === LoadingIndicatorType.progressbar ? 30000 : 15000\n );\n\n return () => {\n clearTimeout(messageLevel2Timeout);\n clearTimeout(messageLevel3Timeout);\n };\n }, []);\n\n const { color, testId, type, ...other } = props;\n let { message1, message2, message3 } = props;\n\n message1 = message1\n ? message1\n : type === LoadingIndicatorType.progressbar\n ? i18n.loadingIndicator.progressBar.messages.first\n : i18n.loadingIndicator.spinner.messages.first;\n\n message2 = message2\n ? message2\n : type === LoadingIndicatorType.progressbar\n ? i18n.loadingIndicator.progressBar.messages.second\n : i18n.loadingIndicator.spinner.messages.second;\n\n message3 = message3\n ? message3\n : type === LoadingIndicatorType.progressbar\n ? i18n.loadingIndicator.progressBar.messages.third\n : i18n.loadingIndicator.spinner.messages.third;\n\n return (\n <StyledLoadingIndicator aria-busy=\"true\" data-testid={testId} ref={ref}>\n {type === LoadingIndicatorType.progressbar ? (\n <ProgressBar\n {...other}\n color={color as ProgressBarColor}\n height={theme.spaceScale.spacing03}\n isAnimated\n isLoadingIndicator\n />\n ) : (\n <Spinner {...other} size={theme.spaceScale.spacing10} />\n )}\n\n <MessageContainer theme={theme}>\n <Message aria-hidden={messageLevel !== 1} hide={messageLevel !== 1}>\n {message1}\n </Message>\n <Message aria-hidden={messageLevel !== 2} hide={messageLevel !== 2}>\n {message2}\n </Message>\n <Message aria-hidden={messageLevel !== 3} hide={messageLevel !== 3}>\n {message3}\n </Message>\n </MessageContainer>\n </StyledLoadingIndicator>\n );\n});\n","import styled from '../../theme/styled';\n\nimport { inputBaseStyles } from '../InputBase';\nimport { Card } from '../Card';\n\nexport const SelectContainer = styled.div`\n position: relative;\n`;\n\nexport const StyledButton = styled.div`\n ${inputBaseStyles}\n align-items: center;\n display: flex;\n text-align: left;\n`;\n\nexport const SelectText = styled.span`\n flex-grow: 1;\n padding: 0 8px 0 4px;\n`;\n\nexport const StyledCard = styled(Card)<{\n isOpen?: boolean;\n}>`\n display: ${props => (props.isOpen ? 'block' : 'none')};\n left: 4px;\n margin-top: 4px;\n padding: 4px 0 0;\n position: absolute;\n right: 4px;\n top: auto;\n z-index: 2;\n`;\n\nexport const StyledList = styled('ul')<{ isOpen?: boolean; maxHeight: string }>`\n display: ${props => (props.isOpen ? 'block' : 'none')};\n list-style: none;\n margin: 0 0 4px;\n outline: none;\n padding: 0;\n max-height: ${props => props.maxHeight};\n overflow-y: auto;\n`;\n\nexport const StyledItem = styled('li')<{ isFocused?: boolean }>`\n align-self: center;\n background: ${props =>\n props.isFocused ? props.theme.colors.neutral06 : 'transparent'};\n border: 2px dotted;\n border-color: ${props =>\n props.isFocused ? props.theme.colors.focus : 'transparent'};\n cursor: default;\n line-height: 24px;\n margin: 0;\n padding: 8px 16px;\n`;\n\nexport const SelectedItemsWrapper = styled.span`\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding: 0 0 0 4px;\n`;\n\nexport const SelectedItemButton = styled.button`\n align-self: center;\n background: ${props => props.theme.colors.neutral06};\n border-radius: 4px;\n border: 0;\n box-shadow: 0 0 0;\n display: flex;\n font-size: 12px;\n line-height: 16px;\n height: 24px;\n margin: 4px 2px 4px 4px;\n padding: ${props => props.theme.spaceScale.spacing02}\n ${props => props.theme.spaceScale.spacing02}\n ${props => props.theme.spaceScale.spacing02}\n ${props => props.theme.spaceScale.spacing03};\n position: relative;\n white-space: nowrap;\n`;\n\nexport const IconWrapper = styled.span`\n padding-left: 12px;\n`;\n","import * as React from 'react';\nimport { IconButton, IconButtonProps } from '../IconButton';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { IconProps, ArrowDropDownIcon } from 'react-magma-icons';\nimport { StyledItem } from './shared';\nimport { ThemeInterface } from '../../theme/magma';\n\nexport type ItemRenderOptions<T> = {\n key: string;\n isFocused?: boolean;\n item: T;\n itemRef: React.Ref<HTMLLIElement>;\n itemString: string;\n theme: ThemeInterface;\n [key: string]: any;\n};\n\nexport type SelectComponents<T> = {\n ClearIndicator?: React.FunctionComponent<IconButtonProps>;\n DropdownIndicator?: React.FunctionComponent<Partial<IconProps>>;\n LoadingIndicator?: React.FunctionComponent<SpinnerProps>;\n Item?: React.FunctionComponent<ItemRenderOptions<T>>;\n};\n\nexport const DefaultClearIndicator = props => {\n return <IconButton testId=\"clearIndicator\" {...props} />;\n};\n\nexport const DefaultDropdownIndicator = props => {\n return (\n <ArrowDropDownIcon\n size={24}\n style={{ flexShrink: 0 }}\n testId=\"caretDown\"\n {...props}\n />\n );\n};\n\nexport const DefaultLoadingIndicator = props => {\n return <Spinner testId=\"loadingIndicator\" {...props} />;\n};\n\nexport function DefaultItem<T>({\n itemRef,\n itemString,\n ...props\n}: ItemRenderOptions<T>) {\n return (\n <StyledItem {...props} ref={itemRef}>\n {itemString}\n </StyledItem>\n );\n}\n\nexport function defaultComponents<T>(props: SelectComponents<T>) {\n return {\n ClearIndicator: DefaultClearIndicator,\n DropdownIndicator: DefaultDropdownIndicator,\n LoadingIndicator: DefaultLoadingIndicator,\n Item: DefaultItem,\n ...props,\n };\n}\n","import React from 'react';\nimport {\n inputBaseStyles,\n inputWrapperStyles,\n InputBaseStylesProps,\n InputWrapperStylesProps,\n} from '../InputBase';\nimport { defaultComponents, SelectComponents } from '../Select/components';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '../../theme/styled';\n\nconst StyledButton = styled.div<InputBaseStylesProps & InputWrapperStylesProps>`\n ${inputBaseStyles}\n ${inputWrapperStyles}\n\n align-items: center;\n display: flex;\n height: auto;\n min-height: ${props => props.theme.spaceScale.spacing09};\n padding: 0 ${props => props.theme.spaceScale.spacing03} 0\n ${props => props.theme.spaceScale.spacing02};\n text-align: left;\n`;\n\nconst ChildrenContainer = styled.div`\n align-items: center;\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n`;\n\ninterface SelectTriggerButtonInterface<T> {\n ariaDescribedBy?: string;\n children: React.ReactNode | React.ReactNode[];\n customComponents?: SelectComponents<T>;\n hasError?: boolean;\n disabled?: boolean;\n isInverse?: boolean;\n style?: React.CSSProperties;\n toggleButtonProps: any;\n tabindex?: number;\n}\n\nexport function SelectTriggerButton<T>(props: SelectTriggerButtonInterface<T>) {\n const {\n ariaDescribedBy,\n children,\n customComponents,\n hasError,\n disabled,\n isInverse,\n style: passedInStyle,\n toggleButtonProps,\n } = props;\n const theme = React.useContext(ThemeContext);\n\n const { DropdownIndicator } = defaultComponents<T>({\n ...customComponents,\n });\n\n const style = { ...passedInStyle, cursor: 'default' };\n\n return (\n <StyledButton\n {...toggleButtonProps}\n aria-describedby={ariaDescribedBy}\n data-testid=\"selectTriggerButton\"\n hasError={hasError}\n disabled={disabled}\n isInverse={isInverse}\n role=\"button\"\n style={style}\n theme={theme}\n tabIndex={disabled ? undefined : 0}\n >\n <ChildrenContainer>{children}</ChildrenContainer>\n <DropdownIndicator />\n </StyledButton>\n );\n}\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nimport { inputBaseStyles } from '../InputBase';\nimport {\n FormFieldContainer,\n FormFieldContainerBaseProps,\n} from '../FormFieldContainer';\nimport { SelectTriggerButton } from '../Select/SelectTriggerButton';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\nimport { useGenerateId } from '../../utils';\n\n/**\n * @children required\n */\nexport interface NativeSelectProps\n extends Omit<FormFieldContainerBaseProps, 'inputSize'>,\n React.SelectHTMLAttributes<HTMLSelectElement> {\n testId?: string;\n optionLabel?: string;\n}\nconst StyledNativeSelect = styled.select`\n ${inputBaseStyles};\n background: inherit;\n`;\n\nexport const NativeSelect = React.forwardRef<HTMLDivElement, NativeSelectProps>(\n (props, ref) => {\n const {\n children,\n containerStyle,\n disabled,\n errorMessage,\n id: defaultId,\n helperMessage,\n isInverse: isInverseProp,\n labelStyle,\n labelText,\n messageStyle,\n testId,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n const id = useGenerateId(defaultId);\n\n return (\n <FormFieldContainer\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n labelStyle={labelStyle}\n labelText={labelText}\n isInverse={isInverse}\n helperMessage={helperMessage}\n messageStyle={messageStyle}\n ref={ref}\n >\n <SelectTriggerButton\n disabled={disabled}\n hasError={!!errorMessage}\n isInverse={isInverse}\n toggleButtonProps={''}\n >\n <StyledNativeSelect\n {...other}\n data-testid={testId}\n disabled={disabled}\n id={id}\n isInverse={isInverse}\n theme={theme}\n >\n {children}\n </StyledNativeSelect>\n </SelectTriggerButton>\n </FormFieldContainer>\n );\n }\n);\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\n\ninterface TabsContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The index of the current active tab. You can use this for managing state of the tabs component by your custom logic.\n */\n activeIndex?: number;\n isInverse?: boolean;\n testId?: string;\n}\n\ninterface TabsContainerContextInterface {\n activeTabIndex: number;\n isInverseContainer: boolean;\n setActiveTabIndex: React.Dispatch<React.SetStateAction<number>>;\n}\n\nexport const TabsContainerContext = React.createContext<TabsContainerContextInterface>(\n {\n activeTabIndex: 0,\n isInverseContainer: false,\n setActiveTabIndex: () => 0,\n }\n);\n\nconst StyledTabsContainer = styled.div<{\n isInverse?: boolean;\n theme: ThemeInterface;\n}>`\n background: ${props =>\n props.isInverse ? props.theme.colors.foundation02 : 'none'};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: flex;\n flex-wrap: wrap;\n position: relative;\n`;\n\nexport const TabsContainer = React.forwardRef<\n HTMLDivElement,\n TabsContainerProps\n>((props, ref) => {\n const { activeIndex, children, testId } = props;\n\n React.useEffect(() => {\n if (activeIndex >= 0) {\n setActiveTabIndex(activeIndex);\n }\n }, [activeIndex]);\n\n const [activeTabIndex, setActiveTabIndex] = React.useState(activeIndex || 0);\n\n const isInverse = useIsInverse(props.isInverse);\n\n React.useEffect(() => {\n setIsInverseContainer(isInverse);\n }, [props.isInverse]);\n\n const [isInverseContainer, setIsInverseContainer] = React.useState(\n Boolean(props.isInverse)\n );\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <TabsContainerContext.Provider\n value={{\n activeTabIndex,\n setActiveTabIndex,\n isInverseContainer,\n }}\n >\n <StyledTabsContainer\n ref={ref}\n data-testid={testId}\n theme={theme}\n {...props}\n >\n {children}\n </StyledTabsContainer>\n </TabsContainerContext.Provider>\n );\n});\n","export enum TabsOrientation {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/core';\nimport { transparentize } from 'polished';\nimport { TabsOrientation } from './shared';\nimport { ThemeInterface } from '../../theme/magma';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\n\nimport {\n ArrowBackIosIcon,\n ExpandLessIcon,\n ExpandMoreIcon,\n ArrowForwardIosIcon,\n} from 'react-magma-icons';\n\nexport interface ScrollButtonProps\n extends React.HTMLAttributes<HTMLButtonElement> {\n backgroundColor?: string;\n buttonVisible?: boolean;\n isInverse?: boolean;\n orientation?: TabsOrientation;\n theme?: ThemeInterface;\n}\n\nconst StyledScrollButton = styled.button<ScrollButtonProps>`\n align-items: center;\n backdrop-filter: blur(1px);\n border: 0;\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n cursor: pointer;\n display: ${props => (props.buttonVisible ? 'flex' : 'none')};\n justify-content: center;\n outline-offset: 0;\n position: absolute;\n -webkit-appearance: none;\n z-index: 2;\n\n bottom: 0;\n top: 0;\n width: 44px;\n\n ${props =>\n props.orientation === 'vertical' &&\n css`\n left: 0;\n height: 44px;\n right: 0;\n width: 100%;\n `}\n`;\n\nconst StyledButtonPrev = styled(StyledScrollButton)<ScrollButtonProps>`\n background: ${props => `linear-gradient(\n 90deg,\n ${props.backgroundColor} 0%,\n ${transparentize(0.5, props.backgroundColor)} 100%\n )`};\n left: 0;\n\n ${props =>\n props.orientation === 'vertical' &&\n css`\n background: ${`linear-gradient(\n ${props.backgroundColor} 0%,\n ${transparentize(0.5, props.backgroundColor)} 100%\n )`};\n\n bottom: auto;\n `}\n`;\n\nconst StyledButtonNext = styled(StyledScrollButton)<{\n backgroundColor?: string;\n orientation?: TabsOrientation;\n}>`\n background: ${props => `linear-gradient(\n 90deg,\n ${transparentize(0.5, props.backgroundColor)} 0%,\n ${props.backgroundColor} 100%\n )`};\n right: 0;\n\n ${props =>\n props.orientation === 'vertical' &&\n css`\n background: linear-gradient(\n ${transparentize(0.5, props.backgroundColor)} 0%,\n ${props.backgroundColor} 100%\n );\n top: auto;\n `}\n`;\n\nexport const ButtonPrev = React.forwardRef<\n HTMLButtonElement,\n ScrollButtonProps\n>((props, ref) => {\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledButtonPrev\n aria-label={i18n.tabs.previousButtonLabel}\n backgroundColor={props.backgroundColor}\n buttonVisible={props.buttonVisible}\n data-testid=\"buttonPrev\"\n isInverse={props.isInverse}\n onClick={props.onClick}\n orientation={props.orientation}\n ref={ref}\n theme={props.theme}\n >\n {props.orientation === TabsOrientation.vertical ? (\n <ExpandLessIcon size={theme.iconSizes.small} />\n ) : (\n <ArrowBackIosIcon size={theme.iconSizes.small} />\n )}\n </StyledButtonPrev>\n );\n});\n\nexport const ButtonNext = React.forwardRef<\n HTMLButtonElement,\n ScrollButtonProps\n>((props, ref) => {\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledButtonNext\n aria-label={i18n.tabs.nextButtonLabel}\n backgroundColor={props.backgroundColor}\n buttonVisible={props.buttonVisible}\n data-testid=\"buttonNext\"\n isInverse={props.isInverse}\n onClick={props.onClick}\n orientation={props.orientation}\n ref={ref}\n theme={props.theme}\n >\n {props.orientation === TabsOrientation.vertical ? (\n <ExpandMoreIcon size={theme.iconSizes.small} />\n ) : (\n <ArrowForwardIosIcon size={theme.iconSizes.small} />\n )}\n </StyledButtonNext>\n );\n});\n","import React from 'react';\nimport { TabsOrientation } from './shared';\nimport {\n animate,\n debounce,\n getNormalizedScrollLeft,\n detectScrollType,\n} from '../../utils';\n\nexport function useTabsMeta(theme, orientation, backgroundColor, isInverse) {\n const isRtl = theme.direction === 'rtl';\n const vertical = orientation === TabsOrientation.vertical;\n const scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n const clientSize = vertical ? 'clientHeight' : 'clientWidth';\n\n const approxTabSize = vertical\n ? theme.tabs.approxTabSize.vertical\n : theme.tabs.approxTabSize.horizontal;\n\n const background = backgroundColor\n ? backgroundColor\n : isInverse\n ? theme.colors.foundation\n : theme.colors.neutral08;\n\n const [displayScroll, setDisplayScroll] = React.useState({\n start: false,\n end: false,\n });\n\n const tabsWrapperRef = React.useRef<HTMLDivElement>();\n const prevButtonRef = React.useRef<HTMLButtonElement>();\n const nextButtonRef = React.useRef<HTMLButtonElement>();\n\n function scroll(scrollValue) {\n animate(scrollStart, tabsWrapperRef.current, scrollValue);\n }\n\n function moveTabsScroll(delta) {\n let scrollValue = tabsWrapperRef.current[scrollStart];\n\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1);\n // Fix for Edge\n scrollValue *= isRtl && detectScrollType() === 'reverse' ? -1 : 1;\n }\n\n scroll(scrollValue);\n }\n\n function handleStartScrollClick() {\n moveTabsScroll(-tabsWrapperRef.current[clientSize] + approxTabSize);\n }\n\n function handleEndScrollClick() {\n moveTabsScroll(tabsWrapperRef.current[clientSize] - approxTabSize);\n }\n\n function updateScrollButtonState() {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollWidth,\n clientWidth,\n } = tabsWrapperRef.current;\n let showStartScroll;\n let showEndScroll;\n\n if (vertical) {\n showStartScroll = scrollTop > 1;\n showEndScroll = scrollTop < scrollHeight - clientHeight - 1;\n } else {\n const scrollLeft = getNormalizedScrollLeft(\n tabsWrapperRef.current,\n theme.direction\n );\n // use 1 for the potential rounding error with browser zooms.\n showStartScroll = isRtl\n ? scrollLeft < scrollWidth - clientWidth - 1\n : scrollLeft > 1;\n showEndScroll = !isRtl\n ? scrollLeft < scrollWidth - clientWidth - 1\n : scrollLeft > 1;\n }\n\n if (\n showStartScroll !== displayScroll.start ||\n showEndScroll !== displayScroll.end\n ) {\n setDisplayScroll({ start: showStartScroll, end: showEndScroll });\n }\n }\n\n React.useEffect(() => {\n const handleResize = debounce(updateScrollButtonState, 100);\n\n window.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [updateScrollButtonState]);\n\n const handleTabsScroll = React.useCallback(\n debounce(updateScrollButtonState, 100),\n [updateScrollButtonState]\n );\n\n React.useEffect(() => {\n return () => {\n handleTabsScroll.clear();\n };\n }, [handleTabsScroll]);\n\n React.useEffect(updateScrollButtonState);\n\n return [\n { vertical, background, displayScroll, scrollStart },\n { handleStartScrollClick, handleEndScrollClick, handleTabsScroll, scroll },\n { prevButtonRef, nextButtonRef, tabsWrapperRef },\n ];\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { TabsContainerContext } from './TabsContainer';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { Omit, getNormalizedScrollLeft } from '../../utils';\nimport { useDescendants } from '../../hooks/useDescendants';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { ButtonNext, ButtonPrev } from './TabsScrollButtons';\nimport { useTabsMeta } from './utils';\nimport { I18nContext } from '../../i18n';\n\nexport enum TabsAlignment {\n center = 'center',\n left = 'left',\n right = 'right',\n}\n\nexport enum TabsBorderPosition {\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n top = 'top',\n}\n\nexport enum TabsIconPosition {\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n top = 'top',\n}\n\nexport enum TabsOrientation {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n\nexport interface VerticalTabsProps {\n orientation?: TabsOrientation.vertical;\n borderPosition?: TabsBorderPosition.left | TabsBorderPosition.right;\n}\nexport interface HorizontalTabsProps {\n orientation?: TabsOrientation.horizontal;\n borderPosition?: TabsBorderPosition.bottom | TabsBorderPosition.top;\n}\n\nexport declare type Orientation = HorizontalTabsProps | VerticalTabsProps;\n\nexport interface TabsProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /**\n * Alignment of the tabs menu\n * @default TabsAlignment.left\n */\n alignment?: TabsAlignment;\n /**\n * The text the screen reader will announce that describes your tablist.\n */\n 'aria-label'?: string;\n /**\n * Background color for the tabs menu\n */\n backgroundColor?: string;\n /**\n * The orientation of icon on Tab\n */\n iconPosition?: TabsIconPosition;\n /**\n * If true, the components takes the full width of the screen\n */\n isFullWidth?: boolean;\n isInverse?: boolean;\n /**\n * The onChange handler for managing state of Tabs component by your custom logic.\n */\n onChange?: (newActiveIndex: number) => void;\n orientation?: TabsOrientation;\n testId?: string;\n}\n\ninterface TabsContextInterface {\n borderPosition?: TabsBorderPosition;\n buttonRefArray?: React.MutableRefObject<React.MutableRefObject<Element>[]>;\n changeHandler: (\n newActiveIndex: number,\n event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => void;\n iconPosition?: TabsIconPosition;\n isInverse?: boolean;\n isFullWidth?: boolean;\n orientation?: TabsOrientation;\n registerTabButton: (\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n ) => void;\n}\n\nexport const TabsContext = React.createContext<TabsContextInterface>({\n borderPosition: TabsBorderPosition.bottom,\n changeHandler: () => {},\n iconPosition: TabsIconPosition.left,\n isInverse: false,\n isFullWidth: false,\n orientation: TabsOrientation.horizontal,\n registerTabButton: (elements, element) => {},\n});\n\nexport const StyledContainer = styled('div', {\n shouldForwardProp: isPropValid,\n})<{\n as?: string;\n orientation: TabsOrientation;\n isInverse: boolean;\n backgroundColor: string;\n theme: ThemeInterface;\n}>`\n background-color: ${props =>\n props.backgroundColor\n ? props.backgroundColor\n : props.isInverse\n ? props.theme.colors.foundation\n : 'transparent'};\n background: backgroundColor;\n display: flex;\n height: ${props => (props.orientation === 'vertical' ? '100%' : 'auto')};\n\n position: relative;\n width: ${props => (props.orientation === 'vertical' ? 'auto' : '100%')};\n`;\n\nexport const StyledTabsWrapper = styled('div', {\n shouldForwardProp: isPropValid,\n})<{\n orientation: TabsOrientation;\n}>`\n display: flex;\n flex-grow: 1;\n overflow-x: ${props => (props.orientation === 'vertical' ? '' : 'auto')};\n overflow-y: ${props => (props.orientation === 'vertical' ? 'auto' : '')};\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n scrollbar-width: none;\n`;\n\nexport const StyledTabs = styled('ul', { shouldForwardProp: isPropValid })<{\n alignment?: TabsAlignment;\n orientation: TabsOrientation;\n}>`\n align-items: center;\n display: flex;\n flex-direction: ${props =>\n props.orientation === 'vertical' ? 'column' : 'row'};\n justify-content: ${props =>\n props.alignment === 'center'\n ? 'center'\n : props.alignment === 'right'\n ? 'flex-end'\n : ''};\n margin: 0;\n padding: 0;\n width: ${props => (props.orientation === 'vertical' ? 'auto' : '100%')};\n`;\n\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps & Orientation>(\n (props, ref) => {\n const {\n alignment,\n backgroundColor,\n borderPosition,\n children,\n isFullWidth,\n orientation,\n onChange,\n iconPosition,\n testId,\n ...rest\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const { activeTabIndex, setActiveTabIndex, isInverseContainer } =\n React.useContext(TabsContainerContext);\n\n const isInverse =\n typeof props.isInverse !== 'undefined'\n ? Boolean(props.isInverse)\n : isInverseContainer;\n\n const [tabsMeta, tabsHandleMethods, tabsRefs] = useTabsMeta(\n theme,\n orientation,\n backgroundColor,\n isInverse\n );\n\n const { vertical, background, displayScroll, scrollStart } = tabsMeta;\n const {\n handleStartScrollClick,\n handleEndScrollClick,\n handleTabsScroll,\n scroll,\n } = tabsHandleMethods;\n const { prevButtonRef, nextButtonRef, tabsWrapperRef } = tabsRefs;\n\n const start = vertical ? 'top' : 'left';\n const end = vertical ? 'bottom' : 'right';\n\n const [buttonRefArray, registerTabButton] = useDescendants();\n\n const childrenWrapperRef = React.useRef<HTMLUListElement>();\n\n function getTabsMeta() {\n const tabsNode = tabsWrapperRef.current;\n let tabsMeta;\n if (tabsNode) {\n const rect = tabsNode.getBoundingClientRect();\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollLeftNormalized: getNormalizedScrollLeft(\n tabsNode,\n theme.direction\n ),\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right,\n };\n }\n\n let tabMeta;\n if (tabsNode) {\n const childrenArray = childrenWrapperRef.current.children;\n if (childrenArray.length > 0) {\n const tab = childrenArray[activeTabIndex];\n tabMeta = tab ? (tab as any).getBoundingClientRect() : null;\n }\n }\n return { tabsMeta, tabMeta };\n }\n\n function scrollSelectedIntoView() {\n const { tabsMeta, tabMeta } = getTabsMeta();\n\n if (!tabMeta || !tabsMeta) {\n return;\n }\n\n const prevButtonOffset = vertical\n ? Number(prevButtonRef.current.offsetHeight)\n : Number(prevButtonRef.current.offsetWidth);\n const nextButtonOffset = vertical\n ? Number(nextButtonRef.current.offsetHeight)\n : Number(nextButtonRef.current.offsetWidth);\n\n if (tabMeta[start] < Number(tabsMeta[start]) + prevButtonOffset) {\n // left side of button is out of view\n const nextScrollStart =\n Number(tabsMeta[scrollStart]) +\n (Number(tabMeta[start]) - Number(tabsMeta[start])) -\n prevButtonOffset;\n scroll(nextScrollStart);\n } else if (tabMeta[end] > Number(tabsMeta[end]) - nextButtonOffset) {\n // right side of button is out of view\n const nextScrollStart =\n Number(tabsMeta[scrollStart]) +\n (Number(tabMeta[end]) - Number(tabsMeta[end])) +\n nextButtonOffset;\n scroll(nextScrollStart);\n }\n }\n\n React.useEffect(scrollSelectedIntoView, []);\n\n React.useEffect(scrollSelectedIntoView, [activeTabIndex]);\n\n function changeHandler(\n newActiveIndex: number,\n event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ): void {\n if (\n (event.target as HTMLInputElement).children[0] &&\n (event.target as HTMLInputElement).children[0].hasAttribute('disabled')\n ) {\n event.preventDefault();\n return undefined;\n }\n\n onChange && typeof onChange === 'function' && onChange(newActiveIndex);\n\n newActiveIndex === activeTabIndex\n ? scrollSelectedIntoView()\n : setActiveTabIndex(newActiveIndex);\n }\n\n function tabIsEnabled(tabIndex) {\n return (\n buttonRefArray.current[tabIndex].current.getAttribute('disabled') ===\n null\n );\n }\n\n function findPreviousEnabledTabIndex(modifiedActiveTabIndex?: number) {\n const currentTabIndex = modifiedActiveTabIndex\n ? modifiedActiveTabIndex\n : activeTabIndex;\n const newActiveTabIndex = currentTabIndex > 0 ? currentTabIndex - 1 : 0;\n\n if (tabIsEnabled(newActiveTabIndex)) {\n return newActiveTabIndex;\n } else if (newActiveTabIndex - 1 >= 0) {\n return findPreviousEnabledTabIndex(newActiveTabIndex);\n } else {\n return activeTabIndex;\n }\n }\n\n function findNextEnabledTabIndex(\n lastChildIndex: number,\n modifiedActiveTabIndex?: number\n ) {\n const currentTabIndex =\n modifiedActiveTabIndex === 0 || modifiedActiveTabIndex\n ? modifiedActiveTabIndex\n : activeTabIndex;\n const newActiveTabIndex =\n currentTabIndex < lastChildIndex ? currentTabIndex + 1 : lastChildIndex;\n\n if (tabIsEnabled(newActiveTabIndex)) {\n return newActiveTabIndex;\n } else if (newActiveTabIndex + 1 <= lastChildIndex) {\n return findNextEnabledTabIndex(lastChildIndex, newActiveTabIndex);\n } else {\n return activeTabIndex;\n }\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n const target = event.target as HTMLButtonElement;\n\n const role = target.getAttribute('role');\n if (role !== 'tab') {\n return;\n }\n\n const lastChildIndex = buttonRefArray.current.length - 1;\n let newActiveTabIndex = null;\n let previousItemKey =\n orientation !== TabsOrientation.vertical ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey =\n orientation !== TabsOrientation.vertical ? 'ArrowRight' : 'ArrowDown';\n\n switch (event.key) {\n case previousItemKey:\n newActiveTabIndex = findPreviousEnabledTabIndex();\n break;\n case nextItemKey:\n newActiveTabIndex = findNextEnabledTabIndex(lastChildIndex);\n break;\n case 'Home':\n newActiveTabIndex = tabIsEnabled(0)\n ? 0\n : findNextEnabledTabIndex(lastChildIndex, 0);\n break;\n case 'End':\n newActiveTabIndex = tabIsEnabled(lastChildIndex)\n ? lastChildIndex\n : findPreviousEnabledTabIndex(lastChildIndex);\n break;\n default:\n break;\n }\n\n if (newActiveTabIndex !== null) {\n onChange &&\n typeof onChange === 'function' &&\n onChange(newActiveTabIndex);\n setActiveTabIndex(newActiveTabIndex);\n (\n buttonRefArray.current[newActiveTabIndex].current as HTMLButtonElement\n ).focus();\n event.preventDefault();\n }\n }\n\n const i18n = React.useContext(I18nContext);\n const ariaLabel = `${rest['aria-label'] || ''}, ${\n orientation === TabsOrientation.vertical\n ? i18n.tabs.verticalTabsInstructions\n : i18n.tabs.horizontalTabsInstructions\n }`;\n\n return (\n <StyledContainer\n data-testid={testId}\n backgroundColor={background}\n isInverse={isInverse}\n orientation={orientation || TabsOrientation.horizontal}\n ref={ref}\n theme={theme}\n {...rest}\n >\n <ButtonPrev\n backgroundColor={background}\n buttonVisible={displayScroll.start}\n isInverse={isInverse}\n onClick={handleStartScrollClick}\n orientation={orientation || TabsOrientation.horizontal}\n ref={prevButtonRef}\n theme={theme}\n />\n <StyledTabsWrapper\n data-testid=\"tabsWrapper\"\n onScroll={handleTabsScroll}\n orientation={orientation}\n ref={tabsWrapperRef}\n >\n <StyledTabs\n alignment={alignment ? alignment : TabsAlignment.left}\n aria-label={ariaLabel}\n aria-orientation={orientation || TabsOrientation.horizontal}\n onKeyDown={handleKeyDown}\n orientation={orientation}\n ref={childrenWrapperRef}\n role=\"tablist\"\n >\n <TabsContext.Provider\n value={{\n borderPosition,\n buttonRefArray,\n changeHandler,\n iconPosition,\n isInverse,\n isFullWidth,\n orientation,\n registerTabButton,\n }}\n >\n {children}\n </TabsContext.Provider>\n </StyledTabs>\n </StyledTabsWrapper>\n <ButtonNext\n backgroundColor={background}\n buttonVisible={displayScroll.end}\n isInverse={isInverse}\n onClick={handleEndScrollClick}\n orientation={orientation || TabsOrientation.horizontal}\n ref={nextButtonRef}\n theme={theme}\n />\n </StyledContainer>\n );\n }\n);\n","import React from 'react';\n\nexport function useForceUpdate() {\n const [, setTick] = React.useState(0);\n const update = React.useCallback(() => {\n setTick(tick => tick + 1);\n }, []);\n return update;\n}","import React from 'react';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { css } from '@emotion/core';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { TabsIconPosition, TabsBorderPosition, TabsContext } from './Tabs';\nimport { TabsOrientation } from './shared';\nimport { useForkedRef } from '../../utils';\nimport { useForceUpdate } from '../../hooks/useForceUpdate';\nimport { TabsContainerContext } from './TabsContainer';\nimport { ThemeInterface } from '../../theme/magma';\n\nexport interface TabProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<any> | React.ReactElement<any>[];\n /**\n * If true, the component will display with the active/selected state\n * @default false\n */\n isActive?: boolean;\n isInverse?: boolean;\n testId?: string;\n /**\n * @internal\n */\n theme?: any;\n}\n\nexport const StyledTabsChild = styled('li', {\n shouldForwardProp: isPropValid,\n})<{\n borderPosition?: TabsBorderPosition;\n isActive?: boolean;\n isFullWidth?: boolean;\n isInverse?: boolean;\n orientation: TabsOrientation;\n theme: ThemeInterface;\n}>`\n flex-grow: 0;\n flex-shrink: ${props => (props.isFullWidth ? '1' : '0')};\n height: ${props => (props.orientation === 'vertical' ? 'auto' : '100%')};\n list-style: none;\n margin: 0;\n max-width: ${props => (props.isFullWidth ? '100%' : '250px')};\n padding: 0;\n position: relative;\n white-space: normal;\n width: ${props =>\n props.isFullWidth || props.orientation === 'vertical' ? '100%' : 'auto'};\n\n &:after {\n background: ${props =>\n props.isInverse ? props.theme.colors.pop02 : props.theme.colors.primary};\n border-radius: 2px;\n content: '';\n display: block;\n height: 4px;\n opacity: ${props => (props.isActive ? '1' : '0')};\n position: absolute;\n transition: 0.4s all;\n width: auto;\n\n bottom: ${props => (props.borderPosition === 'top' ? 'auto' : '0')};\n left: ${props => (props.isActive ? '0' : '50%')};\n right: ${props => (props.isActive ? '0' : '50%')};\n top: ${props => (props.borderPosition === 'top' ? '0' : 'auto')};\n\n ${props =>\n props.orientation === 'vertical' &&\n css`\n height: auto;\n\n bottom: ${props.isActive ? '0' : '50%'};\n left: ${props.borderPosition === 'right' ? 'auto' : '0'};\n right: ${props.borderPosition === 'right' ? '0' : 'auto'};\n top: ${props.isActive ? '0' : '50%'};\n\n width: 4px;\n `}\n }\n`;\n\nfunction getFlexDirection(position: TabsIconPosition) {\n switch (position) {\n case TabsIconPosition.left:\n return 'row';\n case TabsIconPosition.right:\n return 'row-reverse';\n case TabsIconPosition.top:\n return 'column';\n case TabsIconPosition.bottom:\n return 'column-reverse';\n default:\n return 'column';\n }\n}\n\nexport const TabStyles = props => css`\n align-items: center;\n background: transparent;\n border: 0;\n color: ${props.isActive && !props.isInverse\n ? props.theme.colors.primary\n : props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral03};\n cursor: ${props.disabled ? 'auto' : 'pointer'};\n display: flex;\n flex-direction: ${getFlexDirection(props.iconPosition)};\n flex-grow: 0;\n flex-shrink: ${props.isFullWidth ? '1' : '0'};\n font-weight: 600;\n font-size: ${props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props.theme.typeScale.size02.letterSpacing};\n line-height: ${props.theme.typeScale.size02.lineHeight};\n height: 100%;\n justify-content: ${props.iconPosition === 'left' ? 'flex-start' : 'center'};\n opacity: ${props.disabled\n ? 0.4\n : props.isInverse && !props.isActive\n ? 0.7\n : 1};\n padding: ${props.theme.spaceScale.spacing04}\n ${props.theme.spaceScale.spacing05};\n position: relative;\n pointer-events: ${props.disabled ? 'none' : ''};\n text-align: center;\n text-decoration: none;\n text-transform: uppercase;\n width: ${props.isFullWidth ? '100%' : 'auto'};\n\n ${props.orientation === 'vertical' &&\n css`\n align-items: flex-start;\n justify-content: ${props.iconPosition === 'left'\n ? 'flex-start'\n : 'flex-end'};\n text-align: left;\n width: 100%;\n\n align-items: center;\n `}\n\n &:hover,\n &:focus {\n background-color: ${props.isActive\n ? ''\n : props.isInverse\n ? props.theme.colors.shade02\n : props.theme.colors.shade};\n color: ${props.isActive\n ? props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.primary\n : props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral02};\n }\n\n &:focus {\n outline-offset: -2px;\n outline: ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus}\n dotted 2px;\n }\n`;\n\nconst StyledTab = styled('button', { shouldForwardProp: isPropValid })<{\n borderPosition?: TabsBorderPosition;\n iconPosition?: TabsIconPosition;\n isActive?: boolean;\n isFullWidth?: boolean;\n isInverse?: boolean;\n orientation: TabsOrientation;\n theme: ThemeInterface;\n}>`\n ${TabStyles}\n`;\n\nfunction getIconMargin(props) {\n if (props.isIconOnly) {\n return `0`;\n }\n\n switch (props.iconPosition) {\n case TabsIconPosition.left:\n return `0 ${props.theme.spaceScale.spacing03} 0 0`;\n case TabsIconPosition.right:\n return `0 0 0 ${props.theme.spaceScale.spacing03}`;\n case TabsIconPosition.top:\n return `0 0 ${props.theme.spaceScale.spacing02}`;\n case TabsIconPosition.bottom:\n return `${props.theme.spaceScale.spacing02} 0 0`;\n default:\n return `0 0 ${props.theme.spaceScale.spacing02}`;\n }\n}\n\nexport const StyledIcon = styled.span<{\n iconPosition: TabsIconPosition;\n isIconOnly?: boolean;\n theme: ThemeInterface;\n}>`\n display: flex;\n margin: ${props => getIconMargin(props)};\n\n svg {\n height: ${props => props.theme.iconSizes.small}px;\n width: ${props => props.theme.iconSizes.small}px;\n }\n`;\n\nexport const Tab = React.forwardRef<HTMLButtonElement, TabProps>(\n (props, forwardedRef) => {\n const { children, icon, disabled, testId, ...rest } = props;\n const { activeTabIndex } = React.useContext(TabsContainerContext);\n const { buttonRefArray, registerTabButton } = React.useContext(TabsContext);\n const ownRef = React.useRef<HTMLDivElement>();\n const forceUpdate = useForceUpdate();\n\n const index = buttonRefArray.current.findIndex(({ current: item }) => {\n if (!item || !ownRef.current) return false;\n\n return item === ownRef.current;\n });\n\n const isActive = index === activeTabIndex;\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n const {\n changeHandler,\n orientation,\n borderPosition,\n iconPosition,\n isInverse,\n isFullWidth,\n } = React.useContext(TabsContext);\n\n const handleClick = (index, e) => {\n changeHandler(index, e);\n\n props.onClick && typeof props.onClick === 'function' && props.onClick(e);\n };\n\n React.useEffect(() => {\n registerTabButton(buttonRefArray, ownRef);\n\n forceUpdate();\n }, []);\n\n const theme = React.useContext(ThemeContext);\n const isIconOnly = !children;\n\n const tabIconPosition = iconPosition\n ? iconPosition\n : orientation === 'vertical'\n ? TabsIconPosition.left\n : TabsIconPosition.top;\n\n return (\n <StyledTabsChild\n borderPosition={borderPosition}\n data-testid=\"tabContainer\"\n isActive={isActive}\n isFullWidth={isFullWidth}\n isInverse={isInverse}\n orientation={orientation}\n role=\"presentation\"\n theme={theme}\n >\n <StyledTab\n {...rest}\n aria-selected={isActive}\n data-testid={testId}\n disabled={disabled}\n iconPosition={tabIconPosition}\n isActive={isActive}\n isInverse={isInverse}\n isFullWidth={isFullWidth}\n onClick={e => handleClick(index, e)}\n orientation={orientation}\n ref={ref}\n role=\"tab\"\n tabIndex={isActive ? 0 : -1}\n theme={theme}\n >\n {icon && (\n <StyledIcon\n theme={theme}\n iconPosition={tabIconPosition}\n isIconOnly={isIconOnly}\n >\n {icon}\n </StyledIcon>\n )}\n {children}\n </StyledTab>\n </StyledTabsChild>\n );\n }\n);\n","import React from 'react';\nimport { TabsContainerContext } from './TabsContainer';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '@emotion/styled';\nimport { ThemeInterface } from '../../theme/magma';\n\nconst StyledTabPanel = styled.div<{\n isInverse?: boolean;\n theme: ThemeInterface;\n}>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation02\n : props.theme.colors.neutral08};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n flex: 1;\n height: 100%;\n padding: 20px;\n`;\n\nexport interface TabPanelProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * @internal\n */\n index?: number;\n isInverse?: boolean;\n testId?: string;\n}\n\nexport const TabPanel = React.forwardRef<HTMLDivElement, TabPanelProps>(\n (props, ref) => {\n const { index, isInverse, testId, children, ...other } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const { activeTabIndex } = React.useContext(TabsContainerContext);\n const activeTab = activeTabIndex === index;\n\n return activeTab ? (\n <StyledTabPanel\n ref={ref}\n data-testid={testId}\n isInverse={isInverse}\n theme={theme}\n {...other}\n >\n {children}\n </StyledTabPanel>\n ) : null;\n }\n);\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { TabsContainerContext } from './TabsContainer';\n\ninterface TabPanelContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n isInverse?: boolean;\n testId?: string;\n}\n\nconst StyledContainer = styled.div`\n flex-grow: 1;\n`;\n\nexport const TabPanelsContainer = React.forwardRef<\n HTMLDivElement,\n TabPanelContainerProps\n>((props, ref) => {\n const { children, testId, ...rest } = props;\n\n const { isInverseContainer } = React.useContext(TabsContainerContext);\n\n return (\n <StyledContainer ref={ref} data-testid={testId} {...rest}>\n {React.Children.map(children, (child: React.ReactElement<any>, index) => {\n const isInverse =\n typeof child.props.isInverse !== 'undefined'\n ? child.props.isInverse\n : typeof props.isInverse !== 'undefined'\n ? props.isInverse\n : isInverseContainer;\n\n return React.cloneElement(child, { index, isInverse, key: index });\n })}\n {children}\n </StyledContainer>\n );\n});\n","import * as React from 'react';\nimport {\n StyledContainer,\n StyledTabsWrapper,\n StyledTabs,\n TabsAlignment,\n TabsBorderPosition,\n TabsIconPosition,\n TabsProps,\n Orientation,\n} from '../Tabs';\nimport { TabsOrientation } from '../Tabs/shared';\nimport { Omit } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ButtonNext, ButtonPrev } from '../Tabs/TabsScrollButtons';\nimport { useTabsMeta } from '../Tabs/utils';\nimport { useIsInverse } from '../../inverse';\n\nexport interface NavTabsProps extends Omit<TabsProps, 'onChange'> {}\n\ninterface NavTabsContextInterface {\n borderPosition?: TabsBorderPosition;\n iconPosition?: TabsIconPosition;\n isInverse?: boolean;\n isFullWidth?: boolean;\n orientation?: TabsOrientation;\n}\n\nexport const NavTabsContext = React.createContext<NavTabsContextInterface>({\n borderPosition: TabsBorderPosition.bottom,\n iconPosition: TabsIconPosition.left,\n isInverse: false,\n isFullWidth: false,\n orientation: TabsOrientation.horizontal,\n});\n\nexport const NavTabs = React.forwardRef<\n HTMLDivElement,\n NavTabsProps & Orientation\n>((props, ref) => {\n const {\n alignment,\n backgroundColor,\n borderPosition,\n children,\n iconPosition,\n isFullWidth,\n orientation,\n testId,\n ...rest\n } = props;\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n const background = backgroundColor\n ? backgroundColor\n : isInverse\n ? theme.colors.foundation\n : theme.colors.neutral08;\n\n const [tabsMeta, tabsHandleMethods, tabsRefs] = useTabsMeta(\n theme,\n orientation,\n backgroundColor,\n isInverse\n );\n\n const { displayScroll } = tabsMeta;\n const {\n handleStartScrollClick,\n handleEndScrollClick,\n handleTabsScroll,\n } = tabsHandleMethods;\n const { prevButtonRef, nextButtonRef, tabsWrapperRef } = tabsRefs;\n\n return (\n <StyledContainer\n aria-label={rest['aria-label']}\n as=\"nav\"\n backgroundColor={backgroundColor}\n data-testid={testId}\n isInverse={isInverse}\n orientation={orientation || TabsOrientation.horizontal}\n ref={ref}\n theme={theme}\n {...rest}\n >\n <ButtonPrev\n backgroundColor={background}\n buttonVisible={displayScroll.start}\n isInverse={isInverse}\n onClick={handleStartScrollClick}\n orientation={orientation || TabsOrientation.horizontal}\n ref={prevButtonRef}\n theme={theme}\n />\n\n <StyledTabsWrapper\n data-testid=\"navTabsWrapper\"\n onScroll={handleTabsScroll}\n orientation={orientation || TabsOrientation.horizontal}\n ref={tabsWrapperRef}\n >\n <StyledTabs\n alignment={alignment ? alignment : TabsAlignment.left}\n orientation={orientation}\n >\n <NavTabsContext.Provider\n value={{\n borderPosition,\n iconPosition,\n isInverse: isInverse,\n isFullWidth,\n orientation,\n }}\n >\n {children}\n </NavTabsContext.Provider>\n </StyledTabs>\n </StyledTabsWrapper>\n <ButtonNext\n backgroundColor={background}\n buttonVisible={displayScroll.end}\n isInverse={isInverse}\n onClick={handleEndScrollClick}\n orientation={orientation || TabsOrientation.horizontal}\n ref={nextButtonRef}\n theme={theme}\n />\n </StyledContainer>\n );\n});\n","import * as React from 'react';\nimport styled from '@emotion/styled';\nimport { jsx } from '@emotion/core';\n\nimport { NavTabsContext } from './NavTabs';\nimport {\n StyledTabsChild,\n StyledIcon,\n TabStyles,\n TabsIconPosition,\n} from '../Tabs';\nimport { TabsOrientation } from '../Tabs/shared';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { omit, XOR } from '../../utils';\n\n/**\n * @children required\n */\nexport interface BaseNavTabProps\n extends React.HTMLAttributes<HTMLAnchorElement> {\n /**\n * @internal\n */\n css?: any; // Adding css prop to fix emotion error\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<any> | React.ReactElement<any>[];\n /**\n * If true, the component will display with the active/selected state\n */\n isActive?: boolean;\n isInverse?: boolean;\n /**\n * Determines if the tabs are displayed vertically or horizontally\n * @default TabsOrientation.horizontal\n */\n orientation?: TabsOrientation;\n testId?: string;\n to?: string;\n /**\n * @internal\n */\n theme?: any;\n}\n\nexport interface NavTabChildrenProps extends BaseNavTabProps {\n children: JSX.Element | string;\n /**\n * The href value of the tab link\n */\n to: string;\n}\n\nexport interface NavTabComponentProps extends BaseNavTabProps {\n /**\n * The prop for custom component instead of `a` in NavTab.\n */\n component: React.ReactNode;\n /**\n * The orientation of icon on NavTab\n */\n iconPosition?: TabsIconPosition;\n /**\n * If true, the tab will take up the full width of its container\n * @default false\n */\n isFullWidth?: boolean;\n}\n\nexport type NavTabProps = XOR<NavTabChildrenProps, NavTabComponentProps>;\n\nfunction instanceOfNavComponentTab(\n object: any\n): object is NavTabComponentProps {\n return 'component' in object && !('children' in object);\n}\n\nfunction instanceOfNavChildrenTab(object: any): object is NavTabChildrenProps {\n return !('component' in object) && 'children' in object;\n}\n\nconst StyledTab = styled.a<{\n borderPosition?: any;\n iconPosition?: TabsIconPosition;\n isActive?: boolean;\n isFullWidth?: boolean;\n isInverse?: boolean;\n orientation: TabsOrientation;\n theme: any;\n}>`\n ${TabStyles}\n`;\n\nexport const StyledCustomTab = React.forwardRef<any, NavTabComponentProps>(\n (props, ref) => {\n const { children, component, icon, style, onClick, ...rest } = props;\n\n if (React.isValidElement(component) && React.isValidElement(component)) {\n const cloneElement = (element, newProps) => {\n return jsx(element.type, {\n key: element.key,\n ref: element.ref,\n ...element.props,\n ...newProps,\n });\n };\n\n const other = omit(\n ['iconPosition', 'isInverse', 'isActive', 'isFullWidth'],\n rest\n );\n\n return cloneElement(component, {\n ...other,\n css: TabStyles(props),\n ...style,\n onClick,\n ref,\n children: (\n <>\n {icon}\n {component.props.children}\n </>\n ),\n });\n }\n }\n);\n\n// Using any type because we do not know the element type of a custom tab\nexport const NavTab = React.forwardRef<any, NavTabProps>((props, ref) => {\n let children;\n let component;\n const { isActive, icon, testId, to, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n if (instanceOfNavComponentTab(props)) {\n component = props.component;\n } else if (instanceOfNavChildrenTab(props)) {\n children = props.children;\n }\n\n const isIconOnly = !children;\n\n const {\n orientation,\n borderPosition,\n iconPosition,\n isInverse,\n isFullWidth,\n } = React.useContext(NavTabsContext);\n\n const tabIconPosition = iconPosition\n ? iconPosition\n : orientation === 'vertical'\n ? TabsIconPosition.left\n : TabsIconPosition.top;\n\n return (\n <StyledTabsChild\n borderPosition={borderPosition}\n data-testid=\"tabContainer\"\n isActive={isActive}\n isFullWidth={isFullWidth}\n isInverse={isInverse}\n orientation={orientation}\n theme={theme}\n >\n {component ? (\n <StyledCustomTab\n {...other}\n component={component}\n data-testid={testId}\n iconPosition={tabIconPosition}\n icon={\n icon && (\n <StyledIcon theme={theme} iconPosition={tabIconPosition}>\n {icon}\n </StyledIcon>\n )\n }\n isActive={isActive}\n isInverse={isInverse}\n isFullWidth={isFullWidth}\n orientation={orientation}\n theme={theme}\n />\n ) : (\n <StyledTab\n {...other}\n ref={ref}\n data-testid={testId}\n href={to}\n isActive={isActive}\n isFullWidth={isFullWidth}\n iconPosition={tabIconPosition}\n isInverse={isInverse}\n orientation={orientation}\n theme={theme}\n >\n {icon && (\n <StyledIcon\n theme={theme}\n iconPosition={tabIconPosition}\n isIconOnly={isIconOnly}\n >\n {icon}\n </StyledIcon>\n )}\n {children}\n </StyledTab>\n )}\n </StyledTabsChild>\n );\n});\n","import * as React from 'react';\nimport { Button, ButtonColor, ButtonProps, ButtonVariant } from '../Button';\nimport { BuildBorder, hoverBorder } from './Pagination';\nimport { darken } from 'polished';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface PageButtonProps extends ButtonProps {\n isSelected?: boolean;\n}\n\nexport function pageButtonTypeSize(props) {\n if (props.size === 'large') {\n return `${props.theme.typeScale.size05.fontSize}`;\n }\n return `${props.theme.typeScale.size03.fontSize}`;\n}\n\nfunction buttonSize(props) {\n switch (props.size) {\n case 'large':\n return `${props.theme.spaceScale.spacing11}`;\n default:\n return `${props.theme.spaceScale.spacing09}`;\n }\n}\n\nfunction boxShadowColor(props) {\n if (props.color === 'primary') {\n if (props.isInverse) {\n return `-${props.theme.spaceScale.spacing01} 0 0 ${props.theme.colors.neutral08}`;\n }\n return `-${props.theme.spaceScale.spacing01} 0 0 ${props.theme.colors.primary}`;\n }\n}\n\nfunction hoverBoxShadowColor(props) {\n if (props.color === 'primary') {\n if (props.isInverse) {\n return `-${props.theme.spaceScale.spacing01} 0 0 ${props.theme.colors.neutral08}`;\n }\n return `-${props.theme.spaceScale.spacing01} 0 0 ${darken(\n 0.1,\n props.theme.colors.primary\n )}`;\n }\n}\n\nconst StyledPageButton = styled(Button)`\n border: none;\n border-top: ${BuildBorder};\n border-right: ${BuildBorder};\n border-bottom: ${BuildBorder};\n border-radius: 0;\n box-shadow: ${boxShadowColor};\n font-size: ${pageButtonTypeSize} !important;\n height: ${buttonSize};\n margin: 0;\n min-width: 0;\n padding: 0;\n width: ${buttonSize};\n &:focus {\n border-color: ${hoverBorder};\n box-shadow: ${hoverBoxShadowColor};\n outline: 0 !important;\n outline-offset: 0;\n overflow: visible;\n z-index: 1;\n }\n &:focus:before {\n content: '';\n border: ${props =>\n props.isInverse\n ? `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.focusInverse}`\n : `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.focus}`};\n border-style: dotted;\n height: calc(100% + 14px);\n left: -7px;\n position: absolute;\n top: -7px;\n width: calc(100% + 14px);\n }\n`;\n\nexport const PageButton = React.forwardRef<HTMLButtonElement, PageButtonProps>(\n (props, ref) => {\n const { children, isInverse, isSelected, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledPageButton\n ref={ref}\n {...other}\n color={isSelected ? ButtonColor.primary : ButtonColor.secondary}\n theme={theme}\n isInverse={isInverse}\n variant={\n isInverse && !isSelected ? ButtonVariant.outline : ButtonVariant.solid\n }\n >\n {children}\n </StyledPageButton>\n );\n }\n);\n","import * as React from 'react';\nimport { ButtonColor, ButtonShape, ButtonSize, ButtonVariant } from '../Button';\nimport { darken } from 'polished';\nimport { I18nContext } from '../../i18n';\nimport { IconButton } from '../IconButton';\nimport { PageButton, pageButtonTypeSize } from './PageButton';\nimport { ArrowBackIcon, ArrowForwardIcon } from 'react-magma-icons';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { usePagination } from './usePagination';\n\nexport interface BasePaginationProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n isInverse?: boolean;\n page?: number;\n /**\n * The total number of Pagination buttons\n * @default 1\n */\n count?: number;\n /**\n * If true, disables all of the Pagination buttons\n * @default false\n */\n disabled?: boolean;\n /**\n * If true, hides the next page button\n * @default false\n */\n hideNextButton?: boolean;\n /**\n * If true, hides the previous page button\n * @default false\n */\n hidePreviousButton?: boolean;\n /**\n * Number of page buttons before and after the current page\n * @default 1\n */\n numberOfAdjacentPages?: number;\n /**\n * Number of page buttons at the beginning and end of the page number buttons list\n * @default 1\n */\n numberOfEdgePages?: number;\n /**\n * Event that fires when the page number changes\n */\n onPageChange?: (event: React.SyntheticEvent, newPage: number) => void;\n /**\n * Size toggles between default and large variant buttons.\n */\n size?: PageButtonSize;\n /**\n * If true, shows the first page button\n * @default false\n */\n showFirstButton?: boolean;\n /**\n * If true, shows the last page button\n * @default false\n */\n showLastButton?: boolean;\n}\n\nexport interface ControlledPaginationProps extends BasePaginationProps {\n defaultPage: never;\n /**\n * Current page number\n */\n page?: number;\n}\nexport interface UncontrolledPaginationProps extends BasePaginationProps {\n /**\n * Page selected by default when the component is uncontrolled\n */\n defaultPage?: number;\n page: number;\n}\nexport type PaginationProps =\n | ControlledPaginationProps\n | UncontrolledPaginationProps;\n\nexport enum PageButtonSize {\n medium = 'medium',\n large = 'large',\n}\n\nconst StyledNav = styled.nav`\n min-width: 0;\n`;\n\nconst StyledList = styled.ul`\n display: flex;\n margin: 0;\n padding: 0;\n`;\n\nconst StyledListItem = styled.li`\n list-style-type: none;\n &:last-child {\n button {\n border-left: none;\n }\n }\n`;\n\nexport function BuildBorder(props) {\n switch (props.color) {\n case 'primary':\n if (props.isInverse) {\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.neutral08}`;\n }\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.primary}`;\n default:\n if (props.isInverse) {\n if (props.disabled) {\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.tint04}`;\n }\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.neutral08}`;\n }\n if (props.disabled) {\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.neutral06}`;\n }\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.neutral05}`;\n }\n}\n\nexport function hoverBorder(props) {\n switch (props.color) {\n case 'primary':\n if (props.isInverse) {\n return `${props.theme.colors.neutral08}`;\n }\n return `${darken(0.1, props.theme.colors.primary)}`;\n default:\n if (props.isInverse) {\n return `${props.theme.colors.neutral08}`;\n }\n return `${props.theme.colors.neutral05}`;\n }\n}\n\nfunction BuildButtonSize(props) {\n switch (props.size) {\n case 'large':\n return `${props.theme.spaceScale.spacing11}`;\n default:\n return `${props.theme.spaceScale.spacing09}`;\n }\n}\n\nconst NavButton = styled(IconButton)`\n border-top: ${BuildBorder};\n border-right: ${BuildBorder};\n border-bottom: ${BuildBorder};\n border-left: ${BuildBorder};\n height: ${BuildButtonSize};\n margin: 0;\n padding: 0;\n width: ${BuildButtonSize};\n &:focus {\n z-index: 1;\n outline: 0 !important;\n outline-offset: 0;\n overflow: visible;\n }\n &:focus:before {\n content: '';\n border: ${props =>\n props.isInverse\n ? `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.focusInverse}`\n : `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.focus}`};\n border-style: dotted;\n height: calc(100% + 14px);\n left: -7px;\n position: absolute;\n top: -7px;\n width: calc(100% + 14px);\n }\n`;\n\nconst StyledEllipsis = styled.div`\n align-items: center;\n border-top: ${BuildBorder};\n border-right: ${BuildBorder};\n border-bottom: ${BuildBorder};\n display: flex;\n font-size: ${pageButtonTypeSize};\n height: ${BuildButtonSize};\n justify-content: center;\n width: ${BuildButtonSize};\n`;\n\nexport const Pagination = React.forwardRef<HTMLDivElement, PaginationProps>(\n (props, ref) => {\n const {\n count,\n defaultPage,\n disabled,\n hideNextButton,\n hidePreviousButton,\n isInverse,\n numberOfAdjacentPages,\n numberOfEdgePages,\n page,\n size = PageButtonSize.medium,\n showFirstButton,\n showLastButton,\n testId,\n onPageChange,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const buttonSize =\n size === PageButtonSize.large ? ButtonSize.large : ButtonSize.medium;\n\n const { pageButtons } = usePagination({\n count,\n defaultPage,\n disabled,\n hideNextButton,\n hidePreviousButton,\n numberOfAdjacentPages,\n numberOfEdgePages,\n onPageChange,\n page,\n showFirstButton,\n showLastButton,\n });\n\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledNav {...other} theme={theme} data-testid={testId} ref={ref}>\n <StyledList>\n {pageButtons.map(\n ({ 'aria-current': ariaCurrent, page, type, ...other }, index) => {\n if (type === 'start-ellipsis' || type === 'end-ellipsis') {\n return (\n <StyledEllipsis\n key={index}\n isInverse={isInverse}\n size={size}\n theme={theme}\n >\n ...\n </StyledEllipsis>\n );\n } else if (type === 'page') {\n return (\n <StyledListItem\n aria-current={Boolean(ariaCurrent)}\n key={index}\n >\n <PageButton\n isInverse={isInverse}\n size={buttonSize}\n {...other}\n >\n {page}\n </PageButton>\n </StyledListItem>\n );\n } else if (type === 'previous' || type === 'next') {\n return (\n <StyledListItem key={index}>\n <NavButton\n variant={\n isInverse ? ButtonVariant.outline : ButtonVariant.solid\n }\n color={ButtonColor.secondary}\n aria-label={i18n.pagination[`${type}ButtonLabel`]}\n icon={\n type === 'previous' ? (\n <ArrowBackIcon />\n ) : (\n <ArrowForwardIcon />\n )\n }\n isInverse={isInverse}\n theme={theme}\n shape={\n type === 'previous'\n ? ButtonShape.leftCap\n : ButtonShape.rightCap\n }\n size={buttonSize}\n {...other}\n />\n </StyledListItem>\n );\n }\n }\n )}\n </StyledList>\n </StyledNav>\n );\n }\n);\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { Announce } from '../Announce';\nimport { InputBase, InputSize, InputType } from '../InputBase';\nimport { Button, ButtonVariant, ButtonType, ButtonSize } from '../Button';\nimport {\n FormFieldContainer,\n FormFieldContainerBaseProps,\n} from '../FormFieldContainer';\nimport { useIsInverse } from '../../inverse';\nimport { VisuallyHidden } from '../VisuallyHidden';\n\nimport { useGenerateId } from '../../utils';\n\nexport interface PasswordInputProps\n extends Omit<FormFieldContainerBaseProps, 'fieldId'>,\n React.InputHTMLAttributes<HTMLInputElement> {\n hiddenPasswordAnnounceText?: string;\n /**\n * Aria-label for the \"Hide Password\" button\n * @default \"Hide password\"\n */\n hidePasswordButtonAriaLabel?: string;\n /**\n * Text displayed on screen for the \"Hide Password\" button\n * @default \"Hide\"\n */\n hidePasswordButtonText?: string;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isPasswordMaskButtonHidden?: boolean;\n shownPasswordAnnounceText?: string;\n /**\n * Aria-label for the \"Show Password\" button\n * @default \"Show password. Note: this will visually expose your password on the screen\"\n */\n showPasswordButtonAriaLabel?: string;\n /**\n * Text displayed on screen for the \"Show Password\" button\n * @default \"Show\"\n */\n showPasswordButtonText?: string;\n testId?: string;\n}\n\nexport const PasswordInput = React.forwardRef<\n HTMLInputElement,\n PasswordInputProps\n>((props, ref) => {\n const [passwordShown, setPasswordShown] = React.useState<boolean>(false);\n\n function togglePasswordShown() {\n setPasswordShown(prevPasswordShown => !prevPasswordShown);\n }\n\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n hiddenPasswordAnnounceText,\n hidePasswordButtonAriaLabel,\n hidePasswordButtonText,\n isPasswordMaskButtonHidden,\n id: defaultId,\n inputSize = InputSize.medium,\n labelStyle,\n labelText,\n isLabelVisuallyHidden,\n messageStyle,\n shownPasswordAnnounceText,\n showPasswordButtonAriaLabel,\n showPasswordButtonText,\n type,\n ...other\n } = props;\n\n const i18n = React.useContext(I18nContext);\n\n const id = useGenerateId(defaultId);\n\n const HIDDEN_PASSWORD_ANNOUNCE_TEXT = hiddenPasswordAnnounceText\n ? hiddenPasswordAnnounceText\n : i18n.password.hidden.announce;\n const HIDE_PASSWORD_BUTTON_ARIA_LABEL = hidePasswordButtonAriaLabel\n ? hidePasswordButtonAriaLabel\n : i18n.password.hidden.ariaLabel;\n const HIDE_PASSWORD_BUTTON_TEXT = hidePasswordButtonText\n ? hidePasswordButtonText\n : i18n.password.hidden.buttonText;\n const SHOWN_PASSWORD_ANNOUNCE_TEXT = shownPasswordAnnounceText\n ? shownPasswordAnnounceText\n : i18n.password.shown.announce;\n const SHOW_PASSWORD_BUTTON_ARIA_LABEL = showPasswordButtonAriaLabel\n ? showPasswordButtonAriaLabel\n : i18n.password.shown.ariaLabel;\n const SHOW_PASSWORD_BUTTON_TEXT = showPasswordButtonText\n ? showPasswordButtonText\n : i18n.password.shown.buttonText;\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <FormFieldContainer\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n helperMessage={helperMessage}\n inputSize={inputSize}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n isInverse={isInverse}\n labelStyle={labelStyle}\n labelText={labelText}\n >\n <InputBase\n autoCorrect=\"off\"\n autoCapitalize=\"none\"\n {...other}\n aria-describedby={\n descriptionId ? descriptionId : props['aria-describedby']\n }\n aria-invalid={!!errorMessage}\n hasError={!!errorMessage}\n id={id}\n inputSize={inputSize}\n isInverse={isInverse}\n ref={ref}\n type={passwordShown ? InputType.text : InputType.password}\n >\n {!isPasswordMaskButtonHidden && (\n <>\n <Button\n aria-label={\n passwordShown\n ? HIDE_PASSWORD_BUTTON_ARIA_LABEL\n : SHOW_PASSWORD_BUTTON_ARIA_LABEL\n }\n isInverse={false}\n onClick={togglePasswordShown}\n size={ButtonSize.small}\n style={{\n borderRadius: theme.borderRadius,\n height:\n inputSize == InputSize.large\n ? theme.spaceScale.spacing10\n : theme.spaceScale.spacing08,\n margin: ' 0 3px 0 0 ',\n }}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n >\n {passwordShown\n ? HIDE_PASSWORD_BUTTON_TEXT\n : SHOW_PASSWORD_BUTTON_TEXT}\n </Button>\n <VisuallyHidden>\n <Announce>\n {passwordShown\n ? SHOWN_PASSWORD_ANNOUNCE_TEXT\n : HIDDEN_PASSWORD_ANNOUNCE_TEXT}\n </Announce>\n </VisuallyHidden>\n </>\n )}\n </InputBase>\n </FormFieldContainer>\n );\n});\n","import * as React from 'react';\nimport { Label } from '../Label';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { InputMessage } from '../Input/InputMessage';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\n\nimport styled from '../../theme/styled';\nimport { omit, useGenerateId } from '../../utils';\n\nconst HiddenLabel = styled.label`\n ${HiddenStyles};\n`;\n\n/**\n * @children required\n */\nexport interface RadioGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Action that fires when the radio group loses focus\n */\n onBlur?: (event?: React.FocusEvent) => void;\n /**\n * Action that fires when selected value of the radio group changes\n */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Action that fires when one of the radio buttons within the group receives focus\n */\n onFocus?: (event: React.FocusEvent) => void;\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Content of the error message. If a value is provided, the radio buttons will be styled to show an error state\n */\n errorMessage?: React.ReactNode;\n /**\n * Content of the helper message\n */\n helperMessage?: React.ReactNode;\n isInverse?: boolean;\n /**\n * If true, label text for the radio group will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * ID of the element that labels the radio group, used in the aria-labelledby attribute for the group. Alternatively, the labelText prop can be used\n */\n labelledById?: string;\n /**\n * Style properties for the label of the radio group\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content of label of the radio group; can be node or string. Alternatively, the labelledById prop can be used\n */\n labelText?: React.ReactNode;\n /**\n * Name attribute the radio group\n */\n name: string;\n /**\n * If true, the user must select one radio button for the form to be valid\n * @default false\n */\n required?: boolean;\n testId?: string;\n /**\n * Value of the radio button that is the default selected value for the group\n */\n value?: string;\n}\n\nexport interface RadioContextInterface {\n descriptionId?: string;\n hasError?: boolean;\n isInverse?: boolean;\n required?: boolean;\n name: string;\n selectedValue?: string;\n onBlur?: (event: React.FocusEvent) => void;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onFocus?: (event: React.FocusEvent) => void;\n}\n\nexport const RadioContext = React.createContext<RadioContextInterface>({\n hasError: false,\n name: 'defaultName',\n});\n\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n (props, ref) => {\n const id = useGenerateId(props.id);\n const [selectedValue, setSelectedValue] = React.useState<string>(\n props.value\n );\n\n React.useEffect(() => {\n setSelectedValue(props.value);\n }, [props.value]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value: newSelectedValue } = event.target;\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n setSelectedValue(newSelectedValue);\n }\n\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n required,\n isTextVisuallyHidden,\n labelledById,\n labelStyle,\n labelText,\n testId,\n name,\n children,\n ...rest\n } = props;\n const other = omit(['onBlur', 'onChange', 'onFocus', 'id'], rest);\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <div\n {...other}\n aria-labelledby={labelledById ? labelledById : id}\n style={containerStyle}\n data-testid={testId}\n ref={ref}\n role=\"radiogroup\"\n >\n <RadioContext.Provider\n value={{\n descriptionId,\n hasError: !!errorMessage,\n isInverse,\n required,\n name,\n selectedValue,\n onBlur: props.onBlur,\n onChange: handleChange,\n onFocus: props.onFocus,\n }}\n >\n {labelText && isTextVisuallyHidden && (\n <HiddenLabel id={id} style={labelStyle}>\n {labelText}\n </HiddenLabel>\n )}\n\n {labelText && !isTextVisuallyHidden && (\n <Label\n id={id}\n style={labelStyle}\n isInverse={isInverse}\n theme={theme}\n >\n {labelText}\n </Label>\n )}\n {children}\n\n <InputMessage\n id={descriptionId}\n hasError={!!errorMessage}\n isInverse={isInverse}\n >\n {(errorMessage || helperMessage) && (\n <>{errorMessage ? errorMessage : helperMessage}</>\n )}\n </InputMessage>\n </RadioContext.Provider>\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport {\n DisplayInputStyles,\n DisplayInputActiveStyles,\n buildDisplayInputActiveBackground,\n buildDisplayInputFocusStyles,\n} from '../SelectionControls/InputStyles';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { RadioContext } from '../RadioGroup';\nimport {\n RadioButtonCheckedIcon,\n RadioButtonUncheckedIcon,\n} from 'react-magma-icons';\nimport { StyledLabel } from '../SelectionControls/StyledLabel';\nimport { StyledContainer } from '../SelectionControls/StyledContainer';\n// Using the base `styled` from `emotion` until import mapping is fixed: https://github.com/emotion-js/emotion/pull/1220\n// import styled from '../../theme/styled';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useGenerateId } from '../../utils';\n\nexport enum RadioTextPosition {\n left = 'left',\n right = 'right', // default\n}\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * @internal\n */\n css?: any; // Adding css prop to fix emotion error\n /**\n * Hex code for the background color\n * @default #0000FF\n */\n color?: string;\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Style properties for the radio button element\n */\n inputStyle?: React.CSSProperties;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content of label; can be node or string\n */\n labelText: React.ReactNode;\n testId?: string;\n /**\n * Whether the label appears to the left of the right of the radio button\n * @default RadioTextPosition.right\n */\n textPosition?: RadioTextPosition;\n}\n\nconst HiddenLabelText = styled.span`\n ${HiddenStyles};\n`;\n\nconst HiddenInput = styled.input<{ indeterminate?: boolean }>`\n ${HiddenStyles};\n`;\n\nfunction buildRadioIconColor(props) {\n if (props.disabled) {\n if (props.isInverse) {\n return props.theme.colors.tint04;\n }\n return props.theme.colors.neutral05;\n }\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.isChecked) {\n return props.color;\n }\n return props.theme.colors.neutral02;\n}\n\nexport function buildErrorBorder(props) {\n if (props.hasError) {\n if (props.isInverse) {\n return `0 0 0 2px ${props.theme.colors.dangerInverse}`;\n }\n return `0 0 0 2px ${props.theme.colors.danger}`;\n }\n return `inherit`;\n}\n\nconst StyledFakeInput = styled.span<{\n isChecked?: boolean;\n hasError?: boolean;\n isInverse: boolean;\n disabled: boolean;\n color: string;\n textPosition?: RadioTextPosition;\n theme?: any;\n}>`\n ${DisplayInputStyles};\n color: ${props => buildRadioIconColor(props)};\n cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};\n margin: ${props =>\n props.textPosition === 'left'\n ? `0 0 0 ${props.theme.spaceScale.spacing03}`\n : `0 ${props.theme.spaceScale.spacing03} 0 0`};\n box-shadow: ${buildErrorBorder};\n\n ${HiddenInput}:checked:not (:disabled) + label & {\n background: ${props => {\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n }};\n }\n\n ${HiddenInput}:focus + label & {\n // focus state\n &:before {\n ${props => buildDisplayInputFocusStyles(props)};\n }\n }\n\n &:after {\n // active state\n background: ${props => buildDisplayInputActiveBackground(props)};\n }\n\n ${HiddenInput}:not(:disabled):active + label & {\n &:after {\n ${DisplayInputActiveStyles}\n }\n }\n`;\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (props, ref) => {\n const id = useGenerateId(props.id);\n const context = React.useContext(RadioContext);\n const theme = React.useContext(ThemeContext);\n const {\n color = theme.colors.primary,\n containerStyle,\n disabled,\n inputStyle,\n isInverse,\n isTextVisuallyHidden,\n labelStyle,\n labelText,\n required,\n testId,\n textPosition,\n value,\n ...other\n } = props;\n\n return (\n <StyledContainer style={containerStyle}>\n <HiddenInput\n {...other}\n aria-labelledby={context.descriptionId}\n id={id}\n ref={ref}\n checked={context.selectedValue === value}\n data-testid={testId}\n disabled={disabled}\n name={context.name}\n required={context.required || required}\n type=\"radio\"\n value={value}\n onBlur={context.onBlur}\n onChange={context.onChange}\n onFocus={context.onFocus}\n />\n <StyledLabel\n htmlFor={id}\n isInverse={context.isInverse || isInverse}\n style={labelStyle}\n >\n {!isTextVisuallyHidden &&\n textPosition === RadioTextPosition.left &&\n labelText}\n\n <StyledFakeInput\n isChecked={context.selectedValue === value}\n color={color}\n disabled={disabled}\n isInverse={context.isInverse || isInverse}\n hasError={context.hasError}\n style={inputStyle}\n textPosition={textPosition}\n theme={theme}\n >\n {context.selectedValue === value ? (\n <RadioButtonCheckedIcon />\n ) : (\n <RadioButtonUncheckedIcon />\n )}\n </StyledFakeInput>\n {isTextVisuallyHidden ? (\n <HiddenLabelText>{labelText}</HiddenLabelText>\n ) : (\n textPosition !== RadioTextPosition.left && labelText && labelText\n )}\n </StyledLabel>\n </StyledContainer>\n );\n }\n);\n","import * as React from 'react';\nimport { AnimatePresence, motion, HTMLMotionProps } from 'framer-motion';\nimport { MotionVariants } from '../../theme/components/transition';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\n\n/**\n * @children required\n */\nexport interface TransitionProps extends HTMLMotionProps<'div'> {\n /**\n * If `true`, the element will unmount when `in={false}` and animation is done\n * @default false\n */\n unmountOnExit?: boolean;\n /**\n * If `true`, the content will animate in\n * @default false\n */\n isOpen?: boolean;\n /**\n * Custom variants to be applied to the enter and exit transitions.\n * @internal\n */\n customTransition?: MotionVariants<'enter' | 'exit'>;\n testId?: string;\n /**\n * Should children fade in/out\n * @default false\n */\n fade?: boolean;\n /**\n * Should children scale in/out\n * @default false\n */\n scale?: boolean;\n /**\n * Should children slide in/out from the top of the screen\n * @default false\n */\n slideTop?: boolean;\n /**\n * Should children slide in/out from the bottom of the screen\n * @default false\n */\n slideBottom?: boolean;\n /**\n * Should children slide in/out from the left of the screen\n * @default false\n */\n slideLeft?: boolean;\n /**\n * Should children slide in/out from the right of the screen\n * @default false\n */\n slideRight?: boolean;\n /**\n * Should the children get nudged in 50px from the top\n * @default false\n */\n nudgeTop?: boolean;\n /**\n * Should the children get nudged in 50px from the bottom\n * @default false\n */\n nudgeBottom?: boolean;\n /**\n * Should the children get nudged in 50px from the left\n * @default false\n */\n nudgeLeft?: boolean;\n /**\n * Should the children get nudged in 50px from the right\n * @default false\n */\n nudgeRight?: boolean;\n /**\n * Should children collapse in/out\n * @default false\n */\n collapse?: boolean;\n /**\n * Should children rotate 45 degrees\n * @default false\n */\n rotate45?: boolean;\n /**\n * Should children rotate 90 degrees\n * @default false\n */\n rotate90?: boolean;\n /**\n * Should children rotate 180 degrees\n * @default false\n */\n rotate180?: boolean;\n}\n\nexport const Transition = React.forwardRef<HTMLDivElement, TransitionProps>(\n (props, ref) => {\n const theme: ThemeInterface = React.useContext(ThemeContext);\n\n const {\n style,\n unmountOnExit,\n isOpen,\n testId,\n initial = 'exit',\n exit = 'exit',\n customTransition = {\n enter: { transition: {} },\n exit: { transition: {} },\n },\n ...rest\n } = props;\n\n const shouldExpand = unmountOnExit ? isOpen && unmountOnExit : true;\n\n const variants = Object.keys(rest).reduce(\n (acc, key) => {\n if (rest[key] && theme.transitions[key]) {\n const themeVariant = theme.transitions[key];\n rest[key] = undefined;\n return {\n baseStyle: {\n ...acc.baseStyle,\n ...themeVariant.baseStyle,\n },\n motion: {\n ...acc,\n enter: {\n ...acc.motion.enter,\n ...themeVariant.motion.enter,\n transition: {\n ...('transition' in acc.motion.enter\n ? acc.motion.enter.transition\n : {}),\n ...('transition' in themeVariant.motion.enter\n ? themeVariant.motion.enter.transition\n : {}),\n },\n },\n exit: {\n ...acc.motion.exit,\n ...themeVariant.motion.exit,\n transition: {\n ...('transition' in acc.motion.exit\n ? acc.motion.exit.transition\n : {}),\n ...('transition' in themeVariant.motion.exit\n ? themeVariant.motion.exit.transition\n : {}),\n },\n },\n },\n };\n }\n return acc;\n },\n { motion: customTransition, baseStyle: {} }\n );\n\n return (\n <AnimatePresence initial={false}>\n {shouldExpand && (\n <motion.div\n ref={ref}\n initial={initial}\n exit={exit}\n data-testid={testId}\n animate={isOpen || unmountOnExit ? 'enter' : 'exit'}\n variants={variants.motion}\n style={{ ...variants.baseStyle, ...style }}\n {...rest}\n />\n )}\n </AnimatePresence>\n );\n }\n);\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport styled from '@emotion/styled';\nimport { Global, css } from '@emotion/core';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { magma } from '../../theme/magma';\nimport { I18nContext } from '../../i18n';\nimport { ButtonColor, ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { CloseIcon } from 'react-magma-icons';\nimport { Heading } from '../Heading';\nimport { TypographyVisualStyle } from '../Typography';\nimport { Transition, TransitionProps } from '../Transition';\nimport { ThemeInterface } from '../../theme/magma';\nimport { omit, useGenerateId, usePrevious } from '../../utils';\nimport { useFocusLock } from '../../hooks/useFocusLock';\n\nexport enum ModalSize {\n large = 'large',\n medium = 'medium', //default\n small = 'small',\n}\n\n/**\n * @children required\n */\nexport interface ModalProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The text read by screen readers for the close button\n * @default \"Close dialog\"\n */\n closeAriaLabel?: string;\n /**\n * Style for the modal container\n */\n closeButtonSize?: keyof typeof magma.iconSizes;\n /**\n * Style for the modal container\n */\n containerStyle?: React.CSSProperties;\n /**\n * Style for the modal content container\n */\n contentStyle?: React.CSSProperties;\n /**\n * The content of the modal header\n */\n header?: React.ReactNode;\n /**\n * If true, the modal background will be transparent\n * @default false\n */\n hiddenBackground?: boolean;\n /**\n * If true, clicking the backdrop will not dismiss the modal\n * @default false\n */\n isBackgroundClickDisabled?: boolean;\n /**\n * If true, the close button the the modal will be suppressed\n * @default false\n */\n isCloseButtonHidden?: boolean;\n /**\n * If true, pressing the Escape key will not dismiss the modal\n * @false\n */\n isEscKeyDownDisabled?: boolean;\n /**\n * If true, the modal will be visible\n * @default false\n */\n isOpen?: boolean;\n /**\n * If true, the modal will removed from the DOM when closed\n * @default true\n */\n unmountOnExit?: boolean;\n /**\n * @internal\n */\n containerTransition?: Omit<TransitionProps, 'isOpen'>;\n /**\n * Action that fires when the close button is clicked\n */\n onClose?: () => void;\n /**\n * Action that fires when the Escape key is pressed\n */\n onEscKeyDown?: (event: KeyboardEvent) => void;\n /**\n * The relative size of the modal\n * @default ModalSize.medium\n */\n size?: ModalSize;\n testId?: string;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nconst ModalContainer = styled(Transition)<{\n theme: ThemeInterface;\n}>`\n bottom: 0;\n left: 0;\n overflow-y: auto;\n padding: ${props => props.theme.spaceScale.spacing03};\n right: 0;\n top: 0;\n z-index: 998;\n`;\n\nconst ModalBackdrop = styled(Transition)<{\n isExiting?: boolean;\n hiddenBackground?: boolean;\n}>`\n backdrop-filter: ${props => (props.hiddenBackground ? '0' : 'blur(3px)')};\n background: ${props =>\n props.hiddenBackground ? 'none' : 'rgba(0, 0, 0, 0.6)'};\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n z-index: 997;\n position: fixed;\n`;\n\nconst ModalContent = styled.div<ModalProps & { isExiting?: boolean }>`\n background: ${props => props.theme.colors.neutral08};\n border: 1px solid;\n border-color: ${props => props.theme.colors.neutral06};\n border-radius: ${props => props.theme.borderRadius};\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);\n color: ${props => props.theme.colors.neutral};\n margin: 0 auto;\n position: relative;\n z-index: 1000;\n\n max-width: ${props => {\n switch (props.size) {\n case 'large':\n return props.theme.modal.width.large;\n case 'small':\n return props.theme.modal.width.small;\n default:\n return props.theme.modal.width.medium;\n }\n }};\n\n @media (min-width: ${props => props.theme.breakpoints.small}px) {\n margin: ${props => props.theme.spaceScale.spacing08} auto;\n }\n`;\n\nconst ModalHeader = styled.div<{ theme?: ThemeInterface }>`\n padding: ${props => props.theme.spaceScale.spacing03}\n ${props => props.theme.spaceScale.spacing05} 0\n ${props => props.theme.spaceScale.spacing05};\n @media (min-width: ${props => props.theme.breakpoints.small}px) {\n padding: ${props => props.theme.spaceScale.spacing05}\n ${props => props.theme.spaceScale.spacing06} 0\n ${props => props.theme.spaceScale.spacing06};\n }\n`;\n\nconst H1 = styled(Heading)<{ theme?: ThemeInterface }>`\n font-size: ${props =>\n props.theme.typographyVisualStyles.headingSmall.desktop.fontSize};\n line-height: ${props =>\n props.theme.typographyVisualStyles.headingSmall.desktop.lineHeight};\n margin: 0;\n padding-right: ${props => props.theme.spaceScale.spacing10};\n`;\n\nconst CloseBtn = styled.span`\n position: absolute;\n top: 0;\n right: 0;\n`;\nconst ModalBody = styled.div<{ theme?: ThemeInterface }>`\n padding: ${props => props.theme.spaceScale.spacing05};\n\n @media (min-width: ${props => props.theme.breakpoints.small}px) {\n padding: ${props => props.theme.spaceScale.spacing06};\n }\n`;\n\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(\n (props, ref) => {\n const lastFocus = React.useRef<any>();\n const headingRef = React.useRef<any>();\n const bodyRef = React.useRef<any>();\n\n const id = useGenerateId(props.id);\n const headingId = `${id}_heading`;\n const contentId = `${id}_content`;\n\n const [isModalOpen, setIsModalOpen] = React.useState<boolean>(props.isOpen);\n const [isExiting, setIsExiting] = React.useState<boolean>(false);\n const [currentTarget, setCurrentTarget] = React.useState(null);\n\n const focusTrapElement = useFocusLock(\n isModalOpen,\n props.header ? headingRef : null,\n bodyRef\n );\n\n const prevOpen = usePrevious(props.isOpen);\n\n React.useEffect(() => {\n if (!prevOpen && props.isOpen) {\n setIsModalOpen(true);\n } else if (prevOpen && !props.isOpen && isModalOpen) {\n handleClose();\n }\n }, [props.isOpen]);\n\n React.useEffect(() => {\n if (isModalOpen) {\n lastFocus.current = document.activeElement;\n\n if (!props.isEscKeyDownDisabled) {\n document.body.addEventListener('keydown', handleEscapeKeyDown, false);\n }\n }\n\n return () => {\n document.body.removeEventListener(\n 'keydown',\n handleEscapeKeyDown,\n false\n );\n };\n }, [isModalOpen]);\n\n function handleModalClick(event: React.SyntheticEvent) {\n if (\n !document.getElementById(contentId).contains(event.target as Node) &&\n event.target === currentTarget\n ) {\n handleClose(event);\n }\n }\n\n function handleModalOnMouseDown(event: React.SyntheticEvent) {\n setCurrentTarget(event.target);\n }\n\n function handleEscapeKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n\n props.onEscKeyDown &&\n typeof props.onEscKeyDown === 'function' &&\n props.onEscKeyDown(event);\n\n handleClose(event);\n }\n }\n\n function handleClose(event?) {\n if (event) {\n event.stopPropagation();\n }\n setIsExiting(true);\n\n setTimeout(() => {\n setIsExiting(false);\n setIsModalOpen(false);\n\n if (lastFocus.current) {\n lastFocus.current.focus();\n }\n\n props.onClose && typeof props.onClose === 'function' && props.onClose();\n }, 300);\n }\n\n const {\n children,\n closeAriaLabel,\n closeButtonSize,\n containerStyle,\n contentStyle,\n containerTransition = { slideTop: true },\n hiddenBackground,\n isBackgroundClickDisabled,\n isEscKeyDownDisabled,\n header,\n isCloseButtonHidden,\n isOpen,\n unmountOnExit = true,\n testId,\n ...rest\n } = props;\n\n const other = omit(['onEscKeyDown'], rest);\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const CloseIconButton = (\n <CloseIcon\n color={theme.colors.neutral03}\n size={\n magma.iconSizes[closeButtonSize]\n ? magma.iconSizes[closeButtonSize]\n : magma.iconSizes.small\n }\n />\n );\n\n return isModalOpen\n ? ReactDOM.createPortal(\n <div ref={focusTrapElement}>\n <Global\n styles={css`\n html {\n overflow: ${isOpen} ? hidden : auto;\n }\n `}\n />\n <ModalContainer\n aria-labelledby={header ? headingId : null}\n aria-label=\"modal\"\n aria-describedby=\"modal\"\n aria-modal={true}\n data-testid={testId}\n id={id}\n onClick={isBackgroundClickDisabled ? null : handleModalClick}\n onMouseDown={\n isBackgroundClickDisabled ? null : handleModalOnMouseDown\n }\n role=\"dialog\"\n style={containerStyle}\n theme={theme}\n title={header ? headingId : null}\n isOpen={isModalOpen}\n {...containerTransition}\n unmountOnExit={unmountOnExit}\n >\n <ModalContent\n {...other}\n data-testid=\"modal-content\"\n id={contentId}\n isExiting={isExiting}\n ref={ref}\n style={contentStyle}\n theme={theme}\n >\n {header && (\n <ModalHeader theme={theme}>\n {header && (\n <H1\n id={headingId}\n level={1}\n ref={headingRef}\n visualStyle={TypographyVisualStyle.headingSmall}\n tabIndex={-1}\n theme={theme}\n >\n {header}\n </H1>\n )}\n </ModalHeader>\n )}\n <ModalBody ref={bodyRef} theme={theme}>\n {children}\n </ModalBody>\n {!isCloseButtonHidden && (\n <CloseBtn>\n <IconButton\n aria-label={\n closeAriaLabel\n ? closeAriaLabel\n : i18n.modal.closeAriaLabel\n }\n color={ButtonColor.secondary}\n icon={CloseIconButton}\n onClick={handleClose}\n testId=\"modal-closebtn\"\n variant={ButtonVariant.link}\n />\n </CloseBtn>\n )}\n </ModalContent>\n </ModalContainer>\n <ModalBackdrop\n hiddenBackground={hiddenBackground}\n data-testid=\"modal-backdrop\"\n isExiting={isExiting}\n onMouseDown={\n isBackgroundClickDisabled\n ? event => event.preventDefault()\n : null\n }\n fade\n isOpen={isModalOpen}\n unmountOnExit\n />\n </div>,\n document.getElementsByTagName('body')[0]\n )\n : null;\n }\n);\n","import * as React from 'react';\n// import styled from '../../theme/styled';\nimport {\n InputBase,\n InputBaseProps,\n InputIconPosition,\n InputSize,\n InputType,\n} from '../InputBase';\nimport { I18nContext } from '../../i18n';\nimport { useIsInverse } from '../../inverse';\nimport { SearchIcon } from 'react-magma-icons';\nimport { Spinner } from '../Spinner';\n\nexport interface SearchProps extends InputBaseProps {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Text for icon button aria-label\n * @default \"Search\"\n */\n iconAriaLabel?: string;\n /**\n * Relative size of the component\n * @default InputSize.medium\n */\n inputSize?: InputSize;\n /**\n * Style properties for the input element\n */\n inputStyle?: React.CSSProperties;\n /**\n * Clear contents of input by clicking a clear button\n */\n iconPosition?: InputIconPosition;\n isClearable?: boolean;\n /**\n * If true, the component will show a loading animation instead of a search button\n * @default false\n */\n isLoading?: boolean;\n isInverse?: boolean;\n /**\n * Text for input aria-label\n * @default \"Search\"\n */\n labelText?: string;\n /**\n * Action that will fire when search icon button is clicked\n */\n onSearch: (term: string) => void;\n testId?: string;\n /**\n * Value of the input element\n */\n value?: string;\n}\n\nexport const Search = React.forwardRef<HTMLInputElement, SearchProps>(\n (props, ref) => {\n const {\n iconAriaLabel,\n isClearable,\n isLoading,\n labelText,\n placeholder,\n onSearch,\n ...other\n } = props;\n\n const i18n = React.useContext(I18nContext);\n\n const [value, setValue] = React.useState<string>(props.value);\n\n const icon = isLoading ? <Spinner /> : <SearchIcon />;\n\n React.useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n setValue(event.target.value);\n }\n\n // handle search on enter\n function handleKeyPress(event: React.KeyboardEvent) {\n if (event.key === 'Enter') {\n event.preventDefault();\n handleSearch();\n }\n }\n\n function handleSearch() {\n onSearch(value);\n }\n\n return (\n <InputBase\n {...other}\n aria-label={labelText ? labelText : i18n.search.input.ariaLabel}\n icon={icon}\n iconAriaLabel={\n iconAriaLabel ? iconAriaLabel : i18n.search.iconAriaLabel\n }\n isClearable={isClearable}\n isInverse={useIsInverse(props.isInverse)}\n onChange={handleChange}\n onIconClick={\n props.isPredictive ? null : isLoading ? null : handleSearch\n }\n onKeyDown={handleKeyPress}\n placeholder={placeholder ? placeholder : i18n.search.input.placeholder}\n type={InputType.search}\n value={value}\n ref={ref}\n />\n );\n }\n);\n","import React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { StyledCard, StyledList, StyledItem } from './shared';\nimport {\n UseSelectGetMenuPropsOptions,\n UseSelectGetItemPropsOptions,\n} from 'downshift';\nimport { instanceOfToBeCreatedItemObject } from '.';\nimport {\n defaultComponents,\n SelectComponents,\n ItemRenderOptions,\n} from './components';\nimport styled from '../../theme/styled';\nimport { convertStyleValueToString } from '../../utils';\n\ninterface ItemsListProps<T> {\n customComponents?: SelectComponents<T>;\n getItemProps: (options?: UseSelectGetItemPropsOptions<T>) => any;\n getMenuProps: (options?: UseSelectGetMenuPropsOptions) => any;\n highlightedIndex?: number;\n isOpen?: boolean;\n items: T[];\n itemToString: (item: T) => string;\n maxHeight?: number | string;\n menuStyle?: React.CSSProperties;\n}\n\nconst NoItemsMessage = styled.span`\n color: ${props => props.theme.colors.neutral04};\n display: block;\n padding-top: ${props => props.theme.spaceScale.spacing03};\n text-align: center;\n`;\n\nexport function ItemsList<T>(props: ItemsListProps<T>) {\n const {\n customComponents,\n isOpen,\n getMenuProps,\n items,\n itemToString,\n highlightedIndex,\n getItemProps,\n maxHeight,\n menuStyle,\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const hasItems = items && items.length > 0;\n\n const heightString = convertStyleValueToString(maxHeight);\n const { Item } = defaultComponents<T>({\n ...customComponents,\n });\n\n return (\n <StyledCard\n hasDropShadow\n isInverse={false}\n isOpen={isOpen}\n style={menuStyle}\n >\n <StyledList isOpen={isOpen} {...getMenuProps()} maxHeight={heightString}>\n {isOpen && hasItems ? (\n items.map((item, index) => {\n const itemString = instanceOfToBeCreatedItemObject(item)\n ? item.label\n : itemToString(item);\n\n const { ref, ...otherDownshiftItemProps } = getItemProps({\n item,\n index,\n });\n\n const key = `${itemString}${index}`;\n\n const itemProps: ItemRenderOptions<T> = {\n isFocused: highlightedIndex === index,\n itemRef: ref,\n item,\n itemString,\n key,\n theme,\n ...otherDownshiftItemProps,\n };\n\n return <Item<T> {...itemProps} key={key} />;\n })\n ) : (\n <StyledItem tabIndex={-1}>\n <NoItemsMessage theme={theme}>\n {i18n.emptyItemsListText}\n </NoItemsMessage>\n </StyledItem>\n )}\n </StyledList>\n </StyledCard>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { Label, LabelPosition } from '../Label';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { UseSelectGetLabelPropsOptions } from 'downshift';\nimport { InputMessage } from '../Input/InputMessage';\n\nexport const SelectContainerElement = styled.div<{\n labelPosition?: LabelPosition;\n}>`\n align-items: baseline;\n display: ${props =>\n props.labelPosition == LabelPosition.left ? 'flex' : 'block'};\n position: relative;\n`;\n\nconst InputMessageContainer = styled.div`\n flex-grow: 1;\n`;\n\ninterface SelectContainerInterface<T> {\n children: React.ReactNode[];\n containerStyle?: React.CSSProperties;\n errorMessage?: React.ReactNode;\n descriptionId?: string;\n getLabelProps: (options?: UseSelectGetLabelPropsOptions) => any;\n hasError?: boolean;\n helperMessage?: React.ReactNode;\n isInverse?: boolean;\n isLabelVisuallyHidden?: boolean;\n labelPosition?: LabelPosition;\n labelStyle?: React.CSSProperties;\n labelText: string;\n messageStyle?: React.CSSProperties;\n}\n\nexport function SelectContainer<T>(props: SelectContainerInterface<T>) {\n const {\n children,\n descriptionId,\n errorMessage,\n getLabelProps,\n helperMessage,\n isInverse,\n isLabelVisuallyHidden,\n labelPosition,\n labelStyle,\n labelText,\n messageStyle,\n } = props;\n\n const hasError = !!errorMessage;\n\n return (\n <SelectContainerElement\n labelPosition={labelPosition}\n data-testid=\"selectContainerElement\"\n >\n <Label\n {...getLabelProps()}\n isInverse={isInverse}\n labelPosition={labelPosition}\n style={labelStyle}\n >\n {isLabelVisuallyHidden ? (\n <VisuallyHidden>{labelText}</VisuallyHidden>\n ) : (\n labelText\n )}\n </Label>\n <InputMessageContainer>\n {children}\n {!(\n labelPosition === LabelPosition.left &&\n !(errorMessage || helperMessage)\n ) &&\n (errorMessage || helperMessage) && (\n <InputMessage\n id={descriptionId}\n isInverse={isInverse}\n hasError={hasError}\n style={messageStyle}\n >\n {(errorMessage || helperMessage) && (\n <>{errorMessage ? errorMessage : helperMessage}</>\n )}\n </InputMessage>\n )}\n </InputMessageContainer>\n </SelectContainerElement>\n );\n}\n","import * as React from 'react';\nimport { SelectProps } from '.';\nimport { useSelect } from 'downshift';\nimport { SelectText } from './shared';\nimport { defaultComponents } from './components';\nimport { CloseIcon } from 'react-magma-icons';\nimport { ButtonSize, ButtonVariant } from '../Button';\nimport { ItemsList } from './ItemsList';\nimport { SelectContainer } from './SelectContainer';\nimport { SelectTriggerButton } from './SelectTriggerButton';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { useForkedRef } from '../../utils';\n\nexport function Select<T>(props: SelectProps<T>) {\n const {\n ariaDescribedBy,\n components: customComponents,\n defaultSelectedItem,\n errorMessage,\n hasError,\n helperMessage,\n inputStyle,\n isLabelVisuallyHidden,\n innerRef,\n itemListMaxHeight,\n itemToString,\n items,\n labelStyle,\n labelText,\n initialSelectedItem,\n isClearable,\n disabled,\n isInverse,\n labelPosition,\n menuStyle,\n onBlur,\n onFocus,\n onIsOpenChange,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n messageStyle,\n placeholder,\n selectedItem: passedInSelectedItem,\n } = props;\n\n const toggleButtonRef = React.useRef<HTMLButtonElement>();\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const ref = useForkedRef(innerRef || null, toggleButtonRef);\n\n function getValidItem(itemToCheck: T, key: string): object {\n return items.findIndex(\n i => itemToString(i) === itemToString(itemToCheck)\n ) !== -1\n ? { [key]: itemToCheck }\n : { [key]: null };\n }\n\n function handleOnIsOpenChange(changes) {\n const {\n isOpen: changedIsOpen,\n selectedItem: changedSelectedItem,\n } = changes;\n\n if (changedIsOpen && changedSelectedItem) {\n setHighlightedIndex(\n items.findIndex(\n i => itemToString(i) === itemToString(changedSelectedItem)\n )\n );\n }\n\n onIsOpenChange &&\n typeof onIsOpenChange === 'function' &&\n onIsOpenChange(changes);\n }\n\n function stateReducer(state, actionAndChanges) {\n const { type, changes } = actionAndChanges;\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownCharacter:\n return {\n ...changes,\n selectedItem: state.selectedItem,\n };\n default:\n return changes;\n }\n }\n\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n highlightedIndex,\n getItemProps,\n reset,\n openMenu,\n setHighlightedIndex,\n } = useSelect<T>({\n ...props,\n onIsOpenChange: handleOnIsOpenChange,\n stateReducer,\n ...(defaultSelectedItem &&\n getValidItem(defaultSelectedItem, 'defaultSelectedItem')),\n ...(initialSelectedItem &&\n getValidItem(initialSelectedItem, 'initialSelectedItem')),\n ...(passedInSelectedItem &&\n getValidItem(passedInSelectedItem, 'selectedItem')),\n });\n\n const { ClearIndicator } = defaultComponents<T>({\n ...customComponents,\n });\n\n const toggleButtonProps = getToggleButtonProps({\n disabled: disabled,\n onBlur,\n onKeyDown: event => {\n if (\n getToggleButtonProps().id === document.activeElement.id &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n openMenu();\n }\n\n onKeyDown && typeof onKeyDown === 'function' && onKeyDown(event);\n },\n onKeyPress,\n onKeyUp,\n onFocus,\n ref,\n });\n\n function defaultHandleClearIndicatorClick(event: React.SyntheticEvent) {\n event.stopPropagation();\n\n if (toggleButtonRef.current) {\n toggleButtonRef.current.focus();\n }\n\n reset();\n }\n\n const clearIndicatorAriaLabel = i18n.select.clearIndicatorAriaLabel\n .replace(/\\{labelText\\}/g, labelText)\n .replace(/\\{selectedItem\\}/g, itemToString(selectedItem));\n\n const selectText = itemToString(selectedItem)\n ? itemToString(selectedItem)\n : typeof placeholder === 'string'\n ? placeholder\n : i18n.select.placeholder;\n\n return (\n <SelectContainer\n errorMessage={errorMessage}\n descriptionId={ariaDescribedBy}\n getLabelProps={getLabelProps}\n helperMessage={helperMessage}\n isInverse={isInverse}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n labelPosition={labelPosition}\n labelStyle={labelStyle}\n labelText={labelText}\n messageStyle={messageStyle}\n >\n <SelectTriggerButton\n ariaDescribedBy={ariaDescribedBy}\n customComponents={customComponents}\n toggleButtonProps={toggleButtonProps}\n hasError={hasError}\n disabled={disabled}\n isInverse={isInverse}\n style={inputStyle}\n >\n <SelectText data-testid=\"selectedItemText\">{selectText}</SelectText>\n {isClearable && selectedItem && (\n <ClearIndicator\n aria-label={clearIndicatorAriaLabel}\n icon={<CloseIcon size={theme.iconSizes.xSmall} />}\n onClick={defaultHandleClearIndicatorClick}\n size={ButtonSize.small}\n style={{ marginTop: '0', marginBottom: '0' }}\n testId=\"clearIndicator\"\n variant={ButtonVariant.link}\n />\n )}\n </SelectTriggerButton>\n <ItemsList\n customComponents={customComponents}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n maxHeight={itemListMaxHeight || theme.select.menu.maxHeight}\n items={items}\n itemToString={itemToString}\n menuStyle={menuStyle}\n />\n </SelectContainer>\n );\n}\n","import * as React from 'react';\nimport { MultiSelectProps } from '.';\nimport { useSelect, useMultipleSelection } from 'downshift';\nimport { CloseIcon } from 'react-magma-icons';\nimport { ItemsList } from './ItemsList';\nimport { SelectContainer } from './SelectContainer';\nimport { SelectTriggerButton } from './SelectTriggerButton';\nimport { SelectedItemButton, IconWrapper } from './shared';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\n\nexport function MultiSelect<T>(props: MultiSelectProps<T>) {\n const {\n ariaDescribedBy,\n components: customComponents,\n errorMessage,\n hasError,\n helperMessage,\n inputStyle,\n isLabelVisuallyHidden,\n innerRef,\n itemToString,\n items,\n labelPosition,\n labelStyle,\n labelText,\n disabled,\n isInverse,\n itemListMaxHeight,\n menuStyle,\n messageStyle,\n onBlur,\n onFocus,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n onRemoveSelectedItem,\n placeholder,\n } = props;\n\n function checkSelectedItemValidity(itemToCheck: T) {\n return (\n items.findIndex(i => itemToString(i) === itemToString(itemToCheck)) !== -1\n );\n }\n\n const {\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n removeSelectedItem,\n selectedItems,\n setActiveIndex,\n } = useMultipleSelection<T>({\n ...props,\n ...(props.initialSelectedItems && {\n initialSelectedItems: props.initialSelectedItems.filter(\n checkSelectedItemValidity\n ),\n }),\n ...(props.selectedItems && {\n selectedItems: props.selectedItems.filter(checkSelectedItemValidity),\n }),\n });\n\n function getFilteredItems(unfilteredItems) {\n return unfilteredItems.filter(\n item =>\n selectedItems.findIndex(\n selectedItem => itemToString(selectedItem) === itemToString(item)\n ) < 0\n );\n }\n\n const {\n stateReducer: passedInStateReducer,\n onStateChange,\n ...selectProps\n } = props;\n\n function stateReducer(state, actionAndChanges) {\n const { type, changes } = actionAndChanges;\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownCharacter:\n return {\n ...changes,\n selectedItem: state.selectedItem,\n };\n default:\n return changes;\n }\n }\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n highlightedIndex,\n getItemProps,\n selectItem,\n openMenu,\n } = useSelect({\n ...selectProps,\n items: getFilteredItems(items),\n onSelectedItemChange: defaultOnSelectedItemChange,\n stateReducer,\n });\n\n function defaultOnSelectedItemChange(changes) {\n const { selectedItem: newSelectedItem } = changes;\n\n if (newSelectedItem) {\n addSelectedItem(newSelectedItem);\n selectItem(null);\n }\n }\n\n function handleRemoveSelectedItem(event: React.SyntheticEvent, selectedItem) {\n event.stopPropagation();\n\n onRemoveSelectedItem && typeof onRemoveSelectedItem === 'function'\n ? onRemoveSelectedItem(selectedItem)\n : removeSelectedItem(selectedItem);\n }\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const toggleButtonProps = getToggleButtonProps({\n ...getDropdownProps({\n onBlur,\n onKeyDown: event => {\n if (\n document.activeElement.tagName.toLowerCase() === 'button' &&\n (event.key === 'Backspace' ||\n event.key === 'Delete' ||\n event.key === 'ArrowLeft')\n ) {\n event.nativeEvent.preventDownshiftDefault = true;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n openMenu();\n }\n\n onKeyDown && typeof onKeyDown === 'function' && onKeyDown(event);\n },\n onKeyPress,\n onKeyUp,\n onFocus,\n preventKeyAction: isOpen,\n ...(innerRef && { ref: innerRef }),\n }),\n disabled: disabled,\n });\n\n return (\n <SelectContainer\n descriptionId={ariaDescribedBy}\n errorMessage={errorMessage}\n getLabelProps={getLabelProps}\n helperMessage={helperMessage}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n labelPosition={labelPosition}\n labelStyle={labelStyle}\n labelText={labelText}\n isInverse={isInverse}\n messageStyle={messageStyle}\n >\n <SelectTriggerButton\n ariaDescribedBy={ariaDescribedBy}\n toggleButtonProps={toggleButtonProps}\n hasError={hasError}\n disabled={disabled}\n isInverse={isInverse}\n style={inputStyle}\n >\n {selectedItems && selectedItems.length > 0\n ? selectedItems.map((multiSelectedItem, index) => {\n const multiSelectedItemString = itemToString(multiSelectedItem);\n return (\n <SelectedItemButton\n aria-label={i18n.multiSelect.selectedItemButtonAriaLabel.replace(\n /\\{selectedItem\\}/g,\n multiSelectedItemString\n )}\n key={`selected-item-${index}`}\n {...getSelectedItemProps({\n selectedItem: multiSelectedItem,\n index,\n })}\n onClick={event =>\n handleRemoveSelectedItem(event, multiSelectedItem)\n }\n onFocus={() => setActiveIndex(index)}\n theme={theme}\n >\n {multiSelectedItemString}\n <IconWrapper>\n <CloseIcon size={theme.iconSizes.xSmall} />\n </IconWrapper>\n </SelectedItemButton>\n );\n })\n : typeof placeholder === 'string'\n ? placeholder\n : i18n.multiSelect.placeholder}\n </SelectTriggerButton>\n <ItemsList\n customComponents={customComponents}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n items={getFilteredItems(items)}\n itemToString={itemToString}\n maxHeight={itemListMaxHeight || theme.select.menu.maxHeight}\n menuStyle={menuStyle}\n />\n </SelectContainer>\n );\n}\n","import * as React from 'react';\nimport {\n useSelect,\n useMultipleSelection,\n UseSelectProps,\n UseMultipleSelectionProps,\n} from 'downshift';\n\nimport { Select as InternalSelect } from './Select';\nimport { MultiSelect } from './MultiSelect';\nimport { SelectComponents } from './components';\nimport { useGenerateId, XOR, Omit } from '../../utils';\nimport { LabelPosition } from '../Label';\nimport { useIsInverse } from '../../inverse';\n\nexport type SelectOptions =\n | string\n | { value: string; label: string; [key: string]: any }\n | any;\n\nexport interface InternalSelectProps<T> {\n /**\n * This complex object includes all the compositional components that are used. If you wish to overwrite a component, pass in a component to the appropriate namespace\n */\n components?: SelectComponents<T>;\n /**\n * Style properties for the component container\n */\n containerStyle?: React.CSSProperties;\n /**\n * Content of the error message. If a value is provided, the component will be styled to show an error state\n */\n errorMessage?: React.ReactNode;\n /**\n * Content of the helper message\n */\n helperMessage?: React.ReactNode;\n /**\n * Style properties for the select trigger or combobox input\n */\n inputStyle?: React.CSSProperties;\n /**\n * If true, the component include a button for clearing the field\n * @default false\n */\n isClearable?: boolean;\n /**\n * Max-height for the item menu list ul element\n */\n itemListMaxHeight?: number | string;\n /**\n * If true, item will be disabled; it will appear dimmed and events will not fire\n * @default false\n */\n disabled?: boolean;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isLabelVisuallyHidden?: boolean;\n /**\n * If true, multiple items may be selected\n * @default false\n */\n isMulti?: boolean;\n /**\n * Position of text label relative to form field\n */\n labelPosition?: LabelPosition;\n /**\n * Style properties for the label\n */\n labelStyle?: React.CSSProperties;\n /**\n * Text for label\n */\n labelText: string;\n /**\n * Style properties for the items menu\n */\n menuStyle?: React.CSSProperties;\n /**\n * Style properties for the helper or error message\n */\n messageStyle?: React.CSSProperties;\n /**\n * Text for select trigger button or combobox input placeholder\n */\n placeholder?: string;\n testId?: string;\n}\n\nexport interface InternalMultiProps<T> {\n /**\n * Event that fires when the clear button is clicked on a multi-selected item\n */\n onRemoveSelectedItem?: (removedItem: T) => void;\n}\n\nexport interface SelectProps<T extends SelectOptions>\n extends UseSelectProps<T>,\n InternalSelectProps<T> {\n /**\n * Id of the element that describes the select trigger button\n */\n ariaDescribedBy?: string;\n /**\n * @internal\n */\n hasError?: boolean;\n /**\n * Reference to the trigger button element in the select\n */\n innerRef?: React.Ref<HTMLButtonElement>;\n /**\n * @internal\n */\n isMulti?: false;\n /**\n * Event that fires when the trigger button loses focus\n */\n onBlur?: (event: React.FocusEvent) => void;\n /**\n * Event that fires when the trigger button gains focus\n */\n onFocus?: (event: React.FocusEvent) => void;\n /**\n * Event that fires when the trigger button receives keypress\n */\n onKeyDown?: (event: React.KeyboardEvent) => void;\n /**\n * Event that will fire when a character is typed while focused on the trigger button\n */\n onKeyPress?: (event: React.KeyboardEvent) => void;\n /**\n * Event that will fire when a keypress is released while focused on the trigger button\n */\n onKeyUp?: (event: React.KeyboardEvent) => void;\n}\n\nexport interface MultiSelectProps<T extends SelectOptions>\n extends UseMultipleSelectionProps<T>,\n Omit<SelectProps<T>, 'onStateChange' | 'stateReducer' | 'isMulti'>,\n InternalMultiProps<T> {\n /**\n * @internal\n */\n hasError?: boolean;\n isInverse?: boolean;\n /**\n * @internal\n */\n isMulti: true;\n}\n\nexport function instanceOfMultiSelect<T>(\n object: any\n): object is MultiSelectProps<T> {\n return 'isMulti' in object && object.type !== 'combo';\n}\n\nexport function instanceOfDefaultItemObject(\n object: any\n): object is { label: string; value: string; [key: string]: any } {\n return object && 'label' in object;\n}\n\nexport function instanceOfToBeCreatedItemObject(\n object: any\n): object is {\n label: string;\n value: string;\n react_magma__created_item: boolean;\n} {\n return (\n typeof object !== 'string' &&\n object &&\n 'react_magma__created_item' in object\n );\n}\n\nexport type XORSelectProps<T> = XOR<SelectProps<T>, MultiSelectProps<T>>;\n\nexport const SelectStateChangeTypes = useSelect.stateChangeTypes;\nexport const MultipleSelectionStateChangeTypes =\n useMultipleSelection.stateChangeTypes;\n\nexport function Select<T>(props: XORSelectProps<T>) {\n const {\n containerStyle,\n id: defaultId,\n isMulti,\n labelPosition,\n errorMessage,\n messageStyle,\n helperMessage,\n testId,\n } = props;\n\n function itemToString(item: T) {\n return item && typeof item === 'string'\n ? item\n : item && instanceOfDefaultItemObject(item)\n ? item.label\n : '';\n }\n\n const hasError = !!errorMessage;\n\n const id = useGenerateId(defaultId);\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <div style={containerStyle} data-testid={testId}>\n {isMulti && instanceOfMultiSelect<T>(props) ? (\n <MultiSelect\n ariaDescribedBy={descriptionId}\n id={id}\n isInverse={isInverse}\n labelPosition={labelPosition || LabelPosition.top}\n itemToString={itemToString}\n {...(props as MultiSelectProps<T>)}\n hasError={hasError}\n />\n ) : (\n <InternalSelect\n ariaDescribedBy={descriptionId}\n errorMessage={errorMessage}\n id={id}\n isInverse={isInverse}\n itemToString={itemToString}\n labelPosition={labelPosition || LabelPosition.top}\n hasError={hasError}\n helperMessage={helperMessage}\n messageStyle={messageStyle}\n {...(props as SelectProps<T>)}\n />\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { inputBaseStyles } from '../InputBase';\nimport { defaultComponents, SelectComponents } from '../Select/components';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/core';\nimport {\n UseComboboxGetToggleButtonPropsOptions,\n UseComboboxGetComboboxPropsOptions,\n UseComboboxGetInputPropsOptions,\n} from 'downshift';\n\nimport { SelectedItemsWrapper } from '../Select/shared';\n\nconst ComboBoxContainer = styled.div<{\n hasError?: boolean;\n isInverse?: boolean;\n theme?: any;\n}>`\n display: flex;\n`;\n\nconst InputContainer = styled.div<{\n hasError?: boolean;\n disabled?: boolean;\n isFocused?: boolean;\n isInverse?: boolean;\n theme?: any;\n}>`\n align-items: center;\n background: ${props => props.theme.colors.neutral08};\n border: 1px solid;\n border-color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral03};\n border-radius: ${props => props.theme.borderRadius};\n display: flex;\n min-height: ${props => props.theme.spaceScale.spacing09};\n min-width: ${props => props.theme.spaceScale.spacing13};\n padding: 0 ${props => props.theme.spaceScale.spacing03} 0 0;\n width: 100%;\n\n ${props =>\n props.isFocused &&\n css`\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 4px;\n `}\n\n ${props =>\n props.hasError &&\n css`\n border-color: ${props.theme.colors.danger};\n box-shadow: 0 0 0 1px\n ${props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.danger};\n `}\n\n ${props =>\n props.disabled &&\n css`\n background: ${props.theme.colors.neutral07};\n border-color: ${props.theme.colors.neutral05};\n color: ${props.theme.colors.disabledText};\n cursor: not-allowed;\n outline: 0;\n\n &::placeholder {\n color: ${props.theme.colors.disabledText};\n }\n `}\n`;\n\nconst StyledInput = styled.input`\n ${inputBaseStyles}\n border: 0;\n display: flex;\n flex-grow: 1;\n height: ${props => props.theme.spaceScale.spacing08};\n min-width: ${props => props.theme.spaceScale.spacing07};\n padding-left: ${props => props.theme.spaceScale.spacing02};\n width: 0;\n\n &:focus {\n outline: 0;\n }\n`;\n\ninterface ComboboxInputProps<T> {\n ariaDescribedBy?: string;\n children?: React.ReactNode | React.ReactNode[];\n customComponents?: SelectComponents<T>;\n getComboboxProps: (options?: UseComboboxGetComboboxPropsOptions) => any;\n getInputProps: (options?: UseComboboxGetInputPropsOptions) => any;\n getToggleButtonProps: (\n options?: UseComboboxGetToggleButtonPropsOptions\n ) => any;\n hasError?: boolean;\n innerRef?: React.Ref<HTMLInputElement>;\n inputStyle?: React.CSSProperties;\n disabled?: boolean;\n isInverse?: boolean;\n isLoading?: boolean;\n onInputBlur?: (event: React.FocusEvent) => void;\n onInputFocus?: (event: React.FocusEvent) => void;\n onInputKeyDown?: (event: React.KeyboardEvent) => void;\n onInputKeyPress?: (event: React.KeyboardEvent) => void;\n onInputKeyUp?: (event: React.KeyboardEvent) => void;\n placeholder?: string;\n selectedItems?: React.ReactNode;\n toggleButtonRef?: React.Ref<HTMLButtonElement>;\n}\n\nexport function ComboboxInput<T>(props: ComboboxInputProps<T>) {\n const {\n ariaDescribedBy,\n children,\n customComponents,\n getComboboxProps,\n getInputProps,\n getToggleButtonProps,\n hasError,\n innerRef,\n inputStyle,\n disabled,\n isInverse,\n isLoading,\n onInputBlur,\n onInputFocus,\n onInputKeyDown,\n onInputKeyPress,\n onInputKeyUp,\n placeholder,\n selectedItems,\n toggleButtonRef,\n } = props;\n const theme = React.useContext(ThemeContext);\n\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n\n const { DropdownIndicator, LoadingIndicator } = defaultComponents<T>({\n ...customComponents,\n });\n\n function handleBlur(e: React.FocusEvent) {\n setIsFocused(false);\n\n onInputBlur && typeof onInputBlur === 'function' && onInputBlur(e);\n }\n\n function handleFocus(e: React.FocusEvent) {\n setIsFocused(true);\n\n onInputFocus && typeof onInputFocus === 'function' && onInputFocus(e);\n }\n\n const inputProps = getInputProps({\n disabled: disabled,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onKeyDown: onInputKeyDown,\n onKeyPress: onInputKeyPress,\n onKeyUp: onInputKeyUp,\n ...(innerRef && { ref: innerRef }),\n });\n\n return (\n <ComboBoxContainer\n {...getComboboxProps()}\n hasError={hasError}\n disabled={disabled}\n isInverse={isInverse}\n theme={theme}\n >\n <InputContainer\n {...getToggleButtonProps({\n disabled,\n ...(toggleButtonRef && { ref: toggleButtonRef }),\n })}\n hasError={hasError}\n disabled={disabled}\n isFocused={isFocused}\n isInverse={isInverse}\n style={inputStyle}\n theme={theme}\n >\n <SelectedItemsWrapper>\n {selectedItems}\n <StyledInput\n {...inputProps}\n aria-describedby={ariaDescribedBy}\n aria-invalid={hasError}\n disabled={disabled}\n placeholder={placeholder}\n theme={theme}\n />\n </SelectedItemsWrapper>\n {children}\n {isLoading && (\n <LoadingIndicator\n style={{ flexShrink: 0, marginRight: theme.spaceScale.spacing02 }}\n />\n )}\n <DropdownIndicator\n aria-label=\"toggle menu\"\n color={theme.colors.neutral}\n />\n </InputContainer>\n </ComboBoxContainer>\n );\n}\n","import React from 'react';\n\nexport function useComboboxItems(defaultItems, items) {\n const afterInitialRender = React.useRef(false);\n const allItems = React.useRef(defaultItems || items);\n const [displayItems, setDisplayItems] = React.useState(defaultItems || items);\n\n function updateItemsRef(newItem) {\n const newItems = [...allItems.current, newItem];\n allItems.current = newItems;\n setDisplayItems(newItems);\n }\n\n React.useEffect(() => {\n if (!afterInitialRender.current) {\n afterInitialRender.current = true;\n return;\n }\n\n const cleanItems = items ? items : [];\n\n allItems.current = cleanItems;\n setDisplayItems(cleanItems);\n }, [items]);\n\n return [allItems, displayItems, setDisplayItems, updateItemsRef];\n}\n\nfunction inputValueInList(items, inputValue, itemToString) {\n return (\n items.current.filter(\n item => itemToString(item).toLowerCase() === inputValue.toLowerCase()\n ).length > 0\n );\n}\n\nexport function defaultOnInputValueChange(\n changes,\n items,\n itemToString,\n disableCreateItem,\n setDisplayItems,\n setHighlightedIndex,\n onInputChange,\n createLabel\n) {\n const { inputValue: inputBaseValue, isOpen } = changes;\n\n if (isOpen) {\n const inputValue =\n typeof inputBaseValue === 'string'\n ? inputBaseValue\n : itemToString(inputBaseValue);\n\n const filteredItems = inputValue\n ? items.current\n .filter(item =>\n itemToString(item)\n .toLowerCase()\n .startsWith(inputValue.toLowerCase())\n )\n .concat(\n !disableCreateItem &&\n inputValue &&\n !inputValueInList(items, inputValue, itemToString)\n ? {\n label: createLabel.replace(/\\{inputValue\\}/g, inputValue),\n value: inputValue,\n react_magma__created_item: true,\n }\n : null\n )\n .filter(Boolean)\n : items.current;\n\n setHighlightedIndex(0);\n setDisplayItems(filteredItems);\n }\n\n onInputChange &&\n typeof onInputChange === 'function' &&\n onInputChange(changes);\n}\n","import * as React from 'react';\nimport { instanceOfDefaultItemObject } from '../Select';\nimport { useCombobox } from 'downshift';\nimport { CloseIcon } from 'react-magma-icons';\nimport { defaultComponents } from '../Select/components';\nimport { SelectContainer } from '../Select/SelectContainer';\nimport { ItemsList } from '../Select/ItemsList';\nimport { ComboboxInput } from './ComboboxInput';\nimport { ButtonShape, ButtonSize, ButtonVariant } from '../Button';\nimport { useComboboxItems, defaultOnInputValueChange } from './shared';\nimport { ComboboxProps } from '.';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { useForkedRef } from '../../utils';\n\nexport function InternalCombobox<T>(props: ComboboxProps<T>) {\n const {\n ariaDescribedBy,\n components: customComponents,\n defaultItems,\n defaultSelectedItem,\n disableCreateItem,\n errorMessage,\n hasError,\n helperMessage,\n initialSelectedItem,\n inputStyle,\n isClearable,\n disabled,\n innerRef,\n isLabelVisuallyHidden,\n isLoading,\n isInverse,\n itemListMaxHeight,\n items,\n itemToString,\n labelPosition,\n labelStyle,\n labelText,\n menuStyle,\n messageStyle,\n newItemTransform,\n onInputBlur,\n onInputChange,\n onInputFocus,\n onInputKeyDown,\n onInputKeyPress,\n onInputKeyUp,\n onInputValueChange,\n onIsOpenChange,\n onItemCreated,\n placeholder,\n selectedItem: passedInSelectedItem,\n toggleButtonRef,\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n function isCreatedItem(item) {\n return (\n !(typeof item === 'string') &&\n instanceOfDefaultItemObject(item) &&\n item.react_magma__created_item\n );\n }\n\n function defaultNewItemTransform(newItem) {\n return newItem.value;\n }\n\n function defaultOnSelectedItemChange(changes) {\n if (isCreatedItem(changes.selectedItem)) {\n const {\n react_magma__created_item,\n ...createdItem\n } = changes.selectedItem;\n\n const newItem =\n react_magma__created_item &&\n newItemTransform &&\n typeof newItemTransform === 'function'\n ? newItemTransform(createdItem)\n : defaultNewItemTransform(createdItem);\n\n items && onItemCreated && typeof onItemCreated === 'function'\n ? onItemCreated(newItem)\n : updateItemsRef(newItem);\n\n selectItem(newItem);\n setInputValue(itemToString(newItem));\n\n if (process.env.NODE_ENV === 'development') {\n if (!items && !disableCreateItem) {\n console.warn(\n 'React Magma Warning: Switching from uncontrolled to controlled items. If allowing new items to be created you should handle the onItemCreated event and control the items list in your code.'\n );\n }\n }\n } else {\n props.onSelectedItemChange &&\n typeof props.onSelectedItemChange === 'function' &&\n props.onSelectedItemChange(changes);\n }\n }\n\n function stateReducer(state, actionAndChanges) {\n const { type, changes } = actionAndChanges;\n\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter: {\n const inputValue = isCreatedItem(displayItems[0])\n ? ''\n : changes.inputValue;\n return {\n ...changes,\n inputValue,\n };\n }\n case useCombobox.stateChangeTypes.ItemClick: {\n const inputValue = isCreatedItem(displayItems[0])\n ? ''\n : changes.inputValue;\n return {\n ...changes,\n inputValue,\n };\n }\n case useCombobox.stateChangeTypes.InputBlur:\n return {\n ...changes,\n inputValue:\n state.inputValue && !state.selectedItem\n ? ''\n : itemToString(state.selectedItem),\n selectedItem: state.selectedItem ? state.selectedItem : '',\n };\n case useCombobox.stateChangeTypes.FunctionReset:\n return {\n ...changes,\n inputValue: changes.selectedItem\n ? itemToString(changes.selectedItem)\n : '',\n };\n default:\n return changes;\n }\n }\n\n const [\n allItems,\n displayItems,\n setDisplayItems,\n updateItemsRef,\n ] = useComboboxItems(defaultItems, items);\n\n function getValidItem(itemToCheck: T, key: string): object {\n return allItems.current.findIndex(\n i => itemToString(i) === itemToString(itemToCheck)\n ) !== -1\n ? { [key]: itemToCheck }\n : { [key]: null };\n }\n\n function handleOnIsOpenChange(changes) {\n const {\n isOpen: changedIsOpen,\n selectedItem: changedSelectedItem,\n } = changes;\n\n if (!changedIsOpen) {\n setDisplayItems(allItems.current);\n }\n\n if (changedIsOpen && changedSelectedItem) {\n setHighlightedIndex(\n displayItems.findIndex(\n i => itemToString(i) === itemToString(changedSelectedItem)\n )\n );\n }\n\n onIsOpenChange &&\n typeof onIsOpenChange === 'function' &&\n onIsOpenChange(changes);\n }\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getComboboxProps,\n highlightedIndex,\n getItemProps,\n reset,\n selectItem,\n selectedItem,\n setInputValue,\n setHighlightedIndex,\n } = useCombobox({\n ...props,\n itemToString,\n items: displayItems,\n onInputValueChange:\n onInputValueChange && typeof onInputValueChange === 'function'\n ? changes => onInputValueChange(changes, setDisplayItems)\n : changes =>\n defaultOnInputValueChange(\n changes,\n allItems,\n itemToString,\n disableCreateItem,\n setDisplayItems,\n setHighlightedIndex,\n onInputChange,\n i18n.combobox.createLabel\n ),\n onIsOpenChange: handleOnIsOpenChange,\n onSelectedItemChange: defaultOnSelectedItemChange,\n stateReducer,\n ...(defaultSelectedItem &&\n getValidItem(defaultSelectedItem, 'defaultSelectedItem')),\n ...(initialSelectedItem &&\n getValidItem(initialSelectedItem, 'initialSelectedItem')),\n ...(passedInSelectedItem &&\n getValidItem(passedInSelectedItem, 'selectedItem')),\n });\n\n const { ClearIndicator } = defaultComponents<T>({\n ...customComponents,\n });\n\n const inputRef = React.useRef<HTMLInputElement>();\n const ref = useForkedRef(innerRef || null, inputRef);\n\n function defaultHandleClearIndicatorClick(event: React.SyntheticEvent) {\n event.stopPropagation();\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n\n reset();\n }\n\n const clearIndicatorAriaLabel = i18n.combobox.clearIndicatorAriaLabel\n .replace(/\\{labelText\\}/g, labelText)\n .replace(/\\{selectedItem\\}/g, itemToString(selectedItem));\n\n return (\n <SelectContainer\n descriptionId={ariaDescribedBy}\n errorMessage={errorMessage}\n getLabelProps={getLabelProps}\n hasError={hasError}\n helperMessage={helperMessage}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n isInverse={isInverse}\n labelPosition={labelPosition}\n labelStyle={labelStyle}\n labelText={labelText}\n messageStyle={messageStyle}\n >\n <ComboboxInput\n ariaDescribedBy={ariaDescribedBy}\n customComponents={customComponents}\n disabled={disabled}\n getComboboxProps={getComboboxProps}\n getInputProps={getInputProps}\n getToggleButtonProps={getToggleButtonProps}\n hasError={hasError}\n innerRef={ref}\n inputStyle={inputStyle}\n isInverse={isInverse}\n isLoading={isLoading}\n onInputBlur={onInputBlur}\n onInputFocus={onInputFocus}\n onInputKeyDown={onInputKeyDown}\n onInputKeyPress={onInputKeyPress}\n onInputKeyUp={onInputKeyUp}\n placeholder={placeholder}\n toggleButtonRef={toggleButtonRef}\n >\n {isClearable && selectedItem && (\n <ClearIndicator\n aria-label={clearIndicatorAriaLabel}\n icon={<CloseIcon />}\n onClick={defaultHandleClearIndicatorClick}\n shape={ButtonShape.fill}\n size={ButtonSize.small}\n variant={ButtonVariant.link}\n />\n )}\n </ComboboxInput>\n <ItemsList\n customComponents={customComponents}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n items={displayItems}\n itemToString={itemToString}\n maxHeight={itemListMaxHeight || theme.combobox.menu.maxHeight}\n menuStyle={menuStyle}\n />\n </SelectContainer>\n );\n}\n","import * as React from 'react';\nimport { instanceOfDefaultItemObject } from '../Select';\nimport { useCombobox, useMultipleSelection } from 'downshift';\nimport { CloseIcon } from 'react-magma-icons';\nimport { SelectContainer } from '../Select/SelectContainer';\nimport { ItemsList } from '../Select/ItemsList';\nimport { ComboboxInput } from './ComboboxInput';\nimport { SelectedItemButton, IconWrapper } from '../Select/shared';\nimport { useComboboxItems, defaultOnInputValueChange } from './shared';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { MultiComboboxProps } from '.';\n\nexport function MultiCombobox<T>(props: MultiComboboxProps<T>) {\n const [inputValue, setInputValue] = React.useState('');\n const {\n ariaDescribedBy,\n components: customComponents,\n errorMessage,\n defaultItems,\n disableCreateItem,\n hasError,\n helperMessage,\n inputStyle,\n disabled,\n innerRef,\n isLabelVisuallyHidden,\n isLoading,\n isInverse,\n itemListMaxHeight,\n items,\n itemToString,\n labelPosition,\n labelStyle,\n labelText,\n menuStyle,\n messageStyle,\n newItemTransform,\n onInputBlur,\n onInputChange,\n onInputFocus,\n onInputKeyDown,\n onInputKeyPress,\n onInputKeyUp,\n onInputValueChange,\n onIsOpenChange,\n onItemCreated,\n onRemoveSelectedItem,\n placeholder,\n toggleButtonRef,\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const [\n allItems,\n displayItems,\n setDisplayItems,\n updateItemsRef,\n ] = useComboboxItems(defaultItems, items);\n\n function checkSelectedItemValidity(itemToCheck) {\n return (\n allItems.current.findIndex(\n i => itemToString(i) === itemToString(itemToCheck)\n ) !== -1\n );\n }\n\n const {\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n removeSelectedItem,\n setActiveIndex,\n selectedItems,\n } = useMultipleSelection({\n ...props,\n ...(props.initialSelectedItems && {\n initialSelectedItems: props.initialSelectedItems.filter(\n checkSelectedItemValidity\n ),\n }),\n ...(props.selectedItems && {\n selectedItems: props.selectedItems.filter(checkSelectedItemValidity),\n }),\n });\n\n function isCreatedItem(item) {\n return (\n !(typeof item === 'string') &&\n instanceOfDefaultItemObject(item) &&\n item.react_magma__created_item\n );\n }\n\n function getFilteredItems(unfilteredItems) {\n return unfilteredItems.filter(item => {\n const itemString =\n typeof item === 'object' && item.react_magma__created_item\n ? item.value\n : itemToString(item);\n return (\n (selectedItems.findIndex(\n selectedItem => itemToString(selectedItem) === itemToString(item)\n ) < 0 &&\n itemString.toLowerCase().startsWith(inputValue.toLowerCase())) ||\n isCreatedItem(item)\n );\n });\n }\n\n function defaultNewItemTransform(newItem) {\n return newItem.value;\n }\n\n function defaultOnSelectedItemChange(changes) {\n if (isCreatedItem(changes.selectedItem)) {\n const {\n react_magma__created_item,\n ...createdItem\n } = changes.selectedItem;\n\n const newItem =\n react_magma__created_item &&\n newItemTransform &&\n typeof newItemTransform === 'function'\n ? newItemTransform(createdItem)\n : defaultNewItemTransform(createdItem);\n\n items && onItemCreated && typeof onItemCreated === 'function'\n ? onItemCreated(newItem)\n : updateItemsRef(newItem);\n addSelectedItem(newItem);\n\n if (process.env.NODE_ENV === 'development') {\n if (!items && !disableCreateItem) {\n console.warn(\n 'React Magma Warning: Switching from uncontrolled to controlled items. If allowing new items to be created you should handle the onItemCreated event and control the items list in your code.'\n );\n }\n }\n } else if (changes.selectedItem) {\n addSelectedItem(changes.selectedItem);\n }\n\n selectItem(null);\n setInputValue('');\n }\n\n const {\n stateReducer: passedInStateReducer,\n onStateChange,\n ...comboboxProps\n } = props;\n\n function handleOnIsOpenChange(changes) {\n const { isOpen: changedIsOpen } = changes;\n\n if (!changedIsOpen) {\n setDisplayItems(allItems.current);\n }\n\n onIsOpenChange &&\n typeof onIsOpenChange === 'function' &&\n onIsOpenChange(changes);\n }\n\n function stateReducer(state, actionAndChanges) {\n const { type, changes } = actionAndChanges;\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter: {\n const newSelectedItem = getFilteredItems(displayItems)[\n state.highlightedIndex\n ];\n return {\n ...changes,\n ...(newSelectedItem && {\n selectedItem: newSelectedItem,\n }),\n inputValue: '',\n };\n }\n case useCombobox.stateChangeTypes.ItemClick: {\n return {\n ...changes,\n inputValue: '',\n };\n }\n case useCombobox.stateChangeTypes.InputBlur:\n return {\n ...changes,\n inputValue: '',\n };\n default:\n return changes;\n }\n }\n\n function handleInputChange(changes) {\n setInputValue(changes.inputValue);\n\n onInputChange &&\n typeof onInputChange === 'function' &&\n onInputChange(changes);\n }\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getComboboxProps,\n highlightedIndex,\n getItemProps,\n selectItem,\n setHighlightedIndex,\n } = useCombobox({\n ...comboboxProps,\n itemToString,\n items: getFilteredItems(displayItems),\n onInputValueChange:\n onInputValueChange && typeof onInputValueChange === 'function'\n ? changes => onInputValueChange(changes, setDisplayItems)\n : changes =>\n defaultOnInputValueChange(\n changes,\n allItems,\n itemToString,\n disableCreateItem,\n setDisplayItems,\n setHighlightedIndex,\n handleInputChange,\n i18n.combobox.createLabel\n ),\n onIsOpenChange: handleOnIsOpenChange,\n onSelectedItemChange: defaultOnSelectedItemChange,\n stateReducer,\n });\n\n function handleRemoveSelectedItem(event: React.SyntheticEvent, selectedItem) {\n event.stopPropagation();\n\n onRemoveSelectedItem && typeof onRemoveSelectedItem === 'function'\n ? onRemoveSelectedItem(selectedItem)\n : removeSelectedItem(selectedItem);\n }\n\n function handleInputFocus(event: React.FocusEvent) {\n setActiveIndex(-1);\n\n onInputFocus && typeof onInputFocus === 'function' && onInputFocus(event);\n }\n\n const selectedItemsContent =\n selectedItems && selectedItems.length > 0 ? (\n <>\n {selectedItems.map((multiSelectedItem, index) => (\n <SelectedItemButton\n aria-label={i18n.multiCombobox.selectedItemButtonAriaLabel.replace(\n /\\{selectedItem\\}/g,\n itemToString(multiSelectedItem)\n )}\n key={`selected-item-${index}`}\n {...getSelectedItemProps({\n selectedItem: multiSelectedItem,\n index,\n })}\n onClick={event =>\n handleRemoveSelectedItem(event, multiSelectedItem)\n }\n onFocus={() => setActiveIndex(index)}\n theme={theme}\n >\n {itemToString(multiSelectedItem)}\n <IconWrapper>\n <CloseIcon size={theme.iconSizes.xSmall} />\n </IconWrapper>\n </SelectedItemButton>\n ))}\n </>\n ) : null;\n\n return (\n <SelectContainer\n descriptionId={ariaDescribedBy}\n errorMessage={errorMessage}\n getLabelProps={getLabelProps}\n helperMessage={helperMessage}\n isInverse={isInverse}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n labelPosition={labelPosition}\n labelStyle={labelStyle}\n labelText={labelText}\n messageStyle={messageStyle}\n >\n <ComboboxInput\n ariaDescribedBy={ariaDescribedBy}\n customComponents={customComponents}\n getComboboxProps={getComboboxProps}\n getInputProps={options => ({\n ...getInputProps({\n ...options,\n ...getDropdownProps({\n onKeyDown: onInputKeyDown,\n preventKeyAction: isOpen,\n ...(innerRef && { ref: innerRef }),\n }),\n }),\n })}\n getToggleButtonProps={getToggleButtonProps}\n inputStyle={inputStyle}\n disabled={disabled}\n isInverse={isInverse}\n isLoading={isLoading}\n hasError={hasError}\n onInputBlur={onInputBlur}\n onInputFocus={handleInputFocus}\n onInputKeyDown={onInputKeyDown}\n onInputKeyPress={onInputKeyPress}\n onInputKeyUp={onInputKeyUp}\n placeholder={placeholder}\n selectedItems={selectedItemsContent}\n toggleButtonRef={toggleButtonRef}\n />\n <ItemsList\n customComponents={customComponents}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n items={getFilteredItems(displayItems)}\n itemToString={itemToString}\n maxHeight={itemListMaxHeight || theme.combobox.menu.maxHeight}\n menuStyle={menuStyle}\n />\n </SelectContainer>\n );\n}\n","import React from 'react';\nimport {\n useCombobox,\n UseComboboxProps,\n UseComboboxState,\n UseMultipleSelectionProps,\n} from 'downshift';\nimport {\n SelectOptions,\n instanceOfDefaultItemObject,\n InternalSelectProps,\n InternalMultiProps,\n} from '../Select';\nimport { InternalCombobox } from './Combobox';\nimport { MultiCombobox } from './MultiCombobox';\nimport { useGenerateId, XOR, Omit } from '../../utils';\nimport { LabelPosition } from '../Label';\nimport { useIsInverse } from '../../inverse';\n\nexport interface ComboboxProps<T extends SelectOptions>\n extends Omit<UseComboboxProps<T>, 'items'>,\n InternalSelectProps<T> {\n /**\n * Id of the element that describes the combobox input\n */\n ariaDescribedBy?: string;\n /**\n * Default selectable options. Allows for uncontrolled component and internal creation of items. Can be an array of strings or objects\n */\n defaultItems?: T[];\n /**\n * If true, the new items cannot be created by typing in the text field\n * @default false\n */\n disableCreateItem?: boolean;\n /**\n * @internal\n */\n hasError?: boolean;\n /**\n * Position of text label relative to form field\n */\n labelPosition?: LabelPosition;\n /**\n * Reference to the input element in the combobox\n */\n innerRef?: React.Ref<HTMLInputElement>;\n /**\n * If true, the loading component is shown\n * @default false\n */\n /**\n * @internal\n */\n isMulti?: false;\n isLoading?: boolean;\n /**\n * Default selectable options. Can be an array of strings or objects\n */\n items?: T[];\n /**\n * Function passed in that transforms a newly created item to whatever format your items are in\n */\n newItemTransform?: (item: { label: string; value: string }) => T;\n /**\n * Event that fires when the input loses focus\n */\n onInputBlur?: (event: React.FocusEvent) => void;\n /**\n * Event that fires when the input's value is changed\n */\n onInputChange?: (changes: Partial<UseComboboxState<T>>) => void;\n /**\n * Event that fires when the input gains focus\n */\n onInputFocus?: (event: React.FocusEvent) => void;\n /**\n * Event that will fire when input receives keypress.\n */\n onInputKeyDown?: (event: React.KeyboardEvent) => void;\n /**\n * Event that will fire when a character is typed in the input\n */\n onInputKeyPress?: (event: React.KeyboardEvent) => void;\n /**\n * Event that will fire when a keypress is released on the input\n */\n onInputKeyUp?: (event: React.KeyboardEvent) => void;\n /**\n * Event that fires when the selected item changes\n */\n onInputValueChange?: (\n changes: Partial<UseComboboxState<T>>,\n updateInputItems?: React.Dispatch<React.SetStateAction<T[]>>\n ) => void;\n /**\n * Event that fires when a new item is created with the create item option is clicked in the item list menu\n */\n onItemCreated?: (newItem: T) => void;\n /**\n * Reference to the toggle button element wrapping the input in the combobox\n */\n toggleButtonRef?: React.Ref<HTMLButtonElement>;\n}\n\nexport interface MultiComboboxProps<T extends SelectOptions>\n extends UseMultipleSelectionProps<T>,\n Omit<ComboboxProps<T>, 'onStateChange' | 'stateReducer' | 'isMulti'>,\n InternalMultiProps<T> {\n /**\n * @internal\n */\n isMulti: true;\n}\n\nexport function instanceOfMultiCombobox<T>(\n object: any\n): object is MultiComboboxProps<T> {\n return 'isMulti' in object;\n}\n\nexport type XORComboboxProps<T> = XOR<ComboboxProps<T>, MultiComboboxProps<T>>;\n\nexport const ComboboxStateChangeTypes = useCombobox.stateChangeTypes;\n\nexport function Combobox<T>(props: XORComboboxProps<T>) {\n const {\n containerStyle,\n errorMessage,\n id: defaultId,\n isMulti,\n labelPosition,\n messageStyle,\n helperMessage,\n testId,\n } = props;\n\n function itemToString(item: T) {\n return item && typeof item === 'string'\n ? item\n : item && instanceOfDefaultItemObject(item)\n ? item.label\n : '';\n }\n\n const hasError = !!errorMessage;\n\n const id = useGenerateId(defaultId);\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <div style={containerStyle} data-testid={testId}>\n {isMulti && instanceOfMultiCombobox<T>(props) ? (\n <MultiCombobox\n ariaDescribedBy={descriptionId}\n errorMessage={errorMessage}\n hasError={hasError}\n helperMessage={helperMessage}\n isInverse={isInverse}\n itemToString={itemToString}\n labelPosition={labelPosition || LabelPosition.top}\n messageStyle={messageStyle}\n {...(props as MultiComboboxProps<T>)}\n />\n ) : (\n <InternalCombobox\n ariaDescribedBy={descriptionId}\n errorMessage={errorMessage}\n hasError={hasError}\n helperMessage={helperMessage}\n isInverse={isInverse}\n itemToString={itemToString}\n labelPosition={labelPosition || LabelPosition.top}\n messageStyle={messageStyle}\n {...(props as ComboboxProps<T>)}\n />\n )}\n </div>\n );\n}\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ButtonColor, ButtonVariant } from '../Button';\nimport { Hyperlink, HyperlinkProps } from '../Hyperlink';\nimport { I18nContext } from '../../i18n';\n\nexport const TARGET_ID = 'reactMagmaMainContent';\n\nexport interface SkipLinkProps extends HyperlinkProps {\n /**\n * The text in the skip link\n * @default \"Skip Navigation\"\n */\n buttonText?: string;\n /**\n * Number of pixels from the left of the screen for the skip link to be positioned\n * @default 10\n */\n positionLeft?: number;\n /**\n * Number of pixels from the top of the screen for the skip link to be positioned\n * @default 10\n */\n positionTop?: number;\n testId?: string;\n}\n\nconst handleClick = e => {\n e.preventDefault();\n\n const targetAnchor = document.getElementById(TARGET_ID);\n\n if (!targetAnchor) {\n return;\n }\n\n const targetHeading = targetAnchor.getElementsByTagName('h1')[0];\n\n if (targetHeading) {\n targetHeading.setAttribute('tabIndex', '-1');\n targetHeading.focus();\n return;\n }\n targetAnchor.focus();\n};\n\nconst StyledSkipLink = styled(Hyperlink)<{\n positionLeft: number;\n positionTop: number;\n}>`\n left: -9999px;\n position: fixed;\n top: -9999px;\n\n &:focus {\n left: ${props => props.positionLeft}px;\n top: ${props => props.positionTop}px;\n z-index: 99999;\n }\n }\n`;\n\nexport const SkipLink: React.FunctionComponent<SkipLinkProps> = props => {\n const {\n buttonText,\n color,\n positionLeft,\n positionTop,\n testId,\n variant,\n ...other\n } = props;\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledSkipLink\n {...other}\n color={color ? color : ButtonColor.primary}\n testId={testId}\n onClick={e => {\n handleClick(e);\n }}\n positionLeft={positionLeft ? positionLeft : 10}\n positionTop={positionTop ? positionTop : 10}\n styledAs=\"Button\"\n to={`#${TARGET_ID}`}\n variant={variant ? variant : ButtonVariant.solid}\n >\n {buttonText ? buttonText : i18n.skipLink.buttonText}\n </StyledSkipLink>\n );\n};\n","import * as React from 'react';\n\nimport { TARGET_ID } from '../SkipLink';\n\n/**\n * @children required\n */\nexport interface SkipLinkContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nexport const SkipLinkContent: React.FunctionComponent<SkipLinkContentProps> = props => {\n const { children, testId } = props;\n return (\n <div\n data-testid={testId}\n id={TARGET_ID}\n tabIndex={-1}\n style={{ outline: 0 }}\n >\n {children}\n </div>\n );\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { convertStyleValueToString } from '../../utils';\n\nexport interface SpacerProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * Determines whether the spacer takes up space horizontally, vertically or both.\n */\n axis?: SpacerAxis;\n /**\n * Height and/or width of the component. If a number is provided, will be set in pixels.\n */\n size: number | string;\n testId?: string;\n}\n\nexport enum SpacerAxis {\n horizontal = 'horizontal',\n vertical = 'vertical',\n both = 'both', // default\n}\n\nfunction getHeight(axis: SpacerAxis, size: number | string) {\n return axis === SpacerAxis.horizontal\n ? '1px'\n : convertStyleValueToString(size);\n}\nfunction getWidth(axis: SpacerAxis, size: number | string) {\n return axis === SpacerAxis.vertical ? '1px' : convertStyleValueToString(size);\n}\n\nconst StyledSpacer = styled.span<SpacerProps>`\n display: ${props =>\n props.axis === SpacerAxis.horizontal ? 'inline-block' : 'block'};\n height: ${props => getHeight(props.axis, props.size)};\n min-height: ${props => getHeight(props.axis, props.size)};\n min-width: ${props => getWidth(props.axis, props.size)};\n width: ${props => getWidth(props.axis, props.size)};\n`;\n\nexport const Spacer = React.forwardRef<HTMLSpanElement, SpacerProps>(\n (props, ref) => {\n const { testId, axis = SpacerAxis.both, ...other } = props;\n\n return (\n <StyledSpacer {...other} axis={axis} data-testid={testId} ref={ref} />\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\n\nimport { CancelIcon, IconProps } from 'react-magma-icons';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\nimport { Omit, XOR, getNodeText } from '../../utils';\nimport { I18nContext } from '../../i18n';\n\nexport enum TagColor {\n danger = 'danger',\n primary = 'primary',\n lowContrast = 'lowContrast',\n highContrast = 'highContrast',\n success = 'success',\n}\n\nexport enum TagSize {\n medium = 'medium',\n small = 'small',\n}\n\n/**\n * @children required\n */\n\nexport interface BaseTagProps\n extends Omit<React.HTMLAttributes<HTMLButtonElement>, 'onClick'> {\n /**\n * Color changes between 'primary', 'low contrast', and 'high contrast' style variants between each Tag.\n */\n color?: TagColor;\n\n /**\n * Size toggles between a default, and a small size Tag.\n */\n size?: TagSize;\n\n /**\n * Gets the active Tag label for use with the aria-label attribute inline for accessibility.\n */\n labelText?: React.ReactNode;\n\n /**\n * Disabled Tag state.\n */\n disabled?: boolean;\n\n testId?: string;\n\n /**\n * Allows passing a Magma icon to the Tag.\n */\n icon?: React.ReactElement<IconProps>;\n\n /**\n * Passes a clickable state to the Tag.\n */\n isClickable?: boolean;\n\n /**\n * Allows for Inverse styling of each Tag.\n */\n isInverse?: boolean;\n\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nexport interface DeletableTagProps extends BaseTagProps {\n onDelete: () => void;\n}\n\nexport interface ClickableTagProps extends BaseTagProps {\n onClick?: () => void;\n}\n\nexport type TagProps = XOR<DeletableTagProps, ClickableTagProps>;\n\nfunction buildBoxShadow(props) {\n if (props.color === 'lowContrast') {\n if (props.isInverse) {\n if (props.disabled) {\n return `0 0 0 1px ${props.theme.colors.neutral08}40`;\n }\n return `0 0 0 1px ${props.theme.colors.neutral08}80`;\n }\n if (props.disabled) {\n return `0 0 0 1px ${props.theme.colors.neutral06}`;\n }\n return `inset 0 0 0 1px ${props.theme.colors.neutral05}`;\n }\n}\n\nfunction buildButtonBackground(props) {\n if (props.isInverse) {\n if (props.disabled) {\n // Disabled inverse state background colors\n switch (props.color) {\n case 'primary':\n return `${props.theme.colors.neutral06}`;\n case 'highContrast':\n return `${props.theme.colors.neutral06}`;\n case 'lowContrast':\n return `none`;\n default:\n return `${props.theme.colors.neutral06}`;\n }\n }\n // Inverse background colors\n switch (props.color) {\n case 'danger':\n return `${props.theme.colors.dangerInverse}`;\n case 'success':\n return `${props.theme.colors.successInverse}`;\n case 'primary':\n return `${props.theme.colors.primaryInverse}`;\n case 'lowContrast':\n return `none;`;\n case 'highContrast':\n return `${props.theme.colors.neutral08}`;\n default:\n return `${props.theme.colors.neutral03}`;\n }\n } else if (props.disabled && !props.isInverse) {\n // Disabled state background colors\n switch (props.color) {\n case 'primary':\n return `${props.theme.colors.neutral06}`;\n case 'highContrast':\n return `${props.theme.colors.neutral06}`;\n case 'lowContrast':\n return `${props.theme.colors.neutral08}`;\n default:\n return `${props.theme.colors.neutral06}`;\n }\n }\n // Default state background colors\n switch (props.color) {\n case 'danger':\n return `${props.theme.colors.danger}`;\n case 'success':\n return `${props.theme.colors.success}`;\n case 'primary':\n return `${props.theme.colors.primary}`;\n case 'lowContrast':\n return `${props.theme.colors.neutral08}`;\n case 'highContrast':\n return `${props.theme.colors.neutral}`;\n default:\n return `${props.theme.colors.neutral06}`;\n }\n}\n\nfunction buildButtonTextColor(props) {\n if (props.isInverse) {\n if (props.disabled) {\n // Disabled inverse state text colors\n switch (props.color) {\n case 'primary':\n return `${props.theme.colors.neutral03}99`;\n case 'highContrast':\n return `${props.theme.colors.neutral03}99`;\n case 'lowContrast':\n return `${props.theme.colors.neutral08}40`;\n default:\n return `${props.theme.colors.neutral03}99`;\n }\n }\n // Inverse text colors\n switch (props.color) {\n case 'danger':\n return `${props.theme.colors.neutral}`;\n case 'success':\n return `${props.theme.colors.neutral}`;\n case 'primary':\n return `${props.theme.colors.neutral}`;\n case 'lowContrast':\n return `${props.theme.colors.neutral08}`;\n case 'highContrast':\n return `${props.theme.colors.neutral}`;\n default:\n return `${props.theme.colors.neutral08}`;\n }\n } else if (props.disabled && !props.isInverse) {\n // Disabled state text colors\n switch (props.color) {\n case 'primary':\n return `${props.theme.colors.neutral03}99`;\n case 'highContrast':\n return `${props.theme.colors.neutral03}99`;\n case 'lowContrast':\n return `${props.theme.colors.neutral03}99`;\n default:\n return `${props.theme.colors.neutral03}99`;\n }\n }\n // Default state text colors\n switch (props.color) {\n case 'danger':\n return `${props.theme.colors.neutral08}`;\n case 'success':\n return `${props.theme.colors.neutral08}`;\n case 'primary':\n return `${props.theme.colors.neutral08}`;\n case 'highContrast':\n return `${props.theme.colors.neutral08}`;\n default:\n return `${props.theme.colors.neutral}`;\n }\n}\n\nfunction buildSvgOpacity(props) {\n if (props.onClick || props.onDelete) {\n if (props.disabled) {\n return '60%';\n }\n return '75%';\n }\n if (props.color === 'lowContrast' && props.disabled) {\n return '25%';\n } else if (props.disabled) {\n return '60%';\n }\n return '1';\n}\n\nfunction buildTagPadding(props) {\n if (props.icon) {\n switch (props.size) {\n case 'small':\n return `0 ${props.theme.spaceScale.spacing02}`;\n default:\n return `${props.theme.spaceScale.spacing02} 6px`;\n }\n }\n switch (props.size) {\n case 'small':\n return `0 ${props.theme.spaceScale.spacing02}`;\n default:\n return `${props.theme.spaceScale.spacing02} 6px`;\n }\n}\n\nfunction buildLabelPadding(props) {\n if (props.icon) {\n switch (props.size) {\n case 'small':\n return `0 ${props.theme.spaceScale.spacing02}`;\n default:\n return `0 ${props.theme.spaceScale.spacing03}`;\n }\n }\n switch (props.size) {\n case 'small':\n return `0 ${props.theme.spaceScale.spacing02}`;\n default:\n return `0 ${props.theme.spaceScale.spacing03}`;\n }\n}\n\nconst TagStyling = props => css`\n border: ${props.theme.tag.border};\n border-radius: ${props.theme.spaceScale.spacing05};\n background: ${buildButtonBackground(props)};\n color: ${buildButtonTextColor(props)};\n box-shadow: ${buildBoxShadow(props)};\n display: ${props.theme.tag.display};\n align-items: ${props.theme.tag.alignItems};\n justify-content: ${props.theme.tag.justifyContent};\n font-size: ${props.size === 'small'\n ? `${props.theme.typeScale.size01.fontSize}`\n : `${props.theme.typeScale.size02.fontSize}`};\n font-weight: ${props.size === 'small' ? `600` : `inherit`};\n letter-spacing: ${props.size === 'small'\n ? `${props.theme.typeScale.size01.letterSpacing}`\n : `${props.theme.typeScale.size02.letterSpacing}`};\n min-width: ${props.size === 'small'\n ? props.theme.spaceScale.spacing10\n : props.theme.spaceScale.spacing12};\n padding: ${buildTagPadding(props)};\n svg:first-of-type {\n height: ${props.size === 'small'\n ? `${props.theme.iconSizes.xSmall}px`\n : `${props.theme.iconSizes.small}px`};\n opacity: ${props.disabled ? '60%' : 'inherit'};\n width: ${props.size === 'small'\n ? `${props.theme.iconSizes.xSmall}px`\n : `${props.theme.iconSizes.small}px`};\n }\n svg:last-child {\n opacity: ${buildSvgOpacity(props)};\n width: ${props.size === 'small'\n ? `${props.theme.iconSizes.xSmall}px`\n : `${props.theme.iconSizes.small}px`};\n }\n &:hover {\n svg {\n opacity: ${props.disabled ? '60%' : '1'};\n }\n }\n`;\n\nconst StyledButton = styled.button<{\n disabled?: boolean;\n isClickable?: boolean;\n isInverse?: boolean;\n size: string;\n}>`\n ${TagStyling};\n cursor: pointer;\n`;\n\nconst StyledSpan = styled.span<{\n disabled?: boolean;\n isInverse?: boolean;\n size: string;\n}>`\n ${TagStyling};\n cursor: ${props => (props.disabled ? 'not-allowed' : 'inherit')};\n`;\n\nconst LabelWrap = styled.span<{\n size: string;\n icon?: any;\n}>`\n padding: ${buildLabelPadding};\n`;\n\nfunction getStyledTag(isClickable: boolean) {\n return isClickable ? StyledButton : StyledSpan;\n}\n\nexport const Tag = React.forwardRef<HTMLButtonElement, TagProps>(\n (props, ref) => {\n const {\n children,\n color,\n labelText = children,\n onClick,\n onDelete,\n isInverse: isInverseProp,\n size = TagSize.medium,\n testId,\n ...rest\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(isInverseProp);\n\n const i18n = React.useContext(I18nContext);\n\n const deleteAriaLabel = i18n.tag.deleteAriaLabel.replace(\n /\\{labelText\\}/g,\n getNodeText(labelText)\n );\n\n const { icon } = props;\n\n const StyledTag = getStyledTag(Boolean(onClick || onDelete));\n\n function handleClick() {\n if (onClick && typeof onClick === 'function') {\n onClick();\n } else if (onDelete && typeof onDelete === 'function') {\n onDelete();\n }\n }\n\n return (\n <StyledTag\n color={color}\n icon={icon}\n onClick={handleClick}\n isInverse={isInverse}\n ref={ref}\n data-testid={props.testId}\n size={size}\n theme={theme}\n {...rest}\n >\n {icon}\n <LabelWrap size={size} {...rest} theme={theme}>\n {children}\n </LabelWrap>\n {onDelete && (\n <CancelIcon\n aria-label={deleteAriaLabel}\n size={theme.iconSizes.small}\n />\n )}\n </StyledTag>\n );\n }\n);\n","import * as React from 'react';\n\nexport interface ToastsContainerProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Number of additional pixels from bottom of screen\n * @default 0\n */\n bottomOffset?: number;\n /**\n * @internal\n */\n toastsArray?: any;\n testId?: string;\n}\n\nexport interface ToastsContextInterface {\n bottomOffset?: number;\n toastsArray?: any;\n}\n\nexport const ToastsContext = React.createContext<ToastsContextInterface>({\n toastsArray: { current: [] },\n bottomOffset: 0,\n});\n\nexport const ToastsContainer = React.forwardRef<\n HTMLDivElement,\n ToastsContainerProps\n>((props, ref) => {\n const { bottomOffset, children, testId } = props;\n const toastsArray = React.useRef([]);\n\n return (\n <ToastsContext.Provider value={{ bottomOffset, toastsArray }}>\n <div ref={ref} data-testid={testId}>\n {children}\n </div>\n </ToastsContext.Provider>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { AlertBase, AlertBaseProps, transitionDuration } from '../AlertBase';\nimport { getTrapElements } from '../../utils';\nimport { useGenerateId } from '../../utils';\nimport { ToastsContext } from './ToastsContainer';\n\n/**\n * @children required\n */\nexport interface ToastProps extends AlertBaseProps {\n /**\n * CSS properties for the alert component within the toast container\n */\n alertStyle?: React.CSSProperties;\n /**\n * CSS properties for the component container\n */\n containerStyle?: React.CSSProperties;\n /**\n * If true, the component will persist until dismissed by the user\n * @default false\n */\n disableAutoDismiss?: boolean;\n /**\n * Number of milliseconds the toast displays before it closes\n * @default 5000\n */\n toastDuration?: number;\n /**\n * Action that fires when the close button is clicked (required when dismissible is true)\n */\n onDismiss: () => void;\n /**\n * Action that fires when the mouse enters the component\n */\n onMouseEnter?: (event: React.SyntheticEvent) => void;\n /**\n * Action that fires when the mouse leaves the component\n */\n onMouseLeave?: (event: React.SyntheticEvent) => void;\n}\n\nconst ToastWrapper = styled.div<{\n bottomOffsetForContainer?: number;\n bottomOffsetForToast?: number;\n}>`\n bottom: ${props => props.bottomOffsetForToast + 20}px;\n display: flex;\n left: 20px;\n justify-content: flex-start;\n max-width: 600px;\n min-width: 320px;\n position: fixed;\n transform: translateY(${props => 0 - props.bottomOffsetForContainer}px);\n transition: bottom 0.3s;\n z-index: 999;\n\n @media (max-width: 600px) {\n bottom: ${props => props.bottomOffsetForToast + 10}px;\n left: 10px;\n right: 10px;\n }\n`;\n\nconst DEFAULT_TOAST_DURATION = 5000;\nconst TOAST_HEIGHT = 65;\n\nexport const Toast = React.forwardRef<HTMLDivElement, ToastProps>(\n (props, ref) => {\n const timerAutoHide = React.useRef<any>();\n const [isDismissed, setIsDismissed] = React.useState<boolean>(false);\n const [isPaused, setIsPaused] = React.useState<boolean>(false);\n const [timerTimeRemaining, setTimerTimeRemaining] =\n React.useState<number>();\n\n const {\n alertStyle,\n id: defaultId,\n testId,\n variant,\n disableAutoDismiss,\n children,\n containerStyle,\n toastDuration,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n\n const lastFocus = React.useRef<any>();\n\n const { bottomOffset, toastsArray } = React.useContext(ToastsContext);\n\n const timerStartTime = Date.now();\n\n const containerElement = React.useRef<any>();\n\n function dismissToast() {\n setIsDismissed(true);\n\n setTimeout(() => {\n if (toastsArray.current) {\n toastsArray.current = toastsArray.current.filter(\n toastId => toastId !== containerElement.current\n );\n }\n }, 0);\n }\n\n function clearTimeoutAndDismiss() {\n clearTimeout(timerAutoHide.current);\n\n dismissToast();\n\n if (lastFocus.current) {\n lastFocus.current.focus();\n }\n }\n\n function setAutoHideTimer(duration = DEFAULT_TOAST_DURATION) {\n clearTimeout(timerAutoHide.current);\n const totalDuration = duration + transitionDuration;\n\n timerAutoHide.current = setTimeout(() => {\n dismissToast();\n }, totalDuration);\n }\n\n function handlePause() {\n const duration = timerTimeRemaining\n ? timerTimeRemaining\n : toastDuration\n ? toastDuration\n : DEFAULT_TOAST_DURATION;\n const timeRemaining = duration - (Date.now() - timerStartTime);\n\n clearTimeout(timerAutoHide.current);\n setTimerTimeRemaining(timeRemaining);\n\n setIsPaused(true);\n }\n\n function handleResume() {\n setAutoHideTimer(timerTimeRemaining);\n setIsPaused(false);\n }\n\n function handleMouseEnter(event: React.SyntheticEvent) {\n props.onMouseEnter &&\n typeof props.onMouseEnter === 'function' &&\n props.onMouseEnter(event);\n\n if (!props.disableAutoDismiss) {\n handlePause();\n }\n }\n\n function handleMouseLeave(event: React.SyntheticEvent) {\n props.onMouseLeave &&\n typeof props.onMouseLeave === 'function' &&\n props.onMouseLeave(event);\n\n if (!props.disableAutoDismiss) {\n handleResume();\n }\n }\n\n function calculateAndSetBottomOffsetForToast() {\n updateBottomOffsetForToast(\n typeof toastsArray.current[0] === 'undefined'\n ? 0\n : toastsArray.current.indexOf(containerElement.current) * TOAST_HEIGHT\n );\n }\n\n const [bottomOffsetForToast, updateBottomOffsetForToast] =\n React.useState(0);\n\n React.useEffect(() => {\n lastFocus.current = document.activeElement;\n\n if (!props.disableAutoDismiss) {\n setAutoHideTimer(props.toastDuration);\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, []);\n\n React.useEffect(() => {\n if (!disableAutoDismiss) {\n const focusableElements = getTrapElements(containerElement);\n focusableElements.forEach(element => {\n element.addEventListener('focus', handlePause);\n element.addEventListener('blur', handleResume);\n });\n }\n }, []);\n\n React.useEffect(() => {\n if (toastsArray) {\n toastsArray.current = toastsArray.current.includes(\n containerElement.current\n )\n ? toastsArray.current\n : toastsArray.current.concat([containerElement.current]);\n\n calculateAndSetBottomOffsetForToast();\n }\n }, []);\n\n React.useEffect(() => {\n calculateAndSetBottomOffsetForToast();\n }, [toastsArray.current]);\n\n return (\n <ToastWrapper\n bottomOffsetForToast={bottomOffsetForToast}\n bottomOffsetForContainer={bottomOffset}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n ref={containerElement}\n style={containerStyle}\n data-testid={testId}\n >\n <AlertBase\n {...other}\n forceDismiss={clearTimeoutAndDismiss}\n hasTimerRing={!disableAutoDismiss}\n id={id}\n isDismissible\n isDismissed={isDismissed}\n isPaused={isPaused}\n isToast\n onDismiss={props.onDismiss}\n ref={ref}\n style={{ ...alertStyle }}\n toastDuration={toastDuration ? toastDuration : DEFAULT_TOAST_DURATION}\n variant={variant}\n >\n {children}\n </AlertBase>\n </ToastWrapper>\n );\n }\n);\n","import * as React from 'react';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { CheckIcon } from 'react-magma-icons';\nimport { FormGroupContext } from '../FormGroup';\nimport { InputMessage } from '../Input/InputMessage';\nimport { StyledLabel } from '../SelectionControls/StyledLabel';\nimport { StyledContainer } from '../SelectionControls/StyledContainer';\nimport { css } from '@emotion/core';\n// Using the base `styled` from `emotion` until import mapping is fixed: https://github.com/emotion-js/emotion/pull/1220\n// import styled from '../../theme/styled';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useGenerateId } from '../../utils';\nimport { useIsInverse } from '../../inverse';\n\nexport enum ToggleTextPosition {\n left = 'left', // default\n right = 'right',\n}\n\nexport interface ToggleProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * If true, element is checked (i.e. selected)\n * @default false\n */\n checked?: boolean;\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * If true, checkbox is checked on first render\n */\n defaultChecked?: boolean;\n /**\n * Content of the error message for toggle. If a value is provided, the component will be styled as an error state and the error message will display.\n */\n errorMessage?: React.ReactNode;\n /**\n * @internal\n */\n hasError?: boolean;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content for label; can be a node or a string\n */\n labelText: React.ReactNode;\n testId?: string;\n /**\n * Whether the label appears to the left of the right of the toggle switch\n * @default ToggleTextPosition.left\n */\n textPosition?: ToggleTextPosition;\n /**\n * @internal\n */\n theme?: any;\n /**\n * Style properties for the part of the component that slides back and forth on the track\n */\n thumbStyle?: React.CSSProperties;\n /**\n * Style properties for track on which the toggle thumb slides\n */\n trackStyle?: React.CSSProperties;\n}\n\nconst HiddenLabelText = styled.span`\n ${HiddenStyles};\n`;\n\nconst HiddenInput = styled.input`\n ${HiddenStyles};\n`;\n\nconst Track = styled.span<{\n isChecked?: boolean;\n disabled?: boolean;\n hasError?: boolean;\n isInverse?: boolean;\n theme?: any;\n}>`\n background: ${props => props.theme.colors.neutral04};\n border: 2px solid;\n border-color: ${props =>\n props.hasError ? props.theme.colors.danger : props.theme.colors.neutral04};\n border-radius: 12px;\n box-shadow: ${props =>\n props.isInverse && props.hasError\n ? `0 0 0 1px ${props.theme.colors.neutral08}`\n : '0 0 0'};\n cursor: pointer;\n height: 24px;\n position: relative;\n width: 48px;\n\n ${props =>\n props.isChecked &&\n css`\n background: ${props.theme.colors.success02};\n border-color: ${props.hasError\n ? props.theme.colors.danger\n : props.theme.colors.success02};\n `}\n\n ${props =>\n props.disabled &&\n css`\n background: ${props.theme.colors.neutral06};\n border-color: ${props.theme.colors.neutral06};\n cursor: not-allowed;\n `}\n\n ${HiddenInput}:focus + label & {\n outline: 2px dotted\n ${props =>\n props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 3px;\n }\n\n &:before {\n // active state\n background: ${props => props.theme.colors.neutral};\n border-radius: 50%;\n content: '';\n display: block;\n height: 40px;\n left: -12px;\n opacity: 0;\n margin-top: -22px;\n padding: 50%;\n position: absolute;\n top: 50%;\n transform: scale(1);\n transition: opacity 1s, transform 0.25s;\n width: 40px;\n\n ${props =>\n props.isChecked &&\n css`\n background: ${props.theme.colors.success02};\n left: 12px;\n `}\n }\n\n ${HiddenInput}:not(:disabled):active + label & {\n &:before {\n opacity: 0.4;\n transform: scale(0);\n transition: transform 0s;\n }\n }\n`;\n\nconst Thumb = styled.span<{\n isChecked?: boolean;\n disabled?: boolean;\n theme?: any;\n}>`\n background: ${props => props.theme.colors.neutral08};\n border-radius: 100%;\n height: 20px;\n left: 0;\n margin-top: -10px;\n position: absolute;\n top: 50%;\n transition: left 0.25s;\n width: 20px;\n\n ${props =>\n props.isChecked &&\n css`\n left: 24px;\n `}\n`;\n\nconst IconContainer = styled.span<{ disabled?: boolean; theme?: any }>`\n color: ${props =>\n props.disabled\n ? props.theme.colors.neutral05\n : props.theme.colors.neutral08};\n left: ${props => props.theme.spaceScale.spacing02};\n position: absolute;\n top: ${props => props.theme.spaceScale.spacing01};\n\n svg {\n display: block;\n }\n`;\n\nconst SpanTextLeft = styled.span`\n padding-right: 10px;\n`;\n\nconst SpanTextRight = styled.span`\n padding-left: 10px;\n`;\n\nconst renderLabelText = (\n isTextVisuallyHidden: boolean,\n labelText: React.ReactNode,\n textPosition: ToggleTextPosition,\n labelStyle: React.CSSProperties\n) => {\n if (isTextVisuallyHidden) {\n return <HiddenLabelText>{labelText}</HiddenLabelText>;\n }\n\n return textPosition === ToggleTextPosition.left ? (\n <SpanTextLeft style={labelStyle}>{labelText}</SpanTextLeft>\n ) : (\n <SpanTextRight style={labelStyle}>{labelText}</SpanTextRight>\n );\n};\n\nexport const Toggle = React.forwardRef<HTMLInputElement, ToggleProps>(\n (props, ref) => {\n const {\n containerStyle,\n checked,\n defaultChecked,\n disabled,\n errorMessage,\n id: defaultId,\n isTextVisuallyHidden,\n labelStyle,\n labelText,\n onChange,\n textPosition,\n testId,\n trackStyle,\n thumbStyle,\n ...other\n } = props;\n const [isChecked, updateIsChecked] = React.useState(\n Boolean(defaultChecked) || Boolean(checked)\n );\n\n const id = useGenerateId(defaultId);\n const isControlled = typeof checked === 'boolean' ? true : false;\n\n React.useEffect(() => {\n if (typeof checked === 'boolean') {\n updateIsChecked(checked);\n }\n }, [checked]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { checked: targetChecked } = event.target;\n\n onChange && typeof onChange === 'function' && onChange(event);\n\n if (!isControlled) {\n updateIsChecked(targetChecked);\n }\n }\n\n const theme = React.useContext(ThemeContext);\n const context = React.useContext(FormGroupContext);\n\n const descriptionId = errorMessage ? `${id}__desc` : null;\n const groupDescriptionId = context.descriptionId;\n\n const describedBy =\n descriptionId && groupDescriptionId\n ? `${groupDescriptionId} ${descriptionId}`\n : descriptionId\n ? descriptionId\n : groupDescriptionId\n ? groupDescriptionId\n : null;\n\n const hasError = context.hasError || !!errorMessage;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <>\n <StyledContainer>\n <HiddenInput\n {...other}\n aria-checked={isChecked}\n aria-describedby={describedBy}\n id={id}\n data-testid={testId}\n disabled={disabled}\n checked={isChecked}\n type=\"checkbox\"\n onChange={handleChange}\n ref={ref}\n role=\"switch\"\n />\n <StyledLabel\n htmlFor={id}\n isInverse={isInverse}\n style={containerStyle}\n >\n {textPosition !== ToggleTextPosition.right &&\n renderLabelText(\n isTextVisuallyHidden,\n labelText,\n ToggleTextPosition.left,\n labelStyle\n )}\n <Track\n isChecked={isChecked}\n data-testid=\"toggle-track\"\n disabled={disabled}\n hasError={hasError}\n isInverse={isInverse}\n style={trackStyle}\n theme={theme}\n >\n <IconContainer disabled={disabled} theme={theme}>\n <CheckIcon size={theme.iconSizes.xSmall} />\n </IconContainer>\n <Thumb\n isChecked={isChecked}\n disabled={disabled}\n style={thumbStyle}\n theme={theme}\n />\n </Track>\n {textPosition === ToggleTextPosition.right &&\n renderLabelText(\n isTextVisuallyHidden,\n labelText,\n ToggleTextPosition.right,\n labelStyle\n )}\n </StyledLabel>\n </StyledContainer>\n {!!errorMessage && (\n <InputMessage id={descriptionId} hasError isInverse={isInverse}>\n {errorMessage}\n </InputMessage>\n )}\n </>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport {\n inputBaseStyles,\n InputBaseStylesProps,\n InputWrapperStylesProps,\n inputWrapperStyles,\n} from '../InputBase';\nimport {\n FormFieldContainer,\n FormFieldContainerBaseProps,\n} from '../FormFieldContainer';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useGenerateId, Omit } from '../../utils';\nimport { useIsInverse } from '../../inverse';\n\nexport interface TextareaProps\n extends Omit<FormFieldContainerBaseProps, 'inputSize' | 'fieldId'>,\n React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n isInverse?: boolean;\n testId?: string;\n /**\n * Style properties for the textarea element\n */\n textareaStyle?: React.CSSProperties;\n /**\n * Value for the textarea\n */\n value?: string | ReadonlyArray<string> | number;\n}\n\nconst StyledTextArea = styled.textarea<\n InputWrapperStylesProps & InputBaseStylesProps\n>`\n ${inputBaseStyles};\n ${inputWrapperStyles};\n height: 4.5em;\n padding: ${props =>\n `${props.theme.spaceScale.spacing02} ${props.theme.spaceScale.spacing03}`};\n`;\n\nexport const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n (props, ref) => {\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n id: defaultId,\n isLabelVisuallyHidden,\n labelStyle,\n labelText,\n messageStyle,\n testId,\n textareaStyle,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const id = useGenerateId(defaultId);\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const [value, setValue] = React.useState<\n string | ReadonlyArray<string> | number\n >(props.defaultValue || props.value || '');\n\n React.useEffect(() => {\n if (props.value) {\n setValue(props.value);\n }\n }, [props.value]);\n function handleChange(event: React.ChangeEvent<HTMLTextAreaElement>) {\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n\n setValue(event.target.value);\n }\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <FormFieldContainer\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n helperMessage={helperMessage}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n isInverse={isInverse}\n labelStyle={labelStyle}\n labelText={labelText}\n >\n <StyledTextArea\n {...other}\n aria-describedby={\n descriptionId ? descriptionId : props['aria-describedby']\n }\n aria-invalid={!!errorMessage}\n data-testid={testId}\n hasError={!!errorMessage}\n id={id}\n isInverse={isInverse}\n onChange={handleChange}\n ref={ref}\n style={textareaStyle}\n theme={theme}\n value={value}\n width='100%'\n />\n </FormFieldContainer>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\n\ninterface AmPmToggleProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n children: string;\n}\n\nconst StyledAmPmToggle = styled.button<{ theme: ThemeInterface }>`\n background: none;\n border: 0;\n border-radius: 3px;\n margin-left: 3px;\n padding: 0 3px;\n\n &:focus {\n outline: 0;\n background: ${props => props.theme.colors.foundation};\n color: ${props => props.theme.colors.neutral08};\n }\n`;\n\nexport const AmPmToggle = React.forwardRef<HTMLButtonElement, AmPmToggleProps>(\n (props, ref) => {\n const { children, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledAmPmToggle\n {...other}\n data-testid=\"amPmTimeButton\"\n ref={ref}\n theme={theme}\n type=\"button\"\n >\n {children}\n </StyledAmPmToggle>\n );\n }\n);\n","import * as React from 'react';\nimport { useGenerateId, Omit } from '../../utils';\nimport { FormFieldContainerBaseProps } from '../FormFieldContainer';\n\nimport { enUS } from 'date-fns/locale';\nimport { I18nContext } from '../../i18n';\n\nexport interface UseTimePickerProps\n extends Omit<FormFieldContainerBaseProps, 'inputSize' | 'fieldId'> {\n /**\n * ID of the hidden input that stores the time value. Also the prefix for other fields.\n */\n id?: string;\n /**\n * Style properties for the outer input\n */\n inputStyle?: React.CSSProperties;\n isInverse?: boolean;\n /**\n * Style properties for the label\n */\n minutesStep?: number;\n /**\n * Full time value passed in and converted to use in hour, minute, and AM/PM fields\n */\n value?: string;\n /**\n * Function called when the component is changed to a new time\n */\n onChange?: (value: string) => void;\n}\n\nexport function useTimePicker(props: UseTimePickerProps) {\n const { errorMessage, helperMessage, onChange } = props;\n const i18n = React.useContext(I18nContext);\n\n const locale = i18n.locale || enUS;\n const am = locale.localize.dayPeriod('am', { width: 'abbreviated' });\n const pm = locale.localize.dayPeriod('pm', { width: 'abbreviated' });\n\n const [hour, setHour] = React.useState<string>('');\n const [minute, setMinute] = React.useState<string>('');\n const [amPm, setAmPm] = React.useState<string>(am);\n const [time, setTime] = React.useState<string>('');\n const hourRef = React.useRef<HTMLInputElement>();\n const minuteRef = React.useRef<HTMLInputElement>();\n const amPmRef = React.useRef<HTMLButtonElement>();\n const id = useGenerateId(props.id);\n\n React.useEffect(() => {\n if (validTime(props.value)) {\n convertPassedInTime(props.value);\n }\n }, [props.value]);\n\n const hourId = `${id}__hour`;\n const minuteId = `${id}__minute`;\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n function updateTime(newTime: string) {\n setTime(newTime);\n onChange && typeof onChange === 'function' && onChange(newTime);\n }\n\n function validTime(passedInTime: string) {\n const amPmRegex = `${am}|${am.toLowerCase()}|${pm}|${pm.toLowerCase()}`;\n const timeRegex = new RegExp(\n `^([01]?[0-9]|2[0-3]):[0-5][0-9]( (${amPmRegex}))?$`,\n 'g'\n );\n return timeRegex.test(passedInTime);\n }\n\n function convertPassedInTime(passedInTime: string) {\n const [timeHour, timeMinuteAndAmPm] = passedInTime.split(':');\n const timeMinute = timeMinuteAndAmPm.substring(0, 2);\n\n const timeAmPm =\n Number(timeHour) > 12\n ? pm\n : timeMinuteAndAmPm.length > 2\n ? timeMinuteAndAmPm.split(' ')[1].toUpperCase()\n : am;\n\n setHour(calculateHour(Number(timeHour)));\n setMinute(timeMinute);\n setAmPm(timeAmPm);\n updateTime(`${timeHour}:${timeMinute} ${timeAmPm}`);\n }\n\n function calculateHour(newHour: number): string {\n if (newHour < 10) {\n return `0${newHour}`;\n } else if (newHour > 12) {\n return `0${newHour.toString().substring(0, 1)}`;\n }\n\n return newHour.toString();\n }\n\n function calculateMinute(newMinute: number): string {\n if (newMinute === 0) {\n return `00`;\n } else if (newMinute < 10) {\n return `0${newMinute}`;\n } else if (newMinute > 59) {\n return `0${newMinute.toString().substring(0, 1)}`;\n }\n\n return newMinute.toString();\n }\n\n function handleHourChange(event: React.ChangeEvent<HTMLInputElement>) {\n const newHour = calculateHour(Number(event.target.value));\n\n setHour(newHour);\n updateTime(`${newHour}:${minute} ${amPm}`);\n }\n\n function handleMinuteChange(event: React.ChangeEvent<HTMLInputElement>) {\n const newMinute = calculateMinute(Number(event.target.value));\n\n setMinute(newMinute);\n updateTime(`${hour}:${newMinute} ${amPm}`);\n }\n\n function toggleAmPm() {\n const newAmPm = amPm === am ? pm : am;\n\n setAmPm(newAmPm);\n updateTime(`${hour}:${minute} ${newAmPm}`);\n }\n\n function handleHourKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Backspace') {\n setHour('');\n }\n\n if (event.key === 'ArrowRight') {\n minuteRef.current.focus();\n }\n }\n\n function handleMinuteKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Backspace') {\n setMinute('');\n }\n\n if (event.key === 'ArrowLeft') {\n hourRef.current.focus();\n }\n\n if (event.key === 'ArrowRight') {\n amPmRef.current.focus();\n }\n }\n\n function handleAmPmKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'ArrowLeft') {\n minuteRef.current.focus();\n }\n\n if (\n event.key === 'ArrowUp' ||\n event.key === 'ArrowDown' ||\n ((event.key === 'A' || event.key === 'a') && amPm === pm) ||\n ((event.key === 'P' || event.key === 'p') && amPm === am)\n ) {\n event.preventDefault();\n toggleAmPm();\n }\n }\n\n return {\n amPm,\n am,\n amPmRef,\n toggleAmPm,\n id,\n time,\n hour,\n hourId,\n hourRef,\n minute,\n minuteId,\n minuteRef,\n descriptionId,\n handleHourChange,\n handleMinuteChange,\n handleHourKeyDown,\n handleMinuteKeyDown,\n handleAmPmKeyDown,\n };\n}\n\nexport type UseTimePickerReturn = ReturnType<typeof useTimePicker>;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { Announce } from '../Announce';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { AmPmToggle } from './AmPmToggle';\nimport { ScheduleIcon } from 'react-magma-icons';\nimport { useTimePicker, UseTimePickerProps } from './useTimePicker';\n\nimport { I18nContext } from '../../i18n';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { useIsInverse } from '../../inverse';\nimport { FormFieldContainer } from '../FormFieldContainer';\nimport { inputWrapperStyles } from '../InputBase';\n\nexport interface TimePickerProps extends UseTimePickerProps {\n /**\n * Style properties for the outer input\n */\n inputStyle?: React.CSSProperties;\n}\n\nconst InputsContainer = styled.div<{\n hasError?: boolean;\n isInverse?: boolean;\n}>`\n ${inputWrapperStyles};\n height: ${props => props.theme.spaceScale.spacing09};\n padding: ${props => props.theme.spaceScale.spacing03};\n width: 144px;\n`;\n\nconst Divider = styled.span`\n display: inline-block;\n margin: 0 1px;\n position: relative;\n top: -1px;\n`;\n\nconst StyledNumInput = styled.input`\n border: 0;\n border-radius: ${props => props.theme.borderRadius};\n margin-right: ${props => props.theme.spaceScale.spacing01};\n padding: 0 ${props => props.theme.spaceScale.spacing01};\n text-align: right;\n width: ${props => props.theme.spaceScale.spacing06};\n\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n\n -moz-appearance: textfield;\n\n &:focus {\n outline: 0;\n background: ${props => props.theme.colors.foundation02};\n color: ${props => props.theme.colors.neutral08};\n }\n`;\n\nexport const TimePicker = React.forwardRef<HTMLInputElement, TimePickerProps>(\n (props, ref) => {\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n inputStyle,\n labelStyle,\n labelText,\n minutesStep,\n onChange,\n ...other\n } = props;\n\n const isInverse = useIsInverse(props.isInverse);\n\n const {\n am,\n amPm,\n amPmRef,\n descriptionId,\n hour,\n hourId,\n hourRef,\n id,\n time,\n minute,\n minuteId,\n minuteRef,\n toggleAmPm,\n handleHourChange,\n handleMinuteChange,\n handleHourKeyDown,\n handleMinuteKeyDown,\n handleAmPmKeyDown,\n } = useTimePicker(props);\n\n const hoursLabel = `${labelText}, ${i18n.timePicker.hoursAriaLabel}`;\n const minutesLabel = `${labelText}, ${i18n.timePicker.minutesAriaLabel}`;\n const amPmLabel = `${labelText}, ${\n amPm === am\n ? i18n.timePicker.amButtonAriaLabel\n : i18n.timePicker.pmButtonAriaLabel\n }`;\n\n return (\n <FormFieldContainer\n {...other}\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n helperMessage={helperMessage}\n isInverse={isInverse}\n labelText={labelText}\n >\n <InputsContainer\n isInverse={isInverse}\n hasError={!!errorMessage}\n theme={theme}\n >\n <ScheduleIcon\n color={theme.colors.neutral}\n style={{ marginRight: theme.spaceScale.spacing02 }}\n />\n <StyledNumInput\n aria-label={hoursLabel}\n aria-describedby={descriptionId}\n data-testid=\"hoursTimeInput\"\n id={hourId}\n maxLength={2}\n max=\"12\"\n min=\"1\"\n onChange={handleHourChange}\n onKeyDown={handleHourKeyDown}\n placeholder=\"--\"\n ref={hourRef}\n theme={theme}\n type=\"number\"\n value={hour}\n />\n <Divider> : </Divider>\n <StyledNumInput\n aria-label={minutesLabel}\n data-testid=\"minutesTimeInput\"\n id={minuteId}\n maxLength={2}\n max=\"59\"\n min=\"0\"\n onChange={handleMinuteChange}\n onKeyDown={handleMinuteKeyDown}\n placeholder=\"--\"\n ref={minuteRef}\n step={minutesStep || 1}\n theme={theme}\n type=\"number\"\n value={minute}\n />\n <AmPmToggle\n aria-label={amPmLabel}\n ref={amPmRef}\n onClick={toggleAmPm}\n onKeyDown={handleAmPmKeyDown}\n >\n {amPm}\n </AmPmToggle>\n <VisuallyHidden>\n <Announce>\n {amPm === am\n ? i18n.timePicker.amSelectedAnnounce\n : i18n.timePicker.pmSelectedAnnounce}\n </Announce>\n </VisuallyHidden>\n </InputsContainer>\n <input id={id} ref={ref} type=\"hidden\" value={time} />\n </FormFieldContainer>\n );\n }\n);\n","import * as React from 'react';\nimport { Global, css } from '@emotion/core';\nimport { ThemeContext } from '../ThemeContext';\nimport { useIsInverse } from '../../inverse';\n\nfunction getStyles(theme, isInverse: boolean) {\n return css`\n @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');\n @import url('https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap');\n\n *,\n *:before,\n *:after {\n box-sizing: border-box;\n }\n\n *:focus {\n outline: 2px dotted\n ${isInverse ? theme.colors.focusInverse : theme.colors.focus};\n outline-offset: 4px;\n }\n\n html {\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n font-size: ${theme.typeScale.size03.fontSize};\n line-height: ${theme.typeScale.size03.lineHeight};\n scroll-behavior: smooth;\n }\n\n html,\n body {\n background: ${isInverse\n ? theme.colors.foundation\n : theme.colors.neutral08};\n color: ${isInverse ? theme.colors.neutral08 : theme.colors.neutral};\n margin: 0;\n padding: 0;\n }\n\n body {\n font-family: ${theme.bodyFont};\n font-style: normal;\n font-weight: 400;\n font-size: ${theme.typeScale.size03.fontSize};\n line-height: ${theme.typeScale.size03.lineHeight};\n }\n\n a {\n color: ${isInverse ? theme.colors.neutral07 : theme.colors.primary};\n cursor: pointer;\n text-decoration: underline;\n\n &:hover,\n &:focus {\n color: ${isInverse ? theme.colors.neutral06 : theme.colors.focus};\n }\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n font: inherit;\n margin: 0;\n }\n\n svg:not(:root) {\n overflow: hidden;\n }\n `;\n}\n\nexport const GlobalStyles: React.FunctionComponent = () => {\n const isInverse = useIsInverse();\n return (\n <ThemeContext.Consumer>\n {theme => <Global styles={getStyles(theme, isInverse)} />}\n </ThemeContext.Consumer>\n );\n};\n","import React from 'react';\n\nexport function useMediaQuery(queryInput) {\n const query = queryInput.replace(/^@media( ?)/m, '');\n\n const supportMatchMedia =\n typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n\n const matchMedia = supportMatchMedia ? window.matchMedia : null;\n\n const [match, setMatch] = React.useState(() => {\n if (supportMatchMedia) {\n return matchMedia(query).matches;\n }\n\n return false;\n });\n\n React.useEffect(() => {\n let active = true;\n\n if (!supportMatchMedia) {\n return undefined;\n }\n\n const queryList = matchMedia(query);\n\n const updateMatch = () => {\n if (active) {\n setMatch(queryList.matches);\n }\n };\n\n updateMatch();\n queryList.addEventListener('change', updateMatch);\n\n return () => {\n active = false;\n queryList.removeEventListener('change', updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n\n return match;\n}\n","import * as React from 'react';\nimport { useDescendants } from '../../hooks/useDescendants';\n\nexport enum AccordionIconPosition {\n left = 'left',\n none = 'none',\n right = 'right', // default\n}\n\nexport interface UseAccordionProps {\n /**\n * Index of the accordion panel expanded by default. If multiple panels are allowed, takes an array.\n * @default null\n */\n defaultIndex?: number[] | number;\n /**\n * Position of the chevron icon. If 'none', the icon will not render at all.\n * @default AccordionIconPosition.right\n */\n iconPosition?: AccordionIconPosition;\n index?: number[] | number;\n isInverse?: boolean;\n /**\n * If true, multiple accordion items may be expanded at once\n * @default true\n */\n isMulti?: boolean;\n /**\n * Event that fires when an accordion button is clicked\n */\n onExpandedChange?: (event: any) => void;\n testId?: string;\n}\n\ninterface AccordionContextInterface {\n buttonRefArray?: React.MutableRefObject<React.MutableRefObject<Element>[]>;\n expandedIndex?: number[] | number;\n iconPosition?: AccordionIconPosition;\n isControlled?: boolean;\n isMulti?: boolean;\n onExpandedChange?: any;\n setExpandedIndex?: any;\n registerAccordionButton: (\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n ) => void;\n}\n\nexport const AccordionContext = React.createContext<AccordionContextInterface>({\n isControlled: false,\n iconPosition: AccordionIconPosition.right,\n isMulti: false,\n registerAccordionButton: (elements, element) => {},\n});\n\nexport function useAccordion(props: UseAccordionProps) {\n const {\n isMulti = true,\n defaultIndex = isMulti ? [] : null,\n index,\n iconPosition = AccordionIconPosition.right,\n onExpandedChange,\n } = props;\n\n const isControlled = typeof index !== 'undefined';\n\n const indexProp = isControlled ? index : defaultIndex;\n\n const [expandedIndex, setExpandedIndex] = React.useState(indexProp);\n\n React.useEffect(() => {\n if (isControlled) {\n setExpandedIndex(index);\n }\n }, [index]);\n\n const [buttonRefArray, registerAccordionButton] = useDescendants();\n\n const contextValue = {\n buttonRefArray,\n expandedIndex,\n iconPosition,\n isControlled,\n isMulti,\n onExpandedChange,\n registerAccordionButton,\n setExpandedIndex,\n };\n\n return {\n contextValue,\n };\n}\n\nexport type UseAccordionReturn = ReturnType<typeof useAccordion>;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { InverseContext, useIsInverse } from '../../inverse';\nimport {\n UseAccordionProps,\n AccordionContext,\n useAccordion,\n} from './useAccordion';\nimport { ThemeInterface } from '../../theme/magma';\n\n/**\n * @children required\n */\ninterface BaseAccordionProps\n extends UseAccordionProps,\n React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nexport interface AccordionMultipleProps extends BaseAccordionProps {\n /**\n * Zero-based indices of item to expanded initially. When isMulti is true this is an array of numbers.\n * @default []\n */\n defaultIndex?: number[];\n /**\n * Not used in uncontrolled accordion\n */\n index?: never;\n /**\n * If true, multiple accordion items may be expanded at once\n */\n isMulti: true;\n}\n\nexport interface AccordionSingleProps\n extends UseAccordionProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * Zero-based index of item to expanded initially. When isMulti is a false this is a number.\n * @default null\n */\n defaultIndex?: number;\n /**\n * Not used in uncontrolled accordion\n */\n index?: never;\n /**\n * If true, multiple accordion items may be expanded at once\n */\n isMulti: false;\n}\n\nexport interface AccordionMultipleControlledProps\n extends UseAccordionProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * Zero-based indices of expanded items. When isMulti is true this is an array of numbers.\n * @default []\n */\n index?: number[];\n /**\n * Not used in controlled accordion\n */\n defaultIndex?: never;\n isMulti?: true;\n}\n\nexport interface AccordionSingleControlledProps\n extends UseAccordionProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * Zero-based index of expanded item. When isMulti is a false this is a number.\n * @default null\n */\n index?: number;\n /**\n * Not used in controlled accordion\n */\n defaultIndex?: never;\n isMulti: false;\n}\n\nexport type AccordionProps =\n | AccordionMultipleProps\n | AccordionSingleProps\n | AccordionMultipleControlledProps\n | AccordionSingleControlledProps;\n\nconst StyledAccordion = styled.div<AccordionProps>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n border-bottom: 1px solid ${props => props.theme.colors.neutral06};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n`;\n\nexport const Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n (props, ref) => {\n const {\n children,\n isInverse: isInverseProp,\n onExpandedChange,\n testId,\n ...rest\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n const { contextValue } = useAccordion(props);\n\n return (\n <InverseContext.Provider value={{ isInverse }}>\n <AccordionContext.Provider value={contextValue}>\n <StyledAccordion\n {...rest}\n data-testid={testId}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n >\n {React.Children.map(\n children,\n (child: React.ReactElement<any>, index) => {\n return React.cloneElement(child, { index, key: index });\n }\n )}\n </StyledAccordion>\n </AccordionContext.Provider>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\n\nimport { AccordionContext } from './useAccordion';\nimport { useGenerateId } from '../../utils';\n\nexport interface UseAccordionItemProps {\n /**\n * @internal\n */\n index?: number;\n isDisabled?: boolean;\n testId?: string;\n}\n\ninterface AccordionItemContextInterface {\n buttonId?: string;\n index?: number;\n isDisabled?: boolean;\n isExpanded?: boolean;\n panelId?: string;\n setIsExpanded?: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const AccordionItemContext = React.createContext<AccordionItemContextInterface>(\n {\n isDisabled: false,\n isExpanded: false,\n setIsExpanded: () => {},\n }\n);\n\nexport function useAccordionItem(props: UseAccordionItemProps) {\n const { index, isDisabled } = props;\n\n const [isExpanded, setIsExpanded] = React.useState<boolean>(false);\n const { expandedIndex, isMulti } = React.useContext(AccordionContext);\n\n const idPrefix = useGenerateId();\n\n const buttonId = `${idPrefix}_btn`;\n const panelId = `${idPrefix}_panel`;\n\n React.useEffect(() => {\n const newIsExpanded = isMulti\n ? Array.isArray(expandedIndex) && expandedIndex.includes(index) \n : expandedIndex == index;\n \n setIsExpanded(newIsExpanded);\n });\n\n const contextValue = {\n buttonId,\n index,\n isDisabled,\n isExpanded,\n panelId,\n setIsExpanded,\n };\n\n return {\n contextValue,\n };\n}\n\nexport type UseAccordionItemReturn = ReturnType<typeof useAccordionItem>;\n","import * as React from 'react';\nimport {\n AccordionItemContext,\n UseAccordionItemProps,\n useAccordionItem,\n} from './useAccordionItem';\nimport { ThemeInterface } from '../../theme/magma';\nimport styled from '../../theme/styled';\n\n/**\n * @children required\n */\nexport interface AccordionItemProps\n extends UseAccordionItemProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nconst StyledItem = styled.div`\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n background: none;\n color: inherit;\n font: inherit;\n line-height: inherit;\n margin: 0;\n padding: 0;\n }\n`;\n\nexport const AccordionItem = React.forwardRef<\n HTMLDivElement,\n AccordionItemProps\n>((props, ref) => {\n const { children, testId, ...rest } = props;\n\n const { contextValue } = useAccordionItem(props);\n\n return (\n <AccordionItemContext.Provider value={contextValue}>\n <StyledItem ref={ref} data-testid={testId} {...rest}>\n {children}\n </StyledItem>\n </AccordionItemContext.Provider>\n );\n});\n","import * as React from 'react';\n\nimport { AccordionContext } from './useAccordion';\nimport { AccordionItemContext } from './useAccordionItem';\nimport { useForceUpdate } from '../../hooks/useForceUpdate';\nimport { useForkedRef } from '../../utils';\n\nexport interface UseAccordionButtonProps {\n testId?: string;\n isInverse?: boolean;\n}\n\nexport function useAccordionButton(\n props: UseAccordionButtonProps,\n forwardedRef\n) {\n const {\n buttonRefArray,\n expandedIndex,\n iconPosition,\n isControlled,\n isMulti,\n registerAccordionButton,\n onExpandedChange,\n setExpandedIndex,\n } = React.useContext(AccordionContext);\n\n const { buttonId, index, isDisabled, isExpanded, panelId } = React.useContext(\n AccordionItemContext\n );\n\n const handleClick = () => {\n typeof onExpandedChange === 'function' && onExpandedChange(index);\n\n if (!isControlled) {\n isMulti && Array.isArray(expandedIndex)\n ? isExpanded\n ? setExpandedIndex(expandedIndex.filter(item => item !== index))\n : setExpandedIndex(expandedIndex.concat([index]))\n : isExpanded\n ? setExpandedIndex(null)\n : setExpandedIndex(index);\n }\n };\n\n const focusFirst = () => {\n (buttonRefArray.current[0].current as HTMLButtonElement).focus();\n };\n\n const focusNext = () => {\n (buttonRefArray.current[index + 1].current as HTMLButtonElement).focus();\n };\n\n const focusPrev = () => {\n (buttonRefArray.current[index - 1].current as HTMLButtonElement).focus();\n };\n\n const focusLast = () => {\n const arrLength = buttonRefArray.current.length;\n (buttonRefArray.current[arrLength - 1]\n .current as HTMLButtonElement).focus();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const arrLength = buttonRefArray.current.length;\n\n switch (event.key) {\n case 'ArrowDown': {\n index === arrLength - 1 ? focusFirst() : focusNext();\n break;\n }\n case 'ArrowUp': {\n index === 0 ? focusLast() : focusPrev();\n break;\n }\n case 'Home': {\n focusFirst();\n break;\n }\n case 'End': {\n focusLast();\n break;\n }\n default:\n return;\n }\n };\n\n const ownRef = React.useRef<HTMLDivElement>();\n const forceUpdate = useForceUpdate();\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n React.useEffect(() => {\n if (!isDisabled) {\n registerAccordionButton(buttonRefArray, ownRef);\n }\n\n forceUpdate();\n }, []);\n\n return {\n buttonId,\n handleClick,\n handleKeyDown,\n iconPosition,\n index,\n isDisabled,\n isExpanded,\n panelId,\n ref,\n };\n}\n\nexport type UseAccordionButtonReturn = ReturnType<typeof useAccordionButton>;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\nimport { AccordionIconPosition } from './useAccordion';\nimport { Spacer } from '../Spacer';\nimport { ExpandMoreIcon } from 'react-magma-icons';\nimport {\n useAccordionButton,\n UseAccordionButtonProps,\n} from './useAccordionButton';\nimport { Transition } from '../Transition';\n\n/**\n * @children required\n */\nexport interface AccordionButtonProps\n extends UseAccordionButtonProps,\n React.HTMLAttributes<HTMLButtonElement> {\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nconst StyledButton = styled.button<{\n isInverse?: boolean;\n isExpanded?: boolean;\n}>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n border: 0;\n border-top: 1px solid ${props =>\n props.isInverse ? props.theme.colors.tint04 : props.theme.colors.neutral06};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n cursor: pointer;\n display: flex;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n font-weight: 600;\n padding: 12px 16px;\n text-align: left;\n width: 100%;\n\n &:focus {\n outline: 2px dotted ${props =>\n props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n }\n outline-offset: -3px;\n }\n\n &&[disabled] {\n color: ${props =>\n props.isInverse\n ? props.theme.colors.disabledInverseText\n : props.theme.colors.disabledText};\n cursor: not-allowed;\n }\n`;\n\nconst TextWrapper = styled.span`\n flex-grow: 1;\n`;\n\nexport const AccordionButton = React.forwardRef<\n HTMLButtonElement,\n AccordionButtonProps\n>((props, forwardedRef) => {\n const { children, testId, isInverse: isInverseProp, ...rest } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n const {\n iconPosition,\n buttonId,\n isDisabled,\n isExpanded,\n panelId,\n handleClick,\n handleKeyDown,\n ref,\n } = useAccordionButton(props, forwardedRef);\n\n const caret = (\n <Transition\n isOpen={isExpanded}\n rotate180\n style={{ height: theme.spaceScale.spacing06 }}\n >\n <ExpandMoreIcon />\n </Transition>\n );\n\n return (\n <StyledButton\n {...rest}\n aria-controls={panelId}\n aria-expanded={Boolean(isExpanded)}\n data-testid={testId}\n disabled={isDisabled}\n id={buttonId}\n isExpanded={isExpanded}\n isInverse={isInverse}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={ref}\n theme={theme}\n >\n {iconPosition === AccordionIconPosition.left && (\n <>\n {caret}\n <Spacer size={12} />\n </>\n )}\n <TextWrapper>{children}</TextWrapper>\n {iconPosition === AccordionIconPosition.right && (\n <>\n <Spacer size={12} />\n {caret}\n </>\n )}\n </StyledButton>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\nimport { AccordionItemContext } from './useAccordionItem';\nimport { Transition } from '../Transition';\n\n/**\n * @children required\n */\nexport interface AccordionPanelProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n isInverse?: boolean;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nconst StyledPanel = styled.div<AccordionPanelProps>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n padding: ${props =>\n `${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing05} ${props.theme.spaceScale.spacing04}`};\n`;\n\nexport const AccordionPanel = React.forwardRef<\n HTMLDivElement,\n AccordionPanelProps\n>((props, ref) => {\n const { children, testId, isInverse: isInverseProp, ...rest } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n const { buttonId, isExpanded, panelId } =\n React.useContext(AccordionItemContext);\n\n return (\n <Transition isOpen={isExpanded} collapse unmountOnExit>\n <StyledPanel\n {...rest}\n aria-labelledby={buttonId}\n aria-hidden={!isExpanded}\n data-testid={testId}\n id={panelId}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n >\n {children}\n </StyledPanel>\n </Transition>\n );\n});\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { Modal, ModalProps } from '../Modal';\nimport { TransitionProps } from '../Transition';\n\nexport enum DrawerPosition {\n top = 'top',\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n}\n\nconst transitionPreset: {\n [key in DrawerPosition]: Omit<TransitionProps, 'isOpen'>;\n} = {\n top: { slideTop: true },\n bottom: { slideBottom: true },\n left: { slideLeft: true },\n right: { slideRight: true },\n};\n\n/**\n * @children required\n */\nexport interface DrawerProps extends Omit<ModalProps, 'size'> {\n testId?: string;\n /**\n * Style properties for the drawer\n */\n drawerStyle?: React.CSSProperties;\n /**\n * Style properties for the drawer container\n */\n containerStyle?: React.CSSProperties;\n /**\n * Set the position of the drawer\n */\n position?: DrawerPosition;\n}\n\nexport const Drawer = React.forwardRef<HTMLDivElement, DrawerProps>(\n (props, ref) => {\n const { style, containerStyle, position, ...rest } = props;\n const theme = React.useContext(ThemeContext);\n const drawerStyle = {\n ...theme.drawer.default,\n ...theme.drawer[DrawerPosition[position]],\n } as React.CSSProperties;\n return (\n <Modal\n containerStyle={{\n padding: '0',\n ...containerStyle,\n }}\n containerTransition={transitionPreset[DrawerPosition[position]]}\n style={{ ...drawerStyle, ...style }}\n {...rest}\n />\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport * as CSS from 'csstype';\n\nexport enum GridDisplay {\n grid = 'grid', // default\n inlineGrid = 'inline-grid',\n}\n\nexport enum GridJustifyItems {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n}\n\nexport enum GridJustifyContent {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n spaceAround = 'space-around',\n spaceBetween = 'space-between',\n spaceEvenly = 'space-evenly',\n}\n\nexport enum GridAlignItems {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n}\n\nexport enum GridAlignContent {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n spaceAround = 'space-around',\n spaceBetween = 'space-between',\n spaceEvenly = 'space-evenly',\n}\n\nexport enum GridItemJustifySelf {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n}\n\nexport enum GridItemAlignSelf {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n}\n\nexport enum GridAutoFlow {\n row = 'row',\n column = 'column',\n rowDense = 'row-dense',\n columnDense = 'column-dense',\n}\n\n/**\n * @children required\n */\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Defines the display style property. Sets grid or inline-grid.\n * @default GridDisplay.grid\n */\n gridDisplay?: GridDisplay;\n /**\n * Set the columns in the grid.\n */\n gridTemplateColumns?: CSS.Property.GridTemplateColumns;\n /**\n * Set the rows in the grid.\n */\n gridTemplateRows?: CSS.Property.GridTemplateRows;\n /**\n * Set the areas in the grid.\n */\n gridTemplateAreas?: CSS.Property.GridTemplateAreas;\n /**\n * Set the space between columns and / or rows in the grid.\n */\n gridGap?: CSS.Property.GridGap;\n /**\n * Align grid items along the inline (row) axis. Applies to all items in the grid.\n */\n gridJustifyItems?: GridJustifyItems;\n /**\n * Sets the alignment of the grid within the grid container along the inline row axis.\n */\n gridJustifyContent?: GridJustifyContent;\n /**\n * Align grid items along the block (column) axis. Applies to all items in the grid.\n */\n gridAlignItems?: GridAlignItems;\n /**\n * Sets the alignment of the grid within the grid container along the block (column) axis.\n */\n gridAlignContent?: GridAlignContent;\n /**\n * If you have grid items that you don’t explicitly place on the grid, the auto-placement algorithm kicks in to automatically place the items.\n */\n gridAutoFlow?: GridAutoFlow;\n}\n\n/**\n * @children required\n */\nexport interface GridItemProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Defines the span of a column on a grid item.\n */\n gridColumn?: CSS.Property.GridColumn;\n /**\n * Defines the span of a row on a grid item.\n */\n gridRow?: CSS.Property.GridRow;\n /**\n * Define which grid area a grid item belongs to.\n */\n gridArea?: CSS.Property.GridArea;\n /**\n * Aligns the grid item within the cell along the inline (row) axis. Applies to a grid item inside a single cell.\n */\n gridItemJustifySelf?: GridItemJustifySelf;\n /**\n * Aligns the grid item within the cell along the block (column) axis. Applies to a grid item inside a single cell.\n */\n gridItemAlignSelf?: GridItemAlignSelf;\n}\n\nexport const Grid = styled.div<GridProps>`\n ${props =>\n css({\n display: props.gridDisplay || GridDisplay.grid,\n 'grid-template-rows': props.gridTemplateRows,\n 'grid-template-columns': props.gridTemplateColumns,\n 'grid-areas': props.gridTemplateAreas,\n 'grid-gap': props.gridGap,\n 'justify-items': props.gridJustifyItems,\n 'justify-content': props.gridJustifyContent,\n 'align-items': props.gridAlignItems,\n 'align-content': props.gridAlignContent,\n 'grid-auto-flow': props.gridAutoFlow,\n })}\n`;\n\nexport const GridItem = styled.div<GridItemProps>`\n ${props =>\n css({\n 'grid-column': props.gridColumn,\n 'grid-row': props.gridRow,\n 'grid-area': props.gridArea,\n 'justify-self': props.gridItemJustifySelf,\n 'align-self': props.gridItemAlignSelf,\n })}\n`;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { magma, ThemeInterface } from '../../theme/magma';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface BlockQuoteProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Style properties for the left border color which accept custom CSS hex values.\n */\n borderStyle?: keyof typeof magma.colors | string;\n isInverse?: boolean;\n /**\n * @internal\n */\n testId?: string;\n theme?: ThemeInterface;\n}\n\nconst BlockQuoteStyles = props => css`\n border-left: 4px solid\n ${props.isInverse\n ? props.borderStyle || props.theme.colors.neutral08\n : props.borderStyle || props.theme.colors.neutral06};\n padding: 10px 0 4px 20px;\n margin: 0;\n`;\n\nconst StyledBlockQuote = styled.figure<BlockQuoteProps>`\n ${BlockQuoteStyles};\n`;\n\nexport const BlockQuote = React.forwardRef<HTMLDivElement, BlockQuoteProps>(\n (props, ref) => {\n const {\n borderStyle,\n children,\n testId,\n isInverse: isInverseProp,\n ...rest\n } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n return (\n <InverseContext.Provider value={{ isInverse }}>\n <StyledBlockQuote\n borderStyle={magma.colors[borderStyle] || borderStyle}\n theme={theme}\n isInverse={isInverse}\n ref={ref}\n data-testid={props.testId}\n {...rest}\n >\n {children}\n </StyledBlockQuote>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\nimport { BlockQuoteProps } from '.';\nimport {\n TypographyVisualStyle,\n TypographyColor,\n TypographyContextVariant,\n TypographyComponent,\n} from '../Typography';\n/**\n * @children required\n */\nexport interface BlockQuoteItemProps\n extends BlockQuoteProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * The color of the component, helping to convey meaning or relative emphasis\n * @default TypographyColor.default\n */\n color?: TypographyColor;\n /**\n * Additional styles for typography based on the context of the content\n * @default TypographyContextVariant.default\n */\n contextVariant?: TypographyContextVariant;\n /**\n * If true, adds in an attribution line for the quote\n * @default false\n */\n hasAttribution?: boolean;\n isInverse?: boolean;\n testId?: string;\n /**\n * Applies visual styles including font-size, font-weight, line-height and margins\n * @default TypographyVisualStyle.bodyMedium\n */\n visualStyle?: TypographyVisualStyle;\n}\n\nexport const blockQuoteStyles = props => css`\n margin: 0;\n padding: 8px 0;\n blockquote {\n margin: 0;\n }\n //Inverse\n ${props.isInverse &&\n css`\n color: ${props.theme.colors.neutral08};\n `}\n //Inverse & Attribution\n ${props.isInverse &&\n props.hasAttribution &&\n css`\n color: ${props.theme.colors.neutral05};\n `}\n`;\n\nconst StyledBlockQuoteItem = styled(TypographyComponent)`\n ${blockQuoteStyles}\n`;\n\nexport const BlockQuoteItem = React.forwardRef<\n HTMLDivElement,\n BlockQuoteItemProps\n>((props, ref) => {\n const { children, color, hasAttribution, testId, visualStyle, ...rest } =\n props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse();\n\n return (\n <StyledBlockQuoteItem\n as={hasAttribution ? 'figcaption' : 'blockquote'}\n color={\n hasAttribution\n ? color || TypographyColor.subdued\n : color || TypographyColor.default\n }\n theme={theme}\n hasAttribution={hasAttribution}\n isInverse={isInverse}\n ref={ref}\n data-testid={props.testId}\n visualStyle={\n hasAttribution\n ? visualStyle || TypographyVisualStyle.bodyMedium\n : visualStyle || TypographyVisualStyle.bodyLarge\n }\n {...rest}\n >\n {hasAttribution ? (\n <>\n &#x02015;&nbsp;\n {children}\n </>\n ) : (\n <>\n &ldquo;\n {children}\n &rdquo;\n </>\n )}\n </StyledBlockQuoteItem>\n );\n});\n"],"names":["transitions","fade","motion","exit","opacity","transition","duration","ease","enter","baseStyle","slideTop","y","type","damping","stiffness","position","top","right","left","slideBottom","bottom","slideRight","x","slideLeft","nudgeTop","nudgeBottom","nudgeRight","nudgeLeft","scale","rotate45","rotate","rotate90","rotate180","collapse","height","overflow","typeScale","size01","fontSize","letterSpacing","lineHeight","size02","size03","size04","size05","size06","size07","size08","size09","size10","size11","size12","size13","colors","primary","primaryInverse","focus","focusInverse","foundation","foundation02","foundation03","foundation04","pop","pop02","pop03","pop04","pop05","pop06","success","success02","successInverse","danger","dangerInverse","neutral","neutral02","neutral03","neutral04","neutral05","neutral06","neutral07","neutral08","disabledText","disabledInverseText","toggleBoxShadow","shade","shade02","tint","tint02","tint03","tint04","tone","tone02","border","borderInverse","spaceScale","spacing01","spacing02","spacing03","spacing04","spacing05","spacing06","spacing07","spacing08","spacing09","spacing10","spacing11","spacing12","spacing13","spacing14","magma","bodyFont","bodyExpressiveFont","bodyNarrativeFont","borderRadius","headingFont","headingExpressiveFont","headingNarrativeFont","direction","spacingMultiplier","breakpoints","xs","small","medium","large","xl","iconSizes","xSmall","xLarge","typographyVisualStyles","headingXLarge","mobile","desktop","fontWeight","headingLarge","headingMedium","headingSmall","headingXSmall","heading2XSmall","bodyLarge","bodyMedium","bodySmall","bodyXSmall","typographyExpressiveVisualStyles","typographyNarrativeVisualStyles","appBar","backgroundColor","padding","textColor","compact","inverse","combobox","menu","maxHeight","modal","width","drawer","maxWidth","minHeight","margin","dropdown","content","iterableColors","tabs","approxTabSize","horizontal","vertical","select","tag","display","alignItems","justifyContent","tooltip","arrowSize","arrowSizeDoubled","zIndex","ThemeContext","React","DEFAULT_STYLE_PROPS","color","shape","size","textTransform","variant","buildPropsWithDefaultButtonStyles","props","buildButtonBorderRadius","theme","buildButtonFontSize","buildButtonLineHeight","buildButtonSize","buildButtonPadding","buildButtonBackground","disabled","isInverse","buildBorderColor","buildColor","buildFocusBackground","lighten","darken","buildFocusColor","buildAfterBackground","buildActiveBackground","buildActiveColor","defaultI18n","locale","dateFormat","timeFormat","example","months","january","february","march","april","may","june","july","august","september","october","november","december","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","min","emptyItemsListText","alert","dismissAriaLabel","breadcrumb","navAriaLabel","charts","line","chartTabLabel","dataLegendsLabel","dataTabLabel","keyboardInstructions","keyboardInstructionsHeader","keyboardInstructionsTooltip","legendButtonAriaLabel","clearIndicatorAriaLabel","createLabel","datePicker","startOfWeek","calendarIconAriaLabel","calendarOpenAnnounce","calendarCloseAriaLabel","previousMonthAriaLabel","nextMonthAriaLabel","disabledDayAriaLabel","selectedDayAriaLabel","todayAriaLabel","helpModal","header","helpButtonAriaLabel","ariaLabel","explanation","rightAndLeftArrowKeys","upAndDownArrowKeys","pageUpAndPageDownKeys","displayValue","homeAndEndKeys","escape","questionMark","menuItemSelectedAriaLabel","toggleMenuAriaLabel","dropzone","browseFiles","dragMessage","errors","message","required","files","bytes","deleteFile","removeFile","navigationButtonLabel","search","input","placeholder","iconAriaLabel","indeterminateCheckbox","isCheckedAnnounce","isIndeterminateAnnounce","isUncheckedAnnounce","isClearableAriaLabel","loadingIndicator","progressBar","messages","first","second","third","spinner","closeAriaLabel","multiSelect","selectedItemButtonAriaLabel","multiCombobox","pagination","nextButtonLabel","previousButtonLabel","pageButtonLabel","password","shown","buttonText","announce","hidden","skipLink","table","ofLabel","nextAriaLabel","previousAriaLabel","rowsPerPageLabel","horizontalTabsInstructions","verticalTabsInstructions","deleteAriaLabel","timePicker","hoursAriaLabel","minutesAriaLabel","amButtonAriaLabel","pmButtonAriaLabel","amSelectedAnnounce","pmSelectedAnnounce","wizard","actions","next","previous","cancel","submit","optional","navigationLabel","I18nContext","generateId","id","uuidv4","useGenerateId","newId","useState","updateId","useEffect","omit","obj","reduce","newObj","val","rest","usePrevious","value","ref","useRef","current","debounce","func","wait","timeout","debounced","args","context","clearTimeout","setTimeout","apply","clear","cachedType","detectScrollType","dummy","document","createElement","appendChild","createTextNode","dir","style","body","scrollLeft","getNormalizedScrollLeft","element","Number","scrollWidth","clientWidth","easeInOutSin","time","Math","sin","PI","animate","property","to","options","start","from","cancelled","step","timestamp","requestAnimationFrame","assignRef","error","Error","useForkedRef","refs","useMemo","every","node","forEach","stringIncludesUnit","includes","convertStyleValueToString","defaultValue","getNodeText","Array","map","join","children","candidateSelectors","getTrapElements","container","querySelectorAll","StyledSpinner","styled","span","Spinner","testId","other","i18n","sizeString","role","buttonStyles","css","isFullWidth","iconOnly","BaseStyledButton","SpinnerWrapper","ChildrenWrapper","isLoading","StyledButton","ButtonType","button","spinnerColor","ButtonVariant","outline","link","spinnerSize","ButtonSize","InverseContext","useIsInverse","inverseProp","inverseContext","Boolean","ButtonColor","ButtonShape","ButtonTextTransform","Button","ButtonIconPosition","SpanTextLeft","getIconPadding","SpanTextRight","getIconSize","instanceOfIconOnly","object","IconButton","icon","iconPosition","round","solid","only","fill","uppercase","Circle","circle","ProgressRing","isActive","radius","strokeWidth","percentage","setPercentage","intervalDuration","interval","setInterval","clearInterval","normalizedRadius","circumference","strokeDashoffset","cx","cy","r","stroke","strokeDasharray","VARIANT_ICON","info","InfoIcon","muted","CheckCircleIcon","warning","WarningIcon","ErrorIcon","AlertVariant","transitionDuration","buildAlertBackground","StyledAlert","div","isExiting","isToast","StyledAlertInner","AlertContents","IconWrapperStyles","IconWrapper","ProgressRingWrapper","DismissibleIconWrapper","whitelistProps","shouldForwardProp","prop","isPropValid","DismissButton","alertVariant","renderIcon","Icon","AlertBase","forceDismiss","hasTimerRing","defaultId","isDismissed","isDismissible","externalIsExiting","isPaused","onDismiss","toastDuration","setIsExiting","handleDismiss","tabIndex","Provider","CloseIcon","onClick","Alert","AnnouncePoliteness","Announce","politeness","polite","AppBarPosition","StyledHeader","sticky","fixed","isCompact","AppBar","BadgeColor","BadgeVariant","buildBadgeBackground","buildBadgeFocusBackground","buildBadgeActiveBackground","baseBadgeStyles","light","counter","StyledSpan","getStyledBadgeComponent","isClickable","Badge","BadgeComponent","label","StyledBanner","BannerContents","ButtonWrapper","allowedProps","getButtonColor","secondary","Banner","actionButtonText","actionButtonOnClick","StyledList","Breadcrumb","isInverseProp","linkStyles","StyledLink","Hyperlink","styledAs","composedStyle","ClassNames","composedCss","className","LinkStyledAsButton","withComponent","HyperlinkComponent","href","StyledItem","li","BreadcrumbItem","ChevronRightIcon","HideAtBreakpointDisplayType","Container","displayType","minWidth","HideAtBreakpoint","block","BreakpointScreenSize","Breakpoint","screenSize","getMinWidth","breakpointValues","definedBreakpoints","sizes","Object","keys","newSizes","slice","indexOf","nextSize","find","newSize","BreakpointsContainer","child","push","defaultBreakpoints","CardAlignment","CardCalloutType","buildCalloutBackground","calloutType","StyledCard","background","hasDropShadow","align","CardContext","Card","widthString","StyledCardBody","CardBody","TypographyColor","TypographyContextVariant","TypographyVisualStyle","getBodyFontFamily","contextVariant","expressive","narrative","colorStyles","subdued","baseParagraphStyles","paragraphLargeStyles","noMargins","paragraphMediumStyles","paragraphSmallStyles","paragraphXSmallStyles","getHeadingFontFamily","baseHeadingStyles","headingXLargeStyles","headingLargeStyles","headingMediumStyles","headingSmallStyles","headingXSmallStyles","heading2XSmallStyles","getTypographyStyles","visualStyle","TypographyComponent","p","Heading","level","stylesFromLevel","headingElement","as","StyledCardHeading","CardHeading","headingLevel","DisplayInputStyles","DisplayInputActiveStyles","buildDisplayInputActiveBackground","buildDisplayInputBorderColor","hasError","buildDisplayInputFocusStyles","HiddenStyles","InputSize","InputType","InputIconPosition","inputWrapperStyles","inputBaseStyles","inputSize","InputWrapper","StyledInput","IconButtonContainer","IsClearableContainer","InputBase","forwardedRef","containerStyle","iconRef","isClearable","isPredictive","onClear","onIconClick","onIconKeyDown","inputStyle","setValue","undefined","inputRef","handleClearInput","handleChange","event","onChange","target","text","ClearIcon","onKeyDown","BuildMessageColor","Message","InputMessage","LabelPosition","StyledLabel","labelPosition","Label","actionable","FormGroupContext","HiddenLabel","FormGroup","errorMessage","helperMessage","labelledById","labelStyle","labelText","isTextVisuallyHidden","descriptionId","StyledLabelComponent","htmlFor","Consumer","StyledContainerComponent","StyledContainer","CheckboxTextPosition","HiddenLabelText","HiddenInput","buildCheckIconColor","isChecked","isIndeterminate","StyledFakeInput","textPosition","Checkbox","checked","defaultChecked","updateIsChecked","isControlled","targetChecked","groupDescriptionId","describedBy","CheckBoxIcon","CheckBoxOutlineBlankIcon","gutterWidth","gutterWidthString","maxWidthString","useControlled","controlled","defaultProp","valueState","setValueIfUncontrolled","newValue","useDataPagination","defaultItemsPerPage","items","itemsPerPageProp","itemsPerPage","onItemsPerPageChange","setItemsPerPageState","handleItemsPerPageChange","newItemsPerPage","getPageItems","page","isLastPage","length","end","ceil","VisuallyHiddenDiv","VisuallyHidden","IndeterminateCheckboxStatus","IndeterminateCheckbox","status","isUnchecked","replaceLabelTextForAnnounceText","baseAnnounceText","replace","getStringifiedLabelText","showAnnounce","announceText","IndeterminateCheckBoxIcon","paddingLeft","TableDensity","TableCellAlign","TableSortDirection","TableRowColor","TableContext","density","normal","hasHoverStyles","hasZebraStripes","hasVerticalBorders","isSelectable","rowCount","selectedItems","TableContainer","StyledTable","Table","TableBody","baseTableCellStyle","buildCellPaddingStyle","textAlign","StyledCell","td","TableCell","tableContext","displayName","TableHead","TableHeaderCellScope","StyledTableHeaderCell","th","isRowHeader","borderBottom","verticalAlign","isSortable","SortButton","TableHeaderCell","onSort","scope","row","col","sortDirection","handleSort","SortIcon","ascending","SouthIcon","descending","NorthIcon","SortDoubleArrowIcon","usePagination","count","defaultPage","hideNextButton","hidePreviousButton","numberOfAdjacentPages","numberOfEdgePages","onPageChange","pageProp","showFirstButton","showLastButton","useContext","setPageState","handleClick","range","_","i","startPages","endPages","max","siblingsStart","siblingsEnd","itemList","buttonPage","pageButtons","item","isSelected","registerDescendant","itemRefArray","itemRef","index","findIndex","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","newItem","unregisterDescendant","filter","useDescendants","DropdownDropDirection","DropdownAlignment","DropdownContext","isOpen","registerDropdownMenuItem","elements","setIsOpen","Dropdown","activeIndex","alignment","dropDirection","onBeforeShiftFocus","onClose","onOpen","activeItemIndex","setActiveItemIndex","ownRef","toggleRef","menuRef","dropdownButtonId","openDropdown","getFilteredItem","filteredItems","closeDropdown","preventMagmaFocus","handlePreventMagmaFocus","filteredItemIndex","filteredItem","activeElement","handleKeyDown","key","preventDefault","handleDropdownBlur","currentTarget","relatedTarget","isInMenu","contains","maxHeightString","isFixedWidth","onBlur","instanceOfIconOnlyDropdownButton","getButtonPadding","StyledIconButton","DropdownButton","getButtonIcon","ArrowLeftIcon","ArrowRightIcon","up","ArrowDropUpIcon","ArrowDropDownIcon","buttonIcon","iconPositionToUse","StyledDiv","DropdownContent","StyledHr","hr","DropdownDivider","DropdownHeader","DropdownMenuGroup","MenuItemStyles","isInactive","DropdownMenuItem","CheckIcon","DropdownSplitButton","leftCap","borderRight","marginRight","rightCap","marginLeft","PageCount","RowsPerPageLabel","TablePagination","defaultRowsPerPage","dropdownDropDirection","itemCount","onRowsPerPageChange","rowsPerPageProp","rowsPerPage","rowsPerPageValues","setRowsPerPageState","displayPageStart","displayPageEnd","rowsPerPageItems","toString","handleRowsPerPageChange","previousButton","nextButton","WestIcon","EastIcon","buildTableRowBackground","buildTableRowColor","StyledTableRow","tr","TableRow","headerRowStatus","isSelectableDisabled","onHeaderRowSelect","onTableRowSelect","rowIndex","isHeaderRow","getIsCheckboxInverse","DefaultPagination","defaultComponents","components","Pagination","Datagrid","columns","customComponents","componentsProps","defaultSelectedRows","onHeaderSelect","onRowSelect","onSelectedRowsChange","paginationProps","rows","selectedRowsProp","selectedRows","hasPagination","rowsToShow","setRowsToShow","updatedSelectedRows","currentPage","setCurrentPage","passedOnPaginationProps","newPage","filteredRows","indeterminate","unchecked","handleRowSelect","newSelectedRows","splice","handleSelectedRowsChange","handleHeaderSelect","field","CalendarContext","chosenDate","Date","focusedDate","buildCalendarMonth","newDate","enableOutsideDates","showHelperInformation","hideHelperInformation","onDateChange","onPrevMonthClick","onNextMonthClick","setDateFocused","TooltipPosition","EnumTooltipPosition","TooltipContainer","TooltipArrow","StyledTooltip","Tooltip","open","isVisible","setIsVisible","referenceElement","setReferenceElement","popperElement","setPopperElement","arrowElement","setArrowElement","usePopper","modifiers","name","offset","placement","styles","attributes","combinedRef","handleEsc","hideTooltip","window","addEventListener","removeEventListener","showTooltip","arrowStyle","tooltipStyle","isArray","tooltipTrigger","onFocus","combinedTooltipStyles","popper","combinedArrowStyle","arrow","onMouseLeave","onMouseEnter","handleKeyPress","e","prevDate","toggleCalendar","getAttribute","subWeeks","subDays","subMonths","addWeeks","addDays","endOfWeek","addMonths","getCalendarMonthWeeks","month","enableOutsideDays","firstDayOfWeek","firstOfMonth","startOfMonth","lastOfMonth","endOfMonth","prevDays","getDay","nextDays","firstDay","lastDay","totalDays","differenceInDays","currentDay","weeksInMonth","day","getPrevMonthFromDate","getNextMonthFromDate","i18nFormat","date","formatStr","enUS","format","getDateFromString","CalendarHeaderContainer","CalendarIconButton","CalendarHeaderText","CalendarHeader","calendarHeader","prevFocusHeader","focusHeader","currentMonth","capitalizeCurrentMonth","charAt","toUpperCase","ArrowBackIcon","ArrowForwardIcon","CalendarDayCell","CalendarDayInner","isChosen","EmptyCell","TodayIndicator","CalendarDay","dayRef","dateFocused","maxDate","minDate","focused","setFocused","dayFocusable","isSameDay","onCalendarDayFocus","onDayClick","isAfter","isBefore","sameDateAsFocusedDate","sameDateAsChosenDate","sameDateAsToday","isFocused","List","ul","Item","KeyboardShortcutButtonWrapper","StyledPopup","StyledNavContainer","StyledContent","HelperInformation","useFocusLock","active","rootNode","focusableItems","updateFocusableItems","firstItem","firstChild","setAttribute","observer","MutationObserver","observe","childList","subtree","disconnect","shiftKey","lastItem","CalendarContainer","MonthContainer","Th","HelperButton","CloseButton","CalendarMonth","lastFocus","headingRef","setDayFocusable","setFocusHeader","prevCalendarOpened","calendarOpened","focusTrapElement","focusOnOpen","onCalendarTableFocus","onCalendarTableBlur","turnOffDateFocused","sortedDays","concat","tableDaysHeaders","helperInformationShown","week","dayOfWeek","KeyboardIcon","handleCloseButtonClick","StyledFormFieldContainer","FormFieldContainer","fieldId","isLabelVisuallyHidden","messageStyle","Input","DatePickerContainer","DatePickerCalendar","opened","DatePicker","setHelperInformationShown","setCalendarOpened","setDateFromConsumer","defaultDate","setDefaultFocusedDate","setFocusedDate","setChosenDate","convertedDate","convertedMinDate","convertedMaxDate","inDateRange","minDateValue","maxDateValue","reset","isValidDateFromString","isValidDateFormat","test","isValidDate","isValid","handleInputChange","onInputChange","isValidDay","toISOString","handleInputFocus","onInputFocus","handleInputBlur","handleDateChange","onInputBlur","handleInputKeyDown","closest","newChosenDate","handleDaySelection","handleCalendarBlur","isInCalendar","toggleCalendarOpened","inputValue","EventIcon","toLowerCase","a","DropdownMenuNavItem","FlexAlignContent","FlexAlignItems","FlexBehavior","FlexDirection","FlexJustify","FlexWrap","getWidth","StyledFlex","behavior","alignContent","wrap","justify","spacing","sm","md","lg","Flex","stretch","flexStart","Paragraph","StyledForm","FormActions","Form","description","ProgressBarColor","buildProgressBarBackground","isLoadingIndicator","Track","Bar","isAnimated","Percentage","TopPercentage","ProgressBar","isLabelVisible","labelId","percentageValue","heightString","LoadingIndicatorType","StyledLoadingIndicator","MessageContainer","hide","LoadingIndicator","messageLevel","setMessageLevel","loadingIndicatorType","messageLevel2Timeout","progressbar","messageLevel3Timeout","message1","message2","message3","SelectText","SelectedItemsWrapper","SelectedItemButton","DefaultClearIndicator","DefaultDropdownIndicator","flexShrink","DefaultLoadingIndicator","DefaultItem","itemString","ClearIndicator","DropdownIndicator","ChildrenContainer","SelectTriggerButton","ariaDescribedBy","passedInStyle","toggleButtonProps","cursor","StyledNativeSelect","NativeSelect","TabsContainerContext","createContext","activeTabIndex","isInverseContainer","setActiveTabIndex","StyledTabsContainer","TabsContainer","forwardRef","setIsInverseContainer","TabsOrientation","StyledScrollButton","buttonVisible","orientation","StyledButtonPrev","transparentize","StyledButtonNext","ButtonPrev","ExpandLessIcon","ArrowBackIosIcon","ButtonNext","ExpandMoreIcon","ArrowForwardIosIcon","useTabsMeta","isRtl","scrollStart","clientSize","displayScroll","setDisplayScroll","tabsWrapperRef","prevButtonRef","nextButtonRef","scroll","scrollValue","moveTabsScroll","delta","handleStartScrollClick","handleEndScrollClick","updateScrollButtonState","scrollTop","scrollHeight","clientHeight","showStartScroll","showEndScroll","handleResize","handleTabsScroll","useCallback","TabsAlignment","TabsBorderPosition","TabsIconPosition","TabsContext","borderPosition","changeHandler","registerTabButton","StyledTabsWrapper","StyledTabs","Tabs","tabsMeta","tabsHandleMethods","tabsRefs","buttonRefArray","childrenWrapperRef","getTabsMeta","tabsNode","rect","getBoundingClientRect","scrollLeftNormalized","tabMeta","childrenArray","tab","scrollSelectedIntoView","prevButtonOffset","offsetHeight","offsetWidth","nextButtonOffset","nextScrollStart","newActiveIndex","hasAttribute","tabIsEnabled","findPreviousEnabledTabIndex","modifiedActiveTabIndex","currentTabIndex","newActiveTabIndex","findNextEnabledTabIndex","lastChildIndex","previousItemKey","nextItemKey","onScroll","useForceUpdate","setTick","update","tick","StyledTabsChild","getFlexDirection","TabStyles","StyledTab","getIconMargin","isIconOnly","StyledIcon","Tab","forceUpdate","tabIconPosition","StyledTabPanel","TabPanel","activeTab","TabPanelsContainer","Children","cloneElement","NavTabsContext","NavTabs","instanceOfNavComponentTab","instanceOfNavChildrenTab","StyledCustomTab","component","newProps","jsx","NavTab","pageButtonTypeSize","buttonSize","boxShadowColor","hoverBoxShadowColor","StyledPageButton","BuildBorder","hoverBorder","PageButton","PageButtonSize","StyledNav","nav","StyledListItem","BuildButtonSize","NavButton","StyledEllipsis","ariaCurrent","PasswordInput","passwordShown","setPasswordShown","togglePasswordShown","prevPasswordShown","hiddenPasswordAnnounceText","hidePasswordButtonAriaLabel","hidePasswordButtonText","isPasswordMaskButtonHidden","shownPasswordAnnounceText","showPasswordButtonAriaLabel","showPasswordButtonText","HIDDEN_PASSWORD_ANNOUNCE_TEXT","HIDE_PASSWORD_BUTTON_ARIA_LABEL","HIDE_PASSWORD_BUTTON_TEXT","SHOWN_PASSWORD_ANNOUNCE_TEXT","SHOW_PASSWORD_BUTTON_ARIA_LABEL","SHOW_PASSWORD_BUTTON_TEXT","autoCorrect","autoCapitalize","RadioContext","RadioGroup","selectedValue","setSelectedValue","newSelectedValue","RadioTextPosition","buildRadioIconColor","buildErrorBorder","Radio","RadioButtonCheckedIcon","RadioButtonUncheckedIcon","Transition","unmountOnExit","initial","customTransition","shouldExpand","variants","acc","themeVariant","AnimatePresence","ModalSize","ModalContainer","ModalBackdrop","hiddenBackground","ModalContent","ModalHeader","H1","CloseBtn","ModalBody","Modal","bodyRef","headingId","contentId","isModalOpen","setIsModalOpen","setCurrentTarget","prevOpen","handleClose","isEscKeyDownDisabled","handleEscapeKeyDown","handleModalClick","getElementById","handleModalOnMouseDown","stopPropagation","onEscKeyDown","closeButtonSize","contentStyle","containerTransition","isBackgroundClickDisabled","isCloseButtonHidden","CloseIconButton","ReactDOM","createPortal","Global","onMouseDown","title","getElementsByTagName","Search","onSearch","SearchIcon","handleSearch","NoItemsMessage","ItemsList","getMenuProps","itemToString","highlightedIndex","getItemProps","menuStyle","hasItems","instanceOfToBeCreatedItemObject","otherDownshiftItemProps","itemProps","SelectContainerElement","InputMessageContainer","SelectContainer","getLabelProps","Select","defaultSelectedItem","innerRef","itemListMaxHeight","initialSelectedItem","onIsOpenChange","onKeyPress","onKeyUp","passedInSelectedItem","selectedItem","toggleButtonRef","getValidItem","itemToCheck","handleOnIsOpenChange","changes","changedIsOpen","changedSelectedItem","setHighlightedIndex","stateReducer","state","actionAndChanges","useSelect","stateChangeTypes","ToggleButtonKeyDownCharacter","getToggleButtonProps","openMenu","defaultHandleClearIndicatorClick","selectText","marginTop","marginBottom","MultiSelect","onRemoveSelectedItem","checkSelectedItemValidity","useMultipleSelection","initialSelectedItems","getSelectedItemProps","getDropdownProps","addSelectedItem","removeSelectedItem","setActiveIndex","getFilteredItems","unfilteredItems","selectProps","onSelectedItemChange","defaultOnSelectedItemChange","selectItem","newSelectedItem","handleRemoveSelectedItem","tagName","nativeEvent","preventDownshiftDefault","preventKeyAction","multiSelectedItem","multiSelectedItemString","instanceOfMultiSelect","instanceOfDefaultItemObject","SelectStateChangeTypes","MultipleSelectionStateChangeTypes","isMulti","InternalSelect","ComboBoxContainer","InputContainer","ComboboxInput","getComboboxProps","getInputProps","onInputKeyDown","onInputKeyPress","onInputKeyUp","setIsFocused","handleBlur","handleFocus","inputProps","useComboboxItems","defaultItems","afterInitialRender","allItems","displayItems","setDisplayItems","updateItemsRef","newItems","cleanItems","inputValueInList","defaultOnInputValueChange","disableCreateItem","inputBaseValue","startsWith","react_magma__created_item","InternalCombobox","newItemTransform","onInputValueChange","onItemCreated","isCreatedItem","defaultNewItemTransform","createdItem","setInputValue","console","warn","useCombobox","InputKeyDownEnter","ItemClick","InputBlur","FunctionReset","MultiCombobox","comboboxProps","selectedItemsContent","instanceOfMultiCombobox","ComboboxStateChangeTypes","Combobox","TARGET_ID","targetAnchor","targetHeading","StyledSkipLink","positionLeft","positionTop","SkipLink","SkipLinkContent","SpacerAxis","getHeight","axis","StyledSpacer","Spacer","both","TagColor","TagSize","buildBoxShadow","buildButtonTextColor","buildSvgOpacity","onDelete","buildTagPadding","buildLabelPadding","TagStyling","LabelWrap","getStyledTag","Tag","StyledTag","CancelIcon","ToastsContext","toastsArray","bottomOffset","ToastsContainer","ToastWrapper","bottomOffsetForToast","bottomOffsetForContainer","DEFAULT_TOAST_DURATION","TOAST_HEIGHT","Toast","timerAutoHide","setIsDismissed","setIsPaused","timerTimeRemaining","setTimerTimeRemaining","alertStyle","disableAutoDismiss","timerStartTime","now","containerElement","dismissToast","toastId","clearTimeoutAndDismiss","setAutoHideTimer","totalDuration","handlePause","timeRemaining","handleResume","handleMouseEnter","handleMouseLeave","calculateAndSetBottomOffsetForToast","updateBottomOffsetForToast","focusableElements","ToggleTextPosition","Thumb","IconContainer","renderLabelText","Toggle","trackStyle","thumbStyle","StyledTextArea","textarea","Textarea","textareaStyle","StyledAmPmToggle","AmPmToggle","useTimePicker","am","localize","dayPeriod","pm","hour","setHour","minute","setMinute","amPm","setAmPm","setTime","hourRef","minuteRef","amPmRef","validTime","convertPassedInTime","hourId","minuteId","updateTime","newTime","passedInTime","amPmRegex","timeRegex","RegExp","split","timeHour","timeMinuteAndAmPm","timeMinute","substring","timeAmPm","calculateHour","newHour","calculateMinute","newMinute","handleHourChange","handleMinuteChange","toggleAmPm","newAmPm","handleHourKeyDown","handleMinuteKeyDown","handleAmPmKeyDown","InputsContainer","Divider","StyledNumInput","TimePicker","minutesStep","hoursLabel","minutesLabel","amPmLabel","ScheduleIcon","maxLength","getStyles","GlobalStyles","useMediaQuery","queryInput","query","supportMatchMedia","matchMedia","matches","match","setMatch","queryList","updateMatch","AccordionIconPosition","AccordionContext","registerAccordionButton","useAccordion","defaultIndex","onExpandedChange","indexProp","expandedIndex","setExpandedIndex","contextValue","StyledAccordion","Accordion","AccordionItemContext","isDisabled","isExpanded","setIsExpanded","useAccordionItem","idPrefix","buttonId","panelId","newIsExpanded","AccordionItem","useAccordionButton","focusFirst","focusNext","focusPrev","focusLast","arrLength","TextWrapper","AccordionButton","caret","StyledPanel","AccordionPanel","DrawerPosition","transitionPreset","Drawer","drawerStyle","GridDisplay","GridJustifyItems","GridJustifyContent","GridAlignItems","GridAlignContent","GridItemJustifySelf","GridItemAlignSelf","GridAutoFlow","Grid","gridDisplay","grid","gridTemplateRows","gridTemplateColumns","gridTemplateAreas","gridGap","gridJustifyItems","gridJustifyContent","gridAlignItems","gridAlignContent","gridAutoFlow","GridItem","gridColumn","gridRow","gridArea","gridItemJustifySelf","gridItemAlignSelf","BlockQuoteStyles","borderStyle","StyledBlockQuote","figure","BlockQuote","blockQuoteStyles","hasAttribution","StyledBlockQuoteItem","BlockQuoteItem"],"mappings":"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"}
1
+ {"version":3,"file":"react-magma-dom.cjs.development.js","sources":["../src/theme/components/transition.ts","../src/theme/magma.ts","../src/theme/ThemeContext.ts","../src/components/StyledButton/styles.ts","../src/i18n/default.ts","../src/i18n/index.ts","../src/utils/index.ts","../src/components/Spinner/index.tsx","../src/components/StyledButton/index.tsx","../src/inverse/index.ts","../src/components/Button/index.tsx","../src/components/IconButton/index.tsx","../src/components/ProgressRing/index.tsx","../src/components/AlertBase/index.tsx","../src/components/Alert/index.tsx","../src/components/Announce/index.tsx","../src/components/AppBar/AppBar.tsx","../src/components/Badge/index.tsx","../src/components/Banner/index.tsx","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Hyperlink/index.tsx","../src/components/Breadcrumb/BreadcrumbItem.tsx","../src/components/HideAtBreakpoint/index.tsx","../src/components/BreakpointsContainer/index.tsx","../src/components/Card/Card.tsx","../src/components/Card/CardBody.tsx","../src/components/Typography/index.tsx","../src/components/Heading/index.tsx","../src/components/Card/CardHeading.tsx","../src/components/SelectionControls/InputStyles.tsx","../src/utils/UtilityStyles.tsx","../src/components/InputBase/index.tsx","../src/components/Input/InputMessage.tsx","../src/components/Label/index.tsx","../src/components/FormGroup/index.tsx","../src/components/SelectionControls/StyledLabel.tsx","../src/components/SelectionControls/StyledContainer.tsx","../src/components/Checkbox/index.tsx","../src/components/Container/Container.tsx","../src/hooks/useControlled.ts","../src/hooks/useDataPagination.ts","../src/components/VisuallyHidden/index.tsx","../src/components/IndeterminateCheckbox/index.tsx","../src/components/Table/Table.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableCell.tsx","../src/components/Table/TableHead.tsx","../src/components/Table/TableHeaderCell.tsx","../src/components/Pagination/usePagination.ts","../src/hooks/useDescendants.ts","../src/components/Dropdown/Dropdown.tsx","../src/components/Dropdown/DropdownButton.tsx","../src/components/Dropdown/DropdownContent.tsx","../src/components/Dropdown/DropdownDivider.tsx","../src/components/Dropdown/DropdownHeader.tsx","../src/components/Dropdown/DropdownMenuGroup.tsx","../src/components/Dropdown/DropdownMenuItem.tsx","../src/components/Dropdown/DropdownSplitButton.tsx","../src/components/Table/TablePagination.tsx","../src/components/Table/TableRow.tsx","../src/components/Datagrid/components.tsx","../src/components/Datagrid/Datagrid.tsx","../src/components/DatePicker/CalendarContext.ts","../src/components/Tooltip/index.tsx","../src/components/DatePicker/utils.ts","../src/components/DatePicker/CalendarHeader.tsx","../src/components/DatePicker/CalendarDay.tsx","../src/components/DatePicker/HelperInformation.tsx","../src/hooks/useFocusLock.ts","../src/components/DatePicker/CalendarMonth.tsx","../src/components/FormFieldContainer/FormFieldContainer.tsx","../src/components/Input/index.tsx","../src/components/DatePicker/index.tsx","../src/components/Dropdown/DropdownMenuNavItem.tsx","../src/components/Flex/Flex.tsx","../src/components/Paragraph/index.tsx","../src/components/Form/index.tsx","../src/components/ProgressBar/index.tsx","../src/components/LoadingIndicator/index.tsx","../src/components/Select/shared.ts","../src/components/Select/components.tsx","../src/components/Select/SelectTriggerButton.tsx","../src/components/NativeSelect/NativeSelect.tsx","../src/components/Tabs/TabsContainer.tsx","../src/components/Tabs/shared.ts","../src/components/Tabs/TabsScrollButtons.tsx","../src/components/Tabs/utils.ts","../src/components/Tabs/Tabs.tsx","../src/hooks/useForceUpdate.ts","../src/components/Tabs/Tab.tsx","../src/components/Tabs/TabPanel.tsx","../src/components/Tabs/TabPanelsContainer.tsx","../src/components/NavTabs/NavTabs.tsx","../src/components/NavTabs/NavTab.tsx","../src/components/Pagination/PageButton.tsx","../src/components/Pagination/Pagination.tsx","../src/components/PasswordInput/index.tsx","../src/components/RadioGroup/index.tsx","../src/components/Radio/index.tsx","../src/components/Transition/Transition.tsx","../src/components/Modal/Modal.tsx","../src/components/Search/index.tsx","../src/components/Select/ItemsList.tsx","../src/components/Select/SelectContainer.tsx","../src/components/Select/Select.tsx","../src/components/Select/MultiSelect.tsx","../src/components/Select/index.tsx","../src/components/Combobox/ComboboxInput.tsx","../src/components/Combobox/shared.ts","../src/components/Combobox/Combobox.tsx","../src/components/Combobox/MultiCombobox.tsx","../src/components/Combobox/index.tsx","../src/components/SkipLink/index.tsx","../src/components/SkipLinkContent/index.tsx","../src/components/Spacer/Spacer.tsx","../src/components/Tag/Tag.tsx","../src/components/Toast/ToastsContainer.tsx","../src/components/Toast/index.tsx","../src/components/Toggle/index.tsx","../src/components/Textarea/index.tsx","../src/components/TimePicker/AmPmToggle.tsx","../src/components/TimePicker/useTimePicker.ts","../src/components/TimePicker/TimePicker.tsx","../src/theme/GlobalStyles/index.tsx","../src/hooks/useMediaQuery.ts","../src/components/Accordion/useAccordion.ts","../src/components/Accordion/Accordion.tsx","../src/components/Accordion/useAccordionItem.ts","../src/components/Accordion/AccordionItem.tsx","../src/components/Accordion/useAccordionButton.ts","../src/components/Accordion/AccordionButton.tsx","../src/components/Accordion/AccordionPanel.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Grid/Grid.tsx","../src/components/BlockQuote/BlockQuote.tsx","../src/components/BlockQuote/BlockQuoteItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Variant } from 'framer-motion';\nexport type MotionVariants<T extends string> = Record<T, Variant>;\n\nexport interface ThemeTransitions {\n [key: string]: {\n motion: MotionVariants<'enter' | 'exit'>;\n baseStyle: React.CSSProperties;\n };\n}\n\nexport const transitions: ThemeTransitions = {\n fade: {\n motion: {\n exit: {\n opacity: 0,\n transition: {\n opacity: {\n duration: 0.1,\n ease: 'easeOut',\n },\n },\n },\n enter: {\n opacity: 1,\n transition: {\n duration: 0.2,\n ease: 'easeIn',\n },\n },\n },\n baseStyle: {},\n },\n slideTop: {\n motion: {\n exit: {\n y: '-100%',\n transition: {\n y: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n y: '0',\n transition: {\n y: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {\n position: 'fixed',\n top: 0,\n right: 0,\n left: 0,\n },\n },\n slideBottom: {\n motion: {\n exit: {\n y: '100%',\n transition: {\n y: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n y: '0',\n transition: {\n y: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {\n position: 'fixed',\n bottom: 0,\n right: 0,\n left: 0,\n },\n },\n slideRight: {\n motion: {\n exit: {\n x: '100%',\n transition: {\n x: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n x: '0',\n transition: {\n x: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n },\n },\n slideLeft: {\n motion: {\n exit: {\n x: '-100%',\n transition: {\n x: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n x: '0',\n transition: {\n x: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {\n position: 'fixed',\n top: 0,\n bottom: 0,\n left: 0,\n },\n },\n nudgeTop: {\n motion: {\n exit: {\n y: '-50px',\n transition: {\n y: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n y: '0',\n transition: {\n y: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {},\n },\n nudgeBottom: {\n motion: {\n exit: {\n y: '50px',\n transition: {\n y: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n y: '0',\n transition: {\n y: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {},\n },\n nudgeRight: {\n motion: {\n exit: {\n x: '50px',\n transition: {\n x: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n x: '0',\n transition: {\n x: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {},\n },\n nudgeLeft: {\n motion: {\n exit: {\n x: '-50px',\n transition: {\n x: {\n duration: 0.15,\n ease: 'easeInOut',\n },\n },\n },\n enter: {\n x: '0',\n transition: {\n x: {\n type: 'spring',\n damping: 25,\n stiffness: 180,\n },\n },\n },\n },\n baseStyle: {},\n },\n scale: {\n motion: {\n exit: {\n scale: 0.95,\n transition: {\n scale: {\n duration: 0.1,\n ease: 'easeOut',\n },\n },\n },\n enter: {\n scale: 1,\n transition: {\n scale: {\n duration: 0.25,\n ease: 'easeInOut',\n },\n },\n },\n },\n baseStyle: {},\n },\n rotate45: {\n motion: {\n exit: {\n rotate: 0,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n enter: {\n rotate: -45,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n },\n baseStyle: {},\n },\n rotate90: {\n motion: {\n exit: {\n rotate: 0,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n enter: {\n rotate: -90,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n },\n baseStyle: {},\n },\n rotate180: {\n motion: {\n exit: {\n rotate: 0,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n enter: {\n rotate: -180,\n transition: {\n rotate: {\n type: 'tween',\n stiffness: 50,\n duration: 0.15,\n },\n },\n },\n },\n baseStyle: {},\n },\n collapse: {\n motion: {\n exit: {\n height: 0,\n transition: {\n height: { duration: 0.2, ease: 'easeInOut' },\n },\n },\n enter: {\n height: 'auto',\n transition: {\n height: { duration: 0.3, ease: 'easeInOut' },\n },\n },\n },\n baseStyle: {\n overflow: 'hidden',\n },\n },\n};\n","import { ThemeTransitions, transitions } from './components/transition';\n\nexport interface Colors {\n primary: string;\n primaryInverse: string;\n focus: string;\n focusInverse: string;\n foundation: string;\n foundation02: string;\n foundation03: string;\n foundation04: string;\n pop: string;\n pop02: string;\n pop03: string;\n pop04: string;\n pop05: string;\n pop06: string;\n success: string;\n success02: string;\n successInverse: string;\n danger: string;\n dangerInverse: string;\n neutral: string;\n neutral02: string;\n neutral03: string;\n neutral04: string;\n neutral05: string;\n neutral06: string;\n neutral07: string;\n neutral08: string;\n disabledText: string;\n disabledInverseText: string;\n toggleBoxShadow: string;\n shade: string;\n shade02: string;\n tint: string;\n tint02: string;\n tint03: string;\n tint04: string;\n tone: string;\n tone02: string;\n border: string;\n borderInverse: string;\n}\n\nexport interface Breakpoints {\n xs: number;\n small: number;\n medium: number;\n large: number;\n xl: number;\n}\n\nexport interface IconSizes {\n xSmall: number;\n small: number;\n medium: number;\n large: number;\n xLarge: number;\n}\n\nexport interface SpacingScale {\n spacing01: string;\n spacing02: string;\n spacing03: string;\n spacing04: string;\n spacing05: string;\n spacing06: string;\n spacing07: string;\n spacing08: string;\n spacing09: string;\n spacing10: string;\n spacing11: string;\n spacing12: string;\n spacing13: string;\n spacing14: string;\n}\n\nexport interface TypographyExpressiveSizes {\n headingXLarge: any;\n headingLarge: any;\n headingMedium: any;\n headingSmall: any;\n headingXSmall: any;\n headingXXSmall: any;\n bodyLarge: any;\n bodyMedium: any;\n bodySmall: any;\n bodyXSmall: any;\n}\n\nexport interface TypeScaleSize {\n fontSize: string;\n letterSpacing?: string;\n lineHeight: string;\n}\n\nexport interface TypeScale {\n size01: TypeScaleSize;\n size02: TypeScaleSize;\n size03: TypeScaleSize;\n size04: TypeScaleSize;\n size05: TypeScaleSize;\n size06: TypeScaleSize;\n size07: TypeScaleSize;\n size08: TypeScaleSize;\n size09: TypeScaleSize;\n size10: TypeScaleSize;\n size11: TypeScaleSize;\n size12: TypeScaleSize;\n size13: TypeScaleSize;\n}\n\nexport interface VisualStyle {\n mobile: TypeScaleSize;\n desktop: TypeScaleSize;\n fontWeight?: number;\n}\n\nexport interface TypographyVisualStyles {\n headingXLarge: VisualStyle;\n headingLarge: VisualStyle;\n headingMedium: VisualStyle;\n headingSmall: VisualStyle;\n headingXSmall: VisualStyle;\n heading2XSmall: VisualStyle;\n bodyLarge: VisualStyle;\n bodyMedium: VisualStyle;\n bodySmall: VisualStyle;\n bodyXSmall: VisualStyle;\n}\n\ninterface AppBar {\n backgroundColor: string;\n height: string;\n padding: string;\n textColor: string;\n compact: {\n height: string;\n padding: string;\n };\n inverse: {\n backgroundColor: string;\n textColor: string;\n };\n}\nexport interface Modal {\n width: {\n small: string;\n medium: string;\n large: string;\n };\n}\n\ninterface Drawer {\n default: {\n maxWidth: string;\n minHeight: string;\n borderRadius: string;\n margin: string;\n top: string;\n bottom: string;\n left: string;\n right: string;\n position: string;\n };\n right: {\n left: string;\n height: string;\n width: string;\n };\n left: {\n right: string;\n height: string;\n width: string;\n };\n top: {\n bottom: string;\n height: string;\n };\n bottom: {\n top: string;\n height: string;\n };\n}\n\ninterface Combobox {\n menu: {\n maxHeight: string;\n };\n}\n\ninterface Dropdown {\n content: {\n maxHeight: string;\n };\n}\n\ninterface Dropdown {\n content: {\n maxHeight: string;\n };\n}\n\ninterface Select {\n menu: {\n maxHeight: string;\n };\n}\n\ninterface Tabs {\n approxTabSize: {\n horizontal: number;\n vertical: number;\n };\n}\n\nexport interface Tooltip {\n arrowSize: string;\n arrowSizeDoubled: string;\n backgroundColor: string;\n fontWeight: number | string;\n maxWidth: string;\n textColor: string;\n typeScale: TypeScaleSize;\n zIndex: number;\n inverse: any;\n}\n\nexport interface ThemeInterface {\n appBar: AppBar;\n breakpoints: Breakpoints;\n bodyFont: string;\n bodyExpressiveFont: string;\n bodyNarrativeFont: string;\n borderRadius: string;\n colors: Colors;\n combobox: Combobox;\n direction: string;\n drawer: Drawer;\n dropdown: Dropdown;\n headingFont: string;\n iconSizes: IconSizes;\n iterableColors: string[];\n spacingMultiplier: number;\n spaceScale: SpacingScale;\n headingExpressiveFont: string;\n headingNarrativeFont: string;\n select: Select;\n typeScale: TypeScale;\n typographyVisualStyles: TypographyVisualStyles;\n typographyExpressiveVisualStyles: TypographyVisualStyles;\n typographyNarrativeVisualStyles: TypographyVisualStyles;\n modal: Modal;\n tabs: Tabs;\n tooltip: Tooltip;\n transitions: ThemeTransitions;\n}\n\nconst typeScale = {\n size01: {\n fontSize: '12px',\n letterSpacing: '.32px',\n lineHeight: '16px',\n },\n size02: {\n fontSize: '14px',\n letterSpacing: '.16px',\n lineHeight: '20px',\n },\n size03: {\n fontSize: '16px',\n lineHeight: '24px',\n },\n size04: {\n fontSize: '18px',\n lineHeight: '24px',\n },\n size05: {\n fontSize: '20px',\n lineHeight: '32px',\n },\n size06: {\n fontSize: '24px',\n lineHeight: '32px',\n },\n size07: {\n fontSize: '28px',\n lineHeight: '40px',\n },\n size08: {\n fontSize: '32px',\n lineHeight: '40px',\n },\n size09: {\n fontSize: '36px',\n lineHeight: '48px',\n },\n size10: {\n fontSize: '42px',\n lineHeight: '48px',\n },\n size11: {\n fontSize: '48px',\n lineHeight: '56px',\n },\n size12: {\n fontSize: '54px',\n lineHeight: '64px',\n },\n size13: {\n fontSize: '60px',\n lineHeight: '72px',\n },\n};\n\nconst colors = {\n primary: '#006298', // link color blue\n primaryInverse: '#70CDFF', // link color inverse blue\n focus: '#027EE1',\n focusInverse: 'rgba(255,255,255,0.7)',\n foundation: '#00263E',\n foundation02: '#003865',\n foundation03: '#00A9E0',\n foundation04: '#71C5E8',\n pop: '#E0004D',\n pop02: '#FC4C02',\n pop03: '#F2A900',\n pop04: '#FFC72C',\n pop05: '#92278F',\n pop06: '#007A6D',\n success: '#3A8200',\n success02: '#48A200',\n successInverse: '#91CF60',\n danger: '#C61D23',\n dangerInverse: '#F59295',\n neutral: '#3F3F3F', // main dark grey text color\n neutral02: '#575757',\n neutral03: '#707070',\n neutral04: '#8f8f8f', // lightest gray that meets 3:1 contrast ratio\n neutral05: '#BFBFBF',\n neutral06: '#DFDFDF',\n neutral07: '#F7F7F7',\n neutral08: '#FFFFFF', // white\n disabledText: 'rgba(114,114,114,0.6)',\n disabledInverseText: 'rgba(255,255,255,0.25)',\n toggleBoxShadow:\n '0 2px 2px -1px rgba(0, 0, 0, 0.3), 0 0 4px 0 rgba(0, 0, 0, 0.24),0 0 5px 0 rgba(0, 0, 0, 0.22)',\n shade: 'rgba(0,0,0,0.05)',\n shade02: 'rgba(0,0,0,0.3)',\n tint: 'rgba(255,255,255,0.05)',\n tint02: 'rgba(255,255,255,0.1)',\n tint03: 'rgba(255,255,255,0.1)',\n tint04: 'rgba(255,255,255,0.4)',\n tone: 'rgba(63,63,63,0.07)',\n tone02: 'rgba(63,63,63,0.1)',\n border: '#DFDFDF',\n borderInverse: 'rgba(255,255,255,0.25)',\n};\n\nconst spaceScale = {\n spacing01: '2px',\n spacing02: '4px',\n spacing03: '8px',\n spacing04: '12px',\n spacing05: '16px',\n spacing06: '24px',\n spacing07: '28px',\n spacing08: '32px',\n spacing09: '40px',\n spacing10: '48px',\n spacing11: '56px',\n spacing12: '64px',\n spacing13: '96px',\n spacing14: '160px',\n};\n\nexport const magma = {\n bodyFont: '\"Open Sans\",Helvetica,sans-serif',\n bodyExpressiveFont: '\"Open Sans\",Helvetica,sans-serif',\n bodyNarrativeFont: \"'Noto Serif',Times New Roman,serif\",\n borderRadius: '4px',\n colors: colors,\n headingFont: '\"Open Sans\",Helvetica,sans-serif',\n headingExpressiveFont: '\"Open Sans\",Helvetica,sans-serif',\n headingNarrativeFont: \"'Noto Serif',Times New Roman,serif\",\n direction: 'ltr',\n spacingMultiplier: 8,\n transitions,\n // breakpoints\n breakpoints: {\n xs: 0,\n small: 600,\n medium: 768,\n large: 1024,\n xl: 1200,\n },\n\n spaceScale: spaceScale,\n\n iconSizes: {\n xSmall: 16,\n small: 20,\n medium: 24,\n large: 32,\n xLarge: 54,\n },\n\n // Typography\n typeScale: typeScale,\n typographyVisualStyles: {\n headingXLarge: {\n mobile: typeScale.size07,\n desktop: typeScale.size09,\n fontWeight: 600,\n },\n headingLarge: {\n mobile: typeScale.size06,\n desktop: typeScale.size07,\n fontWeight: 600,\n },\n headingMedium: {\n mobile: typeScale.size05,\n desktop: typeScale.size06,\n fontWeight: 600,\n },\n headingSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n fontWeight: 600,\n },\n headingXSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size04,\n fontWeight: 600,\n },\n heading2XSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n fontWeight: 700,\n },\n bodyLarge: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n },\n bodyMedium: {\n mobile: typeScale.size03,\n desktop: typeScale.size03,\n },\n bodySmall: {\n mobile: typeScale.size02,\n desktop: typeScale.size02,\n },\n bodyXSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n },\n },\n typographyExpressiveVisualStyles: {\n headingXLarge: {\n mobile: typeScale.size08,\n desktop: typeScale.size11,\n fontWeight: 600,\n },\n headingLarge: {\n mobile: typeScale.size07,\n desktop: typeScale.size09,\n fontWeight: 300,\n },\n headingMedium: {\n mobile: typeScale.size06,\n desktop: typeScale.size07,\n fontWeight: 300,\n },\n headingSmall: {\n mobile: typeScale.size05,\n desktop: typeScale.size06,\n fontWeight: 300,\n },\n headingXSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n fontWeight: 300,\n },\n heading2XSmall: {\n mobile: typeScale.size03,\n desktop: typeScale.size03,\n fontWeight: 700,\n },\n bodyLarge: {\n mobile: typeScale.size05,\n desktop: typeScale.size06,\n },\n bodyMedium: {\n mobile: typeScale.size03,\n desktop: typeScale.size03,\n },\n bodySmall: {\n mobile: typeScale.size02,\n desktop: typeScale.size02,\n },\n bodyXSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n },\n },\n typographyNarrativeVisualStyles: {\n headingXLarge: {\n mobile: typeScale.size07,\n desktop: typeScale.size08,\n fontWeight: 700,\n },\n headingLarge: {\n mobile: typeScale.size06,\n desktop: typeScale.size07,\n fontWeight: 700,\n },\n headingMedium: {\n mobile: typeScale.size05,\n desktop: typeScale.size06,\n fontWeight: 700,\n },\n headingSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n fontWeight: 700,\n },\n headingXSmall: {\n mobile: typeScale.size04,\n desktop: typeScale.size04,\n fontWeight: 700,\n },\n heading2XSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n fontWeight: 700,\n },\n bodyLarge: {\n mobile: typeScale.size04,\n desktop: typeScale.size05,\n },\n bodyMedium: {\n mobile: typeScale.size03,\n desktop: typeScale.size03,\n },\n bodySmall: {\n mobile: typeScale.size02,\n desktop: typeScale.size02,\n },\n bodyXSmall: {\n mobile: typeScale.size01,\n desktop: typeScale.size01,\n },\n },\n\n appBar: {\n backgroundColor: colors.neutral08,\n height: '88px',\n padding: `${spaceScale.spacing06} ${spaceScale.spacing05}`,\n textColor: colors.neutral,\n compact: {\n height: '56px',\n padding: `${spaceScale.spacing05} ${spaceScale.spacing05} ${spaceScale.spacing05} ${spaceScale.spacing06}`,\n },\n inverse: {\n backgroundColor: colors.foundation02,\n textColor: colors.neutral08,\n },\n },\n\n combobox: {\n menu: {\n maxHeight: '250px',\n },\n },\n\n modal: {\n width: {\n small: '300px',\n medium: '600px',\n large: '900px',\n },\n },\n\n drawer: {\n default: {\n maxWidth: '100%',\n minHeight: '300px',\n margin: '0',\n borderRadius: '0',\n top: '0',\n right: '0',\n bottom: '0',\n left: '0',\n position: 'relative',\n },\n right: {\n left: 'auto',\n height: '100%',\n width: '300px',\n position: 'fixed',\n },\n left: {\n right: 'auto',\n height: '100%',\n width: '300px',\n },\n top: {\n bottom: 'auto',\n height: '300px',\n },\n bottom: {\n top: 'auto',\n height: '300px',\n position: 'fixed',\n },\n },\n\n dropdown: {\n content: {\n maxHeight: '250px',\n },\n },\n\n iterableColors: [\n '#0085CC',\n '#E0004D',\n '#FA6600',\n '#48A200',\n '#B12FAD',\n '#00A393',\n '#00507A',\n '#8F0033',\n '#B84900',\n '#255200',\n '#711E6E',\n '#005249',\n ],\n\n tabs: {\n approxTabSize: {\n horizontal: 120,\n vertical: 80,\n },\n },\n\n select: {\n menu: {\n maxHeight: '250px',\n },\n },\n\n tag: {\n border: '0',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'space-around',\n },\n\n tooltip: {\n arrowSize: '4px',\n arrowSizeDoubled: '8px',\n backgroundColor: colors.neutral,\n fontWeight: 600,\n maxWidth: '300px',\n textColor: colors.neutral08,\n typeScale: typeScale.size01,\n zIndex: 999,\n inverse: {\n backgroundColor: colors.neutral08,\n textColor: colors.neutral,\n },\n },\n};\n","import * as React from 'react';\nimport { magma } from './magma';\n\nexport const ThemeContext = React.createContext(\n magma // default value\n);\n","import { darken, lighten, tint } from 'polished';\n\nconst DEFAULT_STYLE_PROPS = {\n color: 'primary',\n shape: 'fill',\n size: 'medium',\n textTransform: 'uppercase',\n variant: 'solid',\n};\n\nexport function buildPropsWithDefaultButtonStyles(props) {\n return { ...DEFAULT_STYLE_PROPS, ...props };\n}\n\nexport function buildButtonBorderRadius(props) {\n switch (props.shape) {\n case 'round':\n return '100%';\n case 'leftCap':\n return `${props.theme.borderRadius} 0 0 ${props.theme.borderRadius}`;\n case 'rightCap':\n return `0 ${props.theme.borderRadius} ${props.theme.borderRadius} 0`;\n default:\n //fill\n return props.theme.borderRadius;\n }\n}\n\nexport function buildButtonFontSize(props) {\n switch (props.size) {\n case 'small':\n return props.theme.typeScale.size01.fontSize;\n case 'large':\n return props.theme.typeScale.size04.fontSize;\n default:\n //medium\n return props.theme.typeScale.size03.fontSize;\n }\n}\n\nexport function buildButtonLineHeight(props) {\n switch (props.size) {\n case 'small':\n return props.theme.typeScale.size01.lineHeight;\n case 'large':\n return props.theme.typeScale.size04.lineHeight;\n default:\n //medium\n return props.theme.typeScale.size03.lineHeight;\n }\n}\n\nexport function buildButtonSize(props) {\n switch (props.size) {\n case 'small':\n return props.theme.spaceScale.spacing07;\n case 'large':\n return props.theme.spaceScale.spacing11;\n default:\n //medium\n return props.theme.spaceScale.spacing09;\n }\n}\n\nexport function buildButtonPadding(props) {\n switch (props.size) {\n case 'small':\n return `${props.theme.spaceScale.spacing02} ${props.theme.spaceScale.spacing03}`;\n case 'large':\n return `${props.theme.spaceScale.spacing04} ${props.theme.spaceScale.spacing06}`;\n default:\n //medium\n return `${props.theme.spaceScale.spacing04} ${props.theme.spaceScale.spacing05}`;\n }\n}\n\nexport function buildButtonBackground(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.variant !== 'solid' && props.color !== 'marketing') {\n return 'rgba(0,0,0,0)';\n }\n if (props.disabled) {\n return props.theme.colors.neutral06;\n }\n if (props.color === 'marketing') {\n return props.theme.colors.pop04;\n }\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral08;\n case 'success':\n return props.theme.colors.success;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.primary;\n }\n}\n\nexport function buildBorderColor(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.disabled && props.isInverse && props.variant === 'outline') {\n return props.theme.colors.disabledInverseText;\n }\n if (props.disabled) {\n return props.theme.colors.neutral06;\n }\n if (props.color === 'marketing') {\n return props.theme.colors.pop04;\n }\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.color === 'secondary') {\n return props.theme.colors.neutral05;\n }\n if (props.variant === 'solid') {\n switch (props.color) {\n case 'success':\n return props.theme.colors.success;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.primary;\n }\n }\n}\n\nexport function buildColor(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.disabled && props.isInverse && props.variant !== 'solid') {\n return props.theme.colors.disabledInverseText;\n }\n if (props.disabled) {\n return props.theme.colors.disabledText;\n }\n if (props.color === 'marketing') {\n return props.theme.colors.foundation02;\n }\n if (\n (!props.isInverse && props.variant === 'solid') ||\n (props.isInverse && props.variant !== 'solid')\n ) {\n if (props.color === 'secondary' && !props.isInverse) {\n return props.theme.colors.neutral;\n }\n return props.theme.colors.neutral08;\n }\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral;\n case 'success':\n return props.theme.colors.success;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.primary;\n }\n}\n\nexport function buildFocusBackground(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.color === 'marketing') {\n return lighten(0.1, props.theme.colors.pop04);\n }\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return tint(0.9, props.theme.colors.neutral);\n case 'success':\n return tint(0.9, props.theme.colors.success);\n case 'danger':\n return tint(0.9, props.theme.colors.danger);\n default:\n return tint(0.9, props.theme.colors.primary);\n }\n }\n if (props.variant !== 'solid' && props.isInverse) {\n return 'rgba(0, 0, 0, 0.3)';\n }\n switch (props.color) {\n case 'secondary':\n return darken(0.1, props.theme.colors.neutral08);\n case 'success':\n return darken(0.1, props.theme.colors.success);\n case 'danger':\n return darken(0.1, props.theme.colors.danger);\n default:\n return darken(0.1, props.theme.colors.primary);\n }\n}\n\nexport function buildFocusColor(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n if (props.color === 'marketing') {\n return props.theme.colors.foundation02;\n }\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral;\n case 'success':\n return darken(0.1, props.theme.colors.success);\n case 'danger':\n return darken(0.1, props.theme.colors.danger);\n default:\n return darken(0.1, props.theme.colors.primary);\n }\n }\n if (props.variant !== 'solid' && props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.color === 'secondary' && !props.isInverse) {\n return props.theme.colors.neutral;\n }\n return props.theme.colors.neutral08;\n}\n\nexport function buildAfterBackground(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral;\n case 'success':\n return props.theme.colors.success;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.primary;\n }\n }\n if (\n props.variant === 'solid' &&\n !props.isInverse &&\n props.color === 'secondary'\n ) {\n return props.theme.colors.neutral;\n }\n return props.theme.colors.neutral08;\n}\n\nexport function buildActiveBackground(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.color === 'marketing') {\n return lighten(0.2, props.theme.colors.pop04);\n }\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return tint(0.7, props.theme.colors.neutral);\n case 'success':\n return tint(0.7, props.theme.colors.success);\n case 'danger':\n return tint(0.7, props.theme.colors.danger);\n default:\n return tint(0.7, props.theme.colors.primary);\n }\n }\n if (props.variant !== 'solid' && props.isInverse) {\n return 'rgba(0, 0, 0, 0.5);';\n }\n switch (props.color) {\n case 'secondary':\n return darken(0.2, props.theme.colors.neutral08);\n case 'success':\n return darken(0.2, props.theme.colors.success);\n case 'danger':\n return darken(0.2, props.theme.colors.danger);\n default:\n return darken(0.2, props.theme.colors.primary);\n }\n}\n\nexport function buildActiveColor(props) {\n props = buildPropsWithDefaultButtonStyles(props);\n\n if (props.color === 'marketing') {\n return props.theme.colors.foundation02;\n }\n if (\n (props.variant !== 'solid' && !props.isInverse) ||\n (props.variant === 'solid' && props.isInverse)\n ) {\n switch (props.color) {\n case 'secondary':\n return props.theme.colors.neutral;\n case 'success':\n return darken(0.2, props.theme.colors.success);\n case 'danger':\n return darken(0.2, props.theme.colors.danger);\n default:\n return darken(0.2, props.theme.colors.primary);\n }\n }\n if (props.variant !== 'solid' && props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.color === 'secondary' && !props.isInverse) {\n return props.theme.colors.neutral;\n }\n return props.theme.colors.neutral08;\n}\n","import { I18nInterface } from './interface';\n\nexport const defaultI18n: I18nInterface = {\n locale: null,\n dateFormat: 'MM/dd/yyyy',\n timeFormat: '12',\n example:\n 'i18n defaults must be set in packages/react-magma-dom/src/i18n/default.ts',\n months: {\n long: {\n january: 'January',\n february: 'February',\n march: 'March',\n april: 'April',\n may: 'May',\n june: 'June',\n july: 'July',\n august: 'August',\n september: 'September',\n october: 'October',\n november: 'November',\n december: 'December',\n },\n short: {\n january: 'Jan',\n february: 'Feb',\n march: 'Mar',\n april: 'Apr',\n may: 'May',\n june: 'Jun',\n july: 'Jul',\n august: 'Aug',\n september: 'Sep',\n october: 'Oct',\n november: 'Nov',\n december: 'Dec',\n },\n },\n days: {\n long: {\n monday: 'Monday',\n tuesday: 'Tuesday',\n wednesday: 'Wednesday',\n thursday: 'Thursday',\n friday: 'Friday',\n saturday: 'Saturday',\n sunday: 'Sunday',\n },\n short: {\n monday: 'Mon',\n tuesday: 'Tues',\n wednesday: 'Wed',\n thursday: 'Thur',\n friday: 'Fri',\n saturday: 'Sat',\n sunday: 'Sun',\n },\n min: {\n monday: 'M',\n tuesday: 'T',\n wednesday: 'W',\n thursday: 'T',\n friday: 'F',\n saturday: 'S',\n sunday: 'S',\n },\n },\n emptyItemsListText: 'No Options',\n alert: {\n dismissAriaLabel: 'Close this message',\n },\n breadcrumb: {\n navAriaLabel: 'Breadcrumb',\n },\n charts: {\n line: {\n chartTabLabel: 'Chart',\n dataLegendsLabel:\n 'Select one or more of the categories below to filter out the ones you don’t want to see.',\n dataTabLabel: 'Data',\n keyboardInstructions:\n 'In the chart below, use your up and down arrows to move between each line. Use your left and right arrows to move between points on a line.',\n keyboardInstructionsHeader: 'Keyboard Instructions',\n keyboardInstructionsTooltip: 'Keyboard Instructions',\n legendButtonAriaLabel: 'Toggle data for {name}',\n },\n },\n combobox: {\n clearIndicatorAriaLabel:\n 'reset selection for {labelText}. {selectedItem} is selected',\n createLabel: 'Create \"{inputValue}\"',\n },\n datePicker: {\n startOfWeek: 'sunday',\n calendarIconAriaLabel: 'Toggle Calendar Widget',\n calendarOpenAnnounce:\n 'Calendar Widget is now open. Press the question mark key to get the keyboard shortcuts for changing dates.',\n calendarCloseAriaLabel: 'Close Calendar Widget',\n previousMonthAriaLabel: 'Previous Month',\n nextMonthAriaLabel: 'Next Month',\n disabledDayAriaLabel: 'Not Available. ',\n selectedDayAriaLabel: '(Selected)',\n todayAriaLabel: '(Today)',\n helpModal: {\n header: 'Keyboard Shortcuts',\n helpButtonAriaLabel: 'Calendar Widget Help',\n enter: {\n ariaLabel: 'Enter key',\n explanation: 'Select the date in focus.',\n },\n rightAndLeftArrowKeys: {\n ariaLabel: 'Right and left arrow keys',\n explanation: 'Move backward (left) and forward (right) by one day.',\n },\n upAndDownArrowKeys: {\n ariaLabel: 'up and down arrow keys',\n explanation: 'Move backward (up) and forward (down) by one week.',\n },\n pageUpAndPageDownKeys: {\n ariaLabel: 'page up and page down keys',\n displayValue: 'PGUP/PGDN',\n explanation: 'Switch months.',\n },\n homeAndEndKeys: {\n ariaLabel: 'Home and end keys',\n displayValue: 'HOME/END',\n explanation: 'Go to the first or last day of a week.',\n },\n escape: {\n ariaLabel: 'Escape key',\n displayValue: 'ESC',\n explanation: 'Return to the date input field.',\n },\n questionMark: {\n ariaLabel: 'Question Mark',\n explanation: 'Open this panel.',\n },\n },\n },\n dropdown: {\n menuItemSelectedAriaLabel: '(selected)',\n toggleMenuAriaLabel: 'Toggle menu',\n },\n dropzone: {\n browseFiles: 'Browse Files',\n dragMessage: 'Drag and drop or browse files to upload.',\n errors: {\n 'too-many-errors': {\n message: 'Files must not have any errors.',\n },\n 'too-many-files': {\n message: 'You must upload a maximum of',\n },\n 'too-few-files': {\n message: 'You must upload a minimum of',\n },\n 'file-invalid-type': {\n header: 'Invalid File Type',\n message: 'Upload only the allowed file types',\n },\n 'file-too-large': {\n header: 'File exceeds size limit',\n message: 'Upload only files with a maximum size of',\n },\n 'file-too-small': {\n header: 'File size is below the limit',\n message: 'Upload only files with a minimum size of',\n },\n required: {\n message: 'You must upload at least one file.',\n },\n },\n files: 'files',\n bytes: 'Bytes',\n deleteFile: 'Delete file',\n removeFile: 'Remove file',\n },\n header: {\n navigationButtonLabel: 'Open navigation menu',\n search: {\n input: {\n ariaLabel: 'Search',\n placeholder: 'Search',\n },\n iconAriaLabel: 'Search',\n },\n },\n indeterminateCheckbox: {\n isCheckedAnnounce: 'All subitems are checked for {labelText} checkbox',\n isIndeterminateAnnounce:\n 'Some, but not all, subitems are checked for {labelText} checkbox',\n isUncheckedAnnounce: 'No subitems are checked for {labelText} checkbox',\n },\n input: {\n isClearableAriaLabel: 'Clear Input',\n },\n loadingIndicator: {\n progressBar: {\n messages: {\n first: 'Please be patient as this could take up to a minute to load.',\n second: 'Thank you for your patience. Still loading...',\n third: 'Thank you for waiting. We’re almost there!',\n },\n },\n spinner: {\n messages: {\n first: 'Loading...',\n second: 'Thank you for your patience. Still loading...',\n third: 'Sorry for the delay. This is taking longer than expected.',\n },\n },\n },\n modal: {\n closeAriaLabel: 'Close dialog',\n },\n multiSelect: {\n placeholder: 'Select...',\n selectedItemButtonAriaLabel: 'reset item {selectedItem}',\n },\n multiCombobox: {\n selectedItemButtonAriaLabel: 'reset item {selectedItem}',\n },\n pagination: {\n nextButtonLabel: 'Next Page',\n previousButtonLabel: 'Previous Page',\n pageButtonLabel: 'Go to Page',\n },\n password: {\n shown: {\n ariaLabel:\n 'Show password. Note: this will visually expose your password on the screen',\n buttonText: 'Show',\n announce: 'Password is now visible',\n },\n hidden: {\n ariaLabel: 'Hide password',\n buttonText: 'Hide',\n announce: 'Password is now hidden',\n },\n },\n search: {\n input: {\n ariaLabel: 'Search',\n placeholder: 'Search',\n },\n iconAriaLabel: 'Search',\n },\n select: {\n placeholder: 'Select...',\n clearIndicatorAriaLabel:\n 'reset selection for {labelText}. {selectedItem} is selected',\n },\n skipLink: {\n buttonText: 'Skip Navigation',\n },\n spinner: {\n ariaLabel: 'Loading',\n },\n table: {\n pagination: {\n ofLabel: 'of',\n nextAriaLabel: 'Next page',\n previousAriaLabel: 'Previous page',\n rowsPerPageLabel: 'Rows per page',\n },\n },\n tabs: {\n horizontalTabsInstructions:\n 'use the right and left arrow keys to activate other tabs',\n verticalTabsInstructions:\n 'use the down and up arrow keys to activate other tabs',\n nextButtonLabel: 'Scroll tabs forward',\n previousButtonLabel: 'Scroll tabs back',\n },\n tag: {\n deleteAriaLabel: 'Delete {labelText} tag',\n },\n timePicker: {\n hoursAriaLabel: 'Hour',\n minutesAriaLabel: 'Minute',\n amButtonAriaLabel:\n 'AM selected. To change to PM press the p or enter button.',\n pmButtonAriaLabel:\n 'PM selected. To change to AM press the a or enter button.',\n amSelectedAnnounce: 'AM is now selected',\n pmSelectedAnnounce: 'PM is now selected',\n },\n wizard: {\n actions: {\n next: 'next',\n previous: 'previous',\n cancel: 'cancel',\n submit: 'submit',\n },\n optional: 'optional',\n navigationLabel: 'Navigation for the wizard',\n },\n};\n","import * as React from 'react';\nimport { defaultI18n } from './default';\nimport { I18nInterface } from './interface';\n\nexport const I18nContext = React.createContext<I18nInterface>(defaultI18n);\n","import React from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nexport function generateId(id?: string) {\n return id ? id : uuidv4();\n}\n\nexport function useGenerateId(newId?: string) {\n const [id, updateId] = React.useState<string>(newId);\n\n React.useEffect(() => {\n updateId(generateId(newId));\n }, []);\n\n React.useEffect(() => {\n newId && updateId(generateId(newId));\n }, [newId]);\n\n return id;\n}\n\nexport function omit(props, obj) {\n return props.reduce(\n (newObj, val) => (({ [val]: dropped, ...rest }) => rest)(newObj),\n obj\n );\n}\n\nexport type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;\n\ntype Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };\n\nexport type XOR<T, U> = T | U extends object\n ? (Without<T, U> & U) | (Without<U, T> & T)\n : T | U;\n\nexport function usePrevious(value) {\n const ref = React.useRef();\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport function debounce(func, wait) {\n let timeout;\n function debounced(...args) {\n // tslint:disable-next-line\n const context = this;\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => {\n timeout = null;\n func.apply(context, args);\n }, wait);\n }\n\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n\n return debounced;\n}\n\n// Based on https://stackoverflow.com/a/24394376\nlet cachedType;\n\nexport function detectScrollType() {\n if (cachedType) {\n return cachedType;\n }\n\n const dummy = document.createElement('div');\n dummy.appendChild(document.createTextNode('ABCD'));\n dummy.dir = 'rtl';\n dummy.style.fontSize = '14px';\n dummy.style.width = '4px';\n dummy.style.height = '1px';\n dummy.style.position = 'absolute';\n dummy.style.top = '-1000px';\n dummy.style.overflow = 'scroll';\n\n document.body.appendChild(dummy);\n\n cachedType = 'reverse';\n\n if (dummy.scrollLeft > 0) {\n cachedType = 'default';\n } else {\n dummy.scrollLeft = 1;\n if (dummy.scrollLeft === 0) {\n cachedType = 'negative';\n }\n }\n}\n\nexport function getNormalizedScrollLeft(element, direction) {\n const scrollLeft = element.scrollLeft;\n\n // Perform the calculations only when direction is rtl to avoid messing up the ltr bahavior\n if (direction !== 'rtl') {\n return scrollLeft;\n }\n\n const type = detectScrollType();\n\n switch (type) {\n case 'negative':\n return (\n Number(element.scrollWidth) -\n Number(element.clientWidth) +\n Number(scrollLeft)\n );\n case 'reverse':\n return (\n Number(element.scrollWidth) -\n Number(element.clientWidth) -\n Number(scrollLeft)\n );\n default:\n return scrollLeft;\n }\n}\n\nfunction easeInOutSin(time) {\n return (1 + Math.sin(Math.PI * time - Math.PI / 2)) / 2;\n}\n\nexport function animate(property, element, to, options: any = {}) {\n const { ease = easeInOutSin, duration = 300 } = options;\n\n let start = null;\n const from = Number(element[property]);\n let cancelled = false;\n\n const cancel = () => {\n cancelled = true;\n };\n\n const step = timestamp => {\n if (cancelled) {\n return;\n }\n\n if (start === null) {\n start = timestamp;\n }\n const time = Math.min(1, (timestamp - start) / duration);\n\n element[property] = ease(time) * (to - from) + from;\n\n if (time >= 1) {\n requestAnimationFrame(() => {});\n return;\n }\n\n requestAnimationFrame(step);\n };\n\n if (from === to) {\n return cancel;\n }\n\n requestAnimationFrame(step);\n return cancel;\n}\n\nexport function assignRef(ref, value) {\n if (ref === null) return;\n if (typeof ref === 'function') {\n ref(value);\n } else {\n try {\n ref.current = value;\n } catch (error) {\n throw new Error(`Cannot assign value \"${value}\" to ref \"${ref}\"`);\n }\n }\n}\n\nexport function useForkedRef(...refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref === null)) {\n return null;\n }\n return (node: any) => {\n refs.forEach(ref => {\n assignRef(ref, node);\n });\n };\n }, [...refs]);\n}\n\nexport function stringIncludesUnit(x) {\n return x.includes('px') || x.includes('em') || x.includes('%');\n}\n\nexport function convertStyleValueToString(\n value: string | number,\n defaultValue?: string\n): string {\n return value\n ? typeof value === 'number' ||\n (typeof value === 'string' && !stringIncludesUnit(value))\n ? `${value}px`\n : value\n : defaultValue || 'initial';\n}\n\nexport function getNodeText(node) {\n if (['string', 'number'].includes(typeof node)) return node;\n if (node instanceof Array) return node.map(getNodeText).join('');\n if (typeof node === 'object' && node) return getNodeText(node.props.children);\n}\n\nconst candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]:not([tabindex=\"-1\"])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n].join(',');\n\nexport function getTrapElements(container): Array<HTMLElement> {\n return Array.from(container.current.querySelectorAll(candidateSelectors));\n}\n\nexport function toCamelCase(str) {\n return str\n .toLowerCase()\n .replace(/[^a-z 0-9]/gi, '')\n .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (ltr, index) =>\n index === 0 ? ltr.toLowerCase() : ltr.toUpperCase()\n )\n .replace(/\\s+/g, '');\n}\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { stringIncludesUnit } from '../../utils';\nimport { ThemeInterface } from '../../theme/magma';\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * The color of the spinner border\n * @default \"#006298\"\n */\n color?: string;\n /**\n * The height and width of the spinner. Can be a string or number; if number is provided, the size is in px.\n * @default 16\n */\n size?: string | number;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n testId?: string;\n}\n\nconst StyledSpinner = styled.span<SpinnerProps>`\n animation: spinner-border 0.75s linear infinite;\n border: 2px solid ${props => props.color};\n border-right-color: transparent;\n border-radius: 50%;\n display: inline-block;\n height: ${props => props.size};\n width: ${props => props.size};\n\n @keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n }\n`;\n\nexport const Spinner = React.forwardRef<HTMLSpanElement, SpinnerProps>(\n (props, ref) => {\n const { 'aria-label': ariaLabel, color, size, testId, ...other } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const sizeString = size\n ? typeof size === 'number' ||\n (typeof size === 'string' && !stringIncludesUnit(size))\n ? `${size}px`\n : size\n : theme.spaceScale.spacing05;\n\n return (\n <StyledSpinner\n {...other}\n aria-label={ariaLabel ? ariaLabel : i18n.spinner.ariaLabel}\n color={color ? color : theme.colors.primary}\n data-testid={testId}\n ref={ref}\n role=\"img\"\n size={sizeString}\n />\n );\n }\n);\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '@emotion/styled';\nimport {\n buildActiveBackground,\n buildActiveColor,\n buildAfterBackground,\n buildButtonBorderRadius,\n buildButtonFontSize,\n buildButtonLineHeight,\n buildButtonSize,\n buildButtonPadding,\n buildBorderColor,\n buildButtonBackground,\n buildColor,\n buildFocusBackground,\n buildFocusColor,\n} from './styles';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ButtonType, ButtonProps, ButtonSize, ButtonVariant } from '../Button';\nimport { Spinner } from '../Spinner';\n\nexport interface StyledButtonProps extends ButtonProps {\n href?: string;\n iconOnly?: boolean;\n}\n\nexport const buttonStyles = props => css`\n align-items: center;\n background: ${buildButtonBackground(props)};\n border: ${props.variant === 'outline' ||\n (props.variant !== 'link' && props.color === 'secondary' && !props.isInverse)\n ? '2px solid'\n : '0'};\n border-color: ${buildBorderColor(props)};\n border-radius: ${buildButtonBorderRadius(props)};\n color: ${buildColor(props)};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n display: ${props.isFullWidth ? 'flex' : 'inline-flex'};\n flex-shrink: 0;\n font-family: ${props.theme.bodyFont};\n font-size: ${buildButtonFontSize(props)};\n font-weight: 600;\n height: ${buildButtonSize(props)};\n justify-content: center;\n letter-spacing: ${props.size === 'small'\n ? props.theme.typeScale.size01.letterSpacing\n : 'inherit'};\n line-height: ${buildButtonLineHeight(props)};\n margin: ${props.isFullWidth\n ? `${props.theme.spaceScale.spacing02} 0`\n : props.theme.spaceScale.spacing02};\n min-width: ${props.size === 'small' ? '0' : props.theme.spaceScale.spacing13};\n overflow: hidden;\n padding: ${buildButtonPadding(props)};\n position: relative;\n text-align: center;\n text-decoration: none;\n text-transform: ${props.textTransform || 'uppercase'};\n touch-action: manipulation;\n transition: background 0.35s, border-color 0.35s, box-shadow 0.35s,\n color 0.35s;\n vertical-align: middle;\n white-space: nowrap;\n width: ${props.iconOnly\n ? buildButtonSize(props)\n : props.isFullWidth\n ? '100%'\n : 'auto'};\n\n &:not(:disabled) {\n &:focus {\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 3px;\n }\n\n &:hover,\n &:focus {\n background: ${buildFocusBackground(props)};\n color: ${buildFocusColor(props)};\n }\n\n &:after {\n background: ${buildAfterBackground(props)};\n border-radius: 50%;\n content: '';\n height: ${props.theme.spaceScale.spacing07};\n left: 50%;\n opacity: 0;\n padding: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%) scale(1);\n transition: opacity 1s, transform 0.5s;\n width: ${props.theme.spaceScale.spacing07};\n }\n\n &:active {\n background: ${buildActiveBackground(props)};\n color: ${buildActiveColor(props)};\n &:after {\n opacity: 0.4;\n transform: translate(-50%, -50%) scale(0);\n transition: transform 0s;\n }\n }\n }\n\n svg {\n flex-shrink: 0;\n }\n\n ${props.iconOnly &&\n css`\n display: inline-flex;\n justify-content: center;\n line-height: 1;\n min-width: 0;\n padding: 0;\n `}\n`;\n\nexport const BaseStyledButton = styled.button`\n ${buttonStyles}\n`;\n\nconst SpinnerWrapper = styled.span`\n position: absolute;\n display: flex;\n`;\n\nconst ChildrenWrapper = styled.span<{ isLoading: boolean; testId?: string }>`\n visibility: ${props => (props.isLoading ? 'hidden' : 'visible')};\n display: inline-flex;\n align-items: center;\n`;\n\nexport const StyledButton = React.forwardRef<\n HTMLButtonElement,\n StyledButtonProps\n>((props, ref) => {\n const {\n size,\n variant,\n isInverse,\n children,\n type = ButtonType.button,\n testId,\n isLoading,\n } = props;\n const theme = React.useContext(ThemeContext);\n\n const spinnerColor =\n isInverse &&\n (variant === ButtonVariant.outline || variant === ButtonVariant.link)\n ? theme.colors.neutral08\n : theme.colors.neutral03;\n\n const spinnerSize =\n size === ButtonSize.small\n ? theme.iconSizes.xSmall\n : size === ButtonSize.large\n ? theme.iconSizes.large\n : theme.iconSizes.medium;\n\n return (\n <BaseStyledButton\n {...props}\n data-testid={testId}\n ref={ref}\n type={type}\n theme={theme}\n disabled={isLoading || props.disabled}\n >\n {isLoading && (\n <SpinnerWrapper>\n <Spinner\n testId={`${testId}-spinner`}\n color={spinnerColor}\n size={spinnerSize}\n />\n </SpinnerWrapper>\n )}\n <ChildrenWrapper isLoading={isLoading} testId={`${testId}-children`}>\n {children}\n </ChildrenWrapper>\n </BaseStyledButton>\n );\n});\n","import * as React from 'react';\n\ninterface InverseInterface {\n isInverse?: boolean;\n}\n\nexport const InverseContext = React.createContext<InverseInterface>({\n isInverse: false,\n});\n\nexport function useIsInverse(inverseProp?: boolean) {\n const inverseContext = React.useContext(InverseContext);\n\n return typeof inverseProp !== 'undefined'\n ? Boolean(inverseProp)\n : inverseContext.isInverse;\n}\n","import * as React from 'react';\nimport { StyledButton } from '../StyledButton';\nimport { useIsInverse } from '../../inverse';\n\nexport enum ButtonVariant {\n solid = 'solid', //default\n outline = 'outline',\n link = 'link',\n}\n\nexport enum ButtonColor {\n primary = 'primary', //default\n secondary = 'secondary',\n success = 'success',\n danger = 'danger',\n marketing = 'marketing',\n}\n\nexport enum ButtonShape {\n fill = 'fill', //default\n leftCap = 'leftCap',\n rightCap = 'rightCap',\n round = 'round', // default for icon only buttons\n}\n\nexport enum ButtonSize {\n large = 'large',\n medium = 'medium', //default\n small = 'small',\n}\n\nexport enum ButtonTextTransform {\n uppercase = 'uppercase', //default\n none = 'none',\n}\n\nexport enum ButtonType {\n button = 'button',\n submit = 'submit',\n reset = 'reset',\n}\n\nexport interface ButtonStyles {\n /**\n * The color of the button, indicating its function in the UI\n * @default ButtonColor.primary\n */\n color?: ButtonColor;\n /**\n * Set the button to display full-width.\n * @default false\n */\n isFullWidth?: boolean;\n isInverse?: boolean;\n /**\n * Defines the border radius\n * @default ButtonShape.fill\n */\n shape?: ButtonShape;\n /**\n * Set the button to a loading state\n * @default false\n */\n isLoading?: boolean;\n /**\n * The relative size of the button\n * @default ButtonSize.medium\n */\n size?: ButtonSize;\n /**\n * Determines whether the button appears in all-caps\n * @default ButtonTextTransform.uppercase\n */\n textTransform?: ButtonTextTransform;\n /**\n * The variant of the button\n * @default ButtonVariant.solid\n */\n variant?: ButtonVariant;\n}\n\n/**\n * @children required\n */\ninterface BaseButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n testId?: string;\n /**\n * @internal\n */\n theme?: any;\n /**\n * The type attribute of the button\n * ButtonType.button\n */\n type?: ButtonType;\n}\n\nexport type ButtonProps = BaseButtonProps & ButtonStyles;\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref) => {\n const { children, ...rest } = props;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <StyledButton {...rest} isInverse={isInverse} ref={ref}>\n {children}\n </StyledButton>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { StyledButton } from '../StyledButton';\nimport {\n ButtonProps,\n ButtonColor,\n ButtonShape,\n ButtonSize,\n ButtonVariant,\n ButtonTextTransform,\n} from '../Button';\nimport { IconProps } from 'react-magma-icons';\nimport { omit, Omit, XOR } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\n\nexport enum ButtonIconPosition {\n left = 'left',\n right = 'right',\n}\n\nexport interface IconOnlyButtonProps extends Omit<ButtonProps, 'children'> {\n /**\n * Icon to display within the component\n */\n icon: React.ReactElement<IconProps>;\n /**\n * The text the screen reader will announce. Required for icon-only buttons\n */\n 'aria-label': string;\n}\n\nexport interface IconTextButtonProps extends ButtonProps {\n /**\n * Icon to display within the component\n */\n icon: React.ReactElement<IconProps>;\n children: React.ReactChild | React.ReactChild[];\n /**\n * Position within the button for the icon to appear\n * @default ButtonIconPosition.right\n */\n iconPosition?: ButtonIconPosition;\n}\n\nexport type IconButtonProps = XOR<IconOnlyButtonProps, IconTextButtonProps>;\n\nexport interface SpanProps {\n size?: ButtonSize;\n}\n\nconst SpanTextLeft = styled.span<SpanProps>`\n padding-right: ${props => getIconPadding(props)};\n`;\n\nconst SpanTextRight = styled.span<SpanProps>`\n padding-left: ${props => getIconPadding(props)};\n`;\n\nfunction getIconPadding(props) {\n switch (props.size) {\n case 'large':\n return props.theme.spaceScale.spacing05;\n case 'small':\n return props.theme.spaceScale.spacing02;\n default:\n return props.theme.spaceScale.spacing03;\n }\n}\n\nfunction getIconSize(size, theme) {\n switch (size) {\n case 'large':\n return theme.iconSizes.large;\n case 'small':\n return theme.iconSizes.small;\n default:\n return theme.iconSizes.medium;\n }\n}\n\nexport function instanceOfIconOnly(object: any): object is IconOnlyButtonProps {\n return 'icon' in object && !('children' in object);\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n (props, ref) => {\n let icon;\n let iconPosition;\n let children;\n const { color, shape, size, testId, textTransform, variant, ...rest } =\n props;\n\n const theme = React.useContext(ThemeContext);\n\n if (instanceOfIconOnly(props)) {\n icon = props.icon;\n } else {\n icon = props.icon;\n iconPosition = props.iconPosition;\n children = props.children;\n }\n\n const other = omit(['iconPosition', 'textPosition'], rest);\n\n const isInverse = useIsInverse(props.isInverse);\n\n if (icon && !children) {\n return (\n <StyledButton\n {...other}\n ref={ref}\n color={color ? color : ButtonColor.primary}\n iconOnly\n testId={testId}\n isInverse={isInverse}\n shape={shape ? shape : ButtonShape.round}\n size={size ? size : ButtonSize.medium}\n variant={variant ? variant : ButtonVariant.solid}\n >\n {React.Children.only(\n React.cloneElement(icon, {\n size: icon.props.size\n ? icon.props.size\n : getIconSize(size, theme),\n })\n )}\n </StyledButton>\n );\n }\n return (\n <StyledButton\n {...other}\n ref={ref}\n color={color ? color : ButtonColor.primary}\n isInverse={isInverse}\n shape={shape ? shape : ButtonShape.fill}\n size={size ? size : ButtonSize.medium}\n testId={testId}\n textTransform={\n textTransform ? textTransform : ButtonTextTransform.uppercase\n }\n variant={variant ? variant : ButtonVariant.solid}\n >\n {iconPosition === ButtonIconPosition.right && (\n <SpanTextLeft size={size} theme={theme}>\n {children}\n </SpanTextLeft>\n )}\n {React.Children.only(\n React.cloneElement(icon, {\n size: icon.props.size ? icon.props.size : getIconSize(size, theme),\n 'data-testid': `${testId}-icon`,\n })\n )}\n {iconPosition !== ButtonIconPosition.right && (\n <SpanTextRight size={size} theme={theme}>\n {children}\n </SpanTextRight>\n )}\n </StyledButton>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface ProgressRingProps\n extends React.HTMLAttributes<HTMLDivElement> {\n color?: string;\n duration?: number;\n isActive?: boolean;\n percentage?: number;\n radius?: number;\n strokeWidth?: number;\n testId?: string;\n}\n\nconst Circle = styled.circle`\n transition: stroke-dashoffset 0.35s;\n transform: rotate(-90deg);\n transform-origin: 50% 50%;\n`;\n\nexport const ProgressRing = React.forwardRef<HTMLDivElement, ProgressRingProps>(\n (props, ref) => {\n const {\n color,\n duration = 5000,\n isActive,\n radius = 21,\n strokeWidth = 3,\n testId,\n ...other\n } = props;\n\n const [percentage, setPercentage] = React.useState(100);\n\n React.useEffect(() => {\n const intervalDuration = duration / 50;\n\n let interval = null;\n\n if (isActive) {\n interval = setInterval(() => {\n setPercentage(percentage - 2);\n }, intervalDuration);\n\n if (percentage <= 0) {\n clearInterval(interval);\n }\n } else {\n clearInterval(interval);\n }\n\n return () => clearInterval(interval);\n }, [percentage, isActive]);\n\n const normalizedRadius = radius - strokeWidth * 2;\n const circumference = normalizedRadius * 2 * Math.PI;\n const strokeDashoffset = circumference - (percentage / 100) * circumference;\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <div {...other} ref={ref} data-testid={testId}>\n <svg height={radius * 2} width={radius * 2}>\n <Circle\n cx={radius}\n cy={radius}\n fill=\"transparent\"\n r={normalizedRadius}\n stroke={color ? color : theme.colors.neutral}\n strokeWidth={strokeWidth}\n strokeDasharray={`${circumference} ${circumference}`}\n style={{ strokeDashoffset }}\n />\n </svg>\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n InfoIcon,\n CheckCircleIcon,\n WarningIcon,\n ErrorIcon,\n IconProps,\n CloseIcon,\n} from 'react-magma-icons';\nimport { ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ProgressRing } from '../ProgressRing';\nimport { useGenerateId } from '../../utils';\nimport { I18nContext } from '../../i18n';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\nexport const VARIANT_ICON: {\n [name: string]: React.FunctionComponent<IconProps>;\n} = {\n info: InfoIcon,\n muted: InfoIcon,\n success: CheckCircleIcon,\n warning: WarningIcon,\n danger: ErrorIcon,\n};\n\nexport enum AlertVariant {\n info = 'info', //default,\n muted = 'muted',\n success = 'success',\n warning = 'warning',\n danger = 'danger',\n}\n\nexport interface AlertBaseProps extends React.HTMLAttributes<HTMLDivElement> {\n closeAriaLabel?: string;\n forceDismiss?: () => void;\n hasTimerRing?: boolean;\n isExiting?: boolean;\n isDismissed?: boolean;\n isDismissible?: boolean;\n isInverse?: boolean;\n isPaused?: boolean;\n isToast?: boolean;\n onDismiss?: () => void;\n testId?: string;\n toastDuration?: number;\n variant?: AlertVariant;\n}\n\nexport const transitionDuration = 500;\n\nexport function buildAlertBackground(props) {\n switch (props.variant) {\n case 'muted':\n return 'rgba(0, 0, 0, 0)';\n case 'success':\n return props.theme.colors.success;\n case 'warning':\n return props.theme.colors.pop04;\n case 'danger':\n return props.theme.colors.danger;\n default:\n return props.theme.colors.neutral;\n }\n}\n\nconst StyledAlert = styled.div<AlertBaseProps>`\n align-items: stretch;\n animation: ${props =>\n props.isExiting\n ? `fadeout ${transitionDuration}ms`\n : `fadein ${transitionDuration}ms`};\n \n display: flex;\n flex-direction: column;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n margin-bottom: ${props => props.theme.spaceScale.spacing06};\n max-width: 100%;\n padding: 0;\n position: relative;\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n }\n\n &:focus {\n outline: 2px dotted ${props =>\n props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n }\n }\n\n ${props =>\n props.isToast &&\n css`\n animation: ${props.isExiting\n ? `slideout ${transitionDuration}ms`\n : `slidein ${transitionDuration}ms`};\n min-width: 375px;\n margin: 0 auto;\n\n @media (max-width: ${props.theme.breakpoints.small}px) {\n min-width: 0;\n width: 100%;\n }\n `}\n\n @keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n @keyframes fadeout {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n }\n\n \n @keyframes slidein {\n from {\n left: -500px;\n }\n to {\n left: 0;\n }\n }\n\n @keyframes slideout {\n from {\n left: 0;\n }\n to {\n left: -500px;\n }\n }\n\n a {\n color: inherit;\n font-weight: 600;\n text-decoration: underline;\n\n &:focus {\n outline: 2px dotted ${props =>\n props.variant === 'warning'\n ? props.theme.colors.focus\n : props.theme.colors.focusInverse};\n }\n }\n }\n`;\n\nconst StyledAlertInner = styled.div<AlertBaseProps>`\n background-color: ${props => buildAlertBackground(props)};\n border-radius: ${props => props.theme.borderRadius};\n color: ${props =>\n props.variant === AlertVariant.muted\n ? props.theme.colors.neutral03\n : props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: flex;\n position: relative;\n\n ${props =>\n props.isToast &&\n css`\n border: 1px solid ${props.theme.colors.neutral08};\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.4);\n height: ${props.theme.spaceScale.spacing11};\n `}\n`;\n\nconst AlertContents = styled.div`\n align-self: center;\n flex-grow: 1;\n padding: ${props => props.theme.spaceScale.spacing04} 0;\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n padding-left: ${props => props.theme.spaceScale.spacing04};\n }\n`;\n\nconst IconWrapperStyles = css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n margin-right: 1px;\n`;\n\nconst IconWrapper = styled.span<{ isToast?: boolean; theme: any }>`\n ${IconWrapperStyles}\n padding: 0 ${props => props.theme.spaceScale.spacing03} 0 ${props =>\n props.theme.spaceScale.spacing04};\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n display: none;\n }\n`;\n\nconst ProgressRingWrapper = styled.div`\n opacity: 0.7;\n margin-top: ${props => props.theme.spaceScale.spacing01};\n position: absolute;\n top: ${props => props.theme.spaceScale.spacing02};\n right: ${props => props.theme.spaceScale.spacing02};\n`;\n\nconst DismissibleIconWrapper = styled.span<AlertBaseProps>`\n ${IconWrapperStyles}\n`;\n\nconst whitelistProps = ['icon', 'isInverse', 'theme', 'variant'];\n\nconst shouldForwardProp = prop => {\n return isPropValid(prop) || whitelistProps.includes(prop);\n};\n\nconst DismissButton = styled(IconButton, { shouldForwardProp })<{\n alertVariant?: AlertVariant;\n}>`\n align-self: stretch;\n border-radius: 0 ${props => props.theme.borderRadius}\n ${props => props.theme.borderRadius} 0;\n color: inherit;\n height: auto;\n padding: 0 ${props => props.theme.spaceScale.spacing04};\n width: auto;\n\n &&:focus:not(:disabled) {\n outline: 2px dotted\n ${({ alertVariant, theme }) =>\n alertVariant === 'warning'\n ? theme.colors.focus\n : theme.colors.focusInverse};\n outline-offset: 0 !important;\n }\n\n &:hover,\n &:focus {\n :not(:disabled):before {\n background: ${({ alertVariant, theme }) =>\n alertVariant === 'warning'\n ? theme.colors.focus\n : theme.colors.focusInverse};\n opacity: 0.15;\n }\n\n &:after {\n display: none;\n }\n }\n`;\n\nfunction renderIcon(variant = 'info', isToast?: boolean, theme?: any) {\n const Icon = VARIANT_ICON[variant];\n\n return (\n <IconWrapper isToast={isToast} theme={theme}>\n <Icon size={theme.iconSizes.medium} />\n </IconWrapper>\n );\n}\n\nexport const AlertBase = React.forwardRef<HTMLDivElement, AlertBaseProps>(\n (props, ref) => {\n const {\n children,\n closeAriaLabel,\n forceDismiss,\n hasTimerRing,\n id: defaultId,\n isDismissed,\n isDismissible,\n isExiting: externalIsExiting,\n isPaused,\n isToast,\n onDismiss,\n testId,\n toastDuration,\n variant,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n const [isExiting, setIsExiting] = React.useState(false);\n\n const isInverse = useIsInverse(props.isInverse);\n\n React.useEffect(() => {\n if (isExiting) {\n setTimeout(() => {\n setIsExiting(false);\n onDismiss && typeof onDismiss === 'function' && onDismiss();\n }, transitionDuration - 300);\n }\n }, [isExiting]);\n\n React.useEffect(() => {\n if (isDismissed) {\n handleDismiss();\n }\n }, [isDismissed]);\n\n function handleDismiss() {\n setIsExiting(true);\n }\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledAlert\n {...other}\n data-testid={testId}\n id={id}\n tabIndex={-1}\n isInverse={isInverse}\n isExiting={isExiting}\n isToast={isToast}\n ref={ref}\n theme={theme}\n >\n <InverseContext.Provider\n value={{\n isInverse: variant !== AlertVariant.warning,\n }}\n >\n <StyledAlertInner\n isInverse={variant !== AlertVariant.warning}\n isToast={isToast}\n theme={theme}\n variant={variant}\n >\n {renderIcon(variant, isToast, theme)}\n <AlertContents theme={theme}>{children}</AlertContents>\n {isDismissible && (\n <DismissibleIconWrapper variant={variant} theme={theme}>\n {hasTimerRing && isToast && (\n <ProgressRingWrapper theme={theme}>\n <ProgressRing\n color={\n variant === AlertVariant.warning\n ? theme.colors.neutral\n : theme.colors.neutral08\n }\n isActive={!isPaused}\n />\n </ProgressRingWrapper>\n )}\n <DismissButton\n alertVariant={variant}\n aria-label={\n closeAriaLabel\n ? closeAriaLabel\n : i18n.alert.dismissAriaLabel\n }\n icon={\n <CloseIcon\n size={\n hasTimerRing\n ? theme.iconSizes.xSmall\n : theme.iconSizes.small\n }\n />\n }\n isInverse\n onClick={forceDismiss || handleDismiss}\n theme={theme}\n variant={ButtonVariant.link}\n />\n </DismissibleIconWrapper>\n )}\n </StyledAlertInner>\n </InverseContext.Provider>\n </StyledAlert>\n );\n }\n);\n","import * as React from 'react';\nimport { AlertBase, AlertVariant } from '../AlertBase';\n\n/**\n * @children required\n */\nexport interface AlertProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The text read by screen readers for the close button\n * @default \"Close this message\"\n */\n closeAriaLabel?: string;\n /**\n * If true, the component will be able to be dismissed and will include a close button\n * @default false\n */\n isDismissible?: boolean;\n isInverse?: boolean;\n /**\n * Action that fires when the close button is clicked (required when isDismissible is true)\n */\n onDismiss?: () => void;\n testId?: string;\n /**\n * The variant of the alert, indicating its function in the UI\n * @default `AlertVariant.info`\n */\n variant?: AlertVariant;\n}\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (props, ref) => {\n return <AlertBase ref={ref} {...props} />;\n }\n);\n","import * as React from 'react';\n\n/**\n * @children required\n */\nexport interface AnnounceProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Value of the `aria-live` attribute\n * @default AnnouncePoliteness.polite\n */\n politeness?: AnnouncePoliteness;\n /*\n * Test ID attached to an internal element as `data-testid` for consumer testing\n */\n testId?: string;\n}\n\nexport enum AnnouncePoliteness {\n polite = 'polite', //default\n off = 'off',\n assertive = 'assertive',\n}\n\nexport const Announce = React.forwardRef<HTMLDivElement, AnnounceProps>(\n (props, ref) => {\n const { children, politeness, testId, ...other } = props;\n\n return (\n <div\n {...other}\n aria-live={politeness || AnnouncePoliteness.polite}\n ref={ref}\n data-testid={testId}\n >\n {children}\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface AppBarProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, the component will render at a shorter height with less padding\n * @default false\n **/\n isCompact?: boolean;\n isInverse?: boolean;\n position?: AppBarPosition;\n testId?: string;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nexport enum AppBarPosition {\n absolute = 'absolute',\n fixed = 'fixed',\n relative = 'relative',\n static = 'static', // default\n sticky = 'sticky',\n}\n\nconst StyledHeader = styled.header<{\n isCompact?: boolean;\n isInverse?: boolean;\n position: AppBarPosition;\n}>`\n align-items: center;\n background: ${props =>\n props.isInverse\n ? props.theme.appBar.inverse.backgroundColor\n : props.theme.appBar.backgroundColor};\n border-bottom: 1px solid\n ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral06};\n box-shadow: ${props =>\n props.position === AppBarPosition.sticky ||\n props.position === AppBarPosition.fixed\n ? '0 2px 3px 0 rgb(0 0 0 / 37%)'\n : '0 0 0'};\n color: ${props =>\n props.isInverse\n ? props.theme.appBar.inverse.textColor\n : props.theme.appBar.textColor};\n display: flex;\n height: ${props =>\n props.isCompact\n ? props.theme.appBar.compact.height\n : props.theme.appBar.height};\n left: 0;\n padding: ${props =>\n props.isCompact\n ? props.theme.appBar.compact.padding\n : props.theme.appBar.padding};\n position: ${props => props.position};\n right: 0;\n top: 0;\n z-index: 10;\n`;\n\nexport const AppBar = React.forwardRef<HTMLDivElement, AppBarProps>(\n (props, ref) => {\n const {\n children,\n position = AppBarPosition.static,\n testId,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <InverseContext.Provider\n value={{\n isInverse,\n }}\n >\n <StyledHeader\n {...other}\n data-testid={testId}\n position={position}\n ref={ref}\n theme={theme}\n >\n {children}\n </StyledHeader>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { darken, lighten } from 'polished';\n\n/**\n * @children required\n */\nexport interface BadgeProps extends React.HTMLAttributes<HTMLButtonElement> {\n /**\n * The color variant of the badge\n * @default BadgeColor.primary\n */\n color?: BadgeColor;\n /**\n * Action that fires when the badge is clicked. Causes the Badge to render as a button instead of a span.\n */\n onClick?: () => void;\n testId?: string;\n /**\n * Indicates the style variant of the component\n * @default BadgeVariant.label\n */\n variant?: BadgeVariant;\n}\n\nexport enum BadgeColor {\n danger = 'danger',\n primary = 'primary',\n secondary = 'secondary', // default\n success = 'success',\n light = 'light',\n}\n\nexport enum BadgeVariant {\n counter = 'counter',\n label = 'label', // default\n}\n\nexport function buildBadgeBackground(props) {\n switch (props.color) {\n case 'danger':\n return props.theme.colors.danger;\n case 'light':\n return props.theme.colors.neutral07;\n case 'primary':\n return props.theme.colors.primary;\n case 'secondary':\n return props.theme.colors.neutral02;\n case 'success':\n return props.theme.colors.success;\n\n default:\n return props.theme.colors.neutral02;\n }\n}\n\nexport function buildBadgeFocusBackground(props) {\n switch (props.color) {\n case 'danger':\n return darken(0.1, props.theme.colors.danger);\n case 'light':\n return lighten(0.05, props.theme.colors.neutral07);\n case 'primary':\n return darken(0.1, props.theme.colors.primary);\n case 'secondary':\n return darken(0.1, props.theme.colors.neutral02);\n case 'success':\n return darken(0.1, props.theme.colors.success);\n\n default:\n return darken(0.1, props.theme.colors.neutral02);\n }\n}\n\nexport function buildBadgeActiveBackground(props) {\n switch (props.color) {\n case 'danger':\n return darken(0.2, props.theme.colors.danger);\n case 'light':\n return lighten(0.1, props.theme.colors.neutral07);\n case 'primary':\n return darken(0.2, props.theme.colors.primary);\n case 'secondary':\n return darken(0.2, props.theme.colors.neutral02);\n case 'success':\n return darken(0.2, props.theme.colors.success);\n\n default:\n return darken(0.2, props.theme.colors.neutral02);\n }\n}\n\nexport const baseBadgeStyles = props => css`\n background: ${buildBadgeBackground(props)};\n border: 1px solid;\n border-color: ${props.color === BadgeColor.light\n ? props.theme.colors.neutral06\n : 'transparent'};\n border-radius: ${props.variant === BadgeVariant.counter\n ? props.theme.spaceScale.spacing06\n : props.theme.borderRadius};\n color: ${props.color === 'light'\n ? props.theme.colors.neutral\n : props.theme.colors.neutral08};\n display: inline-block;\n font-weight: bold;\n font-size: ${props.variant === BadgeVariant.counter\n ? props.theme.typeScale.size02.fontSize\n : props.theme.typeScale.size01.fontSize};\n letter-spacing: ${props.variant === BadgeVariant.counter\n ? props.theme.typeScale.size02.letterSpacing\n : props.theme.typeScale.size01.letterSpacing};\n line-height: ${props.variant === BadgeVariant.counter\n ? props.theme.typeScale.size02.lineHeight\n : props.theme.typeScale.size01.lineHeight};\n margin: ${props.variant === BadgeVariant.counter\n ? `0 0 0 ${props.theme.spaceScale.spacing03}`\n : `0 ${props.theme.spaceScale.spacing03} 0 0`};\n max-height: ${props.variant === BadgeVariant.counter\n ? props.theme.spaceScale.spacing06\n : 'auto'};\n min-width: ${props.theme.spaceScale.spacing06};\n padding: ${props.variant === BadgeVariant.counter\n ? `1px ${props.theme.spaceScale.spacing02}`\n : `${props.theme.spaceScale.spacing01} ${props.theme.spaceScale.spacing02}`};\n text-align: ${props.variant == BadgeVariant.counter ? 'center' : 'inherit'};\n`;\n\nconst StyledSpan = styled.span<BadgeProps>`\n ${baseBadgeStyles};\n`;\n\nconst StyledButton = styled.button<BadgeProps>`\n ${baseBadgeStyles};\n cursor: pointer;\n transition: background 0.35s;\n\n &:hover,\n &:focus {\n background: ${props => buildBadgeFocusBackground(props)};\n }\n\n &:active {\n background: ${props => buildBadgeActiveBackground(props)};\n }\n`;\n\nfunction getStyledBadgeComponent(isClickable: boolean) {\n return isClickable ? StyledButton : StyledSpan;\n}\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n (props, ref) => {\n const { children, onClick, testId, variant, ...other } = props;\n\n const BadgeComponent = getStyledBadgeComponent(Boolean(onClick));\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <BadgeComponent\n {...other}\n data-testid={testId}\n variant={variant ? variant : BadgeVariant.label}\n onClick={onClick}\n ref={ref}\n theme={theme}\n >\n {children}\n </BadgeComponent>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { AlertProps } from '../Alert';\nimport { AlertVariant, buildAlertBackground, VARIANT_ICON } from '../AlertBase';\nimport { CloseIcon } from 'react-magma-icons';\nimport { Button, ButtonSize, ButtonVariant, ButtonColor } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\n\n/**\n * @children required\n */\nexport interface BannerProps extends AlertProps {\n /**\n * The text displayed inside of the action button\n */\n actionButtonText?: string;\n /**\n * Action that fires when the action button is clicked. Must be present for button to appear\n */\n actionButtonOnClick?: () => void;\n /**\n * If true, the component will be able to be dismissed and will include a close button\n * @default false\n */\n isDismissible?: boolean;\n}\n\nconst StyledBanner = styled.div<AlertProps>`\n align-items: stretch;\n background: ${props => buildAlertBackground(props)};\n color: ${props =>\n props.variant === 'warning'\n ? props.theme.colors.neutral\n : props.theme.colors.neutral08};\n display: flex;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n position: relative;\n text-align: left;\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n text-align: left;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n }\n`;\n\nconst BannerContents = styled.div`\n align-items: center;\n display: flex;\n flex-grow: 1;\n justify-content: flex-start;\n padding: ${props => props.theme.spaceScale.spacing04};\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n justify-content: flex-start;\n }\n`;\n\nconst ButtonWrapper = styled.span`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n`;\n\nconst allowedProps = ['icon', 'isInverse', 'theme', 'variant'];\n\nconst shouldForwardProp = prop => {\n return isPropValid(prop) || allowedProps.includes(prop);\n};\n\nconst DismissButton = styled(IconButton, { shouldForwardProp })<{\n alertVariant?: AlertVariant;\n}>`\n align-self: stretch;\n border-radius: 0;\n color: ${({ alertVariant, theme }) =>\n alertVariant === 'warning' ? theme.colors.neutral : theme.colors.neutral08};\n height: auto;\n padding: 0 ${props => props.theme.spaceScale.spacing05};\n width: auto;\n\n &&:focus:not(:disabled) {\n outline: 2px dotted\n ${({ alertVariant, theme }) =>\n alertVariant === 'warning'\n ? theme.colors.neutral\n : theme.colors.neutral08};\n outline-offset: 0 !important;\n }\n\n &:hover,\n &:focus {\n :not(:disabled) {\n &:before {\n background: ${({ alertVariant, theme }) =>\n alertVariant === 'warning'\n ? theme.colors.neutral\n : theme.colors.neutral08};\n opacity: 0.15;\n }\n\n &:after {\n display: none;\n }\n }\n }\n`;\n\nconst IconWrapper = styled.span`\n display: inline-flex;\n padding-right: ${props => props.theme.spaceScale.spacing03};\n\n @media (max-width: ${props => props.theme.breakpoints.small}px) {\n display: none;\n }\n`;\n\nfunction renderIcon(variant = 'info', theme: any) {\n const Icon = VARIANT_ICON[variant];\n\n return (\n <IconWrapper theme={theme}>\n <Icon size={theme.iconSizes.medium} />\n </IconWrapper>\n );\n}\n\nfunction getButtonColor(variant: AlertVariant) {\n switch (variant) {\n case 'success':\n return ButtonColor.success;\n case 'warning':\n return ButtonColor.secondary;\n case 'danger':\n return ButtonColor.danger;\n default:\n return ButtonColor.primary;\n }\n}\n\nexport const Banner = React.forwardRef<HTMLDivElement, BannerProps>(\n (props, ref) => {\n const {\n actionButtonText,\n actionButtonOnClick,\n children,\n closeAriaLabel,\n isDismissible,\n onDismiss,\n testId,\n variant,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledBanner\n {...other}\n data-testid={testId}\n ref={ref}\n theme={theme}\n variant={variant}\n >\n <BannerContents theme={theme}>\n {renderIcon(variant, theme)}\n {children}\n {actionButtonText && actionButtonOnClick && (\n <Button\n color={getButtonColor(variant)}\n isInverse\n onClick={actionButtonOnClick}\n style={{ margin: `0 0 0 ${theme.spaceScale.spacing08}` }}\n size={ButtonSize.small}\n >\n {actionButtonText}\n </Button>\n )}\n </BannerContents>\n\n {isDismissible && (\n <ButtonWrapper>\n <DismissButton\n alertVariant={variant}\n aria-label={\n closeAriaLabel ? closeAriaLabel : i18n.alert.dismissAriaLabel\n }\n icon={<CloseIcon size={theme.iconSizes.small} />}\n isInverse\n onClick={onDismiss}\n theme={theme}\n variant={ButtonVariant.link}\n />\n </ButtonWrapper>\n )}\n </StyledBanner>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {\n isInverse?: boolean;\n testId?: string;\n}\n\nconst StyledList = styled('ol', {\n shouldForwardProp: isPropValid,\n})<BreadcrumbProps>`\n display: flex;\n flex-wrap: wrap;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nexport const Breadcrumb = React.forwardRef<HTMLOListElement, BreadcrumbProps>(\n (props, ref) => {\n const {\n 'aria-label': ariaLabel,\n children,\n isInverse: isInverseProp,\n testId,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n const isInverse = useIsInverse(isInverseProp);\n\n return (\n <InverseContext.Provider value={{ isInverse }}>\n <nav\n {...other}\n aria-label={ariaLabel ? ariaLabel : i18n.breadcrumb.navAriaLabel}\n data-testid={testId}\n >\n <StyledList isInverse={isInverse} ref={ref} theme={theme}>\n {children}\n </StyledList>\n </nav>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport { ButtonStyles } from '../Button';\nimport styled from '@emotion/styled';\nimport { css, ClassNames } from '@emotion/core';\nimport { omit, Omit } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { BaseStyledButton, buttonStyles } from '../StyledButton';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface HyperlinkProps\n extends ButtonStyles,\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {\n children: React.ReactNode;\n /**\n * How the hyperlink is styled (can look like either a plain link or a button)\n */\n styledAs?: 'Button' | 'Link';\n testId?: string;\n /**\n * The href value of the link\n */\n to: string;\n}\n\nconst linkStyles = props => css`\n color: ${props.isInverse\n ? props.theme.colors.primaryInverse\n : props.theme.colors.primary};\n text-decoration: underline;\n &:not([disabled]) {\n &:hover,\n &:focus {\n color: ${props.isInverse\n ? props.theme.colors.primaryInverse\n : props.theme.colors.foundation02};\n }\n &:focus {\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 3px;\n }\n }\n`;\n\nconst StyledLink = styled.a<{ isInverse?: boolean; theme: ThemeInterface }>`\n ${linkStyles}\n`;\n\nexport const Hyperlink = React.forwardRef<HTMLAnchorElement, HyperlinkProps>(\n (props, ref) => {\n const { children, to, styledAs, testId, ...rest } = props;\n\n const other = omit(['positionTop', 'positionLeft', 'type'], rest);\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(props.isInverse);\n\n if (typeof children === 'function') {\n const composedStyle =\n styledAs === 'Button'\n ? buttonStyles({ ...props, theme })\n : linkStyles({ ...props, theme });\n\n return (\n <ClassNames>\n {({ css: composedCss }) => {\n const className = composedCss(composedStyle);\n return (children as (props: object) => React.ReactNode)({\n to,\n className,\n isInverse,\n });\n }}\n </ClassNames>\n );\n } else {\n const LinkStyledAsButton = BaseStyledButton.withComponent('a');\n const HyperlinkComponent =\n styledAs === 'Button' ? LinkStyledAsButton : StyledLink;\n\n return (\n <HyperlinkComponent\n {...other}\n ref={ref}\n data-testid={testId}\n href={to}\n isInverse={isInverse}\n theme={theme}\n >\n {children}\n </HyperlinkComponent>\n );\n }\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { Hyperlink } from '../Hyperlink';\nimport { useIsInverse } from '../../inverse';\nimport { ChevronRightIcon } from 'react-magma-icons';\n\n/**\n * @children required\n */\nexport interface BreadcrumbItemProps\n extends React.HTMLAttributes<HTMLLIElement> {\n testId?: string;\n /**\n * The href value of the link. If left blank, the breadcrumb item will render as a span with aria-current=\"page\" on it.\n */\n to?: string;\n}\n\nconst StyledItem = styled.li`\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n`;\n\nconst StyledSpan = styled.span<{ isInverse?: boolean }>`\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral03};\n\n svg {\n margin: 0 ${props => props.theme.spaceScale.spacing02};\n }\n`;\n\nexport const BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n BreadcrumbItemProps\n>((props, ref) => {\n const { children, to, testId, ...other } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse();\n\n return (\n <StyledItem {...other} data-testid={testId} ref={ref}>\n {to ? (\n <>\n <Hyperlink to={to} isInverse={isInverse}>\n {children}\n </Hyperlink>\n <StyledSpan isInverse={isInverse} theme={theme}>\n <ChevronRightIcon size={theme.iconSizes.small} />\n </StyledSpan>\n </>\n ) : (\n <StyledSpan aria-current=\"page\" isInverse={isInverse} theme={theme}>\n {children}\n </StyledSpan>\n )}\n </StyledItem>\n );\n});\n","import * as React from 'react';\nimport styled from '@emotion/styled';\n\n/**\n * @children required\n */\nexport interface HideAtBreakpointProps\n extends React.HTMLAttributes<HTMLDivElement> {\n displayType?: HideAtBreakpointDisplayType;\n /**\n * Maximum width at which to hide the content\n */\n maxWidth?: number;\n /**\n * Minimum width at which to hide the content\n */\n minWidth?: number;\n testId?: string;\n}\n\nexport enum HideAtBreakpointDisplayType {\n block = 'block', // default\n flex = 'flex',\n inline = 'inline',\n inlineFlex = 'inline-flex',\n}\n\nconst Container = styled.div<HideAtBreakpointProps>`\n display: ${props => props.displayType};\n\n @media (min-width: ${props => props.minWidth}px) {\n display: none;\n }\n\n @media (max-width: ${props => props.maxWidth}px) {\n display: none;\n }\n`;\n\nexport const HideAtBreakpoint = React.forwardRef<\n HTMLDivElement,\n HideAtBreakpointProps\n>((props, ref) => {\n const {\n children,\n displayType = HideAtBreakpointDisplayType.block,\n minWidth,\n maxWidth,\n testId,\n ...other\n } = props;\n\n return (\n <Container\n {...other}\n data-testid={testId}\n displayType={displayType}\n maxWidth={maxWidth}\n minWidth={minWidth}\n ref={ref}\n >\n {children}\n </Container>\n );\n});\n","import * as React from 'react';\nimport { HideAtBreakpoint } from '../HideAtBreakpoint';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport enum BreakpointScreenSize {\n xs = 'xs', //default\n small = 'small',\n medium = 'medium',\n large = 'large',\n xl = 'xl',\n}\n\n/**\n * @children required\n */\nexport interface BreakpointsContainerProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Object that defines the pixel size of individual breakpoints\n * @default { xs: 0, small: 600, medium: 768, large: 1024, xl: 1200 }\n */\n breakpoints?: object;\n}\n\nexport interface BreakpointProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The relative screen size for the breakpoint. Will go from pixel width specified up to the next breakpoint.\n * @default BreakpointScreenSize.xs\n */\n screenSize?: BreakpointScreenSize;\n testId?: string;\n}\n\nexport const Breakpoint: React.FunctionComponent<BreakpointProps> = ({\n children,\n screenSize,\n testId,\n ...other\n}: BreakpointProps) => {\n return <div {...other}>{children}</div>;\n};\n\nfunction getMinWidth(\n screenSize: BreakpointScreenSize,\n breakpointValues: object,\n definedBreakpoints: any\n) {\n const sizes = Object.keys(breakpointValues);\n\n const newSizes = sizes.slice(sizes.indexOf(screenSize) + 1);\n\n const nextSize = newSizes.find(newSize =>\n definedBreakpoints.includes(newSize)\n );\n\n return breakpointValues[nextSize];\n}\n\nexport const BreakpointsContainer: React.FunctionComponent<BreakpointsContainerProps> = ({\n children,\n breakpoints,\n ...other\n}: BreakpointsContainerProps) => {\n const definedBreakpoints = [];\n\n React.Children.forEach(children, (child: React.ReactElement) => {\n definedBreakpoints.push(child.props.screenSize);\n });\n\n const theme = React.useContext(ThemeContext);\n\n const defaultBreakpoints = theme.breakpoints;\n\n const breakpointValues = breakpoints ? breakpoints : defaultBreakpoints;\n\n return (\n <>\n {React.Children.map(children, (child: React.ReactElement) => {\n return child.props.screenSize ? (\n <HideAtBreakpoint\n {...other}\n maxWidth={breakpointValues[child.props.screenSize] - 1}\n minWidth={getMinWidth(\n child.props.screenSize,\n breakpointValues,\n definedBreakpoints\n )}\n testId={child.props.testId}\n >\n {child}\n </HideAtBreakpoint>\n ) : (\n child\n );\n })}\n </>\n );\n};\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface CardProps extends React.LabelHTMLAttributes<HTMLDivElement> {\n /**\n * Sets the alignment of the card content\n * @default CardAlignment.left\n */\n align?: CardAlignment;\n /**\n * Color for the background and border-color, set by CSS.\n */\n background?: string;\n /**\n * If a value is passed, the card will be styled as a callout for the specified type.\n * @default none\n */\n calloutType?: CardCalloutType;\n /**\n * If true, card will render with a box-shadow\n * @default false\n */\n hasDropShadow?: boolean;\n isInverse?: boolean;\n testId?: string;\n /**\n * Width of the component, set by CSS.\n */\n width?: string | number;\n}\n\nexport enum CardAlignment {\n center = 'center',\n left = 'left',\n right = 'right',\n}\n\nexport enum CardCalloutType {\n danger = 'danger',\n primary = 'primary',\n success = 'success',\n warning = 'warning',\n}\n\nexport function buildCalloutBackground(\n props: CardProps & { theme: ThemeInterface }\n) {\n if (props.isInverse) {\n switch (props.calloutType) {\n case 'danger':\n return props.theme.colors.dangerInverse;\n case 'success':\n return props.theme.colors.successInverse;\n case 'warning':\n return props.theme.colors.pop04;\n default:\n return props.theme.colors.foundation04;\n }\n }\n\n switch (props.calloutType) {\n case 'danger':\n return props.theme.colors.danger;\n case 'success':\n return props.theme.colors.success;\n case 'warning':\n return props.theme.colors.pop04;\n default:\n return props.theme.colors.primary;\n }\n}\n\nconst StyledCard = styled.div<CardProps>`\n background: ${props =>\n props.background\n ? props.background\n : props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n border: 1px solid\n ${props =>\n props.background ? props.background : props.theme.colors.neutral06};\n border-radius: ${props => props.theme.borderRadius};\n box-shadow: ${props =>\n props.hasDropShadow ? '0 2px 6px 0 rgba(0,0,0,0.18)' : '0 0 0'};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: flex;\n flex-direction: column;\n overflow: visible;\n padding-left: ${props =>\n props.calloutType ? props.theme.spaceScale.spacing02 : '0'};\n position: relative;\n text-align: ${props => props.align};\n width: ${props => props.width};\n\n ${props =>\n props.calloutType &&\n css`\n &:before {\n background: ${buildCalloutBackground(props)};\n border-radius: ${props.theme.borderRadius} 0 0\n ${props.theme.borderRadius};\n content: '';\n display: block;\n height: 100%;\n position: absolute;\n left: 0;\n width: ${props.theme.spaceScale.spacing02};\n }\n `}\n`;\n\ninterface NavTabsContextInterface {\n isInverse?: boolean;\n}\n\nexport const CardContext = React.createContext<NavTabsContextInterface>({\n isInverse: false,\n});\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n (props, ref) => {\n const { align, children, testId, width, ...other } = props;\n\n const isInverse = useIsInverse(props.isInverse);\n\n const theme = React.useContext(ThemeContext);\n\n const widthString = width\n ? typeof width === 'number'\n ? `${width}px`\n : width\n : 'auto';\n\n return (\n <StyledCard\n {...other}\n align={align ? align : CardAlignment.left}\n data-testid={testId}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n width={widthString}\n >\n <CardContext.Provider\n value={{\n isInverse,\n }}\n >\n {children}\n </CardContext.Provider>\n </StyledCard>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { CardProps } from '../Card';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\n/**\n * @children required\n */\nexport interface CardBodyProps\n extends React.LabelHTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nconst StyledCardBody = styled.div<CardProps>`\n padding: ${props => props.theme.spaceScale.spacing05};\n text-align: ${props => props.align};\n\n @media (min-width: ${props => props.theme.breakpoints.small}px) {\n padding: ${props => props.theme.spaceScale.spacing06};\n }\n`;\n\nexport const CardBody = React.forwardRef<HTMLDivElement, CardBodyProps>(\n (props, ref) => {\n const { children, testId, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledCardBody {...other} data-testid={testId} ref={ref} theme={theme}>\n {children}\n </StyledCardBody>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\n\nexport interface TypographyProps<T = HTMLParagraphElement>\n extends React.HTMLAttributes<T> {\n as?: string;\n children?: any;\n color?: TypographyColor;\n contextVariant?: TypographyContextVariant;\n element?: string;\n isInverse?: boolean;\n noMargins?: boolean;\n ref?: any;\n testId?: string;\n theme?: any;\n visualStyle?: TypographyVisualStyle;\n}\n\nexport enum TypographyColor {\n danger = 'danger',\n default = 'default', // default\n success = 'success',\n subdued = 'subdued',\n}\n\nexport enum TypographyContextVariant {\n default = 'default', // default\n expressive = 'expressive',\n narrative = 'narrative',\n}\n\nexport enum TypographyVisualStyle {\n headingXLarge = 'headingXLarge',\n headingLarge = 'headingLarge',\n headingMedium = 'headingMedium',\n headingSmall = 'headingSmall',\n headingXSmall = 'headingXSmall',\n heading2XSmall = 'heading2XSmall',\n bodyLarge = 'bodyLarge',\n bodyMedium = 'bodyMedium',\n bodySmall = 'bodySmall',\n bodyXSmall = 'bodyXSmall',\n}\n\nexport function getBodyFontFamily(props) {\n switch (props.contextVariant) {\n case TypographyContextVariant.expressive:\n return props.theme.bodyExpressiveFont;\n case TypographyContextVariant.narrative:\n return props.theme.bodyNarrativeFont;\n default:\n return props.theme.bodyFont;\n }\n}\n\nexport const colorStyles = props => css`\n color: ${props.isInverse\n ? props.theme.colors.neutral08\n : props.contextVariant === 'expressive'\n ? props.theme.colors.foundation02\n : props.theme.colors.neutral};\n\n ${props.color === TypographyColor.danger &&\n !props.isInverse &&\n css`\n color: ${props.theme.colors.danger};\n `}\n\n ${props.color === TypographyColor.success &&\n !props.isInverse &&\n css`\n color: ${props.theme.colors.success};\n `}\n\n${props.color === TypographyColor.subdued &&\n !props.isInverse &&\n css`\n color: ${props.theme.colors.neutral03};\n `}\n\n ${props.color === TypographyColor.danger &&\n props.isInverse &&\n css`\n color: ${props.theme.colors.dangerInverse};\n `}\n\n ${props.color === TypographyColor.success &&\n props.isInverse &&\n css`\n color: ${props.theme.colors.successInverse};\n `}\n\n${props.color === TypographyColor.subdued &&\n props.isInverse &&\n css`\n color: ${props.theme.colors.focusInverse};\n `}\n`;\n\nconst baseParagraphStyles = props => css`\n ${colorStyles(props)}\n font-family: ${getBodyFontFamily(props)};\n font-weight: normal;\n`;\n\nexport const paragraphLargeStyles = props => css`\n ${baseParagraphStyles(props)}\n\n margin: ${props.noMargins ? '0' : `${props.theme.spaceScale.spacing06} 0`};\n\n font-size: ${props.theme.typographyVisualStyles.bodyLarge.mobile.fontSize};\n line-height: ${props.theme.typographyVisualStyles.bodyLarge.mobile\n .lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.bodyLarge.desktop.fontSize};\n line-height: ${props.theme.typographyVisualStyles.bodyLarge.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === TypographyContextVariant.expressive &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.bodyLarge.mobile\n .fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.bodyLarge.mobile\n .lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.bodyLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.bodyLarge\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const paragraphMediumStyles = props => css`\n ${baseParagraphStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.bodyMedium.mobile.fontSize};\n line-height: ${props.theme.typographyVisualStyles.bodyMedium.mobile\n .lineHeight};\n margin: ${props.noMargins ? '0' : `${props.theme.spaceScale.spacing06} 0`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.bodyMedium.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.bodyMedium.desktop\n .lineHeight};\n }\n`;\n\nexport const paragraphSmallStyles = props => css`\n ${baseParagraphStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.bodySmall.mobile.fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.bodySmall.mobile\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.bodySmall.mobile\n .lineHeight};\n margin: ${props.noMargins ? '0' : `${props.theme.spaceScale.spacing05} 0`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.bodySmall.desktop.fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.bodySmall.desktop\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.bodySmall.desktop\n .lineHeight};\n }\n`;\n\nexport const paragraphXSmallStyles = props => css`\n ${baseParagraphStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.bodyXSmall.mobile.fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.bodyXSmall.mobile\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.bodyXSmall.mobile\n .lineHeight};\n margin: ${props.noMargins ? '0' : `${props.theme.spaceScale.spacing03} 0`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.bodyXSmall.desktop\n .fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.bodyXSmall.desktop\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.bodyXSmall.desktop\n .lineHeight};\n }\n`;\n\nfunction getHeadingFontFamily(props) {\n switch (props.contextVariant) {\n case TypographyContextVariant.expressive:\n return props.theme.headingExpressiveFont;\n case TypographyContextVariant.narrative:\n return props.theme.headingNarrativeFont;\n default:\n return props.theme.headingFont;\n }\n}\n\nconst baseHeadingStyles = props => css`\n border-bottom: 2px solid transparent;\n font-family: ${getHeadingFontFamily(props)};\n padding: 0;\n\n &:focus {\n border-bottom: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline: 0;\n transition: border 0.1s linear;\n }\n\n ${colorStyles(props)}\n`;\n\nexport const headingXLargeStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.headingXLarge.mobile\n .fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingXLarge.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingXLarge.mobile\n .lineHeight};\n margin: ${props.noMargins ? 0 : `0 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingXLarge.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingXLarge.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingXLarge\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .mobile.fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingXLarge\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const headingLargeStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.headingLarge.mobile.fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingLarge.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingLarge.mobile\n .lineHeight};\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing10} 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingLarge.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingLarge.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingLarge\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingLarge.mobile\n .fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingLarge\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingLarge\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingLarge\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingLarge\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const headingMediumStyles = props => css`\n ${baseHeadingStyles(props)};\n\n font-size: ${props.theme.typographyVisualStyles.headingMedium.mobile\n .fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingMedium.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingMedium.mobile\n .lineHeight};\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing09} 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingMedium.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingMedium.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingMedium\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .mobile.fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingMedium\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const headingSmallStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.headingSmall.mobile.fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingSmall.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingSmall.mobile\n .lineHeight};\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing08} 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingSmall.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingSmall.desktop\n .lineHeight};\n }\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingSmall\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingSmall.mobile\n .fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingSmall\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingSmall\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingSmall\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingSmall\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const headingXSmallStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.headingXSmall.mobile\n .fontSize};\n font-weight: ${props.theme.typographyVisualStyles.headingXSmall.fontWeight};\n line-height: ${props.theme.typographyVisualStyles.headingXSmall.mobile\n .lineHeight};\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing06} 0 ${props.theme.spaceScale.spacing05}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.headingXSmall.desktop\n .fontSize};\n line-height: ${props.theme.typographyVisualStyles.headingXSmall.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .fontWeight};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .mobile.lineHeight};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .desktop.fontSize};\n line-height: ${props.theme.typographyExpressiveVisualStyles.headingXSmall\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .fontWeight};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .desktop.fontSize};\n line-height: ${props.theme.typographyNarrativeVisualStyles.headingXSmall\n .desktop.lineHeight};\n }\n `};\n`;\n\nexport const heading2XSmallStyles = props => css`\n ${baseHeadingStyles(props)}\n\n font-size: ${props.theme.typographyVisualStyles.heading2XSmall.mobile\n .fontSize};\n font-weight: ${props.theme.typographyVisualStyles.heading2XSmall.fontWeight};\n letter-spacing: ${props.theme.typographyVisualStyles.heading2XSmall.mobile\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.heading2XSmall.mobile\n .lineHeight};\n text-transform: uppercase;\n margin: ${props.noMargins\n ? 0\n : `${props.theme.spaceScale.spacing06} 0 ${props.theme.spaceScale.spacing03}`};\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyVisualStyles.heading2XSmall.desktop\n .fontSize};\n letter-spacing: ${props.theme.typographyVisualStyles.heading2XSmall.desktop\n .letterSpacing};\n line-height: ${props.theme.typographyVisualStyles.heading2XSmall.desktop\n .lineHeight};\n }\n\n ${props.contextVariant === 'expressive' &&\n css`\n font-size: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .fontWeight};\n letter-spacing: ${props.theme.typographyExpressiveVisualStyles\n .heading2XSmall.mobile.letterSpacing};\n line-height: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .mobile.lineHeight};\n text-transform: none;\n\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .desktop.fontSize};\n letter-spacing: ${props.theme.typographyExpressiveVisualStyles\n .heading2XSmall.desktop.letterSpacing};\n line-height: ${props.theme.typographyExpressiveVisualStyles.heading2XSmall\n .desktop.lineHeight};\n }\n `};\n\n ${props.contextVariant === 'narrative' &&\n css`\n font-size: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .mobile.fontSize};\n font-weight: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .fontWeight};\n letter-spacing: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .mobile.letterSpacing};\n line-height: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .mobile.lineHeight};\n @media (min-width: ${props.theme.breakpoints.small}px) {\n font-size: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .desktop.fontSize};\n letter-spacing: ${props.theme.typographyNarrativeVisualStyles\n .heading2XSmall.desktop.letterSpacing};\n line-height: ${props.theme.typographyNarrativeVisualStyles.heading2XSmall\n .desktop.lineHeight};\n }\n `};\n`;\n\nfunction getTypographyStyles(props) {\n switch (props.visualStyle) {\n case TypographyVisualStyle.headingXLarge:\n return headingXLargeStyles(props);\n case TypographyVisualStyle.headingLarge:\n return headingLargeStyles(props);\n case TypographyVisualStyle.headingMedium:\n return headingMediumStyles(props);\n case TypographyVisualStyle.headingSmall:\n return headingSmallStyles(props);\n case TypographyVisualStyle.headingXSmall:\n return headingXSmallStyles(props);\n case TypographyVisualStyle.heading2XSmall:\n return heading2XSmallStyles(props);\n case TypographyVisualStyle.bodyLarge:\n return paragraphLargeStyles(props);\n case TypographyVisualStyle.bodyMedium:\n return paragraphMediumStyles(props);\n case TypographyVisualStyle.bodySmall:\n return paragraphSmallStyles(props);\n case TypographyVisualStyle.bodyXSmall:\n return paragraphXSmallStyles(props);\n default:\n return headingLargeStyles(props);\n }\n}\n\nexport const TypographyComponent = styled.p<TypographyProps>`\n ${props => getTypographyStyles(props)}\n`;\n","import * as React from 'react';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n TypographyColor,\n TypographyContextVariant,\n TypographyVisualStyle,\n TypographyComponent,\n TypographyProps,\n} from '../Typography';\n\n/**\n * @children required\n */\nexport interface HeadingProps extends TypographyProps<HTMLHeadingElement> {\n /**\n * The color of the component, that helps to convey meaning or relative emphasis\n * @default TypographyColor.default\n */\n color?: TypographyColor;\n /**\n * Additional styles for typography based on the context of the content\n * @default TypographyColor.default\n */\n contextVariant?: TypographyContextVariant;\n isInverse?: boolean;\n /**\n * Number to indicate which level heading will render (e.g. h1, h2 etc.)\n */\n level: 1 | 2 | 3 | 4 | 5 | 6;\n testId?: string;\n /**\n * Applies visual styles including font-size, font-weight, line-height and margins\n */\n visualStyle?: TypographyVisualStyle;\n}\n\nexport const Heading = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n (props, ref) => {\n const { level, testId, visualStyle, children, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n const stylesFromLevel = {\n 1: TypographyVisualStyle.headingXLarge,\n 2: TypographyVisualStyle.headingLarge,\n 3: TypographyVisualStyle.headingMedium,\n 4: TypographyVisualStyle.headingSmall,\n 5: TypographyVisualStyle.headingXSmall,\n 6: TypographyVisualStyle.heading2XSmall,\n };\n\n const headingElement = `h${level}`;\n\n return (\n <TypographyComponent\n {...other}\n as={headingElement}\n data-testid={testId}\n isInverse={useIsInverse(props.isInverse)}\n ref={ref}\n visualStyle={visualStyle ? visualStyle : stylesFromLevel[level]}\n theme={theme}\n >\n {children}\n </TypographyComponent>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { CardContext } from './Card';\nimport { Heading } from '../Heading';\nimport { TypographyColor, TypographyVisualStyle } from '../Typography';\n\n/**\n * @children required\n */\nexport interface CardHeadingProps\n extends React.LabelHTMLAttributes<HTMLHeadingElement> {\n /**\n * Number to indicate which level heading will render (e.g. h1, h2 etc.)\n * @default 4\n */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n isInverse?: boolean;\n testId?: string;\n}\n\nconst StyledCardHeading = styled(Heading)`\n margin-top: 0;\n`;\n\nexport const CardHeading = React.forwardRef<\n HTMLHeadingElement,\n CardHeadingProps\n>((props, ref) => {\n const { headingLevel, children, ...other } = props;\n\n const context = React.useContext(CardContext);\n\n return (\n <StyledCardHeading\n {...other}\n color={TypographyColor.default}\n isInverse={context.isInverse}\n level={headingLevel ? headingLevel : 4}\n ref={ref}\n testId={props.testId}\n visualStyle={TypographyVisualStyle.headingSmall}\n >\n {children}\n </StyledCardHeading>\n );\n});\n","import { css } from '@emotion/core';\n\nexport const DisplayInputStyles = props => css`\n align-items: center;\n display: flex;\n height: ${props.theme.spaceScale.spacing06};\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n transition: all 0.2s ease-out;\n width: ${props.theme.spaceScale.spacing06};\n\n &:before,\n &:after {\n // focus and active states\n content: '';\n position: absolute;\n }\n\n &:after {\n // active state\n border-radius: 50%;\n height: ${props.theme.spaceScale.spacing09};\n left: -${props.theme.spaceScale.spacing03};\n opacity: 0;\n padding: 50%;\n top: -${props.theme.spaceScale.spacing03};\n transform: scale(1);\n transition: opacity 1s, transform 0.5s;\n width: ${props.theme.spaceScale.spacing09};\n }\n`;\n\nexport const DisplayInputActiveStyles = css`\n opacity: 0.4;\n transform: scale(0);\n transition: transform 0s;\n`;\n\nexport function buildDisplayInputActiveBackground(props) {\n return props.isInverse\n ? props.theme.colors.neutral08\n : props.color\n ? props.color\n : props.theme.colors.primary;\n}\n\nexport function buildDisplayInputBorderColor(props) {\n if (props.hasError) {\n if (props.isInverse) {\n return props.theme.colors.dangerInverse;\n }\n return props.theme.colors.danger;\n }\n return 'transparent';\n}\n\nexport function buildDisplayInputFocusStyles(props) {\n return css`\n height: 30px;\n position: absolute;\n width: 30px;\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n `;\n}\n","import { css } from '@emotion/core';\n\nexport const HiddenStyles = css`\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n position: absolute;\n overflow: hidden;\n top: auto;\n white-space: nowrap;\n width: 1px;\n`;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ButtonVariant, ButtonType, ButtonSize, ButtonShape } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ClearIcon, IconProps } from 'react-magma-icons';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeInterface } from '../../theme/magma';\nimport { I18nContext } from '../../i18n';\nimport { useForkedRef } from '../../utils';\n\nexport enum InputSize {\n large = 'large',\n medium = 'medium', //default\n}\n\nexport enum InputType {\n email = 'email',\n file = 'file',\n number = 'number',\n password = 'password',\n search = 'search',\n text = 'text', // default\n}\n\nexport enum InputIconPosition {\n top = 'top',\n left = 'left',\n right = 'right', // default\n}\n\nexport interface InputBaseProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * @internal\n */\n hasError?: boolean;\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * Text for the aria-label attribute for an icon, if provided\n */\n iconAriaLabel?: string;\n /**\n * Position within the component for the icon to appear\n * @default InputIconPosition.right\n */\n iconPosition?: InputIconPosition;\n /**\n * Reference to the icon element\n */\n iconRef?: React.Ref<HTMLButtonElement>;\n /**\n * Relative size of the component\n * @default InputSize.medium\n */\n inputSize?: InputSize;\n /**\n * Style properties for the input element\n */\n inputStyle?: React.CSSProperties;\n /**\n * Clear contents of input by clicking a clear button\n * @default false\n */\n isClearable?: boolean;\n /**\n * Function to be called when the contents of input are cleared by clicking a clear button\n */\n onClear?: () => void;\n isInverse?: boolean;\n /**\n * For use in predictive search which moves the icon to the left\n */\n isPredictive?: boolean;\n /**\n * Action that will fire when icon is clicked\n */\n onIconClick?: () => void;\n /**\n * Action that will fire when icon receives keypress\n */\n onIconKeyDown?: (event) => void;\n testId?: string;\n /**\n * @internal\n */\n theme?: any;\n /**\n * The type attribute of the form field\n * @default InputType.text\n */\n type?: InputType;\n}\n\nexport interface InputWrapperStylesProps {\n width?: string;\n iconPosition?: InputIconPosition;\n isInverse?: boolean;\n isClearable?: boolean;\n isPredictive?: boolean;\n theme?: ThemeInterface;\n hasError?: boolean;\n disabled?: boolean;\n}\n\nexport const inputWrapperStyles = (props: InputWrapperStylesProps) => css`\n align-items: center;\n display: flex;\n flex-shrink: 0;\n position: relative;\n width: ${props.width || 'auto'};\n background-color: ${props.theme.colors.neutral08};\n border-radius: ${props.theme.borderRadius};\n border: 1px solid\n ${props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral03};\n\n &:focus-within {\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 4px;\n }\n\n ${props.hasError &&\n css`\n border-color: ${props.theme.colors.danger};\n box-shadow: 0 0 0 1px\n ${props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.danger};\n `}\n\n ${props.disabled &&\n css`\n border-color: ${props.theme.colors.neutral05};\n background-color: ${props.disabled\n ? props.theme.colors.neutral07\n : props.theme.colors.neutral08};\n `}\n button {\n bottom: ${props.iconPosition === InputIconPosition.top\n ? '40px'\n : 'inherit'};\n right: ${props.iconPosition === InputIconPosition.top ? '-4px' : 'inherit'};\n }\n`;\n\nexport interface InputBaseStylesProps {\n isInverse?: boolean;\n iconPosition?: InputIconPosition;\n inputSize?: InputSize;\n isPredictive?: boolean;\n theme?: ThemeInterface;\n disabled?: boolean;\n}\n\nexport const inputBaseStyles = (props: InputBaseStylesProps) => css`\n border: 0;\n border-radius: ${props.theme.borderRadius};\n background: ${props.theme.colors.neutral08};\n color: ${props.theme.colors.neutral};\n display: block;\n font-size: ${props.theme.typeScale.size03.fontSize};\n line-height: ${props.theme.typeScale.size03.lineHeight};\n font-family: ${props.theme.bodyFont};\n height: ${props.theme.spaceScale.spacing09};\n padding: ${props.theme.spaceScale.spacing03};\n -webkit-appearance: none;\n width: 100%;\n\n ${props.iconPosition === 'left' &&\n css`\n padding-left: ${props.theme.spaceScale.spacing09};\n `}\n\n ${props.iconPosition === 'right' &&\n css`\n padding-right: ${props.theme.spaceScale.spacing09};\n `}\n\n ${props.inputSize === 'large' &&\n css`\n font-size: ${props.theme.typeScale.size04.fontSize};\n line-height: ${props.theme.typeScale.size04.lineHeight};\n height: ${props.theme.spaceScale.spacing11};\n padding: 0 ${props.theme.spaceScale.spacing04};\n `}\n\n ${props.iconPosition === 'left' &&\n props.inputSize === 'large' &&\n css`\n padding-left: ${props.theme.spaceScale.spacing10};\n `}\n\n ${props.iconPosition === 'right' &&\n props.inputSize === 'large' &&\n css`\n padding-right: ${props.theme.spaceScale.spacing10};\n `}\n\n &::placeholder {\n color: ${props.theme.colors.neutral03};\n opacity: 1;\n }\n\n &:focus {\n outline: 0;\n }\n\n &[type='search'] {\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n display: none;\n }\n }\n\n ${props.disabled &&\n css`\n background: ${props.theme.colors.neutral07};\n color: ${props.theme.colors.disabledText};\n cursor: not-allowed;\n\n &::placeholder {\n color: ${props.theme.colors.disabledText};\n }\n `}\n`;\n\nexport const InputWrapper = styled.div<InputWrapperStylesProps>`\n ${inputWrapperStyles}\n`;\n\nconst StyledInput = styled.input<InputBaseStylesProps>`\n ${inputBaseStyles}\n`;\n\nconst IconWrapper = styled.span<{\n iconPosition?: InputIconPosition;\n inputSize?: InputSize;\n isClearable?: boolean;\n isPredictive?: boolean;\n disabled?: boolean;\n}>`\n bottom: ${props => (props.iconPosition === 'top' ? '45px' : 'inherit')};\n color: ${props => props.theme.colors.neutral};\n left: ${props =>\n props.iconPosition === 'left' ? props.theme.spaceScale.spacing03 : 'auto'};\n right: ${props =>\n props.iconPosition === 'right'\n ? props.theme.spaceScale.spacing03\n : props.iconPosition === 'top'\n ? '3px'\n : 'auto'};\n position: absolute;\n top: ${props =>\n props.iconPosition === 'top'\n ? 'inherit'\n : props => props.theme.spaceScale.spacing03};\n\n ${props =>\n props.inputSize === 'large' &&\n css`\n bottom: ${props.iconPosition === 'top' ? '56px' : 'inherit'};\n left: ${props.iconPosition === 'left'\n ? props.theme.spaceScale.spacing04\n : 'auto'};\n right: ${props.iconPosition === 'right'\n ? props.theme.spaceScale.spacing04\n : props.iconPosition === 'top'\n ? '3px'\n : 'auto'};\n top: ${props.iconPosition === 'top'\n ? 'inherit'\n : props.theme.spaceScale.spacing04};\n `}\n`;\n\nconst IconButtonContainer = styled.span<{\n iconPosition?: InputIconPosition;\n size?: InputSize;\n theme: ThemeInterface;\n isClearable?: boolean;\n disabled?: boolean;\n}>`\n background-color: ${({ disabled, theme }) =>\n disabled ? theme.colors.neutral07 : theme.colors.neutral08};\n bottom: ${props => (props.iconPosition === 'top' ? '40px' : 'inherit')};\n height: auto;\n margin: 0;\n position: relative;\n right: ${props =>\n props.size === InputSize.large\n ? props.theme.spaceScale.spacing02\n : props.theme.spaceScale.spacing01};\n\n svg {\n height: ${props =>\n props.size === InputSize.large\n ? `${props.theme.iconSizes.large}px`\n : `${props.theme.iconSizes.medium}px`};\n width: ${props =>\n props.size === InputSize.large\n ? `${props.theme.iconSizes.large}px`\n : `${props.theme.iconSizes.medium}px`};\n }\n`;\n\nconst IsClearableContainer = styled.span<{\n size?: InputSize;\n theme: ThemeInterface;\n isClearable?: boolean;\n disabled?: boolean;\n}>`\n background-color: ${({ disabled, theme }) =>\n disabled ? theme.colors.neutral07 : theme.colors.neutral08};\n position: relative;\n right: ${props =>\n props.size === InputSize.large\n ? props.theme.spaceScale.spacing02\n : props.theme.spaceScale.spacing01};\n`;\n\nfunction getIconSize(size: string, theme: ThemeInterface) {\n switch (size) {\n case 'large':\n return theme.iconSizes.large;\n default:\n return theme.iconSizes.medium;\n }\n}\n\nexport const InputBase = React.forwardRef<HTMLInputElement, InputBaseProps>(\n (props, forwardedRef) => {\n const {\n children,\n containerStyle,\n defaultValue,\n disabled,\n hasError,\n icon,\n iconAriaLabel,\n iconRef,\n isClearable,\n isPredictive,\n onClear,\n onIconClick,\n onIconKeyDown,\n inputSize,\n inputStyle,\n testId,\n type,\n ...other\n } = props;\n\n const i18n = React.useContext(I18nContext);\n\n const theme = React.useContext(ThemeContext);\n const iconPosition =\n icon && onIconClick\n ? InputIconPosition.right\n : icon && !props.iconPosition\n ? InputIconPosition.left\n : props.iconPosition;\n\n const [value, setValue] = React.useState<\n string | ReadonlyArray<string> | number\n >(props.defaultValue || props.value || '');\n\n React.useEffect(() => {\n if (props.value !== undefined && props.value !== null) {\n setValue(props.value);\n }\n }, [props.value]);\n\n const inputRef = React.useRef<HTMLInputElement>();\n const ref = useForkedRef(forwardedRef, inputRef);\n\n function handleClearInput() {\n onClear && typeof onClear === 'function' && onClear();\n setValue('');\n inputRef.current.focus();\n }\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n\n setValue(event.target.value);\n }\n\n return (\n <InputWrapper\n disabled={disabled}\n iconPosition={iconPosition}\n isInverse={props.isInverse}\n theme={theme}\n style={containerStyle}\n hasError={hasError}\n isClearable={isClearable}\n >\n <StyledInput\n {...other}\n aria-invalid={hasError}\n disabled={disabled}\n data-testid={testId}\n iconPosition={iconPosition}\n inputSize={inputSize ? inputSize : InputSize.medium}\n isInverse={useIsInverse(props.isInverse)}\n isPredictive={isPredictive}\n ref={ref}\n onChange={handleChange}\n style={inputStyle}\n theme={theme}\n type={type ? type : InputType.text}\n value={value}\n />\n {isClearable && value && (\n <IsClearableContainer theme={theme} disabled={disabled}>\n <IconButton\n aria-label={i18n.input.isClearableAriaLabel}\n disabled={disabled}\n icon={<ClearIcon />}\n isInverse={false}\n onClick={handleClearInput}\n onKeyDown={onIconKeyDown}\n ref={iconRef}\n shape={ButtonShape.fill}\n size={\n inputSize === InputSize.large\n ? ButtonSize.medium\n : ButtonSize.small\n }\n testId=\"clear-button\"\n type={ButtonType.button}\n variant={ButtonVariant.link}\n />\n </IsClearableContainer>\n )}\n\n {icon && !onIconClick && (\n <IconWrapper\n aria-label={iconAriaLabel}\n iconPosition={iconPosition}\n inputSize={inputSize ? inputSize : InputSize.medium}\n isPredictive={isPredictive}\n theme={theme}\n disabled={disabled}\n >\n {React.Children.only(\n React.cloneElement(icon, {\n size: getIconSize(\n inputSize ? inputSize : InputSize.medium,\n theme\n ),\n })\n )}\n </IconWrapper>\n )}\n\n {onIconClick && (\n <IconButtonContainer\n iconPosition={iconPosition}\n size={\n inputSize === InputSize.large ? InputSize.large : InputSize.medium\n }\n theme={theme}\n disabled={disabled}\n >\n <IconButton\n aria-label={iconAriaLabel}\n icon={icon}\n isInverse={false}\n onClick={onIconClick}\n onKeyDown={onIconKeyDown}\n ref={iconRef}\n disabled={disabled}\n shape={ButtonShape.fill}\n size={\n inputSize === InputSize.large\n ? ButtonSize.medium\n : ButtonSize.small\n }\n type={ButtonType.button}\n variant={ButtonVariant.link}\n />\n </IconButtonContainer>\n )}\n\n {children}\n </InputWrapper>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ErrorIcon } from 'react-magma-icons';\nimport { Announce } from '../Announce';\nimport { InputSize } from '../InputBase';\n\nexport interface InputMessageProps\n extends React.HTMLAttributes<HTMLDivElement> {\n hasError?: boolean;\n id?: string;\n inputSize?: InputSize;\n isInverse?: boolean;\n}\n\nfunction BuildMessageColor(props) {\n const { isInverse, hasError, theme } = props;\n if (isInverse) {\n return hasError ? theme.colors.dangerInverse : theme.colors.neutral08;\n }\n return hasError ? theme.colors.danger : theme.colors.neutral03;\n}\n\nconst Message = styled.div<InputMessageProps>`\n align-items: center;\n border-radius: ${props => props.theme.borderRadius};\n color: ${props => BuildMessageColor(props)};\n display: flex;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n margin-top: ${props =>\n props.inputSize === InputSize.large\n ? props.theme.spaceScale.spacing03\n : props.theme.spaceScale.spacing02};\n text-align: left;\n`;\n\nconst IconWrapper = styled.span`\n display: inline-flex;\n flex-shrink: 0;\n padding-right: ${props => props.theme.spaceScale.spacing02};\n`;\n\nexport const InputMessage: React.FunctionComponent<InputMessageProps> = ({\n children,\n id,\n isInverse,\n hasError,\n ...other\n}: InputMessageProps) => {\n const theme = React.useContext(ThemeContext);\n\n return (\n <Announce>\n <Message\n {...other}\n data-testid=\"inputMessage\"\n id={id}\n isInverse={isInverse}\n hasError={hasError}\n theme={theme}\n >\n {hasError && (\n <IconWrapper aria-label=\"Error\" role=\"img\" theme={theme}>\n <ErrorIcon size={theme.iconSizes.small} />\n </IconWrapper>\n )}\n <div>{children}</div>\n </Message>\n </Announce>\n );\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { InputIconPosition, InputSize } from '../InputBase';\nimport { useIsInverse } from '../../inverse';\n\nexport enum LabelPosition {\n left = 'left',\n top = 'top', // default\n}\n\nexport interface LabelProps\n extends React.LabelHTMLAttributes<HTMLLabelElement> {\n actionable?: boolean;\n iconPosition?: InputIconPosition;\n isInverse?: boolean;\n labelPosition?: LabelPosition;\n size?: InputSize;\n theme?: any;\n testId?: string;\n}\n\nconst StyledLabel = styled.label<{\n iconPosition: InputIconPosition;\n isInverse: boolean;\n theme: any;\n size: InputSize;\n labelPosition: LabelPosition;\n}>`\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: inline-block;\n font-size: ${props =>\n props.size === InputSize.large\n ? props.theme.typeScale.size03.fontSize\n : props.theme.typeScale.size02.fontSize};\n font-weight: 600;\n letter-spacing: ${props =>\n props.size === InputSize.large\n ? 'inherit'\n : props.theme.typeScale.size02.letterSpacing};\n line-height: ${props =>\n props.size === InputSize.large\n ? props.theme.typeScale.size03.lineHeight\n : props.theme.typeScale.size02.lineHeight};\n margin: ${props =>\n props.labelPosition === LabelPosition.left\n ? `0 ${props.theme.spaceScale.spacing05} 0 0`\n : `0 0 ${props.theme.spaceScale.spacing03}`};\n max-width: ${props =>\n props.iconPosition === InputIconPosition.top\n ? 'calc(100% - 51px)'\n : '100%'};\n text-align: left;\n white-space: ${props =>\n props.iconPosition === InputIconPosition.top ? 'inherit' : 'nowrap'};\n`;\n\nconst StyledSpan = StyledLabel.withComponent('span');\n\nexport const Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n (props, ref) => {\n const {\n actionable = true,\n children,\n iconPosition,\n labelPosition,\n size,\n testId,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n\n return actionable ? (\n <StyledLabel\n {...other}\n data-testid={testId}\n isInverse={useIsInverse(props.isInverse)}\n iconPosition={iconPosition}\n labelPosition={labelPosition || LabelPosition.top}\n ref={ref}\n size={size ? size : InputSize.medium}\n theme={theme}\n >\n {children}\n </StyledLabel>\n ) : (\n <StyledSpan\n {...other}\n data-testid={testId}\n isInverse={useIsInverse(props.isInverse)}\n iconPosition={iconPosition}\n labelPosition={labelPosition || LabelPosition.top}\n ref={ref}\n size={size ? size : InputSize.medium}\n theme={theme}\n >\n {children}\n </StyledSpan>\n );\n }\n);\n","import * as React from 'react';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { InputMessage } from '../Input/InputMessage';\nimport { Label } from '../Label';\nimport styled from '../../theme/styled';\nimport { omit, useGenerateId } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface FormGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Content of the error message. If a value is provided, the form fields will be styled to show an error state\n */\n errorMessage?: React.ReactNode;\n /**\n * Content of the helper message\n */\n helperMessage?: React.ReactNode;\n isInverse?: boolean;\n /**\n * If true, label text for the form group will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * ID of the element that labels the form group, used in the aria-labelledby attribute for the group. Alternatively, the labelText prop can be used\n */\n labelledById?: string;\n /**\n * Style properties for the label of the form group\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content of label for form group; can be a node or a string. Alternatively, the labelledById prop can be used\n */\n labelText?: React.ReactNode;\n testId?: string;\n}\n\nexport interface FormGroupContextInterface {\n descriptionId?: string;\n hasError?: boolean;\n}\n\nexport const FormGroupContext = React.createContext<FormGroupContextInterface>({\n hasError: false,\n});\n\nconst HiddenLabel = styled.label`\n ${HiddenStyles};\n`;\n\nexport const FormGroup = React.forwardRef<HTMLDivElement, FormGroupProps>(\n (props, ref) => {\n const id = useGenerateId(props.id);\n\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n labelledById,\n labelStyle,\n labelText,\n isTextVisuallyHidden,\n testId,\n children,\n ...rest\n } = props;\n const other = omit(['id'], rest);\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <div\n {...other}\n aria-labelledby={labelledById ? labelledById : id}\n data-testid={testId}\n ref={ref}\n role=\"group\"\n style={containerStyle}\n >\n <FormGroupContext.Provider\n value={{\n descriptionId,\n hasError: !!errorMessage,\n }}\n >\n {labelText && isTextVisuallyHidden && (\n <HiddenLabel id={id} style={labelStyle}>\n {labelText}\n </HiddenLabel>\n )}\n\n {labelText && !isTextVisuallyHidden && (\n <Label\n id={id}\n isInverse={isInverse}\n style={labelStyle}\n theme={theme}\n >\n {labelText}\n </Label>\n )}\n {children}\n\n <InputMessage\n id={descriptionId}\n hasError={!!errorMessage}\n isInverse={isInverse}\n >\n {(errorMessage || helperMessage) && (\n <>{errorMessage ? errorMessage : helperMessage}</>\n )}\n </InputMessage>\n </FormGroupContext.Provider>\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface StyledLabelProps {\n children?: any;\n htmlFor: string;\n isInverse?: boolean;\n style?: React.CSSProperties;\n}\n\nconst StyledLabelComponent = styled.label<StyledLabelProps>`\n align-items: flex-start;\n color: ${props =>\n props.isInverse ? props.theme.colors.neutral08 : 'inherit'};\n display: flex;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n margin: 0;\n padding: ${props => props.theme.spaceScale.spacing03} 0;\n`;\n\nexport const StyledLabel: React.FunctionComponent<StyledLabelProps> = ({\n children,\n htmlFor,\n isInverse,\n style,\n}: StyledLabelProps) => (\n <ThemeContext.Consumer>\n {theme => (\n <StyledLabelComponent\n htmlFor={htmlFor}\n isInverse={isInverse}\n style={style}\n theme={theme}\n >\n {children}\n </StyledLabelComponent>\n )}\n </ThemeContext.Consumer>\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nexport interface ContainerProps {\n children?: any;\n style?: React.CSSProperties;\n}\n\nconst StyledContainerComponent = styled.div<ContainerProps>`\n align-items: baseline;\n display: flex;\n flex-wrap: nowrap;\n position: relative;\n`;\n\nexport const StyledContainer: React.FunctionComponent<ContainerProps> = ({\n children,\n style,\n}: ContainerProps) => (\n <StyledContainerComponent style={style}>{children}</StyledContainerComponent>\n);\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n DisplayInputStyles,\n DisplayInputActiveStyles,\n buildDisplayInputActiveBackground,\n buildDisplayInputBorderColor,\n buildDisplayInputFocusStyles,\n} from '../SelectionControls/InputStyles';\nimport { FormGroupContext } from '../FormGroup';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { InputMessage } from '../Input/InputMessage';\nimport { CheckBoxIcon, CheckBoxOutlineBlankIcon } from 'react-magma-icons';\nimport { StyledLabel } from '../SelectionControls/StyledLabel';\nimport { StyledContainer } from '../SelectionControls/StyledContainer';\nimport styled from '@emotion/styled';\nimport { omit, useGenerateId } from '../../utils';\nimport { useIsInverse } from '../../inverse';\n\nexport enum CheckboxTextPosition {\n left = 'left',\n right = 'right', // default\n}\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * If true, element is checked (i.e. selected)\n * @default false\n */\n checked?: boolean;\n /**\n * Hex code for the background color\n * @default #0000FF\n */\n color?: string;\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * If true, checkbox is checked on first render\n */\n defaultChecked?: boolean;\n /**\n * If true, element is disabled\n * @default false\n */\n disabled?: boolean;\n /**\n * Content of the error message for an individual checkbox. If a value is provided, the input will be styled as an error state and the error message will display.\n */\n errorMessage?: React.ReactNode;\n /*\n * @internal\n */\n hasError?: boolean;\n /**\n * Style properties for the checkbox element\n */\n inputStyle?: React.CSSProperties;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content of label; can be node or string\n */\n labelText: React.ReactNode;\n testId?: string;\n /**\n * Whether the label appears to the left of the right of the checkbox\n * @default CheckboxTextPosition.right\n */\n textPosition?: CheckboxTextPosition;\n}\n\nexport const HiddenLabelText = styled.span`\n ${HiddenStyles};\n`;\n\nexport const HiddenInput = styled.input`\n ${HiddenStyles};\n`;\n\nfunction buildCheckIconColor(props) {\n if (props.disabled) {\n if (props.isInverse) {\n return props.theme.colors.tint04;\n }\n return props.theme.colors.neutral05;\n }\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.isChecked || props.isIndeterminate) {\n return props.color;\n }\n return props.theme.colors.neutral02;\n}\n\nexport const StyledFakeInput = styled.span<{\n isChecked?: boolean;\n color: string;\n disabled?: boolean;\n isIndeterminate?: boolean;\n isInverse?: boolean;\n hasError?: boolean;\n textPosition?: CheckboxTextPosition;\n theme?: any;\n}>`\n ${DisplayInputStyles};\n border: 2px solid;\n border-color: ${props => buildDisplayInputBorderColor(props)};\n color: ${props => buildCheckIconColor(props)};\n cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};\n margin: ${props =>\n props.textPosition === 'left'\n ? `${props.theme.spaceScale.spacing01} 0 0 ${props.theme.spaceScale.spacing03}`\n : `0 ${props.theme.spaceScale.spacing03} 0 0`};\n\n svg {\n flex-shrink: 0;\n pointer-events: none;\n transition: all 0.2s ease-out;\n }\n\n ${HiddenInput}:focus + label & {\n &:before {\n ${props => buildDisplayInputFocusStyles(props)};\n }\n }\n\n &:after {\n // active state\n background: ${props => buildDisplayInputActiveBackground(props)};\n top: -10px;\n left: -10px;\n }\n\n /* prettier-ignore */\n ${HiddenInput}:not(:disabled):active + label & {\n &:after {\n ${DisplayInputActiveStyles}\n }\n }\n`;\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (props, ref) => {\n const { checked, id: defaultId, defaultChecked, onChange } = props;\n const [isChecked, updateIsChecked] = React.useState(\n Boolean(defaultChecked) || Boolean(checked)\n );\n\n const id = useGenerateId(defaultId);\n const isControlled = typeof checked === 'boolean' ? true : false;\n\n React.useEffect(() => {\n if (typeof checked === 'boolean') {\n updateIsChecked(checked);\n }\n }, [checked]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { checked: targetChecked } = event.target;\n\n onChange && typeof onChange === 'function' && onChange(event);\n\n if (!isControlled) {\n updateIsChecked(targetChecked);\n }\n }\n\n const theme = React.useContext(ThemeContext);\n const context = React.useContext(FormGroupContext);\n\n const {\n color = theme.colors.primary,\n containerStyle,\n disabled,\n errorMessage,\n inputStyle,\n labelStyle,\n labelText,\n isTextVisuallyHidden,\n testId,\n textPosition,\n ...rest\n } = props;\n const other = omit(['defaultChecked'], rest);\n\n const descriptionId = errorMessage && `${id}__desc`;\n const groupDescriptionId = context.descriptionId;\n\n const describedBy =\n descriptionId && groupDescriptionId\n ? `${groupDescriptionId} ${descriptionId}`\n : descriptionId\n ? descriptionId\n : groupDescriptionId\n ? groupDescriptionId\n : null;\n\n const hasError = context.hasError || !!errorMessage;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <>\n <StyledContainer style={containerStyle}>\n <HiddenInput\n {...other}\n aria-describedby={describedBy}\n id={id}\n data-testid={testId}\n checked={isChecked}\n disabled={disabled}\n ref={ref}\n type=\"checkbox\"\n onChange={handleChange}\n />\n <StyledLabel htmlFor={id} isInverse={isInverse} style={labelStyle}>\n {!isTextVisuallyHidden &&\n textPosition === CheckboxTextPosition.left &&\n labelText}\n\n <StyledFakeInput\n isChecked={isChecked}\n color={color}\n disabled={disabled}\n hasError={hasError}\n isInverse={isInverse}\n style={inputStyle}\n textPosition={textPosition}\n theme={theme}\n >\n {isChecked ? (\n <CheckBoxIcon size={theme.iconSizes.medium} />\n ) : (\n <CheckBoxOutlineBlankIcon size={theme.iconSizes.medium} />\n )}\n </StyledFakeInput>\n\n {isTextVisuallyHidden ? (\n <HiddenLabelText>{labelText}</HiddenLabelText>\n ) : (\n textPosition !== CheckboxTextPosition.left &&\n labelText &&\n labelText\n )}\n </StyledLabel>\n </StyledContainer>\n {!!errorMessage && (\n <InputMessage id={descriptionId} hasError isInverse={isInverse}>\n {errorMessage}\n </InputMessage>\n )}\n </>\n );\n }\n);\n","import * as React from 'react';\nimport { ThemeInterface } from '../../theme/magma';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { InverseContext, useIsInverse } from '../../inverse';\nimport { convertStyleValueToString } from '../../utils';\nimport styled from '@emotion/styled';\n\n/**\n * @children required\n */\nexport interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n isInverse?: boolean;\n /**\n * Left/right padding, set by CSS. If a number is provided, value will be in pixels\n */\n gutterWidth?: number | string;\n /**\n * Max-width of the component, set by CSS. If a number is provided, value will be in pixels\n */\n maxWidth?: number | string;\n testId?: string;\n}\n\nconst StyledContainer = styled.div<{\n gutterWidth: string;\n isInverse?: boolean;\n maxWidth: string;\n theme: ThemeInterface;\n}>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: flow-root;\n margin: 0 auto;\n max-width: ${props => props.maxWidth};\n padding: ${props => `0 ${props.gutterWidth}`};\n`;\n\nexport const Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n (props, ref) => {\n const theme = React.useContext(ThemeContext);\n const {\n children,\n gutterWidth = theme.spaceScale.spacing06,\n maxWidth,\n testId,\n ...other\n } = props;\n\n const gutterWidthString = convertStyleValueToString(gutterWidth);\n const maxWidthString = convertStyleValueToString(maxWidth, 'none');\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <InverseContext.Provider\n value={{\n isInverse,\n }}\n >\n <StyledContainer\n ref={ref}\n data-testid={testId}\n gutterWidth={gutterWidthString}\n isInverse={isInverse}\n maxWidth={maxWidthString}\n theme={theme}\n {...other}\n >\n {children}\n </StyledContainer>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\n\nexport function useControlled({ controlled, default: defaultProp }) {\n const { current: isControlled } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n\n return [value, setValueIfUncontrolled];\n}\n","import { useControlled } from './useControlled';\n\nexport interface UseDataPaginationProps<PaginatedItem> {\n /**\n * Number of items per page by default when uncontrolled\n * @default 10\n */\n defaultItemsPerPage?: number;\n /**\n * Array of items to be displayed\n */\n items?: PaginatedItem[];\n /**\n * Number of items per page\n */\n itemsPerPage?: number;\n /**\n * Event that fires when the number of items per page is changed\n */\n onItemsPerPageChange?: (newRowsPerPage: number) => void;\n}\nexport interface UseDataPaginationReturn<PaginatedItem> {\n getPageItems: (page: number) => PaginatedItem[];\n itemsPerPage: number;\n length: number;\n onItemsPerPageChange: (newItemsPerPage: number) => void;\n}\n\nexport function useDataPagination<T>(\n props: UseDataPaginationProps<T> = {}\n): UseDataPaginationReturn<T> {\n const {\n defaultItemsPerPage = 10,\n items = [],\n itemsPerPage: itemsPerPageProp,\n onItemsPerPageChange,\n } = props;\n\n const [itemsPerPage, setItemsPerPageState] = useControlled({\n controlled: itemsPerPageProp,\n default: defaultItemsPerPage,\n });\n\n function handleItemsPerPageChange(newItemsPerPage: number) {\n if (!itemsPerPageProp) {\n setItemsPerPageState(newItemsPerPage);\n }\n\n onItemsPerPageChange &&\n typeof onItemsPerPageChange === 'function' &&\n onItemsPerPageChange(newItemsPerPage);\n }\n\n const getPageItems = (page: number) => {\n const isLastPage = page * itemsPerPage >= items.length;\n\n const start = (page - 1) * itemsPerPage;\n const end = isLastPage ? items.length : page * itemsPerPage;\n\n return items.slice(start, end);\n };\n\n const length = Math.ceil(items.length / itemsPerPage);\n\n return {\n getPageItems,\n itemsPerPage,\n length,\n onItemsPerPageChange: handleItemsPerPageChange,\n };\n}\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\n\n/**\n * @children required\n */\nexport interface VisuallyHiddenProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nconst VisuallyHiddenDiv = styled.div`\n ${HiddenStyles}\n`;\n\nexport const VisuallyHidden: React.FunctionComponent<VisuallyHiddenProps> = props => {\n const { children, testId, ...other } = props;\n return (\n <VisuallyHiddenDiv {...other} data-testid={testId}>\n {children}\n </VisuallyHiddenDiv>\n );\n};\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n CheckboxProps,\n HiddenLabelText,\n HiddenInput,\n StyledFakeInput,\n} from '../Checkbox';\nimport {\n CheckBoxIcon,\n CheckBoxOutlineBlankIcon,\n IndeterminateCheckBoxIcon,\n} from 'react-magma-icons';\nimport { FormGroupContext } from '../FormGroup';\nimport { InputMessage } from '../Input/InputMessage';\nimport { StyledLabel } from '../SelectionControls/StyledLabel';\nimport { StyledContainer } from '../SelectionControls/StyledContainer';\nimport { useGenerateId, Omit } from '../../utils';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { Announce } from '../Announce';\nimport { I18nContext } from '../../i18n';\nimport { useIsInverse } from '../../inverse';\n\nexport interface IndeterminateCheckboxProps\n extends Omit<CheckboxProps, 'checked'> {\n /**\n * Status of the indeterminate, three-state checkbox, which includes and indeterminate (e.g. mixed) option.\n * @default IndeterminateCheckboxStatus.unchecked\n */\n status: IndeterminateCheckboxStatus;\n testId?: string;\n}\n\nexport enum IndeterminateCheckboxStatus {\n checked = 'checked',\n indeterminate = 'indeterminate',\n unchecked = 'unchecked', //default\n}\n\nexport const IndeterminateCheckbox = React.forwardRef<\n HTMLInputElement,\n IndeterminateCheckboxProps\n>((props, ref) => {\n const [isChecked, updateIsChecked] = React.useState(\n props.status === 'indeterminate'\n ? false\n : Boolean(props.status === 'checked')\n );\n\n const id = useGenerateId(props.id);\n\n React.useEffect(() => {\n updateIsChecked(\n props.status === 'indeterminate'\n ? false\n : Boolean(props.status === 'checked')\n );\n }, [props.status]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { checked: targetChecked } = event.target;\n\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n\n if (props.status !== 'indeterminate') {\n updateIsChecked(targetChecked);\n }\n }\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n const context = React.useContext(FormGroupContext);\n\n const {\n color = theme.colors.primary,\n containerStyle,\n disabled,\n errorMessage,\n inputStyle,\n labelStyle,\n labelText,\n isTextVisuallyHidden,\n status,\n testId,\n ...other\n } = props;\n\n const isIndeterminate = status === 'indeterminate';\n const isUnchecked = status === 'unchecked';\n\n function replaceLabelTextForAnnounceText(baseAnnounceText) {\n return baseAnnounceText.replace(\n /\\{labelText\\}/g,\n getStringifiedLabelText(labelText)\n );\n }\n\n function getStringifiedLabelText(node) {\n if (['string', 'number'].includes(typeof node)) return node;\n if (node instanceof Array)\n return node.map(getStringifiedLabelText).join('');\n if (typeof node === 'object' && node)\n return getStringifiedLabelText(node.props.children);\n }\n\n const showAnnounce = isChecked || isIndeterminate || isUnchecked;\n const announceText = isChecked\n ? replaceLabelTextForAnnounceText(\n i18n.indeterminateCheckbox.isCheckedAnnounce\n )\n : isIndeterminate\n ? replaceLabelTextForAnnounceText(\n i18n.indeterminateCheckbox.isIndeterminateAnnounce\n )\n : isUnchecked\n ? replaceLabelTextForAnnounceText(\n i18n.indeterminateCheckbox.isUncheckedAnnounce\n )\n : '';\n\n const descriptionId = errorMessage ? `${id}__desc` : null;\n const groupDescriptionId = context.descriptionId;\n\n const describedBy =\n descriptionId && groupDescriptionId\n ? `${groupDescriptionId} ${descriptionId}`\n : descriptionId\n ? descriptionId\n : groupDescriptionId\n ? groupDescriptionId\n : null;\n\n const hasError = context.hasError || !!errorMessage;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <>\n <StyledContainer style={containerStyle}>\n <HiddenInput\n {...other}\n aria-describedby={describedBy}\n checked={isChecked}\n data-testid={testId}\n disabled={disabled}\n id={id}\n ref={ref}\n type=\"checkbox\"\n onChange={handleChange}\n />\n <StyledLabel htmlFor={id} isInverse={isInverse} style={labelStyle}>\n <StyledFakeInput\n isChecked={isChecked}\n color={color}\n disabled={disabled}\n hasError={hasError}\n isIndeterminate={isIndeterminate}\n isInverse={isInverse}\n style={inputStyle}\n theme={theme}\n >\n {isIndeterminate ? (\n <IndeterminateCheckBoxIcon\n testId=\"indeterminateIcon\"\n size={theme.iconSizes.medium}\n />\n ) : isChecked ? (\n <CheckBoxIcon size={theme.iconSizes.medium} />\n ) : (\n <CheckBoxOutlineBlankIcon size={theme.iconSizes.medium} />\n )}\n </StyledFakeInput>\n {isTextVisuallyHidden ? (\n <HiddenLabelText>{labelText}</HiddenLabelText>\n ) : (\n labelText\n )}\n </StyledLabel>\n <Announce>\n {showAnnounce && <VisuallyHidden>{announceText}</VisuallyHidden>}\n </Announce>\n </StyledContainer>\n {!!errorMessage && (\n <InputMessage\n id={descriptionId}\n hasError\n isInverse={isInverse}\n style={{ paddingLeft: theme.spaceScale.spacing08 }}\n >\n {errorMessage}\n </InputMessage>\n )}\n </>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\n/**\n * @children required\n */\nexport interface TableProps extends React.HTMLAttributes<HTMLTableElement> {\n /**\n * Relative padding of the table cells\n * @default TableDensity.normal\n */\n density?: TableDensity;\n /**\n * If true, row will be visually highlighted on hover\n */\n hasHoverStyles?: boolean;\n /**\n * If true, columns will have vertical borders\n */\n hasVerticalBorders?: boolean;\n /**\n * If true, every other row will have a background color\n */\n hasZebraStripes?: boolean;\n isInverse?: boolean;\n /**\n * @internal\n */\n isSelectable?: boolean;\n /**\n * Minimum width for the table in pixels\n * @default 600\n */\n minWidth?: number;\n rowCount?: number;\n selectedItems?: Array<number>;\n testId?: string;\n}\n\nexport enum TableDensity {\n compact = 'compact',\n loose = 'loose',\n normal = 'normal', // default\n}\n\nexport enum TableCellAlign {\n center = 'center',\n inherit = 'inherit',\n justify = 'justify',\n left = 'left', // default\n right = 'right',\n}\n\nexport enum TableSortDirection {\n ascending = 'ascending',\n descending = 'descending',\n none = 'none', // default\n}\n\nexport enum TableRowColor {\n danger = 'danger',\n info = 'info',\n success = 'success',\n warning = 'warning',\n}\n\ninterface TableContextInterface {\n density?: TableDensity;\n hasHoverStyles?: boolean;\n hasVerticalBorders?: boolean;\n hasZebraStripes?: boolean;\n isInverse?: boolean;\n isSelectable?: boolean;\n rowCount?: number;\n selectedItems?: Array<number>;\n}\n\nexport const TableContext = React.createContext<TableContextInterface>({\n density: TableDensity.normal,\n hasHoverStyles: false,\n hasZebraStripes: false,\n hasVerticalBorders: false,\n isInverse: false,\n isSelectable: false,\n rowCount: 0,\n selectedItems: [],\n});\n\nconst TableContainer = styled.div`\n overflow-x: auto;\n`;\n\nconst StyledTable = styled.table<{ isInverse?: boolean; minWidth: number }>`\n border-collapse: collapse;\n border-spacing: 0;\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: table;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n min-width: ${props => props.minWidth}px;\n width: 100%;\n`;\n\nexport const Table = React.forwardRef<HTMLTableElement, TableProps>(\n (props, ref) => {\n const {\n children,\n density,\n hasHoverStyles,\n hasVerticalBorders,\n hasZebraStripes,\n isSelectable,\n minWidth,\n rowCount,\n selectedItems,\n testId,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <TableContext.Provider\n value={{\n density,\n hasHoverStyles,\n hasZebraStripes,\n hasVerticalBorders,\n isInverse: isInverse,\n isSelectable,\n }}\n >\n <TableContainer>\n <StyledTable\n {...other}\n data-testid={testId}\n isInverse={isInverse}\n minWidth={minWidth || theme.breakpoints.small}\n ref={ref}\n theme={theme}\n >\n {children}\n </StyledTable>\n </TableContainer>\n </TableContext.Provider>\n );\n }\n);\n","import * as React from 'react';\n\n/**\n * @children required\n */\nexport interface TableBodyProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n testId?: string;\n}\n\nexport const TableBody = React.forwardRef<\n HTMLTableSectionElement,\n TableBodyProps\n>((props, ref) => {\n const { children, testId, ...other } = props;\n return (\n <tbody {...other} ref={ref} data-testid={testId}>\n {children}\n </tbody>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { TableCellAlign, TableContext, TableDensity } from './Table';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface TableCellProps\n extends React.HTMLAttributes<HTMLTableCellElement> {\n /**\n * Text alignment of the cell content. Right alignment should be used for numeric values\n * @default TableCellAlign.left\n */\n align?: TableCellAlign;\n testId?: string;\n /**\n * Width of the component, set by CSS\n * @default auto\n */\n width?: string | number;\n}\n\nexport const baseTableCellStyle = props => css`\n border-right: ${props.hasVerticalBorders ? '1px solid' : 0};\n border-color: ${props.isInverse\n ? props.theme.colors.tint04\n : props.theme.colors.neutral06};\n display: table-cell;\n font-size: inherit;\n line-height: inherit;\n padding: ${buildCellPaddingStyle(props.density, props.theme)};\n text-align: ${props.textAlign};\n\n &:last-of-type {\n border-right: 0;\n }\n`;\n\nexport function buildCellPaddingStyle(density, theme: any) {\n switch (density) {\n case 'compact':\n return `${theme.spaceScale.spacing02} ${theme.spaceScale.spacing03}`;\n case 'loose':\n return `${theme.spaceScale.spacing06} ${theme.spaceScale.spacing08}`;\n\n default:\n return `${theme.spaceScale.spacing04} ${theme.spaceScale.spacing05}`;\n }\n}\n\nconst StyledCell = styled.td<{\n density?: TableDensity;\n hasVerticalBorders?: boolean;\n isInverse?: boolean;\n textAlign?: TableCellAlign;\n theme?: any;\n width?: string;\n}>`\n ${baseTableCellStyle}\n\n ${props =>\n props.width &&\n css`\n width: ${props.width};\n `}\n`;\n\nexport const TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n (props, ref) => {\n const { align, children, testId, width, ...other } = props;\n const tableContext = React.useContext(TableContext);\n const theme = React.useContext(ThemeContext);\n\n const widthString = typeof width === 'number' ? `${width}px` : width;\n\n return (\n <StyledCell\n {...other}\n data-testid={testId}\n density={tableContext.density}\n hasVerticalBorders={tableContext.hasVerticalBorders}\n isInverse={tableContext.isInverse}\n ref={ref}\n textAlign={align || TableCellAlign.left}\n theme={theme}\n width={widthString}\n >\n {children}\n </StyledCell>\n );\n }\n);\n\nTableCell.displayName = 'TableCell';\n","import * as React from 'react';\n\n/**\n * @children required\n */\nexport interface TableHeadProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n testId?: string;\n}\n\nexport const TableHead = React.forwardRef<\n HTMLTableSectionElement,\n TableHeadProps\n>((props, ref) => {\n const { children, testId, ...other } = props;\n return (\n <thead {...other} ref={ref} data-testid={testId}>\n {children}\n </thead>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { baseTableCellStyle, buildCellPaddingStyle } from './TableCell';\nimport {\n TableCellAlign,\n TableContext,\n TableDensity,\n TableSortDirection,\n} from './Table';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { SortDoubleArrowIcon, SouthIcon, NorthIcon } from 'react-magma-icons';\n\nexport interface TableHeaderCellProps\n extends React.HTMLAttributes<HTMLTableHeaderCellElement> {\n /**\n * Text alignment of the cell content. Right alignment should be used for numeric values\n * @default TableCellAlign.left\n */\n align?: TableCellAlign;\n /**\n * @default false\n * If true, style as a row header rather than a column header\n */\n isRowHeader?: boolean;\n /**\n * If true, the header will render a button for sorting\n */\n isSortable?: boolean;\n /**\n * Event that fires when clicking the table header cell sort button\n */\n onSort?: () => void;\n /**\n * Direction and range of data cells that are covered by the header cell\n * @default TableHeaderCellScope.col\n */\n scope?: TableHeaderCellScope;\n /**\n * Direction by which the column is sorted\n * @default TableSortDirection.none\n */\n sortDirection?: TableSortDirection;\n testId?: string;\n /**\n * Width of the component, set by CSS\n * @default auto\n */\n width?: string | number;\n}\n\nexport enum TableHeaderCellScope {\n col = 'col',\n colgroup = 'colgroup',\n row = 'row',\n rowgroup = 'rowgroup',\n}\n\nconst StyledTableHeaderCell = styled.th<{\n density?: TableDensity;\n hasVerticalBorders?: boolean;\n isInverse?: boolean;\n isRowHeader?: boolean;\n isSortable?: boolean;\n textAlign?: TableCellAlign;\n width?: string;\n}>`\n ${props => {\n return props.isRowHeader\n ? {}\n : {\n background: props.isInverse\n ? props.theme.colors.tint03\n : props.theme.colors.neutral07,\n borderBottom: '2px solid',\n fontWeight: 'bold',\n verticalAlign: 'bottom',\n };\n }}\n\n ${baseTableCellStyle}\n\n ${props =>\n props.isSortable &&\n css`\n padding: 0;\n `}\n\n ${props =>\n props.width &&\n css`\n width: ${props.width};\n `}\n`;\n\nconst SortButton = styled.button<{\n density?: TableDensity;\n isInverse?: boolean;\n textAlign?: TableCellAlign;\n}>`\n align-items: flex-end;\n background: none;\n border: 0;\n color: inherit;\n display: flex;\n justify-content: ${props =>\n props.textAlign === TableCellAlign.right ? 'flex-end' : 'flex-start'};\n margin: 0;\n padding: ${props => buildCellPaddingStyle(props.density, props.theme)}};\n text-align: left;\n width: 100%;\n\n &:focus {\n outline: 2px dotted\n ${props =>\n props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: -2px;\n }\n\n &:hover,\n &:focus {\n background: ${props =>\n props.isInverse ? props.theme.colors.tint : props.theme.colors.neutral06};\n\n svg {\n fill: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n }\n }\n`;\n\nconst IconWrapper = styled.span`\n padding-left: ${props => props.theme.spaceScale.spacing03};\n position: relative;\n top: ${props => props.theme.spaceScale.spacing02};\n`;\n\nexport const TableHeaderCell = React.forwardRef<\n HTMLTableCellElement,\n TableHeaderCellProps\n>((props, ref) => {\n const {\n align,\n children,\n isRowHeader = false,\n isSortable,\n onSort,\n scope = isRowHeader ? TableHeaderCellScope.row : TableHeaderCellScope.col,\n sortDirection,\n testId,\n width,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const tableContext = React.useContext(TableContext);\n\n function handleSort() {\n onSort && typeof onSort === 'function' && onSort();\n }\n\n const SortIcon =\n sortDirection === TableSortDirection.ascending ? (\n <SouthIcon size={theme.iconSizes.small} />\n ) : sortDirection === TableSortDirection.descending ? (\n <NorthIcon size={theme.iconSizes.small} />\n ) : (\n <SortDoubleArrowIcon\n color={\n tableContext.isInverse\n ? theme.colors.neutral06\n : theme.colors.neutral04\n }\n size={theme.iconSizes.small}\n />\n );\n\n const widthString = typeof width === 'number' ? `${width}px` : width;\n\n return (\n <StyledTableHeaderCell\n {...other}\n data-testid={testId}\n density={tableContext.density}\n hasVerticalBorders={tableContext.hasVerticalBorders}\n isInverse={tableContext.isInverse}\n ref={ref}\n isRowHeader={isRowHeader}\n isSortable={isSortable}\n scope={scope}\n textAlign={align || TableCellAlign.left}\n theme={theme}\n width={widthString}\n >\n {isSortable ? (\n <SortButton\n density={tableContext.density}\n isInverse={tableContext.isInverse}\n onClick={handleSort}\n textAlign={align || TableCellAlign.left}\n theme={theme}\n >\n <span>{children}</span>\n <IconWrapper theme={theme}>{SortIcon}</IconWrapper>\n </SortButton>\n ) : (\n <>{children}</>\n )}\n </StyledTableHeaderCell>\n );\n});\n\nTableHeaderCell.displayName = 'TableHeaderCell';\n","import React from 'react';\nimport { I18nContext } from '../../i18n';\nimport { useControlled } from '../../hooks/useControlled';\n\nexport interface UsePaginationProps {\n /**\n * The total number of Pagination buttons\n * @default 1\n */\n count?: number;\n /**\n * Page selected by default when the component is uncontrolled\n */\n defaultPage?: number;\n /**\n * If true, disables all of the Pagination buttons\n * @default false\n */\n disabled?: boolean;\n /**\n * If true, hides the next page button\n * @default false\n */\n hideNextButton?: boolean;\n /**\n * If true, hides the previous page button\n * @default false\n */\n hidePreviousButton?: boolean;\n /**\n * Number of page buttons before and after the current page\n * @default 1\n */\n numberOfAdjacentPages?: number;\n /**\n * Number of page buttons at the beginning and end of the page number buttons list\n * @default 1\n */\n numberOfEdgePages?: number;\n /**\n * Event that fires when the page number changes\n */\n onPageChange?: (event: React.SyntheticEvent, newPage: number) => void;\n /**\n * Current page number\n */\n page?: number;\n /**\n * If true, shows the first page button\n * @default false\n */\n showFirstButton?: boolean;\n /**\n * If true, shows the last page button\n * @default false\n */\n showLastButton?: boolean;\n}\n\nexport function usePagination(props: Partial<UsePaginationProps> = {}) {\n const {\n count = 1,\n defaultPage = 1,\n disabled = false,\n hideNextButton = false,\n hidePreviousButton = false,\n numberOfAdjacentPages = 1,\n numberOfEdgePages = 1,\n onPageChange: handleChange,\n page: pageProp,\n showFirstButton = false,\n showLastButton = false,\n ...other\n } = props;\n\n const i18n = React.useContext(I18nContext);\n\n const [page, setPageState] = useControlled({\n controlled: pageProp,\n default: defaultPage,\n });\n\n const handleClick = (event, value) => {\n if (!pageProp) {\n setPageState(value);\n }\n\n handleChange &&\n typeof handleChange === 'function' &&\n handleChange(event, value);\n };\n\n const range = (start, end) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, i) => start + i);\n };\n\n const startPages = range(1, Math.min(numberOfEdgePages, count));\n const endPages = range(\n Math.max(count - numberOfEdgePages + 1, numberOfEdgePages + 1),\n count\n );\n\n const siblingsStart = Math.max(\n Math.min(\n // Natural start\n page - numberOfAdjacentPages,\n // Lower boundary when page is high\n count - numberOfEdgePages - numberOfAdjacentPages * 2 - 1\n ),\n // Greater than startPages\n numberOfEdgePages + 2\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n // Natural end\n page + numberOfAdjacentPages,\n // Upper boundary when page is low\n numberOfEdgePages + numberOfAdjacentPages * 2 + 2\n ),\n // Less than endPages\n endPages.length > 0 ? endPages[0] - 2 : count - 1\n );\n\n // Basic list of items to render\n const itemList = [\n ...(showFirstButton ? ['first'] : []),\n ...(hidePreviousButton ? [] : ['previous']),\n ...startPages,\n\n // Start ellipsis\n ...(siblingsStart > numberOfEdgePages + 2\n ? ['start-ellipsis']\n : numberOfEdgePages + 1 < count - numberOfEdgePages\n ? [numberOfEdgePages + 1]\n : []),\n\n // Sibling pages\n ...range(siblingsStart, siblingsEnd),\n\n // End ellipsis\n ...(siblingsEnd < count - numberOfEdgePages - 1\n ? ['end-ellipsis']\n : count - numberOfEdgePages > numberOfEdgePages\n ? [count - numberOfEdgePages]\n : []),\n\n ...endPages,\n ...(hideNextButton ? [] : ['next']),\n ...(showLastButton ? ['last'] : []),\n ];\n\n // Map the button type to its page number\n const buttonPage = type => {\n switch (type) {\n case 'first':\n return 1;\n case 'previous':\n return page - 1;\n case 'next':\n return page + 1;\n case 'last':\n return count;\n default:\n return null;\n }\n };\n\n // Convert the basic item list to PaginationItem props objects\n const pageButtons = itemList.map(item => {\n return typeof item === 'number'\n ? {\n onClick: event => {\n handleClick(event, item);\n },\n type: 'page',\n page: item,\n isSelected: item === page,\n disabled,\n 'aria-current': item === page ? 'true' : undefined,\n 'aria-label': `${i18n.pagination.pageButtonLabel} ${item}`,\n }\n : {\n onClick: event => {\n handleClick(event, buttonPage(item));\n },\n type: item,\n page: buttonPage(item),\n isSelected: false,\n disabled:\n disabled ||\n (item.indexOf('ellipsis') === -1 &&\n (item === 'next' || item === 'last' ? page >= count : page <= 1)),\n };\n });\n\n return {\n page,\n pageButtons,\n setPageState,\n ...other,\n };\n}\n","import React from 'react';\n\nexport function registerDescendant(\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n) {\n if (\n itemRefArray.current.find(\n ({ current: item }) => item === itemRef.current\n ) == null\n ) {\n const index = itemRefArray.current.findIndex(({ current: item }) => {\n if (!item || !itemRef.current) return false;\n\n return Boolean(\n item.compareDocumentPosition(itemRef.current) &\n Node.DOCUMENT_POSITION_PRECEDING\n );\n });\n\n const newItem = itemRef;\n\n itemRefArray.current =\n index === -1\n ? [...itemRefArray.current, newItem]\n : [\n ...itemRefArray.current.slice(0, index),\n newItem,\n ...itemRefArray.current.slice(index),\n ];\n }\n}\n\nexport function unregisterDescendant(\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n) {\n if (!itemRef.current) return;\n\n itemRefArray.current = itemRefArray.current.filter(\n item => itemRef.current !== item.current\n );\n}\n\nexport function useDescendants(): [\n React.MutableRefObject<React.MutableRefObject<Element>[]>,\n (\n refArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n ref: React.MutableRefObject<Element>\n ) => void,\n (\n refArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n ref: React.MutableRefObject<Element>\n ) => void\n] {\n const itemRefArray = React.useRef<React.MutableRefObject<Element>[]>([]);\n\n return [itemRefArray, registerDescendant, unregisterDescendant];\n}","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { useDescendants } from '../../hooks/useDescendants';\nimport { useForkedRef } from '../../utils';\n\nexport enum DropdownDropDirection {\n down = 'down', //default\n left = 'left',\n right = 'right',\n up = 'up',\n}\n\nexport enum DropdownAlignment {\n start = 'start', //default\n end = 'end',\n}\n\nexport interface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Index of the item that will active/selected. If none is provided, no item will appear active\n * @default -1\n */\n activeIndex?: number;\n /**\n * Alignment of the dropdown content\n * @default `DropdownAlignment.start`\n */\n alignment?: DropdownAlignment;\n /**\n * Position of the dropdown content\n * @default `DropdownDropDirection.down`\n */\n dropDirection?: DropdownDropDirection;\n /**\n * Max-height of dropdown content\n * @default 250px\n */\n maxHeight?: string | number;\n /**\n * Function called on dropdown close before focusing the toggle button\n * @deprecated true\n */\n onBeforeShiftFocus?: (event: React.SyntheticEvent) => void;\n /**\n * Function called when closing the dropdown menu\n */\n onClose?: (event: React.SyntheticEvent) => void;\n /**\n * Function called when opening the dropdown menu\n */\n onOpen?: () => void;\n testId?: string;\n /**\n * Width of menu\n * @default Width of longest menu item\n */\n width?: string | number;\n}\n\nconst Container = styled.div`\n display: inline-block;\n position: relative;\n`;\n\ninterface DropdownContextInterface {\n activeItemIndex?: number;\n alignment?: DropdownAlignment;\n closeDropdown?: (event: React.SyntheticEvent | React.KeyboardEvent) => void;\n dropdownButtonId?: React.MutableRefObject<string>;\n dropDirection?: DropdownDropDirection;\n handleDropdownBlur?: (event: React.FocusEvent) => void;\n itemRefArray?: React.MutableRefObject<React.MutableRefObject<Element>[]>;\n isFixedWidth?: boolean;\n isOpen?: boolean;\n maxHeight?: string;\n menuRef?: any;\n openDropdown?: () => void;\n registerDropdownMenuItem: (\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n ) => void;\n setActiveItemIndex?: React.Dispatch<React.SetStateAction<number>>;\n setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;\n toggleRef?: any;\n width?: string;\n}\n\nexport const DropdownContext = React.createContext<DropdownContextInterface>({\n isOpen: false,\n registerDropdownMenuItem: (elements, element) => {},\n setIsOpen: () => false,\n});\n\nexport const useDropdownContext = () => React.useContext(DropdownContext);\n\nexport const Dropdown = React.forwardRef<HTMLDivElement, DropdownProps>(\n (props, forwardedRef) => {\n const {\n activeIndex,\n alignment,\n children,\n dropDirection,\n maxHeight,\n onBeforeShiftFocus,\n onClose,\n onOpen,\n testId,\n width,\n ...other\n } = props;\n\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n\n const [activeItemIndex, setActiveItemIndex] = React.useState<number>(\n activeIndex || -1\n );\n\n const ownRef = React.useRef<any>();\n const toggleRef = React.useRef<HTMLButtonElement>();\n const menuRef = React.useRef<any>([]);\n const dropdownButtonId = React.useRef<string>('');\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n const [itemRefArray, registerDropdownMenuItem] = useDescendants();\n\n React.useEffect(() => {\n if (activeIndex >= 0) {\n setActiveItemIndex(activeIndex);\n }\n }, [activeIndex]);\n\n function openDropdown() {\n const [filteredItems] = getFilteredItem();\n\n setIsOpen(true);\n\n setTimeout(() => {\n filteredItems.length > 0 &&\n filteredItems[0].current &&\n filteredItems[0].current.focus();\n }, 0);\n\n onOpen && typeof onOpen === 'function' && onOpen();\n }\n\n function closeDropdown(event) {\n setIsOpen(false);\n\n if (onBeforeShiftFocus && typeof onBeforeShiftFocus === 'function') {\n event.preventMagmaFocus = handlePreventMagmaFocus;\n onBeforeShiftFocus(event);\n }\n\n onClose && typeof onClose === 'function' && onClose(event);\n }\n\n function getFilteredItem(): [any, number] {\n const filteredItems = itemRefArray.current.filter(\n itemRef => itemRef.current\n );\n const filteredItemIndex = filteredItems\n .map(filteredItem => filteredItem.current)\n .indexOf(document.activeElement);\n\n return [filteredItems, filteredItemIndex];\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n closeDropdown(event);\n }\n\n if (event.key === 'ArrowDown') {\n const [filteredItems, filteredItemIndex] = getFilteredItem();\n\n if (filteredItems.length === 0) {\n return;\n }\n\n event.preventDefault();\n\n if (\n filteredItemIndex === -1 ||\n filteredItemIndex === filteredItems.length - 1\n ) {\n filteredItems[0].current.focus();\n } else {\n filteredItems[filteredItemIndex + 1].current.focus();\n }\n }\n\n if (event.key === 'ArrowUp') {\n const [filteredItems, filteredItemIndex] = getFilteredItem();\n\n if (filteredItems.length === 0) {\n return;\n }\n\n event.preventDefault();\n\n if (filteredItemIndex === -1 || filteredItemIndex === 0) {\n filteredItems[filteredItems.length - 1].current.focus();\n } else {\n filteredItems[filteredItemIndex - 1].current.focus();\n }\n }\n }\n\n function handleDropdownBlur(event: React.FocusEvent) {\n const { currentTarget, relatedTarget } = event;\n\n const isInMenu =\n relatedTarget && currentTarget.contains(relatedTarget as Node);\n\n if (!isInMenu && isOpen) {\n closeDropdown(event);\n }\n }\n\n function handlePreventMagmaFocus() {}\n\n const maxHeightString =\n typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\n\n const widthString = typeof width === 'number' ? `${width}px` : width;\n\n return (\n <DropdownContext.Provider\n value={{\n activeItemIndex,\n alignment,\n closeDropdown,\n dropdownButtonId,\n dropDirection,\n handleDropdownBlur,\n itemRefArray,\n isFixedWidth: !!width,\n isOpen,\n maxHeight: maxHeightString,\n menuRef,\n openDropdown,\n registerDropdownMenuItem,\n setActiveItemIndex,\n setIsOpen,\n toggleRef,\n width: widthString,\n }}\n >\n <Container\n {...other}\n ref={ref}\n data-testid={testId}\n onKeyDown={isOpen ? handleKeyDown : null}\n onBlur={handleDropdownBlur}\n >\n {children}\n </Container>\n </DropdownContext.Provider>\n );\n }\n);\n","import { css } from '@emotion/core';\nimport * as React from 'react';\nimport { IconButton, ButtonIconPosition } from '../IconButton';\nimport {\n ArrowDropUpIcon,\n ArrowLeftIcon,\n ArrowRightIcon,\n ArrowDropDownIcon,\n IconProps,\n} from 'react-magma-icons';\nimport { DropdownContext, DropdownDropDirection } from './Dropdown';\nimport { Omit, useForkedRef, useGenerateId, XOR } from '../../utils';\nimport { ButtonProps, ButtonSize } from '../Button';\nimport { useIsInverse } from '../../inverse';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\n\nexport interface IconOnlyDropdownButtonProps\n extends Omit<ButtonProps, 'children'> {\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * The text the screen reader will announce. Required for icon-only buttons\n */\n 'aria-label': string;\n}\n\nexport interface IconTextDropdownButtonProps extends ButtonProps {\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * Position within the button for the icon to appear\n * @default `ButtonIconPosition.right`\n */\n iconPosition?: ButtonIconPosition;\n /**\n * The content of the component\n */\n children: React.ReactChild | React.ReactChild[];\n}\n\nexport type DropdownButtonProps = XOR<\n IconOnlyDropdownButtonProps,\n IconTextDropdownButtonProps\n>;\n\nfunction instanceOfIconOnlyDropdownButton(\n object: any\n): object is IconOnlyDropdownButtonProps {\n return 'icon' in object && !('children' in object);\n}\n\nfunction getButtonPadding(theme: ThemeInterface, size?: ButtonSize) {\n switch (size) {\n case 'small':\n return theme.spaceScale.spacing02;\n case 'large':\n return theme.spaceScale.spacing05;\n default:\n return theme.spaceScale.spacing03;\n }\n}\n\nconst StyledIconButton = styled(IconButton)`\n ${props =>\n props.iconPosition === ButtonIconPosition.right &&\n props.children &&\n css`\n padding-right: ${getButtonPadding(props.theme, props.size)};\n `}\n ${props =>\n props.iconPosition === ButtonIconPosition.left &&\n props.children &&\n css`\n padding-left: ${getButtonPadding(props.theme, props.size)};\n `}\n`;\n\nexport const DropdownButton = React.forwardRef<\n HTMLButtonElement,\n DropdownButtonProps\n>((props, forwardedRef) => {\n const context = React.useContext(DropdownContext);\n const theme = React.useContext(ThemeContext);\n\n context.dropdownButtonId.current = useGenerateId(props.id);\n\n const ref = useForkedRef(context.toggleRef, forwardedRef);\n\n function getButtonIcon(dropDirection: DropdownDropDirection) {\n switch (dropDirection) {\n case DropdownDropDirection.left:\n return <ArrowLeftIcon testId=\"caretLeft\" />;\n case DropdownDropDirection.right:\n return <ArrowRightIcon testId=\"caretRight\" />;\n case DropdownDropDirection.up:\n return <ArrowDropUpIcon testId=\"caretUp\" />;\n\n default:\n return <ArrowDropDownIcon testId=\"caretDown\" />;\n }\n }\n\n const buttonIcon = getButtonIcon(context.dropDirection);\n\n let children;\n const { icon = buttonIcon, iconPosition, ...other } = props;\n\n const isInverse = useIsInverse(props.isInverse);\n\n if (!instanceOfIconOnlyDropdownButton(props)) {\n children = props.children;\n }\n\n function handleClick(event: React.SyntheticEvent) {\n if (context.isOpen) {\n context.closeDropdown(event);\n } else {\n context.openDropdown();\n }\n }\n\n const iconPositionToUse = props.icon\n ? iconPosition\n ? iconPosition\n : ButtonIconPosition.left\n : context.dropDirection === DropdownDropDirection.left\n ? ButtonIconPosition.left\n : ButtonIconPosition.right;\n\n return (\n <StyledIconButton\n {...other}\n aria-expanded={context.isOpen}\n aria-haspopup=\"true\"\n icon={icon}\n iconPosition={iconPositionToUse}\n id={context.dropdownButtonId.current}\n isInverse={isInverse}\n onClick={handleClick}\n ref={ref}\n theme={theme}\n >\n {children}\n </StyledIconButton>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { Card } from '../Card';\nimport {\n DropdownContext,\n DropdownAlignment,\n DropdownDropDirection,\n} from './Dropdown';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useForkedRef } from '../../utils';\n\n/**\n * @children required\n */\nexport interface DropdownContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nconst StyledCard = styled(Card)<{\n alignment?: DropdownAlignment;\n dropDirection?: DropdownDropDirection;\n isOpen?: boolean;\n maxHeight?: string;\n width?: string;\n}>`\n display: ${props => (props.isOpen ? 'block' : 'none')};\n left: ${props => props.theme.spaceScale.spacing02};\n max-height: ${props =>\n props.maxHeight ? props.maxHeight : props.theme.dropdown.content.maxHeight};\n opacity: ${props => (props.isOpen ? '1' : '0')};\n outline: 0;\n overflow-y: auto;\n padding: ${props => props.theme.spaceScale.spacing03} 0;\n position: absolute;\n transition: opacity 0.3s;\n white-space: nowrap;\n z-index: 2;\n\n ${props =>\n props.width &&\n css`\n white-space: normal;\n width: ${props.width};\n `}\n\n ${props =>\n props.dropDirection === 'up' &&\n css`\n top: auto;\n bottom: 100%;\n `}\n\n ${props =>\n props.dropDirection === 'left' &&\n css`\n left: auto;\n right: 100%;\n top: ${props.theme.spaceScale.spacing02};\n `}\n\n ${props =>\n props.dropDirection === 'right' &&\n css`\n left: 100%;\n top: ${props.theme.spaceScale.spacing02};\n `}\n\n ${props =>\n props.alignment === 'end' &&\n props.dropDirection !== 'left' &&\n props.dropDirection !== 'right' &&\n css`\n left: auto;\n right: ${props.theme.spaceScale.spacing02};\n `}\n\n ${props =>\n props.alignment === 'end' &&\n (props.dropDirection === 'left' || props.dropDirection === 'right') &&\n css`\n bottom: ${props.theme.spaceScale.spacing02};\n top: auto;\n `}\n`;\n\nconst StyledDiv = styled.div`\n padding: ${props => props.theme.spaceScale.spacing02} 0;\n`;\n\nexport const DropdownContent = React.forwardRef<\n HTMLDivElement,\n DropdownContentProps\n>((props, forwardedRef) => {\n const { children, testId, ...other } = props;\n const context = React.useContext(DropdownContext);\n const theme = React.useContext(ThemeContext);\n const ref = useForkedRef(forwardedRef, context.menuRef);\n\n return (\n <StyledCard\n {...other}\n alignment={context.alignment}\n dropDirection={context.dropDirection}\n hasDropShadow\n isInverse={false}\n isOpen={context.isOpen}\n maxHeight={context.maxHeight}\n ref={ref}\n tabIndex={-1}\n testId={testId || 'dropdownContent'}\n theme={theme}\n width={context.width}\n >\n <StyledDiv\n aria-labelledby={context.dropdownButtonId.current}\n role=\"menu\"\n theme={theme}\n >\n {children}\n </StyledDiv>\n </StyledCard>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface DropdownDividerProps\n extends React.HTMLAttributes<HTMLHRElement> {\n testId?: string;\n}\n\nconst StyledHr = styled.hr`\n background: ${props => props.theme.colors.neutral06};\n border: 0;\n height: 1px;\n margin: ${props => props.theme.spaceScale.spacing02} 0;\n`;\n\nexport const DropdownDivider: React.FunctionComponent<DropdownDividerProps> = (\n props: DropdownDividerProps\n) => {\n const { testId, ...other } = props;\n\n const theme = React.useContext(ThemeContext);\n return <StyledHr {...other} data-testid={testId} theme={theme} />;\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\n/**\n * @children required\n */\nexport interface DropdownHeaderProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nconst StyledDiv = styled.div`\n color: ${props => props.theme.colors.neutral03};\n font-size: ${props => props.theme.typeScale.size01.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size01.letterSpacing};\n line-height: ${props => props.theme.typeScale.size01.lineHeight};\n font-weight: bold;\n margin: 0;\n padding: ${props =>\n `${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing05} ${props.theme.spaceScale.spacing02}`};\n text-transform: uppercase;\n`;\n\nexport const DropdownHeader = React.forwardRef<\n HTMLDivElement,\n DropdownHeaderProps\n>((props, ref) => {\n const { children, testId, ...other } = props;\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledDiv {...other} data-testid={testId} theme={theme}>\n {children}\n </StyledDiv>\n );\n});\n","import * as React from 'react';\nimport { useGenerateId } from '../../utils';\nimport { DropdownHeader } from './DropdownHeader';\n\n/**\n * @children required\n */\nexport interface DropdownMenuGroupProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Header text to use for the menu group\n */\n header?: React.ReactNode;\n}\n\nexport const DropdownMenuGroup: React.FunctionComponent<DropdownMenuGroupProps> = (\n props: DropdownMenuGroupProps\n) => {\n const { children, id: defaultId, header, ...other } = props;\n\n const id = useGenerateId(defaultId);\n\n return (\n <div {...other} aria-labelledby={id} role=\"group\">\n {header && <DropdownHeader id={id}>{header}</DropdownHeader>}\n {children}\n </div>\n );\n};\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { DropdownContext } from './Dropdown';\nimport { IconProps, CheckIcon } from 'react-magma-icons';\nimport { Omit, useForkedRef } from '../../utils';\n\nexport interface DropdownMenuItemProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onClick'> {\n /**\n * Leading icon for the menu item\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * @internal\n */\n index?: number;\n /**\n * @internal\n */\n isActive?: boolean;\n /**\n * If true, item will be disabled; it will appear dimmed and onClick event (or any other events) will not fire\n * @default false\n */\n disabled?: boolean;\n /**\n * Action that fires when the menu item is clicked. If the menuitem also has a value prop, the value will be passed to the onClick handler\n */\n onClick?: (value?: string | number) => void;\n /**\n * Value of the component, gets passed to the onClick event\n */\n value?: string | number;\n}\n\nexport const MenuItemStyles = props => {\n return css`\n align-items: center;\n color: ${props.disabled\n ? props.theme.colors.disabledText\n : props.theme.colors.neutral};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n display: flex;\n font-size: ${props.theme.typeScale.size03.fontSize};\n line-height: ${props.theme.typeScale.size03.lineHeight};\n margin: 0;\n padding: ${props.isInactive\n ? `${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing05} ${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing11}`\n : `${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing05}`};\n white-space: ${props.isFixedWidth ? 'normal' : 'nowrap'};\n\n &:hover,\n &:focus {\n background: ${props.disabled ? 'none' : props.theme.colors.neutral07};\n color: ${props.disabled\n ? props.theme.colors.disabledText\n : props.theme.colors.neutral};\n }\n\n &:focus {\n outline-offset: -3px;\n }\n `;\n};\n\nconst StyledItem = styled.div<{\n as?: string;\n disabled?: boolean;\n isFixedWidth?: boolean;\n isInactive?: boolean;\n value?: string | number;\n}>`\n ${MenuItemStyles}\n`;\n\nexport const IconWrapper = styled.span`\n color: ${props => props.theme.colors.neutral03};\n display: inline-flex;\n margin-right: ${props => props.theme.spaceScale.spacing05};\n\n svg {\n height: ${props => props.theme.iconSizes.medium}px;\n width: ${props => props.theme.iconSizes.medium}px;\n }\n`;\n\nexport const DropdownMenuItem = React.forwardRef<\n HTMLDivElement,\n DropdownMenuItemProps\n>((props, forwardedRef) => {\n const { children, disabled, icon, onClick, value, ...other } = props;\n\n const ownRef = React.useRef<HTMLDivElement>();\n const theme = React.useContext(ThemeContext);\n const context = React.useContext(DropdownContext);\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n const index = context.itemRefArray.current.findIndex(({ current: item }) => {\n if (!item || !ownRef.current) return false;\n\n return item === ownRef.current;\n });\n\n function handleClick(event: React.SyntheticEvent | React.KeyboardEvent) {\n if (context.activeItemIndex >= 0) {\n context.setActiveItemIndex(index);\n }\n\n if (onClick && !disabled) {\n onClick(value);\n }\n\n if (!disabled && context.activeItemIndex < 0) {\n context.closeDropdown(event);\n }\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n }\n\n const isActive =\n context.activeItemIndex >= 0 && context.activeItemIndex === index;\n\n const isInactive =\n context.activeItemIndex >= 0 && context.activeItemIndex !== index;\n\n React.useEffect(() => {\n if (!disabled)\n context.registerDropdownMenuItem(context.itemRefArray, ownRef);\n }, []);\n\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledItem\n {...other}\n aria-disabled={disabled}\n disabled={disabled}\n isFixedWidth={context.isFixedWidth}\n isInactive={isInactive}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={disabled ? null : ref}\n role=\"menuitem\"\n theme={theme}\n tabIndex={disabled ? null : -1}\n value={value}\n >\n {icon && <IconWrapper theme={theme}>{icon}</IconWrapper>}\n {isActive && (\n <IconWrapper theme={theme}>\n <CheckIcon aria-label={i18n.dropdown.menuItemSelectedAriaLabel} />\n </IconWrapper>\n )}\n {children}\n </StyledItem>\n );\n});\n\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n","import * as React from 'react';\n\nimport { Button, ButtonShape, ButtonStyles, ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ArrowDropUpIcon, ArrowDropDownIcon } from 'react-magma-icons';\nimport { DropdownContext, DropdownDropDirection } from './Dropdown';\nimport { I18nContext } from '../../i18n';\nimport { useForkedRef, useGenerateId } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface DropdownSplitButtonProps extends ButtonStyles {\n /**\n * The text the screen reader will announce. Required for icon-only buttons\n */\n 'aria-label': string;\n /**\n * The content of the component. If no children are provided, the button will render in an icon only style\n */\n children?: any;\n /**\n * Icon to display within the component\n */\n id?: string;\n /**\n * If true, element is disabled\n */\n disabled?: boolean;\n /**\n * Function that fires when the button is clicked\n */\n onClick?: () => void;\n}\n\nexport const DropdownSplitButton = React.forwardRef<\n HTMLButtonElement,\n DropdownSplitButtonProps\n>((props, forwardedRef) => {\n const {\n 'aria-label': ariaLabel,\n children,\n id,\n variant = ButtonVariant.solid,\n onClick,\n ...other\n } = props;\n\n const context = React.useContext(DropdownContext);\n\n const theme = React.useContext(ThemeContext);\n\n const ref = useForkedRef(forwardedRef, context.toggleRef);\n\n context.dropdownButtonId.current = useGenerateId(id);\n\n const buttonIcon =\n context.dropDirection === DropdownDropDirection.up ? (\n <ArrowDropUpIcon size={theme.iconSizes.medium} testId=\"caretUp\" />\n ) : (\n <ArrowDropDownIcon size={theme.iconSizes.medium} testId=\"caretDown\" />\n );\n\n function handleClick(event: React.SyntheticEvent) {\n if (context.isOpen) {\n context.closeDropdown(event);\n } else {\n context.openDropdown();\n }\n }\n\n const i18n = React.useContext(I18nContext);\n\n return (\n <>\n <Button\n {...other}\n id={context.dropdownButtonId.current}\n onClick={onClick}\n shape={ButtonShape.leftCap}\n style={{ borderRight: 0, marginRight: 0 }}\n variant={variant}\n >\n {children}\n </Button>\n <IconButton\n {...other}\n aria-expanded={context.isOpen}\n aria-label={ariaLabel ? ariaLabel : i18n.dropdown.toggleMenuAriaLabel}\n aria-haspopup=\"true\"\n icon={buttonIcon}\n onClick={handleClick}\n shape={ButtonShape.rightCap}\n style={{\n marginLeft:\n variant === ButtonVariant.outline ? 0 : theme.spaceScale.spacing01,\n }}\n ref={ref}\n variant={variant}\n />\n </>\n );\n});\n","import * as React from 'react';\nimport { IconButton } from '../IconButton';\nimport { ButtonColor, ButtonVariant } from '../Button';\nimport { EastIcon, WestIcon } from 'react-magma-icons';\nimport { Label } from '../Label';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { I18nContext } from '../../i18n';\nimport { useIsInverse } from '../../inverse';\nimport { usePagination } from '../Pagination/usePagination';\nimport { XOR } from '../../utils';\nimport { useControlled } from '../../hooks/useControlled';\nimport {\n Dropdown,\n DropdownAlignment,\n DropdownDropDirection,\n DropdownButton,\n DropdownContent,\n DropdownMenuItem,\n} from '../Dropdown';\n\nexport interface BaseTablePaginationProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Position of the dropdown content\n * @default `DropdownDropDirection.up`\n */\n dropdownDropDirection?: DropdownDropDirection;\n /**\n * Total number of rows\n */\n itemCount: number;\n isInverse?: boolean;\n /**\n * Event that fires when the page number changes\n */\n onPageChange?: (event: React.SyntheticEvent, newPage: number) => void;\n /**\n * Event that fires when the number of rows per page changes\n */\n onRowsPerPageChange?: (newRowsPerPage: number) => void;\n /**\n * Values added to the rows per page select\n */\n rowsPerPageValues?: number[];\n testId?: string;\n}\n\nexport interface ControlledPageProps {\n /**\n * Current page number\n */\n page?: number;\n}\n\nexport interface UncontrolledPageProps {\n /**\n * Page selected by default when the component is uncontrolled\n * @default 1\n */\n defaultPage?: number;\n}\n\nexport type PagePaginationProps = XOR<\n ControlledPageProps,\n UncontrolledPageProps\n>;\n\nexport interface ControlledRowsPerPageProps {\n /**\n * Number of rows per page\n */\n rowsPerPage?: number;\n}\n\nexport interface UncontrolledRowsPerPageProps {\n /**\n * Number of rows per page by default when component is uncontrolled\n * @default 10\n */\n defaultRowsPerPage?: number;\n}\n\nexport type RowsPaginationProps = XOR<\n ControlledRowsPerPageProps,\n UncontrolledRowsPerPageProps\n>;\n\nexport type TablePaginationProps = BaseTablePaginationProps &\n PagePaginationProps &\n RowsPaginationProps;\n\nconst StyledContainer = styled.div<{\n isInverse?: boolean;\n theme: ThemeInterface;\n}>`\n align-items: center;\n background: ${props =>\n props.isInverse ? props.theme.colors.tint03 : props.theme.colors.neutral07};\n border-top: 1px solid\n ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral06};\n display: flex;\n justify-content: flex-end;\n padding: ${props => props.theme.spaceScale.spacing02};\n`;\n\nconst PageCount = styled(Label)<{ theme: ThemeInterface }>`\n margin: 0 ${props => props.theme.spaceScale.spacing08};\n`;\n\nconst RowsPerPageLabel = styled.span`\n font-weight: 600;\n line-height: 20px;\n margin: 0 16px 0 0;\n text-align: left;\n`;\n\nexport const TablePagination = React.forwardRef<\n HTMLDivElement,\n TablePaginationProps\n>((props, ref) => {\n const {\n testId,\n defaultPage,\n defaultRowsPerPage = 10,\n dropdownDropDirection = DropdownDropDirection.up,\n itemCount,\n onPageChange,\n onRowsPerPageChange,\n page: pageProp,\n rowsPerPage: rowsPerPageProp,\n rowsPerPageValues = [10, 20, 50, 100],\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n const [rowsPerPage, setRowsPerPageState] = useControlled({\n controlled: rowsPerPageProp,\n default: defaultRowsPerPage,\n });\n\n const { page, pageButtons, setPageState } = usePagination({\n count: itemCount / rowsPerPage,\n defaultPage,\n numberOfEdgePages: 0,\n numberOfAdjacentPages: 0,\n onPageChange,\n page: pageProp,\n });\n\n const isLastPage = page * rowsPerPage >= itemCount;\n\n const displayPageStart = (page - 1) * rowsPerPage + 1;\n const displayPageEnd = isLastPage ? itemCount : page * rowsPerPage;\n\n const rowsPerPageItems = rowsPerPageValues.map(value => ({\n label: value.toString(),\n value,\n }));\n\n function handleRowsPerPageChange(value: number) {\n if (!pageProp) {\n setPageState(1);\n\n onPageChange &&\n typeof onPageChange === 'function' &&\n onPageChange({} as React.SyntheticEvent, 1);\n }\n\n if (!rowsPerPageProp) {\n setRowsPerPageState(value);\n }\n\n onRowsPerPageChange &&\n typeof onRowsPerPageChange === 'function' &&\n onRowsPerPageChange(value);\n }\n\n const previousButton = pageButtons[0];\n const nextButton = pageButtons[pageButtons.length - 1];\n\n return (\n <StyledContainer\n {...other}\n data-testid={testId}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n >\n <RowsPerPageLabel>\n {i18n.table.pagination.rowsPerPageLabel}:\n </RowsPerPageLabel>\n <Dropdown\n alignment={DropdownAlignment.end}\n dropDirection={dropdownDropDirection}\n >\n <DropdownButton\n aria-label={i18n.table.pagination.rowsPerPageLabel}\n color={ButtonColor.secondary}\n style={{ minWidth: 0 }}\n testId=\"rowPerPageDropdownButton\"\n >\n {rowsPerPageItems.find(item => item.value === rowsPerPage).label}\n </DropdownButton>\n <DropdownContent>\n {rowsPerPageItems.map((row, index) => (\n <DropdownMenuItem\n key={index}\n onClick={handleRowsPerPageChange}\n value={row.value}\n >\n {row.label}\n </DropdownMenuItem>\n ))}\n </DropdownContent>\n </Dropdown>\n\n <PageCount isInverse={isInverse} theme={theme}>\n {`${displayPageStart}-${displayPageEnd} ${i18n.table.pagination.ofLabel} ${itemCount}`}\n </PageCount>\n\n <IconButton\n aria-label={i18n.table.pagination.previousAriaLabel}\n color={ButtonColor.secondary}\n disabled={previousButton.disabled}\n icon={<WestIcon />}\n isInverse={isInverse}\n onClick={previousButton.onClick}\n testId=\"previousBtn\"\n variant={ButtonVariant.link}\n />\n <IconButton\n aria-label={i18n.table.pagination.nextAriaLabel}\n color={ButtonColor.secondary}\n disabled={nextButton.disabled}\n icon={<EastIcon />}\n isInverse={isInverse}\n onClick={nextButton.onClick}\n testId=\"nextBtn\"\n variant={ButtonVariant.link}\n />\n </StyledContainer>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { TableContext, TableRowColor, TableCell, TableHeaderCell } from './';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { Checkbox } from '../Checkbox';\nimport {\n IndeterminateCheckbox,\n IndeterminateCheckboxStatus,\n} from '../IndeterminateCheckbox';\n\n/**\n * @children required\n */\nexport interface TableRowProps\n extends React.HTMLAttributes<HTMLTableRowElement> {\n /**\n * The color scheme of the table row, giving contextual meaning to the content\n */\n color?: TableRowColor;\n headerRowStatus?: IndeterminateCheckboxStatus;\n isSelected?: boolean;\n isSelectableDisabled?: boolean;\n onHeaderRowSelect?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onTableRowSelect?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n rowIndex?: number;\n testId?: string;\n}\n\nfunction buildTableRowBackground(props) {\n switch (props.color) {\n case 'success':\n return props.theme.colors.success;\n case 'warning':\n return props.theme.colors.pop04;\n case 'danger':\n return props.theme.colors.danger;\n case 'info':\n return props.theme.colors.primary;\n default:\n return 'inherit';\n }\n}\n\nfunction buildTableRowColor(props) {\n if (props.color === 'warning') {\n return props.theme.colors.neutral;\n }\n\n if (props.color) {\n return props.theme.colors.neutral08;\n }\n\n return 'inherit';\n}\n\nconst StyledTableRow = styled.tr<{\n color?: string;\n hasHoverStyles?: boolean;\n hasZebraStripes?: boolean;\n isInverse?: boolean;\n}>`\n border-bottom: 1px solid\n ${props =>\n props.isInverse\n ? props.theme.colors.tint04\n : props.theme.colors.neutral06};\n color: inherit;\n display: table-row;\n outline: 0;\n vertical-align: top;\n\n &:last-child {\n border-bottom: 0;\n }\n\n ${props =>\n !props.color &&\n css`\n &:nth-of-type(even) {\n background: ${props.hasZebraStripes\n ? props.isInverse\n ? props.theme.colors.tint\n : props.theme.colors.tone\n : 'none'};\n }\n `};\n\n ${props =>\n props.hasHoverStyles &&\n !props.color &&\n css`\n &:hover {\n background: ${\n props.isInverse ? props.theme.colors.tint02 : props.theme.colors.tone02\n };\n `}\n\n ${props =>\n props.color &&\n css`\n background: ${buildTableRowBackground(props)};\n color: ${buildTableRowColor(props)};\n `};\n`;\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n (props, ref) => {\n const {\n children,\n headerRowStatus,\n isSelected,\n isSelectableDisabled,\n onHeaderRowSelect,\n onTableRowSelect,\n rowIndex,\n testId,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const tableContext = React.useContext(TableContext);\n\n let isHeaderRow = false;\n\n React.Children.forEach(children, (child: any) => {\n if (child.type.displayName === 'TableHeaderCell') {\n isHeaderRow = true;\n return;\n }\n });\n\n function getIsCheckboxInverse() {\n if (props.color && props.color === TableRowColor.warning) {\n return false;\n }\n if (props.color && props.color !== TableRowColor.warning) {\n return true;\n }\n\n return tableContext.isInverse;\n }\n\n return (\n <StyledTableRow\n {...other}\n data-testid={testId}\n hasHoverStyles={tableContext.hasHoverStyles && !isHeaderRow}\n hasZebraStripes={tableContext.hasZebraStripes}\n isInverse={tableContext.isInverse}\n ref={ref}\n theme={theme}\n >\n {tableContext.isSelectable && isHeaderRow && (\n <TableHeaderCell width={theme.spaceScale.spacing05}>\n <IndeterminateCheckbox\n status={headerRowStatus}\n isInverse={getIsCheckboxInverse()}\n labelStyle={{ padding: 0 }}\n labelText=\"Select all rows\"\n isTextVisuallyHidden\n onChange={onHeaderRowSelect}\n />\n </TableHeaderCell>\n )}\n {tableContext.isSelectable && !isHeaderRow && (\n <TableCell\n width={theme.spaceScale.spacing05}\n style={{ verticalAlign: 'middle' }}\n >\n <Checkbox\n checked={isSelected}\n disabled={isSelectableDisabled}\n labelStyle={{ padding: 0 }}\n labelText={`Select row ${rowIndex} of ${tableContext.rowCount}`}\n isTextVisuallyHidden\n isInverse={getIsCheckboxInverse()}\n onChange={onTableRowSelect}\n />\n </TableCell>\n )}\n\n {children}\n </StyledTableRow>\n );\n }\n);\n","import * as React from 'react';\nimport { TablePagination } from '../Table';\nimport { DatagridComponents } from './Datagrid';\n\nexport const DefaultPagination = props => {\n return <TablePagination {...props} />;\n};\n\nexport function defaultComponents<T>(components: DatagridComponents) {\n return {\n Pagination: DefaultPagination,\n ...components,\n };\n}\n","import * as React from 'react';\nimport { useControlled } from '../../hooks/useControlled';\nimport { useDataPagination } from '../../hooks/useDataPagination';\nimport { XOR } from '../../utils';\nimport { IndeterminateCheckboxStatus } from '../IndeterminateCheckbox';\nimport {\n Table,\n TableBody,\n TableRow,\n TableCell,\n TableHead,\n TableHeaderCell,\n TableProps,\n TableHeaderCellProps,\n TableRowColor,\n TablePaginationProps,\n} from '../Table';\nimport { defaultComponents } from './components';\n\nexport interface DatagridColumn extends TableHeaderCellProps {\n /**\n * Unique identifier for each column\n */\n field: string;\n /**\n * Header text for each column\n */\n header: string;\n /**\n * @default false\n * Set to true if you want the column to be the header for each row\n */\n isRowHeader?: boolean;\n}\n\nexport interface DatagridRow {\n /**\n * Unique identifier for each row\n */\n id: string | number;\n /**\n * The color scheme of the table row, giving contextual meaning to the content\n */\n color?: TableRowColor;\n /**\n * If true, the select box will be disabled\n */\n isSelectableDisabled?: boolean;\n /**\n * Used to allow each unique column field as a key with the row content as the value\n */\n [key: string]: any;\n}\n\nexport interface DatagridComponents {\n Pagination?: React.FunctionComponent<TablePaginationProps>;\n}\n\nexport interface DatagridComponentsProps {\n pagination?: Partial<\n Omit<\n TablePaginationProps,\n 'page' | 'defaultPage' | 'rowsPerPage' | 'defaultRowsPerPage'\n >\n >;\n}\n\n/**\n * @children required\n */\nexport interface BaseDatagridProps extends TableProps {\n /**\n * Column data to be displayed in the table header\n */\n columns: DatagridColumn[];\n /**\n * Custom components to replace internally used components with\n * @default { Pagination }\n */\n components?: DatagridComponents;\n /**\n * Props to be passed to the default components used internally to build the datagrid\n */\n componentsProps?: DatagridComponentsProps;\n /**\n * Pass in false to turn off pagination\n * @default true\n */\n hasPagination?: boolean;\n /**\n * Row data to be displayed in each row in the table\n */\n rows: DatagridRow[];\n /**\n * Function called when the checkbox in the table header is clicked on\n */\n onHeaderSelect?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Function called when the checkbox in each table row is clicked on\n */\n onRowSelect?: (\n id: string | number,\n event: React.ChangeEvent<HTMLInputElement>\n ) => void;\n /**\n * Function called when the rows selected in the table changes\n */\n onSelectedRowsChange?: (newSelectedRows: (string | number)[]) => void;\n /**\n * Pagination data used to create the pagination footer. Created using the usePagination hook.\n */\n paginationProps?: Partial<TablePaginationProps>;\n}\n\nexport interface ControlledSelectedRowsProps {\n /**\n * Array of rows that are selected in the table when component is controlled\n */\n selectedRows?: (string | number)[];\n}\n\nexport interface UncontrolledSelectedRowsProps {\n /**\n * Array of rows that are selected in the table on render when component is uncontrolled\n */\n defaultSelectedRows?: (string | number)[];\n}\n\nexport type DatagridSelectedRowsProps = XOR<\n ControlledSelectedRowsProps,\n UncontrolledSelectedRowsProps\n>;\n\nexport type DatagridProps = BaseDatagridProps & DatagridSelectedRowsProps;\n\nexport const Datagrid = React.forwardRef<HTMLTableElement, DatagridProps>(\n (props, ref) => {\n const {\n columns,\n components: customComponents,\n componentsProps = {},\n defaultSelectedRows = [],\n onHeaderSelect,\n onRowSelect,\n onSelectedRowsChange,\n paginationProps = {},\n rows,\n selectedRows: selectedRowsProp,\n hasPagination = true,\n ...other\n } = props;\n const [rowsToShow, setRowsToShow] = React.useState<DatagridRow[]>([]);\n const [selectedRows, updatedSelectedRows] = useControlled({\n controlled: selectedRowsProp,\n default: defaultSelectedRows,\n });\n\n const isControlled = selectedRowsProp ? true : false;\n\n const {\n getPageItems,\n itemsPerPage: rowsPerPage,\n onItemsPerPageChange,\n } = useDataPagination({\n defaultItemsPerPage: paginationProps.defaultRowsPerPage,\n items: rows,\n itemsPerPage: paginationProps.rowsPerPage,\n onItemsPerPageChange: paginationProps.onRowsPerPageChange,\n });\n\n const [currentPage, setCurrentPage] = useControlled({\n controlled: paginationProps.page,\n default: paginationProps.defaultPage || 1,\n });\n\n React.useEffect(() => {\n setRowsToShow(hasPagination ? getPageItems(currentPage) : rows);\n }, [currentPage, rowsPerPage]);\n\n const { Pagination } = defaultComponents({\n ...customComponents,\n });\n\n const { defaultPage: _, ...passedOnPaginationProps } = paginationProps;\n\n passedOnPaginationProps.page = currentPage;\n passedOnPaginationProps.itemCount = rows.length;\n passedOnPaginationProps.rowsPerPage = rowsPerPage;\n passedOnPaginationProps.onRowsPerPageChange = onItemsPerPageChange;\n passedOnPaginationProps.onPageChange = React.useCallback(\n (event, newPage: number) => {\n if (!paginationProps.page) {\n setCurrentPage(newPage);\n }\n\n paginationProps.onPageChange &&\n typeof paginationProps.onPageChange === 'function' &&\n paginationProps.onPageChange(event, newPage);\n },\n [paginationProps.onPageChange]\n );\n\n const filteredRows = rowsToShow.filter(row => !row.isSelectableDisabled);\n\n const headerRowStatus =\n selectedRows.length === filteredRows.length\n ? IndeterminateCheckboxStatus.checked\n : selectedRows.length > 0\n ? IndeterminateCheckboxStatus.indeterminate\n : IndeterminateCheckboxStatus.unchecked;\n\n function handleRowSelect(\n id: string | number,\n event: React.ChangeEvent<HTMLInputElement>\n ) {\n const { checked } = event.target;\n const newSelectedRows = [...selectedRows];\n\n checked\n ? newSelectedRows.push(id)\n : newSelectedRows.splice(newSelectedRows.indexOf(id), 1);\n\n handleSelectedRowsChange(newSelectedRows);\n\n onRowSelect &&\n typeof onRowSelect === 'function' &&\n onRowSelect(id, event);\n }\n\n function handleHeaderSelect(event: React.ChangeEvent<HTMLInputElement>) {\n if (\n headerRowStatus === IndeterminateCheckboxStatus.indeterminate ||\n headerRowStatus === IndeterminateCheckboxStatus.checked\n ) {\n handleSelectedRowsChange([]);\n } else {\n handleSelectedRowsChange(filteredRows.map(row => row.id));\n }\n\n onHeaderSelect &&\n typeof onHeaderSelect === 'function' &&\n onHeaderSelect(event);\n }\n\n function handleSelectedRowsChange(newSelectedRows) {\n if (isControlled) {\n onSelectedRowsChange &&\n typeof onSelectedRowsChange === 'function' &&\n onSelectedRowsChange(newSelectedRows);\n } else {\n updatedSelectedRows(newSelectedRows);\n }\n }\n\n return (\n <>\n <Table {...other} ref={ref}>\n <TableHead>\n <TableRow\n headerRowStatus={headerRowStatus}\n onHeaderRowSelect={handleHeaderSelect}\n >\n {columns.map(({ field, header, ...other }) => (\n <TableHeaderCell\n key={`headercell${field}`}\n {...other}\n isRowHeader={false}\n >\n {header}\n </TableHeaderCell>\n ))}\n </TableRow>\n </TableHead>\n\n <TableBody>\n {rowsToShow.map(({ id, color, isSelectableDisabled, ...other }) => (\n <TableRow\n key={`row${id}`}\n color={color}\n isSelected={\n selectedRows ? selectedRows.indexOf(id) > -1 : false\n }\n isSelectableDisabled={isSelectableDisabled}\n onTableRowSelect={event => handleRowSelect(id, event)}\n >\n {columns.map(({ field, isRowHeader }: DatagridColumn) => {\n return isRowHeader ? (\n <TableHeaderCell\n key={`cell${field}`}\n isRowHeader={isRowHeader}\n >\n {other[field]}\n </TableHeaderCell>\n ) : (\n <TableCell key={`cell${field}`}>{other[field]}</TableCell>\n );\n })}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n {hasPagination && (\n <Pagination\n isInverse={props.isInverse}\n itemCount={rows.length}\n {...passedOnPaginationProps}\n {...componentsProps.pagination}\n />\n )}\n </>\n );\n }\n);\n","import * as React from 'react';\n\nexport interface CalendarContextInterface {\n chosenDate: Date;\n focusedDate: Date;\n dateFocused?: boolean;\n maxDate?: Date;\n minDate?: Date;\n helperInformationShown?: boolean;\n buildCalendarMonth: (date: Date, enableOutsideDates?: boolean) => Date[][];\n showHelperInformation: () => void;\n hideHelperInformation: () => void;\n onDateChange: (day: Date, event: React.SyntheticEvent) => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n onPrevMonthClick: () => void;\n onNextMonthClick: () => void;\n setDateFocused: (value: boolean) => void;\n}\n\nexport const CalendarContext = React.createContext<CalendarContextInterface>({\n chosenDate: new Date(),\n focusedDate: new Date(),\n buildCalendarMonth: (newDate: Date, enableOutsideDates: boolean) => [\n [newDate],\n ],\n showHelperInformation: () => {},\n hideHelperInformation: () => {},\n onDateChange: (newDate: Date, event: React.SyntheticEvent) => {},\n onKeyDown: (event: React.KeyboardEvent) => {},\n onPrevMonthClick: () => {},\n onNextMonthClick: () => {},\n setDateFocused: (value: boolean) => {},\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useForkedRef, useGenerateId } from '../../utils';\nimport { usePopper } from 'react-popper';\nimport { useIsInverse } from '../../inverse';\n\nexport enum TooltipPosition {\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n top = 'top', //default\n}\n\nexport const EnumTooltipPosition = TooltipPosition;\n\nexport interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Style properties for the arrow element\n */\n arrowStyle?: React.CSSProperties;\n /**\n * The element that triggers the tooltip when it is hovered or focused. Must be a react element (not a string) and should be a focusable element to meet a11y requirements\n */\n children: React.ReactElement;\n /**\n * Style properties for the component container element which includes both the tooltip trigger and the tooltip popover content\n */\n containerStyle?: React.CSSProperties;\n /**\n * The content of the tooltip\n */\n content: React.ReactNode;\n isInverse?: boolean;\n /**\n * Override the default opening of the tooltip on hover/focus to remain open\n */\n open?: boolean;\n /**\n * Position the tooltip appears in relation to its trigger\n */\n position?: TooltipPosition;\n testId?: string;\n /**\n * Style properties for the inner tooltip content\n */\n tooltipStyle?: React.CSSProperties;\n}\n\nexport interface ITooltipState {\n id?: string;\n isVisible?: boolean;\n}\n\nconst TooltipContainer = styled.div`\n display: inline;\n pointer-events: auto;\n`;\n\nexport const TooltipArrow = styled.span<{\n position?: any;\n isInverse?: boolean;\n}>`\n &&,\n &&:before {\n display: block;\n height: ${props => props.theme.tooltip.arrowSizeDoubled};\n position: absolute;\n width: ${props => props.theme.tooltip.arrowSizeDoubled};\n z-index: -1;\n }\n\n &&::before {\n content: '';\n transform: rotate(45deg);\n background: ${props =>\n props.isInverse\n ? props.theme.tooltip.inverse.backgroundColor\n : props.theme.tooltip.backgroundColor};\n }\n`;\n\nexport const StyledTooltip = styled.div<{\n isInverse?: boolean;\n isVisible?: boolean;\n position: TooltipPosition;\n visible?: boolean;\n}>`\n background: ${props =>\n props.isInverse\n ? props.theme.tooltip.inverse.backgroundColor\n : props.theme.tooltip.backgroundColor};\n border-radius: ${props => props.theme.borderRadius};\n color: ${props =>\n props.isInverse\n ? props.theme.tooltip.inverse.textColor\n : props.theme.tooltip.textColor};\n font-size: ${props => props.theme.tooltip.typeScale.fontSize};\n letter-spacing: ${props => props.theme.tooltip.typeScale.letterSpacing};\n line-height: ${props => props.theme.tooltip.typeScale.lineHeight};\n font-weight: ${props => props.theme.tooltip.fontWeight};\n max-width: ${props => props.theme.tooltip.maxWidth};\n min-height: 2.5em;\n padding: ${props => props.theme.spaceScale.spacing03}\n ${props => props.theme.spaceScale.spacing04};\n z-index: ${props => props.theme.tooltip.zIndex};\n\n &[data-popper-placement='top'] {\n margin-bottom: 14px;\n & > span:last-child {\n bottom: 10px;\n }\n }\n\n &[data-popper-placement='bottom'] {\n margin-top: 14px;\n & > span:last-child {\n top: 10px;\n }\n }\n\n &[data-popper-placement='left'] {\n margin-right: 14px;\n & > span:last-child {\n right: 10px;\n }\n }\n\n &[data-popper-placement='right'] {\n margin-left: 14px;\n & > span:last-child {\n left: 10px;\n }\n }\n`;\n\n// Using any for the ref because it is put ont he passed in children which does not have a specific type\nexport const Tooltip = React.forwardRef<any, TooltipProps>((props, ref) => {\n const [isVisible, setIsVisible] = React.useState<boolean>(props.open);\n const [referenceElement, setReferenceElement] =\n React.useState<HTMLElement>(null);\n const [popperElement, setPopperElement] =\n React.useState<HTMLDivElement>(null);\n const [arrowElement, setArrowElement] = React.useState<HTMLSpanElement>(null);\n\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\n modifiers: [\n { name: 'arrow', options: { element: arrowElement } },\n {\n name: 'offset',\n options: {\n offset: [0, 0],\n },\n },\n ],\n placement: props.position || TooltipPosition.top,\n });\n\n const combinedRef = useForkedRef(ref, setReferenceElement);\n\n React.useEffect(() => {\n const handleEsc = event => {\n if (event.key === 'Escape') {\n hideTooltip();\n }\n };\n window.addEventListener('keydown', handleEsc);\n\n return () => {\n window.removeEventListener('keydown', handleEsc);\n };\n }, []);\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n hideTooltip();\n }\n }\n\n function showTooltip() {\n setIsVisible(true);\n }\n\n function hideTooltip() {\n setIsVisible(props.open);\n }\n\n const {\n arrowStyle,\n children,\n content,\n containerStyle,\n id: defaultId,\n position,\n testId,\n tooltipStyle,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n const theme = React.useContext(ThemeContext);\n\n if (Array.isArray(children)) {\n throw new Error('Tooltip children can only be one element.');\n }\n\n const tooltipTrigger = React.cloneElement(children, {\n 'aria-describedby': isVisible ? id : null,\n onBlur: hideTooltip,\n onFocus: showTooltip,\n ref: combinedRef,\n });\n\n const combinedTooltipStyles = {\n ...styles.popper,\n ...tooltipStyle,\n };\n\n const combinedArrowStyle = { ...styles.arrow, ...arrowStyle };\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <TooltipContainer\n {...other}\n data-testid={testId}\n onKeyDown={handleKeyDown}\n onMouseLeave={hideTooltip}\n onMouseEnter={showTooltip}\n style={containerStyle}\n >\n {tooltipTrigger}\n {isVisible && (\n <div\n ref={setPopperElement}\n style={combinedTooltipStyles}\n {...attributes.popper}\n >\n <StyledTooltip\n id={id}\n isInverse={isInverse}\n position={position ? position : TooltipPosition.top}\n theme={theme}\n role=\"tooltip\"\n {...attributes.popper}\n >\n {content}\n <TooltipArrow\n isInverse={isInverse}\n ref={setArrowElement}\n style={combinedArrowStyle}\n theme={theme}\n />\n </StyledTooltip>\n </div>\n )}\n </TooltipContainer>\n );\n});\n","import {\n subDays,\n subWeeks,\n subMonths,\n addDays,\n addWeeks,\n addMonths,\n getDay,\n format,\n startOfWeek,\n endOfWeek,\n startOfMonth,\n endOfMonth,\n differenceInDays,\n} from 'date-fns';\nimport { enUS } from 'date-fns/locale';\n\nexport function handleKeyPress(\n e: React.KeyboardEvent,\n prevDate: Date,\n toggleCalendar?: (calendarOpened: boolean) => void,\n showHelperInformation?: () => void,\n onDateChange?: (day: Date) => void,\n iconRef?: React.RefObject<any>\n) {\n const { key } = e;\n\n if (key === 'Enter' || key === ' ') {\n if (!(e.target as HTMLElement).getAttribute('aria-disabled')) {\n onDateChange(prevDate);\n }\n }\n\n switch (key) {\n case 'ArrowUp':\n e.preventDefault();\n return subWeeks(prevDate, 1);\n\n case 'ArrowLeft':\n e.preventDefault();\n return subDays(prevDate, 1);\n\n case 'Home':\n e.preventDefault();\n return startOfWeek(prevDate);\n\n case 'PageUp':\n e.preventDefault();\n return subMonths(prevDate, 1);\n\n case 'ArrowDown':\n e.preventDefault();\n return addWeeks(prevDate, 1);\n\n case 'ArrowRight':\n e.preventDefault();\n return addDays(prevDate, 1);\n\n case 'End':\n e.preventDefault();\n return endOfWeek(prevDate);\n\n case 'PageDown':\n e.preventDefault();\n return addMonths(prevDate, 1);\n\n case 'Escape':\n e.preventDefault();\n toggleCalendar(false);\n iconRef.current.focus();\n break;\n\n case '?':\n e.preventDefault();\n showHelperInformation();\n break;\n\n default:\n break;\n }\n}\n\nexport function getCalendarMonthWeeks(\n month,\n enableOutsideDays,\n firstDayOfWeek = 0\n): Date[][] {\n const firstOfMonth = startOfMonth(month);\n const lastOfMonth = endOfMonth(month);\n\n const prevDays = (getDay(firstOfMonth) + 7 - firstDayOfWeek) % 7;\n const nextDays = (firstDayOfWeek + 6 - getDay(lastOfMonth)) % 7;\n const firstDay = subDays(firstOfMonth, prevDays);\n const lastDay = addDays(lastOfMonth, nextDays);\n\n const totalDays = differenceInDays(lastDay, firstDay) + 1;\n\n const currentDay = firstDay;\n const weeksInMonth = [];\n\n for (let i = 0; i < totalDays; i += 1) {\n if (i % 7 === 0) {\n weeksInMonth.push([]);\n }\n\n let day = null;\n if ((i >= prevDays && i < totalDays - nextDays) || enableOutsideDays) {\n day = addDays(currentDay, i);\n }\n\n weeksInMonth[weeksInMonth.length - 1].push(day);\n }\n\n return weeksInMonth;\n}\n\nexport function getPrevMonthFromDate(prevDate) {\n return startOfMonth(subMonths(prevDate, 1));\n}\n\nexport function getNextMonthFromDate(prevDate) {\n return startOfMonth(addMonths(prevDate, 1));\n}\n\nexport function i18nFormat(date, formatStr = 'PP', locale = enUS) {\n return (\n date &&\n format(getDateFromString(date), formatStr, {\n locale,\n })\n );\n}\n\nexport function getDateFromString(date) {\n return date ? (date instanceof Date ? date : new Date(date)) : null;\n}\n","import * as React from 'react';\nimport { Announce } from '../Announce';\nimport { CalendarContext } from './CalendarContext';\nimport { ArrowBackIcon, ArrowForwardIcon } from 'react-magma-icons';\nimport { ButtonType, ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { addMonths, subMonths } from 'date-fns';\nimport { enUS } from 'date-fns/locale';\nimport styled from '../../theme/styled';\nimport { useForkedRef, usePrevious } from '../../utils';\nimport { i18nFormat as format } from './utils';\nimport { I18nContext } from '../../i18n';\n\ninterface CalendarHeaderProps {\n focusHeader?: boolean;\n}\n\nconst CalendarHeaderContainer = styled.div`\n align-items: center;\n display: flex;\n padding: ${props => props.theme.spaceScale.spacing10} 0\n ${props => props.theme.spaceScale.spacing03};\n margin-top: -${props => props.theme.spaceScale.spacing01};\n`;\n\nconst CalendarIconButton = styled.div<{ next?: boolean }>`\n flex-grow: 0;\n flex-width: 10%;\n flex-basis: 10%;\n order: ${props => (props.next ? 2 : 0)};\n`;\n\nconst CalendarHeaderText = styled.div`\n caption-side: initial;\n color: ${props => props.theme.colors.neutral};\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n order: 1;\n text-align: center;\n flex-grow: 0;\n flex-width: 90%;\n flex-basis: 90%;\n`;\n\nexport const CalendarHeader = React.forwardRef<\n HTMLDivElement,\n CalendarHeaderProps\n>((props, forwardedRef) => {\n const calendarHeader = React.useRef<HTMLDivElement>();\n const { focusedDate, onPrevMonthClick, onNextMonthClick } =\n React.useContext(CalendarContext);\n const prevFocusHeader = usePrevious(props.focusHeader);\n const ref = useForkedRef(forwardedRef, calendarHeader);\n\n React.useEffect(() => {\n if (!prevFocusHeader && props.focusHeader) {\n calendarHeader.current.focus();\n }\n }, [props.focusHeader]);\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const locale = i18n.locale || enUS;\n\n const currentMonth = format(focusedDate, 'MMMM yyyy', locale);\n\n const capitalizeCurrentMonth =\n currentMonth &&\n currentMonth.charAt(0).toUpperCase() + currentMonth.slice(1);\n\n return (\n <CalendarHeaderContainer theme={theme}>\n <CalendarHeaderText tabIndex={-1} theme={theme} ref={ref}>\n <Announce>{capitalizeCurrentMonth}</Announce>\n </CalendarHeaderText>\n <CalendarIconButton>\n <IconButton\n aria-label={`${i18n.datePicker.previousMonthAriaLabel} ${format(\n subMonths(new Date(focusedDate), 1),\n 'MMMM yyyy',\n locale\n )}`}\n icon={<ArrowBackIcon />}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n onClick={onPrevMonthClick}\n />\n </CalendarIconButton>\n <CalendarIconButton next>\n <IconButton\n aria-label={`${i18n.datePicker.nextMonthAriaLabel} ${format(\n addMonths(new Date(focusedDate), 1),\n 'MMMM yyyy',\n locale\n )}`}\n icon={<ArrowForwardIcon />}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n onClick={onNextMonthClick}\n />\n </CalendarIconButton>\n </CalendarHeaderContainer>\n );\n});\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '../../theme/styled';\nimport { isAfter, isBefore, isSameDay } from 'date-fns';\nimport { enUS } from 'date-fns/locale';\nimport { CalendarContext } from './CalendarContext';\nimport { I18nContext } from '../../i18n';\nimport { i18nFormat as format } from './utils';\n\ninterface CalendarDayProps {\n day: Date;\n dayFocusable?: boolean;\n onDateChange?: (day: Date, event: React.SyntheticEvent) => void;\n}\n\nconst CalendarDayCell = styled.td`\n border: 1px solid ${props => props.theme.colors.neutral06};\n color: ${props => props.theme.colors.neutral};\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n height: ${props => props.theme.spaceScale.spacing09};\n padding: 0;\n position: relative;\n text-align: center;\n width: ${props => props.theme.spaceScale.spacing09};\n`;\n\nconst CalendarDayInner = styled.button<{\n isChosen?: boolean;\n isFocused?: boolean;\n disabled?: boolean;\n}>`\n align-items: center;\n background: ${props =>\n props.isChosen\n ? props.theme.colors.foundation02\n : props.theme.colors.neutral08};\n border: 2px solid transparent;\n border-radius: 100%;\n color: ${props =>\n props.isChosen\n ? props.theme.colors.neutral08\n : props.disabled\n ? props.theme.colors.disabledText\n : props.theme.colors.neutral};\n cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};\n display: flex;\n height: calc(${props => props.theme.spaceScale.spacing09} - 4px);\n justify-content: center;\n margin: ${props => props.theme.spaceScale.spacing01};\n overflow: hidden;\n outline-offset: 0;\n position: relative;\n transition: background 0.5s ease-in-out 0s;\n width: calc(${props => props.theme.spaceScale.spacing09} - 4px);\n\n &:focus {\n outline: 2px dotted ${props => props.theme.colors.focus};\n }\n\n &:before {\n background: ${props => props.theme.colors.neutral};\n content: '';\n height: 200%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: -50%;\n transition: 0.2s;\n width: 200%;\n }\n\n &:hover {\n &:before {\n opacity: ${props => (props.disabled ? 0 : 0.1)};\n }\n }\n`;\n\nconst EmptyCell = styled.td`\n border: 0;\n padding: 0;\n`;\n\nconst TodayIndicator = styled.span`\n border-left: 8px solid ${props => props.theme.colors.pop};\n border-top: 8px solid transparent;\n border-bottom: 8px solid transparent;\n bottom: -6px;\n display: block;\n height: 0;\n position: absolute;\n transform: rotate(45deg);\n right: -2px;\n width: 0;\n`;\n\nexport const CalendarDay: React.FunctionComponent<CalendarDayProps> = (\n props: CalendarDayProps\n) => {\n const dayRef = React.useRef<HTMLButtonElement>();\n const {\n dateFocused,\n focusedDate,\n chosenDate,\n maxDate,\n minDate,\n setDateFocused,\n onDateChange,\n } = React.useContext(CalendarContext);\n const [focused, setFocused] = React.useState<boolean>(false);\n const { day, dayFocusable } = props;\n\n React.useEffect(() => {\n if (dateFocused && isSameDay(props.day, focusedDate)) {\n dayRef.current.focus();\n setFocused(true);\n } else {\n if (focused) {\n setFocused(false);\n }\n }\n }, [focusedDate, dateFocused]);\n\n function onCalendarDayFocus() {\n setDateFocused(true);\n }\n\n function onDayClick(event: React.SyntheticEvent) {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n onDateChange(day, event);\n }\n\n const disabled: boolean =\n (maxDate ? isAfter(props.day, maxDate) : false) ||\n (minDate ? isBefore(props.day, minDate) : false);\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n if (day) {\n const sameDateAsFocusedDate = isSameDay(day, focusedDate);\n const sameDateAsChosenDate = isSameDay(day, chosenDate);\n const sameDateAsToday = isSameDay(day, new Date());\n const locale = i18n.locale || enUS;\n const ariaLabel = `${\n disabled ? i18n.datePicker.disabledDayAriaLabel : ''\n } ${format(day, 'EEEE, MMMM do yyyy', locale)} ${\n sameDateAsToday ? i18n.datePicker.todayAriaLabel : ''\n } ${sameDateAsChosenDate ? i18n.datePicker.selectedDayAriaLabel : ''}`;\n\n return (\n <CalendarDayCell onFocus={onCalendarDayFocus} theme={theme}>\n <CalendarDayInner\n aria-disabled={disabled}\n aria-label={ariaLabel}\n disabled={disabled}\n isChosen={sameDateAsChosenDate}\n isFocused={dayFocusable && sameDateAsFocusedDate}\n onClick={onDayClick}\n ref={dayRef}\n tabIndex={sameDateAsFocusedDate ? 0 : -1}\n type=\"button\"\n theme={theme}\n >\n {format(day, 'd', locale)}\n </CalendarDayInner>\n {sameDateAsToday && (\n <TodayIndicator data-testid=\"todayIndicator\" theme={theme} />\n )}\n </CalendarDayCell>\n );\n } else {\n return <EmptyCell />;\n }\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ButtonColor, ButtonSize, ButtonType, ButtonVariant } from '../Button';\n\nimport { IconButton } from '../IconButton';\nimport { Heading } from '../Heading';\nimport { ArrowBackIcon, CloseIcon } from 'react-magma-icons';\nimport { TypographyVisualStyle } from '../Typography';\n\nimport { I18nContext } from '../../i18n';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\ninterface HelperInformationProps {\n isOpen?: boolean;\n onClose?: (event?: React.SyntheticEvent) => void;\n}\n\nconst List = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n text-align: left;\n`;\n\nconst Item = styled.li`\n display: flex;\n list-style: none;\n margin-bottom: 12px;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n align-items: center;\n span {\n flex: 0 0 100px;\n overflow: hidden;\n line-height: 28px;\n min-height: 36px;\n height: max-content;\n text-align: center;\n }\n div {\n flex: 1;\n }\n`;\n\nconst KeyboardShortcutButtonWrapper = styled.span`\n background: rgb(242, 242, 242);\n font-family: monospace;\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n margin-right: ${props => props.theme.spaceScale.spacing03};\n text-transform: uppercase;\n padding: ${props => props.theme.spaceScale.spacing02}\n ${props => props.theme.spaceScale.spacing04};\n`;\n\nconst StyledPopup = styled.div`\n position: relative;\n background: white;\n`;\n\nconst StyledNavContainer = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 2px;\n`;\nconst StyledContent = styled.div`\n z-index: 9999;\n position: relative;\n background: white;\n h2 {\n margin: 10px 0 12px 0;\n }\n`;\n\nexport const HelperInformation: React.FunctionComponent<\n HelperInformationProps\n> = (props: HelperInformationProps) => {\n const i18n = React.useContext(I18nContext);\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledPopup>\n <StyledNavContainer>\n <IconButton\n icon={<ArrowBackIcon />}\n size={ButtonSize.small}\n style={{ top: '4px', left: '-12px' }}\n variant={ButtonVariant.link}\n onClick={props.onClose}\n >\n Back to Calendar\n </IconButton>\n <IconButton\n aria-label={i18n.datePicker.calendarCloseAriaLabel}\n color={ButtonColor.secondary}\n icon={<CloseIcon />}\n size={ButtonSize.medium}\n style={{ left: '16px' }}\n type={ButtonType.button}\n onClick={props.onClose}\n variant={ButtonVariant.link}\n />\n </StyledNavContainer>\n <StyledContent>\n <Heading level={2} visualStyle={TypographyVisualStyle.headingXSmall}>\n {i18n.datePicker.helpModal.header}\n </Heading>\n <List id=\"DayPickerKeyboardShortcuts_description\">\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n aria-label={i18n.datePicker.helpModal.enter.ariaLabel}\n role=\"img\"\n theme={theme}\n >\n ↵\n </KeyboardShortcutButtonWrapper>\n <div>{i18n.datePicker.helpModal.enter.explanation}</div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={\n i18n.datePicker.helpModal.rightAndLeftArrowKeys.ariaLabel\n }\n >\n ←/→\n </KeyboardShortcutButtonWrapper>\n <div>\n {i18n.datePicker.helpModal.rightAndLeftArrowKeys.explanation}\n </div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={\n i18n.datePicker.helpModal.upAndDownArrowKeys.ariaLabel\n }\n >\n ↑/↓\n </KeyboardShortcutButtonWrapper>\n <div>\n {i18n.datePicker.helpModal.upAndDownArrowKeys.explanation}\n </div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={\n i18n.datePicker.helpModal.pageUpAndPageDownKeys.ariaLabel\n }\n >\n {i18n.datePicker.helpModal.pageUpAndPageDownKeys.displayValue}\n </KeyboardShortcutButtonWrapper>\n <div>\n {i18n.datePicker.helpModal.pageUpAndPageDownKeys.explanation}\n </div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={i18n.datePicker.helpModal.homeAndEndKeys.ariaLabel}\n >\n {i18n.datePicker.helpModal.homeAndEndKeys.displayValue}\n </KeyboardShortcutButtonWrapper>\n <div>{i18n.datePicker.helpModal.homeAndEndKeys.explanation}</div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={i18n.datePicker.helpModal.escape.ariaLabel}\n >\n {i18n.datePicker.helpModal.escape.displayValue}\n </KeyboardShortcutButtonWrapper>\n <div>{i18n.datePicker.helpModal.escape.explanation}</div>\n </Item>\n <Item theme={theme}>\n <KeyboardShortcutButtonWrapper\n role=\"img\"\n theme={theme}\n aria-label={i18n.datePicker.helpModal.questionMark.ariaLabel}\n >\n ?\n </KeyboardShortcutButtonWrapper>\n <div>{i18n.datePicker.helpModal.questionMark.explanation}</div>\n </Item>\n </List>\n </StyledContent>\n </StyledPopup>\n );\n};\n","import * as React from 'react';\n\nexport interface FocusableElement extends HTMLElement {\n focus(options?: FocusOptions): void;\n}\n\nexport function useFocusLock(\n active: boolean,\n header?: React.MutableRefObject<FocusableElement>,\n body?: React.MutableRefObject<FocusableElement>\n): React.MutableRefObject<any> {\n const rootNode = React.useRef<HTMLElement>(null);\n const focusableItems = React.useRef<Array<HTMLElement>>([]);\n\n const updateFocusableItems = () => {\n focusableItems.current = rootNode.current?.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), video'\n ) as unknown as Array<HTMLElement>;\n };\n\n React.useEffect(() => {\n if (active) {\n updateFocusableItems();\n\n if (header && header.current) {\n header.current.focus();\n } else if (focusableItems.current && focusableItems.current.length > 0) {\n const { 0: firstItem } = focusableItems.current;\n\n firstItem.focus();\n } else if (body && body.current) {\n (body.current.firstChild as HTMLElement).setAttribute('tabIndex', '-1');\n (body.current.firstChild as HTMLElement).focus();\n }\n }\n }, [active]);\n\n React.useEffect(() => {\n const observer: MutationObserver = new MutationObserver(() => {\n updateFocusableItems();\n });\n\n updateFocusableItems();\n\n rootNode.current &&\n observer.observe(rootNode.current, { childList: true, subtree: true });\n return () => {\n observer.disconnect();\n };\n }, [rootNode]);\n\n React.useEffect(() => {\n const handleKeyPress = (event: KeyboardEvent) => {\n if (!focusableItems.current) return;\n\n const { key, shiftKey } = event;\n const {\n length,\n 0: firstItem,\n [length - 1]: lastItem,\n } = focusableItems.current;\n\n if (active && key === 'Tab') {\n // If no focusable items are\n if (length === 0) {\n event.preventDefault();\n return;\n }\n\n // If only one item then prevent tabbing when locked\n if (length === 1) {\n event.preventDefault();\n if (firstItem !== document.activeElement) {\n firstItem.focus();\n }\n\n return;\n }\n\n // If focused on last item then focus on first item when tab is pressed\n if (!shiftKey && document.activeElement === lastItem) {\n event.preventDefault();\n firstItem.focus();\n return;\n }\n\n // If focused on first item then focus on last item when shift + tab is pressed\n if (\n shiftKey &&\n (document.activeElement === firstItem ||\n document.activeElement === header.current)\n ) {\n event.preventDefault();\n lastItem.focus();\n return;\n }\n }\n };\n\n window.addEventListener('keydown', handleKeyPress);\n\n return () => {\n window.removeEventListener('keydown', handleKeyPress);\n };\n }, [active, focusableItems]);\n\n return rootNode;\n}\n","import * as React from 'react';\nimport { ButtonColor, ButtonSize, ButtonType, ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { Tooltip } from '../Tooltip';\nimport { CloseIcon, KeyboardIcon } from 'react-magma-icons';\nimport { CalendarContext } from './CalendarContext';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CalendarDay } from './CalendarDay';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '../../theme/styled';\nimport { HelperInformation } from './HelperInformation';\nimport { usePrevious } from '../../utils';\nimport { I18nContext } from '../../i18n';\nimport { useFocusLock } from '../../hooks/useFocusLock';\n\ninterface CalendarMonthProps {\n calendarOpened?: boolean;\n focusOnOpen?: boolean;\n handleCloseButtonClick: (event: React.SyntheticEvent) => void;\n setDateFocused?: (value: boolean) => void;\n}\n\nconst CalendarContainer = styled.div`\n background: ${props => props.theme.colors.neutral08};\n padding: 0 ${props => props.theme.spaceScale.spacing05}\n ${props => props.theme.spaceScale.spacing03};\n overflow: visible;\n`;\n\nconst MonthContainer = styled.div`\n background: ${props => props.theme.colors.neutral08};\n text-align: center;\n user-select: none;\n vertical-align: top;\n`;\n\nconst Table = styled.table`\n border-collapse: collapse;\n border-spacing: 0;\n margin-bottom: ${props => props.theme.spaceScale.spacing03};\n`;\n\nconst Th = styled.th`\n border: 0;\n color: ${props => props.theme.colors.neutral};\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n font-weight: normal;\n padding: 0;\n text-align: center;\n`;\n\nconst HelperButton = styled.span<{ theme?: any }>`\n top: ${props => props.theme.spaceScale.spacing01};\n position: absolute;\n left: ${props => props.theme.spaceScale.spacing01};\n z-index: 2;\n`;\n\nconst CloseButton = styled.span<{ theme?: any }>`\n position: absolute;\n right: ${props => props.theme.spaceScale.spacing01};\n top: ${props => props.theme.spaceScale.spacing01};\n z-index: 1;\n`;\n\nexport const CalendarMonth: React.FunctionComponent<CalendarMonthProps> = (\n props: CalendarMonthProps\n) => {\n const lastFocus = React.useRef<any>();\n const headingRef = React.useRef<any>();\n const context = React.useContext(CalendarContext);\n const [dayFocusable, setDayFocusable] = React.useState<boolean>(false);\n const [focusHeader, setFocusHeader] = React.useState<boolean>(false);\n const prevCalendarOpened = usePrevious(props.calendarOpened);\n\n const focusTrapElement = useFocusLock(props.calendarOpened, headingRef);\n\n React.useEffect(() => {\n if (!prevCalendarOpened && props.calendarOpened) {\n lastFocus.current = document.activeElement;\n\n if (props.focusOnOpen) {\n setDayFocusable(true);\n context.setDateFocused(true);\n }\n }\n\n if (props.calendarOpened && !props.focusOnOpen && !focusHeader) {\n setFocusHeader(true);\n }\n\n if (prevCalendarOpened && !props.calendarOpened) {\n setFocusHeader(false);\n }\n }, [props.calendarOpened, props.focusOnOpen]);\n\n function onCalendarTableFocus() {\n setDayFocusable(true);\n }\n\n function onCalendarTableBlur() {\n setDayFocusable(false);\n context.setDateFocused(false);\n }\n\n function turnOffDateFocused() {\n context.setDateFocused(false);\n }\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const days = [\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n ];\n const startOfWeek = days.indexOf(i18n.datePicker.startOfWeek);\n const sortedDays = days.slice(startOfWeek).concat(days.slice(0, startOfWeek));\n const tableDaysHeaders = sortedDays.map((day, index) => (\n <Th key={index} theme={theme}>\n {i18n.days.min[day]}\n </Th>\n ));\n\n return (\n <>\n <CalendarContainer\n data-testid=\"calendarMonthContainer\"\n tabIndex={-1}\n theme={theme}\n onKeyDown={context.onKeyDown}\n >\n {context.helperInformationShown ? (\n <HelperInformation\n isOpen={context.helperInformationShown}\n onClose={context.hideHelperInformation}\n />\n ) : (\n <MonthContainer\n data-testid=\"monthContainer\"\n data-visible=\"true\"\n theme={theme}\n ref={focusTrapElement}\n >\n <CalendarHeader ref={headingRef} focusHeader={focusHeader} />\n\n <Table\n role=\"presentation\"\n onBlur={onCalendarTableBlur}\n onFocus={onCalendarTableFocus}\n theme={theme}\n >\n <tbody>\n <tr>{tableDaysHeaders}</tr>\n {context\n .buildCalendarMonth(context.focusedDate)\n .map((week, i) => (\n <tr key={i}>\n {week.map((day, dayOfWeek) => (\n <CalendarDay\n key={dayOfWeek}\n day={day}\n dayFocusable={dayFocusable}\n onDateChange={context.onDateChange}\n />\n ))}\n </tr>\n ))}\n </tbody>\n </Table>\n <Tooltip\n content={'Keyboard instructions'}\n tooltipStyle={{ position: 'fixed' }}\n >\n <HelperButton theme={theme}>\n <IconButton\n aria-label={i18n.datePicker.helpModal.helpButtonAriaLabel}\n icon={<KeyboardIcon />}\n onClick={context.showHelperInformation}\n size={ButtonSize.small}\n onFocus={turnOffDateFocused}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n />\n </HelperButton>\n </Tooltip>\n\n <CloseButton theme={theme}>\n <IconButton\n aria-label={i18n.datePicker.calendarCloseAriaLabel}\n color={ButtonColor.secondary}\n icon={<CloseIcon />}\n onClick={props.handleCloseButtonClick}\n size={ButtonSize.medium}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n />\n </CloseButton>\n </MonthContainer>\n )}\n </CalendarContainer>\n </>\n );\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { InputIconPosition, InputSize } from '../InputBase';\nimport { InputMessage } from '../Input/InputMessage';\nimport { Label } from '../Label';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface FormFieldContainerProps\n extends FormFieldContainerBaseProps,\n React.HTMLAttributes<HTMLDivElement> {}\n\nexport interface FormFieldContainerBaseProps {\n /**\n * Is the wrapped input hidden with display:none? This would make the input look like an actionable item, so FormFieldContainer uses a span in lieu of a label.\n */\n actionable?: boolean;\n /**\n * Style properties for the outer container\n */\n containerStyle?: React.CSSProperties;\n /**\n * Content of the error message. If a value is provided, the field will be styled as an error state and the error message will display.\n */\n errorMessage?: React.ReactNode;\n /**\n * ID of the form field. Also used in the descrption ID.\n */\n fieldId: string;\n /**\n * Content of the helper message.\n */\n helperMessage?: React.ReactNode;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isLabelVisuallyHidden?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content for label; can be a node or a string\n */\n labelText?: React.ReactNode;\n /**\n * Style properties for the helper or error message\n */\n messageStyle?: React.CSSProperties;\n /**\n * Relative size of the component\n * @default InputSize.medium\n */\n iconPosition?: InputIconPosition;\n inputSize?: InputSize;\n testId?: string;\n isInverse?: boolean;\n}\n\nconst StyledFormFieldContainer = styled.div<{ isInverse?: boolean }>`\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n`;\n\nexport const FormFieldContainer = React.forwardRef<\n HTMLDivElement,\n FormFieldContainerProps\n>((props, ref) => {\n const {\n actionable = true,\n children,\n containerStyle,\n errorMessage,\n fieldId,\n helperMessage,\n iconPosition,\n inputSize,\n isInverse: isInverseProp,\n isLabelVisuallyHidden,\n labelStyle,\n labelText,\n messageStyle,\n testId,\n ...rest\n } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n const descriptionId =\n errorMessage || helperMessage ? `${fieldId}__desc` : null;\n\n return (\n <InverseContext.Provider value={{ isInverse }}>\n <StyledFormFieldContainer\n {...rest}\n data-testid={props.testId}\n isInverse={isInverse}\n ref={ref}\n style={containerStyle}\n theme={theme}\n >\n {labelText && (\n <Label\n actionable={actionable}\n htmlFor={fieldId}\n iconPosition={iconPosition}\n size={inputSize}\n style={labelStyle}\n >\n {isLabelVisuallyHidden ? (\n <VisuallyHidden>{labelText}</VisuallyHidden>\n ) : (\n labelText\n )}\n </Label>\n )}\n {children}\n {(errorMessage || helperMessage) && (\n <InputMessage\n hasError={!!errorMessage}\n id={descriptionId}\n isInverse={isInverse}\n style={messageStyle}\n >\n {(errorMessage || helperMessage) && (\n <>{errorMessage ? errorMessage : helperMessage}</>\n )}\n </InputMessage>\n )}\n </StyledFormFieldContainer>\n </InverseContext.Provider>\n );\n});\n","import * as React from 'react';\nimport {\n FormFieldContainer,\n FormFieldContainerBaseProps,\n} from '../FormFieldContainer';\nimport { InputBase, InputBaseProps, InputSize } from '../InputBase';\nimport { useGenerateId } from '../../utils';\nimport { useIsInverse } from '../../inverse';\n\nexport interface InputProps\n extends Omit<FormFieldContainerBaseProps, 'fieldId'>,\n InputBaseProps {}\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n (props, ref) => {\n const {\n children,\n containerStyle,\n errorMessage,\n helperMessage,\n iconPosition,\n id: defaultId,\n inputSize = InputSize.medium,\n isLabelVisuallyHidden,\n labelStyle,\n labelText,\n messageStyle,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <FormFieldContainer\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n helperMessage={helperMessage}\n iconPosition={iconPosition}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n isInverse={isInverse}\n inputSize={inputSize}\n labelStyle={labelStyle}\n labelText={labelText}\n messageStyle={messageStyle}\n >\n <InputBase\n {...other}\n aria-describedby={\n descriptionId ? descriptionId : props['aria-describedby']\n }\n aria-invalid={!!errorMessage}\n hasError={!!errorMessage}\n iconPosition={iconPosition}\n id={id}\n inputSize={inputSize}\n isInverse={isInverse}\n ref={ref}\n >\n {children}\n </InputBase>\n </FormFieldContainer>\n );\n }\n);\n","import * as React from 'react';\nimport { CalendarContext } from './CalendarContext';\nimport { CalendarMonth } from './CalendarMonth';\nimport { Announce } from '../Announce';\nimport { Input } from '../Input';\nimport { InputType } from '../InputBase';\nimport { isAfter, isBefore, isValid, isSameDay } from 'date-fns';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '../../theme/styled';\nimport { EventIcon } from 'react-magma-icons';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport {\n handleKeyPress,\n getCalendarMonthWeeks,\n getPrevMonthFromDate,\n getNextMonthFromDate,\n i18nFormat as format,\n getDateFromString,\n} from './utils';\nimport { omit, useGenerateId, Omit, useForkedRef } from '../../utils';\nimport { I18nContext } from '../../i18n';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\nexport interface DatePickerProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'value' | 'onChange'\n > {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Default selected date value\n */\n defaultDate?: Date;\n /**\n * Content of the error message. If a value is provided, the component will be styled to show an error state\n */\n errorMessage?: React.ReactNode;\n /**\n * Content of the helper message\n */\n helperMessage?: React.ReactNode;\n /**\n * Style properties for the input element\n */\n inputStyle?: React.CSSProperties;\n /**\n * Clear contents of input by clicking a clear button\n * @default false\n */\n isClearable?: boolean;\n isInverse?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Text for label\n */\n labelText: React.ReactNode;\n /**\n * Maximum date allowed to be chosen in the calendar\n */\n maxDate?: Date;\n /**\n * Style properties for the helper or error message\n */\n messageStyle?: React.CSSProperties;\n /**\n * Minimum date allowed to be chosen in the calendar\n */\n minDate?: Date;\n /**\n * Text for input placeholder\n */\n placeholder?: string;\n /**\n * If true, this component must have a value\n * @default false\n */\n required?: boolean;\n testId?: string;\n /**\n * Value of the date input, used when setting the date value externally\n */\n value?: Date;\n /**\n * Event fired in multiple instances when internal values are changed and can be used as a generic state change event\n */\n onChange?: (\n value: string,\n event: React.ChangeEvent | React.SyntheticEvent\n ) => void;\n /**\n * Event that will fire when day is changed\n */\n onDateChange?: (day: Date, event: React.SyntheticEvent) => void;\n /**\n * Event that will fire when the text input loses focus\n */\n onInputBlur?: (event: React.FocusEvent) => void;\n /**\n * Event that will fire when the text input is changed\n */\n onInputChange?: (event: React.ChangeEvent) => void;\n /**\n * Event that will fire when the text input gains focus\n */\n onInputFocus?: (event: React.FocusEvent) => void;\n}\n\nconst DatePickerContainer = styled.div`\n position: relative;\n`;\n\nconst DatePickerCalendar = styled.div<{ opened: boolean }>`\n border: 1px solid ${props => props.theme.colors.neutral06};\n border-radius: ${props => props.theme.borderRadius};\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.15);\n display: ${props => (props.opened ? 'block' : 'none')};\n margin-top: -${props => props.theme.spaceScale.spacing07};\n opacity: ${props => (props.opened ? '1' : '0')};\n overflow: hidden;\n position: absolute;\n transition: opacity 0.2s ease-in-out 0s;\n width: 320px;\n z-index: ${props => (props.opened ? '998' : '-1')};\n`;\n\nexport const DatePicker = React.forwardRef<HTMLInputElement, DatePickerProps>(\n (props, forwardedRef) => {\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n const iconRef = React.useRef<HTMLButtonElement>();\n const inputRef = React.useRef<HTMLInputElement>();\n const lastFocus = React.useRef<any>();\n const id: string = useGenerateId(props.id);\n const [helperInformationShown, setHelperInformationShown] =\n React.useState<boolean>(false);\n const [calendarOpened, setCalendarOpened] = React.useState<boolean>(false);\n const [dateFocused, setDateFocused] = React.useState<boolean>(false);\n\n const [focusedDate, setFocusedDate] = React.useState<Date>(\n setDateFromConsumer(props.value || props.defaultDate) ||\n setDefaultFocusedDate()\n );\n const [chosenDate, setChosenDate] = React.useState<Date | null>(\n setDateFromConsumer(props.value || props.defaultDate)\n );\n\n const ref = useForkedRef(forwardedRef, inputRef);\n\n React.useEffect(() => {\n if (!calendarOpened) {\n setDateFocused(false);\n }\n }, [calendarOpened]);\n\n React.useEffect(() => {\n if (props.value) {\n setChosenDate(setDateFromConsumer(props.value));\n setFocusedDate(\n setDateFromConsumer(props.value) || setDefaultFocusedDate()\n );\n }\n }, [props.value]);\n\n function showHelperInformation() {\n lastFocus.current = document.activeElement;\n setHelperInformationShown(true);\n }\n\n function hideHelperInformation() {\n setHelperInformationShown(false);\n lastFocus.current.focus();\n }\n\n function setDateFromConsumer(date: Date): Date {\n const convertedDate = getDateFromString(date);\n const convertedMinDate = getDateFromString(props.minDate);\n const convertedMaxDate = getDateFromString(props.maxDate);\n\n return date &&\n inDateRange(convertedDate, convertedMinDate, convertedMaxDate)\n ? convertedDate\n : null;\n }\n\n function setDefaultFocusedDate(): Date {\n const newDate = new Date();\n const convertedMinDate = getDateFromString(props.minDate);\n const convertedMaxDate = getDateFromString(props.maxDate);\n\n if (inDateRange(newDate, convertedMinDate, convertedMaxDate)) {\n return newDate;\n } else if (convertedMaxDate || convertedMinDate) {\n return convertedMinDate ? convertedMinDate : convertedMaxDate;\n }\n }\n\n function inDateRange(\n date: Date,\n minDateValue?: Date,\n maxDateValue?: Date\n ): boolean {\n return (\n (maxDateValue\n ? isBefore(date, maxDateValue) || isSameDay(date, maxDateValue)\n : true) &&\n (minDateValue\n ? isAfter(date, minDateValue) || isSameDay(date, minDateValue)\n : true)\n );\n }\n\n function buildCalendarMonth(date: Date, enableOutsideDates: boolean) {\n const days = [\n 'sunday',\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n ];\n const { startOfWeek } = i18n.datePicker;\n return getCalendarMonthWeeks(\n date,\n enableOutsideDates,\n days.indexOf(startOfWeek)\n );\n }\n\n function onPrevMonthClick() {\n setFocusedDate(getPrevMonthFromDate);\n }\n\n function onNextMonthClick() {\n setFocusedDate(getNextMonthFromDate);\n }\n\n function onDateChange(day: Date) {\n setChosenDate(day);\n setCalendarOpened(false);\n }\n\n function reset() {\n setFocusedDate(setDefaultFocusedDate());\n setChosenDate(null);\n setDateFocused(false);\n }\n\n function isValidDateFromString(value: string, day: Date) {\n const isValidDateFormat = /^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/.test(value);\n const isValidDate = isValid(day);\n\n return isValidDateFormat && isValidDate;\n }\n\n function handleInputChange(event) {\n const { value } = event.target;\n const day = new Date(value);\n setCalendarOpened(false);\n\n props.onInputChange &&\n typeof props.onInputChange === 'function' &&\n props.onInputChange(event);\n\n const isValidDay = isValidDateFromString(value, day);\n\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(isValidDay ? day.toISOString() : value, event);\n }\n\n function handleInputFocus(event: React.FocusEvent) {\n props.onInputFocus &&\n typeof props.onInputFocus === 'function' &&\n props.onInputFocus(event);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n const { value } = inputRef.current;\n const day = new Date(value);\n const convertedMinDate = getDateFromString(props.minDate);\n const convertedMaxDate = getDateFromString(props.maxDate);\n\n if (\n isValidDateFromString(value, day) &&\n inDateRange(day, convertedMinDate, convertedMaxDate)\n ) {\n handleDateChange(day, event);\n } else {\n reset && typeof reset === 'function' && reset();\n }\n\n props.onInputBlur &&\n typeof props.onInputBlur === 'function' &&\n props.onInputBlur(event);\n }\n\n function handleInputKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault();\n setCalendarOpened(false);\n inputRef.current.focus();\n }\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n if (dateFocused && document.activeElement.closest('table')) {\n const newChosenDate = handleKeyPress(\n event,\n focusedDate,\n setCalendarOpened,\n showHelperInformation,\n onDateChange,\n iconRef\n );\n if (newChosenDate) {\n setFocusedDate(newChosenDate);\n }\n } else {\n if (event.key === 'Escape') {\n setCalendarOpened(false);\n iconRef.current.focus();\n }\n\n if (event.key === '?') {\n showHelperInformation();\n }\n }\n }\n\n function handleDateChange(\n day: Date,\n event: React.SyntheticEvent | React.ChangeEvent\n ) {\n props.onDateChange &&\n typeof props.onDateChange === 'function' &&\n props.onDateChange(day, event);\n\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(day.toISOString(), event);\n\n onDateChange(day);\n setFocusedDate(day);\n }\n\n function handleDaySelection(day: Date, event: React.SyntheticEvent) {\n handleDateChange(day, event);\n inputRef.current.focus();\n }\n\n function handleCalendarBlur(event: React.SyntheticEvent) {\n const { currentTarget } = event;\n\n // timeout needed for active element to update. Browser behavior.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=452307\n setTimeout(() => {\n const isInCalendar = currentTarget.contains(document.activeElement);\n\n if (!isInCalendar && !helperInformationShown) {\n setCalendarOpened(false);\n }\n }, 0);\n }\n\n function handleCloseButtonClick(event: React.SyntheticEvent) {\n iconRef.current.focus();\n setCalendarOpened(false);\n }\n\n function toggleCalendarOpened() {\n setCalendarOpened(opened => !opened);\n }\n\n const { placeholder, testId, ...rest } = props;\n const other = omit(\n ['onDateChange', 'onInputChange', 'onInputBlur', 'onInputFocus'],\n rest\n );\n\n const isInverse = useIsInverse(props.isInverse);\n\n const minDate = getDateFromString(props.minDate);\n const maxDate = getDateFromString(props.maxDate);\n\n const dateFormat = i18n.dateFormat;\n\n const inputValue = chosenDate ? format(chosenDate, dateFormat) : '';\n\n return (\n <CalendarContext.Provider\n value={{\n chosenDate,\n focusedDate,\n dateFocused,\n maxDate,\n minDate,\n helperInformationShown,\n buildCalendarMonth,\n showHelperInformation,\n hideHelperInformation,\n onKeyDown: handleKeyDown,\n onPrevMonthClick,\n onNextMonthClick,\n onDateChange: handleDaySelection,\n setDateFocused,\n }}\n >\n <DatePickerContainer data-testid={testId} onBlur={handleCalendarBlur}>\n <Announce>\n {calendarOpened && (\n <VisuallyHidden>\n {i18n.datePicker.calendarOpenAnnounce}\n </VisuallyHidden>\n )}\n </Announce>\n <Input\n {...other}\n icon={<EventIcon />}\n iconAriaLabel={i18n.datePicker.calendarIconAriaLabel}\n iconRef={iconRef}\n onIconClick={toggleCalendarOpened}\n onIconKeyDown={handleInputKeyDown}\n id={id}\n isInverse={isInverse}\n ref={ref}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onKeyDown={handleInputKeyDown}\n placeholder={placeholder ? placeholder : dateFormat.toLowerCase()}\n type={InputType.text}\n value={inputValue}\n />\n <InverseContext.Provider value={{ isInverse: false }}>\n <DatePickerCalendar\n data-testid=\"calendarContainer\"\n opened={calendarOpened}\n theme={theme}\n >\n <CalendarMonth\n focusOnOpen={\n calendarOpened && Boolean(focusedDate) && Boolean(chosenDate)\n }\n handleCloseButtonClick={handleCloseButtonClick}\n calendarOpened={calendarOpened}\n setDateFocused={setDateFocused}\n />\n </DatePickerCalendar>\n </InverseContext.Provider>\n </DatePickerContainer>\n </CalendarContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { MenuItemStyles, IconWrapper } from './DropdownMenuItem';\nimport { DropdownContext } from './Dropdown';\nimport { IconProps } from 'react-magma-icons';\nimport { Omit, useForkedRef } from '../../utils';\n\nexport interface DropdownMenuNavItemProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {\n /**\n * Leading icon for the menu item\n */\n icon?: React.ReactElement<IconProps>;\n /**\n * The href value of the link\n */\n to: string;\n}\n\nconst StyledItem = styled.a<{\n disabled?: boolean;\n isFixedWidth?: boolean;\n isInactive?: boolean;\n}>`\n ${MenuItemStyles}\n text-decoration: none;\n`;\n\nexport const DropdownMenuNavItem = React.forwardRef<\n HTMLAnchorElement,\n DropdownMenuNavItemProps\n>((props, forwardedRef) => {\n const { children, icon, to, ...other } = props;\n\n const ownRef = React.useRef<HTMLDivElement>();\n const theme = React.useContext(ThemeContext);\n const context = React.useContext(DropdownContext);\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n React.useEffect(() => {\n context.registerDropdownMenuItem(context.itemRefArray, ownRef);\n }, []);\n\n return (\n <StyledItem\n {...other}\n href={to}\n isFixedWidth={context.isFixedWidth}\n ref={ref}\n role=\"menuitem\"\n tabIndex={-1}\n theme={theme}\n >\n {icon && <IconWrapper theme={theme}>{icon}</IconWrapper>}\n {children}\n </StyledItem>\n );\n});\n\nDropdownMenuNavItem.displayName = 'DropdownMenuNavItem';\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport enum FlexAlignContent {\n center = 'center',\n flexStart = 'flex-start',\n flexEnd = 'flex-end',\n spaceBetween = 'space-between',\n spaceAround = 'space-around',\n stretch = 'stretch', // default\n}\n\nexport enum FlexAlignItems {\n baseline = 'baseline',\n center = 'center',\n flexStart = 'flex-start',\n flexEnd = 'flex-end',\n stretch = 'stretch', // default\n}\n\nexport enum FlexBehavior {\n container = 'container',\n item = 'item',\n both = 'both',\n}\n\nexport enum FlexDirection {\n column = 'column',\n columnReverse = 'column-reverse',\n row = 'row', // default\n rowReverse = 'row-reverse',\n}\n\nexport enum FlexJustify {\n center = 'center',\n flexStart = 'flex-start', //default\n flexEnd = 'flex-end',\n spaceBetween = 'space-between',\n spaceAround = 'space-around',\n spaceEvenly = 'space-evenly',\n}\n\nexport enum FlexWrap {\n nowrap = 'nowrap',\n wrap = 'wrap', //default\n wrapReverse = 'wrap-reverse',\n}\n\n/**\n * @children required\n */\nexport interface FlexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Defines the align-content style property. It's applied for all screen sizes.\n * @default FlexAlignContent.stretch\n */\n alignContent?: FlexAlignContent;\n /**\n * Defines the align-items style property. It's applied for all screen sizes.\n * @default FlexAlignItems.stretch\n */\n alignItems?: FlexAlignItems;\n /**\n * Defines the flex behavior for the component. Options are container, item or both. You should be wrapping items with a container.\n */\n behavior: FlexBehavior;\n /**\n * Defines the flex-direction style property. It's applied for all screen sizes.\n * @default FlexDirection.row\n */\n direction?: FlexDirection;\n /**\n * If true, the component will have the flex item behavior. You should be wrapping items with a container.\n */\n justify?: FlexJustify;\n /**\n * Defines the space between the type item component. Spacing will be this number multiplied by 8px. It can only be used on a type container component.\n * @default 0\n */\n spacing?: number;\n testId?: string;\n /**\n * Defines the flex-wrap style property. It's applied for all screen sizes.\n * @default FlexWrap.wrap\n */\n wrap?: FlexWrap;\n /**\n * Defines the number of grids the component is going to use. It's applied for all the screen sizes with the lowest priority.\n * @default false\n */\n xs?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n /**\n * Defines the number of grids the component is going to use. It's applied for the small breakpoint and wider screens.\n * @default false\n */\n sm?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n /**\n * Defines the number of grids the component is going to use. It's applied for the medium breakpoint and wider screens.\n * @default false\n */\n md?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n /**\n * Defines the number of grids the component is going to use. It's applied for the large breakpoint and wider screens.\n * @default false\n */\n lg?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n /**\n * Defines the number of grids the component is going to use. It's applied for the extra-large breakpoint and wider screens.\n * @default false\n */\n xl?: false | true | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n}\n\nfunction getWidth(size) {\n return `${Math.round((size / 12) * 10e7) / 10e5}%`;\n}\n\nconst StyledFlex = styled.div<FlexProps>`\n ${props =>\n props.behavior !== FlexBehavior.item &&\n css`\n align-content: ${props.alignContent};\n align-items: ${props.alignItems};\n flex-direction: ${props.direction};\n display: flex;\n flex-wrap: ${props.wrap};\n justify-content: ${props.justify};\n margin: ${0 - props.spacing * 4}px;\n width: calc(100% + ${props.spacing * props.theme.spacingMultiplier}px);\n\n > div {\n padding: ${props.spacing * 4}px;\n }\n `};\n\n ${props =>\n props.behavior !== FlexBehavior.container &&\n css`\n flex-grow: ${props.xs === true ? '1' : '0'};\n flex-basis: ${props.xs === true ? '0' : getWidth(props.xs)};\n max-width: ${props.xs === true ? '100%' : getWidth(props.xs)};\n\n ${props.sm &&\n css`\n @media (min-width: ${props.theme.breakpoints.small}px) {\n flex-grow: ${props.sm === true ? '1' : '0'};\n flex-basis: ${props.sm === true ? '0' : getWidth(props.sm)};\n max-width: ${props.sm === true ? '100%' : getWidth(props.sm)};\n }\n `};\n\n ${props.md &&\n css`\n @media (min-width: ${props.theme.breakpoints.medium}px) {\n flex-grow: ${props.md === true ? '1' : '0'};\n flex-basis: ${props.md === true ? '0' : getWidth(props.md)};\n max-width: ${props.md === true ? '100%' : getWidth(props.md)};\n }\n `};\n\n ${props.lg &&\n css`\n @media (min-width: ${props.theme.breakpoints.large}px) {\n flex-grow: ${props.lg === true ? '1' : '0'};\n flex-basis: ${props.lg === true ? '0' : getWidth(props.lg)};\n max-width: ${props.lg === true ? '100%' : getWidth(props.lg)};\n }\n `};\n\n ${props.xl &&\n css`\n @media (min-width: ${props.theme.breakpoints.xl}px) {\n flex-grow: ${props.xl === true ? '1' : '0'};\n flex-basis: ${props.xl === true ? '0' : getWidth(props.xl)};\n max-width: ${props.xl === true ? '100%' : getWidth(props.xl)};\n }\n `};\n `};\n`;\n\nexport const Flex = React.forwardRef<HTMLDivElement, FlexProps>(\n (props, ref) => {\n const {\n children,\n alignContent = FlexAlignContent.stretch,\n alignItems = FlexAlignItems.stretch,\n direction = FlexDirection.row,\n justify = FlexJustify.flexStart,\n spacing = 0,\n testId,\n wrap = FlexWrap.wrap,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledFlex\n {...other}\n alignContent={alignContent}\n alignItems={alignItems}\n data-testid={testId}\n direction={direction}\n justify={justify}\n ref={ref}\n spacing={spacing}\n theme={theme}\n wrap={wrap}\n >\n {children}\n </StyledFlex>\n );\n }\n);\n","import * as React from 'react';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport {\n TypographyVisualStyle,\n TypographyColor,\n TypographyContextVariant,\n TypographyComponent,\n} from '../Typography';\n\n/**\n * @children required\n */\nexport interface ParagraphProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * The color of the component, helping to convey meaning or relative emphasis\n * @default TypographyColor.default\n */\n color?: TypographyColor;\n /**\n * Additional styles for typography based on the context of the content\n * @default TypographyContextVariant.default\n */\n contextVariant?: TypographyContextVariant;\n isInverse?: boolean;\n /**\n * If true, the component will not have the default top and bottom margin and instead will a margin value of 0\n * @default false\n */\n noMargins?: boolean;\n testId?: string;\n /**\n * @internal\n */\n theme?: any;\n /**\n * Applies visual styles including font-size, font-weight, line-height and margins\n * @default TypographyVisualStyle.bodyMedium\n */\n visualStyle?: TypographyVisualStyle;\n}\n\nexport const Paragraph = React.forwardRef<HTMLParagraphElement, ParagraphProps>(\n (props, ref) => {\n const { color, testId, visualStyle, children, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n return (\n <TypographyComponent\n {...other}\n color={color || TypographyColor.default}\n data-testid={testId}\n isInverse={useIsInverse(props.isInverse)}\n ref={ref}\n theme={theme}\n visualStyle={visualStyle || TypographyVisualStyle.bodyMedium}\n >\n {children}\n </TypographyComponent>\n );\n }\n);\n","import * as React from 'react';\nimport { Alert } from '../Alert';\nimport { AlertVariant } from '../AlertBase';\nimport { Heading } from '../Heading';\nimport { Paragraph } from '../Paragraph';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { InverseContext, useIsInverse } from '../../inverse';\nimport styled from '@emotion/styled';\nimport { TypographyContextVariant, TypographyVisualStyle } from '../Typography';\n\n/**\n * @children required\n */\nexport interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * React Node containing the form action buttons; will appear under the form fields\n */\n actions: React.ReactNode;\n /**\n * General description of the form\n */\n description?: string;\n /**\n * Additional form level validation message\n */\n errorMessage?: string;\n /**\n * Title of the form\n */\n header: string;\n /**\n * Additional styles to the form heading for typography based on the context of the content\n * @default TypographyColor.default\n */\n headingContextVariant?: TypographyContextVariant;\n /**\n * Number to indicate which level heading will render for the form header (e.g. h1, h2 etc.)\n * @default 3\n */\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * Applies visual styles to the form heading including font-size, font-weight, line-height and margins\n */\n headingVisualStyle?: TypographyVisualStyle;\n isInverse?: boolean;\n /**\n * Handler for form submission\n */\n testId?: string;\n}\n\nconst StyledForm = styled.form<{ isInverse?: boolean; theme: ThemeInterface }>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n`;\n\nconst FormActions = styled.div`\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (props, ref) => {\n const {\n actions,\n children,\n header,\n headingContextVariant,\n headingLevel = 3,\n headingVisualStyle,\n description,\n errorMessage,\n testId,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <InverseContext.Provider\n value={{\n isInverse,\n }}\n >\n <StyledForm\n ref={ref}\n data-testid={testId}\n isInverse={isInverse}\n theme={theme}\n {...other}\n >\n <Heading\n contextVariant={headingContextVariant}\n level={headingLevel}\n visualStyle={headingVisualStyle}\n >\n {header}\n </Heading>\n {description && <Paragraph>{description}</Paragraph>}\n {errorMessage && (\n <Alert variant={AlertVariant.danger}>{errorMessage}</Alert>\n )}\n <div>{children}</div>\n <FormActions>{actions}</FormActions>\n </StyledForm>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport { css } from '@emotion/core';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { convertStyleValueToString, useGenerateId } from '../../utils';\nimport { useIsInverse } from '../../inverse';\nimport { VisuallyHidden } from '../VisuallyHidden';\n\nexport interface ProgressBarProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The color variant of the progress bar\n * @default ProgressBarColor.primary\n */\n color?: ProgressBarColor;\n /**\n * The height of the progress bar. Can be a string or number; if number is provided height is in px\n * @default 8\n */\n height?: number | string;\n /**\n * If true, the progress bar with have a shimmer animation\n * @default false\n */\n isAnimated?: boolean;\n isInverse?: boolean;\n /**\n * @internal\n */\n isLoadingIndicator?: boolean;\n /**\n * If true, the label with the percentage value will display to the right of the progress bar\n * @default false\n */\n isLabelVisible?: boolean;\n /**\n * The percentage of which the bar is filled\n * @default 0\n */\n percentage?: number;\n testId?: string;\n}\n\nexport enum ProgressBarColor {\n danger = 'danger',\n primary = 'primary', // default\n pop = 'pop',\n pop02 = 'pop02',\n success = 'success',\n}\n\nfunction buildProgressBarBackground(props) {\n if (props.isInverse) {\n switch (props.color) {\n case 'danger':\n return props.theme.colors.dangerInverse;\n case 'success':\n return props.theme.colors.successInverse;\n default:\n return props.theme.colors.primaryInverse;\n }\n }\n switch (props.color) {\n case 'danger':\n return props.theme.colors.danger;\n case 'pop':\n return props.theme.colors.pop;\n case 'pop02':\n return props.theme.colors.pop02;\n case 'success':\n return props.theme.colors.success;\n default:\n return props.theme.colors.primary;\n }\n}\n\nconst Container = styled.div<{ isLoadingIndicator?: boolean }>`\n align-items: center;\n display: ${props => (props.isLoadingIndicator ? 'block' : 'flex')};\n`;\n\nconst Track = styled.div<ProgressBarProps>`\n background: ${props =>\n props.isInverse ? 'rgba(0,0,0,0.25)' : props.theme.colors.neutral08};\n box-shadow: inset 0 0 0 1px\n ${props =>\n props.isInverse\n ? `${props.theme.colors.neutral08}80`\n : props.theme.colors.neutral04};\n border-radius: 50em;\n overflow: hidden;\n display: flex;\n height: ${props => props.height};\n /* padding: 1px; */\n width: 100%;\n`;\n\nconst Bar = styled.div<ProgressBarProps>`\n background: ${props => buildProgressBarBackground(props)};\n border-radius: 50em;\n display: flex;\n transition: width 0.3s;\n width: ${props => props.percentage}%;\n\n ${props =>\n props.isAnimated &&\n css`\n background-image: linear-gradient(\n to right,\n ${buildProgressBarBackground(props)} 0%,\n rgba(255, 255, 255, 0.5) 20%,\n ${buildProgressBarBackground(props)} 40%,\n ${buildProgressBarBackground(props)} 100%\n );\n background-repeat: no-repeat;\n background-size: 1800px 104px;\n display: inline-block;\n position: relative;\n\n animation-duration: 1s;\n animation-fill-mode: forwards;\n animation-iteration-count: infinite;\n animation-name: placeholderShimmer;\n animation-timing-function: linear;\n\n @keyframes placeholderShimmer {\n 0% {\n background-position: -600px 0;\n }\n\n 100% {\n background-position: 600px 0;\n }\n }\n `}\n`;\n\nconst Percentage = styled.span`\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n margin-left: ${props => props.theme.spaceScale.spacing03};\n`;\n\nconst TopPercentage = styled.div`\n font-size: ${props => props.theme.typeScale.size05.fontSize};\n line-height: ${props => props.theme.typeScale.size05.lineHeight};\n margin-bottom: ${props => props.theme.spaceScale.spacing03};\n text-align: center;\n`;\n\nexport const ProgressBar = React.forwardRef<HTMLDivElement, ProgressBarProps>(\n (props, ref) => {\n const {\n color,\n height,\n id: defaultId,\n isAnimated,\n isLabelVisible,\n isLoadingIndicator,\n percentage,\n testId,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n const labelId = `${id}__label`;\n\n const percentageValue = percentage ? percentage : 0;\n\n const theme = React.useContext(ThemeContext);\n\n const heightString = convertStyleValueToString(\n height,\n theme.spaceScale.spacing03\n );\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <Container\n {...other}\n id={defaultId}\n isLoadingIndicator={isLoadingIndicator}\n >\n {isLoadingIndicator && (\n <TopPercentage theme={theme}>{percentageValue}%</TopPercentage>\n )}\n <Track\n data-testid={testId}\n height={heightString}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n >\n <Bar\n aria-labelledby={labelId}\n aria-valuenow={percentageValue}\n aria-valuemin={0}\n aria-valuemax={100}\n color={color}\n isAnimated={isAnimated}\n isInverse={isInverse}\n percentage={percentageValue}\n role=\"progressbar\"\n theme={theme}\n />\n </Track>\n {isLabelVisible ? (\n <Percentage id={labelId} theme={theme}>\n {percentageValue}%\n </Percentage>\n ) : (\n <VisuallyHidden id={labelId}>{percentageValue}%</VisuallyHidden>\n )}\n </Container>\n );\n }\n);\n","import * as React from 'react';\nimport { ProgressBar, ProgressBarColor } from '../ProgressBar';\nimport { Spinner } from '../Spinner';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { I18nContext } from '../../i18n';\n\nexport interface LoadingIndicatorProps\n extends React.HTMLAttributes<HTMLDivElement | HTMLSpanElement> {\n /**\n * @internal\n */\n css?: any; // Adding css prop to fix emotion error\n /**\n * Message displayed for the first five seconds\n * @default \"Loading...\"\n */\n message1?: string;\n /**\n * Message displayed for the first five seconds\n * @default \"Thank you for your patience. Still loading...\"\n */\n message2?: string;\n /**\n * Message displayed after 15 seconds\n * @default \"Sorry for the delay. This is taking longer than expected.\"\n */\n message3?: string;\n /**\n * Message displayed for the first five seconds\n * @default 0\n */\n percentage?: number;\n testId?: string;\n /**\n * Type of loading indictor to display, can be progress bar or spinner\n * @default LoadingIndicatorType.spinner\n */\n type?: LoadingIndicatorType;\n}\n\nexport enum LoadingIndicatorType {\n progressbar = 'progressbar',\n spinner = 'spinner', // default\n}\n\nexport interface LoadingIndicatorState {\n messageLevel: number;\n}\n\nconst StyledLoadingIndicator = styled.div`\n text-align: center;\n`;\n\nconst MessageContainer = styled.div<{ theme: ThemeInterface }>`\n font-size: ${props => props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props => props.theme.typeScale.size02.letterSpacing};\n line-height: ${props => props.theme.typeScale.size02.lineHeight};\n margin-top: ${props => props.theme.spaceScale.spacing05};\n min-height: 5em;\n position: relative;\n text-align: center;\n`;\n\nconst Message = styled.div<{ hide?: boolean }>`\n opacity: ${props => (props.hide ? '0' : '1')};\n position: absolute;\n transition: opacity 0.3s;\n width: 100%;\n`;\n\nexport const LoadingIndicator = React.forwardRef<\n HTMLDivElement,\n LoadingIndicatorProps\n>((props, ref) => {\n const [messageLevel, setMessageLevel] = React.useState<1 | 2 | 3>(1);\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n React.useEffect(() => {\n const { type: loadingIndicatorType } = props;\n const messageLevel2Timeout = setTimeout(\n () => {\n setMessageLevel(2);\n },\n loadingIndicatorType === LoadingIndicatorType.progressbar ? 10000 : 5000\n );\n\n const messageLevel3Timeout = setTimeout(\n () => {\n setMessageLevel(3);\n },\n loadingIndicatorType === LoadingIndicatorType.progressbar ? 30000 : 15000\n );\n\n return () => {\n clearTimeout(messageLevel2Timeout);\n clearTimeout(messageLevel3Timeout);\n };\n }, []);\n\n const { color, testId, type, ...other } = props;\n let { message1, message2, message3 } = props;\n\n message1 = message1\n ? message1\n : type === LoadingIndicatorType.progressbar\n ? i18n.loadingIndicator.progressBar.messages.first\n : i18n.loadingIndicator.spinner.messages.first;\n\n message2 = message2\n ? message2\n : type === LoadingIndicatorType.progressbar\n ? i18n.loadingIndicator.progressBar.messages.second\n : i18n.loadingIndicator.spinner.messages.second;\n\n message3 = message3\n ? message3\n : type === LoadingIndicatorType.progressbar\n ? i18n.loadingIndicator.progressBar.messages.third\n : i18n.loadingIndicator.spinner.messages.third;\n\n return (\n <StyledLoadingIndicator aria-busy=\"true\" data-testid={testId} ref={ref}>\n {type === LoadingIndicatorType.progressbar ? (\n <ProgressBar\n {...other}\n color={color as ProgressBarColor}\n height={theme.spaceScale.spacing03}\n isAnimated\n isLoadingIndicator\n />\n ) : (\n <Spinner {...other} size={theme.spaceScale.spacing10} />\n )}\n\n <MessageContainer theme={theme}>\n <Message aria-hidden={messageLevel !== 1} hide={messageLevel !== 1}>\n {message1}\n </Message>\n <Message aria-hidden={messageLevel !== 2} hide={messageLevel !== 2}>\n {message2}\n </Message>\n <Message aria-hidden={messageLevel !== 3} hide={messageLevel !== 3}>\n {message3}\n </Message>\n </MessageContainer>\n </StyledLoadingIndicator>\n );\n});\n","import styled from '../../theme/styled';\n\nimport { inputBaseStyles } from '../InputBase';\nimport { Card } from '../Card';\n\nexport const SelectContainer = styled.div`\n position: relative;\n`;\n\nexport const StyledButton = styled.div`\n ${inputBaseStyles}\n align-items: center;\n display: flex;\n text-align: left;\n`;\n\nexport const SelectText = styled.span`\n flex-grow: 1;\n padding: 0 8px 0 4px;\n`;\n\nexport const StyledCard = styled(Card)<{\n isOpen?: boolean;\n}>`\n display: ${props => (props.isOpen ? 'block' : 'none')};\n left: 4px;\n margin-top: 4px;\n padding: 4px 0 0;\n position: absolute;\n right: 4px;\n top: auto;\n z-index: 2;\n`;\n\nexport const StyledList = styled('ul')<{ isOpen?: boolean; maxHeight: string }>`\n display: ${props => (props.isOpen ? 'block' : 'none')};\n list-style: none;\n margin: 0 0 4px;\n outline: none;\n padding: 0;\n max-height: ${props => props.maxHeight};\n overflow-y: auto;\n`;\n\nexport const StyledItem = styled('li')<{ isFocused?: boolean }>`\n align-self: center;\n background: ${props =>\n props.isFocused ? props.theme.colors.neutral06 : 'transparent'};\n border: 2px dotted;\n border-color: ${props =>\n props.isFocused ? props.theme.colors.focus : 'transparent'};\n cursor: default;\n line-height: 24px;\n margin: 0;\n padding: 8px 16px;\n`;\n\nexport const SelectedItemsWrapper = styled.span`\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n padding: 0 0 0 4px;\n`;\n\nexport const SelectedItemButton = styled.button`\n align-self: center;\n background: ${props => props.theme.colors.neutral06};\n border-radius: 4px;\n border: 0;\n box-shadow: 0 0 0;\n display: flex;\n font-size: 12px;\n line-height: 16px;\n height: 24px;\n margin: 4px 2px 4px 4px;\n padding: ${props => props.theme.spaceScale.spacing02}\n ${props => props.theme.spaceScale.spacing02}\n ${props => props.theme.spaceScale.spacing02}\n ${props => props.theme.spaceScale.spacing03};\n position: relative;\n white-space: nowrap;\n`;\n\nexport const IconWrapper = styled.span`\n padding-left: 12px;\n`;\n","import * as React from 'react';\nimport { IconButton, IconButtonProps } from '../IconButton';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { IconProps, ArrowDropDownIcon } from 'react-magma-icons';\nimport { StyledItem } from './shared';\nimport { ThemeInterface } from '../../theme/magma';\n\nexport type ItemRenderOptions<T> = {\n key: string;\n isFocused?: boolean;\n item: T;\n itemRef: React.Ref<HTMLLIElement>;\n itemString: string;\n theme: ThemeInterface;\n [key: string]: any;\n};\n\nexport type SelectComponents<T> = {\n ClearIndicator?: React.FunctionComponent<IconButtonProps>;\n DropdownIndicator?: React.FunctionComponent<Partial<IconProps>>;\n LoadingIndicator?: React.FunctionComponent<SpinnerProps>;\n Item?: React.FunctionComponent<ItemRenderOptions<T>>;\n};\n\nexport const DefaultClearIndicator = props => {\n return <IconButton testId=\"clearIndicator\" {...props} />;\n};\n\nexport const DefaultDropdownIndicator = props => {\n return (\n <ArrowDropDownIcon\n size={24}\n style={{ flexShrink: 0 }}\n testId=\"caretDown\"\n {...props}\n />\n );\n};\n\nexport const DefaultLoadingIndicator = props => {\n return <Spinner testId=\"loadingIndicator\" {...props} />;\n};\n\nexport function DefaultItem<T>({\n itemRef,\n itemString,\n ...props\n}: ItemRenderOptions<T>) {\n return (\n <StyledItem {...props} ref={itemRef}>\n {itemString}\n </StyledItem>\n );\n}\n\nexport function defaultComponents<T>(props: SelectComponents<T>) {\n return {\n ClearIndicator: DefaultClearIndicator,\n DropdownIndicator: DefaultDropdownIndicator,\n LoadingIndicator: DefaultLoadingIndicator,\n Item: DefaultItem,\n ...props,\n };\n}\n","import React from 'react';\nimport {\n inputBaseStyles,\n inputWrapperStyles,\n InputBaseStylesProps,\n InputWrapperStylesProps,\n} from '../InputBase';\nimport { defaultComponents, SelectComponents } from '../Select/components';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '../../theme/styled';\n\nconst StyledButton = styled.div<InputBaseStylesProps & InputWrapperStylesProps>`\n ${inputBaseStyles}\n ${inputWrapperStyles}\n\n align-items: center;\n display: flex;\n height: auto;\n min-height: ${props => props.theme.spaceScale.spacing09};\n padding: 0 ${props => props.theme.spaceScale.spacing03} 0\n ${props => props.theme.spaceScale.spacing02};\n text-align: left;\n`;\n\nconst ChildrenContainer = styled.div`\n align-items: center;\n display: flex;\n flex-grow: 1;\n flex-wrap: wrap;\n`;\n\ninterface SelectTriggerButtonInterface<T> {\n ariaDescribedBy?: string;\n children: React.ReactNode | React.ReactNode[];\n customComponents?: SelectComponents<T>;\n hasError?: boolean;\n disabled?: boolean;\n isInverse?: boolean;\n style?: React.CSSProperties;\n toggleButtonProps: any;\n tabindex?: number;\n}\n\nexport function SelectTriggerButton<T>(props: SelectTriggerButtonInterface<T>) {\n const {\n ariaDescribedBy,\n children,\n customComponents,\n hasError,\n disabled,\n isInverse,\n style: passedInStyle,\n toggleButtonProps,\n } = props;\n const theme = React.useContext(ThemeContext);\n\n const { DropdownIndicator } = defaultComponents<T>({\n ...customComponents,\n });\n\n const style = { ...passedInStyle, cursor: 'default' };\n\n return (\n <StyledButton\n {...toggleButtonProps}\n aria-describedby={ariaDescribedBy}\n data-testid=\"selectTriggerButton\"\n hasError={hasError}\n disabled={disabled}\n isInverse={isInverse}\n role=\"button\"\n style={style}\n theme={theme}\n tabIndex={disabled ? undefined : 0}\n >\n <ChildrenContainer>{children}</ChildrenContainer>\n <DropdownIndicator />\n </StyledButton>\n );\n}\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nimport { inputBaseStyles } from '../InputBase';\nimport {\n FormFieldContainer,\n FormFieldContainerBaseProps,\n} from '../FormFieldContainer';\nimport { SelectTriggerButton } from '../Select/SelectTriggerButton';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\nimport { useGenerateId } from '../../utils';\n\n/**\n * @children required\n */\nexport interface NativeSelectProps\n extends Omit<FormFieldContainerBaseProps, 'inputSize'>,\n React.SelectHTMLAttributes<HTMLSelectElement> {\n testId?: string;\n optionLabel?: string;\n}\nconst StyledNativeSelect = styled.select`\n ${inputBaseStyles};\n background: inherit;\n`;\n\nexport const NativeSelect = React.forwardRef<HTMLDivElement, NativeSelectProps>(\n (props, ref) => {\n const {\n children,\n containerStyle,\n disabled,\n errorMessage,\n id: defaultId,\n helperMessage,\n isInverse: isInverseProp,\n labelStyle,\n labelText,\n messageStyle,\n testId,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n const id = useGenerateId(defaultId);\n\n return (\n <FormFieldContainer\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n labelStyle={labelStyle}\n labelText={labelText}\n isInverse={isInverse}\n helperMessage={helperMessage}\n messageStyle={messageStyle}\n ref={ref}\n >\n <SelectTriggerButton\n disabled={disabled}\n hasError={!!errorMessage}\n isInverse={isInverse}\n toggleButtonProps={''}\n >\n <StyledNativeSelect\n {...other}\n data-testid={testId}\n disabled={disabled}\n id={id}\n isInverse={isInverse}\n theme={theme}\n >\n {children}\n </StyledNativeSelect>\n </SelectTriggerButton>\n </FormFieldContainer>\n );\n }\n);\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { useIsInverse } from '../../inverse';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\n\ninterface TabsContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The index of the current active tab. You can use this for managing state of the tabs component by your custom logic.\n */\n activeIndex?: number;\n isInverse?: boolean;\n testId?: string;\n}\n\ninterface TabsContainerContextInterface {\n activeTabIndex: number;\n isInverseContainer: boolean;\n setActiveTabIndex: React.Dispatch<React.SetStateAction<number>>;\n}\n\nexport const TabsContainerContext = React.createContext<TabsContainerContextInterface>(\n {\n activeTabIndex: 0,\n isInverseContainer: false,\n setActiveTabIndex: () => 0,\n }\n);\n\nconst StyledTabsContainer = styled.div<{\n isInverse?: boolean;\n theme: ThemeInterface;\n}>`\n background: ${props =>\n props.isInverse ? props.theme.colors.foundation02 : 'none'};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n display: flex;\n flex-wrap: wrap;\n position: relative;\n`;\n\nexport const TabsContainer = React.forwardRef<\n HTMLDivElement,\n TabsContainerProps\n>((props, ref) => {\n const { activeIndex, children, testId } = props;\n\n React.useEffect(() => {\n if (activeIndex >= 0) {\n setActiveTabIndex(activeIndex);\n }\n }, [activeIndex]);\n\n const [activeTabIndex, setActiveTabIndex] = React.useState(activeIndex || 0);\n\n const isInverse = useIsInverse(props.isInverse);\n\n React.useEffect(() => {\n setIsInverseContainer(isInverse);\n }, [props.isInverse]);\n\n const [isInverseContainer, setIsInverseContainer] = React.useState(\n Boolean(props.isInverse)\n );\n\n const theme = React.useContext(ThemeContext);\n\n return (\n <TabsContainerContext.Provider\n value={{\n activeTabIndex,\n setActiveTabIndex,\n isInverseContainer,\n }}\n >\n <StyledTabsContainer\n ref={ref}\n data-testid={testId}\n theme={theme}\n {...props}\n >\n {children}\n </StyledTabsContainer>\n </TabsContainerContext.Provider>\n );\n});\n","export enum TabsOrientation {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/core';\nimport { transparentize } from 'polished';\nimport { TabsOrientation } from './shared';\nimport { ThemeInterface } from '../../theme/magma';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\n\nimport {\n ArrowBackIosIcon,\n ExpandLessIcon,\n ExpandMoreIcon,\n ArrowForwardIosIcon,\n} from 'react-magma-icons';\n\nexport interface ScrollButtonProps\n extends React.HTMLAttributes<HTMLButtonElement> {\n backgroundColor?: string;\n buttonVisible?: boolean;\n isInverse?: boolean;\n orientation?: TabsOrientation;\n theme?: ThemeInterface;\n}\n\nconst StyledScrollButton = styled.button<ScrollButtonProps>`\n align-items: center;\n backdrop-filter: blur(1px);\n border: 0;\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n cursor: pointer;\n display: ${props => (props.buttonVisible ? 'flex' : 'none')};\n justify-content: center;\n outline-offset: 0;\n position: absolute;\n -webkit-appearance: none;\n z-index: 2;\n\n bottom: 0;\n top: 0;\n width: 44px;\n\n ${props =>\n props.orientation === 'vertical' &&\n css`\n left: 0;\n height: 44px;\n right: 0;\n width: 100%;\n `}\n`;\n\nconst StyledButtonPrev = styled(StyledScrollButton)<ScrollButtonProps>`\n background: ${props => `linear-gradient(\n 90deg,\n ${props.backgroundColor} 0%,\n ${transparentize(0.5, props.backgroundColor)} 100%\n )`};\n left: 0;\n\n ${props =>\n props.orientation === 'vertical' &&\n css`\n background: ${`linear-gradient(\n ${props.backgroundColor} 0%,\n ${transparentize(0.5, props.backgroundColor)} 100%\n )`};\n\n bottom: auto;\n `}\n`;\n\nconst StyledButtonNext = styled(StyledScrollButton)<{\n backgroundColor?: string;\n orientation?: TabsOrientation;\n}>`\n background: ${props => `linear-gradient(\n 90deg,\n ${transparentize(0.5, props.backgroundColor)} 0%,\n ${props.backgroundColor} 100%\n )`};\n right: 0;\n\n ${props =>\n props.orientation === 'vertical' &&\n css`\n background: linear-gradient(\n ${transparentize(0.5, props.backgroundColor)} 0%,\n ${props.backgroundColor} 100%\n );\n top: auto;\n `}\n`;\n\nexport const ButtonPrev = React.forwardRef<\n HTMLButtonElement,\n ScrollButtonProps\n>((props, ref) => {\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledButtonPrev\n aria-label={i18n.tabs.previousButtonLabel}\n backgroundColor={props.backgroundColor}\n buttonVisible={props.buttonVisible}\n data-testid=\"buttonPrev\"\n isInverse={props.isInverse}\n onClick={props.onClick}\n orientation={props.orientation}\n ref={ref}\n theme={props.theme}\n >\n {props.orientation === TabsOrientation.vertical ? (\n <ExpandLessIcon size={theme.iconSizes.small} />\n ) : (\n <ArrowBackIosIcon size={theme.iconSizes.small} />\n )}\n </StyledButtonPrev>\n );\n});\n\nexport const ButtonNext = React.forwardRef<\n HTMLButtonElement,\n ScrollButtonProps\n>((props, ref) => {\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledButtonNext\n aria-label={i18n.tabs.nextButtonLabel}\n backgroundColor={props.backgroundColor}\n buttonVisible={props.buttonVisible}\n data-testid=\"buttonNext\"\n isInverse={props.isInverse}\n onClick={props.onClick}\n orientation={props.orientation}\n ref={ref}\n theme={props.theme}\n >\n {props.orientation === TabsOrientation.vertical ? (\n <ExpandMoreIcon size={theme.iconSizes.small} />\n ) : (\n <ArrowForwardIosIcon size={theme.iconSizes.small} />\n )}\n </StyledButtonNext>\n );\n});\n","import React from 'react';\nimport { TabsOrientation } from './shared';\nimport {\n animate,\n debounce,\n getNormalizedScrollLeft,\n detectScrollType,\n} from '../../utils';\n\nexport function useTabsMeta(theme, orientation, backgroundColor, isInverse) {\n const isRtl = theme.direction === 'rtl';\n const vertical = orientation === TabsOrientation.vertical;\n const scrollStart = vertical ? 'scrollTop' : 'scrollLeft';\n const clientSize = vertical ? 'clientHeight' : 'clientWidth';\n\n const approxTabSize = vertical\n ? theme.tabs.approxTabSize.vertical\n : theme.tabs.approxTabSize.horizontal;\n\n const background = backgroundColor\n ? backgroundColor\n : isInverse\n ? theme.colors.foundation\n : theme.colors.neutral08;\n\n const [displayScroll, setDisplayScroll] = React.useState({\n start: false,\n end: false,\n });\n\n const tabsWrapperRef = React.useRef<HTMLDivElement>();\n const prevButtonRef = React.useRef<HTMLButtonElement>();\n const nextButtonRef = React.useRef<HTMLButtonElement>();\n\n function scroll(scrollValue) {\n animate(scrollStart, tabsWrapperRef.current, scrollValue);\n }\n\n function moveTabsScroll(delta) {\n let scrollValue = tabsWrapperRef.current[scrollStart];\n\n if (vertical) {\n scrollValue += delta;\n } else {\n scrollValue += delta * (isRtl ? -1 : 1);\n // Fix for Edge\n scrollValue *= isRtl && detectScrollType() === 'reverse' ? -1 : 1;\n }\n\n scroll(scrollValue);\n }\n\n function handleStartScrollClick() {\n moveTabsScroll(-tabsWrapperRef.current[clientSize] + approxTabSize);\n }\n\n function handleEndScrollClick() {\n moveTabsScroll(tabsWrapperRef.current[clientSize] - approxTabSize);\n }\n\n function updateScrollButtonState() {\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n scrollWidth,\n clientWidth,\n } = tabsWrapperRef.current;\n let showStartScroll;\n let showEndScroll;\n\n if (vertical) {\n showStartScroll = scrollTop > 1;\n showEndScroll = scrollTop < scrollHeight - clientHeight - 1;\n } else {\n const scrollLeft = getNormalizedScrollLeft(\n tabsWrapperRef.current,\n theme.direction\n );\n // use 1 for the potential rounding error with browser zooms.\n showStartScroll = isRtl\n ? scrollLeft < scrollWidth - clientWidth - 1\n : scrollLeft > 1;\n showEndScroll = !isRtl\n ? scrollLeft < scrollWidth - clientWidth - 1\n : scrollLeft > 1;\n }\n\n if (\n showStartScroll !== displayScroll.start ||\n showEndScroll !== displayScroll.end\n ) {\n setDisplayScroll({ start: showStartScroll, end: showEndScroll });\n }\n }\n\n React.useEffect(() => {\n const handleResize = debounce(updateScrollButtonState, 100);\n\n window.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [updateScrollButtonState]);\n\n const handleTabsScroll = React.useCallback(\n debounce(updateScrollButtonState, 100),\n [updateScrollButtonState]\n );\n\n React.useEffect(() => {\n return () => {\n handleTabsScroll.clear();\n };\n }, [handleTabsScroll]);\n\n React.useEffect(updateScrollButtonState);\n\n return [\n { vertical, background, displayScroll, scrollStart },\n { handleStartScrollClick, handleEndScrollClick, handleTabsScroll, scroll },\n { prevButtonRef, nextButtonRef, tabsWrapperRef },\n ];\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { TabsContainerContext } from './TabsContainer';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { Omit, getNormalizedScrollLeft } from '../../utils';\nimport { useDescendants } from '../../hooks/useDescendants';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { ButtonNext, ButtonPrev } from './TabsScrollButtons';\nimport { useTabsMeta } from './utils';\nimport { I18nContext } from '../../i18n';\n\nexport enum TabsAlignment {\n center = 'center',\n left = 'left',\n right = 'right',\n}\n\nexport enum TabsBorderPosition {\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n top = 'top',\n}\n\nexport enum TabsIconPosition {\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n top = 'top',\n}\n\nexport enum TabsOrientation {\n horizontal = 'horizontal',\n vertical = 'vertical',\n}\n\nexport interface VerticalTabsProps {\n orientation?: TabsOrientation.vertical;\n borderPosition?: TabsBorderPosition.left | TabsBorderPosition.right;\n}\nexport interface HorizontalTabsProps {\n orientation?: TabsOrientation.horizontal;\n borderPosition?: TabsBorderPosition.bottom | TabsBorderPosition.top;\n}\n\nexport declare type Orientation = HorizontalTabsProps | VerticalTabsProps;\n\nexport interface TabsProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /**\n * Alignment of the tabs menu\n * @default TabsAlignment.left\n */\n alignment?: TabsAlignment;\n /**\n * The text the screen reader will announce that describes your tablist.\n */\n 'aria-label'?: string;\n /**\n * Background color for the tabs menu\n */\n backgroundColor?: string;\n /**\n * The orientation of icon on Tab\n */\n iconPosition?: TabsIconPosition;\n /**\n * If true, the components takes the full width of the screen\n */\n isFullWidth?: boolean;\n isInverse?: boolean;\n /**\n * The onChange handler for managing state of Tabs component by your custom logic.\n */\n onChange?: (newActiveIndex: number) => void;\n orientation?: TabsOrientation;\n testId?: string;\n}\n\ninterface TabsContextInterface {\n borderPosition?: TabsBorderPosition;\n buttonRefArray?: React.MutableRefObject<React.MutableRefObject<Element>[]>;\n changeHandler: (\n newActiveIndex: number,\n event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => void;\n iconPosition?: TabsIconPosition;\n isInverse?: boolean;\n isFullWidth?: boolean;\n orientation?: TabsOrientation;\n registerTabButton: (\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n ) => void;\n}\n\nexport const TabsContext = React.createContext<TabsContextInterface>({\n borderPosition: TabsBorderPosition.bottom,\n changeHandler: () => {},\n iconPosition: TabsIconPosition.left,\n isInverse: false,\n isFullWidth: false,\n orientation: TabsOrientation.horizontal,\n registerTabButton: (elements, element) => {},\n});\n\nexport const StyledContainer = styled('div', {\n shouldForwardProp: isPropValid,\n})<{\n as?: string;\n orientation: TabsOrientation;\n isInverse: boolean;\n backgroundColor: string;\n theme: ThemeInterface;\n}>`\n background-color: ${props =>\n props.backgroundColor\n ? props.backgroundColor\n : props.isInverse\n ? props.theme.colors.foundation\n : 'transparent'};\n background: backgroundColor;\n display: flex;\n height: ${props => (props.orientation === 'vertical' ? '100%' : 'auto')};\n\n position: relative;\n width: ${props => (props.orientation === 'vertical' ? 'auto' : '100%')};\n`;\n\nexport const StyledTabsWrapper = styled('div', {\n shouldForwardProp: isPropValid,\n})<{\n orientation: TabsOrientation;\n}>`\n display: flex;\n flex-grow: 1;\n overflow-x: ${props => (props.orientation === 'vertical' ? '' : 'auto')};\n overflow-y: ${props => (props.orientation === 'vertical' ? 'auto' : '')};\n\n &::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n scrollbar-width: none;\n`;\n\nexport const StyledTabs = styled('ul', { shouldForwardProp: isPropValid })<{\n alignment?: TabsAlignment;\n orientation: TabsOrientation;\n}>`\n align-items: center;\n display: flex;\n flex-direction: ${props =>\n props.orientation === 'vertical' ? 'column' : 'row'};\n justify-content: ${props =>\n props.alignment === 'center'\n ? 'center'\n : props.alignment === 'right'\n ? 'flex-end'\n : ''};\n margin: 0;\n padding: 0;\n width: ${props => (props.orientation === 'vertical' ? 'auto' : '100%')};\n`;\n\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps & Orientation>(\n (props, ref) => {\n const {\n alignment,\n backgroundColor,\n borderPosition,\n children,\n isFullWidth,\n orientation,\n onChange,\n iconPosition,\n testId,\n ...rest\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const { activeTabIndex, setActiveTabIndex, isInverseContainer } =\n React.useContext(TabsContainerContext);\n\n const isInverse =\n typeof props.isInverse !== 'undefined'\n ? Boolean(props.isInverse)\n : isInverseContainer;\n\n const [tabsMeta, tabsHandleMethods, tabsRefs] = useTabsMeta(\n theme,\n orientation,\n backgroundColor,\n isInverse\n );\n\n const { vertical, background, displayScroll, scrollStart } = tabsMeta;\n const {\n handleStartScrollClick,\n handleEndScrollClick,\n handleTabsScroll,\n scroll,\n } = tabsHandleMethods;\n const { prevButtonRef, nextButtonRef, tabsWrapperRef } = tabsRefs;\n\n const start = vertical ? 'top' : 'left';\n const end = vertical ? 'bottom' : 'right';\n\n const [buttonRefArray, registerTabButton] = useDescendants();\n\n const childrenWrapperRef = React.useRef<HTMLUListElement>();\n\n function getTabsMeta() {\n const tabsNode = tabsWrapperRef.current;\n let tabsMeta;\n if (tabsNode) {\n const rect = tabsNode.getBoundingClientRect();\n tabsMeta = {\n clientWidth: tabsNode.clientWidth,\n scrollLeft: tabsNode.scrollLeft,\n scrollTop: tabsNode.scrollTop,\n scrollLeftNormalized: getNormalizedScrollLeft(\n tabsNode,\n theme.direction\n ),\n scrollWidth: tabsNode.scrollWidth,\n top: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n right: rect.right,\n };\n }\n\n let tabMeta;\n if (tabsNode) {\n const childrenArray = childrenWrapperRef.current.children;\n if (childrenArray.length > 0) {\n const tab = childrenArray[activeTabIndex];\n tabMeta = tab ? (tab as any).getBoundingClientRect() : null;\n }\n }\n return { tabsMeta, tabMeta };\n }\n\n function scrollSelectedIntoView() {\n const { tabsMeta, tabMeta } = getTabsMeta();\n\n if (!tabMeta || !tabsMeta) {\n return;\n }\n\n const prevButtonOffset = vertical\n ? Number(prevButtonRef.current.offsetHeight)\n : Number(prevButtonRef.current.offsetWidth);\n const nextButtonOffset = vertical\n ? Number(nextButtonRef.current.offsetHeight)\n : Number(nextButtonRef.current.offsetWidth);\n\n if (tabMeta[start] < Number(tabsMeta[start]) + prevButtonOffset) {\n // left side of button is out of view\n const nextScrollStart =\n Number(tabsMeta[scrollStart]) +\n (Number(tabMeta[start]) - Number(tabsMeta[start])) -\n prevButtonOffset;\n scroll(nextScrollStart);\n } else if (tabMeta[end] > Number(tabsMeta[end]) - nextButtonOffset) {\n // right side of button is out of view\n const nextScrollStart =\n Number(tabsMeta[scrollStart]) +\n (Number(tabMeta[end]) - Number(tabsMeta[end])) +\n nextButtonOffset;\n scroll(nextScrollStart);\n }\n }\n\n React.useEffect(scrollSelectedIntoView, []);\n\n React.useEffect(scrollSelectedIntoView, [activeTabIndex]);\n\n function changeHandler(\n newActiveIndex: number,\n event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ): void {\n if (\n (event.target as HTMLInputElement).children[0] &&\n (event.target as HTMLInputElement).children[0].hasAttribute('disabled')\n ) {\n event.preventDefault();\n return undefined;\n }\n\n onChange && typeof onChange === 'function' && onChange(newActiveIndex);\n\n newActiveIndex === activeTabIndex\n ? scrollSelectedIntoView()\n : setActiveTabIndex(newActiveIndex);\n }\n\n function tabIsEnabled(tabIndex) {\n return (\n buttonRefArray.current[tabIndex].current.getAttribute('disabled') ===\n null\n );\n }\n\n function findPreviousEnabledTabIndex(modifiedActiveTabIndex?: number) {\n const currentTabIndex = modifiedActiveTabIndex\n ? modifiedActiveTabIndex\n : activeTabIndex;\n const newActiveTabIndex = currentTabIndex > 0 ? currentTabIndex - 1 : 0;\n\n if (tabIsEnabled(newActiveTabIndex)) {\n return newActiveTabIndex;\n } else if (newActiveTabIndex - 1 >= 0) {\n return findPreviousEnabledTabIndex(newActiveTabIndex);\n } else {\n return activeTabIndex;\n }\n }\n\n function findNextEnabledTabIndex(\n lastChildIndex: number,\n modifiedActiveTabIndex?: number\n ) {\n const currentTabIndex =\n modifiedActiveTabIndex === 0 || modifiedActiveTabIndex\n ? modifiedActiveTabIndex\n : activeTabIndex;\n const newActiveTabIndex =\n currentTabIndex < lastChildIndex ? currentTabIndex + 1 : lastChildIndex;\n\n if (tabIsEnabled(newActiveTabIndex)) {\n return newActiveTabIndex;\n } else if (newActiveTabIndex + 1 <= lastChildIndex) {\n return findNextEnabledTabIndex(lastChildIndex, newActiveTabIndex);\n } else {\n return activeTabIndex;\n }\n }\n\n function handleKeyDown(event: React.KeyboardEvent) {\n const target = event.target as HTMLButtonElement;\n\n const role = target.getAttribute('role');\n if (role !== 'tab') {\n return;\n }\n\n const lastChildIndex = buttonRefArray.current.length - 1;\n let newActiveTabIndex = null;\n let previousItemKey =\n orientation !== TabsOrientation.vertical ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey =\n orientation !== TabsOrientation.vertical ? 'ArrowRight' : 'ArrowDown';\n\n switch (event.key) {\n case previousItemKey:\n newActiveTabIndex = findPreviousEnabledTabIndex();\n break;\n case nextItemKey:\n newActiveTabIndex = findNextEnabledTabIndex(lastChildIndex);\n break;\n case 'Home':\n newActiveTabIndex = tabIsEnabled(0)\n ? 0\n : findNextEnabledTabIndex(lastChildIndex, 0);\n break;\n case 'End':\n newActiveTabIndex = tabIsEnabled(lastChildIndex)\n ? lastChildIndex\n : findPreviousEnabledTabIndex(lastChildIndex);\n break;\n default:\n break;\n }\n\n if (newActiveTabIndex !== null) {\n onChange &&\n typeof onChange === 'function' &&\n onChange(newActiveTabIndex);\n setActiveTabIndex(newActiveTabIndex);\n (\n buttonRefArray.current[newActiveTabIndex].current as HTMLButtonElement\n ).focus();\n event.preventDefault();\n }\n }\n\n const i18n = React.useContext(I18nContext);\n const ariaLabel = `${rest['aria-label'] || ''}, ${\n orientation === TabsOrientation.vertical\n ? i18n.tabs.verticalTabsInstructions\n : i18n.tabs.horizontalTabsInstructions\n }`;\n\n return (\n <StyledContainer\n data-testid={testId}\n backgroundColor={background}\n isInverse={isInverse}\n orientation={orientation || TabsOrientation.horizontal}\n ref={ref}\n theme={theme}\n {...rest}\n >\n <ButtonPrev\n backgroundColor={background}\n buttonVisible={displayScroll.start}\n isInverse={isInverse}\n onClick={handleStartScrollClick}\n orientation={orientation || TabsOrientation.horizontal}\n ref={prevButtonRef}\n theme={theme}\n />\n <StyledTabsWrapper\n data-testid=\"tabsWrapper\"\n onScroll={handleTabsScroll}\n orientation={orientation}\n ref={tabsWrapperRef}\n >\n <StyledTabs\n alignment={alignment ? alignment : TabsAlignment.left}\n aria-label={ariaLabel}\n aria-orientation={orientation || TabsOrientation.horizontal}\n onKeyDown={handleKeyDown}\n orientation={orientation}\n ref={childrenWrapperRef}\n role=\"tablist\"\n >\n <TabsContext.Provider\n value={{\n borderPosition,\n buttonRefArray,\n changeHandler,\n iconPosition,\n isInverse,\n isFullWidth,\n orientation,\n registerTabButton,\n }}\n >\n {children}\n </TabsContext.Provider>\n </StyledTabs>\n </StyledTabsWrapper>\n <ButtonNext\n backgroundColor={background}\n buttonVisible={displayScroll.end}\n isInverse={isInverse}\n onClick={handleEndScrollClick}\n orientation={orientation || TabsOrientation.horizontal}\n ref={nextButtonRef}\n theme={theme}\n />\n </StyledContainer>\n );\n }\n);\n","import React from 'react';\n\nexport function useForceUpdate() {\n const [, setTick] = React.useState(0);\n const update = React.useCallback(() => {\n setTick(tick => tick + 1);\n }, []);\n return update;\n}","import React from 'react';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { css } from '@emotion/core';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { TabsIconPosition, TabsBorderPosition, TabsContext } from './Tabs';\nimport { TabsOrientation } from './shared';\nimport { useForkedRef } from '../../utils';\nimport { useForceUpdate } from '../../hooks/useForceUpdate';\nimport { TabsContainerContext } from './TabsContainer';\nimport { ThemeInterface } from '../../theme/magma';\n\nexport interface TabProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<any> | React.ReactElement<any>[];\n /**\n * If true, the component will display with the active/selected state\n * @default false\n */\n isActive?: boolean;\n isInverse?: boolean;\n testId?: string;\n /**\n * @internal\n */\n theme?: any;\n}\n\nexport const StyledTabsChild = styled('li', {\n shouldForwardProp: isPropValid,\n})<{\n borderPosition?: TabsBorderPosition;\n isActive?: boolean;\n isFullWidth?: boolean;\n isInverse?: boolean;\n orientation: TabsOrientation;\n theme: ThemeInterface;\n}>`\n flex-grow: 0;\n flex-shrink: ${props => (props.isFullWidth ? '1' : '0')};\n height: ${props => (props.orientation === 'vertical' ? 'auto' : '100%')};\n list-style: none;\n margin: 0;\n max-width: ${props => (props.isFullWidth ? '100%' : '250px')};\n padding: 0;\n position: relative;\n white-space: normal;\n width: ${props =>\n props.isFullWidth || props.orientation === 'vertical' ? '100%' : 'auto'};\n\n &:after {\n background: ${props =>\n props.isInverse ? props.theme.colors.pop02 : props.theme.colors.primary};\n border-radius: 2px;\n content: '';\n display: block;\n height: 4px;\n opacity: ${props => (props.isActive ? '1' : '0')};\n position: absolute;\n transition: 0.4s all;\n width: auto;\n\n bottom: ${props => (props.borderPosition === 'top' ? 'auto' : '0')};\n left: ${props => (props.isActive ? '0' : '50%')};\n right: ${props => (props.isActive ? '0' : '50%')};\n top: ${props => (props.borderPosition === 'top' ? '0' : 'auto')};\n\n ${props =>\n props.orientation === 'vertical' &&\n css`\n height: auto;\n\n bottom: ${props.isActive ? '0' : '50%'};\n left: ${props.borderPosition === 'right' ? 'auto' : '0'};\n right: ${props.borderPosition === 'right' ? '0' : 'auto'};\n top: ${props.isActive ? '0' : '50%'};\n\n width: 4px;\n `}\n }\n`;\n\nfunction getFlexDirection(position: TabsIconPosition) {\n switch (position) {\n case TabsIconPosition.left:\n return 'row';\n case TabsIconPosition.right:\n return 'row-reverse';\n case TabsIconPosition.top:\n return 'column';\n case TabsIconPosition.bottom:\n return 'column-reverse';\n default:\n return 'column';\n }\n}\n\nexport const TabStyles = props => css`\n align-items: center;\n background: transparent;\n border: 0;\n color: ${props.isActive && !props.isInverse\n ? props.theme.colors.primary\n : props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral03};\n cursor: ${props.disabled ? 'auto' : 'pointer'};\n display: flex;\n flex-direction: ${getFlexDirection(props.iconPosition)};\n flex-grow: 0;\n flex-shrink: ${props.isFullWidth ? '1' : '0'};\n font-weight: 600;\n font-size: ${props.theme.typeScale.size02.fontSize};\n letter-spacing: ${props.theme.typeScale.size02.letterSpacing};\n line-height: ${props.theme.typeScale.size02.lineHeight};\n height: 100%;\n justify-content: ${props.iconPosition === 'left' ? 'flex-start' : 'center'};\n opacity: ${props.disabled\n ? 0.4\n : props.isInverse && !props.isActive\n ? 0.7\n : 1};\n padding: ${props.theme.spaceScale.spacing04}\n ${props.theme.spaceScale.spacing05};\n position: relative;\n pointer-events: ${props.disabled ? 'none' : ''};\n text-align: center;\n text-decoration: none;\n text-transform: uppercase;\n width: ${props.isFullWidth ? '100%' : 'auto'};\n\n ${props.orientation === 'vertical' &&\n css`\n align-items: flex-start;\n justify-content: ${props.iconPosition === 'left'\n ? 'flex-start'\n : 'flex-end'};\n text-align: left;\n width: 100%;\n\n align-items: center;\n `}\n\n &:hover,\n &:focus {\n background-color: ${props.isActive\n ? ''\n : props.isInverse\n ? props.theme.colors.shade02\n : props.theme.colors.shade};\n color: ${props.isActive\n ? props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.primary\n : props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral02};\n }\n\n &:focus {\n outline-offset: -2px;\n outline: ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus}\n dotted 2px;\n }\n`;\n\nconst StyledTab = styled('button', { shouldForwardProp: isPropValid })<{\n borderPosition?: TabsBorderPosition;\n iconPosition?: TabsIconPosition;\n isActive?: boolean;\n isFullWidth?: boolean;\n isInverse?: boolean;\n orientation: TabsOrientation;\n theme: ThemeInterface;\n}>`\n ${TabStyles}\n`;\n\nfunction getIconMargin(props) {\n if (props.isIconOnly) {\n return `0`;\n }\n\n switch (props.iconPosition) {\n case TabsIconPosition.left:\n return `0 ${props.theme.spaceScale.spacing03} 0 0`;\n case TabsIconPosition.right:\n return `0 0 0 ${props.theme.spaceScale.spacing03}`;\n case TabsIconPosition.top:\n return `0 0 ${props.theme.spaceScale.spacing02}`;\n case TabsIconPosition.bottom:\n return `${props.theme.spaceScale.spacing02} 0 0`;\n default:\n return `0 0 ${props.theme.spaceScale.spacing02}`;\n }\n}\n\nexport const StyledIcon = styled.span<{\n iconPosition: TabsIconPosition;\n isIconOnly?: boolean;\n theme: ThemeInterface;\n}>`\n display: flex;\n margin: ${props => getIconMargin(props)};\n\n svg {\n height: ${props => props.theme.iconSizes.small}px;\n width: ${props => props.theme.iconSizes.small}px;\n }\n`;\n\nexport const Tab = React.forwardRef<HTMLButtonElement, TabProps>(\n (props, forwardedRef) => {\n const { children, icon, disabled, testId, ...rest } = props;\n const { activeTabIndex } = React.useContext(TabsContainerContext);\n const { buttonRefArray, registerTabButton } = React.useContext(TabsContext);\n const ownRef = React.useRef<HTMLDivElement>();\n const forceUpdate = useForceUpdate();\n\n const index = buttonRefArray.current.findIndex(({ current: item }) => {\n if (!item || !ownRef.current) return false;\n\n return item === ownRef.current;\n });\n\n const isActive = index === activeTabIndex;\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n const {\n changeHandler,\n orientation,\n borderPosition,\n iconPosition,\n isInverse,\n isFullWidth,\n } = React.useContext(TabsContext);\n\n const handleClick = (index, e) => {\n changeHandler(index, e);\n\n props.onClick && typeof props.onClick === 'function' && props.onClick(e);\n };\n\n React.useEffect(() => {\n registerTabButton(buttonRefArray, ownRef);\n\n forceUpdate();\n }, []);\n\n const theme = React.useContext(ThemeContext);\n const isIconOnly = !children;\n\n const tabIconPosition = iconPosition\n ? iconPosition\n : orientation === 'vertical'\n ? TabsIconPosition.left\n : TabsIconPosition.top;\n\n return (\n <StyledTabsChild\n borderPosition={borderPosition}\n data-testid=\"tabContainer\"\n isActive={isActive}\n isFullWidth={isFullWidth}\n isInverse={isInverse}\n orientation={orientation}\n role=\"presentation\"\n theme={theme}\n >\n <StyledTab\n {...rest}\n aria-selected={isActive}\n data-testid={testId}\n disabled={disabled}\n iconPosition={tabIconPosition}\n isActive={isActive}\n isInverse={isInverse}\n isFullWidth={isFullWidth}\n onClick={e => handleClick(index, e)}\n orientation={orientation}\n ref={ref}\n role=\"tab\"\n tabIndex={isActive ? 0 : -1}\n theme={theme}\n >\n {icon && (\n <StyledIcon\n theme={theme}\n iconPosition={tabIconPosition}\n isIconOnly={isIconOnly}\n >\n {icon}\n </StyledIcon>\n )}\n {children}\n </StyledTab>\n </StyledTabsChild>\n );\n }\n);\n","import React from 'react';\nimport { TabsContainerContext } from './TabsContainer';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '@emotion/styled';\nimport { ThemeInterface } from '../../theme/magma';\n\nconst StyledTabPanel = styled.div<{\n isInverse?: boolean;\n theme: ThemeInterface;\n}>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation02\n : props.theme.colors.neutral08};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n flex: 1;\n height: 100%;\n padding: 20px;\n`;\n\nexport interface TabPanelProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * @internal\n */\n index?: number;\n isInverse?: boolean;\n testId?: string;\n}\n\nexport const TabPanel = React.forwardRef<HTMLDivElement, TabPanelProps>(\n (props, ref) => {\n const { index, isInverse, testId, children, ...other } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const { activeTabIndex } = React.useContext(TabsContainerContext);\n const activeTab = activeTabIndex === index;\n\n return activeTab ? (\n <StyledTabPanel\n ref={ref}\n data-testid={testId}\n isInverse={isInverse}\n theme={theme}\n {...other}\n >\n {children}\n </StyledTabPanel>\n ) : null;\n }\n);\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { TabsContainerContext } from './TabsContainer';\n\ninterface TabPanelContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n isInverse?: boolean;\n testId?: string;\n}\n\nconst StyledContainer = styled.div`\n flex-grow: 1;\n`;\n\nexport const TabPanelsContainer = React.forwardRef<\n HTMLDivElement,\n TabPanelContainerProps\n>((props, ref) => {\n const { children, testId, ...rest } = props;\n\n const { isInverseContainer } = React.useContext(TabsContainerContext);\n\n return (\n <StyledContainer ref={ref} data-testid={testId} {...rest}>\n {React.Children.map(children, (child: React.ReactElement<any>, index) => {\n const isInverse =\n typeof child.props.isInverse !== 'undefined'\n ? child.props.isInverse\n : typeof props.isInverse !== 'undefined'\n ? props.isInverse\n : isInverseContainer;\n\n return React.cloneElement(child, { index, isInverse, key: index });\n })}\n {children}\n </StyledContainer>\n );\n});\n","import * as React from 'react';\nimport {\n StyledContainer,\n StyledTabsWrapper,\n StyledTabs,\n TabsAlignment,\n TabsBorderPosition,\n TabsIconPosition,\n TabsProps,\n Orientation,\n} from '../Tabs';\nimport { TabsOrientation } from '../Tabs/shared';\nimport { Omit } from '../../utils';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ButtonNext, ButtonPrev } from '../Tabs/TabsScrollButtons';\nimport { useTabsMeta } from '../Tabs/utils';\nimport { useIsInverse } from '../../inverse';\n\nexport interface NavTabsProps extends Omit<TabsProps, 'onChange'> {}\n\ninterface NavTabsContextInterface {\n borderPosition?: TabsBorderPosition;\n iconPosition?: TabsIconPosition;\n isInverse?: boolean;\n isFullWidth?: boolean;\n orientation?: TabsOrientation;\n}\n\nexport const NavTabsContext = React.createContext<NavTabsContextInterface>({\n borderPosition: TabsBorderPosition.bottom,\n iconPosition: TabsIconPosition.left,\n isInverse: false,\n isFullWidth: false,\n orientation: TabsOrientation.horizontal,\n});\n\nexport const NavTabs = React.forwardRef<\n HTMLDivElement,\n NavTabsProps & Orientation\n>((props, ref) => {\n const {\n alignment,\n backgroundColor,\n borderPosition,\n children,\n iconPosition,\n isFullWidth,\n orientation,\n testId,\n ...rest\n } = props;\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n const background = backgroundColor\n ? backgroundColor\n : isInverse\n ? theme.colors.foundation\n : theme.colors.neutral08;\n\n const [tabsMeta, tabsHandleMethods, tabsRefs] = useTabsMeta(\n theme,\n orientation,\n backgroundColor,\n isInverse\n );\n\n const { displayScroll } = tabsMeta;\n const {\n handleStartScrollClick,\n handleEndScrollClick,\n handleTabsScroll,\n } = tabsHandleMethods;\n const { prevButtonRef, nextButtonRef, tabsWrapperRef } = tabsRefs;\n\n return (\n <StyledContainer\n aria-label={rest['aria-label']}\n as=\"nav\"\n backgroundColor={backgroundColor}\n data-testid={testId}\n isInverse={isInverse}\n orientation={orientation || TabsOrientation.horizontal}\n ref={ref}\n theme={theme}\n {...rest}\n >\n <ButtonPrev\n backgroundColor={background}\n buttonVisible={displayScroll.start}\n isInverse={isInverse}\n onClick={handleStartScrollClick}\n orientation={orientation || TabsOrientation.horizontal}\n ref={prevButtonRef}\n theme={theme}\n />\n\n <StyledTabsWrapper\n data-testid=\"navTabsWrapper\"\n onScroll={handleTabsScroll}\n orientation={orientation || TabsOrientation.horizontal}\n ref={tabsWrapperRef}\n >\n <StyledTabs\n alignment={alignment ? alignment : TabsAlignment.left}\n orientation={orientation}\n >\n <NavTabsContext.Provider\n value={{\n borderPosition,\n iconPosition,\n isInverse: isInverse,\n isFullWidth,\n orientation,\n }}\n >\n {children}\n </NavTabsContext.Provider>\n </StyledTabs>\n </StyledTabsWrapper>\n <ButtonNext\n backgroundColor={background}\n buttonVisible={displayScroll.end}\n isInverse={isInverse}\n onClick={handleEndScrollClick}\n orientation={orientation || TabsOrientation.horizontal}\n ref={nextButtonRef}\n theme={theme}\n />\n </StyledContainer>\n );\n});\n","import * as React from 'react';\nimport styled from '@emotion/styled';\nimport { jsx } from '@emotion/core';\n\nimport { NavTabsContext } from './NavTabs';\nimport {\n StyledTabsChild,\n StyledIcon,\n TabStyles,\n TabsIconPosition,\n} from '../Tabs';\nimport { TabsOrientation } from '../Tabs/shared';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { omit, XOR } from '../../utils';\n\n/**\n * @children required\n */\nexport interface BaseNavTabProps\n extends React.HTMLAttributes<HTMLAnchorElement> {\n /**\n * @internal\n */\n css?: any; // Adding css prop to fix emotion error\n /**\n * Icon to display within the component\n */\n icon?: React.ReactElement<any> | React.ReactElement<any>[];\n /**\n * If true, the component will display with the active/selected state\n */\n isActive?: boolean;\n isInverse?: boolean;\n /**\n * Determines if the tabs are displayed vertically or horizontally\n * @default TabsOrientation.horizontal\n */\n orientation?: TabsOrientation;\n testId?: string;\n to?: string;\n /**\n * @internal\n */\n theme?: any;\n}\n\nexport interface NavTabChildrenProps extends BaseNavTabProps {\n children: JSX.Element | string;\n /**\n * The href value of the tab link\n */\n to: string;\n}\n\nexport interface NavTabComponentProps extends BaseNavTabProps {\n /**\n * The prop for custom component instead of `a` in NavTab.\n */\n component: React.ReactNode;\n /**\n * The orientation of icon on NavTab\n */\n iconPosition?: TabsIconPosition;\n /**\n * If true, the tab will take up the full width of its container\n * @default false\n */\n isFullWidth?: boolean;\n}\n\nexport type NavTabProps = XOR<NavTabChildrenProps, NavTabComponentProps>;\n\nfunction instanceOfNavComponentTab(\n object: any\n): object is NavTabComponentProps {\n return 'component' in object && !('children' in object);\n}\n\nfunction instanceOfNavChildrenTab(object: any): object is NavTabChildrenProps {\n return !('component' in object) && 'children' in object;\n}\n\nconst StyledTab = styled.a<{\n borderPosition?: any;\n iconPosition?: TabsIconPosition;\n isActive?: boolean;\n isFullWidth?: boolean;\n isInverse?: boolean;\n orientation: TabsOrientation;\n theme: any;\n}>`\n ${TabStyles}\n`;\n\nexport const StyledCustomTab = React.forwardRef<any, NavTabComponentProps>(\n (props, ref) => {\n const { children, component, icon, style, onClick, ...rest } = props;\n\n if (React.isValidElement(component) && React.isValidElement(component)) {\n const cloneElement = (element, newProps) => {\n return jsx(element.type, {\n key: element.key,\n ref: element.ref,\n ...element.props,\n ...newProps,\n });\n };\n\n const other = omit(\n ['iconPosition', 'isInverse', 'isActive', 'isFullWidth'],\n rest\n );\n\n return cloneElement(component, {\n ...other,\n css: TabStyles(props),\n ...style,\n onClick,\n ref,\n children: (\n <>\n {icon}\n {component.props.children}\n </>\n ),\n });\n }\n }\n);\n\n// Using any type because we do not know the element type of a custom tab\nexport const NavTab = React.forwardRef<any, NavTabProps>((props, ref) => {\n let children;\n let component;\n const { isActive, icon, testId, to, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n if (instanceOfNavComponentTab(props)) {\n component = props.component;\n } else if (instanceOfNavChildrenTab(props)) {\n children = props.children;\n }\n\n const isIconOnly = !children;\n\n const {\n orientation,\n borderPosition,\n iconPosition,\n isInverse,\n isFullWidth,\n } = React.useContext(NavTabsContext);\n\n const tabIconPosition = iconPosition\n ? iconPosition\n : orientation === 'vertical'\n ? TabsIconPosition.left\n : TabsIconPosition.top;\n\n return (\n <StyledTabsChild\n borderPosition={borderPosition}\n data-testid=\"tabContainer\"\n isActive={isActive}\n isFullWidth={isFullWidth}\n isInverse={isInverse}\n orientation={orientation}\n theme={theme}\n >\n {component ? (\n <StyledCustomTab\n {...other}\n component={component}\n data-testid={testId}\n iconPosition={tabIconPosition}\n icon={\n icon && (\n <StyledIcon theme={theme} iconPosition={tabIconPosition}>\n {icon}\n </StyledIcon>\n )\n }\n isActive={isActive}\n isInverse={isInverse}\n isFullWidth={isFullWidth}\n orientation={orientation}\n theme={theme}\n />\n ) : (\n <StyledTab\n {...other}\n ref={ref}\n data-testid={testId}\n href={to}\n isActive={isActive}\n isFullWidth={isFullWidth}\n iconPosition={tabIconPosition}\n isInverse={isInverse}\n orientation={orientation}\n theme={theme}\n >\n {icon && (\n <StyledIcon\n theme={theme}\n iconPosition={tabIconPosition}\n isIconOnly={isIconOnly}\n >\n {icon}\n </StyledIcon>\n )}\n {children}\n </StyledTab>\n )}\n </StyledTabsChild>\n );\n});\n","import * as React from 'react';\nimport { Button, ButtonColor, ButtonProps, ButtonVariant } from '../Button';\nimport { BuildBorder, hoverBorder } from './Pagination';\nimport { darken } from 'polished';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\n\nexport interface PageButtonProps extends ButtonProps {\n isSelected?: boolean;\n}\n\nexport function pageButtonTypeSize(props) {\n if (props.size === 'large') {\n return `${props.theme.typeScale.size05.fontSize}`;\n }\n return `${props.theme.typeScale.size03.fontSize}`;\n}\n\nfunction buttonSize(props) {\n switch (props.size) {\n case 'large':\n return `${props.theme.spaceScale.spacing11}`;\n default:\n return `${props.theme.spaceScale.spacing09}`;\n }\n}\n\nfunction boxShadowColor(props) {\n if (props.color === 'primary') {\n if (props.isInverse) {\n return `-${props.theme.spaceScale.spacing01} 0 0 ${props.theme.colors.neutral08}`;\n }\n return `-${props.theme.spaceScale.spacing01} 0 0 ${props.theme.colors.primary}`;\n }\n}\n\nfunction hoverBoxShadowColor(props) {\n if (props.color === 'primary') {\n if (props.isInverse) {\n return `-${props.theme.spaceScale.spacing01} 0 0 ${props.theme.colors.neutral08}`;\n }\n return `-${props.theme.spaceScale.spacing01} 0 0 ${darken(\n 0.1,\n props.theme.colors.primary\n )}`;\n }\n}\n\nconst StyledPageButton = styled(Button)`\n border: none;\n border-top: ${BuildBorder};\n border-right: ${BuildBorder};\n border-bottom: ${BuildBorder};\n border-radius: 0;\n box-shadow: ${boxShadowColor};\n font-size: ${pageButtonTypeSize} !important;\n height: ${buttonSize};\n margin: 0;\n min-width: 0;\n padding: 0;\n width: ${buttonSize};\n &:focus {\n border-color: ${hoverBorder};\n box-shadow: ${hoverBoxShadowColor};\n outline: 0 !important;\n outline-offset: 0;\n overflow: visible;\n z-index: 1;\n }\n &:focus:before {\n content: '';\n border: ${props =>\n props.isInverse\n ? `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.focusInverse}`\n : `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.focus}`};\n border-style: dotted;\n height: calc(100% + 14px);\n left: -7px;\n position: absolute;\n top: -7px;\n width: calc(100% + 14px);\n }\n`;\n\nexport const PageButton = React.forwardRef<HTMLButtonElement, PageButtonProps>(\n (props, ref) => {\n const { children, isInverse, isSelected, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledPageButton\n ref={ref}\n {...other}\n color={isSelected ? ButtonColor.primary : ButtonColor.secondary}\n theme={theme}\n isInverse={isInverse}\n variant={\n isInverse && !isSelected ? ButtonVariant.outline : ButtonVariant.solid\n }\n >\n {children}\n </StyledPageButton>\n );\n }\n);\n","import * as React from 'react';\nimport { ButtonColor, ButtonShape, ButtonSize, ButtonVariant } from '../Button';\nimport { darken } from 'polished';\nimport { I18nContext } from '../../i18n';\nimport { IconButton } from '../IconButton';\nimport { PageButton, pageButtonTypeSize } from './PageButton';\nimport { ArrowBackIcon, ArrowForwardIcon } from 'react-magma-icons';\nimport styled from '../../theme/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { usePagination } from './usePagination';\n\nexport interface BasePaginationProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n isInverse?: boolean;\n page?: number;\n /**\n * The total number of Pagination buttons\n * @default 1\n */\n count?: number;\n /**\n * If true, disables all of the Pagination buttons\n * @default false\n */\n disabled?: boolean;\n /**\n * If true, hides the next page button\n * @default false\n */\n hideNextButton?: boolean;\n /**\n * If true, hides the previous page button\n * @default false\n */\n hidePreviousButton?: boolean;\n /**\n * Number of page buttons before and after the current page\n * @default 1\n */\n numberOfAdjacentPages?: number;\n /**\n * Number of page buttons at the beginning and end of the page number buttons list\n * @default 1\n */\n numberOfEdgePages?: number;\n /**\n * Event that fires when the page number changes\n */\n onPageChange?: (event: React.SyntheticEvent, newPage: number) => void;\n /**\n * Size toggles between default and large variant buttons.\n */\n size?: PageButtonSize;\n /**\n * If true, shows the first page button\n * @default false\n */\n showFirstButton?: boolean;\n /**\n * If true, shows the last page button\n * @default false\n */\n showLastButton?: boolean;\n}\n\nexport interface ControlledPaginationProps extends BasePaginationProps {\n defaultPage: never;\n /**\n * Current page number\n */\n page?: number;\n}\nexport interface UncontrolledPaginationProps extends BasePaginationProps {\n /**\n * Page selected by default when the component is uncontrolled\n */\n defaultPage?: number;\n page: number;\n}\nexport type PaginationProps =\n | ControlledPaginationProps\n | UncontrolledPaginationProps;\n\nexport enum PageButtonSize {\n medium = 'medium',\n large = 'large',\n}\n\nconst StyledNav = styled.nav`\n min-width: 0;\n`;\n\nconst StyledList = styled.ul`\n display: flex;\n margin: 0;\n padding: 0;\n`;\n\nconst StyledListItem = styled.li`\n list-style-type: none;\n &:last-child {\n button {\n border-left: none;\n }\n }\n`;\n\nexport function BuildBorder(props) {\n switch (props.color) {\n case 'primary':\n if (props.isInverse) {\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.neutral08}`;\n }\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.primary}`;\n default:\n if (props.isInverse) {\n if (props.disabled) {\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.tint04}`;\n }\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.neutral08}`;\n }\n if (props.disabled) {\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.neutral06}`;\n }\n return `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.neutral05}`;\n }\n}\n\nexport function hoverBorder(props) {\n switch (props.color) {\n case 'primary':\n if (props.isInverse) {\n return `${props.theme.colors.neutral08}`;\n }\n return `${darken(0.1, props.theme.colors.primary)}`;\n default:\n if (props.isInverse) {\n return `${props.theme.colors.neutral08}`;\n }\n return `${props.theme.colors.neutral05}`;\n }\n}\n\nfunction BuildButtonSize(props) {\n switch (props.size) {\n case 'large':\n return `${props.theme.spaceScale.spacing11}`;\n default:\n return `${props.theme.spaceScale.spacing09}`;\n }\n}\n\nconst NavButton = styled(IconButton)`\n border-top: ${BuildBorder};\n border-right: ${BuildBorder};\n border-bottom: ${BuildBorder};\n border-left: ${BuildBorder};\n height: ${BuildButtonSize};\n margin: 0;\n padding: 0;\n width: ${BuildButtonSize};\n &:focus {\n z-index: 1;\n outline: 0 !important;\n outline-offset: 0;\n overflow: visible;\n }\n &:focus:before {\n content: '';\n border: ${props =>\n props.isInverse\n ? `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.focusInverse}`\n : `${props.theme.spaceScale.spacing01} solid ${props.theme.colors.focus}`};\n border-style: dotted;\n height: calc(100% + 14px);\n left: -7px;\n position: absolute;\n top: -7px;\n width: calc(100% + 14px);\n }\n`;\n\nconst StyledEllipsis = styled.div`\n align-items: center;\n border-top: ${BuildBorder};\n border-right: ${BuildBorder};\n border-bottom: ${BuildBorder};\n display: flex;\n font-size: ${pageButtonTypeSize};\n height: ${BuildButtonSize};\n justify-content: center;\n width: ${BuildButtonSize};\n`;\n\nexport const Pagination = React.forwardRef<HTMLDivElement, PaginationProps>(\n (props, ref) => {\n const {\n count,\n defaultPage,\n disabled,\n hideNextButton,\n hidePreviousButton,\n isInverse,\n numberOfAdjacentPages,\n numberOfEdgePages,\n page,\n size = PageButtonSize.medium,\n showFirstButton,\n showLastButton,\n testId,\n onPageChange,\n ...other\n } = props;\n const theme = React.useContext(ThemeContext);\n const buttonSize =\n size === PageButtonSize.large ? ButtonSize.large : ButtonSize.medium;\n\n const { pageButtons } = usePagination({\n count,\n defaultPage,\n disabled,\n hideNextButton,\n hidePreviousButton,\n numberOfAdjacentPages,\n numberOfEdgePages,\n onPageChange,\n page,\n showFirstButton,\n showLastButton,\n });\n\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledNav {...other} theme={theme} data-testid={testId} ref={ref}>\n <StyledList>\n {pageButtons.map(\n ({ 'aria-current': ariaCurrent, page, type, ...other }, index) => {\n if (type === 'start-ellipsis' || type === 'end-ellipsis') {\n return (\n <StyledEllipsis\n key={index}\n isInverse={isInverse}\n size={size}\n theme={theme}\n >\n ...\n </StyledEllipsis>\n );\n } else if (type === 'page') {\n return (\n <StyledListItem\n aria-current={Boolean(ariaCurrent)}\n key={index}\n >\n <PageButton\n isInverse={isInverse}\n size={buttonSize}\n {...other}\n >\n {page}\n </PageButton>\n </StyledListItem>\n );\n } else if (type === 'previous' || type === 'next') {\n return (\n <StyledListItem key={index}>\n <NavButton\n variant={\n isInverse ? ButtonVariant.outline : ButtonVariant.solid\n }\n color={ButtonColor.secondary}\n aria-label={i18n.pagination[`${type}ButtonLabel`]}\n icon={\n type === 'previous' ? (\n <ArrowBackIcon />\n ) : (\n <ArrowForwardIcon />\n )\n }\n isInverse={isInverse}\n theme={theme}\n shape={\n type === 'previous'\n ? ButtonShape.leftCap\n : ButtonShape.rightCap\n }\n size={buttonSize}\n {...other}\n />\n </StyledListItem>\n );\n }\n }\n )}\n </StyledList>\n </StyledNav>\n );\n }\n);\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { Announce } from '../Announce';\nimport { InputBase, InputSize, InputType } from '../InputBase';\nimport { Button, ButtonVariant, ButtonType, ButtonSize } from '../Button';\nimport {\n FormFieldContainer,\n FormFieldContainerBaseProps,\n} from '../FormFieldContainer';\nimport { useIsInverse } from '../../inverse';\nimport { VisuallyHidden } from '../VisuallyHidden';\n\nimport { useGenerateId } from '../../utils';\n\nexport interface PasswordInputProps\n extends Omit<FormFieldContainerBaseProps, 'fieldId'>,\n React.InputHTMLAttributes<HTMLInputElement> {\n hiddenPasswordAnnounceText?: string;\n /**\n * Aria-label for the \"Hide Password\" button\n * @default \"Hide password\"\n */\n hidePasswordButtonAriaLabel?: string;\n /**\n * Text displayed on screen for the \"Hide Password\" button\n * @default \"Hide\"\n */\n hidePasswordButtonText?: string;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isPasswordMaskButtonHidden?: boolean;\n shownPasswordAnnounceText?: string;\n /**\n * Aria-label for the \"Show Password\" button\n * @default \"Show password. Note: this will visually expose your password on the screen\"\n */\n showPasswordButtonAriaLabel?: string;\n /**\n * Text displayed on screen for the \"Show Password\" button\n * @default \"Show\"\n */\n showPasswordButtonText?: string;\n testId?: string;\n}\n\nexport const PasswordInput = React.forwardRef<\n HTMLInputElement,\n PasswordInputProps\n>((props, ref) => {\n const [passwordShown, setPasswordShown] = React.useState<boolean>(false);\n\n function togglePasswordShown() {\n setPasswordShown(prevPasswordShown => !prevPasswordShown);\n }\n\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n hiddenPasswordAnnounceText,\n hidePasswordButtonAriaLabel,\n hidePasswordButtonText,\n isPasswordMaskButtonHidden,\n id: defaultId,\n inputSize = InputSize.medium,\n labelStyle,\n labelText,\n isLabelVisuallyHidden,\n messageStyle,\n shownPasswordAnnounceText,\n showPasswordButtonAriaLabel,\n showPasswordButtonText,\n type,\n ...other\n } = props;\n\n const i18n = React.useContext(I18nContext);\n\n const id = useGenerateId(defaultId);\n\n const HIDDEN_PASSWORD_ANNOUNCE_TEXT = hiddenPasswordAnnounceText\n ? hiddenPasswordAnnounceText\n : i18n.password.hidden.announce;\n const HIDE_PASSWORD_BUTTON_ARIA_LABEL = hidePasswordButtonAriaLabel\n ? hidePasswordButtonAriaLabel\n : i18n.password.hidden.ariaLabel;\n const HIDE_PASSWORD_BUTTON_TEXT = hidePasswordButtonText\n ? hidePasswordButtonText\n : i18n.password.hidden.buttonText;\n const SHOWN_PASSWORD_ANNOUNCE_TEXT = shownPasswordAnnounceText\n ? shownPasswordAnnounceText\n : i18n.password.shown.announce;\n const SHOW_PASSWORD_BUTTON_ARIA_LABEL = showPasswordButtonAriaLabel\n ? showPasswordButtonAriaLabel\n : i18n.password.shown.ariaLabel;\n const SHOW_PASSWORD_BUTTON_TEXT = showPasswordButtonText\n ? showPasswordButtonText\n : i18n.password.shown.buttonText;\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <FormFieldContainer\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n helperMessage={helperMessage}\n inputSize={inputSize}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n isInverse={isInverse}\n labelStyle={labelStyle}\n labelText={labelText}\n >\n <InputBase\n autoCorrect=\"off\"\n autoCapitalize=\"none\"\n {...other}\n aria-describedby={\n descriptionId ? descriptionId : props['aria-describedby']\n }\n aria-invalid={!!errorMessage}\n hasError={!!errorMessage}\n id={id}\n inputSize={inputSize}\n isInverse={isInverse}\n ref={ref}\n type={passwordShown ? InputType.text : InputType.password}\n >\n {!isPasswordMaskButtonHidden && (\n <>\n <Button\n aria-label={\n passwordShown\n ? HIDE_PASSWORD_BUTTON_ARIA_LABEL\n : SHOW_PASSWORD_BUTTON_ARIA_LABEL\n }\n isInverse={false}\n onClick={togglePasswordShown}\n size={ButtonSize.small}\n style={{\n borderRadius: theme.borderRadius,\n height:\n inputSize == InputSize.large\n ? theme.spaceScale.spacing10\n : theme.spaceScale.spacing08,\n margin: ' 0 3px 0 0 ',\n }}\n type={ButtonType.button}\n variant={ButtonVariant.link}\n >\n {passwordShown\n ? HIDE_PASSWORD_BUTTON_TEXT\n : SHOW_PASSWORD_BUTTON_TEXT}\n </Button>\n <VisuallyHidden>\n <Announce>\n {passwordShown\n ? SHOWN_PASSWORD_ANNOUNCE_TEXT\n : HIDDEN_PASSWORD_ANNOUNCE_TEXT}\n </Announce>\n </VisuallyHidden>\n </>\n )}\n </InputBase>\n </FormFieldContainer>\n );\n});\n","import * as React from 'react';\nimport { Label } from '../Label';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { InputMessage } from '../Input/InputMessage';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\n\nimport styled from '../../theme/styled';\nimport { omit, useGenerateId } from '../../utils';\n\nconst HiddenLabel = styled.label`\n ${HiddenStyles};\n`;\n\n/**\n * @children required\n */\nexport interface RadioGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Action that fires when the radio group loses focus\n */\n onBlur?: (event?: React.FocusEvent) => void;\n /**\n * Action that fires when selected value of the radio group changes\n */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /**\n * Action that fires when one of the radio buttons within the group receives focus\n */\n onFocus?: (event: React.FocusEvent) => void;\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Content of the error message. If a value is provided, the radio buttons will be styled to show an error state\n */\n errorMessage?: React.ReactNode;\n /**\n * Content of the helper message\n */\n helperMessage?: React.ReactNode;\n isInverse?: boolean;\n /**\n * If true, label text for the radio group will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * ID of the element that labels the radio group, used in the aria-labelledby attribute for the group. Alternatively, the labelText prop can be used\n */\n labelledById?: string;\n /**\n * Style properties for the label of the radio group\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content of label of the radio group; can be node or string. Alternatively, the labelledById prop can be used\n */\n labelText?: React.ReactNode;\n /**\n * Name attribute the radio group\n */\n name: string;\n /**\n * If true, the user must select one radio button for the form to be valid\n * @default false\n */\n required?: boolean;\n testId?: string;\n /**\n * Value of the radio button that is the default selected value for the group\n */\n value?: string;\n}\n\nexport interface RadioContextInterface {\n descriptionId?: string;\n hasError?: boolean;\n isInverse?: boolean;\n required?: boolean;\n name: string;\n selectedValue?: string;\n onBlur?: (event: React.FocusEvent) => void;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onFocus?: (event: React.FocusEvent) => void;\n}\n\nexport const RadioContext = React.createContext<RadioContextInterface>({\n hasError: false,\n name: 'defaultName',\n});\n\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n (props, ref) => {\n const id = useGenerateId(props.id);\n const [selectedValue, setSelectedValue] = React.useState<string>(\n props.value\n );\n\n React.useEffect(() => {\n setSelectedValue(props.value);\n }, [props.value]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value: newSelectedValue } = event.target;\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n setSelectedValue(newSelectedValue);\n }\n\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n required,\n isTextVisuallyHidden,\n labelledById,\n labelStyle,\n labelText,\n testId,\n name,\n children,\n ...rest\n } = props;\n const other = omit(['onBlur', 'onChange', 'onFocus', 'id'], rest);\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <div\n {...other}\n aria-labelledby={labelledById ? labelledById : id}\n style={containerStyle}\n data-testid={testId}\n ref={ref}\n role=\"radiogroup\"\n >\n <RadioContext.Provider\n value={{\n descriptionId,\n hasError: !!errorMessage,\n isInverse,\n required,\n name,\n selectedValue,\n onBlur: props.onBlur,\n onChange: handleChange,\n onFocus: props.onFocus,\n }}\n >\n {labelText && isTextVisuallyHidden && (\n <HiddenLabel id={id} style={labelStyle}>\n {labelText}\n </HiddenLabel>\n )}\n\n {labelText && !isTextVisuallyHidden && (\n <Label\n id={id}\n style={labelStyle}\n isInverse={isInverse}\n theme={theme}\n >\n {labelText}\n </Label>\n )}\n {children}\n\n <InputMessage\n id={descriptionId}\n hasError={!!errorMessage}\n isInverse={isInverse}\n >\n {(errorMessage || helperMessage) && (\n <>{errorMessage ? errorMessage : helperMessage}</>\n )}\n </InputMessage>\n </RadioContext.Provider>\n </div>\n );\n }\n);\n","import * as React from 'react';\nimport {\n DisplayInputStyles,\n DisplayInputActiveStyles,\n buildDisplayInputActiveBackground,\n buildDisplayInputFocusStyles,\n} from '../SelectionControls/InputStyles';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { RadioContext } from '../RadioGroup';\nimport {\n RadioButtonCheckedIcon,\n RadioButtonUncheckedIcon,\n} from 'react-magma-icons';\nimport { StyledLabel } from '../SelectionControls/StyledLabel';\nimport { StyledContainer } from '../SelectionControls/StyledContainer';\n// Using the base `styled` from `emotion` until import mapping is fixed: https://github.com/emotion-js/emotion/pull/1220\n// import styled from '../../theme/styled';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useGenerateId } from '../../utils';\n\nexport enum RadioTextPosition {\n left = 'left',\n right = 'right', // default\n}\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * @internal\n */\n css?: any; // Adding css prop to fix emotion error\n /**\n * Hex code for the background color\n * @default #0000FF\n */\n color?: string;\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Style properties for the radio button element\n */\n inputStyle?: React.CSSProperties;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content of label; can be node or string\n */\n labelText: React.ReactNode;\n testId?: string;\n /**\n * Whether the label appears to the left of the right of the radio button\n * @default RadioTextPosition.right\n */\n textPosition?: RadioTextPosition;\n}\n\nconst HiddenLabelText = styled.span`\n ${HiddenStyles};\n`;\n\nconst HiddenInput = styled.input<{ indeterminate?: boolean }>`\n ${HiddenStyles};\n`;\n\nfunction buildRadioIconColor(props) {\n if (props.disabled) {\n if (props.isInverse) {\n return props.theme.colors.tint04;\n }\n return props.theme.colors.neutral05;\n }\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n if (props.isChecked) {\n return props.color;\n }\n return props.theme.colors.neutral02;\n}\n\nexport function buildErrorBorder(props) {\n if (props.hasError) {\n if (props.isInverse) {\n return `0 0 0 2px ${props.theme.colors.dangerInverse}`;\n }\n return `0 0 0 2px ${props.theme.colors.danger}`;\n }\n return `inherit`;\n}\n\nconst StyledFakeInput = styled.span<{\n isChecked?: boolean;\n hasError?: boolean;\n isInverse: boolean;\n disabled: boolean;\n color: string;\n textPosition?: RadioTextPosition;\n theme?: any;\n}>`\n ${DisplayInputStyles};\n color: ${props => buildRadioIconColor(props)};\n cursor: ${props => (props.disabled ? 'not-allowed' : 'pointer')};\n margin: ${props =>\n props.textPosition === 'left'\n ? `0 0 0 ${props.theme.spaceScale.spacing03}`\n : `0 ${props.theme.spaceScale.spacing03} 0 0`};\n box-shadow: ${buildErrorBorder};\n\n ${HiddenInput}:checked:not (:disabled) + label & {\n background: ${props => {\n if (props.isInverse) {\n return props.theme.colors.neutral08;\n }\n }};\n }\n\n ${HiddenInput}:focus + label & {\n // focus state\n &:before {\n ${props => buildDisplayInputFocusStyles(props)};\n }\n }\n\n &:after {\n // active state\n background: ${props => buildDisplayInputActiveBackground(props)};\n }\n\n ${HiddenInput}:not(:disabled):active + label & {\n &:after {\n ${DisplayInputActiveStyles}\n }\n }\n`;\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (props, ref) => {\n const id = useGenerateId(props.id);\n const context = React.useContext(RadioContext);\n const theme = React.useContext(ThemeContext);\n const {\n color = theme.colors.primary,\n containerStyle,\n disabled,\n inputStyle,\n isInverse,\n isTextVisuallyHidden,\n labelStyle,\n labelText,\n required,\n testId,\n textPosition,\n value,\n ...other\n } = props;\n\n return (\n <StyledContainer style={containerStyle}>\n <HiddenInput\n {...other}\n aria-labelledby={context.descriptionId}\n id={id}\n ref={ref}\n checked={context.selectedValue === value}\n data-testid={testId}\n disabled={disabled}\n name={context.name}\n required={context.required || required}\n type=\"radio\"\n value={value}\n onBlur={context.onBlur}\n onChange={context.onChange}\n onFocus={context.onFocus}\n />\n <StyledLabel\n htmlFor={id}\n isInverse={context.isInverse || isInverse}\n style={labelStyle}\n >\n {!isTextVisuallyHidden &&\n textPosition === RadioTextPosition.left &&\n labelText}\n\n <StyledFakeInput\n isChecked={context.selectedValue === value}\n color={color}\n disabled={disabled}\n isInverse={context.isInverse || isInverse}\n hasError={context.hasError}\n style={inputStyle}\n textPosition={textPosition}\n theme={theme}\n >\n {context.selectedValue === value ? (\n <RadioButtonCheckedIcon />\n ) : (\n <RadioButtonUncheckedIcon />\n )}\n </StyledFakeInput>\n {isTextVisuallyHidden ? (\n <HiddenLabelText>{labelText}</HiddenLabelText>\n ) : (\n textPosition !== RadioTextPosition.left && labelText && labelText\n )}\n </StyledLabel>\n </StyledContainer>\n );\n }\n);\n","import * as React from 'react';\nimport { AnimatePresence, motion, HTMLMotionProps } from 'framer-motion';\nimport { MotionVariants } from '../../theme/components/transition';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\n\n/**\n * @children required\n */\nexport interface TransitionProps extends HTMLMotionProps<'div'> {\n /**\n * If `true`, the element will unmount when `in={false}` and animation is done\n * @default false\n */\n unmountOnExit?: boolean;\n /**\n * If `true`, the content will animate in\n * @default false\n */\n isOpen?: boolean;\n /**\n * Custom variants to be applied to the enter and exit transitions.\n * @internal\n */\n customTransition?: MotionVariants<'enter' | 'exit'>;\n testId?: string;\n /**\n * Should children fade in/out\n * @default false\n */\n fade?: boolean;\n /**\n * Should children scale in/out\n * @default false\n */\n scale?: boolean;\n /**\n * Should children slide in/out from the top of the screen\n * @default false\n */\n slideTop?: boolean;\n /**\n * Should children slide in/out from the bottom of the screen\n * @default false\n */\n slideBottom?: boolean;\n /**\n * Should children slide in/out from the left of the screen\n * @default false\n */\n slideLeft?: boolean;\n /**\n * Should children slide in/out from the right of the screen\n * @default false\n */\n slideRight?: boolean;\n /**\n * Should the children get nudged in 50px from the top\n * @default false\n */\n nudgeTop?: boolean;\n /**\n * Should the children get nudged in 50px from the bottom\n * @default false\n */\n nudgeBottom?: boolean;\n /**\n * Should the children get nudged in 50px from the left\n * @default false\n */\n nudgeLeft?: boolean;\n /**\n * Should the children get nudged in 50px from the right\n * @default false\n */\n nudgeRight?: boolean;\n /**\n * Should children collapse in/out\n * @default false\n */\n collapse?: boolean;\n /**\n * Should children rotate 45 degrees\n * @default false\n */\n rotate45?: boolean;\n /**\n * Should children rotate 90 degrees\n * @default false\n */\n rotate90?: boolean;\n /**\n * Should children rotate 180 degrees\n * @default false\n */\n rotate180?: boolean;\n}\n\nexport const Transition = React.forwardRef<HTMLDivElement, TransitionProps>(\n (props, ref) => {\n const theme: ThemeInterface = React.useContext(ThemeContext);\n\n const {\n style,\n unmountOnExit,\n isOpen,\n testId,\n initial = 'exit',\n exit = 'exit',\n customTransition = {\n enter: { transition: {} },\n exit: { transition: {} },\n },\n ...rest\n } = props;\n\n const shouldExpand = unmountOnExit ? isOpen && unmountOnExit : true;\n\n const variants = Object.keys(rest).reduce(\n (acc, key) => {\n if (rest[key] && theme.transitions[key]) {\n const themeVariant = theme.transitions[key];\n rest[key] = undefined;\n return {\n baseStyle: {\n ...acc.baseStyle,\n ...themeVariant.baseStyle,\n },\n motion: {\n ...acc,\n enter: {\n ...acc.motion.enter,\n ...themeVariant.motion.enter,\n transition: {\n ...('transition' in acc.motion.enter\n ? acc.motion.enter.transition\n : {}),\n ...('transition' in themeVariant.motion.enter\n ? themeVariant.motion.enter.transition\n : {}),\n },\n },\n exit: {\n ...acc.motion.exit,\n ...themeVariant.motion.exit,\n transition: {\n ...('transition' in acc.motion.exit\n ? acc.motion.exit.transition\n : {}),\n ...('transition' in themeVariant.motion.exit\n ? themeVariant.motion.exit.transition\n : {}),\n },\n },\n },\n };\n }\n return acc;\n },\n { motion: customTransition, baseStyle: {} }\n );\n\n return (\n <AnimatePresence initial={false}>\n {shouldExpand && (\n <motion.div\n ref={ref}\n initial={initial}\n exit={exit}\n data-testid={testId}\n animate={isOpen || unmountOnExit ? 'enter' : 'exit'}\n variants={variants.motion}\n style={{ ...variants.baseStyle, ...style }}\n {...rest}\n />\n )}\n </AnimatePresence>\n );\n }\n);\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport styled from '@emotion/styled';\nimport { Global, css } from '@emotion/core';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { magma } from '../../theme/magma';\nimport { I18nContext } from '../../i18n';\nimport { ButtonColor, ButtonVariant } from '../Button';\nimport { IconButton } from '../IconButton';\nimport { CloseIcon } from 'react-magma-icons';\nimport { Heading } from '../Heading';\nimport { TypographyVisualStyle } from '../Typography';\nimport { Transition, TransitionProps } from '../Transition';\nimport { ThemeInterface } from '../../theme/magma';\nimport { omit, useGenerateId, usePrevious } from '../../utils';\nimport { useFocusLock } from '../../hooks/useFocusLock';\n\nexport enum ModalSize {\n large = 'large',\n medium = 'medium', //default\n small = 'small',\n}\n\n/**\n * @children required\n */\nexport interface ModalProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The text read by screen readers for the close button\n * @default \"Close dialog\"\n */\n closeAriaLabel?: string;\n /**\n * Style for the modal container\n */\n closeButtonSize?: keyof typeof magma.iconSizes;\n /**\n * Style for the modal container\n */\n containerStyle?: React.CSSProperties;\n /**\n * Style for the modal content container\n */\n contentStyle?: React.CSSProperties;\n /**\n * The content of the modal header\n */\n header?: React.ReactNode;\n /**\n * If true, the modal background will be transparent\n * @default false\n */\n hiddenBackground?: boolean;\n /**\n * If true, clicking the backdrop will not dismiss the modal\n * @default false\n */\n isBackgroundClickDisabled?: boolean;\n /**\n * If true, the close button the the modal will be suppressed\n * @default false\n */\n isCloseButtonHidden?: boolean;\n /**\n * If true, pressing the Escape key will not dismiss the modal\n * @false\n */\n isEscKeyDownDisabled?: boolean;\n /**\n * If true, the modal will be visible\n * @default false\n */\n isOpen?: boolean;\n /**\n * If true, the modal will removed from the DOM when closed\n * @default true\n */\n unmountOnExit?: boolean;\n /**\n * @internal\n */\n containerTransition?: Omit<TransitionProps, 'isOpen'>;\n /**\n * Action that fires when the close button is clicked\n */\n onClose?: () => void;\n /**\n * Action that fires when the Escape key is pressed\n */\n onEscKeyDown?: (event: KeyboardEvent) => void;\n /**\n * The relative size of the modal\n * @default ModalSize.medium\n */\n size?: ModalSize;\n testId?: string;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nconst ModalContainer = styled(Transition)<{\n theme: ThemeInterface;\n}>`\n bottom: 0;\n left: 0;\n overflow-y: auto;\n padding: ${props => props.theme.spaceScale.spacing03};\n right: 0;\n top: 0;\n z-index: 998;\n`;\n\nconst ModalBackdrop = styled(Transition)<{\n isExiting?: boolean;\n hiddenBackground?: boolean;\n}>`\n backdrop-filter: ${props => (props.hiddenBackground ? '0' : 'blur(3px)')};\n background: ${props =>\n props.hiddenBackground ? 'none' : 'rgba(0, 0, 0, 0.6)'};\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n z-index: 997;\n position: fixed;\n`;\n\nconst ModalContent = styled.div<ModalProps & { isExiting?: boolean }>`\n background: ${props => props.theme.colors.neutral08};\n border: 1px solid;\n border-color: ${props => props.theme.colors.neutral06};\n border-radius: ${props => props.theme.borderRadius};\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);\n color: ${props => props.theme.colors.neutral};\n margin: 0 auto;\n position: relative;\n z-index: 1000;\n\n max-width: ${props => {\n switch (props.size) {\n case 'large':\n return props.theme.modal.width.large;\n case 'small':\n return props.theme.modal.width.small;\n default:\n return props.theme.modal.width.medium;\n }\n }};\n\n @media (min-width: ${props => props.theme.breakpoints.small}px) {\n margin: ${props => props.theme.spaceScale.spacing08} auto;\n }\n`;\n\nconst ModalHeader = styled.div<{ theme?: ThemeInterface }>`\n padding: ${props => props.theme.spaceScale.spacing03}\n ${props => props.theme.spaceScale.spacing05} 0\n ${props => props.theme.spaceScale.spacing05};\n @media (min-width: ${props => props.theme.breakpoints.small}px) {\n padding: ${props => props.theme.spaceScale.spacing05}\n ${props => props.theme.spaceScale.spacing06} 0\n ${props => props.theme.spaceScale.spacing06};\n }\n`;\n\nconst H1 = styled(Heading)<{ theme?: ThemeInterface }>`\n font-size: ${props =>\n props.theme.typographyVisualStyles.headingSmall.desktop.fontSize};\n line-height: ${props =>\n props.theme.typographyVisualStyles.headingSmall.desktop.lineHeight};\n margin: 0;\n padding-right: ${props => props.theme.spaceScale.spacing10};\n`;\n\nconst CloseBtn = styled.span`\n position: absolute;\n top: 0;\n right: 0;\n`;\nconst ModalBody = styled.div<{ theme?: ThemeInterface }>`\n padding: ${props => props.theme.spaceScale.spacing05};\n\n @media (min-width: ${props => props.theme.breakpoints.small}px) {\n padding: ${props => props.theme.spaceScale.spacing06};\n }\n`;\n\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(\n (props, ref) => {\n const lastFocus = React.useRef<any>();\n const headingRef = React.useRef<any>();\n const bodyRef = React.useRef<any>();\n\n const id = useGenerateId(props.id);\n const headingId = `${id}_heading`;\n const contentId = `${id}_content`;\n\n const [isModalOpen, setIsModalOpen] = React.useState<boolean>(props.isOpen);\n const [isExiting, setIsExiting] = React.useState<boolean>(false);\n const [currentTarget, setCurrentTarget] = React.useState(null);\n\n const focusTrapElement = useFocusLock(\n isModalOpen,\n props.header ? headingRef : null,\n bodyRef\n );\n\n const prevOpen = usePrevious(props.isOpen);\n\n React.useEffect(() => {\n if (!prevOpen && props.isOpen) {\n setIsModalOpen(true);\n } else if (prevOpen && !props.isOpen && isModalOpen) {\n handleClose();\n }\n }, [props.isOpen]);\n\n React.useEffect(() => {\n if (isModalOpen) {\n lastFocus.current = document.activeElement;\n\n if (!props.isEscKeyDownDisabled) {\n document.body.addEventListener('keydown', handleEscapeKeyDown, false);\n }\n }\n\n return () => {\n document.body.removeEventListener(\n 'keydown',\n handleEscapeKeyDown,\n false\n );\n };\n }, [isModalOpen]);\n\n function handleModalClick(event: React.SyntheticEvent) {\n if (\n !document.getElementById(contentId).contains(event.target as Node) &&\n event.target === currentTarget\n ) {\n handleClose(event);\n }\n }\n\n function handleModalOnMouseDown(event: React.SyntheticEvent) {\n setCurrentTarget(event.target);\n }\n\n function handleEscapeKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n event.preventDefault();\n event.stopPropagation();\n\n props.onEscKeyDown &&\n typeof props.onEscKeyDown === 'function' &&\n props.onEscKeyDown(event);\n\n handleClose(event);\n }\n }\n\n function handleClose(event?) {\n if (event) {\n event.stopPropagation();\n }\n setIsExiting(true);\n\n setTimeout(() => {\n setIsExiting(false);\n setIsModalOpen(false);\n\n if (lastFocus.current) {\n lastFocus.current.focus();\n }\n\n props.onClose && typeof props.onClose === 'function' && props.onClose();\n }, 300);\n }\n\n const {\n children,\n closeAriaLabel,\n closeButtonSize,\n containerStyle,\n contentStyle,\n containerTransition = { slideTop: true },\n hiddenBackground,\n isBackgroundClickDisabled,\n isEscKeyDownDisabled,\n header,\n isCloseButtonHidden,\n isOpen,\n unmountOnExit = true,\n testId,\n ...rest\n } = props;\n\n const other = omit(['onEscKeyDown'], rest);\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const CloseIconButton = (\n <CloseIcon\n color={theme.colors.neutral03}\n size={\n magma.iconSizes[closeButtonSize]\n ? magma.iconSizes[closeButtonSize]\n : magma.iconSizes.small\n }\n />\n );\n\n return isModalOpen\n ? ReactDOM.createPortal(\n <div ref={focusTrapElement}>\n <Global\n styles={css`\n html {\n overflow: ${isOpen} ? hidden : auto;\n }\n `}\n />\n <ModalContainer\n aria-labelledby={header ? headingId : null}\n aria-label=\"modal\"\n aria-describedby=\"modal\"\n aria-modal={true}\n data-testid={testId}\n id={id}\n onClick={isBackgroundClickDisabled ? null : handleModalClick}\n onMouseDown={\n isBackgroundClickDisabled ? null : handleModalOnMouseDown\n }\n role=\"dialog\"\n style={containerStyle}\n theme={theme}\n title={header ? headingId : null}\n isOpen={isModalOpen}\n {...containerTransition}\n unmountOnExit={unmountOnExit}\n >\n <ModalContent\n {...other}\n data-testid=\"modal-content\"\n id={contentId}\n isExiting={isExiting}\n ref={ref}\n style={contentStyle}\n theme={theme}\n >\n {header && (\n <ModalHeader theme={theme}>\n {header && (\n <H1\n id={headingId}\n level={1}\n ref={headingRef}\n visualStyle={TypographyVisualStyle.headingSmall}\n tabIndex={-1}\n theme={theme}\n >\n {header}\n </H1>\n )}\n </ModalHeader>\n )}\n <ModalBody ref={bodyRef} theme={theme}>\n {children}\n </ModalBody>\n {!isCloseButtonHidden && (\n <CloseBtn>\n <IconButton\n aria-label={\n closeAriaLabel\n ? closeAriaLabel\n : i18n.modal.closeAriaLabel\n }\n color={ButtonColor.secondary}\n icon={CloseIconButton}\n onClick={handleClose}\n testId=\"modal-closebtn\"\n variant={ButtonVariant.link}\n />\n </CloseBtn>\n )}\n </ModalContent>\n </ModalContainer>\n <ModalBackdrop\n hiddenBackground={hiddenBackground}\n data-testid=\"modal-backdrop\"\n isExiting={isExiting}\n onMouseDown={\n isBackgroundClickDisabled\n ? event => event.preventDefault()\n : null\n }\n fade\n isOpen={isModalOpen}\n unmountOnExit\n />\n </div>,\n document.getElementsByTagName('body')[0]\n )\n : null;\n }\n);\n","import * as React from 'react';\n// import styled from '../../theme/styled';\nimport {\n InputBase,\n InputBaseProps,\n InputIconPosition,\n InputSize,\n InputType,\n} from '../InputBase';\nimport { I18nContext } from '../../i18n';\nimport { useIsInverse } from '../../inverse';\nimport { SearchIcon } from 'react-magma-icons';\nimport { Spinner } from '../Spinner';\n\nexport interface SearchProps extends InputBaseProps {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * Text for icon button aria-label\n * @default \"Search\"\n */\n iconAriaLabel?: string;\n /**\n * Relative size of the component\n * @default InputSize.medium\n */\n inputSize?: InputSize;\n /**\n * Style properties for the input element\n */\n inputStyle?: React.CSSProperties;\n /**\n * Clear contents of input by clicking a clear button\n */\n iconPosition?: InputIconPosition;\n isClearable?: boolean;\n /**\n * If true, the component will show a loading animation instead of a search button\n * @default false\n */\n isLoading?: boolean;\n isInverse?: boolean;\n /**\n * Text for input aria-label\n * @default \"Search\"\n */\n labelText?: string;\n /**\n * Action that will fire when search icon button is clicked\n */\n onSearch: (term: string) => void;\n testId?: string;\n /**\n * Value of the input element\n */\n value?: string;\n}\n\nexport const Search = React.forwardRef<HTMLInputElement, SearchProps>(\n (props, ref) => {\n const {\n iconAriaLabel,\n isClearable,\n isLoading,\n labelText,\n placeholder,\n onSearch,\n ...other\n } = props;\n\n const i18n = React.useContext(I18nContext);\n\n const [value, setValue] = React.useState<string>(props.value);\n\n const icon = isLoading ? <Spinner /> : <SearchIcon />;\n\n React.useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n setValue(event.target.value);\n }\n\n // handle search on enter\n function handleKeyPress(event: React.KeyboardEvent) {\n if (event.key === 'Enter') {\n event.preventDefault();\n handleSearch();\n }\n }\n\n function handleSearch() {\n onSearch(value);\n }\n\n return (\n <InputBase\n {...other}\n aria-label={labelText ? labelText : i18n.search.input.ariaLabel}\n icon={icon}\n iconAriaLabel={\n iconAriaLabel ? iconAriaLabel : i18n.search.iconAriaLabel\n }\n isClearable={isClearable}\n isInverse={useIsInverse(props.isInverse)}\n onChange={handleChange}\n onIconClick={\n props.isPredictive ? null : isLoading ? null : handleSearch\n }\n onKeyDown={handleKeyPress}\n placeholder={placeholder ? placeholder : i18n.search.input.placeholder}\n type={InputType.search}\n value={value}\n ref={ref}\n />\n );\n }\n);\n","import React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { StyledCard, StyledList, StyledItem } from './shared';\nimport {\n UseSelectGetMenuPropsOptions,\n UseSelectGetItemPropsOptions,\n} from 'downshift';\nimport { instanceOfToBeCreatedItemObject } from '.';\nimport {\n defaultComponents,\n SelectComponents,\n ItemRenderOptions,\n} from './components';\nimport styled from '../../theme/styled';\nimport { convertStyleValueToString } from '../../utils';\n\ninterface ItemsListProps<T> {\n customComponents?: SelectComponents<T>;\n getItemProps: (options?: UseSelectGetItemPropsOptions<T>) => any;\n getMenuProps: (options?: UseSelectGetMenuPropsOptions) => any;\n highlightedIndex?: number;\n isOpen?: boolean;\n items: T[];\n itemToString: (item: T) => string;\n maxHeight?: number | string;\n menuStyle?: React.CSSProperties;\n}\n\nconst NoItemsMessage = styled.span`\n color: ${props => props.theme.colors.neutral04};\n display: block;\n padding-top: ${props => props.theme.spaceScale.spacing03};\n text-align: center;\n`;\n\nexport function ItemsList<T>(props: ItemsListProps<T>) {\n const {\n customComponents,\n isOpen,\n getMenuProps,\n items,\n itemToString,\n highlightedIndex,\n getItemProps,\n maxHeight,\n menuStyle,\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const hasItems = items && items.length > 0;\n\n const heightString = convertStyleValueToString(maxHeight);\n const { Item } = defaultComponents<T>({\n ...customComponents,\n });\n\n return (\n <StyledCard\n hasDropShadow\n isInverse={false}\n isOpen={isOpen}\n style={menuStyle}\n >\n <StyledList isOpen={isOpen} {...getMenuProps()} maxHeight={heightString}>\n {isOpen && hasItems ? (\n items.map((item, index) => {\n const itemString = instanceOfToBeCreatedItemObject(item)\n ? item.label\n : itemToString(item);\n\n const { ref, ...otherDownshiftItemProps } = getItemProps({\n item,\n index,\n });\n\n const key = `${itemString}${index}`;\n\n const itemProps: ItemRenderOptions<T> = {\n isFocused: highlightedIndex === index,\n itemRef: ref,\n item,\n itemString,\n key,\n theme,\n ...otherDownshiftItemProps,\n };\n\n return <Item<T> {...itemProps} key={key} />;\n })\n ) : (\n <StyledItem tabIndex={-1}>\n <NoItemsMessage theme={theme}>\n {i18n.emptyItemsListText}\n </NoItemsMessage>\n </StyledItem>\n )}\n </StyledList>\n </StyledCard>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport { Label, LabelPosition } from '../Label';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { UseSelectGetLabelPropsOptions } from 'downshift';\nimport { InputMessage } from '../Input/InputMessage';\n\nexport const SelectContainerElement = styled.div<{\n labelPosition?: LabelPosition;\n}>`\n align-items: baseline;\n display: ${props =>\n props.labelPosition == LabelPosition.left ? 'flex' : 'block'};\n position: relative;\n`;\n\nconst InputMessageContainer = styled.div`\n flex-grow: 1;\n`;\n\ninterface SelectContainerInterface<T> {\n children: React.ReactNode[];\n containerStyle?: React.CSSProperties;\n errorMessage?: React.ReactNode;\n descriptionId?: string;\n getLabelProps: (options?: UseSelectGetLabelPropsOptions) => any;\n hasError?: boolean;\n helperMessage?: React.ReactNode;\n isInverse?: boolean;\n isLabelVisuallyHidden?: boolean;\n labelPosition?: LabelPosition;\n labelStyle?: React.CSSProperties;\n labelText: string;\n messageStyle?: React.CSSProperties;\n}\n\nexport function SelectContainer<T>(props: SelectContainerInterface<T>) {\n const {\n children,\n descriptionId,\n errorMessage,\n getLabelProps,\n helperMessage,\n isInverse,\n isLabelVisuallyHidden,\n labelPosition,\n labelStyle,\n labelText,\n messageStyle,\n } = props;\n\n const hasError = !!errorMessage;\n\n return (\n <SelectContainerElement\n labelPosition={labelPosition}\n data-testid=\"selectContainerElement\"\n >\n <Label\n {...getLabelProps()}\n isInverse={isInverse}\n labelPosition={labelPosition}\n style={labelStyle}\n >\n {isLabelVisuallyHidden ? (\n <VisuallyHidden>{labelText}</VisuallyHidden>\n ) : (\n labelText\n )}\n </Label>\n <InputMessageContainer>\n {children}\n {!(\n labelPosition === LabelPosition.left &&\n !(errorMessage || helperMessage)\n ) &&\n (errorMessage || helperMessage) && (\n <InputMessage\n id={descriptionId}\n isInverse={isInverse}\n hasError={hasError}\n style={messageStyle}\n >\n {(errorMessage || helperMessage) && (\n <>{errorMessage ? errorMessage : helperMessage}</>\n )}\n </InputMessage>\n )}\n </InputMessageContainer>\n </SelectContainerElement>\n );\n}\n","import * as React from 'react';\nimport { SelectProps } from '.';\nimport { useSelect } from 'downshift';\nimport { SelectText } from './shared';\nimport { defaultComponents } from './components';\nimport { CloseIcon } from 'react-magma-icons';\nimport { ButtonSize, ButtonVariant } from '../Button';\nimport { ItemsList } from './ItemsList';\nimport { SelectContainer } from './SelectContainer';\nimport { SelectTriggerButton } from './SelectTriggerButton';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { useForkedRef } from '../../utils';\n\nexport function Select<T>(props: SelectProps<T>) {\n const {\n ariaDescribedBy,\n components: customComponents,\n defaultSelectedItem,\n errorMessage,\n hasError,\n helperMessage,\n inputStyle,\n isLabelVisuallyHidden,\n innerRef,\n itemListMaxHeight,\n itemToString,\n items,\n labelStyle,\n labelText,\n initialSelectedItem,\n isClearable,\n disabled,\n isInverse,\n labelPosition,\n menuStyle,\n onBlur,\n onFocus,\n onIsOpenChange,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n messageStyle,\n placeholder,\n selectedItem: passedInSelectedItem,\n } = props;\n\n const toggleButtonRef = React.useRef<HTMLButtonElement>();\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const ref = useForkedRef(innerRef || null, toggleButtonRef);\n\n function getValidItem(itemToCheck: T, key: string): object {\n return items.findIndex(\n i => itemToString(i) === itemToString(itemToCheck)\n ) !== -1\n ? { [key]: itemToCheck }\n : { [key]: null };\n }\n\n function handleOnIsOpenChange(changes) {\n const {\n isOpen: changedIsOpen,\n selectedItem: changedSelectedItem,\n } = changes;\n\n if (changedIsOpen && changedSelectedItem) {\n setHighlightedIndex(\n items.findIndex(\n i => itemToString(i) === itemToString(changedSelectedItem)\n )\n );\n }\n\n onIsOpenChange &&\n typeof onIsOpenChange === 'function' &&\n onIsOpenChange(changes);\n }\n\n function stateReducer(state, actionAndChanges) {\n const { type, changes } = actionAndChanges;\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownCharacter:\n return {\n ...changes,\n selectedItem: state.selectedItem,\n };\n default:\n return changes;\n }\n }\n\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n highlightedIndex,\n getItemProps,\n reset,\n openMenu,\n setHighlightedIndex,\n } = useSelect<T>({\n ...props,\n onIsOpenChange: handleOnIsOpenChange,\n stateReducer,\n ...(defaultSelectedItem &&\n getValidItem(defaultSelectedItem, 'defaultSelectedItem')),\n ...(initialSelectedItem &&\n getValidItem(initialSelectedItem, 'initialSelectedItem')),\n ...(passedInSelectedItem &&\n getValidItem(passedInSelectedItem, 'selectedItem')),\n });\n\n const { ClearIndicator } = defaultComponents<T>({\n ...customComponents,\n });\n\n const toggleButtonProps = getToggleButtonProps({\n disabled: disabled,\n onBlur,\n onKeyDown: event => {\n if (\n getToggleButtonProps().id === document.activeElement.id &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n openMenu();\n }\n\n onKeyDown && typeof onKeyDown === 'function' && onKeyDown(event);\n },\n onKeyPress,\n onKeyUp,\n onFocus,\n ref,\n });\n\n function defaultHandleClearIndicatorClick(event: React.SyntheticEvent) {\n event.stopPropagation();\n\n if (toggleButtonRef.current) {\n toggleButtonRef.current.focus();\n }\n\n reset();\n }\n\n const clearIndicatorAriaLabel = i18n.select.clearIndicatorAriaLabel\n .replace(/\\{labelText\\}/g, labelText)\n .replace(/\\{selectedItem\\}/g, itemToString(selectedItem));\n\n const selectText = itemToString(selectedItem)\n ? itemToString(selectedItem)\n : typeof placeholder === 'string'\n ? placeholder\n : i18n.select.placeholder;\n\n return (\n <SelectContainer\n errorMessage={errorMessage}\n descriptionId={ariaDescribedBy}\n getLabelProps={getLabelProps}\n helperMessage={helperMessage}\n isInverse={isInverse}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n labelPosition={labelPosition}\n labelStyle={labelStyle}\n labelText={labelText}\n messageStyle={messageStyle}\n >\n <SelectTriggerButton\n ariaDescribedBy={ariaDescribedBy}\n customComponents={customComponents}\n toggleButtonProps={toggleButtonProps}\n hasError={hasError}\n disabled={disabled}\n isInverse={isInverse}\n style={inputStyle}\n >\n <SelectText data-testid=\"selectedItemText\">{selectText}</SelectText>\n {isClearable && selectedItem && (\n <ClearIndicator\n aria-label={clearIndicatorAriaLabel}\n icon={<CloseIcon size={theme.iconSizes.xSmall} />}\n onClick={defaultHandleClearIndicatorClick}\n size={ButtonSize.small}\n style={{ marginTop: '0', marginBottom: '0' }}\n testId=\"clearIndicator\"\n variant={ButtonVariant.link}\n />\n )}\n </SelectTriggerButton>\n <ItemsList\n customComponents={customComponents}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n maxHeight={itemListMaxHeight || theme.select.menu.maxHeight}\n items={items}\n itemToString={itemToString}\n menuStyle={menuStyle}\n />\n </SelectContainer>\n );\n}\n","import * as React from 'react';\nimport { MultiSelectProps } from '.';\nimport { useSelect, useMultipleSelection } from 'downshift';\nimport { CloseIcon } from 'react-magma-icons';\nimport { ItemsList } from './ItemsList';\nimport { SelectContainer } from './SelectContainer';\nimport { SelectTriggerButton } from './SelectTriggerButton';\nimport { SelectedItemButton, IconWrapper } from './shared';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\n\nexport function MultiSelect<T>(props: MultiSelectProps<T>) {\n const {\n ariaDescribedBy,\n components: customComponents,\n errorMessage,\n hasError,\n helperMessage,\n inputStyle,\n isLabelVisuallyHidden,\n innerRef,\n itemToString,\n items,\n labelPosition,\n labelStyle,\n labelText,\n disabled,\n isInverse,\n itemListMaxHeight,\n menuStyle,\n messageStyle,\n onBlur,\n onFocus,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n onRemoveSelectedItem,\n placeholder,\n } = props;\n\n function checkSelectedItemValidity(itemToCheck: T) {\n return (\n items.findIndex(i => itemToString(i) === itemToString(itemToCheck)) !== -1\n );\n }\n\n const {\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n removeSelectedItem,\n selectedItems,\n setActiveIndex,\n } = useMultipleSelection<T>({\n ...props,\n ...(props.initialSelectedItems && {\n initialSelectedItems: props.initialSelectedItems.filter(\n checkSelectedItemValidity\n ),\n }),\n ...(props.selectedItems && {\n selectedItems: props.selectedItems.filter(checkSelectedItemValidity),\n }),\n });\n\n function getFilteredItems(unfilteredItems) {\n return unfilteredItems.filter(\n item =>\n selectedItems.findIndex(\n selectedItem => itemToString(selectedItem) === itemToString(item)\n ) < 0\n );\n }\n\n const {\n stateReducer: passedInStateReducer,\n onStateChange,\n ...selectProps\n } = props;\n\n function stateReducer(state, actionAndChanges) {\n const { type, changes } = actionAndChanges;\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownCharacter:\n return {\n ...changes,\n selectedItem: state.selectedItem,\n };\n default:\n return changes;\n }\n }\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n highlightedIndex,\n getItemProps,\n selectItem,\n openMenu,\n } = useSelect({\n ...selectProps,\n items: getFilteredItems(items),\n onSelectedItemChange: defaultOnSelectedItemChange,\n stateReducer,\n });\n\n function defaultOnSelectedItemChange(changes) {\n const { selectedItem: newSelectedItem } = changes;\n\n if (newSelectedItem) {\n addSelectedItem(newSelectedItem);\n selectItem(null);\n }\n }\n\n function handleRemoveSelectedItem(event: React.SyntheticEvent, selectedItem) {\n event.stopPropagation();\n\n onRemoveSelectedItem && typeof onRemoveSelectedItem === 'function'\n ? onRemoveSelectedItem(selectedItem)\n : removeSelectedItem(selectedItem);\n }\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const toggleButtonProps = getToggleButtonProps({\n ...getDropdownProps({\n onBlur,\n onKeyDown: event => {\n if (\n document.activeElement.tagName.toLowerCase() === 'button' &&\n (event.key === 'Backspace' ||\n event.key === 'Delete' ||\n event.key === 'ArrowLeft')\n ) {\n event.nativeEvent.preventDownshiftDefault = true;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n openMenu();\n }\n\n onKeyDown && typeof onKeyDown === 'function' && onKeyDown(event);\n },\n onKeyPress,\n onKeyUp,\n onFocus,\n preventKeyAction: isOpen,\n ...(innerRef && { ref: innerRef }),\n }),\n disabled: disabled,\n });\n\n return (\n <SelectContainer\n descriptionId={ariaDescribedBy}\n errorMessage={errorMessage}\n getLabelProps={getLabelProps}\n helperMessage={helperMessage}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n labelPosition={labelPosition}\n labelStyle={labelStyle}\n labelText={labelText}\n isInverse={isInverse}\n messageStyle={messageStyle}\n >\n <SelectTriggerButton\n ariaDescribedBy={ariaDescribedBy}\n toggleButtonProps={toggleButtonProps}\n hasError={hasError}\n disabled={disabled}\n isInverse={isInverse}\n style={inputStyle}\n >\n {selectedItems && selectedItems.length > 0\n ? selectedItems.map((multiSelectedItem, index) => {\n const multiSelectedItemString = itemToString(multiSelectedItem);\n return (\n <SelectedItemButton\n aria-label={i18n.multiSelect.selectedItemButtonAriaLabel.replace(\n /\\{selectedItem\\}/g,\n multiSelectedItemString\n )}\n key={`selected-item-${index}`}\n {...getSelectedItemProps({\n selectedItem: multiSelectedItem,\n index,\n })}\n onClick={event =>\n handleRemoveSelectedItem(event, multiSelectedItem)\n }\n onFocus={() => setActiveIndex(index)}\n theme={theme}\n >\n {multiSelectedItemString}\n <IconWrapper>\n <CloseIcon size={theme.iconSizes.xSmall} />\n </IconWrapper>\n </SelectedItemButton>\n );\n })\n : typeof placeholder === 'string'\n ? placeholder\n : i18n.multiSelect.placeholder}\n </SelectTriggerButton>\n <ItemsList\n customComponents={customComponents}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n items={getFilteredItems(items)}\n itemToString={itemToString}\n maxHeight={itemListMaxHeight || theme.select.menu.maxHeight}\n menuStyle={menuStyle}\n />\n </SelectContainer>\n );\n}\n","import * as React from 'react';\nimport {\n useSelect,\n useMultipleSelection,\n UseSelectProps,\n UseMultipleSelectionProps,\n} from 'downshift';\n\nimport { Select as InternalSelect } from './Select';\nimport { MultiSelect } from './MultiSelect';\nimport { SelectComponents } from './components';\nimport { useGenerateId, XOR, Omit } from '../../utils';\nimport { LabelPosition } from '../Label';\nimport { useIsInverse } from '../../inverse';\n\nexport type SelectOptions =\n | string\n | { value: string; label: string; [key: string]: any }\n | any;\n\nexport interface InternalSelectProps<T> {\n /**\n * This complex object includes all the compositional components that are used. If you wish to overwrite a component, pass in a component to the appropriate namespace\n */\n components?: SelectComponents<T>;\n /**\n * Style properties for the component container\n */\n containerStyle?: React.CSSProperties;\n /**\n * Content of the error message. If a value is provided, the component will be styled to show an error state\n */\n errorMessage?: React.ReactNode;\n /**\n * Content of the helper message\n */\n helperMessage?: React.ReactNode;\n /**\n * Style properties for the select trigger or combobox input\n */\n inputStyle?: React.CSSProperties;\n /**\n * If true, the component include a button for clearing the field\n * @default false\n */\n isClearable?: boolean;\n /**\n * Max-height for the item menu list ul element\n */\n itemListMaxHeight?: number | string;\n /**\n * If true, item will be disabled; it will appear dimmed and events will not fire\n * @default false\n */\n disabled?: boolean;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isLabelVisuallyHidden?: boolean;\n /**\n * If true, multiple items may be selected\n * @default false\n */\n isMulti?: boolean;\n /**\n * Position of text label relative to form field\n */\n labelPosition?: LabelPosition;\n /**\n * Style properties for the label\n */\n labelStyle?: React.CSSProperties;\n /**\n * Text for label\n */\n labelText: string;\n /**\n * Style properties for the items menu\n */\n menuStyle?: React.CSSProperties;\n /**\n * Style properties for the helper or error message\n */\n messageStyle?: React.CSSProperties;\n /**\n * Text for select trigger button or combobox input placeholder\n */\n placeholder?: string;\n testId?: string;\n}\n\nexport interface InternalMultiProps<T> {\n /**\n * Event that fires when the clear button is clicked on a multi-selected item\n */\n onRemoveSelectedItem?: (removedItem: T) => void;\n}\n\nexport interface SelectProps<T extends SelectOptions>\n extends UseSelectProps<T>,\n InternalSelectProps<T> {\n /**\n * Id of the element that describes the select trigger button\n */\n ariaDescribedBy?: string;\n /**\n * @internal\n */\n hasError?: boolean;\n /**\n * Reference to the trigger button element in the select\n */\n innerRef?: React.Ref<HTMLButtonElement>;\n /**\n * @internal\n */\n isMulti?: false;\n /**\n * Event that fires when the trigger button loses focus\n */\n onBlur?: (event: React.FocusEvent) => void;\n /**\n * Event that fires when the trigger button gains focus\n */\n onFocus?: (event: React.FocusEvent) => void;\n /**\n * Event that fires when the trigger button receives keypress\n */\n onKeyDown?: (event: React.KeyboardEvent) => void;\n /**\n * Event that will fire when a character is typed while focused on the trigger button\n */\n onKeyPress?: (event: React.KeyboardEvent) => void;\n /**\n * Event that will fire when a keypress is released while focused on the trigger button\n */\n onKeyUp?: (event: React.KeyboardEvent) => void;\n}\n\nexport interface MultiSelectProps<T extends SelectOptions>\n extends UseMultipleSelectionProps<T>,\n Omit<SelectProps<T>, 'onStateChange' | 'stateReducer' | 'isMulti'>,\n InternalMultiProps<T> {\n /**\n * @internal\n */\n hasError?: boolean;\n isInverse?: boolean;\n /**\n * @internal\n */\n isMulti: true;\n}\n\nexport function instanceOfMultiSelect<T>(\n object: any\n): object is MultiSelectProps<T> {\n return 'isMulti' in object && object.type !== 'combo';\n}\n\nexport function instanceOfDefaultItemObject(\n object: any\n): object is { label: string; value: string; [key: string]: any } {\n return object && 'label' in object;\n}\n\nexport function instanceOfToBeCreatedItemObject(\n object: any\n): object is {\n label: string;\n value: string;\n react_magma__created_item: boolean;\n} {\n return (\n typeof object !== 'string' &&\n object &&\n 'react_magma__created_item' in object\n );\n}\n\nexport type XORSelectProps<T> = XOR<SelectProps<T>, MultiSelectProps<T>>;\n\nexport const SelectStateChangeTypes = useSelect.stateChangeTypes;\nexport const MultipleSelectionStateChangeTypes =\n useMultipleSelection.stateChangeTypes;\n\nexport function Select<T>(props: XORSelectProps<T>) {\n const {\n containerStyle,\n id: defaultId,\n isMulti,\n labelPosition,\n errorMessage,\n messageStyle,\n helperMessage,\n testId,\n } = props;\n\n function itemToString(item: T) {\n return item && typeof item === 'string'\n ? item\n : item && instanceOfDefaultItemObject(item)\n ? item.label\n : '';\n }\n\n const hasError = !!errorMessage;\n\n const id = useGenerateId(defaultId);\n\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <div style={containerStyle} data-testid={testId}>\n {isMulti && instanceOfMultiSelect<T>(props) ? (\n <MultiSelect\n ariaDescribedBy={descriptionId}\n id={id}\n isInverse={isInverse}\n labelPosition={labelPosition || LabelPosition.top}\n itemToString={itemToString}\n {...(props as MultiSelectProps<T>)}\n hasError={hasError}\n />\n ) : (\n <InternalSelect\n ariaDescribedBy={descriptionId}\n errorMessage={errorMessage}\n id={id}\n isInverse={isInverse}\n itemToString={itemToString}\n labelPosition={labelPosition || LabelPosition.top}\n hasError={hasError}\n helperMessage={helperMessage}\n messageStyle={messageStyle}\n {...(props as SelectProps<T>)}\n />\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { inputBaseStyles } from '../InputBase';\nimport { defaultComponents, SelectComponents } from '../Select/components';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/core';\nimport {\n UseComboboxGetToggleButtonPropsOptions,\n UseComboboxGetComboboxPropsOptions,\n UseComboboxGetInputPropsOptions,\n} from 'downshift';\n\nimport { SelectedItemsWrapper } from '../Select/shared';\n\nconst ComboBoxContainer = styled.div<{\n hasError?: boolean;\n isInverse?: boolean;\n theme?: any;\n}>`\n display: flex;\n`;\n\nconst InputContainer = styled.div<{\n hasError?: boolean;\n disabled?: boolean;\n isFocused?: boolean;\n isInverse?: boolean;\n theme?: any;\n}>`\n align-items: center;\n background: ${props => props.theme.colors.neutral08};\n border: 1px solid;\n border-color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral03};\n border-radius: ${props => props.theme.borderRadius};\n display: flex;\n min-height: ${props => props.theme.spaceScale.spacing09};\n min-width: ${props => props.theme.spaceScale.spacing13};\n padding: 0 ${props => props.theme.spaceScale.spacing03} 0 0;\n width: 100%;\n\n ${props =>\n props.isFocused &&\n css`\n outline: 2px dotted\n ${props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 4px;\n `}\n\n ${props =>\n props.hasError &&\n css`\n border-color: ${props.theme.colors.danger};\n box-shadow: 0 0 0 1px\n ${props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.danger};\n `}\n\n ${props =>\n props.disabled &&\n css`\n background: ${props.theme.colors.neutral07};\n border-color: ${props.theme.colors.neutral05};\n color: ${props.theme.colors.disabledText};\n cursor: not-allowed;\n outline: 0;\n\n &::placeholder {\n color: ${props.theme.colors.disabledText};\n }\n `}\n`;\n\nconst StyledInput = styled.input`\n ${inputBaseStyles}\n border: 0;\n display: flex;\n flex-grow: 1;\n height: ${props => props.theme.spaceScale.spacing08};\n min-width: ${props => props.theme.spaceScale.spacing07};\n padding-left: ${props => props.theme.spaceScale.spacing02};\n width: 0;\n\n &:focus {\n outline: 0;\n }\n`;\n\ninterface ComboboxInputProps<T> {\n ariaDescribedBy?: string;\n children?: React.ReactNode | React.ReactNode[];\n customComponents?: SelectComponents<T>;\n getComboboxProps: (options?: UseComboboxGetComboboxPropsOptions) => any;\n getInputProps: (options?: UseComboboxGetInputPropsOptions) => any;\n getToggleButtonProps: (\n options?: UseComboboxGetToggleButtonPropsOptions\n ) => any;\n hasError?: boolean;\n innerRef?: React.Ref<HTMLInputElement>;\n inputStyle?: React.CSSProperties;\n disabled?: boolean;\n isInverse?: boolean;\n isLoading?: boolean;\n onInputBlur?: (event: React.FocusEvent) => void;\n onInputFocus?: (event: React.FocusEvent) => void;\n onInputKeyDown?: (event: React.KeyboardEvent) => void;\n onInputKeyPress?: (event: React.KeyboardEvent) => void;\n onInputKeyUp?: (event: React.KeyboardEvent) => void;\n placeholder?: string;\n selectedItems?: React.ReactNode;\n toggleButtonRef?: React.Ref<HTMLButtonElement>;\n}\n\nexport function ComboboxInput<T>(props: ComboboxInputProps<T>) {\n const {\n ariaDescribedBy,\n children,\n customComponents,\n getComboboxProps,\n getInputProps,\n getToggleButtonProps,\n hasError,\n innerRef,\n inputStyle,\n disabled,\n isInverse,\n isLoading,\n onInputBlur,\n onInputFocus,\n onInputKeyDown,\n onInputKeyPress,\n onInputKeyUp,\n placeholder,\n selectedItems,\n toggleButtonRef,\n } = props;\n const theme = React.useContext(ThemeContext);\n\n const [isFocused, setIsFocused] = React.useState<boolean>(false);\n\n const { DropdownIndicator, LoadingIndicator } = defaultComponents<T>({\n ...customComponents,\n });\n\n function handleBlur(e: React.FocusEvent) {\n setIsFocused(false);\n\n onInputBlur && typeof onInputBlur === 'function' && onInputBlur(e);\n }\n\n function handleFocus(e: React.FocusEvent) {\n setIsFocused(true);\n\n onInputFocus && typeof onInputFocus === 'function' && onInputFocus(e);\n }\n\n const inputProps = getInputProps({\n disabled: disabled,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onKeyDown: onInputKeyDown,\n onKeyPress: onInputKeyPress,\n onKeyUp: onInputKeyUp,\n ...(innerRef && { ref: innerRef }),\n });\n\n return (\n <ComboBoxContainer\n {...getComboboxProps()}\n hasError={hasError}\n disabled={disabled}\n isInverse={isInverse}\n theme={theme}\n >\n <InputContainer\n {...getToggleButtonProps({\n disabled,\n ...(toggleButtonRef && { ref: toggleButtonRef }),\n })}\n hasError={hasError}\n disabled={disabled}\n isFocused={isFocused}\n isInverse={isInverse}\n style={inputStyle}\n theme={theme}\n >\n <SelectedItemsWrapper>\n {selectedItems}\n <StyledInput\n {...inputProps}\n aria-describedby={ariaDescribedBy}\n aria-invalid={hasError}\n disabled={disabled}\n placeholder={placeholder}\n theme={theme}\n />\n </SelectedItemsWrapper>\n {children}\n {isLoading && (\n <LoadingIndicator\n style={{ flexShrink: 0, marginRight: theme.spaceScale.spacing02 }}\n />\n )}\n <DropdownIndicator\n aria-label=\"toggle menu\"\n color={theme.colors.neutral}\n />\n </InputContainer>\n </ComboBoxContainer>\n );\n}\n","import React from 'react';\n\nexport function useComboboxItems(defaultItems, items) {\n const afterInitialRender = React.useRef(false);\n const allItems = React.useRef(defaultItems || items);\n const [displayItems, setDisplayItems] = React.useState(defaultItems || items);\n\n function updateItemsRef(newItem) {\n const newItems = [...allItems.current, newItem];\n allItems.current = newItems;\n setDisplayItems(newItems);\n }\n\n React.useEffect(() => {\n if (!afterInitialRender.current) {\n afterInitialRender.current = true;\n return;\n }\n\n const cleanItems = items ? items : [];\n\n allItems.current = cleanItems;\n setDisplayItems(cleanItems);\n }, [items]);\n\n return [allItems, displayItems, setDisplayItems, updateItemsRef];\n}\n\nfunction inputValueInList(items, inputValue, itemToString) {\n return (\n items.current.filter(\n item => itemToString(item).toLowerCase() === inputValue.toLowerCase()\n ).length > 0\n );\n}\n\nexport function defaultOnInputValueChange(\n changes,\n items,\n itemToString,\n disableCreateItem,\n setDisplayItems,\n setHighlightedIndex,\n onInputChange,\n createLabel\n) {\n const { inputValue: inputBaseValue, isOpen } = changes;\n\n if (isOpen) {\n const inputValue =\n typeof inputBaseValue === 'string'\n ? inputBaseValue\n : itemToString(inputBaseValue);\n\n const filteredItems = inputValue\n ? items.current\n .filter(item =>\n itemToString(item)\n .toLowerCase()\n .startsWith(inputValue.toLowerCase())\n )\n .concat(\n !disableCreateItem &&\n inputValue &&\n !inputValueInList(items, inputValue, itemToString)\n ? {\n label: createLabel.replace(/\\{inputValue\\}/g, inputValue),\n value: inputValue,\n react_magma__created_item: true,\n }\n : null\n )\n .filter(Boolean)\n : items.current;\n\n setHighlightedIndex(0);\n setDisplayItems(filteredItems);\n }\n\n onInputChange &&\n typeof onInputChange === 'function' &&\n onInputChange(changes);\n}\n","import * as React from 'react';\nimport { instanceOfDefaultItemObject } from '../Select';\nimport { useCombobox } from 'downshift';\nimport { CloseIcon } from 'react-magma-icons';\nimport { defaultComponents } from '../Select/components';\nimport { SelectContainer } from '../Select/SelectContainer';\nimport { ItemsList } from '../Select/ItemsList';\nimport { ComboboxInput } from './ComboboxInput';\nimport { ButtonShape, ButtonSize, ButtonVariant } from '../Button';\nimport { useComboboxItems, defaultOnInputValueChange } from './shared';\nimport { ComboboxProps } from '.';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { useForkedRef } from '../../utils';\n\nexport function InternalCombobox<T>(props: ComboboxProps<T>) {\n const {\n ariaDescribedBy,\n components: customComponents,\n defaultItems,\n defaultSelectedItem,\n disableCreateItem,\n errorMessage,\n hasError,\n helperMessage,\n initialSelectedItem,\n inputStyle,\n isClearable,\n disabled,\n innerRef,\n isLabelVisuallyHidden,\n isLoading,\n isInverse,\n itemListMaxHeight,\n items,\n itemToString,\n labelPosition,\n labelStyle,\n labelText,\n menuStyle,\n messageStyle,\n newItemTransform,\n onInputBlur,\n onInputChange,\n onInputFocus,\n onInputKeyDown,\n onInputKeyPress,\n onInputKeyUp,\n onInputValueChange,\n onIsOpenChange,\n onItemCreated,\n placeholder,\n selectedItem: passedInSelectedItem,\n toggleButtonRef,\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n function isCreatedItem(item) {\n return (\n !(typeof item === 'string') &&\n instanceOfDefaultItemObject(item) &&\n item.react_magma__created_item\n );\n }\n\n function defaultNewItemTransform(newItem) {\n return newItem.value;\n }\n\n function defaultOnSelectedItemChange(changes) {\n if (isCreatedItem(changes.selectedItem)) {\n const {\n react_magma__created_item,\n ...createdItem\n } = changes.selectedItem;\n\n const newItem =\n react_magma__created_item &&\n newItemTransform &&\n typeof newItemTransform === 'function'\n ? newItemTransform(createdItem)\n : defaultNewItemTransform(createdItem);\n\n items && onItemCreated && typeof onItemCreated === 'function'\n ? onItemCreated(newItem)\n : updateItemsRef(newItem);\n\n selectItem(newItem);\n setInputValue(itemToString(newItem));\n\n if (process.env.NODE_ENV === 'development') {\n if (!items && !disableCreateItem) {\n console.warn(\n 'React Magma Warning: Switching from uncontrolled to controlled items. If allowing new items to be created you should handle the onItemCreated event and control the items list in your code.'\n );\n }\n }\n } else {\n props.onSelectedItemChange &&\n typeof props.onSelectedItemChange === 'function' &&\n props.onSelectedItemChange(changes);\n }\n }\n\n function stateReducer(state, actionAndChanges) {\n const { type, changes } = actionAndChanges;\n\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter: {\n const inputValue = isCreatedItem(displayItems[0])\n ? ''\n : changes.inputValue;\n return {\n ...changes,\n inputValue,\n };\n }\n case useCombobox.stateChangeTypes.ItemClick: {\n const inputValue = isCreatedItem(displayItems[0])\n ? ''\n : changes.inputValue;\n return {\n ...changes,\n inputValue,\n };\n }\n case useCombobox.stateChangeTypes.InputBlur:\n return {\n ...changes,\n inputValue:\n state.inputValue && !state.selectedItem\n ? ''\n : itemToString(state.selectedItem),\n selectedItem: state.selectedItem ? state.selectedItem : '',\n };\n case useCombobox.stateChangeTypes.FunctionReset:\n return {\n ...changes,\n inputValue: changes.selectedItem\n ? itemToString(changes.selectedItem)\n : '',\n };\n default:\n return changes;\n }\n }\n\n const [\n allItems,\n displayItems,\n setDisplayItems,\n updateItemsRef,\n ] = useComboboxItems(defaultItems, items);\n\n function getValidItem(itemToCheck: T, key: string): object {\n return allItems.current.findIndex(\n i => itemToString(i) === itemToString(itemToCheck)\n ) !== -1\n ? { [key]: itemToCheck }\n : { [key]: null };\n }\n\n function handleOnIsOpenChange(changes) {\n const {\n isOpen: changedIsOpen,\n selectedItem: changedSelectedItem,\n } = changes;\n\n if (!changedIsOpen) {\n setDisplayItems(allItems.current);\n }\n\n if (changedIsOpen && changedSelectedItem) {\n setHighlightedIndex(\n displayItems.findIndex(\n i => itemToString(i) === itemToString(changedSelectedItem)\n )\n );\n }\n\n onIsOpenChange &&\n typeof onIsOpenChange === 'function' &&\n onIsOpenChange(changes);\n }\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getComboboxProps,\n highlightedIndex,\n getItemProps,\n reset,\n selectItem,\n selectedItem,\n setInputValue,\n setHighlightedIndex,\n } = useCombobox({\n ...props,\n itemToString,\n items: displayItems,\n onInputValueChange:\n onInputValueChange && typeof onInputValueChange === 'function'\n ? changes => onInputValueChange(changes, setDisplayItems)\n : changes =>\n defaultOnInputValueChange(\n changes,\n allItems,\n itemToString,\n disableCreateItem,\n setDisplayItems,\n setHighlightedIndex,\n onInputChange,\n i18n.combobox.createLabel\n ),\n onIsOpenChange: handleOnIsOpenChange,\n onSelectedItemChange: defaultOnSelectedItemChange,\n stateReducer,\n ...(defaultSelectedItem &&\n getValidItem(defaultSelectedItem, 'defaultSelectedItem')),\n ...(initialSelectedItem &&\n getValidItem(initialSelectedItem, 'initialSelectedItem')),\n ...(passedInSelectedItem &&\n getValidItem(passedInSelectedItem, 'selectedItem')),\n });\n\n const { ClearIndicator } = defaultComponents<T>({\n ...customComponents,\n });\n\n const inputRef = React.useRef<HTMLInputElement>();\n const ref = useForkedRef(innerRef || null, inputRef);\n\n function defaultHandleClearIndicatorClick(event: React.SyntheticEvent) {\n event.stopPropagation();\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n\n reset();\n }\n\n const clearIndicatorAriaLabel = i18n.combobox.clearIndicatorAriaLabel\n .replace(/\\{labelText\\}/g, labelText)\n .replace(/\\{selectedItem\\}/g, itemToString(selectedItem));\n\n return (\n <SelectContainer\n descriptionId={ariaDescribedBy}\n errorMessage={errorMessage}\n getLabelProps={getLabelProps}\n hasError={hasError}\n helperMessage={helperMessage}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n isInverse={isInverse}\n labelPosition={labelPosition}\n labelStyle={labelStyle}\n labelText={labelText}\n messageStyle={messageStyle}\n >\n <ComboboxInput\n ariaDescribedBy={ariaDescribedBy}\n customComponents={customComponents}\n disabled={disabled}\n getComboboxProps={getComboboxProps}\n getInputProps={getInputProps}\n getToggleButtonProps={getToggleButtonProps}\n hasError={hasError}\n innerRef={ref}\n inputStyle={inputStyle}\n isInverse={isInverse}\n isLoading={isLoading}\n onInputBlur={onInputBlur}\n onInputFocus={onInputFocus}\n onInputKeyDown={onInputKeyDown}\n onInputKeyPress={onInputKeyPress}\n onInputKeyUp={onInputKeyUp}\n placeholder={placeholder}\n toggleButtonRef={toggleButtonRef}\n >\n {isClearable && selectedItem && (\n <ClearIndicator\n aria-label={clearIndicatorAriaLabel}\n icon={<CloseIcon />}\n onClick={defaultHandleClearIndicatorClick}\n shape={ButtonShape.fill}\n size={ButtonSize.small}\n variant={ButtonVariant.link}\n />\n )}\n </ComboboxInput>\n <ItemsList\n customComponents={customComponents}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n items={displayItems}\n itemToString={itemToString}\n maxHeight={itemListMaxHeight || theme.combobox.menu.maxHeight}\n menuStyle={menuStyle}\n />\n </SelectContainer>\n );\n}\n","import * as React from 'react';\nimport { instanceOfDefaultItemObject } from '../Select';\nimport { useCombobox, useMultipleSelection } from 'downshift';\nimport { CloseIcon } from 'react-magma-icons';\nimport { SelectContainer } from '../Select/SelectContainer';\nimport { ItemsList } from '../Select/ItemsList';\nimport { ComboboxInput } from './ComboboxInput';\nimport { SelectedItemButton, IconWrapper } from '../Select/shared';\nimport { useComboboxItems, defaultOnInputValueChange } from './shared';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { I18nContext } from '../../i18n';\nimport { MultiComboboxProps } from '.';\n\nexport function MultiCombobox<T>(props: MultiComboboxProps<T>) {\n const [inputValue, setInputValue] = React.useState('');\n const {\n ariaDescribedBy,\n components: customComponents,\n errorMessage,\n defaultItems,\n disableCreateItem,\n hasError,\n helperMessage,\n inputStyle,\n disabled,\n innerRef,\n isLabelVisuallyHidden,\n isLoading,\n isInverse,\n itemListMaxHeight,\n items,\n itemToString,\n labelPosition,\n labelStyle,\n labelText,\n menuStyle,\n messageStyle,\n newItemTransform,\n onInputBlur,\n onInputChange,\n onInputFocus,\n onInputKeyDown,\n onInputKeyPress,\n onInputKeyUp,\n onInputValueChange,\n onIsOpenChange,\n onItemCreated,\n onRemoveSelectedItem,\n placeholder,\n toggleButtonRef,\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const [\n allItems,\n displayItems,\n setDisplayItems,\n updateItemsRef,\n ] = useComboboxItems(defaultItems, items);\n\n function checkSelectedItemValidity(itemToCheck) {\n return (\n allItems.current.findIndex(\n i => itemToString(i) === itemToString(itemToCheck)\n ) !== -1\n );\n }\n\n const {\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n removeSelectedItem,\n setActiveIndex,\n selectedItems,\n } = useMultipleSelection({\n ...props,\n ...(props.initialSelectedItems && {\n initialSelectedItems: props.initialSelectedItems.filter(\n checkSelectedItemValidity\n ),\n }),\n ...(props.selectedItems && {\n selectedItems: props.selectedItems.filter(checkSelectedItemValidity),\n }),\n });\n\n function isCreatedItem(item) {\n return (\n !(typeof item === 'string') &&\n instanceOfDefaultItemObject(item) &&\n item.react_magma__created_item\n );\n }\n\n function getFilteredItems(unfilteredItems) {\n return unfilteredItems.filter(item => {\n const itemString =\n typeof item === 'object' && item.react_magma__created_item\n ? item.value\n : itemToString(item);\n return (\n (selectedItems.findIndex(\n selectedItem => itemToString(selectedItem) === itemToString(item)\n ) < 0 &&\n itemString.toLowerCase().startsWith(inputValue.toLowerCase())) ||\n isCreatedItem(item)\n );\n });\n }\n\n function defaultNewItemTransform(newItem) {\n return newItem.value;\n }\n\n function defaultOnSelectedItemChange(changes) {\n if (isCreatedItem(changes.selectedItem)) {\n const {\n react_magma__created_item,\n ...createdItem\n } = changes.selectedItem;\n\n const newItem =\n react_magma__created_item &&\n newItemTransform &&\n typeof newItemTransform === 'function'\n ? newItemTransform(createdItem)\n : defaultNewItemTransform(createdItem);\n\n items && onItemCreated && typeof onItemCreated === 'function'\n ? onItemCreated(newItem)\n : updateItemsRef(newItem);\n addSelectedItem(newItem);\n\n if (process.env.NODE_ENV === 'development') {\n if (!items && !disableCreateItem) {\n console.warn(\n 'React Magma Warning: Switching from uncontrolled to controlled items. If allowing new items to be created you should handle the onItemCreated event and control the items list in your code.'\n );\n }\n }\n } else if (changes.selectedItem) {\n addSelectedItem(changes.selectedItem);\n }\n\n selectItem(null);\n setInputValue('');\n }\n\n const {\n stateReducer: passedInStateReducer,\n onStateChange,\n ...comboboxProps\n } = props;\n\n function handleOnIsOpenChange(changes) {\n const { isOpen: changedIsOpen } = changes;\n\n if (!changedIsOpen) {\n setDisplayItems(allItems.current);\n }\n\n onIsOpenChange &&\n typeof onIsOpenChange === 'function' &&\n onIsOpenChange(changes);\n }\n\n function stateReducer(state, actionAndChanges) {\n const { type, changes } = actionAndChanges;\n switch (type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter: {\n const newSelectedItem = getFilteredItems(displayItems)[\n state.highlightedIndex\n ];\n return {\n ...changes,\n ...(newSelectedItem && {\n selectedItem: newSelectedItem,\n }),\n inputValue: '',\n };\n }\n case useCombobox.stateChangeTypes.ItemClick: {\n return {\n ...changes,\n inputValue: '',\n };\n }\n case useCombobox.stateChangeTypes.InputBlur:\n return {\n ...changes,\n inputValue: '',\n };\n default:\n return changes;\n }\n }\n\n function handleInputChange(changes) {\n setInputValue(changes.inputValue);\n\n onInputChange &&\n typeof onInputChange === 'function' &&\n onInputChange(changes);\n }\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getComboboxProps,\n highlightedIndex,\n getItemProps,\n selectItem,\n setHighlightedIndex,\n } = useCombobox({\n ...comboboxProps,\n itemToString,\n items: getFilteredItems(displayItems),\n onInputValueChange:\n onInputValueChange && typeof onInputValueChange === 'function'\n ? changes => onInputValueChange(changes, setDisplayItems)\n : changes =>\n defaultOnInputValueChange(\n changes,\n allItems,\n itemToString,\n disableCreateItem,\n setDisplayItems,\n setHighlightedIndex,\n handleInputChange,\n i18n.combobox.createLabel\n ),\n onIsOpenChange: handleOnIsOpenChange,\n onSelectedItemChange: defaultOnSelectedItemChange,\n stateReducer,\n });\n\n function handleRemoveSelectedItem(event: React.SyntheticEvent, selectedItem) {\n event.stopPropagation();\n\n onRemoveSelectedItem && typeof onRemoveSelectedItem === 'function'\n ? onRemoveSelectedItem(selectedItem)\n : removeSelectedItem(selectedItem);\n }\n\n function handleInputFocus(event: React.FocusEvent) {\n setActiveIndex(-1);\n\n onInputFocus && typeof onInputFocus === 'function' && onInputFocus(event);\n }\n\n const selectedItemsContent =\n selectedItems && selectedItems.length > 0 ? (\n <>\n {selectedItems.map((multiSelectedItem, index) => (\n <SelectedItemButton\n aria-label={i18n.multiCombobox.selectedItemButtonAriaLabel.replace(\n /\\{selectedItem\\}/g,\n itemToString(multiSelectedItem)\n )}\n key={`selected-item-${index}`}\n {...getSelectedItemProps({\n selectedItem: multiSelectedItem,\n index,\n })}\n onClick={event =>\n handleRemoveSelectedItem(event, multiSelectedItem)\n }\n onFocus={() => setActiveIndex(index)}\n theme={theme}\n >\n {itemToString(multiSelectedItem)}\n <IconWrapper>\n <CloseIcon size={theme.iconSizes.xSmall} />\n </IconWrapper>\n </SelectedItemButton>\n ))}\n </>\n ) : null;\n\n return (\n <SelectContainer\n descriptionId={ariaDescribedBy}\n errorMessage={errorMessage}\n getLabelProps={getLabelProps}\n helperMessage={helperMessage}\n isInverse={isInverse}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n labelPosition={labelPosition}\n labelStyle={labelStyle}\n labelText={labelText}\n messageStyle={messageStyle}\n >\n <ComboboxInput\n ariaDescribedBy={ariaDescribedBy}\n customComponents={customComponents}\n getComboboxProps={getComboboxProps}\n getInputProps={options => ({\n ...getInputProps({\n ...options,\n ...getDropdownProps({\n onKeyDown: onInputKeyDown,\n preventKeyAction: isOpen,\n ...(innerRef && { ref: innerRef }),\n }),\n }),\n })}\n getToggleButtonProps={getToggleButtonProps}\n inputStyle={inputStyle}\n disabled={disabled}\n isInverse={isInverse}\n isLoading={isLoading}\n hasError={hasError}\n onInputBlur={onInputBlur}\n onInputFocus={handleInputFocus}\n onInputKeyDown={onInputKeyDown}\n onInputKeyPress={onInputKeyPress}\n onInputKeyUp={onInputKeyUp}\n placeholder={placeholder}\n selectedItems={selectedItemsContent}\n toggleButtonRef={toggleButtonRef}\n />\n <ItemsList\n customComponents={customComponents}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n items={getFilteredItems(displayItems)}\n itemToString={itemToString}\n maxHeight={itemListMaxHeight || theme.combobox.menu.maxHeight}\n menuStyle={menuStyle}\n />\n </SelectContainer>\n );\n}\n","import React from 'react';\nimport {\n useCombobox,\n UseComboboxProps,\n UseComboboxState,\n UseMultipleSelectionProps,\n} from 'downshift';\nimport {\n SelectOptions,\n instanceOfDefaultItemObject,\n InternalSelectProps,\n InternalMultiProps,\n} from '../Select';\nimport { InternalCombobox } from './Combobox';\nimport { MultiCombobox } from './MultiCombobox';\nimport { useGenerateId, XOR, Omit } from '../../utils';\nimport { LabelPosition } from '../Label';\nimport { useIsInverse } from '../../inverse';\n\nexport interface ComboboxProps<T extends SelectOptions>\n extends Omit<UseComboboxProps<T>, 'items'>,\n InternalSelectProps<T> {\n /**\n * Id of the element that describes the combobox input\n */\n ariaDescribedBy?: string;\n /**\n * Default selectable options. Allows for uncontrolled component and internal creation of items. Can be an array of strings or objects\n */\n defaultItems?: T[];\n /**\n * If true, the new items cannot be created by typing in the text field\n * @default false\n */\n disableCreateItem?: boolean;\n /**\n * @internal\n */\n hasError?: boolean;\n /**\n * Position of text label relative to form field\n */\n labelPosition?: LabelPosition;\n /**\n * Reference to the input element in the combobox\n */\n innerRef?: React.Ref<HTMLInputElement>;\n /**\n * If true, the loading component is shown\n * @default false\n */\n /**\n * @internal\n */\n isMulti?: false;\n isLoading?: boolean;\n /**\n * Default selectable options. Can be an array of strings or objects\n */\n items?: T[];\n /**\n * Function passed in that transforms a newly created item to whatever format your items are in\n */\n newItemTransform?: (item: { label: string; value: string }) => T;\n /**\n * Event that fires when the input loses focus\n */\n onInputBlur?: (event: React.FocusEvent) => void;\n /**\n * Event that fires when the input's value is changed\n */\n onInputChange?: (changes: Partial<UseComboboxState<T>>) => void;\n /**\n * Event that fires when the input gains focus\n */\n onInputFocus?: (event: React.FocusEvent) => void;\n /**\n * Event that will fire when input receives keypress.\n */\n onInputKeyDown?: (event: React.KeyboardEvent) => void;\n /**\n * Event that will fire when a character is typed in the input\n */\n onInputKeyPress?: (event: React.KeyboardEvent) => void;\n /**\n * Event that will fire when a keypress is released on the input\n */\n onInputKeyUp?: (event: React.KeyboardEvent) => void;\n /**\n * Event that fires when the selected item changes\n */\n onInputValueChange?: (\n changes: Partial<UseComboboxState<T>>,\n updateInputItems?: React.Dispatch<React.SetStateAction<T[]>>\n ) => void;\n /**\n * Event that fires when a new item is created with the create item option is clicked in the item list menu\n */\n onItemCreated?: (newItem: T) => void;\n /**\n * Reference to the toggle button element wrapping the input in the combobox\n */\n toggleButtonRef?: React.Ref<HTMLButtonElement>;\n}\n\nexport interface MultiComboboxProps<T extends SelectOptions>\n extends UseMultipleSelectionProps<T>,\n Omit<ComboboxProps<T>, 'onStateChange' | 'stateReducer' | 'isMulti'>,\n InternalMultiProps<T> {\n /**\n * @internal\n */\n isMulti: true;\n}\n\nexport function instanceOfMultiCombobox<T>(\n object: any\n): object is MultiComboboxProps<T> {\n return 'isMulti' in object;\n}\n\nexport type XORComboboxProps<T> = XOR<ComboboxProps<T>, MultiComboboxProps<T>>;\n\nexport const ComboboxStateChangeTypes = useCombobox.stateChangeTypes;\n\nexport function Combobox<T>(props: XORComboboxProps<T>) {\n const {\n containerStyle,\n errorMessage,\n id: defaultId,\n isMulti,\n labelPosition,\n messageStyle,\n helperMessage,\n testId,\n } = props;\n\n function itemToString(item: T) {\n return item && typeof item === 'string'\n ? item\n : item && instanceOfDefaultItemObject(item)\n ? item.label\n : '';\n }\n\n const hasError = !!errorMessage;\n\n const id = useGenerateId(defaultId);\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <div style={containerStyle} data-testid={testId}>\n {isMulti && instanceOfMultiCombobox<T>(props) ? (\n <MultiCombobox\n ariaDescribedBy={descriptionId}\n errorMessage={errorMessage}\n hasError={hasError}\n helperMessage={helperMessage}\n isInverse={isInverse}\n itemToString={itemToString}\n labelPosition={labelPosition || LabelPosition.top}\n messageStyle={messageStyle}\n {...(props as MultiComboboxProps<T>)}\n />\n ) : (\n <InternalCombobox\n ariaDescribedBy={descriptionId}\n errorMessage={errorMessage}\n hasError={hasError}\n helperMessage={helperMessage}\n isInverse={isInverse}\n itemToString={itemToString}\n labelPosition={labelPosition || LabelPosition.top}\n messageStyle={messageStyle}\n {...(props as ComboboxProps<T>)}\n />\n )}\n </div>\n );\n}\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { ButtonColor, ButtonVariant } from '../Button';\nimport { Hyperlink, HyperlinkProps } from '../Hyperlink';\nimport { I18nContext } from '../../i18n';\n\nexport const TARGET_ID = 'reactMagmaMainContent';\n\nexport interface SkipLinkProps extends HyperlinkProps {\n /**\n * The text in the skip link\n * @default \"Skip Navigation\"\n */\n buttonText?: string;\n /**\n * Number of pixels from the left of the screen for the skip link to be positioned\n * @default 10\n */\n positionLeft?: number;\n /**\n * Number of pixels from the top of the screen for the skip link to be positioned\n * @default 10\n */\n positionTop?: number;\n testId?: string;\n}\n\nconst handleClick = e => {\n e.preventDefault();\n\n const targetAnchor = document.getElementById(TARGET_ID);\n\n if (!targetAnchor) {\n return;\n }\n\n const targetHeading = targetAnchor.getElementsByTagName('h1')[0];\n\n if (targetHeading) {\n targetHeading.setAttribute('tabIndex', '-1');\n targetHeading.focus();\n return;\n }\n targetAnchor.focus();\n};\n\nconst StyledSkipLink = styled(Hyperlink)<{\n positionLeft: number;\n positionTop: number;\n}>`\n left: -9999px;\n position: fixed;\n top: -9999px;\n\n &:focus {\n left: ${props => props.positionLeft}px;\n top: ${props => props.positionTop}px;\n z-index: 99999;\n }\n }\n`;\n\nexport const SkipLink: React.FunctionComponent<SkipLinkProps> = props => {\n const {\n buttonText,\n color,\n positionLeft,\n positionTop,\n testId,\n variant,\n ...other\n } = props;\n const i18n = React.useContext(I18nContext);\n\n return (\n <StyledSkipLink\n {...other}\n color={color ? color : ButtonColor.primary}\n testId={testId}\n onClick={e => {\n handleClick(e);\n }}\n positionLeft={positionLeft ? positionLeft : 10}\n positionTop={positionTop ? positionTop : 10}\n styledAs=\"Button\"\n to={`#${TARGET_ID}`}\n variant={variant ? variant : ButtonVariant.solid}\n >\n {buttonText ? buttonText : i18n.skipLink.buttonText}\n </StyledSkipLink>\n );\n};\n","import * as React from 'react';\n\nimport { TARGET_ID } from '../SkipLink';\n\n/**\n * @children required\n */\nexport interface SkipLinkContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n}\n\nexport const SkipLinkContent: React.FunctionComponent<SkipLinkContentProps> = props => {\n const { children, testId } = props;\n return (\n <div\n data-testid={testId}\n id={TARGET_ID}\n tabIndex={-1}\n style={{ outline: 0 }}\n >\n {children}\n </div>\n );\n};\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { convertStyleValueToString } from '../../utils';\n\nexport interface SpacerProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * Determines whether the spacer takes up space horizontally, vertically or both.\n */\n axis?: SpacerAxis;\n /**\n * Height and/or width of the component. If a number is provided, will be set in pixels.\n */\n size: number | string;\n testId?: string;\n}\n\nexport enum SpacerAxis {\n horizontal = 'horizontal',\n vertical = 'vertical',\n both = 'both', // default\n}\n\nfunction getHeight(axis: SpacerAxis, size: number | string) {\n return axis === SpacerAxis.horizontal\n ? '1px'\n : convertStyleValueToString(size);\n}\nfunction getWidth(axis: SpacerAxis, size: number | string) {\n return axis === SpacerAxis.vertical ? '1px' : convertStyleValueToString(size);\n}\n\nconst StyledSpacer = styled.span<SpacerProps>`\n display: ${props =>\n props.axis === SpacerAxis.horizontal ? 'inline-block' : 'block'};\n height: ${props => getHeight(props.axis, props.size)};\n min-height: ${props => getHeight(props.axis, props.size)};\n min-width: ${props => getWidth(props.axis, props.size)};\n width: ${props => getWidth(props.axis, props.size)};\n`;\n\nexport const Spacer = React.forwardRef<HTMLSpanElement, SpacerProps>(\n (props, ref) => {\n const { testId, axis = SpacerAxis.both, ...other } = props;\n\n return (\n <StyledSpacer {...other} axis={axis} data-testid={testId} ref={ref} />\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\n\nimport { CancelIcon, IconProps } from 'react-magma-icons';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\nimport { Omit, XOR, getNodeText } from '../../utils';\nimport { I18nContext } from '../../i18n';\n\nexport enum TagColor {\n danger = 'danger',\n primary = 'primary',\n lowContrast = 'lowContrast',\n highContrast = 'highContrast',\n success = 'success',\n}\n\nexport enum TagSize {\n medium = 'medium',\n small = 'small',\n}\n\n/**\n * @children required\n */\n\nexport interface BaseTagProps\n extends Omit<React.HTMLAttributes<HTMLButtonElement>, 'onClick'> {\n /**\n * Color changes between 'primary', 'low contrast', and 'high contrast' style variants between each Tag.\n */\n color?: TagColor;\n\n /**\n * Size toggles between a default, and a small size Tag.\n */\n size?: TagSize;\n\n /**\n * Gets the active Tag label for use with the aria-label attribute inline for accessibility.\n */\n labelText?: React.ReactNode;\n\n /**\n * Disabled Tag state.\n */\n disabled?: boolean;\n\n testId?: string;\n\n /**\n * Allows passing a Magma icon to the Tag.\n */\n icon?: React.ReactElement<IconProps>;\n\n /**\n * Passes a clickable state to the Tag.\n */\n isClickable?: boolean;\n\n /**\n * Allows for Inverse styling of each Tag.\n */\n isInverse?: boolean;\n\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nexport interface DeletableTagProps extends BaseTagProps {\n onDelete: () => void;\n}\n\nexport interface ClickableTagProps extends BaseTagProps {\n onClick?: () => void;\n}\n\nexport type TagProps = XOR<DeletableTagProps, ClickableTagProps>;\n\nfunction buildBoxShadow(props) {\n if (props.color === 'lowContrast') {\n if (props.isInverse) {\n if (props.disabled) {\n return `0 0 0 1px ${props.theme.colors.neutral08}40`;\n }\n return `0 0 0 1px ${props.theme.colors.neutral08}80`;\n }\n if (props.disabled) {\n return `0 0 0 1px ${props.theme.colors.neutral06}`;\n }\n return `inset 0 0 0 1px ${props.theme.colors.neutral05}`;\n }\n}\n\nfunction buildButtonBackground(props) {\n if (props.isInverse) {\n if (props.disabled) {\n // Disabled inverse state background colors\n switch (props.color) {\n case 'primary':\n return `${props.theme.colors.neutral06}`;\n case 'highContrast':\n return `${props.theme.colors.neutral06}`;\n case 'lowContrast':\n return `none`;\n default:\n return `${props.theme.colors.neutral06}`;\n }\n }\n // Inverse background colors\n switch (props.color) {\n case 'danger':\n return `${props.theme.colors.dangerInverse}`;\n case 'success':\n return `${props.theme.colors.successInverse}`;\n case 'primary':\n return `${props.theme.colors.primaryInverse}`;\n case 'lowContrast':\n return `none;`;\n case 'highContrast':\n return `${props.theme.colors.neutral08}`;\n default:\n return `${props.theme.colors.neutral03}`;\n }\n } else if (props.disabled && !props.isInverse) {\n // Disabled state background colors\n switch (props.color) {\n case 'primary':\n return `${props.theme.colors.neutral06}`;\n case 'highContrast':\n return `${props.theme.colors.neutral06}`;\n case 'lowContrast':\n return `${props.theme.colors.neutral08}`;\n default:\n return `${props.theme.colors.neutral06}`;\n }\n }\n // Default state background colors\n switch (props.color) {\n case 'danger':\n return `${props.theme.colors.danger}`;\n case 'success':\n return `${props.theme.colors.success}`;\n case 'primary':\n return `${props.theme.colors.primary}`;\n case 'lowContrast':\n return `${props.theme.colors.neutral08}`;\n case 'highContrast':\n return `${props.theme.colors.neutral}`;\n default:\n return `${props.theme.colors.neutral06}`;\n }\n}\n\nfunction buildButtonTextColor(props) {\n if (props.isInverse) {\n if (props.disabled) {\n // Disabled inverse state text colors\n switch (props.color) {\n case 'primary':\n return `${props.theme.colors.neutral03}99`;\n case 'highContrast':\n return `${props.theme.colors.neutral03}99`;\n case 'lowContrast':\n return `${props.theme.colors.neutral08}40`;\n default:\n return `${props.theme.colors.neutral03}99`;\n }\n }\n // Inverse text colors\n switch (props.color) {\n case 'danger':\n return `${props.theme.colors.neutral}`;\n case 'success':\n return `${props.theme.colors.neutral}`;\n case 'primary':\n return `${props.theme.colors.neutral}`;\n case 'lowContrast':\n return `${props.theme.colors.neutral08}`;\n case 'highContrast':\n return `${props.theme.colors.neutral}`;\n default:\n return `${props.theme.colors.neutral08}`;\n }\n } else if (props.disabled && !props.isInverse) {\n // Disabled state text colors\n switch (props.color) {\n case 'primary':\n return `${props.theme.colors.neutral03}99`;\n case 'highContrast':\n return `${props.theme.colors.neutral03}99`;\n case 'lowContrast':\n return `${props.theme.colors.neutral03}99`;\n default:\n return `${props.theme.colors.neutral03}99`;\n }\n }\n // Default state text colors\n switch (props.color) {\n case 'danger':\n return `${props.theme.colors.neutral08}`;\n case 'success':\n return `${props.theme.colors.neutral08}`;\n case 'primary':\n return `${props.theme.colors.neutral08}`;\n case 'highContrast':\n return `${props.theme.colors.neutral08}`;\n default:\n return `${props.theme.colors.neutral}`;\n }\n}\n\nfunction buildSvgOpacity(props) {\n if (props.onClick || props.onDelete) {\n if (props.disabled) {\n return '60%';\n }\n return '75%';\n }\n if (props.color === 'lowContrast' && props.disabled) {\n return '25%';\n } else if (props.disabled) {\n return '60%';\n }\n return '1';\n}\n\nfunction buildTagPadding(props) {\n if (props.icon) {\n switch (props.size) {\n case 'small':\n return `0 ${props.theme.spaceScale.spacing02}`;\n default:\n return `${props.theme.spaceScale.spacing02} 6px`;\n }\n }\n switch (props.size) {\n case 'small':\n return `0 ${props.theme.spaceScale.spacing02}`;\n default:\n return `${props.theme.spaceScale.spacing02} 6px`;\n }\n}\n\nfunction buildLabelPadding(props) {\n if (props.icon) {\n switch (props.size) {\n case 'small':\n return `0 ${props.theme.spaceScale.spacing02}`;\n default:\n return `0 ${props.theme.spaceScale.spacing03}`;\n }\n }\n switch (props.size) {\n case 'small':\n return `0 ${props.theme.spaceScale.spacing02}`;\n default:\n return `0 ${props.theme.spaceScale.spacing03}`;\n }\n}\n\nconst TagStyling = props => css`\n border: ${props.theme.tag.border};\n border-radius: ${props.theme.spaceScale.spacing05};\n background: ${buildButtonBackground(props)};\n color: ${buildButtonTextColor(props)};\n box-shadow: ${buildBoxShadow(props)};\n display: ${props.theme.tag.display};\n align-items: ${props.theme.tag.alignItems};\n justify-content: ${props.theme.tag.justifyContent};\n font-size: ${props.size === 'small'\n ? `${props.theme.typeScale.size01.fontSize}`\n : `${props.theme.typeScale.size02.fontSize}`};\n font-weight: ${props.size === 'small' ? `600` : `inherit`};\n letter-spacing: ${props.size === 'small'\n ? `${props.theme.typeScale.size01.letterSpacing}`\n : `${props.theme.typeScale.size02.letterSpacing}`};\n min-width: ${props.size === 'small'\n ? props.theme.spaceScale.spacing10\n : props.theme.spaceScale.spacing12};\n padding: ${buildTagPadding(props)};\n svg:first-of-type {\n height: ${props.size === 'small'\n ? `${props.theme.iconSizes.xSmall}px`\n : `${props.theme.iconSizes.small}px`};\n opacity: ${props.disabled ? '60%' : 'inherit'};\n width: ${props.size === 'small'\n ? `${props.theme.iconSizes.xSmall}px`\n : `${props.theme.iconSizes.small}px`};\n }\n svg:last-child {\n opacity: ${buildSvgOpacity(props)};\n width: ${props.size === 'small'\n ? `${props.theme.iconSizes.xSmall}px`\n : `${props.theme.iconSizes.small}px`};\n }\n &:hover {\n svg {\n opacity: ${props.disabled ? '60%' : '1'};\n }\n }\n`;\n\nconst StyledButton = styled.button<{\n disabled?: boolean;\n isClickable?: boolean;\n isInverse?: boolean;\n size: string;\n}>`\n ${TagStyling};\n cursor: pointer;\n`;\n\nconst StyledSpan = styled.span<{\n disabled?: boolean;\n isInverse?: boolean;\n size: string;\n}>`\n ${TagStyling};\n cursor: ${props => (props.disabled ? 'not-allowed' : 'inherit')};\n`;\n\nconst LabelWrap = styled.span<{\n size: string;\n icon?: any;\n}>`\n padding: ${buildLabelPadding};\n`;\n\nfunction getStyledTag(isClickable: boolean) {\n return isClickable ? StyledButton : StyledSpan;\n}\n\nexport const Tag = React.forwardRef<HTMLButtonElement, TagProps>(\n (props, ref) => {\n const {\n children,\n color,\n labelText = children,\n onClick,\n onDelete,\n isInverse: isInverseProp,\n size = TagSize.medium,\n testId,\n ...rest\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const isInverse = useIsInverse(isInverseProp);\n\n const i18n = React.useContext(I18nContext);\n\n const deleteAriaLabel = i18n.tag.deleteAriaLabel.replace(\n /\\{labelText\\}/g,\n getNodeText(labelText)\n );\n\n const { icon } = props;\n\n const StyledTag = getStyledTag(Boolean(onClick || onDelete));\n\n function handleClick() {\n if (onClick && typeof onClick === 'function') {\n onClick();\n } else if (onDelete && typeof onDelete === 'function') {\n onDelete();\n }\n }\n\n return (\n <StyledTag\n color={color}\n icon={icon}\n onClick={handleClick}\n isInverse={isInverse}\n ref={ref}\n data-testid={props.testId}\n size={size}\n theme={theme}\n {...rest}\n >\n {icon}\n <LabelWrap size={size} {...rest} theme={theme}>\n {children}\n </LabelWrap>\n {onDelete && (\n <CancelIcon\n aria-label={deleteAriaLabel}\n size={theme.iconSizes.small}\n />\n )}\n </StyledTag>\n );\n }\n);\n","import * as React from 'react';\n\nexport interface ToastsContainerProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Number of additional pixels from bottom of screen\n * @default 0\n */\n bottomOffset?: number;\n /**\n * @internal\n */\n toastsArray?: any;\n testId?: string;\n}\n\nexport interface ToastsContextInterface {\n bottomOffset?: number;\n toastsArray?: any;\n}\n\nexport const ToastsContext = React.createContext<ToastsContextInterface>({\n toastsArray: { current: [] },\n bottomOffset: 0,\n});\n\nexport const ToastsContainer = React.forwardRef<\n HTMLDivElement,\n ToastsContainerProps\n>((props, ref) => {\n const { bottomOffset, children, testId } = props;\n const toastsArray = React.useRef([]);\n\n return (\n <ToastsContext.Provider value={{ bottomOffset, toastsArray }}>\n <div ref={ref} data-testid={testId}>\n {children}\n </div>\n </ToastsContext.Provider>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { AlertBase, AlertBaseProps, transitionDuration } from '../AlertBase';\nimport { getTrapElements } from '../../utils';\nimport { useGenerateId } from '../../utils';\nimport { ToastsContext } from './ToastsContainer';\n\n/**\n * @children required\n */\nexport interface ToastProps extends AlertBaseProps {\n /**\n * CSS properties for the alert component within the toast container\n */\n alertStyle?: React.CSSProperties;\n /**\n * CSS properties for the component container\n */\n containerStyle?: React.CSSProperties;\n /**\n * If true, the component will persist until dismissed by the user\n * @default false\n */\n disableAutoDismiss?: boolean;\n /**\n * Number of milliseconds the toast displays before it closes\n * @default 5000\n */\n toastDuration?: number;\n /**\n * Action that fires when the close button is clicked (required when dismissible is true)\n */\n onDismiss: () => void;\n /**\n * Action that fires when the mouse enters the component\n */\n onMouseEnter?: (event: React.SyntheticEvent) => void;\n /**\n * Action that fires when the mouse leaves the component\n */\n onMouseLeave?: (event: React.SyntheticEvent) => void;\n}\n\nconst ToastWrapper = styled.div<{\n bottomOffsetForContainer?: number;\n bottomOffsetForToast?: number;\n}>`\n bottom: ${props => props.bottomOffsetForToast + 20}px;\n display: flex;\n left: 20px;\n justify-content: flex-start;\n max-width: 600px;\n min-width: 320px;\n position: fixed;\n transform: translateY(${props => 0 - props.bottomOffsetForContainer}px);\n transition: bottom 0.3s;\n z-index: 999;\n\n @media (max-width: 600px) {\n bottom: ${props => props.bottomOffsetForToast + 10}px;\n left: 10px;\n right: 10px;\n }\n`;\n\nconst DEFAULT_TOAST_DURATION = 5000;\nconst TOAST_HEIGHT = 65;\n\nexport const Toast = React.forwardRef<HTMLDivElement, ToastProps>(\n (props, ref) => {\n const timerAutoHide = React.useRef<any>();\n const [isDismissed, setIsDismissed] = React.useState<boolean>(false);\n const [isPaused, setIsPaused] = React.useState<boolean>(false);\n const [timerTimeRemaining, setTimerTimeRemaining] =\n React.useState<number>();\n\n const {\n alertStyle,\n id: defaultId,\n testId,\n variant,\n disableAutoDismiss,\n children,\n containerStyle,\n toastDuration,\n ...other\n } = props;\n\n const id = useGenerateId(defaultId);\n\n const lastFocus = React.useRef<any>();\n\n const { bottomOffset, toastsArray } = React.useContext(ToastsContext);\n\n const timerStartTime = Date.now();\n\n const containerElement = React.useRef<any>();\n\n function dismissToast() {\n setIsDismissed(true);\n\n setTimeout(() => {\n if (toastsArray.current) {\n toastsArray.current = toastsArray.current.filter(\n toastId => toastId !== containerElement.current\n );\n }\n }, 0);\n }\n\n function clearTimeoutAndDismiss() {\n clearTimeout(timerAutoHide.current);\n\n dismissToast();\n\n if (lastFocus.current) {\n lastFocus.current.focus();\n }\n }\n\n function setAutoHideTimer(duration = DEFAULT_TOAST_DURATION) {\n clearTimeout(timerAutoHide.current);\n const totalDuration = duration + transitionDuration;\n\n timerAutoHide.current = setTimeout(() => {\n dismissToast();\n }, totalDuration);\n }\n\n function handlePause() {\n const duration = timerTimeRemaining\n ? timerTimeRemaining\n : toastDuration\n ? toastDuration\n : DEFAULT_TOAST_DURATION;\n const timeRemaining = duration - (Date.now() - timerStartTime);\n\n clearTimeout(timerAutoHide.current);\n setTimerTimeRemaining(timeRemaining);\n\n setIsPaused(true);\n }\n\n function handleResume() {\n setAutoHideTimer(timerTimeRemaining);\n setIsPaused(false);\n }\n\n function handleMouseEnter(event: React.SyntheticEvent) {\n props.onMouseEnter &&\n typeof props.onMouseEnter === 'function' &&\n props.onMouseEnter(event);\n\n if (!props.disableAutoDismiss) {\n handlePause();\n }\n }\n\n function handleMouseLeave(event: React.SyntheticEvent) {\n props.onMouseLeave &&\n typeof props.onMouseLeave === 'function' &&\n props.onMouseLeave(event);\n\n if (!props.disableAutoDismiss) {\n handleResume();\n }\n }\n\n function calculateAndSetBottomOffsetForToast() {\n updateBottomOffsetForToast(\n typeof toastsArray.current[0] === 'undefined'\n ? 0\n : toastsArray.current.indexOf(containerElement.current) * TOAST_HEIGHT\n );\n }\n\n const [bottomOffsetForToast, updateBottomOffsetForToast] =\n React.useState(0);\n\n React.useEffect(() => {\n lastFocus.current = document.activeElement;\n\n if (!props.disableAutoDismiss) {\n setAutoHideTimer(props.toastDuration);\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, []);\n\n React.useEffect(() => {\n if (!disableAutoDismiss) {\n const focusableElements = getTrapElements(containerElement);\n focusableElements.forEach(element => {\n element.addEventListener('focus', handlePause);\n element.addEventListener('blur', handleResume);\n });\n }\n }, []);\n\n React.useEffect(() => {\n if (toastsArray) {\n toastsArray.current = toastsArray.current.includes(\n containerElement.current\n )\n ? toastsArray.current\n : toastsArray.current.concat([containerElement.current]);\n\n calculateAndSetBottomOffsetForToast();\n }\n }, []);\n\n React.useEffect(() => {\n calculateAndSetBottomOffsetForToast();\n }, [toastsArray.current]);\n\n return (\n <ToastWrapper\n bottomOffsetForToast={bottomOffsetForToast}\n bottomOffsetForContainer={bottomOffset}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n ref={containerElement}\n style={containerStyle}\n data-testid={testId}\n >\n <AlertBase\n {...other}\n forceDismiss={clearTimeoutAndDismiss}\n hasTimerRing={!disableAutoDismiss}\n id={id}\n isDismissible\n isDismissed={isDismissed}\n isPaused={isPaused}\n isToast\n onDismiss={props.onDismiss}\n ref={ref}\n style={{ ...alertStyle }}\n toastDuration={toastDuration ? toastDuration : DEFAULT_TOAST_DURATION}\n variant={variant}\n >\n {children}\n </AlertBase>\n </ToastWrapper>\n );\n }\n);\n","import * as React from 'react';\nimport { HiddenStyles } from '../../utils/UtilityStyles';\nimport { CheckIcon } from 'react-magma-icons';\nimport { FormGroupContext } from '../FormGroup';\nimport { InputMessage } from '../Input/InputMessage';\nimport { StyledLabel } from '../SelectionControls/StyledLabel';\nimport { StyledContainer } from '../SelectionControls/StyledContainer';\nimport { css } from '@emotion/core';\n// Using the base `styled` from `emotion` until import mapping is fixed: https://github.com/emotion-js/emotion/pull/1220\n// import styled from '../../theme/styled';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useGenerateId } from '../../utils';\nimport { useIsInverse } from '../../inverse';\n\nexport enum ToggleTextPosition {\n left = 'left', // default\n right = 'right',\n}\n\nexport interface ToggleProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * If true, element is checked (i.e. selected)\n * @default false\n */\n checked?: boolean;\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n /**\n * If true, checkbox is checked on first render\n */\n defaultChecked?: boolean;\n /**\n * Content of the error message for toggle. If a value is provided, the component will be styled as an error state and the error message will display.\n */\n errorMessage?: React.ReactNode;\n /**\n * @internal\n */\n hasError?: boolean;\n isInverse?: boolean;\n /**\n * If true, label text will be hidden visually, but will still be read by assistive technology\n * @default false\n */\n isTextVisuallyHidden?: boolean;\n /**\n * Style properties for the label element\n */\n labelStyle?: React.CSSProperties;\n /**\n * Content for label; can be a node or a string\n */\n labelText: React.ReactNode;\n testId?: string;\n /**\n * Whether the label appears to the left of the right of the toggle switch\n * @default ToggleTextPosition.left\n */\n textPosition?: ToggleTextPosition;\n /**\n * @internal\n */\n theme?: any;\n /**\n * Style properties for the part of the component that slides back and forth on the track\n */\n thumbStyle?: React.CSSProperties;\n /**\n * Style properties for track on which the toggle thumb slides\n */\n trackStyle?: React.CSSProperties;\n}\n\nconst HiddenLabelText = styled.span`\n ${HiddenStyles};\n`;\n\nconst HiddenInput = styled.input`\n ${HiddenStyles};\n`;\n\nconst Track = styled.span<{\n isChecked?: boolean;\n disabled?: boolean;\n hasError?: boolean;\n isInverse?: boolean;\n theme?: any;\n}>`\n background: ${props => props.theme.colors.neutral04};\n border: 2px solid;\n border-color: ${props =>\n props.hasError ? props.theme.colors.danger : props.theme.colors.neutral04};\n border-radius: 12px;\n box-shadow: ${props =>\n props.isInverse && props.hasError\n ? `0 0 0 1px ${props.theme.colors.neutral08}`\n : '0 0 0'};\n cursor: pointer;\n height: 24px;\n position: relative;\n width: 48px;\n\n ${props =>\n props.isChecked &&\n css`\n background: ${props.theme.colors.success02};\n border-color: ${props.hasError\n ? props.theme.colors.danger\n : props.theme.colors.success02};\n `}\n\n ${props =>\n props.disabled &&\n css`\n background: ${props.theme.colors.neutral06};\n border-color: ${props.theme.colors.neutral06};\n cursor: not-allowed;\n `}\n\n ${HiddenInput}:focus + label & {\n outline: 2px dotted\n ${props =>\n props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n outline-offset: 3px;\n }\n\n &:before {\n // active state\n background: ${props => props.theme.colors.neutral};\n border-radius: 50%;\n content: '';\n display: block;\n height: 40px;\n left: -12px;\n opacity: 0;\n margin-top: -22px;\n padding: 50%;\n position: absolute;\n top: 50%;\n transform: scale(1);\n transition: opacity 1s, transform 0.25s;\n width: 40px;\n\n ${props =>\n props.isChecked &&\n css`\n background: ${props.theme.colors.success02};\n left: 12px;\n `}\n }\n\n ${HiddenInput}:not(:disabled):active + label & {\n &:before {\n opacity: 0.4;\n transform: scale(0);\n transition: transform 0s;\n }\n }\n`;\n\nconst Thumb = styled.span<{\n isChecked?: boolean;\n disabled?: boolean;\n theme?: any;\n}>`\n background: ${props => props.theme.colors.neutral08};\n border-radius: 100%;\n height: 20px;\n left: 0;\n margin-top: -10px;\n position: absolute;\n top: 50%;\n transition: left 0.25s;\n width: 20px;\n\n ${props =>\n props.isChecked &&\n css`\n left: 24px;\n `}\n`;\n\nconst IconContainer = styled.span<{ disabled?: boolean; theme?: any }>`\n color: ${props =>\n props.disabled\n ? props.theme.colors.neutral05\n : props.theme.colors.neutral08};\n left: ${props => props.theme.spaceScale.spacing02};\n position: absolute;\n top: ${props => props.theme.spaceScale.spacing01};\n\n svg {\n display: block;\n }\n`;\n\nconst SpanTextLeft = styled.span`\n padding-right: 10px;\n`;\n\nconst SpanTextRight = styled.span`\n padding-left: 10px;\n`;\n\nconst renderLabelText = (\n isTextVisuallyHidden: boolean,\n labelText: React.ReactNode,\n textPosition: ToggleTextPosition,\n labelStyle: React.CSSProperties\n) => {\n if (isTextVisuallyHidden) {\n return <HiddenLabelText>{labelText}</HiddenLabelText>;\n }\n\n return textPosition === ToggleTextPosition.left ? (\n <SpanTextLeft style={labelStyle}>{labelText}</SpanTextLeft>\n ) : (\n <SpanTextRight style={labelStyle}>{labelText}</SpanTextRight>\n );\n};\n\nexport const Toggle = React.forwardRef<HTMLInputElement, ToggleProps>(\n (props, ref) => {\n const {\n containerStyle,\n checked,\n defaultChecked,\n disabled,\n errorMessage,\n id: defaultId,\n isTextVisuallyHidden,\n labelStyle,\n labelText,\n onChange,\n textPosition,\n testId,\n trackStyle,\n thumbStyle,\n ...other\n } = props;\n const [isChecked, updateIsChecked] = React.useState(\n Boolean(defaultChecked) || Boolean(checked)\n );\n\n const id = useGenerateId(defaultId);\n const isControlled = typeof checked === 'boolean' ? true : false;\n\n React.useEffect(() => {\n if (typeof checked === 'boolean') {\n updateIsChecked(checked);\n }\n }, [checked]);\n\n function handleChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { checked: targetChecked } = event.target;\n\n onChange && typeof onChange === 'function' && onChange(event);\n\n if (!isControlled) {\n updateIsChecked(targetChecked);\n }\n }\n\n const theme = React.useContext(ThemeContext);\n const context = React.useContext(FormGroupContext);\n\n const descriptionId = errorMessage ? `${id}__desc` : null;\n const groupDescriptionId = context.descriptionId;\n\n const describedBy =\n descriptionId && groupDescriptionId\n ? `${groupDescriptionId} ${descriptionId}`\n : descriptionId\n ? descriptionId\n : groupDescriptionId\n ? groupDescriptionId\n : null;\n\n const hasError = context.hasError || !!errorMessage;\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <>\n <StyledContainer>\n <HiddenInput\n {...other}\n aria-checked={isChecked}\n aria-describedby={describedBy}\n id={id}\n data-testid={testId}\n disabled={disabled}\n checked={isChecked}\n type=\"checkbox\"\n onChange={handleChange}\n ref={ref}\n role=\"switch\"\n />\n <StyledLabel\n htmlFor={id}\n isInverse={isInverse}\n style={containerStyle}\n >\n {textPosition !== ToggleTextPosition.right &&\n renderLabelText(\n isTextVisuallyHidden,\n labelText,\n ToggleTextPosition.left,\n labelStyle\n )}\n <Track\n isChecked={isChecked}\n data-testid=\"toggle-track\"\n disabled={disabled}\n hasError={hasError}\n isInverse={isInverse}\n style={trackStyle}\n theme={theme}\n >\n <IconContainer disabled={disabled} theme={theme}>\n <CheckIcon size={theme.iconSizes.xSmall} />\n </IconContainer>\n <Thumb\n isChecked={isChecked}\n disabled={disabled}\n style={thumbStyle}\n theme={theme}\n />\n </Track>\n {textPosition === ToggleTextPosition.right &&\n renderLabelText(\n isTextVisuallyHidden,\n labelText,\n ToggleTextPosition.right,\n labelStyle\n )}\n </StyledLabel>\n </StyledContainer>\n {!!errorMessage && (\n <InputMessage id={descriptionId} hasError isInverse={isInverse}>\n {errorMessage}\n </InputMessage>\n )}\n </>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport {\n inputBaseStyles,\n InputBaseStylesProps,\n InputWrapperStylesProps,\n inputWrapperStyles,\n} from '../InputBase';\nimport {\n FormFieldContainer,\n FormFieldContainerBaseProps,\n} from '../FormFieldContainer';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useGenerateId, Omit } from '../../utils';\nimport { useIsInverse } from '../../inverse';\n\nexport interface TextareaProps\n extends Omit<FormFieldContainerBaseProps, 'inputSize' | 'fieldId'>,\n React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n /**\n * Style properties for the component container element\n */\n containerStyle?: React.CSSProperties;\n isInverse?: boolean;\n testId?: string;\n /**\n * Style properties for the textarea element\n */\n textareaStyle?: React.CSSProperties;\n /**\n * Value for the textarea\n */\n value?: string | ReadonlyArray<string> | number;\n}\n\nconst StyledTextArea = styled.textarea<\n InputWrapperStylesProps & InputBaseStylesProps\n>`\n ${inputBaseStyles};\n ${inputWrapperStyles};\n height: 4.5em;\n padding: ${props =>\n `${props.theme.spaceScale.spacing02} ${props.theme.spaceScale.spacing03}`};\n`;\n\nexport const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n (props, ref) => {\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n id: defaultId,\n isLabelVisuallyHidden,\n labelStyle,\n labelText,\n messageStyle,\n testId,\n textareaStyle,\n ...other\n } = props;\n\n const theme = React.useContext(ThemeContext);\n\n const id = useGenerateId(defaultId);\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n const [value, setValue] = React.useState<\n string | ReadonlyArray<string> | number\n >(props.defaultValue || props.value || '');\n\n React.useEffect(() => {\n if (props.value) {\n setValue(props.value);\n }\n }, [props.value]);\n function handleChange(event: React.ChangeEvent<HTMLTextAreaElement>) {\n props.onChange &&\n typeof props.onChange === 'function' &&\n props.onChange(event);\n\n setValue(event.target.value);\n }\n\n const isInverse = useIsInverse(props.isInverse);\n\n return (\n <FormFieldContainer\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n helperMessage={helperMessage}\n isLabelVisuallyHidden={isLabelVisuallyHidden}\n isInverse={isInverse}\n labelStyle={labelStyle}\n labelText={labelText}\n >\n <StyledTextArea\n {...other}\n aria-describedby={\n descriptionId ? descriptionId : props['aria-describedby']\n }\n aria-invalid={!!errorMessage}\n data-testid={testId}\n hasError={!!errorMessage}\n id={id}\n isInverse={isInverse}\n onChange={handleChange}\n ref={ref}\n style={textareaStyle}\n theme={theme}\n value={value}\n width='100%'\n />\n </FormFieldContainer>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '@emotion/styled';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\n\ninterface AmPmToggleProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n children: string;\n}\n\nconst StyledAmPmToggle = styled.button<{ theme: ThemeInterface }>`\n background: none;\n border: 0;\n border-radius: 3px;\n margin-left: 3px;\n padding: 0 3px;\n\n &:focus {\n outline: 0;\n background: ${props => props.theme.colors.foundation};\n color: ${props => props.theme.colors.neutral08};\n }\n`;\n\nexport const AmPmToggle = React.forwardRef<HTMLButtonElement, AmPmToggleProps>(\n (props, ref) => {\n const { children, ...other } = props;\n const theme = React.useContext(ThemeContext);\n\n return (\n <StyledAmPmToggle\n {...other}\n data-testid=\"amPmTimeButton\"\n ref={ref}\n theme={theme}\n type=\"button\"\n >\n {children}\n </StyledAmPmToggle>\n );\n }\n);\n","import * as React from 'react';\nimport { useGenerateId, Omit } from '../../utils';\nimport { FormFieldContainerBaseProps } from '../FormFieldContainer';\n\nimport { enUS } from 'date-fns/locale';\nimport { I18nContext } from '../../i18n';\n\nexport interface UseTimePickerProps\n extends Omit<FormFieldContainerBaseProps, 'inputSize' | 'fieldId'> {\n /**\n * ID of the hidden input that stores the time value. Also the prefix for other fields.\n */\n id?: string;\n /**\n * Style properties for the outer input\n */\n inputStyle?: React.CSSProperties;\n isInverse?: boolean;\n /**\n * Style properties for the label\n */\n minutesStep?: number;\n /**\n * Full time value passed in and converted to use in hour, minute, and AM/PM fields\n */\n value?: string;\n /**\n * Function called when the component is changed to a new time\n */\n onChange?: (value: string) => void;\n}\n\nexport function useTimePicker(props: UseTimePickerProps) {\n const { errorMessage, helperMessage, onChange } = props;\n const i18n = React.useContext(I18nContext);\n\n const locale = i18n.locale || enUS;\n const am = locale.localize.dayPeriod('am', { width: 'abbreviated' });\n const pm = locale.localize.dayPeriod('pm', { width: 'abbreviated' });\n\n const [hour, setHour] = React.useState<string>('');\n const [minute, setMinute] = React.useState<string>('');\n const [amPm, setAmPm] = React.useState<string>(am);\n const [time, setTime] = React.useState<string>('');\n const hourRef = React.useRef<HTMLInputElement>();\n const minuteRef = React.useRef<HTMLInputElement>();\n const amPmRef = React.useRef<HTMLButtonElement>();\n const id = useGenerateId(props.id);\n\n React.useEffect(() => {\n if (validTime(props.value)) {\n convertPassedInTime(props.value);\n }\n }, [props.value]);\n\n const hourId = `${id}__hour`;\n const minuteId = `${id}__minute`;\n const descriptionId = errorMessage || helperMessage ? `${id}__desc` : null;\n\n function updateTime(newTime: string) {\n setTime(newTime);\n onChange && typeof onChange === 'function' && onChange(newTime);\n }\n\n function validTime(passedInTime: string) {\n const amPmRegex = `${am}|${am.toLowerCase()}|${pm}|${pm.toLowerCase()}`;\n const timeRegex = new RegExp(\n `^([01]?[0-9]|2[0-3]):[0-5][0-9]( (${amPmRegex}))?$`,\n 'g'\n );\n return timeRegex.test(passedInTime);\n }\n\n function convertPassedInTime(passedInTime: string) {\n const [timeHour, timeMinuteAndAmPm] = passedInTime.split(':');\n const timeMinute = timeMinuteAndAmPm.substring(0, 2);\n\n const timeAmPm =\n Number(timeHour) > 12\n ? pm\n : timeMinuteAndAmPm.length > 2\n ? timeMinuteAndAmPm.split(' ')[1].toUpperCase()\n : am;\n\n setHour(calculateHour(Number(timeHour)));\n setMinute(timeMinute);\n setAmPm(timeAmPm);\n updateTime(`${timeHour}:${timeMinute} ${timeAmPm}`);\n }\n\n function calculateHour(newHour: number): string {\n if (newHour < 10) {\n return `0${newHour}`;\n } else if (newHour > 12) {\n return `0${newHour.toString().substring(0, 1)}`;\n }\n\n return newHour.toString();\n }\n\n function calculateMinute(newMinute: number): string {\n if (newMinute === 0) {\n return `00`;\n } else if (newMinute < 10) {\n return `0${newMinute}`;\n } else if (newMinute > 59) {\n return `0${newMinute.toString().substring(0, 1)}`;\n }\n\n return newMinute.toString();\n }\n\n function handleHourChange(event: React.ChangeEvent<HTMLInputElement>) {\n const newHour = calculateHour(Number(event.target.value));\n\n setHour(newHour);\n updateTime(`${newHour}:${minute} ${amPm}`);\n }\n\n function handleMinuteChange(event: React.ChangeEvent<HTMLInputElement>) {\n const newMinute = calculateMinute(Number(event.target.value));\n\n setMinute(newMinute);\n updateTime(`${hour}:${newMinute} ${amPm}`);\n }\n\n function toggleAmPm() {\n const newAmPm = amPm === am ? pm : am;\n\n setAmPm(newAmPm);\n updateTime(`${hour}:${minute} ${newAmPm}`);\n }\n\n function handleHourKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Backspace') {\n setHour('');\n }\n\n if (event.key === 'ArrowRight') {\n minuteRef.current.focus();\n }\n }\n\n function handleMinuteKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'Backspace') {\n setMinute('');\n }\n\n if (event.key === 'ArrowLeft') {\n hourRef.current.focus();\n }\n\n if (event.key === 'ArrowRight') {\n amPmRef.current.focus();\n }\n }\n\n function handleAmPmKeyDown(event: React.KeyboardEvent) {\n if (event.key === 'ArrowLeft') {\n minuteRef.current.focus();\n }\n\n if (\n event.key === 'ArrowUp' ||\n event.key === 'ArrowDown' ||\n ((event.key === 'A' || event.key === 'a') && amPm === pm) ||\n ((event.key === 'P' || event.key === 'p') && amPm === am)\n ) {\n event.preventDefault();\n toggleAmPm();\n }\n }\n\n return {\n amPm,\n am,\n amPmRef,\n toggleAmPm,\n id,\n time,\n hour,\n hourId,\n hourRef,\n minute,\n minuteId,\n minuteRef,\n descriptionId,\n handleHourChange,\n handleMinuteChange,\n handleHourKeyDown,\n handleMinuteKeyDown,\n handleAmPmKeyDown,\n };\n}\n\nexport type UseTimePickerReturn = ReturnType<typeof useTimePicker>;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { Announce } from '../Announce';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { AmPmToggle } from './AmPmToggle';\nimport { ScheduleIcon } from 'react-magma-icons';\nimport { useTimePicker, UseTimePickerProps } from './useTimePicker';\n\nimport { I18nContext } from '../../i18n';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { useIsInverse } from '../../inverse';\nimport { FormFieldContainer } from '../FormFieldContainer';\nimport { inputWrapperStyles } from '../InputBase';\n\nexport interface TimePickerProps extends UseTimePickerProps {\n /**\n * Style properties for the outer input\n */\n inputStyle?: React.CSSProperties;\n}\n\nconst InputsContainer = styled.div<{\n hasError?: boolean;\n isInverse?: boolean;\n}>`\n ${inputWrapperStyles};\n height: ${props => props.theme.spaceScale.spacing09};\n padding: ${props => props.theme.spaceScale.spacing03};\n width: 144px;\n`;\n\nconst Divider = styled.span`\n display: inline-block;\n margin: 0 1px;\n position: relative;\n top: -1px;\n`;\n\nconst StyledNumInput = styled.input`\n border: 0;\n border-radius: ${props => props.theme.borderRadius};\n margin-right: ${props => props.theme.spaceScale.spacing01};\n padding: 0 ${props => props.theme.spaceScale.spacing01};\n text-align: right;\n width: ${props => props.theme.spaceScale.spacing06};\n\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n }\n\n -moz-appearance: textfield;\n\n &:focus {\n outline: 0;\n background: ${props => props.theme.colors.foundation02};\n color: ${props => props.theme.colors.neutral08};\n }\n`;\n\nexport const TimePicker = React.forwardRef<HTMLInputElement, TimePickerProps>(\n (props, ref) => {\n const theme = React.useContext(ThemeContext);\n const i18n = React.useContext(I18nContext);\n\n const {\n containerStyle,\n errorMessage,\n helperMessage,\n inputStyle,\n labelStyle,\n labelText,\n minutesStep,\n onChange,\n ...other\n } = props;\n\n const isInverse = useIsInverse(props.isInverse);\n\n const {\n am,\n amPm,\n amPmRef,\n descriptionId,\n hour,\n hourId,\n hourRef,\n id,\n time,\n minute,\n minuteId,\n minuteRef,\n toggleAmPm,\n handleHourChange,\n handleMinuteChange,\n handleHourKeyDown,\n handleMinuteKeyDown,\n handleAmPmKeyDown,\n } = useTimePicker(props);\n\n const hoursLabel = `${labelText}, ${i18n.timePicker.hoursAriaLabel}`;\n const minutesLabel = `${labelText}, ${i18n.timePicker.minutesAriaLabel}`;\n const amPmLabel = `${labelText}, ${\n amPm === am\n ? i18n.timePicker.amButtonAriaLabel\n : i18n.timePicker.pmButtonAriaLabel\n }`;\n\n return (\n <FormFieldContainer\n {...other}\n containerStyle={containerStyle}\n errorMessage={errorMessage}\n fieldId={id}\n helperMessage={helperMessage}\n isInverse={isInverse}\n labelText={labelText}\n >\n <InputsContainer\n isInverse={isInverse}\n hasError={!!errorMessage}\n theme={theme}\n >\n <ScheduleIcon\n color={theme.colors.neutral}\n style={{ marginRight: theme.spaceScale.spacing02 }}\n />\n <StyledNumInput\n aria-label={hoursLabel}\n aria-describedby={descriptionId}\n data-testid=\"hoursTimeInput\"\n id={hourId}\n maxLength={2}\n max=\"12\"\n min=\"1\"\n onChange={handleHourChange}\n onKeyDown={handleHourKeyDown}\n placeholder=\"--\"\n ref={hourRef}\n theme={theme}\n type=\"number\"\n value={hour}\n />\n <Divider> : </Divider>\n <StyledNumInput\n aria-label={minutesLabel}\n data-testid=\"minutesTimeInput\"\n id={minuteId}\n maxLength={2}\n max=\"59\"\n min=\"0\"\n onChange={handleMinuteChange}\n onKeyDown={handleMinuteKeyDown}\n placeholder=\"--\"\n ref={minuteRef}\n step={minutesStep || 1}\n theme={theme}\n type=\"number\"\n value={minute}\n />\n <AmPmToggle\n aria-label={amPmLabel}\n ref={amPmRef}\n onClick={toggleAmPm}\n onKeyDown={handleAmPmKeyDown}\n >\n {amPm}\n </AmPmToggle>\n <VisuallyHidden>\n <Announce>\n {amPm === am\n ? i18n.timePicker.amSelectedAnnounce\n : i18n.timePicker.pmSelectedAnnounce}\n </Announce>\n </VisuallyHidden>\n </InputsContainer>\n <input id={id} ref={ref} type=\"hidden\" value={time} />\n </FormFieldContainer>\n );\n }\n);\n","import * as React from 'react';\nimport { Global, css } from '@emotion/core';\nimport { ThemeContext } from '../ThemeContext';\nimport { useIsInverse } from '../../inverse';\n\nfunction getStyles(theme, isInverse: boolean) {\n return css`\n @import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&display=swap');\n @import url('https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap');\n\n *,\n *:before,\n *:after {\n box-sizing: border-box;\n }\n\n *:focus {\n outline: 2px dotted\n ${isInverse ? theme.colors.focusInverse : theme.colors.focus};\n outline-offset: 4px;\n }\n\n html {\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n font-size: ${theme.typeScale.size03.fontSize};\n line-height: ${theme.typeScale.size03.lineHeight};\n scroll-behavior: smooth;\n }\n\n html,\n body {\n background: ${isInverse\n ? theme.colors.foundation\n : theme.colors.neutral08};\n color: ${isInverse ? theme.colors.neutral08 : theme.colors.neutral};\n margin: 0;\n padding: 0;\n }\n\n body {\n font-family: ${theme.bodyFont};\n font-style: normal;\n font-weight: 400;\n font-size: ${theme.typeScale.size03.fontSize};\n line-height: ${theme.typeScale.size03.lineHeight};\n }\n\n a {\n color: ${isInverse ? theme.colors.neutral07 : theme.colors.primary};\n cursor: pointer;\n text-decoration: underline;\n\n &:hover,\n &:focus {\n color: ${isInverse ? theme.colors.neutral06 : theme.colors.focus};\n }\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n font: inherit;\n margin: 0;\n }\n\n svg:not(:root) {\n overflow: hidden;\n }\n `;\n}\n\nexport const GlobalStyles: React.FunctionComponent = () => {\n const isInverse = useIsInverse();\n return (\n <ThemeContext.Consumer>\n {theme => <Global styles={getStyles(theme, isInverse)} />}\n </ThemeContext.Consumer>\n );\n};\n","import React from 'react';\n\nexport function useMediaQuery(queryInput) {\n const query = queryInput.replace(/^@media( ?)/m, '');\n\n const supportMatchMedia =\n typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n\n const matchMedia = supportMatchMedia ? window.matchMedia : null;\n\n const [match, setMatch] = React.useState(() => {\n if (supportMatchMedia) {\n return matchMedia(query).matches;\n }\n\n return false;\n });\n\n React.useEffect(() => {\n let active = true;\n\n if (!supportMatchMedia) {\n return undefined;\n }\n\n const queryList = matchMedia(query);\n\n const updateMatch = () => {\n if (active) {\n setMatch(queryList.matches);\n }\n };\n\n updateMatch();\n queryList.addEventListener('change', updateMatch);\n\n return () => {\n active = false;\n queryList.removeEventListener('change', updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n\n return match;\n}\n","import * as React from 'react';\nimport { useDescendants } from '../../hooks/useDescendants';\n\nexport enum AccordionIconPosition {\n left = 'left',\n none = 'none',\n right = 'right', // default\n}\n\nexport interface UseAccordionProps {\n /**\n * Index of the accordion panel expanded by default. If multiple panels are allowed, takes an array.\n * @default null\n */\n defaultIndex?: number[] | number;\n /**\n * Position of the chevron icon. If 'none', the icon will not render at all.\n * @default AccordionIconPosition.right\n */\n iconPosition?: AccordionIconPosition;\n index?: number[] | number;\n isInverse?: boolean;\n /**\n * If true, multiple accordion items may be expanded at once\n * @default true\n */\n isMulti?: boolean;\n /**\n * Event that fires when an accordion button is clicked\n */\n onExpandedChange?: (event: any) => void;\n testId?: string;\n}\n\ninterface AccordionContextInterface {\n buttonRefArray?: React.MutableRefObject<React.MutableRefObject<Element>[]>;\n expandedIndex?: number[] | number;\n iconPosition?: AccordionIconPosition;\n isControlled?: boolean;\n isMulti?: boolean;\n onExpandedChange?: any;\n setExpandedIndex?: any;\n registerAccordionButton: (\n itemRefArray: React.MutableRefObject<React.MutableRefObject<Element>[]>,\n itemRef: React.MutableRefObject<Element>\n ) => void;\n}\n\nexport const AccordionContext = React.createContext<AccordionContextInterface>({\n isControlled: false,\n iconPosition: AccordionIconPosition.right,\n isMulti: false,\n registerAccordionButton: (elements, element) => {},\n});\n\nexport function useAccordion(props: UseAccordionProps) {\n const {\n isMulti = true,\n defaultIndex = isMulti ? [] : null,\n index,\n iconPosition = AccordionIconPosition.right,\n onExpandedChange,\n } = props;\n\n const isControlled = typeof index !== 'undefined';\n\n const indexProp = isControlled ? index : defaultIndex;\n\n const [expandedIndex, setExpandedIndex] = React.useState(indexProp);\n\n React.useEffect(() => {\n if (isControlled) {\n setExpandedIndex(index);\n }\n }, [index]);\n\n const [buttonRefArray, registerAccordionButton] = useDescendants();\n\n const contextValue = {\n buttonRefArray,\n expandedIndex,\n iconPosition,\n isControlled,\n isMulti,\n onExpandedChange,\n registerAccordionButton,\n setExpandedIndex,\n };\n\n return {\n contextValue,\n };\n}\n\nexport type UseAccordionReturn = ReturnType<typeof useAccordion>;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { InverseContext, useIsInverse } from '../../inverse';\nimport {\n UseAccordionProps,\n AccordionContext,\n useAccordion,\n} from './useAccordion';\nimport { ThemeInterface } from '../../theme/magma';\n\n/**\n * @children required\n */\ninterface BaseAccordionProps\n extends UseAccordionProps,\n React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nexport interface AccordionMultipleProps extends BaseAccordionProps {\n /**\n * Zero-based indices of item to expanded initially. When isMulti is true this is an array of numbers.\n * @default []\n */\n defaultIndex?: number[];\n /**\n * Not used in uncontrolled accordion\n */\n index?: never;\n /**\n * If true, multiple accordion items may be expanded at once\n */\n isMulti: true;\n}\n\nexport interface AccordionSingleProps\n extends UseAccordionProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * Zero-based index of item to expanded initially. When isMulti is a false this is a number.\n * @default null\n */\n defaultIndex?: number;\n /**\n * Not used in uncontrolled accordion\n */\n index?: never;\n /**\n * If true, multiple accordion items may be expanded at once\n */\n isMulti: false;\n}\n\nexport interface AccordionMultipleControlledProps\n extends UseAccordionProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * Zero-based indices of expanded items. When isMulti is true this is an array of numbers.\n * @default []\n */\n index?: number[];\n /**\n * Not used in controlled accordion\n */\n defaultIndex?: never;\n isMulti?: true;\n}\n\nexport interface AccordionSingleControlledProps\n extends UseAccordionProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * Zero-based index of expanded item. When isMulti is a false this is a number.\n * @default null\n */\n index?: number;\n /**\n * Not used in controlled accordion\n */\n defaultIndex?: never;\n isMulti: false;\n}\n\nexport type AccordionProps =\n | AccordionMultipleProps\n | AccordionSingleProps\n | AccordionMultipleControlledProps\n | AccordionSingleControlledProps;\n\nconst StyledAccordion = styled.div<AccordionProps>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n border-bottom: 1px solid ${props => props.theme.colors.neutral06};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n`;\n\nexport const Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n (props, ref) => {\n const {\n children,\n isInverse: isInverseProp,\n onExpandedChange,\n testId,\n ...rest\n } = props;\n\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n const { contextValue } = useAccordion(props);\n\n return (\n <InverseContext.Provider value={{ isInverse }}>\n <AccordionContext.Provider value={contextValue}>\n <StyledAccordion\n {...rest}\n data-testid={testId}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n >\n {React.Children.map(\n children,\n (child: React.ReactElement<any>, index) => {\n return React.cloneElement(child, { index, key: index });\n }\n )}\n </StyledAccordion>\n </AccordionContext.Provider>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\n\nimport { AccordionContext } from './useAccordion';\nimport { useGenerateId } from '../../utils';\n\nexport interface UseAccordionItemProps {\n /**\n * @internal\n */\n index?: number;\n isDisabled?: boolean;\n testId?: string;\n}\n\ninterface AccordionItemContextInterface {\n buttonId?: string;\n index?: number;\n isDisabled?: boolean;\n isExpanded?: boolean;\n panelId?: string;\n setIsExpanded?: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const AccordionItemContext = React.createContext<AccordionItemContextInterface>(\n {\n isDisabled: false,\n isExpanded: false,\n setIsExpanded: () => {},\n }\n);\n\nexport function useAccordionItem(props: UseAccordionItemProps) {\n const { index, isDisabled } = props;\n\n const [isExpanded, setIsExpanded] = React.useState<boolean>(false);\n const { expandedIndex, isMulti } = React.useContext(AccordionContext);\n\n const idPrefix = useGenerateId();\n\n const buttonId = `${idPrefix}_btn`;\n const panelId = `${idPrefix}_panel`;\n\n React.useEffect(() => {\n const newIsExpanded = isMulti\n ? Array.isArray(expandedIndex) && expandedIndex.includes(index) \n : expandedIndex == index;\n \n setIsExpanded(newIsExpanded);\n });\n\n const contextValue = {\n buttonId,\n index,\n isDisabled,\n isExpanded,\n panelId,\n setIsExpanded,\n };\n\n return {\n contextValue,\n };\n}\n\nexport type UseAccordionItemReturn = ReturnType<typeof useAccordionItem>;\n","import * as React from 'react';\nimport {\n AccordionItemContext,\n UseAccordionItemProps,\n useAccordionItem,\n} from './useAccordionItem';\nimport { ThemeInterface } from '../../theme/magma';\nimport styled from '../../theme/styled';\n\n/**\n * @children required\n */\nexport interface AccordionItemProps\n extends UseAccordionItemProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nconst StyledItem = styled.div`\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n background: none;\n color: inherit;\n font: inherit;\n line-height: inherit;\n margin: 0;\n padding: 0;\n }\n`;\n\nexport const AccordionItem = React.forwardRef<\n HTMLDivElement,\n AccordionItemProps\n>((props, ref) => {\n const { children, testId, ...rest } = props;\n\n const { contextValue } = useAccordionItem(props);\n\n return (\n <AccordionItemContext.Provider value={contextValue}>\n <StyledItem ref={ref} data-testid={testId} {...rest}>\n {children}\n </StyledItem>\n </AccordionItemContext.Provider>\n );\n});\n","import * as React from 'react';\n\nimport { AccordionContext } from './useAccordion';\nimport { AccordionItemContext } from './useAccordionItem';\nimport { useForceUpdate } from '../../hooks/useForceUpdate';\nimport { useForkedRef } from '../../utils';\n\nexport interface UseAccordionButtonProps {\n testId?: string;\n isInverse?: boolean;\n}\n\nexport function useAccordionButton(\n props: UseAccordionButtonProps,\n forwardedRef\n) {\n const {\n buttonRefArray,\n expandedIndex,\n iconPosition,\n isControlled,\n isMulti,\n registerAccordionButton,\n onExpandedChange,\n setExpandedIndex,\n } = React.useContext(AccordionContext);\n\n const { buttonId, index, isDisabled, isExpanded, panelId } = React.useContext(\n AccordionItemContext\n );\n\n const handleClick = () => {\n typeof onExpandedChange === 'function' && onExpandedChange(index);\n\n if (!isControlled) {\n isMulti && Array.isArray(expandedIndex)\n ? isExpanded\n ? setExpandedIndex(expandedIndex.filter(item => item !== index))\n : setExpandedIndex(expandedIndex.concat([index]))\n : isExpanded\n ? setExpandedIndex(null)\n : setExpandedIndex(index);\n }\n };\n\n const focusFirst = () => {\n (buttonRefArray.current[0].current as HTMLButtonElement).focus();\n };\n\n const focusNext = () => {\n (buttonRefArray.current[index + 1].current as HTMLButtonElement).focus();\n };\n\n const focusPrev = () => {\n (buttonRefArray.current[index - 1].current as HTMLButtonElement).focus();\n };\n\n const focusLast = () => {\n const arrLength = buttonRefArray.current.length;\n (buttonRefArray.current[arrLength - 1]\n .current as HTMLButtonElement).focus();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const arrLength = buttonRefArray.current.length;\n\n switch (event.key) {\n case 'ArrowDown': {\n index === arrLength - 1 ? focusFirst() : focusNext();\n break;\n }\n case 'ArrowUp': {\n index === 0 ? focusLast() : focusPrev();\n break;\n }\n case 'Home': {\n focusFirst();\n break;\n }\n case 'End': {\n focusLast();\n break;\n }\n default:\n return;\n }\n };\n\n const ownRef = React.useRef<HTMLDivElement>();\n const forceUpdate = useForceUpdate();\n\n const ref = useForkedRef(forwardedRef, ownRef);\n\n React.useEffect(() => {\n if (!isDisabled) {\n registerAccordionButton(buttonRefArray, ownRef);\n }\n\n forceUpdate();\n }, []);\n\n return {\n buttonId,\n handleClick,\n handleKeyDown,\n iconPosition,\n index,\n isDisabled,\n isExpanded,\n panelId,\n ref,\n };\n}\n\nexport type UseAccordionButtonReturn = ReturnType<typeof useAccordionButton>;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\nimport { AccordionIconPosition } from './useAccordion';\nimport { Spacer } from '../Spacer';\nimport { ExpandMoreIcon } from 'react-magma-icons';\nimport {\n useAccordionButton,\n UseAccordionButtonProps,\n} from './useAccordionButton';\nimport { Transition } from '../Transition';\n\n/**\n * @children required\n */\nexport interface AccordionButtonProps\n extends UseAccordionButtonProps,\n React.HTMLAttributes<HTMLButtonElement> {\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nconst StyledButton = styled.button<{\n isInverse?: boolean;\n isExpanded?: boolean;\n}>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n border: 0;\n border-top: 1px solid ${props =>\n props.isInverse ? props.theme.colors.tint04 : props.theme.colors.neutral06};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n cursor: pointer;\n display: flex;\n font-size: ${props => props.theme.typeScale.size03.fontSize};\n line-height: ${props => props.theme.typeScale.size03.lineHeight};\n font-weight: 600;\n padding: 12px 16px;\n text-align: left;\n width: 100%;\n\n &:focus {\n outline: 2px dotted ${props =>\n props.isInverse\n ? props.theme.colors.focusInverse\n : props.theme.colors.focus};\n }\n outline-offset: -3px;\n }\n\n &&[disabled] {\n color: ${props =>\n props.isInverse\n ? props.theme.colors.disabledInverseText\n : props.theme.colors.disabledText};\n cursor: not-allowed;\n }\n`;\n\nconst TextWrapper = styled.span`\n flex-grow: 1;\n`;\n\nexport const AccordionButton = React.forwardRef<\n HTMLButtonElement,\n AccordionButtonProps\n>((props, forwardedRef) => {\n const { children, testId, isInverse: isInverseProp, ...rest } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n const {\n iconPosition,\n buttonId,\n isDisabled,\n isExpanded,\n panelId,\n handleClick,\n handleKeyDown,\n ref,\n } = useAccordionButton(props, forwardedRef);\n\n const caret = (\n <Transition\n isOpen={isExpanded}\n rotate180\n style={{ height: theme.spaceScale.spacing06 }}\n >\n <ExpandMoreIcon />\n </Transition>\n );\n\n return (\n <StyledButton\n {...rest}\n aria-controls={panelId}\n aria-expanded={Boolean(isExpanded)}\n data-testid={testId}\n disabled={isDisabled}\n id={buttonId}\n isExpanded={isExpanded}\n isInverse={isInverse}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={ref}\n theme={theme}\n >\n {iconPosition === AccordionIconPosition.left && (\n <>\n {caret}\n <Spacer size={12} />\n </>\n )}\n <TextWrapper>{children}</TextWrapper>\n {iconPosition === AccordionIconPosition.right && (\n <>\n <Spacer size={12} />\n {caret}\n </>\n )}\n </StyledButton>\n );\n});\n","import * as React from 'react';\nimport styled from '../../theme/styled';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { ThemeInterface } from '../../theme/magma';\nimport { useIsInverse } from '../../inverse';\nimport { AccordionItemContext } from './useAccordionItem';\nimport { Transition } from '../Transition';\n\n/**\n * @children required\n */\nexport interface AccordionPanelProps\n extends React.HTMLAttributes<HTMLDivElement> {\n testId?: string;\n isInverse?: boolean;\n /**\n * @internal\n */\n theme?: ThemeInterface;\n}\n\nconst StyledPanel = styled.div<AccordionPanelProps>`\n background: ${props =>\n props.isInverse\n ? props.theme.colors.foundation\n : props.theme.colors.neutral08};\n color: ${props =>\n props.isInverse\n ? props.theme.colors.neutral08\n : props.theme.colors.neutral};\n padding: ${props =>\n `${props.theme.spaceScale.spacing03} ${props.theme.spaceScale.spacing05} ${props.theme.spaceScale.spacing04}`};\n`;\n\nexport const AccordionPanel = React.forwardRef<\n HTMLDivElement,\n AccordionPanelProps\n>((props, ref) => {\n const { children, testId, isInverse: isInverseProp, ...rest } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n const { buttonId, isExpanded, panelId } =\n React.useContext(AccordionItemContext);\n\n return (\n <Transition isOpen={isExpanded} collapse unmountOnExit>\n <StyledPanel\n {...rest}\n aria-labelledby={buttonId}\n aria-hidden={!isExpanded}\n data-testid={testId}\n id={panelId}\n isInverse={isInverse}\n ref={ref}\n theme={theme}\n >\n {children}\n </StyledPanel>\n </Transition>\n );\n});\n","import * as React from 'react';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { Modal, ModalProps } from '../Modal';\nimport { TransitionProps } from '../Transition';\n\nexport enum DrawerPosition {\n top = 'top',\n bottom = 'bottom',\n left = 'left',\n right = 'right',\n}\n\nconst transitionPreset: {\n [key in DrawerPosition]: Omit<TransitionProps, 'isOpen'>;\n} = {\n top: { slideTop: true },\n bottom: { slideBottom: true },\n left: { slideLeft: true },\n right: { slideRight: true },\n};\n\n/**\n * @children required\n */\nexport interface DrawerProps extends Omit<ModalProps, 'size'> {\n testId?: string;\n /**\n * Style properties for the drawer\n */\n drawerStyle?: React.CSSProperties;\n /**\n * Style properties for the drawer container\n */\n containerStyle?: React.CSSProperties;\n /**\n * Set the position of the drawer\n */\n position?: DrawerPosition;\n}\n\nexport const Drawer = React.forwardRef<HTMLDivElement, DrawerProps>(\n (props, ref) => {\n const { style, containerStyle, position, ...rest } = props;\n const theme = React.useContext(ThemeContext);\n const drawerStyle = {\n ...theme.drawer.default,\n ...theme.drawer[DrawerPosition[position]],\n } as React.CSSProperties;\n return (\n <Modal\n containerStyle={{\n padding: '0',\n ...containerStyle,\n }}\n containerTransition={transitionPreset[DrawerPosition[position]]}\n style={{ ...drawerStyle, ...style }}\n {...rest}\n />\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport * as CSS from 'csstype';\n\nexport enum GridDisplay {\n grid = 'grid', // default\n inlineGrid = 'inline-grid',\n}\n\nexport enum GridJustifyItems {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n}\n\nexport enum GridJustifyContent {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n spaceAround = 'space-around',\n spaceBetween = 'space-between',\n spaceEvenly = 'space-evenly',\n}\n\nexport enum GridAlignItems {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n}\n\nexport enum GridAlignContent {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n spaceAround = 'space-around',\n spaceBetween = 'space-between',\n spaceEvenly = 'space-evenly',\n}\n\nexport enum GridItemJustifySelf {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n}\n\nexport enum GridItemAlignSelf {\n start = 'start',\n end = 'end',\n center = 'center',\n stretch = 'stretch',\n}\n\nexport enum GridAutoFlow {\n row = 'row',\n column = 'column',\n rowDense = 'row-dense',\n columnDense = 'column-dense',\n}\n\n/**\n * @children required\n */\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Defines the display style property. Sets grid or inline-grid.\n * @default GridDisplay.grid\n */\n gridDisplay?: GridDisplay;\n /**\n * Set the columns in the grid.\n */\n gridTemplateColumns?: CSS.Property.GridTemplateColumns;\n /**\n * Set the rows in the grid.\n */\n gridTemplateRows?: CSS.Property.GridTemplateRows;\n /**\n * Set the areas in the grid.\n */\n gridTemplateAreas?: CSS.Property.GridTemplateAreas;\n /**\n * Set the space between columns and / or rows in the grid.\n */\n gridGap?: CSS.Property.GridGap;\n /**\n * Align grid items along the inline (row) axis. Applies to all items in the grid.\n */\n gridJustifyItems?: GridJustifyItems;\n /**\n * Sets the alignment of the grid within the grid container along the inline row axis.\n */\n gridJustifyContent?: GridJustifyContent;\n /**\n * Align grid items along the block (column) axis. Applies to all items in the grid.\n */\n gridAlignItems?: GridAlignItems;\n /**\n * Sets the alignment of the grid within the grid container along the block (column) axis.\n */\n gridAlignContent?: GridAlignContent;\n /**\n * If you have grid items that you don’t explicitly place on the grid, the auto-placement algorithm kicks in to automatically place the items.\n */\n gridAutoFlow?: GridAutoFlow;\n}\n\n/**\n * @children required\n */\nexport interface GridItemProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Defines the span of a column on a grid item.\n */\n gridColumn?: CSS.Property.GridColumn;\n /**\n * Defines the span of a row on a grid item.\n */\n gridRow?: CSS.Property.GridRow;\n /**\n * Define which grid area a grid item belongs to.\n */\n gridArea?: CSS.Property.GridArea;\n /**\n * Aligns the grid item within the cell along the inline (row) axis. Applies to a grid item inside a single cell.\n */\n gridItemJustifySelf?: GridItemJustifySelf;\n /**\n * Aligns the grid item within the cell along the block (column) axis. Applies to a grid item inside a single cell.\n */\n gridItemAlignSelf?: GridItemAlignSelf;\n}\n\nexport const Grid = styled.div<GridProps>`\n ${props =>\n css({\n display: props.gridDisplay || GridDisplay.grid,\n 'grid-template-rows': props.gridTemplateRows,\n 'grid-template-columns': props.gridTemplateColumns,\n 'grid-areas': props.gridTemplateAreas,\n 'grid-gap': props.gridGap,\n 'justify-items': props.gridJustifyItems,\n 'justify-content': props.gridJustifyContent,\n 'align-items': props.gridAlignItems,\n 'align-content': props.gridAlignContent,\n 'grid-auto-flow': props.gridAutoFlow,\n })}\n`;\n\nexport const GridItem = styled.div<GridItemProps>`\n ${props =>\n css({\n 'grid-column': props.gridColumn,\n 'grid-row': props.gridRow,\n 'grid-area': props.gridArea,\n 'justify-self': props.gridItemJustifySelf,\n 'align-self': props.gridItemAlignSelf,\n })}\n`;\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\n\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { magma, ThemeInterface } from '../../theme/magma';\nimport { InverseContext, useIsInverse } from '../../inverse';\n\n/**\n * @children required\n */\nexport interface BlockQuoteProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Style properties for the left border color which accept custom CSS hex values.\n */\n borderStyle?: keyof typeof magma.colors | string;\n isInverse?: boolean;\n /**\n * @internal\n */\n testId?: string;\n theme?: ThemeInterface;\n}\n\nconst BlockQuoteStyles = props => css`\n border-left: 4px solid\n ${props.isInverse\n ? props.borderStyle || props.theme.colors.neutral08\n : props.borderStyle || props.theme.colors.neutral06};\n padding: 10px 0 4px 20px;\n margin: 0;\n`;\n\nconst StyledBlockQuote = styled.figure<BlockQuoteProps>`\n ${BlockQuoteStyles};\n`;\n\nexport const BlockQuote = React.forwardRef<HTMLDivElement, BlockQuoteProps>(\n (props, ref) => {\n const {\n borderStyle,\n children,\n testId,\n isInverse: isInverseProp,\n ...rest\n } = props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse(isInverseProp);\n\n return (\n <InverseContext.Provider value={{ isInverse }}>\n <StyledBlockQuote\n borderStyle={magma.colors[borderStyle] || borderStyle}\n theme={theme}\n isInverse={isInverse}\n ref={ref}\n data-testid={props.testId}\n {...rest}\n >\n {children}\n </StyledBlockQuote>\n </InverseContext.Provider>\n );\n }\n);\n","import * as React from 'react';\nimport styled from '../../theme/styled';\nimport { css } from '@emotion/core';\nimport { ThemeContext } from '../../theme/ThemeContext';\nimport { useIsInverse } from '../../inverse';\nimport { BlockQuoteProps } from '.';\nimport {\n TypographyVisualStyle,\n TypographyColor,\n TypographyContextVariant,\n TypographyComponent,\n} from '../Typography';\n/**\n * @children required\n */\nexport interface BlockQuoteItemProps\n extends BlockQuoteProps,\n React.HTMLAttributes<HTMLDivElement> {\n /**\n * The color of the component, helping to convey meaning or relative emphasis\n * @default TypographyColor.default\n */\n color?: TypographyColor;\n /**\n * Additional styles for typography based on the context of the content\n * @default TypographyContextVariant.default\n */\n contextVariant?: TypographyContextVariant;\n /**\n * If true, adds in an attribution line for the quote\n * @default false\n */\n hasAttribution?: boolean;\n isInverse?: boolean;\n testId?: string;\n /**\n * Applies visual styles including font-size, font-weight, line-height and margins\n * @default TypographyVisualStyle.bodyMedium\n */\n visualStyle?: TypographyVisualStyle;\n}\n\nexport const blockQuoteStyles = props => css`\n margin: 0;\n padding: 8px 0;\n blockquote {\n margin: 0;\n }\n //Inverse\n ${props.isInverse &&\n css`\n color: ${props.theme.colors.neutral08};\n `}\n //Inverse & Attribution\n ${props.isInverse &&\n props.hasAttribution &&\n css`\n color: ${props.theme.colors.neutral05};\n `}\n`;\n\nconst StyledBlockQuoteItem = styled(TypographyComponent)`\n ${blockQuoteStyles}\n`;\n\nexport const BlockQuoteItem = React.forwardRef<\n HTMLDivElement,\n BlockQuoteItemProps\n>((props, ref) => {\n const { children, color, hasAttribution, testId, visualStyle, ...rest } =\n props;\n const theme = React.useContext(ThemeContext);\n const isInverse = useIsInverse();\n\n return (\n <StyledBlockQuoteItem\n as={hasAttribution ? 'figcaption' : 'blockquote'}\n color={\n hasAttribution\n ? color || TypographyColor.subdued\n : color || TypographyColor.default\n }\n theme={theme}\n hasAttribution={hasAttribution}\n isInverse={isInverse}\n ref={ref}\n data-testid={props.testId}\n visualStyle={\n hasAttribution\n ? visualStyle || TypographyVisualStyle.bodyMedium\n : visualStyle || TypographyVisualStyle.bodyLarge\n }\n {...rest}\n >\n {hasAttribution ? (\n <>\n &#x02015;&nbsp;\n {children}\n </>\n ) : (\n <>\n &ldquo;\n {children}\n &rdquo;\n </>\n )}\n </StyledBlockQuoteItem>\n );\n});\n"],"names":["transitions","fade","motion","exit","opacity","transition","duration","ease","enter","baseStyle","slideTop","y","type","damping","stiffness","position","top","right","left","slideBottom","bottom","slideRight","x","slideLeft","nudgeTop","nudgeBottom","nudgeRight","nudgeLeft","scale","rotate45","rotate","rotate90","rotate180","collapse","height","overflow","typeScale","size01","fontSize","letterSpacing","lineHeight","size02","size03","size04","size05","size06","size07","size08","size09","size10","size11","size12","size13","colors","primary","primaryInverse","focus","focusInverse","foundation","foundation02","foundation03","foundation04","pop","pop02","pop03","pop04","pop05","pop06","success","success02","successInverse","danger","dangerInverse","neutral","neutral02","neutral03","neutral04","neutral05","neutral06","neutral07","neutral08","disabledText","disabledInverseText","toggleBoxShadow","shade","shade02","tint","tint02","tint03","tint04","tone","tone02","border","borderInverse","spaceScale","spacing01","spacing02","spacing03","spacing04","spacing05","spacing06","spacing07","spacing08","spacing09","spacing10","spacing11","spacing12","spacing13","spacing14","magma","bodyFont","bodyExpressiveFont","bodyNarrativeFont","borderRadius","headingFont","headingExpressiveFont","headingNarrativeFont","direction","spacingMultiplier","breakpoints","xs","small","medium","large","xl","iconSizes","xSmall","xLarge","typographyVisualStyles","headingXLarge","mobile","desktop","fontWeight","headingLarge","headingMedium","headingSmall","headingXSmall","heading2XSmall","bodyLarge","bodyMedium","bodySmall","bodyXSmall","typographyExpressiveVisualStyles","typographyNarrativeVisualStyles","appBar","backgroundColor","padding","textColor","compact","inverse","combobox","menu","maxHeight","modal","width","drawer","maxWidth","minHeight","margin","dropdown","content","iterableColors","tabs","approxTabSize","horizontal","vertical","select","tag","display","alignItems","justifyContent","tooltip","arrowSize","arrowSizeDoubled","zIndex","ThemeContext","React","DEFAULT_STYLE_PROPS","color","shape","size","textTransform","variant","buildPropsWithDefaultButtonStyles","props","buildButtonBorderRadius","theme","buildButtonFontSize","buildButtonLineHeight","buildButtonSize","buildButtonPadding","buildButtonBackground","disabled","isInverse","buildBorderColor","buildColor","buildFocusBackground","lighten","darken","buildFocusColor","buildAfterBackground","buildActiveBackground","buildActiveColor","defaultI18n","locale","dateFormat","timeFormat","example","months","january","february","march","april","may","june","july","august","september","october","november","december","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","min","emptyItemsListText","alert","dismissAriaLabel","breadcrumb","navAriaLabel","charts","line","chartTabLabel","dataLegendsLabel","dataTabLabel","keyboardInstructions","keyboardInstructionsHeader","keyboardInstructionsTooltip","legendButtonAriaLabel","clearIndicatorAriaLabel","createLabel","datePicker","startOfWeek","calendarIconAriaLabel","calendarOpenAnnounce","calendarCloseAriaLabel","previousMonthAriaLabel","nextMonthAriaLabel","disabledDayAriaLabel","selectedDayAriaLabel","todayAriaLabel","helpModal","header","helpButtonAriaLabel","ariaLabel","explanation","rightAndLeftArrowKeys","upAndDownArrowKeys","pageUpAndPageDownKeys","displayValue","homeAndEndKeys","escape","questionMark","menuItemSelectedAriaLabel","toggleMenuAriaLabel","dropzone","browseFiles","dragMessage","errors","message","required","files","bytes","deleteFile","removeFile","navigationButtonLabel","search","input","placeholder","iconAriaLabel","indeterminateCheckbox","isCheckedAnnounce","isIndeterminateAnnounce","isUncheckedAnnounce","isClearableAriaLabel","loadingIndicator","progressBar","messages","first","second","third","spinner","closeAriaLabel","multiSelect","selectedItemButtonAriaLabel","multiCombobox","pagination","nextButtonLabel","previousButtonLabel","pageButtonLabel","password","shown","buttonText","announce","hidden","skipLink","table","ofLabel","nextAriaLabel","previousAriaLabel","rowsPerPageLabel","horizontalTabsInstructions","verticalTabsInstructions","deleteAriaLabel","timePicker","hoursAriaLabel","minutesAriaLabel","amButtonAriaLabel","pmButtonAriaLabel","amSelectedAnnounce","pmSelectedAnnounce","wizard","actions","next","previous","cancel","submit","optional","navigationLabel","I18nContext","generateId","id","uuidv4","useGenerateId","newId","useState","updateId","useEffect","omit","obj","reduce","newObj","val","rest","usePrevious","value","ref","useRef","current","debounce","func","wait","timeout","debounced","args","context","clearTimeout","setTimeout","apply","clear","cachedType","detectScrollType","dummy","document","createElement","appendChild","createTextNode","dir","style","body","scrollLeft","getNormalizedScrollLeft","element","Number","scrollWidth","clientWidth","easeInOutSin","time","Math","sin","PI","animate","property","to","options","start","from","cancelled","step","timestamp","requestAnimationFrame","assignRef","error","Error","useForkedRef","refs","useMemo","every","node","forEach","stringIncludesUnit","includes","convertStyleValueToString","defaultValue","getNodeText","Array","map","join","children","candidateSelectors","getTrapElements","container","querySelectorAll","StyledSpinner","styled","span","Spinner","testId","other","i18n","sizeString","role","buttonStyles","css","isFullWidth","iconOnly","BaseStyledButton","SpinnerWrapper","ChildrenWrapper","isLoading","StyledButton","ButtonType","button","spinnerColor","ButtonVariant","outline","link","spinnerSize","ButtonSize","InverseContext","useIsInverse","inverseProp","inverseContext","Boolean","ButtonColor","ButtonShape","ButtonTextTransform","Button","ButtonIconPosition","SpanTextLeft","getIconPadding","SpanTextRight","getIconSize","instanceOfIconOnly","object","IconButton","icon","iconPosition","round","solid","only","fill","uppercase","Circle","circle","ProgressRing","isActive","radius","strokeWidth","percentage","setPercentage","intervalDuration","interval","setInterval","clearInterval","normalizedRadius","circumference","strokeDashoffset","cx","cy","r","stroke","strokeDasharray","VARIANT_ICON","info","InfoIcon","muted","CheckCircleIcon","warning","WarningIcon","ErrorIcon","AlertVariant","transitionDuration","buildAlertBackground","StyledAlert","div","isExiting","isToast","StyledAlertInner","AlertContents","IconWrapperStyles","IconWrapper","ProgressRingWrapper","DismissibleIconWrapper","whitelistProps","shouldForwardProp","prop","isPropValid","DismissButton","alertVariant","renderIcon","Icon","AlertBase","forceDismiss","hasTimerRing","defaultId","isDismissed","isDismissible","externalIsExiting","isPaused","onDismiss","toastDuration","setIsExiting","handleDismiss","tabIndex","Provider","CloseIcon","onClick","Alert","AnnouncePoliteness","Announce","politeness","polite","AppBarPosition","StyledHeader","sticky","fixed","isCompact","AppBar","BadgeColor","BadgeVariant","buildBadgeBackground","buildBadgeFocusBackground","buildBadgeActiveBackground","baseBadgeStyles","light","counter","StyledSpan","getStyledBadgeComponent","isClickable","Badge","BadgeComponent","label","StyledBanner","BannerContents","ButtonWrapper","allowedProps","getButtonColor","secondary","Banner","actionButtonText","actionButtonOnClick","StyledList","Breadcrumb","isInverseProp","linkStyles","StyledLink","Hyperlink","styledAs","composedStyle","ClassNames","composedCss","className","LinkStyledAsButton","withComponent","HyperlinkComponent","href","StyledItem","li","BreadcrumbItem","ChevronRightIcon","HideAtBreakpointDisplayType","Container","displayType","minWidth","HideAtBreakpoint","block","BreakpointScreenSize","Breakpoint","screenSize","getMinWidth","breakpointValues","definedBreakpoints","sizes","Object","keys","newSizes","slice","indexOf","nextSize","find","newSize","BreakpointsContainer","child","push","defaultBreakpoints","CardAlignment","CardCalloutType","buildCalloutBackground","calloutType","StyledCard","background","hasDropShadow","align","CardContext","Card","widthString","StyledCardBody","CardBody","TypographyColor","TypographyContextVariant","TypographyVisualStyle","getBodyFontFamily","contextVariant","expressive","narrative","colorStyles","subdued","baseParagraphStyles","paragraphLargeStyles","noMargins","paragraphMediumStyles","paragraphSmallStyles","paragraphXSmallStyles","getHeadingFontFamily","baseHeadingStyles","headingXLargeStyles","headingLargeStyles","headingMediumStyles","headingSmallStyles","headingXSmallStyles","heading2XSmallStyles","getTypographyStyles","visualStyle","TypographyComponent","p","Heading","level","stylesFromLevel","headingElement","as","StyledCardHeading","CardHeading","headingLevel","DisplayInputStyles","DisplayInputActiveStyles","buildDisplayInputActiveBackground","buildDisplayInputBorderColor","hasError","buildDisplayInputFocusStyles","HiddenStyles","InputSize","InputType","InputIconPosition","inputWrapperStyles","inputBaseStyles","inputSize","InputWrapper","StyledInput","IconButtonContainer","IsClearableContainer","InputBase","forwardedRef","containerStyle","iconRef","isClearable","isPredictive","onClear","onIconClick","onIconKeyDown","inputStyle","setValue","undefined","inputRef","handleClearInput","handleChange","event","onChange","target","text","ClearIcon","onKeyDown","BuildMessageColor","Message","InputMessage","LabelPosition","StyledLabel","labelPosition","Label","actionable","FormGroupContext","HiddenLabel","FormGroup","errorMessage","helperMessage","labelledById","labelStyle","labelText","isTextVisuallyHidden","descriptionId","StyledLabelComponent","htmlFor","Consumer","StyledContainerComponent","StyledContainer","CheckboxTextPosition","HiddenLabelText","HiddenInput","buildCheckIconColor","isChecked","isIndeterminate","StyledFakeInput","textPosition","Checkbox","checked","defaultChecked","updateIsChecked","isControlled","targetChecked","groupDescriptionId","describedBy","CheckBoxIcon","CheckBoxOutlineBlankIcon","gutterWidth","gutterWidthString","maxWidthString","useControlled","controlled","defaultProp","valueState","setValueIfUncontrolled","newValue","useDataPagination","defaultItemsPerPage","items","itemsPerPageProp","itemsPerPage","onItemsPerPageChange","setItemsPerPageState","handleItemsPerPageChange","newItemsPerPage","getPageItems","page","isLastPage","length","end","ceil","VisuallyHiddenDiv","VisuallyHidden","IndeterminateCheckboxStatus","IndeterminateCheckbox","status","isUnchecked","replaceLabelTextForAnnounceText","baseAnnounceText","replace","getStringifiedLabelText","showAnnounce","announceText","IndeterminateCheckBoxIcon","paddingLeft","TableDensity","TableCellAlign","TableSortDirection","TableRowColor","TableContext","density","normal","hasHoverStyles","hasZebraStripes","hasVerticalBorders","isSelectable","rowCount","selectedItems","TableContainer","StyledTable","Table","TableBody","baseTableCellStyle","buildCellPaddingStyle","textAlign","StyledCell","td","TableCell","tableContext","displayName","TableHead","TableHeaderCellScope","StyledTableHeaderCell","th","isRowHeader","borderBottom","verticalAlign","isSortable","SortButton","TableHeaderCell","onSort","scope","row","col","sortDirection","handleSort","SortIcon","ascending","SouthIcon","descending","NorthIcon","SortDoubleArrowIcon","usePagination","count","defaultPage","hideNextButton","hidePreviousButton","numberOfAdjacentPages","numberOfEdgePages","onPageChange","pageProp","showFirstButton","showLastButton","useContext","setPageState","handleClick","range","_","i","startPages","endPages","max","siblingsStart","siblingsEnd","itemList","buttonPage","pageButtons","item","isSelected","registerDescendant","itemRefArray","itemRef","index","findIndex","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","newItem","unregisterDescendant","filter","useDescendants","DropdownDropDirection","DropdownAlignment","DropdownContext","isOpen","registerDropdownMenuItem","elements","setIsOpen","Dropdown","activeIndex","alignment","dropDirection","onBeforeShiftFocus","onClose","onOpen","activeItemIndex","setActiveItemIndex","ownRef","toggleRef","menuRef","dropdownButtonId","openDropdown","getFilteredItem","filteredItems","closeDropdown","preventMagmaFocus","handlePreventMagmaFocus","filteredItemIndex","filteredItem","activeElement","handleKeyDown","key","preventDefault","handleDropdownBlur","currentTarget","relatedTarget","isInMenu","contains","maxHeightString","isFixedWidth","onBlur","instanceOfIconOnlyDropdownButton","getButtonPadding","StyledIconButton","DropdownButton","getButtonIcon","ArrowLeftIcon","ArrowRightIcon","up","ArrowDropUpIcon","ArrowDropDownIcon","buttonIcon","iconPositionToUse","StyledDiv","DropdownContent","StyledHr","hr","DropdownDivider","DropdownHeader","DropdownMenuGroup","MenuItemStyles","isInactive","DropdownMenuItem","CheckIcon","DropdownSplitButton","leftCap","borderRight","marginRight","rightCap","marginLeft","PageCount","RowsPerPageLabel","TablePagination","defaultRowsPerPage","dropdownDropDirection","itemCount","onRowsPerPageChange","rowsPerPageProp","rowsPerPage","rowsPerPageValues","setRowsPerPageState","displayPageStart","displayPageEnd","rowsPerPageItems","toString","handleRowsPerPageChange","previousButton","nextButton","WestIcon","EastIcon","buildTableRowBackground","buildTableRowColor","StyledTableRow","tr","TableRow","headerRowStatus","isSelectableDisabled","onHeaderRowSelect","onTableRowSelect","rowIndex","isHeaderRow","getIsCheckboxInverse","DefaultPagination","defaultComponents","components","Pagination","Datagrid","columns","customComponents","componentsProps","defaultSelectedRows","onHeaderSelect","onRowSelect","onSelectedRowsChange","paginationProps","rows","selectedRowsProp","selectedRows","hasPagination","rowsToShow","setRowsToShow","updatedSelectedRows","currentPage","setCurrentPage","passedOnPaginationProps","newPage","filteredRows","indeterminate","unchecked","handleRowSelect","newSelectedRows","splice","handleSelectedRowsChange","handleHeaderSelect","field","CalendarContext","chosenDate","Date","focusedDate","buildCalendarMonth","newDate","enableOutsideDates","showHelperInformation","hideHelperInformation","onDateChange","onPrevMonthClick","onNextMonthClick","setDateFocused","TooltipPosition","EnumTooltipPosition","TooltipContainer","TooltipArrow","StyledTooltip","Tooltip","open","isVisible","setIsVisible","referenceElement","setReferenceElement","popperElement","setPopperElement","arrowElement","setArrowElement","usePopper","modifiers","name","offset","placement","styles","attributes","combinedRef","handleEsc","hideTooltip","window","addEventListener","removeEventListener","showTooltip","arrowStyle","tooltipStyle","isArray","tooltipTrigger","onFocus","combinedTooltipStyles","popper","combinedArrowStyle","arrow","onMouseLeave","onMouseEnter","handleKeyPress","e","prevDate","toggleCalendar","getAttribute","subWeeks","subDays","subMonths","addWeeks","addDays","endOfWeek","addMonths","getCalendarMonthWeeks","month","enableOutsideDays","firstDayOfWeek","firstOfMonth","startOfMonth","lastOfMonth","endOfMonth","prevDays","getDay","nextDays","firstDay","lastDay","totalDays","differenceInDays","currentDay","weeksInMonth","day","getPrevMonthFromDate","getNextMonthFromDate","i18nFormat","date","formatStr","enUS","format","getDateFromString","CalendarHeaderContainer","CalendarIconButton","CalendarHeaderText","CalendarHeader","calendarHeader","prevFocusHeader","focusHeader","currentMonth","capitalizeCurrentMonth","charAt","toUpperCase","ArrowBackIcon","ArrowForwardIcon","CalendarDayCell","CalendarDayInner","isChosen","EmptyCell","TodayIndicator","CalendarDay","dayRef","dateFocused","maxDate","minDate","focused","setFocused","dayFocusable","isSameDay","onCalendarDayFocus","onDayClick","isAfter","isBefore","sameDateAsFocusedDate","sameDateAsChosenDate","sameDateAsToday","isFocused","List","ul","Item","KeyboardShortcutButtonWrapper","StyledPopup","StyledNavContainer","StyledContent","HelperInformation","useFocusLock","active","rootNode","focusableItems","updateFocusableItems","firstItem","firstChild","setAttribute","observer","MutationObserver","observe","childList","subtree","disconnect","shiftKey","lastItem","CalendarContainer","MonthContainer","Th","HelperButton","CloseButton","CalendarMonth","lastFocus","headingRef","setDayFocusable","setFocusHeader","prevCalendarOpened","calendarOpened","focusTrapElement","focusOnOpen","onCalendarTableFocus","onCalendarTableBlur","turnOffDateFocused","sortedDays","concat","tableDaysHeaders","helperInformationShown","week","dayOfWeek","KeyboardIcon","handleCloseButtonClick","StyledFormFieldContainer","FormFieldContainer","fieldId","isLabelVisuallyHidden","messageStyle","Input","DatePickerContainer","DatePickerCalendar","opened","DatePicker","setHelperInformationShown","setCalendarOpened","setDateFromConsumer","defaultDate","setDefaultFocusedDate","setFocusedDate","setChosenDate","convertedDate","convertedMinDate","convertedMaxDate","inDateRange","minDateValue","maxDateValue","reset","isValidDateFromString","isValidDateFormat","test","isValidDate","isValid","handleInputChange","onInputChange","isValidDay","toISOString","handleInputFocus","onInputFocus","handleInputBlur","handleDateChange","onInputBlur","handleInputKeyDown","closest","newChosenDate","handleDaySelection","handleCalendarBlur","isInCalendar","toggleCalendarOpened","inputValue","EventIcon","toLowerCase","a","DropdownMenuNavItem","FlexAlignContent","FlexAlignItems","FlexBehavior","FlexDirection","FlexJustify","FlexWrap","getWidth","StyledFlex","behavior","alignContent","wrap","justify","spacing","sm","md","lg","Flex","stretch","flexStart","Paragraph","StyledForm","FormActions","Form","headingContextVariant","headingVisualStyle","description","ProgressBarColor","buildProgressBarBackground","isLoadingIndicator","Track","Bar","isAnimated","Percentage","TopPercentage","ProgressBar","isLabelVisible","labelId","percentageValue","heightString","LoadingIndicatorType","StyledLoadingIndicator","MessageContainer","hide","LoadingIndicator","messageLevel","setMessageLevel","loadingIndicatorType","messageLevel2Timeout","progressbar","messageLevel3Timeout","message1","message2","message3","SelectText","SelectedItemsWrapper","SelectedItemButton","DefaultClearIndicator","DefaultDropdownIndicator","flexShrink","DefaultLoadingIndicator","DefaultItem","itemString","ClearIndicator","DropdownIndicator","ChildrenContainer","SelectTriggerButton","ariaDescribedBy","passedInStyle","toggleButtonProps","cursor","StyledNativeSelect","NativeSelect","TabsContainerContext","createContext","activeTabIndex","isInverseContainer","setActiveTabIndex","StyledTabsContainer","TabsContainer","forwardRef","setIsInverseContainer","TabsOrientation","StyledScrollButton","buttonVisible","orientation","StyledButtonPrev","transparentize","StyledButtonNext","ButtonPrev","ExpandLessIcon","ArrowBackIosIcon","ButtonNext","ExpandMoreIcon","ArrowForwardIosIcon","useTabsMeta","isRtl","scrollStart","clientSize","displayScroll","setDisplayScroll","tabsWrapperRef","prevButtonRef","nextButtonRef","scroll","scrollValue","moveTabsScroll","delta","handleStartScrollClick","handleEndScrollClick","updateScrollButtonState","scrollTop","scrollHeight","clientHeight","showStartScroll","showEndScroll","handleResize","handleTabsScroll","useCallback","TabsAlignment","TabsBorderPosition","TabsIconPosition","TabsContext","borderPosition","changeHandler","registerTabButton","StyledTabsWrapper","StyledTabs","Tabs","tabsMeta","tabsHandleMethods","tabsRefs","buttonRefArray","childrenWrapperRef","getTabsMeta","tabsNode","rect","getBoundingClientRect","scrollLeftNormalized","tabMeta","childrenArray","tab","scrollSelectedIntoView","prevButtonOffset","offsetHeight","offsetWidth","nextButtonOffset","nextScrollStart","newActiveIndex","hasAttribute","tabIsEnabled","findPreviousEnabledTabIndex","modifiedActiveTabIndex","currentTabIndex","newActiveTabIndex","findNextEnabledTabIndex","lastChildIndex","previousItemKey","nextItemKey","onScroll","useForceUpdate","setTick","update","tick","StyledTabsChild","getFlexDirection","TabStyles","StyledTab","getIconMargin","isIconOnly","StyledIcon","Tab","forceUpdate","tabIconPosition","StyledTabPanel","TabPanel","activeTab","TabPanelsContainer","Children","cloneElement","NavTabsContext","NavTabs","instanceOfNavComponentTab","instanceOfNavChildrenTab","StyledCustomTab","component","newProps","jsx","NavTab","pageButtonTypeSize","buttonSize","boxShadowColor","hoverBoxShadowColor","StyledPageButton","BuildBorder","hoverBorder","PageButton","PageButtonSize","StyledNav","nav","StyledListItem","BuildButtonSize","NavButton","StyledEllipsis","ariaCurrent","PasswordInput","passwordShown","setPasswordShown","togglePasswordShown","prevPasswordShown","hiddenPasswordAnnounceText","hidePasswordButtonAriaLabel","hidePasswordButtonText","isPasswordMaskButtonHidden","shownPasswordAnnounceText","showPasswordButtonAriaLabel","showPasswordButtonText","HIDDEN_PASSWORD_ANNOUNCE_TEXT","HIDE_PASSWORD_BUTTON_ARIA_LABEL","HIDE_PASSWORD_BUTTON_TEXT","SHOWN_PASSWORD_ANNOUNCE_TEXT","SHOW_PASSWORD_BUTTON_ARIA_LABEL","SHOW_PASSWORD_BUTTON_TEXT","autoCorrect","autoCapitalize","RadioContext","RadioGroup","selectedValue","setSelectedValue","newSelectedValue","RadioTextPosition","buildRadioIconColor","buildErrorBorder","Radio","RadioButtonCheckedIcon","RadioButtonUncheckedIcon","Transition","unmountOnExit","initial","customTransition","shouldExpand","variants","acc","themeVariant","AnimatePresence","ModalSize","ModalContainer","ModalBackdrop","hiddenBackground","ModalContent","ModalHeader","H1","CloseBtn","ModalBody","Modal","bodyRef","headingId","contentId","isModalOpen","setIsModalOpen","setCurrentTarget","prevOpen","handleClose","isEscKeyDownDisabled","handleEscapeKeyDown","handleModalClick","getElementById","handleModalOnMouseDown","stopPropagation","onEscKeyDown","closeButtonSize","contentStyle","containerTransition","isBackgroundClickDisabled","isCloseButtonHidden","CloseIconButton","ReactDOM","createPortal","Global","onMouseDown","title","getElementsByTagName","Search","onSearch","SearchIcon","handleSearch","NoItemsMessage","ItemsList","getMenuProps","itemToString","highlightedIndex","getItemProps","menuStyle","hasItems","instanceOfToBeCreatedItemObject","otherDownshiftItemProps","itemProps","SelectContainerElement","InputMessageContainer","SelectContainer","getLabelProps","Select","defaultSelectedItem","innerRef","itemListMaxHeight","initialSelectedItem","onIsOpenChange","onKeyPress","onKeyUp","passedInSelectedItem","selectedItem","toggleButtonRef","getValidItem","itemToCheck","handleOnIsOpenChange","changes","changedIsOpen","changedSelectedItem","setHighlightedIndex","stateReducer","state","actionAndChanges","useSelect","stateChangeTypes","ToggleButtonKeyDownCharacter","getToggleButtonProps","openMenu","defaultHandleClearIndicatorClick","selectText","marginTop","marginBottom","MultiSelect","onRemoveSelectedItem","checkSelectedItemValidity","useMultipleSelection","initialSelectedItems","getSelectedItemProps","getDropdownProps","addSelectedItem","removeSelectedItem","setActiveIndex","getFilteredItems","unfilteredItems","selectProps","onSelectedItemChange","defaultOnSelectedItemChange","selectItem","newSelectedItem","handleRemoveSelectedItem","tagName","nativeEvent","preventDownshiftDefault","preventKeyAction","multiSelectedItem","multiSelectedItemString","instanceOfMultiSelect","instanceOfDefaultItemObject","SelectStateChangeTypes","MultipleSelectionStateChangeTypes","isMulti","InternalSelect","ComboBoxContainer","InputContainer","ComboboxInput","getComboboxProps","getInputProps","onInputKeyDown","onInputKeyPress","onInputKeyUp","setIsFocused","handleBlur","handleFocus","inputProps","useComboboxItems","defaultItems","afterInitialRender","allItems","displayItems","setDisplayItems","updateItemsRef","newItems","cleanItems","inputValueInList","defaultOnInputValueChange","disableCreateItem","inputBaseValue","startsWith","react_magma__created_item","InternalCombobox","newItemTransform","onInputValueChange","onItemCreated","isCreatedItem","defaultNewItemTransform","createdItem","setInputValue","console","warn","useCombobox","InputKeyDownEnter","ItemClick","InputBlur","FunctionReset","MultiCombobox","comboboxProps","selectedItemsContent","instanceOfMultiCombobox","ComboboxStateChangeTypes","Combobox","TARGET_ID","targetAnchor","targetHeading","StyledSkipLink","positionLeft","positionTop","SkipLink","SkipLinkContent","SpacerAxis","getHeight","axis","StyledSpacer","Spacer","both","TagColor","TagSize","buildBoxShadow","buildButtonTextColor","buildSvgOpacity","onDelete","buildTagPadding","buildLabelPadding","TagStyling","LabelWrap","getStyledTag","Tag","StyledTag","CancelIcon","ToastsContext","toastsArray","bottomOffset","ToastsContainer","ToastWrapper","bottomOffsetForToast","bottomOffsetForContainer","DEFAULT_TOAST_DURATION","TOAST_HEIGHT","Toast","timerAutoHide","setIsDismissed","setIsPaused","timerTimeRemaining","setTimerTimeRemaining","alertStyle","disableAutoDismiss","timerStartTime","now","containerElement","dismissToast","toastId","clearTimeoutAndDismiss","setAutoHideTimer","totalDuration","handlePause","timeRemaining","handleResume","handleMouseEnter","handleMouseLeave","calculateAndSetBottomOffsetForToast","updateBottomOffsetForToast","focusableElements","ToggleTextPosition","Thumb","IconContainer","renderLabelText","Toggle","trackStyle","thumbStyle","StyledTextArea","textarea","Textarea","textareaStyle","StyledAmPmToggle","AmPmToggle","useTimePicker","am","localize","dayPeriod","pm","hour","setHour","minute","setMinute","amPm","setAmPm","setTime","hourRef","minuteRef","amPmRef","validTime","convertPassedInTime","hourId","minuteId","updateTime","newTime","passedInTime","amPmRegex","timeRegex","RegExp","split","timeHour","timeMinuteAndAmPm","timeMinute","substring","timeAmPm","calculateHour","newHour","calculateMinute","newMinute","handleHourChange","handleMinuteChange","toggleAmPm","newAmPm","handleHourKeyDown","handleMinuteKeyDown","handleAmPmKeyDown","InputsContainer","Divider","StyledNumInput","TimePicker","minutesStep","hoursLabel","minutesLabel","amPmLabel","ScheduleIcon","maxLength","getStyles","GlobalStyles","useMediaQuery","queryInput","query","supportMatchMedia","matchMedia","matches","match","setMatch","queryList","updateMatch","AccordionIconPosition","AccordionContext","registerAccordionButton","useAccordion","defaultIndex","onExpandedChange","indexProp","expandedIndex","setExpandedIndex","contextValue","StyledAccordion","Accordion","AccordionItemContext","isDisabled","isExpanded","setIsExpanded","useAccordionItem","idPrefix","buttonId","panelId","newIsExpanded","AccordionItem","useAccordionButton","focusFirst","focusNext","focusPrev","focusLast","arrLength","TextWrapper","AccordionButton","caret","StyledPanel","AccordionPanel","DrawerPosition","transitionPreset","Drawer","drawerStyle","GridDisplay","GridJustifyItems","GridJustifyContent","GridAlignItems","GridAlignContent","GridItemJustifySelf","GridItemAlignSelf","GridAutoFlow","Grid","gridDisplay","grid","gridTemplateRows","gridTemplateColumns","gridTemplateAreas","gridGap","gridJustifyItems","gridJustifyContent","gridAlignItems","gridAlignContent","gridAutoFlow","GridItem","gridColumn","gridRow","gridArea","gridItemJustifySelf","gridItemAlignSelf","BlockQuoteStyles","borderStyle","StyledBlockQuote","figure","BlockQuote","blockQuoteStyles","hasAttribution","StyledBlockQuoteItem","BlockQuoteItem"],"mappings":"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"}