@northlight/ui 2.2.0 → 2.2.1
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":"northlight.min.js","sources":["../../lib/components/accordion/accordion.tsx","../../lib/components/accordion/accordion-button.tsx","../../lib/components/accordion/accordion-panel.tsx","../../lib/components/accordion/accordion-item.tsx","../../lib/components/organization-logo/organization-logo.tsx","../../lib/components/alert/alert.tsx","../../lib/components/aspect-ratio/aspect-ratio.tsx","../../lib/components/icon/icon.tsx","../../lib/utils/luminosity/index.ts","../../lib/utils/get-contrast-color/index.ts","../../lib/utils/ring/index.ts","../../lib/utils/highlight/index.ts","../../lib/utils/get-shades/index.ts","../../lib/utils/get-initials/index.ts","../../lib/utils/get-field-error/index.ts","../../lib/utils/get-children-with-props/pass-props-to-child.ts","../../lib/utils/get-children-with-props/index.ts","../../lib/utils/add-alpha/index.ts","../../lib/utils/debounce/create-debounce-function-instance.ts","../../lib/utils/use-current-theme/index.ts","../../lib/components/avatar/avatar-badge.tsx","../../lib/components/avatar/avatar.tsx","../../lib/components/typography/headings/h1.tsx","../../lib/components/typography/headings/h2.tsx","../../lib/components/typography/headings/h3.tsx","../../lib/components/typography/headings/h4.tsx","../../lib/components/typography/headings/h5.tsx","../../lib/components/typography/headings/h6.tsx","../../lib/components/typography/body/p.tsx","../../lib/components/typography/stylized/blockquote.tsx","../../lib/components/typography/stylized/capitalized.tsx","../../lib/components/typography/stylized/lead.tsx","../../lib/components/typography/stylized/small.tsx","../../lib/components/typography/stylized/tiny.tsx","../../lib/components/typography/labels/label.tsx","../../lib/components/overflow-group/overflow-group.tsx","../../lib/components/overflow-group/use-overflow-group.ts","../../lib/components/avatar/avatar-group.tsx","../../lib/components/badge/badge.tsx","../../lib/components/blinker/blinker.tsx","../../lib/components/button/button.tsx","../../lib/components/checkbox/checkbox.tsx","../../lib/components/form/trim-form-values.ts","../../lib/components/form/form.tsx","../../lib/components/form-control/form-label.tsx","../../lib/hooks/use-debounce/index.ts","../../lib/hooks/use-loading-message/index.ts","../../lib/hooks/use-arrow-focus/index.ts","../../lib/hooks/use-select-callbacks/use-select-callbacks.ts","../../lib/components/form/field.tsx","../../lib/components/form/use-set-value-refreshed.ts","../../lib/components/checkbox/checkbox-field.tsx","../../lib/components/icon-button/icon-button.tsx","../../lib/components/color-picker/constants.ts","../../lib/components/color-picker/color-button.tsx","../../lib/components/color-picker/colors-expand-button.tsx","../../lib/components/color-picker/color-picker.tsx","../../lib/components/color-picker/color-picker-field.tsx","../../lib/components/flip-button/utils.ts","../../lib/components/flip-button/flip-button.tsx","../../lib/components/flip-button/flip-button-group.tsx","../../lib/components/flip-button/flip-button-group-field.tsx","../../lib/components/date-picker/components/date-field/trigger.tsx","../../lib/components/date-picker/components/date-field/date-segment.tsx","../../lib/components/date-picker/components/date-field/utils.ts","../../lib/components/date-picker/components/date-field/date-field.tsx","../../lib/components/date-picker/components/date-field/styled-field.tsx","../../lib/components/date-picker/components/calendar/components/calendar-cell.tsx","../../lib/components/date-picker/components/calendar/components/day-labels.tsx","../../lib/components/date-picker/components/calendar/components/calendar-grid.tsx","../../lib/components/date-picker/components/calendar/components/month-button.tsx","../../lib/components/date-picker/components/calendar/constants.ts","../../lib/components/date-picker/components/calendar/date-select/month-select.tsx","../../lib/components/date-picker/components/calendar/date-select/year-select.tsx","../../lib/components/date-picker/components/calendar/date-select/utils.ts","../../lib/components/date-picker/components/calendar/date-select/year-select-calendar.tsx","../../lib/components/date-picker/components/calendar/date-select/year-select-range-calendar.tsx","../../lib/components/date-picker/components/calendar/calendar.tsx","../../lib/components/date-picker/date-picker/date-picker.tsx","../../lib/components/clickable/clickable.tsx","../../lib/components/transitions/constants.ts","../../lib/components/transitions/utils.ts","../../lib/components/transitions/fade.tsx","../../lib/components/transitions/scale-fade.tsx","../../lib/components/transitions/slide.tsx","../../lib/components/transitions/slide-fade.tsx","../../lib/components/transitions/collapse.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/move-button.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/utils.ts","../../lib/components/date-picker/components/calendar/quick-navigation/button-row.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/adjust-range.tsx","../../lib/components/date-picker/components/calendar/components/range-cell.tsx","../../lib/components/date-picker/components/calendar/components/range-grid.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/date-button.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/get-quick-select-options.ts","../../lib/components/date-picker/components/calendar/quick-navigation/quick-select.tsx","../../lib/components/date-picker/components/calendar/range-calendar.tsx","../../lib/components/date-picker/components/calendar/simple-range-calendar.tsx","../../lib/components/date-picker/date-picker-field/utils.ts","../../lib/components/date-picker/date-picker/date-range-picker.tsx","../../lib/internal-components/input-group-wrapper/input-group-wrapper.tsx","../../lib/components/date-picker/date-picker-field/date-picker-field.tsx","../../lib/components/date-picker/date-picker-field/date-range-picker-field.tsx","../../lib/components/toolbox/toolbox.tsx","../../lib/components/toolbox/toolbox-header.tsx","../../lib/components/toolbox/toolbox-content.tsx","../../lib/components/toolbox/toolbox-footer.tsx","../../lib/components/radio/radio.tsx","../../lib/components/radio/radio-group.tsx","../../lib/components/radio/radio-group-field.tsx","../../lib/components/carousel/constants.ts","../../lib/components/carousel/carousel-item.tsx","../../lib/components/carousel/carousel-arrow.tsx","../../lib/components/carousel/carousel.tsx","../../lib/components/search-bar/styles.ts","../../lib/components/search-bar/get-components.tsx","../../lib/components/search-bar/search-bar.tsx","../../lib/components/search-bar/search-bar-field.tsx","../../lib/components/drag-and-drop/drag-and-drop.tsx","../../lib/components/tag/tag.tsx","../../lib/components/tag/overflow-indicator.tsx","../../lib/components/tag/tag-group.tsx","../../lib/components/drag-and-drop/drag-item.tsx","../../lib/components/drag-and-drop/draggable.tsx","../../lib/components/drag-and-drop/droppable.tsx","../../lib/components/drag-and-drop/sortable.tsx","../../lib/components/drag-and-drop/sortable-item.tsx","../../lib/components/drag-and-drop/drag-handle.tsx","../../lib/components/drag-and-drop/drop-zone.tsx","../../lib/components/drag-and-drop/multi-sort.tsx","../../lib/components/drag-and-drop/sortable-list.tsx","../../lib/components/drag-and-drop/sortable-container.tsx","../../lib/components/fast-list/fast-list.tsx","../../lib/components/fast-grid/fast-grid.tsx","../../lib/components/editable-text/editable-controls.tsx","../../lib/components/editable-text/editable-text.tsx","../../lib/components/modal/modal.tsx","../../lib/components/file-picker/file-editor-modal.tsx","../../lib/components/file-picker/confirm-delete-modal.tsx","../../lib/components/progress/utils.ts","../../lib/components/progress/constants.ts","../../lib/components/progress/progress-bar.tsx","../../lib/components/spinner/spinner.tsx","../../lib/components/file-picker/constants.ts","../../lib/components/file-picker/utils.ts","../../lib/components/file-picker/file-icon-button.tsx","../../lib/components/file-picker/file-picker.tsx","../../lib/components/file-picker/file-picker-field.tsx","../../lib/components/file-picker/multi-file-uploader.tsx","../../lib/components/file-picker/file-item.tsx","../../lib/components/file-picker/multi-file-list.tsx","../../lib/components/file-picker/multi-file-picker.tsx","../../lib/components/file-picker/multi-file-picker-field.tsx","../../lib/theme/global/scrollbar.ts","../../lib/theme/components/breadcrumb/index.ts","../../lib/theme/components/button/index.ts","../../lib/theme/components/blinker/index.ts","../../lib/theme/components/checkbox/index.ts","../../lib/theme/components/input/index.ts","../../lib/theme/components/pin-input/index.ts","../../lib/theme/components/select/index.ts","../../lib/theme/components/radio/index.ts","../../lib/theme/components/tabs/index.ts","../../lib/theme/components/textarea/index.ts","../../lib/theme/components/link/index.ts","../../lib/theme/components/switch/index.ts","../../lib/theme/components/tag/index.ts","../../lib/theme/components/alert/index.ts","../../lib/theme/components/number-input/index.ts","../../lib/theme/components/notification-icon-button/index.ts","../../lib/theme/components/calendar/index.ts","../../lib/theme/components/drag-and-drop/index.ts","../../lib/theme/components/date-picker/index.ts","../../lib/theme/components/flip-button/index.ts","../../lib/theme/components/spinner/index.ts","../../lib/theme/components/avatar/get-avatar-bg-color.ts","../../lib/theme/components/avatar/index.ts","../../lib/theme/components/close-button/index.ts","../../lib/theme/components/modal/index.ts","../../lib/theme/components/tooltip/index.ts","../../lib/theme/components/icon/index.ts","../../lib/theme/components/clipboard-input/index.ts","../../lib/theme/components/color-picker/index.ts","../../lib/theme/components/steps/step/index.ts","../../lib/theme/components/steps/step-list/index.ts","../../lib/theme/components/typography/headings/h1.ts","../../lib/theme/components/typography/headings/h2.ts","../../lib/theme/components/typography/headings/h3.ts","../../lib/theme/components/typography/headings/h4.ts","../../lib/theme/components/typography/headings/h5.ts","../../lib/theme/components/typography/headings/h6.ts","../../lib/theme/components/typography/stylized/blockquote.ts","../../lib/theme/components/typography/stylized/tiny.ts","../../lib/theme/components/typography/stylized/capitalized.ts","../../lib/theme/components/typography/stylized/lead.ts","../../lib/theme/components/typography/stylized/small.ts","../../lib/theme/components/typography/body/p.ts","../../lib/theme/components/typography/labels/label.ts","../../lib/theme/components/split-pane/index.ts","../../lib/theme/components/carousel/index.ts","../../lib/theme/components/editable-text/index.ts","../../lib/theme/components/toolbox/index.ts","../../lib/theme/components/file-picker/index.ts","../../lib/theme/skins/webapp/index.ts","../../lib/theme/skins/tott/index.ts","../../lib/theme/index.ts","../../lib/components/mediatool-theme-provider/mediatool-theme-provider.tsx","../../lib/components/number-input/number-input-stepper.tsx","../../lib/components/number-input/advanced-parse-float.ts","../../lib/components/number-input/number-input.tsx","../../lib/components/number-input/number-input-field.tsx","../../lib/components/notification-icon-button/notification-icon-button.tsx","../../lib/components/pin-input/pin-input.tsx","../../lib/theme/components/select/custom-select.ts","../../lib/components/select/select.tsx","../../lib/components/select/select-field.tsx","../../lib/components/switch/switch.tsx","../../lib/components/switch/switch-field.tsx","../../lib/components/tabs/tab-panel.tsx","../../lib/components/tabs/tabs.tsx","../../lib/components/textarea/textarea.tsx","../../lib/components/textarea/textarea-field.tsx","../../lib/components/text-field/formatted-number-input.tsx","../../lib/components/text-field/masked-text-input.tsx","../../lib/components/text-field/text-field.tsx","../../lib/components/types/toastIconMap/index.ts","../../lib/components/toast/toast.tsx","../../lib/components/toast/use-toast.tsx","../../lib/components/status-pin/pin-variant-map.ts","../../lib/components/status-pin/pin-size-map.ts","../../lib/components/status-pin/status-pin.tsx","../../lib/components/status-block/block-variant-map.ts","../../lib/components/status-block/types.ts","../../lib/components/status-block/status-block.tsx","../../lib/components/async-error/async-error.tsx","../../lib/components/steps/step-panel.tsx","../../lib/components/steps/steps.tsx","../../lib/components/steps/step.tsx","../../lib/components/steps/step-list.tsx","../../lib/components/clipboard-input/clipboard-input.tsx","../../lib/components/split-pane/split-pane.tsx","../../lib/components/split-pane/pane-item.tsx","../../lib/components/split-pane/pane-divider.tsx","../../lib/components/step-stack/step-stack.tsx"],"sourcesContent":["import React from 'react'\nimport { AccordionProps, Accordion as ChakraAccordion } from '@chakra-ui/react'\n\n/**\n * The wrapper that uses cloneElement to pass props to AccordionItem children.\n * @see {@link https::/northlight.dev/reference/accordion}\n *\n * @example\n * (?\n * <Accordion>\n <AccordionItem>\n <H2>\n <AccordionButton>\n <Box as=\"span\" flex='1' textAlign='left'>\n Section 1 title\n </Box>\n <AccordionIcon />\n </AccordionButton>\n </H2>\n <AccordionPanel pb={4}>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat.\n </AccordionPanel>\n </AccordionItem>\n\n <AccordionItem>\n <H2>\n <AccordionButton>\n <Box as=\"span\" flex='1' textAlign='left'>\n Section 2 title\n </Box>\n <AccordionIcon />\n </AccordionButton>\n </H2>\n <AccordionPanel pb={4}>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat.\n </AccordionPanel>\n </AccordionItem>\n</Accordion>\n * ?)\n */\nexport const Accordion = (props: AccordionProps) => (\n <ChakraAccordion { ...props } />\n)\n","import React from 'react'\nimport { AccordionButtonProps, AccordionButton as ChakraAccordionButton } from '@chakra-ui/react'\n\n/**\n * The button that toggles the expand/collapse state of the accordion item.\n * This button must be wrapped in an element with role heading.\n * @see Accordion\n * @see AcordionItem\n * @see {@link https://northlight.dev/reference/accordion-button}\n * @example\n * (Needs to be wrapped around AccordionItem and\n * Accordion context)\n * (?\n * <Accordion>\n * <AccordionItem>\n * <AccordionButton>Content</AccordionButton>\n * </AccordionItem>\n * </Accordion>\n * ?)\n */\nexport const AccordionButton = (props: AccordionButtonProps) => (\n <ChakraAccordionButton { ...props } />\n)\n","import React from 'react'\nimport {\n AccordionPanelProps,\n AccordionPanel as ChakraAccordionPanel,\n} from '@chakra-ui/react'\n\n/**\n * The container for the details to be revealed.\n * @see {@link htpts://northlight.dev/reference/accordion-panel}\n */\nexport const AccordionPanel = (props: AccordionPanelProps) => (\n <ChakraAccordionPanel { ...props } />\n)\n","import React from 'react'\nimport {\n AccordionItemProps,\n AccordionItem as ChakraAccordionItem,\n} from '@chakra-ui/react'\n\nexport const AccordionItem = (props: AccordionItemProps) => (\n <ChakraAccordionItem { ...props } />\n)\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { OrganizationLogoProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/organization-logo}\n *\n * @example\n * (?\n * <OrganizationLogo name=\"mediatool\" />\n * ?)\n *\n */\nexport const OrganizationLogo = ({\n name,\n image,\n variant = 'square',\n ...rest\n}: OrganizationLogoProps) => {\n const getInitials = (orgName: string) => orgName[0].toUpperCase()\n const {\n container,\n text,\n } = useMultiStyleConfig('Avatar', { variant, image, ...rest })\n\n return (\n <chakra.div\n __css={ container }\n data-testid=\"organization-logo-test-id\"\n >\n { image ? (\n <chakra.img\n alt={ name }\n src={ image }\n />\n )\n : (\n <chakra.span __css={ text }>\n { getInitials(name) }\n </chakra.span>\n )\n }\n </chakra.div>\n )\n}\n","import React from 'react'\nimport { Alert as ChakraAlert } from '@chakra-ui/react'\nimport { AlertProps } from './types'\n\nexport const Alert = ({\n variant = 'success',\n children,\n ...rest\n}: AlertProps) => (\n <ChakraAlert variant={ variant } { ...rest }>\n { children }\n </ChakraAlert>\n)\n","import React from 'react'\nimport { AspectRatioProps, AspectRatio as ChakraAspectRatio } from '@chakra-ui/react'\n\n/**\n * Meant to restrict child by specific ratio\n * @see {@link https://northlight.dev/aspect-ratio}\n * @example\n * (?\n <AspectRatio maxW='400px' ratio={4 / 3}>\n <Image src='https://bit.ly/naruto-sage' alt='naruto' objectFit='cover' />\n</AspectRatio>\n?)\n *\n * */\nexport const AspectRatio = (props: AspectRatioProps) => (\n <ChakraAspectRatio { ...props } />\n)\n","import React from 'react'\nimport {\n Icon as ChakraIcon,\n forwardRef,\n useStyleConfig,\n} from '@chakra-ui/react'\nimport { IconProps } from './types'\n\n/**\n * Pass down any icon from northlight/icons via as prop\n * @see IconButton\n * @see {@link https://northlight.dev/reference/icon}\n *\n * @example\n * (?\n * <Icon as={SmileyDuo} size=\"lg\" />\n * ?)\n */\nexport const Icon = forwardRef(({\n as: As,\n size,\n color,\n boxSize,\n ...rest\n}: IconProps, ref: any) => {\n const CustomIcon = As ?? (() => <ChakraIcon />)\n const styles = useStyleConfig('Icon', { size, color, boxSize })\n\n return (\n <ChakraIcon\n ref={ ref }\n sx={ styles }\n { ...rest }\n >\n <CustomIcon />\n </ChakraIcon>\n )\n})\n","export const luminosity = (hexcolor: string) => {\n let color = hexcolor\n\n if (color.slice(0, 1) === '#') {\n color = color.slice(1)\n }\n\n if (color.length === 3) {\n color = color\n .split('')\n .map((hex) => hex + hex)\n .join('')\n }\n\n const r = parseInt(color.substring(0, 2), 16)\n const g = parseInt(color.substring(2, 4), 16)\n const b = parseInt(color.substring(4, 6), 16)\n\n const brightness = (r * 299 + g * 587 + b * 114) / 1000\n return brightness\n}\n","import { useToken } from '@chakra-ui/system'\nimport { luminosity } from '../luminosity'\n\nexport const getContrastColor = (color: string) => {\n const colorTwo = useToken('colors', 'text.default')\n const colorOne = useToken('colors', 'text.inverted')\n const colorInHex = useToken('colors', color)\n\n const l1 = luminosity(colorOne)\n const l2 = luminosity(colorTwo)\n\n const threshold = (l1 + l2) / 2\n\n const brightColor = l1 > l2 ? colorOne : colorTwo\n const darkColor = l1 > l2 ? colorTwo : colorOne\n\n return luminosity(colorInHex) >= threshold ? darkColor : brightColor\n}\n","import { CSSObject } from '@emotion/react'\n\nexport const ring:CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n","import { CSSObject } from '@emotion/react'\n\nexport const highlight:CSSObject = {\n px: '1',\n py: '0.5',\n rounded: '6',\n bg: 'teal.100',\n fontWeight: 'bold',\n}\n","import { palette } from '@northlight/tokens'\nimport { Color, ColorGrade } from '../../types'\n\nexport const getShades = (startShade: number, endShade?: number) => {\n let start: number\n let end: number\n if (!endShade) {\n start = startShade\n end = startShade\n } else if (endShade > startShade) {\n start = startShade\n end = endShade\n } else {\n start = endShade\n end = startShade\n }\n\n return (\n Object.keys(palette).reduce((colors, color) => {\n if (color === 'mono') return colors\n return colors.concat(\n Object.keys(palette[color as Color])\n .filter((value) =>\n parseInt(value, 10) >= start\n && parseInt(value, 10) <= end\n )\n .map((shade) => palette[color as Color][shade as unknown as ColorGrade])\n )\n }, [] as string[])\n )\n}\n","export const getInitials = (name: string) => {\n const [ firstName, lastName ] = name.toUpperCase().split(' ')\n return firstName && lastName\n ? `${firstName[0]}${lastName[0]}`\n : firstName[0]\n}\n","import { path, replace, split } from 'ramda'\nimport { FieldErrorsImpl, FieldValues } from 'react-hook-form'\nimport { FieldErrorType } from '../../components/form/types'\n\nexport function getFieldError<T extends FieldValues> (name: string, errors: FieldErrorsImpl<T>) {\n const nameWithoutRightBracket = replace(/]/g, '', name)\n const leftBracketAndDot = /[.[\\]]/g\n const fieldErrorPath = split(leftBracketAndDot, nameWithoutRightBracket)\n\n const fieldError: FieldErrorType<T> = path(fieldErrorPath, errors)\n return fieldError\n}\n","import React, { cloneElement, isValidElement } from 'react'\nimport { CSSObject } from '@emotion/react'\n\nexport const passPropsToChild = (child: React.ReactNode, styles: CSSObject) => (\n isValidElement(child)\n ? cloneElement(child, {\n ...styles,\n })\n : child\n)\n","import React, { Children } from 'react'\nimport { T } from 'ramda'\nimport { passPropsToChild } from './pass-props-to-child'\n\nexport const getChildrenWithProps = (\n children: React.ReactNode | React.ReactNode[],\n styles: Record<string, any>,\n predicate: (child: React.ReactNode, index: number) => boolean = T\n) => {\n const childrenAsArr = Children.toArray(children)\n const childrenWithoutFocus = childrenAsArr.map((child, i) => (\n predicate(child, i)\n ? passPropsToChild(child, { ...styles })\n : child\n ))\n return childrenWithoutFocus\n}\n","import { useToken } from '@chakra-ui/system'\n\nexport const addAlpha = (color: string, alpha: number = 1) => {\n const colorInHex = useToken('colors', color)\n\n const limitAlpha = Math.min(Math.max(alpha, 0), 1)\n const opacity = Math.round(limitAlpha * 255)\n\n return `${colorInHex}${opacity.toString(16).toUpperCase()}`\n}\n","/** A debounce function to be used together with Async select in SearchBar.\n * The reason to why the usual debounce hook does not work is because we\n * don't control the loadOptions call ourselves.\n *\n * Important to note is that the timeout here needs to NOT be reinstantiated\n * every render, otherwise it defeats the purpose as a new timeout will be\n * created every time the component re-renders.\n*/\nexport const createDebounceFunctionInstance = (delay: number) => {\n let timeout: any\n\n return (fn: any) => (...args: any) => {\n clearTimeout(timeout)\n timeout = setTimeout(() => {\n fn(...args)\n }, delay)\n }\n}\n","import { createContext, useContext } from 'react'\n\nexport type CurrentTheme = 'webappTheme' | 'tottTheme'\n\nexport const CustomTheme = createContext<CurrentTheme>('webappTheme')\n\nexport const useCurrentTheme = () => {\n const theme = useContext(CustomTheme)\n return theme\n}\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { AvatarBadgeProps } from './types'\n\n/**\n * Specific component meant to be used with <Avatar /> to display notification\n * @see Avatar\n * @see {@link https://northlight.dev/reference/avatar}\n *\n * @example (Example)\n * Examle:\n * (?\n * <Avatar notificationCount={4} />\n * ?)\n *\n */\nexport const AvatarBadge = ({\n notificationCount = 0,\n}: AvatarBadgeProps) => {\n const { badge } = useMultiStyleConfig('Avatar')\n return (\n <chakra.span sx={ badge }>\n { notificationCount > 999 ? '999+' : notificationCount }\n </chakra.span>\n )\n}\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { BusinessContactDuo, UserSquareDuo } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { getInitials } from '../../utils'\nimport { AvatarProps } from './types'\nimport { AvatarBadge } from './avatar-badge'\n\n/**\n * @see AvatarGroup\n * @see {@link https://northlight.dev/reference/avatar}\n *\n * @example (Example)\n * Avatar takes a name and image\n * (?\n * <Avatar name=\"Anakin Skywalker\" image='https://thenerdstash.com/wp-content/uploads/2021/10/Hayden-Christensen-Anakin-Skywalker.jpg' />\n * ?)\n *\n * <br />\n * If there is no image, it will render the initials of the name along with a random bg color.\n * (?\n * <Avatar name=\"Anakin Skywalker\" />\n * ?)\n *\n * <br />\n *\n * If the name also is undefined, it will render a fallback icon\n * (?\n * <Avatar />\n * ?)\n */\nexport const Avatar = ({\n variant = 'square',\n notificationCount = 0,\n name,\n image,\n size,\n ...rest\n}: AvatarProps) => {\n const { container, text, userImage, icon } = useMultiStyleConfig('Avatar', {\n variant,\n image,\n size,\n name,\n })\n\n return (\n <Box __css={ container } data-testid=\"avatar-test-id\" { ...rest }>\n { image\n ? (\n <chakra.img\n alt={ name }\n src={ image }\n sx={ userImage }\n />\n ) : name\n ? (\n <chakra.span sx={ text }>\n { getInitials(name) }\n </chakra.span>\n )\n : (\n <Icon\n as={ variant === 'square' ? UserSquareDuo : BusinessContactDuo }\n sx={ icon }\n aria-label=\"user-avatar\"\n />\n ) }\n { notificationCount > 0 && (\n <AvatarBadge notificationCount={ notificationCount } />\n ) }\n </Box>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h1}\n * @example (Example)\n * (?\n * <H1>Heading 1</H1>\n * ?)\n */\nexport const H1 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H1', { sx })\n\n return (\n <Heading\n as=\"h1\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h2}\n * @example (Example)\n * (?\n * <H2>Heading 2</H2>\n * ?)\n *\n */\nexport const H2 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H2', { sx })\n\n return (\n <Heading\n as=\"h2\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h3}\n * @example (Example)\n * (?\n * <H3>Heading 3</H3>\n * ?)\n */\nexport const H3 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H3', { sx })\n\n return (\n <Heading\n as=\"h3\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h4}\n * @example (Example)\n * (?\n * <H4>Heading 4</H4>\n * ?)\n */\nexport const H4 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H4', { sx })\n\n return (\n <Heading\n as=\"h4\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h5}\n * @example (Example)\n * (?\n * <H5>Heading 5</H5>\n * ?)\n */\nexport const H5 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H5', { sx })\n\n return (\n <Heading\n as=\"h5\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h6}\n * @example (Example)\n * (?\n * <H6>Heading 6</H6>\n * ?)\n */\nexport const H6 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H6', { sx })\n\n return (\n <Heading\n as=\"h6\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, useStyleConfig } from '@chakra-ui/react'\nimport { PProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/p}\n * @example\n * (?\n * <P>Body text</P>\n * ?)\n *\n */\nexport const P = ({\n children,\n variant = '16',\n sx = {},\n ...rest\n}: PProps) => {\n const styles = useStyleConfig('P', { variant, sx })\n\n return (\n <ChakraText\n variant={ variant }\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/blockquote }\n *\n * @example (Example)\n * (?\n * <Blockquote sx={{color: 'green.500' }}>Success</Blockquote>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n *\n *\n */\nexport const Blockquote = ({ children, sx = {}, ...rest }: TextProps) => {\n const styles = useStyleConfig('Blockquote', { sx })\n\n return (\n <ChakraText as=\"span\" sx={ styles } { ...rest }>\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/capitalized }\n *\n * @example (Example)\n * (?\n * <Capitalized sx={{color: 'red.500' }}>Error</Capitalized>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Capitalized = ({\n children,\n sx = {},\n ...rest\n}: TextProps) => {\n const styles = useStyleConfig('Capitalized', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/lead }\n *\n * @example\n * (?\n * <Lead>Lead</Lead>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Lead = ({\n children,\n sx = {},\n ...rest\n}: TextProps) => {\n const styles = useStyleConfig('Lead', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Blockquote\n * @see Tiny\n * @see {@link https://northlight.dev/reference/small }\n *\n * @example (Example)\n * (?\n * <Small>Small</Small>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n */\nexport const Small = ({\n children,\n sx = {},\n ...rest\n}: TextProps) => {\n const styles = useStyleConfig('Small', { sx })\n\n return (\n <ChakraText\n as=\"small\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Blockquote\n * @see Small\n * @see {@link https://northlight.dev/reference/tiny }\n *\n * @example (Example)\n * (?\n * <Tiny>Tiny</Tiny>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n */\nexport const Tiny = ({\n children,\n sx = {},\n ...rest\n}: TextProps) => {\n const styles = useStyleConfig('Tiny', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { FormLabel, VisuallyHidden, useStyleConfig } from '@chakra-ui/react'\nimport { LabelProps } from './types'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/label }\n *\n * @example\n * (?\n * <Label sx={{color: 'brand.500' }} size=\"lg\">Brand</Label>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Label = ({\n children,\n size = 'sm',\n sx = {},\n ...rest\n}: LabelProps) => {\n const styles = useStyleConfig('Label', { sx, size })\n\n return (\n <FormLabel\n sx={ styles }\n requiredIndicator={ <VisuallyHidden /> }\n { ...rest }\n >\n { children }\n </FormLabel>\n )\n}\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { always, dec, defaultTo, gt, identity, ifElse, inc, take } from 'ramda'\nimport { OverflowGroupProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\n\nconst positiveOrZero = ifElse(gt(0), always(0), identity)\nconst EMPTY_RECT = {\n clientWidht: 0,\n clientHeight: 0,\n}\nconst EMPTY_WINDOW = {\n innerWidth: 0,\n innerHeight: 0,\n}\n\n/**\n * Util wrapper for lists by only rendering as many items as fit per the specification\n * @see {@link https://northlight.dev/reference/overflow-group}\n * @example\n * (?\n * +\n *\nconst CustomSlider = ({ onChange }) => (\n <Slider min={ 100 } max={ 300 } step={ 1 } onChange={ onChange }>\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb />\n </Slider>\n)\n *\n\nconst arrayWithLength = (n) => {\n let buffer = []\n for(let i = 0; i < n; i++) {\n buffer.push(i)\n }\n return buffer\n}\n * const MyComponent = () => {\n * const [ n, setN ] = useState(5)\n const [ max, setMax ] = useState(10)\n const [ width, setWidth ] = useState(200)\n const [ height, setHeight ] = useState(200)\n const { containerRef, rect } = useOverflowGroup()\n const [ nbrRemainingItems, setNbrRemainingItems ] = useState(0)\n * return (\n * <Stack mb={ 4 } spacing={ 4 } w=\"40%\">\n <Stack h=\"300px\">\n <Wrap\n w={ width }\n h={ height }\n ref={ containerRef }\n borderWidth=\"2px\"\n borderColor=\"gray.200\"\n borderStyle=\"solid\"\n p=\"2\"\n borderRadius=\"md\"\n >\n <OverflowGroup\n max={ max }\n rect={ rect }\n onChange={ setNbrRemainingItems }\n >\n { arrayWithLength(n).map((i) => (\n <Badge key={ i } h=\"max-content\">\n Item { i }\n </Badge>\n )) }\n </OverflowGroup>\n { nbrRemainingItems > 0 && (\n <Tag w=\"fit-content\">+{ nbrRemainingItems }</Tag>\n ) }\n </Wrap>\n </Stack>\n <Stack bgColor=\"gray.50\" p=\"2\" borderRadius=\"md\">\n <HStack>\n <Label>Height</Label>\n <CustomSlider onChange={ setHeight } />\n </HStack>\n <HStack>\n <Label>Width</Label>\n <CustomSlider onChange={ setWidth } />\n </HStack>\n <HStack>\n <Label>Number of items </Label>\n <NumberInput onChange={ (v) => setN(Number(v)) } value={ n } />\n </HStack>\n <HStack>\n <Label>Render max </Label>\n <NumberInput onChange={ (v) => setMax(Number(v)) } value={ max } />\n </HStack>\n </Stack>\n </Stack>\n * )}\nrender(<MyComponent/>)\n * ?)\n<br />\nThe overflow group requires either a max prop for a set limit, or a rect prop,\n for a dynamic, responsive layouts. The rect prop can be received via the useOverflowGroup hook,\n along with a containerRef that needs to be set on the wrapper around the overflow group.\n<br />\n<br />\nThe overflow group is ambiguous in the styling of the children and does not pose any premade layout;\n instead the wrapper parent container determines the layout.\n One could for example use a <Stack /> <HStack /> or <Grid> and all would work.\n The overflow group only checks if the children don't fit within the height/width\n of it's container via the containerRef.\n\n *\n */\nexport const OverflowGroup = ({\n children,\n max: initMax = 0,\n childrenProps,\n onChange = identity,\n rect,\n}: OverflowGroupProps) => {\n const [ max, setMax ] = useState(typeof rect === 'undefined' ? initMax : 0)\n const [ windowState, setWindowState ] = useState(EMPTY_WINDOW)\n const isLocked = useRef(false)\n const nbrChildren = Children.count(children)\n\n const updateMax = () => {\n if (!rect) return\n\n if (\n rect.scrollHeight <= rect.clientHeight &&\n rect.scrollWidth <= rect.clientWidth &&\n max < nbrChildren &&\n !isLocked.current &&\n max < initMax\n ) {\n setMax(inc)\n }\n\n if (\n rect.scrollHeight > rect.clientHeight ||\n rect.scrollWidth > rect.clientWidth\n ) {\n setMax(dec)\n isLocked.current = true\n }\n }\n\n const rectDependency = defaultTo(EMPTY_RECT, rect) as HTMLElement\n useEffect(updateMax, [\n rectDependency.clientWidth,\n rectDependency.clientHeight,\n nbrChildren,\n max,\n windowState.innerHeight,\n windowState.innerHeight,\n initMax,\n ])\n\n useEffect(() => {\n isLocked.current = false\n }, [ rectDependency.clientHeight, rectDependency.clientWidth ])\n\n const handleResize = () => {\n setTimeout(() => {\n isLocked.current = false\n setWindowState({\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n })\n }, 200)\n }\n\n useEffect(() => {\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n useEffect(() => {\n const nbrRemainingChildren = positiveOrZero(nbrChildren - max)\n onChange(nbrRemainingChildren)\n }, [ max, nbrChildren ])\n\n const shownChildren = take(\n max,\n getChildrenWithProps(children, defaultTo({}, childrenProps))\n )\n\n return <>{ shownChildren }</>\n}\n","import { useState } from 'react'\n\nexport const useOverflowGroup = () => {\n const [ rect, setRect ] = useState<HTMLDivElement | null>(null)\n const containerRef = (node: any) => {\n if (node) {\n setRect(node)\n }\n }\n\n return { rect, containerRef }\n}\n","import React, { useState } from 'react'\nimport { HStack } from '../stack'\nimport { AvatarGroupProps } from './types'\nimport { Small } from '../typography'\nimport { OverflowGroup } from '../overflow-group'\n\n/**\n * Used to display a group of users\n * @see Avatar\n * @see {@link https://northlight.dev/reference/avatar-group}\n *\n * @example (Example)\n * (?\n * <AvatarGroup max={ 3 }>\n {[1, 2, 3, 4, 5].map((i) => (\n <Avatar\n name=\"Anakin Skywalker\"\n image=\"https://thenerdstash.com/wp-content/uploads/2021/10/Hayden-Christensen-Anakin-Skywalker.jpg\"\n size=\"sm\"\n variant=\"rounded\"\n key={ i }\n />\n )) }\n</AvatarGroup>\n * ?)\n *\n */\nexport const AvatarGroup = ({\n children,\n max = Infinity,\n spacing = '-4',\n ...rest\n}: AvatarGroupProps) => {\n const [ nbrRemainingAvatars, setNbrRemainingAvatars ] = useState(0)\n\n return (\n <HStack bgColor=\"background.default\" { ...rest }>\n <HStack spacing={ spacing }>\n <OverflowGroup max={ max } onChange={ setNbrRemainingAvatars }>\n { children }\n </OverflowGroup>\n </HStack>\n { nbrRemainingAvatars > 0 && (\n <Small sx={ { color: 'blue.500' } }>\n +{ nbrRemainingAvatars }\n </Small>\n ) }\n </HStack>\n )\n}\n","import React from 'react'\nimport { BadgeProps, Badge as ChakraBadge } from '@chakra-ui/react'\n\n/**\n * Badges are used to highlight an item's status for quick recognition.\n * @see {@link https://northlight.dev/reference/badge}\n *\n * @example\n * (?\n * <Stack>\n <HStack spacing={ 4 }>\n <Badge>Default badge</Badge>\n <Badge variant=\"outline\">Outline badge</Badge>\n <Badge variant=\"subtle\">Subtle badge</Badge>\n </HStack>\n <HStack spacing={ 4 } mt={ 4 }>\n <Badge variant=\"solid\" colorScheme=\"mediatoolBlue\">Solid badge</Badge>\n <Badge variant=\"outline\" colorScheme=\"mediatoolBlue\">Outline badge</Badge>\n <Badge variant=\"subtle\" colorScheme=\"mediatoolBlue\">Subtle badge</Badge>\n </HStack>\n <HStack spacing={ 4 } mt={ 4 }>\n <Badge variant=\"solid\" colorScheme=\"red\">Solid badge</Badge>\n <Badge variant=\"outline\" colorScheme=\"red\">Outline badge</Badge>\n <Badge variant=\"subtle\" colorScheme=\"red\">Subtle badge</Badge>\n </HStack>\n </Stack>\n * ?)\n */\nexport const Badge = (props: BadgeProps) => (\n <ChakraBadge { ...props } />\n)\n","import React from 'react'\nimport { useStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../box'\nimport { BlinkerProps } from './types'\n\n/**\n * Status indicator of some sorts\n * @see {@link https://northlight.dev/reference/blinker}\n *\n * @example (Example)\n * (?\n * <Box p=\"4\">\n * <Blinker color=\"bg.brand.default\" />\n * </Box>\n * ?)\n */\nexport const Blinker = ({\n color = '',\n size,\n isBlinking = true,\n ...rest\n}: BlinkerProps) => {\n const styles = useStyleConfig('Blinker', { color, size, isBlinking })\n\n return <Box sx={ styles } data-testid=\"blinker-test-id\" { ...rest } />\n}\n","import React, { forwardRef } from 'react'\nimport { Button as ChakraButton } from '@chakra-ui/react'\nimport { ButtonProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/button}\n *\n * @example\n * (?\n <Button\n variant=\"success\"\n leftIcon={ <Icon as={ FolderCheckDuo } /> }\n rightIcon={ <Icon as={ PlusDuo } /> }\n >\n Create folder\n </Button>\n * ?)\n *\n * @example (Example)\n * (?\n * +\n * const variants = ['link', 'success', 'default', 'danger', 'brand', 'ghost']\n *\n * const ExampleButton = () => {\n * const [currentVariant, setCurrentVariant ] = useState(0)\n * const [ isLoading, setIsLoading ] = useState(false)\n *\n * const handleClick = () => {\n * setIsLoading(true)\n * setTimeout(() => {\n * setCurrentVariant((prev) => prev === 5 ? 0 : prev + 1)\n * setIsLoading(false)\n * }, 300)\n *\n * }\n *\n * return (\n * <Button variant={variants[currentVariant]}\n * isLoading={isLoading} onClick={handleClick} loadingText=\"Saving...\">\n * Save changes\n * </Button>\n * )\n *\n * }\n *\n * render(<ExampleButton/>)\n * ?)\n */\nexport const Button = forwardRef(\n ({ variant = 'default', children, ...rest }: ButtonProps, ref: any) => (\n <ChakraButton variant={ variant } ref={ ref } { ...rest }>\n { children }\n </ChakraButton>\n )\n)\n","import React from 'react'\nimport { Checkbox as ChakraCheckbox } from '@chakra-ui/react'\nimport { CheckboxProps } from './types'\n\n/**\n * @see CheckboxField\n * @see {@link https://northlight.dev/reference/checkbox}\n *\n * @example (Example)\n * Mainly used for forms, however this component is controlled by\n * a value prop and an onChange callback\n *\n * (?\n * +\n * const MyForm = () => {\n * const [ isVegan, setIsVegan ] = useState(false)\n *\n * return (\n * <Stack p=\"2\">\n * <Label size=\"sm\" htmlFor=\"vegan-checkbox\">Are you vegan</Label>\n * <Checkbox name=\"vegan-checkbox\" onChange={() => setIsVegan((prev) => !prev)} value={isVegan} />\n * </Stack>\n *\n * )\n * }\n *\n * render(<MyForm />)\n *\n * ?)\n *\n */\nexport const Checkbox = ({\n value,\n onChange,\n name,\n size = 'md',\n variant = 'default',\n ...rest\n}: CheckboxProps) => (\n <ChakraCheckbox\n size={ size }\n id={ name }\n onChange={ onChange }\n isChecked={ value }\n variant={ variant }\n { ...rest }\n />\n)\n","import { forEach, identity, is, keys, trim, values } from 'ramda'\nimport { FieldValues } from 'react-hook-form'\n\nconst shouldTrim = (value: any): ((object: FieldValues) => FieldValues) =>\n (is(Array, value) ? values : identity)\n\nexport const trimFormValues = <T extends FieldValues>(obj: FieldValues) => {\n const newObj: FieldValues = obj\n forEach((property) => {\n const value = obj[property]\n if (is(Object, value)) {\n const format = shouldTrim(value)\n newObj[property] = format(trimFormValues(value as FieldValues))\n }\n if (is(String, value)) {\n newObj[property] = trim(value as string)\n }\n }, keys(obj))\n return newObj as T\n}\n","import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react'\nimport {\n DeepPartial,\n FieldValues,\n FormProvider,\n Resolver,\n UseFormReturn,\n useForm,\n} from 'react-hook-form'\nimport { always, equals } from 'ramda'\nimport { FormProps } from './types'\nimport { trimFormValues } from './trim-form-values'\n\n/**\n * The context provider for handling state of components wrapped in field\n * @see Field\n * @see {@link https://northlight.dev/reference/form}\n *\n * @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}} onSubmit={console.log}>\n * <TextField name=\"name\" label=\"What is your name\" />\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## With form methods\n * The form context provider passes down a lot of methods for handling state\n * (?\n * <Form initialValues={{name: ''}}>\n * {({watch, reset }) => (\n * <Stack>\n * <TextField name=\"name\" label=\"What is your name?\"/>\n * <Button variant=\"danger\" onClick={() => reset({})}>Reset</Button>\n * <Code>{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n *\n * </Form>\n * ?)\n * You can view more form methods on the **<a href=\"https://react-hook-form.com/api/useform/\" target=\"_blank\">react hook form docs</a>**\n * (everything that the useForm hooks returns)\n *\n * @example (Example)\n * ## Moving the form state outside of Form\n * (?\n * +\n\n//This code could live in the backend\nconst submitValuesToBackend = (values) => {\n console.log({values})\n if(values.firstName !== 'Steve') {\n throw Error('We only allow people named Steve \\;\\)')\n }\n}\nconst MyForm = () => (\n<Form\n initialValues={ { firstName: '' } }\n onSubmit={ async (values, methods) => {\n try {\n await submitValuesToBackend(values)\n }\n catch (err) {\n methods.setError('firstName', { message: err.message })\n }\n } }\n>\n <HStack alignItems=\"end\" p=\"3\">\n <TextField\n name=\"firstName\"\n label=\"First Name\"\n isRequired={ true }\n />\n <Button type=\"submit\" variant=\"success\">Validate</Button>\n </HStack>\n</Form>\n\n )\n\nrender(<MyForm />)\n\n * ?)\n\n@example (Example)\n## Using a ref\nYou can move up the form state using a ref as well\n(?\n() => {\n const methods = useRef(null)\n\n return (\n <Stack>\n <Form\n ref={methods}\n initialValues={{name: ''}}\n >\n <TextField name=\"name\" label=\"What is your name?\" />\n </Form>\n <Button onClick={() => methods.current.reset({name: (Math.round(Math.random() * 100))})}>\n Get random number\n </Button>\n </Stack>\n\n )\n\n}\n?)\n\n */\nexport const Form = forwardRef(<FormValues extends FieldValues>({\n initialValues,\n onSubmit,\n children,\n validate,\n formSettings = { mode: 'onChange' },\n methods = undefined,\n enableReinitialize = false,\n shouldTrim = true,\n ...rest\n}: FormProps<FormValues>, ref: React.Ref<UseFormReturn<FormValues>>) => {\n const customResolver: Resolver<FormValues, any> = (\n values,\n _context,\n _options\n ) => ({\n values,\n errors: validate(values),\n })\n\n const newMethods =\n methods ||\n useForm<FormValues>({\n defaultValues: initialValues as DeepPartial<FormValues>,\n resolver: validate ? customResolver : undefined,\n ...formSettings,\n })\n\n useImperativeHandle(ref, always(newMethods), [])\n\n if (enableReinitialize) {\n const initalValuesImage = useRef({})\n useEffect(() => {\n if (!equals(initalValuesImage.current, initialValues)) {\n newMethods?.reset(initialValues)\n initalValuesImage.current = initialValues\n }\n }, [ initialValues ])\n }\n\n const formatValues = (values: FormValues) => {\n if (!shouldTrim) {\n return values\n }\n\n return trimFormValues<FormValues>(values)\n }\n\n const handleSubmit = newMethods.formState.isValid\n ? newMethods.handleSubmit((values) =>\n onSubmit(formatValues(values), newMethods)\n )\n : (e: React.FormEvent<HTMLFormElement>) => {\n newMethods.trigger()\n e.preventDefault()\n }\n\n return (\n <FormProvider { ...newMethods } { ...rest }>\n <form style={ { width: '100%' } } onSubmit={ handleSubmit }>\n { typeof children === 'function' ? children(newMethods) : children }\n </form>\n </FormProvider>\n )\n})\n","import React from 'react'\nimport { FormLabelProps } from './types'\nimport { Label } from '../typography'\n\n/**\n * Renders a label, meant to be used alongside a field component\n * @see Field\n * @see {@link https://northlight.dev/reference/form-label}\n *\n */\nexport const FormLabel = ({\n children: label,\n ...rest\n}: FormLabelProps) => (\n <Label\n size=\"sm\"\n sx={ {\n width: '80%',\n maxWidth: '45ch',\n marginBottom: 1,\n marginInlineEnd: 3,\n } }\n requiredIndicator={ undefined }\n { ...rest }\n >\n { label }\n </Label>\n)\n","import { useEffect, useState } from 'react'\n\nexport const useDebounce = <T>(value: T, delay: number) => {\n const [ debouncedValue, setDebouncedValue ] = useState<T>(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n return () => {\n clearTimeout(handler)\n }\n }, [ value, delay ])\n\n return debouncedValue\n}\n","import { useState } from 'react'\nimport { useInterval } from '../use-interval'\n\nexport const useLoadingMessage = (prefix: string = '', delay: number = 300) => {\n const [ dots, setDots ] = useState('.')\n\n useInterval(() => {\n if (dots.length === 3) {\n setDots('.')\n } else {\n setDots(`${dots}.`)\n }\n }, delay)\n return `${prefix}${dots}`\n}\n","import { useFocusManager } from '@react-aria/focus'\n\nexport const useArrowFocus = (columns: number) => {\n const {\n focusNext: next,\n focusPrevious: previous,\n focusFirst,\n focusLast,\n } = useFocusManager()\n\n const defaultOpts = {\n ArrowRight: {\n wrap: true,\n repeat: 1,\n },\n ArrowLeft: {\n wrap: true,\n repeat: 1,\n },\n ArrowDown: {\n wrap: false,\n repeat: columns,\n },\n ArrowUp: {\n wrap: false,\n repeat: columns,\n },\n }\n\n const focusPrevious = ({\n repeat,\n wrap,\n } = defaultOpts.ArrowLeft) => {\n for (let i = 0; i < repeat; i += 1) {\n previous({ wrap })\n }\n }\n\n const focusNext = ({\n repeat,\n wrap,\n } = defaultOpts.ArrowRight) => {\n for (let i = 0; i < repeat; i += 1) {\n next({ wrap })\n }\n }\n\n const defaultArrows = (e: any) => {\n switch (e.key) {\n case 'ArrowRight':\n focusNext(defaultOpts.ArrowRight)\n break\n case 'ArrowLeft':\n focusPrevious(defaultOpts.ArrowLeft)\n break\n case 'ArrowDown':\n e.preventDefault()\n focusNext(defaultOpts.ArrowDown)\n break\n case 'ArrowUp':\n e.preventDefault()\n focusPrevious(defaultOpts.ArrowUp)\n break\n default:\n break\n }\n }\n\n return {\n defaultArrows,\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n }\n}\n","import { ActionMeta, MultiValue, SingleValue } from 'chakra-react-select'\nimport { difference, isNil, last, map, prop } from 'ramda'\nimport { useRef } from 'react'\nimport { BasicOption, UseSelectCallbacksProps } from './types'\n\nexport const useSelectCallbacks = <T extends BasicOption>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value,\n}: UseSelectCallbacksProps<T>) => {\n const items = useRef<MultiValue<T> | SingleValue<T>>(value)\n\n const handleChange = (val: MultiValue<T> | SingleValue<T>, event: ActionMeta<T>) => {\n onChange(val, event)\n if (!isMulti && !isNil(val)) {\n onAdd((val as T).value)\n } else if (!isNil(val) && ((val as T[]).length > (items.current as T[]).length)) {\n onAdd(last(val as T[])?.value)\n } else {\n const removedItems = map(\n prop('value'),\n difference((items.current as T[]), val as T[])\n )\n onRemove(removedItems.length === 1 ? removedItems[0] : removedItems)\n }\n items.current = val\n }\n return handleChange\n}\n","import React from 'react'\nimport { Controller } from 'react-hook-form'\nimport { FormControl, FormErrorMessage, FormLabel } from '../form-control'\nimport { Stack } from '../stack'\nimport { FieldProps } from './types'\nimport { useFormContext } from '../../hooks'\nimport { getFieldError } from '../../utils'\n\n/**\n * Wraps children under form context\n * @see TextField\n * @see Form\n * @see {@link https://northlight.dev/reference/field}\n *\n * @example (Example)\n * ## Input example\n * (?\n * <Form initialValues={{name: ''}}>\n * <Box p=\"2\">\n * <Field name=\"name\" label=\"Input name\">\n * {({value, onChange}) => (\n * <Input value={value} onChange={onChange} />\n * )}\n * </Field>\n * </Box>\n *\n * </Form>\n * ?)\n * <br />\n * As you can see the field component acts as a middleman to connect\n * any component to the form context, via a controlled value and onChange prop.\n * Most of the common use cases for field,\n * such as text input have been abstracted into their own components, for example _TextField_\n *\n * @example (Example)\n * ## Example with validation and form submition\n * (?\n * () => {\n * const toast = useToast()\n * const handleSubmit =(v) => {\n * toast({title: 'Sent Message', description: `\"${v.message}\"`})\n * }\n * return (\n * <Form initialValues={{message: ''}} onSubmit={handleSubmit}>\n * <Stack p=\"2\">\n * <Field\n * name=\"message\"\n * label=\"Write email\"\n * isRequired={true}\n * validate={{maxLength: {message: 'Message must be under 30 characters', value: 30}}}\n * >\n * {({value, onChange}) => (\n * <Textarea value={value} onChange={onChange} />\n * )}\n * </Field>\n * <Button type=\"submit\" variant=\"brand\">Send Message</Button>\n * </Stack>\n *\n * </Form>\n * )\n * }\n * ?)\n *\n */\nexport function Field ({\n name,\n label,\n children,\n direction = 'column',\n isRequired = false,\n noLabelConnection = false,\n validate,\n}: FieldProps) {\n const methods = useFormContext()\n const {\n control,\n formState: { errors },\n } = methods\n const fieldError = getFieldError(name, errors)\n\n return (\n <FormControl isInvalid={ !!fieldError } isRequired={ isRequired }>\n <Stack\n spacing=\"auto\"\n direction={ direction }\n alignItems={ direction === 'column' ? 'stretch' : 'center' }\n >\n { label && (\n <FormLabel htmlFor={ noLabelConnection ? undefined : name } mb={ 1 }>\n { label }\n </FormLabel>\n ) }\n <Controller\n name={ name }\n control={ control }\n rules={ validate }\n render={ ({ field }) => children(field, methods) }\n />\n </Stack>\n <FormErrorMessage>\n { fieldError && (fieldError?.message as string) }\n </FormErrorMessage>\n </FormControl>\n )\n}\n","import { useFormContext } from '../../hooks'\nimport { SetValueOptionsType } from './types'\n\nexport const useSetValueRefreshed = () => {\n const { setValue, watch } = useFormContext()\n\n const setValueRefreshed = (name: any, value: any, options: SetValueOptionsType) => {\n watch(name)\n setValue(name, value, options)\n }\n return setValueRefreshed\n}\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { CheckboxFieldProps } from './types'\nimport { Field } from '../form'\nimport { Checkbox } from './checkbox'\nimport { Box } from '../box'\nimport { Label } from '../typography'\nimport { Flex } from '../flex'\n\n/**\n * The checkbox component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see Checkbox\n * @see {@link https://northlight.dev/reference/checkbox-field}\n * @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}}>\n * <CheckboxField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPlacement=\"left\"\n * labelSize=\"md\"\n * />\n * </Form>\n * ?)\n *\n */\n\nexport const CheckboxField = ({\n name,\n label,\n variant,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPlacement = 'left',\n labelSize = 'md',\n ...rest\n}: CheckboxFieldProps) => (\n <Box\n w={ label ? 'full' : 'fit-content' }\n display=\"inline-flex\"\n >\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <Flex\n gap={ 2 }\n direction={ labelPlacement === 'left' ? 'row-reverse' : 'row' }\n >\n <Checkbox\n name={ name }\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n variant={ variant }\n data-testid=\"checkbox-field-test-id\"\n { ...rest }\n />\n <Label htmlFor={ name } sx={ { fontWeight: 'normal' } } size={ labelSize }>{ label }</Label>\n </Flex>\n ) }\n </Field>\n </Box>\n)\n","import React, { cloneElement, forwardRef } from 'react'\nimport { IconButton as ChakraIconButton } from '@chakra-ui/react'\nimport { IconButtonProps } from './types'\n\n/**\n * A normal button but renders an icon instead of text\n * @see Button\n * @see Icon\n * @see {@link https://northlight.dev/reference/icon-button}\n *\n * @example (Example)\n * (?\n * <IconButton variant='brand' icon={<Icon as={UsersDuo} />} onClick={console.log}/>\n * ?)\n *\n * @example (Example)\n * (?\n <IconButton\n isRound={ true }\n aria-label=\"create\"\n variant=\"success\"\n icon={ <Icon as={ PlusSolid } /> }\n />\n * ?)\n *\n */\nexport const IconButton = forwardRef(({\n variant = 'default',\n icon,\n 'aria-label': ariaLabel,\n children,\n ...rest\n}: IconButtonProps, ref: any) => {\n const IconComponent = icon ?? children as JSX.Element\n const IconWithSize = cloneElement(IconComponent, { size: rest.size })\n return (\n <ChakraIconButton\n variant={ variant }\n icon={ IconWithSize }\n aria-label={ ariaLabel }\n ref={ ref }\n { ...rest }\n />\n )\n})\n","import { getShades } from '../../utils'\n\nexport const columns = 5\nexport const paletteColors = getShades(100, 500)\nexport const defaultColors = getShades(500)\n","import React, { forwardRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { CheckDuo } from '@northlight/icons'\nimport { getContrastColor } from '../../utils'\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { Box } from '../box'\nimport { ColorButtonProps } from './types'\nimport { columns } from './constants'\nimport { useArrowFocus } from '../../hooks'\n\nexport const ColorButton = forwardRef(({\n color,\n onClick,\n size,\n selected = false,\n}: ColorButtonProps, ref: any) => {\n if (!color) return <Box />\n const { defaultArrows, focusPrevious, focusNext } = useArrowFocus(columns)\n\n const onKeyDown = (e: any) => {\n switch (e.key) {\n case 'PageUp':\n e.preventDefault()\n focusPrevious({ wrap: false, repeat: columns * 5 })\n break\n case 'PageDown':\n e.preventDefault()\n focusNext({ wrap: false, repeat: columns * 5 })\n break\n default:\n defaultArrows(e)\n break\n }\n }\n\n const { colorButton } = useMultiStyleConfig('ColorPicker', { size })\n\n return (\n <IconButton\n bg={ color }\n ref={ ref }\n onKeyDown={ onKeyDown }\n aria-label={ `select-${color}` }\n onClick={ onClick }\n sx={ colorButton }\n icon={ <Icon as={ CheckDuo } boxSize={ selected ? undefined : '0' } /> }\n color={ getContrastColor(color) }\n />\n )\n})\n","import React from 'react'\nimport { ChevronDownDuo, ChevronUpDuo } from '@northlight/icons'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { columns } from './constants'\nimport { ColorsExpandButtonProps } from './types'\nimport { useArrowFocus } from '../../hooks'\n\nexport const ColorsExpandButton = ({\n onClick,\n size,\n expanded,\n}: ColorsExpandButtonProps) => {\n const { defaultArrows, focusPrevious, focusFirst } = useArrowFocus(columns)\n const { colorButton } = useMultiStyleConfig('ColorPicker', { size })\n const onKeyDown = (e: any) => {\n switch (e.key) {\n case 'Tab':\n focusFirst()\n break\n case 'ArrowUp':\n e.preventDefault()\n focusPrevious({ wrap: true, repeat: 1 })\n break\n case 'PageUp':\n e.preventDefault()\n focusPrevious({ wrap: false, repeat: columns * 5 })\n break\n default:\n defaultArrows(e)\n break\n }\n }\n\n return (\n <IconButton\n variant=\"ghost\"\n onKeyDown={ onKeyDown }\n aria-label=\"display more colors\"\n onClick={ onClick }\n sx={ colorButton }\n >\n <Icon as={ expanded ? ChevronUpDuo : ChevronDownDuo } />\n </IconButton>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { ColorsDuo } from '@northlight/icons'\nimport { FocusScope } from '@react-aria/focus'\nimport { useMultiStyleConfig, useToken } from '@chakra-ui/react'\nimport { useBoolean, useDisclosure } from '../../hooks'\nimport { SimpleGrid } from '../simple-grid'\nimport { Stack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { ColorPickerProps } from './types'\nimport { ColorButton } from './color-button'\nimport { columns, defaultColors, paletteColors } from './constants'\nimport {\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverHeader,\n PopoverTrigger,\n} from '../popover'\nimport { ColorsExpandButton } from './colors-expand-button'\n\n/**\n * Dropdown menu where user can select hex value\n * from set colors\n * @see {@link https://northlight.dev/reference/color-picker}\n *\n * @example (Example)\n * ##Pick a color for this campaign\n * (?\n * () => {\n * const [ color, setColor ] = useState(undefined)\n * return (\n * <HStack>\n * <ColorPicker color={color} onChange={setColor}/>\n * <ClipboardInput value={ color } />\n\n * </HStack>\n * )\n * }\n *\n * ?)\n *\n *\n */\nexport const ColorPicker = ({\n onChange = () => {},\n colors = defaultColors,\n expandedColors = paletteColors,\n value = null,\n name,\n size = 'md',\n ...rest\n}: ColorPickerProps) => {\n const { isOpen, onToggle, onClose } = useDisclosure()\n const [ expanded, setExpanded ] = useBoolean()\n const [ selectedColor, setSelectedColor ] = useState(value)\n const [ visibleColors, setVisibleColors ] = useState(colors)\n const initialFocusRef = useRef(null)\n const {\n trigger,\n heading,\n } = useMultiStyleConfig('ColorPicker', { selectedColor, size })\n const parsedValue = value && useToken('colors', value)\n\n const baseColors = [ ...colors ]\n for (let i = 0; i < baseColors.length % columns; i += 1) {\n baseColors.push('')\n }\n\n useEffect(() => {\n if (value === '') {\n setSelectedColor(null)\n } else {\n setSelectedColor(parsedValue)\n }\n }, [ value ])\n\n useEffect(() => {\n if (expanded) {\n setVisibleColors((prev) => prev.concat(expandedColors))\n } else {\n setVisibleColors(baseColors)\n }\n }, [ expanded ])\n\n const expandColors = () => {\n setExpanded.toggle()\n }\n\n const getNumberOfColumns = () => {\n if (expanded) return columns\n if (colors.length < columns && colors.length > 2) {\n return colors.length\n }\n if (colors.length < columns) {\n return 3\n }\n return columns\n }\n\n const shouldBeFocused = (index: number) => (\n selectedColor\n ? index === visibleColors.findIndex((colorVal) => colorVal === selectedColor)\n : index === 0\n )\n\n const handleSelect = (color: string) => {\n onToggle()\n setSelectedColor(color)\n onChange(color)\n }\n\n return (\n <Box data-testid=\"color-picker-test-id\">\n <Popover\n isOpen={ isOpen }\n onClose={ onClose }\n initialFocusRef={ initialFocusRef }\n >\n <PopoverTrigger>\n <IconButton\n onClick={ onToggle }\n aria-label={ name || 'color picker' }\n name={ name }\n sx={ trigger }\n size={ size }\n icon={ <Icon as={ ColorsDuo } /> }\n { ...rest }\n />\n </PopoverTrigger>\n <PopoverContent w=\"auto\" boxShadow=\"md\" p={ 2 } bgColor=\"background.default\">\n <Stack>\n <PopoverHeader\n color=\"text.default\"\n sx={ heading }\n >\n Pick a color\n </PopoverHeader>\n <PopoverBody p={ 0 }>\n <Stack alignItems=\"center\" p={ 0 } spacing={ 0 }>\n <FocusScope>\n <SimpleGrid\n columns={ getNumberOfColumns() }\n spacing={ 2 }\n overflowY=\"scroll\"\n maxH={ 72 }\n pr={ 2 }\n pl={ 4 }\n py={ 1 }\n >\n { visibleColors.map((color, index) => (\n <ColorButton\n color={ color }\n key={ `${color}-button-${index as number}` }\n selected={ color === selectedColor }\n ref={ shouldBeFocused(index) ? initialFocusRef : undefined }\n size={ size }\n onClick={ () => handleSelect(color) }\n />\n )) }\n </SimpleGrid>\n { expandedColors.length > 0 && (\n <ColorsExpandButton\n onClick={ expandColors }\n expanded={ expanded }\n size={ size }\n />\n ) }\n </FocusScope>\n </Stack>\n </PopoverBody>\n </Stack>\n </PopoverContent>\n </Popover>\n </Box>\n )\n}\n","import React from 'react'\nimport { Field } from '../form'\nimport { ColorPicker } from './color-picker'\nimport { ColorPickerFieldProps } from './types'\n\n/**\n * The <ColorPicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see ColorPicker\n * @see {@link https://northlight.dev/reference/color-picker}\n *\n */\nexport const ColorPickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n ...rest\n}: ColorPickerFieldProps) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <ColorPicker\n name={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n)\n","import { DOMAttributes, createContext } from 'react'\nimport { RadioGroupProps, RadioGroupState, useRadioGroupState } from '@react-stately/radio'\nimport { CheckboxGroupProps, CheckboxGroupState, useCheckboxGroupState } from '@react-stately/checkbox'\nimport { AriaCheckboxGroupProps, useCheckboxGroup } from '@react-aria/checkbox'\nimport { AriaRadioGroupProps, useRadioGroup } from '@react-aria/radio'\nimport { FlipButtonGroupProps } from './types'\n\nexport const FlipButtonContext = createContext<CheckboxGroupState | RadioGroupState | null>(null)\n\nexport const useFlipButtonState = (\n props: FlipButtonGroupProps,\n isMulti: boolean\n) => (\n isMulti\n ? useCheckboxGroupState(props as CheckboxGroupProps)\n : useRadioGroupState(props as RadioGroupProps)\n)\n\nexport const useFlipButtonGroup = (\n props: FlipButtonGroupProps,\n state: CheckboxGroupState | RadioGroupState,\n isMulti: boolean\n): DOMAttributes<Element> => {\n const propsWithLabel = {\n ...props,\n 'aria-label': `${isMulti ? 'Checkbox' : 'Radio'}-button-group`,\n }\n\n return (isMulti\n ? useCheckboxGroup(\n propsWithLabel as AriaCheckboxGroupProps,\n state as CheckboxGroupState\n ).groupProps\n : useRadioGroup(\n propsWithLabel as AriaRadioGroupProps,\n state as RadioGroupState\n ).radioGroupProps\n )\n}\n\nexport const useFlipButton = (props: FlipButtonGroupProps, isMulti: boolean) => {\n const state = useFlipButtonState(props, isMulti)\n const flipButtonGroupProps = useFlipButtonGroup(props, state, isMulti)\n return { state, flipButtonGroupProps }\n}\n","import React, { useContext, useRef } from 'react'\nimport { CheckSolid } from '@northlight/icons'\nimport { useCheckboxGroupItem } from '@react-aria/checkbox'\nimport { SlideFade, useMultiStyleConfig } from '@chakra-ui/react'\nimport { useRadio } from '@react-aria/radio'\nimport { useFocusRing } from '@react-aria/focus'\nimport { mergeAll, omit } from 'ramda'\nimport { CheckboxGroupState } from '@react-stately/checkbox'\nimport { RadioGroupState } from '@react-stately/radio'\nimport { mergeProps } from '@react-aria/utils'\nimport { FlipButtonContext } from './utils'\nimport { HStack } from '../stack'\nimport { Icon } from '../icon'\nimport { Text } from '../text'\nimport { CustomContainerPropsType, CustomFlipButtonPropsType, FlipButtonProps } from './types'\n\n/**\n * Meant to act as a middleman to turn any component into\n * either a radio or checkbox input\n * where the user can choose between multiple options\n * @see CheckboxGroup\n * @see RadioGroup\n * @see FlipButtonGroup\n * @see {@link https://northlight.dev/reference/flip-button}\n *\n * @example (Example)\n * ### It must always be wrapped in a group\n * (?\n * <FlipButton />\n * ?)\n * Or it will throw an error\n *\n *\n * @example (Example)\n * ### As a radio button group\n * (?\n *<FlipButtonGroup isMulti={ false } size=\"sm\">\n <FlipButton value=\"one\" icon={AgencyDuo}>One</FlipButton>\n <FlipButton value=\"two\" icon={StagesDuo}>Two</FlipButton>\n <FlipButton value=\"three\" icon={Flag04Duo}>Three</FlipButton>\n</FlipButtonGroup>\n * ?)\n *\n * @example (Example)\n * ### As a checkbox button group\n * (?\n *<FlipButtonGroup isMulti={ true } size=\"sm\">\n <FlipButton value=\"one\" icon={TagsStackDuo}>One</FlipButton>\n <FlipButton value=\"two\" icon={Image03Duo}>Two</FlipButton>\n <FlipButton value=\"three\" icon={TagDuo }>Three</FlipButton>\n</FlipButtonGroup>\n * ?)\n *\n * @example (Example)\n * ###Custom Flip Button\n * (?\n * +\n * const customElement = ({\n flipButtonProps,\n containerProps,\n isSelected,\n label,\n value,\n}) => (\n <HStack\n { ...containerProps }\n spacing=\"4\"\n _checked={ { bgColor: 'blue.500', color: 'text.inverted' } }\n borderRadius=\"md\"\n p=\"2\"\n >\n <input { ...flipButtonProps } />\n <Icon as={ UsersDuo } />\n <Stack spacing=\"0\">\n <Text>{ label }</Text>\n <Text color={ isSelected ? 'text.inverted' : 'gray.200' }>\n { value === 'public'\n ? 'Everyone can view and edit the plan'\n : 'The plan is only visible to you'\n }\n </Text>\n </Stack>\n </HStack>\n)\n\nconst MyComponent = () => (\n<FlipButtonGroup direction=\"column\" sx={{bgColor: 'transparent'}}>\n <FlipButton value=\"public\" label=\"Public\">\n { customElement }\n </FlipButton>\n <FlipButton value=\"private\" label=\"Private\">\n { customElement }\n </FlipButton>\n</FlipButtonGroup>\n\n)\nrender(<MyComponent/>)\n *\n * ?)\n *\n */\nexport const FlipButton = (props: FlipButtonProps) => {\n const {\n children,\n size,\n variant,\n isMulti,\n isDisabled = false,\n icon,\n value,\n iconPlacement = 'left',\n ...rest\n } = props\n const state = useContext(FlipButtonContext)\n const ref = useRef(null)\n\n const propsWithoutChildren = omit([ 'children' ], props)\n const { inputProps } = isMulti\n ? useCheckboxGroupItem(propsWithoutChildren, state as CheckboxGroupState, ref)\n : useRadio(propsWithoutChildren, state as RadioGroupState, ref)\n\n const { button, buttonIcon } = useMultiStyleConfig('FlipButton', { size, variant })\n const { focusProps, isFocusVisible: isFocused } = useFocusRing()\n const focusStyles = {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n }\n const focusRing = isFocused ? focusStyles : {}\n\n const isSelected = isMulti\n ? (state as CheckboxGroupState).isSelected(value)\n : (state as RadioGroupState).selectedValue === value\n\n const flipButtonProps: CustomFlipButtonPropsType = {\n ...mergeProps(inputProps, focusProps),\n ref,\n style: { opacity: '0', width: '0', height: '0' },\n 'aria-label': isMulti ? 'Checkbox-input' : 'Radio-input',\n }\n\n const containerProps: CustomContainerPropsType = {\n 'aria-checked': isSelected,\n 'aria-disabled': isDisabled,\n sx: focusRing,\n as: 'label',\n cursor: 'pointer',\n }\n\n return typeof children === 'function'\n ? children({\n state,\n containerProps,\n flipButtonProps,\n isFocused,\n isSelected,\n isDisabled,\n isMulti: isMulti || false,\n focusRing,\n value,\n ...rest,\n })\n : (\n <HStack\n spacing={ isSelected || icon ? 2 : 0 }\n sx={ mergeAll([ button, isFocused ? focusStyles : {}, { flexDirection: iconPlacement === 'left' ? 'row' : 'row-reverse' } ]) }\n aria-checked={ isSelected }\n aria-disabled={ isDisabled }\n as=\"label\"\n >\n <input { ...flipButtonProps } />\n { icon && iconPlacement !== 'none'\n ? (\n <Icon as={ icon || CheckSolid } sx={ buttonIcon } />\n ) : isSelected && iconPlacement !== 'none' && (\n <SlideFade in={ isSelected }>\n <Icon as={ icon || CheckSolid } sx={ buttonIcon } />\n </SlideFade>\n ) }\n <Text textAlign=\"center\">{ children }</Text>\n </HStack>\n )\n}\n","import React, { Children, cloneElement, isValidElement } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { omit } from 'ramda'\nimport { Stack } from '../stack'\nimport { FlipButtonGroupProps } from './types'\nimport { FlipButtonContext, useFlipButton } from './utils'\n\n/**\n * Provides context to FlipButton\n * @see FlipButton\n * @see {@link https://northlight.dev/reference/flip-button-group}\n */\nexport const FlipButtonGroup = (props: FlipButtonGroupProps) => {\n const {\n isMulti = false,\n name,\n children,\n direction = 'row',\n isDisabled = false,\n iconPlacement = 'left',\n size,\n variant,\n icon,\n sx = {},\n ...rest\n } = props\n\n const { state, flipButtonGroupProps } = useFlipButton(props, isMulti)\n\n const numberOfButtons = Children.count(children)\n\n const childrenWithProps = (Children.toArray(children)).map((child: React.ReactNode) =>\n (isValidElement(child)\n ? cloneElement(child, {\n key: child.props.value,\n isMulti,\n variant,\n isDisabled,\n iconPlacement,\n icon,\n size,\n ...child.props,\n })\n : child)\n )\n\n const { container } = useMultiStyleConfig('FlipButton', {\n size,\n variant,\n numberOfButtons,\n sx,\n })\n\n const restWithoutOnChange = omit([ 'onChange' ], rest)\n\n return (\n <Stack\n { ...flipButtonGroupProps }\n direction={ direction }\n id={ name }\n spacing={ 0 }\n sx={ container }\n { ...restWithoutOnChange }\n >\n <FlipButtonContext.Provider value={ state }>\n { childrenWithProps }\n </FlipButtonContext.Provider>\n </Stack>\n )\n}\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { Field } from '../form'\nimport { FlipButtonGroup } from './flip-button-group'\nimport { FlipButtonGroupFieldProps } from './types'\n\n/**\n * The FlipButtonGroup component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FlipButton\n * @see {@link https://northlight.dev/reference/flip-button-group-field}\n *\n * @example (Example)\n * (?\n * <Form intitialValues={{foods: 'pizza'}}>\n <FlipButtonGroupField name=\"foods\" label=\"Select the food you enjoy most\" variant=\"brand\">\n <FlipButton value=\"pizza\">Pizza</FlipButton>\n <FlipButton value=\"hamburger\">Button</FlipButton>\n <FlipButton value=\"steak\">Steak</FlipButton>\n </FlipButtonGroupField>\n * </Form>\n *\n * ?)\n *\n */\nexport const FlipButtonGroupField = ({\n name,\n label,\n children,\n direction,\n isRequired,\n iconPlacement = 'left',\n onChange: onChangeCallback = identity,\n validate,\n ...rest\n}: FlipButtonGroupFieldProps) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <FlipButtonGroup\n name={ name }\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n direction={ direction }\n value={ value }\n iconPlacement={ iconPlacement }\n { ...rest }\n >\n { children }\n </FlipButtonGroup>\n ) }\n </Field>\n)\n","import React, { useRef } from 'react'\nimport { CalendarDuo } from '@northlight/icons'\nimport { useButton } from '@react-aria/button'\nimport { Button } from '../../../button'\nimport { TriggerProps } from './types'\nimport { Icon } from '../../../icon'\n\nexport const Trigger = (props: TriggerProps) => {\n const { isDisabled, handleClick } = props\n const ref = useRef<HTMLButtonElement>(null)\n const { buttonProps } = useButton(props, ref)\n\n return (\n <Button\n { ...buttonProps }\n ref={ ref }\n size=\"sm\"\n boxSize={ 8 }\n variant=\"ghost\"\n isDisabled={ isDisabled }\n onPointerDown={ handleClick }\n pointerEvents={ isDisabled ? 'none' : 'auto' }\n >\n <Icon as={ CalendarDuo } />\n </Button>\n )\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useDateSegment } from '@react-aria/datepicker'\nimport { Box } from '../../../box'\nimport { DateSegmentProps } from './types'\n\nexport const DateSegment = ({ segment, state }: DateSegmentProps) => {\n const ref = useRef<HTMLInputElement>(null)\n const { segmentProps } = useDateSegment(segment, state, ref)\n\n const isDivider = segment.type === 'literal'\n const { dateSegment } = useMultiStyleConfig('DatePicker')\n const minWidth = `${String(segment.maxValue).length}ch`\n\n return (\n <Box\n { ...segmentProps }\n ref={ ref }\n __css={ dateSegment }\n minWidth={ isDivider ? 0 : minWidth }\n paddingInline={ isDivider ? 0 : '0.25rem' }\n color={\n segment.isPlaceholder\n ? 'gray.500'\n : isDivider\n ? 'text.subduded'\n : 'text.default'\n }\n fontSize=\"md\"\n >\n { segment.text }\n </Box>\n )\n}\n","import { toLower } from 'ramda'\n\ntype FormatMapKey = 'y' | 'm' | 'd'\ntype FormatMapValue = 'yyyy' | 'mm' | 'dd'\n\nconst mapFormat: Record<FormatMapKey, FormatMapValue> = {\n y: 'yyyy',\n m: 'mm',\n d: 'dd',\n}\n\nexport const formatQuery = (query: string) =>\n mapFormat[toLower(query)[0] as FormatMapKey]\n\nexport const delimeterIncluded = /([.,:;|\\-/\\\\])/\n","import React, { useRef } from 'react'\nimport { useDateFieldState } from '@react-stately/datepicker'\nimport { useDateField } from '@react-aria/datepicker'\nimport { createCalendar } from '@internationalized/date'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { find, split } from 'ramda'\nimport { Box } from '../../../box'\nimport { DateSegment } from './date-segment'\nimport { DateFieldProps, DateSegmentType } from './types'\nimport { delimeterIncluded, formatQuery } from './utils'\n\nexport const DateField = (props: DateFieldProps) => {\n const ref = useRef<HTMLInputElement>(null)\n const state = useDateFieldState({\n ...props,\n /* Hard coding the United Kingdom locale,\n this enforces using english characters e.g.\n yyyy and not other such as åååå or chinese, which prevents hard to predict bugs */\n locale: 'en-GB',\n createCalendar,\n })\n\n const { dateField } = useMultiStyleConfig('DatePicker')\n const { fieldProps } = useDateField(props, state, ref)\n\n const { segments } = state\n const { dateFormat = 'dd/mm/yyyy' } = props\n const getMatchingSegment = (query: string, index: number) =>\n find(\n (segment: DateSegmentType) => segment.placeholder === formatQuery(query)\n )(segments) || { ...segments[index], text: query }\n\n const sortedSegments = split(delimeterIncluded, dateFormat).map(\n (query: string, index: number) => getMatchingSegment(query, index)\n )\n\n return (\n <Box\n { ...fieldProps }\n ref={ ref }\n display=\"flex\"\n __css={ dateField }\n data-testid=\"date-field-test-id\"\n >\n { sortedSegments.map((segment, i) => {\n const id = `${segment.type}-${i}`\n return <DateSegment segment={ segment } state={ state } key={ id } />\n }) }\n </Box>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../../../box'\nimport { StyledFieldProps } from './types'\n\nexport const StyledField = forwardRef((\n { isInvalid, isDisabled, children, variant, ...rest }: StyledFieldProps,\n ref: any\n) => {\n const { styledField } = useMultiStyleConfig('DatePicker', { variant })\n\n return (\n <Box\n { ...rest }\n ref={ ref }\n aria-invalid={ isInvalid }\n aria-disabled={ isDisabled }\n display=\"flex\"\n alignItems=\"center\"\n h={ 10 }\n __css={ styledField }\n >\n { children }\n </Box>\n )\n}\n)\n","import React, { useRef } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarCell } from '@react-aria/calendar'\nimport { isSameMonth, today } from '@internationalized/date'\nimport { CalendarCellProps } from './types'\nimport { Button } from '../../../../button'\n\nexport const CalendarCell = ({\n state,\n date,\n currentMonth,\n}: CalendarCellProps) => {\n const ref = useRef<HTMLButtonElement>(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n const isToday = date.compare(today(state.timeZone)) === 0\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n return (\n <chakra.td { ...cellProps }>\n <Button\n { ...buttonProps }\n ref={ ref }\n borderRadius=\"xs\"\n boxSize={ 8 }\n hidden={ isOutsideMonth }\n size=\"sm\"\n fontWeight=\"medium\"\n variant={ isSelected ? 'brand' : 'ghost' }\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"blue.500\"\n >\n { formattedDate }\n </Button>\n </chakra.td>\n )\n}\n","import React, { memo } from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/system'\nimport { DayLabelsProps } from './types'\n\nexport const DayLabels = memo(({\n weekDays,\n}: DayLabelsProps) => {\n const { dayLabel } = useMultiStyleConfig('Calendar')\n const weekDaysWithIds = weekDays.map((day, i) => ({ label: day, _id: i }))\n\n return (\n <chakra.tr>\n { weekDaysWithIds.map(({ label, _id }) => (\n <chakra.th key={ _id } __css={ dayLabel }>\n { label }\n </chakra.th>\n )) }\n </chakra.tr>\n )\n})\n","import React, { memo } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarGrid } from '@react-aria/calendar'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { Table, Tbody, Thead, Tr } from '../../../../table'\nimport { CalendarCell } from './calendar-cell'\nimport { CalendarGridProps } from './types'\nimport { DayLabels } from './day-labels'\n\nexport const CalendarGrid = memo(\n ({ state, locale, ...rest }: CalendarGridProps) => {\n const startDate = state.visibleRange.start\n const { gridProps, headerProps, weekDays } = useCalendarGrid(rest, state)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <Table variant=\"unstyled\" { ...gridProps }>\n <Thead { ...headerProps }>\n <DayLabels weekDays={ weekDays } />\n </Thead>\n <Tbody>\n { times((weekIndex) => (\n <Tr key={ weekIndex }>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date) =>\n (date ? (\n <CalendarCell\n key={ date.day }\n state={ state }\n date={ date }\n currentMonth={ startDate }\n />\n ) : (\n <chakra.td />\n ))\n ) }\n </Tr>\n ), weeksInMonth) }\n </Tbody>\n </Table>\n )\n }\n)\n","import React, { useRef } from 'react'\nimport { useButton } from '@react-aria/button'\nimport { Button } from '../../../../button'\nimport { MonthButtonProps } from './types'\n\nexport const MonthButton = ({ children, ...rest }: MonthButtonProps) => {\n const ref = useRef<HTMLButtonElement>(null)\n const { buttonProps } = useButton(rest, ref)\n\n return (\n <Button\n { ...buttonProps }\n boxSize={ 8 }\n size=\"xs\"\n variant=\"ghost\"\n ref={ ref }\n >\n { children }\n </Button>\n )\n}\n","export const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n 'January',\n]\n","import React, { ChangeEvent, useEffect, useState } from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { months } from '../constants'\nimport { MonthSelectProps } from './types'\n\nexport const MonthSelect = ({\n state,\n offset = 0,\n}: MonthSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n const start = state.visibleRange.start.add({ months: offset }).month - 1\n const [ selectedIndex, setSelectedIndex ] = useState(start)\n const [ isEditing, setIsEditing ] = useState(false)\n\n const moveStartDateBy = (inp: any) => state.visibleRange.start.add(inp)\n\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n setSelectedIndex(index)\n setIsEditing(false)\n const diff = index - start\n state.setFocusedDate(moveStartDateBy({ months: diff }))\n }\n\n useEffect(() => {\n setSelectedIndex(\n state.visibleRange.start.add({ months: offset }).month - 1\n )\n }, [ state.visibleRange ])\n\n const handleKeyDown = (e: any) => {\n switch (e.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n case ' ':\n setIsEditing((prev) => !prev)\n break\n default:\n break\n }\n }\n\n return (\n <Select\n id=\"month\"\n aria-label=\"Select Month\"\n onChange={ onChange }\n onClick={ () => setIsEditing((prev) => !prev) }\n onKeyDown={ handleKeyDown }\n value={ selectedIndex }\n iconSize=\"0px\"\n size=\"sm\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n >\n { isEditing ? (\n months.map((month, i) => (\n <option key={ month } value={ i }>\n { month }\n </option>\n ))\n ) : (\n <option value={ selectedIndex }>{ months[selectedIndex] }</option>\n ) }\n </Select>\n )\n}\n","import React from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { YearSelectProps } from './types'\n\nexport const YearSelect = ({\n onChange,\n years,\n}: YearSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n\n return (\n <Select\n id=\"year\"\n aria-label=\"Year\"\n onChange={ onChange }\n value={ 10 }\n size=\"sm\"\n iconSize=\"0px\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n >\n { years.map((year, i) => (\n <option key={ year.formatted } value={ i }>\n { year.formatted }\n </option>\n )) }\n </Select>\n\n )\n}\n","import { useDateFormatter } from '@react-aria/i18n'\nimport { UseYearsCalendarProps, UseYearsRangeCalendarProps, YearValue } from './types'\n\nexport const useYearsCalendar = ({\n state,\n}: UseYearsCalendarProps) => {\n const years: YearValue[] = []\n const formatter = useDateFormatter({ year: 'numeric', month: 'long' })\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.focusedDate.add({ years: i })\n years.push({\n value: date,\n formatted: formatter.format(date.toDate(state.timeZone)),\n })\n }\n return { years }\n}\n\nexport const useYearsRangeCalendar = ({\n state,\n offset,\n}: UseYearsRangeCalendarProps) => {\n const years: YearValue[] = []\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.visibleRange.start.add({ years: i, months: offset })\n years.push({\n value: date,\n formatted: `${date.year}`,\n })\n }\n return { years }\n}\n","import React, { ChangeEvent } from 'react'\nimport { YearSelect } from './year-select'\nimport { useYearsCalendar } from './utils'\nimport { YearSelectCalendarProps } from './types'\n\nexport const YearSelectCalendar = ({ state }: YearSelectCalendarProps) => {\n const { years } = useYearsCalendar({ state })\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const date = years[index].value\n state.setFocusedDate(date)\n }\n\n return (\n <YearSelect onChange={ onChange } years={ years } />\n )\n}\n","import React, { ChangeEvent } from 'react'\nimport { YearSelect } from './year-select'\nimport { useYearsRangeCalendar } from './utils'\nimport { YearSelectRangeCalendarProps } from './types'\n\nexport const YearSelectRangeCalendar = ({\n state,\n offset,\n}: YearSelectRangeCalendarProps) => {\n const { years } = useYearsRangeCalendar({ state, offset })\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const date = years[index].value\n state.setFocusedDate(date)\n }\n\n return (\n <YearSelect onChange={ onChange } years={ years } />\n )\n}\n","import React from 'react'\nimport { GregorianCalendar } from '@internationalized/date'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useLocale } from '@react-aria/i18n'\nimport { useCalendarState } from '@react-stately/calendar'\nimport { useCalendar } from '@react-aria/calendar'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { CalendarGrid, MonthButton } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { Icon } from '../../../icon'\nimport { YearSelectCalendar } from './date-select'\nimport { CalendarProps } from './types'\n\nexport const Calendar = (props: CalendarProps) => {\n const { locale } = useLocale()\n const { container } = useMultiStyleConfig('Calendar')\n\n const state = useCalendarState({\n ...props,\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n props,\n state\n )\n\n return (\n <Box { ...calendarProps } __css={ container }>\n <Stack>\n <Flex justifyContent=\"space-between\">\n <Box paddingInlineStart=\"2\">\n <YearSelectCalendar state={ state } />\n </Box>\n <HStack spacing={ 2 }>\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </HStack>\n </Flex>\n <CalendarGrid state={ state } locale={ locale } />\n </Stack>\n </Box>\n )\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useDatePicker } from '@react-aria/datepicker'\nimport { useDatePickerState } from '@react-stately/datepicker'\nimport { FocusScope } from '@react-aria/focus'\nimport { XCloseSolid } from '@northlight/icons'\nimport { parseDate } from '@internationalized/date'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { Calendar } from '../components/calendar'\nimport { DatePickerProps } from '../types'\nimport { IconButton } from '../../icon-button'\nimport { HStack } from '../../stack'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { Icon } from '../../icon'\nimport { Box } from '../../box'\n\n/**\n * Popover to select single date\n * @see DatePickerField\n * @see {@link https://northlight.dev/reference/date-picker}\n *\n * @example (Example)\n * ## When is your birthday\n * (?\n * () => {\n * const [ date, setDate ] = useState('2023-10-10')\n *\n * const parseDate = () => {\n * return undefined\n * }\n *\n * return (\n * <DatePicker\n * firstDayOfWeek=\"monday\"\n * resetDate={() => setDate(null)} onChange={setDate} value={parseDate(date)}/>\n * )\n * }\n *\n * ?)\n * <br />\n * ### Some notes on date format\n * As you can see in the above example, the parseDate function returns undefined.\n * The DatePicker natively handles\n * dates as a DateValue object. To get out a string value on format yyyy-mm-dd,\n * you can use the javascript <b>.toString</b> method,\n * and for getting it back from string to DateValue,\n * you can use the parseDate util.\n * <br />\n * To read more about date formatting, consult the\n * <a target=\"_blank\" style=\"fontWeight: bold;\" href=\"https://react-spectrum.adobe.com/internationalized/date/CalendarDate.html\">react aria internationalized documentation</a>\n *\n * @example (Example)\n * ## Another example\n * (?\n * <DatePicker\n * variant=\"filled\"\n * dateFormat=\"mm|dd-yyyy\"\n * />\n * ?)\n *\n */\nexport const DatePicker = (props: DatePickerProps) => {\n const {\n isDisabled,\n isClearable = true,\n resetDate,\n isInvalid = false,\n dateFormat,\n minValue,\n variant = 'outline',\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const { group } = useMultiStyleConfig('DatePicker')\n\n const state = useDatePickerState({\n ...props,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const { buttonProps, fieldProps, calendarProps, groupProps, dialogProps } =\n useDatePicker(\n { ...props, minValue: minValue || parseDate('1994-03-08') },\n state,\n ref\n )\n\n const togglePopup = () => state.setOpen(!state.isOpen)\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ () => state.setOpen(false) }\n placement=\"bottom-end\"\n >\n <PopoverAnchor>\n <HStack minW={ 56 }>\n <InputGroup { ...groupProps } ref={ ref } __css={ group }>\n <StyledField isDisabled={ isDisabled } isInvalid={ isInvalid } variant={ variant }>\n <Box\n paddingInlineStart=\"1a\"\n paddingInlineEnd={ 10 }\n >\n <DateField\n { ...fieldProps }\n dateFormat={ dateFormat }\n />\n </Box>\n </StyledField>\n <InputRightElement>\n <Trigger\n { ...buttonProps }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ resetDate }\n hidden={ !state.dateValue || !isClearable }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n </PopoverAnchor>\n { state.isOpen && (\n <PopoverContent { ...dialogProps } ref={ ref } w={ 64 } border=\"none\">\n <FocusScope contain={ true } restoreFocus={ true }>\n <Calendar { ...calendarProps } />\n </FocusScope>\n </PopoverContent>\n ) }\n </Popover>\n )\n}\n","import React from 'react'\nimport { Link, chakra } from '@chakra-ui/react'\nimport { Link as ReactRouterLink } from 'react-router-dom'\nimport { useClickable } from '@chakra-ui/clickable'\nimport { isNil } from 'ramda'\nimport { ClickableProps } from './types'\nimport { ring } from '../../utils'\n\n/**\n * Wrapper component to make children interactive\n * by taking care of focus/accessibility, will render\n * either a link or button depending on if passing\n * an href\n * @see {@link https://northlight.dev/reference/clickable}\n * @example (Example)\n * ### Click to send notification\n * (?\n * () => {\n * const [ count, setCount ] = useState(0)\n * return (\n * <Clickable onClick={ () => setCount((prev) => prev + 1) }>\n <Avatar name=\"anakin skywalker\" variant=\"rounded\" notificationCount={count}/>\n </Clickable>\n * )\n * }\n * ?)\n * @example (Example)\n * ### Rendering a link if passing href\n * (?\n <Clickable href=\"/reference/select\">\n <Center boxSize=\"3xs\" bgColor=\"gray.50\">\n Link\n </Center>\n </Clickable>\n * ?)\n *\n */\nexport const Clickable = ({ href, linkProps, ...rest }: ClickableProps) => {\n const clickable = useClickable(rest)\n\n return (\n <>\n { !isNil(href) && (\n <Link\n as={ ReactRouterLink }\n _focusVisible={ ring }\n to={ href }\n _hover={ { textDecoration: 'none' } }\n { ...linkProps }\n { ...clickable }\n />\n ) }\n { isNil(href) && <chakra.button _focusVisible={ ring } { ...clickable } /> }\n </>\n )\n}\n","export const defaultFadeDelay = 250\nexport const defaultOffset = 20\n","import { useEffect, useState } from 'react'\nimport { identity } from 'ramda'\nimport { getChildrenWithProps } from '../../utils'\nimport {\n ChildrenType,\n DurationType,\n OffsetType,\n TransitionDirection,\n} from './types'\nimport { defaultFadeDelay, defaultOffset } from './constants'\n\nconst unFocusStyles = { tabIndex: '-1' }\nexport const getChildrenWithFocus = (\n children: ChildrenType,\n disableFocus: boolean,\n show: boolean\n) =>\n (show\n ? children\n : disableFocus\n ? getChildrenWithProps(children, unFocusStyles)\n : children)\n\nexport const getDuration = (\n enterDuration: DurationType,\n exitDuration: DurationType,\n duration: DurationType\n) => {\n const inDuration = enterDuration || duration || defaultFadeDelay\n const outDuration = exitDuration || duration || defaultFadeDelay\n const transition = {\n enter: {\n duration: inDuration / 1000,\n },\n exit: {\n duration: outDuration / 1000,\n },\n }\n return transition\n}\n\nexport const getOffsets = (\n direction: TransitionDirection,\n offset: OffsetType,\n offsetX: OffsetType,\n offsetY: OffsetType\n) => {\n if (offsetX || offsetY) {\n return { offsetX, offsetY }\n }\n if (direction) {\n const delta = offset || defaultOffset\n switch (direction) {\n case 'right':\n return { offsetX: delta, offsetY: 0 }\n case 'left':\n return { offsetX: -delta, offsetY: 0 }\n case 'top':\n return { offsetX: 0, offsetY: -delta }\n case 'bottom':\n return { offsetX: 0, offsetY: delta }\n default:\n break\n }\n }\n return { offsetX: defaultOffset, offsetY: defaultOffset }\n}\n\nexport const useDelay = (\n show: boolean,\n enterDelay: number,\n exitDelay: number\n) => {\n const [ showWithDelay, setShowWithDelay ] = useState(false)\n useEffect(() => {\n const ref = setTimeout(\n () => setShowWithDelay(show),\n show ? enterDelay : exitDelay\n )\n return () => clearTimeout(ref)\n }, [ show ])\n return showWithDelay\n}\n\nexport const useHiddenDisplay = (\n anchor = false,\n exitDelay = 0,\n exitDuration: DurationType = 0,\n duration: DurationType = 0,\n onTransitionComplete: (hidden: boolean) => void = identity\n) => {\n const [ hidden, setHidden ] = useState(anchor)\n\n useEffect(() => {\n const ref = setTimeout(() => {\n setHidden(anchor)\n onTransitionComplete(anchor)\n }, exitDelay + (exitDuration || duration || 0))\n return () => clearTimeout(ref)\n }, [ anchor ])\n\n return hidden\n}\n","import React from 'react'\nimport { Fade as ChakraFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { FadeProps } from './types'\n/**\n * Simple transition to hide/show content\n * @see ScaleFade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/fade}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Render random number</Button>\n <Box borderRadius=\"st.border.radius.sm\"\n borderWidth=\"st.border.width.sm\" borderColor=\"border.default\">\n <Fade in={ show} exitDuration={1}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <H3>\n {Math.round(Math.random() * 100)}\n </H3>\n </HStack>\n </Fade>\n </Box>\n </>\n\n )\n\n}\n\n * ?)\n *\n */\nexport const Fade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: FadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraFade\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraFade>\n )\n}\n","import React from 'react'\nimport { ScaleFade as ChakraScaleFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { ScaleFadeProps } from './types'\n\n/**\n * Simple transition to hide/show content\n * @see Fade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/slide-fade}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Render random number</Button>\n <Box borderRadius=\"st.border.radius.sm\"\n borderWidth=\"st.border.width.sm\" borderColor=\"border.default\">\n <SlideFade in={ show} exitDuration={1}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <H3>\n {Math.round(Math.random() * 100)}\n </H3>\n </HStack>\n </SlideFade>\n </Box>\n </>\n )\n}\n * ?)\n *\n */\nexport const ScaleFade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: ScaleFadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraScaleFade\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraScaleFade>\n )\n}\n","import React from 'react'\nimport { Slide as ChakraSlide } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { SlideProps } from './types'\n\nexport const Slide = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n direction = 'bottom',\n onTransitionComplete = identity,\n ...rest\n}: SlideProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraSlide\n in={ showWithDelay }\n transition={ transition }\n direction={ direction }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraSlide>\n )\n}\n","import React from 'react'\nimport { SlideFade as ChakraSlideFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, getOffsets, useDelay, useHiddenDisplay } from './utils'\nimport { SlideFadeProps } from './types'\nimport { defaultOffset } from './constants'\n\nexport const SlideFade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n direction = 'bottom',\n offset: delta = defaultOffset,\n offsetX: deltaX = 0,\n offsetY: deltaY = 0,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: SlideFadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const { offsetX, offsetY } = getOffsets(direction, delta, deltaX, deltaY)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraSlideFade\n in={ showWithDelay }\n transition={ transition }\n offsetX={ offsetX }\n offsetY={ offsetY }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraSlideFade>\n )\n}\n","import React from 'react'\nimport { Collapse as ChakraCollapse } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { CollapseProps } from './types'\n\n/**\n * Simple transition to hide/show content\n * @see Fade\n * @see ScaleFade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/collapse}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Click Me</Button>\n <Box borderRadius=\"st.border.radius.sm\"\n borderWidth=\"st.border.width.sm\" borderColor=\"border.default\">\n <Collapse in={ show}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <P>\n Enable advanced mode\n </P>\n\n <Switch />\n </HStack>\n </Collapse>\n </Box>\n </>\n\n )\n\n}\n\n * ?)\n\n *\n */\n\nexport const Collapse = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: CollapseProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraCollapse\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraCollapse>\n )\n}\n","import React from 'react'\nimport { palette } from '@northlight/tokens'\nimport { Clickable } from '../../../../clickable'\nimport { P } from '../../../../typography'\n\nexport const MoveButton = (props: any) => (\n <Clickable { ...props } w=\"max-content\">\n <P\n variant=\"14\"\n _hover={ {\n borderBottomWidth: '1px',\n borderBottomStyle: 'dashed',\n borderBottomColor: palette.blue['500'],\n marginBottom: '-1px',\n } }\n _active={ {\n color: 'blue.500',\n } }\n >\n { props.children }\n </P>\n </Clickable>\n)\n","import { RangeCalendarState } from '@react-stately/calendar'\nimport { DateRangeValue } from './types'\n\nexport const validRange = (date: DateRangeValue, state: RangeCalendarState) =>\n !date || (\n (!state.minValue || date.start >= state.minValue) &&\n (!state.maxValue || date.end <= state.maxValue) &&\n date.end >= date.start\n )\n","import React from 'react'\nimport { any } from 'ramda'\nimport { HStack } from '../../../../stack'\nimport { MoveButton } from './move-button'\nimport { Icon } from '../../../../icon'\nimport { validRange } from './utils'\nimport { ButtonRowProps } from './types'\n\nexport const ButtonRow = ({\n dates,\n icon,\n getMethods,\n state,\n}: ButtonRowProps) => (\n <HStack\n display={\n any((date) => validRange(date.value, state), dates) ? 'initial' : 'none'\n }\n >\n <Icon as={ icon } color=\"blue.500\" size=\"lg\" />\n { dates.map(\n (date) =>\n validRange(date.value, state) && (\n <MoveButton { ...getMethods(date) }>{ date.label }</MoveButton>\n )\n ) }\n </HStack>\n)\n","import React, { useState } from 'react'\nimport {\n ArrowCircleLeftDuo,\n ArrowCircleRightDuo,\n ChevronDownSolid,\n ChevronUpSolid,\n} from '@northlight/icons'\nimport { CalendarDate } from '@internationalized/date'\nimport { Lead, P } from '../../../../typography'\nimport { Clickable } from '../../../../clickable'\nimport { SlideFade } from '../../../../transitions'\nimport { HStack, Stack } from '../../../../stack'\nimport { Icon } from '../../../../icon'\nimport { ButtonRow } from './button-row'\nimport { AdjustRangeProps, Date, DateRangeValue, MoveDateByType } from './types'\n\nexport const AdjustRange = ({ state, adjust = 'start' }: AdjustRangeProps) => {\n const [ isOpen, setIsOpen ] = useState(false)\n\n const moveStartDateBy = (inp: MoveDateByType) => {\n if (state.value) {\n return {\n start: state.value.start.add(inp),\n end: state.value.end,\n }\n }\n return null\n }\n\n const moveEndDateBy = (inp: MoveDateByType) => {\n if (state.value) {\n return {\n start: state.value.start,\n end: state.value.end.add(inp),\n }\n }\n return null\n }\n\n const moveStartDayBack = {\n value: moveStartDateBy({ days: -1 }),\n label: 'Day',\n }\n\n const moveStartWeekBack = {\n value: moveStartDateBy({ weeks: -1 }),\n label: 'Week',\n }\n\n const moveStartMonthBack = {\n value: moveStartDateBy({ months: -1 }),\n label: 'Month',\n }\n\n const moveStartYearBack = {\n value: moveStartDateBy({ years: -1 }),\n label: 'Year',\n }\n\n const moveStartDayForward = {\n value: moveStartDateBy({ days: 1 }),\n label: 'Day',\n }\n\n const moveStartWeekForward = {\n value: moveStartDateBy({ weeks: 1 }),\n label: 'Week',\n }\n\n const moveStartMonthForward = {\n value: moveStartDateBy({ months: 1 }),\n label: 'Month',\n }\n\n const moveStartYearForward = {\n value: moveStartDateBy({ years: 1 }),\n label: 'Year',\n }\n\n const moveStartBack = [\n moveStartDayBack,\n moveStartWeekBack,\n moveStartMonthBack,\n moveStartYearBack,\n ]\n\n const moveStartForward = [\n moveStartDayForward,\n moveStartWeekForward,\n moveStartMonthForward,\n moveStartYearForward,\n ]\n\n const moveEndDayBack = {\n value: moveEndDateBy({ days: -1 }),\n label: 'Day',\n }\n\n const moveEndWeekBack = {\n value: moveEndDateBy({ weeks: -1 }),\n label: 'Week',\n }\n\n const moveEndMonthBack = {\n value: moveEndDateBy({ months: -1 }),\n label: 'Month',\n }\n\n const moveEndYearBack = {\n value: moveEndDateBy({ years: -1 }),\n label: 'Year',\n }\n\n const moveEndDayForward = {\n value: moveEndDateBy({ days: 1 }),\n label: 'Day',\n }\n\n const moveEndWeekForward = {\n value: moveEndDateBy({ weeks: 1 }),\n label: 'Week',\n }\n\n const moveEndMonthForward = {\n value: moveEndDateBy({ months: 1 }),\n label: 'Month',\n }\n\n const moveEndYearForward = {\n value: moveEndDateBy({ years: 1 }),\n label: 'Year',\n }\n\n const moveEndBack = [\n moveEndDayBack,\n moveEndWeekBack,\n moveEndMonthBack,\n moveEndYearBack,\n ]\n\n const moveEndForward = [\n moveEndDayForward,\n moveEndWeekForward,\n moveEndMonthForward,\n moveEndYearForward,\n ]\n\n const updateDate =\n (newDate: DateRangeValue, focusOnStart = true) =>\n () => {\n if (newDate) {\n state.setValue(newDate)\n state.setFocusedDate(\n focusOnStart\n ? newDate.start as CalendarDate\n : newDate.end as CalendarDate\n )\n }\n }\n\n const getMethodsStart = (date: Date) => ({\n onClick: updateDate(date.value, true),\n })\n\n const getMethodsEnd = (date: Date) => ({\n onClick: updateDate(date.value, false),\n })\n\n return (\n <Stack\n spacing={ 2 }\n visibility={ state.value === null ? 'hidden' : 'visible' }\n pt=\"2\"\n >\n <Clickable onClick={ () => setIsOpen((prev) => !prev) }>\n <HStack>\n <P variant=\"14\">Adjust { adjust }</P>\n <Icon as={ isOpen ? ChevronUpSolid : ChevronDownSolid } size=\"xs\" />\n </HStack>\n </Clickable>\n <SlideFade in={ isOpen } direction=\"top\" hideDisplay={ true }>\n { adjust === 'start' && (\n <Stack minH=\"91px\">\n <Lead sx={ { fontSize: '12px' } }>Move date</Lead>\n <ButtonRow\n icon={ ArrowCircleLeftDuo }\n dates={ moveStartBack }\n getMethods={ getMethodsStart }\n state={ state }\n />\n <ButtonRow\n icon={ ArrowCircleRightDuo }\n dates={ moveStartForward }\n getMethods={ getMethodsStart }\n state={ state }\n />\n </Stack>\n ) }\n { adjust === 'end' && (\n <Stack minH=\"91px\">\n <Lead sx={ { fontSize: '12px' } }>Move date</Lead>\n <ButtonRow\n icon={ ArrowCircleLeftDuo }\n dates={ moveEndBack }\n getMethods={ getMethodsEnd }\n state={ state }\n />\n <ButtonRow\n icon={ ArrowCircleRightDuo }\n dates={ moveEndForward }\n getMethods={ getMethodsEnd }\n state={ state }\n />\n </Stack>\n ) }\n </SlideFade>\n </Stack>\n )\n}\n","import React, { useRef } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarCell } from '@react-aria/calendar'\nimport { isSameMonth, today } from '@internationalized/date'\nimport { RangeCellProps } from './types'\n\nexport const RangeCell = ({ state, date, currentMonth }: RangeCellProps) => {\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n if (isOutsideMonth) return <chakra.td />\n\n const ref = useRef<HTMLButtonElement>(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isToday = date.compare(today(state.timeZone)) === 0\n\n return (\n <chakra.td { ...cellProps }>\n <chakra.button\n { ...buttonProps }\n type=\"button\"\n ref={ ref }\n borderRadius=\"xs\"\n bgColor={ isSelected ? 'blue.500' : 'transparent' }\n color={ isSelected ? 'text.inverted' : 'text.default' }\n fontSize=\"sm\"\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"blue.500\"\n mx=\"-0a\"\n my=\"0a\"\n zIndex=\"docked\"\n transition=\"none\"\n w=\"8\"\n h=\"8\"\n fontWeight=\"medium\"\n _focusVisible={ {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n } }\n _hover={ {\n bgColor: isSelected ? 'blue.400' : 'bg.filled',\n _disabled: {\n bgColor: 'transparent',\n },\n } }\n _disabled={ {\n opacity: 0.3,\n } }\n >\n { formattedDate }\n </chakra.button>\n </chakra.td>\n )\n}\n","import React from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarGrid } from '@react-aria/calendar'\nimport { endOfMonth, getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { Box } from '../../../../box'\nimport { DayLabels } from './day-labels'\nimport { RangeCell } from './range-cell'\nimport { RangeCalendarGridProps } from './types'\n\nexport const RangeCalendarGrid = ({ state, locale, offset = {} }: RangeCalendarGridProps) => {\n const startDate = state.visibleRange.start.add(offset)\n const endDate = endOfMonth(startDate)\n\n const { gridProps, headerProps, weekDays } = useCalendarGrid({ startDate, endDate }, state)\n const weeksInMonth = getWeeksInMonth(state.visibleRange.start, locale)\n\n return (\n <Box h=\"245px\" p=\"0\">\n <chakra.table { ...gridProps } sx={ { borderSpacing: '0px' } }>\n <chakra.thead { ...headerProps }>\n <DayLabels weekDays={ weekDays } />\n </chakra.thead>\n <chakra.tbody>\n { times((weekIndex) => (\n <chakra.tr key={ weekIndex }>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date, i) =>\n (date ? (\n <RangeCell\n key={ i as number }\n state={ state }\n date={ date }\n currentMonth={ startDate }\n locale={ locale }\n />\n ) : (\n <chakra.td key={ i as number } />\n ))\n ) }\n </chakra.tr>\n ), weeksInMonth + 1) }\n </chakra.tbody>\n </chakra.table>\n\n </Box>\n )\n}\n","import React from 'react'\nimport { Clickable } from '../../../../clickable'\nimport { Label } from '../../../../typography'\nimport { Flex } from '../../../../flex'\nimport { DateButtonProps } from './types'\n\nexport const DateButton = ({\n isActive,\n onClick,\n children,\n}: DateButtonProps) => (\n <Flex maxW=\"120px\">\n <Clickable onClick={ onClick }>\n <Label\n _hover={ {\n fontWeight: 'semibold',\n } }\n sx={ {\n color: isActive ? 'background.button.brand' : 'text.default',\n cursor: 'pointer',\n fontWeight: isActive ? 'semibold' : 'regular',\n } }\n _active={ {\n fontWeight: 'semibold',\n } }\n h=\"8\"\n >\n { children }\n </Label>\n </Clickable>\n </Flex>\n)\n","import {\n CalendarDate,\n endOfMonth,\n endOfWeek,\n endOfYear,\n startOfMonth,\n startOfWeek,\n startOfYear,\n today,\n} from '@internationalized/date'\nimport { RangeCalendarState } from '@react-stately/calendar'\n\nexport const getQuickSelectOptions = (\n state: RangeCalendarState,\n locale: string,\n fiscalStartMonth: number,\n fiscalStartDay: number\n) => {\n const thisDay = today(state.timeZone)\n\n const startOfMonthWithDays = (date: CalendarDate,\n { months, days }: { months: number, days: number }) => {\n const start = date.add({ months }).set({ day: days })\n return start\n }\n\n const endOfMonthWithDays = (date: CalendarDate,\n { months, days }:{ months: number, days: number }) => {\n const end = date.add({ months }).set({ day: days }).subtract({ days: 1 })\n return end\n }\n\n const thisWeek = {\n value: {\n start: startOfWeek(thisDay, locale),\n end: endOfWeek(thisDay, locale),\n },\n label: 'This Week',\n }\n\n const lastWeek = {\n value: {\n start: startOfWeek(thisDay.subtract({ weeks: 1 }), locale),\n end: endOfWeek(thisDay.subtract({ weeks: 1 }), locale),\n },\n label: 'Last Week',\n }\n\n const thisMonth = {\n value: {\n start: startOfMonth(thisDay),\n end: endOfMonth(thisDay),\n },\n label: 'This month',\n }\n\n const lastMonth = {\n value: {\n start: startOfMonth(thisDay.subtract({ months: 1 })),\n end: endOfMonth(thisDay.subtract({ months: 1 })),\n },\n label: 'Last Month',\n }\n\n const thisYear = {\n value: {\n start: startOfYear(thisDay),\n end: endOfYear(thisDay),\n },\n label: 'This Year',\n }\n\n const lastYear = {\n value: {\n start: startOfYear(thisDay.subtract({ years: 1 })),\n end: endOfYear(thisDay.subtract({ years: 1 })),\n },\n label: 'Last Year',\n }\n\n const nextMonth = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 1 })),\n },\n label: 'Next Month',\n }\n\n const nextThreeMonths = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 3 })),\n },\n label: 'Next 3 Months',\n }\n\n const nextSixMonths = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 6 })),\n },\n label: 'Next 6 Months',\n }\n\n const nextYear = {\n value: {\n start: startOfYear(thisDay.add({ years: 1 })),\n end: endOfYear(thisDay.add({ years: 1 })),\n },\n label: 'Next Year',\n }\n\n const thisFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 11, days: fiscalStartDay }\n ),\n },\n label: 'This Fiscal Year',\n }\n\n const lastFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: 1 }),\n { months: fiscalStartMonth, days: fiscalStartDay - 1 }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: 1 }),\n { months: fiscalStartMonth + 11, days: fiscalStartDay }\n ),\n },\n label: 'Last Fiscal Year',\n }\n\n const F1 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 2, days: fiscalStartDay }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q1' : 'FQ1',\n }\n\n const F2 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 3, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 5, days: fiscalStartDay }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q2' : 'FQ2',\n }\n\n const F3 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 6, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 8, days: fiscalStartDay }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q3' : 'FQ3',\n }\n\n const F4 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 9, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 11, days: fiscalStartDay }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q4' : 'FQ4',\n }\n\n const fiscalQuarters = [ F1, F2, F3, F4 ]\n const fiscalYears =\n fiscalStartMonth === 0 ? [] : [ thisFiscalYear, lastFiscalYear ]\n\n const quickDates = [\n thisWeek,\n lastWeek,\n thisMonth,\n lastMonth,\n thisYear,\n lastYear,\n nextMonth,\n nextThreeMonths,\n nextSixMonths,\n nextYear,\n ...fiscalYears,\n ]\n\n return { quickDates, fiscalQuarters }\n}\n","import React, { useMemo } from 'react'\nimport { CalendarDate } from '@internationalized/date'\nimport { any, equals, map } from 'ramda'\nimport { palette } from '@northlight/tokens'\nimport { Flex } from '../../../../flex'\nimport { Stack } from '../../../../stack'\nimport { Box } from '../../../../box'\nimport { DateButton } from './date-button'\nimport { validRange } from './utils'\nimport { Date, DateRangeValue, QuickSelectProps } from './types'\nimport { getQuickSelectOptions } from './get-quick-select-options'\n\nconst seperator = `1px solid ${palette.gray['100']}`\n\nexport const QuickSelect = ({\n state,\n fiscalStartMonth = 0,\n fiscalStartDay = 0,\n updateVisibleRange,\n locale = '',\n height = 'xs',\n}: QuickSelectProps) => {\n const { quickDates, fiscalQuarters } = useMemo(\n () => getQuickSelectOptions(state, locale, fiscalStartMonth, fiscalStartDay),\n []\n )\n\n const updateDate = (newDate: DateRangeValue) => () => {\n if (newDate) {\n state.setValue(newDate)\n state.setFocusedDate(newDate.start as CalendarDate)\n updateVisibleRange()\n }\n }\n\n const getIsActive = (newDate: Date) => equals(state.value, newDate.value)\n\n const shouldShow = (dates: Date[]) =>\n any((date) => validRange(date.value, state), dates)\n\n return (\n <Stack alignItems=\"start\" borderRight={ seperator } pt=\"2\">\n <Stack\n h={ height }\n overflowY=\"hidden\"\n pr=\"4\"\n _hover={ { overflowY: 'scroll' } }\n w=\"36\"\n display={ shouldShow(quickDates) ? 'initial' : 'none' }\n mb=\"4\"\n >\n { map(\n (quickDate) =>\n validRange(quickDate.value, state) && (\n <Box minH=\"20px\" key={ `quick-select-${quickDate.label}` }>\n <DateButton\n onClick={ updateDate(quickDate.value) }\n isActive={ getIsActive(quickDate) }\n >\n { quickDate.label }\n </DateButton>\n </Box>\n ),\n quickDates\n ) }\n </Stack>\n <Box\n w=\"50%\"\n borderTop={ seperator }\n display={ shouldShow(fiscalQuarters) ? 'initial' : 'none' }\n />\n <Flex\n justifyContent=\"space-between\"\n w=\"full\"\n pt=\"2\"\n pr=\"4\"\n display={ shouldShow(fiscalQuarters) ? 'flex' : 'none' }\n >\n { map(\n (quarter) =>\n validRange(quarter.value, state) && (\n <DateButton\n onClick={ updateDate(quarter.value) }\n isActive={ getIsActive(quarter) }\n key={ `quick-select-${quarter.label}` }\n >\n { quarter.label }\n </DateButton>\n ),\n fiscalQuarters\n ) }\n </Flex>\n </Stack>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { GregorianCalendar } from '@internationalized/date'\nimport { useLocale } from '@react-aria/i18n'\nimport { useRangeCalendarState } from '@react-stately/calendar'\nimport { useRangeCalendar } from '@react-aria/calendar'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { ChevronLeftSolid, ChevronRightSolid, ChevronSelectorVerticalSolid } from '@northlight/icons'\nimport { RangeCalendarProps } from './types'\nimport { Button } from '../../../button'\nimport { Label } from '../../../typography'\nimport { AdjustRange } from './quick-navigation/adjust-range'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { MonthButton } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { Icon } from '../../../icon'\nimport { RangeCalendarGrid } from './components/range-grid'\nimport { QuickSelect } from './quick-navigation/quick-select'\nimport { months } from './constants'\nimport { MonthSelect } from './date-select/month-select'\nimport { YearSelectRangeCalendar } from './date-select'\n\nexport const RangeCalendar = (props: RangeCalendarProps) => {\n const { locale } = useLocale()\n\n /*\n when setting custom focusedDate with visibleDuration > 1\n it does not update visibleRange accordingly,\n this boolean updateRange switches value of visibleDuration to 1,\n to compute visibleRange accurately, and then switch back to update UI\n */\n const [ updateRange, setUpdateRange ] = useState(false)\n\n const state = useRangeCalendarState({\n ...props,\n visibleDuration: { months: updateRange ? 1 : 2 },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n useEffect(() => {\n if (updateRange) {\n setUpdateRange(false)\n }\n }, [ updateRange ])\n\n const ref = useRef<HTMLDivElement>(null)\n const { rangeCalendarContainer } = useMultiStyleConfig('Calendar')\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n props,\n state,\n ref\n )\n\n const { fiscalStartMonth, fiscalStartDay, handleClose, resetDate, isClearable = true } = props\n\n return (\n <Box { ...calendarProps } ref={ ref } __css={ rangeCalendarContainer }>\n <Stack>\n <Flex gap={ 4 }>\n <QuickSelect\n state={ state }\n updateVisibleRange={ () => setUpdateRange(true) }\n locale={ locale }\n fiscalStartMonth={ fiscalStartMonth }\n fiscalStartDay={ fiscalStartDay }\n />\n <Stack>\n <HStack spacing={ 2 } alignSelf=\"center\">\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <Box w=\"52\">\n <Label textAlign=\"center\">\n { months[state.visibleRange.start.month - 1] } -{ ' ' }\n { months[state.visibleRange.start.month] }\n { ' ' }\n { state.visibleRange.end.year }\n </Label>\n </Box>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </HStack>\n <HStack alignItems=\"start\" spacing={ 4 }>\n <Stack>\n <HStack alignSelf=\"center\" spacing=\"0a\">\n <MonthSelect state={ state } offset={ 0 } />\n <YearSelectRangeCalendar state={ state } offset={ 0 } />\n <Icon as={ ChevronSelectorVerticalSolid } size=\"xs\" fontWeight=\"bold\" />\n </HStack>\n <RangeCalendarGrid state={ state } locale={ locale } />\n <AdjustRange state={ state } adjust=\"start\" />\n </Stack>\n <Stack>\n <HStack alignSelf=\"center\" spacing=\"0a\">\n <MonthSelect state={ state } offset={ 1 } />\n <YearSelectRangeCalendar state={ state } offset={ 1 } />\n <Icon as={ ChevronSelectorVerticalSolid } size=\"xs\" fontWeight=\"bold\" />\n </HStack>\n <RangeCalendarGrid\n state={ state }\n offset={ { months: 1 } }\n locale={ locale }\n />\n <AdjustRange state={ state } adjust=\"end\" />\n <HStack alignSelf=\"end\" pt=\"2\">\n { isClearable && (\n <Button onClick={ resetDate } variant=\"ghost\" size=\"sm\">\n Clear\n </Button>\n ) }\n <Button variant=\"brand\" onClick={ handleClose } size=\"sm\">\n Save\n </Button>\n </HStack>\n </Stack>\n </HStack>\n </Stack>\n </Flex>\n </Stack>\n </Box>\n )\n}\n","import React, { useRef } from 'react'\nimport { GregorianCalendar } from '@internationalized/date'\nimport { useLocale } from '@react-aria/i18n'\nimport { useRangeCalendarState } from '@react-stately/calendar'\nimport { useRangeCalendar } from '@react-aria/calendar'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { RangeCalendarProps } from './types'\nimport { Button } from '../../../button'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { MonthButton } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { Icon } from '../../../icon'\nimport { RangeCalendarGrid } from './components/range-grid'\nimport { QuickSelect } from './quick-navigation/quick-select'\nimport { MonthSelect, YearSelectRangeCalendar } from './date-select'\n\nexport const SimpleRangeCalendar = (props: RangeCalendarProps) => {\n const { locale } = useLocale()\n\n const state = useRangeCalendarState({\n ...props,\n visibleDuration: { months: 1 },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const ref = useRef<HTMLDivElement>(null)\n const { rangeCalendarContainer } = useMultiStyleConfig('Calendar')\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n props,\n state,\n ref\n )\n\n const { fiscalStartMonth, fiscalStartDay, handleClose, resetDate, isClearable = true } = props\n\n return (\n <Box { ...calendarProps } ref={ ref } __css={ rangeCalendarContainer }>\n <Stack>\n <Flex gap={ 4 }>\n <QuickSelect\n state={ state }\n updateVisibleRange={ () => {} }\n locale={ locale }\n fiscalStartMonth={ fiscalStartMonth }\n fiscalStartDay={ fiscalStartDay }\n height=\"72\"\n />\n <Stack>\n <HStack spacing={ 2 } alignSelf=\"center\">\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <HStack w=\"full\" justify=\"center\">\n <MonthSelect state={ state } offset={ 0 } />\n <YearSelectRangeCalendar state={ state } offset={ 0 } />\n </HStack>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </HStack>\n <Stack h=\"full\" justify=\"space-between\">\n <RangeCalendarGrid state={ state } locale={ locale } />\n <HStack alignSelf=\"end\" pt=\"2\">\n { isClearable && (\n <Button onClick={ resetDate } variant=\"ghost\" size=\"sm\">\n Clear\n </Button>\n ) }\n <Button variant=\"brand\" onClick={ handleClose } size=\"sm\">\n Save\n </Button>\n </HStack>\n </Stack>\n </Stack>\n </Flex>\n </Stack>\n </Box>\n )\n}\n","import { has, is } from 'ramda'\n\nexport const isValidDateRange = (value: unknown) => (\n is(Object, value) &&\n has('startDate', value) &&\n has('endDate', value) &&\n is(String, value.startDate) &&\n is(String, value.endDate)\n)\n","import React, { useRef } from 'react'\nimport { FocusScope } from '@react-aria/focus'\nimport { useDateRangePickerState } from '@react-stately/datepicker'\nimport { useDateRangePicker } from '@react-aria/datepicker'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity, isNil } from 'ramda'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { DateRange } from '@react-types/datepicker'\nimport { RangeCalendar } from '../components/calendar/quick-navigation'\nimport { P } from '../../typography'\nimport { HStack } from '../../stack'\nimport { DateRangePickerProps } from '../types'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { IconButton } from '../../icon-button'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Icon } from '../../icon'\nimport { SimpleRangeCalendar } from '../components/calendar/simple-range-calendar'\nimport { isValidDateRange } from '../date-picker-field/utils'\n\nconst parseValue = (value: any) => {\n if (!isValidDateRange(value)) return null\n return { start: parseDate(value.startDate), end: parseDate(value.endDate) }\n}\n\n/**\n * Popover to choose date range on format {startDate:' yyyy-mm-dd', endDate: 'yyyy-mm-dd'}\n *\n * @see DatePicker\n * @see DateRangePickerField\n * @see {@link https://northlight.dev/reference/date-range-picker}\n * @example (Example)\n * ## Advanced Mode\n * (Due to it being harder to setup normal date range picker,\n * the date range picker field is demoed,\n * here, you need to pass down and parse a value for the date range picker for it to work properly,\n * consult the date picker documentation and the source code for date range picker\n * field for appropiate use)\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField name=\"date\"/>\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## Simple mode\n * The previous example was the date range picker variant\n * for which we call advance, this one is a simpler version with the same core functionality:\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField name=\"date\" mode=\"simple\"/>\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## Sophisticated example\n * The `DateRangePickerField` can have **fiscalStartMonth** and **fiscalStartDay** as a `number`\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField\n * name=\"date\"\n * mode=\"advanced\"\n * variant=\"filled\"\n * fiscalStartMonth={3}\n * fiscalStartDay={5}\n * dateFormat=\"mm|dd-yyyy\"\n * minValue=\"2023-01-01\"\n * maxValue=\"2028-01-01\"\n * />\n * </Form>\n * ?)\n */\nexport const DateRangePicker = (props: DateRangePickerProps) => {\n const {\n isDisabled,\n isClearable = true,\n resetDate,\n isInvalid = false,\n dateFormat,\n fiscalStartMonth,\n fiscalStartDay,\n mode = 'advanced',\n variant = 'outline',\n onChange: onChangeCallback = identity,\n value,\n minValue = '1994-03-08',\n maxValue,\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const { group } = useMultiStyleConfig('DatePicker')\n const parsedProps = {\n onChange: (date: DateRange) => {\n onChangeCallback({\n startDate: date?.start.toString(),\n endDate: date?.end.toString(),\n })\n },\n value: parseValue(value) as ({ start: DateValue, end: DateValue }),\n minValue: isNil(minValue) ? undefined : parseDate(minValue) as DateValue,\n maxValue: isNil(maxValue) ? undefined : parseDate(maxValue) as DateValue,\n }\n\n const state = useDateRangePickerState({\n ...props,\n ...parsedProps,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const {\n groupProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDateRangePicker(\n {\n ...props,\n ...parsedProps,\n minValue: parsedProps.minValue || parseDate('1994-03-08'),\n },\n state,\n ref\n )\n\n const togglePopup = () => state.setOpen(!state.isOpen)\n\n const handleClose = () => {\n state.setOpen(false)\n }\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ handleClose }\n placement=\"bottom-start\"\n >\n <PopoverAnchor>\n <HStack>\n <InputGroup { ...groupProps } ref={ ref } __css={ group }>\n <StyledField isDisabled={ isDisabled } isInvalid={ isInvalid } variant={ variant }>\n <HStack\n paddingInlineStart=\"1a\"\n paddingInlineEnd={ 10 }\n >\n <DateField\n { ...startFieldProps }\n dateFormat={ dateFormat }\n />\n <P>-</P>\n <DateField\n { ...endFieldProps }\n dateFormat={ dateFormat }\n />\n </HStack>\n </StyledField>\n <InputRightElement>\n <Trigger\n { ...buttonProps }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ resetDate }\n hidden={ !isClearable }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n </PopoverAnchor>\n { state.isOpen && (\n <PopoverContent { ...dialogProps } ref={ ref } w=\"max-content\">\n <FocusScope contain={ true } restoreFocus={ true }>\n { mode === 'simple' && (\n <SimpleRangeCalendar\n { ...calendarProps }\n resetDate={ resetDate }\n handleClose={ handleClose }\n fiscalStartMonth={ fiscalStartMonth || 0 }\n fiscalStartDay={ fiscalStartDay || 0 }\n isClearable={ isClearable }\n />\n ) }\n {\n mode === 'advanced' && (\n <RangeCalendar\n { ...calendarProps }\n resetDate={ resetDate }\n handleClose={ handleClose }\n fiscalStartMonth={ fiscalStartMonth || 0 }\n fiscalStartDay={ fiscalStartDay || 0 }\n isClearable={ isClearable }\n />\n ) }\n </FocusScope>\n </PopoverContent>\n ) }\n </Popover>\n )\n}\n","import React from 'react'\nimport { all, isNil, not } from 'ramda'\nimport { InputGroup } from '../../components/input'\nimport { InputGroupWrapperProps } from './types'\n\nexport const InputGroupWrapper = ({\n inputLeftElement,\n inputRightElement,\n children,\n ...rest\n}: InputGroupWrapperProps) => {\n const containsInputGroupElement =\n not(all(isNil, [ inputLeftElement, inputRightElement ]))\n\n return containsInputGroupElement\n ? (\n <InputGroup { ...rest }>\n { inputLeftElement }\n { children }\n { inputRightElement }\n </InputGroup>\n )\n : <>{ children }</>\n}\n","import React from 'react'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { identity } from 'ramda'\nimport { DatePickerFieldProps } from '../types'\nimport { Field } from '../../form'\nimport { DatePicker } from '../date-picker/date-picker'\nimport { useFormContext } from '../../../hooks'\nimport { InputGroupWrapper } from '../../../internal-components/input-group-wrapper'\n\n/**\n * The <DatePicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see DatePicker\n * @see {@link https://northlight.dev/reference/date-picker-field}\n *\n * @example (Example)\n * ##Fill in your information:\n * (?\n * <Form initialValues={{date: null}}>\n * <DatePickerField name=\"date\" />\n * </Form>\n *\n * ?)\n * <br />\n * ###The simplest way\n * Using the date picker in a form is probably the easiest\n * way to use it, it will handle the state for you and you\n * can retrieve the date at the end as a string on format\n * yyyy-mm-dd on the onSubmit callback on <Form>\n *\n */\nexport const DatePickerField = ({\n name,\n minValue,\n maxValue,\n isRequired,\n direction = 'column',\n label,\n validate,\n firstDayOfWeek = 'monday',\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: DatePickerFieldProps) => {\n const { setValue, setError, trigger } = useFormContext()\n\n const handleChange = (date: DateValue) => {\n setValue(name, date?.toString())\n if ((minValue && date < parseDate(minValue)) || (maxValue && date > parseDate(maxValue))) {\n setError(name, {\n type: 'custom',\n message: minValue && maxValue\n ? `Date must be between ${minValue}-${maxValue}`\n : minValue\n ? `Select date earliest at ${minValue}`\n : `Select date latest at ${maxValue}`\n ,\n })\n } else {\n trigger(name)\n }\n onChangeCallback(date)\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <DatePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n resetDate={ () => onChange(null) }\n value={ value ? parseDate(value) as any : null }\n minValue={ minValue ? parseDate(minValue) as DateValue : undefined }\n maxValue={ maxValue ? parseDate(maxValue) as DateValue : undefined }\n validationState={ errors.name ? 'invalid' : 'valid' }\n { ...rest as any }\n />\n </InputGroupWrapper>\n ) }\n </Field>\n\n )\n}\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { DateRangePickerFieldProps, FormBody } from '../types'\nimport { Field } from '../../form'\nimport { DateRangePicker } from '../date-picker/date-range-picker'\nimport { useFormContext } from '../../../hooks'\n\n/**\n * The <DateRangePicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see DateRangePicker\n * @see {@link https://northlight.dev/reference/date-range-picker-field}\n *\n */\nexport const DateRangePickerField = ({\n name,\n minValue,\n maxValue,\n isRequired,\n direction = 'column',\n label,\n validate,\n firstDayOfWeek = 'monday',\n onChange: onChangeCallback = identity,\n isClearable = true,\n ...rest\n}: DateRangePickerFieldProps) => {\n const { setValue, setError, trigger } = useFormContext<FormBody>()\n\n const handleChange = (dateRange: { startDate: string, endDate: string }) => {\n setValue(name, dateRange)\n if (\n (minValue && dateRange?.startDate < minValue) ||\n (maxValue && dateRange?.endDate > maxValue)\n ) {\n setError(name, {\n type: 'custom',\n message:\n minValue && maxValue\n ? `Date must be between ${minValue}-${maxValue}`\n : minValue\n ? `Select date earliest at ${minValue}`\n : `Select date latest at ${maxValue}`,\n })\n } else {\n trigger(name)\n }\n onChangeCallback(dateRange)\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <DateRangePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n resetDate={ () => onChange(null) }\n value={ value }\n minValue={ minValue }\n maxValue={ maxValue }\n validationState={ errors.name ? 'invalid' : 'valid' }\n isClearable={ isClearable }\n { ...(rest as any) }\n />\n ) }\n </Field>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { coreZIndex } from '@northlight/tokens'\nimport { FocusScope } from '@react-aria/focus'\nimport { Flex } from '../flex'\nimport { Slide } from '../transitions'\nimport { Box } from '../box'\nimport { Portal } from '../portal'\nimport { ToolboxProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\n\n/**\n * Controllable Sidebar drawer\n * @see Slide\n * @see {@link https://northlight.dev/reference/toolbox}\n * @example\n * (?\n *() => {\n const { isOpen, onOpen, onClose } = useDisclosure()\n return (\n <Flex>\n <Button onClick={ onOpen } w=\"full\">\n Open Toolbox\n </Button>\n <Toolbox isOpen={ isOpen } onClose={ onClose } size=\"md\">\n <ToolboxHeader>Title</ToolboxHeader>\n <ToolboxContent>\n <Stack>\n <Input />\n <Input />\n </Stack>\n </ToolboxContent>\n <ToolboxFooter justifyContent=\"end\" gap=\"2\">\n <Button variant=\"ghost\">Cancel</Button>\n <Button variant=\"brand\">Save</Button>\n </ToolboxFooter>\n </Toolbox>\n </Flex>\n )\n }\n * ?)\n */\nexport const Toolbox = ({\n isOpen = false,\n children,\n direction = 'right',\n shouldPush = false,\n size = 'md',\n width,\n onClose,\n autoFocus = true,\n ...rest\n}: ToolboxProps) => {\n const { container } = useMultiStyleConfig('Toolbox', { size })\n\n const newChildren = getChildrenWithProps(children, { onClose }, (_child, i) => i === 0)\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n onClose?.()\n }\n }\n\n const toolboxWidth = (width ?? container.w) as string\n\n return (\n <Box w={ toolboxWidth } display={ isOpen && shouldPush ? 'initial' : 'none' }>\n <Portal>\n <Slide\n direction={ direction }\n in={ isOpen }\n style={ {\n height: container.h as string,\n width: toolboxWidth,\n zIndex: coreZIndex.overlay,\n } }\n >\n <Flex sx={ { ...container, w: toolboxWidth } } { ...rest } onKeyDown={ handleKeyDown }>\n <FocusScope autoFocus={ autoFocus }>\n { newChildren }\n </FocusScope>\n </Flex>\n </Slide>\n </Portal>\n </Box>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { CloseButton } from '../close-button'\nimport { Flex } from '../flex'\nimport { ToolboxHeaderProps } from './types'\nimport { H3 } from '../typography'\n\n/**\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-header}\n *\n */\nexport const ToolboxHeader = ({\n children,\n onClose,\n ...rest\n}: ToolboxHeaderProps) => {\n const { header } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex sx={ header } { ...rest }>\n { typeof children === 'string' ? <H3>{ children }</H3> : children }\n <CloseButton\n aria-label=\"Close toolbox\"\n position=\"fixed\"\n right={ 4 }\n onClick={ onClose }\n />\n </Flex>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { Flex } from '../flex'\nimport { ToolboxContentProps } from './types'\n\n/**\n * Main content of toolbox drawer\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-content}\n */\nexport const ToolboxContent = ({ children, ...rest }: ToolboxContentProps) => {\n const { body } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex\n sx={ body }\n { ...rest }\n >\n { children }\n </Flex>\n )\n}\n","import { useMultiStyleConfig } from '@chakra-ui/system'\nimport React from 'react'\nimport { Flex } from '../flex'\nimport { ToolboxFooterProps } from './types'\n\n/**\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-footer}\n */\nexport const ToolboxFooter = ({ children, ...rest }: ToolboxFooterProps) => {\n const { footer } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex sx={ footer } { ...rest }>\n { children }\n </Flex>\n )\n}\n","import React from 'react'\nimport { Radio as ChakraRadio } from '@chakra-ui/react'\nimport { RadioProps } from './types'\n\n/**\n * @see RadioGroup\n * @see {@link https://northlight.dev/reference/radio}\n */\nexport const Radio = ({\n size = 'md',\n onChange,\n name,\n value,\n ...rest\n}: RadioProps) => (\n <ChakraRadio\n size={ size }\n id={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { RadioGroup as ChakraRadioGroup } from '@chakra-ui/react'\nimport { RadioGroupProps } from './types'\nimport { Stack } from '../stack'\n\n/**\n * Wrapper to select one of multiple options\n * @see {@link https://northlight.dev/reference/radio-group}\n * @example\n * (?\n <RadioGroup>\n <HStack>\n <Radio value=\"1\" />\n <Radio value=\"2\" />\n <Radio value=\"3\" />\n </HStack>\n </RadioGroup>\n * ?)\n *\n */\nexport const RadioGroup = ({\n direction = 'row',\n children,\n name,\n ...rest\n}: RadioGroupProps) => (\n <ChakraRadioGroup name={ name } id={ name } { ...rest }>\n <Stack direction={ direction }>{ children }</Stack>\n </ChakraRadioGroup>\n)\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { RadioFieldGroupProps } from './types'\nimport { Field } from '../form'\nimport { RadioGroup } from './radio-group'\nimport { Box } from '../box'\n\n/**\n * The radio group component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see RadioGroup\n * @see Radio\n * @see {@link https://northlight.dev/reference/radio-group-field}\n *\n */\nexport const RadioGroupField = ({\n name,\n label,\n children,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: RadioFieldGroupProps) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <RadioGroup\n name={ name }\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n direction={ direction }\n value={ value }\n data-testid=\"radio-group-field-test-id\"\n { ...rest }\n >\n { children }\n </RadioGroup>\n ) }\n </Field>\n </Box>\n)\n","export const carouselItemWidth = 150\nexport const carouselItemSpacing = 60\n","import React from 'react'\nimport { motion } from 'framer-motion'\nimport { Center } from '../center'\nimport { carouselItemWidth } from './constants'\nimport { CarouselItemProps } from './types'\n\nconst variants = {\n active: { scale: 1.15, opacity: 1 },\n inActive: { scale: 0.95, opacity: 0.7 },\n}\n\nexport const CarouselItem = ({\n children,\n isActive = false,\n itemWidth = carouselItemWidth,\n itemHeight = carouselItemWidth,\n}: CarouselItemProps) => (\n <motion.div animate={ isActive ? 'active' : 'inActive' } variants={ variants }>\n <Center minW={ `${itemWidth}px` } h={ `${itemHeight}px ` }>\n { children }\n </Center>\n </motion.div>\n)\n","import React from 'react'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Center } from '../center'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { CarouselArrowProps } from './types'\n\nexport const CarouselArrow = ({\n onClick,\n direction,\n ...rest\n}: CarouselArrowProps) => {\n const { arrow } = useMultiStyleConfig('Carousel', {})\n\n return (\n <Center\n sx={ arrow }\n onClick={ onClick }\n { ...rest }\n >\n <IconButton aria-label={ `move carousel to ${direction}` } variant=\"ghost\" size=\"lg\">\n <Icon as={ direction === 'right' ? ChevronRightSolid : ChevronLeftSolid } />\n </IconButton>\n </Center>\n )\n}\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { animate, motion, useMotionValue } from 'framer-motion'\nimport { identity } from 'ramda'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../box'\nimport { HStack } from '../stack'\nimport { Radio, RadioGroup } from '../radio'\nimport { CarouselItem } from './carousel-item'\nimport { CarouselArrow } from './carousel-arrow'\nimport { carouselItemSpacing, carouselItemWidth } from './constants'\nimport { CarouselProps } from './types'\n\n/**\n * Easiely one of the fanciest components, horizontal carousel wrapper for anything\n *\n * @see {@link https://northlight.dev/reference/carousel}\n *\n * @example (Example)\n * The carousel takes up 100% of its parents container width and height.\n * It then renders all children div into a draggable div using framer-motion\n\n * (?\n * +\n *const Item = ({ name, ...rest }) => (\n <Center color=\"white\" bg=\"teal.500\" rounded=\"md\" w=\"full\" h=\"full\" { ...rest }>\n { name }\n </Center>\n)\n\nconst MyCarousel = () => (\n<Box h=\"300px\">\n <Carousel>\n <Item name=\"Item 1\" />\n <Item name=\"Item 2\" />\n <Item name=\"Item 3\" />\n </Carousel>\n</Box>\n\n)\n\nrender(<MyCarousel />)\n *\n * ?)\n *\n * @example (Example)\n * ##Controling the carousel state\n * The carousel takes an **onChange** and value\n * (which is the index of the current active element), meaning it can be controlled.\n *\n * (?\n * +\n * const Item = ({ name, ...rest }) => (\n <Center color=\"white\" bg=\"teal.500\" rounded=\"md\" w=\"full\" h=\"full\" { ...rest }>\n { name }\n </Center>\n)\n\nconst MyCarousel = () => {\n const [index, setIndex ] = useState(0)\n return (\n\n <VStack\n borderColor=\"border.default\"\n borderWidth=\"st.border.width.sm\" borderStyle=\"solid\" p=\"2\" borderRadius=\"st.border.radius.lg\">\n <Box w=\"full\" h=\"sm\">\n <Carousel\n showArrows={ false }\n showRadio={ false }\n value={ index }\n onChange={ (v) => setIndex(v) }\n >\n <Item name=\"Item 1\" />\n <Item name=\"Item 2\" />\n <Item name=\"Item 3\" />\n </Carousel>\n </Box>\n <FlipButtonGroup\n onChange={ (v) => setIndex(parseInt(v, 10)) }\n value={ `${index}` }\n variant=\"brand\"\n >\n <FlipButton value=\"0\">One</FlipButton>\n <FlipButton value=\"1\">Two</FlipButton>\n <FlipButton value=\"2\">Three</FlipButton>\n </FlipButtonGroup>\n </VStack>\n )\n}\n*\nrender(<MyCarousel/>)\n * ?)\n *(You can also hide the default\n navigational arrows and radio button using <b>showArrows</b> and\n <b>showRadio</b> as in example)\n */\nexport const Carousel = ({\n children,\n showArrows = true,\n showRadio = true,\n value: controlledIndex = 0,\n onChange = identity,\n itemWidth = carouselItemWidth,\n itemHeight = carouselItemWidth,\n spacing = carouselItemSpacing,\n carouselStyles = {},\n ...rest\n}: CarouselProps) => {\n const [ dragging, setDragging ] = useState(false)\n const [ containerWidth, setContainerWidth ] = useState(0)\n const [ activeIndex, setActiveIndex ] = useState(0)\n const x = useMotionValue(0)\n const { radio, container } = useMultiStyleConfig('Carousel', {})\n\n const childrenAsArray = Children.toArray(children) as JSX.Element[]\n const numberOfChildren = Children.count(children)\n const carouselTotalWidth = itemWidth + spacing\n const totalWidth = carouselTotalWidth * numberOfChildren\n\n const containerRef = useRef<any>(null)\n\n useEffect(() => {\n setContainerWidth(containerRef.current.clientWidth)\n }, [])\n\n const getNewX = () => -(activeIndex * carouselTotalWidth)\n\n const updateActiveIndex = () => {\n setActiveIndex(Math.abs(Math.round(x.get() / carouselTotalWidth)))\n }\n\n useEffect(() => {\n animate(x, getNewX())\n onChange(activeIndex)\n }, [ activeIndex ])\n\n useEffect(() => {\n setActiveIndex(controlledIndex)\n }, [ controlledIndex ])\n\n const handleRightArrowClick = () => {\n setActiveIndex((prev) =>\n (activeIndex === numberOfChildren - 1 ? 0 : prev + 1)\n )\n }\n\n const handleLeftArrowClick = () => {\n setActiveIndex((prev) =>\n (activeIndex === 0 ? numberOfChildren - 1 : prev - 1)\n )\n }\n\n return (\n <Box\n cursor={ dragging ? 'grabbing' : 'grab' }\n onMouseDown={ () => setDragging(true) }\n onMouseUp={ () => setDragging(false) }\n ref={ containerRef }\n pl={ `${(containerWidth - itemWidth) / 2}px` }\n sx={ container }\n { ...rest }\n >\n <motion.div\n drag=\"x\"\n style={ {\n width: `${totalWidth}px`,\n height: '100%',\n x,\n } }\n dragConstraints={ { right: 0, left: -(totalWidth - itemWidth) } }\n onDragEnd={ updateActiveIndex }\n >\n <HStack\n spacing={ `${spacing}px` }\n width={ `${totalWidth}px` }\n h=\"full\"\n { ...carouselStyles }\n >\n { childrenAsArray.map((child, index) => (\n <CarouselItem\n isActive={ index === activeIndex }\n itemWidth={ itemWidth }\n itemHeight={ itemHeight }\n key={ `carousel-item-${index as number}` }\n >\n { child }\n </CarouselItem>\n )) }\n </HStack>\n </motion.div>\n { showRadio && (\n <RadioGroup\n onChange={ (val) => setActiveIndex(parseInt(val, 10)) }\n value={ `${activeIndex}` }\n sx={ radio }\n >\n <HStack>\n { childrenAsArray.map((_child, i) => (\n <Radio\n value={ `${i}` }\n size=\"lg\"\n key={ `carousel-radio-${i as number}` }\n />\n )) }\n </HStack>\n </RadioGroup>\n ) }\n { showArrows && (\n <>\n <CarouselArrow\n direction=\"left\"\n onClick={ handleLeftArrowClick }\n left=\"2\"\n />\n <CarouselArrow\n direction=\"right\"\n onClick={ handleRightArrowClick }\n right=\"2\"\n />\n </>\n ) }\n </Box>\n )\n}\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { merge } from 'ramda'\nimport { getContrastColor } from '../../utils'\n\nexport const searchBarStyles = (\n sx: ChakraStylesConfig<any>\n): ChakraStylesConfig<any> =>\n merge({\n container: (provided) => ({\n ...provided,\n width: '100%',\n color: 'text.default',\n alignSelf: 'center',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isFocused && 'background.select.option-focus',\n _active: {\n background: 'background.select.option-active',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n }),\n downChevron: (provided) => ({\n ...provided,\n color: 'icon.select.default',\n }),\n placeholder: (provided) => ({\n ...provided,\n color: 'text.select.placeholder',\n }),\n multiValue: (provided, state) => {\n const background = state.data.isFixed\n ? 'background.select.option-disabled'\n : state.data.color ?? provided.bgColor\n return {\n ...provided,\n bgColor: background,\n color: getContrastColor(background),\n ...sx.multiValue,\n }\n },\n menuList: (provided) => ({\n ...provided,\n bgColor: 'background.default',\n }),\n } as ChakraStylesConfig<any>, sx)\n","import React from 'react'\nimport {\n DropdownIndicatorProps,\n GroupBase,\n MultiValueGenericProps,\n OptionProps,\n chakraComponents,\n} from 'chakra-react-select'\nimport { Icon } from '../icon'\nimport { SearchBarOptionType } from './types'\n\nexport function getComponents<T extends SearchBarOptionType> () {\n return {\n DropdownIndicator: (props: DropdownIndicatorProps<T>) => (\n props.selectProps.icon\n ? (\n <chakraComponents.DropdownIndicator { ...props }>\n <Icon as={ props.selectProps.icon } />\n </chakraComponents.DropdownIndicator>\n )\n : (\n <chakraComponents.DropdownIndicator { ...props } />\n )\n ),\n Option: (props: OptionProps<T>) =>\n (props.selectProps.customOption\n ? (\n <chakraComponents.Option { ...props }>\n { props.selectProps.customOption(props.data) }\n </chakraComponents.Option>\n )\n : <chakraComponents.Option { ...props } />\n ),\n MultiValueContainer: (\n props: MultiValueGenericProps<T, boolean, GroupBase<T>>\n ) =>\n (props.selectProps.customTag\n ? (\n <chakraComponents.MultiValueContainer { ...props }>\n { props.selectProps.customTag(props.data) }\n </chakraComponents.MultiValueContainer>\n )\n : <chakraComponents.MultiValueContainer { ...props } />\n ),\n }\n}\n","import React, { forwardRef, useMemo, useState } from 'react'\nimport {\n AsyncSelect,\n GroupBase,\n InputActionMeta,\n SelectInstance,\n} from 'chakra-react-select'\nimport { filter, identity, is, test, toLower } from 'ramda'\nimport { SearchDuo } from '@northlight/icons'\nimport { createDebounceFunctionInstance } from '../../utils'\nimport { searchBarStyles } from './styles'\nimport { useSelectCallbacks } from '../../hooks'\nimport { Box } from '../box'\nimport { SearchBarOptionType, SearchBarProps } from './types'\nimport { getComponents } from './get-components'\n\nexport const SearchBar = forwardRef(\n <T extends SearchBarOptionType>({\n defaultOptions = [],\n isMulti = false,\n customOption = null,\n customTag = null,\n sx = {},\n debouncedWaitTime = 200,\n loadOptions: getCustomOptions = null,\n clearInputOnSelect = true,\n closeMenuOnSelect = false,\n onChange = identity,\n onAdd = identity,\n onRemove = identity,\n 'data-testid': testId,\n value,\n onSearchInputChange = identity,\n icon = SearchDuo,\n ...rest\n }: SearchBarProps<T>,\n ref: React.Ref<SelectInstance<T, boolean, GroupBase<T>>>\n ) => {\n const [ filtered, setFiltered ] = useState(defaultOptions)\n const [ filterInput, setFilterInput ] = useState('')\n const debounceFunction = useMemo(\n () => createDebounceFunctionInstance(debouncedWaitTime),\n [ debouncedWaitTime ]\n )\n const handleChange = useSelectCallbacks<T>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? value as T[] : [],\n })\n const customComponents = getComponents<T>()\n\n const simpleFilter = (query: string) => (\n filter(\n (option: T) =>\n test(new RegExp(toLower(query), 'g'), toLower(option.label)),\n defaultOptions\n )\n )\n\n const getOptions = async (query: string) => {\n const newOptions = getCustomOptions\n ? await getCustomOptions(query)\n : simpleFilter(query)\n setFiltered(newOptions)\n\n return newOptions\n }\n\n const loadOptions = debounceFunction(async (\n query: string,\n callback: (options: T[]) => void\n ) => {\n const newOptions = await getOptions(query)\n callback(newOptions)\n return []\n })\n\n const resetFiltered = (v: string, { action }: InputActionMeta) => {\n if (clearInputOnSelect || action !== 'set-value') {\n setFilterInput(v)\n onSearchInputChange(v)\n if (v === '') {\n setFiltered(defaultOptions)\n }\n }\n }\n\n return (\n <Box w=\"full\" data-testid={ testId }>\n <AsyncSelect\n cacheOptions={ true }\n defaultOptions={ filtered }\n loadOptions={ loadOptions }\n onChange={ handleChange }\n placeholder=\"Search...\"\n chakraStyles={ searchBarStyles(sx) }\n isMulti={ isMulti }\n useBasicStyles={ true }\n selectedOptionStyle=\"check\"\n hideSelectedOptions={ false }\n closeMenuOnSelect={ closeMenuOnSelect }\n isClearable={ false }\n onInputChange={ resetFiltered }\n inputValue={ filterInput }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n ref={ ref }\n value={ value }\n { ...rest }\n />\n </Box>\n )\n }\n)\n","import React from 'react'\nimport { FieldValues } from 'react-hook-form'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity, isEmpty } from 'ramda'\nimport { SearchBarFieldProps, SearchBarOptionType } from './types'\nimport { Field } from '../form'\nimport { SearchBar } from './search-bar'\nimport { HStack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\nexport const SearchBarField = <T extends SearchBarOptionType> ({\n name,\n label,\n direction = 'column',\n isMulti,\n isRequired,\n validate,\n isClearable = true,\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: SearchBarFieldProps<T>) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <SearchBar\n name={ name }\n isMulti={ isMulti }\n onChange={ (values: FieldValues, event) => {\n onChange(\n isMulti\n ? values\n : values.value\n )\n onChangeCallback(values as T | T[], event)\n } }\n value={ value }\n { ...rest }\n />\n </InputGroupWrapper>\n <IconButton\n aria-label={ `${name}-close-button` }\n variant=\"danger\"\n size=\"lg\"\n fontSize=\"sm\"\n hidden={ isEmpty(value) || !isClearable }\n onClick={ () => onChange([]) }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n","import React from 'react'\nimport { DndContext, DndContextProps } from '@dnd-kit/core'\n\n/**\n * Context used for all drag and drop components\n * (Based on dnd-kit)\n * @see Draggable\n * @see Droppable\n * @see {@link https://northlight.dev}\n * @see {@link https://dndkit.com/}\n *\n */\nexport const DragAndDrop = (props: DndContextProps) => (\n <DndContext { ...props } />\n)\n","import React, { forwardRef } from 'react'\nimport { Tag as ChakraTag } from '@chakra-ui/react'\nimport { TagProps } from './types'\n\n/**\n * @see TagGroup\n * @see {@link https://northlight.dev/reference/tag}\n *\n * @example\n * (? <Tag>Brand 1</Tag> ?)\n *\n * @example\n * (?\n * <Tag>\n <TagLeftIcon>\n <Icon as={ StackSolid } />\n </TagLeftIcon>\n <TagLabel>Left Icon</TagLabel>\n </Tag>\n * ?)\n *\n*/\nexport const Tag = forwardRef(({\n children,\n variant = 'solid',\n bgColor,\n colorScheme,\n ...rest\n}: TagProps, ref: any) => (\n <ChakraTag\n bgColor={ bgColor }\n colorScheme={ colorScheme }\n ref={ ref }\n variant={ variant }\n { ...rest }\n >\n { children }\n </ChakraTag>\n))\n","import React from 'react'\nimport { OverflowIndicatorProps } from './types'\nimport { Tag } from './tag'\n\nexport const OverflowIndicator = ({\n nbrRemainingTags,\n}: OverflowIndicatorProps) => (\n <Tag variant=\"subtle\" minW=\"max-content\">\n +{ nbrRemainingTags }\n </Tag>\n)\n","import React, { useState } from 'react'\nimport { HStack } from '../stack'\nimport { OverflowGroup, useOverflowGroup } from '../overflow-group'\nimport { TagGroupProps } from './types'\nimport { OverflowIndicator as DefaultOverflowIndicator } from './overflow-indicator'\n\n/**\n * Used when rending multiple tags in limited container for responsive layout\n * @see Tag\n * @see {@link https://northlight.dev/reference/tag-group}\n *\n * @example\n * ##Try resizing the window!\n * (?\n <TagGroup w=\"full\"\n borderWidth=\"st.border.width.sm\"\n borderColor=\"border.default\"\n borderStyle=\"solid\"\n p=\"2\"\n borderRadius=\"md\"\n >\n { Array.from({length: 20}, (_, i) => i).map((i) => (\n <Tag w=\"max-content\" key={ i }>Brand-{ i }</Tag>\n )) }\n </TagGroup>\n * ?)\n *\n *\n */\nexport const TagGroup = ({\n children,\n max = Infinity,\n spacing = '2',\n OverflowIndicator = DefaultOverflowIndicator,\n ...rest\n}: TagGroupProps) => {\n const [ nbrRemainingTags, setNbrRemainingTags ] = useState(0)\n const { rect, containerRef } = useOverflowGroup()\n\n return (\n <HStack\n bgColor=\"background.default\"\n ref={ containerRef }\n overflow=\"hidden\"\n { ...rest }\n >\n <HStack spacing={ spacing }>\n <OverflowGroup max={ max } onChange={ setNbrRemainingTags } rect={ rect }>\n { children }\n </OverflowGroup>\n </HStack>\n { nbrRemainingTags > 0 && (\n <OverflowIndicator nbrRemainingTags={ nbrRemainingTags } />\n ) }\n </HStack>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { DotsMatrixSolid } from '@northlight/icons'\nimport { Tag, TagLabel, TagRightIcon } from '../tag'\nimport { Icon } from '../icon'\nimport { DragItemProps } from './types'\n\n/**\n * Default draggable item none other provided in SortableList and MultiSort.\n * Renders a tag which can be used under the DragAndDrop context\n * @see DragAndDrop\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/drag-item}\n *\n * @example (Example)\n * (?\n * <DragItem itemLabel=\"Option 1\" bgColor=\"bg.filled\" />\n * ?)\n *\n */\nexport const DragItem = forwardRef(({\n size = 'md',\n isDragging,\n itemLabel = 'Drag Me',\n bgColor,\n ...rest\n}: DragItemProps, ref) => (\n <Tag\n ref={ ref }\n cursor={ isDragging ? 'grabbing' : 'grab' }\n bgColor={ bgColor || (isDragging ? 'blue.200' : undefined) }\n size={ size }\n minW=\"max-content\"\n { ...rest }\n >\n <TagLabel>{ itemLabel }</TagLabel>\n <TagRightIcon>\n <Icon as={ DotsMatrixSolid } />\n </TagRightIcon>\n </Tag>\n)\n)\n","import React, { cloneElement, isValidElement } from 'react'\nimport { useDraggable } from '@dnd-kit/core'\nimport { CSS } from '@dnd-kit/utilities'\nimport { Box } from '../box'\nimport { DraggableProps } from './types'\nimport { DragItem } from './drag-item'\nimport { ring } from '../../utils'\n\n/**\n * Will turn it's childen into a draggable component when under DragAndDrop context\n * @see {@link https://northlight.dev/reference/draggable}\n *\n * @example (Example)\n * ##Basic exapmle\n * (?\n * <DragAndDrop>\n * <HStack>\n * <Draggable id=\"random-id\" />\n * <Draggable />\n * </HStack>\n * </DragAndDrop>\n * ?)\n * <br />\n * (Notice that the id prop is required)\n *\n * @example (Example)\n * ## With custom children\n *\n * (?\n * <DragAndDrop>\n * <Box p=\"4\">\n * <Draggable id=\"random-id\">\n * <Center\n * boxSize=\"3xs\"\n * boxShadow=\"xl\"\n * borderRadius=\"st.border.radius.lg\"\n * bgColor=\"bg.overlayer\"\n * >I am draggable</Center>\n * </Draggable>\n * </Box>\n *\n * </DragAndDrop>\n * ?)\n *\n *\n */\nexport const Draggable = ({\n itemLabel,\n children,\n disableDrag = false,\n ...rest\n}: DraggableProps) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n isDragging,\n ...props\n } = useDraggable({ ...rest })\n if (!listeners) {\n return (\n <DragItem itemLabel={ itemLabel } />\n )\n }\n\n const childrenWithDragCursor = isValidElement(children)\n ? cloneElement(children as JSX.Element, {\n cursor: isDragging ? 'grabbing' : 'grab',\n })\n : children\n\n const dragEventListeners = !disableDrag && listeners\n\n return (\n <Box\n ref={ setNodeRef }\n { ...attributes }\n transform={ CSS.Translate.toString(transform) }\n _focusVisible={ ring }\n tabIndex={ disableDrag ? -1 : 0 }\n w=\"max-content\"\n { ...dragEventListeners }\n >\n { typeof childrenWithDragCursor === 'function'\n ? childrenWithDragCursor(listeners, props)\n : childrenWithDragCursor || (\n <DragItem isDragging={ isDragging } itemLabel={ itemLabel } />\n ) }\n </Box>\n )\n}\n","import React from 'react'\nimport { useDroppable } from '@dnd-kit/core'\nimport { Box } from '../box'\nimport { Center } from '../center'\nimport { DroppableProps } from './types'\n\n/**\n * Wrapper where you can style a container to place draggable elements\n * @see DropZone\n * @see Draggable\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/droppable}\n *\n * @example (Example)\n * ## Move the item into the container\n * (?\n * () => {\n * const [ isDropped, setIsDropped ] = useState(false)\n * const handleDragEnd = (e) => {\n * setIsDropped(e.over && e.over.id === 'droppable')\n * }\n *\n * return (\n * <DragAndDrop onDragEnd={handleDragEnd}>\n * <HStack>\n * {!isDropped && <Draggable id=\"draggable\" />}\n * <Droppable id=\"droppable\">\n * <Center bgColor=\"bg.filled\" boxSize=\"3xs\">\n * {isDropped ? <Draggable id=\"draggable\"/> : <P>Drop here!</P>}\n * </Center>\n * </Droppable>\n * </HStack>\n *\n * </DragAndDrop>\n *\n * )\n *\n *\n * }\n * ?)\n *\n */\nexport const Droppable = ({ children, ...rest }: DroppableProps) => {\n const { setNodeRef, ...props } = useDroppable({\n ...rest,\n })\n return (\n <Box ref={ setNodeRef }>\n { typeof children === 'function'\n ? children(props)\n : children || <Center>Drop here</Center> }\n </Box>\n )\n}\n","import React from 'react'\nimport { SortableContext, SortableContextProps } from '@dnd-kit/sortable'\n\n/**\n * Wrapper that provides context for sortable elements using DnD-kit\n * @see DragAndDrop\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev}\n * @see {@link https://docs.dndkit.com/presets/sortable/sortable-context}\n * @example\n * **<a href=\"https://docs.dndkit.com/presets/sortable/sortable-context\" target=\"_blank\">Read more on dnd-docs</a>**\n * */\nexport const Sortable = (props: SortableContextProps) => (\n <SortableContext { ...props } />\n)\n","import React, { PointerEvent, cloneElement, isValidElement, useRef } from 'react'\nimport { useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { Box } from '../box'\nimport { DragItem } from './drag-item'\nimport { ring } from '../../utils'\nimport { SortableItemProps } from './types'\n\n/**\n * Renders a draggable item under sortable context\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/sortable-item}\n *\n * @example\n * (? <SortableItem id=\"sortable-1\"/> ?)\n * */\nexport const SortableItem = ({\n itemLabel = 'Drag me',\n dblClickThreshold = 300,\n children,\n disableDrag = false,\n ...rest\n}: SortableItemProps) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n ...props\n } = useSortable({ ...rest })\n if (!listeners) {\n return (\n <DragItem itemLabel={ itemLabel } />\n )\n }\n\n const timeStampSnapchot = useRef(0)\n const inEditMode = useRef(false)\n const { onPointerDown, onKeyDown } = listeners\n const handlePointerDown = (e: PointerEvent<Element>) => {\n const elapsedTime = e.timeStamp - timeStampSnapchot.current\n if (elapsedTime > dblClickThreshold) {\n inEditMode.current = true\n onPointerDown(e)\n } else {\n inEditMode.current = false\n }\n timeStampSnapchot.current = e.timeStamp\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>) => {\n if (inEditMode.current) {\n onKeyDown(e)\n }\n }\n\n const style = {\n transform: CSS.Translate.toString(transform),\n transition,\n }\n\n const childrenWithDragCursor = isValidElement(children)\n ? cloneElement(children as JSX.Element, {\n cursor: isDragging ? 'grabbing' : 'grab',\n })\n : children\n\n const dragEventListeners = !disableDrag && {\n onPointerDown: handlePointerDown,\n onKeyDown: handleKeyDown,\n }\n\n return (\n <Box\n ref={ setNodeRef }\n sx={ style }\n { ...attributes }\n _focusVisible={ ring }\n tabIndex={ disableDrag ? -1 : 0 }\n borderRadius=\"tag.default\"\n { ...dragEventListeners }\n >\n { (\n typeof childrenWithDragCursor === 'function'\n ? childrenWithDragCursor(listeners, props)\n : childrenWithDragCursor\n ) || <DragItem isDragging={ isDragging } itemLabel={ itemLabel } />\n }\n </Box>\n )\n}\n","import React from 'react'\nimport { DragDuo } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { DragHandleProps } from './types'\n\n/**\n * Util component to display drag handle icon\n * for draggable react components under DragAndDrop context\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/drag-handle}\n *\n * @example (Example)\n * (?\n * <DragHandle />\n * ?)\n */\nexport const DragHandle = ({ icon, isDragging, ...rest }: DragHandleProps) => (\n <Icon\n as={ icon || DragDuo }\n cursor={ isDragging ? 'grabbing' : 'grab' }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Stack } from '../stack'\nimport { Droppable } from './droppable'\nimport { DropZoneProps } from './types'\n\n/**\n * Prestyled droppable area to drop draggable components,\n * you can override the styles of dropzone with sx prop\n * @see Draggable\n * @see Droppable\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/drop-zone}\n *\n * @example (Example)\n * ## You can drop draggable components\n * (?\n * <DragAndDrop>\n * <DropZone name=\"random-id-2\"><Draggable id=\"test\"/></DropZone>\n * </DragAndDrop>\n * ?)\n */\nexport const DropZone = ({ sx = {}, name, children, ...rest }: DropZoneProps) => {\n const { dropZone } = useMultiStyleConfig('DragAndDrop', { sx })\n return (\n <Droppable id={ name }>\n <Stack sx={ dropZone } { ...rest }>\n { children }\n </Stack>\n </Droppable>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport {\n DragOverEvent,\n KeyboardSensor,\n PointerSensor,\n UniqueIdentifier,\n rectIntersection,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport { arrayMove, sortableKeyboardCoordinates } from '@dnd-kit/sortable'\nimport { indexOf, insert, keys, remove } from 'ramda'\nimport { DragAndDrop } from './drag-and-drop'\nimport { MultiItemType, MultiSortProps } from './types'\n\n/**\n * Util component for sorting items in two dimensions(container and order in container)\n * @see SortableList\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/multi-sort}\n *\n * @example\n * (?\n * () => {\n const [ multiItems, setMultiItems ] = useState({\n container1: [\n 'JavaScript',\n 'Python',\n 'Front end',\n 'Back end',\n ],\n container2: [ 'HTML', 'CSS' ],\n container3: [ 'Chakra UI', 'Next.js', 'Tailwind UI' ],\n })\n return (\n <Stack>\n <MultiSort\n items={ multiItems }\n onChange={ (items) => setMultiItems(items) }\n >\n { (items, activeId) => (\n <HStack alignItems=\"start\">\n <VStack>\n <Heading size=\"sm\">I like</Heading>\n <DropZone name=\"container1\">\n <SortableContainer items={ items.container1 } />\n </DropZone>\n </VStack>\n <VStack>\n <Heading size=\"sm\">I don't like</Heading>\n <DropZone name=\"container2\">\n <SortableContainer items={ items.container2 } />\n </DropZone>\n </VStack>\n <VStack>\n <Heading size=\"sm\">Neutral</Heading>\n <DropZone name=\"container3\">\n <SortableContainer items={ items.container3 } />\n </DropZone>\n </VStack>\n <DragOverlay>\n { activeId ? (\n <DragItem\n itemLabel={ activeId }\n isDragging={ true }\n bgColor=\"background.tag.default\"\n />\n ) : null }\n </DragOverlay>\n </HStack>\n ) }\n </MultiSort>\n <Text>Controlled output: </Text>\n <Code p={ 2 } borderRadius={ 4 }>\n <pre>{ JSON.stringify(multiItems, null, 2) }</pre>\n </Code>\n</Stack>\n )\n * }\n * ?)\n * <br />\n * Multisort abstracts logic away for setting up sortable items between multiple containers,\n * you can then separate, or create and style this containers as you want,\n * by putting them under <Droppable /> or a prestyled <Dropzone />\n\nSortableContainer is a wrapper for a <Sortable /> with a sortable item\n * */\nexport function MultiSort<itemKeys extends string | number | symbol> ({\n items: sortableItems,\n onChange = () => {},\n children,\n collisionDetection,\n sensors,\n}: MultiSortProps<itemKeys>) {\n const [ items, setItems ] = useState<MultiItemType<itemKeys>>(sortableItems)\n const [ activeItem, setActiveItem ] = useState<UniqueIdentifier | null>(null)\n\n const moveBetweenContainers = (\n activeContainerName: itemKeys,\n activeIndex: number,\n overContainerName: itemKeys,\n overIndex: number,\n item: string\n ) => ({\n ...items,\n [activeContainerName]: remove(activeIndex, 1, items[activeContainerName]),\n [overContainerName]: insert(overIndex, item, items[overContainerName]),\n })\n\n useEffect(() => {\n onChange(items)\n }, [ items ])\n useEffect(() => {\n setItems(sortableItems)\n }, [ sortableItems ])\n\n const customSensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const findContainer = (id: string) =>\n (id in items ? id : keys(items).find((key) => items[key].includes(id)))\n\n const getContainers = (e: DragOverEvent) => {\n const { active, over } = e\n if (!over) return {}\n const { id } = active\n const { id: overId } = over\n\n const activeContainerName = findContainer(id as string) as itemKeys\n const overContainerName = findContainer(overId as string) as itemKeys\n return { activeContainerName, overContainerName, id, overId, active }\n }\n\n const handleDragStart = (e: DragOverEvent) => {\n const {\n active: { id },\n } = e\n setActiveItem(id)\n }\n\n const handleDragOver = (e: DragOverEvent) => {\n const { activeContainerName, overContainerName, id, overId } = getContainers(e)\n\n if (\n !(\n !activeContainerName ||\n !overContainerName ||\n activeContainerName === overContainerName\n )\n ) {\n setItems((prev: MultiItemType<itemKeys>) => {\n const activeIndex = indexOf(id, prev[activeContainerName])\n const overIndex = indexOf(overId, prev[overContainerName])\n return moveBetweenContainers(\n activeContainerName,\n activeIndex,\n overContainerName,\n overIndex,\n id as string\n )\n })\n }\n }\n\n const handleDragEnd = (e: DragOverEvent) => {\n const { activeContainerName, overContainerName, id, overId, active } = getContainers(e)\n\n setItems((prev: MultiItemType<itemKeys>) => {\n if (!activeContainerName || !overContainerName) return prev\n const activeIndex = indexOf(id, prev[activeContainerName])\n const overIndex = indexOf(overId, prev[overContainerName])\n let newItems\n if (activeContainerName === overContainerName) {\n newItems = {\n ...prev,\n [overContainerName]: arrayMove(\n prev[overContainerName],\n activeIndex,\n overIndex\n ),\n }\n } else {\n newItems = moveBetweenContainers(\n activeContainerName,\n activeIndex,\n overContainerName,\n overIndex,\n active?.id as string\n )\n }\n\n return newItems\n })\n }\n\n return (\n <DragAndDrop\n sensors={ sensors || customSensors }\n onDragStart={ handleDragStart }\n onDragOver={ handleDragOver }\n onDragEnd={ handleDragEnd }\n collisionDetection={ collisionDetection || rectIntersection }\n >\n { typeof children === 'function' ? children(items, activeItem) : children }\n </DragAndDrop>\n )\n}\n","import React, { useMemo, useState } from 'react'\nimport {\n DragOverEvent,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n UniqueIdentifier,\n rectIntersection,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n rectSortingStrategy,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable'\nimport { identity, indexOf, map } from 'ramda'\nimport { DragAndDrop } from './drag-and-drop'\nimport { Sortable } from './sortable'\nimport { SortableItem } from './sortable-item'\nimport { DragItem } from './drag-item'\nimport { SortableListProps } from './types'\n\n/**\n * Util component to render sortable items under sortable context\n * @see SortableItem\n * @see Sortable\n * @see {@link https://northlight.dev/reference/sortable-list}\n *\n * @example (Example)\n * ## You can render any layout of sortable components, for example grid:\n * (?\n * () => {\n * const [items, setItems] = useState(Array.from({length: 100}, (_, i) => i))\n * return (\n * <Stack>\n<SimpleGrid minChildWidth=\"50px\" spacing={ 4 }>\n <SortableList\n items={ items }\n onChange={ (items) => setItems(items) }\n />\n</SimpleGrid>\n <Code p={ 2 } borderRadius={ 4 }>\n { JSON.stringify(items, null, 2) }\n </Code>\n </Stack>\n * )}\n * ?)\n *\n * @example (Example)\n * ### With custom component\n * (?\n * () => {\n * const [items, setItems] = useState([ { name: 'item1' }, { name: 'item2' }, { name: 'item3' } ])\n * return (\n * <Stack>\n *\n * <SortableList\n items={ items }\n createKey={ (item) => item.name }\n disableDrag={ true }\n onChange={setItems}\n>\n { ({ name }, listeners, { isOver }) => (\n <HStack>\n <DragHandle { ...listeners } isDragging={ isOver } />\n <Input defaultValue={ name } />\n </HStack>\n ) }\n</SortableList>\n</Stack>\n )}\n * ?)\n<br />\nIf disableDrag=false, then when the user double clicks it will trigger\nthe default behaviour of the rendered component instead of the dragging,\n you can adjust the threshold with dblClickThreshold, default is 300ms\n *\n *\n */\nexport function SortableList<T> ({\n children,\n items,\n collisionDetection,\n createKey = identity as (t: T) => UniqueIdentifier,\n strategy,\n onChange = () => {},\n onMovedItem = identity,\n displayOverlay = false,\n sensors,\n dblClickThreshold = 300,\n disableDrag = false,\n}: SortableListProps<T>) {\n const [ activeItem, setActiveItem ] = useState<UniqueIdentifier | null>(null)\n\n const identifierItems = useMemo(() => map(createKey, items), [ items ])\n\n const customSensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const handleDragStart = (event: DragOverEvent) => {\n const {\n active: { id },\n } = event\n setActiveItem(id)\n }\n\n const handleDragEnd = (event: DragOverEvent) => {\n const { active, over } = event\n if (active && over && active.id !== over.id) {\n const prevIds = map(createKey, items)\n const oldIndex = indexOf(active.id, prevIds)\n const newIndex = indexOf(over.id, prevIds)\n onMovedItem({ item: items[oldIndex], oldIndex, newIndex })\n const newItems = arrayMove(items, oldIndex, newIndex)\n onChange(newItems)\n }\n }\n\n return (\n <DragAndDrop\n sensors={ sensors || customSensors }\n collisionDetection={ collisionDetection || rectIntersection }\n onDragStart={ handleDragStart }\n onDragEnd={ handleDragEnd }\n >\n <Sortable\n items={ identifierItems }\n strategy={ strategy || rectSortingStrategy }\n >\n { items.map((item) => {\n const id = createKey(item)\n return (\n <SortableItem\n key={ id }\n id={ id }\n itemLabel={ id }\n dblClickThreshold={ dblClickThreshold }\n disableDrag={ disableDrag }\n >\n { (listeners, props) => (\n typeof children === 'function' ? children(item, listeners, props) : children\n ) }\n </SortableItem>\n )\n }) }\n </Sortable>\n { displayOverlay && (\n <DragOverlay>\n { activeItem ? <DragItem itemLabel={ activeItem } /> : null }\n </DragOverlay>\n ) }\n </DragAndDrop>\n )\n}\n","import React from 'react'\nimport { rectSortingStrategy } from '@dnd-kit/sortable'\nimport { Sortable } from './sortable'\nimport { SortableItem } from './sortable-item'\nimport { SortableContainerProps } from './types'\n\n/**\n * Used with multi sort to render a sortable list inside a droppable\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/sortable-container}\n *\n * @example\n * (?\n * <SortableContainer items={['item 1', 'item 2', 'item 3']} />\n * ?)\n *\n */\nexport const SortableContainer = ({ children, items, strategy }: SortableContainerProps) => (\n <Sortable items={ items } strategy={ strategy || rectSortingStrategy }>\n { items.map((id) => (\n <SortableItem key={ id } id={ id } itemLabel={ id }>\n { typeof children === 'function' ? children(id) : children }\n </SortableItem>\n )) }\n </Sortable>\n)\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeList } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastListProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized stacked layout\n * @see FastGrid\n * @see {@link https://northlight.dev/reference/fast-list}\n *\n * @example (Example)\n * (?\n * <Box h=\"500px\" w=\"300p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastList itemCount={ 10000 } itemSize={ 30 } overscanCount={ 100 }>\n { (index) => `item-${index}` }\n </FastList>\n</Box>\n * ?)\n *\n */\nexport const FastList = forwardRef(({\n itemCount,\n itemSize,\n direction = 'column',\n children,\n width,\n height,\n overscanCount = 0,\n initialScrollOffset,\n ...rest\n}: FastListProps, ref: LegacyRef<VariableSizeList<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeList\n itemCount={ itemCount }\n itemSize={ typeof itemSize === 'number' ? (_index) => itemSize : itemSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n layout={ direction === 'column' ? 'vertical' : 'horizontal' }\n initialScrollOffset={ initialScrollOffset }\n overscanCount={ overscanCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, index }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(index) : children }\n </div>\n ) }\n </VariableSizeList>\n ) }\n </AutoSizer>\n))\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeGrid } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastGridProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized html grid layout\n * @see FastList\n * @see {@link https://northlight.dev/reference/fast-grid}\n *\n * @example (Example)\n * ## Simple example\n * (?\n * <Box h=\"500px\" w=\"500px\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 100 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n { (rowIndex, columnIndex) => `[${rowIndex}, ${columnIndex}]` }\n </FastGrid>\n </Box>\n *\n * ?)\n *\n * @example (Example)\n * ## Spreadsheet example\n * (?\n * +\n *\nconst getCell = (rowIndex, columnIndex) => {\n if (rowIndex === 0 && columnIndex === 0) return ''\n if (rowIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Col { columnIndex }\n </Lead>\n )\n }\n if (columnIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Row { rowIndex }\n </Lead>\n )\n }\n return (\n <TextField name={ `${rowIndex}-${columnIndex}` } />\n )\n}\n *\n * const MyGrid = () => {\n * const [values, setValues ] = useState({})\n * return(\n * <Form initialValues={{}}>\n * {({getValues}) => (\n * <Stack>\n * <Box h=\"500px\" w=\"500p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 50 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n {getCell}\n </FastGrid>\n</Box>\n<Button onClick={() => setValues(getValues())} variant=\"success\">Save</Button>\n<Code> <pre>{JSON.stringify(values, null, 2)}</pre></Code>\n</Stack>\n * )}\n </Form>\n * )}\n\nrender(<MyGrid />)\n *\n *\n * ?)\n * **(Note, FastGrid must be wrapped in a parent element with set height and width!)**\n *\n*/\nexport const FastGrid = forwardRef(({\n columns,\n rows,\n columnSize,\n rowSize,\n children,\n width,\n height,\n overscanRowCount = 0,\n overscanColumnCount = 0,\n ...rest\n}: FastGridProps, ref: LegacyRef<VariableSizeGrid<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeGrid\n rowCount={ rows }\n columnCount={ columns }\n columnWidth={ typeof columnSize === 'number' ? (_index) => columnSize : columnSize }\n rowHeight={ typeof rowSize === 'number' ? (_index) => rowSize : rowSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n overscanRowCount={ overscanRowCount }\n overscanColumnCount={ overscanColumnCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, rowIndex, columnIndex }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(rowIndex, columnIndex) : children }\n </div>\n ) }\n </VariableSizeGrid>\n ) }\n </AutoSizer>\n))\n","import React from 'react'\nimport { CheckDuo, EditDuo, XCloseSolid } from '@northlight/icons'\nimport {\n HStack,\n useEditableControls,\n useEditableState,\n useMultiStyleConfig,\n} from '@chakra-ui/react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { EditableControlsProps } from './types'\n\nexport const EditableControls = ({ size }: EditableControlsProps) => {\n const {\n getSubmitButtonProps,\n getCancelButtonProps,\n } = useEditableControls()\n\n const { onEdit, isEditing } = useEditableState()\n\n const { button, icon, controls } = useMultiStyleConfig('EditableText', { size, isEditing })\n\n return (\n <HStack spacing={ 1 } sx={ controls }>\n { isEditing\n ? (\n <>\n <IconButton\n aria-label=\"Cancel\"\n sx={ button }\n variant=\"danger\"\n { ...getCancelButtonProps() }\n >\n <Icon sx={ icon } as={ XCloseSolid } />\n </IconButton>\n <IconButton\n aria-label=\"Save\"\n sx={ button }\n variant=\"success\"\n { ...getSubmitButtonProps() }\n >\n <Icon sx={ icon } as={ CheckDuo } />\n </IconButton>\n </>\n )\n : (\n <IconButton\n aria-label=\"Edit\"\n variant=\"ghost\"\n sx={ button }\n onClick={ onEdit }\n >\n <Icon sx={ icon } as={ EditDuo } />\n </IconButton>\n )\n }\n </HStack>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Input, InputGroup, InputLeftElement, InputRightElement } from '../input'\nimport { EditableInput as ChakraEditableInput, Editable, EditablePreview } from '../editable'\nimport { EditableProps } from './types'\nimport { EditableControls } from './editable-controls'\n\n/**\n * Used to safely modify text with default or previousely set value\n * @see {@link https://northlight.dev/reference/editable-text}\n *\n * @example (Example)\n * ##Edit password\n * (?\n * () => {\n * const [v, setV] = useState('123456789')\n * return (\n * <Box p=\"2\">\n * <EditableText value={v} onSubmit={setV} leftItem={<Icon as={LockDuo} />}/>\n * </Box>\n * )\n * }\n * ?)\n *\n * @example (Example)\n * ## Other notes\n <p>\n Pressing <b>ESC</b> or clicking on the\n <b> red icon</b> will delete the changes and go back to the original state\n </p>\n <p>\n Pressing <b>ENTER</b> or clicking on the\n <b> green icon</b> will save the changes internally and fire the{ ' ' }\n <Code>onSubmit</Code> callback.\n </p>\n *\n */\nexport const EditableText = ({\n size = 'md',\n value: inputValue,\n onSubmit,\n leftItem,\n ...rest\n}: EditableProps) => {\n const [ value, setValue ] = useState(inputValue)\n const { input, preview } = useMultiStyleConfig('EditableText', { size })\n\n useEffect(() => {\n setValue(inputValue)\n }, [ inputValue ])\n\n return (\n <Editable\n isPreviewFocusable={ true }\n selectAllOnFocus={ false }\n value={ value }\n onChange={ (newValue) => setValue(newValue) }\n onSubmit={ onSubmit }\n { ...rest }\n >\n <InputGroup size={ size }>\n { leftItem && (\n <InputLeftElement>\n { leftItem }\n </InputLeftElement>\n ) }\n <Input\n as={ EditablePreview }\n sx={ preview }\n />\n <Input\n as={ ChakraEditableInput }\n size={ size }\n sx={ input }\n />\n <InputRightElement sx={ { width: 'min-content' } }>\n <EditableControls size={ size } />\n </InputRightElement>\n </InputGroup>\n </Editable>\n )\n}\n","import React from 'react'\nimport {\n Modal as ChakraModal,\n ModalCloseButton,\n ModalContent,\n ModalOverlay,\n} from '@chakra-ui/react'\nimport { ModalProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/modal}\n *\n * */\nexport const Modal = ({\n isCentered = true,\n children,\n ...rest\n}: ModalProps) => (\n <ChakraModal\n isCentered={ isCentered }\n scrollBehavior=\"inside\"\n motionPreset=\"slideInBottom\"\n { ...rest }\n >\n <ModalOverlay />\n <ModalContent data-testid=\"modal-test-id\">\n <ModalCloseButton data-testid=\"modal-test-button-id\" />\n { children }\n </ModalContent>\n </ChakraModal>\n)\n","import React, { forwardRef, useState } from 'react'\nimport AvatarEditor from 'react-avatar-editor'\nimport { ZoomInDuo } from '@northlight/icons'\nimport { EditableText } from '../editable-text'\nimport { Icon } from '../icon'\nimport { HStack, Stack } from '../stack'\nimport { Box } from '../box'\nimport { Button } from '../button'\nimport { Slider, SliderFilledTrack, SliderThumb, SliderTrack } from '../slider'\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '../modal'\nimport { FormLabel } from '../form-control'\nimport { FileEditorModalProps } from './types'\n\nexport const FileEditorModal = forwardRef(({\n fileName,\n setFileName,\n isOpen,\n onClose,\n image = '',\n handleCrop,\n isImage,\n canEditFileName = true,\n canCropImage = false,\n ...rest\n}: FileEditorModalProps, ref: any) => {\n const [ zoomLevel, setZoomLevel ] = useState(1)\n const [ position, setPosition ] = useState({ x: 0.5, y: 0.5 })\n\n const handleClose = () => {\n setZoomLevel(1)\n onClose()\n }\n\n return (\n <Modal\n isOpen={ isOpen }\n onClose={ onClose }\n closeOnOverlayClick={ false }\n { ...rest }\n >\n <ModalHeader>Edit { isImage ? 'image' : 'file' }</ModalHeader>\n <ModalBody\n display=\"flex\"\n justifyContent=\"start\"\n flexDirection=\"column\"\n alignItems=\"center\"\n gap={ 4 }\n minH=\"300px\"\n >\n <Stack display={ isImage && canCropImage ? 'inherit' : 'none' }>\n <AvatarEditor\n ref={ ref }\n image={ image || '' }\n onPositionChange={ (pos) => setPosition(pos) }\n position={ position }\n width={ 250 }\n height={ 250 }\n border={ 50 }\n color={ [ 255, 255, 255, 0.7 ] }\n scale={ zoomLevel }\n rotate={ 0 }\n />\n <HStack w=\"90%\">\n <FormLabel>Zoom</FormLabel>\n <Slider\n aria-label=\"zoom\"\n defaultValue={ zoomLevel }\n maxW=\"50%\"\n min={ 0.1 }\n step={ 0.05 }\n max={ 10 }\n onChange={ (value) => setZoomLevel(value) }\n >\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb boxSize={ 6 }>\n <Icon as={ ZoomInDuo } />\n </SliderThumb>\n </Slider>\n </HStack>\n\n </Stack>\n { canEditFileName && (\n <Stack w=\"90%\" direction={ isImage ? 'row' : 'column' } pt={ 2 }>\n <FormLabel>Name the file:</FormLabel>\n <Box maxW=\"50%\">\n <EditableText onSubmit={ (v) => setFileName(v) } value={ fileName } size=\"sm\" />\n </Box>\n </Stack>\n ) }\n </ModalBody>\n <ModalFooter>\n <HStack>\n <Button variant=\"danger\" onClick={ handleClose }>\n Cancel\n </Button>\n <Button variant=\"success\" onClick={ handleCrop }>\n Save\n </Button>\n </HStack>\n </ModalFooter>\n </Modal>\n )\n})\n","import React from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '../modal'\nimport { Button } from '../button'\nimport { ConfirmDeleteModalProps } from './types'\n\nexport const ConfirmDeleteModal = ({\n isOpen,\n onClose,\n confirmDelete,\n fileName,\n ...rest\n}: ConfirmDeleteModalProps) => {\n const handleDelete = () => {\n confirmDelete()\n onClose()\n }\n\n return (\n <Modal isOpen={ isOpen } onClose={ onClose } { ...rest }>\n <ModalHeader\n sx={ { fontSize: 'lg' } }\n overflow=\"hidden\"\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n pr={ 16 }\n >\n Delete { fileName }\n </ModalHeader>\n <ModalBody>\n Deleting this file is a permanent action. You will not be able to\n recover this file at a later time.\n </ModalBody>\n <ModalFooter>\n <Button variant=\"danger\" onClick={ handleDelete }>\n Delete\n </Button>\n </ModalFooter>\n </Modal>\n )\n}\n","export const formattedTime = (seconds: number) => {\n let baseString = ''\n const hours = Math.floor(seconds / 3600)\n if (hours > 0) {\n baseString += ` ${hours}h`\n }\n const minutes = Math.floor((seconds - hours * 3600) / 60)\n if (minutes > 0) {\n baseString += ` ${minutes}min`\n }\n const newSeconds = Math.floor(seconds - hours * 3600 - minutes * 60)\n if (newSeconds > 0) {\n baseString += ` ${newSeconds}s`\n }\n\n return baseString\n}\n","export const updateTimeThreshold = 0.5\nexport const animationSlideTime = 250\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Progress } from '@chakra-ui/react'\nimport { VStack } from '../stack'\nimport { Small } from '../typography'\nimport { formattedTime } from './utils'\nimport { Fade } from '../transitions'\nimport { ProgressBarProps } from './types'\nimport { animationSlideTime, updateTimeThreshold } from './constants'\n\n/**\n * @see {@link https:/northlight/reference/progress-bar}\n *\n * @example\n * (?\n * () => {\n const [ progress, setProgress ] = useState(0)\n if (progress > 1 && buffer) {\n clearInterval(buffer)\n buffer = null\n }\n\n const handleClick = () => {\n setProgress(0)\n buffer = setInterval(\n () => setProgress((prev) => prev + Math.random() * 0.1),\n Math.random() * 300 + 200\n )\n }\n return (\n <Stack>\n <ProgressBar loaded={ progress } hideDisplay={true}/>\n <Button onClick={ handleClick }>Start Loading</Button>\n </Stack>\n )\n * }\n * ?)\n *\n */\nexport const ProgressBar = ({\n loaded,\n onLoadEnd = () => {},\n hideDisplay = true,\n ...rest\n}: ProgressBarProps) => {\n const ref = useRef<HTMLDivElement>(null)\n const timeRef = useRef<number>(0)\n const progress = Math.max(0, Math.min(loaded, 1))\n const [ timeLeft, setTimeLeft ] = useState(0)\n\n useEffect(() => {\n if (ref.current) {\n (ref.current.children[0] as HTMLDivElement).style.width = `${progress * 100}%`\n }\n\n if (timeRef.current) {\n const deltaTime = timeRef.current\n ? (Date.now() - timeRef.current) / 1000\n : 0\n if (deltaTime > updateTimeThreshold) {\n const newEstimate = progress !== 0 ? deltaTime / progress : 0\n setTimeLeft(Math.round(newEstimate - deltaTime))\n }\n } else if (progress > 0) {\n timeRef.current = Date.now()\n }\n }, [ progress ])\n\n return (\n <Fade\n in={ progress < 1 }\n enterDuration={ 1 }\n exitDelay={ 250 }\n exitDuration={ 1000 }\n hideDisplay={ hideDisplay }\n onTransitionComplete={ () => {\n if (progress >= 1) {\n onLoadEnd()\n }\n } }\n >\n <VStack { ...rest }>\n <Small>\n { Math.round(progress * 100) }%{ ' ' }\n { !!timeLeft && `· ${formattedTime(timeLeft)} left` }\n </Small>\n <Progress\n ref={ ref }\n sx={ { '>[role=\"progressbar\"]': { transition: `width ${animationSlideTime}ms ease-out` } } }\n width=\"full\"\n height=\"1a\"\n borderRadius=\"full\"\n />\n </VStack>\n </Fade>\n )\n}\n","import React from 'react'\nimport { Spinner as ChakraSpinner } from '@chakra-ui/react'\nimport { SpinnerProps } from './types'\n\n/**\n * Loading indicator\n * @see {@link https://northlight.dev/reference/spinner }\n * @example\n * (? <Spinner /> ?)\n */\nexport const Spinner = (({\n ...rest\n}: SpinnerProps) => (\n <ChakraSpinner { ...rest } />\n))\n","export const fiveHundredMB = 5.24288E8\nexport const imageLazyThreshold = 1.572854E7\nexport const defaultEditOptions = {\n canEdit: true,\n canEditImage: true,\n canEditName: true,\n}\n","import {\n all,\n difference,\n has,\n intersection,\n isEmpty,\n last,\n split,\n test,\n trim,\n} from 'ramda'\nimport { imageLazyThreshold } from './constants'\nimport {\n FileFormat,\n FileWithSizeAndType,\n FileWithSrcNameType,\n FileWithType,\n} from './types'\n\nexport const getResizingFactor = (\n imgWidth: number,\n imgHeight: number,\n maxWidth: number,\n maxHeight: number\n) => Math.min(1, Math.min(maxWidth / imgWidth, maxHeight / imgHeight))\n\nexport const convertBlobToFile = (\n blob: Blob,\n name: string,\n type: string\n) => new File([ blob ], name, { type })\n\nexport const compressImage = (\n file: File,\n maxWidth = 3000,\n maxHeight = 3000,\n quality = 0.75\n) => {\n const canvas = document.createElement('canvas')\n const context = canvas.getContext('2d')\n if (!context) return file\n\n const imageBuffer = new Image()\n imageBuffer.src = URL.createObjectURL(file as File)\n\n return new Promise((resolve) => {\n imageBuffer.onload = () => {\n const resizingFactor = getResizingFactor(\n imageBuffer.width,\n imageBuffer.height,\n maxWidth,\n maxHeight\n )\n const scaledWidth = imageBuffer.width * resizingFactor\n const scaledHeight = imageBuffer.height * resizingFactor\n canvas.width = scaledWidth\n canvas.height = scaledHeight\n context.drawImage(imageBuffer, 0, 0, scaledWidth, scaledHeight)\n canvas.toBlob(\n (blob) => {\n if (file && blob) {\n const newImage = convertBlobToFile(blob, file.name, file.type)\n resolve(newImage)\n } else {\n resolve(file)\n }\n },\n 'image/jpeg',\n quality\n )\n }\n })\n}\n\nexport const readableFileSize = (size: number) => {\n if (size <= 0) return 0\n const i = Math.floor(Math.log(size) / Math.log(1024))\n return `${(size / 1024 ** i).toFixed(1)} ${\n [ 'B', 'kB', 'MB', 'GB', 'TB' ][i]\n }`\n}\n\nexport const getImageAsFile = async <T extends FileWithSrcNameType>(\n image: T,\n name?: string\n): Promise<File> =>\n fetch(image.src as string)\n .then((res) => res.blob())\n .then(\n (blob) =>\n new Promise((resolve) => {\n const newImage = convertBlobToFile(blob, name || image.name, image.type)\n resolve(newImage)\n })\n )\n\nconst getFormatsAsArray = (acceptFormat: string) =>\n split(',', acceptFormat)\n .map((format) => trim(format))\n\nexport const getAcceptedExtensions = (acceptFormat: string) =>\n getFormatsAsArray(acceptFormat)\n .filter((format) => test(/^\\./, format))\n .map((format) => format.substring(1))\n\nexport const getAcceptedFormats = (acceptFormat: string) =>\n getFormatsAsArray(acceptFormat)\n .filter((format) => test(/\\//, format))\n .map((format) => split('/', format)[0])\n\nconst getFileExtension = <T extends FileWithType> (file: T) => last(split('/', file.type)) as string\n\nconst getFileFormat = <T extends FileWithType> (file: T) => split('/', file.type)[0]\n\nexport const validFileFormat = <T extends FileWithType> (\n file: T,\n acceptFormat: string\n) => (\n acceptFormat === '*'\n|| getAcceptedFormats(acceptFormat).includes(getFileFormat(file))\n|| getAcceptedExtensions(acceptFormat).includes(getFileExtension(file))\n )\n\nexport const isValidFile = <T extends FileWithSizeAndType> (\n file:T,\n acceptFormat: string,\n maxFileSize: number\n) => {\n const isValid =\n file.size as number < maxFileSize\n && validFileFormat(file, acceptFormat)\n\n return {\n isValid,\n errorMessage: file.size as number > maxFileSize\n ? 'File size is too big'\n : isValid\n ? ''\n : 'File format not supported',\n }\n}\n\nexport function getNewUploadingFiles<T extends FileFormat> (\n prev: T[],\n curr: T[],\n files: T[]\n) {\n let buffer = prev\n const prevIDs = prev ? prev.map((file) => file.name) : null\n const currentIDs = curr ? curr.map((file) => file.name) : null\n const removedItemsIDs =\n prevIDs && currentIDs && difference(prevIDs, currentIDs)\n const filesIDs = files.map((file) => file.name)\n\n if (removedItemsIDs) {\n if (\n removedItemsIDs.length === 0 ||\n intersection(removedItemsIDs, filesIDs).length > 0\n ) {\n buffer = curr\n } else {\n buffer.forEach((value, index) => {\n if (removedItemsIDs.includes(value.name)) {\n const updatedData = { ...value,\n uploaded: has('size', value) ? value.size : 0 }\n buffer[index] = updatedData\n }\n }\n )\n }\n } else {\n buffer = curr\n }\n return buffer\n}\n\nexport const generateId = () => Math.random().toString().substring(3)\n\nexport const isFile = (file: any) => 'File' in window && file instanceof File\n\nexport const isFileImage = <T extends FileWithType>(file: T) => {\n if (isFile(file)) {\n return getFileFormat(file) === 'image'\n }\n switch (getFileFormat(file)) {\n case 'image':\n case 'jpeg':\n case 'jpg':\n case 'png':\n case 'gif':\n case 'tiff':\n case 'jfif':\n return true\n default:\n return false\n }\n}\n\nexport const onlyAcceptsImages = (acceptFormat: string) => {\n if (acceptFormat === '*' || acceptFormat === '') {\n return false\n }\n const formats = getAcceptedFormats(acceptFormat)\n const extensions = getAcceptedExtensions(acceptFormat)\n\n const premiseOne = isEmpty(formats) || all((type: string) => type === 'image', formats)\n\n const premiseTwo = isEmpty(extensions)\n || all((type: string) => isFileImage({ type }), extensions)\n\n return premiseOne && premiseTwo\n}\n\nexport const createFileObject = <T extends FileFormat>(file: File): T => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: null,\n src: null,\n type: file.type,\n name: file.name,\n isUploading: true,\n isLazy: file.size > imageLazyThreshold && isFileImage(file),\n }\n return fileObject as T\n}\n\nexport const createPreviewFileObject = <T extends FileFormat>(file: File): T => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: file.size,\n src: URL.createObjectURL(file),\n type: file.type,\n name: file.name,\n isUploading: false,\n isLazy: false,\n }\n return fileObject as T\n}\n\nexport const createFileObjectFromSrc = <T extends FileWithSrcNameType>(file: T) => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: null,\n src: file.src,\n type: file.type,\n name: file.name,\n isUploading: false,\n isLazy: false,\n }\n return fileObject\n}\n\nexport const isOverflowing = (element: Element) => (element\n ? element.scrollHeight > element.clientHeight\n : false\n)\n\nexport const toBase64 = (file: File): Promise<string> => new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.readAsDataURL(file)\n reader.onload = () => resolve(reader.result as string)\n reader.onerror = (error) => reject(error)\n})\n\nconst correctFileExtension = (str: string) => test(/./g, str)\n\nconst getFileFormattedName = (file: File | FileFormat) => (correctFileExtension(file.name)\n ? file.name\n : `${file.name}.${getFileExtension(file)}`)\nexport const handleDownload = (file:\nFile | FileFormat | null | string | FileFormat\n) => () => {\n if (!file) return\n const anchor = document.createElement('a')\n anchor.href = isFile(file) ? URL.createObjectURL(file as File) : (file as FileFormat).src || ''\n anchor.download = isFile(file)\n ? 'downloaded-file.jpg'\n : getFileFormattedName(file as File)\n anchor.click()\n}\n","import React from 'react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { FileIconButtonProps } from './types'\n\nexport const FileIconButton = ({\n icon,\n color = 'unset',\n ...rest\n}: FileIconButtonProps) => (\n <IconButton variant=\"ghost\" size=\"sm\" { ...rest }>\n <Icon as={ icon } boxSize=\"24px\" color={ color } />\n </IconButton>\n)\n","import React, { DragEvent, useEffect, useRef, useState } from 'react'\nimport { Fade, SlideFade, useMultiStyleConfig } from '@chakra-ui/react'\nimport {\n DownloadDuo,\n EditBoxDuo,\n FileBlankDuo,\n Image03Solid,\n TrashFullDuo,\n UploadCloudSolid,\n} from '@northlight/icons'\nimport { identity } from 'ramda'\nimport AvatarEditor from 'react-avatar-editor'\nimport { FileEditorModal } from './file-editor-modal'\nimport { ConfirmDeleteModal } from './confirm-delete-modal'\nimport { Icon } from '../icon'\nimport { Lead, P } from '../typography'\nimport { HStack, Stack } from '../stack'\nimport { FilePickerProps } from './types'\nimport { Input } from '../input'\nimport { Box } from '../box'\nimport { ProgressBar } from '../progress'\nimport { Spinner } from '../spinner'\nimport { Image } from '../image'\nimport { Clickable } from '../clickable'\nimport { useDisclosure } from '../../hooks'\nimport {\n compressImage,\n convertBlobToFile,\n handleDownload,\n isFile,\n isFileImage,\n isValidFile,\n onlyAcceptsImages,\n readableFileSize,\n} from './utils'\nimport { FileIconButton } from './file-icon-button'\nimport { defaultEditOptions, fiveHundredMB } from './constants'\nimport { useCurrentTheme } from '../../utils'\n\n/**\n * Lets user import file of any type as Javascript File Object\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/reference/file-picker}\n *\n * @example (Example)\n * (?\n * <FilePicker />\n * ?)\n *\n *\n */\nexport const FilePicker = ({\n acceptFormat = '*',\n onChange = identity,\n compression,\n uploaded: uploadedInitial = 0,\n maxFileSize = fiveHundredMB,\n showProgress = false,\n value = '',\n loadWithSpinner = false,\n confirmDelete = false,\n editFileOptions = defaultEditOptions,\n}: FilePickerProps) => {\n const fileInputRef = useRef<HTMLInputElement>(null)\n const imageEditorRef = useRef<AvatarEditor>(null)\n const [ file, setFile ] = useState<File | null | string>(value)\n\n const [ isInvalid, setIsInvalid ] = useState(false)\n const [ name, setName ] = useState('')\n const editModal = useDisclosure()\n const deleteModal = useDisclosure()\n const [ editable, setEditable ] = useState(false)\n const [ hasLoaded, setHasLoaded ] = useState(false)\n const [ isLoading, setIsLoading ] = useState(false)\n const [ isImage, setIsImage ] = useState(true)\n const [ uploaded, setUploaded ] = useState(uploadedInitial)\n\n const onlyImageAccepted = onlyAcceptsImages(acceptFormat)\n\n const isUploading = uploaded < 1\n\n useEffect(() => {\n setUploaded(uploadedInitial)\n }, [ uploadedInitial ])\n\n useEffect(() => {\n if (!isUploading) {\n setIsLoading(false)\n setHasLoaded(true)\n }\n }, [ isUploading ])\n\n const currentTheme = useCurrentTheme()\n\n const { filePicker } = useMultiStyleConfig('FilePicker', {\n isImage,\n hasLoaded,\n isInvalid,\n currentTheme,\n })\n\n useEffect(() => {\n if (isInvalid) {\n setTimeout(() => {\n setIsInvalid(false)\n }, 1500)\n }\n }, [ isInvalid ])\n\n const handleOnClick = () => {\n if (fileInputRef.current && !file) {\n fileInputRef.current.click()\n }\n }\n\n const handleCrop = () => {\n if (imageEditorRef.current) {\n const canvas = imageEditorRef.current.getImageScaledToCanvas()\n canvas.toBlob((blob) => {\n if (file && blob) {\n const fileName = name\n || isFile(file)\n ? (file as File).name\n : 'downloaded-file'\n\n const fileType = isFile(file)\n ? (file as File).type\n : '.jpg'\n\n const newFile = convertBlobToFile(blob, fileName, fileType)\n setFile(newFile)\n setHasLoaded(true)\n onChange(newFile)\n }\n })\n editModal.onClose()\n }\n }\n\n const clearImage = () => {\n if (fileInputRef.current) {\n setIsInvalid(false)\n setName('')\n setFile(null)\n setIsImage(true)\n setHasLoaded(false)\n if (!showProgress) {\n setUploaded(0)\n }\n onChange(null)\n fileInputRef.current.value = ''\n }\n }\n\n const handleImageUpload = async (newImage: File | null) => {\n if (newImage) {\n setIsInvalid(false)\n const isFileTypeImage = isFileImage(newImage)\n setIsImage(isFileTypeImage)\n const compressedImage = isFileTypeImage\n ? ((await compressImage(\n newImage,\n compression?.width,\n compression?.height,\n compression?.quality\n )) as File)\n : newImage\n setFile(compressedImage)\n if (!showProgress) {\n setUploaded(1)\n }\n onChange(compressedImage)\n setIsLoading(isUploading)\n }\n }\n\n const handleChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n setIsInvalid(false)\n const newImage = e.target.files[0]\n handleImageUpload(newImage)\n }\n }\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault()\n if (e.dataTransfer.files) {\n const newFile = e.dataTransfer.files[0]\n if (isValidFile(newFile, acceptFormat, maxFileSize).isValid) {\n handleImageUpload(newFile)\n } else {\n setIsInvalid(true)\n }\n }\n }\n\n return (\n <Stack maxW={ filePicker.width as number }>\n <Clickable\n onClick={ handleOnClick }\n onDrop={ handleDrop }\n onDragOver={ (e: DragEvent) => e.preventDefault() }\n onMouseEnter={ () => setEditable(true) }\n onMouseLeave={ () => setEditable(false) }\n >\n <Box sx={ filePicker }>\n <SlideFade\n in={ hasLoaded }\n style={ {\n width: '100%',\n height: '100%',\n display: hasLoaded && isImage ? 'initial' : 'none',\n } }\n >\n <Image\n src={ file\n ? isFile(file)\n ? URL.createObjectURL(file as File)\n : file as string\n : '' }\n alt=\"preview-image\"\n objectFit=\"cover\"\n borderRadius={ 8 }\n display={ hasLoaded && isImage ? 'inherit' : 'none' }\n h=\"full\"\n w=\"full\"\n />\n </SlideFade>\n <Input\n type=\"file\"\n display=\"none\"\n accept={ acceptFormat }\n ref={ fileInputRef }\n onChange={ handleChange }\n />\n <Stack\n display={ hasLoaded && isImage ? 'none' : 'default' }\n alignItems=\"center\"\n w=\"85%\"\n spacing=\"0a\"\n >\n <Icon\n as={ onlyImageAccepted ? Image03Solid : UploadCloudSolid }\n boxSize=\"32px\"\n color={\n isInvalid\n ? 'red.500'\n : editable\n ? 'blue.500'\n : 'gray.300'\n }\n display={ isImage && !hasLoaded ? 'inline-block' : 'none' }\n aria-label=\"file-icon-upload\"\n />\n <Icon\n as={ FileBlankDuo }\n boxSize=\"32px\"\n color=\"gray.300\"\n display={ hasLoaded && !isImage ? 'inline-block' : 'none' }\n />\n <P\n variant={ isInvalid ? '16' : '14' }\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n overflow=\"hidden\"\n maxWidth={ filePicker.width as number }\n textAlign=\"center\"\n alignSelf=\"center\"\n >\n { isInvalid\n ? 'File not supported'\n : file && isFile(file)\n ? (file as File).name\n : `Drag & drop ${onlyImageAccepted ? 'image' : 'file'} or` }\n </P>\n <Lead\n sx={ {\n textDecoration: 'underline',\n color: isInvalid ? 'red.500' : 'blue.500',\n } }\n display={ isLoading || hasLoaded ? 'none' : 'default' }\n >\n Click to upload\n </Lead>\n <Box display={ isLoading ? 'block' : 'none' } pt={ 1 }>\n { loadWithSpinner\n ? <Spinner />\n : <ProgressBar loaded={ uploaded } />\n }\n </Box>\n </Stack>\n <Fade\n in={ hasLoaded && editable }\n style={ {\n display: hasLoaded && editable ? 'flex' : 'none',\n justifyContent: 'center',\n } }\n >\n <HStack\n spacing={ 2 }\n position=\"absolute\"\n bottom=\"3\"\n justifyContent=\"center\"\n bgColor=\"bg.layer\"\n borderRadius={ 6 }\n width=\"90%\"\n py={ 2 }\n >\n { editFileOptions.canEdit && (\n <FileIconButton\n aria-label=\"edit-file\"\n onClick={ editModal.onOpen }\n icon={ EditBoxDuo }\n />\n ) }\n <FileIconButton\n aria-label=\"download-file\"\n onClick={ handleDownload(file) }\n icon={ DownloadDuo }\n />\n <FileIconButton\n aria-label=\"delete-file\"\n onClick={ confirmDelete ? deleteModal.onOpen : clearImage }\n icon={ TrashFullDuo }\n color=\"red.500\"\n />\n </HStack>\n </Fade>\n <P\n variant=\"14\"\n sx={ { color: 'gray.400' } }\n display={\n hasLoaded && !isImage && !isLoading\n ? 'inline-block'\n : 'none'\n }\n >\n { isFile(file) && readableFileSize((file as File)?.size as number) }\n </P>\n\n </Box>\n </Clickable>\n <FileEditorModal\n { ...editModal }\n fileName={ name }\n setFileName={ setName }\n image={ file }\n handleCrop={ handleCrop }\n isImage={ isImage }\n ref={ imageEditorRef }\n canEditFileName={ editFileOptions.canEditName }\n canCropImage={ editFileOptions.canEditImage }\n />\n <ConfirmDeleteModal\n { ...deleteModal }\n confirmDelete={ clearImage }\n fileName={ name || 'file' }\n />\n </Stack>\n )\n}\n","import React, { useState } from 'react'\nimport { identity } from 'ramda'\nimport { Field } from '../form'\nimport { FilePicker } from './file-picker'\nimport { toBase64 } from './utils'\nimport { FilePickerFieldProps } from './types'\n\n/**\n * The file picker component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FilePicker\n * @see Field\n * @see {@link https://northlight.dev/reference/file-picker-field}\n *\n * @example (Example)\n * ## Meant for uploading images in a form\n * Where they handled as base64 string\n * (?\n * <Form initialValues={{image: ''}}>\n * {({watch}) => (\n * <Stack>\n * <FilePickerField name=\"image\" />\n * <Code maxH=\"xs\" overflowY=\"scroll\">{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n * </Form>\n *\n * ?)\n *\n */\nexport const FilePickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: FilePickerFieldProps) => {\n const [ uploaded, setUploaded ] = useState(0)\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <FilePicker\n onChange={ async (file: File | null) => {\n if (file) {\n const formattedFile = await toBase64(file)\n setUploaded(1)\n onChange(formattedFile)\n onChangeCallback(formattedFile)\n } else {\n setUploaded(0)\n onChange(null)\n onChangeCallback(null)\n }\n } }\n value={ value }\n uploaded={ value ? 1 : uploaded }\n loadWithSpinner={ true }\n acceptFormat=\"image/*\"\n { ...rest }\n />\n ) }\n </Field>\n )\n}\n","import React, { DragEvent, useEffect, useRef, useState } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { filter, identity } from 'ramda'\nimport { Image03Solid, UploadCloudSolid } from '@northlight/icons'\nimport { Box } from '../box'\nimport { Icon } from '../icon'\nimport { Input } from '../input'\nimport {\n compressImage,\n createFileObject,\n createPreviewFileObject,\n isFileImage,\n isValidFile,\n onlyAcceptsImages,\n readableFileSize,\n} from './utils'\nimport { Clickable } from '../clickable'\nimport { HStack, Stack } from '../stack'\nimport { Lead, P } from '../typography'\nimport { fiveHundredMB } from './constants'\nimport { FileFormat, MultiFileUploaderProps } from './types'\nimport { useCurrentTheme } from '../../utils'\n\n/**\n * Input to upload multiple files without ui to render files\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/reference/multi-file-uploader}\n * @example\n * (?\n * () => {\n * const [ images, setImages ] = useState([])\n * return (\n * <Stack>\n <Box h=\"sm\">\n <Carousel>\n { images.map((imageSrc) => (\n <Image src={imageSrc} borderRadius=\"st.border.radius.md\" />\n )) }\n </Carousel>\n </Box>\n <MultiFileUploader\n acceptFormat=\"image/*\"\n onChange={ (newFiles) =>\n setImages(\n newFiles.map((file) => URL.createObjectURL(file))\n )\n }\n />\n </Stack>\n * )\n * }\n * ?)\n *\n */\nexport function MultiFileUploader<T extends FileFormat> ({\n acceptFormat = '*',\n compression,\n onChange = identity,\n addFilesToQueue = identity,\n updatePreviewFiles = identity,\n maxFileSize = fiveHundredMB,\n}: MultiFileUploaderProps<T>) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [ isInvalid, setIsInvalid ] = useState(false)\n const currentTheme = useCurrentTheme()\n const { multiFilePicker } = useMultiStyleConfig('FilePicker', { isInvalid, currentTheme })\n const [ active, setActive ] = useState(false)\n const [ errorMessage, setErrorMessage ] = useState('')\n\n const onlyImageAccepted = onlyAcceptsImages(acceptFormat)\n\n useEffect(() => {\n if (isInvalid) {\n setTimeout(() => {\n setIsInvalid(false)\n }, 1500)\n }\n }, [ isInvalid ])\n\n const toggleHover = () => {\n setActive((prev) => !prev)\n }\n\n const handleClick = () => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }\n\n const updateMultipleFiles = async (newFiles: FileList) => {\n const filesArr: File[] = Array.prototype.slice.call(newFiles)\n const validFiles = filter((file) => {\n const fileCheck = isValidFile(file, acceptFormat, maxFileSize)\n if (!fileCheck.isValid) {\n setErrorMessage(fileCheck.errorMessage || '')\n }\n return fileCheck.isValid\n }, filesArr)\n if (filesArr.length > 0 && validFiles.length === 0) {\n setIsInvalid(true)\n }\n\n addFilesToQueue(validFiles.map((file) => createFileObject(file)))\n updatePreviewFiles(validFiles.map((file) => createPreviewFileObject(file)))\n const compressedFiles = validFiles.map(\n async (file) => (isFileImage(file)\n ? compressImage(\n file,\n compression?.width,\n compression?.height,\n compression?.quality\n ) as File\n : file)\n )\n Promise.all(compressedFiles).then((values) => {\n onChange(values)\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n })\n }\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault()\n updateMultipleFiles(e.dataTransfer.files)\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n updateMultipleFiles(e.target.files)\n }\n }\n return (\n <Clickable\n onClick={ handleClick }\n onDragOver={ (e: DragEvent) => e.preventDefault() }\n onDrop={ handleDrop }\n onMouseEnter={ toggleHover }\n onMouseLeave={ toggleHover }\n >\n <Box sx={ multiFilePicker }>\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n h=\"full\"\n w=\"full\"\n spacing={ 0 }\n >\n <Icon\n as={ onlyImageAccepted ? Image03Solid : UploadCloudSolid }\n boxSize=\"32px\"\n color={\n isInvalid\n ? 'red.500 '\n : active\n ? 'blue.500 '\n : 'gray.300'\n }\n aria-label=\"image-icon-upload\"\n mb={ onlyImageAccepted ? '0a' : 0 }\n />\n <HStack spacing={ 1 } display={ isInvalid ? 'none' : 'flex' }>\n <P variant=\"14\" textAlign=\"center\" alignSelf=\"center\">\n Drag & drop { onlyImageAccepted ? 'images' : 'files' } here or\n </P>\n <Lead sx={ { textDecoration: 'underline', color: 'blue.500' } }>\n choose { onlyImageAccepted ? 'image' : 'file' }\n </Lead>\n </HStack>\n <P variant=\"14\" textAlign=\"center\" alignSelf=\"center\" display={ isInvalid ? 'initial' : 'none' }>\n { errorMessage }\n </P>\n <P variant=\"14\" sx={ { color: 'gray.400' } }>\n Max file size is { readableFileSize(maxFileSize) }\n </P>\n </Stack>\n <Input\n type=\"file\"\n display=\"none\"\n accept={ acceptFormat }\n onChange={ handleChange }\n multiple={ true }\n ref={ inputRef }\n />\n </Box>\n </Clickable>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { identity } from 'ramda'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { DownloadDuo, EditBoxDuo, FileBlankDuo, Image03Duo } from '@northlight/icons'\nimport AvatarEditor from 'react-avatar-editor'\nimport { Icon } from '../icon'\nimport { SlideFade } from '../transitions'\nimport { P } from '../typography'\nimport { HStack, Stack } from '../stack'\nimport { convertBlobToFile, getImageAsFile, handleDownload, isFileImage, readableFileSize } from './utils'\nimport { Box } from '../box'\nimport { Image as ChakraImage } from '../image'\nimport { useDisclosure } from '../../hooks'\nimport { CloseButton } from '../close-button'\nimport { ProgressBar } from '../progress'\nimport { ConfirmDeleteModal } from './confirm-delete-modal'\nimport { FileEditorModal } from './file-editor-modal'\nimport { FileIconButton } from './file-icon-button'\nimport { FileFormat, FileItemProps } from './types'\nimport { defaultEditOptions } from './constants'\n\nexport function FileItem<T extends FileFormat> ({\n onChangeCallback,\n addFile = identity,\n deleteFile,\n file,\n confirmDelete = true,\n isLazy = false,\n editFileOptions = defaultEditOptions,\n}: FileItemProps<T>) {\n const { canEdit, canEditImage, canEditName } = editFileOptions\n const { fileItem } = useMultiStyleConfig('FilePicker')\n const editModalDisclosure = useDisclosure()\n const deleteModalDisclosure = useDisclosure()\n const imageEditorRef = useRef<AvatarEditor>(null)\n const [ fileName, setFileName ] = useState('')\n const [ show, setShow ] = useState(true)\n const [ hasLoaded, setHasLoaded ] = useState(false)\n const [ loadingImage, setLoadingImage ] = useState(true)\n\n useEffect(() => {\n if (file.src) {\n const buffer = new Image()\n buffer.src = file.src\n buffer.onload = () => {\n setLoadingImage(false)\n }\n }\n }, [ file.isUploading ])\n\n const handleCrop = async () => {\n if (imageEditorRef.current && isFileImage(file)) {\n const canvas = imageEditorRef.current.getImageScaledToCanvas()\n canvas.toBlob(async (blob) => {\n if (file && blob) {\n const newFile = convertBlobToFile(blob, fileName || file.name, file.type)\n deleteFile(file)\n addFile(newFile, file._id)\n onChangeCallback([ newFile ])\n }\n })\n editModalDisclosure.onClose()\n } else if (file.src) {\n const newFile = await getImageAsFile(file, fileName)\n deleteFile(file)\n addFile(newFile, file._id)\n onChangeCallback([ newFile ])\n }\n }\n\n const clearImage = () => {\n setShow(false)\n setTimeout(() => {\n deleteFile(file)\n }, 500)\n }\n\n return (\n <SlideFade\n in={ show }\n direction=\"left\"\n offset={ 30 }\n enterDuration={ !isLazy ? 300 : 1 }\n exitDuration={ 300 }\n >\n <Box sx={ fileItem }>\n <HStack\n w=\"full\"\n h=\"full\"\n borderRadius={ 6 }\n alignItems=\"center\"\n justifyContent=\"space-between\"\n px={ 2 }\n pt={ file.isUploading && !hasLoaded ? 2 : 0 }\n >\n <HStack spacing={ 4 } alignItems=\"start\" maxW=\"50%\">\n { isFileImage(file)\n ? file.isUploading || loadingImage\n ? (\n <Icon\n as={ Image03Duo }\n bgColor=\"gray.100\"\n color=\"gray.400\"\n boxSize=\"10\"\n borderRadius=\"8\"\n p=\"2\"\n />\n )\n : (\n <ChakraImage\n src={ file.src || '' }\n alt=\"preview-image\"\n objectFit=\"cover\"\n display={ file.src ? 'inherit' : 'none' }\n borderRadius=\"8\"\n boxSize=\"10\"\n />\n )\n : (\n <Icon\n as={ FileBlankDuo }\n boxSize=\"10\"\n p=\"1\"\n color=\"gray.300\"\n />\n )\n }\n <Stack\n alignItems=\"start\"\n justifyContent=\"start\"\n spacing=\"0\"\n maxW=\"100%\"\n >\n <P\n variant=\"14\"\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n overflow=\"hidden\"\n maxW=\"100%\"\n >\n { file?.name }\n </P>\n <P variant=\"14\" sx={ { color: 'gray.400' } }>\n { file?.size && readableFileSize(file.size) }\n </P>\n </Stack>\n </HStack>\n <HStack\n spacing=\"3\"\n justifyContent=\"center\"\n borderRadius=\"6\"\n bgColor=\"bg.filled\"\n display={ file.isUploading ? 'none' : 'flex' }\n p=\"1\"\n >\n { canEdit && (\n <FileIconButton\n aria-label=\"Edit-image\"\n onClick={ editModalDisclosure.onOpen }\n icon={ EditBoxDuo }\n />\n ) }\n <FileIconButton\n aria-label=\"download-image\"\n onClick={ handleDownload(file) }\n icon={ DownloadDuo }\n />\n <CloseButton\n onClick={ confirmDelete ? deleteModalDisclosure.onOpen : clearImage }\n />\n </HStack>\n </HStack>\n <Box\n w=\"full\"\n pl=\"16\"\n pr=\"4\"\n pb=\"2\"\n mt=\"-2\"\n display={ file.isUploading ? 'block' : 'none' }\n >\n <ProgressBar\n loaded={ file.size ? (file?.uploaded || 0) / file.size : 0 }\n onLoadEnd={ () => setHasLoaded(true) }\n />\n </Box>\n { canEdit && (\n <FileEditorModal\n { ...editModalDisclosure }\n fileName={ fileName || file.name }\n setFileName={ setFileName }\n image={ file.src }\n canCropImage={ canEditImage }\n canEditFileName={ canEditName }\n handleCrop={ handleCrop }\n isImage={ isFileImage(file) }\n ref={ imageEditorRef }\n />\n ) }\n <ConfirmDeleteModal\n { ...deleteModalDisclosure }\n confirmDelete={ clearImage }\n fileName={ fileName || file.name }\n />\n </Box>\n </SlideFade>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { any, identity, map } from 'ramda'\nimport { FileItem } from './file-item'\nimport { Stack } from '../stack'\nimport { createPreviewFileObject, getNewUploadingFiles, isFile, isOverflowing } from './utils'\nimport { FileFormat, MultiFileListProps } from './types'\nimport { defaultEditOptions } from './constants'\n\n/**\n * Show list of files, their uploading progress as well as options to edit/delete them\n * @see MultiFileUploader\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/multi-file-list}\n *\n */\nexport function MultiFileList<T extends FileFormat> ({\n files,\n uploadingFiles,\n onChange = identity,\n deleteFile = identity,\n addFile = identity,\n confirmDelete,\n editFileOptions = defaultEditOptions,\n enableSmartLoad = true,\n}: MultiFileListProps<T>) {\n const [ uploadingFilesReference, setUploadingFilesReference ] = useState(uploadingFiles)\n const [ overflowing, setOverflowing ] = useState(false)\n\n const formattedFiles = files?.map((file) => (\n isFile(file)\n ? createPreviewFileObject(file as unknown as File)\n : file\n ))\n\n const listRef = useRef<HTMLDivElement>(null)\n useEffect(() => {\n if (uploadingFiles && uploadingFilesReference && files) {\n if (enableSmartLoad) {\n const newVal = getNewUploadingFiles<T>(uploadingFilesReference, uploadingFiles, files)\n setUploadingFilesReference(newVal)\n } else {\n setUploadingFilesReference(uploadingFiles)\n }\n }\n if (listRef.current) {\n setOverflowing(isOverflowing(listRef.current))\n }\n }, [ uploadingFiles, files ])\n\n const isLazy = uploadingFilesReference\n ? any((file: T) => file.isLazy || false, uploadingFilesReference as T[])\n : false\n\n return (\n <Stack\n ref={ listRef }\n spacing={ 2 }\n maxH=\"sm\"\n pr={ overflowing ? 2 : 0 }\n overflowY=\"auto\"\n >\n { uploadingFilesReference && map((file) => (\n <FileItem\n onChangeCallback={ onChange }\n file={ file }\n key={ file._id }\n deleteFile={ deleteFile }\n confirmDelete={ confirmDelete }\n isLazy={ isLazy }\n editFileOptions={ editFileOptions }\n />\n ), uploadingFilesReference) }\n { formattedFiles && map((file) => (\n <FileItem\n onChangeCallback={ onChange }\n addFile={ addFile }\n file={ file }\n key={ file._id }\n deleteFile={ deleteFile }\n confirmDelete={ confirmDelete }\n editFileOptions={ editFileOptions }\n />\n ), formattedFiles) }\n </Stack>\n )\n}\n","import React, { useState } from 'react'\nimport { findIndex, identity, insert, isEmpty, isNil, remove } from 'ramda'\nimport { MultiFileList } from './multi-file-list'\nimport { createPreviewFileObject } from './utils'\nimport { MultiFileUploader } from './multi-file-uploader'\nimport { Stack } from '../stack'\nimport { defaultEditOptions, fiveHundredMB } from './constants'\nimport { FileFormat, MultiFilePickerProps } from './types'\n\n/**\n * Lets user import file of any type as Javascript File Object\n * @see FilePicker\n * @see {@link https://northlight.dev/reference/multi-file-picker}\n *\n * @example (Example)\n * (?\n * <MultiFilePicker />\n * ?)\n * ## For more information, view: <a href=\"https://northlight.dev/components/file%20picker\">guide</a>\n *\n *\n */\nexport function MultiFilePicker<T extends FileFormat> ({\n acceptFormat = '*',\n compression,\n onChange = identity,\n files = null,\n uploadingFiles,\n deleteFile = null,\n confirmDelete = true,\n maxFileSize = fiveHundredMB,\n enablePreLoad = true,\n enableSmartLoad = true,\n editFileOptions = defaultEditOptions,\n}: MultiFilePickerProps<T>) {\n const [ bufferFiles, setBufferFiles ] = useState<T[]>([])\n const [ previewFiles, setPreviewFiles ] = useState<T[]>([])\n\n const getIndexById = (id: string) => findIndex((file) => file._id === id, previewFiles)\n\n const addFile = (file: File, id: string) => {\n const addedFile = createPreviewFileObject(file)\n const indexOfChanged = getIndexById(id)\n const newPreviewFiles = remove(indexOfChanged, 1, previewFiles)\n const newFiles = insert(indexOfChanged, addedFile, newPreviewFiles)\n setPreviewFiles(newFiles as T[])\n }\n\n const handleDelete = (file: T | FileFormat) => {\n const indexOfRemoved = getIndexById(file._id)\n const newPreviewFiles = remove(indexOfRemoved, 1, previewFiles)\n setPreviewFiles(newPreviewFiles)\n }\n\n const updateQueuedFiles = (queuedFiles: T[]) => {\n if (enablePreLoad) {\n setBufferFiles(queuedFiles)\n }\n }\n\n return (\n <Stack\n spacing={ 4 }\n maxW=\"inherit\"\n maxH=\"inherit\"\n >\n <MultiFileUploader\n acceptFormat={ acceptFormat }\n compression={ compression }\n onChange={ onChange }\n addFilesToQueue={ updateQueuedFiles }\n updatePreviewFiles={ setPreviewFiles }\n maxFileSize={ maxFileSize }\n />\n <MultiFileList\n files={ files || previewFiles }\n onChange={ onChange }\n uploadingFiles={\n isEmpty(files) && (uploadingFiles?.length === 0 || isNil(uploadingFiles))\n ? bufferFiles\n : uploadingFiles\n }\n deleteFile={ deleteFile || handleDelete }\n confirmDelete={ confirmDelete }\n enableSmartLoad={ enableSmartLoad }\n editFileOptions={ editFileOptions }\n addFile={ addFile }\n />\n </Stack>\n )\n}\n","import React from 'react'\nimport { concat, findIndex, identity, isEmpty, map, remove } from 'ramda'\nimport { Field } from '../form'\nimport { MultiFilePicker } from './multi-file-picker'\nimport { createFileObjectFromSrc, isFile, toBase64 } from './utils'\nimport { FileFormat, MultiFilePickerFieldProps } from './types'\n\n/**\n * The multi file picker component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see MultiFilePicker\n * @see Field\n * @see {@link https://northlight.dev/reference/multi-file-picker-field}\n *\n * @example (Example)\n * ## Meant for uploading images in a form\n * Where they handled as base64 strings\n * (?\n * <Form initialValues={{images: []}}>\n * {({watch}) => (\n * <Stack>\n * <MultiFilePickerField name=\"images\" />\n * <Code maxH=\"xs\" overflowY=\"scroll\">{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n * </Form>\n *\n * ?)\n *\n */\nexport const MultiFilePickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: MultiFilePickerFieldProps) => {\n const getFiles = (sources: string[]) => {\n const buffer = map((source) => ({\n type: 'jpg',\n src: source,\n name: '',\n }), sources)\n const formattedFiles = map((file) => (isFile(file)\n ? file : createFileObjectFromSrc(file)), buffer)\n return formattedFiles as FileFormat[]\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => {\n const handleDelete = (file: FileFormat) => {\n const removedIndex = findIndex((src) => src === file.src, value)\n const newValues = remove(removedIndex, 1, value)\n onChange(newValues)\n }\n\n return (\n <MultiFilePicker\n onChange={ async (files: File[] | null) => {\n if (!isEmpty(files)) {\n const newFiles = files?.map(async (file) => toBase64(file))\n if (newFiles) {\n Promise.all(newFiles).then((values) => {\n onChange(concat(value, values))\n onChangeCallback(values)\n })\n }\n } else {\n onChange([])\n onChangeCallback([])\n }\n } }\n enablePreLoad={ false }\n enableSmartLoad={ false }\n deleteFile={ handleDelete }\n acceptFormat=\"image/*\"\n editFileOptions={ { canEdit: true, canEditImage: true, canEditName: false } }\n confirmDelete={ false }\n files={ getFiles(value) }\n { ...rest }\n />\n )\n } }\n </Field>\n )\n}\n","export const scrollbarStyles = {\n '::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '::-webkit-scrollbar-track': {\n background: 'background.scrollbar.track',\n },\n '::-webkit-scrollbar-thumb': {\n borderRadius: 'scrollbar.thumb',\n border: '2px solid',\n borderColor: 'border.scrollbar.thumb',\n backgroundClip: 'padding-box !important',\n background: 'background.scrollbar.thumb',\n },\n '::-webkit-scrollbar-thumb:hover': {\n borderRadius: 'scrollbar.thumb',\n border: '1px solid ',\n borderColor: 'border.scrollbar.thumb',\n backgroundClip: 'padding-box !important',\n background: 'background.scrollbar.thumb',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Breadcrumb: ComponentMultiStyleConfig = {\n parts: [ 'link', 'separator' ],\n baseStyle: {\n link: {\n padding: [ 0.5, 1 ],\n color: 'primary',\n fontWeight: '600',\n fontSize: 'semibold',\n _hover: {\n bg: 'blue.50',\n borderRadius: 'base',\n textDecor: 'none',\n },\n },\n separator: {\n color: 'gray.300',\n fontSize: 'semibold',\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Button: ComponentSingleStyleConfig = {\n sizes: {\n xs: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n paddingInlineStart: spacing['padding-inline'].button.xs,\n paddingInlineEnd: spacing['padding-inline'].button.xs,\n }),\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n paddingInlineStart: spacing['padding-inline'].button.md,\n paddingInlineEnd: spacing['padding-inline'].button.md,\n }),\n md: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.md,\n minWidth: sizing.button.md,\n paddingInlineStart: spacing['padding-inline'].button.md,\n paddingInlineEnd: spacing['padding-inline'].button.md,\n }),\n lg: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.lg,\n minWidth: sizing.button.lg,\n paddingInlineStart: spacing['padding-inline'].button.lg,\n paddingInlineEnd: spacing['padding-inline'].button.lg,\n }),\n },\n baseStyle: ({ theme: { colors: color, radii: borderRadius } }) => ({\n color: color.text.default,\n borderRadius: borderRadius.button.default,\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n }),\n variants: {\n default: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.default,\n _hover: {\n bgColor: color.background.button['default-hover'],\n },\n _active: {\n bgColor: color.background.button['default-active'],\n },\n }),\n danger: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.danger,\n color: color.text.button.danger,\n _hover: {\n bg: color.background.button['danger-hover'],\n _disabled: {\n bgColor: color.background.button.danger,\n },\n },\n _active: {\n bgColor: color.background.button['danger-active'],\n },\n }),\n success: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.success,\n _hover: {\n bg: color.background.button['success-hover'],\n _disabled: {\n bgColor: color.background.button.success,\n },\n },\n _active: {\n bgColor: color.background.button['success-active'],\n },\n }),\n brand: ({ theme: { colors: color } }) => ({\n color: color.text.inverted,\n bgColor: color.background.button.brand,\n _hover: {\n bg: color.background.button['brand-hover'],\n _disabled: {\n bgColor: color.background.button.brand,\n },\n },\n _active: {\n bgColor: color.background.button['brand-active'],\n },\n }),\n link: ({ theme: { colors: color } }) => ({\n textDecoration: 'underline',\n color: color.text.button.link,\n bgColor: color.background.button.link,\n _hover: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-hover'],\n },\n _active: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-active'],\n },\n }),\n ghost: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-hover'],\n _disabled: {\n bgColor: color.background.button.ghost,\n },\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n }),\n },\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentSingleStyleConfig, keyframes } from '@chakra-ui/react'\n\nconst pulseRing = keyframes`\n0% {\n transform: scale(0.33);\n}\n30% {\n transform: scale(0.66);\n},\n40%,\n50% {\n opacity: 0;\n}\n100% {\n opacity: 0;\n}\n`\n\nexport const Blinker: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: palette }, color, isBlinking }) => ({\n position: 'relative',\n borderRadius: '50%',\n bgColor: color === '' ? palette.blue['500'] : color,\n _before: isBlinking\n ? {\n content: \"''\",\n position: 'absolute',\n display: 'block',\n width: '300%',\n height: '300%',\n marginLeft: '-100%',\n marginTop: '-100%',\n borderRadius: '50%',\n bgColor: color === '' ? 'blue.500' : color,\n animation: `2.25s ${pulseRing} cubic-bezier(0.455, 0.03, 0.515, 0.955) -0.4s infinite`,\n zIndex: 'base',\n }\n : {},\n }),\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker['2xs'],\n width: sizing.blinker['2xs'],\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.xs,\n width: sizing.blinker.xs,\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.sm,\n width: sizing.blinker.sm,\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.md,\n width: sizing.blinker.md,\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.lg,\n width: sizing.blinker.lg,\n }),\n },\n defaultProps: {\n size: 'md',\n color: 'blue.500',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Checkbox: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label' ],\n sizes: {\n sm: {\n control: {\n fontSize: 5,\n },\n },\n md: {\n control: {\n fontSize: 7,\n },\n },\n lg: {\n control: {\n fontSize: 8,\n },\n },\n },\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n control: {\n borderColor: color.border.checkbox.default,\n bg: color.background.checkbox.default,\n borderWidth: 2,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n },\n },\n _invalid: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n _checked: {\n bg: color.background.checkbox.error,\n },\n _hover: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n _hover: {\n borderColor: color.border.checkbox['default-hover'],\n bg: color.background.checkbox.default,\n },\n _disabled: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n color: 'white',\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n },\n },\n _hover: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n },\n },\n },\n }),\n variants: {\n default: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.default,\n },\n }),\n rounded: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.full,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Input: ComponentMultiStyleConfig = {\n parts: [ 'field', 'addon' ],\n baseStyle: ({ theme: { colors: color } }) => ({\n field: {\n color: color.text.default,\n _placeholder: {\n color: color.text.input.placeholder,\n opacity: 1,\n },\n },\n }),\n variants: {\n outline: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _focusVisible: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n },\n _hover: {\n bgColor: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _invalid: {\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n addon: {\n border: 'none',\n background: 'none',\n color: color.text.default,\n },\n }),\n filled: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n borderRadius: borderRadius.input.filled,\n borderWidth: borderWidth.input.default,\n bgColor: color.background.input['filled-default'],\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n bgColor: color.background.input['filled-default'],\n },\n },\n _hover: {\n bgColor: color.background.input['filled-hover'],\n },\n _focusVisible: {\n boxShadow: `0 0 0 1px ${color.border.input.focus}`,\n borderColor: color.border.input.focus,\n bgColor: color.background.input['filled-focus'],\n _readOnly: {\n bgColor: color.background.input['filled-default'],\n },\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n },\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['filled-error'],\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['filled-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n }),\n flushed: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.flushed,\n paddingInlineEnd: spacing['padding-inline'].input.flushed,\n bgColor: color.background.input['flushed-default'],\n borderRadius: borderRadius.input.flushed,\n borderBottomWidth: borderWidth.input.default,\n borderBottomColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _hover: {\n bgColor: color.background.input['flushed-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focusVisible: {\n _hover: {\n boxShadow: `0 1px 0 0 ${color.border.input.focus}`,\n borderColor: color.border.input.focus,\n },\n _invalid: {\n boxShadow: `0 1px 0 0 ${color.border.input.error}`,\n borderColor: color.border.input.error,\n bgColor: color.background.input['flushed-error'],\n },\n },\n _invalid: {\n _hover: {\n boxShadow: `0 1px 0 0 ${color.border.input.error}`,\n borderColor: color.border.input.error,\n },\n bgColor: color.background.input['flushed-error'],\n },\n _disabled: {\n bgColor: color.background.input['flushed-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const PinInput: ComponentSingleStyleConfig = {\n variants: {\n outline: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n opacity,\n } }) => ({\n borderColor: color.border.input.default,\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n bg: color.background.input['outline-default'],\n color: color.text.default,\n paddingInline: spacing['padding-inline'].input.default,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focus: {\n borderColor: color.border.input.focus,\n bg: color.background.input['outline-focus'],\n },\n _invalid: {\n bg: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n _placeholder: {\n color: 'transparent',\n },\n },\n _disabled: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n _hover: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n },\n },\n _placeholder: {\n color: color.text.input.placeholder,\n },\n _readonly: {\n borderColor: color.border.input.readonly,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Select: ComponentMultiStyleConfig = {\n parts: [ 'field', 'icon' ],\n variants: {\n outline: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].select.default,\n paddingInlineEnd: spacing['padding-inline'].select.default,\n borderWidth: borderWidth.select,\n color: color.text.default,\n borderColor: color.border.select.default,\n borderRadius: borderRadius.select.default,\n _hover: {\n borderColor: color.border.select['default-hover'],\n },\n _focusVisible: {\n borderColor: color.border.select.focus,\n boxShadow: `0 0 0 1px ${color.border.select.focus}`,\n },\n _invalid: {\n borderColor: color.border.select.error,\n boxShadow: 'none',\n },\n _readOnly: {\n borderWidth: borderWidth.select,\n borderColor: color.border.select.readonly,\n _focusVisible: {\n borderColor: color.border.select.readonly,\n },\n },\n _disabled: {\n borderColor: color.border.select.disabled,\n bg: color.background.select.disabled,\n _hover: {\n borderColor: color.border.select.disabled,\n },\n },\n _placeholder: {\n color: color.text.select.placeholder,\n },\n },\n icon: {\n color: color.icon.select.default,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Radio: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label', 'container' ],\n sizes: {\n sm: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-sm'],\n },\n },\n }),\n md: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-md'],\n },\n },\n }),\n lg: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-lg'],\n },\n },\n }),\n },\n baseStyle: ({ theme: { borders: borderWidth, colors: color } }) => ({\n control: {\n borderColor: color.border.radio.default,\n bg: color.background.radio.default,\n borderWidth: borderWidth.radio.default,\n _checked: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n _hover: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n },\n },\n _hover: {\n borderColor: color.border.radio['default-hover'],\n bg: color.background.radio.default,\n },\n _disabled: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n _hover: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n },\n },\n _invalid: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n _hover: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n defaultProps: {\n size: 'md',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Tabs: ComponentMultiStyleConfig = {\n parts: [ 'tab' ],\n variants: {\n 'soft-rounded': ({ theme: { colors: color } }) => ({\n tab: {\n borderRadius: 999,\n color: color.text.subdued,\n _selected: {\n bg: color.background.tabs['soft-rounded-active'],\n color: color.text.tabs['soft-rounded-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Textarea: ComponentSingleStyleConfig = {\n variants: {\n outline: ({ theme: {\n space: spacing,\n colors: color,\n borders: borderWidth,\n radii: borderRadius,\n } }) => ({\n paddingInlineStart: spacing['padding-inline'].textarea.default,\n paddingInlineEnd: spacing['padding-inline'].textarea.default,\n borderRadius: borderRadius.textarea.default,\n borderWidth: borderWidth.textarea.default,\n borderColor: color.border.textarea.default,\n color: color.text.default,\n bgColor: color.background.textarea.default,\n _hover: {\n borderColor: color.border.textarea['default-hover'],\n bgColor: color.background.textarea.hover,\n },\n _focusVisible: {\n borderColor: color.border.textarea.focus,\n boxShadow: `0 0 0 1px ${color.border.textarea.focus}`,\n bgColor: color.background.textarea.active,\n },\n _invalid: {\n boxShadow: 'none',\n borderColor: color.border.textarea.error,\n bgColor: color.background.textarea.error,\n },\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.textarea.readonly,\n bgColor: color.background.textarea.default,\n },\n _hover: {\n borderColor: color.border.textarea.readonly,\n },\n },\n _disabled: {\n bgColor: color.background.textarea.disabled,\n _hover: {\n borderColor: color.border.textarea.default,\n },\n },\n _placeholder: {\n color: color.text.textarea.placeholder,\n },\n }),\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Link: ComponentSingleStyleConfig = {\n baseStyle: ({ colorScheme }) => ({\n _focus: {\n ring: '2px',\n ringColor: `${colorScheme}.100`,\n ringOffset: '1px',\n },\n }),\n defaultProps: {\n colorScheme: 'mediatoolBlue',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Switch: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n _disabled: {\n opacity: opacity.switch.disabled,\n },\n track: {\n bgColor: color.background.switch.default,\n _checked: {\n bgColor: color.background.switch['default-checked'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n thumb: {\n bgColor: color.background.switch.thumb,\n },\n }),\n}\n","import {\n ComponentMultiStyleConfig, useToken,\n} from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const Tag: ComponentMultiStyleConfig = {\n parts: [ 'container' ],\n baseStyle: {\n container: {\n fontWeight: 'semibold',\n },\n },\n sizes: {\n sm: {\n container: {\n borderRadius: 'tag.default',\n },\n },\n md: {\n container: {\n borderRadius: 'tag.default',\n },\n },\n lg: {\n container: {\n borderRadius: 'tag.default',\n },\n },\n },\n variants: {\n solid: ({ bgColor, colorScheme }) => ({\n container: {\n bgColor: bgColor ?? colorScheme,\n color: getContrastColor(bgColor ?? useToken('colors', colorScheme)),\n },\n }),\n subtle: () => ({\n container: {\n bgColor: useToken('colors', 'background.tag.subtle'),\n color: 'text.default',\n },\n }),\n },\n defaultProps: {\n size: 'md',\n colorScheme: 'background.tag.default',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Alert: ComponentMultiStyleConfig = {\n parts: [ 'container', 'title', 'description' ],\n baseStyle: ({ theme: {\n radii: borderRadius,\n colors: color,\n space: coreSpacing,\n } }) => ({\n container: {\n borderRadius: borderRadius.toast.default,\n color: color.text.default,\n paddingEnd: coreSpacing[8],\n width: 'auto',\n display: 'flex',\n },\n }),\n variants: {\n success: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.success,\n },\n }),\n warning: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.warning,\n },\n }),\n info: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.info,\n },\n }),\n error: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.error,\n color: color.text.toast.error,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const NumberInput: ComponentMultiStyleConfig = {\n parts: [ 'root', 'field', 'stepper', 'stepperGroup' ],\n sizes: {\n sm: ({ theme: { radii: borderRadius, sizes: sizing } }) => ({\n field: {\n borderRadius: borderRadius.input.outline,\n },\n stepperGroup: {\n height: sizing['8'],\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['10'],\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['12'],\n },\n }),\n },\n baseStyle: ({ theme: {\n sizes: sizing,\n space: spacing,\n colors: color,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n }, isReadOnly }) => ({\n root: {\n borderRadius: borderRadius.input.outline,\n },\n field: {\n minWidth: sizing['44'],\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n WebkitPaddingStart: spacing['padding-inline'].input.default,\n WebkitPaddingEnd: spacing['padding-inline'].input.default,\n color: color.text.default,\n bg: color.background.input['outline-default'],\n\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n paddingRight: spacing.paddingRight['number-input'].field,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focusVisible: {\n bg: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n boxShadow: `0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n bg: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n },\n _disabled: {\n bg: color.background.input['outline-disabled'],\n opacity: opacity.input.disabled,\n borderColor: color.border.input.disabled,\n },\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n boxShadow: 'none',\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n },\n stepperGroup: {\n width: 'auto',\n paddingRight: spacing.paddingRight['number-input'].stepper,\n },\n stepper: {\n _first: {\n border: 'none',\n borderTopRightRadius: borderRadius['input-stepper'].default,\n borderRadius: borderRadius['input-stepper'].default,\n bg: color.background['input-stepper'].default,\n opacity: isReadOnly ? opacity.input.disabled : 'auto',\n _hover: {\n bg: isReadOnly ? 'none' : color.background['input-stepper'].hover,\n },\n _active: {\n bg: color.background['input-stepper'].active,\n },\n _disabled: {\n bg: color.background['input-stepper'].disabled,\n color: color.icon['input-stepper'].disabled,\n },\n },\n _last: {\n border: 'none',\n bg: color.background['input-stepper'].default,\n borderBottomRightRadius: borderRadius['input-stepper'].default,\n borderRadius: borderRadius['input-stepper'].default,\n opacity: isReadOnly ? opacity.input.disabled : 'auto',\n _hover: {\n bg: isReadOnly ? 'none' : color.background['input-stepper'].hover,\n },\n _active: {\n bg: color.background['input-stepper'].active,\n },\n _disabled: {\n bg: color.background['input-stepper'].disabled,\n color: color.icon['input-stepper'].disabled,\n },\n },\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const NotificationIconButton: ComponentMultiStyleConfig = {\n parts: [ 'container', 'notifier' ],\n sizes: {\n xs: {\n notifier: {\n top: '0.5',\n right: '0.5',\n },\n },\n sm: {\n notifier: {\n top: '0.5',\n right: '0.5',\n },\n },\n md: {\n notifier: {\n top: '1',\n right: '1',\n },\n },\n lg: {\n notifier: {\n top: '2',\n right: '2',\n },\n },\n },\n variants: {\n link: {\n notifier: {\n position: 'absolute',\n top: '0',\n right: '0',\n zIndex: 'base',\n },\n },\n },\n baseStyle: () => ({\n container: {\n position: 'relative',\n },\n notifier: {\n position: 'absolute',\n top: '1',\n right: '1',\n zIndex: 'base',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { ring } from '../../../utils'\n\nexport const Calendar: ComponentMultiStyleConfig = {\n parts: [ 'container', 'dateSelect', 'dayLabel', 'rangeCalendarContainer' ],\n baseStyle: ({ theme: {\n space: spacing,\n sizes: sizing,\n colors: color,\n } }) => ({\n container: {\n p: spacing[2],\n w: sizing[64],\n bgColor: 'background.default',\n border: '1px solid',\n borderColor: 'border.input.default',\n borderRadius: 'input.outline',\n },\n rangeCalendarContainer: {\n p: '3',\n w: '128',\n bgColor: 'background.default',\n borderRadius: 'input.outline',\n },\n dateSelect: {\n fontWeight: 'semibold',\n border: 'none',\n padding: '0',\n borderRadius: 'md',\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n cursor: 'pointer',\n bgColor: color.background.button['ghost-hover'],\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n ...ring,\n },\n dayLabel: {\n color: color.gray[600],\n fontSize: 'xs',\n p: spacing[2],\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const DragAndDrop: ComponentMultiStyleConfig = {\n parts: [ 'dropZone' ],\n baseStyle: ({ sx }) => ({\n dropZone: merge({\n borderWidth: 'st.border.width.sm',\n borderStyle: 'dashed',\n borderColor: 'border.default',\n padding: '4',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '4',\n justifyContent: 'center',\n textAlign: 'center',\n minH: '56',\n minW: '56',\n bgColor: 'bg.filled',\n }, sx),\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const DatePicker: ComponentMultiStyleConfig = {\n parts: [ 'group', 'styledField', 'dateField', 'dateSegment' ],\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n group: {\n position: 'relative',\n alignItems: 'center',\n flex: 1,\n },\n styledField: {\n bgColor: 'background.default',\n _focusWithin: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.textarea.focus,\n boxShadow: `0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n dateField: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n },\n dateSegment: {\n caretColor: 'transparent',\n boxSizing: 'content-box',\n textAlign: 'center',\n outline: 'none',\n rounded: 'md',\n _focus: {\n bgColor: 'blue.500',\n color: color.text.inverted,\n },\n _placeholder: {\n color: 'red.500',\n },\n },\n }),\n variants: {\n outline: ({\n theme: { colors: color, radii: borderRadius, borders: borderWidth },\n }) => ({\n styledField: {\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n },\n }),\n filled: ({\n theme: { colors: color, radii: borderRadius, borders: borderWidth },\n }) => ({\n styledField: {\n bgColor: color.background.input['filled-default'],\n borderRadius: borderRadius.input.filled,\n borderWidth: borderWidth.input.default,\n borderColor: color.background.input['filled-default'],\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const FlipButton: ComponentMultiStyleConfig = {\n parts: [ 'container', 'button', 'buttonIcon' ],\n sizes: {\n xs: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].xs,\n minWidth: sizing['flip-button'].xs,\n paddingInlineStart: spacing['padding-inline']['flip-button'].xs,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].xs,\n fontSize: 'xs',\n },\n buttonIcon: {\n boxSize: sizing.icon.xs,\n },\n }),\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].sm,\n minWidth: sizing['flip-button'].sm,\n paddingInlineStart: spacing['padding-inline']['flip-button'].md,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].md,\n fontSize: 'sm',\n buttonIcon: {\n boxSize: sizing.icon.sm,\n },\n },\n }),\n md: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].md,\n minWidth: sizing['flip-button'].md,\n paddingInlineStart: spacing['padding-inline']['flip-button'].md,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].md,\n fontSize: 'md',\n buttonIcon: {\n boxSize: sizing.icon.md,\n },\n },\n }),\n lg: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].lg,\n minWidth: sizing['flip-button'].lg,\n paddingInlineStart: spacing['padding-inline']['flip-button'].lg,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].lg,\n fontSize: 'lg',\n buttonIcon: {\n boxSize: sizing.icon.lg,\n },\n },\n }),\n },\n baseStyle: ({ theme: {\n space: spacing,\n sizes: sizing,\n colors: color,\n opacity,\n radii: borderRadius,\n fontWeights: coreFontWeight,\n }, numberOfButtons }) => ({\n container: {\n borderRadius: borderRadius['flip-button'].default,\n paddingInlineStart: spacing['padding-inline']['flip-button-group'].default,\n paddingInlineEnd: spacing['padding-inline']['flip-button-group'].default,\n paddingY: spacing.paddingY['flip-button-group'].default,\n disply: 'grid',\n width: '100%',\n gap: spacing['padding-inline']['flip-button'].gap,\n gridTemplateColumns: `repeat(${numberOfButtons}, minmax(${sizing[32]}, 1fr))`,\n gridTemplateRows: '1fr',\n overflowX: 'auto',\n },\n button: {\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n color: color.text['flip-button'].default,\n cursor: 'pointer',\n borderRadius: borderRadius['flip-button'].default,\n fontWeight: coreFontWeight.semiBold,\n _disabled: {\n opacity: opacity['flip-button'].disabled,\n },\n _checked: {\n color: color.text['flip-button'].inverted,\n },\n },\n }),\n variants: {\n default: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-blue'],\n }, sx),\n button: {\n bgColor: color.background['flip-button']['default-deselected-blue'],\n _hover: {\n bgColor: color.background['flip-button']['hover-deselected-blue'],\n },\n _checked: {\n bgColor: color.background['flip-button']['default-selected-blue'],\n _hover: {\n bgColor: color.background['flip-button']['default-selected-blue'],\n },\n },\n },\n }),\n brand: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-brand'],\n }, sx),\n button: {\n bgColor: color.background['flip-button']['default-deselected-brand'],\n _hover: {\n bgColor: color.background['flip-button']['hover-deselected-brand'],\n },\n _checked: {\n bgColor: color.background['flip-button']['default-selected-brand'],\n _hover: {\n bgColor: color.background['flip-button']['default-selected-brand'],\n },\n },\n },\n }),\n },\n defaultProps: {\n size: 'md',\n variant: 'default',\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Spinner: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, borders: borderWidth } }) => ({\n borderWidth: borderWidth.spinner.default,\n color: color.background.spinner.thumb,\n borderBottomColor: color.background.spinner.track,\n borderLeftColor: color.background.spinner.track,\n }),\n}\n","import { randomColor } from '@chakra-ui/theme-tools'\nimport { getShades } from '../../../utils'\n\nconst possibleBgColors = getShades(400, 600)\n\nexport const getAvatarBgColor = (image: string, name: string, color: any) => {\n if (image) return color.background.avatar.image\n if (name) return randomColor({ string: name, colors: possibleBgColors })\n\n return color.background.avatar.default\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\nimport { getAvatarBgColor } from './get-avatar-bg-color'\n\nexport const Avatar: ComponentMultiStyleConfig = {\n parts: [ 'container', 'text', 'badge', 'icon' ],\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xs'],\n height: sizing.avatar['2xs'],\n },\n text: {\n lineHeight: sizing.avatar['2xs'],\n },\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xs,\n height: sizing.avatar.xs,\n },\n text: {\n lineHeight: sizing.avatar.xs,\n },\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.sm,\n height: sizing.avatar.sm,\n },\n text: {\n lineHeight: sizing.avatar.sm,\n },\n icon: {\n boxSize: sizing.avatar.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.md,\n height: sizing.avatar.md,\n },\n text: {\n lineHeight: sizing.avatar.md,\n },\n icon: {\n boxSize: sizing.avatar.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.lg,\n height: sizing.avatar.lg,\n },\n text: {\n lineHeight: sizing.avatar.lg,\n },\n icon: {\n boxSize: sizing.avatar.lg,\n },\n }),\n xl: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xl,\n height: sizing.avatar.xl,\n },\n text: {\n lineHeight: sizing.avatar.xl,\n },\n }),\n '2xl': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xl'],\n height: sizing.avatar['2xl'],\n },\n text: {\n lineHeight: sizing.avatar['2xl'],\n },\n }),\n\n },\n baseStyle: ({ theme: {\n colors: color,\n sizes: sizing,\n radii: borderRadius,\n }, image, name }) => {\n const avatarBgColor = getAvatarBgColor(image, name, color)\n\n return {\n container: {\n bgColor: avatarBgColor,\n color: getContrastColor(avatarBgColor),\n display: 'grid',\n placeItems: 'center',\n objectFit: 'cover',\n position: 'relative',\n },\n userImage: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n badge: {\n position: 'absolute',\n bottom: `-${sizing['1']}`,\n right: `-${sizing['1']}`,\n minWidth: sizing['5'],\n height: sizing['5'],\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: 'xs',\n fontWeight: 'semibold',\n padding: sizing['0a'],\n bgColor: color.red['500'],\n color: color.text.inverted,\n borderRadius: borderRadius.avatar.square,\n border: 'none',\n },\n\n }\n },\n variants: {\n square: ({ theme: { radii: borderRadius } }) => ({\n container: {\n aspectRatio: '1 / 1',\n borderRadius: borderRadius.avatar.square,\n '> img': {\n borderRadius: borderRadius.avatar.square,\n aspectRatio: '1 / 1',\n },\n },\n badge: {\n borderRadius: borderRadius.avatar.square,\n },\n }),\n rounded: ({ theme: { radii: borderRadius } }) => ({\n container: {\n aspectRatio: '1 / 1',\n borderRadius: borderRadius.avatar.rounded,\n '> img': {\n borderRadius: borderRadius.avatar.rounded,\n aspectRatio: '1 / 1',\n },\n },\n badge: {\n borderRadius: borderRadius.avatar.rounded,\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const CloseButton: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-hover'],\n _disabled: {\n bgColor: color.background.button.ghost,\n },\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n }),\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Modal: ComponentMultiStyleConfig = {\n parts: [ 'overlay', 'closeButton', 'dialog' ],\n sizes: {\n huge: {\n dialog: {\n width: '90%',\n maxW: '96rem',\n aspectRatio: '16/9',\n },\n },\n },\n baseStyle: ({ theme }) => {\n const {\n typography: { headings: { h3 } },\n } = theme\n return ({\n overlay: {\n bgColor: 'background.modal.overlay',\n backdropFilter: 'blur(8px)',\n },\n closeButton: {\n top: 4,\n right: 4,\n },\n dialog: {\n bgColor: 'background.default',\n borderRadius: 'modal.dialog',\n },\n header: {\n fontSize: h3.fontSize,\n paddingTop: 'paddingTop.modal.header',\n paddingBottom: 'paddingBottom.modal.header',\n border: 'modal.header',\n borderBottomColor: 'border.modal.header',\n borderBottomStyle: 'solid',\n },\n body: {\n paddingTop: 'paddingTop.modal.body',\n paddingBottom: 'paddingBottom.modal.body',\n },\n footer: {\n paddingTop: 'paddingTop.modal.footer',\n paddingBottom: 'paddingBottom.modal.footer',\n },\n })\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Tooltip: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, space: spacing, radii: borderRadius } }) => ({\n backgroundColor: color.background.tooltip.default,\n color: color.text.inverted,\n paddingInline: spacing['padding-inline'].tooltip.default,\n paddingY: spacing.paddingY.tooltip.default,\n borderRadius: borderRadius.tooltip.default,\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Icon: ComponentSingleStyleConfig = {\n sizes: {\n xs: {\n boxSize: 'icon.xs',\n },\n sm: {\n boxSize: 'icon.sm',\n },\n md: {\n boxSize: 'icon.md',\n },\n lg: {\n boxSize: 'icon.lg',\n },\n },\n baseStyle: ({ boxSize, color }) => ({\n boxSize: boxSize || 'icon.default',\n color: color || 'inherit',\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const ClipboardInput: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'tooltip' ],\n sizes: {\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n tooltip: {\n paddingInline: spacing['padding-inline'].tooltip.sm,\n paddingY: spacing.paddingY.tooltip.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const ColorPicker: ComponentMultiStyleConfig = {\n parts: [ 'colorButton', 'trigger', 'heading' ],\n baseStyle: ({ theme, selectedColor }) => {\n const { sizes: sizing, colors: color } = theme\n return ({\n heading: {\n border: 'none',\n paddingInlineStart: sizing['4'],\n paddingInlineEnd: sizing['2'],\n paddingBottom: sizing['0'],\n fontSize: 'md',\n fontWeight: 'semibold',\n },\n trigger: {\n bgColor: selectedColor ?? color.background.button.default,\n color: selectedColor ? getContrastColor(selectedColor) : 'unset',\n _hover: {\n bgColor: selectedColor ?? color.background.button['default-hover'],\n },\n _active: {\n bgColor: selectedColor ?? color.background.button['default-active'],\n },\n },\n colorButton: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n _hover: {\n ring: '2px',\n ringOffset: '1px',\n ringColor: `${color.border.input['default-hover']}`,\n },\n },\n })\n },\n sizes: {\n sm: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.lg,\n minWidth: sizing.button.lg,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Step: ComponentMultiStyleConfig = {\n parts: [ 'step', 'label', 'description' ],\n baseStyle: ({ theme: {\n colors: color,\n fontWeights,\n space: spacing,\n borders: borderWidth,\n } }) => ({\n step: {\n justifyContent: 'start',\n alignItems: 'start',\n bgColor: color.background.step.default,\n borderTopWidth: borderWidth.step.default,\n borderColor: color.border.step.default,\n borderBottom: 'none',\n paddingInline: spacing['padding-inline'].step.default,\n color: color.text.subdued,\n _hover: {\n bgColor: color.background.step.hover,\n borderColor: color.border.step.hover,\n },\n _active: {\n bgColor: color.background.step.active,\n },\n _selected: {\n bgColor: color.background.step.selected,\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n _hover: {\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n },\n },\n },\n label: {\n color: 'inherit',\n pt: spacing.paddingTop.step.label,\n textAlign: 'start',\n fontWeight: fontWeights.bold,\n },\n description: {\n textAlign: 'start',\n fontWeight: fontWeights.semiBold,\n color: color.text.default,\n },\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const StepList: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, tabs }) => ({\n display: 'grid',\n width: '100%',\n gridTemplateColumns: `repeat(${tabs}, minmax(${sizing[32]}, 1fr))`,\n gridTemplateRows: '1fr',\n overflowX: 'auto',\n borderBottom: 'none',\n paddingBottom: sizing[2],\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H1: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h1 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h1.fontFamily,\n fontWeight: h1.fontWeight,\n lineHeight: h1.lineHeight,\n fontSize: h1.fontSize,\n letterSpacing: h1.letterSpacing,\n textTransform: h1.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H2: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h2 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h2.fontFamily,\n fontWeight: h2.fontWeight,\n lineHeight: h2.lineHeight,\n fontSize: h2.fontSize,\n letterSpacing: h2.letterSpacing,\n textTransform: h2.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H3: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h3 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h3.fontFamily,\n fontWeight: h3.fontWeight,\n lineHeight: h3.lineHeight,\n fontSize: h3.fontSize,\n letterSpacing: h3.letterSpacing,\n textTransform: h3.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H4: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h4 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h4.fontFamily,\n fontWeight: h4.fontWeight,\n lineHeight: h4.lineHeight,\n fontSize: h4.fontSize,\n letterSpacing: h4.letterSpacing,\n textTransform: h4.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H5: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h5 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h5.fontFamily,\n fontWeight: h5.fontWeight,\n lineHeight: h5.lineHeight,\n fontSize: h5.fontSize,\n letterSpacing: h5.letterSpacing,\n textTransform: h5.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H6: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h6 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h6.fontFamily,\n fontWeight: h6.fontWeight,\n lineHeight: h6.lineHeight,\n fontSize: h6.fontSize,\n letterSpacing: h6.letterSpacing,\n textTransform: h6.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Blockquote: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { blockquote } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: blockquote.fontFamily,\n fontWeight: blockquote.fontWeight,\n lineHeight: blockquote.lineHeight,\n fontSize: blockquote.fontSize,\n letterSpacing: blockquote.letterSpacing,\n textTransform: blockquote.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Tiny: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { tiny } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: tiny.fontFamily,\n fontWeight: tiny.fontWeight,\n lineHeight: tiny.lineHeight,\n fontSize: tiny.fontSize,\n letterSpacing: tiny.letterSpacing,\n textTransform: tiny.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Capitalized: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { CAPITALIZED } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: CAPITALIZED.fontFamily,\n fontWeight: CAPITALIZED.fontWeight,\n lineHeight: CAPITALIZED.lineHeight,\n fontSize: CAPITALIZED.fontSize,\n letterSpacing: CAPITALIZED.letterSpacing,\n textTransform: CAPITALIZED.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Lead: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { lead } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: lead.fontFamily,\n fontWeight: lead.fontWeight,\n lineHeight: lead.lineHeight,\n fontSize: lead.fontSize,\n letterSpacing: lead.letterSpacing,\n textTransform: lead.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Small: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { small } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: small.fontFamily,\n fontWeight: small.fontWeight,\n lineHeight: small.lineHeight,\n fontSize: small.fontSize,\n letterSpacing: small.letterSpacing,\n textTransform: small.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const P: ComponentSingleStyleConfig = {\n variants: {\n 14: ({ theme, sx }) => {\n const { body14 } = theme.typography.body\n return merge({\n fontFamily: body14.fontFamily,\n fontWeight: body14.fontWeight,\n lineHeight: body14.lineHeight,\n fontSize: body14.fontSize,\n letterSpacing: body14.letterSpacing,\n textTransform: body14.textCase,\n }, sx)\n },\n 16: ({ theme, sx }) => {\n const { body16 } = theme.typography.body\n return merge({\n fontFamily: body16.fontFamily,\n fontWeight: body16.fontWeight,\n lineHeight: body16.lineHeight,\n fontSize: body16.fontSize,\n letterSpacing: body16.letterSpacing,\n textTransform: body16.textCase,\n }, sx)\n },\n },\n baseStyle: {\n color: 'text.default',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Label: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, sx }) => merge({\n color: 'inherit',\n width: '100%',\n maxWidth: '100%',\n marginBottom: sizing[0],\n marginInlineStart: sizing[0],\n marginEnd: sizing[0],\n marginInlineEnd: sizing[0],\n }, sx),\n sizes: {\n '2xs': ({ theme, sx }) => {\n const { tinyLabel } = theme.typography.labels\n return merge({\n fontFamily: tinyLabel.fontFamily,\n fontWeight: tinyLabel.fontWeight,\n lineHeight: tinyLabel.lineHeight,\n fontSize: tinyLabel.fontSize,\n letterSpacing: tinyLabel.letterSpacing,\n textTransform: tinyLabel.textCase,\n }, sx)\n },\n xs: ({ theme, sx }) => {\n const { xsLabel } = theme.typography.labels\n return merge({\n fontFamily: xsLabel.fontFamily,\n fontWeight: xsLabel.fontWeight,\n lineHeight: xsLabel.lineHeight,\n fontSize: xsLabel.fontSize,\n letterSpacing: xsLabel.letterSpacing,\n textTransform: xsLabel.textCase,\n }, sx)\n },\n sm: ({ theme, sx }) => {\n const { smLabel } = theme.typography.labels\n return merge({\n fontFamily: smLabel.fontFamily,\n fontWeight: smLabel.fontWeight,\n lineHeight: smLabel.lineHeight,\n fontSize: smLabel.fontSize,\n letterSpacing: smLabel.letterSpacing,\n textTransform: smLabel.textCase,\n }, sx)\n },\n md: ({ theme, sx }) => {\n const { mdLabel } = theme.typography.labels\n return merge({\n fontFamily: mdLabel.fontFamily,\n fontWeight: mdLabel.fontWeight,\n lineHeight: mdLabel.lineHeight,\n fontSize: mdLabel.fontSize,\n letterSpacing: mdLabel.letterSpacing,\n textTransform: mdLabel.textCase,\n }, sx)\n },\n lg: ({ theme, sx }) => {\n const { lgLabel } = theme.typography.labels\n return merge({\n fontFamily: lgLabel.fontFamily,\n fontWeight: lgLabel.fontWeight,\n lineHeight: lgLabel.lineHeight,\n fontSize: lgLabel.fontSize,\n letterSpacing: lgLabel.letterSpacing,\n textTransform: lgLabel.textCase,\n }, sx)\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const SplitPane: ComponentSingleStyleConfig = {\n baseStyle: ({ minLeftWidth, minRightWidth, initialSplit, isOpen }) => ({\n display: 'grid',\n overflow: 'hidden',\n gridTemplateColumns: !isOpen ? '1fr' : `minmax(${minLeftWidth}%, var(--split-pos, ${initialSplit}%)) auto minmax(${minRightWidth}%, 1fr)`,\n alignItems: 'stretch',\n justifyItems: 'stretch',\n height: '100%',\n width: '100%',\n }),\n}\n\nexport const PaneDivider: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, sizes: sizing } }) => ({\n bgColor: color.background['pane-divider'].default,\n zIndex: 300,\n cursor: 'col-resize',\n height: '100%',\n width: sizing[1],\n _hover: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n _active: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Carousel: ComponentMultiStyleConfig = {\n parts: [ 'container', 'arrow', 'radio' ],\n baseStyle: {\n container: {\n display: 'grid',\n placeItems: 'center',\n position: 'relative',\n overflow: 'hidden',\n width: 'full',\n height: 'full',\n },\n radio: {\n position: 'absolute',\n bottom: '1',\n left: '50%',\n transform: 'translateX(-50%)',\n overflowX: 'scroll',\n maxWidth: '90%',\n padding: '2',\n },\n arrow: {\n position: 'absolute',\n bottom: '0',\n height: '100%',\n cursor: 'pointer',\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const EditableText: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'controls', 'preview', 'input' ],\n sizes: {\n sm: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n controls: {\n width: !isEditing ? 6 : '3.25rem',\n },\n preview: {\n pt: 1,\n },\n input: {\n paddingInlineEnd: 16,\n paddingRight: 16,\n },\n }),\n md: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n controls: {\n width: !isEditing ? 8 : '4.25rem',\n },\n preview: {\n pt: '7px',\n },\n input: {\n paddingInlineEnd: 20,\n paddingRight: 20,\n },\n }),\n lg: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n controls: {\n width: !isEditing ? 10 : '5.25rem',\n },\n preview: {\n pt: '8px',\n },\n input: {\n paddingInlineEnd: 24,\n paddingRight: 24,\n },\n }),\n },\n baseStyle: {\n controls: {\n mr: 1,\n },\n preview: {\n fontWeight: 'semibold',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n paddingTop: 0,\n paddingBottom: 0,\n },\n input: {\n fontWeight: 'semibold',\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Toolbox: ComponentMultiStyleConfig = {\n parts: [ 'container', 'header', 'body', 'footer' ],\n baseStyle: ({ theme: { sizes: sizing } }) => ({\n container: {\n position: 'relative',\n flexDirection: 'column',\n bg: 'text.inverted',\n h: '100vh',\n borderLeftWidth: '1px',\n borderLeftStyle: 'solid',\n borderLeftColor: 'gray.100',\n },\n header: {\n alignItems: 'center',\n height: '16',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n borderBottomColor: 'gray.100',\n pl: '4',\n pr: '16',\n },\n footer: {\n position: 'absolute',\n bottom: '0',\n w: 'full',\n p: '4',\n alignItems: 'center',\n height: '16',\n borderTopWidth: '1px',\n borderTopStyle: 'solid',\n borderTopColor: 'gray.100',\n },\n body: {\n p: sizing['4'],\n flexDirection: 'column',\n w: '100%',\n h: '100%',\n maxH: `calc(100vh - ${sizing['16']} * 2)`,\n overflowY: 'scroll',\n },\n }),\n sizes: {\n sm: {\n container: {\n w: 'xs',\n },\n },\n md: {\n container: {\n w: 'md',\n },\n },\n lg: {\n container: {\n w: 'xl',\n },\n },\n },\n}\n","import { ComponentMultiStyleConfig, keyframes } from '@chakra-ui/react'\nimport { CSSObject } from '@emotion/react'\nimport { CurrentTheme } from '../../../utils'\n\nconst shakeAnimation = keyframes`\n 0% { transform: translate(1px, 1px) rotate(0deg); }\n 10% { transform: translate(-1px, -2px) rotate(-1deg); }\n 20% { transform: translate(-3px, 0px) rotate(1deg); }\n 30% { transform: translate(3px, 2px) rotate(0deg); }\n 40% { transform: translate(1px, -1px) rotate(1deg); }\n 50% { transform: translate(-1px, 2px) rotate(-1deg); }\n 60% { transform: translate(-3px, 1px) rotate(0deg); }\n 70% { transform: translate(3px, 1px) rotate(-1deg); }\n 80% { transform: translate(-1px, -1px) rotate(1deg); }\n 90% { transform: translate(1px, 2px) rotate(0deg); }\n 100% { transform: translate(1px, -2px) rotate(-1deg); }\n`\n\nconst thickRing: CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '3px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n\nconst getBgColor = (currentTheme: CurrentTheme) => {\n switch (currentTheme) {\n case 'webappTheme': return 'blue.50'\n case 'tottTheme': return 'blue.900'\n default: return 'bg.filled'\n }\n}\n\nconst getInvalidColorStyles = (isInvalid: boolean, isImage = true, currentTheme: CurrentTheme = 'webappTheme') => ({\n borderColor: isInvalid ? 'red.500' : 'gray.300',\n bgColor: isInvalid && 'red.50',\n animation: isInvalid && `500ms ${shakeAnimation} ease`,\n _hover: isImage && {\n bgColor: isInvalid ? 'red.50' : getBgColor(currentTheme),\n borderColor: isInvalid ? 'red.500' : 'blue.500',\n },\n})\n\nexport const FilePicker: ComponentMultiStyleConfig = {\n parts: [ 'filePicker', 'fileItem', 'multiFilePicker' ],\n baseStyle: ({ theme: { sizes, colors }, hasLoaded, isImage, isInvalid, currentTheme }) => ({\n filePicker: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: '44',\n height: '40',\n textAlign: 'center',\n position: 'relative',\n borderWidth: hasLoaded && isImage ? '0' : sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, isImage, currentTheme),\n ...thickRing,\n },\n multiFilePicker: {\n width: 'full',\n maxWidth: 'inherit',\n height: '32',\n position: 'relative',\n borderWidth: sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, undefined, currentTheme),\n ...thickRing,\n },\n fileItem: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n paddingX: '2',\n paddingY: '1',\n borderRadius: sizes['2'],\n textAlign: 'center',\n position: 'relative',\n border: `2px solid ${colors.gray['100']}`,\n minHeight: '20',\n },\n }),\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n WebappSkin as WebappSkinTokens,\n typography,\n} from '@northlight/tokens'\n\nexport const WebappSkin:ThemeOverride = {\n colors: WebappSkinTokens.color,\n sizes: WebappSkinTokens.sizing,\n space: WebappSkinTokens.spacing,\n radii: WebappSkinTokens.borderRadius,\n borders: WebappSkinTokens.borderWidth,\n opacity: WebappSkinTokens.opacity,\n typography,\n shadows: WebappSkinTokens.boxShadow,\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n TottSkin as TottSkinTokens,\n typography,\n} from '@northlight/tokens'\n\nexport const TottSkin:ThemeOverride = {\n colors: TottSkinTokens.color,\n sizes: TottSkinTokens.sizing,\n space: TottSkinTokens.spacing,\n radii: TottSkinTokens.borderRadius,\n borders: TottSkinTokens.borderWidth,\n opacity: TottSkinTokens.opacity,\n shadows: TottSkinTokens.boxShadow,\n typography,\n}\n","import {\n ThemeOverride,\n extendTheme,\n} from '@chakra-ui/react'\nimport {\n coreBorderRadius,\n coreBoxShadow,\n coreFontSize,\n coreFontWeight,\n coreLineHeight,\n coreSizing,\n coreSpacing,\n coreZIndex,\n palette,\n} from '@northlight/tokens'\nimport { scrollbarStyles } from './global/scrollbar'\nimport * as components from './components'\nimport { TottSkin, WebappSkin } from './skins'\n\nconst overrides: ThemeOverride = {\n config: {\n cssVarPrefix: '',\n },\n semanticTokens: {\n colors: {\n 'chakra-body-text': {\n _light: 'text.default',\n _dark: 'text.inverted',\n },\n },\n },\n styles: {\n global: {\n html: {\n scrollBehavior: 'smooth',\n },\n body: {\n height: '100%',\n },\n '#app': {\n height: '100%',\n },\n ...scrollbarStyles,\n },\n },\n fonts: {\n heading: 'Inter, sans-serif',\n body: 'Inter, sans-serif',\n },\n components: { ...components },\n colors: palette,\n zIndices: coreZIndex,\n sizes: coreSizing,\n space: coreSpacing,\n fontWeights: coreFontWeight,\n shadows: coreBoxShadow,\n fontSizes: coreFontSize,\n lineHeights: coreLineHeight,\n radii: coreBorderRadius,\n borderWidths: WebappSkin.borders,\n}\n\nexport const theme = extendTheme(overrides, WebappSkin)\n\nexport const tottTheme = extendTheme(overrides, TottSkin)\n","import React from 'react'\nimport { ChakraProvider } from '@chakra-ui/react'\nimport { theme as webappTheme } from '../../theme'\nimport { MediatoolThemeProviderProps } from './types'\nimport { CustomTheme } from '../../utils/use-current-theme'\n\n/**\n * Should be at the root of you project, wraps the app in the theme context\n * @see {@link https://northlight.dev/reference/mediatool-theme-provider}\n *\n * @example\n * Should pass down a theme from northlight/ui, currently exports two themes:\n * * theme - light mode\n * * tottTheme - dark mode\n *\n *\n */\nexport const MediatoolThemeProvider = ({\n children,\n theme = webappTheme,\n themeName = 'webappTheme',\n}: MediatoolThemeProviderProps) => (\n <ChakraProvider resetCSS={ true } theme={ theme }>\n <CustomTheme.Provider value={ themeName }>\n { children }\n </CustomTheme.Provider>\n </ChakraProvider>\n)\n","import React from 'react'\nimport {\n NumberInputStepper as ChakraNumberInputStepper,\n NumberDecrementStepper,\n NumberIncrementStepper,\n} from '@chakra-ui/react'\nimport { ChevronDownSolid, ChevronUpSolid } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { HStack } from '../stack'\nimport { Divider } from '../divider'\nimport { P } from '../typography'\nimport { Center } from '../center'\nimport { NumberInputStepperProps } from './types'\n\nexport const NumberInputStepper = ({\n includePercentage = false,\n}: NumberInputStepperProps) => (\n <ChakraNumberInputStepper>\n <HStack alignItems=\"center\" h=\"full\">\n { includePercentage && (\n <Center bgColor=\"gray.50\" borderRadius=\"md\" boxSize=\"6\">\n <P>%</P>\n </Center>\n ) }\n <Divider orientation=\"vertical\" h=\"50%\" />\n <NumberIncrementStepper border=\"none\">\n <Icon\n as={ ChevronUpSolid }\n color=\"icon.input-stepper.default\"\n boxSize={ 4 }\n />\n </NumberIncrementStepper>\n <NumberDecrementStepper>\n <Icon\n as={ ChevronDownSolid }\n color=\"icon.input-stepper.default\"\n boxSize={ 4 }\n />\n </NumberDecrementStepper>\n </HStack>\n </ChakraNumberInputStepper>\n)\n","import { head, isNil, last, length, match, split } from 'ramda'\n\nconst regex = /(9{13,}|0{13,})(\\d)*$/gm\n\nexport const advancedParseFloat = (value: number | string) => {\n if (isNil(value) || Number.isNaN(parseFloat(value as string))) {\n return value\n }\n\n const splitValue = split('.', `${value}`)\n const intPart = head(splitValue)\n const decimalPart = last(splitValue)\n\n if (isNil(decimalPart)) {\n return value\n }\n\n const roundingError = match(regex, decimalPart)\n if (isNil(roundingError)) {\n return value\n }\n\n const decimalsErrorLength = length(head(roundingError) as string)\n const correctDecimalsLength = decimalPart.length - decimalsErrorLength\n\n return parseFloat(\n parseFloat(`${intPart}.${decimalPart}`)\n .toFixed(correctDecimalsLength)\n )\n}\n","import React, { ChangeEvent } from 'react'\nimport {\n NumberInput as ChakraNumberInput,\n NumberInputField,\n} from '@chakra-ui/react'\nimport { defaultTo, identity, path } from 'ramda'\nimport { NumberInputStepper } from './number-input-stepper'\nimport { NumberInputProps } from './types'\nimport { advancedParseFloat } from './advanced-parse-float'\n\n/**\n * Basic accessible input that only allows numbers, with support for arrow keys,\n * min max values and percentages\n *\n * @example\n * (?\n * <Box p=\"3\">\n * <NumberInput max={100} min={0} step={3} onlyAcceptPercentage={true} />\n * </Box>\n * ?)\n */\nexport const NumberInput = ({\n variant = 'default',\n size = 'md',\n onChange = identity,\n onInputChange = identity,\n name,\n onlyAcceptPercentage = false,\n ...rest\n}: NumberInputProps) => {\n const percentageProps = onlyAcceptPercentage && {\n step: 0.1,\n }\n\n const percentageFactor = onlyAcceptPercentage ? 0.01 : 1\n const handleChange = (e: ChangeEvent<HTMLInputElement> | string) => {\n const input = defaultTo(e, path([ 'target', 'value' ], e)) as string\n onInputChange(input)\n\n const value = advancedParseFloat(parseFloat(input) * percentageFactor)\n\n const filteredNaN = Number.isNaN(value)\n ? ''\n : value\n\n onChange(`${filteredNaN}`)\n }\n\n return (\n <ChakraNumberInput\n variant={ variant }\n size={ size }\n onChange={ handleChange }\n id={ name }\n { ...percentageProps }\n { ...rest }\n >\n <NumberInputField onChange={ handleChange } />\n <NumberInputStepper includePercentage={ onlyAcceptPercentage } />\n </ChakraNumberInput>\n )\n}\n","import React, { useState } from 'react'\nimport { identity, isNil } from 'ramda'\nimport { NumberInputFieldProps } from './types'\nimport { Field } from '../form'\nimport { NumberInput } from './number-input'\nimport { advancedParseFloat } from './advanced-parse-float'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\n/**\n * The number input component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see NumberInput\n * @see {@link https://northlight.dev/reference/number-input-field}\n *\n */\nexport const NumberInputField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n onlyAcceptPercentage = false,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: NumberInputFieldProps) => {\n const formatNumber = (value: number, factor: number) => (\n onlyAcceptPercentage\n ? advancedParseFloat(value * factor)\n : value\n )\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => {\n const initialValue = isNil(value) || Number.isNaN(parseFloat(value))\n ? ''\n : formatNumber(value, 100)\n\n const [ displayValue, setDisplayValue ] = useState(initialValue)\n\n return (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <NumberInput\n name={ name }\n data-testid=\"number-input-field-test-id\"\n onInputChange={ (v) => {\n setDisplayValue(v)\n const parsed = formatNumber(parseFloat(v), 0.01)\n\n onChange(parsed)\n onChangeCallback(parsed)\n } }\n value={ displayValue }\n onlyAcceptPercentage={ onlyAcceptPercentage }\n { ...rest }\n />\n </InputGroupWrapper>\n )\n } }\n </Field>\n )\n}\n","import React, { forwardRef, useState } from 'react'\nimport { Box, useMultiStyleConfig } from '@chakra-ui/react'\nimport { Blinker } from '../blinker'\nimport { IconButton } from '../icon-button'\nimport { NotificationIconButtonProps } from './types'\n\n/**\n * A custom component that composes the IconButton and Blinker components.\n * The notification blinker blinks on hover.\n * @see {@link https://northlight.dev/reference/notification-icon-button}\n *\n * @example\n * (?\n * <Box w=\"min-content\">\n<NotificationIconButton\n variant=\"brand\"\n aria-label=\"conversations\"\n icon={ <Icon as={ ConversationDuo } /> }\n hasNotification={ true }\n size=\"lg\"\n/>\n</Box>\n * ?)\n */\nexport const NotificationIconButton = forwardRef(({\n variant = 'ghost',\n icon,\n 'aria-label': ariaLabel,\n hasNotification = false,\n blinkerColor = 'green.500',\n size,\n ...rest\n}: NotificationIconButtonProps, ref: any) => {\n const [ isBlinking, setIsBlinking ] = useState(false)\n const { container, notifier } = useMultiStyleConfig('NotificationIconButton', { size, variant })\n return (\n <Box\n onMouseEnter={ () => setIsBlinking(true) }\n onMouseLeave={ () => setIsBlinking(false) }\n sx={ container }\n >\n { hasNotification && (\n <Box sx={ notifier }>\n <Blinker isBlinking={ isBlinking } color={ blinkerColor } size=\"2xs\" />\n </Box>\n ) }\n <IconButton\n variant={ variant }\n icon={ icon }\n aria-label={ ariaLabel }\n ref={ ref }\n size={ size }\n { ...rest }\n />\n </Box>\n )\n})\n","import React from 'react'\nimport { PinInput as ChakraPinInput } from '@chakra-ui/react'\nimport { PinInputProps } from './types'\n\n/**\n * For entering numbers in ex two factor authentication\n * @see {@link https://northlight.dev/reference/pin-input}\n * @example\n * (?\n <HStack p=\"1\">\n <PinInput>\n <PinInputField />\n <PinInputField />\n <PinInputField />\n <PinInputField />\n </PinInput>\n </HStack>\n * ?)\n *\n *\n */\nexport const PinInput = ({\n variant = 'outline',\n hidden,\n children,\n ...rest\n}: PinInputProps) => (\n <ChakraPinInput { ...rest } variant={ variant } placeholder=\"●\" mask={ hidden }>\n { children }\n </ChakraPinInput>\n)\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { getContrastColor } from '../../../utils'\n\nexport const customSelectStyles: ChakraStylesConfig<any> = {\n container: (provided) => ({\n ...provided,\n width: '100%',\n color: 'text.default',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isFocused && 'background.select.option-focus',\n _active: {\n background: 'background.select.option-active',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n }),\n downChevron: (provided) => ({\n ...provided,\n color: 'icon.select.default',\n }),\n placeholder: (provided) => ({\n ...provided,\n color: 'text.select.placeholder',\n }),\n multiValue: (provided, state) => {\n const background = state.data.isFixed\n ? 'background.select.option-disabled'\n : state.data.color ?? provided.bgColor\n return ({\n ...provided,\n bgColor: background,\n color: getContrastColor(background),\n })\n },\n menuList: (provided) => ({\n ...provided,\n bgColor: 'background.default',\n }),\n}\n","import React, { FunctionComponent, useMemo, useRef } from 'react'\nimport {\n Select as ChakraReactSelect,\n GroupBase,\n OptionsOrGroups,\n} from 'chakra-react-select'\nimport { Box } from '@chakra-ui/react'\nimport { equals, identity, is } from 'ramda'\nimport { Option, SelectProps } from './types'\nimport { customSelectStyles } from '../../theme/components/select/custom-select'\nimport { useSelectCallbacks } from '../../hooks'\nimport { getComponents } from '../search-bar/get-components'\n\n/**\n * Select component that provides a customizable and accessible select input.\n * It is built on top of Chakra UI and Chakra React Select components.\n *\n * @see SearchBar\n * @see {@link https://northlight.dev/reference/select}\n *\n * @example (Example)\n * ## Single Select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isClearable={ true }\n * />\n * ?)\n *\n * @example (Example)\n * ## Clearable Select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isClearable={ true }\n * />\n * ?)\n *\n * @example (Example)\n * ## Multi select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isMulti\n * />\n * ?)\n *\n * @example (Example)\n * ## Event meta\n * _There is a second argument passed to the handlechange that can be useful\n * for knowing which elements where adding/removed_\n * (?\n * () => {\n * const handleChange = (val, e) => {\n switch (e.action) {\n case 'select-option':\n //on add value\n console.log(e.option)\n break\n case 'pop-value':\n //on remove value\n console.log(e.removedValue.categoryKey)\n break\n default:\n break\n }\n }\n * return <Select onChange={handleChange} options={[{label: '1', value: '1'}]} isMulti={true}/>\n *\n * }\n * ?)\n *\n * @example (Example)\n * ##Customizing\n * There are two special props for easy customization\n * * customOption\n * * customTag\n *\n * This are themselves react components\n * (?\n+const customOption = ({ label }) => (\n <HStack>\n <Avatar name={label} />\n <P>{label}</P>\n </HStack>\n);\n\nconst customTag = ({ label }) => {\n const [ isIncluded, setIsIncluded ] = useState(true)\n const toggle = () => setIsIncluded((prev) => !prev)\n\n return (\n <Flex>\n <Button\n size=\"xs\"\n onClick={ toggle }\n onMouseDown={ (e) => e.stopPropagation() }\n >\n { isIncluded ? 'Include' : 'Exclude' }\n </Button>\n <Tag>{ label }</Tag>\n </Flex>\n )\n}\n\nconst CustomSelect = () => (\n <Select\n customOption={customOption}\n customTag={ customTag }\n isMulti={true}\n options={[\n { label: 'Option 1', value: '1' },\n { label: 'Option 2', value: '2' },\n ]}\n\n />\n);\n\nrender(<CustomSelect />);\n *\n * ?)\n *\n *\n * @example (Example)\n * ## Testing\n * You can grab the test id for the select by\n * **screen.getByTestId('custom-testid)\n * .children[0].children[2].children[0].children[1].children[0]**\n * (?\n * <Select\n * data-testid=\"custom-test-id\"\n * />\n * ?)\n*/\nexport function Select<T extends Option> ({\n options,\n isMulti = false,\n onChange = identity,\n onAdd = identity,\n onRemove = identity,\n isLoading,\n loadingList = () => null,\n 'data-testid': testId,\n customOption = null,\n customTag = null,\n value,\n icon,\n ...rest\n}: SelectProps<T>) {\n const CustomSelect = ChakraReactSelect as FunctionComponent<SelectProps<T>>\n const handleChange = useSelectCallbacks<T>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? (value as T[]) : [],\n })\n\n const customComponents = getComponents<T>()\n\n const prevOptions = useRef<OptionsOrGroups<T, GroupBase<T>> | undefined>(\n options\n )\n const renderedOptions = useMemo(() => {\n if (!equals(prevOptions.current, options)) {\n prevOptions.current = options\n }\n return prevOptions.current\n }, [ options ])\n\n return (\n <Box w=\"full\" data-testid={ testId }>\n <CustomSelect\n isMulti={ isMulti }\n options={ renderedOptions }\n useBasicStyles={ true }\n closeMenuOnSelect={ !isMulti }\n hideSelectedOptions={ false }\n isClearable={ false }\n onChange={ handleChange }\n selectedOptionStyle=\"check\"\n chakraStyles={ customSelectStyles }\n isLoading={ isLoading }\n { ...(isLoading && { components: { MenuList: loadingList } }) }\n value={ value }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n { ...rest }\n />\n </Box>\n )\n}\n","import React from 'react'\nimport { FieldValues } from 'react-hook-form'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity } from 'ramda'\nimport { Option, SelectFieldProps } from './types'\nimport { Field } from '../form'\nimport { Select } from './select'\nimport { HStack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\nexport function SelectField<T extends Option> ({\n name,\n label,\n options,\n direction = 'column',\n isMulti,\n isRequired,\n validate,\n isClearable = true,\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: SelectFieldProps<T>) {\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <Select<T>\n name={ name }\n options={ options }\n isMulti={ isMulti }\n onChange={ (values: FieldValues, event) => {\n onChange(\n isMulti\n ? values.map((item: any) => item.value)\n : values.value\n )\n onChangeCallback(values as T | T[], event)\n } }\n value={\n value\n ? options?.flatMap((inner : any) => (inner.options ? inner.options : inner))\n .filter((option: any) => value.includes(option.value)) as any\n : null\n }\n { ...rest }\n />\n </InputGroupWrapper>\n <IconButton\n aria-label={ `${name}-close-button` }\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n hidden={ value === '' || !isClearable }\n onClick={ onChange }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n}\n","import React from 'react'\nimport { Switch as ChakraSwitch } from '@chakra-ui/react'\nimport { SwitchProps } from './types'\n\n/**\n * @see SwitchField\n * @see {@link https://northlight.dev/reference/switch}\n *\n * @example (Example)\n * Mainly used for forms, however this component is controlled by\n * a value prop and an onChange callback\n *\n * (?\n * () => {\n * const [ advancedMode, setAdvancedMode ] = useState(false)\n *\n * return (\n * <Stack p=\"2\">\n * <Label size=\"sm\" htmlFor=\"advanced-mode-switch\">Advanced mode</Label>\n * <Switch name=\"vegan-checkbox\" onChange={() => setAdvancedMode((prev) => !prev)}\n * value={advancedMode} />\n * </Stack>\n * )\n * }\n * ?)\n */\nexport const Switch = ({\n value,\n onChange,\n name,\n size = 'md',\n ...rest\n}: SwitchProps) => (\n <ChakraSwitch\n size={ size }\n id={ name }\n isChecked={ value }\n onChange={ onChange }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { SwitchFieldProps } from './types'\nimport { Field } from '../form'\nimport { Switch } from './switch'\nimport { Box } from '../box'\nimport { Flex } from '../flex'\nimport { Label } from '../typography'\n\n/**\n * The switch component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see switch\n * @see {@link https://northlight.dev/reference/switch-field}\n* @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}}>\n * <SwitchField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPosition=\"left\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const SwitchField = ({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPosition = 'right',\n ...rest\n}: SwitchFieldProps) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <Flex\n gap={ 2 }\n direction={ labelPosition === 'left' ? 'row-reverse' : 'row' }\n >\n <Switch\n name={ name }\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"switch-field-test-id\"\n { ...rest }\n />\n { label && <Label htmlFor={ name }>{ label }</Label> }\n </Flex>\n ) }\n </Field>\n </Box>\n)\n","import React from 'react'\nimport { TabPanel as ChakraTabPanel } from '@chakra-ui/react'\nimport { TabPanelProps } from './types'\n\n/**\n * Used to display content under tabs context\n * @see Tabs\n * @see {@link https://northlight.dev/reference/tab-panel}\n * @example\n * (? <TabPanel>Tab 1</TabPanel> ?)\n */\nexport const TabPanel = (props: TabPanelProps) => (\n <ChakraTabPanel padding={ 0 } { ...props } />\n)\n","import React from 'react'\nimport { Tabs as ChakraTabs } from '@chakra-ui/react'\nimport { TabsProps } from './types'\n\n/**\n * Context provider for tabs tabs\n * @see TabList\n * @see TabPanels\n * @see {@link https://northlight.dev/reference/tabs}\n * @example\n * (?\n <Tabs>\n <Stack spacing=\"2\">\n <TabList>\n <Tab>One</Tab>\n <Tab>Two</Tab>\n <Tab>Three</Tab>\n </TabList>\n <TabPanels>\n <TabPanel>\n <P>one!</P>\n </TabPanel>\n <TabPanel>\n <P>two!</P>\n </TabPanel>\n <TabPanel>\n <P>three!</P>\n </TabPanel>\n </TabPanels>\n </Stack>\n </Tabs>\n * ?)\n *\n */\nexport const Tabs = (({\n children,\n variant = 'soft-rounded',\n isManual = true,\n ...rest\n}: TabsProps) => (\n <ChakraTabs\n isManual={ isManual }\n variant={ variant }\n { ...rest }\n >\n { children }\n </ChakraTabs>\n))\n","import React from 'react'\nimport { Textarea as ChakraTextarea } from '@chakra-ui/react'\nimport { TextareaProps } from './types'\n\n/**\n * Text input for larger raw text\n * @see Input\n * @see {@link https://northlight.dev/reference/textarea}\n *\n * @example\n * (? <Textarea /> ?)\n */\nexport const Textarea = ({\n size = 'md',\n onChange,\n name,\n value,\n ...rest\n}: TextareaProps) => (\n <ChakraTextarea\n size={ size }\n id={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { TextareaFieldProps } from './types'\nimport { Field } from '../form'\nimport { Textarea } from './textarea'\n\nexport const TextareaField = ({\n name,\n label,\n isRequired,\n validate,\n direction,\n onChange: onChangeCallback = identity,\n ...rest\n}: TextareaFieldProps) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n >\n { ({ onChange, value }) => (\n <Textarea\n name={ name }\n data-testid=\"textarea-field-test-id\"\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n)\n","import React from 'react'\nimport { Input } from '../input'\nimport { FormattedNumberInputProps } from './types'\n\nexport const FormattedNumberInput = ({\n onChange,\n formatter,\n ...rest\n}: FormattedNumberInputProps) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const { target: { value } } = e\n const unFormattedValue = value === ''\n ? value\n : formatter.unFormat(value)\n\n onChange?.(unFormattedValue)\n }\n\n const value = rest.value ?? ''\n\n const formattedValue = value === ''\n ? value\n : formatter.format(value)\n\n return (\n <Input\n { ...rest }\n value={ formattedValue }\n onChange={ handleChange }\n />\n )\n}\n","import React from 'react'\nimport InputMask from 'react-input-mask'\nimport { Input } from '../input'\nimport { MaskedTextInputProps } from './types'\n\n//! Overload error in @types/react-input-mask, overwriting faulty types as unknown as any\nconst CustomInput = InputMask as unknown as any\n\nexport const MaskedTextInput = ({\n mask,\n maskPlaceholder,\n alwaysShowMask,\n name,\n value,\n placeholder,\n onChange,\n onBlur,\n ...rest\n}: MaskedTextInputProps) => (\n <CustomInput\n mask={ mask }\n maskPlaceholder={ maskPlaceholder }\n alwaysShowMask={ alwaysShowMask }\n name={ name }\n value={ value }\n onChange={ onChange }\n onBlur={ onBlur }\n >\n { ({ name: nameProp }: any) => (\n <Input\n placeholder={ maskPlaceholder ?? placeholder }\n name={ nameProp }\n { ...rest }\n />\n ) }\n </CustomInput>\n)\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { TextFieldProps } from './types'\nimport { Input } from '../input'\nimport { Field } from '../form'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper'\n\n/**\n * The Input component wrapped in <Field />\n * Also supported formmated and musked input via as prop\n * @see Input\n * @see MaskedTextInput\n * @see FormattedNumberInput\n * @see {@link https://northlight.dev/reference/text-field}\n *\n *\n */\nexport const TextField = ({\n name,\n label,\n as: As = Input,\n isRequired,\n validate,\n direction = 'column',\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: TextFieldProps) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n >\n { ({ onChange, value }) => (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <As\n id={ name }\n name={ name }\n onChange={ (e: React.ChangeEvent<HTMLInputElement> | string) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"text-field-test-id\"\n { ...rest }\n />\n </InputGroupWrapper>\n ) }\n </Field>\n)\n","import {\n AlertCircleSolid,\n AlertTriangleSolid,\n BellSolid,\n CheckCircleSolid,\n} from '@northlight/icons'\nimport { AlertVariants } from '../../alert/types'\n\nexport const toastIconMap: Record<AlertVariants, any> = {\n success: CheckCircleSolid,\n warning: AlertTriangleSolid,\n error: AlertCircleSolid,\n info: BellSolid,\n}\n","import React from 'react'\nimport { Alert as ChakraAlert } from '@chakra-ui/react'\nimport { toastIconMap } from '../types'\nimport { ToastProps } from './types'\nimport { Icon } from '../icon'\nimport { HStack, Stack } from '../stack'\nimport { CloseButton } from '../close-button'\nimport { Label, P } from '../typography'\n\n/**\n * Toast is a modified alert meant for popup alerts\n * @see useToast\n * @see Alert\n * @see {@link https://northlight.dev/reference/toast}\n * @example\n * (?\n *\n <HStack spacing={ 4 }>\n <Toast variant=\"success\" title=\"success\" />\n <Toast variant=\"warning\" title=\"warning\" />\n <Toast variant=\"info\" title=\"info\" />\n <Toast variant=\"error\" title=\"error\" />\n </HStack>\n * ?)\n *\n */\nexport const Toast = ({\n variant = 'success',\n title = '',\n description = '',\n onClose,\n ...rest\n}: ToastProps) => (\n <ChakraAlert\n variant={ variant }\n data-testid=\"toast-test\"\n { ...rest }\n >\n <HStack alignItems=\"flex-start\">\n <Icon as={ toastIconMap[variant] } color={ `icon.toast.${variant}` } boxSize={ 6 } />\n <Stack spacing={ 0 } alignItems=\"flex-start\">\n { title && <Label size=\"md\">{ title }</Label> }\n { description && (\n <P>{ description }</P>\n ) }\n </Stack>\n <CloseButton\n size=\"sm\"\n onClick={ onClose }\n position=\"absolute\"\n insetEnd={ 1 }\n top={ 1 }\n />\n </HStack>\n </ChakraAlert>\n)\n","import React from 'react'\nimport { useToast as useChakraToast } from '@chakra-ui/react'\nimport { Toast } from './toast'\nimport { UseToastOptions } from './types'\n\n/**\n * This hook returns a toast function that when called will popup a toast\n * @see Toast\n * @see {@link https://northlight.dev/reference/use-toast}\n * @example\n * (?\n * () => {\n * const toast = useToast()\n * const handleClick = () => {\n * toast({title: 'Success', description: 'Your file changes have been saved' })\n * }\n * return (\n * <Button onClick={handleClick} variant=\"success\">Save</Button>\n * )}\n * ?)\n */\nexport const useToast = (defaultOpts: UseToastOptions = {}) => {\n const toast = useChakraToast(defaultOpts)\n\n return (opts: UseToastOptions = {}) => toast({\n render: ({ onClose }) => {\n const { variant = 'success', title = 'Success', description = '' } = opts\n\n return (\n <Toast\n variant={ variant }\n title={ title }\n description={ description }\n onClose={ onClose }\n />\n )\n },\n position: 'top',\n ...opts,\n })\n}\n","import { Color, ColorGrade } from '../../types'\nimport { PinVariant } from '../pin-input/types'\n\nexport const pinVariantMap: Record<PinVariant, `${Color}.${ColorGrade}`> = {\n green: 'green.300',\n yellow: 'yellow.300',\n gray: 'gray.300',\n red: 'red.400',\n}\n","import { PinSize, PinSizeTuple } from '../pin-input/types'\n\nexport const pinSizeMap: Record<PinSize, PinSizeTuple > = {\n sm: [ 4, 2 ],\n md: [ 5, 3 ],\n lg: [ 6, 3.5 ],\n}\n","import React from 'react'\nimport { Circle } from '../circle'\nimport { pinVariantMap } from './pin-variant-map'\nimport { pinSizeMap } from './pin-size-map'\nimport { StatusPinProps } from './types'\n\n/**\n * @see StatusBlock\n * @see {@link https://northlight/reference/status-pin}\n *\n * @example\n * (? <StatusPin variant=\"green\" /> ?)\n *\n */\nexport const StatusPin = ({ size = 'md', variant }: StatusPinProps) => {\n const pinColor = pinVariantMap[variant]\n const pinSizeTuple = pinSizeMap[size]\n const [ outerSize, innerSize ] = pinSizeTuple\n\n return (\n <Circle\n size={ outerSize }\n bg=\"white\"\n borderWidth=\"1px\"\n borderColor={ pinColor }\n >\n <Circle\n size={ innerSize }\n bg={ pinColor }\n />\n </Circle>\n )\n}\n","import { BlockVariant, BlockVariantColorTuple } from './types'\n\nexport const blockVariantMap: Record<BlockVariant, BlockVariantColorTuple> = {\n approved: [ 'green.100', 'green.500' ],\n pending: [ 'yellow.300', 'yellow.700' ],\n working: [ 'gray.50', 'gray.400' ],\n rejected: [ 'red.100', 'red.400' ],\n}\n","import { CDeleteSolid, CheckCircleSolid, HourglassSolid, StatusWorkingSolid } from '@northlight/icons'\nimport { Color, ColorGrade } from '../../types'\n\nexport type BlockVariant = 'working' | 'pending' | 'approved' | 'rejected'\n\nexport interface StatusBlockProps {\n variant: BlockVariant\n}\n\nexport type BlockVariantColorTuple = [`${Color}.${ColorGrade}`, `${Color}.${ColorGrade}`]\n\nexport const statusIconMap: Record<BlockVariant, any> = {\n working: StatusWorkingSolid,\n pending: HourglassSolid,\n approved: CheckCircleSolid,\n rejected: CDeleteSolid,\n}\n","import React from 'react'\nimport { Icon } from '@chakra-ui/react'\nimport { Tag, TagLabel, TagLeftIcon } from '../tag'\nimport { blockVariantMap } from './block-variant-map'\nimport { StatusBlockProps, statusIconMap } from './types'\n\n/**\n * Used as status indicator\n * @see {@link https://northlight.dev/reference/status-block}\n * @example\n * (? <StatusBlock variant=\"approved\" /> ?)\n */\nexport const StatusBlock = ({ variant }: StatusBlockProps) => {\n const [ bgColor, contentColor ] = blockVariantMap[variant]\n\n return (\n <Tag\n w={ 28 }\n h={ 8 }\n justifyContent=\"center\"\n bgColor={ bgColor }\n color={ contentColor }\n borderRadius={ 4 }\n >\n <TagLeftIcon>\n <Icon as={ statusIconMap[variant] } />\n </TagLeftIcon>\n <TagLabel\n lineHeight={ 5 }\n fontWeight=\"semibold\"\n textTransform=\"capitalize\"\n >\n { variant }\n </TagLabel>\n </Tag>\n )\n}\n","import React from 'react'\nimport {\n AlertDescription,\n AlertTitle,\n Alert as ChakraAlert,\n} from '@chakra-ui/react'\nimport { toastIconMap } from '../types'\nimport { Icon } from '../icon'\nimport { VStack } from '../stack'\nimport { AsyncErrorProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/async-error}\n * @example\n * (?\n * <AsyncError />\n * ?)\n *\n */\nexport const AsyncError = ({\n message = '',\n ...rest\n}: AsyncErrorProps) => (\n <ChakraAlert backgroundColor=\"background.default\" color=\"text.default\" width=\"100%\" { ...rest }>\n <VStack w=\"full\">\n <Icon as={ toastIconMap.error } color=\"icon.toast.error\" boxSize={ 6 } />\n <AlertTitle> Error </AlertTitle>\n { message && (\n <AlertDescription>{ message }</AlertDescription>\n ) }\n </VStack>\n </ChakraAlert>\n)\n","import React from 'react'\nimport { StepPanelProps } from './types'\nimport { TabPanel as ChakraStepPanel } from '../tabs'\n\n/**\n * Used to display content under specific step\n * @see Steps\n * @see StepPanels\n * @see {@link https://northlight.dev/reference/step-panel}\n * @example\n * (? <StepPanel>Step 1</StepPanel> ?)\n */\nexport const StepPanel = (props: StepPanelProps) => (\n <ChakraStepPanel padding={ 0 } { ...props } />\n)\n","import React from 'react'\nimport { Tabs as ChakraSteps } from '@chakra-ui/react'\nimport { StepsProps } from './types'\n\n/**\n * Context provider for steps tabs\n * @see StepList\n * @see StepPanels\n * @see {@link https://northlight.dev/reference/steps}\n * @example\n * (?\n <Steps>\n <StepList>\n <Step label=\"Step 1\" description=\"Name and email\" />\n <Step label=\"Step 2\" description=\"Pick a password\" />\n <Step label=\"Step 3\" description=\"Review\" />\n </StepList>\n <StepPanels>\n <StepPanel>1</StepPanel>\n <StepPanel>2</StepPanel>\n <StepPanel>3</StepPanel>\n </StepPanels>\n </Steps>\n * ?)\n *\n *\n */\nexport const Steps = (props: StepsProps) => (\n <ChakraSteps isManual={ true } { ...props } />\n)\n","import React from 'react'\nimport { Tab as ChakraStep, useMultiStyleConfig } from '@chakra-ui/react'\nimport { Capitalized, Lead } from '../typography'\nimport { Flex } from '../flex'\nimport { ring } from '../../utils'\nimport { StepProps } from './types'\n\n/**\n * Renders a step in a step list\n * @see StepList\n * @see Steps\n * @see {@link https://northlight.dev/reference/step}\n * @example\n * (? <Step label=\"Step 1\" description=\"Personal information\" /> ?)\n *\n */\nexport const Step = ({\n label,\n description,\n ...rest\n}: StepProps) => {\n const {\n step,\n label: labelStyle,\n description: descriptionStyle,\n } = useMultiStyleConfig('Step')\n return (\n <ChakraStep { ...rest } sx={ step }>\n <Flex\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n _groupFocusVisible={ ring }\n >\n <Capitalized sx={ labelStyle }>\n { label }\n </Capitalized>\n <Lead sx={ descriptionStyle }>\n { description }\n </Lead>\n </Flex>\n </ChakraStep>\n )\n}\n","import React, { Children } from 'react'\nimport { TabList as ChakraStepList, useStyleConfig } from '@chakra-ui/react'\nimport { StepListProps } from './types'\n\n/**\n * Used to render a navigational list of steps\n * @see Step\n * @see Steps\n * @see {@link https://northlight.dev/reference/step-list}\n * @example\n * (?\n <StepList>\n <Step label=\"Step 1\" description=\"Name and email\" />\n <Step label=\"Step 2\" description=\"Pick a password\" />\n <Step label=\"Step 3\" description=\"Review\" />\n </StepList>\n * ?)\n *\n */\nexport const StepList = ({ children, ...rest }: StepListProps) => {\n const tabs = Children.count(children)\n const styles = useStyleConfig('StepList', { tabs })\n return (\n <ChakraStepList { ...rest } sx={ styles }>\n { children }\n </ChakraStepList>\n )\n}\n","import React, { useEffect } from 'react'\nimport { useClipboard, useMultiStyleConfig } from '@chakra-ui/react'\nimport { CheckDuo, CopyDuo } from '@northlight/icons'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { Tooltip } from '../tooltip'\nimport { Input, InputGroup, InputRightElement } from '../input'\nimport { ClipboardInputProps } from './types'\n\n/**\n * Meant to display non editable copiable text\n * @see {@link https://northlight.dev/reference/clipboard-input}\n *\n * @example (Example)\n * ## Your token\n * (?\n * <ClipboardInput value=\"8aa6d075-eae2-49b3-8f65-318ece801b3b\" aria-label=\"Copy token\" />\n * ?)\n *\n */\nexport const ClipboardInput = ({\n size = 'md',\n value,\n 'aria-label': ariaLabel,\n ...rest\n}: ClipboardInputProps) => {\n const { hasCopied, onCopy, setValue } = useClipboard(value)\n const { button, icon, tooltip } = useMultiStyleConfig('ClipboardInput', { size })\n\n useEffect(() => {\n setValue(value)\n }, [ value ])\n\n return (\n <InputGroup size={ size } data-testid=\"clipboard-input-test-id\">\n <Input\n aria-label={ `Value to copy: ${value}` }\n isReadOnly={ true }\n value={ value }\n { ...rest }\n />\n <InputRightElement>\n <Tooltip\n label={ hasCopied ? 'Copied!' : 'Copy' }\n placement=\"left\"\n closeOnClick={ false }\n sx={ tooltip }\n >\n <IconButton\n aria-label={ ariaLabel || 'Click to copy' }\n onClick={ onCopy }\n variant={ hasCopied ? 'success' : 'default' }\n sx={ button }\n >\n <Icon\n as={ hasCopied ? CheckDuo : CopyDuo }\n sx={ icon }\n />\n </IconButton>\n </Tooltip>\n </InputRightElement>\n </InputGroup>\n )\n}\n","import React, { cloneElement, useCallback, useRef } from 'react'\nimport { Grid, useStyleConfig } from '@chakra-ui/react'\nimport { SplitPaneProps } from './types'\n\n/**\n * Used for split screen layouts\n * @see PaneItem\n * @see PaneDivider\n * @see {@link https://northlight.dev/reference/split-pane}\n *\n */\nexport const SplitPane = ({\n children,\n initialSplit = 50,\n isOpen,\n minLeftWidth = 25,\n minRightWidth = 50,\n}: SplitPaneProps) => {\n const dividerRef = useRef<HTMLDivElement | null>(null)\n\n const mouseDownHandler = useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.target !== dividerRef.current) {\n return\n }\n let requestedFrame: number | null = null\n\n e.stopPropagation()\n e.preventDefault()\n\n const target = e.currentTarget\n\n target.setPointerCapture(e.pointerId)\n\n target.onpointermove = (moveEvent: PointerEvent) => {\n if (!(moveEvent.buttons && 1)) {\n target.onpointermove = null\n target.releasePointerCapture(moveEvent.pointerId)\n return\n }\n\n moveEvent.stopPropagation()\n moveEvent.preventDefault()\n\n if (!requestedFrame) {\n const { offsetX } = moveEvent\n\n requestedFrame = requestAnimationFrame(() => {\n target.style.setProperty(\n '--split-pos',\n `${Math.max(offsetX, 0)}px`\n )\n requestedFrame = null\n })\n }\n }\n },\n []\n )\n\n const containerStyle = useStyleConfig('SplitPane', { minLeftWidth, minRightWidth, initialSplit, isOpen })\n\n return (\n <Grid\n sx={ containerStyle }\n onPointerDown={ mouseDownHandler }\n >\n { children[0] }\n { isOpen && cloneElement(children[1], { ref: dividerRef }) }\n { isOpen && children[2] }\n </Grid>\n )\n}\n","import React from 'react'\nimport { GridItem, GridItemProps } from '@chakra-ui/react'\n\n/**\n * Wrapper around child of split pane\n * @see SplitPane\n * @see {@link https://northlight.dev/reference/PaneItem}\n *\n */\nexport const PaneItem = ({ children, ...rest } : GridItemProps) => (\n <GridItem overflow=\"hidden\" { ...rest }>\n { children }\n </GridItem>\n)\n","import React from 'react'\nimport { Box, BoxProps, forwardRef, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * Simple vertical line for split screen\n * @see SplitPane\n * @see PaneItem\n * @see {@link https://northlight.dev/reference/pane-divider}\n * @example\n * (?\n * <Box h=\"xs\">\n * <PaneDivider />\n * </Box>\n * ?)\n * */\nexport const PaneDivider = forwardRef((props: BoxProps, ref: any) => {\n const style = useStyleConfig('PaneDivider')\n return (\n <Box\n ref={ ref }\n sx={ style }\n { ...props }\n />\n )\n})\n","import React from 'react'\nimport { useToken } from '@chakra-ui/system'\nimport { StepStackProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\nimport { HStack, Stack } from '../stack'\nimport { Center } from '../center'\nimport { Divider } from '../divider'\nimport { Label } from '../typography'\n/**\n * Util wraper for creating ordered vertical layouts by stack\n * @see {@link https://northlight.dev/reference/step-stack}\n * @example\n * (?\n * <StepStack maxW=\"sm\" spacing=\"4\" rowHeight=\"10\">\n { Array.from({length: 5}, (_, i) => i).map((i) => <Input key={ i } />) }\n</StepStack>\n * ?)\n<br />\nIt takes all the props that a normal stack takes, with the addition of a\n rowHeight prop, which is needed to get the correct height for the grey\n line that goes between the steps. Any valid css height unit, px, rem, %,\n and tokens xs, sm are valid input for rowHeight.\n(ex: rowHeight=\"3rem\")\n *\n */\nexport const StepStack = ({\n children,\n spacing = '4',\n rowHeight = '10',\n ...rest\n}: StepStackProps) => {\n const rows = getChildrenWithProps(children, {})\n const parsedRowHeight = useToken('sizes', rowHeight)\n\n return (\n <Stack spacing={ spacing } position=\"relative\" { ...rest }>\n { rows.map(\n (row, i) => (\n <HStack key={ `row-${i as number}` }>\n <>\n <Center\n borderRadius=\"full\"\n bgColor=\"blue.500\"\n boxSize=\"6\"\n minW=\"6\"\n minH=\"6\"\n zIndex=\"docked\"\n >\n <Label\n size=\"sm\"\n sx={ { color: 'text.inverted' } }\n w=\"max-content\"\n textAlign=\"center\"\n >\n { i + 1 }\n </Label>\n </Center>\n { row }\n </>\n </HStack>\n )\n ) }\n <Divider\n orientation=\"vertical\"\n left=\"3\"\n bottom={ `calc(${parsedRowHeight} / 2)` }\n h={ `calc(100% - ${parsedRowHeight})` }\n position=\"absolute\"\n />\n </Stack>\n )\n}\n"],"names":["p","i","A","m","n","c","o","r","d","Accordion","props","React","ChakraAccordion","__spreadValues","u","AccordionButton","ChakraAccordionButton","P","e","a","AccordionPanel","ChakraAccordionPanel","t","AccordionItem","ChakraAccordionItem","_","l","OrganizationLogo","_a","_b","name","image","variant","rest","__objRest","getInitials","orgName","container","text","useMultiStyleConfig","chakra","Alert","children","ChakraAlert","s","AspectRatio","ChakraAspectRatio","k","f","Icon","forwardRef","ref","As","size","color","boxSize","CustomIcon","ChakraIcon","styles","useStyleConfig","luminosity","hexcolor","hex","g","b","getContrastColor","colorTwo","useToken","colorOne","colorInHex","l1","l2","threshold","brightColor","darkColor","ring","highlight","getShades","startShade","endShade","start","end","palette","colors","value","shade","firstName","lastName","getFieldError","errors","nameWithoutRightBracket","replace","fieldErrorPath","split","path","passPropsToChild","child","isValidElement","cloneElement","h","getChildrenWithProps","predicate","T","Children","addAlpha","alpha","limitAlpha","opacity","createDebounceFunctionInstance","delay","timeout","fn","args","CustomTheme","createContext","useCurrentTheme","useContext","AvatarBadge","notificationCount","badge","Avatar","userImage","icon","Box","UserSquareDuo","BusinessContactDuo","H1","sx","Heading","H2","H3","H4","H5","H6","ChakraText","Blockquote","Capitalized","Lead","Small","Tiny","Label","FormLabel","VisuallyHidden","positiveOrZero","ifElse","gt","always","identity","EMPTY_RECT","EMPTY_WINDOW","OverflowGroup","initMax","childrenProps","onChange","rect","max","setMax","useState","windowState","setWindowState","isLocked","useRef","nbrChildren","updateMax","inc","dec","rectDependency","defaultTo","useEffect","handleResize","nbrRemainingChildren","shownChildren","take","useOverflowGroup","setRect","node","S","AvatarGroup","spacing","nbrRemainingAvatars","setNbrRemainingAvatars","HStack","B","Badge","ChakraBadge","Blinker","isBlinking","Button","ChakraButton","Checkbox","ChakraCheckbox","shouldTrim","is","values","trimFormValues","obj","newObj","forEach","property","format","trim","keys","Form","initialValues","onSubmit","validate","formSettings","methods","enableReinitialize","newMethods","useForm","_context","_options","useImperativeHandle","initalValuesImage","equals","formatValues","handleSubmit","FormProvider","label","useDebounce","debouncedValue","setDebouncedValue","handler","useLoadingMessage","prefix","dots","setDots","useInterval","useArrowFocus","columns","next","previous","focusFirst","focusLast","useFocusManager","defaultOpts","focusPrevious","repeat","wrap","focusNext","useSelectCallbacks","onAdd","onRemove","isMulti","items","val","event","isNil","last","removedItems","map","prop","difference","Field","direction","isRequired","noLabelConnection","useFormContext","control","fieldError","FormControl","Stack","Controller","field","FormErrorMessage","useSetValueRefreshed","setValue","watch","options","v","x","CheckboxField","onChangeCallback","labelPlacement","labelSize","Flex","IconButton","ariaLabel","IconComponent","IconWithSize","ChakraIconButton","paletteColors","defaultColors","ColorButton","onClick","selected","defaultArrows","onKeyDown","colorButton","CheckDuo","ColorsExpandButton","expanded","ChevronUpDuo","ChevronDownDuo","ColorPicker","expandedColors","isOpen","onToggle","onClose","useDisclosure","setExpanded","useBoolean","selectedColor","setSelectedColor","visibleColors","setVisibleColors","initialFocusRef","trigger","heading","parsedValue","baseColors","prev","expandColors","getNumberOfColumns","shouldBeFocused","index","colorVal","handleSelect","Popover","PopoverTrigger","ColorsDuo","PopoverContent","PopoverHeader","PopoverBody","FocusScope","SimpleGrid","ColorPickerField","G","FlipButtonContext","useFlipButtonState","useCheckboxGroupState","useRadioGroupState","useFlipButtonGroup","state","propsWithLabel","__spreadProps","useCheckboxGroup","useRadioGroup","useFlipButton","flipButtonGroupProps","D","H","y","F","FlipButton","isDisabled","iconPlacement","propsWithoutChildren","omit","inputProps","useCheckboxGroupItem","useRadio","button","buttonIcon","focusProps","isFocused","useFocusRing","focusStyles","focusRing","isSelected","flipButtonProps","mergeProps","mergeAll","CheckSolid","SlideFade","Text","M","O","W","FlipButtonGroup","numberOfButtons","childrenWithProps","restWithoutOnChange","FlipButtonGroupField","Trigger","handleClick","buttonProps","useButton","CalendarDuo","DateSegment","segment","segmentProps","useDateSegment","isDivider","dateSegment","minWidth","mapFormat","formatQuery","query","toLower","delimeterIncluded","DateField","useDateFieldState","createCalendar","dateField","fieldProps","useDateField","segments","dateFormat","getMatchingSegment","find","sortedSegments","id","StyledField","isInvalid","styledField","CalendarCell","date","currentMonth","cellProps","formattedDate","useCalendarCell","isToday","today","isOutsideMonth","isSameMonth","DayLabels","memo","weekDays","dayLabel","weekDaysWithIds","day","_id","CalendarGrid","locale","startDate","gridProps","headerProps","useCalendarGrid","weeksInMonth","getWeeksInMonth","Table","Thead","Tbody","times","weekIndex","Tr","MonthButton","months","MonthSelect","offset","dateSelect","selectedIndex","setSelectedIndex","isEditing","setIsEditing","moveStartDateBy","inp","diff","Select","month","YearSelect","years","year","useYearsCalendar","formatter","useDateFormatter","useYearsRangeCalendar","YearSelectCalendar","YearSelectRangeCalendar","Calendar","useLocale","useCalendarState","GregorianCalendar","calendarProps","prevButtonProps","nextButtonProps","useCalendar","ChevronLeftSolid","ChevronRightSolid","C","DatePicker","isClearable","resetDate","minValue","group","useDatePickerState","groupProps","dialogProps","useDatePicker","parseDate","togglePopup","PopoverAnchor","InputGroup","InputRightElement","XCloseSolid","Clickable","href","linkProps","clickable","useClickable","Link","ReactRouterLink","defaultFadeDelay","defaultOffset","unFocusStyles","getChildrenWithFocus","disableFocus","show","getDuration","enterDuration","exitDuration","duration","inDuration","outDuration","getOffsets","offsetX","offsetY","delta","useDelay","enterDelay","exitDelay","showWithDelay","setShowWithDelay","useHiddenDisplay","anchor","onTransitionComplete","hidden","setHidden","Fade","hideDisplay","transition","isHidden","ChakraFade","ScaleFade","ChakraScaleFade","Slide","ChakraSlide","deltaX","deltaY","ChakraSlideFade","Collapse","ChakraCollapse","MoveButton","validRange","ButtonRow","dates","getMethods","any","AdjustRange","adjust","setIsOpen","moveEndDateBy","moveStartDayBack","moveStartWeekBack","moveStartMonthBack","moveStartYearBack","moveStartDayForward","moveStartWeekForward","moveStartMonthForward","moveStartYearForward","moveStartBack","moveStartForward","moveEndDayBack","moveEndWeekBack","moveEndMonthBack","moveEndYearBack","moveEndDayForward","moveEndWeekForward","moveEndMonthForward","moveEndYearForward","moveEndBack","moveEndForward","updateDate","newDate","focusOnStart","getMethodsStart","getMethodsEnd","ChevronUpSolid","ChevronDownSolid","ArrowCircleLeftDuo","ArrowCircleRightDuo","RangeCell","RangeCalendarGrid","endDate","endOfMonth","DateButton","isActive","getQuickSelectOptions","fiscalStartMonth","fiscalStartDay","thisDay","startOfMonthWithDays","days","endOfMonthWithDays","thisWeek","startOfWeek","endOfWeek","lastWeek","thisMonth","startOfMonth","lastMonth","thisYear","startOfYear","endOfYear","lastYear","nextMonth","nextThreeMonths","nextSixMonths","nextYear","thisFiscalYear","lastFiscalYear","F1","F2","F3","F4","fiscalQuarters","seperator","QuickSelect","updateVisibleRange","height","quickDates","useMemo","getIsActive","shouldShow","quickDate","quarter","RangeCalendar","updateRange","setUpdateRange","useRangeCalendarState","rangeCalendarContainer","useRangeCalendar","handleClose","ChevronSelectorVerticalSolid","SimpleRangeCalendar","isValidDateRange","has","parseValue","DateRangePicker","mode","maxValue","parsedProps","useDateRangePickerState","startFieldProps","endFieldProps","useDateRangePicker","I","InputGroupWrapper","inputLeftElement","inputRightElement","not","all","DatePickerField","firstDayOfWeek","setError","handleChange","DateRangePickerField","dateRange","w","K","Toolbox","shouldPush","width","autoFocus","newChildren","_child","handleKeyDown","toolboxWidth","Portal","coreZIndex","ToolboxHeader","header","CloseButton","ToolboxContent","body","ToolboxFooter","footer","Radio","ChakraRadio","RadioGroup","ChakraRadioGroup","RadioGroupField","carouselItemWidth","carouselItemSpacing","variants","CarouselItem","itemWidth","itemHeight","motion","Center","CarouselArrow","arrow","Carousel","showArrows","showRadio","controlledIndex","carouselStyles","dragging","setDragging","containerWidth","setContainerWidth","activeIndex","setActiveIndex","useMotionValue","radio","childrenAsArray","numberOfChildren","carouselTotalWidth","totalWidth","containerRef","getNewX","updateActiveIndex","animate","handleRightArrowClick","handleLeftArrowClick","searchBarStyles","merge","provided","background","getComponents","chakraComponents","SearchBar","defaultOptions","customOption","customTag","debouncedWaitTime","getCustomOptions","clearInputOnSelect","closeMenuOnSelect","testId","onSearchInputChange","SearchDuo","filtered","setFiltered","filterInput","setFilterInput","debounceFunction","customComponents","simpleFilter","filter","option","test","getOptions","newOptions","loadOptions","callback","resetFiltered","action","AsyncSelect","SearchBarField","isEmpty","DragAndDrop","DndContext","Tag","bgColor","colorScheme","ChakraTag","OverflowIndicator","nbrRemainingTags","TagGroup","DefaultOverflowIndicator","setNbrRemainingTags","DragItem","isDragging","itemLabel","TagLabel","TagRightIcon","DotsMatrixSolid","L","Draggable","disableDrag","useDraggable","attributes","listeners","setNodeRef","transform","childrenWithDragCursor","dragEventListeners","CSS","Droppable","useDroppable","Sortable","SortableContext","SortableItem","dblClickThreshold","useSortable","timeStampSnapchot","inEditMode","onPointerDown","handlePointerDown","style","DragHandle","DragDuo","Z","DropZone","dropZone","q","U","E","MultiSort","sortableItems","collisionDetection","sensors","setItems","activeItem","setActiveItem","moveBetweenContainers","activeContainerName","overContainerName","overIndex","item","remove","insert","customSensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","findContainer","key","getContainers","active","over","overId","indexOf","newItems","arrayMove","rectIntersection","SortableList","createKey","strategy","onMovedItem","displayOverlay","identifierItems","prevIds","oldIndex","newIndex","rectSortingStrategy","DragOverlay","SortableContainer","FastList","itemCount","itemSize","overscanCount","initialScrollOffset","AutoSizer","autoWidth","autoHeight","VariableSizeList","_index","FastGrid","rows","columnSize","rowSize","overscanRowCount","overscanColumnCount","VariableSizeGrid","rowIndex","columnIndex","EditableControls","getSubmitButtonProps","getCancelButtonProps","useEditableControls","onEdit","useEditableState","controls","EditDuo","EditableText","inputValue","leftItem","input","preview","Editable","newValue","InputLeftElement","Input","EditablePreview","ChakraEditableInput","Modal","isCentered","ChakraModal","ModalOverlay","ModalContent","ModalCloseButton","FileEditorModal","fileName","setFileName","handleCrop","isImage","canEditFileName","canCropImage","zoomLevel","setZoomLevel","position","setPosition","ModalHeader","ModalBody","AvatarEditor","pos","Slider","SliderTrack","SliderFilledTrack","SliderThumb","ZoomInDuo","ModalFooter","ConfirmDeleteModal","confirmDelete","handleDelete","formattedTime","seconds","baseString","hours","minutes","newSeconds","updateTimeThreshold","animationSlideTime","ProgressBar","loaded","onLoadEnd","timeRef","progress","timeLeft","setTimeLeft","deltaTime","newEstimate","VStack","Progress","Spinner","ChakraSpinner","fiveHundredMB","imageLazyThreshold","defaultEditOptions","j","z","getResizingFactor","imgWidth","imgHeight","maxWidth","maxHeight","convertBlobToFile","blob","type","compressImage","file","quality","canvas","context","imageBuffer","resolve","resizingFactor","scaledWidth","scaledHeight","newImage","readableFileSize","getImageAsFile","res","getFormatsAsArray","acceptFormat","getAcceptedExtensions","getAcceptedFormats","getFileExtension","getFileFormat","validFileFormat","isValidFile","maxFileSize","isValid","getNewUploadingFiles","curr","files","buffer","prevIDs","currentIDs","removedItemsIDs","filesIDs","intersection","updatedData","generateId","isFile","isFileImage","onlyAcceptsImages","formats","extensions","premiseOne","premiseTwo","createFileObject","createPreviewFileObject","createFileObjectFromSrc","isOverflowing","element","toBase64","reject","reader","error","correctFileExtension","str","getFileFormattedName","handleDownload","FileIconButton","FilePicker","compression","uploadedInitial","showProgress","loadWithSpinner","editFileOptions","fileInputRef","imageEditorRef","setFile","setIsInvalid","setName","editModal","deleteModal","editable","setEditable","hasLoaded","setHasLoaded","isLoading","setIsLoading","setIsImage","uploaded","setUploaded","onlyImageAccepted","isUploading","currentTheme","filePicker","handleOnClick","fileType","newFile","clearImage","handleImageUpload","isFileTypeImage","compressedImage","handleDrop","Image","Image03Solid","UploadCloudSolid","FileBlankDuo","EditBoxDuo","DownloadDuo","TrashFullDuo","FilePickerField","formattedFile","MultiFileUploader","addFilesToQueue","updatePreviewFiles","inputRef","multiFilePicker","setActive","errorMessage","setErrorMessage","toggleHover","updateMultipleFiles","newFiles","filesArr","validFiles","fileCheck","compressedFiles","FileItem","addFile","deleteFile","isLazy","canEdit","canEditImage","canEditName","fileItem","editModalDisclosure","deleteModalDisclosure","setShow","loadingImage","setLoadingImage","Image03Duo","ChakraImage","MultiFileList","uploadingFiles","enableSmartLoad","uploadingFilesReference","setUploadingFilesReference","overflowing","setOverflowing","formattedFiles","listRef","newVal","MultiFilePicker","enablePreLoad","bufferFiles","setBufferFiles","previewFiles","setPreviewFiles","getIndexById","findIndex","addedFile","indexOfChanged","newPreviewFiles","indexOfRemoved","queuedFiles","MultiFilePickerField","getFiles","sources","source","concat","removedIndex","src","newValues","scrollbarStyles","Breadcrumb","sizing","borderRadius","pulseRing","keyframes","borderWidth","PinInput","Tabs","Textarea","Switch","coreSpacing","NumberInput","isReadOnly","NotificationIconButton","coreFontWeight","possibleBgColors","getAvatarBgColor","randomColor","avatarBgColor","theme","h3","Tooltip","ClipboardInput","Step","fontWeights","StepList","tabs","h1","h2","h4","h5","h6","blockquote","tiny","CAPITALIZED","lead","small","body14","body16","tinyLabel","xsLabel","smLabel","mdLabel","lgLabel","SplitPane","minLeftWidth","minRightWidth","initialSplit","PaneDivider","shakeAnimation","thickRing","getBgColor","getInvalidColorStyles","sizes","WebappSkin","WebappSkinTokens","typography","TottSkin","TottSkinTokens","overrides","components","coreSizing","coreBoxShadow","coreFontSize","coreLineHeight","coreBorderRadius","extendTheme","tottTheme","MediatoolThemeProvider","webappTheme","themeName","ChakraProvider","NumberInputStepper","includePercentage","ChakraNumberInputStepper","Divider","NumberIncrementStepper","NumberDecrementStepper","regex","advancedParseFloat","splitValue","intPart","head","decimalPart","roundingError","match","decimalsErrorLength","length","correctDecimalsLength","onInputChange","onlyAcceptPercentage","percentageProps","percentageFactor","filteredNaN","ChakraNumberInput","NumberInputField","N","formatNumber","factor","initialValue","displayValue","setDisplayValue","parsed","hasNotification","blinkerColor","setIsBlinking","notifier","ChakraPinInput","customSelectStyles","loadingList","CustomSelect","ChakraReactSelect","prevOptions","renderedOptions","SelectField","inner","ChakraSwitch","SwitchField","labelPosition","TabPanel","ChakraTabPanel","isManual","ChakraTabs","ChakraTextarea","TextareaField","FormattedNumberInput","unFormattedValue","formattedValue","CustomInput","InputMask","MaskedTextInput","mask","maskPlaceholder","alwaysShowMask","placeholder","onBlur","nameProp","TextField","toastIconMap","CheckCircleSolid","AlertTriangleSolid","AlertCircleSolid","BellSolid","Toast","title","description","useToast","toast","useChakraToast","opts","pinVariantMap","pinSizeMap","StatusPin","pinColor","pinSizeTuple","outerSize","innerSize","Circle","blockVariantMap","statusIconMap","StatusWorkingSolid","HourglassSolid","CDeleteSolid","StatusBlock","contentColor","TagLeftIcon","AsyncError","message","AlertTitle","AlertDescription","StepPanel","ChakraStepPanel","Steps","ChakraSteps","step","labelStyle","descriptionStyle","ChakraStep","ChakraStepList","hasCopied","onCopy","useClipboard","tooltip","CopyDuo","dividerRef","mouseDownHandler","useCallback","requestedFrame","target","moveEvent","containerStyle","Grid","PaneItem","GridItem","StepStack","rowHeight","parsedRowHeight","row"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"northlight.min.js","sources":["../../lib/components/accordion/accordion.tsx","../../lib/components/accordion/accordion-button.tsx","../../lib/components/accordion/accordion-panel.tsx","../../lib/components/accordion/accordion-item.tsx","../../lib/components/organization-logo/organization-logo.tsx","../../lib/components/alert/alert.tsx","../../lib/components/aspect-ratio/aspect-ratio.tsx","../../lib/components/icon/icon.tsx","../../lib/utils/luminosity/index.ts","../../lib/utils/get-contrast-color/index.ts","../../lib/utils/ring/index.ts","../../lib/utils/highlight/index.ts","../../lib/utils/get-shades/index.ts","../../lib/utils/get-initials/index.ts","../../lib/utils/get-field-error/index.ts","../../lib/utils/get-children-with-props/pass-props-to-child.ts","../../lib/utils/get-children-with-props/index.ts","../../lib/utils/add-alpha/index.ts","../../lib/utils/debounce/create-debounce-function-instance.ts","../../lib/utils/use-current-theme/index.ts","../../lib/components/avatar/avatar-badge.tsx","../../lib/components/avatar/avatar.tsx","../../lib/components/typography/headings/h1.tsx","../../lib/components/typography/headings/h2.tsx","../../lib/components/typography/headings/h3.tsx","../../lib/components/typography/headings/h4.tsx","../../lib/components/typography/headings/h5.tsx","../../lib/components/typography/headings/h6.tsx","../../lib/components/typography/body/p.tsx","../../lib/components/typography/stylized/blockquote.tsx","../../lib/components/typography/stylized/capitalized.tsx","../../lib/components/typography/stylized/lead.tsx","../../lib/components/typography/stylized/small.tsx","../../lib/components/typography/stylized/tiny.tsx","../../lib/components/typography/labels/label.tsx","../../lib/components/overflow-group/overflow-group.tsx","../../lib/components/overflow-group/use-overflow-group.ts","../../lib/components/avatar/avatar-group.tsx","../../lib/components/badge/badge.tsx","../../lib/components/blinker/blinker.tsx","../../lib/components/button/button.tsx","../../lib/components/checkbox/checkbox.tsx","../../lib/components/form/trim-form-values.ts","../../lib/components/form/form.tsx","../../lib/components/form-control/form-label.tsx","../../lib/hooks/use-debounce/index.ts","../../lib/hooks/use-loading-message/index.ts","../../lib/hooks/use-arrow-focus/index.ts","../../lib/hooks/use-select-callbacks/use-select-callbacks.ts","../../lib/components/form/field.tsx","../../lib/components/form/use-set-value-refreshed.ts","../../lib/components/checkbox/checkbox-field.tsx","../../lib/components/icon-button/icon-button.tsx","../../lib/components/color-picker/constants.ts","../../lib/components/color-picker/color-button.tsx","../../lib/components/color-picker/colors-expand-button.tsx","../../lib/components/color-picker/color-picker.tsx","../../lib/components/color-picker/color-picker-field.tsx","../../lib/components/flip-button/utils.ts","../../lib/components/flip-button/flip-button.tsx","../../lib/components/flip-button/flip-button-group.tsx","../../lib/components/flip-button/flip-button-group-field.tsx","../../lib/components/date-picker/components/date-field/trigger.tsx","../../lib/components/date-picker/components/date-field/date-segment.tsx","../../lib/components/date-picker/components/date-field/utils.ts","../../lib/components/date-picker/components/date-field/date-field.tsx","../../lib/components/date-picker/components/date-field/styled-field.tsx","../../lib/components/date-picker/components/calendar/components/calendar-cell.tsx","../../lib/components/date-picker/components/calendar/components/day-labels.tsx","../../lib/components/date-picker/components/calendar/components/calendar-grid.tsx","../../lib/components/date-picker/components/calendar/components/month-button.tsx","../../lib/components/date-picker/components/calendar/constants.ts","../../lib/components/date-picker/components/calendar/date-select/month-select.tsx","../../lib/components/date-picker/components/calendar/date-select/year-select.tsx","../../lib/components/date-picker/components/calendar/date-select/utils.ts","../../lib/components/date-picker/components/calendar/date-select/year-select-calendar.tsx","../../lib/components/date-picker/components/calendar/date-select/year-select-range-calendar.tsx","../../lib/components/date-picker/components/calendar/calendar.tsx","../../lib/components/date-picker/date-picker/date-picker.tsx","../../lib/components/clickable/clickable.tsx","../../lib/components/transitions/constants.ts","../../lib/components/transitions/utils.ts","../../lib/components/transitions/fade.tsx","../../lib/components/transitions/scale-fade.tsx","../../lib/components/transitions/slide.tsx","../../lib/components/transitions/slide-fade.tsx","../../lib/components/transitions/collapse.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/move-button.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/utils.ts","../../lib/components/date-picker/components/calendar/quick-navigation/button-row.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/adjust-range.tsx","../../lib/components/date-picker/components/calendar/components/range-cell.tsx","../../lib/components/date-picker/components/calendar/components/range-grid.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/date-button.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/get-quick-select-options.ts","../../lib/components/date-picker/components/calendar/quick-navigation/quick-select.tsx","../../lib/components/date-picker/components/calendar/range-calendar.tsx","../../lib/components/date-picker/components/calendar/simple-range-calendar.tsx","../../lib/components/date-picker/date-picker-field/utils.ts","../../lib/components/date-picker/date-picker/date-range-picker.tsx","../../lib/internal-components/input-group-wrapper/input-group-wrapper.tsx","../../lib/components/date-picker/date-picker-field/date-picker-field.tsx","../../lib/components/date-picker/date-picker-field/date-range-picker-field.tsx","../../lib/components/toolbox/toolbox.tsx","../../lib/components/toolbox/toolbox-header.tsx","../../lib/components/toolbox/toolbox-content.tsx","../../lib/components/toolbox/toolbox-footer.tsx","../../lib/components/radio/radio.tsx","../../lib/components/radio/radio-group.tsx","../../lib/components/radio/radio-group-field.tsx","../../lib/components/carousel/constants.ts","../../lib/components/carousel/carousel-item.tsx","../../lib/components/carousel/carousel-arrow.tsx","../../lib/components/carousel/carousel.tsx","../../lib/components/search-bar/styles.ts","../../lib/components/search-bar/get-components.tsx","../../lib/components/search-bar/search-bar.tsx","../../lib/components/search-bar/search-bar-field.tsx","../../lib/components/drag-and-drop/drag-and-drop.tsx","../../lib/components/tag/tag.tsx","../../lib/components/tag/overflow-indicator.tsx","../../lib/components/tag/tag-group.tsx","../../lib/components/drag-and-drop/drag-item.tsx","../../lib/components/drag-and-drop/draggable.tsx","../../lib/components/drag-and-drop/droppable.tsx","../../lib/components/drag-and-drop/sortable.tsx","../../lib/components/drag-and-drop/sortable-item.tsx","../../lib/components/drag-and-drop/drag-handle.tsx","../../lib/components/drag-and-drop/drop-zone.tsx","../../lib/components/drag-and-drop/multi-sort.tsx","../../lib/components/drag-and-drop/sortable-list.tsx","../../lib/components/drag-and-drop/sortable-container.tsx","../../lib/components/fast-list/fast-list.tsx","../../lib/components/fast-grid/fast-grid.tsx","../../lib/components/editable-text/editable-controls.tsx","../../lib/components/editable-text/editable-text.tsx","../../lib/components/modal/modal.tsx","../../lib/components/file-picker/file-editor-modal.tsx","../../lib/components/file-picker/confirm-delete-modal.tsx","../../lib/components/progress/utils.ts","../../lib/components/progress/constants.ts","../../lib/components/progress/progress-bar.tsx","../../lib/components/spinner/spinner.tsx","../../lib/components/file-picker/constants.ts","../../lib/components/file-picker/utils.ts","../../lib/components/file-picker/file-icon-button.tsx","../../lib/components/file-picker/file-picker.tsx","../../lib/components/file-picker/file-picker-field.tsx","../../lib/components/file-picker/multi-file-uploader.tsx","../../lib/components/file-picker/file-item.tsx","../../lib/components/file-picker/multi-file-list.tsx","../../lib/components/file-picker/multi-file-picker.tsx","../../lib/components/file-picker/multi-file-picker-field.tsx","../../lib/theme/global/scrollbar.ts","../../lib/theme/components/breadcrumb/index.ts","../../lib/theme/components/button/index.ts","../../lib/theme/components/blinker/index.ts","../../lib/theme/components/checkbox/index.ts","../../lib/theme/components/input/index.ts","../../lib/theme/components/pin-input/index.ts","../../lib/theme/components/select/index.ts","../../lib/theme/components/radio/index.ts","../../lib/theme/components/tabs/index.ts","../../lib/theme/components/textarea/index.ts","../../lib/theme/components/link/index.ts","../../lib/theme/components/switch/index.ts","../../lib/theme/components/tag/index.ts","../../lib/theme/components/alert/index.ts","../../lib/theme/components/number-input/index.ts","../../lib/theme/components/notification-icon-button/index.ts","../../lib/theme/components/calendar/index.ts","../../lib/theme/components/drag-and-drop/index.ts","../../lib/theme/components/date-picker/index.ts","../../lib/theme/components/flip-button/index.ts","../../lib/theme/components/spinner/index.ts","../../lib/theme/components/avatar/get-avatar-bg-color.ts","../../lib/theme/components/avatar/index.ts","../../lib/theme/components/close-button/index.ts","../../lib/theme/components/modal/index.ts","../../lib/theme/components/tooltip/index.ts","../../lib/theme/components/icon/index.ts","../../lib/theme/components/clipboard-input/index.ts","../../lib/theme/components/color-picker/index.ts","../../lib/theme/components/steps/step/index.ts","../../lib/theme/components/steps/step-list/index.ts","../../lib/theme/components/typography/headings/h1.ts","../../lib/theme/components/typography/headings/h2.ts","../../lib/theme/components/typography/headings/h3.ts","../../lib/theme/components/typography/headings/h4.ts","../../lib/theme/components/typography/headings/h5.ts","../../lib/theme/components/typography/headings/h6.ts","../../lib/theme/components/typography/stylized/blockquote.ts","../../lib/theme/components/typography/stylized/tiny.ts","../../lib/theme/components/typography/stylized/capitalized.ts","../../lib/theme/components/typography/stylized/lead.ts","../../lib/theme/components/typography/stylized/small.ts","../../lib/theme/components/typography/body/p.ts","../../lib/theme/components/typography/labels/label.ts","../../lib/theme/components/split-pane/index.ts","../../lib/theme/components/carousel/index.ts","../../lib/theme/components/editable-text/index.ts","../../lib/theme/components/toolbox/index.ts","../../lib/theme/components/file-picker/index.ts","../../lib/theme/skins/webapp/index.ts","../../lib/theme/skins/tott/index.ts","../../lib/theme/index.ts","../../lib/components/mediatool-theme-provider/mediatool-theme-provider.tsx","../../lib/components/number-input/number-input-stepper.tsx","../../lib/components/number-input/advanced-parse-float.ts","../../lib/components/number-input/number-input.tsx","../../lib/components/number-input/number-input-field.tsx","../../lib/components/notification-icon-button/notification-icon-button.tsx","../../lib/components/pin-input/pin-input.tsx","../../lib/theme/components/select/custom-select.ts","../../lib/components/select/select.tsx","../../lib/components/select/select-field.tsx","../../lib/components/switch/switch.tsx","../../lib/components/switch/switch-field.tsx","../../lib/components/tabs/tab-panel.tsx","../../lib/components/tabs/tabs.tsx","../../lib/components/textarea/textarea.tsx","../../lib/components/textarea/textarea-field.tsx","../../lib/components/text-field/formatted-number-input.tsx","../../lib/components/text-field/masked-text-input.tsx","../../lib/components/text-field/text-field.tsx","../../lib/components/types/toastIconMap/index.ts","../../lib/components/toast/toast.tsx","../../lib/components/toast/use-toast.tsx","../../lib/components/status-pin/pin-variant-map.ts","../../lib/components/status-pin/pin-size-map.ts","../../lib/components/status-pin/status-pin.tsx","../../lib/components/status-block/block-variant-map.ts","../../lib/components/status-block/types.ts","../../lib/components/status-block/status-block.tsx","../../lib/components/async-error/async-error.tsx","../../lib/components/steps/step-panel.tsx","../../lib/components/steps/steps.tsx","../../lib/components/steps/step.tsx","../../lib/components/steps/step-list.tsx","../../lib/components/clipboard-input/clipboard-input.tsx","../../lib/components/split-pane/split-pane.tsx","../../lib/components/split-pane/pane-item.tsx","../../lib/components/split-pane/pane-divider.tsx","../../lib/components/step-stack/step-stack.tsx"],"sourcesContent":["import React from 'react'\nimport { AccordionProps, Accordion as ChakraAccordion } from '@chakra-ui/react'\n\n/**\n * The wrapper that uses cloneElement to pass props to AccordionItem children.\n * @see {@link https::/northlight.dev/reference/accordion}\n *\n * @example\n * (?\n * <Accordion>\n <AccordionItem>\n <H2>\n <AccordionButton>\n <Box as=\"span\" flex='1' textAlign='left'>\n Section 1 title\n </Box>\n <AccordionIcon />\n </AccordionButton>\n </H2>\n <AccordionPanel pb={4}>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat.\n </AccordionPanel>\n </AccordionItem>\n\n <AccordionItem>\n <H2>\n <AccordionButton>\n <Box as=\"span\" flex='1' textAlign='left'>\n Section 2 title\n </Box>\n <AccordionIcon />\n </AccordionButton>\n </H2>\n <AccordionPanel pb={4}>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat.\n </AccordionPanel>\n </AccordionItem>\n</Accordion>\n * ?)\n */\nexport const Accordion = (props: AccordionProps) => (\n <ChakraAccordion { ...props } />\n)\n","import React from 'react'\nimport { AccordionButtonProps, AccordionButton as ChakraAccordionButton } from '@chakra-ui/react'\n\n/**\n * The button that toggles the expand/collapse state of the accordion item.\n * This button must be wrapped in an element with role heading.\n * @see Accordion\n * @see AcordionItem\n * @see {@link https://northlight.dev/reference/accordion-button}\n * @example\n * (Needs to be wrapped around AccordionItem and\n * Accordion context)\n * (?\n * <Accordion>\n * <AccordionItem>\n * <AccordionButton>Content</AccordionButton>\n * </AccordionItem>\n * </Accordion>\n * ?)\n */\nexport const AccordionButton = (props: AccordionButtonProps) => (\n <ChakraAccordionButton { ...props } />\n)\n","import React from 'react'\nimport {\n AccordionPanelProps,\n AccordionPanel as ChakraAccordionPanel,\n} from '@chakra-ui/react'\n\n/**\n * The container for the details to be revealed.\n * @see {@link htpts://northlight.dev/reference/accordion-panel}\n */\nexport const AccordionPanel = (props: AccordionPanelProps) => (\n <ChakraAccordionPanel { ...props } />\n)\n","import React from 'react'\nimport {\n AccordionItemProps,\n AccordionItem as ChakraAccordionItem,\n} from '@chakra-ui/react'\n\nexport const AccordionItem = (props: AccordionItemProps) => (\n <ChakraAccordionItem { ...props } />\n)\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { OrganizationLogoProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/organization-logo}\n *\n * @example\n * (?\n * <OrganizationLogo name=\"mediatool\" />\n * ?)\n *\n */\nexport const OrganizationLogo = ({\n name,\n image,\n variant = 'square',\n ...rest\n}: OrganizationLogoProps) => {\n const getInitials = (orgName: string) => orgName[0].toUpperCase()\n const {\n container,\n text,\n } = useMultiStyleConfig('Avatar', { variant, image, ...rest })\n\n return (\n <chakra.div\n __css={ container }\n data-testid=\"organization-logo-test-id\"\n >\n { image ? (\n <chakra.img\n alt={ name }\n src={ image }\n />\n )\n : (\n <chakra.span __css={ text }>\n { getInitials(name) }\n </chakra.span>\n )\n }\n </chakra.div>\n )\n}\n","import React from 'react'\nimport { Alert as ChakraAlert } from '@chakra-ui/react'\nimport { AlertProps } from './types'\n\nexport const Alert = ({\n variant = 'success',\n children,\n ...rest\n}: AlertProps) => (\n <ChakraAlert variant={ variant } { ...rest }>\n { children }\n </ChakraAlert>\n)\n","import React from 'react'\nimport { AspectRatioProps, AspectRatio as ChakraAspectRatio } from '@chakra-ui/react'\n\n/**\n * Meant to restrict child by specific ratio\n * @see {@link https://northlight.dev/aspect-ratio}\n * @example\n * (?\n <AspectRatio maxW='400px' ratio={4 / 3}>\n <Image src='https://bit.ly/naruto-sage' alt='naruto' objectFit='cover' />\n</AspectRatio>\n?)\n *\n * */\nexport const AspectRatio = (props: AspectRatioProps) => (\n <ChakraAspectRatio { ...props } />\n)\n","import React from 'react'\nimport {\n Icon as ChakraIcon,\n forwardRef,\n useStyleConfig,\n} from '@chakra-ui/react'\nimport { IconProps } from './types'\n\n/**\n * Pass down any icon from northlight/icons via as prop\n * @see IconButton\n * @see {@link https://northlight.dev/reference/icon}\n *\n * @example\n * (?\n * <Icon as={SmileyDuo} size=\"lg\" />\n * ?)\n */\nexport const Icon = forwardRef(({\n as: As,\n size,\n color,\n boxSize,\n ...rest\n}: IconProps, ref: any) => {\n const CustomIcon = As ?? (() => <ChakraIcon />)\n const styles = useStyleConfig('Icon', { size, color, boxSize })\n\n return (\n <ChakraIcon\n ref={ ref }\n sx={ styles }\n { ...rest }\n >\n <CustomIcon />\n </ChakraIcon>\n )\n})\n","export const luminosity = (hexcolor: string) => {\n let color = hexcolor\n\n if (color.slice(0, 1) === '#') {\n color = color.slice(1)\n }\n\n if (color.length === 3) {\n color = color\n .split('')\n .map((hex) => hex + hex)\n .join('')\n }\n\n const r = parseInt(color.substring(0, 2), 16)\n const g = parseInt(color.substring(2, 4), 16)\n const b = parseInt(color.substring(4, 6), 16)\n\n const brightness = (r * 299 + g * 587 + b * 114) / 1000\n return brightness\n}\n","import { useToken } from '@chakra-ui/system'\nimport { luminosity } from '../luminosity'\n\nexport const getContrastColor = (color: string) => {\n const colorTwo = useToken('colors', 'text.default')\n const colorOne = useToken('colors', 'text.inverted')\n const colorInHex = useToken('colors', color)\n\n const l1 = luminosity(colorOne)\n const l2 = luminosity(colorTwo)\n\n const threshold = (l1 + l2) / 2\n\n const brightColor = l1 > l2 ? colorOne : colorTwo\n const darkColor = l1 > l2 ? colorTwo : colorOne\n\n return luminosity(colorInHex) >= threshold ? darkColor : brightColor\n}\n","import { CSSObject } from '@emotion/react'\n\nexport const ring:CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n","import { CSSObject } from '@emotion/react'\n\nexport const highlight:CSSObject = {\n px: '1',\n py: '0.5',\n rounded: '6',\n bg: 'teal.100',\n fontWeight: 'bold',\n}\n","import { palette } from '@northlight/tokens'\nimport { Color, ColorGrade } from '../../types'\n\nexport const getShades = (startShade: number, endShade?: number) => {\n let start: number\n let end: number\n if (!endShade) {\n start = startShade\n end = startShade\n } else if (endShade > startShade) {\n start = startShade\n end = endShade\n } else {\n start = endShade\n end = startShade\n }\n\n return (\n Object.keys(palette).reduce((colors, color) => {\n if (color === 'mono') return colors\n return colors.concat(\n Object.keys(palette[color as Color])\n .filter((value) =>\n parseInt(value, 10) >= start\n && parseInt(value, 10) <= end\n )\n .map((shade) => palette[color as Color][shade as unknown as ColorGrade])\n )\n }, [] as string[])\n )\n}\n","export const getInitials = (name: string) => {\n const [ firstName, lastName ] = name.toUpperCase().split(' ')\n return firstName && lastName\n ? `${firstName[0]}${lastName[0]}`\n : firstName[0]\n}\n","import { path, replace, split } from 'ramda'\nimport { FieldErrorsImpl, FieldValues } from 'react-hook-form'\nimport { FieldErrorType } from '../../components/form/types'\n\nexport function getFieldError<T extends FieldValues> (name: string, errors: FieldErrorsImpl<T>) {\n const nameWithoutRightBracket = replace(/]/g, '', name)\n const leftBracketAndDot = /[.[\\]]/g\n const fieldErrorPath = split(leftBracketAndDot, nameWithoutRightBracket)\n\n const fieldError: FieldErrorType<T> = path(fieldErrorPath, errors)\n return fieldError\n}\n","import React, { cloneElement, isValidElement } from 'react'\nimport { CSSObject } from '@emotion/react'\n\nexport const passPropsToChild = (child: React.ReactNode, styles: CSSObject) => (\n isValidElement(child)\n ? cloneElement(child, {\n ...styles,\n })\n : child\n)\n","import React, { Children } from 'react'\nimport { T } from 'ramda'\nimport { passPropsToChild } from './pass-props-to-child'\n\nexport const getChildrenWithProps = (\n children: React.ReactNode | React.ReactNode[],\n styles: Record<string, any>,\n predicate: (child: React.ReactNode, index: number) => boolean = T\n) => {\n const childrenAsArr = Children.toArray(children)\n const childrenWithoutFocus = childrenAsArr.map((child, i) => (\n predicate(child, i)\n ? passPropsToChild(child, { ...styles })\n : child\n ))\n return childrenWithoutFocus\n}\n","import { useToken } from '@chakra-ui/system'\n\nexport const addAlpha = (color: string, alpha: number = 1) => {\n const colorInHex = useToken('colors', color)\n\n const limitAlpha = Math.min(Math.max(alpha, 0), 1)\n const opacity = Math.round(limitAlpha * 255)\n\n return `${colorInHex}${opacity.toString(16).toUpperCase()}`\n}\n","/** A debounce function to be used together with Async select in SearchBar.\n * The reason to why the usual debounce hook does not work is because we\n * don't control the loadOptions call ourselves.\n *\n * Important to note is that the timeout here needs to NOT be reinstantiated\n * every render, otherwise it defeats the purpose as a new timeout will be\n * created every time the component re-renders.\n*/\nexport const createDebounceFunctionInstance = (delay: number) => {\n let timeout: any\n\n return (fn: any) => (...args: any) => {\n clearTimeout(timeout)\n timeout = setTimeout(() => {\n fn(...args)\n }, delay)\n }\n}\n","import { createContext, useContext } from 'react'\n\nexport type CurrentTheme = 'webappTheme' | 'tottTheme'\n\nexport const CustomTheme = createContext<CurrentTheme>('webappTheme')\n\nexport const useCurrentTheme = () => {\n const theme = useContext(CustomTheme)\n return theme\n}\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { AvatarBadgeProps } from './types'\n\n/**\n * Specific component meant to be used with <Avatar /> to display notification\n * @see Avatar\n * @see {@link https://northlight.dev/reference/avatar}\n *\n * @example (Example)\n * Examle:\n * (?\n * <Avatar notificationCount={4} />\n * ?)\n *\n */\nexport const AvatarBadge = ({\n notificationCount = 0,\n}: AvatarBadgeProps) => {\n const { badge } = useMultiStyleConfig('Avatar')\n return (\n <chakra.span sx={ badge }>\n { notificationCount > 999 ? '999+' : notificationCount }\n </chakra.span>\n )\n}\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { BusinessContactDuo, UserSquareDuo } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { getInitials } from '../../utils'\nimport { AvatarProps } from './types'\nimport { AvatarBadge } from './avatar-badge'\n\n/**\n * @see AvatarGroup\n * @see {@link https://northlight.dev/reference/avatar}\n *\n * @example (Example)\n * Avatar takes a name and image\n * (?\n * <Avatar name=\"Anakin Skywalker\" image='https://thenerdstash.com/wp-content/uploads/2021/10/Hayden-Christensen-Anakin-Skywalker.jpg' />\n * ?)\n *\n * <br />\n * If there is no image, it will render the initials of the name along with a random bg color.\n * (?\n * <Avatar name=\"Anakin Skywalker\" />\n * ?)\n *\n * <br />\n *\n * If the name also is undefined, it will render a fallback icon\n * (?\n * <Avatar />\n * ?)\n */\nexport const Avatar = ({\n variant = 'square',\n notificationCount = 0,\n name,\n image,\n size,\n ...rest\n}: AvatarProps) => {\n const { container, text, userImage, icon } = useMultiStyleConfig('Avatar', {\n variant,\n image,\n size,\n name,\n })\n\n return (\n <Box __css={ container } data-testid=\"avatar-test-id\" { ...rest }>\n { image\n ? (\n <chakra.img\n alt={ name }\n src={ image }\n sx={ userImage }\n />\n ) : name\n ? (\n <chakra.span sx={ text }>\n { getInitials(name) }\n </chakra.span>\n )\n : (\n <Icon\n as={ variant === 'square' ? UserSquareDuo : BusinessContactDuo }\n sx={ icon }\n aria-label=\"user-avatar\"\n />\n ) }\n { notificationCount > 0 && (\n <AvatarBadge notificationCount={ notificationCount } />\n ) }\n </Box>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h1}\n * @example (Example)\n * (?\n * <H1>Heading 1</H1>\n * ?)\n */\nexport const H1 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H1', { sx })\n\n return (\n <Heading\n as=\"h1\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h2}\n * @example (Example)\n * (?\n * <H2>Heading 2</H2>\n * ?)\n *\n */\nexport const H2 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H2', { sx })\n\n return (\n <Heading\n as=\"h2\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h3}\n * @example (Example)\n * (?\n * <H3>Heading 3</H3>\n * ?)\n */\nexport const H3 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H3', { sx })\n\n return (\n <Heading\n as=\"h3\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h4}\n * @example (Example)\n * (?\n * <H4>Heading 4</H4>\n * ?)\n */\nexport const H4 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H4', { sx })\n\n return (\n <Heading\n as=\"h4\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h5}\n * @example (Example)\n * (?\n * <H5>Heading 5</H5>\n * ?)\n */\nexport const H5 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H5', { sx })\n\n return (\n <Heading\n as=\"h5\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h6}\n * @example (Example)\n * (?\n * <H6>Heading 6</H6>\n * ?)\n */\nexport const H6 = ({\n children,\n sx = {},\n ...rest\n}: HeadingProps) => {\n const styles = useStyleConfig('H6', { sx })\n\n return (\n <Heading\n as=\"h6\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </Heading>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, useStyleConfig } from '@chakra-ui/react'\nimport { PProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/p}\n * @example\n * (?\n * <P>Body text</P>\n * ?)\n *\n */\nexport const P = ({\n children,\n variant = '16',\n sx = {},\n ...rest\n}: PProps) => {\n const styles = useStyleConfig('P', { variant, sx })\n\n return (\n <ChakraText\n variant={ variant }\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/blockquote }\n *\n * @example (Example)\n * (?\n * <Blockquote sx={{color: 'green.500' }}>Success</Blockquote>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n *\n *\n */\nexport const Blockquote = ({ children, sx = {}, ...rest }: TextProps) => {\n const styles = useStyleConfig('Blockquote', { sx })\n\n return (\n <ChakraText as=\"span\" sx={ styles } { ...rest }>\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/capitalized }\n *\n * @example (Example)\n * (?\n * <Capitalized sx={{color: 'red.500' }}>Error</Capitalized>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Capitalized = ({\n children,\n sx = {},\n ...rest\n}: TextProps) => {\n const styles = useStyleConfig('Capitalized', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/lead }\n *\n * @example\n * (?\n * <Lead>Lead</Lead>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Lead = ({\n children,\n sx = {},\n ...rest\n}: TextProps) => {\n const styles = useStyleConfig('Lead', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Blockquote\n * @see Tiny\n * @see {@link https://northlight.dev/reference/small }\n *\n * @example (Example)\n * (?\n * <Small>Small</Small>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n */\nexport const Small = ({\n children,\n sx = {},\n ...rest\n}: TextProps) => {\n const styles = useStyleConfig('Small', { sx })\n\n return (\n <ChakraText\n as=\"small\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Blockquote\n * @see Small\n * @see {@link https://northlight.dev/reference/tiny }\n *\n * @example (Example)\n * (?\n * <Tiny>Tiny</Tiny>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n */\nexport const Tiny = ({\n children,\n sx = {},\n ...rest\n}: TextProps) => {\n const styles = useStyleConfig('Tiny', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { FormLabel, VisuallyHidden, useStyleConfig } from '@chakra-ui/react'\nimport { LabelProps } from './types'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/label }\n *\n * @example\n * (?\n * <Label sx={{color: 'brand.500' }} size=\"lg\">Brand</Label>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Label = ({\n children,\n size = 'sm',\n sx = {},\n ...rest\n}: LabelProps) => {\n const styles = useStyleConfig('Label', { sx, size })\n\n return (\n <FormLabel\n sx={ styles }\n requiredIndicator={ <VisuallyHidden /> }\n { ...rest }\n >\n { children }\n </FormLabel>\n )\n}\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { always, dec, defaultTo, gt, identity, ifElse, inc, take } from 'ramda'\nimport { OverflowGroupProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\n\nconst positiveOrZero = ifElse(gt(0), always(0), identity)\nconst EMPTY_RECT = {\n clientWidht: 0,\n clientHeight: 0,\n}\nconst EMPTY_WINDOW = {\n innerWidth: 0,\n innerHeight: 0,\n}\n\n/**\n * Util wrapper for lists by only rendering as many items as fit per the specification\n * @see {@link https://northlight.dev/reference/overflow-group}\n * @example\n * (?\n * +\n *\nconst CustomSlider = ({ onChange }) => (\n <Slider min={ 100 } max={ 300 } step={ 1 } onChange={ onChange }>\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb />\n </Slider>\n)\n *\n\nconst arrayWithLength = (n) => {\n let buffer = []\n for(let i = 0; i < n; i++) {\n buffer.push(i)\n }\n return buffer\n}\n * const MyComponent = () => {\n * const [ n, setN ] = useState(5)\n const [ max, setMax ] = useState(10)\n const [ width, setWidth ] = useState(200)\n const [ height, setHeight ] = useState(200)\n const { containerRef, rect } = useOverflowGroup()\n const [ nbrRemainingItems, setNbrRemainingItems ] = useState(0)\n * return (\n * <Stack mb={ 4 } spacing={ 4 } w=\"40%\">\n <Stack h=\"300px\">\n <Wrap\n w={ width }\n h={ height }\n ref={ containerRef }\n borderWidth=\"2px\"\n borderColor=\"gray.200\"\n borderStyle=\"solid\"\n p=\"2\"\n borderRadius=\"md\"\n >\n <OverflowGroup\n max={ max }\n rect={ rect }\n onChange={ setNbrRemainingItems }\n >\n { arrayWithLength(n).map((i) => (\n <Badge key={ i } h=\"max-content\">\n Item { i }\n </Badge>\n )) }\n </OverflowGroup>\n { nbrRemainingItems > 0 && (\n <Tag w=\"fit-content\">+{ nbrRemainingItems }</Tag>\n ) }\n </Wrap>\n </Stack>\n <Stack bgColor=\"gray.50\" p=\"2\" borderRadius=\"md\">\n <HStack>\n <Label>Height</Label>\n <CustomSlider onChange={ setHeight } />\n </HStack>\n <HStack>\n <Label>Width</Label>\n <CustomSlider onChange={ setWidth } />\n </HStack>\n <HStack>\n <Label>Number of items </Label>\n <NumberInput onChange={ (v) => setN(Number(v)) } value={ n } />\n </HStack>\n <HStack>\n <Label>Render max </Label>\n <NumberInput onChange={ (v) => setMax(Number(v)) } value={ max } />\n </HStack>\n </Stack>\n </Stack>\n * )}\nrender(<MyComponent/>)\n * ?)\n<br />\nThe overflow group requires either a max prop for a set limit, or a rect prop,\n for a dynamic, responsive layouts. The rect prop can be received via the useOverflowGroup hook,\n along with a containerRef that needs to be set on the wrapper around the overflow group.\n<br />\n<br />\nThe overflow group is ambiguous in the styling of the children and does not pose any premade layout;\n instead the wrapper parent container determines the layout.\n One could for example use a <Stack /> <HStack /> or <Grid> and all would work.\n The overflow group only checks if the children don't fit within the height/width\n of it's container via the containerRef.\n\n *\n */\nexport const OverflowGroup = ({\n children,\n max: initMax = 0,\n childrenProps,\n onChange = identity,\n rect,\n}: OverflowGroupProps) => {\n const [ max, setMax ] = useState(typeof rect === 'undefined' ? initMax : 0)\n const [ windowState, setWindowState ] = useState(EMPTY_WINDOW)\n const isLocked = useRef(false)\n const nbrChildren = Children.count(children)\n\n const updateMax = () => {\n if (!rect) return\n\n if (\n rect.scrollHeight <= rect.clientHeight &&\n rect.scrollWidth <= rect.clientWidth &&\n max < nbrChildren &&\n !isLocked.current &&\n max < initMax\n ) {\n setMax(inc)\n }\n\n if (\n rect.scrollHeight > rect.clientHeight ||\n rect.scrollWidth > rect.clientWidth\n ) {\n setMax(dec)\n isLocked.current = true\n }\n }\n\n const rectDependency = defaultTo(EMPTY_RECT, rect) as HTMLElement\n useEffect(updateMax, [\n rectDependency.clientWidth,\n rectDependency.clientHeight,\n nbrChildren,\n max,\n windowState.innerHeight,\n windowState.innerHeight,\n initMax,\n ])\n\n useEffect(() => {\n isLocked.current = false\n }, [ rectDependency.clientHeight, rectDependency.clientWidth ])\n\n const handleResize = () => {\n setTimeout(() => {\n isLocked.current = false\n setWindowState({\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n })\n }, 200)\n }\n\n useEffect(() => {\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n useEffect(() => {\n const nbrRemainingChildren = positiveOrZero(nbrChildren - max)\n onChange(nbrRemainingChildren)\n }, [ max, nbrChildren ])\n\n const shownChildren = take(\n max,\n getChildrenWithProps(children, defaultTo({}, childrenProps))\n )\n\n return <>{ shownChildren }</>\n}\n","import { useState } from 'react'\n\nexport const useOverflowGroup = () => {\n const [ rect, setRect ] = useState<HTMLDivElement | null>(null)\n const containerRef = (node: any) => {\n if (node) {\n setRect(node)\n }\n }\n\n return { rect, containerRef }\n}\n","import React, { useState } from 'react'\nimport { HStack } from '../stack'\nimport { AvatarGroupProps } from './types'\nimport { Small } from '../typography'\nimport { OverflowGroup } from '../overflow-group'\n\n/**\n * Used to display a group of users\n * @see Avatar\n * @see {@link https://northlight.dev/reference/avatar-group}\n *\n * @example (Example)\n * (?\n * <AvatarGroup max={ 3 }>\n {[1, 2, 3, 4, 5].map((i) => (\n <Avatar\n name=\"Anakin Skywalker\"\n image=\"https://thenerdstash.com/wp-content/uploads/2021/10/Hayden-Christensen-Anakin-Skywalker.jpg\"\n size=\"sm\"\n variant=\"rounded\"\n key={ i }\n />\n )) }\n</AvatarGroup>\n * ?)\n *\n */\nexport const AvatarGroup = ({\n children,\n max = Infinity,\n spacing = '-4',\n ...rest\n}: AvatarGroupProps) => {\n const [ nbrRemainingAvatars, setNbrRemainingAvatars ] = useState(0)\n\n return (\n <HStack bgColor=\"background.default\" { ...rest }>\n <HStack spacing={ spacing }>\n <OverflowGroup max={ max } onChange={ setNbrRemainingAvatars }>\n { children }\n </OverflowGroup>\n </HStack>\n { nbrRemainingAvatars > 0 && (\n <Small sx={ { color: 'blue.500' } }>\n +{ nbrRemainingAvatars }\n </Small>\n ) }\n </HStack>\n )\n}\n","import React from 'react'\nimport { BadgeProps, Badge as ChakraBadge } from '@chakra-ui/react'\n\n/**\n * Badges are used to highlight an item's status for quick recognition.\n * @see {@link https://northlight.dev/reference/badge}\n *\n * @example\n * (?\n * <Stack>\n <HStack spacing={ 4 }>\n <Badge>Default badge</Badge>\n <Badge variant=\"outline\">Outline badge</Badge>\n <Badge variant=\"subtle\">Subtle badge</Badge>\n </HStack>\n <HStack spacing={ 4 } mt={ 4 }>\n <Badge variant=\"solid\" colorScheme=\"mediatoolBlue\">Solid badge</Badge>\n <Badge variant=\"outline\" colorScheme=\"mediatoolBlue\">Outline badge</Badge>\n <Badge variant=\"subtle\" colorScheme=\"mediatoolBlue\">Subtle badge</Badge>\n </HStack>\n <HStack spacing={ 4 } mt={ 4 }>\n <Badge variant=\"solid\" colorScheme=\"red\">Solid badge</Badge>\n <Badge variant=\"outline\" colorScheme=\"red\">Outline badge</Badge>\n <Badge variant=\"subtle\" colorScheme=\"red\">Subtle badge</Badge>\n </HStack>\n </Stack>\n * ?)\n */\nexport const Badge = (props: BadgeProps) => (\n <ChakraBadge { ...props } />\n)\n","import React from 'react'\nimport { useStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../box'\nimport { BlinkerProps } from './types'\n\n/**\n * Status indicator of some sorts\n * @see {@link https://northlight.dev/reference/blinker}\n *\n * @example (Example)\n * (?\n * <Box p=\"4\">\n * <Blinker color=\"bg.brand.default\" />\n * </Box>\n * ?)\n */\nexport const Blinker = ({\n color = '',\n size,\n isBlinking = true,\n ...rest\n}: BlinkerProps) => {\n const styles = useStyleConfig('Blinker', { color, size, isBlinking })\n\n return <Box sx={ styles } data-testid=\"blinker-test-id\" { ...rest } />\n}\n","import React, { forwardRef } from 'react'\nimport { Button as ChakraButton } from '@chakra-ui/react'\nimport { ButtonProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/button}\n *\n * @example\n * (?\n <Button\n variant=\"success\"\n leftIcon={ <Icon as={ FolderCheckDuo } /> }\n rightIcon={ <Icon as={ PlusDuo } /> }\n >\n Create folder\n </Button>\n * ?)\n *\n * @example (Example)\n * (?\n * +\n * const variants = ['link', 'success', 'default', 'danger', 'brand', 'ghost']\n *\n * const ExampleButton = () => {\n * const [currentVariant, setCurrentVariant ] = useState(0)\n * const [ isLoading, setIsLoading ] = useState(false)\n *\n * const handleClick = () => {\n * setIsLoading(true)\n * setTimeout(() => {\n * setCurrentVariant((prev) => prev === 5 ? 0 : prev + 1)\n * setIsLoading(false)\n * }, 300)\n *\n * }\n *\n * return (\n * <Button variant={variants[currentVariant]}\n * isLoading={isLoading} onClick={handleClick} loadingText=\"Saving...\">\n * Save changes\n * </Button>\n * )\n *\n * }\n *\n * render(<ExampleButton/>)\n * ?)\n */\nexport const Button = forwardRef(\n ({ variant = 'default', children, ...rest }: ButtonProps, ref: any) => (\n <ChakraButton variant={ variant } ref={ ref } { ...rest }>\n { children }\n </ChakraButton>\n )\n)\n","import React from 'react'\nimport { Checkbox as ChakraCheckbox } from '@chakra-ui/react'\nimport { CheckboxProps } from './types'\n\n/**\n * @see CheckboxField\n * @see {@link https://northlight.dev/reference/checkbox}\n *\n * @example (Example)\n * Mainly used for forms, however this component is controlled by\n * a value prop and an onChange callback\n *\n * (?\n * +\n * const MyForm = () => {\n * const [ isVegan, setIsVegan ] = useState(false)\n *\n * return (\n * <Stack p=\"2\">\n * <Label size=\"sm\" htmlFor=\"vegan-checkbox\">Are you vegan</Label>\n * <Checkbox name=\"vegan-checkbox\" onChange={() => setIsVegan((prev) => !prev)} value={isVegan} />\n * </Stack>\n *\n * )\n * }\n *\n * render(<MyForm />)\n *\n * ?)\n *\n */\nexport const Checkbox = ({\n value,\n onChange,\n name,\n size = 'md',\n variant = 'default',\n ...rest\n}: CheckboxProps) => (\n <ChakraCheckbox\n size={ size }\n id={ name }\n onChange={ onChange }\n isChecked={ value }\n variant={ variant }\n { ...rest }\n />\n)\n","import { forEach, identity, is, keys, trim, values } from 'ramda'\nimport { FieldValues } from 'react-hook-form'\n\nconst shouldTrim = (value: any): ((object: FieldValues) => FieldValues) =>\n (is(Array, value) ? values : identity)\n\nexport const trimFormValues = <T extends FieldValues>(obj: FieldValues) => {\n const newObj: FieldValues = obj\n forEach((property) => {\n const value = obj[property]\n if (is(Object, value)) {\n const format = shouldTrim(value)\n newObj[property] = format(trimFormValues(value as FieldValues))\n }\n if (is(String, value)) {\n newObj[property] = trim(value as string)\n }\n }, keys(obj))\n return newObj as T\n}\n","import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react'\nimport {\n DeepPartial,\n FieldValues,\n FormProvider,\n Resolver,\n UseFormReturn,\n useForm,\n} from 'react-hook-form'\nimport { always, equals } from 'ramda'\nimport { FormProps } from './types'\nimport { trimFormValues } from './trim-form-values'\n\n/**\n * The context provider for handling state of components wrapped in field\n * @see Field\n * @see {@link https://northlight.dev/reference/form}\n *\n * @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}} onSubmit={console.log}>\n * <TextField name=\"name\" label=\"What is your name\" />\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## With form methods\n * The form context provider passes down a lot of methods for handling state\n * (?\n * <Form initialValues={{name: ''}}>\n * {({watch, reset }) => (\n * <Stack>\n * <TextField name=\"name\" label=\"What is your name?\"/>\n * <Button variant=\"danger\" onClick={() => reset({})}>Reset</Button>\n * <Code>{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n *\n * </Form>\n * ?)\n * You can view more form methods on the **<a href=\"https://react-hook-form.com/api/useform/\" target=\"_blank\">react hook form docs</a>**\n * (everything that the useForm hooks returns)\n *\n * @example (Example)\n * ## Moving the form state outside of Form\n * (?\n * +\n\n//This code could live in the backend\nconst submitValuesToBackend = (values) => {\n console.log({values})\n if(values.firstName !== 'Steve') {\n throw Error('We only allow people named Steve \\;\\)')\n }\n}\nconst MyForm = () => (\n<Form\n initialValues={ { firstName: '' } }\n onSubmit={ async (values, methods) => {\n try {\n await submitValuesToBackend(values)\n }\n catch (err) {\n methods.setError('firstName', { message: err.message })\n }\n } }\n>\n <HStack alignItems=\"end\" p=\"3\">\n <TextField\n name=\"firstName\"\n label=\"First Name\"\n isRequired={ true }\n />\n <Button type=\"submit\" variant=\"success\">Validate</Button>\n </HStack>\n</Form>\n\n )\n\nrender(<MyForm />)\n\n * ?)\n\n@example (Example)\n## Using a ref\nYou can move up the form state using a ref as well\n(?\n() => {\n const methods = useRef(null)\n\n return (\n <Stack>\n <Form\n ref={methods}\n initialValues={{name: ''}}\n >\n <TextField name=\"name\" label=\"What is your name?\" />\n </Form>\n <Button onClick={() => methods.current.reset({name: (Math.round(Math.random() * 100))})}>\n Get random number\n </Button>\n </Stack>\n\n )\n\n}\n?)\n\n */\nexport const Form = forwardRef(<FormValues extends FieldValues>({\n initialValues,\n onSubmit,\n children,\n validate,\n formSettings = { mode: 'onChange' },\n methods = undefined,\n enableReinitialize = false,\n shouldTrim = true,\n ...rest\n}: FormProps<FormValues>, ref: React.Ref<UseFormReturn<FormValues>>) => {\n const customResolver: Resolver<FormValues, any> = (\n values,\n _context,\n _options\n ) => ({\n values,\n errors: validate(values),\n })\n\n const newMethods =\n methods ||\n useForm<FormValues>({\n defaultValues: initialValues as DeepPartial<FormValues>,\n resolver: validate ? customResolver : undefined,\n ...formSettings,\n })\n\n useImperativeHandle(ref, always(newMethods), [])\n\n if (enableReinitialize) {\n const initalValuesImage = useRef({})\n useEffect(() => {\n if (!equals(initalValuesImage.current, initialValues)) {\n newMethods?.reset(initialValues)\n initalValuesImage.current = initialValues\n }\n }, [ initialValues ])\n }\n\n const formatValues = (values: FormValues) => {\n if (!shouldTrim) {\n return values\n }\n\n return trimFormValues<FormValues>(values)\n }\n\n const handleSubmit = newMethods.formState.isValid\n ? newMethods.handleSubmit((values) =>\n onSubmit(formatValues(values), newMethods)\n )\n : (e: React.FormEvent<HTMLFormElement>) => {\n newMethods.trigger()\n e.preventDefault()\n }\n\n return (\n <FormProvider { ...newMethods } { ...rest }>\n <form style={ { width: '100%' } } onSubmit={ handleSubmit }>\n { typeof children === 'function' ? children(newMethods) : children }\n </form>\n </FormProvider>\n )\n})\n","import React from 'react'\nimport { FormLabelProps } from './types'\nimport { Label } from '../typography'\n\n/**\n * Renders a label, meant to be used alongside a field component\n * @see Field\n * @see {@link https://northlight.dev/reference/form-label}\n *\n */\nexport const FormLabel = ({\n children: label,\n ...rest\n}: FormLabelProps) => (\n <Label\n size=\"sm\"\n sx={ {\n width: '80%',\n maxWidth: '45ch',\n marginBottom: 1,\n marginInlineEnd: 3,\n } }\n requiredIndicator={ undefined }\n { ...rest }\n >\n { label }\n </Label>\n)\n","import { useEffect, useState } from 'react'\n\nexport const useDebounce = <T>(value: T, delay: number) => {\n const [ debouncedValue, setDebouncedValue ] = useState<T>(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n return () => {\n clearTimeout(handler)\n }\n }, [ value, delay ])\n\n return debouncedValue\n}\n","import { useState } from 'react'\nimport { useInterval } from '../use-interval'\n\nexport const useLoadingMessage = (prefix: string = '', delay: number = 300) => {\n const [ dots, setDots ] = useState('.')\n\n useInterval(() => {\n if (dots.length === 3) {\n setDots('.')\n } else {\n setDots(`${dots}.`)\n }\n }, delay)\n return `${prefix}${dots}`\n}\n","import { useFocusManager } from '@react-aria/focus'\n\nexport const useArrowFocus = (columns: number) => {\n const {\n focusNext: next,\n focusPrevious: previous,\n focusFirst,\n focusLast,\n } = useFocusManager()\n\n const defaultOpts = {\n ArrowRight: {\n wrap: true,\n repeat: 1,\n },\n ArrowLeft: {\n wrap: true,\n repeat: 1,\n },\n ArrowDown: {\n wrap: false,\n repeat: columns,\n },\n ArrowUp: {\n wrap: false,\n repeat: columns,\n },\n }\n\n const focusPrevious = ({\n repeat,\n wrap,\n } = defaultOpts.ArrowLeft) => {\n for (let i = 0; i < repeat; i += 1) {\n previous({ wrap })\n }\n }\n\n const focusNext = ({\n repeat,\n wrap,\n } = defaultOpts.ArrowRight) => {\n for (let i = 0; i < repeat; i += 1) {\n next({ wrap })\n }\n }\n\n const defaultArrows = (e: any) => {\n switch (e.key) {\n case 'ArrowRight':\n focusNext(defaultOpts.ArrowRight)\n break\n case 'ArrowLeft':\n focusPrevious(defaultOpts.ArrowLeft)\n break\n case 'ArrowDown':\n e.preventDefault()\n focusNext(defaultOpts.ArrowDown)\n break\n case 'ArrowUp':\n e.preventDefault()\n focusPrevious(defaultOpts.ArrowUp)\n break\n default:\n break\n }\n }\n\n return {\n defaultArrows,\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n }\n}\n","import { ActionMeta, MultiValue, SingleValue } from 'chakra-react-select'\nimport { difference, isNil, last, map, prop } from 'ramda'\nimport { useRef } from 'react'\nimport { BasicOption, UseSelectCallbacksProps } from './types'\n\nexport const useSelectCallbacks = <T extends BasicOption>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value,\n}: UseSelectCallbacksProps<T>) => {\n const items = useRef<MultiValue<T> | SingleValue<T>>(value)\n\n const handleChange = (val: MultiValue<T> | SingleValue<T>, event: ActionMeta<T>) => {\n onChange(val, event)\n if (!isMulti && !isNil(val)) {\n onAdd((val as T).value)\n } else if (!isNil(val) && ((val as T[]).length > (items.current as T[]).length)) {\n onAdd(last(val as T[])?.value)\n } else {\n const removedItems = map(\n prop('value'),\n difference((items.current as T[]), val as T[])\n )\n onRemove(removedItems.length === 1 ? removedItems[0] : removedItems)\n }\n items.current = val\n }\n return handleChange\n}\n","import React from 'react'\nimport { Controller } from 'react-hook-form'\nimport { FormControl, FormErrorMessage, FormLabel } from '../form-control'\nimport { Stack } from '../stack'\nimport { FieldProps } from './types'\nimport { useFormContext } from '../../hooks'\nimport { getFieldError } from '../../utils'\n\n/**\n * Wraps children under form context\n * @see TextField\n * @see Form\n * @see {@link https://northlight.dev/reference/field}\n *\n * @example (Example)\n * ## Input example\n * (?\n * <Form initialValues={{name: ''}}>\n * <Box p=\"2\">\n * <Field name=\"name\" label=\"Input name\">\n * {({value, onChange}) => (\n * <Input value={value} onChange={onChange} />\n * )}\n * </Field>\n * </Box>\n *\n * </Form>\n * ?)\n * <br />\n * As you can see the field component acts as a middleman to connect\n * any component to the form context, via a controlled value and onChange prop.\n * Most of the common use cases for field,\n * such as text input have been abstracted into their own components, for example _TextField_\n *\n * @example (Example)\n * ## Example with validation and form submition\n * (?\n * () => {\n * const toast = useToast()\n * const handleSubmit =(v) => {\n * toast({title: 'Sent Message', description: `\"${v.message}\"`})\n * }\n * return (\n * <Form initialValues={{message: ''}} onSubmit={handleSubmit}>\n * <Stack p=\"2\">\n * <Field\n * name=\"message\"\n * label=\"Write email\"\n * isRequired={true}\n * validate={{maxLength: {message: 'Message must be under 30 characters', value: 30}}}\n * >\n * {({value, onChange}) => (\n * <Textarea value={value} onChange={onChange} />\n * )}\n * </Field>\n * <Button type=\"submit\" variant=\"brand\">Send Message</Button>\n * </Stack>\n *\n * </Form>\n * )\n * }\n * ?)\n *\n */\nexport function Field ({\n name,\n label,\n children,\n direction = 'column',\n isRequired = false,\n noLabelConnection = false,\n validate,\n}: FieldProps) {\n const methods = useFormContext()\n const {\n control,\n formState: { errors },\n } = methods\n const fieldError = getFieldError(name, errors)\n\n return (\n <FormControl isInvalid={ !!fieldError } isRequired={ isRequired }>\n <Stack\n spacing=\"auto\"\n direction={ direction }\n alignItems={ direction === 'column' ? 'stretch' : 'center' }\n >\n { label && (\n <FormLabel htmlFor={ noLabelConnection ? undefined : name } mb={ 1 }>\n { label }\n </FormLabel>\n ) }\n <Controller\n name={ name }\n control={ control }\n rules={ validate }\n render={ ({ field }) => children(field, methods) }\n />\n </Stack>\n <FormErrorMessage>\n { fieldError && (fieldError?.message as string) }\n </FormErrorMessage>\n </FormControl>\n )\n}\n","import { useFormContext } from '../../hooks'\nimport { SetValueOptionsType } from './types'\n\nexport const useSetValueRefreshed = () => {\n const { setValue, watch } = useFormContext()\n\n const setValueRefreshed = (name: any, value: any, options: SetValueOptionsType) => {\n watch(name)\n setValue(name, value, options)\n }\n return setValueRefreshed\n}\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { CheckboxFieldProps } from './types'\nimport { Field } from '../form'\nimport { Checkbox } from './checkbox'\nimport { Box } from '../box'\nimport { Label } from '../typography'\nimport { Flex } from '../flex'\n\n/**\n * The checkbox component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see Checkbox\n * @see {@link https://northlight.dev/reference/checkbox-field}\n * @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}}>\n * <CheckboxField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPlacement=\"left\"\n * labelSize=\"md\"\n * />\n * </Form>\n * ?)\n *\n */\n\nexport const CheckboxField = ({\n name,\n label,\n variant,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPlacement = 'left',\n labelSize = 'md',\n ...rest\n}: CheckboxFieldProps) => (\n <Box\n w={ label ? 'full' : 'fit-content' }\n display=\"inline-flex\"\n >\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <Flex\n gap={ 2 }\n direction={ labelPlacement === 'left' ? 'row-reverse' : 'row' }\n >\n <Checkbox\n name={ name }\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n variant={ variant }\n data-testid=\"checkbox-field-test-id\"\n { ...rest }\n />\n <Label htmlFor={ name } sx={ { fontWeight: 'normal' } } size={ labelSize }>{ label }</Label>\n </Flex>\n ) }\n </Field>\n </Box>\n)\n","import React, { cloneElement, forwardRef } from 'react'\nimport { IconButton as ChakraIconButton } from '@chakra-ui/react'\nimport { IconButtonProps } from './types'\n\n/**\n * A normal button but renders an icon instead of text\n * @see Button\n * @see Icon\n * @see {@link https://northlight.dev/reference/icon-button}\n *\n * @example (Example)\n * (?\n * <IconButton variant='brand' icon={<Icon as={UsersDuo} />} onClick={console.log}/>\n * ?)\n *\n * @example (Example)\n * (?\n <IconButton\n isRound={ true }\n aria-label=\"create\"\n variant=\"success\"\n icon={ <Icon as={ PlusSolid } /> }\n />\n * ?)\n *\n */\nexport const IconButton = forwardRef(({\n variant = 'default',\n icon,\n 'aria-label': ariaLabel,\n children,\n ...rest\n}: IconButtonProps, ref: any) => {\n const IconComponent = icon ?? children as JSX.Element\n const IconWithSize = cloneElement(IconComponent, { size: rest.size })\n return (\n <ChakraIconButton\n variant={ variant }\n icon={ IconWithSize }\n aria-label={ ariaLabel }\n ref={ ref }\n { ...rest }\n />\n )\n})\n","import { getShades } from '../../utils'\n\nexport const columns = 5\nexport const paletteColors = getShades(100, 500)\nexport const defaultColors = getShades(500)\n","import React, { forwardRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { CheckDuo } from '@northlight/icons'\nimport { getContrastColor } from '../../utils'\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { Box } from '../box'\nimport { ColorButtonProps } from './types'\nimport { columns } from './constants'\nimport { useArrowFocus } from '../../hooks'\n\nexport const ColorButton = forwardRef(({\n color,\n onClick,\n size,\n selected = false,\n}: ColorButtonProps, ref: any) => {\n if (!color) return <Box />\n const { defaultArrows, focusPrevious, focusNext } = useArrowFocus(columns)\n\n const onKeyDown = (e: any) => {\n switch (e.key) {\n case 'PageUp':\n e.preventDefault()\n focusPrevious({ wrap: false, repeat: columns * 5 })\n break\n case 'PageDown':\n e.preventDefault()\n focusNext({ wrap: false, repeat: columns * 5 })\n break\n default:\n defaultArrows(e)\n break\n }\n }\n\n const { colorButton } = useMultiStyleConfig('ColorPicker', { size })\n\n return (\n <IconButton\n bg={ color }\n ref={ ref }\n onKeyDown={ onKeyDown }\n aria-label={ `select-${color}` }\n onClick={ onClick }\n sx={ colorButton }\n icon={ <Icon as={ CheckDuo } boxSize={ selected ? undefined : '0' } /> }\n color={ getContrastColor(color) }\n />\n )\n})\n","import React from 'react'\nimport { ChevronDownDuo, ChevronUpDuo } from '@northlight/icons'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { columns } from './constants'\nimport { ColorsExpandButtonProps } from './types'\nimport { useArrowFocus } from '../../hooks'\n\nexport const ColorsExpandButton = ({\n onClick,\n size,\n expanded,\n}: ColorsExpandButtonProps) => {\n const { defaultArrows, focusPrevious, focusFirst } = useArrowFocus(columns)\n const { colorButton } = useMultiStyleConfig('ColorPicker', { size })\n const onKeyDown = (e: any) => {\n switch (e.key) {\n case 'Tab':\n focusFirst()\n break\n case 'ArrowUp':\n e.preventDefault()\n focusPrevious({ wrap: true, repeat: 1 })\n break\n case 'PageUp':\n e.preventDefault()\n focusPrevious({ wrap: false, repeat: columns * 5 })\n break\n default:\n defaultArrows(e)\n break\n }\n }\n\n return (\n <IconButton\n variant=\"ghost\"\n onKeyDown={ onKeyDown }\n aria-label=\"display more colors\"\n onClick={ onClick }\n sx={ colorButton }\n >\n <Icon as={ expanded ? ChevronUpDuo : ChevronDownDuo } />\n </IconButton>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { ColorsDuo } from '@northlight/icons'\nimport { FocusScope } from '@react-aria/focus'\nimport { useMultiStyleConfig, useToken } from '@chakra-ui/react'\nimport { useBoolean, useDisclosure } from '../../hooks'\nimport { SimpleGrid } from '../simple-grid'\nimport { Stack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { ColorPickerProps } from './types'\nimport { ColorButton } from './color-button'\nimport { columns, defaultColors, paletteColors } from './constants'\nimport {\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverHeader,\n PopoverTrigger,\n} from '../popover'\nimport { ColorsExpandButton } from './colors-expand-button'\n\n/**\n * Dropdown menu where user can select hex value\n * from set colors\n * @see {@link https://northlight.dev/reference/color-picker}\n *\n * @example (Example)\n * ##Pick a color for this campaign\n * (?\n * () => {\n * const [ color, setColor ] = useState(undefined)\n * return (\n * <HStack>\n * <ColorPicker color={color} onChange={setColor}/>\n * <ClipboardInput value={ color } />\n\n * </HStack>\n * )\n * }\n *\n * ?)\n *\n *\n */\nexport const ColorPicker = ({\n onChange = () => {},\n colors = defaultColors,\n expandedColors = paletteColors,\n value = null,\n name,\n size = 'md',\n ...rest\n}: ColorPickerProps) => {\n const { isOpen, onToggle, onClose } = useDisclosure()\n const [ expanded, setExpanded ] = useBoolean()\n const [ selectedColor, setSelectedColor ] = useState(value)\n const [ visibleColors, setVisibleColors ] = useState(colors)\n const initialFocusRef = useRef(null)\n const {\n trigger,\n heading,\n } = useMultiStyleConfig('ColorPicker', { selectedColor, size })\n const parsedValue = value && useToken('colors', value)\n\n const baseColors = [ ...colors ]\n for (let i = 0; i < baseColors.length % columns; i += 1) {\n baseColors.push('')\n }\n\n useEffect(() => {\n if (value === '') {\n setSelectedColor(null)\n } else {\n setSelectedColor(parsedValue)\n }\n }, [ value ])\n\n useEffect(() => {\n if (expanded) {\n setVisibleColors((prev) => prev.concat(expandedColors))\n } else {\n setVisibleColors(baseColors)\n }\n }, [ expanded ])\n\n const expandColors = () => {\n setExpanded.toggle()\n }\n\n const getNumberOfColumns = () => {\n if (expanded) return columns\n if (colors.length < columns && colors.length > 2) {\n return colors.length\n }\n if (colors.length < columns) {\n return 3\n }\n return columns\n }\n\n const shouldBeFocused = (index: number) => (\n selectedColor\n ? index === visibleColors.findIndex((colorVal) => colorVal === selectedColor)\n : index === 0\n )\n\n const handleSelect = (color: string) => {\n onToggle()\n setSelectedColor(color)\n onChange(color)\n }\n\n return (\n <Box data-testid=\"color-picker-test-id\">\n <Popover\n isOpen={ isOpen }\n onClose={ onClose }\n initialFocusRef={ initialFocusRef }\n >\n <PopoverTrigger>\n <IconButton\n onClick={ onToggle }\n aria-label={ name || 'color picker' }\n name={ name }\n sx={ trigger }\n size={ size }\n icon={ <Icon as={ ColorsDuo } /> }\n { ...rest }\n />\n </PopoverTrigger>\n <PopoverContent w=\"auto\" boxShadow=\"md\" p={ 2 } bgColor=\"background.default\">\n <Stack>\n <PopoverHeader\n color=\"text.default\"\n sx={ heading }\n >\n Pick a color\n </PopoverHeader>\n <PopoverBody p={ 0 }>\n <Stack alignItems=\"center\" p={ 0 } spacing={ 0 }>\n <FocusScope>\n <SimpleGrid\n columns={ getNumberOfColumns() }\n spacing={ 2 }\n overflowY=\"scroll\"\n maxH={ 72 }\n pr={ 2 }\n pl={ 4 }\n py={ 1 }\n >\n { visibleColors.map((color, index) => (\n <ColorButton\n color={ color }\n key={ `${color}-button-${index as number}` }\n selected={ color === selectedColor }\n ref={ shouldBeFocused(index) ? initialFocusRef : undefined }\n size={ size }\n onClick={ () => handleSelect(color) }\n />\n )) }\n </SimpleGrid>\n { expandedColors.length > 0 && (\n <ColorsExpandButton\n onClick={ expandColors }\n expanded={ expanded }\n size={ size }\n />\n ) }\n </FocusScope>\n </Stack>\n </PopoverBody>\n </Stack>\n </PopoverContent>\n </Popover>\n </Box>\n )\n}\n","import React from 'react'\nimport { Field } from '../form'\nimport { ColorPicker } from './color-picker'\nimport { ColorPickerFieldProps } from './types'\n\n/**\n * The <ColorPicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see ColorPicker\n * @see {@link https://northlight.dev/reference/color-picker}\n *\n */\nexport const ColorPickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n ...rest\n}: ColorPickerFieldProps) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <ColorPicker\n name={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n)\n","import { DOMAttributes, createContext } from 'react'\nimport { RadioGroupProps, RadioGroupState, useRadioGroupState } from '@react-stately/radio'\nimport { CheckboxGroupProps, CheckboxGroupState, useCheckboxGroupState } from '@react-stately/checkbox'\nimport { AriaCheckboxGroupProps, useCheckboxGroup } from '@react-aria/checkbox'\nimport { AriaRadioGroupProps, useRadioGroup } from '@react-aria/radio'\nimport { FlipButtonGroupProps } from './types'\n\nexport const FlipButtonContext = createContext<CheckboxGroupState | RadioGroupState | null>(null)\n\nexport const useFlipButtonState = (\n props: FlipButtonGroupProps,\n isMulti: boolean\n) => (\n isMulti\n ? useCheckboxGroupState(props as CheckboxGroupProps)\n : useRadioGroupState(props as RadioGroupProps)\n)\n\nexport const useFlipButtonGroup = (\n props: FlipButtonGroupProps,\n state: CheckboxGroupState | RadioGroupState,\n isMulti: boolean\n): DOMAttributes<Element> => {\n const propsWithLabel = {\n ...props,\n 'aria-label': `${isMulti ? 'Checkbox' : 'Radio'}-button-group`,\n }\n\n return (isMulti\n ? useCheckboxGroup(\n propsWithLabel as AriaCheckboxGroupProps,\n state as CheckboxGroupState\n ).groupProps\n : useRadioGroup(\n propsWithLabel as AriaRadioGroupProps,\n state as RadioGroupState\n ).radioGroupProps\n )\n}\n\nexport const useFlipButton = (props: FlipButtonGroupProps, isMulti: boolean) => {\n const state = useFlipButtonState(props, isMulti)\n const flipButtonGroupProps = useFlipButtonGroup(props, state, isMulti)\n return { state, flipButtonGroupProps }\n}\n","import React, { useContext, useRef } from 'react'\nimport { CheckSolid } from '@northlight/icons'\nimport { useCheckboxGroupItem } from '@react-aria/checkbox'\nimport { SlideFade, useMultiStyleConfig } from '@chakra-ui/react'\nimport { useRadio } from '@react-aria/radio'\nimport { useFocusRing } from '@react-aria/focus'\nimport { mergeAll, omit } from 'ramda'\nimport { CheckboxGroupState } from '@react-stately/checkbox'\nimport { RadioGroupState } from '@react-stately/radio'\nimport { mergeProps } from '@react-aria/utils'\nimport { FlipButtonContext } from './utils'\nimport { HStack } from '../stack'\nimport { Icon } from '../icon'\nimport { Text } from '../text'\nimport { CustomContainerPropsType, CustomFlipButtonPropsType, FlipButtonProps } from './types'\n\n/**\n * Meant to act as a middleman to turn any component into\n * either a radio or checkbox input\n * where the user can choose between multiple options\n * @see CheckboxGroup\n * @see RadioGroup\n * @see FlipButtonGroup\n * @see {@link https://northlight.dev/reference/flip-button}\n *\n * @example (Example)\n * ### It must always be wrapped in a group\n * (?\n * <FlipButton />\n * ?)\n * Or it will throw an error\n *\n *\n * @example (Example)\n * ### As a radio button group\n * (?\n *<FlipButtonGroup isMulti={ false } size=\"sm\">\n <FlipButton value=\"one\" icon={AgencyDuo}>One</FlipButton>\n <FlipButton value=\"two\" icon={StagesDuo}>Two</FlipButton>\n <FlipButton value=\"three\" icon={Flag04Duo}>Three</FlipButton>\n</FlipButtonGroup>\n * ?)\n *\n * @example (Example)\n * ### As a checkbox button group\n * (?\n *<FlipButtonGroup isMulti={ true } size=\"sm\">\n <FlipButton value=\"one\" icon={TagsStackDuo}>One</FlipButton>\n <FlipButton value=\"two\" icon={Image03Duo}>Two</FlipButton>\n <FlipButton value=\"three\" icon={TagDuo }>Three</FlipButton>\n</FlipButtonGroup>\n * ?)\n *\n * @example (Example)\n * ###Custom Flip Button\n * (?\n * +\n * const customElement = ({\n flipButtonProps,\n containerProps,\n isSelected,\n label,\n value,\n}) => (\n <HStack\n { ...containerProps }\n spacing=\"4\"\n _checked={ { bgColor: 'blue.500', color: 'text.inverted' } }\n borderRadius=\"md\"\n p=\"2\"\n >\n <input { ...flipButtonProps } />\n <Icon as={ UsersDuo } />\n <Stack spacing=\"0\">\n <Text>{ label }</Text>\n <Text color={ isSelected ? 'text.inverted' : 'gray.200' }>\n { value === 'public'\n ? 'Everyone can view and edit the plan'\n : 'The plan is only visible to you'\n }\n </Text>\n </Stack>\n </HStack>\n)\n\nconst MyComponent = () => (\n<FlipButtonGroup direction=\"column\" sx={{bgColor: 'transparent'}}>\n <FlipButton value=\"public\" label=\"Public\">\n { customElement }\n </FlipButton>\n <FlipButton value=\"private\" label=\"Private\">\n { customElement }\n </FlipButton>\n</FlipButtonGroup>\n\n)\nrender(<MyComponent/>)\n *\n * ?)\n *\n */\nexport const FlipButton = (props: FlipButtonProps) => {\n const {\n children,\n size,\n variant,\n isMulti,\n isDisabled = false,\n icon,\n value,\n iconPlacement = 'left',\n ...rest\n } = props\n const state = useContext(FlipButtonContext)\n const ref = useRef(null)\n\n const propsWithoutChildren = omit([ 'children' ], props)\n const { inputProps } = isMulti\n ? useCheckboxGroupItem(propsWithoutChildren, state as CheckboxGroupState, ref)\n : useRadio(propsWithoutChildren, state as RadioGroupState, ref)\n\n const { button, buttonIcon } = useMultiStyleConfig('FlipButton', { size, variant })\n const { focusProps, isFocusVisible: isFocused } = useFocusRing()\n const focusStyles = {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n }\n const focusRing = isFocused ? focusStyles : {}\n\n const isSelected = isMulti\n ? (state as CheckboxGroupState).isSelected(value)\n : (state as RadioGroupState).selectedValue === value\n\n const flipButtonProps: CustomFlipButtonPropsType = {\n ...mergeProps(inputProps, focusProps),\n ref,\n style: { opacity: '0', width: '0', height: '0' },\n 'aria-label': isMulti ? 'Checkbox-input' : 'Radio-input',\n }\n\n const containerProps: CustomContainerPropsType = {\n 'aria-checked': isSelected,\n 'aria-disabled': isDisabled,\n sx: focusRing,\n as: 'label',\n cursor: 'pointer',\n }\n\n return typeof children === 'function'\n ? children({\n state,\n containerProps,\n flipButtonProps,\n isFocused,\n isSelected,\n isDisabled,\n isMulti: isMulti || false,\n focusRing,\n value,\n ...rest,\n })\n : (\n <HStack\n spacing={ isSelected || icon ? 2 : 0 }\n sx={ mergeAll([ button, isFocused ? focusStyles : {}, { flexDirection: iconPlacement === 'left' ? 'row' : 'row-reverse' } ]) }\n aria-checked={ isSelected }\n aria-disabled={ isDisabled }\n as=\"label\"\n >\n <input { ...flipButtonProps } />\n { icon && iconPlacement !== 'none'\n ? (\n <Icon as={ icon || CheckSolid } sx={ buttonIcon } />\n ) : isSelected && iconPlacement !== 'none' && (\n <SlideFade in={ isSelected }>\n <Icon as={ icon || CheckSolid } sx={ buttonIcon } />\n </SlideFade>\n ) }\n <Text textAlign=\"center\">{ children }</Text>\n </HStack>\n )\n}\n","import React, { Children, cloneElement, isValidElement } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { omit } from 'ramda'\nimport { Stack } from '../stack'\nimport { FlipButtonGroupProps } from './types'\nimport { FlipButtonContext, useFlipButton } from './utils'\n\n/**\n * Provides context to FlipButton\n * @see FlipButton\n * @see {@link https://northlight.dev/reference/flip-button-group}\n */\nexport const FlipButtonGroup = (props: FlipButtonGroupProps) => {\n const {\n isMulti = false,\n name,\n children,\n direction = 'row',\n isDisabled = false,\n iconPlacement = 'left',\n size,\n variant,\n icon,\n sx = {},\n ...rest\n } = props\n\n const { state, flipButtonGroupProps } = useFlipButton(props, isMulti)\n\n const numberOfButtons = Children.count(children)\n\n const childrenWithProps = (Children.toArray(children)).map((child: React.ReactNode) =>\n (isValidElement(child)\n ? cloneElement(child, {\n key: child.props.value,\n isMulti,\n variant,\n isDisabled,\n iconPlacement,\n icon,\n size,\n ...child.props,\n })\n : child)\n )\n\n const { container } = useMultiStyleConfig('FlipButton', {\n size,\n variant,\n numberOfButtons,\n sx,\n })\n\n const restWithoutOnChange = omit([ 'onChange' ], rest)\n\n return (\n <Stack\n { ...flipButtonGroupProps }\n direction={ direction }\n id={ name }\n spacing={ 0 }\n sx={ container }\n { ...restWithoutOnChange }\n >\n <FlipButtonContext.Provider value={ state }>\n { childrenWithProps }\n </FlipButtonContext.Provider>\n </Stack>\n )\n}\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { Field } from '../form'\nimport { FlipButtonGroup } from './flip-button-group'\nimport { FlipButtonGroupFieldProps } from './types'\n\n/**\n * The FlipButtonGroup component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FlipButton\n * @see {@link https://northlight.dev/reference/flip-button-group-field}\n *\n * @example (Example)\n * (?\n * <Form intitialValues={{foods: 'pizza'}}>\n <FlipButtonGroupField name=\"foods\" label=\"Select the food you enjoy most\" variant=\"brand\">\n <FlipButton value=\"pizza\">Pizza</FlipButton>\n <FlipButton value=\"hamburger\">Button</FlipButton>\n <FlipButton value=\"steak\">Steak</FlipButton>\n </FlipButtonGroupField>\n * </Form>\n *\n * ?)\n *\n */\nexport const FlipButtonGroupField = ({\n name,\n label,\n children,\n direction,\n isRequired,\n iconPlacement = 'left',\n onChange: onChangeCallback = identity,\n validate,\n ...rest\n}: FlipButtonGroupFieldProps) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <FlipButtonGroup\n name={ name }\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n direction={ direction }\n value={ value }\n iconPlacement={ iconPlacement }\n { ...rest }\n >\n { children }\n </FlipButtonGroup>\n ) }\n </Field>\n)\n","import React, { useRef } from 'react'\nimport { CalendarDuo } from '@northlight/icons'\nimport { useButton } from '@react-aria/button'\nimport { Button } from '../../../button'\nimport { TriggerProps } from './types'\nimport { Icon } from '../../../icon'\n\nexport const Trigger = (props: TriggerProps) => {\n const { isDisabled, handleClick } = props\n const ref = useRef<HTMLButtonElement>(null)\n const { buttonProps } = useButton(props, ref)\n\n return (\n <Button\n { ...buttonProps }\n ref={ ref }\n size=\"sm\"\n boxSize={ 8 }\n variant=\"ghost\"\n isDisabled={ isDisabled }\n onPointerDown={ handleClick }\n pointerEvents={ isDisabled ? 'none' : 'auto' }\n >\n <Icon as={ CalendarDuo } />\n </Button>\n )\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useDateSegment } from '@react-aria/datepicker'\nimport { Box } from '../../../box'\nimport { DateSegmentProps } from './types'\n\nexport const DateSegment = ({ segment, state }: DateSegmentProps) => {\n const ref = useRef<HTMLInputElement>(null)\n const { segmentProps } = useDateSegment(segment, state, ref)\n\n const isDivider = segment.type === 'literal'\n const { dateSegment } = useMultiStyleConfig('DatePicker')\n const minWidth = `${String(segment.maxValue).length}ch`\n\n return (\n <Box\n { ...segmentProps }\n ref={ ref }\n __css={ dateSegment }\n minWidth={ isDivider ? 0 : minWidth }\n paddingInline={ isDivider ? 0 : '0.25rem' }\n color={\n segment.isPlaceholder\n ? 'gray.500'\n : isDivider\n ? 'text.subduded'\n : 'text.default'\n }\n fontSize=\"md\"\n >\n { segment.text }\n </Box>\n )\n}\n","import { toLower } from 'ramda'\n\ntype FormatMapKey = 'y' | 'm' | 'd'\ntype FormatMapValue = 'yyyy' | 'mm' | 'dd'\n\nconst mapFormat: Record<FormatMapKey, FormatMapValue> = {\n y: 'yyyy',\n m: 'mm',\n d: 'dd',\n}\n\nexport const formatQuery = (query: string) =>\n mapFormat[toLower(query)[0] as FormatMapKey]\n\nexport const delimeterIncluded = /([.,:;|\\-/\\\\])/\n","import React, { useRef } from 'react'\nimport { useDateFieldState } from '@react-stately/datepicker'\nimport { useDateField } from '@react-aria/datepicker'\nimport { createCalendar } from '@internationalized/date'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { find, split } from 'ramda'\nimport { Box } from '../../../box'\nimport { DateSegment } from './date-segment'\nimport { DateFieldProps, DateSegmentType } from './types'\nimport { delimeterIncluded, formatQuery } from './utils'\n\nexport const DateField = (props: DateFieldProps) => {\n const ref = useRef<HTMLInputElement>(null)\n const state = useDateFieldState({\n ...props,\n /* Hard coding the United Kingdom locale,\n this enforces using english characters e.g.\n yyyy and not other such as åååå or chinese, which prevents hard to predict bugs */\n locale: 'en-GB',\n createCalendar,\n })\n\n const { dateField } = useMultiStyleConfig('DatePicker')\n const { fieldProps } = useDateField(props, state, ref)\n\n const { segments } = state\n const { dateFormat = 'dd/mm/yyyy' } = props\n const getMatchingSegment = (query: string, index: number) =>\n find(\n (segment: DateSegmentType) => segment.placeholder === formatQuery(query)\n )(segments) || { ...segments[index], text: query }\n\n const sortedSegments = split(delimeterIncluded, dateFormat).map(\n (query: string, index: number) => getMatchingSegment(query, index)\n )\n\n return (\n <Box\n { ...fieldProps }\n ref={ ref }\n display=\"flex\"\n __css={ dateField }\n data-testid=\"date-field-test-id\"\n >\n { sortedSegments.map((segment, i) => {\n const id = `${segment.type}-${i}`\n return <DateSegment segment={ segment } state={ state } key={ id } />\n }) }\n </Box>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../../../box'\nimport { StyledFieldProps } from './types'\n\nexport const StyledField = forwardRef((\n { isInvalid, isDisabled, children, variant, ...rest }: StyledFieldProps,\n ref: any\n) => {\n const { styledField } = useMultiStyleConfig('DatePicker', { variant })\n\n return (\n <Box\n { ...rest }\n ref={ ref }\n aria-invalid={ isInvalid }\n aria-disabled={ isDisabled }\n display=\"flex\"\n alignItems=\"center\"\n h={ 10 }\n __css={ styledField }\n >\n { children }\n </Box>\n )\n}\n)\n","import React, { useRef } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarCell } from '@react-aria/calendar'\nimport { isSameMonth, today } from '@internationalized/date'\nimport { CalendarCellProps } from './types'\nimport { Button } from '../../../../button'\n\nexport const CalendarCell = ({\n state,\n date,\n currentMonth,\n}: CalendarCellProps) => {\n const ref = useRef<HTMLButtonElement>(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n const isToday = date.compare(today(state.timeZone)) === 0\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n return (\n <chakra.td { ...cellProps }>\n <Button\n { ...buttonProps }\n ref={ ref }\n borderRadius=\"xs\"\n boxSize={ 8 }\n hidden={ isOutsideMonth }\n size=\"sm\"\n fontWeight=\"medium\"\n variant={ isSelected ? 'brand' : 'ghost' }\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"blue.500\"\n >\n { formattedDate }\n </Button>\n </chakra.td>\n )\n}\n","import React, { memo } from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/system'\nimport { DayLabelsProps } from './types'\n\nexport const DayLabels = memo(({\n weekDays,\n}: DayLabelsProps) => {\n const { dayLabel } = useMultiStyleConfig('Calendar')\n const weekDaysWithIds = weekDays.map((day, i) => ({ label: day, _id: i }))\n\n return (\n <chakra.tr>\n { weekDaysWithIds.map(({ label, _id }) => (\n <chakra.th key={ _id } __css={ dayLabel }>\n { label }\n </chakra.th>\n )) }\n </chakra.tr>\n )\n})\n","import React, { memo } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarGrid } from '@react-aria/calendar'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { Table, Tbody, Thead, Tr } from '../../../../table'\nimport { CalendarCell } from './calendar-cell'\nimport { CalendarGridProps } from './types'\nimport { DayLabels } from './day-labels'\n\nexport const CalendarGrid = memo(\n ({ state, locale, ...rest }: CalendarGridProps) => {\n const startDate = state.visibleRange.start\n const { gridProps, headerProps, weekDays } = useCalendarGrid(rest, state)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <Table variant=\"unstyled\" { ...gridProps }>\n <Thead { ...headerProps }>\n <DayLabels weekDays={ weekDays } />\n </Thead>\n <Tbody>\n { times((weekIndex) => (\n <Tr key={ weekIndex }>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date) =>\n (date ? (\n <CalendarCell\n key={ date.day }\n state={ state }\n date={ date }\n currentMonth={ startDate }\n />\n ) : (\n <chakra.td />\n ))\n ) }\n </Tr>\n ), weeksInMonth) }\n </Tbody>\n </Table>\n )\n }\n)\n","import React, { useRef } from 'react'\nimport { useButton } from '@react-aria/button'\nimport { Button } from '../../../../button'\nimport { MonthButtonProps } from './types'\n\nexport const MonthButton = ({ children, ...rest }: MonthButtonProps) => {\n const ref = useRef<HTMLButtonElement>(null)\n const { buttonProps } = useButton(rest, ref)\n\n return (\n <Button\n { ...buttonProps }\n boxSize={ 8 }\n size=\"xs\"\n variant=\"ghost\"\n ref={ ref }\n >\n { children }\n </Button>\n )\n}\n","export const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n 'January',\n]\n","import React, { ChangeEvent, useEffect, useState } from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { months } from '../constants'\nimport { MonthSelectProps } from './types'\n\nexport const MonthSelect = ({\n state,\n offset = 0,\n}: MonthSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n const start = state.visibleRange.start.add({ months: offset }).month - 1\n const [ selectedIndex, setSelectedIndex ] = useState(start)\n const [ isEditing, setIsEditing ] = useState(false)\n\n const moveStartDateBy = (inp: any) => state.visibleRange.start.add(inp)\n\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n setSelectedIndex(index)\n setIsEditing(false)\n const diff = index - start\n state.setFocusedDate(moveStartDateBy({ months: diff }))\n }\n\n useEffect(() => {\n setSelectedIndex(\n state.visibleRange.start.add({ months: offset }).month - 1\n )\n }, [ state.visibleRange ])\n\n const handleKeyDown = (e: any) => {\n switch (e.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n case ' ':\n setIsEditing((prev) => !prev)\n break\n default:\n break\n }\n }\n\n return (\n <Select\n id=\"month\"\n aria-label=\"Select Month\"\n onChange={ onChange }\n onClick={ () => setIsEditing((prev) => !prev) }\n onKeyDown={ handleKeyDown }\n value={ selectedIndex }\n iconSize=\"0px\"\n size=\"sm\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n >\n { isEditing ? (\n months.map((month, i) => (\n <option key={ month } value={ i }>\n { month }\n </option>\n ))\n ) : (\n <option value={ selectedIndex }>{ months[selectedIndex] }</option>\n ) }\n </Select>\n )\n}\n","import React from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { YearSelectProps } from './types'\n\nexport const YearSelect = ({\n onChange,\n years,\n}: YearSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n\n return (\n <Select\n id=\"year\"\n aria-label=\"Year\"\n onChange={ onChange }\n value={ 10 }\n size=\"sm\"\n iconSize=\"0px\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n >\n { years.map((year, i) => (\n <option key={ year.formatted } value={ i }>\n { year.formatted }\n </option>\n )) }\n </Select>\n\n )\n}\n","import { useDateFormatter } from '@react-aria/i18n'\nimport { UseYearsCalendarProps, UseYearsRangeCalendarProps, YearValue } from './types'\n\nexport const useYearsCalendar = ({\n state,\n}: UseYearsCalendarProps) => {\n const years: YearValue[] = []\n const formatter = useDateFormatter({ year: 'numeric', month: 'long' })\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.focusedDate.add({ years: i })\n years.push({\n value: date,\n formatted: formatter.format(date.toDate(state.timeZone)),\n })\n }\n return { years }\n}\n\nexport const useYearsRangeCalendar = ({\n state,\n offset,\n}: UseYearsRangeCalendarProps) => {\n const years: YearValue[] = []\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.visibleRange.start.add({ years: i, months: offset })\n years.push({\n value: date,\n formatted: `${date.year}`,\n })\n }\n return { years }\n}\n","import React, { ChangeEvent } from 'react'\nimport { YearSelect } from './year-select'\nimport { useYearsCalendar } from './utils'\nimport { YearSelectCalendarProps } from './types'\n\nexport const YearSelectCalendar = ({ state }: YearSelectCalendarProps) => {\n const { years } = useYearsCalendar({ state })\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const date = years[index].value\n state.setFocusedDate(date)\n }\n\n return (\n <YearSelect onChange={ onChange } years={ years } />\n )\n}\n","import React, { ChangeEvent } from 'react'\nimport { YearSelect } from './year-select'\nimport { useYearsRangeCalendar } from './utils'\nimport { YearSelectRangeCalendarProps } from './types'\n\nexport const YearSelectRangeCalendar = ({\n state,\n offset,\n}: YearSelectRangeCalendarProps) => {\n const { years } = useYearsRangeCalendar({ state, offset })\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const date = years[index].value\n state.setFocusedDate(date)\n }\n\n return (\n <YearSelect onChange={ onChange } years={ years } />\n )\n}\n","import React from 'react'\nimport { GregorianCalendar } from '@internationalized/date'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useLocale } from '@react-aria/i18n'\nimport { useCalendarState } from '@react-stately/calendar'\nimport { useCalendar } from '@react-aria/calendar'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { CalendarGrid, MonthButton } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { Icon } from '../../../icon'\nimport { YearSelectCalendar } from './date-select'\nimport { CalendarProps } from './types'\n\nexport const Calendar = (props: CalendarProps) => {\n const { locale } = useLocale()\n const { container } = useMultiStyleConfig('Calendar')\n\n const state = useCalendarState({\n ...props,\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n props,\n state\n )\n\n return (\n <Box { ...calendarProps } __css={ container }>\n <Stack>\n <Flex justifyContent=\"space-between\">\n <Box paddingInlineStart=\"2\">\n <YearSelectCalendar state={ state } />\n </Box>\n <HStack spacing={ 2 }>\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </HStack>\n </Flex>\n <CalendarGrid state={ state } locale={ locale } />\n </Stack>\n </Box>\n )\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useDatePicker } from '@react-aria/datepicker'\nimport { useDatePickerState } from '@react-stately/datepicker'\nimport { FocusScope } from '@react-aria/focus'\nimport { XCloseSolid } from '@northlight/icons'\nimport { parseDate } from '@internationalized/date'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { Calendar } from '../components/calendar'\nimport { DatePickerProps } from '../types'\nimport { IconButton } from '../../icon-button'\nimport { HStack } from '../../stack'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { Icon } from '../../icon'\nimport { Box } from '../../box'\n\n/**\n * Popover to select single date\n * @see DatePickerField\n * @see {@link https://northlight.dev/reference/date-picker}\n *\n * @example (Example)\n * ## When is your birthday\n * (?\n * () => {\n * const [ date, setDate ] = useState('2023-10-10')\n *\n * const parseDate = () => {\n * return undefined\n * }\n *\n * return (\n * <DatePicker\n * firstDayOfWeek=\"monday\"\n * resetDate={() => setDate(null)} onChange={setDate} value={parseDate(date)}/>\n * )\n * }\n *\n * ?)\n * <br />\n * ### Some notes on date format\n * As you can see in the above example, the parseDate function returns undefined.\n * The DatePicker natively handles\n * dates as a DateValue object. To get out a string value on format yyyy-mm-dd,\n * you can use the javascript <b>.toString</b> method,\n * and for getting it back from string to DateValue,\n * you can use the parseDate util.\n * <br />\n * To read more about date formatting, consult the\n * <a target=\"_blank\" style=\"fontWeight: bold;\" href=\"https://react-spectrum.adobe.com/internationalized/date/CalendarDate.html\">react aria internationalized documentation</a>\n *\n * @example (Example)\n * ## Another example\n * (?\n * <DatePicker\n * variant=\"filled\"\n * dateFormat=\"mm|dd-yyyy\"\n * />\n * ?)\n *\n */\nexport const DatePicker = (props: DatePickerProps) => {\n const {\n isDisabled,\n isClearable = true,\n resetDate,\n isInvalid = false,\n dateFormat,\n minValue,\n variant = 'outline',\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const { group } = useMultiStyleConfig('DatePicker')\n\n const state = useDatePickerState({\n ...props,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const { buttonProps, fieldProps, calendarProps, groupProps, dialogProps } =\n useDatePicker(\n { ...props, minValue: minValue || parseDate('1994-03-08') },\n state,\n ref\n )\n\n const togglePopup = () => state.setOpen(!state.isOpen)\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ () => state.setOpen(false) }\n placement=\"bottom-end\"\n >\n <PopoverAnchor>\n <HStack minW={ 56 }>\n <InputGroup { ...groupProps } ref={ ref } __css={ group }>\n <StyledField isDisabled={ isDisabled } isInvalid={ isInvalid } variant={ variant }>\n <Box\n paddingInlineStart=\"1a\"\n paddingInlineEnd={ 10 }\n >\n <DateField\n { ...fieldProps }\n dateFormat={ dateFormat }\n />\n </Box>\n </StyledField>\n <InputRightElement>\n <Trigger\n { ...buttonProps }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ resetDate }\n hidden={ !state.dateValue || !isClearable }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n </PopoverAnchor>\n { state.isOpen && (\n <PopoverContent { ...dialogProps } ref={ ref } w={ 64 } border=\"none\">\n <FocusScope contain={ true } restoreFocus={ true }>\n <Calendar { ...calendarProps } />\n </FocusScope>\n </PopoverContent>\n ) }\n </Popover>\n )\n}\n","import React from 'react'\nimport { Link, chakra } from '@chakra-ui/react'\nimport { Link as ReactRouterLink } from 'react-router-dom'\nimport { useClickable } from '@chakra-ui/clickable'\nimport { isNil } from 'ramda'\nimport { ClickableProps } from './types'\nimport { ring } from '../../utils'\n\n/**\n * Wrapper component to make children interactive\n * by taking care of focus/accessibility, will render\n * either a link or button depending on if passing\n * an href\n * @see {@link https://northlight.dev/reference/clickable}\n * @example (Example)\n * ### Click to send notification\n * (?\n * () => {\n * const [ count, setCount ] = useState(0)\n * return (\n * <Clickable onClick={ () => setCount((prev) => prev + 1) }>\n <Avatar name=\"anakin skywalker\" variant=\"rounded\" notificationCount={count}/>\n </Clickable>\n * )\n * }\n * ?)\n * @example (Example)\n * ### Rendering a link if passing href\n * (?\n <Clickable href=\"/reference/select\">\n <Center boxSize=\"3xs\" bgColor=\"gray.50\">\n Link\n </Center>\n </Clickable>\n * ?)\n *\n */\nexport const Clickable = ({ href, linkProps, ...rest }: ClickableProps) => {\n const clickable = useClickable(rest)\n\n return (\n <>\n { !isNil(href) && (\n <Link\n as={ ReactRouterLink }\n _focusVisible={ ring }\n to={ href }\n _hover={ { textDecoration: 'none' } }\n { ...linkProps }\n { ...clickable }\n />\n ) }\n { isNil(href) && <chakra.button _focusVisible={ ring } { ...clickable } /> }\n </>\n )\n}\n","export const defaultFadeDelay = 250\nexport const defaultOffset = 20\n","import { useEffect, useState } from 'react'\nimport { identity } from 'ramda'\nimport { getChildrenWithProps } from '../../utils'\nimport {\n ChildrenType,\n DurationType,\n OffsetType,\n TransitionDirection,\n} from './types'\nimport { defaultFadeDelay, defaultOffset } from './constants'\n\nconst unFocusStyles = { tabIndex: '-1' }\nexport const getChildrenWithFocus = (\n children: ChildrenType,\n disableFocus: boolean,\n show: boolean\n) =>\n (show\n ? children\n : disableFocus\n ? getChildrenWithProps(children, unFocusStyles)\n : children)\n\nexport const getDuration = (\n enterDuration: DurationType,\n exitDuration: DurationType,\n duration: DurationType\n) => {\n const inDuration = enterDuration || duration || defaultFadeDelay\n const outDuration = exitDuration || duration || defaultFadeDelay\n const transition = {\n enter: {\n duration: inDuration / 1000,\n },\n exit: {\n duration: outDuration / 1000,\n },\n }\n return transition\n}\n\nexport const getOffsets = (\n direction: TransitionDirection,\n offset: OffsetType,\n offsetX: OffsetType,\n offsetY: OffsetType\n) => {\n if (offsetX || offsetY) {\n return { offsetX, offsetY }\n }\n if (direction) {\n const delta = offset || defaultOffset\n switch (direction) {\n case 'right':\n return { offsetX: delta, offsetY: 0 }\n case 'left':\n return { offsetX: -delta, offsetY: 0 }\n case 'top':\n return { offsetX: 0, offsetY: -delta }\n case 'bottom':\n return { offsetX: 0, offsetY: delta }\n default:\n break\n }\n }\n return { offsetX: defaultOffset, offsetY: defaultOffset }\n}\n\nexport const useDelay = (\n show: boolean,\n enterDelay: number,\n exitDelay: number\n) => {\n const [ showWithDelay, setShowWithDelay ] = useState(false)\n useEffect(() => {\n const ref = setTimeout(\n () => setShowWithDelay(show),\n show ? enterDelay : exitDelay\n )\n return () => clearTimeout(ref)\n }, [ show ])\n return showWithDelay\n}\n\nexport const useHiddenDisplay = (\n anchor = false,\n exitDelay = 0,\n exitDuration: DurationType = 0,\n duration: DurationType = 0,\n onTransitionComplete: (hidden: boolean) => void = identity\n) => {\n const [ hidden, setHidden ] = useState(anchor)\n\n useEffect(() => {\n const ref = setTimeout(() => {\n setHidden(anchor)\n onTransitionComplete(anchor)\n }, exitDelay + (exitDuration || duration || 0))\n return () => clearTimeout(ref)\n }, [ anchor ])\n\n return hidden\n}\n","import React from 'react'\nimport { Fade as ChakraFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { FadeProps } from './types'\n/**\n * Simple transition to hide/show content\n * @see ScaleFade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/fade}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Render random number</Button>\n <Box borderRadius=\"st.border.radius.sm\"\n borderWidth=\"st.border.width.sm\" borderColor=\"border.default\">\n <Fade in={ show} exitDuration={1}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <H3>\n {Math.round(Math.random() * 100)}\n </H3>\n </HStack>\n </Fade>\n </Box>\n </>\n\n )\n\n}\n\n * ?)\n *\n */\nexport const Fade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: FadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraFade\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraFade>\n )\n}\n","import React from 'react'\nimport { ScaleFade as ChakraScaleFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { ScaleFadeProps } from './types'\n\n/**\n * Simple transition to hide/show content\n * @see Fade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/slide-fade}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Render random number</Button>\n <Box borderRadius=\"st.border.radius.sm\"\n borderWidth=\"st.border.width.sm\" borderColor=\"border.default\">\n <SlideFade in={ show} exitDuration={1}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <H3>\n {Math.round(Math.random() * 100)}\n </H3>\n </HStack>\n </SlideFade>\n </Box>\n </>\n )\n}\n * ?)\n *\n */\nexport const ScaleFade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: ScaleFadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraScaleFade\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraScaleFade>\n )\n}\n","import React from 'react'\nimport { Slide as ChakraSlide } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { SlideProps } from './types'\n\nexport const Slide = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n direction = 'bottom',\n onTransitionComplete = identity,\n ...rest\n}: SlideProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraSlide\n in={ showWithDelay }\n transition={ transition }\n direction={ direction }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraSlide>\n )\n}\n","import React from 'react'\nimport { SlideFade as ChakraSlideFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, getOffsets, useDelay, useHiddenDisplay } from './utils'\nimport { SlideFadeProps } from './types'\nimport { defaultOffset } from './constants'\n\nexport const SlideFade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n direction = 'bottom',\n offset: delta = defaultOffset,\n offsetX: deltaX = 0,\n offsetY: deltaY = 0,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: SlideFadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const { offsetX, offsetY } = getOffsets(direction, delta, deltaX, deltaY)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraSlideFade\n in={ showWithDelay }\n transition={ transition }\n offsetX={ offsetX }\n offsetY={ offsetY }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraSlideFade>\n )\n}\n","import React from 'react'\nimport { Collapse as ChakraCollapse } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { CollapseProps } from './types'\n\n/**\n * Simple transition to hide/show content\n * @see Fade\n * @see ScaleFade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/collapse}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Click Me</Button>\n <Box borderRadius=\"st.border.radius.sm\"\n borderWidth=\"st.border.width.sm\" borderColor=\"border.default\">\n <Collapse in={ show}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <P>\n Enable advanced mode\n </P>\n\n <Switch />\n </HStack>\n </Collapse>\n </Box>\n </>\n\n )\n\n}\n\n * ?)\n\n *\n */\n\nexport const Collapse = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: CollapseProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraCollapse\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraCollapse>\n )\n}\n","import React from 'react'\nimport { palette } from '@northlight/tokens'\nimport { Clickable } from '../../../../clickable'\nimport { P } from '../../../../typography'\n\nexport const MoveButton = (props: any) => (\n <Clickable { ...props } w=\"max-content\">\n <P\n variant=\"14\"\n _hover={ {\n borderBottomWidth: '1px',\n borderBottomStyle: 'dashed',\n borderBottomColor: palette.blue['500'],\n marginBottom: '-1px',\n } }\n _active={ {\n color: 'blue.500',\n } }\n >\n { props.children }\n </P>\n </Clickable>\n)\n","import { RangeCalendarState } from '@react-stately/calendar'\nimport { DateRangeValue } from './types'\n\nexport const validRange = (date: DateRangeValue, state: RangeCalendarState) =>\n !date || (\n (!state.minValue || date.start >= state.minValue) &&\n (!state.maxValue || date.end <= state.maxValue) &&\n date.end >= date.start\n )\n","import React from 'react'\nimport { any } from 'ramda'\nimport { HStack } from '../../../../stack'\nimport { MoveButton } from './move-button'\nimport { Icon } from '../../../../icon'\nimport { validRange } from './utils'\nimport { ButtonRowProps } from './types'\n\nexport const ButtonRow = ({\n dates,\n icon,\n getMethods,\n state,\n}: ButtonRowProps) => (\n <HStack\n display={\n any((date) => validRange(date.value, state), dates) ? 'initial' : 'none'\n }\n >\n <Icon as={ icon } color=\"blue.500\" size=\"lg\" />\n { dates.map(\n (date) =>\n validRange(date.value, state) && (\n <MoveButton { ...getMethods(date) }>{ date.label }</MoveButton>\n )\n ) }\n </HStack>\n)\n","import React, { useState } from 'react'\nimport {\n ArrowCircleLeftDuo,\n ArrowCircleRightDuo,\n ChevronDownSolid,\n ChevronUpSolid,\n} from '@northlight/icons'\nimport { CalendarDate } from '@internationalized/date'\nimport { Lead, P } from '../../../../typography'\nimport { Clickable } from '../../../../clickable'\nimport { SlideFade } from '../../../../transitions'\nimport { HStack, Stack } from '../../../../stack'\nimport { Icon } from '../../../../icon'\nimport { ButtonRow } from './button-row'\nimport { AdjustRangeProps, Date, DateRangeValue, MoveDateByType } from './types'\n\nexport const AdjustRange = ({ state, adjust = 'start' }: AdjustRangeProps) => {\n const [ isOpen, setIsOpen ] = useState(false)\n\n const moveStartDateBy = (inp: MoveDateByType) => {\n if (state.value) {\n return {\n start: state.value.start.add(inp),\n end: state.value.end,\n }\n }\n return null\n }\n\n const moveEndDateBy = (inp: MoveDateByType) => {\n if (state.value) {\n return {\n start: state.value.start,\n end: state.value.end.add(inp),\n }\n }\n return null\n }\n\n const moveStartDayBack = {\n value: moveStartDateBy({ days: -1 }),\n label: 'Day',\n }\n\n const moveStartWeekBack = {\n value: moveStartDateBy({ weeks: -1 }),\n label: 'Week',\n }\n\n const moveStartMonthBack = {\n value: moveStartDateBy({ months: -1 }),\n label: 'Month',\n }\n\n const moveStartYearBack = {\n value: moveStartDateBy({ years: -1 }),\n label: 'Year',\n }\n\n const moveStartDayForward = {\n value: moveStartDateBy({ days: 1 }),\n label: 'Day',\n }\n\n const moveStartWeekForward = {\n value: moveStartDateBy({ weeks: 1 }),\n label: 'Week',\n }\n\n const moveStartMonthForward = {\n value: moveStartDateBy({ months: 1 }),\n label: 'Month',\n }\n\n const moveStartYearForward = {\n value: moveStartDateBy({ years: 1 }),\n label: 'Year',\n }\n\n const moveStartBack = [\n moveStartDayBack,\n moveStartWeekBack,\n moveStartMonthBack,\n moveStartYearBack,\n ]\n\n const moveStartForward = [\n moveStartDayForward,\n moveStartWeekForward,\n moveStartMonthForward,\n moveStartYearForward,\n ]\n\n const moveEndDayBack = {\n value: moveEndDateBy({ days: -1 }),\n label: 'Day',\n }\n\n const moveEndWeekBack = {\n value: moveEndDateBy({ weeks: -1 }),\n label: 'Week',\n }\n\n const moveEndMonthBack = {\n value: moveEndDateBy({ months: -1 }),\n label: 'Month',\n }\n\n const moveEndYearBack = {\n value: moveEndDateBy({ years: -1 }),\n label: 'Year',\n }\n\n const moveEndDayForward = {\n value: moveEndDateBy({ days: 1 }),\n label: 'Day',\n }\n\n const moveEndWeekForward = {\n value: moveEndDateBy({ weeks: 1 }),\n label: 'Week',\n }\n\n const moveEndMonthForward = {\n value: moveEndDateBy({ months: 1 }),\n label: 'Month',\n }\n\n const moveEndYearForward = {\n value: moveEndDateBy({ years: 1 }),\n label: 'Year',\n }\n\n const moveEndBack = [\n moveEndDayBack,\n moveEndWeekBack,\n moveEndMonthBack,\n moveEndYearBack,\n ]\n\n const moveEndForward = [\n moveEndDayForward,\n moveEndWeekForward,\n moveEndMonthForward,\n moveEndYearForward,\n ]\n\n const updateDate =\n (newDate: DateRangeValue, focusOnStart = true) =>\n () => {\n if (newDate) {\n state.setValue(newDate)\n state.setFocusedDate(\n focusOnStart\n ? newDate.start as CalendarDate\n : newDate.end as CalendarDate\n )\n }\n }\n\n const getMethodsStart = (date: Date) => ({\n onClick: updateDate(date.value, true),\n })\n\n const getMethodsEnd = (date: Date) => ({\n onClick: updateDate(date.value, false),\n })\n\n return (\n <Stack\n spacing={ 2 }\n visibility={ state.value === null ? 'hidden' : 'visible' }\n pt=\"2\"\n >\n <Clickable onClick={ () => setIsOpen((prev) => !prev) }>\n <HStack>\n <P variant=\"14\">Adjust { adjust }</P>\n <Icon as={ isOpen ? ChevronUpSolid : ChevronDownSolid } size=\"xs\" />\n </HStack>\n </Clickable>\n <SlideFade in={ isOpen } direction=\"top\" hideDisplay={ true }>\n { adjust === 'start' && (\n <Stack minH=\"91px\">\n <Lead sx={ { fontSize: '12px' } }>Move date</Lead>\n <ButtonRow\n icon={ ArrowCircleLeftDuo }\n dates={ moveStartBack }\n getMethods={ getMethodsStart }\n state={ state }\n />\n <ButtonRow\n icon={ ArrowCircleRightDuo }\n dates={ moveStartForward }\n getMethods={ getMethodsStart }\n state={ state }\n />\n </Stack>\n ) }\n { adjust === 'end' && (\n <Stack minH=\"91px\">\n <Lead sx={ { fontSize: '12px' } }>Move date</Lead>\n <ButtonRow\n icon={ ArrowCircleLeftDuo }\n dates={ moveEndBack }\n getMethods={ getMethodsEnd }\n state={ state }\n />\n <ButtonRow\n icon={ ArrowCircleRightDuo }\n dates={ moveEndForward }\n getMethods={ getMethodsEnd }\n state={ state }\n />\n </Stack>\n ) }\n </SlideFade>\n </Stack>\n )\n}\n","import React, { useRef } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarCell } from '@react-aria/calendar'\nimport { isSameMonth, today } from '@internationalized/date'\nimport { RangeCellProps } from './types'\n\nexport const RangeCell = ({ state, date, currentMonth }: RangeCellProps) => {\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n if (isOutsideMonth) return <chakra.td />\n\n const ref = useRef<HTMLButtonElement>(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n\n const isToday = date.compare(today(state.timeZone)) === 0\n\n return (\n <chakra.td { ...cellProps }>\n <chakra.button\n { ...buttonProps }\n type=\"button\"\n ref={ ref }\n borderRadius=\"xs\"\n bgColor={ isSelected ? 'blue.500' : 'transparent' }\n color={ isSelected ? 'text.inverted' : 'text.default' }\n fontSize=\"sm\"\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"blue.500\"\n mx=\"-0a\"\n my=\"0a\"\n zIndex=\"docked\"\n transition=\"none\"\n w=\"8\"\n h=\"8\"\n fontWeight=\"medium\"\n _focusVisible={ {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n } }\n _hover={ {\n bgColor: isSelected ? 'blue.400' : 'bg.filled',\n _disabled: {\n bgColor: 'transparent',\n },\n } }\n _disabled={ {\n opacity: 0.3,\n } }\n >\n { formattedDate }\n </chakra.button>\n </chakra.td>\n )\n}\n","import React from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarGrid } from '@react-aria/calendar'\nimport { endOfMonth, getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { Box } from '../../../../box'\nimport { DayLabels } from './day-labels'\nimport { RangeCell } from './range-cell'\nimport { RangeCalendarGridProps } from './types'\n\nexport const RangeCalendarGrid = ({ state, locale, offset = {} }: RangeCalendarGridProps) => {\n const startDate = state.visibleRange.start.add(offset)\n const endDate = endOfMonth(startDate)\n\n const { gridProps, headerProps, weekDays } = useCalendarGrid({ startDate, endDate }, state)\n const weeksInMonth = getWeeksInMonth(state.visibleRange.start, locale)\n\n return (\n <Box h=\"245px\" p=\"0\">\n <chakra.table { ...gridProps } sx={ { borderSpacing: '0px' } }>\n <chakra.thead { ...headerProps }>\n <DayLabels weekDays={ weekDays } />\n </chakra.thead>\n <chakra.tbody>\n { times((weekIndex) => (\n <chakra.tr key={ weekIndex }>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date, i) =>\n (date ? (\n <RangeCell\n key={ i as number }\n state={ state }\n date={ date }\n currentMonth={ startDate }\n locale={ locale }\n />\n ) : (\n <chakra.td key={ i as number } />\n ))\n ) }\n </chakra.tr>\n ), weeksInMonth + 1) }\n </chakra.tbody>\n </chakra.table>\n\n </Box>\n )\n}\n","import React from 'react'\nimport { Clickable } from '../../../../clickable'\nimport { Label } from '../../../../typography'\nimport { Flex } from '../../../../flex'\nimport { DateButtonProps } from './types'\n\nexport const DateButton = ({\n isActive,\n onClick,\n children,\n}: DateButtonProps) => (\n <Flex maxW=\"120px\">\n <Clickable onClick={ onClick }>\n <Label\n _hover={ {\n fontWeight: 'semibold',\n } }\n sx={ {\n color: isActive ? 'background.button.brand' : 'text.default',\n cursor: 'pointer',\n fontWeight: isActive ? 'semibold' : 'regular',\n } }\n _active={ {\n fontWeight: 'semibold',\n } }\n h=\"8\"\n >\n { children }\n </Label>\n </Clickable>\n </Flex>\n)\n","import {\n CalendarDate,\n endOfMonth,\n endOfWeek,\n endOfYear,\n startOfMonth,\n startOfWeek,\n startOfYear,\n today,\n} from '@internationalized/date'\nimport { RangeCalendarState } from '@react-stately/calendar'\n\nexport const getQuickSelectOptions = (\n state: RangeCalendarState,\n locale: string,\n fiscalStartMonth: number,\n fiscalStartDay: number\n) => {\n const thisDay = today(state.timeZone)\n\n const startOfMonthWithDays = (date: CalendarDate,\n { months, days }: { months: number, days: number }) => {\n const start = date.add({ months }).set({ day: days })\n return start\n }\n\n const endOfMonthWithDays = (date: CalendarDate,\n { months, days }:{ months: number, days: number }) => {\n const end = date.add({ months }).set({ day: days }).subtract({ days: 1 })\n return end\n }\n\n const thisWeek = {\n value: {\n start: startOfWeek(thisDay, locale),\n end: endOfWeek(thisDay, locale),\n },\n label: 'This Week',\n }\n\n const lastWeek = {\n value: {\n start: startOfWeek(thisDay.subtract({ weeks: 1 }), locale),\n end: endOfWeek(thisDay.subtract({ weeks: 1 }), locale),\n },\n label: 'Last Week',\n }\n\n const thisMonth = {\n value: {\n start: startOfMonth(thisDay),\n end: endOfMonth(thisDay),\n },\n label: 'This month',\n }\n\n const lastMonth = {\n value: {\n start: startOfMonth(thisDay.subtract({ months: 1 })),\n end: endOfMonth(thisDay.subtract({ months: 1 })),\n },\n label: 'Last Month',\n }\n\n const thisYear = {\n value: {\n start: startOfYear(thisDay),\n end: endOfYear(thisDay),\n },\n label: 'This Year',\n }\n\n const lastYear = {\n value: {\n start: startOfYear(thisDay.subtract({ years: 1 })),\n end: endOfYear(thisDay.subtract({ years: 1 })),\n },\n label: 'Last Year',\n }\n\n const nextMonth = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 1 })),\n },\n label: 'Next Month',\n }\n\n const nextThreeMonths = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 3 })),\n },\n label: 'Next 3 Months',\n }\n\n const nextSixMonths = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 6 })),\n },\n label: 'Next 6 Months',\n }\n\n const nextYear = {\n value: {\n start: startOfYear(thisDay.add({ years: 1 })),\n end: endOfYear(thisDay.add({ years: 1 })),\n },\n label: 'Next Year',\n }\n\n const thisFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 11, days: fiscalStartDay }\n ),\n },\n label: 'This Fiscal Year',\n }\n\n const lastFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: 1 }),\n { months: fiscalStartMonth, days: fiscalStartDay - 1 }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: 1 }),\n { months: fiscalStartMonth + 11, days: fiscalStartDay }\n ),\n },\n label: 'Last Fiscal Year',\n }\n\n const F1 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 2, days: fiscalStartDay }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q1' : 'FQ1',\n }\n\n const F2 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 3, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 5, days: fiscalStartDay }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q2' : 'FQ2',\n }\n\n const F3 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 6, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 8, days: fiscalStartDay }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q3' : 'FQ3',\n }\n\n const F4 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 9, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay), { months: fiscalStartMonth + 11, days: fiscalStartDay }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q4' : 'FQ4',\n }\n\n const fiscalQuarters = [ F1, F2, F3, F4 ]\n const fiscalYears =\n fiscalStartMonth === 0 ? [] : [ thisFiscalYear, lastFiscalYear ]\n\n const quickDates = [\n thisWeek,\n lastWeek,\n thisMonth,\n lastMonth,\n thisYear,\n lastYear,\n nextMonth,\n nextThreeMonths,\n nextSixMonths,\n nextYear,\n ...fiscalYears,\n ]\n\n return { quickDates, fiscalQuarters }\n}\n","import React, { useMemo } from 'react'\nimport { CalendarDate } from '@internationalized/date'\nimport { any, equals, map } from 'ramda'\nimport { palette } from '@northlight/tokens'\nimport { Flex } from '../../../../flex'\nimport { Stack } from '../../../../stack'\nimport { Box } from '../../../../box'\nimport { DateButton } from './date-button'\nimport { validRange } from './utils'\nimport { Date, DateRangeValue, QuickSelectProps } from './types'\nimport { getQuickSelectOptions } from './get-quick-select-options'\n\nconst seperator = `1px solid ${palette.gray['100']}`\n\nexport const QuickSelect = ({\n state,\n fiscalStartMonth = 0,\n fiscalStartDay = 0,\n updateVisibleRange,\n locale = '',\n height = 'xs',\n}: QuickSelectProps) => {\n const { quickDates, fiscalQuarters } = useMemo(\n () => getQuickSelectOptions(state, locale, fiscalStartMonth, fiscalStartDay),\n []\n )\n\n const updateDate = (newDate: DateRangeValue) => () => {\n if (newDate) {\n state.setValue(newDate)\n state.setFocusedDate(newDate.start as CalendarDate)\n updateVisibleRange()\n }\n }\n\n const getIsActive = (newDate: Date) => equals(state.value, newDate.value)\n\n const shouldShow = (dates: Date[]) =>\n any((date) => validRange(date.value, state), dates)\n\n return (\n <Stack alignItems=\"start\" borderRight={ seperator } pt=\"2\">\n <Stack\n h={ height }\n overflowY=\"hidden\"\n pr=\"4\"\n _hover={ { overflowY: 'scroll' } }\n w=\"36\"\n display={ shouldShow(quickDates) ? 'initial' : 'none' }\n mb=\"4\"\n >\n { map(\n (quickDate) =>\n validRange(quickDate.value, state) && (\n <Box minH=\"20px\" key={ `quick-select-${quickDate.label}` }>\n <DateButton\n onClick={ updateDate(quickDate.value) }\n isActive={ getIsActive(quickDate) }\n >\n { quickDate.label }\n </DateButton>\n </Box>\n ),\n quickDates\n ) }\n </Stack>\n <Box\n w=\"50%\"\n borderTop={ seperator }\n display={ shouldShow(fiscalQuarters) ? 'initial' : 'none' }\n />\n <Flex\n justifyContent=\"space-between\"\n w=\"full\"\n pt=\"2\"\n pr=\"4\"\n display={ shouldShow(fiscalQuarters) ? 'flex' : 'none' }\n >\n { map(\n (quarter) =>\n validRange(quarter.value, state) && (\n <DateButton\n onClick={ updateDate(quarter.value) }\n isActive={ getIsActive(quarter) }\n key={ `quick-select-${quarter.label}` }\n >\n { quarter.label }\n </DateButton>\n ),\n fiscalQuarters\n ) }\n </Flex>\n </Stack>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { GregorianCalendar } from '@internationalized/date'\nimport { useLocale } from '@react-aria/i18n'\nimport { useRangeCalendarState } from '@react-stately/calendar'\nimport { useRangeCalendar } from '@react-aria/calendar'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { ChevronLeftSolid, ChevronRightSolid, ChevronSelectorVerticalSolid } from '@northlight/icons'\nimport { RangeCalendarProps } from './types'\nimport { Button } from '../../../button'\nimport { Label } from '../../../typography'\nimport { AdjustRange } from './quick-navigation/adjust-range'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { MonthButton } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { Icon } from '../../../icon'\nimport { RangeCalendarGrid } from './components/range-grid'\nimport { QuickSelect } from './quick-navigation/quick-select'\nimport { months } from './constants'\nimport { MonthSelect } from './date-select/month-select'\nimport { YearSelectRangeCalendar } from './date-select'\n\nexport const RangeCalendar = (props: RangeCalendarProps) => {\n const { locale } = useLocale()\n\n /*\n when setting custom focusedDate with visibleDuration > 1\n it does not update visibleRange accordingly,\n this boolean updateRange switches value of visibleDuration to 1,\n to compute visibleRange accurately, and then switch back to update UI\n */\n const [ updateRange, setUpdateRange ] = useState(false)\n\n const state = useRangeCalendarState({\n ...props,\n visibleDuration: { months: updateRange ? 1 : 2 },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n useEffect(() => {\n if (updateRange) {\n setUpdateRange(false)\n }\n }, [ updateRange ])\n\n const ref = useRef<HTMLDivElement>(null)\n const { rangeCalendarContainer } = useMultiStyleConfig('Calendar')\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n props,\n state,\n ref\n )\n\n const { fiscalStartMonth, fiscalStartDay, handleClose, resetDate, isClearable = true } = props\n\n return (\n <Box { ...calendarProps } ref={ ref } __css={ rangeCalendarContainer }>\n <Stack>\n <Flex gap={ 4 }>\n <QuickSelect\n state={ state }\n updateVisibleRange={ () => setUpdateRange(true) }\n locale={ locale }\n fiscalStartMonth={ fiscalStartMonth }\n fiscalStartDay={ fiscalStartDay }\n />\n <Stack>\n <HStack spacing={ 2 } alignSelf=\"center\">\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <Box w=\"52\">\n <Label textAlign=\"center\">\n { months[state.visibleRange.start.month - 1] } -{ ' ' }\n { months[state.visibleRange.start.month] }\n { ' ' }\n { state.visibleRange.end.year }\n </Label>\n </Box>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </HStack>\n <HStack alignItems=\"start\" spacing={ 4 }>\n <Stack>\n <HStack alignSelf=\"center\" spacing=\"0a\">\n <MonthSelect state={ state } offset={ 0 } />\n <YearSelectRangeCalendar state={ state } offset={ 0 } />\n <Icon as={ ChevronSelectorVerticalSolid } size=\"xs\" fontWeight=\"bold\" />\n </HStack>\n <RangeCalendarGrid state={ state } locale={ locale } />\n <AdjustRange state={ state } adjust=\"start\" />\n </Stack>\n <Stack>\n <HStack alignSelf=\"center\" spacing=\"0a\">\n <MonthSelect state={ state } offset={ 1 } />\n <YearSelectRangeCalendar state={ state } offset={ 1 } />\n <Icon as={ ChevronSelectorVerticalSolid } size=\"xs\" fontWeight=\"bold\" />\n </HStack>\n <RangeCalendarGrid\n state={ state }\n offset={ { months: 1 } }\n locale={ locale }\n />\n <AdjustRange state={ state } adjust=\"end\" />\n <HStack alignSelf=\"end\" pt=\"2\">\n { isClearable && (\n <Button onClick={ resetDate } variant=\"ghost\" size=\"sm\">\n Clear\n </Button>\n ) }\n <Button variant=\"brand\" onClick={ handleClose } size=\"sm\">\n Save\n </Button>\n </HStack>\n </Stack>\n </HStack>\n </Stack>\n </Flex>\n </Stack>\n </Box>\n )\n}\n","import React, { useRef } from 'react'\nimport { GregorianCalendar } from '@internationalized/date'\nimport { useLocale } from '@react-aria/i18n'\nimport { useRangeCalendarState } from '@react-stately/calendar'\nimport { useRangeCalendar } from '@react-aria/calendar'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { RangeCalendarProps } from './types'\nimport { Button } from '../../../button'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { MonthButton } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { Icon } from '../../../icon'\nimport { RangeCalendarGrid } from './components/range-grid'\nimport { QuickSelect } from './quick-navigation/quick-select'\nimport { MonthSelect, YearSelectRangeCalendar } from './date-select'\n\nexport const SimpleRangeCalendar = (props: RangeCalendarProps) => {\n const { locale } = useLocale()\n\n const state = useRangeCalendarState({\n ...props,\n visibleDuration: { months: 1 },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const ref = useRef<HTMLDivElement>(null)\n const { rangeCalendarContainer } = useMultiStyleConfig('Calendar')\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n props,\n state,\n ref\n )\n\n const { fiscalStartMonth, fiscalStartDay, handleClose, resetDate, isClearable = true } = props\n\n return (\n <Box { ...calendarProps } ref={ ref } __css={ rangeCalendarContainer }>\n <Stack>\n <Flex gap={ 4 }>\n <QuickSelect\n state={ state }\n updateVisibleRange={ () => {} }\n locale={ locale }\n fiscalStartMonth={ fiscalStartMonth }\n fiscalStartDay={ fiscalStartDay }\n height=\"72\"\n />\n <Stack>\n <HStack spacing={ 2 } alignSelf=\"center\">\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <HStack w=\"full\" justify=\"center\">\n <MonthSelect state={ state } offset={ 0 } />\n <YearSelectRangeCalendar state={ state } offset={ 0 } />\n </HStack>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </HStack>\n <Stack h=\"full\" justify=\"space-between\">\n <RangeCalendarGrid state={ state } locale={ locale } />\n <HStack alignSelf=\"end\" pt=\"2\">\n { isClearable && (\n <Button onClick={ resetDate } variant=\"ghost\" size=\"sm\">\n Clear\n </Button>\n ) }\n <Button variant=\"brand\" onClick={ handleClose } size=\"sm\">\n Save\n </Button>\n </HStack>\n </Stack>\n </Stack>\n </Flex>\n </Stack>\n </Box>\n )\n}\n","import { has, is } from 'ramda'\n\nexport const isValidDateRange = (value: unknown) => (\n is(Object, value) &&\n has('startDate', value) &&\n has('endDate', value) &&\n is(String, value.startDate) &&\n is(String, value.endDate)\n)\n","import React, { useRef } from 'react'\nimport { FocusScope } from '@react-aria/focus'\nimport { useDateRangePickerState } from '@react-stately/datepicker'\nimport { useDateRangePicker } from '@react-aria/datepicker'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity, isNil } from 'ramda'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { DateRange } from '@react-types/datepicker'\nimport { RangeCalendar } from '../components/calendar/quick-navigation'\nimport { P } from '../../typography'\nimport { HStack } from '../../stack'\nimport { DateRangePickerProps } from '../types'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { IconButton } from '../../icon-button'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Icon } from '../../icon'\nimport { SimpleRangeCalendar } from '../components/calendar/simple-range-calendar'\nimport { isValidDateRange } from '../date-picker-field/utils'\n\nconst parseValue = (value: any) => {\n if (!isValidDateRange(value)) return null\n return { start: parseDate(value.startDate), end: parseDate(value.endDate) }\n}\n\n/**\n * Popover to choose date range on format {startDate:' yyyy-mm-dd', endDate: 'yyyy-mm-dd'}\n *\n * @see DatePicker\n * @see DateRangePickerField\n * @see {@link https://northlight.dev/reference/date-range-picker}\n * @example (Example)\n * ## Advanced Mode\n * (Due to it being harder to setup normal date range picker,\n * the date range picker field is demoed,\n * here, you need to pass down and parse a value for the date range picker for it to work properly,\n * consult the date picker documentation and the source code for date range picker\n * field for appropiate use)\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField name=\"date\"/>\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## Simple mode\n * The previous example was the date range picker variant\n * for which we call advance, this one is a simpler version with the same core functionality:\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField name=\"date\" mode=\"simple\"/>\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## Sophisticated example\n * The `DateRangePickerField` can have **fiscalStartMonth** and **fiscalStartDay** as a `number`\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField\n * name=\"date\"\n * mode=\"advanced\"\n * variant=\"filled\"\n * fiscalStartMonth={3}\n * fiscalStartDay={5}\n * dateFormat=\"mm|dd-yyyy\"\n * minValue=\"2023-01-01\"\n * maxValue=\"2028-01-01\"\n * />\n * </Form>\n * ?)\n */\nexport const DateRangePicker = (props: DateRangePickerProps) => {\n const {\n isDisabled,\n isClearable = true,\n resetDate,\n isInvalid = false,\n dateFormat,\n fiscalStartMonth,\n fiscalStartDay,\n mode = 'advanced',\n variant = 'outline',\n onChange: onChangeCallback = identity,\n value,\n minValue = '1994-03-08',\n maxValue,\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const { group } = useMultiStyleConfig('DatePicker')\n const parsedProps = {\n onChange: (date: DateRange) => {\n onChangeCallback({\n startDate: date?.start.toString(),\n endDate: date?.end.toString(),\n })\n },\n value: parseValue(value) as ({ start: DateValue, end: DateValue }),\n minValue: isNil(minValue) ? undefined : parseDate(minValue) as DateValue,\n maxValue: isNil(maxValue) ? undefined : parseDate(maxValue) as DateValue,\n }\n\n const state = useDateRangePickerState({\n ...props,\n ...parsedProps,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const {\n groupProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDateRangePicker(\n {\n ...props,\n ...parsedProps,\n minValue: parsedProps.minValue || parseDate('1994-03-08'),\n },\n state,\n ref\n )\n\n const togglePopup = () => state.setOpen(!state.isOpen)\n\n const handleClose = () => {\n state.setOpen(false)\n }\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ handleClose }\n placement=\"bottom-start\"\n >\n <PopoverAnchor>\n <HStack>\n <InputGroup { ...groupProps } ref={ ref } __css={ group }>\n <StyledField isDisabled={ isDisabled } isInvalid={ isInvalid } variant={ variant }>\n <HStack\n paddingInlineStart=\"1a\"\n paddingInlineEnd={ 10 }\n >\n <DateField\n { ...startFieldProps }\n dateFormat={ dateFormat }\n />\n <P>-</P>\n <DateField\n { ...endFieldProps }\n dateFormat={ dateFormat }\n />\n </HStack>\n </StyledField>\n <InputRightElement>\n <Trigger\n { ...buttonProps }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ resetDate }\n hidden={ !isClearable }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n </PopoverAnchor>\n { state.isOpen && (\n <PopoverContent { ...dialogProps } ref={ ref } w=\"max-content\">\n <FocusScope contain={ true } restoreFocus={ true }>\n { mode === 'simple' && (\n <SimpleRangeCalendar\n { ...calendarProps }\n resetDate={ resetDate }\n handleClose={ handleClose }\n fiscalStartMonth={ fiscalStartMonth || 0 }\n fiscalStartDay={ fiscalStartDay || 0 }\n isClearable={ isClearable }\n />\n ) }\n {\n mode === 'advanced' && (\n <RangeCalendar\n { ...calendarProps }\n resetDate={ resetDate }\n handleClose={ handleClose }\n fiscalStartMonth={ fiscalStartMonth || 0 }\n fiscalStartDay={ fiscalStartDay || 0 }\n isClearable={ isClearable }\n />\n ) }\n </FocusScope>\n </PopoverContent>\n ) }\n </Popover>\n )\n}\n","import React from 'react'\nimport { all, isNil, not } from 'ramda'\nimport { InputGroup } from '../../components/input'\nimport { InputGroupWrapperProps } from './types'\n\nexport const InputGroupWrapper = ({\n inputLeftElement,\n inputRightElement,\n children,\n ...rest\n}: InputGroupWrapperProps) => {\n const containsInputGroupElement =\n not(all(isNil, [ inputLeftElement, inputRightElement ]))\n\n return containsInputGroupElement\n ? (\n <InputGroup { ...rest }>\n { inputLeftElement }\n { children }\n { inputRightElement }\n </InputGroup>\n )\n : <>{ children }</>\n}\n","import React from 'react'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { identity } from 'ramda'\nimport { DatePickerFieldProps } from '../types'\nimport { Field } from '../../form'\nimport { DatePicker } from '../date-picker/date-picker'\nimport { useFormContext } from '../../../hooks'\nimport { InputGroupWrapper } from '../../../internal-components/input-group-wrapper'\n\n/**\n * The <DatePicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see DatePicker\n * @see {@link https://northlight.dev/reference/date-picker-field}\n *\n * @example (Example)\n * ##Fill in your information:\n * (?\n * <Form initialValues={{date: null}}>\n * <DatePickerField name=\"date\" />\n * </Form>\n *\n * ?)\n * <br />\n * ###The simplest way\n * Using the date picker in a form is probably the easiest\n * way to use it, it will handle the state for you and you\n * can retrieve the date at the end as a string on format\n * yyyy-mm-dd on the onSubmit callback on <Form>\n *\n */\nexport const DatePickerField = ({\n name,\n minValue,\n maxValue,\n isRequired,\n direction = 'column',\n label,\n validate,\n firstDayOfWeek = 'monday',\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: DatePickerFieldProps) => {\n const { setValue, setError, trigger } = useFormContext()\n\n const handleChange = (date: DateValue) => {\n setValue(name, date?.toString())\n if ((minValue && date < parseDate(minValue)) || (maxValue && date > parseDate(maxValue))) {\n setError(name, {\n type: 'custom',\n message: minValue && maxValue\n ? `Date must be between ${minValue}-${maxValue}`\n : minValue\n ? `Select date earliest at ${minValue}`\n : `Select date latest at ${maxValue}`\n ,\n })\n } else {\n trigger(name)\n }\n onChangeCallback(date)\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <DatePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n resetDate={ () => onChange(null) }\n value={ value ? parseDate(value) as any : null }\n minValue={ minValue ? parseDate(minValue) as DateValue : undefined }\n maxValue={ maxValue ? parseDate(maxValue) as DateValue : undefined }\n validationState={ errors.name ? 'invalid' : 'valid' }\n { ...rest as any }\n />\n </InputGroupWrapper>\n ) }\n </Field>\n\n )\n}\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { DateRangePickerFieldProps, FormBody } from '../types'\nimport { Field } from '../../form'\nimport { DateRangePicker } from '../date-picker/date-range-picker'\nimport { useFormContext } from '../../../hooks'\n\n/**\n * The <DateRangePicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see DateRangePicker\n * @see {@link https://northlight.dev/reference/date-range-picker-field}\n *\n */\nexport const DateRangePickerField = ({\n name,\n minValue,\n maxValue,\n isRequired,\n direction = 'column',\n label,\n validate,\n firstDayOfWeek = 'monday',\n onChange: onChangeCallback = identity,\n isClearable = true,\n ...rest\n}: DateRangePickerFieldProps) => {\n const { setValue, setError, trigger } = useFormContext<FormBody>()\n\n const handleChange = (dateRange: { startDate: string, endDate: string }) => {\n setValue(name, dateRange)\n if (\n (minValue && dateRange?.startDate < minValue) ||\n (maxValue && dateRange?.endDate > maxValue)\n ) {\n setError(name, {\n type: 'custom',\n message:\n minValue && maxValue\n ? `Date must be between ${minValue}-${maxValue}`\n : minValue\n ? `Select date earliest at ${minValue}`\n : `Select date latest at ${maxValue}`,\n })\n } else {\n trigger(name)\n }\n onChangeCallback(dateRange)\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <DateRangePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n resetDate={ () => onChange(null) }\n value={ value }\n minValue={ minValue }\n maxValue={ maxValue }\n validationState={ errors.name ? 'invalid' : 'valid' }\n isClearable={ isClearable }\n { ...(rest as any) }\n />\n ) }\n </Field>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { coreZIndex } from '@northlight/tokens'\nimport { FocusScope } from '@react-aria/focus'\nimport { Flex } from '../flex'\nimport { Slide } from '../transitions'\nimport { Box } from '../box'\nimport { Portal } from '../portal'\nimport { ToolboxProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\n\n/**\n * Controllable Sidebar drawer\n * @see Slide\n * @see {@link https://northlight.dev/reference/toolbox}\n * @example\n * (?\n *() => {\n const { isOpen, onOpen, onClose } = useDisclosure()\n return (\n <Flex>\n <Button onClick={ onOpen } w=\"full\">\n Open Toolbox\n </Button>\n <Toolbox isOpen={ isOpen } onClose={ onClose } size=\"md\">\n <ToolboxHeader>Title</ToolboxHeader>\n <ToolboxContent>\n <Stack>\n <Input />\n <Input />\n </Stack>\n </ToolboxContent>\n <ToolboxFooter justifyContent=\"end\" gap=\"2\">\n <Button variant=\"ghost\">Cancel</Button>\n <Button variant=\"brand\">Save</Button>\n </ToolboxFooter>\n </Toolbox>\n </Flex>\n )\n }\n * ?)\n */\nexport const Toolbox = ({\n isOpen = false,\n children,\n direction = 'right',\n shouldPush = false,\n size = 'md',\n width,\n onClose,\n autoFocus = true,\n ...rest\n}: ToolboxProps) => {\n const { container } = useMultiStyleConfig('Toolbox', { size })\n\n const newChildren = getChildrenWithProps(children, { onClose }, (_child, i) => i === 0)\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n onClose?.()\n }\n }\n\n const toolboxWidth = (width ?? container.w) as string\n\n return (\n <Box w={ toolboxWidth } display={ isOpen && shouldPush ? 'initial' : 'none' }>\n <Portal>\n <Slide\n direction={ direction }\n in={ isOpen }\n style={ {\n height: container.h as string,\n width: toolboxWidth,\n zIndex: coreZIndex.overlay,\n } }\n >\n <Flex sx={ { ...container, w: toolboxWidth } } { ...rest } onKeyDown={ handleKeyDown }>\n <FocusScope autoFocus={ autoFocus }>\n { newChildren }\n </FocusScope>\n </Flex>\n </Slide>\n </Portal>\n </Box>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { CloseButton } from '../close-button'\nimport { Flex } from '../flex'\nimport { ToolboxHeaderProps } from './types'\nimport { H3 } from '../typography'\n\n/**\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-header}\n *\n */\nexport const ToolboxHeader = ({\n children,\n onClose,\n ...rest\n}: ToolboxHeaderProps) => {\n const { header } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex sx={ header } { ...rest }>\n { typeof children === 'string' ? <H3>{ children }</H3> : children }\n <CloseButton\n aria-label=\"Close toolbox\"\n position=\"fixed\"\n right={ 4 }\n onClick={ onClose }\n />\n </Flex>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { Flex } from '../flex'\nimport { ToolboxContentProps } from './types'\n\n/**\n * Main content of toolbox drawer\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-content}\n */\nexport const ToolboxContent = ({ children, ...rest }: ToolboxContentProps) => {\n const { body } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex\n sx={ body }\n { ...rest }\n >\n { children }\n </Flex>\n )\n}\n","import { useMultiStyleConfig } from '@chakra-ui/system'\nimport React from 'react'\nimport { Flex } from '../flex'\nimport { ToolboxFooterProps } from './types'\n\n/**\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-footer}\n */\nexport const ToolboxFooter = ({ children, ...rest }: ToolboxFooterProps) => {\n const { footer } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex sx={ footer } { ...rest }>\n { children }\n </Flex>\n )\n}\n","import React from 'react'\nimport { Radio as ChakraRadio } from '@chakra-ui/react'\nimport { RadioProps } from './types'\n\n/**\n * @see RadioGroup\n * @see {@link https://northlight.dev/reference/radio}\n */\nexport const Radio = ({\n size = 'md',\n onChange,\n name,\n value,\n ...rest\n}: RadioProps) => (\n <ChakraRadio\n size={ size }\n id={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { RadioGroup as ChakraRadioGroup } from '@chakra-ui/react'\nimport { RadioGroupProps } from './types'\nimport { Stack } from '../stack'\n\n/**\n * Wrapper to select one of multiple options\n * @see {@link https://northlight.dev/reference/radio-group}\n * @example\n * (?\n <RadioGroup>\n <HStack>\n <Radio value=\"1\" />\n <Radio value=\"2\" />\n <Radio value=\"3\" />\n </HStack>\n </RadioGroup>\n * ?)\n *\n */\nexport const RadioGroup = ({\n direction = 'row',\n children,\n name,\n ...rest\n}: RadioGroupProps) => (\n <ChakraRadioGroup name={ name } id={ name } { ...rest }>\n <Stack direction={ direction }>{ children }</Stack>\n </ChakraRadioGroup>\n)\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { RadioFieldGroupProps } from './types'\nimport { Field } from '../form'\nimport { RadioGroup } from './radio-group'\nimport { Box } from '../box'\n\n/**\n * The radio group component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see RadioGroup\n * @see Radio\n * @see {@link https://northlight.dev/reference/radio-group-field}\n *\n */\nexport const RadioGroupField = ({\n name,\n label,\n children,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: RadioFieldGroupProps) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <RadioGroup\n name={ name }\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n direction={ direction }\n value={ value }\n data-testid=\"radio-group-field-test-id\"\n { ...rest }\n >\n { children }\n </RadioGroup>\n ) }\n </Field>\n </Box>\n)\n","export const carouselItemWidth = 150\nexport const carouselItemSpacing = 60\n","import React from 'react'\nimport { motion } from 'framer-motion'\nimport { Center } from '../center'\nimport { carouselItemWidth } from './constants'\nimport { CarouselItemProps } from './types'\n\nconst variants = {\n active: { scale: 1.15, opacity: 1 },\n inActive: { scale: 0.95, opacity: 0.7 },\n}\n\nexport const CarouselItem = ({\n children,\n isActive = false,\n itemWidth = carouselItemWidth,\n itemHeight = carouselItemWidth,\n}: CarouselItemProps) => (\n <motion.div animate={ isActive ? 'active' : 'inActive' } variants={ variants }>\n <Center minW={ `${itemWidth}px` } h={ `${itemHeight}px ` }>\n { children }\n </Center>\n </motion.div>\n)\n","import React from 'react'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Center } from '../center'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { CarouselArrowProps } from './types'\n\nexport const CarouselArrow = ({\n onClick,\n direction,\n ...rest\n}: CarouselArrowProps) => {\n const { arrow } = useMultiStyleConfig('Carousel', {})\n\n return (\n <Center\n sx={ arrow }\n onClick={ onClick }\n { ...rest }\n >\n <IconButton aria-label={ `move carousel to ${direction}` } variant=\"ghost\" size=\"lg\">\n <Icon as={ direction === 'right' ? ChevronRightSolid : ChevronLeftSolid } />\n </IconButton>\n </Center>\n )\n}\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { animate, motion, useMotionValue } from 'framer-motion'\nimport { identity } from 'ramda'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../box'\nimport { HStack } from '../stack'\nimport { Radio, RadioGroup } from '../radio'\nimport { CarouselItem } from './carousel-item'\nimport { CarouselArrow } from './carousel-arrow'\nimport { carouselItemSpacing, carouselItemWidth } from './constants'\nimport { CarouselProps } from './types'\n\n/**\n * Easiely one of the fanciest components, horizontal carousel wrapper for anything\n *\n * @see {@link https://northlight.dev/reference/carousel}\n *\n * @example (Example)\n * The carousel takes up 100% of its parents container width and height.\n * It then renders all children div into a draggable div using framer-motion\n\n * (?\n * +\n *const Item = ({ name, ...rest }) => (\n <Center color=\"white\" bg=\"teal.500\" rounded=\"md\" w=\"full\" h=\"full\" { ...rest }>\n { name }\n </Center>\n)\n\nconst MyCarousel = () => (\n<Box h=\"300px\">\n <Carousel>\n <Item name=\"Item 1\" />\n <Item name=\"Item 2\" />\n <Item name=\"Item 3\" />\n </Carousel>\n</Box>\n\n)\n\nrender(<MyCarousel />)\n *\n * ?)\n *\n * @example (Example)\n * ##Controling the carousel state\n * The carousel takes an **onChange** and value\n * (which is the index of the current active element), meaning it can be controlled.\n *\n * (?\n * +\n * const Item = ({ name, ...rest }) => (\n <Center color=\"white\" bg=\"teal.500\" rounded=\"md\" w=\"full\" h=\"full\" { ...rest }>\n { name }\n </Center>\n)\n\nconst MyCarousel = () => {\n const [index, setIndex ] = useState(0)\n return (\n\n <VStack\n borderColor=\"border.default\"\n borderWidth=\"st.border.width.sm\" borderStyle=\"solid\" p=\"2\" borderRadius=\"st.border.radius.lg\">\n <Box w=\"full\" h=\"sm\">\n <Carousel\n showArrows={ false }\n showRadio={ false }\n value={ index }\n onChange={ (v) => setIndex(v) }\n >\n <Item name=\"Item 1\" />\n <Item name=\"Item 2\" />\n <Item name=\"Item 3\" />\n </Carousel>\n </Box>\n <FlipButtonGroup\n onChange={ (v) => setIndex(parseInt(v, 10)) }\n value={ `${index}` }\n variant=\"brand\"\n >\n <FlipButton value=\"0\">One</FlipButton>\n <FlipButton value=\"1\">Two</FlipButton>\n <FlipButton value=\"2\">Three</FlipButton>\n </FlipButtonGroup>\n </VStack>\n )\n}\n*\nrender(<MyCarousel/>)\n * ?)\n *(You can also hide the default\n navigational arrows and radio button using <b>showArrows</b> and\n <b>showRadio</b> as in example)\n */\nexport const Carousel = ({\n children,\n showArrows = true,\n showRadio = true,\n value: controlledIndex = 0,\n onChange = identity,\n itemWidth = carouselItemWidth,\n itemHeight = carouselItemWidth,\n spacing = carouselItemSpacing,\n carouselStyles = {},\n ...rest\n}: CarouselProps) => {\n const [ dragging, setDragging ] = useState(false)\n const [ containerWidth, setContainerWidth ] = useState(0)\n const [ activeIndex, setActiveIndex ] = useState(0)\n const x = useMotionValue(0)\n const { radio, container } = useMultiStyleConfig('Carousel', {})\n\n const childrenAsArray = Children.toArray(children) as JSX.Element[]\n const numberOfChildren = Children.count(children)\n const carouselTotalWidth = itemWidth + spacing\n const totalWidth = carouselTotalWidth * numberOfChildren\n\n const containerRef = useRef<any>(null)\n\n useEffect(() => {\n setContainerWidth(containerRef.current.clientWidth)\n }, [])\n\n const getNewX = () => -(activeIndex * carouselTotalWidth)\n\n const updateActiveIndex = () => {\n setActiveIndex(Math.abs(Math.round(x.get() / carouselTotalWidth)))\n }\n\n useEffect(() => {\n animate(x, getNewX())\n onChange(activeIndex)\n }, [ activeIndex ])\n\n useEffect(() => {\n setActiveIndex(controlledIndex)\n }, [ controlledIndex ])\n\n const handleRightArrowClick = () => {\n setActiveIndex((prev) =>\n (activeIndex === numberOfChildren - 1 ? 0 : prev + 1)\n )\n }\n\n const handleLeftArrowClick = () => {\n setActiveIndex((prev) =>\n (activeIndex === 0 ? numberOfChildren - 1 : prev - 1)\n )\n }\n\n return (\n <Box\n cursor={ dragging ? 'grabbing' : 'grab' }\n onMouseDown={ () => setDragging(true) }\n onMouseUp={ () => setDragging(false) }\n ref={ containerRef }\n pl={ `${(containerWidth - itemWidth) / 2}px` }\n sx={ container }\n { ...rest }\n >\n <motion.div\n drag=\"x\"\n style={ {\n width: `${totalWidth}px`,\n height: '100%',\n x,\n } }\n dragConstraints={ { right: 0, left: -(totalWidth - itemWidth) } }\n onDragEnd={ updateActiveIndex }\n >\n <HStack\n spacing={ `${spacing}px` }\n width={ `${totalWidth}px` }\n h=\"full\"\n { ...carouselStyles }\n >\n { childrenAsArray.map((child, index) => (\n <CarouselItem\n isActive={ index === activeIndex }\n itemWidth={ itemWidth }\n itemHeight={ itemHeight }\n key={ `carousel-item-${index as number}` }\n >\n { child }\n </CarouselItem>\n )) }\n </HStack>\n </motion.div>\n { showRadio && (\n <RadioGroup\n onChange={ (val) => setActiveIndex(parseInt(val, 10)) }\n value={ `${activeIndex}` }\n sx={ radio }\n >\n <HStack>\n { childrenAsArray.map((_child, i) => (\n <Radio\n value={ `${i}` }\n size=\"lg\"\n key={ `carousel-radio-${i as number}` }\n />\n )) }\n </HStack>\n </RadioGroup>\n ) }\n { showArrows && (\n <>\n <CarouselArrow\n direction=\"left\"\n onClick={ handleLeftArrowClick }\n left=\"2\"\n />\n <CarouselArrow\n direction=\"right\"\n onClick={ handleRightArrowClick }\n right=\"2\"\n />\n </>\n ) }\n </Box>\n )\n}\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { merge } from 'ramda'\nimport { getContrastColor } from '../../utils'\n\nexport const searchBarStyles = (\n sx: ChakraStylesConfig<any>\n): ChakraStylesConfig<any> =>\n merge({\n container: (provided) => ({\n ...provided,\n width: '100%',\n color: 'text.default',\n alignSelf: 'center',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isFocused && 'background.select.option-focus',\n _active: {\n background: 'background.select.option-active',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n }),\n downChevron: (provided) => ({\n ...provided,\n color: 'icon.select.default',\n }),\n placeholder: (provided) => ({\n ...provided,\n color: 'text.select.placeholder',\n }),\n multiValue: (provided, state) => {\n const background = state.data.isFixed\n ? 'background.select.option-disabled'\n : state.data.color ?? provided.bgColor\n return {\n ...provided,\n bgColor: background,\n color: getContrastColor(background),\n ...sx.multiValue,\n }\n },\n menuList: (provided) => ({\n ...provided,\n bgColor: 'background.default',\n }),\n } as ChakraStylesConfig<any>, sx)\n","import React from 'react'\nimport {\n DropdownIndicatorProps,\n GroupBase,\n MultiValueGenericProps,\n OptionProps,\n chakraComponents,\n} from 'chakra-react-select'\nimport { Icon } from '../icon'\nimport { SearchBarOptionType } from './types'\n\nexport function getComponents<T extends SearchBarOptionType> () {\n return {\n DropdownIndicator: (props: DropdownIndicatorProps<T>) => (\n props.selectProps.icon\n ? (\n <chakraComponents.DropdownIndicator { ...props }>\n <Icon as={ props.selectProps.icon } />\n </chakraComponents.DropdownIndicator>\n )\n : (\n <chakraComponents.DropdownIndicator { ...props } />\n )\n ),\n Option: (props: OptionProps<T>) =>\n (props.selectProps.customOption\n ? (\n <chakraComponents.Option { ...props }>\n { props.selectProps.customOption(props.data) }\n </chakraComponents.Option>\n )\n : <chakraComponents.Option { ...props } />\n ),\n MultiValueContainer: (\n props: MultiValueGenericProps<T, boolean, GroupBase<T>>\n ) =>\n (props.selectProps.customTag\n ? (\n <chakraComponents.MultiValueContainer { ...props }>\n { props.selectProps.customTag(props.data) }\n </chakraComponents.MultiValueContainer>\n )\n : <chakraComponents.MultiValueContainer { ...props } />\n ),\n }\n}\n","import React, { forwardRef, useMemo, useState } from 'react'\nimport {\n AsyncSelect,\n GroupBase,\n InputActionMeta,\n SelectInstance,\n} from 'chakra-react-select'\nimport { filter, identity, is, test, toLower } from 'ramda'\nimport { SearchDuo } from '@northlight/icons'\nimport { createDebounceFunctionInstance } from '../../utils'\nimport { searchBarStyles } from './styles'\nimport { useSelectCallbacks } from '../../hooks'\nimport { Box } from '../box'\nimport { SearchBarOptionType, SearchBarProps } from './types'\nimport { getComponents } from './get-components'\n\nexport const SearchBar = forwardRef(\n <T extends SearchBarOptionType>({\n defaultOptions = [],\n isMulti = false,\n customOption = null,\n customTag = null,\n sx = {},\n debouncedWaitTime = 200,\n loadOptions: getCustomOptions = null,\n clearInputOnSelect = true,\n closeMenuOnSelect = false,\n onChange = identity,\n onAdd = identity,\n onRemove = identity,\n 'data-testid': testId,\n value,\n onSearchInputChange = identity,\n icon = SearchDuo,\n ...rest\n }: SearchBarProps<T>,\n ref: React.Ref<SelectInstance<T, boolean, GroupBase<T>>>\n ) => {\n const [ filtered, setFiltered ] = useState(defaultOptions)\n const [ filterInput, setFilterInput ] = useState('')\n const debounceFunction = useMemo(\n () => createDebounceFunctionInstance(debouncedWaitTime),\n [ debouncedWaitTime ]\n )\n const handleChange = useSelectCallbacks<T>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? value as T[] : [],\n })\n const customComponents = getComponents<T>()\n\n const simpleFilter = (query: string) => (\n filter(\n (option: T) =>\n test(new RegExp(toLower(query), 'g'), toLower(option.label)),\n defaultOptions\n )\n )\n\n const getOptions = async (query: string) => {\n const newOptions = getCustomOptions\n ? await getCustomOptions(query)\n : simpleFilter(query)\n setFiltered(newOptions)\n\n return newOptions\n }\n\n const loadOptions = debounceFunction(async (\n query: string,\n callback: (options: T[]) => void\n ) => {\n const newOptions = await getOptions(query)\n callback(newOptions)\n return []\n })\n\n const resetFiltered = (v: string, { action }: InputActionMeta) => {\n if (clearInputOnSelect || action !== 'set-value') {\n setFilterInput(v)\n onSearchInputChange(v)\n if (v === '') {\n setFiltered(defaultOptions)\n }\n }\n }\n\n return (\n <Box w=\"full\" data-testid={ testId }>\n <AsyncSelect\n cacheOptions={ true }\n defaultOptions={ filtered }\n loadOptions={ loadOptions }\n onChange={ handleChange }\n placeholder=\"Search...\"\n chakraStyles={ searchBarStyles(sx) }\n isMulti={ isMulti }\n useBasicStyles={ true }\n selectedOptionStyle=\"check\"\n hideSelectedOptions={ false }\n closeMenuOnSelect={ closeMenuOnSelect }\n isClearable={ false }\n onInputChange={ resetFiltered }\n inputValue={ filterInput }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n ref={ ref }\n value={ value }\n { ...rest }\n />\n </Box>\n )\n }\n)\n","import React from 'react'\nimport { FieldValues } from 'react-hook-form'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity, isEmpty } from 'ramda'\nimport { SearchBarFieldProps, SearchBarOptionType } from './types'\nimport { Field } from '../form'\nimport { SearchBar } from './search-bar'\nimport { HStack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\nexport const SearchBarField = <T extends SearchBarOptionType> ({\n name,\n label,\n direction = 'column',\n isMulti,\n isRequired,\n validate,\n isClearable = true,\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: SearchBarFieldProps<T>) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <SearchBar\n name={ name }\n isMulti={ isMulti }\n onChange={ (values: FieldValues, event) => {\n onChange(\n isMulti\n ? values\n : values.value\n )\n onChangeCallback(values as T | T[], event)\n } }\n value={ value }\n { ...rest }\n />\n </InputGroupWrapper>\n <IconButton\n aria-label={ `${name}-close-button` }\n variant=\"danger\"\n size=\"lg\"\n fontSize=\"sm\"\n hidden={ isEmpty(value) || !isClearable }\n onClick={ () => onChange([]) }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n","import React from 'react'\nimport { DndContext, DndContextProps } from '@dnd-kit/core'\n\n/**\n * Context used for all drag and drop components\n * (Based on dnd-kit)\n * @see Draggable\n * @see Droppable\n * @see {@link https://northlight.dev}\n * @see {@link https://dndkit.com/}\n *\n */\nexport const DragAndDrop = (props: DndContextProps) => (\n <DndContext { ...props } />\n)\n","import React, { forwardRef } from 'react'\nimport { Tag as ChakraTag } from '@chakra-ui/react'\nimport { TagProps } from './types'\n\n/**\n * @see TagGroup\n * @see {@link https://northlight.dev/reference/tag}\n *\n * @example\n * (? <Tag>Brand 1</Tag> ?)\n *\n * @example\n * (?\n * <Tag>\n <TagLeftIcon>\n <Icon as={ StackSolid } />\n </TagLeftIcon>\n <TagLabel>Left Icon</TagLabel>\n </Tag>\n * ?)\n *\n*/\nexport const Tag = forwardRef(({\n children,\n variant = 'solid',\n bgColor,\n colorScheme,\n ...rest\n}: TagProps, ref: any) => (\n <ChakraTag\n bgColor={ bgColor }\n colorScheme={ colorScheme }\n ref={ ref }\n variant={ variant }\n { ...rest }\n >\n { children }\n </ChakraTag>\n))\n","import React from 'react'\nimport { OverflowIndicatorProps } from './types'\nimport { Tag } from './tag'\n\nexport const OverflowIndicator = ({\n nbrRemainingTags,\n}: OverflowIndicatorProps) => (\n <Tag variant=\"subtle\" minW=\"max-content\">\n +{ nbrRemainingTags }\n </Tag>\n)\n","import React, { useState } from 'react'\nimport { HStack } from '../stack'\nimport { OverflowGroup, useOverflowGroup } from '../overflow-group'\nimport { TagGroupProps } from './types'\nimport { OverflowIndicator as DefaultOverflowIndicator } from './overflow-indicator'\n\n/**\n * Used when rending multiple tags in limited container for responsive layout\n * @see Tag\n * @see {@link https://northlight.dev/reference/tag-group}\n *\n * @example\n * ##Try resizing the window!\n * (?\n <TagGroup w=\"full\"\n borderWidth=\"st.border.width.sm\"\n borderColor=\"border.default\"\n borderStyle=\"solid\"\n p=\"2\"\n borderRadius=\"md\"\n >\n { Array.from({length: 20}, (_, i) => i).map((i) => (\n <Tag w=\"max-content\" key={ i }>Brand-{ i }</Tag>\n )) }\n </TagGroup>\n * ?)\n *\n *\n */\nexport const TagGroup = ({\n children,\n max = Infinity,\n spacing = '2',\n OverflowIndicator = DefaultOverflowIndicator,\n ...rest\n}: TagGroupProps) => {\n const [ nbrRemainingTags, setNbrRemainingTags ] = useState(0)\n const { rect, containerRef } = useOverflowGroup()\n\n return (\n <HStack\n bgColor=\"background.default\"\n ref={ containerRef }\n overflow=\"hidden\"\n { ...rest }\n >\n <HStack spacing={ spacing }>\n <OverflowGroup max={ max } onChange={ setNbrRemainingTags } rect={ rect }>\n { children }\n </OverflowGroup>\n </HStack>\n { nbrRemainingTags > 0 && (\n <OverflowIndicator nbrRemainingTags={ nbrRemainingTags } />\n ) }\n </HStack>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { DotsMatrixSolid } from '@northlight/icons'\nimport { Tag, TagLabel, TagRightIcon } from '../tag'\nimport { Icon } from '../icon'\nimport { DragItemProps } from './types'\n\n/**\n * Default draggable item none other provided in SortableList and MultiSort.\n * Renders a tag which can be used under the DragAndDrop context\n * @see DragAndDrop\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/drag-item}\n *\n * @example (Example)\n * (?\n * <DragItem itemLabel=\"Option 1\" bgColor=\"bg.filled\" />\n * ?)\n *\n */\nexport const DragItem = forwardRef(({\n size = 'md',\n isDragging,\n itemLabel = 'Drag Me',\n bgColor,\n ...rest\n}: DragItemProps, ref) => (\n <Tag\n ref={ ref }\n cursor={ isDragging ? 'grabbing' : 'grab' }\n bgColor={ bgColor || (isDragging ? 'blue.200' : undefined) }\n size={ size }\n minW=\"max-content\"\n { ...rest }\n >\n <TagLabel>{ itemLabel }</TagLabel>\n <TagRightIcon>\n <Icon as={ DotsMatrixSolid } />\n </TagRightIcon>\n </Tag>\n)\n)\n","import React, { cloneElement, isValidElement } from 'react'\nimport { useDraggable } from '@dnd-kit/core'\nimport { CSS } from '@dnd-kit/utilities'\nimport { Box } from '../box'\nimport { DraggableProps } from './types'\nimport { DragItem } from './drag-item'\nimport { ring } from '../../utils'\n\n/**\n * Will turn it's childen into a draggable component when under DragAndDrop context\n * @see {@link https://northlight.dev/reference/draggable}\n *\n * @example (Example)\n * ##Basic exapmle\n * (?\n * <DragAndDrop>\n * <HStack>\n * <Draggable id=\"random-id\" />\n * <Draggable />\n * </HStack>\n * </DragAndDrop>\n * ?)\n * <br />\n * (Notice that the id prop is required)\n *\n * @example (Example)\n * ## With custom children\n *\n * (?\n * <DragAndDrop>\n * <Box p=\"4\">\n * <Draggable id=\"random-id\">\n * <Center\n * boxSize=\"3xs\"\n * boxShadow=\"xl\"\n * borderRadius=\"st.border.radius.lg\"\n * bgColor=\"bg.overlayer\"\n * >I am draggable</Center>\n * </Draggable>\n * </Box>\n *\n * </DragAndDrop>\n * ?)\n *\n *\n */\nexport const Draggable = ({\n itemLabel,\n children,\n disableDrag = false,\n ...rest\n}: DraggableProps) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n isDragging,\n ...props\n } = useDraggable({ ...rest })\n if (!listeners) {\n return (\n <DragItem itemLabel={ itemLabel } />\n )\n }\n\n const childrenWithDragCursor = isValidElement(children)\n ? cloneElement(children as JSX.Element, {\n cursor: isDragging ? 'grabbing' : 'grab',\n })\n : children\n\n const dragEventListeners = !disableDrag && listeners\n\n return (\n <Box\n ref={ setNodeRef }\n { ...attributes }\n transform={ CSS.Translate.toString(transform) }\n _focusVisible={ ring }\n tabIndex={ disableDrag ? -1 : 0 }\n w=\"max-content\"\n { ...dragEventListeners }\n >\n { typeof childrenWithDragCursor === 'function'\n ? childrenWithDragCursor(listeners, props)\n : childrenWithDragCursor || (\n <DragItem isDragging={ isDragging } itemLabel={ itemLabel } />\n ) }\n </Box>\n )\n}\n","import React from 'react'\nimport { useDroppable } from '@dnd-kit/core'\nimport { Box } from '../box'\nimport { Center } from '../center'\nimport { DroppableProps } from './types'\n\n/**\n * Wrapper where you can style a container to place draggable elements\n * @see DropZone\n * @see Draggable\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/droppable}\n *\n * @example (Example)\n * ## Move the item into the container\n * (?\n * () => {\n * const [ isDropped, setIsDropped ] = useState(false)\n * const handleDragEnd = (e) => {\n * setIsDropped(e.over && e.over.id === 'droppable')\n * }\n *\n * return (\n * <DragAndDrop onDragEnd={handleDragEnd}>\n * <HStack>\n * {!isDropped && <Draggable id=\"draggable\" />}\n * <Droppable id=\"droppable\">\n * <Center bgColor=\"bg.filled\" boxSize=\"3xs\">\n * {isDropped ? <Draggable id=\"draggable\"/> : <P>Drop here!</P>}\n * </Center>\n * </Droppable>\n * </HStack>\n *\n * </DragAndDrop>\n *\n * )\n *\n *\n * }\n * ?)\n *\n */\nexport const Droppable = ({ children, ...rest }: DroppableProps) => {\n const { setNodeRef, ...props } = useDroppable({\n ...rest,\n })\n return (\n <Box ref={ setNodeRef }>\n { typeof children === 'function'\n ? children(props)\n : children || <Center>Drop here</Center> }\n </Box>\n )\n}\n","import React from 'react'\nimport { SortableContext, SortableContextProps } from '@dnd-kit/sortable'\n\n/**\n * Wrapper that provides context for sortable elements using DnD-kit\n * @see DragAndDrop\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev}\n * @see {@link https://docs.dndkit.com/presets/sortable/sortable-context}\n * @example\n * **<a href=\"https://docs.dndkit.com/presets/sortable/sortable-context\" target=\"_blank\">Read more on dnd-docs</a>**\n * */\nexport const Sortable = (props: SortableContextProps) => (\n <SortableContext { ...props } />\n)\n","import React, { PointerEvent, cloneElement, isValidElement, useRef } from 'react'\nimport { useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { Box } from '../box'\nimport { DragItem } from './drag-item'\nimport { ring } from '../../utils'\nimport { SortableItemProps } from './types'\n\n/**\n * Renders a draggable item under sortable context\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/sortable-item}\n *\n * @example\n * (? <SortableItem id=\"sortable-1\"/> ?)\n * */\nexport const SortableItem = ({\n itemLabel = 'Drag me',\n dblClickThreshold = 300,\n children,\n disableDrag = false,\n ...rest\n}: SortableItemProps) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n ...props\n } = useSortable({ ...rest })\n if (!listeners) {\n return (\n <DragItem itemLabel={ itemLabel } />\n )\n }\n\n const timeStampSnapchot = useRef(0)\n const inEditMode = useRef(false)\n const { onPointerDown, onKeyDown } = listeners\n const handlePointerDown = (e: PointerEvent<Element>) => {\n const elapsedTime = e.timeStamp - timeStampSnapchot.current\n if (elapsedTime > dblClickThreshold) {\n inEditMode.current = true\n onPointerDown(e)\n } else {\n inEditMode.current = false\n }\n timeStampSnapchot.current = e.timeStamp\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>) => {\n if (inEditMode.current) {\n onKeyDown(e)\n }\n }\n\n const style = {\n transform: CSS.Translate.toString(transform),\n transition,\n }\n\n const childrenWithDragCursor = isValidElement(children)\n ? cloneElement(children as JSX.Element, {\n cursor: isDragging ? 'grabbing' : 'grab',\n })\n : children\n\n const dragEventListeners = !disableDrag && {\n onPointerDown: handlePointerDown,\n onKeyDown: handleKeyDown,\n }\n\n return (\n <Box\n ref={ setNodeRef }\n sx={ style }\n { ...attributes }\n _focusVisible={ ring }\n tabIndex={ disableDrag ? -1 : 0 }\n borderRadius=\"tag.default\"\n { ...dragEventListeners }\n >\n { (\n typeof childrenWithDragCursor === 'function'\n ? childrenWithDragCursor(listeners, props)\n : childrenWithDragCursor\n ) || <DragItem isDragging={ isDragging } itemLabel={ itemLabel } />\n }\n </Box>\n )\n}\n","import React from 'react'\nimport { DragDuo } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { DragHandleProps } from './types'\n\n/**\n * Util component to display drag handle icon\n * for draggable react components under DragAndDrop context\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/drag-handle}\n *\n * @example (Example)\n * (?\n * <DragHandle />\n * ?)\n */\nexport const DragHandle = ({ icon, isDragging, ...rest }: DragHandleProps) => (\n <Icon\n as={ icon || DragDuo }\n cursor={ isDragging ? 'grabbing' : 'grab' }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Stack } from '../stack'\nimport { Droppable } from './droppable'\nimport { DropZoneProps } from './types'\n\n/**\n * Prestyled droppable area to drop draggable components,\n * you can override the styles of dropzone with sx prop\n * @see Draggable\n * @see Droppable\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/drop-zone}\n *\n * @example (Example)\n * ## You can drop draggable components\n * (?\n * <DragAndDrop>\n * <DropZone name=\"random-id-2\"><Draggable id=\"test\"/></DropZone>\n * </DragAndDrop>\n * ?)\n */\nexport const DropZone = ({ sx = {}, name, children, ...rest }: DropZoneProps) => {\n const { dropZone } = useMultiStyleConfig('DragAndDrop', { sx })\n return (\n <Droppable id={ name }>\n <Stack sx={ dropZone } { ...rest }>\n { children }\n </Stack>\n </Droppable>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport {\n DragOverEvent,\n KeyboardSensor,\n PointerSensor,\n UniqueIdentifier,\n rectIntersection,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport { arrayMove, sortableKeyboardCoordinates } from '@dnd-kit/sortable'\nimport { indexOf, insert, keys, remove } from 'ramda'\nimport { DragAndDrop } from './drag-and-drop'\nimport { MultiItemType, MultiSortProps } from './types'\n\n/**\n * Util component for sorting items in two dimensions(container and order in container)\n * @see SortableList\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/multi-sort}\n *\n * @example\n * (?\n * () => {\n const [ multiItems, setMultiItems ] = useState({\n container1: [\n 'JavaScript',\n 'Python',\n 'Front end',\n 'Back end',\n ],\n container2: [ 'HTML', 'CSS' ],\n container3: [ 'Chakra UI', 'Next.js', 'Tailwind UI' ],\n })\n return (\n <Stack>\n <MultiSort\n items={ multiItems }\n onChange={ (items) => setMultiItems(items) }\n >\n { (items, activeId) => (\n <HStack alignItems=\"start\">\n <VStack>\n <Heading size=\"sm\">I like</Heading>\n <DropZone name=\"container1\">\n <SortableContainer items={ items.container1 } />\n </DropZone>\n </VStack>\n <VStack>\n <Heading size=\"sm\">I don't like</Heading>\n <DropZone name=\"container2\">\n <SortableContainer items={ items.container2 } />\n </DropZone>\n </VStack>\n <VStack>\n <Heading size=\"sm\">Neutral</Heading>\n <DropZone name=\"container3\">\n <SortableContainer items={ items.container3 } />\n </DropZone>\n </VStack>\n <DragOverlay>\n { activeId ? (\n <DragItem\n itemLabel={ activeId }\n isDragging={ true }\n bgColor=\"background.tag.default\"\n />\n ) : null }\n </DragOverlay>\n </HStack>\n ) }\n </MultiSort>\n <Text>Controlled output: </Text>\n <Code p={ 2 } borderRadius={ 4 }>\n <pre>{ JSON.stringify(multiItems, null, 2) }</pre>\n </Code>\n</Stack>\n )\n * }\n * ?)\n * <br />\n * Multisort abstracts logic away for setting up sortable items between multiple containers,\n * you can then separate, or create and style this containers as you want,\n * by putting them under <Droppable /> or a prestyled <Dropzone />\n\nSortableContainer is a wrapper for a <Sortable /> with a sortable item\n * */\nexport function MultiSort<itemKeys extends string | number | symbol> ({\n items: sortableItems,\n onChange = () => {},\n children,\n collisionDetection,\n sensors,\n}: MultiSortProps<itemKeys>) {\n const [ items, setItems ] = useState<MultiItemType<itemKeys>>(sortableItems)\n const [ activeItem, setActiveItem ] = useState<UniqueIdentifier | null>(null)\n\n const moveBetweenContainers = (\n activeContainerName: itemKeys,\n activeIndex: number,\n overContainerName: itemKeys,\n overIndex: number,\n item: string\n ) => ({\n ...items,\n [activeContainerName]: remove(activeIndex, 1, items[activeContainerName]),\n [overContainerName]: insert(overIndex, item, items[overContainerName]),\n })\n\n useEffect(() => {\n onChange(items)\n }, [ items ])\n useEffect(() => {\n setItems(sortableItems)\n }, [ sortableItems ])\n\n const customSensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const findContainer = (id: string) =>\n (id in items ? id : keys(items).find((key) => items[key].includes(id)))\n\n const getContainers = (e: DragOverEvent) => {\n const { active, over } = e\n if (!over) return {}\n const { id } = active\n const { id: overId } = over\n\n const activeContainerName = findContainer(id as string) as itemKeys\n const overContainerName = findContainer(overId as string) as itemKeys\n return { activeContainerName, overContainerName, id, overId, active }\n }\n\n const handleDragStart = (e: DragOverEvent) => {\n const {\n active: { id },\n } = e\n setActiveItem(id)\n }\n\n const handleDragOver = (e: DragOverEvent) => {\n const { activeContainerName, overContainerName, id, overId } = getContainers(e)\n\n if (\n !(\n !activeContainerName ||\n !overContainerName ||\n activeContainerName === overContainerName\n )\n ) {\n setItems((prev: MultiItemType<itemKeys>) => {\n const activeIndex = indexOf(id, prev[activeContainerName])\n const overIndex = indexOf(overId, prev[overContainerName])\n return moveBetweenContainers(\n activeContainerName,\n activeIndex,\n overContainerName,\n overIndex,\n id as string\n )\n })\n }\n }\n\n const handleDragEnd = (e: DragOverEvent) => {\n const { activeContainerName, overContainerName, id, overId, active } = getContainers(e)\n\n setItems((prev: MultiItemType<itemKeys>) => {\n if (!activeContainerName || !overContainerName) return prev\n const activeIndex = indexOf(id, prev[activeContainerName])\n const overIndex = indexOf(overId, prev[overContainerName])\n let newItems\n if (activeContainerName === overContainerName) {\n newItems = {\n ...prev,\n [overContainerName]: arrayMove(\n prev[overContainerName],\n activeIndex,\n overIndex\n ),\n }\n } else {\n newItems = moveBetweenContainers(\n activeContainerName,\n activeIndex,\n overContainerName,\n overIndex,\n active?.id as string\n )\n }\n\n return newItems\n })\n }\n\n return (\n <DragAndDrop\n sensors={ sensors || customSensors }\n onDragStart={ handleDragStart }\n onDragOver={ handleDragOver }\n onDragEnd={ handleDragEnd }\n collisionDetection={ collisionDetection || rectIntersection }\n >\n { typeof children === 'function' ? children(items, activeItem) : children }\n </DragAndDrop>\n )\n}\n","import React, { useMemo, useState } from 'react'\nimport {\n DragOverEvent,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n UniqueIdentifier,\n rectIntersection,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n rectSortingStrategy,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable'\nimport { identity, indexOf, map } from 'ramda'\nimport { DragAndDrop } from './drag-and-drop'\nimport { Sortable } from './sortable'\nimport { SortableItem } from './sortable-item'\nimport { DragItem } from './drag-item'\nimport { SortableListProps } from './types'\n\n/**\n * Util component to render sortable items under sortable context\n * @see SortableItem\n * @see Sortable\n * @see {@link https://northlight.dev/reference/sortable-list}\n *\n * @example (Example)\n * ## You can render any layout of sortable components, for example grid:\n * (?\n * () => {\n * const [items, setItems] = useState(Array.from({length: 100}, (_, i) => i))\n * return (\n * <Stack>\n<SimpleGrid minChildWidth=\"50px\" spacing={ 4 }>\n <SortableList\n items={ items }\n onChange={ (items) => setItems(items) }\n />\n</SimpleGrid>\n <Code p={ 2 } borderRadius={ 4 }>\n { JSON.stringify(items, null, 2) }\n </Code>\n </Stack>\n * )}\n * ?)\n *\n * @example (Example)\n * ### With custom component\n * (?\n * () => {\n * const [items, setItems] = useState([ { name: 'item1' }, { name: 'item2' }, { name: 'item3' } ])\n * return (\n * <Stack>\n *\n * <SortableList\n items={ items }\n createKey={ (item) => item.name }\n disableDrag={ true }\n onChange={setItems}\n>\n { ({ name }, listeners, { isOver }) => (\n <HStack>\n <DragHandle { ...listeners } isDragging={ isOver } />\n <Input defaultValue={ name } />\n </HStack>\n ) }\n</SortableList>\n</Stack>\n )}\n * ?)\n<br />\nIf disableDrag=false, then when the user double clicks it will trigger\nthe default behaviour of the rendered component instead of the dragging,\n you can adjust the threshold with dblClickThreshold, default is 300ms\n *\n *\n */\nexport function SortableList<T> ({\n children,\n items,\n collisionDetection,\n createKey = identity as (t: T) => UniqueIdentifier,\n strategy,\n onChange = () => {},\n onMovedItem = identity,\n displayOverlay = false,\n sensors,\n dblClickThreshold = 300,\n disableDrag = false,\n}: SortableListProps<T>) {\n const [ activeItem, setActiveItem ] = useState<UniqueIdentifier | null>(null)\n\n const identifierItems = useMemo(() => map(createKey, items), [ items ])\n\n const customSensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const handleDragStart = (event: DragOverEvent) => {\n const {\n active: { id },\n } = event\n setActiveItem(id)\n }\n\n const handleDragEnd = (event: DragOverEvent) => {\n const { active, over } = event\n if (active && over && active.id !== over.id) {\n const prevIds = map(createKey, items)\n const oldIndex = indexOf(active.id, prevIds)\n const newIndex = indexOf(over.id, prevIds)\n onMovedItem({ item: items[oldIndex], oldIndex, newIndex })\n const newItems = arrayMove(items, oldIndex, newIndex)\n onChange(newItems)\n }\n }\n\n return (\n <DragAndDrop\n sensors={ sensors || customSensors }\n collisionDetection={ collisionDetection || rectIntersection }\n onDragStart={ handleDragStart }\n onDragEnd={ handleDragEnd }\n >\n <Sortable\n items={ identifierItems }\n strategy={ strategy || rectSortingStrategy }\n >\n { items.map((item) => {\n const id = createKey(item)\n return (\n <SortableItem\n key={ id }\n id={ id }\n itemLabel={ id }\n dblClickThreshold={ dblClickThreshold }\n disableDrag={ disableDrag }\n >\n { (listeners, props) => (\n typeof children === 'function' ? children(item, listeners, props) : children\n ) }\n </SortableItem>\n )\n }) }\n </Sortable>\n { displayOverlay && (\n <DragOverlay>\n { activeItem ? <DragItem itemLabel={ activeItem } /> : null }\n </DragOverlay>\n ) }\n </DragAndDrop>\n )\n}\n","import React from 'react'\nimport { rectSortingStrategy } from '@dnd-kit/sortable'\nimport { Sortable } from './sortable'\nimport { SortableItem } from './sortable-item'\nimport { SortableContainerProps } from './types'\n\n/**\n * Used with multi sort to render a sortable list inside a droppable\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/sortable-container}\n *\n * @example\n * (?\n * <SortableContainer items={['item 1', 'item 2', 'item 3']} />\n * ?)\n *\n */\nexport const SortableContainer = ({ children, items, strategy }: SortableContainerProps) => (\n <Sortable items={ items } strategy={ strategy || rectSortingStrategy }>\n { items.map((id) => (\n <SortableItem key={ id } id={ id } itemLabel={ id }>\n { typeof children === 'function' ? children(id) : children }\n </SortableItem>\n )) }\n </Sortable>\n)\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeList } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastListProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized stacked layout\n * @see FastGrid\n * @see {@link https://northlight.dev/reference/fast-list}\n *\n * @example (Example)\n * (?\n * <Box h=\"500px\" w=\"300p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastList itemCount={ 10000 } itemSize={ 30 } overscanCount={ 100 }>\n { (index) => `item-${index}` }\n </FastList>\n</Box>\n * ?)\n *\n */\nexport const FastList = forwardRef(({\n itemCount,\n itemSize,\n direction = 'column',\n children,\n width,\n height,\n overscanCount = 0,\n initialScrollOffset,\n ...rest\n}: FastListProps, ref: LegacyRef<VariableSizeList<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeList\n itemCount={ itemCount }\n itemSize={ typeof itemSize === 'number' ? (_index) => itemSize : itemSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n layout={ direction === 'column' ? 'vertical' : 'horizontal' }\n initialScrollOffset={ initialScrollOffset }\n overscanCount={ overscanCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, index }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(index) : children }\n </div>\n ) }\n </VariableSizeList>\n ) }\n </AutoSizer>\n))\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeGrid } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastGridProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized html grid layout\n * @see FastList\n * @see {@link https://northlight.dev/reference/fast-grid}\n *\n * @example (Example)\n * ## Simple example\n * (?\n * <Box h=\"500px\" w=\"500px\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 100 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n { (rowIndex, columnIndex) => `[${rowIndex}, ${columnIndex}]` }\n </FastGrid>\n </Box>\n *\n * ?)\n *\n * @example (Example)\n * ## Spreadsheet example\n * (?\n * +\n *\nconst getCell = (rowIndex, columnIndex) => {\n if (rowIndex === 0 && columnIndex === 0) return ''\n if (rowIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Col { columnIndex }\n </Lead>\n )\n }\n if (columnIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Row { rowIndex }\n </Lead>\n )\n }\n return (\n <TextField name={ `${rowIndex}-${columnIndex}` } />\n )\n}\n *\n * const MyGrid = () => {\n * const [values, setValues ] = useState({})\n * return(\n * <Form initialValues={{}}>\n * {({getValues}) => (\n * <Stack>\n * <Box h=\"500px\" w=\"500p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 50 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n {getCell}\n </FastGrid>\n</Box>\n<Button onClick={() => setValues(getValues())} variant=\"success\">Save</Button>\n<Code> <pre>{JSON.stringify(values, null, 2)}</pre></Code>\n</Stack>\n * )}\n </Form>\n * )}\n\nrender(<MyGrid />)\n *\n *\n * ?)\n * **(Note, FastGrid must be wrapped in a parent element with set height and width!)**\n *\n*/\nexport const FastGrid = forwardRef(({\n columns,\n rows,\n columnSize,\n rowSize,\n children,\n width,\n height,\n overscanRowCount = 0,\n overscanColumnCount = 0,\n ...rest\n}: FastGridProps, ref: LegacyRef<VariableSizeGrid<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeGrid\n rowCount={ rows }\n columnCount={ columns }\n columnWidth={ typeof columnSize === 'number' ? (_index) => columnSize : columnSize }\n rowHeight={ typeof rowSize === 'number' ? (_index) => rowSize : rowSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n overscanRowCount={ overscanRowCount }\n overscanColumnCount={ overscanColumnCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, rowIndex, columnIndex }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(rowIndex, columnIndex) : children }\n </div>\n ) }\n </VariableSizeGrid>\n ) }\n </AutoSizer>\n))\n","import React from 'react'\nimport { CheckDuo, EditDuo, XCloseSolid } from '@northlight/icons'\nimport {\n HStack,\n useEditableControls,\n useEditableState,\n useMultiStyleConfig,\n} from '@chakra-ui/react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { EditableControlsProps } from './types'\n\nexport const EditableControls = ({ size }: EditableControlsProps) => {\n const {\n getSubmitButtonProps,\n getCancelButtonProps,\n } = useEditableControls()\n\n const { onEdit, isEditing } = useEditableState()\n\n const { button, icon, controls } = useMultiStyleConfig('EditableText', { size, isEditing })\n\n return (\n <HStack spacing={ 1 } sx={ controls }>\n { isEditing\n ? (\n <>\n <IconButton\n aria-label=\"Cancel\"\n sx={ button }\n variant=\"danger\"\n { ...getCancelButtonProps() }\n >\n <Icon sx={ icon } as={ XCloseSolid } />\n </IconButton>\n <IconButton\n aria-label=\"Save\"\n sx={ button }\n variant=\"success\"\n { ...getSubmitButtonProps() }\n >\n <Icon sx={ icon } as={ CheckDuo } />\n </IconButton>\n </>\n )\n : (\n <IconButton\n aria-label=\"Edit\"\n variant=\"ghost\"\n sx={ button }\n onClick={ onEdit }\n >\n <Icon sx={ icon } as={ EditDuo } />\n </IconButton>\n )\n }\n </HStack>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Input, InputGroup, InputLeftElement, InputRightElement } from '../input'\nimport { EditableInput as ChakraEditableInput, Editable, EditablePreview } from '../editable'\nimport { EditableProps } from './types'\nimport { EditableControls } from './editable-controls'\n\n/**\n * Used to safely modify text with default or previousely set value\n * @see {@link https://northlight.dev/reference/editable-text}\n *\n * @example (Example)\n * ##Edit password\n * (?\n * () => {\n * const [v, setV] = useState('123456789')\n * return (\n * <Box p=\"2\">\n * <EditableText value={v} onSubmit={setV} leftItem={<Icon as={LockDuo} />}/>\n * </Box>\n * )\n * }\n * ?)\n *\n * @example (Example)\n * ## Other notes\n <p>\n Pressing <b>ESC</b> or clicking on the\n <b> red icon</b> will delete the changes and go back to the original state\n </p>\n <p>\n Pressing <b>ENTER</b> or clicking on the\n <b> green icon</b> will save the changes internally and fire the{ ' ' }\n <Code>onSubmit</Code> callback.\n </p>\n *\n */\nexport const EditableText = ({\n size = 'md',\n value: inputValue,\n onSubmit,\n leftItem,\n ...rest\n}: EditableProps) => {\n const [ value, setValue ] = useState(inputValue)\n const { input, preview } = useMultiStyleConfig('EditableText', { size })\n\n useEffect(() => {\n setValue(inputValue)\n }, [ inputValue ])\n\n return (\n <Editable\n isPreviewFocusable={ true }\n selectAllOnFocus={ false }\n value={ value }\n onChange={ (newValue) => setValue(newValue) }\n onSubmit={ onSubmit }\n { ...rest }\n >\n <InputGroup size={ size }>\n { leftItem && (\n <InputLeftElement>\n { leftItem }\n </InputLeftElement>\n ) }\n <Input\n as={ EditablePreview }\n sx={ preview }\n />\n <Input\n as={ ChakraEditableInput }\n size={ size }\n sx={ input }\n />\n <InputRightElement sx={ { width: 'min-content' } }>\n <EditableControls size={ size } />\n </InputRightElement>\n </InputGroup>\n </Editable>\n )\n}\n","import React from 'react'\nimport {\n Modal as ChakraModal,\n ModalCloseButton,\n ModalContent,\n ModalOverlay,\n} from '@chakra-ui/react'\nimport { ModalProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/modal}\n *\n * */\nexport const Modal = ({\n isCentered = true,\n children,\n ...rest\n}: ModalProps) => (\n <ChakraModal\n isCentered={ isCentered }\n scrollBehavior=\"inside\"\n motionPreset=\"slideInBottom\"\n { ...rest }\n >\n <ModalOverlay />\n <ModalContent data-testid=\"modal-test-id\">\n <ModalCloseButton data-testid=\"modal-test-button-id\" />\n { children }\n </ModalContent>\n </ChakraModal>\n)\n","import React, { forwardRef, useState } from 'react'\nimport AvatarEditor from 'react-avatar-editor'\nimport { ZoomInDuo } from '@northlight/icons'\nimport { EditableText } from '../editable-text'\nimport { Icon } from '../icon'\nimport { HStack, Stack } from '../stack'\nimport { Box } from '../box'\nimport { Button } from '../button'\nimport { Slider, SliderFilledTrack, SliderThumb, SliderTrack } from '../slider'\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '../modal'\nimport { FormLabel } from '../form-control'\nimport { FileEditorModalProps } from './types'\n\nexport const FileEditorModal = forwardRef(({\n fileName,\n setFileName,\n isOpen,\n onClose,\n image = '',\n handleCrop,\n isImage,\n canEditFileName = true,\n canCropImage = false,\n ...rest\n}: FileEditorModalProps, ref: any) => {\n const [ zoomLevel, setZoomLevel ] = useState(1)\n const [ position, setPosition ] = useState({ x: 0.5, y: 0.5 })\n\n const handleClose = () => {\n setZoomLevel(1)\n onClose()\n }\n\n return (\n <Modal\n isOpen={ isOpen }\n onClose={ onClose }\n closeOnOverlayClick={ false }\n { ...rest }\n >\n <ModalHeader>Edit { isImage ? 'image' : 'file' }</ModalHeader>\n <ModalBody\n display=\"flex\"\n justifyContent=\"start\"\n flexDirection=\"column\"\n alignItems=\"center\"\n gap={ 4 }\n minH=\"300px\"\n >\n <Stack display={ isImage && canCropImage ? 'inherit' : 'none' }>\n <AvatarEditor\n ref={ ref }\n image={ image || '' }\n onPositionChange={ (pos) => setPosition(pos) }\n position={ position }\n width={ 250 }\n height={ 250 }\n border={ 50 }\n color={ [ 255, 255, 255, 0.7 ] }\n scale={ zoomLevel }\n rotate={ 0 }\n />\n <HStack w=\"90%\">\n <FormLabel>Zoom</FormLabel>\n <Slider\n aria-label=\"zoom\"\n defaultValue={ zoomLevel }\n maxW=\"50%\"\n min={ 0.1 }\n step={ 0.05 }\n max={ 10 }\n onChange={ (value) => setZoomLevel(value) }\n >\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb boxSize={ 6 }>\n <Icon as={ ZoomInDuo } />\n </SliderThumb>\n </Slider>\n </HStack>\n\n </Stack>\n { canEditFileName && (\n <Stack w=\"90%\" direction={ isImage ? 'row' : 'column' } pt={ 2 }>\n <FormLabel>Name the file:</FormLabel>\n <Box maxW=\"50%\">\n <EditableText onSubmit={ (v) => setFileName(v) } value={ fileName } size=\"sm\" />\n </Box>\n </Stack>\n ) }\n </ModalBody>\n <ModalFooter>\n <HStack>\n <Button variant=\"danger\" onClick={ handleClose }>\n Cancel\n </Button>\n <Button variant=\"success\" onClick={ handleCrop }>\n Save\n </Button>\n </HStack>\n </ModalFooter>\n </Modal>\n )\n})\n","import React from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '../modal'\nimport { Button } from '../button'\nimport { ConfirmDeleteModalProps } from './types'\n\nexport const ConfirmDeleteModal = ({\n isOpen,\n onClose,\n confirmDelete,\n fileName,\n ...rest\n}: ConfirmDeleteModalProps) => {\n const handleDelete = () => {\n confirmDelete()\n onClose()\n }\n\n return (\n <Modal isOpen={ isOpen } onClose={ onClose } { ...rest }>\n <ModalHeader\n sx={ { fontSize: 'lg' } }\n overflow=\"hidden\"\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n pr={ 16 }\n >\n Delete { fileName }\n </ModalHeader>\n <ModalBody>\n Deleting this file is a permanent action. You will not be able to\n recover this file at a later time.\n </ModalBody>\n <ModalFooter>\n <Button variant=\"danger\" onClick={ handleDelete }>\n Delete\n </Button>\n </ModalFooter>\n </Modal>\n )\n}\n","export const formattedTime = (seconds: number) => {\n let baseString = ''\n const hours = Math.floor(seconds / 3600)\n if (hours > 0) {\n baseString += ` ${hours}h`\n }\n const minutes = Math.floor((seconds - hours * 3600) / 60)\n if (minutes > 0) {\n baseString += ` ${minutes}min`\n }\n const newSeconds = Math.floor(seconds - hours * 3600 - minutes * 60)\n if (newSeconds > 0) {\n baseString += ` ${newSeconds}s`\n }\n\n return baseString\n}\n","export const updateTimeThreshold = 0.5\nexport const animationSlideTime = 250\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Progress } from '@chakra-ui/react'\nimport { VStack } from '../stack'\nimport { Small } from '../typography'\nimport { formattedTime } from './utils'\nimport { Fade } from '../transitions'\nimport { ProgressBarProps } from './types'\nimport { animationSlideTime, updateTimeThreshold } from './constants'\n\n/**\n * @see {@link https:/northlight/reference/progress-bar}\n *\n * @example\n * (?\n * () => {\n const [ progress, setProgress ] = useState(0)\n if (progress > 1 && buffer) {\n clearInterval(buffer)\n buffer = null\n }\n\n const handleClick = () => {\n setProgress(0)\n buffer = setInterval(\n () => setProgress((prev) => prev + Math.random() * 0.1),\n Math.random() * 300 + 200\n )\n }\n return (\n <Stack>\n <ProgressBar loaded={ progress } hideDisplay={true}/>\n <Button onClick={ handleClick }>Start Loading</Button>\n </Stack>\n )\n * }\n * ?)\n *\n */\nexport const ProgressBar = ({\n loaded,\n onLoadEnd = () => {},\n hideDisplay = true,\n ...rest\n}: ProgressBarProps) => {\n const ref = useRef<HTMLDivElement>(null)\n const timeRef = useRef<number>(0)\n const progress = Math.max(0, Math.min(loaded, 1))\n const [ timeLeft, setTimeLeft ] = useState(0)\n\n useEffect(() => {\n if (ref.current) {\n (ref.current.children[0] as HTMLDivElement).style.width = `${progress * 100}%`\n }\n\n if (timeRef.current) {\n const deltaTime = timeRef.current\n ? (Date.now() - timeRef.current) / 1000\n : 0\n if (deltaTime > updateTimeThreshold) {\n const newEstimate = progress !== 0 ? deltaTime / progress : 0\n setTimeLeft(Math.round(newEstimate - deltaTime))\n }\n } else if (progress > 0) {\n timeRef.current = Date.now()\n }\n }, [ progress ])\n\n return (\n <Fade\n in={ progress < 1 }\n enterDuration={ 1 }\n exitDelay={ 250 }\n exitDuration={ 1000 }\n hideDisplay={ hideDisplay }\n onTransitionComplete={ () => {\n if (progress >= 1) {\n onLoadEnd()\n }\n } }\n >\n <VStack { ...rest }>\n <Small>\n { Math.round(progress * 100) }%{ ' ' }\n { !!timeLeft && `· ${formattedTime(timeLeft)} left` }\n </Small>\n <Progress\n ref={ ref }\n sx={ { '>[role=\"progressbar\"]': { transition: `width ${animationSlideTime}ms ease-out` } } }\n width=\"full\"\n height=\"1a\"\n borderRadius=\"full\"\n />\n </VStack>\n </Fade>\n )\n}\n","import React from 'react'\nimport { Spinner as ChakraSpinner } from '@chakra-ui/react'\nimport { SpinnerProps } from './types'\n\n/**\n * Loading indicator\n * @see {@link https://northlight.dev/reference/spinner }\n * @example\n * (? <Spinner /> ?)\n */\nexport const Spinner = (({\n ...rest\n}: SpinnerProps) => (\n <ChakraSpinner { ...rest } />\n))\n","export const fiveHundredMB = 5.24288E8\nexport const imageLazyThreshold = 1.572854E7\nexport const defaultEditOptions = {\n canEdit: true,\n canEditImage: true,\n canEditName: true,\n}\n","import {\n all,\n difference,\n has,\n intersection,\n isEmpty,\n last,\n split,\n test,\n trim,\n} from 'ramda'\nimport { imageLazyThreshold } from './constants'\nimport {\n FileFormat,\n FileWithSizeAndType,\n FileWithSrcNameType,\n FileWithType,\n} from './types'\n\nexport const getResizingFactor = (\n imgWidth: number,\n imgHeight: number,\n maxWidth: number,\n maxHeight: number\n) => Math.min(1, Math.min(maxWidth / imgWidth, maxHeight / imgHeight))\n\nexport const convertBlobToFile = (\n blob: Blob,\n name: string,\n type: string\n) => new File([ blob ], name, { type })\n\nexport const compressImage = (\n file: File,\n maxWidth = 3000,\n maxHeight = 3000,\n quality = 0.75\n) => {\n const canvas = document.createElement('canvas')\n const context = canvas.getContext('2d')\n if (!context) return file\n\n const imageBuffer = new Image()\n imageBuffer.src = URL.createObjectURL(file as File)\n\n return new Promise((resolve) => {\n imageBuffer.onload = () => {\n const resizingFactor = getResizingFactor(\n imageBuffer.width,\n imageBuffer.height,\n maxWidth,\n maxHeight\n )\n const scaledWidth = imageBuffer.width * resizingFactor\n const scaledHeight = imageBuffer.height * resizingFactor\n canvas.width = scaledWidth\n canvas.height = scaledHeight\n context.drawImage(imageBuffer, 0, 0, scaledWidth, scaledHeight)\n canvas.toBlob(\n (blob) => {\n if (file && blob) {\n const newImage = convertBlobToFile(blob, file.name, file.type)\n resolve(newImage)\n } else {\n resolve(file)\n }\n },\n 'image/jpeg',\n quality\n )\n }\n })\n}\n\nexport const readableFileSize = (size: number) => {\n if (size <= 0) return 0\n const i = Math.floor(Math.log(size) / Math.log(1024))\n return `${(size / 1024 ** i).toFixed(1)} ${\n [ 'B', 'kB', 'MB', 'GB', 'TB' ][i]\n }`\n}\n\nexport const getImageAsFile = async <T extends FileWithSrcNameType>(\n image: T,\n name?: string\n): Promise<File> =>\n fetch(image.src as string)\n .then((res) => res.blob())\n .then(\n (blob) =>\n new Promise((resolve) => {\n const newImage = convertBlobToFile(blob, name || image.name, image.type)\n resolve(newImage)\n })\n )\n\nconst getFormatsAsArray = (acceptFormat: string) =>\n split(',', acceptFormat)\n .map((format) => trim(format))\n\nexport const getAcceptedExtensions = (acceptFormat: string) =>\n getFormatsAsArray(acceptFormat)\n .filter((format) => test(/^\\./, format))\n .map((format) => format.substring(1))\n\nexport const getAcceptedFormats = (acceptFormat: string) =>\n getFormatsAsArray(acceptFormat)\n .filter((format) => test(/\\//, format))\n .map((format) => split('/', format)[0])\n\nconst getFileExtension = <T extends FileWithType> (file: T) => last(split('/', file.type)) as string\n\nconst getFileFormat = <T extends FileWithType> (file: T) => split('/', file.type)[0]\n\nexport const validFileFormat = <T extends FileWithType> (\n file: T,\n acceptFormat: string\n) => (\n acceptFormat === '*'\n|| getAcceptedFormats(acceptFormat).includes(getFileFormat(file))\n|| getAcceptedExtensions(acceptFormat).includes(getFileExtension(file))\n )\n\nexport const isValidFile = <T extends FileWithSizeAndType> (\n file:T,\n acceptFormat: string,\n maxFileSize: number\n) => {\n const isValid =\n file.size as number < maxFileSize\n && validFileFormat(file, acceptFormat)\n\n return {\n isValid,\n errorMessage: file.size as number > maxFileSize\n ? 'File size is too big'\n : isValid\n ? ''\n : 'File format not supported',\n }\n}\n\nexport function getNewUploadingFiles<T extends FileFormat> (\n prev: T[],\n curr: T[],\n files: T[]\n) {\n let buffer = prev\n const prevIDs = prev ? prev.map((file) => file.name) : null\n const currentIDs = curr ? curr.map((file) => file.name) : null\n const removedItemsIDs =\n prevIDs && currentIDs && difference(prevIDs, currentIDs)\n const filesIDs = files.map((file) => file.name)\n\n if (removedItemsIDs) {\n if (\n removedItemsIDs.length === 0 ||\n intersection(removedItemsIDs, filesIDs).length > 0\n ) {\n buffer = curr\n } else {\n buffer.forEach((value, index) => {\n if (removedItemsIDs.includes(value.name)) {\n const updatedData = { ...value,\n uploaded: has('size', value) ? value.size : 0 }\n buffer[index] = updatedData\n }\n }\n )\n }\n } else {\n buffer = curr\n }\n return buffer\n}\n\nexport const generateId = () => Math.random().toString().substring(3)\n\nexport const isFile = (file: any) => 'File' in window && file instanceof File\n\nexport const isFileImage = <T extends FileWithType>(file: T) => {\n if (isFile(file)) {\n return getFileFormat(file) === 'image'\n }\n switch (getFileFormat(file)) {\n case 'image':\n case 'jpeg':\n case 'jpg':\n case 'png':\n case 'gif':\n case 'tiff':\n case 'jfif':\n return true\n default:\n return false\n }\n}\n\nexport const onlyAcceptsImages = (acceptFormat: string) => {\n if (acceptFormat === '*' || acceptFormat === '') {\n return false\n }\n const formats = getAcceptedFormats(acceptFormat)\n const extensions = getAcceptedExtensions(acceptFormat)\n\n const premiseOne = isEmpty(formats) || all((type: string) => type === 'image', formats)\n\n const premiseTwo = isEmpty(extensions)\n || all((type: string) => isFileImage({ type }), extensions)\n\n return premiseOne && premiseTwo\n}\n\nexport const createFileObject = <T extends FileFormat>(file: File): T => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: null,\n src: null,\n type: file.type,\n name: file.name,\n isUploading: true,\n isLazy: file.size > imageLazyThreshold && isFileImage(file),\n }\n return fileObject as T\n}\n\nexport const createPreviewFileObject = <T extends FileFormat>(file: File): T => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: file.size,\n src: URL.createObjectURL(file),\n type: file.type,\n name: file.name,\n isUploading: false,\n isLazy: false,\n }\n return fileObject as T\n}\n\nexport const createFileObjectFromSrc = <T extends FileWithSrcNameType>(file: T) => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: null,\n src: file.src,\n type: file.type,\n name: file.name,\n isUploading: false,\n isLazy: false,\n }\n return fileObject\n}\n\nexport const isOverflowing = (element: Element) => (element\n ? element.scrollHeight > element.clientHeight\n : false\n)\n\nexport const toBase64 = (file: File): Promise<string> => new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.readAsDataURL(file)\n reader.onload = () => resolve(reader.result as string)\n reader.onerror = (error) => reject(error)\n})\n\nconst correctFileExtension = (str: string) => test(/./g, str)\n\nconst getFileFormattedName = (file: File | FileFormat) => (correctFileExtension(file.name)\n ? file.name\n : `${file.name}.${getFileExtension(file)}`)\nexport const handleDownload = (file:\nFile | FileFormat | null | string | FileFormat\n) => () => {\n if (!file) return\n const anchor = document.createElement('a')\n anchor.href = isFile(file) ? URL.createObjectURL(file as File) : (file as FileFormat).src || ''\n anchor.download = isFile(file)\n ? 'downloaded-file.jpg'\n : getFileFormattedName(file as File)\n anchor.click()\n}\n","import React from 'react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { FileIconButtonProps } from './types'\n\nexport const FileIconButton = ({\n icon,\n color = 'unset',\n ...rest\n}: FileIconButtonProps) => (\n <IconButton variant=\"ghost\" size=\"sm\" { ...rest }>\n <Icon as={ icon } boxSize=\"24px\" color={ color } />\n </IconButton>\n)\n","import React, { DragEvent, useEffect, useRef, useState } from 'react'\nimport { Fade, SlideFade, useMultiStyleConfig } from '@chakra-ui/react'\nimport {\n DownloadDuo,\n EditBoxDuo,\n FileBlankDuo,\n Image03Solid,\n TrashFullDuo,\n UploadCloudSolid,\n} from '@northlight/icons'\nimport { identity } from 'ramda'\nimport AvatarEditor from 'react-avatar-editor'\nimport { FileEditorModal } from './file-editor-modal'\nimport { ConfirmDeleteModal } from './confirm-delete-modal'\nimport { Icon } from '../icon'\nimport { Lead, P } from '../typography'\nimport { HStack, Stack } from '../stack'\nimport { FilePickerProps } from './types'\nimport { Input } from '../input'\nimport { Box } from '../box'\nimport { ProgressBar } from '../progress'\nimport { Spinner } from '../spinner'\nimport { Image } from '../image'\nimport { Clickable } from '../clickable'\nimport { useDisclosure } from '../../hooks'\nimport {\n compressImage,\n convertBlobToFile,\n handleDownload,\n isFile,\n isFileImage,\n isValidFile,\n onlyAcceptsImages,\n readableFileSize,\n} from './utils'\nimport { FileIconButton } from './file-icon-button'\nimport { defaultEditOptions, fiveHundredMB } from './constants'\nimport { useCurrentTheme } from '../../utils'\n\n/**\n * Lets user import file of any type as Javascript File Object\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/reference/file-picker}\n *\n * @example (Example)\n * (?\n * <FilePicker />\n * ?)\n *\n *\n */\nexport const FilePicker = ({\n acceptFormat = '*',\n onChange = identity,\n compression,\n uploaded: uploadedInitial = 0,\n maxFileSize = fiveHundredMB,\n showProgress = false,\n value = '',\n loadWithSpinner = false,\n confirmDelete = false,\n editFileOptions = defaultEditOptions,\n}: FilePickerProps) => {\n const fileInputRef = useRef<HTMLInputElement>(null)\n const imageEditorRef = useRef<AvatarEditor>(null)\n const [ file, setFile ] = useState<File | null | string>(value)\n\n const [ isInvalid, setIsInvalid ] = useState(false)\n const [ name, setName ] = useState('')\n const editModal = useDisclosure()\n const deleteModal = useDisclosure()\n const [ editable, setEditable ] = useState(false)\n const [ hasLoaded, setHasLoaded ] = useState(false)\n const [ isLoading, setIsLoading ] = useState(false)\n const [ isImage, setIsImage ] = useState(true)\n const [ uploaded, setUploaded ] = useState(uploadedInitial)\n\n const onlyImageAccepted = onlyAcceptsImages(acceptFormat)\n\n const isUploading = uploaded < 1\n\n useEffect(() => {\n setUploaded(uploadedInitial)\n }, [ uploadedInitial ])\n\n useEffect(() => {\n if (!isUploading) {\n setIsLoading(false)\n setHasLoaded(true)\n }\n }, [ isUploading ])\n\n const currentTheme = useCurrentTheme()\n\n const { filePicker } = useMultiStyleConfig('FilePicker', {\n isImage,\n hasLoaded,\n isInvalid,\n currentTheme,\n })\n\n useEffect(() => {\n if (isInvalid) {\n setTimeout(() => {\n setIsInvalid(false)\n }, 1500)\n }\n }, [ isInvalid ])\n\n const handleOnClick = () => {\n if (fileInputRef.current && !file) {\n fileInputRef.current.click()\n }\n }\n\n const handleCrop = () => {\n if (imageEditorRef.current) {\n const canvas = imageEditorRef.current.getImageScaledToCanvas()\n canvas.toBlob((blob) => {\n if (file && blob) {\n const fileName = name\n || isFile(file)\n ? (file as File).name\n : 'downloaded-file'\n\n const fileType = isFile(file)\n ? (file as File).type\n : '.jpg'\n\n const newFile = convertBlobToFile(blob, fileName, fileType)\n setFile(newFile)\n setHasLoaded(true)\n onChange(newFile)\n }\n })\n editModal.onClose()\n }\n }\n\n const clearImage = () => {\n if (fileInputRef.current) {\n setIsInvalid(false)\n setName('')\n setFile(null)\n setIsImage(true)\n setHasLoaded(false)\n if (!showProgress) {\n setUploaded(0)\n }\n onChange(null)\n fileInputRef.current.value = ''\n }\n }\n\n const handleImageUpload = async (newImage: File | null) => {\n if (newImage) {\n setIsInvalid(false)\n const isFileTypeImage = isFileImage(newImage)\n setIsImage(isFileTypeImage)\n const compressedImage = isFileTypeImage\n ? ((await compressImage(\n newImage,\n compression?.width,\n compression?.height,\n compression?.quality\n )) as File)\n : newImage\n setFile(compressedImage)\n if (!showProgress) {\n setUploaded(1)\n }\n onChange(compressedImage)\n setIsLoading(isUploading)\n }\n }\n\n const handleChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n setIsInvalid(false)\n const newImage = e.target.files[0]\n handleImageUpload(newImage)\n }\n }\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault()\n if (e.dataTransfer.files) {\n const newFile = e.dataTransfer.files[0]\n if (isValidFile(newFile, acceptFormat, maxFileSize).isValid) {\n handleImageUpload(newFile)\n } else {\n setIsInvalid(true)\n }\n }\n }\n\n return (\n <Stack maxW={ filePicker.width as number }>\n <Clickable\n onClick={ handleOnClick }\n onDrop={ handleDrop }\n onDragOver={ (e: DragEvent) => e.preventDefault() }\n onMouseEnter={ () => setEditable(true) }\n onMouseLeave={ () => setEditable(false) }\n >\n <Box sx={ filePicker }>\n <SlideFade\n in={ hasLoaded }\n style={ {\n width: '100%',\n height: '100%',\n display: hasLoaded && isImage ? 'initial' : 'none',\n } }\n >\n <Image\n src={ file\n ? isFile(file)\n ? URL.createObjectURL(file as File)\n : file as string\n : '' }\n alt=\"preview-image\"\n objectFit=\"cover\"\n borderRadius={ 8 }\n display={ hasLoaded && isImage ? 'inherit' : 'none' }\n h=\"full\"\n w=\"full\"\n />\n </SlideFade>\n <Input\n type=\"file\"\n display=\"none\"\n accept={ acceptFormat }\n ref={ fileInputRef }\n onChange={ handleChange }\n />\n <Stack\n display={ hasLoaded && isImage ? 'none' : 'default' }\n alignItems=\"center\"\n w=\"85%\"\n spacing=\"0a\"\n >\n <Icon\n as={ onlyImageAccepted ? Image03Solid : UploadCloudSolid }\n boxSize=\"32px\"\n color={\n isInvalid\n ? 'red.500'\n : editable\n ? 'blue.500'\n : 'gray.300'\n }\n display={ isImage && !hasLoaded ? 'inline-block' : 'none' }\n aria-label=\"file-icon-upload\"\n />\n <Icon\n as={ FileBlankDuo }\n boxSize=\"32px\"\n color=\"gray.300\"\n display={ hasLoaded && !isImage ? 'inline-block' : 'none' }\n />\n <P\n variant={ isInvalid ? '16' : '14' }\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n overflow=\"hidden\"\n maxWidth={ filePicker.width as number }\n textAlign=\"center\"\n alignSelf=\"center\"\n >\n { isInvalid\n ? 'File not supported'\n : file && isFile(file)\n ? (file as File).name\n : `Drag & drop ${onlyImageAccepted ? 'image' : 'file'} or` }\n </P>\n <Lead\n sx={ {\n textDecoration: 'underline',\n color: isInvalid ? 'red.500' : 'blue.500',\n } }\n display={ isLoading || hasLoaded ? 'none' : 'default' }\n >\n Click to upload\n </Lead>\n <Box display={ isLoading ? 'block' : 'none' } pt={ 1 }>\n { loadWithSpinner\n ? <Spinner />\n : <ProgressBar loaded={ uploaded } />\n }\n </Box>\n </Stack>\n <Fade\n in={ hasLoaded && editable }\n style={ {\n display: hasLoaded && editable ? 'flex' : 'none',\n justifyContent: 'center',\n } }\n >\n <HStack\n spacing={ 2 }\n position=\"absolute\"\n bottom=\"3\"\n justifyContent=\"center\"\n bgColor=\"bg.layer\"\n borderRadius={ 6 }\n width=\"90%\"\n py={ 2 }\n >\n { editFileOptions.canEdit && (\n <FileIconButton\n aria-label=\"edit-file\"\n onClick={ editModal.onOpen }\n icon={ EditBoxDuo }\n />\n ) }\n <FileIconButton\n aria-label=\"download-file\"\n onClick={ handleDownload(file) }\n icon={ DownloadDuo }\n />\n <FileIconButton\n aria-label=\"delete-file\"\n onClick={ confirmDelete ? deleteModal.onOpen : clearImage }\n icon={ TrashFullDuo }\n color=\"red.500\"\n />\n </HStack>\n </Fade>\n <P\n variant=\"14\"\n sx={ { color: 'gray.400' } }\n display={\n hasLoaded && !isImage && !isLoading\n ? 'inline-block'\n : 'none'\n }\n >\n { isFile(file) && readableFileSize((file as File)?.size as number) }\n </P>\n\n </Box>\n </Clickable>\n <FileEditorModal\n { ...editModal }\n fileName={ name }\n setFileName={ setName }\n image={ file }\n handleCrop={ handleCrop }\n isImage={ isImage }\n ref={ imageEditorRef }\n canEditFileName={ editFileOptions.canEditName }\n canCropImage={ editFileOptions.canEditImage }\n />\n <ConfirmDeleteModal\n { ...deleteModal }\n confirmDelete={ clearImage }\n fileName={ name || 'file' }\n />\n </Stack>\n )\n}\n","import React, { useState } from 'react'\nimport { identity } from 'ramda'\nimport { Field } from '../form'\nimport { FilePicker } from './file-picker'\nimport { toBase64 } from './utils'\nimport { FilePickerFieldProps } from './types'\n\n/**\n * The file picker component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FilePicker\n * @see Field\n * @see {@link https://northlight.dev/reference/file-picker-field}\n *\n * @example (Example)\n * ## Meant for uploading images in a form\n * Where they handled as base64 string\n * (?\n * <Form initialValues={{image: ''}}>\n * {({watch}) => (\n * <Stack>\n * <FilePickerField name=\"image\" />\n * <Code maxH=\"xs\" overflowY=\"scroll\">{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n * </Form>\n *\n * ?)\n *\n */\nexport const FilePickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: FilePickerFieldProps) => {\n const [ uploaded, setUploaded ] = useState(0)\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <FilePicker\n onChange={ async (file: File | null) => {\n if (file) {\n const formattedFile = await toBase64(file)\n setUploaded(1)\n onChange(formattedFile)\n onChangeCallback(formattedFile)\n } else {\n setUploaded(0)\n onChange(null)\n onChangeCallback(null)\n }\n } }\n value={ value }\n uploaded={ value ? 1 : uploaded }\n loadWithSpinner={ true }\n acceptFormat=\"image/*\"\n { ...rest }\n />\n ) }\n </Field>\n )\n}\n","import React, { DragEvent, useEffect, useRef, useState } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { filter, identity } from 'ramda'\nimport { Image03Solid, UploadCloudSolid } from '@northlight/icons'\nimport { Box } from '../box'\nimport { Icon } from '../icon'\nimport { Input } from '../input'\nimport {\n compressImage,\n createFileObject,\n createPreviewFileObject,\n isFileImage,\n isValidFile,\n onlyAcceptsImages,\n readableFileSize,\n} from './utils'\nimport { Clickable } from '../clickable'\nimport { HStack, Stack } from '../stack'\nimport { Lead, P } from '../typography'\nimport { fiveHundredMB } from './constants'\nimport { FileFormat, MultiFileUploaderProps } from './types'\nimport { useCurrentTheme } from '../../utils'\n\n/**\n * Input to upload multiple files without ui to render files\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/reference/multi-file-uploader}\n * @example\n * (?\n * () => {\n * const [ images, setImages ] = useState([])\n * return (\n * <Stack>\n <Box h=\"sm\">\n <Carousel>\n { images.map((imageSrc) => (\n <Image src={imageSrc} borderRadius=\"st.border.radius.md\" />\n )) }\n </Carousel>\n </Box>\n <MultiFileUploader\n acceptFormat=\"image/*\"\n onChange={ (newFiles) =>\n setImages(\n newFiles.map((file) => URL.createObjectURL(file))\n )\n }\n />\n </Stack>\n * )\n * }\n * ?)\n *\n */\nexport function MultiFileUploader<T extends FileFormat> ({\n acceptFormat = '*',\n compression,\n onChange = identity,\n addFilesToQueue = identity,\n updatePreviewFiles = identity,\n maxFileSize = fiveHundredMB,\n}: MultiFileUploaderProps<T>) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [ isInvalid, setIsInvalid ] = useState(false)\n const currentTheme = useCurrentTheme()\n const { multiFilePicker } = useMultiStyleConfig('FilePicker', { isInvalid, currentTheme })\n const [ active, setActive ] = useState(false)\n const [ errorMessage, setErrorMessage ] = useState('')\n\n const onlyImageAccepted = onlyAcceptsImages(acceptFormat)\n\n useEffect(() => {\n if (isInvalid) {\n setTimeout(() => {\n setIsInvalid(false)\n }, 1500)\n }\n }, [ isInvalid ])\n\n const toggleHover = () => {\n setActive((prev) => !prev)\n }\n\n const handleClick = () => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }\n\n const updateMultipleFiles = async (newFiles: FileList) => {\n const filesArr: File[] = Array.prototype.slice.call(newFiles)\n const validFiles = filter((file) => {\n const fileCheck = isValidFile(file, acceptFormat, maxFileSize)\n if (!fileCheck.isValid) {\n setErrorMessage(fileCheck.errorMessage || '')\n }\n return fileCheck.isValid\n }, filesArr)\n if (filesArr.length > 0 && validFiles.length === 0) {\n setIsInvalid(true)\n }\n\n addFilesToQueue(validFiles.map((file) => createFileObject(file)))\n updatePreviewFiles(validFiles.map((file) => createPreviewFileObject(file)))\n const compressedFiles = validFiles.map(\n async (file) => (isFileImage(file)\n ? compressImage(\n file,\n compression?.width,\n compression?.height,\n compression?.quality\n ) as File\n : file)\n )\n Promise.all(compressedFiles).then((values) => {\n onChange(values)\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n })\n }\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault()\n updateMultipleFiles(e.dataTransfer.files)\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n updateMultipleFiles(e.target.files)\n }\n }\n return (\n <Clickable\n onClick={ handleClick }\n onDragOver={ (e: DragEvent) => e.preventDefault() }\n onDrop={ handleDrop }\n onMouseEnter={ toggleHover }\n onMouseLeave={ toggleHover }\n >\n <Box sx={ multiFilePicker }>\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n h=\"full\"\n w=\"full\"\n spacing={ 0 }\n >\n <Icon\n as={ onlyImageAccepted ? Image03Solid : UploadCloudSolid }\n boxSize=\"32px\"\n color={\n isInvalid\n ? 'red.500 '\n : active\n ? 'blue.500 '\n : 'gray.300'\n }\n aria-label=\"image-icon-upload\"\n mb={ onlyImageAccepted ? '0a' : 0 }\n />\n <HStack spacing={ 1 } display={ isInvalid ? 'none' : 'flex' }>\n <P variant=\"14\" textAlign=\"center\" alignSelf=\"center\">\n Drag & drop { onlyImageAccepted ? 'images' : 'files' } here or\n </P>\n <Lead sx={ { textDecoration: 'underline', color: 'blue.500' } }>\n choose { onlyImageAccepted ? 'image' : 'file' }\n </Lead>\n </HStack>\n <P variant=\"14\" textAlign=\"center\" alignSelf=\"center\" display={ isInvalid ? 'initial' : 'none' }>\n { errorMessage }\n </P>\n <P variant=\"14\" sx={ { color: 'gray.400' } }>\n Max file size is { readableFileSize(maxFileSize) }\n </P>\n </Stack>\n <Input\n type=\"file\"\n display=\"none\"\n accept={ acceptFormat }\n onChange={ handleChange }\n multiple={ true }\n ref={ inputRef }\n />\n </Box>\n </Clickable>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { identity } from 'ramda'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { DownloadDuo, EditBoxDuo, FileBlankDuo, Image03Duo } from '@northlight/icons'\nimport AvatarEditor from 'react-avatar-editor'\nimport { Icon } from '../icon'\nimport { SlideFade } from '../transitions'\nimport { P } from '../typography'\nimport { HStack, Stack } from '../stack'\nimport { convertBlobToFile, getImageAsFile, handleDownload, isFileImage, readableFileSize } from './utils'\nimport { Box } from '../box'\nimport { Image as ChakraImage } from '../image'\nimport { useDisclosure } from '../../hooks'\nimport { CloseButton } from '../close-button'\nimport { ProgressBar } from '../progress'\nimport { ConfirmDeleteModal } from './confirm-delete-modal'\nimport { FileEditorModal } from './file-editor-modal'\nimport { FileIconButton } from './file-icon-button'\nimport { FileFormat, FileItemProps } from './types'\nimport { defaultEditOptions } from './constants'\n\nexport function FileItem<T extends FileFormat> ({\n onChangeCallback,\n addFile = identity,\n deleteFile,\n file,\n confirmDelete = true,\n isLazy = false,\n editFileOptions = defaultEditOptions,\n}: FileItemProps<T>) {\n const { canEdit, canEditImage, canEditName } = editFileOptions\n const { fileItem } = useMultiStyleConfig('FilePicker')\n const editModalDisclosure = useDisclosure()\n const deleteModalDisclosure = useDisclosure()\n const imageEditorRef = useRef<AvatarEditor>(null)\n const [ fileName, setFileName ] = useState('')\n const [ show, setShow ] = useState(true)\n const [ hasLoaded, setHasLoaded ] = useState(false)\n const [ loadingImage, setLoadingImage ] = useState(true)\n\n useEffect(() => {\n if (file.src) {\n const buffer = new Image()\n buffer.src = file.src\n buffer.onload = () => {\n setLoadingImage(false)\n }\n }\n }, [ file.isUploading ])\n\n const handleCrop = async () => {\n if (imageEditorRef.current && isFileImage(file)) {\n const canvas = imageEditorRef.current.getImageScaledToCanvas()\n canvas.toBlob(async (blob) => {\n if (file && blob) {\n const newFile = convertBlobToFile(blob, fileName || file.name, file.type)\n deleteFile(file)\n addFile(newFile, file._id)\n onChangeCallback([ newFile ])\n }\n })\n editModalDisclosure.onClose()\n } else if (file.src) {\n const newFile = await getImageAsFile(file, fileName)\n deleteFile(file)\n addFile(newFile, file._id)\n onChangeCallback([ newFile ])\n }\n }\n\n const clearImage = () => {\n setShow(false)\n setTimeout(() => {\n deleteFile(file)\n }, 500)\n }\n\n return (\n <SlideFade\n in={ show }\n direction=\"left\"\n offset={ 30 }\n enterDuration={ !isLazy ? 300 : 1 }\n exitDuration={ 300 }\n >\n <Box sx={ fileItem }>\n <HStack\n w=\"full\"\n h=\"full\"\n borderRadius={ 6 }\n alignItems=\"center\"\n justifyContent=\"space-between\"\n px={ 2 }\n pt={ file.isUploading && !hasLoaded ? 2 : 0 }\n >\n <HStack spacing={ 4 } alignItems=\"start\" maxW=\"50%\">\n { isFileImage(file)\n ? file.isUploading || loadingImage\n ? (\n <Icon\n as={ Image03Duo }\n bgColor=\"gray.100\"\n color=\"gray.400\"\n boxSize=\"10\"\n borderRadius=\"8\"\n p=\"2\"\n />\n )\n : (\n <ChakraImage\n src={ file.src || '' }\n alt=\"preview-image\"\n objectFit=\"cover\"\n display={ file.src ? 'inherit' : 'none' }\n borderRadius=\"8\"\n boxSize=\"10\"\n />\n )\n : (\n <Icon\n as={ FileBlankDuo }\n boxSize=\"10\"\n p=\"1\"\n color=\"gray.300\"\n />\n )\n }\n <Stack\n alignItems=\"start\"\n justifyContent=\"start\"\n spacing=\"0\"\n maxW=\"100%\"\n >\n <P\n variant=\"14\"\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n overflow=\"hidden\"\n maxW=\"100%\"\n >\n { file?.name }\n </P>\n <P variant=\"14\" sx={ { color: 'gray.400' } }>\n { file?.size && readableFileSize(file.size) }\n </P>\n </Stack>\n </HStack>\n <HStack\n spacing=\"3\"\n justifyContent=\"center\"\n borderRadius=\"6\"\n bgColor=\"bg.filled\"\n display={ file.isUploading ? 'none' : 'flex' }\n p=\"1\"\n >\n { canEdit && (\n <FileIconButton\n aria-label=\"Edit-image\"\n onClick={ editModalDisclosure.onOpen }\n icon={ EditBoxDuo }\n />\n ) }\n <FileIconButton\n aria-label=\"download-image\"\n onClick={ handleDownload(file) }\n icon={ DownloadDuo }\n />\n <CloseButton\n onClick={ confirmDelete ? deleteModalDisclosure.onOpen : clearImage }\n />\n </HStack>\n </HStack>\n <Box\n w=\"full\"\n pl=\"16\"\n pr=\"4\"\n pb=\"2\"\n mt=\"-2\"\n display={ file.isUploading ? 'block' : 'none' }\n >\n <ProgressBar\n loaded={ file.size ? (file?.uploaded || 0) / file.size : 0 }\n onLoadEnd={ () => setHasLoaded(true) }\n />\n </Box>\n { canEdit && (\n <FileEditorModal\n { ...editModalDisclosure }\n fileName={ fileName || file.name }\n setFileName={ setFileName }\n image={ file.src }\n canCropImage={ canEditImage }\n canEditFileName={ canEditName }\n handleCrop={ handleCrop }\n isImage={ isFileImage(file) }\n ref={ imageEditorRef }\n />\n ) }\n <ConfirmDeleteModal\n { ...deleteModalDisclosure }\n confirmDelete={ clearImage }\n fileName={ fileName || file.name }\n />\n </Box>\n </SlideFade>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { any, identity, map } from 'ramda'\nimport { FileItem } from './file-item'\nimport { Stack } from '../stack'\nimport { createPreviewFileObject, getNewUploadingFiles, isFile, isOverflowing } from './utils'\nimport { FileFormat, MultiFileListProps } from './types'\nimport { defaultEditOptions } from './constants'\n\n/**\n * Show list of files, their uploading progress as well as options to edit/delete them\n * @see MultiFileUploader\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/multi-file-list}\n *\n */\nexport function MultiFileList<T extends FileFormat> ({\n files,\n uploadingFiles,\n onChange = identity,\n deleteFile = identity,\n addFile = identity,\n confirmDelete,\n editFileOptions = defaultEditOptions,\n enableSmartLoad = true,\n}: MultiFileListProps<T>) {\n const [ uploadingFilesReference, setUploadingFilesReference ] = useState(uploadingFiles)\n const [ overflowing, setOverflowing ] = useState(false)\n\n const formattedFiles = files?.map((file) => (\n isFile(file)\n ? createPreviewFileObject(file as unknown as File)\n : file\n ))\n\n const listRef = useRef<HTMLDivElement>(null)\n useEffect(() => {\n if (uploadingFiles && uploadingFilesReference && files) {\n if (enableSmartLoad) {\n const newVal = getNewUploadingFiles<T>(uploadingFilesReference, uploadingFiles, files)\n setUploadingFilesReference(newVal)\n } else {\n setUploadingFilesReference(uploadingFiles)\n }\n }\n if (listRef.current) {\n setOverflowing(isOverflowing(listRef.current))\n }\n }, [ uploadingFiles, files ])\n\n const isLazy = uploadingFilesReference\n ? any((file: T) => file.isLazy || false, uploadingFilesReference as T[])\n : false\n\n return (\n <Stack\n ref={ listRef }\n spacing={ 2 }\n maxH=\"sm\"\n pr={ overflowing ? 2 : 0 }\n overflowY=\"auto\"\n >\n { uploadingFilesReference && map((file) => (\n <FileItem\n onChangeCallback={ onChange }\n file={ file }\n key={ file._id }\n deleteFile={ deleteFile }\n confirmDelete={ confirmDelete }\n isLazy={ isLazy }\n editFileOptions={ editFileOptions }\n />\n ), uploadingFilesReference) }\n { formattedFiles && map((file) => (\n <FileItem\n onChangeCallback={ onChange }\n addFile={ addFile }\n file={ file }\n key={ file._id }\n deleteFile={ deleteFile }\n confirmDelete={ confirmDelete }\n editFileOptions={ editFileOptions }\n />\n ), formattedFiles) }\n </Stack>\n )\n}\n","import React, { useState } from 'react'\nimport { findIndex, identity, insert, isEmpty, isNil, remove } from 'ramda'\nimport { MultiFileList } from './multi-file-list'\nimport { createPreviewFileObject } from './utils'\nimport { MultiFileUploader } from './multi-file-uploader'\nimport { Stack } from '../stack'\nimport { defaultEditOptions, fiveHundredMB } from './constants'\nimport { FileFormat, MultiFilePickerProps } from './types'\n\n/**\n * Lets user import file of any type as Javascript File Object\n * @see FilePicker\n * @see {@link https://northlight.dev/reference/multi-file-picker}\n *\n * @example (Example)\n * (?\n * <MultiFilePicker />\n * ?)\n * ## For more information, view: <a href=\"https://northlight.dev/components/file%20picker\">guide</a>\n *\n *\n */\nexport function MultiFilePicker<T extends FileFormat> ({\n acceptFormat = '*',\n compression,\n onChange = identity,\n files = null,\n uploadingFiles,\n deleteFile = null,\n confirmDelete = true,\n maxFileSize = fiveHundredMB,\n enablePreLoad = true,\n enableSmartLoad = true,\n editFileOptions = defaultEditOptions,\n}: MultiFilePickerProps<T>) {\n const [ bufferFiles, setBufferFiles ] = useState<T[]>([])\n const [ previewFiles, setPreviewFiles ] = useState<T[]>([])\n\n const getIndexById = (id: string) => findIndex((file) => file._id === id, previewFiles)\n\n const addFile = (file: File, id: string) => {\n const addedFile = createPreviewFileObject(file)\n const indexOfChanged = getIndexById(id)\n const newPreviewFiles = remove(indexOfChanged, 1, previewFiles)\n const newFiles = insert(indexOfChanged, addedFile, newPreviewFiles)\n setPreviewFiles(newFiles as T[])\n }\n\n const handleDelete = (file: T | FileFormat) => {\n const indexOfRemoved = getIndexById(file._id)\n const newPreviewFiles = remove(indexOfRemoved, 1, previewFiles)\n setPreviewFiles(newPreviewFiles)\n }\n\n const updateQueuedFiles = (queuedFiles: T[]) => {\n if (enablePreLoad) {\n setBufferFiles(queuedFiles)\n }\n }\n\n return (\n <Stack\n spacing={ 4 }\n maxW=\"inherit\"\n maxH=\"inherit\"\n >\n <MultiFileUploader\n acceptFormat={ acceptFormat }\n compression={ compression }\n onChange={ onChange }\n addFilesToQueue={ updateQueuedFiles }\n updatePreviewFiles={ setPreviewFiles }\n maxFileSize={ maxFileSize }\n />\n <MultiFileList\n files={ files || previewFiles }\n onChange={ onChange }\n uploadingFiles={\n isEmpty(files) && (uploadingFiles?.length === 0 || isNil(uploadingFiles))\n ? bufferFiles\n : uploadingFiles\n }\n deleteFile={ deleteFile || handleDelete }\n confirmDelete={ confirmDelete }\n enableSmartLoad={ enableSmartLoad }\n editFileOptions={ editFileOptions }\n addFile={ addFile }\n />\n </Stack>\n )\n}\n","import React from 'react'\nimport { concat, findIndex, identity, isEmpty, map, remove } from 'ramda'\nimport { Field } from '../form'\nimport { MultiFilePicker } from './multi-file-picker'\nimport { createFileObjectFromSrc, isFile, toBase64 } from './utils'\nimport { FileFormat, MultiFilePickerFieldProps } from './types'\n\n/**\n * The multi file picker component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see MultiFilePicker\n * @see Field\n * @see {@link https://northlight.dev/reference/multi-file-picker-field}\n *\n * @example (Example)\n * ## Meant for uploading images in a form\n * Where they handled as base64 strings\n * (?\n * <Form initialValues={{images: []}}>\n * {({watch}) => (\n * <Stack>\n * <MultiFilePickerField name=\"images\" />\n * <Code maxH=\"xs\" overflowY=\"scroll\">{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n * </Form>\n *\n * ?)\n *\n */\nexport const MultiFilePickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: MultiFilePickerFieldProps) => {\n const getFiles = (sources: string[]) => {\n const buffer = map((source) => ({\n type: 'jpg',\n src: source,\n name: '',\n }), sources)\n const formattedFiles = map((file) => (isFile(file)\n ? file : createFileObjectFromSrc(file)), buffer)\n return formattedFiles as FileFormat[]\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => {\n const handleDelete = (file: FileFormat) => {\n const removedIndex = findIndex((src) => src === file.src, value)\n const newValues = remove(removedIndex, 1, value)\n onChange(newValues)\n }\n\n return (\n <MultiFilePicker\n onChange={ async (files: File[] | null) => {\n if (!isEmpty(files)) {\n const newFiles = files?.map(async (file) => toBase64(file))\n if (newFiles) {\n Promise.all(newFiles).then((values) => {\n onChange(concat(value, values))\n onChangeCallback(values)\n })\n }\n } else {\n onChange([])\n onChangeCallback([])\n }\n } }\n enablePreLoad={ false }\n enableSmartLoad={ false }\n deleteFile={ handleDelete }\n acceptFormat=\"image/*\"\n editFileOptions={ { canEdit: true, canEditImage: true, canEditName: false } }\n confirmDelete={ false }\n files={ getFiles(value) }\n { ...rest }\n />\n )\n } }\n </Field>\n )\n}\n","export const scrollbarStyles = {\n '::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '::-webkit-scrollbar-track': {\n background: 'background.scrollbar.track',\n },\n '::-webkit-scrollbar-thumb': {\n borderRadius: 'scrollbar.thumb',\n border: '2px solid',\n borderColor: 'border.scrollbar.thumb',\n backgroundClip: 'padding-box !important',\n background: 'background.scrollbar.thumb',\n },\n '::-webkit-scrollbar-thumb:hover': {\n borderRadius: 'scrollbar.thumb',\n border: '1px solid ',\n borderColor: 'border.scrollbar.thumb',\n backgroundClip: 'padding-box !important',\n background: 'background.scrollbar.thumb',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Breadcrumb: ComponentMultiStyleConfig = {\n parts: [ 'link', 'separator' ],\n baseStyle: {\n link: {\n padding: [ 0.5, 1 ],\n color: 'primary',\n fontWeight: '600',\n fontSize: 'semibold',\n _hover: {\n bg: 'blue.50',\n borderRadius: 'base',\n textDecor: 'none',\n },\n },\n separator: {\n color: 'gray.300',\n fontSize: 'semibold',\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Button: ComponentSingleStyleConfig = {\n sizes: {\n xs: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n paddingInlineStart: spacing['padding-inline'].button.xs,\n paddingInlineEnd: spacing['padding-inline'].button.xs,\n }),\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n paddingInlineStart: spacing['padding-inline'].button.md,\n paddingInlineEnd: spacing['padding-inline'].button.md,\n }),\n md: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.md,\n minWidth: sizing.button.md,\n paddingInlineStart: spacing['padding-inline'].button.md,\n paddingInlineEnd: spacing['padding-inline'].button.md,\n }),\n lg: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.lg,\n minWidth: sizing.button.lg,\n paddingInlineStart: spacing['padding-inline'].button.lg,\n paddingInlineEnd: spacing['padding-inline'].button.lg,\n }),\n },\n baseStyle: ({ theme: { colors: color, radii: borderRadius } }) => ({\n color: color.text.default,\n borderRadius: borderRadius.button.default,\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n }),\n variants: {\n default: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.default,\n _hover: {\n bgColor: color.background.button['default-hover'],\n },\n _active: {\n bgColor: color.background.button['default-active'],\n },\n }),\n danger: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.danger,\n color: color.text.button.danger,\n _hover: {\n bg: color.background.button['danger-hover'],\n _disabled: {\n bgColor: color.background.button.danger,\n },\n },\n _active: {\n bgColor: color.background.button['danger-active'],\n },\n }),\n success: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.success,\n _hover: {\n bg: color.background.button['success-hover'],\n _disabled: {\n bgColor: color.background.button.success,\n },\n },\n _active: {\n bgColor: color.background.button['success-active'],\n },\n }),\n brand: ({ theme: { colors: color } }) => ({\n color: color.text.inverted,\n bgColor: color.background.button.brand,\n _hover: {\n bg: color.background.button['brand-hover'],\n _disabled: {\n bgColor: color.background.button.brand,\n },\n },\n _active: {\n bgColor: color.background.button['brand-active'],\n },\n }),\n link: ({ theme: { colors: color } }) => ({\n textDecoration: 'underline',\n color: color.text.button.link,\n bgColor: color.background.button.link,\n _hover: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-hover'],\n },\n _active: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-active'],\n },\n }),\n ghost: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-hover'],\n _disabled: {\n bgColor: color.background.button.ghost,\n },\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n }),\n },\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentSingleStyleConfig, keyframes } from '@chakra-ui/react'\n\nconst pulseRing = keyframes`\n0% {\n transform: scale(0.33);\n}\n30% {\n transform: scale(0.66);\n},\n40%,\n50% {\n opacity: 0;\n}\n100% {\n opacity: 0;\n}\n`\n\nexport const Blinker: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: palette }, color, isBlinking }) => ({\n position: 'relative',\n borderRadius: '50%',\n bgColor: color === '' ? palette.blue['500'] : color,\n _before: isBlinking\n ? {\n content: \"''\",\n position: 'absolute',\n display: 'block',\n width: '300%',\n height: '300%',\n marginLeft: '-100%',\n marginTop: '-100%',\n borderRadius: '50%',\n bgColor: color === '' ? 'blue.500' : color,\n animation: `2.25s ${pulseRing} cubic-bezier(0.455, 0.03, 0.515, 0.955) -0.4s infinite`,\n zIndex: 'base',\n }\n : {},\n }),\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker['2xs'],\n width: sizing.blinker['2xs'],\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.xs,\n width: sizing.blinker.xs,\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.sm,\n width: sizing.blinker.sm,\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.md,\n width: sizing.blinker.md,\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.lg,\n width: sizing.blinker.lg,\n }),\n },\n defaultProps: {\n size: 'md',\n color: 'blue.500',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Checkbox: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label' ],\n sizes: {\n sm: {\n control: {\n fontSize: 5,\n },\n },\n md: {\n control: {\n fontSize: 7,\n },\n },\n lg: {\n control: {\n fontSize: 8,\n },\n },\n },\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n control: {\n borderColor: color.border.checkbox.default,\n bg: color.background.checkbox.default,\n borderWidth: 2,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n },\n },\n _invalid: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n _checked: {\n bg: color.background.checkbox.error,\n },\n _hover: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n _hover: {\n borderColor: color.border.checkbox['default-hover'],\n bg: color.background.checkbox.default,\n },\n _disabled: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n color: 'white',\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n },\n },\n _hover: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n },\n },\n },\n }),\n variants: {\n default: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.default,\n },\n }),\n rounded: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.full,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Input: ComponentMultiStyleConfig = {\n parts: [ 'field', 'addon' ],\n baseStyle: ({ theme: { colors: color } }) => ({\n field: {\n color: color.text.default,\n _placeholder: {\n color: color.text.input.placeholder,\n opacity: 1,\n },\n },\n }),\n variants: {\n outline: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _focusVisible: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n },\n _hover: {\n bgColor: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _invalid: {\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n addon: {\n border: 'none',\n background: 'none',\n color: color.text.default,\n },\n }),\n filled: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n borderRadius: borderRadius.input.filled,\n borderWidth: borderWidth.input.default,\n bgColor: color.background.input['filled-default'],\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n bgColor: color.background.input['filled-default'],\n },\n },\n _hover: {\n bgColor: color.background.input['filled-hover'],\n },\n _focusVisible: {\n boxShadow: `0 0 0 1px ${color.border.input.focus}`,\n borderColor: color.border.input.focus,\n bgColor: color.background.input['filled-focus'],\n _readOnly: {\n bgColor: color.background.input['filled-default'],\n },\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n },\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['filled-error'],\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['filled-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n }),\n flushed: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.flushed,\n paddingInlineEnd: spacing['padding-inline'].input.flushed,\n bgColor: color.background.input['flushed-default'],\n borderRadius: borderRadius.input.flushed,\n borderBottomWidth: borderWidth.input.default,\n borderBottomColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _hover: {\n bgColor: color.background.input['flushed-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focusVisible: {\n _hover: {\n boxShadow: `0 1px 0 0 ${color.border.input.focus}`,\n borderColor: color.border.input.focus,\n },\n _invalid: {\n boxShadow: `0 1px 0 0 ${color.border.input.error}`,\n borderColor: color.border.input.error,\n bgColor: color.background.input['flushed-error'],\n },\n },\n _invalid: {\n _hover: {\n boxShadow: `0 1px 0 0 ${color.border.input.error}`,\n borderColor: color.border.input.error,\n },\n bgColor: color.background.input['flushed-error'],\n },\n _disabled: {\n bgColor: color.background.input['flushed-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const PinInput: ComponentSingleStyleConfig = {\n variants: {\n outline: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n opacity,\n } }) => ({\n borderColor: color.border.input.default,\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n bg: color.background.input['outline-default'],\n color: color.text.default,\n paddingInline: spacing['padding-inline'].input.default,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focus: {\n borderColor: color.border.input.focus,\n bg: color.background.input['outline-focus'],\n },\n _invalid: {\n bg: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n _placeholder: {\n color: 'transparent',\n },\n },\n _disabled: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n _hover: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n },\n },\n _placeholder: {\n color: color.text.input.placeholder,\n },\n _readonly: {\n borderColor: color.border.input.readonly,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Select: ComponentMultiStyleConfig = {\n parts: [ 'field', 'icon' ],\n variants: {\n outline: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].select.default,\n paddingInlineEnd: spacing['padding-inline'].select.default,\n borderWidth: borderWidth.select,\n color: color.text.default,\n borderColor: color.border.select.default,\n borderRadius: borderRadius.select.default,\n _hover: {\n borderColor: color.border.select['default-hover'],\n },\n _focusVisible: {\n borderColor: color.border.select.focus,\n boxShadow: `0 0 0 1px ${color.border.select.focus}`,\n },\n _invalid: {\n borderColor: color.border.select.error,\n boxShadow: 'none',\n },\n _readOnly: {\n borderWidth: borderWidth.select,\n borderColor: color.border.select.readonly,\n _focusVisible: {\n borderColor: color.border.select.readonly,\n },\n },\n _disabled: {\n borderColor: color.border.select.disabled,\n bg: color.background.select.disabled,\n _hover: {\n borderColor: color.border.select.disabled,\n },\n },\n _placeholder: {\n color: color.text.select.placeholder,\n },\n },\n icon: {\n color: color.icon.select.default,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Radio: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label', 'container' ],\n sizes: {\n sm: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-sm'],\n },\n },\n }),\n md: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-md'],\n },\n },\n }),\n lg: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-lg'],\n },\n },\n }),\n },\n baseStyle: ({ theme: { borders: borderWidth, colors: color } }) => ({\n control: {\n borderColor: color.border.radio.default,\n bg: color.background.radio.default,\n borderWidth: borderWidth.radio.default,\n _checked: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n _hover: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n },\n },\n _hover: {\n borderColor: color.border.radio['default-hover'],\n bg: color.background.radio.default,\n },\n _disabled: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n _hover: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n },\n },\n _invalid: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n _hover: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n defaultProps: {\n size: 'md',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Tabs: ComponentMultiStyleConfig = {\n parts: [ 'tab' ],\n variants: {\n 'soft-rounded': ({ theme: { colors: color } }) => ({\n tab: {\n borderRadius: 999,\n color: color.text.subdued,\n _selected: {\n bg: color.background.tabs['soft-rounded-active'],\n color: color.text.tabs['soft-rounded-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Textarea: ComponentSingleStyleConfig = {\n variants: {\n outline: ({ theme: {\n space: spacing,\n colors: color,\n borders: borderWidth,\n radii: borderRadius,\n } }) => ({\n paddingInlineStart: spacing['padding-inline'].textarea.default,\n paddingInlineEnd: spacing['padding-inline'].textarea.default,\n borderRadius: borderRadius.textarea.default,\n borderWidth: borderWidth.textarea.default,\n borderColor: color.border.textarea.default,\n color: color.text.default,\n bgColor: color.background.textarea.default,\n _hover: {\n borderColor: color.border.textarea['default-hover'],\n bgColor: color.background.textarea.hover,\n },\n _focusVisible: {\n borderColor: color.border.textarea.focus,\n boxShadow: `0 0 0 1px ${color.border.textarea.focus}`,\n bgColor: color.background.textarea.active,\n },\n _invalid: {\n boxShadow: 'none',\n borderColor: color.border.textarea.error,\n bgColor: color.background.textarea.error,\n },\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.textarea.readonly,\n bgColor: color.background.textarea.default,\n },\n _hover: {\n borderColor: color.border.textarea.readonly,\n },\n },\n _disabled: {\n bgColor: color.background.textarea.disabled,\n _hover: {\n borderColor: color.border.textarea.default,\n },\n },\n _placeholder: {\n color: color.text.textarea.placeholder,\n },\n }),\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Link: ComponentSingleStyleConfig = {\n baseStyle: ({ colorScheme }) => ({\n _focus: {\n ring: '2px',\n ringColor: `${colorScheme}.100`,\n ringOffset: '1px',\n },\n }),\n defaultProps: {\n colorScheme: 'mediatoolBlue',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Switch: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n _disabled: {\n opacity: opacity.switch.disabled,\n },\n track: {\n bgColor: color.background.switch.default,\n _checked: {\n bgColor: color.background.switch['default-checked'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n thumb: {\n bgColor: color.background.switch.thumb,\n },\n }),\n}\n","import {\n ComponentMultiStyleConfig, useToken,\n} from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const Tag: ComponentMultiStyleConfig = {\n parts: [ 'container' ],\n baseStyle: {\n container: {\n fontWeight: 'semibold',\n },\n },\n sizes: {\n sm: {\n container: {\n borderRadius: 'tag.default',\n },\n },\n md: {\n container: {\n borderRadius: 'tag.default',\n },\n },\n lg: {\n container: {\n borderRadius: 'tag.default',\n },\n },\n },\n variants: {\n solid: ({ bgColor, colorScheme }) => ({\n container: {\n bgColor: bgColor ?? colorScheme,\n color: getContrastColor(bgColor ?? useToken('colors', colorScheme)),\n },\n }),\n subtle: () => ({\n container: {\n bgColor: useToken('colors', 'background.tag.subtle'),\n color: 'text.default',\n },\n }),\n },\n defaultProps: {\n size: 'md',\n colorScheme: 'background.tag.default',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Alert: ComponentMultiStyleConfig = {\n parts: [ 'container', 'title', 'description' ],\n baseStyle: ({ theme: {\n radii: borderRadius,\n colors: color,\n space: coreSpacing,\n } }) => ({\n container: {\n borderRadius: borderRadius.toast.default,\n color: color.text.default,\n paddingEnd: coreSpacing[8],\n width: 'auto',\n display: 'flex',\n },\n }),\n variants: {\n success: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.success,\n },\n }),\n warning: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.warning,\n },\n }),\n info: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.info,\n },\n }),\n error: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.error,\n color: color.text.toast.error,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const NumberInput: ComponentMultiStyleConfig = {\n parts: [ 'root', 'field', 'stepper', 'stepperGroup' ],\n sizes: {\n sm: ({ theme: { radii: borderRadius, sizes: sizing } }) => ({\n field: {\n borderRadius: borderRadius.input.outline,\n },\n stepperGroup: {\n height: sizing['8'],\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['10'],\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['12'],\n },\n }),\n },\n baseStyle: ({ theme: {\n sizes: sizing,\n space: spacing,\n colors: color,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n }, isReadOnly }) => ({\n root: {\n borderRadius: borderRadius.input.outline,\n },\n field: {\n minWidth: sizing['44'],\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n WebkitPaddingStart: spacing['padding-inline'].input.default,\n WebkitPaddingEnd: spacing['padding-inline'].input.default,\n color: color.text.default,\n bg: color.background.input['outline-default'],\n\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n paddingRight: spacing.paddingRight['number-input'].field,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focusVisible: {\n bg: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n boxShadow: `0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n bg: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n },\n _disabled: {\n bg: color.background.input['outline-disabled'],\n opacity: opacity.input.disabled,\n borderColor: color.border.input.disabled,\n },\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n boxShadow: 'none',\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n },\n stepperGroup: {\n width: 'auto',\n paddingRight: spacing.paddingRight['number-input'].stepper,\n },\n stepper: {\n _first: {\n border: 'none',\n borderTopRightRadius: borderRadius['input-stepper'].default,\n borderRadius: borderRadius['input-stepper'].default,\n bg: color.background['input-stepper'].default,\n opacity: isReadOnly ? opacity.input.disabled : 'auto',\n _hover: {\n bg: isReadOnly ? 'none' : color.background['input-stepper'].hover,\n },\n _active: {\n bg: color.background['input-stepper'].active,\n },\n _disabled: {\n bg: color.background['input-stepper'].disabled,\n color: color.icon['input-stepper'].disabled,\n },\n },\n _last: {\n border: 'none',\n bg: color.background['input-stepper'].default,\n borderBottomRightRadius: borderRadius['input-stepper'].default,\n borderRadius: borderRadius['input-stepper'].default,\n opacity: isReadOnly ? opacity.input.disabled : 'auto',\n _hover: {\n bg: isReadOnly ? 'none' : color.background['input-stepper'].hover,\n },\n _active: {\n bg: color.background['input-stepper'].active,\n },\n _disabled: {\n bg: color.background['input-stepper'].disabled,\n color: color.icon['input-stepper'].disabled,\n },\n },\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const NotificationIconButton: ComponentMultiStyleConfig = {\n parts: [ 'container', 'notifier' ],\n sizes: {\n xs: {\n notifier: {\n top: '0.5',\n right: '0.5',\n },\n },\n sm: {\n notifier: {\n top: '0.5',\n right: '0.5',\n },\n },\n md: {\n notifier: {\n top: '1',\n right: '1',\n },\n },\n lg: {\n notifier: {\n top: '2',\n right: '2',\n },\n },\n },\n variants: {\n link: {\n notifier: {\n position: 'absolute',\n top: '0',\n right: '0',\n zIndex: 'base',\n },\n },\n },\n baseStyle: () => ({\n container: {\n position: 'relative',\n },\n notifier: {\n position: 'absolute',\n top: '1',\n right: '1',\n zIndex: 'base',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { ring } from '../../../utils'\n\nexport const Calendar: ComponentMultiStyleConfig = {\n parts: [ 'container', 'dateSelect', 'dayLabel', 'rangeCalendarContainer' ],\n baseStyle: ({ theme: {\n space: spacing,\n sizes: sizing,\n colors: color,\n } }) => ({\n container: {\n p: spacing[2],\n w: sizing[64],\n bgColor: 'background.default',\n border: '1px solid',\n borderColor: 'border.input.default',\n borderRadius: 'input.outline',\n },\n rangeCalendarContainer: {\n p: '3',\n w: '128',\n bgColor: 'background.default',\n borderRadius: 'input.outline',\n },\n dateSelect: {\n fontWeight: 'semibold',\n border: 'none',\n padding: '0',\n borderRadius: 'md',\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n cursor: 'pointer',\n bgColor: color.background.button['ghost-hover'],\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n ...ring,\n },\n dayLabel: {\n color: color.gray[600],\n fontSize: 'xs',\n p: spacing[2],\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const DragAndDrop: ComponentMultiStyleConfig = {\n parts: [ 'dropZone' ],\n baseStyle: ({ sx }) => ({\n dropZone: merge({\n borderWidth: 'st.border.width.sm',\n borderStyle: 'dashed',\n borderColor: 'border.default',\n padding: '4',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '4',\n justifyContent: 'center',\n textAlign: 'center',\n minH: '56',\n minW: '56',\n bgColor: 'bg.filled',\n }, sx),\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const DatePicker: ComponentMultiStyleConfig = {\n parts: [ 'group', 'styledField', 'dateField', 'dateSegment' ],\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n group: {\n position: 'relative',\n alignItems: 'center',\n flex: 1,\n },\n styledField: {\n bgColor: 'background.default',\n _focusWithin: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.textarea.focus,\n boxShadow: `0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n dateField: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n },\n dateSegment: {\n caretColor: 'transparent',\n boxSizing: 'content-box',\n textAlign: 'center',\n outline: 'none',\n rounded: 'md',\n _focus: {\n bgColor: 'blue.500',\n color: color.text.inverted,\n },\n _placeholder: {\n color: 'red.500',\n },\n },\n }),\n variants: {\n outline: ({\n theme: { colors: color, radii: borderRadius, borders: borderWidth },\n }) => ({\n styledField: {\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n },\n }),\n filled: ({\n theme: { colors: color, radii: borderRadius, borders: borderWidth },\n }) => ({\n styledField: {\n bgColor: color.background.input['filled-default'],\n borderRadius: borderRadius.input.filled,\n borderWidth: borderWidth.input.default,\n borderColor: color.background.input['filled-default'],\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const FlipButton: ComponentMultiStyleConfig = {\n parts: [ 'container', 'button', 'buttonIcon' ],\n sizes: {\n xs: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].xs,\n minWidth: sizing['flip-button'].xs,\n paddingInlineStart: spacing['padding-inline']['flip-button'].xs,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].xs,\n fontSize: 'xs',\n },\n buttonIcon: {\n boxSize: sizing.icon.xs,\n },\n }),\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].sm,\n minWidth: sizing['flip-button'].sm,\n paddingInlineStart: spacing['padding-inline']['flip-button'].md,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].md,\n fontSize: 'sm',\n buttonIcon: {\n boxSize: sizing.icon.sm,\n },\n },\n }),\n md: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].md,\n minWidth: sizing['flip-button'].md,\n paddingInlineStart: spacing['padding-inline']['flip-button'].md,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].md,\n fontSize: 'md',\n buttonIcon: {\n boxSize: sizing.icon.md,\n },\n },\n }),\n lg: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].lg,\n minWidth: sizing['flip-button'].lg,\n paddingInlineStart: spacing['padding-inline']['flip-button'].lg,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].lg,\n fontSize: 'lg',\n buttonIcon: {\n boxSize: sizing.icon.lg,\n },\n },\n }),\n },\n baseStyle: ({ theme: {\n space: spacing,\n sizes: sizing,\n colors: color,\n opacity,\n radii: borderRadius,\n fontWeights: coreFontWeight,\n }, numberOfButtons }) => ({\n container: {\n borderRadius: borderRadius['flip-button'].default,\n paddingInlineStart: spacing['padding-inline']['flip-button-group'].default,\n paddingInlineEnd: spacing['padding-inline']['flip-button-group'].default,\n paddingY: spacing.paddingY['flip-button-group'].default,\n disply: 'grid',\n width: '100%',\n gap: spacing['padding-inline']['flip-button'].gap,\n gridTemplateColumns: `repeat(${numberOfButtons}, minmax(${sizing[32]}, 1fr))`,\n gridTemplateRows: '1fr',\n overflowX: 'auto',\n },\n button: {\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n color: color.text['flip-button'].default,\n cursor: 'pointer',\n borderRadius: borderRadius['flip-button'].default,\n fontWeight: coreFontWeight.semiBold,\n _disabled: {\n opacity: opacity['flip-button'].disabled,\n },\n _checked: {\n color: color.text['flip-button'].inverted,\n },\n },\n }),\n variants: {\n default: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-blue'],\n }, sx),\n button: {\n bgColor: color.background['flip-button']['default-deselected-blue'],\n _hover: {\n bgColor: color.background['flip-button']['hover-deselected-blue'],\n },\n _checked: {\n bgColor: color.background['flip-button']['default-selected-blue'],\n _hover: {\n bgColor: color.background['flip-button']['default-selected-blue'],\n },\n },\n },\n }),\n brand: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-brand'],\n }, sx),\n button: {\n bgColor: color.background['flip-button']['default-deselected-brand'],\n _hover: {\n bgColor: color.background['flip-button']['hover-deselected-brand'],\n },\n _checked: {\n bgColor: color.background['flip-button']['default-selected-brand'],\n _hover: {\n bgColor: color.background['flip-button']['default-selected-brand'],\n },\n },\n },\n }),\n },\n defaultProps: {\n size: 'md',\n variant: 'default',\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Spinner: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, borders: borderWidth } }) => ({\n borderWidth: borderWidth.spinner.default,\n color: color.background.spinner.thumb,\n borderBottomColor: color.background.spinner.track,\n borderLeftColor: color.background.spinner.track,\n }),\n}\n","import { randomColor } from '@chakra-ui/theme-tools'\nimport { getShades } from '../../../utils'\n\nconst possibleBgColors = getShades(400, 600)\n\nexport const getAvatarBgColor = (image: string, name: string, color: any) => {\n if (image) return color.background.avatar.image\n if (name) return randomColor({ string: name, colors: possibleBgColors })\n\n return color.background.avatar.default\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\nimport { getAvatarBgColor } from './get-avatar-bg-color'\n\nexport const Avatar: ComponentMultiStyleConfig = {\n parts: [ 'container', 'text', 'badge', 'icon' ],\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xs'],\n height: sizing.avatar['2xs'],\n },\n text: {\n lineHeight: sizing.avatar['2xs'],\n },\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xs,\n height: sizing.avatar.xs,\n },\n text: {\n lineHeight: sizing.avatar.xs,\n },\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.sm,\n height: sizing.avatar.sm,\n },\n text: {\n lineHeight: sizing.avatar.sm,\n },\n icon: {\n boxSize: sizing.avatar.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.md,\n height: sizing.avatar.md,\n },\n text: {\n lineHeight: sizing.avatar.md,\n },\n icon: {\n boxSize: sizing.avatar.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.lg,\n height: sizing.avatar.lg,\n },\n text: {\n lineHeight: sizing.avatar.lg,\n },\n icon: {\n boxSize: sizing.avatar.lg,\n },\n }),\n xl: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xl,\n height: sizing.avatar.xl,\n },\n text: {\n lineHeight: sizing.avatar.xl,\n },\n }),\n '2xl': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xl'],\n height: sizing.avatar['2xl'],\n },\n text: {\n lineHeight: sizing.avatar['2xl'],\n },\n }),\n\n },\n baseStyle: ({ theme: {\n colors: color,\n sizes: sizing,\n radii: borderRadius,\n }, image, name }) => {\n const avatarBgColor = getAvatarBgColor(image, name, color)\n\n return {\n container: {\n bgColor: avatarBgColor,\n color: getContrastColor(avatarBgColor),\n display: 'grid',\n placeItems: 'center',\n objectFit: 'cover',\n position: 'relative',\n },\n userImage: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n badge: {\n position: 'absolute',\n bottom: `-${sizing['1']}`,\n right: `-${sizing['1']}`,\n minWidth: sizing['5'],\n height: sizing['5'],\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: 'xs',\n fontWeight: 'semibold',\n padding: sizing['0a'],\n bgColor: color.red['500'],\n color: color.text.inverted,\n borderRadius: borderRadius.avatar.square,\n border: 'none',\n },\n\n }\n },\n variants: {\n square: ({ theme: { radii: borderRadius } }) => ({\n container: {\n aspectRatio: '1 / 1',\n borderRadius: borderRadius.avatar.square,\n '> img': {\n borderRadius: borderRadius.avatar.square,\n aspectRatio: '1 / 1',\n },\n },\n badge: {\n borderRadius: borderRadius.avatar.square,\n },\n }),\n rounded: ({ theme: { radii: borderRadius } }) => ({\n container: {\n aspectRatio: '1 / 1',\n borderRadius: borderRadius.avatar.rounded,\n '> img': {\n borderRadius: borderRadius.avatar.rounded,\n aspectRatio: '1 / 1',\n },\n },\n badge: {\n borderRadius: borderRadius.avatar.rounded,\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const CloseButton: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-hover'],\n _disabled: {\n bgColor: color.background.button.ghost,\n },\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n }),\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Modal: ComponentMultiStyleConfig = {\n parts: [ 'overlay', 'closeButton', 'dialog' ],\n sizes: {\n huge: {\n dialog: {\n width: '90%',\n maxW: '96rem',\n aspectRatio: '16/9',\n },\n },\n },\n baseStyle: ({ theme }) => {\n const {\n typography: { headings: { h3 } },\n } = theme\n return ({\n overlay: {\n bgColor: 'background.modal.overlay',\n backdropFilter: 'blur(8px)',\n },\n closeButton: {\n top: 4,\n right: 4,\n },\n dialog: {\n bgColor: 'background.default',\n borderRadius: 'modal.dialog',\n },\n header: {\n fontSize: h3.fontSize,\n paddingTop: 'paddingTop.modal.header',\n paddingBottom: 'paddingBottom.modal.header',\n border: 'modal.header',\n borderBottomColor: 'border.modal.header',\n borderBottomStyle: 'solid',\n },\n body: {\n paddingTop: 'paddingTop.modal.body',\n paddingBottom: 'paddingBottom.modal.body',\n },\n footer: {\n paddingTop: 'paddingTop.modal.footer',\n paddingBottom: 'paddingBottom.modal.footer',\n },\n })\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Tooltip: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, space: spacing, radii: borderRadius } }) => ({\n backgroundColor: color.background.tooltip.default,\n color: color.text.inverted,\n paddingInline: spacing['padding-inline'].tooltip.default,\n paddingY: spacing.paddingY.tooltip.default,\n borderRadius: borderRadius.tooltip.default,\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Icon: ComponentSingleStyleConfig = {\n sizes: {\n xs: {\n boxSize: 'icon.xs',\n },\n sm: {\n boxSize: 'icon.sm',\n },\n md: {\n boxSize: 'icon.md',\n },\n lg: {\n boxSize: 'icon.lg',\n },\n },\n baseStyle: ({ boxSize, color }) => ({\n boxSize: boxSize || 'icon.default',\n color: color || 'inherit',\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const ClipboardInput: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'tooltip' ],\n sizes: {\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n tooltip: {\n paddingInline: spacing['padding-inline'].tooltip.sm,\n paddingY: spacing.paddingY.tooltip.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const ColorPicker: ComponentMultiStyleConfig = {\n parts: [ 'colorButton', 'trigger', 'heading' ],\n baseStyle: ({ theme, selectedColor }) => {\n const { sizes: sizing, colors: color } = theme\n return ({\n heading: {\n border: 'none',\n paddingInlineStart: sizing['4'],\n paddingInlineEnd: sizing['2'],\n paddingBottom: sizing['0'],\n fontSize: 'md',\n fontWeight: 'semibold',\n },\n trigger: {\n bgColor: selectedColor ?? color.background.button.default,\n color: selectedColor ? getContrastColor(selectedColor) : 'unset',\n _hover: {\n bgColor: selectedColor ?? color.background.button['default-hover'],\n },\n _active: {\n bgColor: selectedColor ?? color.background.button['default-active'],\n },\n },\n colorButton: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n _hover: {\n ring: '2px',\n ringOffset: '1px',\n ringColor: `${color.border.input['default-hover']}`,\n },\n },\n })\n },\n sizes: {\n sm: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.lg,\n minWidth: sizing.button.lg,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Step: ComponentMultiStyleConfig = {\n parts: [ 'step', 'label', 'description' ],\n baseStyle: ({ theme: {\n colors: color,\n fontWeights,\n space: spacing,\n borders: borderWidth,\n } }) => ({\n step: {\n justifyContent: 'start',\n alignItems: 'start',\n bgColor: color.background.step.default,\n borderTopWidth: borderWidth.step.default,\n borderColor: color.border.step.default,\n borderBottom: 'none',\n paddingInline: spacing['padding-inline'].step.default,\n color: color.text.subdued,\n _hover: {\n bgColor: color.background.step.hover,\n borderColor: color.border.step.hover,\n },\n _active: {\n bgColor: color.background.step.active,\n },\n _selected: {\n bgColor: color.background.step.selected,\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n _hover: {\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n },\n },\n },\n label: {\n color: 'inherit',\n pt: spacing.paddingTop.step.label,\n textAlign: 'start',\n fontWeight: fontWeights.bold,\n },\n description: {\n textAlign: 'start',\n fontWeight: fontWeights.semiBold,\n color: color.text.default,\n },\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const StepList: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, tabs }) => ({\n display: 'grid',\n width: '100%',\n gridTemplateColumns: `repeat(${tabs}, minmax(${sizing[32]}, 1fr))`,\n gridTemplateRows: '1fr',\n overflowX: 'auto',\n borderBottom: 'none',\n paddingBottom: sizing[2],\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H1: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h1 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h1.fontFamily,\n fontWeight: h1.fontWeight,\n lineHeight: h1.lineHeight,\n fontSize: h1.fontSize,\n letterSpacing: h1.letterSpacing,\n textTransform: h1.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H2: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h2 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h2.fontFamily,\n fontWeight: h2.fontWeight,\n lineHeight: h2.lineHeight,\n fontSize: h2.fontSize,\n letterSpacing: h2.letterSpacing,\n textTransform: h2.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H3: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h3 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h3.fontFamily,\n fontWeight: h3.fontWeight,\n lineHeight: h3.lineHeight,\n fontSize: h3.fontSize,\n letterSpacing: h3.letterSpacing,\n textTransform: h3.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H4: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h4 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h4.fontFamily,\n fontWeight: h4.fontWeight,\n lineHeight: h4.lineHeight,\n fontSize: h4.fontSize,\n letterSpacing: h4.letterSpacing,\n textTransform: h4.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H5: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h5 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h5.fontFamily,\n fontWeight: h5.fontWeight,\n lineHeight: h5.lineHeight,\n fontSize: h5.fontSize,\n letterSpacing: h5.letterSpacing,\n textTransform: h5.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H6: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h6 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h6.fontFamily,\n fontWeight: h6.fontWeight,\n lineHeight: h6.lineHeight,\n fontSize: h6.fontSize,\n letterSpacing: h6.letterSpacing,\n textTransform: h6.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Blockquote: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { blockquote } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: blockquote.fontFamily,\n fontWeight: blockquote.fontWeight,\n lineHeight: blockquote.lineHeight,\n fontSize: blockquote.fontSize,\n letterSpacing: blockquote.letterSpacing,\n textTransform: blockquote.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Tiny: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { tiny } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: tiny.fontFamily,\n fontWeight: tiny.fontWeight,\n lineHeight: tiny.lineHeight,\n fontSize: tiny.fontSize,\n letterSpacing: tiny.letterSpacing,\n textTransform: tiny.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Capitalized: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { CAPITALIZED } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: CAPITALIZED.fontFamily,\n fontWeight: CAPITALIZED.fontWeight,\n lineHeight: CAPITALIZED.lineHeight,\n fontSize: CAPITALIZED.fontSize,\n letterSpacing: CAPITALIZED.letterSpacing,\n textTransform: CAPITALIZED.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Lead: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { lead } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: lead.fontFamily,\n fontWeight: lead.fontWeight,\n lineHeight: lead.lineHeight,\n fontSize: lead.fontSize,\n letterSpacing: lead.letterSpacing,\n textTransform: lead.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Small: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { small } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: small.fontFamily,\n fontWeight: small.fontWeight,\n lineHeight: small.lineHeight,\n fontSize: small.fontSize,\n letterSpacing: small.letterSpacing,\n textTransform: small.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const P: ComponentSingleStyleConfig = {\n variants: {\n 14: ({ theme, sx }) => {\n const { body14 } = theme.typography.body\n return merge({\n fontFamily: body14.fontFamily,\n fontWeight: body14.fontWeight,\n lineHeight: body14.lineHeight,\n fontSize: body14.fontSize,\n letterSpacing: body14.letterSpacing,\n textTransform: body14.textCase,\n }, sx)\n },\n 16: ({ theme, sx }) => {\n const { body16 } = theme.typography.body\n return merge({\n fontFamily: body16.fontFamily,\n fontWeight: body16.fontWeight,\n lineHeight: body16.lineHeight,\n fontSize: body16.fontSize,\n letterSpacing: body16.letterSpacing,\n textTransform: body16.textCase,\n }, sx)\n },\n },\n baseStyle: {\n color: 'text.default',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Label: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, sx }) => merge({\n color: 'inherit',\n width: '100%',\n maxWidth: '100%',\n marginBottom: sizing[0],\n marginInlineStart: sizing[0],\n marginEnd: sizing[0],\n marginInlineEnd: sizing[0],\n }, sx),\n sizes: {\n '2xs': ({ theme, sx }) => {\n const { tinyLabel } = theme.typography.labels\n return merge({\n fontFamily: tinyLabel.fontFamily,\n fontWeight: tinyLabel.fontWeight,\n lineHeight: tinyLabel.lineHeight,\n fontSize: tinyLabel.fontSize,\n letterSpacing: tinyLabel.letterSpacing,\n textTransform: tinyLabel.textCase,\n }, sx)\n },\n xs: ({ theme, sx }) => {\n const { xsLabel } = theme.typography.labels\n return merge({\n fontFamily: xsLabel.fontFamily,\n fontWeight: xsLabel.fontWeight,\n lineHeight: xsLabel.lineHeight,\n fontSize: xsLabel.fontSize,\n letterSpacing: xsLabel.letterSpacing,\n textTransform: xsLabel.textCase,\n }, sx)\n },\n sm: ({ theme, sx }) => {\n const { smLabel } = theme.typography.labels\n return merge({\n fontFamily: smLabel.fontFamily,\n fontWeight: smLabel.fontWeight,\n lineHeight: smLabel.lineHeight,\n fontSize: smLabel.fontSize,\n letterSpacing: smLabel.letterSpacing,\n textTransform: smLabel.textCase,\n }, sx)\n },\n md: ({ theme, sx }) => {\n const { mdLabel } = theme.typography.labels\n return merge({\n fontFamily: mdLabel.fontFamily,\n fontWeight: mdLabel.fontWeight,\n lineHeight: mdLabel.lineHeight,\n fontSize: mdLabel.fontSize,\n letterSpacing: mdLabel.letterSpacing,\n textTransform: mdLabel.textCase,\n }, sx)\n },\n lg: ({ theme, sx }) => {\n const { lgLabel } = theme.typography.labels\n return merge({\n fontFamily: lgLabel.fontFamily,\n fontWeight: lgLabel.fontWeight,\n lineHeight: lgLabel.lineHeight,\n fontSize: lgLabel.fontSize,\n letterSpacing: lgLabel.letterSpacing,\n textTransform: lgLabel.textCase,\n }, sx)\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const SplitPane: ComponentSingleStyleConfig = {\n baseStyle: ({ minLeftWidth, minRightWidth, initialSplit, isOpen }) => ({\n display: 'grid',\n overflow: 'hidden',\n gridTemplateColumns: !isOpen ? '1fr' : `minmax(${minLeftWidth}%, var(--split-pos, ${initialSplit}%)) auto minmax(${minRightWidth}%, 1fr)`,\n alignItems: 'stretch',\n justifyItems: 'stretch',\n height: '100%',\n width: '100%',\n }),\n}\n\nexport const PaneDivider: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, sizes: sizing } }) => ({\n bgColor: color.background['pane-divider'].default,\n zIndex: 300,\n cursor: 'col-resize',\n height: '100%',\n width: sizing[1],\n _hover: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n _active: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Carousel: ComponentMultiStyleConfig = {\n parts: [ 'container', 'arrow', 'radio' ],\n baseStyle: {\n container: {\n display: 'grid',\n placeItems: 'center',\n position: 'relative',\n overflow: 'hidden',\n width: 'full',\n height: 'full',\n },\n radio: {\n position: 'absolute',\n bottom: '1',\n left: '50%',\n transform: 'translateX(-50%)',\n overflowX: 'scroll',\n maxWidth: '90%',\n padding: '2',\n },\n arrow: {\n position: 'absolute',\n bottom: '0',\n height: '100%',\n cursor: 'pointer',\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const EditableText: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'controls', 'preview', 'input' ],\n sizes: {\n sm: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n controls: {\n width: !isEditing ? 6 : '3.25rem',\n },\n preview: {\n pt: 1,\n },\n input: {\n paddingInlineEnd: 16,\n paddingRight: 16,\n },\n }),\n md: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n controls: {\n width: !isEditing ? 8 : '4.25rem',\n },\n preview: {\n pt: '7px',\n },\n input: {\n paddingInlineEnd: 20,\n paddingRight: 20,\n },\n }),\n lg: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n controls: {\n width: !isEditing ? 10 : '5.25rem',\n },\n preview: {\n pt: '8px',\n },\n input: {\n paddingInlineEnd: 24,\n paddingRight: 24,\n },\n }),\n },\n baseStyle: {\n controls: {\n mr: 1,\n },\n preview: {\n fontWeight: 'semibold',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n paddingTop: 0,\n paddingBottom: 0,\n },\n input: {\n fontWeight: 'semibold',\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Toolbox: ComponentMultiStyleConfig = {\n parts: [ 'container', 'header', 'body', 'footer' ],\n baseStyle: ({ theme: { sizes: sizing } }) => ({\n container: {\n position: 'relative',\n flexDirection: 'column',\n bg: 'text.inverted',\n h: '100vh',\n borderLeftWidth: '1px',\n borderLeftStyle: 'solid',\n borderLeftColor: 'gray.100',\n },\n header: {\n alignItems: 'center',\n height: '16',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n borderBottomColor: 'gray.100',\n pl: '4',\n pr: '16',\n },\n footer: {\n position: 'absolute',\n bottom: '0',\n w: 'full',\n p: '4',\n alignItems: 'center',\n height: '16',\n borderTopWidth: '1px',\n borderTopStyle: 'solid',\n borderTopColor: 'gray.100',\n },\n body: {\n p: sizing['4'],\n flexDirection: 'column',\n w: '100%',\n h: '100%',\n maxH: `calc(100vh - ${sizing['16']} * 2)`,\n overflowY: 'scroll',\n },\n }),\n sizes: {\n sm: {\n container: {\n w: 'xs',\n },\n },\n md: {\n container: {\n w: 'md',\n },\n },\n lg: {\n container: {\n w: 'xl',\n },\n },\n },\n}\n","import { ComponentMultiStyleConfig, keyframes } from '@chakra-ui/react'\nimport { CSSObject } from '@emotion/react'\nimport { CurrentTheme } from '../../../utils'\n\nconst shakeAnimation = keyframes`\n 0% { transform: translate(1px, 1px) rotate(0deg); }\n 10% { transform: translate(-1px, -2px) rotate(-1deg); }\n 20% { transform: translate(-3px, 0px) rotate(1deg); }\n 30% { transform: translate(3px, 2px) rotate(0deg); }\n 40% { transform: translate(1px, -1px) rotate(1deg); }\n 50% { transform: translate(-1px, 2px) rotate(-1deg); }\n 60% { transform: translate(-3px, 1px) rotate(0deg); }\n 70% { transform: translate(3px, 1px) rotate(-1deg); }\n 80% { transform: translate(-1px, -1px) rotate(1deg); }\n 90% { transform: translate(1px, 2px) rotate(0deg); }\n 100% { transform: translate(1px, -2px) rotate(-1deg); }\n`\n\nconst thickRing: CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '3px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n\nconst getBgColor = (currentTheme: CurrentTheme) => {\n switch (currentTheme) {\n case 'webappTheme': return 'blue.50'\n case 'tottTheme': return 'blue.900'\n default: return 'bg.filled'\n }\n}\n\nconst getInvalidColorStyles = (isInvalid: boolean, isImage = true, currentTheme: CurrentTheme = 'webappTheme') => ({\n borderColor: isInvalid ? 'red.500' : 'gray.300',\n bgColor: isInvalid && 'red.50',\n animation: isInvalid && `500ms ${shakeAnimation} ease`,\n _hover: isImage && {\n bgColor: isInvalid ? 'red.50' : getBgColor(currentTheme),\n borderColor: isInvalid ? 'red.500' : 'blue.500',\n },\n})\n\nexport const FilePicker: ComponentMultiStyleConfig = {\n parts: [ 'filePicker', 'fileItem', 'multiFilePicker' ],\n baseStyle: ({ theme: { sizes, colors }, hasLoaded, isImage, isInvalid, currentTheme }) => ({\n filePicker: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: '44',\n height: '40',\n textAlign: 'center',\n position: 'relative',\n borderWidth: hasLoaded && isImage ? '0' : sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, isImage, currentTheme),\n ...thickRing,\n },\n multiFilePicker: {\n width: 'full',\n maxWidth: 'inherit',\n height: '32',\n position: 'relative',\n borderWidth: sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, undefined, currentTheme),\n ...thickRing,\n },\n fileItem: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n paddingX: '2',\n paddingY: '1',\n borderRadius: sizes['2'],\n textAlign: 'center',\n position: 'relative',\n border: `2px solid ${colors.gray['100']}`,\n minHeight: '20',\n },\n }),\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n WebappSkin as WebappSkinTokens,\n typography,\n} from '@northlight/tokens'\n\nexport const WebappSkin:ThemeOverride = {\n colors: WebappSkinTokens.color,\n sizes: WebappSkinTokens.sizing,\n space: WebappSkinTokens.spacing,\n radii: WebappSkinTokens.borderRadius,\n borders: WebappSkinTokens.borderWidth,\n opacity: WebappSkinTokens.opacity,\n typography,\n shadows: WebappSkinTokens.boxShadow,\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n TottSkin as TottSkinTokens,\n typography,\n} from '@northlight/tokens'\n\nexport const TottSkin:ThemeOverride = {\n colors: TottSkinTokens.color,\n sizes: TottSkinTokens.sizing,\n space: TottSkinTokens.spacing,\n radii: TottSkinTokens.borderRadius,\n borders: TottSkinTokens.borderWidth,\n opacity: TottSkinTokens.opacity,\n shadows: TottSkinTokens.boxShadow,\n typography,\n}\n","import {\n ThemeOverride,\n extendTheme,\n} from '@chakra-ui/react'\nimport {\n coreBorderRadius,\n coreBoxShadow,\n coreFontSize,\n coreFontWeight,\n coreLineHeight,\n coreSizing,\n coreSpacing,\n coreZIndex,\n palette,\n} from '@northlight/tokens'\nimport { scrollbarStyles } from './global/scrollbar'\nimport * as components from './components'\nimport { TottSkin, WebappSkin } from './skins'\n\nconst overrides: ThemeOverride = {\n config: {\n cssVarPrefix: '',\n },\n semanticTokens: {\n colors: {\n 'chakra-body-text': {\n _light: 'text.default',\n _dark: 'text.inverted',\n },\n },\n },\n styles: {\n global: {\n html: {\n scrollBehavior: 'smooth',\n },\n body: {\n height: '100%',\n },\n '#app': {\n height: '100%',\n },\n ...scrollbarStyles,\n },\n },\n fonts: {\n heading: 'Inter, sans-serif',\n body: 'Inter, sans-serif',\n },\n components: { ...components },\n colors: palette,\n zIndices: coreZIndex,\n sizes: coreSizing,\n space: coreSpacing,\n fontWeights: coreFontWeight,\n shadows: coreBoxShadow,\n fontSizes: coreFontSize,\n lineHeights: coreLineHeight,\n radii: coreBorderRadius,\n borderWidths: WebappSkin.borders,\n}\n\nexport const theme = extendTheme(overrides, WebappSkin)\n\nexport const tottTheme = extendTheme(overrides, TottSkin)\n","import React from 'react'\nimport { ChakraProvider } from '@chakra-ui/react'\nimport { theme as webappTheme } from '../../theme'\nimport { MediatoolThemeProviderProps } from './types'\nimport { CustomTheme } from '../../utils/use-current-theme'\n\n/**\n * Should be at the root of you project, wraps the app in the theme context\n * @see {@link https://northlight.dev/reference/mediatool-theme-provider}\n *\n * @example\n * Should pass down a theme from northlight/ui, currently exports two themes:\n * * theme - light mode\n * * tottTheme - dark mode\n *\n *\n */\nexport const MediatoolThemeProvider = ({\n children,\n theme = webappTheme,\n themeName = 'webappTheme',\n}: MediatoolThemeProviderProps) => (\n <ChakraProvider resetCSS={ true } theme={ theme }>\n <CustomTheme.Provider value={ themeName }>\n { children }\n </CustomTheme.Provider>\n </ChakraProvider>\n)\n","import React from 'react'\nimport {\n NumberInputStepper as ChakraNumberInputStepper,\n NumberDecrementStepper,\n NumberIncrementStepper,\n} from '@chakra-ui/react'\nimport { ChevronDownSolid, ChevronUpSolid } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { HStack } from '../stack'\nimport { Divider } from '../divider'\nimport { P } from '../typography'\nimport { Center } from '../center'\nimport { NumberInputStepperProps } from './types'\n\nexport const NumberInputStepper = ({\n includePercentage = false,\n}: NumberInputStepperProps) => (\n <ChakraNumberInputStepper>\n <HStack alignItems=\"center\" h=\"full\">\n { includePercentage && (\n <Center bgColor=\"gray.50\" borderRadius=\"md\" boxSize=\"6\">\n <P>%</P>\n </Center>\n ) }\n <Divider orientation=\"vertical\" h=\"50%\" />\n <NumberIncrementStepper border=\"none\">\n <Icon\n as={ ChevronUpSolid }\n color=\"icon.input-stepper.default\"\n boxSize={ 4 }\n />\n </NumberIncrementStepper>\n <NumberDecrementStepper>\n <Icon\n as={ ChevronDownSolid }\n color=\"icon.input-stepper.default\"\n boxSize={ 4 }\n />\n </NumberDecrementStepper>\n </HStack>\n </ChakraNumberInputStepper>\n)\n","import { head, isNil, last, length, match, split } from 'ramda'\n\nconst regex = /(9{13,}|0{13,})(\\d)*$/gm\n\nexport const advancedParseFloat = (value: number | string) => {\n if (isNil(value) || Number.isNaN(parseFloat(value as string))) {\n return value\n }\n\n const splitValue = split('.', `${value}`)\n const intPart = head(splitValue)\n const decimalPart = last(splitValue)\n\n if (isNil(decimalPart)) {\n return value\n }\n\n const roundingError = match(regex, decimalPart)\n if (isNil(roundingError)) {\n return value\n }\n\n const decimalsErrorLength = length(head(roundingError) as string)\n const correctDecimalsLength = decimalPart.length - decimalsErrorLength\n\n return parseFloat(\n parseFloat(`${intPart}.${decimalPart}`)\n .toFixed(correctDecimalsLength)\n )\n}\n","import React, { ChangeEvent } from 'react'\nimport {\n NumberInput as ChakraNumberInput,\n NumberInputField,\n} from '@chakra-ui/react'\nimport { defaultTo, identity, path } from 'ramda'\nimport { NumberInputStepper } from './number-input-stepper'\nimport { NumberInputProps } from './types'\nimport { advancedParseFloat } from './advanced-parse-float'\n\n/**\n * Basic accessible input that only allows numbers, with support for arrow keys,\n * min max values and percentages\n *\n * @example\n * (?\n * <Box p=\"3\">\n * <NumberInput max={100} min={0} step={3} onlyAcceptPercentage={true} />\n * </Box>\n * ?)\n */\nexport const NumberInput = ({\n variant = 'default',\n size = 'md',\n onChange = identity,\n onInputChange = identity,\n name,\n onlyAcceptPercentage = false,\n ...rest\n}: NumberInputProps) => {\n const percentageProps = onlyAcceptPercentage && {\n step: 0.1,\n }\n\n const percentageFactor = onlyAcceptPercentage ? 0.01 : 1\n const handleChange = (e: ChangeEvent<HTMLInputElement> | string) => {\n const input = defaultTo(e, path([ 'target', 'value' ], e)) as string\n onInputChange(input)\n\n const value = advancedParseFloat(parseFloat(input) * percentageFactor)\n\n const filteredNaN = Number.isNaN(value)\n ? ''\n : value\n\n onChange(`${filteredNaN}`)\n }\n\n return (\n <ChakraNumberInput\n variant={ variant }\n size={ size }\n onChange={ handleChange }\n id={ name }\n { ...percentageProps }\n { ...rest }\n >\n <NumberInputField onChange={ handleChange } />\n <NumberInputStepper includePercentage={ onlyAcceptPercentage } />\n </ChakraNumberInput>\n )\n}\n","import React, { useState } from 'react'\nimport { identity, isNil } from 'ramda'\nimport { NumberInputFieldProps } from './types'\nimport { Field } from '../form'\nimport { NumberInput } from './number-input'\nimport { advancedParseFloat } from './advanced-parse-float'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\n/**\n * The number input component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see NumberInput\n * @see {@link https://northlight.dev/reference/number-input-field}\n *\n */\nexport const NumberInputField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n onlyAcceptPercentage = false,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: NumberInputFieldProps) => {\n const formatNumber = (value: number, factor: number) => (\n onlyAcceptPercentage\n ? advancedParseFloat(value * factor)\n : value\n )\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => {\n const initialValue = isNil(value) || Number.isNaN(parseFloat(value))\n ? ''\n : formatNumber(value, 100)\n\n const [ displayValue, setDisplayValue ] = useState(initialValue)\n\n return (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <NumberInput\n name={ name }\n data-testid=\"number-input-field-test-id\"\n onInputChange={ (v) => {\n setDisplayValue(v)\n const parsed = formatNumber(parseFloat(v), 0.01)\n\n onChange(parsed)\n onChangeCallback(parsed)\n } }\n value={ displayValue }\n onlyAcceptPercentage={ onlyAcceptPercentage }\n { ...rest }\n />\n </InputGroupWrapper>\n )\n } }\n </Field>\n )\n}\n","import React, { forwardRef, useState } from 'react'\nimport { Box, useMultiStyleConfig } from '@chakra-ui/react'\nimport { Blinker } from '../blinker'\nimport { IconButton } from '../icon-button'\nimport { NotificationIconButtonProps } from './types'\n\n/**\n * A custom component that composes the IconButton and Blinker components.\n * The notification blinker blinks on hover.\n * @see {@link https://northlight.dev/reference/notification-icon-button}\n *\n * @example\n * (?\n * <Box w=\"min-content\">\n<NotificationIconButton\n variant=\"brand\"\n aria-label=\"conversations\"\n icon={ <Icon as={ ConversationDuo } /> }\n hasNotification={ true }\n size=\"lg\"\n/>\n</Box>\n * ?)\n */\nexport const NotificationIconButton = forwardRef(({\n variant = 'ghost',\n icon,\n 'aria-label': ariaLabel,\n hasNotification = false,\n blinkerColor = 'green.500',\n size,\n ...rest\n}: NotificationIconButtonProps, ref: any) => {\n const [ isBlinking, setIsBlinking ] = useState(false)\n const { container, notifier } = useMultiStyleConfig('NotificationIconButton', { size, variant })\n return (\n <Box\n onMouseEnter={ () => setIsBlinking(true) }\n onMouseLeave={ () => setIsBlinking(false) }\n sx={ container }\n >\n { hasNotification && (\n <Box sx={ notifier }>\n <Blinker isBlinking={ isBlinking } color={ blinkerColor } size=\"2xs\" />\n </Box>\n ) }\n <IconButton\n variant={ variant }\n icon={ icon }\n aria-label={ ariaLabel }\n ref={ ref }\n size={ size }\n { ...rest }\n />\n </Box>\n )\n})\n","import React from 'react'\nimport { PinInput as ChakraPinInput } from '@chakra-ui/react'\nimport { PinInputProps } from './types'\n\n/**\n * For entering numbers in ex two factor authentication\n * @see {@link https://northlight.dev/reference/pin-input}\n * @example\n * (?\n <HStack p=\"1\">\n <PinInput>\n <PinInputField />\n <PinInputField />\n <PinInputField />\n <PinInputField />\n </PinInput>\n </HStack>\n * ?)\n *\n *\n */\nexport const PinInput = ({\n variant = 'outline',\n hidden,\n children,\n ...rest\n}: PinInputProps) => (\n <ChakraPinInput { ...rest } variant={ variant } placeholder=\"●\" mask={ hidden }>\n { children }\n </ChakraPinInput>\n)\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { getContrastColor } from '../../../utils'\n\nexport const customSelectStyles: ChakraStylesConfig<any> = {\n container: (provided) => ({\n ...provided,\n width: '100%',\n color: 'text.default',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isFocused && 'background.select.option-focus',\n _active: {\n background: 'background.select.option-active',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n }),\n downChevron: (provided) => ({\n ...provided,\n color: 'icon.select.default',\n }),\n placeholder: (provided) => ({\n ...provided,\n color: 'text.select.placeholder',\n }),\n multiValue: (provided, state) => {\n const background = state.data.isFixed\n ? 'background.select.option-disabled'\n : state.data.color ?? provided.bgColor\n return ({\n ...provided,\n bgColor: background,\n color: getContrastColor(background),\n })\n },\n menuList: (provided) => ({\n ...provided,\n bgColor: 'background.default',\n }),\n}\n","import React, { FunctionComponent, useMemo, useRef } from 'react'\nimport {\n Select as ChakraReactSelect,\n GroupBase,\n OptionsOrGroups,\n} from 'chakra-react-select'\nimport { Box } from '@chakra-ui/react'\nimport { equals, identity, is } from 'ramda'\nimport { Option, SelectProps } from './types'\nimport { customSelectStyles } from '../../theme/components/select/custom-select'\nimport { useSelectCallbacks } from '../../hooks'\nimport { getComponents } from '../search-bar/get-components'\n\n/**\n * Select component that provides a customizable and accessible select input.\n * It is built on top of Chakra UI and Chakra React Select components.\n *\n * @see SearchBar\n * @see {@link https://northlight.dev/reference/select}\n *\n * @example (Example)\n * ## Single Select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isClearable={ true }\n * />\n * ?)\n *\n * @example (Example)\n * ## Clearable Select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isClearable={ true }\n * />\n * ?)\n *\n * @example (Example)\n * ## Multi select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isMulti\n * />\n * ?)\n *\n * @example (Example)\n * ## Event meta\n * _There is a second argument passed to the handlechange that can be useful\n * for knowing which elements where adding/removed_\n * (?\n * () => {\n * const handleChange = (val, e) => {\n switch (e.action) {\n case 'select-option':\n //on add value\n console.log(e.option)\n break\n case 'pop-value':\n //on remove value\n console.log(e.removedValue.categoryKey)\n break\n default:\n break\n }\n }\n * return <Select onChange={handleChange} options={[{label: '1', value: '1'}]} isMulti={true}/>\n *\n * }\n * ?)\n *\n * @example (Example)\n * ##Customizing\n * There are two special props for easy customization\n * * customOption\n * * customTag\n *\n * This are themselves react components\n * (?\n+const customOption = ({ label }) => (\n <HStack>\n <Avatar name={label} />\n <P>{label}</P>\n </HStack>\n);\n\nconst customTag = ({ label }) => {\n const [ isIncluded, setIsIncluded ] = useState(true)\n const toggle = () => setIsIncluded((prev) => !prev)\n\n return (\n <Flex>\n <Button\n size=\"xs\"\n onClick={ toggle }\n onMouseDown={ (e) => e.stopPropagation() }\n >\n { isIncluded ? 'Include' : 'Exclude' }\n </Button>\n <Tag>{ label }</Tag>\n </Flex>\n )\n}\n\nconst CustomSelect = () => (\n <Select\n customOption={customOption}\n customTag={ customTag }\n isMulti={true}\n options={[\n { label: 'Option 1', value: '1' },\n { label: 'Option 2', value: '2' },\n ]}\n\n />\n);\n\nrender(<CustomSelect />);\n *\n * ?)\n *\n *\n * @example (Example)\n * ## Testing\n * You can grab the test id for the select by\n * **screen.getByTestId('custom-testid)\n * .children[0].children[2].children[0].children[1].children[0]**\n * (?\n * <Select\n * data-testid=\"custom-test-id\"\n * />\n * ?)\n*/\nexport function Select<T extends Option> ({\n options,\n isMulti = false,\n onChange = identity,\n onAdd = identity,\n onRemove = identity,\n isLoading,\n loadingList = () => null,\n 'data-testid': testId,\n customOption = null,\n customTag = null,\n value,\n icon,\n ...rest\n}: SelectProps<T>) {\n const CustomSelect = ChakraReactSelect as FunctionComponent<SelectProps<T>>\n const handleChange = useSelectCallbacks<T>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? (value as T[]) : [],\n })\n\n const customComponents = getComponents<T>()\n\n const prevOptions = useRef<OptionsOrGroups<T, GroupBase<T>> | undefined>(\n options\n )\n const renderedOptions = useMemo(() => {\n if (!equals(prevOptions.current, options)) {\n prevOptions.current = options\n }\n return prevOptions.current\n }, [ options ])\n\n return (\n <Box w=\"full\" data-testid={ testId }>\n <CustomSelect\n isMulti={ isMulti }\n options={ renderedOptions }\n useBasicStyles={ true }\n closeMenuOnSelect={ !isMulti }\n hideSelectedOptions={ false }\n isClearable={ false }\n onChange={ handleChange }\n selectedOptionStyle=\"check\"\n chakraStyles={ customSelectStyles }\n isLoading={ isLoading }\n { ...(isLoading && { components: { MenuList: loadingList } }) }\n value={ value }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n { ...rest }\n />\n </Box>\n )\n}\n","import React from 'react'\nimport { FieldValues } from 'react-hook-form'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity } from 'ramda'\nimport { Option, SelectFieldProps } from './types'\nimport { Field } from '../form'\nimport { Select } from './select'\nimport { HStack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\nexport function SelectField<T extends Option> ({\n name,\n label,\n options,\n direction = 'column',\n isMulti,\n isRequired,\n validate,\n isClearable = true,\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: SelectFieldProps<T>) {\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <Select<T>\n name={ name }\n options={ options }\n isMulti={ isMulti }\n onChange={ (values: FieldValues, event) => {\n onChange(\n isMulti\n ? values.map((item: any) => item.value)\n : values.value\n )\n onChangeCallback(values as T | T[], event)\n } }\n value={\n value\n ? options?.flatMap((inner : any) => (inner.options ? inner.options : inner))\n .filter((option: any) => value.includes(option.value)) as any\n : null\n }\n { ...rest }\n />\n </InputGroupWrapper>\n <IconButton\n aria-label={ `${name}-close-button` }\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n hidden={ value === undefined || !isClearable }\n onClick={ () => { onChange(undefined) } }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n}\n","import React from 'react'\nimport { Switch as ChakraSwitch } from '@chakra-ui/react'\nimport { SwitchProps } from './types'\n\n/**\n * @see SwitchField\n * @see {@link https://northlight.dev/reference/switch}\n *\n * @example (Example)\n * Mainly used for forms, however this component is controlled by\n * a value prop and an onChange callback\n *\n * (?\n * () => {\n * const [ advancedMode, setAdvancedMode ] = useState(false)\n *\n * return (\n * <Stack p=\"2\">\n * <Label size=\"sm\" htmlFor=\"advanced-mode-switch\">Advanced mode</Label>\n * <Switch name=\"vegan-checkbox\" onChange={() => setAdvancedMode((prev) => !prev)}\n * value={advancedMode} />\n * </Stack>\n * )\n * }\n * ?)\n */\nexport const Switch = ({\n value,\n onChange,\n name,\n size = 'md',\n ...rest\n}: SwitchProps) => (\n <ChakraSwitch\n size={ size }\n id={ name }\n isChecked={ value }\n onChange={ onChange }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { SwitchFieldProps } from './types'\nimport { Field } from '../form'\nimport { Switch } from './switch'\nimport { Box } from '../box'\nimport { Flex } from '../flex'\nimport { Label } from '../typography'\n\n/**\n * The switch component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see switch\n * @see {@link https://northlight.dev/reference/switch-field}\n* @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}}>\n * <SwitchField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPosition=\"left\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const SwitchField = ({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPosition = 'right',\n ...rest\n}: SwitchFieldProps) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <Flex\n gap={ 2 }\n direction={ labelPosition === 'left' ? 'row-reverse' : 'row' }\n >\n <Switch\n name={ name }\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"switch-field-test-id\"\n { ...rest }\n />\n { label && <Label htmlFor={ name }>{ label }</Label> }\n </Flex>\n ) }\n </Field>\n </Box>\n)\n","import React from 'react'\nimport { TabPanel as ChakraTabPanel } from '@chakra-ui/react'\nimport { TabPanelProps } from './types'\n\n/**\n * Used to display content under tabs context\n * @see Tabs\n * @see {@link https://northlight.dev/reference/tab-panel}\n * @example\n * (? <TabPanel>Tab 1</TabPanel> ?)\n */\nexport const TabPanel = (props: TabPanelProps) => (\n <ChakraTabPanel padding={ 0 } { ...props } />\n)\n","import React from 'react'\nimport { Tabs as ChakraTabs } from '@chakra-ui/react'\nimport { TabsProps } from './types'\n\n/**\n * Context provider for tabs tabs\n * @see TabList\n * @see TabPanels\n * @see {@link https://northlight.dev/reference/tabs}\n * @example\n * (?\n <Tabs>\n <Stack spacing=\"2\">\n <TabList>\n <Tab>One</Tab>\n <Tab>Two</Tab>\n <Tab>Three</Tab>\n </TabList>\n <TabPanels>\n <TabPanel>\n <P>one!</P>\n </TabPanel>\n <TabPanel>\n <P>two!</P>\n </TabPanel>\n <TabPanel>\n <P>three!</P>\n </TabPanel>\n </TabPanels>\n </Stack>\n </Tabs>\n * ?)\n *\n */\nexport const Tabs = (({\n children,\n variant = 'soft-rounded',\n isManual = true,\n ...rest\n}: TabsProps) => (\n <ChakraTabs\n isManual={ isManual }\n variant={ variant }\n { ...rest }\n >\n { children }\n </ChakraTabs>\n))\n","import React from 'react'\nimport { Textarea as ChakraTextarea } from '@chakra-ui/react'\nimport { TextareaProps } from './types'\n\n/**\n * Text input for larger raw text\n * @see Input\n * @see {@link https://northlight.dev/reference/textarea}\n *\n * @example\n * (? <Textarea /> ?)\n */\nexport const Textarea = ({\n size = 'md',\n onChange,\n name,\n value,\n ...rest\n}: TextareaProps) => (\n <ChakraTextarea\n size={ size }\n id={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { TextareaFieldProps } from './types'\nimport { Field } from '../form'\nimport { Textarea } from './textarea'\n\nexport const TextareaField = ({\n name,\n label,\n isRequired,\n validate,\n direction,\n onChange: onChangeCallback = identity,\n ...rest\n}: TextareaFieldProps) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n >\n { ({ onChange, value }) => (\n <Textarea\n name={ name }\n data-testid=\"textarea-field-test-id\"\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n)\n","import React from 'react'\nimport { Input } from '../input'\nimport { FormattedNumberInputProps } from './types'\n\nexport const FormattedNumberInput = ({\n onChange,\n formatter,\n ...rest\n}: FormattedNumberInputProps) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const { target: { value } } = e\n const unFormattedValue = value === ''\n ? value\n : formatter.unFormat(value)\n\n onChange?.(unFormattedValue)\n }\n\n const value = rest.value ?? ''\n\n const formattedValue = value === ''\n ? value\n : formatter.format(value)\n\n return (\n <Input\n { ...rest }\n value={ formattedValue }\n onChange={ handleChange }\n />\n )\n}\n","import React from 'react'\nimport InputMask from 'react-input-mask'\nimport { Input } from '../input'\nimport { MaskedTextInputProps } from './types'\n\n//! Overload error in @types/react-input-mask, overwriting faulty types as unknown as any\nconst CustomInput = InputMask as unknown as any\n\nexport const MaskedTextInput = ({\n mask,\n maskPlaceholder,\n alwaysShowMask,\n name,\n value,\n placeholder,\n onChange,\n onBlur,\n ...rest\n}: MaskedTextInputProps) => (\n <CustomInput\n mask={ mask }\n maskPlaceholder={ maskPlaceholder }\n alwaysShowMask={ alwaysShowMask }\n name={ name }\n value={ value }\n onChange={ onChange }\n onBlur={ onBlur }\n >\n { ({ name: nameProp }: any) => (\n <Input\n placeholder={ maskPlaceholder ?? placeholder }\n name={ nameProp }\n { ...rest }\n />\n ) }\n </CustomInput>\n)\n","import React from 'react'\nimport { identity } from 'ramda'\nimport { TextFieldProps } from './types'\nimport { Input } from '../input'\nimport { Field } from '../form'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper'\n\n/**\n * The Input component wrapped in <Field />\n * Also supported formmated and musked input via as prop\n * @see Input\n * @see MaskedTextInput\n * @see FormattedNumberInput\n * @see {@link https://northlight.dev/reference/text-field}\n *\n *\n */\nexport const TextField = ({\n name,\n label,\n as: As = Input,\n isRequired,\n validate,\n direction = 'column',\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: TextFieldProps) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n >\n { ({ onChange, value }) => (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <As\n id={ name }\n name={ name }\n onChange={ (e: React.ChangeEvent<HTMLInputElement> | string) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"text-field-test-id\"\n { ...rest }\n />\n </InputGroupWrapper>\n ) }\n </Field>\n)\n","import {\n AlertCircleSolid,\n AlertTriangleSolid,\n BellSolid,\n CheckCircleSolid,\n} from '@northlight/icons'\nimport { AlertVariants } from '../../alert/types'\n\nexport const toastIconMap: Record<AlertVariants, any> = {\n success: CheckCircleSolid,\n warning: AlertTriangleSolid,\n error: AlertCircleSolid,\n info: BellSolid,\n}\n","import React from 'react'\nimport { Alert as ChakraAlert } from '@chakra-ui/react'\nimport { toastIconMap } from '../types'\nimport { ToastProps } from './types'\nimport { Icon } from '../icon'\nimport { HStack, Stack } from '../stack'\nimport { CloseButton } from '../close-button'\nimport { Label, P } from '../typography'\n\n/**\n * Toast is a modified alert meant for popup alerts\n * @see useToast\n * @see Alert\n * @see {@link https://northlight.dev/reference/toast}\n * @example\n * (?\n *\n <HStack spacing={ 4 }>\n <Toast variant=\"success\" title=\"success\" />\n <Toast variant=\"warning\" title=\"warning\" />\n <Toast variant=\"info\" title=\"info\" />\n <Toast variant=\"error\" title=\"error\" />\n </HStack>\n * ?)\n *\n */\nexport const Toast = ({\n variant = 'success',\n title = '',\n description = '',\n onClose,\n ...rest\n}: ToastProps) => (\n <ChakraAlert\n variant={ variant }\n data-testid=\"toast-test\"\n { ...rest }\n >\n <HStack alignItems=\"flex-start\">\n <Icon as={ toastIconMap[variant] } color={ `icon.toast.${variant}` } boxSize={ 6 } />\n <Stack spacing={ 0 } alignItems=\"flex-start\">\n { title && <Label size=\"md\">{ title }</Label> }\n { description && (\n <P>{ description }</P>\n ) }\n </Stack>\n <CloseButton\n size=\"sm\"\n onClick={ onClose }\n position=\"absolute\"\n insetEnd={ 1 }\n top={ 1 }\n />\n </HStack>\n </ChakraAlert>\n)\n","import React from 'react'\nimport { useToast as useChakraToast } from '@chakra-ui/react'\nimport { Toast } from './toast'\nimport { UseToastOptions } from './types'\n\n/**\n * This hook returns a toast function that when called will popup a toast\n * @see Toast\n * @see {@link https://northlight.dev/reference/use-toast}\n * @example\n * (?\n * () => {\n * const toast = useToast()\n * const handleClick = () => {\n * toast({title: 'Success', description: 'Your file changes have been saved' })\n * }\n * return (\n * <Button onClick={handleClick} variant=\"success\">Save</Button>\n * )}\n * ?)\n */\nexport const useToast = (defaultOpts: UseToastOptions = {}) => {\n const toast = useChakraToast(defaultOpts)\n\n return (opts: UseToastOptions = {}) => toast({\n render: ({ onClose }) => {\n const { variant = 'success', title = 'Success', description = '' } = opts\n\n return (\n <Toast\n variant={ variant }\n title={ title }\n description={ description }\n onClose={ onClose }\n />\n )\n },\n position: 'top',\n ...opts,\n })\n}\n","import { Color, ColorGrade } from '../../types'\nimport { PinVariant } from '../pin-input/types'\n\nexport const pinVariantMap: Record<PinVariant, `${Color}.${ColorGrade}`> = {\n green: 'green.300',\n yellow: 'yellow.300',\n gray: 'gray.300',\n red: 'red.400',\n}\n","import { PinSize, PinSizeTuple } from '../pin-input/types'\n\nexport const pinSizeMap: Record<PinSize, PinSizeTuple > = {\n sm: [ 4, 2 ],\n md: [ 5, 3 ],\n lg: [ 6, 3.5 ],\n}\n","import React from 'react'\nimport { Circle } from '../circle'\nimport { pinVariantMap } from './pin-variant-map'\nimport { pinSizeMap } from './pin-size-map'\nimport { StatusPinProps } from './types'\n\n/**\n * @see StatusBlock\n * @see {@link https://northlight/reference/status-pin}\n *\n * @example\n * (? <StatusPin variant=\"green\" /> ?)\n *\n */\nexport const StatusPin = ({ size = 'md', variant }: StatusPinProps) => {\n const pinColor = pinVariantMap[variant]\n const pinSizeTuple = pinSizeMap[size]\n const [ outerSize, innerSize ] = pinSizeTuple\n\n return (\n <Circle\n size={ outerSize }\n bg=\"white\"\n borderWidth=\"1px\"\n borderColor={ pinColor }\n >\n <Circle\n size={ innerSize }\n bg={ pinColor }\n />\n </Circle>\n )\n}\n","import { BlockVariant, BlockVariantColorTuple } from './types'\n\nexport const blockVariantMap: Record<BlockVariant, BlockVariantColorTuple> = {\n approved: [ 'green.100', 'green.500' ],\n pending: [ 'yellow.300', 'yellow.700' ],\n working: [ 'gray.50', 'gray.400' ],\n rejected: [ 'red.100', 'red.400' ],\n}\n","import { CDeleteSolid, CheckCircleSolid, HourglassSolid, StatusWorkingSolid } from '@northlight/icons'\nimport { Color, ColorGrade } from '../../types'\n\nexport type BlockVariant = 'working' | 'pending' | 'approved' | 'rejected'\n\nexport interface StatusBlockProps {\n variant: BlockVariant\n}\n\nexport type BlockVariantColorTuple = [`${Color}.${ColorGrade}`, `${Color}.${ColorGrade}`]\n\nexport const statusIconMap: Record<BlockVariant, any> = {\n working: StatusWorkingSolid,\n pending: HourglassSolid,\n approved: CheckCircleSolid,\n rejected: CDeleteSolid,\n}\n","import React from 'react'\nimport { Icon } from '@chakra-ui/react'\nimport { Tag, TagLabel, TagLeftIcon } from '../tag'\nimport { blockVariantMap } from './block-variant-map'\nimport { StatusBlockProps, statusIconMap } from './types'\n\n/**\n * Used as status indicator\n * @see {@link https://northlight.dev/reference/status-block}\n * @example\n * (? <StatusBlock variant=\"approved\" /> ?)\n */\nexport const StatusBlock = ({ variant }: StatusBlockProps) => {\n const [ bgColor, contentColor ] = blockVariantMap[variant]\n\n return (\n <Tag\n w={ 28 }\n h={ 8 }\n justifyContent=\"center\"\n bgColor={ bgColor }\n color={ contentColor }\n borderRadius={ 4 }\n >\n <TagLeftIcon>\n <Icon as={ statusIconMap[variant] } />\n </TagLeftIcon>\n <TagLabel\n lineHeight={ 5 }\n fontWeight=\"semibold\"\n textTransform=\"capitalize\"\n >\n { variant }\n </TagLabel>\n </Tag>\n )\n}\n","import React from 'react'\nimport {\n AlertDescription,\n AlertTitle,\n Alert as ChakraAlert,\n} from '@chakra-ui/react'\nimport { toastIconMap } from '../types'\nimport { Icon } from '../icon'\nimport { VStack } from '../stack'\nimport { AsyncErrorProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/async-error}\n * @example\n * (?\n * <AsyncError />\n * ?)\n *\n */\nexport const AsyncError = ({\n message = '',\n ...rest\n}: AsyncErrorProps) => (\n <ChakraAlert backgroundColor=\"background.default\" color=\"text.default\" width=\"100%\" { ...rest }>\n <VStack w=\"full\">\n <Icon as={ toastIconMap.error } color=\"icon.toast.error\" boxSize={ 6 } />\n <AlertTitle> Error </AlertTitle>\n { message && (\n <AlertDescription>{ message }</AlertDescription>\n ) }\n </VStack>\n </ChakraAlert>\n)\n","import React from 'react'\nimport { StepPanelProps } from './types'\nimport { TabPanel as ChakraStepPanel } from '../tabs'\n\n/**\n * Used to display content under specific step\n * @see Steps\n * @see StepPanels\n * @see {@link https://northlight.dev/reference/step-panel}\n * @example\n * (? <StepPanel>Step 1</StepPanel> ?)\n */\nexport const StepPanel = (props: StepPanelProps) => (\n <ChakraStepPanel padding={ 0 } { ...props } />\n)\n","import React from 'react'\nimport { Tabs as ChakraSteps } from '@chakra-ui/react'\nimport { StepsProps } from './types'\n\n/**\n * Context provider for steps tabs\n * @see StepList\n * @see StepPanels\n * @see {@link https://northlight.dev/reference/steps}\n * @example\n * (?\n <Steps>\n <StepList>\n <Step label=\"Step 1\" description=\"Name and email\" />\n <Step label=\"Step 2\" description=\"Pick a password\" />\n <Step label=\"Step 3\" description=\"Review\" />\n </StepList>\n <StepPanels>\n <StepPanel>1</StepPanel>\n <StepPanel>2</StepPanel>\n <StepPanel>3</StepPanel>\n </StepPanels>\n </Steps>\n * ?)\n *\n *\n */\nexport const Steps = (props: StepsProps) => (\n <ChakraSteps isManual={ true } { ...props } />\n)\n","import React from 'react'\nimport { Tab as ChakraStep, useMultiStyleConfig } from '@chakra-ui/react'\nimport { Capitalized, Lead } from '../typography'\nimport { Flex } from '../flex'\nimport { ring } from '../../utils'\nimport { StepProps } from './types'\n\n/**\n * Renders a step in a step list\n * @see StepList\n * @see Steps\n * @see {@link https://northlight.dev/reference/step}\n * @example\n * (? <Step label=\"Step 1\" description=\"Personal information\" /> ?)\n *\n */\nexport const Step = ({\n label,\n description,\n ...rest\n}: StepProps) => {\n const {\n step,\n label: labelStyle,\n description: descriptionStyle,\n } = useMultiStyleConfig('Step')\n return (\n <ChakraStep { ...rest } sx={ step }>\n <Flex\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n _groupFocusVisible={ ring }\n >\n <Capitalized sx={ labelStyle }>\n { label }\n </Capitalized>\n <Lead sx={ descriptionStyle }>\n { description }\n </Lead>\n </Flex>\n </ChakraStep>\n )\n}\n","import React, { Children } from 'react'\nimport { TabList as ChakraStepList, useStyleConfig } from '@chakra-ui/react'\nimport { StepListProps } from './types'\n\n/**\n * Used to render a navigational list of steps\n * @see Step\n * @see Steps\n * @see {@link https://northlight.dev/reference/step-list}\n * @example\n * (?\n <StepList>\n <Step label=\"Step 1\" description=\"Name and email\" />\n <Step label=\"Step 2\" description=\"Pick a password\" />\n <Step label=\"Step 3\" description=\"Review\" />\n </StepList>\n * ?)\n *\n */\nexport const StepList = ({ children, ...rest }: StepListProps) => {\n const tabs = Children.count(children)\n const styles = useStyleConfig('StepList', { tabs })\n return (\n <ChakraStepList { ...rest } sx={ styles }>\n { children }\n </ChakraStepList>\n )\n}\n","import React, { useEffect } from 'react'\nimport { useClipboard, useMultiStyleConfig } from '@chakra-ui/react'\nimport { CheckDuo, CopyDuo } from '@northlight/icons'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { Tooltip } from '../tooltip'\nimport { Input, InputGroup, InputRightElement } from '../input'\nimport { ClipboardInputProps } from './types'\n\n/**\n * Meant to display non editable copiable text\n * @see {@link https://northlight.dev/reference/clipboard-input}\n *\n * @example (Example)\n * ## Your token\n * (?\n * <ClipboardInput value=\"8aa6d075-eae2-49b3-8f65-318ece801b3b\" aria-label=\"Copy token\" />\n * ?)\n *\n */\nexport const ClipboardInput = ({\n size = 'md',\n value,\n 'aria-label': ariaLabel,\n ...rest\n}: ClipboardInputProps) => {\n const { hasCopied, onCopy, setValue } = useClipboard(value)\n const { button, icon, tooltip } = useMultiStyleConfig('ClipboardInput', { size })\n\n useEffect(() => {\n setValue(value)\n }, [ value ])\n\n return (\n <InputGroup size={ size } data-testid=\"clipboard-input-test-id\">\n <Input\n aria-label={ `Value to copy: ${value}` }\n isReadOnly={ true }\n value={ value }\n { ...rest }\n />\n <InputRightElement>\n <Tooltip\n label={ hasCopied ? 'Copied!' : 'Copy' }\n placement=\"left\"\n closeOnClick={ false }\n sx={ tooltip }\n >\n <IconButton\n aria-label={ ariaLabel || 'Click to copy' }\n onClick={ onCopy }\n variant={ hasCopied ? 'success' : 'default' }\n sx={ button }\n >\n <Icon\n as={ hasCopied ? CheckDuo : CopyDuo }\n sx={ icon }\n />\n </IconButton>\n </Tooltip>\n </InputRightElement>\n </InputGroup>\n )\n}\n","import React, { cloneElement, useCallback, useRef } from 'react'\nimport { Grid, useStyleConfig } from '@chakra-ui/react'\nimport { SplitPaneProps } from './types'\n\n/**\n * Used for split screen layouts\n * @see PaneItem\n * @see PaneDivider\n * @see {@link https://northlight.dev/reference/split-pane}\n *\n */\nexport const SplitPane = ({\n children,\n initialSplit = 50,\n isOpen,\n minLeftWidth = 25,\n minRightWidth = 50,\n}: SplitPaneProps) => {\n const dividerRef = useRef<HTMLDivElement | null>(null)\n\n const mouseDownHandler = useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.target !== dividerRef.current) {\n return\n }\n let requestedFrame: number | null = null\n\n e.stopPropagation()\n e.preventDefault()\n\n const target = e.currentTarget\n\n target.setPointerCapture(e.pointerId)\n\n target.onpointermove = (moveEvent: PointerEvent) => {\n if (!(moveEvent.buttons && 1)) {\n target.onpointermove = null\n target.releasePointerCapture(moveEvent.pointerId)\n return\n }\n\n moveEvent.stopPropagation()\n moveEvent.preventDefault()\n\n if (!requestedFrame) {\n const { offsetX } = moveEvent\n\n requestedFrame = requestAnimationFrame(() => {\n target.style.setProperty(\n '--split-pos',\n `${Math.max(offsetX, 0)}px`\n )\n requestedFrame = null\n })\n }\n }\n },\n []\n )\n\n const containerStyle = useStyleConfig('SplitPane', { minLeftWidth, minRightWidth, initialSplit, isOpen })\n\n return (\n <Grid\n sx={ containerStyle }\n onPointerDown={ mouseDownHandler }\n >\n { children[0] }\n { isOpen && cloneElement(children[1], { ref: dividerRef }) }\n { isOpen && children[2] }\n </Grid>\n )\n}\n","import React from 'react'\nimport { GridItem, GridItemProps } from '@chakra-ui/react'\n\n/**\n * Wrapper around child of split pane\n * @see SplitPane\n * @see {@link https://northlight.dev/reference/PaneItem}\n *\n */\nexport const PaneItem = ({ children, ...rest } : GridItemProps) => (\n <GridItem overflow=\"hidden\" { ...rest }>\n { children }\n </GridItem>\n)\n","import React from 'react'\nimport { Box, BoxProps, forwardRef, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * Simple vertical line for split screen\n * @see SplitPane\n * @see PaneItem\n * @see {@link https://northlight.dev/reference/pane-divider}\n * @example\n * (?\n * <Box h=\"xs\">\n * <PaneDivider />\n * </Box>\n * ?)\n * */\nexport const PaneDivider = forwardRef((props: BoxProps, ref: any) => {\n const style = useStyleConfig('PaneDivider')\n return (\n <Box\n ref={ ref }\n sx={ style }\n { ...props }\n />\n )\n})\n","import React from 'react'\nimport { useToken } from '@chakra-ui/system'\nimport { StepStackProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\nimport { HStack, Stack } from '../stack'\nimport { Center } from '../center'\nimport { Divider } from '../divider'\nimport { Label } from '../typography'\n/**\n * Util wraper for creating ordered vertical layouts by stack\n * @see {@link https://northlight.dev/reference/step-stack}\n * @example\n * (?\n * <StepStack maxW=\"sm\" spacing=\"4\" rowHeight=\"10\">\n { Array.from({length: 5}, (_, i) => i).map((i) => <Input key={ i } />) }\n</StepStack>\n * ?)\n<br />\nIt takes all the props that a normal stack takes, with the addition of a\n rowHeight prop, which is needed to get the correct height for the grey\n line that goes between the steps. Any valid css height unit, px, rem, %,\n and tokens xs, sm are valid input for rowHeight.\n(ex: rowHeight=\"3rem\")\n *\n */\nexport const StepStack = ({\n children,\n spacing = '4',\n rowHeight = '10',\n ...rest\n}: StepStackProps) => {\n const rows = getChildrenWithProps(children, {})\n const parsedRowHeight = useToken('sizes', rowHeight)\n\n return (\n <Stack spacing={ spacing } position=\"relative\" { ...rest }>\n { rows.map(\n (row, i) => (\n <HStack key={ `row-${i as number}` }>\n <>\n <Center\n borderRadius=\"full\"\n bgColor=\"blue.500\"\n boxSize=\"6\"\n minW=\"6\"\n minH=\"6\"\n zIndex=\"docked\"\n >\n <Label\n size=\"sm\"\n sx={ { color: 'text.inverted' } }\n w=\"max-content\"\n textAlign=\"center\"\n >\n { i + 1 }\n </Label>\n </Center>\n { row }\n </>\n </HStack>\n )\n ) }\n <Divider\n orientation=\"vertical\"\n left=\"3\"\n bottom={ `calc(${parsedRowHeight} / 2)` }\n h={ `calc(100% - ${parsedRowHeight})` }\n position=\"absolute\"\n />\n </Stack>\n )\n}\n"],"names":["p","i","A","m","n","c","o","r","d","Accordion","props","React","ChakraAccordion","__spreadValues","u","AccordionButton","ChakraAccordionButton","P","e","a","AccordionPanel","ChakraAccordionPanel","t","AccordionItem","ChakraAccordionItem","_","l","OrganizationLogo","_a","_b","name","image","variant","rest","__objRest","getInitials","orgName","container","text","useMultiStyleConfig","chakra","Alert","children","ChakraAlert","s","AspectRatio","ChakraAspectRatio","k","f","Icon","forwardRef","ref","As","size","color","boxSize","CustomIcon","ChakraIcon","styles","useStyleConfig","luminosity","hexcolor","hex","g","b","getContrastColor","colorTwo","useToken","colorOne","colorInHex","l1","l2","threshold","brightColor","darkColor","ring","highlight","getShades","startShade","endShade","start","end","palette","colors","value","shade","firstName","lastName","getFieldError","errors","nameWithoutRightBracket","replace","fieldErrorPath","split","path","passPropsToChild","child","isValidElement","cloneElement","h","getChildrenWithProps","predicate","T","Children","addAlpha","alpha","limitAlpha","opacity","createDebounceFunctionInstance","delay","timeout","fn","args","CustomTheme","createContext","useCurrentTheme","useContext","AvatarBadge","notificationCount","badge","Avatar","userImage","icon","Box","UserSquareDuo","BusinessContactDuo","H1","sx","Heading","H2","H3","H4","H5","H6","ChakraText","Blockquote","Capitalized","Lead","Small","Tiny","Label","FormLabel","VisuallyHidden","positiveOrZero","ifElse","gt","always","identity","EMPTY_RECT","EMPTY_WINDOW","OverflowGroup","initMax","childrenProps","onChange","rect","max","setMax","useState","windowState","setWindowState","isLocked","useRef","nbrChildren","updateMax","inc","dec","rectDependency","defaultTo","useEffect","handleResize","nbrRemainingChildren","shownChildren","take","useOverflowGroup","setRect","node","S","AvatarGroup","spacing","nbrRemainingAvatars","setNbrRemainingAvatars","HStack","B","Badge","ChakraBadge","Blinker","isBlinking","Button","ChakraButton","Checkbox","ChakraCheckbox","shouldTrim","is","values","trimFormValues","obj","newObj","forEach","property","format","trim","keys","Form","initialValues","onSubmit","validate","formSettings","methods","enableReinitialize","newMethods","useForm","_context","_options","useImperativeHandle","initalValuesImage","equals","formatValues","handleSubmit","FormProvider","label","useDebounce","debouncedValue","setDebouncedValue","handler","useLoadingMessage","prefix","dots","setDots","useInterval","useArrowFocus","columns","next","previous","focusFirst","focusLast","useFocusManager","defaultOpts","focusPrevious","repeat","wrap","focusNext","useSelectCallbacks","onAdd","onRemove","isMulti","items","val","event","isNil","last","removedItems","map","prop","difference","Field","direction","isRequired","noLabelConnection","useFormContext","control","fieldError","FormControl","Stack","Controller","field","FormErrorMessage","useSetValueRefreshed","setValue","watch","options","v","x","CheckboxField","onChangeCallback","labelPlacement","labelSize","Flex","IconButton","ariaLabel","IconComponent","IconWithSize","ChakraIconButton","paletteColors","defaultColors","ColorButton","onClick","selected","defaultArrows","onKeyDown","colorButton","CheckDuo","ColorsExpandButton","expanded","ChevronUpDuo","ChevronDownDuo","ColorPicker","expandedColors","isOpen","onToggle","onClose","useDisclosure","setExpanded","useBoolean","selectedColor","setSelectedColor","visibleColors","setVisibleColors","initialFocusRef","trigger","heading","parsedValue","baseColors","prev","expandColors","getNumberOfColumns","shouldBeFocused","index","colorVal","handleSelect","Popover","PopoverTrigger","ColorsDuo","PopoverContent","PopoverHeader","PopoverBody","FocusScope","SimpleGrid","ColorPickerField","G","FlipButtonContext","useFlipButtonState","useCheckboxGroupState","useRadioGroupState","useFlipButtonGroup","state","propsWithLabel","__spreadProps","useCheckboxGroup","useRadioGroup","useFlipButton","flipButtonGroupProps","D","H","y","F","FlipButton","isDisabled","iconPlacement","propsWithoutChildren","omit","inputProps","useCheckboxGroupItem","useRadio","button","buttonIcon","focusProps","isFocused","useFocusRing","focusStyles","focusRing","isSelected","flipButtonProps","mergeProps","mergeAll","CheckSolid","SlideFade","Text","M","O","W","FlipButtonGroup","numberOfButtons","childrenWithProps","restWithoutOnChange","FlipButtonGroupField","Trigger","handleClick","buttonProps","useButton","CalendarDuo","DateSegment","segment","segmentProps","useDateSegment","isDivider","dateSegment","minWidth","mapFormat","formatQuery","query","toLower","delimeterIncluded","DateField","useDateFieldState","createCalendar","dateField","fieldProps","useDateField","segments","dateFormat","getMatchingSegment","find","sortedSegments","id","StyledField","isInvalid","styledField","CalendarCell","date","currentMonth","cellProps","formattedDate","useCalendarCell","isToday","today","isOutsideMonth","isSameMonth","DayLabels","memo","weekDays","dayLabel","weekDaysWithIds","day","_id","CalendarGrid","locale","startDate","gridProps","headerProps","useCalendarGrid","weeksInMonth","getWeeksInMonth","Table","Thead","Tbody","times","weekIndex","Tr","MonthButton","months","MonthSelect","offset","dateSelect","selectedIndex","setSelectedIndex","isEditing","setIsEditing","moveStartDateBy","inp","diff","Select","month","YearSelect","years","year","useYearsCalendar","formatter","useDateFormatter","useYearsRangeCalendar","YearSelectCalendar","YearSelectRangeCalendar","Calendar","useLocale","useCalendarState","GregorianCalendar","calendarProps","prevButtonProps","nextButtonProps","useCalendar","ChevronLeftSolid","ChevronRightSolid","C","DatePicker","isClearable","resetDate","minValue","group","useDatePickerState","groupProps","dialogProps","useDatePicker","parseDate","togglePopup","PopoverAnchor","InputGroup","InputRightElement","XCloseSolid","Clickable","href","linkProps","clickable","useClickable","Link","ReactRouterLink","defaultFadeDelay","defaultOffset","unFocusStyles","getChildrenWithFocus","disableFocus","show","getDuration","enterDuration","exitDuration","duration","inDuration","outDuration","getOffsets","offsetX","offsetY","delta","useDelay","enterDelay","exitDelay","showWithDelay","setShowWithDelay","useHiddenDisplay","anchor","onTransitionComplete","hidden","setHidden","Fade","hideDisplay","transition","isHidden","ChakraFade","ScaleFade","ChakraScaleFade","Slide","ChakraSlide","deltaX","deltaY","ChakraSlideFade","Collapse","ChakraCollapse","MoveButton","validRange","ButtonRow","dates","getMethods","any","AdjustRange","adjust","setIsOpen","moveEndDateBy","moveStartDayBack","moveStartWeekBack","moveStartMonthBack","moveStartYearBack","moveStartDayForward","moveStartWeekForward","moveStartMonthForward","moveStartYearForward","moveStartBack","moveStartForward","moveEndDayBack","moveEndWeekBack","moveEndMonthBack","moveEndYearBack","moveEndDayForward","moveEndWeekForward","moveEndMonthForward","moveEndYearForward","moveEndBack","moveEndForward","updateDate","newDate","focusOnStart","getMethodsStart","getMethodsEnd","ChevronUpSolid","ChevronDownSolid","ArrowCircleLeftDuo","ArrowCircleRightDuo","RangeCell","RangeCalendarGrid","endDate","endOfMonth","DateButton","isActive","getQuickSelectOptions","fiscalStartMonth","fiscalStartDay","thisDay","startOfMonthWithDays","days","endOfMonthWithDays","thisWeek","startOfWeek","endOfWeek","lastWeek","thisMonth","startOfMonth","lastMonth","thisYear","startOfYear","endOfYear","lastYear","nextMonth","nextThreeMonths","nextSixMonths","nextYear","thisFiscalYear","lastFiscalYear","F1","F2","F3","F4","fiscalQuarters","seperator","QuickSelect","updateVisibleRange","height","quickDates","useMemo","getIsActive","shouldShow","quickDate","quarter","RangeCalendar","updateRange","setUpdateRange","useRangeCalendarState","rangeCalendarContainer","useRangeCalendar","handleClose","ChevronSelectorVerticalSolid","SimpleRangeCalendar","isValidDateRange","has","parseValue","DateRangePicker","mode","maxValue","parsedProps","useDateRangePickerState","startFieldProps","endFieldProps","useDateRangePicker","I","InputGroupWrapper","inputLeftElement","inputRightElement","not","all","DatePickerField","firstDayOfWeek","setError","handleChange","DateRangePickerField","dateRange","w","K","Toolbox","shouldPush","width","autoFocus","newChildren","_child","handleKeyDown","toolboxWidth","Portal","coreZIndex","ToolboxHeader","header","CloseButton","ToolboxContent","body","ToolboxFooter","footer","Radio","ChakraRadio","RadioGroup","ChakraRadioGroup","RadioGroupField","carouselItemWidth","carouselItemSpacing","variants","CarouselItem","itemWidth","itemHeight","motion","Center","CarouselArrow","arrow","Carousel","showArrows","showRadio","controlledIndex","carouselStyles","dragging","setDragging","containerWidth","setContainerWidth","activeIndex","setActiveIndex","useMotionValue","radio","childrenAsArray","numberOfChildren","carouselTotalWidth","totalWidth","containerRef","getNewX","updateActiveIndex","animate","handleRightArrowClick","handleLeftArrowClick","searchBarStyles","merge","provided","background","getComponents","chakraComponents","SearchBar","defaultOptions","customOption","customTag","debouncedWaitTime","getCustomOptions","clearInputOnSelect","closeMenuOnSelect","testId","onSearchInputChange","SearchDuo","filtered","setFiltered","filterInput","setFilterInput","debounceFunction","customComponents","simpleFilter","filter","option","test","getOptions","newOptions","loadOptions","callback","resetFiltered","action","AsyncSelect","SearchBarField","isEmpty","DragAndDrop","DndContext","Tag","bgColor","colorScheme","ChakraTag","OverflowIndicator","nbrRemainingTags","TagGroup","DefaultOverflowIndicator","setNbrRemainingTags","DragItem","isDragging","itemLabel","TagLabel","TagRightIcon","DotsMatrixSolid","L","Draggable","disableDrag","useDraggable","attributes","listeners","setNodeRef","transform","childrenWithDragCursor","dragEventListeners","CSS","Droppable","useDroppable","Sortable","SortableContext","SortableItem","dblClickThreshold","useSortable","timeStampSnapchot","inEditMode","onPointerDown","handlePointerDown","style","DragHandle","DragDuo","Z","DropZone","dropZone","q","U","E","MultiSort","sortableItems","collisionDetection","sensors","setItems","activeItem","setActiveItem","moveBetweenContainers","activeContainerName","overContainerName","overIndex","item","remove","insert","customSensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","findContainer","key","getContainers","active","over","overId","indexOf","newItems","arrayMove","rectIntersection","SortableList","createKey","strategy","onMovedItem","displayOverlay","identifierItems","prevIds","oldIndex","newIndex","rectSortingStrategy","DragOverlay","SortableContainer","FastList","itemCount","itemSize","overscanCount","initialScrollOffset","AutoSizer","autoWidth","autoHeight","VariableSizeList","_index","FastGrid","rows","columnSize","rowSize","overscanRowCount","overscanColumnCount","VariableSizeGrid","rowIndex","columnIndex","EditableControls","getSubmitButtonProps","getCancelButtonProps","useEditableControls","onEdit","useEditableState","controls","EditDuo","EditableText","inputValue","leftItem","input","preview","Editable","newValue","InputLeftElement","Input","EditablePreview","ChakraEditableInput","Modal","isCentered","ChakraModal","ModalOverlay","ModalContent","ModalCloseButton","FileEditorModal","fileName","setFileName","handleCrop","isImage","canEditFileName","canCropImage","zoomLevel","setZoomLevel","position","setPosition","ModalHeader","ModalBody","AvatarEditor","pos","Slider","SliderTrack","SliderFilledTrack","SliderThumb","ZoomInDuo","ModalFooter","ConfirmDeleteModal","confirmDelete","handleDelete","formattedTime","seconds","baseString","hours","minutes","newSeconds","updateTimeThreshold","animationSlideTime","ProgressBar","loaded","onLoadEnd","timeRef","progress","timeLeft","setTimeLeft","deltaTime","newEstimate","VStack","Progress","Spinner","ChakraSpinner","fiveHundredMB","imageLazyThreshold","defaultEditOptions","j","z","getResizingFactor","imgWidth","imgHeight","maxWidth","maxHeight","convertBlobToFile","blob","type","compressImage","file","quality","canvas","context","imageBuffer","resolve","resizingFactor","scaledWidth","scaledHeight","newImage","readableFileSize","getImageAsFile","res","getFormatsAsArray","acceptFormat","getAcceptedExtensions","getAcceptedFormats","getFileExtension","getFileFormat","validFileFormat","isValidFile","maxFileSize","isValid","getNewUploadingFiles","curr","files","buffer","prevIDs","currentIDs","removedItemsIDs","filesIDs","intersection","updatedData","generateId","isFile","isFileImage","onlyAcceptsImages","formats","extensions","premiseOne","premiseTwo","createFileObject","createPreviewFileObject","createFileObjectFromSrc","isOverflowing","element","toBase64","reject","reader","error","correctFileExtension","str","getFileFormattedName","handleDownload","FileIconButton","FilePicker","compression","uploadedInitial","showProgress","loadWithSpinner","editFileOptions","fileInputRef","imageEditorRef","setFile","setIsInvalid","setName","editModal","deleteModal","editable","setEditable","hasLoaded","setHasLoaded","isLoading","setIsLoading","setIsImage","uploaded","setUploaded","onlyImageAccepted","isUploading","currentTheme","filePicker","handleOnClick","fileType","newFile","clearImage","handleImageUpload","isFileTypeImage","compressedImage","handleDrop","Image","Image03Solid","UploadCloudSolid","FileBlankDuo","EditBoxDuo","DownloadDuo","TrashFullDuo","FilePickerField","formattedFile","MultiFileUploader","addFilesToQueue","updatePreviewFiles","inputRef","multiFilePicker","setActive","errorMessage","setErrorMessage","toggleHover","updateMultipleFiles","newFiles","filesArr","validFiles","fileCheck","compressedFiles","FileItem","addFile","deleteFile","isLazy","canEdit","canEditImage","canEditName","fileItem","editModalDisclosure","deleteModalDisclosure","setShow","loadingImage","setLoadingImage","Image03Duo","ChakraImage","MultiFileList","uploadingFiles","enableSmartLoad","uploadingFilesReference","setUploadingFilesReference","overflowing","setOverflowing","formattedFiles","listRef","newVal","MultiFilePicker","enablePreLoad","bufferFiles","setBufferFiles","previewFiles","setPreviewFiles","getIndexById","findIndex","addedFile","indexOfChanged","newPreviewFiles","indexOfRemoved","queuedFiles","MultiFilePickerField","getFiles","sources","source","concat","removedIndex","src","newValues","scrollbarStyles","Breadcrumb","sizing","borderRadius","pulseRing","keyframes","borderWidth","PinInput","Tabs","Textarea","Switch","coreSpacing","NumberInput","isReadOnly","NotificationIconButton","coreFontWeight","possibleBgColors","getAvatarBgColor","randomColor","avatarBgColor","theme","h3","Tooltip","ClipboardInput","Step","fontWeights","StepList","tabs","h1","h2","h4","h5","h6","blockquote","tiny","CAPITALIZED","lead","small","body14","body16","tinyLabel","xsLabel","smLabel","mdLabel","lgLabel","SplitPane","minLeftWidth","minRightWidth","initialSplit","PaneDivider","shakeAnimation","thickRing","getBgColor","getInvalidColorStyles","sizes","WebappSkin","WebappSkinTokens","typography","TottSkin","TottSkinTokens","overrides","components","coreSizing","coreBoxShadow","coreFontSize","coreLineHeight","coreBorderRadius","extendTheme","tottTheme","MediatoolThemeProvider","webappTheme","themeName","ChakraProvider","NumberInputStepper","includePercentage","ChakraNumberInputStepper","Divider","NumberIncrementStepper","NumberDecrementStepper","regex","advancedParseFloat","splitValue","intPart","head","decimalPart","roundingError","match","decimalsErrorLength","length","correctDecimalsLength","onInputChange","onlyAcceptPercentage","percentageProps","percentageFactor","filteredNaN","ChakraNumberInput","NumberInputField","N","formatNumber","factor","initialValue","displayValue","setDisplayValue","parsed","hasNotification","blinkerColor","setIsBlinking","notifier","ChakraPinInput","customSelectStyles","loadingList","CustomSelect","ChakraReactSelect","prevOptions","renderedOptions","SelectField","inner","ChakraSwitch","SwitchField","labelPosition","TabPanel","ChakraTabPanel","isManual","ChakraTabs","ChakraTextarea","TextareaField","FormattedNumberInput","unFormattedValue","formattedValue","CustomInput","InputMask","MaskedTextInput","mask","maskPlaceholder","alwaysShowMask","placeholder","onBlur","nameProp","TextField","toastIconMap","CheckCircleSolid","AlertTriangleSolid","AlertCircleSolid","BellSolid","Toast","title","description","useToast","toast","useChakraToast","opts","pinVariantMap","pinSizeMap","StatusPin","pinColor","pinSizeTuple","outerSize","innerSize","Circle","blockVariantMap","statusIconMap","StatusWorkingSolid","HourglassSolid","CDeleteSolid","StatusBlock","contentColor","TagLeftIcon","AsyncError","message","AlertTitle","AlertDescription","StepPanel","ChakraStepPanel","Steps","ChakraSteps","step","labelStyle","descriptionStyle","ChakraStep","ChakraStepList","hasCopied","onCopy","useClipboard","tooltip","CopyDuo","dividerRef","mouseDownHandler","useCallback","requestedFrame","target","moveEvent","containerStyle","Grid","PaneItem","GridItem","StepStack","rowHeight","parsedRowHeight","row"],"mappings":"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"}
|