@northlight/ui 2.43.2 → 2.43.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../lib/hooks/use-arrow-focus/index.ts","../../lib/hooks/use-select-callbacks/use-select-callbacks.ts","../../lib/utils/luminosity/index.ts","../../lib/utils/get-contrast-color/index.ts","../../lib/utils/ring/index.ts","../../lib/utils/get-shades/index.ts","../../lib/utils/get-field-error/index.ts","../../lib/utils/debounce/create-debounce-function-instance.ts","../../lib/utils/use-current-theme/index.ts","../../lib/utils/get-consistent-random-color-from-string/index.ts","../../lib/theme/components/select/custom-select.ts","../../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/process-color-scheme-based-on-theme.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/typography/numvals/numval.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/components/table/index.ts","../../lib/theme/components/menu/index.ts","../../lib/theme/components/badge/index.ts","../../lib/theme/components/popover/index.ts","../../lib/theme/components/progress-bar/index.ts","../../lib/theme/skins/webapp/index.ts","../../lib/theme/skins/tott/index.ts","../../lib/theme/skins/camphouse-light/index.ts","../../lib/theme/index.ts","../../lib/components/icon/icon.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/typography/numvals/numval.tsx","../../lib/components/overflow-group/overflow-group.tsx","../../lib/components/badge/badge.tsx","../../lib/components/blinker/blinker.tsx","../../lib/components/spinner/spinner.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/components/form/field.tsx","../../lib/components/checkbox/checkbox-field.tsx","../../lib/components/checkbox/checkbox-group-field.tsx","../../lib/components/icon-button/icon-button.tsx","../../lib/components/color-picker/constants.ts","../../lib/components/color-picker/color-button.tsx","../../lib/components/popover/popover.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/resize-handle/resize-handle.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/table/table.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/utils.ts","../../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/components/get-week-number-start-of-month.ts","../../lib/components/date-picker/components/calendar/components/range-cell.tsx","../../lib/components/date-picker/components/calendar/components/standalone-calendar-grid.tsx","../../lib/components/date-picker/components/calendar/calendar.tsx","../../lib/components/date-picker/date-picker/date-picker-locale-wrapper.tsx","../../lib/components/date-picker/date-picker/date-picker.tsx","../../lib/components/clickable/clickable.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/date-button.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/utils.ts","../../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/date-picker-field/utils.ts","../../lib/components/types/tooltipIconMap/index.ts","../../lib/components/tooltip/tooltip.tsx","../../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/radio/radio-group.tsx","../../lib/components/radio/radio-group-field.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/tag/tag.tsx","../../lib/components/drag-and-drop/drag-item.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-base.tsx","../../lib/components/modal/modal.tsx","../../lib/components/modal/modal-body.tsx","../../lib/components/file-picker/file-editor-modal.tsx","../../lib/components/progress/constants.ts","../../lib/components/progress/progress-bar.tsx","../../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/select/get-matching-value.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/textarea/textarea.tsx","../../lib/components/textarea/textarea-field.tsx","../../lib/components/text-field/round-to-precision.ts","../../lib/components/text-field/formatted-number-input.tsx","../../lib/components/text-field/formatted-number-input-field.tsx","../../lib/components/text-field/text-field.tsx","../../lib/components/clipboard-input/clipboard-input.tsx","../../lib/components/split-pane/pane-divider.tsx","../../sandbox/lib/run-scenarios.ts","../../sandbox/lib/viewer/error-boundary.tsx","../../../node_modules/style-inject/dist/style-inject.es.js","../../sandbox/lib/viewer/sandbox-viewer.tsx"],"sourcesContent":["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 = <\n T extends BasicOption,\n K extends boolean = false\n>({\n onChange,\n onAdd,\n onRemove,\n isMulti = false,\n value,\n }: UseSelectCallbacksProps<T, K>) => {\n const items = useRef<MultiValue<T> | SingleValue<T>>(value)\n\n const handleChange = (\n val: K extends true ? MultiValue<T> : SingleValue<T>,\n event: ActionMeta<T>\n ) => {\n onChange(val, event)\n if (!isMulti && !isNil(val)) {\n onAdd((val as T).value)\n } else if (\n !isNil(val) &&\n (val as T[]).length > (items.current as T[]).length\n ) {\n onAdd(last(val as T[])?.value)\n } else {\n const removedItems = map(\n prop('value'),\n difference(\n isMulti ? (items.current as T[]) : ([ items.current ] as T[]),\n val as T[]\n )\n )\n onRemove(removedItems.length === 1 ? removedItems[0] : removedItems)\n }\n items.current = val\n }\n return handleChange\n}\n","export const luminosity = (hexcolor: string) => {\n if (!hexcolor || typeof hexcolor !== 'string') return Number.NaN\n\n let color = hexcolor.trim()\n\n if (!/^#?[0-9a-f]{3}([0-9a-f]{3})?$/i.test(color)) {\n return Number.NaN\n }\n\n if (color[0] === '#') color = color.slice(1)\n if (color.length === 3) {\n color = color.split('').map((h) => h + h).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\nfunction safeUseToken (tokenOrValue: string): string {\n try {\n return useToken('colors', tokenOrValue)\n } catch {\n return tokenOrValue\n }\n}\n\nexport const getContrastColor = (color: string) => {\n const textDefault = useToken('colors', 'text.default') // dark\n const textInverted = useToken('colors', 'text.inverted') // light\n\n const normalized = typeof color === 'string' ? color.trim() : (color as unknown as string)\n\n // If a concrete hex is passed, use it directly; else try token resolution.\n const isHex = /^#?[0-9a-f]{3}([0-9a-f]{3})?$/i.test(normalized)\n const bgResolved = isHex\n ? (normalized[0] === '#' ? normalized : `#${normalized}`)\n : safeUseToken(normalized)\n\n const lInverted = luminosity(textInverted)\n const lDefault = luminosity(textDefault)\n const threshold = (lInverted + lDefault) / 2\n const brightColor = lInverted > lDefault ? textInverted : textDefault\n const darkColor = lInverted > lDefault ? textDefault : textInverted\n\n const lBg = luminosity(bgResolved)\n if (Number.isNaN(lBg)) return undefined\n\n return lBg >= 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 { 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","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","/** 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' | 'camphouseLightTheme'\n\nexport const CustomTheme = createContext<CurrentTheme>('webappTheme')\n\nexport const useCurrentTheme = () => {\n const theme = useContext(CustomTheme)\n return theme\n}\n","/* eslint-disable no-bitwise */\nimport { keys, omit } from 'ramda'\nimport { palette } from '@northlight/tokens'\n\nconst availableColorSchemes = keys(omit([ 'mono' ], palette))\n\nconst djb2Hash = (str: string, colors: string[]) => {\n let hash = 5381\n\n for (let i = 0; i < str.length; i += 1) {\n const char = str.charCodeAt(i)\n hash = (hash << 5) + hash + char\n\n hash &= hash\n }\n\n return (Math.abs(hash) % colors.length)\n}\n\nexport const getConsistentRandomColorFromString = (\n str: string,\n colors: string[] = availableColorSchemes\n) => {\n const index = djb2Hash(str, colors)\n return colors[index]\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 overflowWrap: 'anywhere',\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","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: 'text.default',\n fontWeight: 'semibold',\n fontSize: 'md',\n _hover: {\n bg: 'brand-alt',\n borderRadius: 'base',\n textDecor: 'none',\n },\n },\n separator: {\n color: 'subdued',\n fontSize: 'sm',\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 color: color.text.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 color: color.text.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 brandSubdued: ({ theme: { colors: color } }) => ({\n color: color.text.button.brandSubdued,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button.brand,\n color: color.text.inverted,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.text.button.brandSubdued,\n },\n },\n _active: {\n bg: color.background.button['brand-hover'],\n color: color.text.inverted,\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 outline: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n _hover: {\n bg: color.background.button['ghost-hover'],\n },\n _active: {\n bg: color.background.button['ghost-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 ai: ({ theme: { colors: color } }) => ({\n color: color.text.inverted,\n bgColor: color.bg.ai.default,\n _hover: {\n bgColor: color.bg.ai.hover,\n _disabled: {\n bgColor: color.bg.ai.default,\n },\n },\n _active: {\n bgColor: color.bg.ai.active,\n },\n }),\n aiSubdued: ({ theme: { colors: color } }) => ({\n color: color.ai,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.bg.ai.default,\n color: color.text.inverted,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.ai,\n },\n },\n _active: {\n bg: color.bg.ai.hover,\n color: color.text.inverted,\n },\n }),\n accent: ({ theme: { colors: color } }) => ({\n color: color.text.button.accent,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-active'],\n color: color.text.button.accent,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.text.button.accent,\n },\n },\n _active: {\n bg: color.background.button['ghost-active'],\n color: color.text.button.accent,\n },\n }),\n sidebar: ({ theme: { colors: color } }) => ({\n color: color.text.button.sidebar,\n bgColor: color.background.button.sidebar,\n _hover: {\n bg: color.background.button['sidebar-hover'],\n color: color.text.button.sidebar,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.text.button.sidebar,\n },\n },\n _active: {\n bg: color.background.button['sidebar-active'],\n color: color.text.button['sidebar-active'],\n },\n }),\n },\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { keyframes } from '@emotion/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 boxShadow: `inset 0 0 0 1px ${color.border.input.focus}`,\n _invalid: {\n boxShadow: `inset 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 boxShadow: `inset 0 0 0 1px ${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: `inset 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: `inset 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: `inset 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 ai: ({ 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 _hover: {\n boxShadow: `inset 0 0 0 1px ${color.border.ai}`,\n borderColor: color.border.ai,\n },\n _invalid: {\n boxShadow: `inset 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 },\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 boxShadow: 'none',\n borderWidth: borderWidth.sm,\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 baseStyle: ({ 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 variants: {\n outline: {},\n ai: ({ theme: { colors: color } }) => ({\n field: {\n _focusVisible: {\n borderColor: color.border.ai,\n boxShadow: `0 0 0 1px ${color.border.ai}`,\n },\n\n },\n\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 baseStyle: ({ theme: { fontWeights: coreFontWeight } }) => ({\n tab: {\n fontWeight: coreFontWeight.semiBold,\n },\n }),\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 _hover: {\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 rounded: ({ theme: { colors: color, radii: borderRadius } }) => ({\n tab: {\n color: color.text.subdued,\n borderRadius: borderRadius.button.default,\n _selected: {\n bg: color.background.tabs['soft-rounded-active'],\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\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 ai: ({ theme: { colors: color } }) => ({\n tab: {\n borderRadius: 999,\n _selected: {\n bgColor: color.bg.ai.default,\n color: color.text.inverted,\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n line: ({ theme: { colors: color } }) => ({\n tab: {\n color: color.text.subdued,\n _selected: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _active: {\n bg: color.mono.transparent,\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n piped: ({ theme: { colors: color } }) => ({\n tab: {\n position: 'relative',\n color: color.text.default,\n paddingLeft: 4,\n opacity: 0.5,\n transition: 'opacity 0.2s ease-in-out',\n _before: {\n content: \"''\",\n position: 'absolute',\n left: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n width: '7px',\n height: '70%',\n borderRadius: 999,\n bgColor: 'brand',\n },\n _selected: {\n opacity: 1,\n _hover: {\n opacity: 1,\n },\n },\n _hover: {\n opacity: 0.7,\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 baseStyle: ({ theme: {\n colors: color,\n } }) => ({\n color: color.text.default,\n _placeholder: {\n color: color.text.textarea.placeholder,\n },\n }),\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 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 }),\n ai: ({ 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 bgColor: color.background.textarea.default,\n _hover: {\n borderColor: color.border.textarea['default-hover'],\n bgColor: color.background.textarea.hover,\n },\n _focusVisible: {\n bgColor: color.background.textarea.active,\n boxShadow: `inset 0 0 0 1px ${color.border.ai}`,\n borderColor: color.border.ai,\n _invalid: {\n boxShadow: `inset 0 0 0 1px ${color.border.textarea.error}`,\n bgColor: color.background.textarea.error,\n borderColor: color.border.textarea.error,\n },\n },\n _invalid: {\n bgColor: color.background.textarea.error,\n borderColor: color.border.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 }),\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 { path } from 'ramda'\nimport type { CurrentTheme } from '../utils'\n\nconst themeMap: Record<CurrentTheme, Record<string, string>> = {\n camphouseLightTheme: {\n green: 'moss',\n pink: 'rose',\n orange: 'coral',\n gray: 'smoke',\n },\n webappTheme: {},\n tottTheme: {},\n}\n\nexport interface ProcessColorSchemeBasedOnThemeProps {\n currentTheme: CurrentTheme\n colorScheme: string\n}\n\nexport const processColorSchemeBasedOnTheme = ({\n currentTheme,\n colorScheme,\n}: ProcessColorSchemeBasedOnThemeProps) =>\n path<string>([ currentTheme, colorScheme ], themeMap) ?? colorScheme\n","import { ComponentMultiStyleConfig, useToken } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\nimport { processColorSchemeBasedOnTheme } from '../../process-color-scheme-based-on-theme'\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: ({ theme: { colors }, bgColor, colorScheme, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const tagBgColorRaw =\n bgColor ??\n (colors[processedColorScheme] && colors[processedColorScheme][500]\n ? colors[processedColorScheme][500]\n : processedColorScheme)\n\n const tagBgColor = typeof tagBgColorRaw === 'string' ? tagBgColorRaw.trim() : tagBgColorRaw\n\n const tagColor = getContrastColor(useToken('colors', tagBgColor))\n\n return {\n container: {\n bgColor: tagBgColor,\n color: tagColor,\n },\n }\n },\n subtle: ({ theme: { colors }, colorScheme, bgColor, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const tagBgColorRaw =\n bgColor ??\n (colors[processedColorScheme] && colors[processedColorScheme][100]\n ? colors[processedColorScheme][100]\n : processedColorScheme)\n\n const tagBgColor = typeof tagBgColorRaw === 'string' ? tagBgColorRaw.trim() : tagBgColorRaw\n\n const tagColor = getContrastColor(useToken('colors', tagBgColor))\n\n return {\n container: {\n bgColor: tagBgColor,\n color: tagColor,\n },\n }\n },\n ai: {\n container: {\n bgColor: 'bg.ai.default',\n color: 'text.inverted',\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', 'icon' ],\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 title: {\n lineHeight: '1.25',\n overflowWrap: 'break-word',\n },\n description: {\n lineHeight: '1.25',\n overflowWrap: 'break-word',\n },\n icon: {\n boxSize: 6,\n },\n }),\n variants: {\n success: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.success,\n },\n icon: {\n color: color.icon.toast.success,\n },\n }),\n warning: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.warning,\n },\n icon: {\n color: color.icon.toast.warning,\n },\n }),\n info: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.info,\n },\n icon: {\n color: color.icon.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 icon: {\n color: color.icon.toast.error,\n },\n }),\n ai: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.ai.default,\n color: color.text.inverted,\n },\n icon: {\n color: color.icon.toast.ai,\n },\n }),\n default: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.layer,\n color: color.text.default,\n },\n icon: {\n color: color.icon.toast.default,\n },\n }),\n ghost: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.base,\n color: color.text.default,\n borderWidth: 'xs',\n borderColor: color.border.default,\n borderStyle: 'solid',\n },\n icon: {\n color: color.icon.toast.ghost,\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, minWidth, minW }) => ({\n root: {\n borderRadius: borderRadius.input.outline,\n },\n field: {\n minWidth: minWidth ?? minW ?? 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: `inset 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: `inset 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: '1',\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: '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: `inset 0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n boxShadow: `inset 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: 'bg.brand.default',\n color: color.text.inverted,\n },\n _placeholder: {\n color: 'destructive',\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 light: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color['base-alt'],\n }, sx),\n button: {\n bgColor: 'mono.transparent',\n _hover: {\n bgColor: color.background.button['ghost-hover'],\n },\n _checked: {\n color: color.text['flip-button'].default,\n bgColor: 'bg.base',\n _hover: {\n bgColor: 'bg.base',\n },\n },\n },\n }),\n ai: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-brand'],\n }, sx),\n button: {\n bgColor: 'transparent',\n _hover: {\n bgColor: 'transparent',\n },\n _checked: {\n bgColor: color.bg.ai.default,\n _hover: {\n bgColor: color.bg.ai.default,\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 fontSize: '3xs',\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 fontSize: '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 fontSize: '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 fontSize: '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 fontSize: '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 fontSize: '2xl',\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 fontSize: '4xl',\n },\n }),\n\n },\n baseStyle: ({ theme: {\n colors: color,\n sizes: sizing,\n radii: borderRadius,\n }, image, name, bgColor }) => {\n const avatarBgColor = bgColor || 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.destructive,\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: { h4 } },\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: h4.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 { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { cssVar } from '@chakra-ui/theme-tools'\n\nconst $arrowBg = cssVar('popper-arrow-bg')\nconst $arrowBorder = cssVar('popper-arrow-shadow-color')\n\nexport const Tooltip: ComponentSingleStyleConfig = {\n baseStyle: ({\n theme: { colors: color, space: spacing, radii: borderRadius },\n }) => ({\n color: color.text.inverted,\n paddingInline: spacing['padding-inline'].tooltip.default,\n paddingY: spacing.paddingY.tooltip.default,\n borderRadius: borderRadius.tooltip.default,\n backgroundColor: color.background.tooltip.default,\n [$arrowBg.variable]: color.background.tooltip.default,\n }),\n variants: {\n default: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.bg.base,\n borderWidth: 'xs',\n borderColor: color.border.default,\n borderStyle: 'solid',\n [$arrowBg.variable]: color.bg.base,\n [$arrowBorder.variable]: color.border.default,\n }),\n success: ({ theme: { colors: color } }) => ({\n color: 'text.over.success',\n bgColor: 'success-alt',\n [$arrowBg.variable]: color['success-alt'],\n }),\n info: ({ theme: { colors: color } }) => ({\n color: 'text.over.brand',\n bgColor: 'brand-alt',\n [$arrowBg.variable]: color['brand-alt'],\n }),\n ghost: ({ theme: { colors: color } }) => ({\n color: 'text.default',\n bgColor: color.bg.base,\n borderWidth: 'xs',\n borderColor: color.border.default,\n [$arrowBorder.variable]: color.border.default,\n borderStyle: 'solid',\n [$arrowBg.variable]: color.bg.base,\n }),\n warning: ({ theme: { colors: color } }) => ({\n color: 'text.over.warning',\n bgColor: color['info-alt'],\n [$arrowBg.variable]: color['info-alt'],\n }),\n danger: ({ theme: { colors: color } }) => ({\n color: 'text.over.error',\n bgColor: color['destructive-alt'],\n [$arrowBg.variable]: color['destructive-alt'],\n }),\n error: ({ theme: { colors: color } }) => ({\n color: 'text.over.error',\n bgColor: color['destructive-alt'],\n [$arrowBg.variable]: color['destructive-alt'],\n }),\n ai: ({ theme: { colors: color } }) => ({\n bgColor: color.bg.ai.default,\n [$arrowBg.variable]: color.bg.ai.default,\n\n }),\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', 'indicator' ],\n baseStyle: ({ theme: { colors: color, fontWeights, space: spacing, borders: borderWidth } }) => ({\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 _disabled: {\n cursor: 'not-allowed',\n _hover: { borderColor: color.border.step.default },\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 '[data-part=\"indicator\"]': {\n bg: color.border.step.selected,\n },\n _hover: {\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n },\n },\n },\n label: {\n color: 'inherit',\n textAlign: 'start',\n fontWeight: fontWeights.bold,\n },\n description: {\n textAlign: 'start',\n fontWeight: fontWeights.semiBold,\n color: color.text.default,\n },\n indicator: {\n minW: 6,\n minH: 6,\n borderRadius: 'full',\n bg: color.text.subdued,\n color: 'mono.white',\n fontWeight: fontWeights.bold,\n fontSize: 'xs',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '2xs',\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'\nimport { merge } from 'ramda'\n\nexport const NumVal: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, sx }) =>\n merge(\n {\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 },\n sx\n ),\n sizes: {\n '2xs': ({ theme, sx }) => {\n const { tinyMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: tinyMono.fontFamily,\n fontWeight: tinyMono.fontWeight,\n lineHeight: tinyMono.lineHeight,\n fontSize: tinyMono.fontSize,\n letterSpacing: tinyMono.letterSpacing,\n textTransform: tinyMono.textCase,\n textDecoration: tinyMono.textDecoration,\n },\n sx\n )\n },\n xs: ({ theme, sx }) => {\n const { xsMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: xsMono.fontFamily,\n fontWeight: xsMono.fontWeight,\n lineHeight: xsMono.lineHeight,\n fontSize: xsMono.fontSize,\n letterSpacing: xsMono.letterSpacing,\n textTransform: xsMono.textCase,\n textDecoration: xsMono.textDecoration,\n },\n sx\n )\n },\n sm: ({ theme, sx }) => {\n const { smMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: smMono.fontFamily,\n fontWeight: smMono.fontWeight,\n lineHeight: smMono.lineHeight,\n fontSize: smMono.fontSize,\n letterSpacing: smMono.letterSpacing,\n textTransform: smMono.textCase,\n textDecoration: smMono.textDecoration,\n },\n sx\n )\n },\n md: ({ theme, sx }) => {\n const { mdMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: mdMono.fontFamily,\n fontWeight: mdMono.fontWeight,\n lineHeight: mdMono.lineHeight,\n fontSize: mdMono.fontSize,\n letterSpacing: mdMono.letterSpacing,\n textTransform: mdMono.textCase,\n textDecoration: mdMono.textDecoration,\n },\n sx\n )\n },\n lg: ({ theme, sx }) => {\n const { lgMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: lgMono.fontFamily,\n fontWeight: lgMono.fontWeight,\n lineHeight: lgMono.lineHeight,\n fontSize: lgMono.fontSize,\n letterSpacing: lgMono.letterSpacing,\n textTransform: lgMono.textCase,\n textDecoration: lgMono.textDecoration,\n },\n sx\n )\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'\nimport { isEmpty, isNil } from 'ramda'\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: ({ value }) => ({\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 color: isNil(value) || isEmpty(value) ? 'text.subdued' : 'text.default',\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: {\n colors: color,\n sizes: sizing,\n borders: borderWidth,\n } }) => ({\n container: {\n position: 'relative',\n bg: 'text.inverted',\n h: '100vh',\n borderLeftWidth: borderWidth.xs,\n borderLeftStyle: 'solid',\n borderLeftColor: color.border.default,\n },\n header: {\n alignItems: 'center',\n height: '16',\n borderBottomWidth: borderWidth.xs,\n borderBottomStyle: 'solid',\n borderBottomColor: color.border.default,\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: borderWidth.xs,\n borderTopStyle: 'solid',\n borderTopColor: color.border.default,\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 } from '@chakra-ui/react'\nimport { CSSObject, keyframes } from '@emotion/react'\nimport { merge } from 'ramda'\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 ? 'border.error' : 'border.default',\n bgColor: isInvalid && 'bg.error.default',\n animation: isInvalid && `500ms ${shakeAnimation} ease`,\n _hover: isImage && {\n bgColor: isInvalid ? 'bg.error.default' : getBgColor(currentTheme),\n borderColor: isInvalid ? 'border.error' : 'border.brand.default',\n },\n})\n\nconst getAiColorStyles = (isInvalid: boolean, isImage = true) => ({\n borderColor: isInvalid ? 'border.error' : 'border.default',\n bgColor: isInvalid && 'bg.error.default',\n animation: isInvalid && `500ms ${shakeAnimation} ease`,\n _hover: isImage && {\n bgColor: isInvalid ? 'bg.error.default' : 'bg.filled',\n borderColor: isInvalid ? 'border.error' : 'border.ai',\n },\n})\n\nexport const FilePicker: ComponentMultiStyleConfig = {\n parts: [ 'filePicker', 'fileItem', 'multiFilePicker' ],\n baseStyle: ({ theme: { sizes, colors }, hasLoaded, isImage, isInvalid, currentTheme, sx }) => ({\n filePicker: merge({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: 'full',\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 }, sx),\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 variants: {\n ai: ({ isInvalid }) => ({\n filePicker: {\n ...getAiColorStyles(isInvalid),\n },\n multiFilePicker: {\n ...getAiColorStyles(isInvalid),\n },\n }),\n\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { mode } from '@chakra-ui/theme-tools'\n\nexport const Table: ComponentMultiStyleConfig = {\n parts: [\n 'table',\n 'th',\n 'td',\n 'columnHeader',\n 'cell',\n 'caption',\n 'footer',\n 'tr',\n ],\n variants: {\n rounded: () => ({\n table: {\n borderSpacing: '0',\n borderCollapse: 'separate',\n borderRadius: 'md',\n borderColor: 'border.default',\n borderWidth: 'xs',\n px: '3',\n },\n\n th: {\n color: 'text.subdued',\n fontWeight: 'bold',\n textTransform: 'none',\n fontSize: 'sm',\n },\n\n td: {\n borderColor: 'border.default',\n borderTopWidth: 'xs',\n },\n }),\n striped: (props) => {\n const { colorScheme: c = 'gray' } = props\n\n return {\n table: {\n borderSpacing: '0',\n borderCollapse: 'separate',\n borderRadius: 'md',\n borderColor: 'border.default',\n borderWidth: 'xs',\n p: '2',\n },\n columnHeader: {\n color: 'text.subdued',\n bgColor: mode(`${c}.100`, `${c}.700`)(props),\n fontWeight: 'bold',\n textTransform: 'none',\n fontSize: 'sm',\n },\n cell: {\n bgColor: mode(`${c}.100`, `${c}.700`)(props),\n },\n caption: {\n color: mode('gray.600', 'gray.100')(props),\n },\n th: {\n borderBottomWidth: '0',\n },\n tr: {\n '&:nth-of-type(odd)': {\n td: {\n background: mode(`${c}.100`, `${c}.700`)(props),\n },\n },\n },\n footer: {\n tr: {\n th: { borderBottomWidth: 0 },\n },\n },\n }\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Menu: ComponentMultiStyleConfig = {\n parts: [ 'list', 'item' ],\n baseStyle: ({ theme: {\n colors: color,\n radii: borderRadius,\n } }) => ({\n menu: {\n borderColor: color.border.default,\n },\n list: {\n px: '2',\n bgColor: color.bg.base,\n },\n item: {\n py: '2',\n color: color.text.default,\n borderRadius: borderRadius.select.default,\n bgColor: color.bg.base,\n _hover: {\n bgColor: color.background.button.default,\n },\n _active: {\n bgColor: color.background.button.default,\n },\n _focus: {\n bgColor: color.background.button.default,\n },\n _checked: {\n fontWeight: 'bold',\n },\n },\n }),\n variants: {\n compact: ({ theme: { colors: color } }) => ({\n item: {\n fontSize: 'sm',\n color: color.text.default,\n },\n }),\n relaxed: ({ theme: { colors: color } }) => ({\n item: {\n py: '2',\n fontSize: 'md',\n color: color.text.default,\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig, useToken } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\nimport { processColorSchemeBasedOnTheme } from '../../process-color-scheme-based-on-theme'\n\nexport const Badge: ComponentSingleStyleConfig = {\n baseStyle: ({ colorScheme, theme: { colors }, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const bgColor = processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][100]\n : colors[processedColorScheme] && colors[processedColorScheme][100]\n const textColor = processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][800]\n : colors[processedColorScheme] && colors[processedColorScheme][800]\n\n return {\n bgColor,\n color: textColor,\n }\n },\n variants: {\n solid: ({ colorScheme, theme: { colors }, currentTheme, bg, bgColor }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const finalBg =\n bg ??\n bgColor ??\n (processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][500]\n : colors[processedColorScheme] && colors[processedColorScheme][500])\n\n return {\n bgColor: finalBg,\n color: getContrastColor(finalBg ?? useToken('colors', processedColorScheme)),\n }\n },\n outline: ({ colorScheme, theme: { colors }, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const textColor = processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][500]\n : colors[processedColorScheme] && colors[processedColorScheme][700]\n\n return {\n bgColor: 'mono.transparent',\n color: textColor,\n }\n },\n ghost: ({ colorScheme, theme: { colors }, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const textColor = processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][500]\n : colors[processedColorScheme] && colors[processedColorScheme][700]\n\n return {\n bgColor: 'mono.transparent',\n color: textColor,\n }\n },\n },\n sizes: {\n xs: {\n fontSize: '2xs',\n },\n sm: {\n fontSize: 'xs',\n },\n md: {\n fontSize: 'sm',\n },\n lg: {\n fontSize: 'md',\n },\n },\n defaultProps: {\n size: 'sm',\n variant: 'solid',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Popover: ComponentMultiStyleConfig = {\n parts: [ 'popper' ],\n baseStyle: {\n popper: {\n zIndex: 'popover',\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Progress: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color } }) => ({\n track: {\n bg: color['subdued-alt'],\n },\n filledTrack: {\n bg: color.brand,\n },\n }),\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n WebappComponentsTokensSet,\n WebappSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const WebappSkin: ThemeOverride = {\n colors: {\n ...WebappSystemTokensSet.st.color,\n ...WebappComponentsTokensSet.color,\n text: {\n ...WebappSystemTokensSet.st.color.text,\n ...WebappComponentsTokensSet.color.text,\n },\n border: {\n ...WebappSystemTokensSet.st.color.border,\n ...WebappComponentsTokensSet.color.border,\n },\n },\n sizes: WebappComponentsTokensSet.sizing,\n space: WebappComponentsTokensSet.spacing,\n radii: {\n ...WebappSystemTokensSet.st.borderRadius,\n ...WebappComponentsTokensSet.borderRadius,\n },\n borders: {\n ...WebappSystemTokensSet.st.borderWidth,\n ...WebappComponentsTokensSet.borderWidth,\n },\n opacity: WebappComponentsTokensSet.opacity,\n typography,\n shadows: { ...WebappSystemTokensSet.st.boxShadow },\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n TottComponentsTokensSet,\n TottSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const TottSkin: ThemeOverride = {\n colors: {\n ...TottSystemTokensSet.st.color,\n ...TottComponentsTokensSet.color,\n border: {\n ...TottSystemTokensSet.st.color.border,\n ...TottComponentsTokensSet.color.border,\n },\n },\n sizes: TottComponentsTokensSet.sizing,\n space: TottComponentsTokensSet.spacing,\n radii: {\n ...TottSystemTokensSet.st.borderRadius,\n ...TottComponentsTokensSet.borderRadius,\n },\n borders: {\n ...TottSystemTokensSet.st.borderWidth,\n ...TottComponentsTokensSet.borderWidth,\n },\n opacity: TottComponentsTokensSet.opacity,\n typography,\n shadows: { ...TottSystemTokensSet.st.boxShadow },\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n CamphouseLightComponentsTokensSet,\n CamphouseLightSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const CamphouseLightSkin: ThemeOverride = {\n colors: {\n ...CamphouseLightSystemTokensSet.st.color,\n ...CamphouseLightComponentsTokensSet.color,\n text: {\n ...CamphouseLightSystemTokensSet.st.color.text,\n ...CamphouseLightComponentsTokensSet.color.text,\n },\n border: {\n ...CamphouseLightSystemTokensSet.st.color.border,\n ...CamphouseLightComponentsTokensSet.color.border,\n },\n },\n sizes: CamphouseLightComponentsTokensSet.sizing,\n space: CamphouseLightComponentsTokensSet.spacing,\n radii: {\n ...CamphouseLightSystemTokensSet.st.borderRadius,\n ...CamphouseLightComponentsTokensSet.borderRadius,\n },\n borders: {\n ...CamphouseLightSystemTokensSet.st.borderWidth,\n ...CamphouseLightComponentsTokensSet.borderWidth,\n },\n opacity: CamphouseLightComponentsTokensSet.opacity,\n typography,\n shadows: { ...CamphouseLightSystemTokensSet.st.boxShadow },\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 { CamphouseLightSkin, 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\nexport const camphouseLightTheme = extendTheme(overrides, CamphouseLightSkin)\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","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H1', { sx })\n\n return (\n <Heading\n as=\"h1\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H2', { sx })\n\n return (\n <Heading\n as=\"h2\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H3', { sx })\n\n return (\n <Heading\n as=\"h3\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H4', { sx })\n\n return (\n <Heading\n as=\"h4\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H5', { sx })\n\n return (\n <Heading\n as=\"h5\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H6', { sx })\n\n return (\n <Heading\n as=\"h6\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, PProps>(({\n children,\n variant = '16',\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('P', { variant, sx })\n\n return (\n <ChakraText\n variant={ variant }\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(\n ({ children, sx = {}, ...rest }, ref) => {\n const styles = useStyleConfig('Blockquote', { sx })\n\n return (\n <ChakraText as=\"span\" sx={ styles } ref={ ref } { ...rest }>\n { children }\n </ChakraText>\n )\n }\n)\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Capitalized', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Lead', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Small', { sx })\n\n return (\n <ChakraText\n as=\"small\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Tiny', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLLabelElement, LabelProps>(({\n children,\n size = 'sm',\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Label', { sx, size })\n\n return (\n <FormLabel\n sx={ styles }\n requiredIndicator={ <VisuallyHidden /> }\n ref={ ref }\n { ...rest }\n >\n { children }\n </FormLabel>\n )\n})\n","import React, { forwardRef } from 'react'\nimport {\n Text as ChakraText,\n TextProps,\n useStyleConfig,\n} from '@chakra-ui/react'\n\n/**\n * @see {@link https://northlight.dev/reference/label }\n *\n * @example\n * (?\n * <NumVal sx={{color: 'brand' }} size=\"lg\">270 000 000</NumVal>\n * ?)\n * (_Note, all other css properties not listed\n *\n */\nexport const NumVal = forwardRef<HTMLLabelElement, TextProps>(\n ({ children, size = 'sm', sx = {}, ...rest }, ref) => {\n const styles = useStyleConfig('NumVal', { sx, size })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n }\n)\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { always, dec, defaultTo, gt, identity, ifElse, inc, isNil, 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(isNil(rect) ? 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 React, { forwardRef } from 'react'\nimport { Badge as ChakraBadge } from '@chakra-ui/react'\nimport { MediatoolLogoSolid } from '@northlight/icons'\nimport * as NorthlightIcons from '@northlight/icons'\nimport { useCurrentTheme } from '../../utils'\nimport { BadgeProps } from './types'\nimport { Flex } from '../flex'\nimport { Icon } from '../icon'\n\n/**\n * Badges are used to highlight an item's status for quick recognition.\n * @see Tag\n * @see {@link https://northlight.dev/reference/badge}\n *\n * @example\n * (?\n * +\n * const colors = [\"gray\", \"mediatoolBlue\", \"blue\", \"red\", \"green\",\n * \"orange\", \"yellow\", \"teal\", \"purple\", \"pink\"]\n * const variants = [\"solid\", \"outline\", \"subtle\", \"ghost\"]\n *\n * const Example = () => (\n * <Stack>\n * {colors.map((color, i) => (\n * <HStack spacing={4} key={i}>\n * {variants.map((variant) => (\n * <Badge\n * colorScheme={color}\n * variant={variant}\n * iconPosition=\"left\"\n * withIcon\n * >\n * {variant} Badge\n * </Badge>\n * ))}\n * </HStack>\n * ))}\n * </Stack>\n * )\n * render(<Example />)\n * ?)\n */\n\nexport const Badge = forwardRef<HTMLDivElement, BadgeProps>((props, ref) => {\n const {\n children,\n withIcon,\n iconPosition = 'left',\n iconAs,\n ...rest\n } = props\n\n const IconComponent = iconAs ? NorthlightIcons[iconAs] : MediatoolLogoSolid\n const currentTheme = useCurrentTheme()\n\n return (\n <ChakraBadge ref={ ref } currentTheme={ currentTheme } { ...rest }>\n <Flex align=\"center\" gap=\"1\">\n { withIcon && iconPosition === 'left' && IconComponent && (\n <Icon as={ IconComponent } boxSize=\"3\" />\n ) }\n { children }\n { withIcon && iconPosition === 'right' && IconComponent && (\n <Icon as={ IconComponent } boxSize=\"3\" />\n ) }\n </Flex>\n </ChakraBadge>\n )\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 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","import React, { forwardRef } from 'react'\nimport { Button as ChakraButton } from '@chakra-ui/react'\nimport { Spinner } from '../spinner'\nimport { ButtonProps } from './types'\n\nconst SpinnerSizeMap = {\n xs: 'xs',\n sm: 'sm',\n md: 'sm',\n lg: 'md',\n}\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\n * ### Use the `isLoading` prop to show a loading spinner\n * (?\n <Button\n variant=\"success\"\n isLoading={ true }\n loadingText=\"Creating folder...\"\n >\n Create folder\n </Button>\n * ?)\n *\n * @example\n * ### Also use the `spinner` prop to show a custom spinner\n * (?\n <Button\n variant=\"success\"\n isLoading={ true }\n loadingText=\"Creating folder...\"\n spinner={ <Spinner color=\"text.success\" /> }\n >\n Creating folder\n </Button>\n * ?)\n *\n * @example (Example)\n * (?\n * +\n * const variants = ['link', 'success', 'default', 'danger', 'brand', 'accent',\n * 'ghost', 'ai', 'outline', 'brandSubdued', 'solid']\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 === variants.length - 1 ? 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 *\n * @example (Example)\n * Use LinkOverlay to turn the button into a link\n *\n * (?\n * <LinkBox>\n * <LinkOverlay as={NavLink} to=\"/\" />\n * <Button variant=\"link\">Go to home page</Button>\n * </LinkBox>\n * ?)\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>((\n { variant = 'default', children, size = 'md', ...rest },\n ref\n) => (\n <ChakraButton\n variant={ variant }\n ref={ ref }\n size={ size }\n spinner={ (\n <Spinner\n size={ SpinnerSizeMap[size] }\n />\n ) }\n { ...rest }\n >\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 const controlledValue = typeof value === 'boolean'\n ? { isChecked: value }\n : { value }\n\n return (\n <ChakraCheckbox\n size={ size }\n id={ name }\n onChange={ onChange }\n variant={ variant }\n { ...controlledValue }\n { ...rest }\n />\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 DefaultValues,\n FieldValues,\n FormProvider,\n Resolver,\n UseFormReturn,\n useForm,\n} from 'react-hook-form'\nimport { always, equals } from 'ramda'\nimport { joiResolver } from '@hookform/resolvers/joi'\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 * ## Validation with joi\n *\n * You can pass on validation either by using a custom validate\n * function, by passing html validation directly on a field, or by\n * using joi schema. joi schema is recommended when possible.\n *\n * (?\n * +\n\nconst joiSchema = Joi.object({\n username: Joi.string().alphanum().min(3).max(30).required(),\n password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),\n});\n\n * const MyForm = () => (\n <Form initialValues={{name: ''}} joiSchema={joiSchema}>\n <Stack>\n <TextField name=\"username\" label=\"User Name\"/>\n <TextField name=\"password\" label=\"Password\" />\n </Stack>\n </Form>\n )\n *\n * render(<MyForm />)\n * ?)\n *\n * @example (Example)\n * ## Moving the form state outside of Form\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 innerFormStyle = {},\n joiSchema,\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 getResolver = () => {\n if (validate) return customResolver\n if (joiSchema) return joiResolver(joiSchema)\n return undefined\n }\n\n const newMethods =\n methods ||\n useForm<FormValues>({\n defaultValues: initialValues as DefaultValues<FormValues>,\n resolver: getResolver(),\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%', ...innerFormStyle } } onSubmit={ handleSubmit }>\n { typeof children === 'function' ? children(newMethods) : children }\n </form>\n </FormProvider>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLLabelElement, FormLabelProps >(({\n children: label,\n ...rest\n}, ref) => (\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 ref={ ref }\n >\n { label }\n </Label>\n))\n","import React, { forwardRef } from 'react'\nimport { Controller, FieldPath, FieldValues } 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 * @example (Example)\n * ## Type-safety\n * There are multiple ways to provide types for\n * the field callback values. To ensure that each\n * component within the field receives the correct\n * value, it's essential to make the field aware\n * of the form state values. When the Field component\n * does not receive any types, the \"value\" callback\n * argument will have the type of \"any\".\n * <br /><br />\n * ### Passing down the control prop (Recommended)\n * (?\n * <Form initialValues={{username: 'Alex'}}>\n * {\n * ({ control }) => {\n * <Box p=\"2\">\n * <Field name=\"username\" label=\"Input name\" control={ control }>\n * {({value, onChange}) => ( // \"value\" has type of \"string\"\n * <Input value={value} onChange={onChange} />\n * )}\n * </Field>\n * </Box>\n * }\n * }\n * </Form>\n * ?)\n * <br /><br />\n * ### Specifying generic arguments\n * You can also specify generic arguments on the Field\n * component to ensure that \"value\" has a valid type.\n * The passed generic type combined with the valid\n * \"name\" property ensures that \"value\" has the expected\n * type received from the generic type:\n * `<Field<MyFormBody> name=\"username\">...</Field>`\n */\n\nconst BaseField = <\n FormValues extends FieldValues = FieldValues,\n FieldName extends FieldPath<FormValues> = FieldPath<FormValues>\n> ({\n name,\n label,\n children,\n direction = 'column',\n isRequired = false,\n noLabelConnection = false,\n validate,\n control: passedControl,\n ...rest\n }: FieldProps<FormValues, FieldName>, ref: React.Ref<HTMLDivElement>) => {\n const methods = useFormContext<FormValues>()\n const { formState: { errors } } = methods\n const control = passedControl ?? methods.control\n\n const fieldError = getFieldError<FormValues>(name, errors)\n\n return (\n <FormControl isInvalid={ !!fieldError } isRequired={ isRequired } ref={ ref }>\n <Stack\n spacing=\"auto\"\n direction={ direction }\n alignItems={ direction === 'column' ? 'stretch' : 'center' }\n { ...rest }\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\nexport const Field = forwardRef(BaseField)\n","import React, { forwardRef } 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 = forwardRef<HTMLDivElement, CheckboxFieldProps>(({\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}, ref) => (\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 ref={ ref }\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, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { CheckboxGroup } from '@chakra-ui/react'\nimport { Field } from '../form'\nimport { Box } from '../box'\nimport { CheckboxFieldGroupProps } from './types'\n\n/**\n * The checkbox group component wrapped in a <Field />\n * meant to be used only inside <Form /> together with Checkbox\n * @see Checkbox\n * @see {@link https://northlight.dev/reference/checkbox-group-field}\n *\n */\nexport const CheckboxGroupField = forwardRef<HTMLDivElement, CheckboxFieldGroupProps>(({\n name,\n label,\n children,\n isRequired,\n direction,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <CheckboxGroup\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"checkbox-group-field-test-id\"\n { ...rest }\n >\n { children }\n </CheckboxGroup>\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: IconComponent.props.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 { Popover as ChakraPopover, PopoverProps } from '@chakra-ui/react'\n\nexport const Popover = (props: PopoverProps) => (\n <ChakraPopover isLazy={ true } { ...props } />\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, { forwardRef, 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 = forwardRef<HTMLDivElement, FlipButtonProps>((props, wrapperRef) => {\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, 'aria-label': `${isMulti ? 'Checkbox' : 'Radio'}-input for ${value}` })\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 && iconPlacement !== 'none') || 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 ref={ wrapperRef }\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, { forwardRef } 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 = forwardRef<HTMLDivElement, FlipButtonGroupFieldProps>(({\n name,\n label,\n children,\n direction,\n isRequired,\n iconPlacement = 'left',\n onChange: onChangeCallback = identity,\n validate,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\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, { forwardRef } from 'react'\nimport { Box, BoxProps } from '../box'\nimport { theme } from '../../theme'\n\nconst hoverAndActiveStyles = {\n borderLeftColor: theme.colors.border['pane-divider'].hover,\n}\n\nexport const ResizeHandle = forwardRef<HTMLDivElement, BoxProps>(\n ({ color, ...rest }, ref) => (\n <Box\n ref={ ref }\n cursor=\"col-resize\"\n _hover={ hoverAndActiveStyles }\n _active={ hoverAndActiveStyles }\n transition=\"border 250ms linear\"\n h=\"inherit\"\n w=\"1\"\n borderLeftWidth=\"lg\"\n borderLeftStyle=\"solid\"\n borderColor={ color ?? 'transparent' }\n zIndex=\"docked\"\n { ...rest }\n />\n )\n)\n","import React, { KeyboardEventHandler, useRef } from 'react'\nimport { CalendarDuo } from '@northlight/icons'\nimport { Button } from '../../../button'\nimport { TriggerProps } from './types'\nimport { Icon } from '../../../icon'\n\nexport const Trigger = (props: TriggerProps) => {\n const {\n id,\n 'aria-haspopup': ariaHasPopup,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-expanded': ariaExpanded,\n isDisabled,\n handleClick,\n } = props\n const ref = useRef<HTMLButtonElement>(null)\n\n const handleKeyDown: KeyboardEventHandler<HTMLButtonElement> = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n handleClick()\n }\n }\n\n return (\n <Button\n ref={ ref }\n id={ id }\n aria-haspopup={ ariaHasPopup }\n aria-label={ ariaLabel }\n aria-labelledby={ ariaLabelledBy }\n aria-describedby={ ariaDescribedBy }\n aria-expanded={ ariaExpanded }\n size=\"sm\"\n boxSize={ 8 }\n variant=\"ghost\"\n isDisabled={ isDisabled }\n onClick={ handleClick }\n onKeyDown={ handleKeyDown }\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 from 'react'\nimport { Table as ChakraTable } from '@chakra-ui/react'\nimport { TableProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/table}\n *\n * @example\n * (?\n <Table variant=\"rounded\">\n <Thead>\n <Tr>\n <Th fontWeight=\"bold\"> Number</Th>\n <Th fontWeight=\"bold\"> Title</Th>\n </Tr>\n </Thead>\n <Tbody>\n { [1, 2, 3, 4, 5].map((num) => (\n <Tr key={ num }>\n <Td>{ num }</Td>\n <Td>\n This is great Typography man\n </Td>\n </Tr>\n )) }\n </Tbody>\n </Table>\n * ?)\n *\n */\nexport const Table = (props: TableProps) => <ChakraTable { ...props } />\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=\"brand\"\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(({ weekDays }: DayLabelsProps) => {\n const { dayLabel } = useMultiStyleConfig('Calendar')\n const weekDaysWithIds = weekDays.map((day, i) => ({ label: day, _id: i }))\n\n return (\n <>\n { weekDaysWithIds.map(({ label, _id }) => (\n <chakra.th key={ _id } __css={ dayLabel }>\n { label }\n </chakra.th>\n )) }\n </>\n )\n})\n","const mondayFirstWeekDays = [ 'M', 'T', 'W', 'T', 'F', 'S', 'S' ]\nconst sundayFirstWeekDays = [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ]\n\nexport const getWeekdays = (firstDayOfWeek: 'monday' | 'sunday') =>\n (firstDayOfWeek === 'monday' ? mondayFirstWeekDays : sundayFirstWeekDays)\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'\nimport { getWeekdays } from './utils'\n\nexport const CalendarGrid = memo(\n ({ state, locale, firstDayOfWeek, ...rest }: CalendarGridProps) => {\n const startDate = state.visibleRange.start\n const { gridProps, headerProps } = useCalendarGrid(rest, state)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n const weekDays = getWeekdays(firstDayOfWeek)\n\n return (\n <Table variant=\"unstyled\" { ...gridProps }>\n <Thead { ...headerProps }>\n <Tr>\n <DayLabels weekDays={ weekDays } />\n </Tr>\n </Thead>\n <Tbody>\n { times(\n (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 ),\n weeksInMonth\n ) }\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]\n","import React, { ChangeEvent } from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { months } from '../constants'\nimport { MonthSelectProps } from './types'\n\nexport const MonthSelect = ({ state }: MonthSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n const selectedMonth = state.visibleRange.start.month - 1\n\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const diff = index - selectedMonth\n state.setFocusedDate(state.visibleRange.start.add({ months: diff }))\n }\n\n return (\n <Select\n id=\"month\"\n aria-label=\"Select Month\"\n onChange={ onChange }\n value={ selectedMonth }\n iconSize=\"0px\"\n size=\"sm\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n textAlign=\"center\"\n >\n { months.map((month, i) => (\n <option value={ i } key={ `month-${i as number}` }>\n { month }\n </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}: UseYearsRangeCalendarProps) => {\n const years: YearValue[] = []\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.visibleRange.start.add({ years: i })\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}: YearSelectRangeCalendarProps) => {\n const { years } = useYearsRangeCalendar({ 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","const MILLISECONDS_PER_DAY = 86400000\n\nconst getThursdayDate = (date: Date): Date => {\n const thursdayDate = new Date(date)\n thursdayDate.setDate(date.getDate() + (4 - (date.getDay() || 7)))\n return thursdayDate\n}\n\nconst hasWeek53 = (year: number): boolean => {\n const firstDayOfYear = new Date(year, 0, 1)\n return firstDayOfYear.getDay() === 4 ||\n (firstDayOfYear.getDay() === 3 && new Date(year, 1, 29).getMonth() === 1)\n}\n\nexport const getWeekNumberAtStartOfMonth = (\n year: number,\n month: number\n): number => {\n const firstDayOfMonth = new Date(year, month - 1, 1)\n const thursdayOfFirstWeek = getThursdayDate(firstDayOfMonth)\n const firstDayOfYear = new Date(year, 0, 1)\n const firstThursdayOfYear = getThursdayDate(firstDayOfYear)\n const daysDifference = thursdayOfFirstWeek.getTime() - firstThursdayOfYear.getTime()\n const weekNumber = Math.ceil((daysDifference / MILLISECONDS_PER_DAY + 1) / 7)\n\n const isYearTransition = firstThursdayOfYear.getFullYear() < year\n const isJanuaryTransition = isYearTransition\n && thursdayOfFirstWeek.getFullYear() < year && month === 1\n\n if (isJanuaryTransition) {\n return hasWeek53(year - 1) ? 53 : 52\n }\n\n if (isYearTransition && month > 1) {\n return weekNumber - 1\n }\n\n if (month === 1 && weekNumber > 51) {\n return !hasWeek53(year - 1) ? 1 : weekNumber\n }\n\n return weekNumber\n}\n\nexport const getDisplayWeek = (\n baseWeek: number,\n weekIndex: number,\n year: number,\n month: number\n): number => {\n const isJanuaryEdgeCase = month === 1 && baseWeek > 51\n\n if (isJanuaryEdgeCase) {\n return weekIndex === 0 ? baseWeek : weekIndex\n }\n\n if (weekIndex === 0) {\n return baseWeek\n }\n\n const nextWeek = baseWeek + weekIndex\n\n if (nextWeek > 52) {\n return hasWeek53(year) && nextWeek === 53 ? 53 : nextWeek - 52\n }\n\n return nextWeek\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 { equals } from 'ramda'\nimport { RangeCellProps } from './types'\n\nexport const RangeCell = ({\n state,\n date,\n currentMonth,\n range,\n}: RangeCellProps) => {\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n if (isOutsideMonth) return <chakra.td />\n\n const ref = useRef<HTMLButtonElement>(null)\n const {\n cellProps,\n buttonProps,\n isSelected: baseIsSelected,\n formattedDate,\n } = useCalendarCell({ date }, state, ref)\n\n const isToday = date.compare(today(state.timeZone)) === 0\n\n const isHighlighted = range && date < range.end && date > range.start\n\n const isSelected =\n range &&\n !isHighlighted &&\n (equals(date, range.start) || equals(date, range.end))\n\n return (\n <chakra.td { ...cellProps }>\n <chakra.button\n { ...buttonProps }\n type=\"button\"\n ref={ ref }\n borderRadius=\"xs\"\n bgColor={\n isHighlighted ? 'brand-alt' : isSelected ? 'brand' : 'transparent'\n }\n color={ isSelected ? 'text.inverted' : 'text.default' }\n fontSize=\"sm\"\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"brand\"\n mx=\"-1px\"\n ml={ isToday ? '-2px ' : undefined }\n my=\"0a\"\n w=\"8\"\n h=\"8\"\n fontWeight=\"medium\"\n opacity={ isSelected && !baseIsSelected ? '0.4' : '1' }\n _focusVisible={ {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n } }\n _hover={ {\n bgColor: isSelected ? ' background.button.brand-hover' : '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, { useMemo } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendar, useCalendarGrid } from '@react-aria/calendar'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { useLocale } from '@react-aria/i18n'\nimport { CalendarState } from '@react-stately/calendar'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { DayLabels } from './day-labels'\nimport { Box } from '../../../../box'\nimport { HStack, Stack } from '../../../../stack'\nimport { Flex } from '../../../../flex'\nimport { Icon } from '../../../../icon'\nimport { Small } from '../../../../typography'\nimport { MonthSelect, YearSelectRangeCalendar } from '../date-select'\nimport { MonthButton } from './month-button'\nimport { getDisplayWeek, getWeekNumberAtStartOfMonth } from './get-week-number-start-of-month'\nimport { RangeCell } from './range-cell'\nimport { DateRangeValue } from '../quick-navigation/types'\nimport { FirstDayOfWeek } from './types'\nimport { getWeekdays } from './utils'\n\ninterface StandaloneCalendarGridProps {\n state: CalendarState\n range: DateRangeValue | undefined\n firstDayOfWeek: FirstDayOfWeek\n}\n\nexport const StandaloneCalendarGrid = ({\n state,\n range,\n firstDayOfWeek,\n ...rest\n}: StandaloneCalendarGridProps) => {\n const { locale } = useLocale()\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n const startDate = state.visibleRange.start\n const { gridProps, headerProps } = useCalendarGrid(rest, state)\n const weekDays = getWeekdays(firstDayOfWeek)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n const weekNumberStart = useMemo(() => {\n const weekNumber = getWeekNumberAtStartOfMonth(startDate.year, startDate.month)\n return weekNumber\n }, [ startDate.year, startDate.month ])\n\n return (\n <Box { ...calendarProps } h=\"265px\" p=\"0\">\n <Stack>\n <Flex justify=\"space-between\" w=\"full\" p=\"1\" alignItems=\"center\">\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <HStack spacing=\"0\">\n <MonthSelect state={ state } />\n <YearSelectRangeCalendar state={ state } />\n </HStack>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </Flex>\n <chakra.table { ...gridProps } sx={ { borderSpacing: '0' } }>\n <chakra.thead { ...headerProps }>\n <chakra.tr>\n <chakra.th />\n <DayLabels weekDays={ weekDays } />\n </chakra.tr>\n </chakra.thead>\n <chakra.tbody>\n { times((weekIndex) => {\n const weekNumber = getDisplayWeek(weekNumberStart,\n weekIndex,\n startDate.year,\n startDate.month)\n return (\n <chakra.tr key={ weekIndex }>\n <chakra.td>\n <Small sx={ { color: 'text.subdued' } } pr=\"2\">\n w.\n { weekNumber }\n </Small>\n </chakra.td>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date) =>\n (date ? (\n <RangeCell\n key={ date.day }\n state={ state }\n range={ range }\n date={ date }\n currentMonth={ startDate }\n />\n ) : (\n <chakra.td />\n ))\n ) }\n </chakra.tr>\n )\n }, weeksInMonth) }\n </chakra.tbody>\n </chakra.table>\n </Stack>\n </Box>\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 { firstDayOfWeek } = props\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\n state={ state }\n locale={ locale }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Stack>\n </Box>\n )\n}\n","import React, { ReactNode } from 'react'\nimport { I18nProvider } from '@react-aria/i18n'\nimport { FirstDayOfWeek } from '../components/calendar/components/types'\n\ninterface DatePickerLocaleWrapperProps {\n firstDayOfWeek: FirstDayOfWeek\n children: ReactNode\n}\n\nexport const DatePickerLocaleWrapper = ({\n firstDayOfWeek,\n children,\n}: DatePickerLocaleWrapperProps) => {\n const locale = firstDayOfWeek === 'monday' ? 'en-DE' : 'en-US'\n return <I18nProvider locale={ locale }>{ children }</I18nProvider>\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig, useOutsideClick } 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'\nimport { DatePickerLocaleWrapper } from './date-picker-locale-wrapper'\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 firstDayOfWeek = 'monday',\n value,\n defaultValue,\n onChange,\n maxValue,\n isReadOnly,\n isRequired,\n placeholderValue,\n isDateUnavailable,\n granularity,\n hourCycle,\n shouldForceLeadingZeros,\n pageBehavior,\n defaultOpen,\n onOpenChange,\n label,\n description,\n errorMessage,\n id,\n name,\n autoFocus,\n onFocus,\n onBlur,\n onFocusChange,\n onKeyDown,\n onKeyUp,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-details': ariaDetails,\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const dialogRef = useRef() as React.MutableRefObject<HTMLDivElement>\n const { group } = useMultiStyleConfig('DatePicker')\n\n const state = useDatePickerState({\n value,\n defaultValue,\n onChange,\n minValue,\n maxValue,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n placeholderValue,\n isDateUnavailable,\n granularity,\n hourCycle,\n shouldForceLeadingZeros,\n defaultOpen,\n onOpenChange,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const { buttonProps, fieldProps, calendarProps, groupProps, dialogProps } =\n useDatePicker(\n {\n value,\n defaultValue,\n onChange,\n minValue: minValue || parseDate('1994-03-08'),\n maxValue,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n placeholderValue,\n isDateUnavailable,\n granularity,\n hourCycle,\n shouldForceLeadingZeros,\n pageBehavior,\n defaultOpen,\n onOpenChange,\n label,\n description,\n errorMessage,\n id,\n name,\n autoFocus,\n onFocus,\n onBlur,\n onFocusChange,\n onKeyDown,\n onKeyUp,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-details': ariaDetails,\n },\n state,\n ref\n )\n\n const {\n id: buttonId,\n 'aria-haspopup': buttonAriaHasPopup,\n 'aria-label': buttonAriaLabel,\n 'aria-labelledby': buttonAriaLabelledBy,\n 'aria-describedby': buttonAriaDescribedBy,\n 'aria-expanded': buttonAriaExpanded,\n } = buttonProps\n\n const {\n id: dialogId,\n 'aria-labelledby': dialogAriaLabelledBy,\n } = dialogProps\n\n const {\n autoFocus: calAutoFocus,\n value: calValue,\n onChange: calOnChange,\n minValue: calMinValue,\n maxValue: calMaxValue,\n isDisabled: calIsDisabled,\n isReadOnly: calIsReadOnly,\n isDateUnavailable: calIsDateUnavailable,\n defaultFocusedValue: calDefaultFocusedValue,\n isInvalid: calIsInvalid,\n errorMessage: calErrorMessage,\n } = calendarProps\n\n const {\n id: fieldId,\n 'aria-describedby': fieldAriaDescribedBy,\n 'aria-labelledby': fieldAriaLabelledBy,\n value: fieldValue,\n onChange: fieldOnChange,\n minValue: fieldMinValue,\n maxValue: fieldMaxValue,\n placeholderValue: fieldPlaceholderValue,\n hideTimeZone: fieldHideTimeZone,\n hourCycle: fieldHourCycle,\n shouldForceLeadingZeros: fieldShouldForceLeadingZeros,\n granularity: fieldGranularity,\n isDisabled: fieldIsDisabled,\n isReadOnly: fieldIsReadOnly,\n isRequired: fieldIsRequired,\n isInvalid: fieldIsInvalid,\n autoFocus: fieldAutoFocus,\n name: fieldName,\n ...restFieldProps\n } = fieldProps\n\n const {\n role: groupRole,\n id: groupId,\n 'aria-disabled': groupAriaDisabled,\n 'aria-labelledby': groupAriaLabelledBy,\n 'aria-describedby': groupAriaDescribedBy,\n onKeyDown: groupOnKeyDown,\n onKeyUp: groupOnKeyUp,\n onFocus: groupOnFocus,\n onBlur: groupOnBlur,\n onPointerDown: groupOnPointerDown,\n onClick: groupOnClick,\n } = groupProps\n\n const togglePopup = () => {\n state.setOpen(!state.isOpen)\n }\n\n useOutsideClick({\n ref: dialogRef,\n handler: (event) => {\n if (ref.current?.contains(event.target as Node)) return\n state.setOpen(false)\n },\n })\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ () => state.setOpen(false) }\n closeOnBlur={ false }\n placement=\"bottom-end\"\n >\n <PopoverAnchor>\n <HStack minW={ 56 }>\n <InputGroup\n role={ groupRole }\n id={ groupId }\n aria-disabled={ groupAriaDisabled }\n aria-labelledby={ groupAriaLabelledBy }\n aria-describedby={ groupAriaDescribedBy }\n onKeyDown={ groupOnKeyDown }\n onKeyUp={ groupOnKeyUp }\n onFocus={ groupOnFocus }\n onBlur={ groupOnBlur }\n onPointerDown={ groupOnPointerDown }\n onClick={ groupOnClick }\n ref={ ref }\n __css={ group }\n >\n <StyledField\n isDisabled={ isDisabled }\n isInvalid={ isInvalid }\n variant={ variant }\n >\n <Box paddingInlineStart=\"1a\" paddingInlineEnd={ 10 }>\n <DateField\n { ...restFieldProps }\n id={ fieldId }\n aria-describedby={ fieldAriaDescribedBy }\n aria-labelledby={ fieldAriaLabelledBy }\n value={ fieldValue }\n onChange={ fieldOnChange }\n minValue={ fieldMinValue }\n maxValue={ fieldMaxValue }\n placeholderValue={ fieldPlaceholderValue }\n hideTimeZone={ fieldHideTimeZone }\n hourCycle={ fieldHourCycle }\n shouldForceLeadingZeros={ fieldShouldForceLeadingZeros }\n granularity={ fieldGranularity }\n isDisabled={ fieldIsDisabled }\n isReadOnly={ fieldIsReadOnly }\n isRequired={ fieldIsRequired }\n isInvalid={ fieldIsInvalid }\n autoFocus={ fieldAutoFocus }\n name={ fieldName }\n dateFormat={ dateFormat }\n />\n </Box>\n </StyledField>\n <InputRightElement\n sx={ { height: '100%', paddingRight: '1' } }\n zIndex={ 0 }\n >\n <Trigger\n id={ buttonId }\n aria-haspopup={ buttonAriaHasPopup }\n aria-label={ buttonAriaLabel }\n aria-labelledby={ buttonAriaLabelledBy }\n aria-describedby={ buttonAriaDescribedBy }\n aria-expanded={ buttonAriaExpanded }\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\n id={ dialogId }\n aria-labelledby={ dialogAriaLabelledBy }\n ref={ dialogRef }\n w={ 64 }\n border=\"none\"\n >\n <FocusScope contain={ true } restoreFocus={ true }>\n <DatePickerLocaleWrapper firstDayOfWeek={ firstDayOfWeek }>\n <Calendar\n autoFocus={ calAutoFocus }\n value={ calValue }\n onChange={ calOnChange }\n minValue={ calMinValue }\n maxValue={ calMaxValue }\n isDisabled={ calIsDisabled }\n isReadOnly={ calIsReadOnly }\n isDateUnavailable={ calIsDateUnavailable }\n defaultFocusedValue={ calDefaultFocusedValue }\n isInvalid={ calIsInvalid }\n errorMessage={ calErrorMessage }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </DatePickerLocaleWrapper>\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","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 { DateRangeValue, QuickSelectState } from './types'\n\nexport const validRange = (date: DateRangeValue, state: QuickSelectState) =>\n !date || (\n (!state.minValue || date.start >= state.minValue) &&\n (!state.maxValue || date.end <= state.maxValue) &&\n date.end >= date.start\n )\n","import {\n CalendarDate,\n endOfMonth,\n endOfWeek,\n endOfYear,\n startOfMonth,\n startOfWeek,\n startOfYear,\n today,\n} from '@internationalized/date'\nimport { QuickSelectState } from './types'\n\nexport const getQuickSelectOptions = (\n state: QuickSelectState,\n locale: string,\n fiscalStartMonth: number,\n fiscalStartDay: number\n) => {\n const thisDay = today(state.timeZone)\n\n const startOfMonthWithDays = (\n date: CalendarDate,\n { months, days }: { months: number, days: number }\n ) => {\n const start = date.add({ months }).set({ day: days })\n return start\n }\n\n const endOfMonthWithDays = (\n date: CalendarDate,\n { months, days }: { months: number, days: number }\n ) => {\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 nextWeek = {\n value: {\n start: startOfWeek(thisDay.add({ weeks: 1 }), locale),\n end: endOfWeek(thisDay.add({ weeks: 1 }), locale),\n },\n label: 'Next 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 // Fiscal year from input is 0-11, while internationalized gives 1-12. This corrects the check.\n const offsetFiscalYear =\n thisDay.month < fiscalStartMonth + 1 ||\n (thisDay.month === fiscalStartMonth + 1 && thisDay.day < fiscalStartDay)\n ? 1\n : 0\n\n const thisFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n { months: fiscalStartMonth, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n { months: fiscalStartMonth + 12, days: fiscalStartDay }\n ),\n },\n label: 'This Fiscal Year',\n }\n\n const lastFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear + 1 }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear + 1 }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: 'Last Fiscal Year',\n }\n\n const yearToDate = {\n value: {\n start: startOfMonthWithDays(startOfYear(thisDay), {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }),\n end: thisDay,\n },\n label: 'Year to Date',\n }\n\n const S1 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'S1' : 'FS1',\n }\n\n const S2 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'S2' : 'FS2',\n }\n\n const F1 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 3,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q1' : 'FQ1',\n }\n\n const F2 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 3,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q2' : 'FQ2',\n }\n\n const F3 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 9,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q3' : 'FQ3',\n }\n\n const F4 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 9,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q4' : 'FQ4',\n }\n\n const fiscalSemesters = [ S1, S2 ]\n const fiscalQuarters = [ F1, F2, F3, F4 ]\n const fiscalYears =\n fiscalStartMonth === 0 ? [] : [ thisFiscalYear, lastFiscalYear ]\n\n const quickDates = [\n thisYear,\n yearToDate,\n lastWeek,\n nextWeek,\n thisWeek,\n lastMonth,\n nextThreeMonths,\n nextSixMonths,\n nextMonth,\n thisMonth,\n lastYear,\n nextYear,\n ...fiscalYears,\n ]\n\n return { quickDates, fiscalQuarters, fiscalSemesters }\n}\n","import React, { useMemo } from 'react'\nimport { any, equals, map } from 'ramda'\nimport { palette } from '@northlight/tokens'\nimport { Flex, Spacer } 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 locale = '',\n height = '17.5rem',\n}: QuickSelectProps) => {\n const { quickDates, fiscalQuarters, fiscalSemesters } = useMemo(\n () => getQuickSelectOptions(state, locale, fiscalStartMonth, fiscalStartDay),\n []\n )\n\n const updateDate = (newDate: DateRangeValue) => () => {\n if (newDate) {\n state.setValue(newDate)\n state.setFocusedDateRange(newDate)\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 >\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 <Spacer />\n <Flex\n justifyContent=\"space-around\"\n w=\"full\"\n pt=\"2\"\n pr=\"4\"\n display={ shouldShow(fiscalSemesters) ? 'flex' : 'none' }\n >\n { map(\n (semester) =>\n validRange(semester.value, state) && (\n <DateButton\n onClick={ updateDate(semester.value) }\n isActive={ getIsActive(semester) }\n key={ `quick-select-${semester.label}` }\n >\n { semester.label }\n </DateButton>\n ),\n fiscalSemesters\n ) }\n </Flex>\n <Flex\n justifyContent=\"space-around\"\n w=\"full\"\n pt={ shouldShow(fiscalSemesters) ? '0' : '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, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { useLocale } from '@react-aria/i18n'\nimport { useCalendarState } from '@react-stately/calendar'\nimport { CalendarDate, GregorianCalendar } from '@internationalized/date'\nimport { RangeCalendarProps } from './types'\nimport { Button } from '../../../button'\nimport { Label } from '../../../typography'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { StandaloneCalendarGrid } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { DateRangeValue } from './quick-navigation/types'\nimport { QuickSelect } from './quick-navigation/quick-select'\n\nconst focusRing = {\n borderWidth: 'xs',\n borderRadius: 'md',\n borderColor: 'border.brand.hover',\n borderStyle: 'solid',\n}\n\nexport const RangeCalendar = (props: RangeCalendarProps) => {\n const {\n onChange: setRange = identity,\n value,\n handleClose,\n resetDate,\n isClearable = true,\n fiscalStartMonth,\n fiscalStartDay,\n minValue,\n maxValue,\n firstDayOfWeek,\n onSave,\n buttonLabel = 'Save',\n clearButtonLabel = 'Clear',\n } = props\n\n const { locale } = useLocale()\n\n const ref = useRef<HTMLDivElement>(null)\n const { rangeCalendarContainer } = useMultiStyleConfig('Calendar')\n\n const calendarOneState = useCalendarState({\n value: value && value.start ? value.start : null,\n minValue,\n maxValue,\n onChange: (newVal) => {\n setRange({\n end: value && value.end && newVal <= value.end ? value.end : newVal,\n start: newVal,\n })\n },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const calendarTwoState = useCalendarState({\n value: value && value.end ? value.end : null,\n minValue,\n maxValue,\n onChange: (newVal) => {\n setRange({\n start:\n value && value.end && value.start <= newVal ? value.start : newVal,\n end: newVal,\n })\n },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const focusDateRange = (dateRange: DateRangeValue) => {\n if (dateRange && dateRange.start && dateRange.end) {\n calendarOneState.setFocusedDate(dateRange.start as CalendarDate)\n calendarTwoState.setFocusedDate(dateRange.end as CalendarDate)\n }\n }\n\n const state = {\n setValue: setRange,\n setFocusedDateRange: focusDateRange,\n value,\n timeZone: calendarOneState.timeZone,\n minValue,\n maxValue,\n }\n\n const focusedStartMonthProps = value && value.start ? {} : focusRing\n\n const handleSave = () => {\n onSave?.()\n handleClose()\n }\n\n const handleReset = () => {\n resetDate()\n handleClose()\n }\n\n return (\n <Box ref={ ref } __css={ rangeCalendarContainer }>\n <Stack>\n <Flex gap={ 4 }>\n <QuickSelect\n state={ state }\n locale={ locale }\n fiscalStartMonth={ fiscalStartMonth }\n fiscalStartDay={ fiscalStartDay }\n />\n <Stack>\n <HStack alignItems=\"start\" spacing={ 8 } h=\"full\" pt=\"2\">\n <Stack h=\"full\" { ...focusedStartMonthProps }>\n <Box p=\"2\">\n <Label size=\"xs\">Start date:</Label>\n <StandaloneCalendarGrid\n state={ calendarOneState }\n range={ value }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Box>\n </Stack>\n <Stack h=\"full\" justify=\"space-between\">\n <Stack opacity={ value && value.start ? '1' : '0.4' }>\n <Box p=\"2\">\n <Label size=\"xs\">End date:</Label>\n <StandaloneCalendarGrid\n state={ calendarTwoState }\n range={ value }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Box>\n </Stack>\n <HStack pt=\"2\" alignSelf=\"end\">\n { isClearable && (\n <Button onClick={ handleReset } variant=\"ghost\" size=\"sm\">\n { clearButtonLabel }\n </Button>\n ) }\n <Button variant=\"brand\" onClick={ handleSave } size=\"sm\">\n { buttonLabel }\n </Button>\n </HStack>\n </Stack>\n </HStack>\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 {\n AlertCircleSolid,\n AlertOctagonSolid,\n AlertTriangleSolid,\n BrightnessSolid,\n CheckCircleSolid,\n HelpCircleSolid,\n InfoSolid,\n} from '@northlight/icons'\nimport { AlertVariants } from '../../alert/types'\n\nexport const tooltipIconMap: Record<AlertVariants, any> = {\n success: CheckCircleSolid,\n warning: AlertTriangleSolid,\n error: AlertCircleSolid,\n danger: AlertOctagonSolid,\n info: InfoSolid,\n ai: BrightnessSolid,\n default: HelpCircleSolid,\n ghost: HelpCircleSolid,\n}\n","import React from 'react'\nimport {\n Tooltip as ChakraTooltip,\n HStack,\n VStack,\n} from '@chakra-ui/react'\nimport { Label, P } from '../typography'\nimport { Icon } from '../icon'\nimport { AlertVariants } from '../alert'\nimport { tooltipIconMap } from '../types/tooltipIconMap'\nimport { OurTooltipProps } from './types'\n\n/**\n * A tooltip is a brief, informative message that appears when a user interacts with an element.\n * @see {@link https://northlight.dev/reference/tooltip}\n *\n * @example\n * (?\n * <HStack>\n * <Tooltip\n * hasIcon={ true }\n * description=\"Here’s a regular tooltip with some with icon\n * inside of it that’s supposed to be substantially large.\">\n * <Badge>ICON</Badge>\n * </Tooltip>\n * <Tooltip\n * description=\"Here’s a regular tooltip with some text without icon\n * inside of it that’s supposed to be substantially large.\"\n * >\n * <Badge>NOICON</Badge>\n * </Tooltip>\n * <Tooltip\n * description={\n * <Box>\n * <Text>\n * Some text\n * </Text>\n * <UnorderedList>\n * <ListItem>\n * List item 1\n * </ListItem>\n * <ListItem>\n * List item 2\n * </ListItem>\n * <ListItem>\n * List item 3\n * </ListItem>\n * </UnorderedList>\n * </Box>\n * }\n * >\n * <Badge>With JSX content</Badge>\n * </Tooltip>\n * </HStack>\n * ?)\n *\n *\n * @example\n * (?\n * <HStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"success\"\n * description=\"This is a successful message\"\n * >\n * <Badge colorScheme=\"green\">Success</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"success\"\n * title=\"Please check fields\"\n * description=\"This is a successful message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"green\">Success</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"info\"\n * description=\"This is an informative text\"\n * >\n * <Badge colorScheme=\"blue\">Info</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"info\"\n * title=\"Please check fields\"\n * description=\"This is an informative text with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"blue\">Info</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"warning\"\n * description=\"This is a warning\"\n * >\n * <Badge colorScheme=\"yellow\">Warning</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"warning\"\n * title=\"Please check fields\"\n * description=\"This is a warning with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"yellow\">Warning</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"danger\"\n * description=\"This is an error message\"\n * >\n * <Badge colorScheme=\"red\">Error</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"danger\"\n * title=\"Please check fields\"\n * description=\"This is an error message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"red\">Error</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ai\"\n * description=\"This is an AI message\">\n * <Badge colorScheme=\"teal\" variant=\"subtle\">AI</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ai\"\n * title=\"Please check fields\"\n * description=\"This is an AI message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"teal\" variant=\"subtle\">AI</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ghost\"\n * description=\"This is an clean message\">\n * <Badge>Ghost</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ghost\"\n * title=\"Please check fields\"\n * description=\"This is an clean message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge>Ghost</Badge>\n * </Tooltip>\n * </VStack>\n * </HStack>\n * ?)\n */\n\nexport const Tooltip: React.FC<OurTooltipProps> = ({\n variant = 'default',\n hasArrow = true,\n title = '',\n description = '',\n hasIcon = false,\n ...rest\n}) => {\n const iconVariant: AlertVariants = variant as AlertVariants\n const icon = tooltipIconMap[iconVariant]\n\n const TooltipContent = (\n <HStack alignItems=\"flex-start\">\n { hasIcon && <Icon as={ icon } color={ `icon.toast.${iconVariant}` } /> }\n <VStack spacing={ 0 } alignItems=\"flex-start\">\n <Label size=\"sm\">{ title }</Label>\n <P\n variant=\"14\"\n sx={ {\n color: !variant || variant === 'ai' ? 'text.inverted' : 'text.default',\n } }\n >\n { description }\n </P>\n </VStack>\n </HStack>\n )\n return (\n <ChakraTooltip\n hasArrow={ hasArrow }\n hasIcon={ hasIcon }\n label={ title || description ? TooltipContent : undefined }\n variant={ variant }\n { ...rest }\n />\n )\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, useOutsideClick } from '@chakra-ui/react'\nimport { CheckSolid, XCloseSolid } from '@northlight/icons'\nimport { identity, isNil } from 'ramda'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { DateRange } from '@react-types/datepicker'\nimport { DateRangePickerProps, DateRange as NorthlightDateRange } from '../types'\nimport { RangeCalendar } from '../components/calendar/quick-navigation'\nimport { P } from '../../typography'\nimport { HStack } from '../../stack'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { Portal } from '../../portal'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { IconButton } from '../../icon-button'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Icon } from '../../icon'\nimport { isValidDateRange } from '../date-picker-field/utils'\nimport { DatePickerLocaleWrapper } from './date-picker-locale-wrapper'\nimport { Tooltip } from '../../tooltip'\n\nconst parseValue = (value: any) => {\n if (!isValidDateRange(value)) return null\n return { start: parseDate(value.startDate), end: parseDate(value.endDate) }\n}\n\nconst PortalWrapper = ({\n renderInPortal,\n children,\n}: {\n renderInPortal: boolean\n children: React.ReactNode\n}) => {\n if (renderInPortal) {\n return <Portal>{ children }</Portal>\n }\n return <>{ children }</>\n}\n\nconst isDatesEqual = (\n date1: NorthlightDateRange | null,\n date2: NorthlightDateRange | null\n) => date1?.startDate === date2?.startDate && date1?.endDate === date2?.endDate\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\" />\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 variant = 'outline',\n onChange: onChangeCallback = identity,\n value,\n minValue = '1994-03-08',\n maxValue,\n renderInPortal = false,\n firstDayOfWeek,\n onSave,\n buttonLabel = 'Save',\n clearButtonLabel = 'Clear',\n savedDateRange,\n defaultDateRange,\n CustomResetButton,\n onCancelChanges,\n 'data-testid': dataTestId,\n defaultOpen = false,\n onOpenChange,\n placeholderValue,\n isDateUnavailable,\n allowsNonContiguousRanges,\n startName,\n endName,\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const dialogRef = useRef() as React.MutableRefObject<HTMLDivElement>\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 const state = useDateRangePickerState({\n value: parsedProps.value,\n onChange: parsedProps.onChange,\n minValue: parsedProps.minValue,\n maxValue: parsedProps.maxValue,\n isDisabled,\n isInvalid,\n placeholderValue,\n isDateUnavailable,\n allowsNonContiguousRanges,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n defaultOpen,\n onOpenChange,\n })\n\n const {\n groupProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDateRangePicker(\n {\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: parsedProps.minValue || parseDate('1994-03-08'),\n maxValue: parsedProps.maxValue,\n placeholderValue,\n isDateUnavailable,\n allowsNonContiguousRanges,\n isDisabled,\n isInvalid,\n startName,\n endName,\n 'aria-label': 'Date range picker',\n ...(!isNil(dataTestId) && { 'data-testid': dataTestId }),\n },\n state,\n ref\n )\n\n const {\n id: buttonId,\n 'aria-haspopup': buttonAriaHasPopup,\n 'aria-label': buttonAriaLabel,\n 'aria-labelledby': buttonAriaLabelledBy,\n 'aria-describedby': buttonAriaDescribedBy,\n 'aria-expanded': buttonAriaExpanded,\n } = buttonProps\n\n const {\n role: groupRole,\n id: groupId,\n 'aria-disabled': groupAriaDisabled,\n 'aria-labelledby': groupAriaLabelledBy,\n 'aria-describedby': groupAriaDescribedBy,\n onKeyDown: groupOnKeyDown,\n onKeyUp: groupOnKeyUp,\n onFocus: groupOnFocus,\n onBlur: groupOnBlur,\n onPointerDown: groupOnPointerDown,\n onClick: groupOnClick,\n } = groupProps\n\n const {\n id: startFieldId,\n 'aria-describedby': startFieldAriaDescribedBy,\n 'aria-labelledby': startFieldAriaLabelledBy,\n value: startFieldValue,\n onChange: startFieldOnChange,\n minValue: startFieldMinValue,\n maxValue: startFieldMaxValue,\n placeholderValue: startFieldPlaceholderValue,\n hideTimeZone: startFieldHideTimeZone,\n hourCycle: startFieldHourCycle,\n shouldForceLeadingZeros: startFieldShouldForceLeadingZeros,\n granularity: startFieldGranularity,\n isDisabled: startFieldIsDisabled,\n isReadOnly: startFieldIsReadOnly,\n isRequired: startFieldIsRequired,\n isInvalid: startFieldIsInvalid,\n autoFocus: startFieldAutoFocus,\n name: startFieldName,\n ...restStartFieldProps\n } = startFieldProps\n\n const {\n id: endFieldId,\n 'aria-describedby': endFieldAriaDescribedBy,\n 'aria-labelledby': endFieldAriaLabelledBy,\n value: endFieldValue,\n onChange: endFieldOnChange,\n minValue: endFieldMinValue,\n maxValue: endFieldMaxValue,\n placeholderValue: endFieldPlaceholderValue,\n hideTimeZone: endFieldHideTimeZone,\n hourCycle: endFieldHourCycle,\n shouldForceLeadingZeros: endFieldShouldForceLeadingZeros,\n granularity: endFieldGranularity,\n isDisabled: endFieldIsDisabled,\n isReadOnly: endFieldIsReadOnly,\n isRequired: endFieldIsRequired,\n isInvalid: endFieldIsInvalid,\n name: endFieldName,\n ...restEndFieldProps\n } = endFieldProps\n\n const {\n id: dialogId,\n 'aria-labelledby': dialogAriaLabelledBy,\n } = dialogProps\n\n const {\n autoFocus: calAutoFocus,\n value: calValue,\n onChange: calOnChange,\n minValue: calMinValue,\n maxValue: calMaxValue,\n isDisabled: calIsDisabled,\n isReadOnly: calIsReadOnly,\n isDateUnavailable: calIsDateUnavailable,\n allowsNonContiguousRanges: calAllowsNonContiguousRanges,\n defaultFocusedValue: calDefaultFocusedValue,\n isInvalid: calIsInvalid,\n errorMessage: calErrorMessage,\n } = calendarProps\n\n const togglePopup = () => {\n state.setOpen(!state.isOpen)\n }\n\n const handleClose = () => {\n state.setOpen(false)\n }\n\n useOutsideClick({\n ref: dialogRef,\n handler: (event) => {\n if (ref.current?.contains(event.target as Node)) return\n state.setOpen(false)\n },\n })\n\n const ResetButton = CustomResetButton || (\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n hidden={ !isClearable }\n isDisabled={ isDisabled }\n onClick={ resetDate }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n )\n\n const cancelOrResetDateChange = () => {\n if (onCancelChanges) {\n if (!isNil(savedDateRange)) onChangeCallback(savedDateRange)\n onCancelChanges()\n } else {\n if (!isNil(defaultDateRange)) onChangeCallback(defaultDateRange)\n resetDate()\n }\n }\n\n const handleSave = () => {\n onSave?.()\n handleClose()\n }\n\n const handleModalClose = () => {\n if (!isNil(savedDateRange)) onChangeCallback(savedDateRange)\n handleClose()\n }\n\n // If savedDateRange is null, we consider value saved\n const isCurrentDateSaved =\n isNil(savedDateRange) || isDatesEqual(value, savedDateRange)\n\n // If defaultDateRange is null, we consider value resettable\n const isDateResettable =\n isNil(defaultDateRange) || !isDatesEqual(value, defaultDateRange)\n\n const canShowSaveAndCancelButtons = !isNil(savedDateRange) && !isNil(defaultDateRange)\n\n const shouldShowResetButton =\n !state.isOpen && isCurrentDateSaved && isDateResettable\n\n const shouldShowSaveAndCancelButtons =\n canShowSaveAndCancelButtons && !state.isOpen && !isCurrentDateSaved\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ handleModalClose }\n closeOnBlur={ false }\n placement=\"bottom-start\"\n >\n <PopoverAnchor>\n <HStack>\n <InputGroup\n role={ groupRole }\n id={ groupId }\n aria-disabled={ groupAriaDisabled }\n aria-labelledby={ groupAriaLabelledBy }\n aria-describedby={ groupAriaDescribedBy }\n onKeyDown={ groupOnKeyDown }\n onKeyUp={ groupOnKeyUp }\n onFocus={ groupOnFocus }\n onBlur={ groupOnBlur }\n onPointerDown={ groupOnPointerDown }\n onClick={ groupOnClick }\n ref={ ref }\n __css={ group }\n >\n <StyledField\n isDisabled={ isDisabled }\n isInvalid={ isInvalid }\n variant={ variant }\n >\n <HStack paddingInlineStart=\"1a\" paddingInlineEnd={ 10 }>\n <DateField\n { ...restStartFieldProps }\n id={ startFieldId }\n aria-describedby={ startFieldAriaDescribedBy }\n aria-labelledby={ startFieldAriaLabelledBy }\n value={ startFieldValue }\n onChange={ startFieldOnChange }\n minValue={ startFieldMinValue }\n maxValue={ startFieldMaxValue }\n placeholderValue={ startFieldPlaceholderValue }\n hideTimeZone={ startFieldHideTimeZone }\n hourCycle={ startFieldHourCycle }\n shouldForceLeadingZeros={ startFieldShouldForceLeadingZeros }\n granularity={ startFieldGranularity }\n isDisabled={ startFieldIsDisabled }\n isReadOnly={ startFieldIsReadOnly }\n isRequired={ startFieldIsRequired }\n isInvalid={ startFieldIsInvalid }\n autoFocus={ startFieldAutoFocus }\n name={ startFieldName }\n dateFormat={ dateFormat }\n />\n <P>-</P>\n <DateField\n { ...restEndFieldProps }\n id={ endFieldId }\n aria-describedby={ endFieldAriaDescribedBy }\n aria-labelledby={ endFieldAriaLabelledBy }\n value={ endFieldValue }\n onChange={ endFieldOnChange }\n minValue={ endFieldMinValue }\n maxValue={ endFieldMaxValue }\n placeholderValue={ endFieldPlaceholderValue }\n hideTimeZone={ endFieldHideTimeZone }\n hourCycle={ endFieldHourCycle }\n shouldForceLeadingZeros={ endFieldShouldForceLeadingZeros }\n granularity={ endFieldGranularity }\n isDisabled={ endFieldIsDisabled }\n isReadOnly={ endFieldIsReadOnly }\n isRequired={ endFieldIsRequired }\n isInvalid={ endFieldIsInvalid }\n name={ endFieldName }\n dateFormat={ dateFormat }\n />\n </HStack>\n </StyledField>\n <InputRightElement sx={ { height: '100%', paddingRight: '1' } }>\n <Trigger\n id={ buttonId }\n aria-haspopup={ buttonAriaHasPopup }\n aria-label={ buttonAriaLabel }\n aria-labelledby={ buttonAriaLabelledBy }\n aria-describedby={ buttonAriaDescribedBy }\n aria-expanded={ buttonAriaExpanded }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n { shouldShowResetButton && (\n ResetButton\n ) }\n { shouldShowSaveAndCancelButtons && (\n <>\n <Tooltip label={ clearButtonLabel }>\n <IconButton\n aria-label=\"cancel-date-change\"\n variant=\"ghost\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ onCancelChanges }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </Tooltip>\n <Tooltip label={ buttonLabel }>\n <IconButton\n aria-label=\"save-date\"\n variant=\"brand\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ handleSave }\n isDisabled={ isDisabled }\n icon={ <Icon as={ CheckSolid } /> }\n />\n </Tooltip>\n </>\n ) }\n </HStack>\n </PopoverAnchor>\n <PortalWrapper renderInPortal={ renderInPortal }>\n { state.isOpen && (\n <PopoverContent\n id={ dialogId }\n aria-labelledby={ dialogAriaLabelledBy }\n ref={ dialogRef }\n w=\"max-content\"\n >\n <FocusScope contain={ true } restoreFocus={ true }>\n <DatePickerLocaleWrapper firstDayOfWeek={ firstDayOfWeek }>\n <RangeCalendar\n autoFocus={ calAutoFocus }\n value={ calValue }\n onChange={ calOnChange }\n minValue={ calMinValue }\n maxValue={ calMaxValue }\n isDisabled={ calIsDisabled }\n isReadOnly={ calIsReadOnly }\n isDateUnavailable={ calIsDateUnavailable }\n allowsNonContiguousRanges={ calAllowsNonContiguousRanges }\n defaultFocusedValue={ calDefaultFocusedValue }\n isInvalid={ calIsInvalid }\n errorMessage={ calErrorMessage }\n resetDate={ cancelOrResetDateChange }\n handleClose={ handleModalClose }\n fiscalStartMonth={ fiscalStartMonth || 0 }\n fiscalStartDay={ fiscalStartDay || 0 }\n isClearable={ isClearable }\n firstDayOfWeek={ firstDayOfWeek }\n onSave={ onSave }\n clearButtonLabel={ clearButtonLabel }\n buttonLabel={ buttonLabel }\n />\n </DatePickerLocaleWrapper>\n </FocusScope>\n </PopoverContent>\n ) }\n </PortalWrapper>\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, { forwardRef } 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 = forwardRef<HTMLDivElement, DatePickerFieldProps>(({\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}, ref) => {\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 ref={ ref }\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, { forwardRef } 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 = forwardRef<HTMLDivElement, DateRangePickerFieldProps>(({\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 onSave,\n buttonLabel = 'Save',\n ...rest\n}, ref) => {\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 ref={ ref }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <DateRangePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n onSave={ onSave }\n resetDate={ () => onChange(null) }\n value={ value }\n minValue={ minValue }\n maxValue={ maxValue }\n validationState={ errors.name ? 'invalid' : 'valid' }\n isClearable={ isClearable }\n buttonLabel={ buttonLabel }\n { ...(rest as any) }\n />\n ) }\n </Field>\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, { forwardRef } 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 = forwardRef<HTMLDivElement, RadioFieldGroupProps>(({\n name,\n label,\n children,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\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 ref={ ref }\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","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 ControlProps,\n DropdownIndicatorProps,\n GroupBase,\n MenuProps,\n MultiValueGenericProps,\n OptionProps,\n chakraComponents,\n} from 'chakra-react-select'\nimport { merge } from 'ramda'\nimport { Box } from '../box'\nimport { HStack } from '../stack'\nimport { Icon } from '../icon'\nimport { SearchBarOptionType } from './types'\n\nexport function getComponents<T extends SearchBarOptionType> (\n components?: Record<string, any>\n) {\n return merge(\n {\n Menu: (props: MenuProps<T>) => (\n <Box data-testid=\"select-menu-wrapper-test-id\">\n <chakraComponents.Menu { ...props }>\n { props.children }\n </chakraComponents.Menu>\n </Box>\n ),\n DropdownIndicator: (props: DropdownIndicatorProps<T>) =>\n (props.selectProps.icon ? (\n <chakraComponents.DropdownIndicator { ...props }>\n <Icon as={ props.selectProps.icon } />\n </chakraComponents.DropdownIndicator>\n ) : (\n <chakraComponents.DropdownIndicator { ...props } />\n )),\n Option: (props: OptionProps<T>) =>\n (props.selectProps.customOption ? (\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 <chakraComponents.MultiValueContainer { ...props }>\n { props.selectProps.customTag(props.data) }\n </chakraComponents.MultiValueContainer>\n ) : (\n <chakraComponents.MultiValueContainer { ...props } />\n )),\n Control: ({\n children,\n ...props\n }: ControlProps<T, boolean, GroupBase<T>>) =>\n (props.selectProps.leftComponent ? (\n <chakraComponents.Control { ...props }>\n <HStack w=\"full\" pl=\"2\">\n { props.selectProps.leftComponent }\n <HStack w=\"full\" justify=\"space-between\">\n { children }\n </HStack>\n </HStack>\n </chakraComponents.Control>\n ) : (\n <chakraComponents.Control { ...props }>\n { children }\n </chakraComponents.Control>\n )),\n },\n components || {}\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, K extends boolean = false>({\n defaultOptions = [],\n isMulti,\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, K>,\n ref: React.Ref<SelectInstance<T, K, 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, K>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? value as T[] : [],\n })\n\n const customComponents = useMemo(\n () => getComponents<T>(),\n []\n )\n\n const simpleFilter = (query: string) => {\n if (typeof defaultOptions === 'boolean') return []\n return filter(\n (option: T) =>\n test(new RegExp(toLower(query), 'g'), toLower(option.label)),\n defaultOptions\n )\n }\n const getOptions = async (query: string) => {\n const newOptions = getCustomOptions\n ? await getCustomOptions(query)\n : simpleFilter(query)\n setFiltered((prev) => {\n // If default value is a boolean we want default value to persist to it's initial value\n // this is to allow pre-fetching of values on first render\n if (typeof prev === 'boolean') return prev\n return newOptions\n })\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<T, K>\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, { forwardRef } 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\nconst BaseSearchBarField = <T extends SearchBarOptionType, K extends boolean = false> ({\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, K>, ref: React.Ref<HTMLDivElement>) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n ref={ ref }\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\nexport const SearchBarField = forwardRef(BaseSearchBarField)\n","import React, { forwardRef } from 'react'\nimport { Tag as ChakraTag } from '@chakra-ui/react'\nimport { useCurrentTheme } from '../../utils'\nimport { TagProps } from './types'\n\n/**\n * Tag component is used for items that need to be labeled,\n * categorized, or organized using keywords that describe them.\n * @see TagGroup\n * @see {@link https://northlight.dev/reference/tag}\n *\n * @example\n * (?\n * <Tag>Hello</Tag>\n * ?)\n *\n * @example\n * (?\n * +\n * const colors = [\"mediatoolBlue\", \"blue\", \"gray\", \"red\", \"green\",\n * \"orange\", \"yellow\", \"teal\", \"purple\", \"pink\"]\n * const variants = [\"solid\", \"subtle\"]\n * const Example = () => {\n * return <Stack>\n * { colors.map((color) => (\n * <HStack spacing={ 4 }>\n * {\n * variants.map((variant) => (\n * <HStack spacing={ 4 }>\n * <Tag size=\"sm\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"xs\">\n* <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"xs\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * <Tag size=\"md\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"md\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"md\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * <Tag size=\"lg\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"lg\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"lg\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * </HStack>\n * ))\n * }\n * </HStack>\n * ))\n * }\n * </Stack>\n * }\n * render(<Example/>)\n * ?)\n *\n *\n*/\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(({\n children,\n variant = 'solid',\n bgColor,\n colorScheme,\n ...rest\n}, ref) => {\n const currentTheme = useCurrentTheme()\n\n return (\n <ChakraTag\n bgColor={ bgColor }\n colorScheme={ colorScheme }\n ref={ ref }\n variant={ variant }\n currentTheme={ currentTheme }\n { ...rest }\n >\n { children }\n </ChakraTag>\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<HTMLSpanElement, DragItemProps>(({\n size = 'md',\n isDragging,\n itemLabel = 'Drag Me',\n bgColor,\n ...rest\n}, 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, { 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=\"full\" 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'\nimport { ButtonVariants } from '../button/types'\n\ntype MapVariantTypes = Record<EditableControlsProps['variant'], ButtonVariants>\n\nconst mapEditableVariantsToButtonSubmitVariants: MapVariantTypes = {\n brand: 'brand',\n default: 'success',\n}\n\nconst mapEditableVariantsToButtonCancelVariants: MapVariantTypes = {\n brand: 'ghost',\n default: 'danger',\n}\n\nexport const EditableControls = ({ size, variant = 'default' }: 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={ mapEditableVariantsToButtonCancelVariants[variant] }\n { ...getCancelButtonProps() }\n >\n <Icon sx={ icon } as={ XCloseSolid } />\n </IconButton>\n <IconButton\n aria-label=\"Save\"\n sx={ button }\n variant={ mapEditableVariantsToButtonSubmitVariants[variant] }\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 variant = 'default',\n ...rest\n}: EditableProps) => {\n const [ value, setValue ] = useState(inputValue)\n const { input, preview } = useMultiStyleConfig('EditableText', { size, value })\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 } variant={ variant } />\n </InputRightElement>\n </InputGroup>\n </Editable>\n )\n}\n","import { Modal as ChakraModal, ModalCloseButton, ModalContent, ModalOverlay } from '@chakra-ui/react'\nimport React from 'react'\nimport { ModalProps } from './types'\n\nexport const ModalBase = ({\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 from 'react'\nimport { ModalProps } from './types'\nimport { ModalBase } from './modal-base'\n\n/**\n * @see {@link https://northlight.dev/reference/modal}\n *\n * */\n\nexport const Modal = ({\n stayMountedOnClose = false,\n isOpen,\n ...rest\n}: ModalProps) => (\n <>\n { (stayMountedOnClose || isOpen) && <ModalBase isOpen={ isOpen } { ...rest } /> }\n </>\n)\n","import React from 'react'\nimport { ModalBody as ChakraModalBody, ModalBodyProps } from '@chakra-ui/react'\n\nexport const ModalBody = (props: ModalBodyProps) => (\n <ChakraModalBody minH={ props.h } maxH={ props.h } { ...props } />\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","export const updateTimeThreshold = 0.5\nexport const animationSlideTime = 250\n","import React, { forwardRef } from 'react'\nimport {\n Progress as ChakraProgress,\n ProgressProps as ChakraProgressProps,\n} from '@chakra-ui/react'\nimport { animationSlideTime } from './constants'\n\nexport interface ProgressBarProps extends ChakraProgressProps {\n animationSlideTimeMs?: number\n}\n\n/**\n * @see {@link https:/northlight/reference/progress-bar}\n *\n * @example\n * (?\n * <ProgressBar value={40} />\n * ?)\n */\nexport const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(\n ({ animationSlideTimeMs = animationSlideTime, sx, ...props }, ref) => (\n <ChakraProgress\n ref={ ref }\n width=\"full\"\n height=\"1a\"\n borderRadius=\"full\"\n sx={ {\n '>[role=\"progressbar\"]': {\n transition: `width ${animationSlideTimeMs}ms ease-out`,\n },\n ...sx,\n } }\n { ...props }\n />\n )\n)\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 enableStepperArrows = false,\n}: NumberInputStepperProps) => (\n <ChakraNumberInputStepper>\n <HStack alignItems=\"center\" h=\"full\">\n { includePercentage && (\n <Center bgColor=\"bg.layer\" borderRadius=\"md\" boxSize=\"6\">\n <P>%</P>\n </Center>\n ) }\n { enableStepperArrows && (\n <HStack alignItems=\"center\" h=\"full\">\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 ) }\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} enableStepperArrows={true}/>\n * </Box>\n * ?)\n *\n */\nexport const NumberInput = ({\n variant = 'default',\n size = 'md',\n onChange = identity,\n onInputChange = identity,\n enableStepperArrows = false,\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\n includePercentage={ onlyAcceptPercentage }\n enableStepperArrows={ enableStepperArrows }\n />\n </ChakraNumberInput>\n )\n}\n","import React, { forwardRef, 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 = forwardRef<HTMLDivElement, NumberInputFieldProps>(({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n onlyAcceptPercentage = false,\n inputLeftElement,\n inputRightElement,\n ...rest\n}, ref) => {\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 ref={ ref }\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 { filter, find, is, length, propEq } from 'ramda'\nimport { Option, SelectProps } from './types'\n\nconst isStringArray = (value: any): value is string[] =>\n is(Array, value) && length(value) > 0 && typeof value[0] === 'string'\n\nexport const getMatchingValue = <T extends Option, K extends boolean>(\n value: SelectProps<T, K>['value'],\n options: SelectProps<T, K>['options']\n): T | T[] | undefined => {\n if (typeof value === 'string') {\n return find(propEq('value', value), options as T[])\n }\n\n if (isStringArray(value)) {\n return filter(\n (option) => (value).includes(option.value),\n options as T[]\n )\n }\n\n return value as K extends true ? T[] : T\n}\n","import React, { Ref, forwardRef, useMemo, useRef } from 'react'\nimport {\n Select as ChakraReactSelect,\n GroupBase,\n OptionsOrGroups,\n SelectInstance,\n} from 'chakra-react-select'\nimport { Box } from '@chakra-ui/react'\nimport { always, 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'\nimport { getMatchingValue } from './get-matching-value'\nimport { theme } from '../../theme'\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 * />\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 const Select = forwardRef(<T extends Option, K extends boolean = false>({\n options,\n isMulti,\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 isClearable = false,\n value,\n icon,\n components,\n generateComponentsUpdateKey = always(0),\n ...rest\n}: SelectProps<T, K>,\n ref: Ref<SelectInstance<T, K, GroupBase<T>>>\n) => {\n const handleChange = useSelectCallbacks<T, K>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? (value as T[]) : [],\n })\n\n const customComponents = useMemo(\n () => getComponents<T>(components),\n [ generateComponentsUpdateKey() ]\n )\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 } cursor=\"pointer\">\n <ChakraReactSelect\n isMulti={ isMulti }\n options={ renderedOptions }\n useBasicStyles={ true }\n closeMenuOnSelect={ !isMulti }\n hideSelectedOptions={ false }\n isClearable={ isClearable }\n onChange={ handleChange }\n selectedOptionStyle=\"check\"\n chakraStyles={ customSelectStyles }\n isLoading={ isLoading }\n { ...(isLoading && { components: { MenuList: loadingList } }) }\n value={ getMatchingValue(value, options) }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n ref={ ref }\n menuPortalTarget={ document.body }\n styles={ { menuPortal: (base) => ({ ...base, zIndex: theme.zIndices.popover }) } }\n { ...rest }\n />\n </Box>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { XCloseSolid } from '@northlight/icons'\nimport { equals, identity, isNil } 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'\n\nconst BaseSelectField = <T extends Option, K extends boolean = false>(\n {\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, K>,\n ref: React.Ref<HTMLDivElement>\n) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <Select<T, K>\n name={ name }\n options={ options }\n isMulti={ isMulti }\n onChange={ (values, event) => {\n onChange(\n isMulti\n ? (values as T[]).map((item: any) => item.value)\n : (values as T).value\n )\n onChangeCallback(values as K extends true ? T[] : T, event)\n } }\n value={\n value\n ? (options\n ?.flatMap((inner: any) =>\n (inner.options ? inner.options : inner)\n )\n .filter((option: any) =>\n (isMulti\n ? value.includes(option.value)\n : equals(value, option.value))\n ) 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={ isNil(value) || !isClearable }\n onClick={ () => {\n onChange(undefined)\n onChangeCallback(undefined, { action: 'clear', removedValues: value })\n } }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n\nexport const SelectField = forwardRef(BaseSelectField)\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, { forwardRef } 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 * Tip:\n * * For `labelPlacement` you can use `\"left\" | \"right\"`\n * * For `labelSize` you can use `\"2xs\" | \"xs\" | \"md\" | \"lg\"` or leave it blank\n * (?\n * <Form initialValues={{name: ''}}>\n * <SwitchField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPlacement=\"right\"\n * labelSize=\"md\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const SwitchField = forwardRef<HTMLDivElement, SwitchFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPlacement = 'right',\n labelSize = 'md',\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' } display=\"inline-flex\">\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <Flex\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={ 2 }\n direction={ labelPlacement === '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 htmlFor={ name } sx={ { fontWeight: 'normal' } } size={ labelSize }>{ label }</Label>\n </Flex>\n ) }\n </Field>\n </Box>\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, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { TextareaFieldProps } from './types'\nimport { Field } from '../form'\nimport { Textarea } from './textarea'\n\nexport const TextareaField = forwardRef<HTMLDivElement, TextareaFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n direction,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n ref={ ref }\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","export const roundToPrecision = (\n value: number,\n numberOfDecimals: number\n): number => parseFloat(value.toFixed(numberOfDecimals))\n","import React, { ComponentType, useEffect } from 'react'\nimport { defaultTo, identity, isEmpty, isNil } from 'ramda'\nimport {\n InputAttributes,\n NumberFormatValues,\n NumericFormat,\n SourceInfo,\n numericFormatter,\n} from 'react-number-format'\nimport { InputGroupWrapper } from '../../internal-components'\nimport { Input } from '../input'\nimport {\n FormattedNumberInputPreset,\n FormattedNumberInputProps,\n PresetOptions,\n} from './types'\nimport { roundToPrecision } from './round-to-precision'\n\nconst presetMap: Record<FormattedNumberInputPreset, PresetOptions> = {\n eu: {\n thousandSeparator: ' ',\n decimalSeparator: ',',\n },\n us: {\n thousandSeparator: ',',\n decimalSeparator: '.',\n },\n nor: {\n thousandSeparator: '.',\n decimalSeparator: ',',\n },\n}\n\n/**\n * @see {@link https://northlight.dev/reference/formatted-number-input-field}\n @example (Example)\n * The formatted number input is built uppon react-number-format\n * It formats numbers by adjusting thousand and decimal separators\n * ex : 22345351.34234 => 222 453 51,34234\n * It comes with three presets: eu, us and nor.\n * These have the following separators:\n (?\n <FormattedNumberInput\n preset=\"us\"\n onChange={(values) => console.log(values.floatValue)}\n isPercentage={true}\n max={1E9}\n min={0}\n />\n ?)\n\n @example (Example)\n ### Nor preset\n (?\n <FormattedNumberInput\n preset=\"nor\"\n onChange={(values) => console.log(values.floatValue)}\n value={320341345102.34134}\n numberOfDecimals={5}\n />\n ?)\n\n @example (Example)\n ### Eu preset\n (?\n <FormattedNumberInput\n preset=\"eu\"\n onChange={(values) => console.log(values.floatValue)}\n value={320341345102.34134}\n numberOfDecimals={5}\n />\n ?)\n\n */\nexport const FormattedNumberInput = ({\n preset = 'eu',\n isPercentage = false,\n onChange = identity,\n value: valueProp,\n numberOfDecimals,\n max = Infinity,\n min = -Infinity,\n inputLeftElement,\n inputRightElement,\n onBlur,\n ...rest\n}: FormattedNumberInputProps) => {\n const props = presetMap[preset]\n\n const value = valueProp ?? ''\n\n const defaultNumberOfDecimals = defaultTo(2, numberOfDecimals)\n\n const getNumberFormatValues = (number: number) => ({\n floatValue: number,\n formattedValue: numericFormatter(number.toString(), props),\n value: number.toString(),\n })\n\n const validateRange = () => {\n if (isNil(value) || isEmpty(value)) return\n\n const vNum = typeof value === 'string' ? parseFloat(value) : value\n\n if (isNil(numberOfDecimals) && !isPercentage) {\n onChange(getNumberFormatValues(vNum))\n return\n }\n\n const factor = isPercentage ? 100 : 1\n if (vNum * factor > max) {\n const newValue = roundToPrecision(max / factor, defaultNumberOfDecimals)\n onChange(getNumberFormatValues(newValue))\n }\n if (vNum * factor < min) {\n const newValue = roundToPrecision(min / factor, defaultNumberOfDecimals)\n onChange(getNumberFormatValues(newValue))\n }\n }\n\n const onValueChangeHandler = (\n values: NumberFormatValues,\n sourceInfo: SourceInfo\n ) => {\n const newFloatValue =\n values.floatValue && isPercentage\n ? roundToPrecision(values.floatValue / 100, defaultNumberOfDecimals)\n : values.floatValue\n onChange(\n {\n ...values,\n floatValue: newFloatValue,\n },\n sourceInfo\n )\n }\n\n useEffect(() => {\n validateRange()\n }, [ value ])\n\n return (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <NumericFormat\n allowLeadingZeros={ true }\n customInput={ Input as ComponentType<InputAttributes> }\n onBlur={ (e) => {\n onBlur?.(e)\n validateRange()\n } }\n onValueChange={ onValueChangeHandler }\n decimalScale={ numberOfDecimals }\n value={\n isPercentage\n ? roundToPrecision(parseFloat(`${value ?? 0}`) * 100, defaultNumberOfDecimals)\n : value\n }\n suffix={ isPercentage ? '%' : '' }\n { ...props }\n { ...rest }\n />\n </InputGroupWrapper>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { FormattedNumberInputFieldProps } from './types'\nimport { Field } from '../form'\nimport { FormattedNumberInput } from './formatted-number-input'\n\n/**\n * The formatted number input component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FormattedNumberInput\n * @see {@link https://northlight.dev/reference/formatted-number-input-field}\n * @example (Example)\n * (?\n * <Form initialValues={{money: ''}}>\n * <FormattedNumberInputField\n * name=\"money\"\n * label=\"How much money is currently on your account\"\n * labelPosition=\"left\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const FormattedNumberInputField =\nforwardRef<HTMLDivElement, FormattedNumberInputFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <FormattedNumberInput\n name={ name }\n onChange={ (values, sourceInfo) => {\n onChange(values.floatValue)\n onChangeCallback(values, sourceInfo)\n } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n))\n","import React, { forwardRef } from 'react'\nimport { identity, isNil } 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 = forwardRef<HTMLDivElement, TextFieldProps>(({\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}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={\n isNil(validate) && isRequired\n ? { validate: (value: string) => !!value.trim() }\n : validate\n }\n direction={ direction }\n ref={ ref }\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 React, { forwardRef, 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 = forwardRef<HTMLDivElement, ClipboardInputProps>(({\n size = 'md',\n value,\n 'aria-label': ariaLabel,\n ...rest\n}, ref) => {\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\" ref={ ref }>\n <Input\n textOverflow=\"ellipsis\"\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 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","/* eslint-disable no-restricted-syntax */\nimport { cleanup, render, screen, within } from '@testing-library/react'\nimport userEventImport from '@testing-library/user-event'\nimport { createElement } from 'react'\nimport { MediatoolThemeProvider, theme } from '../../lib'\nimport type { ComponentScenarios, PlayContext } from './types.ts'\n\n// Handle ESM/CJS interop for tsx/Node.js environments\nconst userEvent = ((userEventImport as any).default ?? userEventImport) as typeof userEventImport\n\ndeclare const describe: (name: string, fn: () => void) => void\ntype TimeoutSetter = { timeout: (ms: number) => void }\ndeclare const it: ((name: string, fn: () => void | Promise<void>) => TimeoutSetter)\n\nif (typeof window !== 'undefined' && !window.matchMedia) {\n window.matchMedia = (query: string) => ({\n matches: false,\n media: query,\n onchange: null,\n addListener: () => {},\n removeListener: () => {},\n addEventListener: () => {},\n removeEventListener: () => {},\n dispatchEvent: () => false,\n })\n}\n\nconst CI_TIMEOUT_SAFETY_NET = 30_000\n\nfunction runScenarios (allScenarios: ComponentScenarios[]): void {\n for (const componentScenarios of allScenarios) {\n const { name: componentName, component: defaultComponent, scenarios } = componentScenarios\n\n describe(componentName, () => {\n for (const scenario of scenarios) {\n const { name: scenarioName, props, component: scenarioComponent, play } = scenario\n const component = scenarioComponent ?? defaultComponent\n\n it(scenarioName, async () => {\n const user = userEvent.setup()\n const { container } = render(\n createElement(\n MediatoolThemeProvider,\n // @ts-expect-error children passed as 3rd arg to satisfy react/no-children-prop\n { theme },\n createElement(component, props as Record<string, unknown>)\n )\n )\n\n if (play) {\n const context: PlayContext = {\n screen: within(container),\n documentScreen: screen,\n user,\n container,\n }\n await play(context)\n }\n\n cleanup()\n }).timeout(CI_TIMEOUT_SAFETY_NET)\n }\n })\n }\n}\n\nexport { runScenarios }\n","import { Component, type ComponentType, type ReactNode, createElement } from 'react'\n\ntype ErrorBoundaryProps = {\n children: ReactNode\n fallback: ComponentType<{ error: Error }>\n}\n\ntype ErrorBoundaryState = {\n error: Error | null\n}\n\nclass ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor (props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: null }\n }\n\n static getDerivedStateFromError (error: Error): ErrorBoundaryState {\n return { error }\n }\n\n render () {\n const { error } = this.state\n const { children, fallback } = this.props\n\n if (error) {\n return createElement(fallback, { error })\n }\n\n return children\n }\n}\n\nexport { ErrorBoundary }\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { screen, within } from '@testing-library/react'\nimport userEvent from '@testing-library/user-event'\nimport { type ComponentType, createElement, useEffect, useRef, useState } from 'react'\nimport { MediatoolThemeProvider, theme } from '../../../lib'\nimport type { ComponentScenarios, PlayContext, Scenario } from '../types'\nimport { ErrorBoundary } from './error-boundary'\nimport './sandbox-viewer.css'\n\nfunction RenderErrorFallback ({ error }: { error: Error }) {\n return (\n <div className=\"sandbox-error\">\n <div className=\"sandbox-error-title\">Render Error</div>\n <pre className=\"sandbox-error-message\">{ error.message }</pre>\n <pre className=\"sandbox-error-stack\">{ error.stack }</pre>\n </div>\n )\n}\n\ntype PlayError = {\n scenarioName: string\n error: Error\n}\n\ntype ViewState =\n | { type: 'grid' }\n | { type: 'detail', componentSlug: string }\n\ntype Selection = {\n componentSlug: string\n scenarioSlug: string\n}\n\ntype SandboxViewerProps = {\n scenarios: ComponentScenarios[]\n /** Custom title for the landing page */\n title?: string\n /** Custom description for the landing page */\n description?: string\n /** Whether to show the hero section (default: true) */\n showHero?: boolean\n}\n\nfunction toSlug (name: string): string {\n return name.toLowerCase().replace(/\\s+/g, '-')\n}\n\nfunction parsePath (): Selection | null {\n const path = window.location.pathname\n const parts = path.split('/').filter(Boolean)\n if (parts.length === 0) return null\n return {\n componentSlug: parts[0],\n scenarioSlug: parts[1] ?? '',\n }\n}\n\nfunction toPath (componentSlug: string, scenarioSlug: string): string {\n return `/${componentSlug}/${scenarioSlug}`\n}\n\nfunction CodeIcon () {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m18 16 4-4-4-4\" />\n <path d=\"m6 8-4 4 4 4\" />\n <path d=\"m14.5 4-5 16\" />\n </svg>\n )\n}\n\nfunction EyeIcon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n )\n}\n\nfunction Code2Icon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m18 16 4-4-4-4\" />\n <path d=\"m6 8-4 4 4 4\" />\n </svg>\n )\n}\n\nfunction CopyIcon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n )\n}\n\nfunction CheckIcon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n )\n}\n\nfunction PlayIcon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <polygon points=\"5 3 19 12 5 21 5 3\" />\n </svg>\n )\n}\n\nfunction ArrowLeftIcon () {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m12 19-7-7 7-7\" />\n <path d=\"M19 12H5\" />\n </svg>\n )\n}\n\nfunction ExternalLinkIcon () {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" />\n <polyline points=\"15 3 21 3 21 9\" />\n <line x1=\"10\" x2=\"21\" y1=\"14\" y2=\"3\" />\n </svg>\n )\n}\n\ntype SidebarProps = {\n scenarios: ComponentScenarios[]\n search: string\n onSearchChange: (value: string) => void\n selectedComponent: ComponentScenarios | null\n onSelectComponent: (component: ComponentScenarios) => void\n}\n\nfunction Sidebar ({\n scenarios,\n search,\n onSearchChange,\n selectedComponent,\n onSelectComponent,\n}: SidebarProps): JSX.Element {\n const filteredScenarios = search\n ? scenarios.filter((c) => {\n const searchTerms = search.toLowerCase().split(/\\s+/).filter(Boolean)\n const nameWords = c.name.toLowerCase().split(/\\s+/)\n return searchTerms.every((term) =>\n nameWords.some((word) => word.startsWith(term))\n )\n })\n : scenarios\n\n return (\n <nav className=\"sandbox-sidebar\">\n <div className=\"sandbox-logo\">\n <div className=\"sandbox-logo-icon\">\n <CodeIcon />\n </div>\n <span className=\"sandbox-logo-text\">Sandbox</span>\n </div>\n\n <div className=\"sandbox-sidebar-search\">\n <input\n type=\"text\"\n className=\"sandbox-sidebar-search-input\"\n placeholder=\"Search components...\"\n value={ search }\n onChange={ (e) => onSearchChange(e.target.value) }\n />\n </div>\n\n <div className=\"sandbox-nav\">\n <div className=\"sandbox-nav-section\">\n <div className=\"sandbox-nav-title\">Components</div>\n { filteredScenarios.map((component) => (\n <button\n type=\"button\"\n key={ component.name }\n className={ `sandbox-nav-item ${selectedComponent?.name === component.name ? 'selected' : ''}` }\n onClick={ () => onSelectComponent(component) }\n >\n <span className=\"sandbox-nav-item-icon\">{ '{ }' }</span>\n { component.name }\n </button>\n )) }\n </div>\n </div>\n </nav>\n )\n}\n\ntype HeroProps = {\n title: string\n description: string\n}\n\nfunction Hero ({ title, description }: HeroProps) {\n return (\n <div className=\"sandbox-hero\">\n <h1 className=\"sandbox-hero-title\">{ title }</h1>\n <p className=\"sandbox-hero-description\">{ description }</p>\n </div>\n )\n}\n\ntype ComponentCardProps = {\n component: ComponentScenarios\n onSelect: () => void\n}\n\nfunction ComponentCard ({ component, onSelect }: ComponentCardProps) {\n const firstScenario = component.scenarios[0]\n const scenarioCount = component.scenarios.length\n\n return (\n <div className=\"sandbox-card\" onClick={ onSelect } onKeyDown={ onSelect } role=\"button\" tabIndex={ 0 }>\n <div className=\"sandbox-card-preview\">\n { firstScenario && (\n <ErrorBoundary fallback={ RenderErrorFallback }>\n { createElement(\n firstScenario.component ?? component.component,\n firstScenario.props as Record<string, unknown>\n ) }\n </ErrorBoundary>\n ) }\n <div className=\"sandbox-card-actions\">\n <button type=\"button\" className=\"sandbox-card-btn sandbox-card-btn-primary\" onClick={ onSelect }>\n <ExternalLinkIcon />\n Open\n </button>\n </div>\n </div>\n <div className=\"sandbox-card-info\">\n <h3 className=\"sandbox-card-title\">{ component.name }</h3>\n <p className=\"sandbox-card-description\">\n { scenarioCount } { scenarioCount === 1 ? 'scenario' : 'scenarios' }\n </p>\n </div>\n </div>\n )\n}\n\ntype GridViewProps = {\n scenarios: ComponentScenarios[]\n search: string\n onSelectComponent: (component: ComponentScenarios) => void\n title: string\n description: string\n showHero: boolean\n}\n\nfunction GridView\n({ scenarios, search, onSelectComponent, title, description, showHero }: GridViewProps) {\n const filteredScenarios = search\n ? scenarios.filter((c) => {\n const searchTerms = search.toLowerCase().split(/\\s+/).filter(Boolean)\n const nameWords = c.name.toLowerCase().split(/\\s+/)\n return searchTerms.every((term) =>\n nameWords.some((word) => word.startsWith(term))\n )\n })\n : scenarios\n\n return (\n <>\n { showHero && (\n <Hero\n title={ title }\n description={ description }\n />\n ) }\n <div className=\"sandbox-grid\">\n { filteredScenarios.map((component) => (\n <ComponentCard\n key={ component.name }\n component={ component }\n onSelect={ () => onSelectComponent(component) }\n />\n )) }\n </div>\n </>\n )\n}\n\ntype ScenarioCardProps = {\n scenario: Scenario<unknown>\n component: ComponentType<unknown>\n playingScenario: string | null\n playError: PlayError | null\n playKeys: Record<string, number>\n onPlay: (\n scenario: { name: string, play?: (context: PlayContext) => Promise<void> },\n getContainer: () => HTMLElement | null\n ) => void\n}\n\nfunction ScenarioCard ({\n scenario,\n component,\n playingScenario,\n playError,\n playKeys,\n onPlay,\n}: ScenarioCardProps) {\n const [ viewMode, setViewMode ] = useState<'preview' | 'code'>('preview')\n const [ copied, setCopied ] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n const isPlaying = playingScenario === scenario.name\n const hasError = playError?.scenarioName === scenario.name\n\n const getCodeDisplay = () => {\n if (scenario.code) {\n return scenario.code\n }\n const componentName = component.displayName || component.name || 'Component'\n return `<${componentName} {...props} />`\n }\n\n const handleCopy = () => {\n navigator.clipboard.writeText(getCodeDisplay())\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n\n return (\n <div className=\"sandbox-scenario-card\">\n <div className=\"sandbox-scenario-header\">\n <div className=\"sandbox-scenario-info\">\n <h3>{ scenario.name }</h3>\n </div>\n <div className=\"sandbox-scenario-actions\">\n { scenario.code && (\n <button\n type=\"button\"\n className={ `sandbox-scenario-btn sandbox-scenario-btn-toggle ${viewMode === 'code' ? 'active' : ''}` }\n onClick={ () => setViewMode(viewMode === 'code' ? 'preview' : 'code') }\n >\n { viewMode === 'code' ? (\n <>\n <EyeIcon />\n Preview\n </>\n ) : (\n <>\n <Code2Icon />\n Code\n </>\n ) }\n </button>\n ) }\n { scenario.code && (\n <button\n type=\"button\"\n className=\"sandbox-scenario-btn sandbox-scenario-btn-copy\"\n onClick={ handleCopy }\n >\n { copied ? (\n <>\n <CheckIcon />\n Copied\n </>\n ) : (\n <>\n <CopyIcon />\n Copy\n </>\n ) }\n </button>\n ) }\n { scenario.play && (\n <button\n type=\"button\"\n className={ `sandbox-scenario-btn sandbox-scenario-btn-play ${hasError ? 'error' : ''}` }\n onClick={ () => onPlay(scenario, () => containerRef.current) }\n disabled={ isPlaying }\n >\n <PlayIcon />\n { isPlaying ? 'Playing...' : hasError ? 'Retry' : 'Play' }\n </button>\n ) }\n </div>\n </div>\n <div className=\"sandbox-scenario-content\">\n { viewMode === 'code' && scenario.code ? (\n <div className=\"sandbox-scenario-code\">\n <pre>{ scenario.code }</pre>\n </div>\n ) : (\n <div className=\"sandbox-scenario-preview\" ref={ containerRef }>\n <ErrorBoundary fallback={ RenderErrorFallback }>\n <div key={ `${scenario.name}-${playKeys[scenario.name] ?? 0}` }>\n { createElement(\n scenario.component ?? component,\n scenario.props as Record<string, unknown>\n ) }\n </div>\n </ErrorBoundary>\n </div>\n ) }\n { hasError && playError && (\n <div className=\"sandbox-play-error\">\n <div className=\"sandbox-play-error-title\">Play Error</div>\n <pre className=\"sandbox-play-error-message\">{ playError.error.message }</pre>\n </div>\n ) }\n </div>\n </div>\n )\n}\n\ntype DetailViewProps = {\n component: ComponentScenarios\n onBack: () => void\n playingScenario: string | null\n playError: PlayError | null\n playKeys: Record<string, number>\n onPlay: (\n scenario: { name: string, play?: (context: PlayContext) => Promise<void> },\n getContainer: () => HTMLElement | null\n ) => void\n}\n\nfunction DetailView ({\n component,\n onBack,\n playingScenario,\n playError,\n playKeys,\n onPlay,\n}: DetailViewProps) {\n const scenarioCount = component.scenarios.length\n\n return (\n <div className=\"sandbox-detail\">\n <button type=\"button\" className=\"sandbox-detail-back\" onClick={ onBack }>\n <ArrowLeftIcon />\n Back to components\n </button>\n\n <div className=\"sandbox-detail-header\">\n <div>\n <div className=\"sandbox-detail-title-row\">\n <h1 className=\"sandbox-detail-title\">{ component.name }</h1>\n <span className=\"sandbox-detail-badge\">\n { scenarioCount } { scenarioCount === 1 ? 'scenario' : 'scenarios' }\n </span>\n </div>\n <p className=\"sandbox-detail-description\">\n Component scenarios with interactive preview and code view.\n </p>\n </div>\n </div>\n\n <div className=\"sandbox-scenarios\">\n { component.scenarios.map((scenario) => (\n <ScenarioCard\n key={ scenario.name }\n scenario={ scenario }\n component={ component.component }\n playingScenario={ playingScenario }\n playError={ playError }\n playKeys={ playKeys }\n onPlay={ onPlay }\n />\n )) }\n </div>\n </div>\n )\n}\n\ntype TabbedDetailViewProps = {\n component: ComponentScenarios\n onBack: () => void\n playingScenario: string | null\n playError: PlayError | null\n playKeys: Record<string, number>\n onPlay: (\n scenario: { name: string, play?: (context: PlayContext) => Promise<void> },\n getContainer: () => HTMLElement | null\n ) => void\n}\n\nfunction TabbedDetailView ({\n component,\n onBack,\n playingScenario,\n playError,\n playKeys,\n onPlay,\n}: TabbedDetailViewProps) {\n const [ activeTab, setActiveTab ] = useState(0)\n const [ viewMode, setViewMode ] = useState<'preview' | 'code'>('preview')\n const [ copied, setCopied ] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n const activeScenario = component.scenarios[activeTab]\n const scenarioCount = component.scenarios.length\n const isPlaying = playingScenario === activeScenario?.name\n const hasError = playError?.scenarioName === activeScenario?.name\n\n const handleCopy = () => {\n if (activeScenario?.code) {\n navigator.clipboard.writeText(activeScenario.code)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n }\n\n return (\n <div className=\"sandbox-detail-tabbed\">\n <button type=\"button\" className=\"sandbox-detail-back\" onClick={ onBack }>\n <ArrowLeftIcon />\n Back to components\n </button>\n\n <div className=\"sandbox-detail-header\">\n <div>\n <div className=\"sandbox-detail-title-row\">\n <h1 className=\"sandbox-detail-title\">{ component.name }</h1>\n <span className=\"sandbox-badge-advanced\">Advanced</span>\n </div>\n <p className=\"sandbox-detail-description\">\n Component scenarios with interactive preview and code view.\n </p>\n </div>\n </div>\n\n <div className=\"sandbox-tabbed-card\">\n { /* Tabs Bar */ }\n <div className=\"sandbox-tabs-bar\">\n <div className=\"sandbox-tabs-list\">\n { component.scenarios.map((scenario, index) => (\n <button\n type=\"button\"\n key={ scenario.name }\n className={ `sandbox-tab-item ${activeTab === index ? 'active' : ''}` }\n onClick={ () => setActiveTab(index) }\n >\n { scenario.name }\n </button>\n )) }\n </div>\n\n <div className=\"sandbox-tabs-actions\">\n { activeScenario?.code && (\n <button\n type=\"button\"\n className={ `sandbox-scenario-btn sandbox-scenario-btn-toggle ${viewMode === 'code' ? 'active' : ''}` }\n onClick={ () => setViewMode(viewMode === 'code' ? 'preview' : 'code') }\n >\n { viewMode === 'code' ? (\n <>\n <EyeIcon />\n Preview\n </>\n ) : (\n <>\n <Code2Icon />\n Code\n </>\n ) }\n </button>\n ) }\n { activeScenario?.code && (\n <button\n type=\"button\"\n className=\"sandbox-scenario-btn sandbox-scenario-btn-copy\"\n onClick={ handleCopy }\n >\n { copied ? (\n <>\n <CheckIcon />\n Copied\n </>\n ) : (\n <>\n <CopyIcon />\n Copy\n </>\n ) }\n </button>\n ) }\n { activeScenario?.play && (\n <button\n type=\"button\"\n className={ `sandbox-scenario-btn sandbox-scenario-btn-play ${hasError ? 'error' : ''}` }\n onClick={ () => onPlay(activeScenario, () => containerRef.current) }\n disabled={ isPlaying }\n >\n <PlayIcon />\n { isPlaying ? 'Playing...' : hasError ? 'Retry' : 'Play' }\n </button>\n ) }\n </div>\n </div>\n\n { /* Content */ }\n <div className=\"sandbox-tab-content\">\n { viewMode === 'code' && activeScenario?.code ? (\n <div className=\"sandbox-tab-code\">\n <pre>{ activeScenario.code }</pre>\n </div>\n ) : (\n <div className=\"sandbox-tab-preview\" ref={ containerRef }>\n { activeScenario && (\n <ErrorBoundary fallback={ RenderErrorFallback }>\n <div key={ `${activeScenario.name}-${playKeys[activeScenario.name] ?? 0}` }>\n { createElement(\n activeScenario.component ?? component.component,\n activeScenario.props as Record<string, unknown>\n ) }\n </div>\n </ErrorBoundary>\n ) }\n </div>\n ) }\n { hasError && playError && (\n <div className=\"sandbox-play-error\">\n <div className=\"sandbox-play-error-title\">Play Error</div>\n <pre className=\"sandbox-play-error-message\">{ playError.error.message }</pre>\n </div>\n ) }\n </div>\n </div>\n\n { /* Navigation Dots */ }\n { scenarioCount > 1 && (\n <div className=\"sandbox-nav-dots\">\n { component.scenarios.map((scenario, index) => (\n <button\n type=\"button\"\n key={ scenario.name }\n className={ `sandbox-nav-dot ${activeTab === index ? 'active' : 'inactive'}` }\n onClick={ () => setActiveTab(index) }\n aria-label={ `Go to scenario ${index + 1}` }\n />\n )) }\n </div>\n ) }\n </div>\n )\n}\n\nfunction SandboxViewerContent ({\n scenarios,\n title = 'Northlight Component Library',\n description = 'Northligt component library sandbox for testing and development.',\n showHero = true,\n}: SandboxViewerProps) {\n const [ view, setView ] = useState<ViewState>({ type: 'grid' })\n const [ selectedComponent, setSelectedComponent ] = useState<ComponentScenarios | null>(null)\n const [ search, setSearch ] = useState('')\n const [ playingScenario, setPlayingScenario ] = useState<string | null>(null)\n const [ playError, setPlayError ] = useState<PlayError | null>(null)\n const [ playKeys, setPlayKeys ] = useState<Record<string, number>>({})\n\n useEffect(() => {\n const selection = parsePath()\n if (selection) {\n const component = scenarios.find((c) => toSlug(c.name) === selection.componentSlug)\n if (component) {\n setSelectedComponent(component)\n setView({ type: 'detail', componentSlug: selection.componentSlug })\n }\n }\n }, [ scenarios ])\n\n useEffect(() => {\n const handlePopState = () => {\n const selection = parsePath()\n if (selection) {\n const component = scenarios.find((c) => toSlug(c.name) === selection.componentSlug)\n if (component) {\n setSelectedComponent(component)\n setView({ type: 'detail', componentSlug: selection.componentSlug })\n return\n }\n }\n setSelectedComponent(null)\n setView({ type: 'grid' })\n }\n window.addEventListener('popstate', handlePopState)\n return () => window.removeEventListener('popstate', handlePopState)\n }, [ scenarios ])\n\n const handleSelectComponent = (component: ComponentScenarios) => {\n const componentSlug = toSlug(component.name)\n const firstScenario = component.scenarios[0]\n const scenarioSlug = firstScenario ? toSlug(firstScenario.name) : ''\n window.history.pushState(null, '', toPath(componentSlug, scenarioSlug))\n setSelectedComponent(component)\n setView({ type: 'detail', componentSlug })\n setPlayError(null)\n }\n\n const handleBack = () => {\n window.history.pushState(null, '', '/')\n setSelectedComponent(null)\n setView({ type: 'grid' })\n setPlayError(null)\n }\n\n const handlePlay = async (\n scenario: { name: string, play?: (context: PlayContext) => Promise<void> },\n getContainer: () => HTMLElement | null\n ) => {\n if (!scenario.play) return\n\n setPlayError(null)\n setPlayKeys((keys) => ({ ...keys, [scenario.name]: (keys[scenario.name] ?? 0) + 1 }))\n\n await new Promise((resolve) => {\n setTimeout(resolve, 50)\n })\n\n setPlayingScenario(scenario.name)\n\n const container = getContainer()\n if (!container) return\n\n const user = userEvent.setup()\n const context: PlayContext = {\n screen: within(container),\n documentScreen: screen,\n user,\n container,\n }\n\n try {\n await scenario.play(context)\n } catch (err) {\n setPlayError({\n scenarioName: scenario.name,\n error: err instanceof Error ? err : new Error(String(err)),\n })\n }\n\n setPlayingScenario(null)\n }\n\n const isInline = selectedComponent?.inline ?? false\n\n return (\n <div className=\"sandbox-viewer\">\n <Sidebar\n scenarios={ scenarios }\n search={ search }\n onSearchChange={ setSearch }\n selectedComponent={ selectedComponent }\n onSelectComponent={ handleSelectComponent }\n />\n\n <div className=\"sandbox-content\">\n <main className=\"sandbox-main\">\n { view.type === 'grid' && (\n <GridView\n scenarios={ scenarios }\n search={ search }\n onSelectComponent={ handleSelectComponent }\n title={ title }\n description={ description }\n showHero={ showHero }\n />\n ) }\n\n { view.type === 'detail' && selectedComponent && (\n !isInline ? (\n <TabbedDetailView\n component={ selectedComponent }\n onBack={ handleBack }\n playingScenario={ playingScenario }\n playError={ playError }\n playKeys={ playKeys }\n onPlay={ handlePlay }\n />\n ) : (\n <DetailView\n component={ selectedComponent }\n onBack={ handleBack }\n playingScenario={ playingScenario }\n playError={ playError }\n playKeys={ playKeys }\n onPlay={ handlePlay }\n />\n )\n ) }\n </main>\n </div>\n </div>\n )\n}\n\nfunction SandboxViewer ({ scenarios, title, description, showHero }: SandboxViewerProps) {\n return (\n <MediatoolThemeProvider theme={ theme }>\n <SandboxViewerContent\n scenarios={ scenarios }\n title={ title }\n description={ description }\n showHero={ showHero }\n />\n </MediatoolThemeProvider>\n )\n}\n\nexport { SandboxViewer, toSlug }\n"],"names":["useFocusManager","useRef","isNil","last","map","prop","difference","useToken","palette","replace","split","path","createContext","useContext","keys","omit","__spreadProps","__spreadValues","Button","keyframes","Blinker","Checkbox","Select","Textarea","Switch","Tag","NumberInput","Calendar","merge","DatePicker","Spinner","randomColor","Modal","cssVar","Tooltip","Icon","Small","P","Label","EditableText","isEmpty","Table","mode","Popover","WebappSystemTokensSet","WebappComponentsTokensSet","typography","TottSystemTokensSet","TottComponentsTokensSet","CamphouseLightSystemTokensSet","CamphouseLightComponentsTokensSet","coreZIndex","coreSizing","coreSpacing","coreFontWeight","coreBoxShadow","coreFontSize","coreLineHeight","coreBorderRadius","extendTheme","forwardRef","__objRest","jsx","ChakraIcon","useStyleConfig","Heading","ChakraText","FormLabel","VisuallyHidden","ifElse","gt","always","identity","NorthlightIcons","MediatoolLogoSolid","ChakraBadge","jsxs","Flex","Box","ChakraSpinner","ChakraButton","ChakraCheckbox","is","values","forEach","trim","joiResolver","useForm","useImperativeHandle","useEffect","equals","FormProvider","useFormContext","FormControl","Stack","Controller","FormErrorMessage","CheckboxGroup","_a","cloneElement","ChakraIconButton","useMultiStyleConfig","CheckDuo","ChakraPopover","useCheckboxGroupState","useRadioGroupState","useCheckboxGroup","useRadioGroup","useCheckboxGroupItem","useRadio","useFocusRing","mergeProps","HStack","mergeAll","CheckSolid","SlideFade","Text","Children","isValidElement","CalendarDuo","useDateSegment","toLower","useDateFieldState","createCalendar","useDateField","find","ChakraTable","date","useCalendarCell","today","isSameMonth","chakra","memo","useCalendarGrid","getWeeksInMonth","Thead","Tr","Tbody","times","useButton","useDateFormatter","useLocale","useCalendar","useMemo","ChevronLeftSolid","ChevronRightSolid","useCalendarState","GregorianCalendar","I18nProvider","useDatePickerState","useDatePicker","parseDate","useOutsideClick","PopoverAnchor","InputGroup","InputRightElement","XCloseSolid","PopoverContent","FocusScope","clickable","useClickable","Fragment","Link","ReactRouterLink","startOfWeek","endOfWeek","startOfMonth","endOfMonth","startOfYear","endOfYear","any","Spacer","has","CheckCircleSolid","AlertTriangleSolid","AlertCircleSolid","AlertOctagonSolid","InfoSolid","BrightnessSolid","HelpCircleSolid","VStack","ChakraTooltip","Portal","useDateRangePickerState","useDateRangePicker","not","all","ChakraRadioGroup","chakraComponents","SearchDuo","useState","filter","test","AsyncSelect","ChakraTag","TagLabel","TagRightIcon","DotsMatrixSolid","VariableSizeList","VariableSizeGrid","useEditableControls","useEditableState","EditDuo","Editable","InputLeftElement","Input","EditablePreview","ChakraEditableInput","ChakraModal","ModalOverlay","ModalContent","ModalCloseButton","ChakraModalBody","ModalHeader","Slider","SliderTrack","SliderFilledTrack","SliderThumb","ZoomInDuo","ModalFooter","ChakraProgress","theme","webappTheme","ChakraProvider","ChakraNumberInputStepper","Center","Divider","NumberIncrementStepper","ChevronUpSolid","NumberDecrementStepper","ChevronDownSolid","head","match","length","defaultTo","ChakraNumberInput","NumberInputField","propEq","ChakraReactSelect","ChakraSwitch","ChakraTextarea","numericFormatter","NumericFormat","useClipboard","CopyDuo","render","createElement","within","screen","cleanup","Component","userEvent"],"mappings":"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","x_google_ignoreList":[183]}
1
+ {"version":3,"file":"index.cjs","sources":["../../lib/hooks/use-arrow-focus/index.ts","../../lib/hooks/use-select-callbacks/use-select-callbacks.ts","../../lib/utils/luminosity/index.ts","../../lib/utils/get-contrast-color/index.ts","../../lib/utils/ring/index.ts","../../lib/utils/get-shades/index.ts","../../lib/utils/get-field-error/index.ts","../../lib/utils/debounce/create-debounce-function-instance.ts","../../lib/utils/use-current-theme/index.ts","../../lib/utils/get-consistent-random-color-from-string/index.ts","../../lib/theme/components/select/custom-select.ts","../../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/process-color-scheme-based-on-theme.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/typography/numvals/numval.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/components/table/index.ts","../../lib/theme/components/menu/index.ts","../../lib/theme/components/badge/index.ts","../../lib/theme/components/popover/index.ts","../../lib/theme/components/progress-bar/index.ts","../../lib/theme/skins/webapp/index.ts","../../lib/theme/skins/tott/index.ts","../../lib/theme/skins/camphouse-light/index.ts","../../lib/theme/index.ts","../../lib/components/icon/icon.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/typography/numvals/numval.tsx","../../lib/components/overflow-group/overflow-group.tsx","../../lib/components/badge/badge.tsx","../../lib/components/blinker/blinker.tsx","../../lib/components/spinner/spinner.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/components/form/field.tsx","../../lib/components/checkbox/checkbox-field.tsx","../../lib/components/checkbox/checkbox-group-field.tsx","../../lib/components/icon-button/icon-button.tsx","../../lib/components/color-picker/constants.ts","../../lib/components/color-picker/color-button.tsx","../../lib/components/popover/popover.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/resize-handle/resize-handle.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/table/table.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/utils.ts","../../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/components/get-week-number-start-of-month.ts","../../lib/components/date-picker/components/calendar/components/range-cell.tsx","../../lib/components/date-picker/components/calendar/components/standalone-calendar-grid.tsx","../../lib/components/date-picker/components/calendar/calendar.tsx","../../lib/components/date-picker/date-picker/date-picker-locale-wrapper.tsx","../../lib/components/date-picker/date-picker/date-picker.tsx","../../lib/components/clickable/clickable.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/date-button.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/utils.ts","../../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/date-picker-field/utils.ts","../../lib/components/types/tooltipIconMap/index.ts","../../lib/components/tooltip/tooltip.tsx","../../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/radio/radio-group.tsx","../../lib/components/radio/radio-group-field.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/tag/tag.tsx","../../lib/components/drag-and-drop/drag-item.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-base.tsx","../../lib/components/modal/modal.tsx","../../lib/components/modal/modal-body.tsx","../../lib/components/file-picker/file-editor-modal.tsx","../../lib/components/progress/constants.ts","../../lib/components/progress/progress-bar.tsx","../../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/select/get-matching-value.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/textarea/textarea.tsx","../../lib/components/textarea/textarea-field.tsx","../../lib/components/text-field/round-to-precision.ts","../../lib/components/text-field/formatted-number-input.tsx","../../lib/components/text-field/formatted-number-input-field.tsx","../../lib/components/text-field/text-field.tsx","../../lib/components/clipboard-input/clipboard-input.tsx","../../lib/components/split-pane/pane-divider.tsx","../../sandbox/lib/run-scenarios.ts","../../sandbox/lib/viewer/error-boundary.tsx","../../../node_modules/style-inject/dist/style-inject.es.js","../../sandbox/lib/viewer/sandbox-viewer.tsx"],"sourcesContent":["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 = <\n T extends BasicOption,\n K extends boolean = false\n>({\n onChange,\n onAdd,\n onRemove,\n isMulti = false,\n value,\n }: UseSelectCallbacksProps<T, K>) => {\n const items = useRef<MultiValue<T> | SingleValue<T>>(value)\n\n const handleChange = (\n val: K extends true ? MultiValue<T> : SingleValue<T>,\n event: ActionMeta<T>\n ) => {\n onChange(val, event)\n if (!isMulti && !isNil(val)) {\n onAdd((val as T).value)\n } else if (\n !isNil(val) &&\n (val as T[]).length > (items.current as T[]).length\n ) {\n onAdd(last(val as T[])?.value)\n } else {\n const removedItems = map(\n prop('value'),\n difference(\n isMulti ? (items.current as T[]) : ([ items.current ] as T[]),\n val as T[]\n )\n )\n onRemove(removedItems.length === 1 ? removedItems[0] : removedItems)\n }\n items.current = val\n }\n return handleChange\n}\n","export const luminosity = (hexcolor: string) => {\n if (!hexcolor || typeof hexcolor !== 'string') return Number.NaN\n\n let color = hexcolor.trim()\n\n if (!/^#?[0-9a-f]{3}([0-9a-f]{3})?$/i.test(color)) {\n return Number.NaN\n }\n\n if (color[0] === '#') color = color.slice(1)\n if (color.length === 3) {\n color = color.split('').map((h) => h + h).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\nfunction safeUseToken (tokenOrValue: string): string {\n try {\n return useToken('colors', tokenOrValue)\n } catch {\n return tokenOrValue\n }\n}\n\nexport const getContrastColor = (color: string) => {\n const textDefault = useToken('colors', 'text.default') // dark\n const textInverted = useToken('colors', 'text.inverted') // light\n\n const normalized = typeof color === 'string' ? color.trim() : (color as unknown as string)\n\n // If a concrete hex is passed, use it directly; else try token resolution.\n const isHex = /^#?[0-9a-f]{3}([0-9a-f]{3})?$/i.test(normalized)\n const bgResolved = isHex\n ? (normalized[0] === '#' ? normalized : `#${normalized}`)\n : safeUseToken(normalized)\n\n const lInverted = luminosity(textInverted)\n const lDefault = luminosity(textDefault)\n const threshold = (lInverted + lDefault) / 2\n const brightColor = lInverted > lDefault ? textInverted : textDefault\n const darkColor = lInverted > lDefault ? textDefault : textInverted\n\n const lBg = luminosity(bgResolved)\n if (Number.isNaN(lBg)) return undefined\n\n return lBg >= 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 { 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","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","/** 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' | 'camphouseLightTheme'\n\nexport const CustomTheme = createContext<CurrentTheme>('webappTheme')\n\nexport const useCurrentTheme = () => {\n const theme = useContext(CustomTheme)\n return theme\n}\n","/* eslint-disable no-bitwise */\nimport { keys, omit } from 'ramda'\nimport { palette } from '@northlight/tokens'\n\nconst availableColorSchemes = keys(omit([ 'mono' ], palette))\n\nconst djb2Hash = (str: string, colors: string[]) => {\n let hash = 5381\n\n for (let i = 0; i < str.length; i += 1) {\n const char = str.charCodeAt(i)\n hash = (hash << 5) + hash + char\n\n hash &= hash\n }\n\n return (Math.abs(hash) % colors.length)\n}\n\nexport const getConsistentRandomColorFromString = (\n str: string,\n colors: string[] = availableColorSchemes\n) => {\n const index = djb2Hash(str, colors)\n return colors[index]\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 overflowWrap: 'anywhere',\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","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: 'text.default',\n fontWeight: 'semibold',\n fontSize: 'md',\n _hover: {\n bg: 'brand-alt',\n borderRadius: 'base',\n textDecor: 'none',\n },\n },\n separator: {\n color: 'subdued',\n fontSize: 'sm',\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 color: color.text.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 color: color.text.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 brandSubdued: ({ theme: { colors: color } }) => ({\n color: color.text.button.brandSubdued,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button.brand,\n color: color.text.inverted,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.text.button.brandSubdued,\n },\n },\n _active: {\n bg: color.background.button['brand-hover'],\n color: color.text.inverted,\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 outline: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n _hover: {\n bg: color.background.button['ghost-hover'],\n },\n _active: {\n bg: color.background.button['ghost-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 ai: ({ theme: { colors: color } }) => ({\n color: color.text.inverted,\n bgColor: color.bg.ai.default,\n _hover: {\n bgColor: color.bg.ai.hover,\n _disabled: {\n bgColor: color.bg.ai.default,\n },\n },\n _active: {\n bgColor: color.bg.ai.active,\n },\n }),\n aiSubdued: ({ theme: { colors: color } }) => ({\n color: color.ai,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.bg.ai.default,\n color: color.text.inverted,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.ai,\n },\n },\n _active: {\n bg: color.bg.ai.hover,\n color: color.text.inverted,\n },\n }),\n accent: ({ theme: { colors: color } }) => ({\n color: color.text.button.accent,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-active'],\n color: color.text.button.accent,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.text.button.accent,\n },\n },\n _active: {\n bg: color.background.button['ghost-active'],\n color: color.text.button.accent,\n },\n }),\n sidebar: ({ theme: { colors: color } }) => ({\n color: color.text.button.sidebar,\n bgColor: color.background.button.sidebar,\n _hover: {\n bg: color.background.button['sidebar-hover'],\n color: color.text.button.sidebar,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.text.button.sidebar,\n },\n },\n _active: {\n bg: color.background.button['sidebar-active'],\n color: color.text.button['sidebar-active'],\n },\n }),\n },\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { keyframes } from '@emotion/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 boxShadow: `inset 0 0 0 1px ${color.border.input.focus}`,\n _invalid: {\n boxShadow: `inset 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 boxShadow: `inset 0 0 0 1px ${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: `inset 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: `inset 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: `inset 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 ai: ({ 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 _hover: {\n boxShadow: `inset 0 0 0 1px ${color.border.ai}`,\n borderColor: color.border.ai,\n },\n _invalid: {\n boxShadow: `inset 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 },\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 boxShadow: 'none',\n borderWidth: borderWidth.sm,\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 baseStyle: ({ 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 variants: {\n outline: {},\n ai: ({ theme: { colors: color } }) => ({\n field: {\n _focusVisible: {\n borderColor: color.border.ai,\n boxShadow: `0 0 0 1px ${color.border.ai}`,\n },\n\n },\n\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 baseStyle: ({ theme: { fontWeights: coreFontWeight } }) => ({\n tab: {\n fontWeight: coreFontWeight.semiBold,\n },\n }),\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 _hover: {\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 rounded: ({ theme: { colors: color, radii: borderRadius } }) => ({\n tab: {\n color: color.text.subdued,\n borderRadius: borderRadius.button.default,\n _selected: {\n bg: color.background.tabs['soft-rounded-active'],\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\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 ai: ({ theme: { colors: color } }) => ({\n tab: {\n borderRadius: 999,\n _selected: {\n bgColor: color.bg.ai.default,\n color: color.text.inverted,\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n line: ({ theme: { colors: color } }) => ({\n tab: {\n color: color.text.subdued,\n _selected: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _active: {\n bg: color.mono.transparent,\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n piped: ({ theme: { colors: color } }) => ({\n tab: {\n position: 'relative',\n color: color.text.default,\n paddingLeft: 4,\n opacity: 0.5,\n transition: 'opacity 0.2s ease-in-out',\n _before: {\n content: \"''\",\n position: 'absolute',\n left: 0,\n top: '50%',\n transform: 'translateY(-50%)',\n width: '7px',\n height: '70%',\n borderRadius: 999,\n bgColor: 'brand',\n },\n _selected: {\n opacity: 1,\n _hover: {\n opacity: 1,\n },\n },\n _hover: {\n opacity: 0.7,\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 baseStyle: ({ theme: {\n colors: color,\n } }) => ({\n color: color.text.default,\n _placeholder: {\n color: color.text.textarea.placeholder,\n },\n }),\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 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 }),\n ai: ({ 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 bgColor: color.background.textarea.default,\n _hover: {\n borderColor: color.border.textarea['default-hover'],\n bgColor: color.background.textarea.hover,\n },\n _focusVisible: {\n bgColor: color.background.textarea.active,\n boxShadow: `inset 0 0 0 1px ${color.border.ai}`,\n borderColor: color.border.ai,\n _invalid: {\n boxShadow: `inset 0 0 0 1px ${color.border.textarea.error}`,\n bgColor: color.background.textarea.error,\n borderColor: color.border.textarea.error,\n },\n },\n _invalid: {\n bgColor: color.background.textarea.error,\n borderColor: color.border.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 }),\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 { path } from 'ramda'\nimport type { CurrentTheme } from '../utils'\n\nconst themeMap: Record<CurrentTheme, Record<string, string>> = {\n camphouseLightTheme: {\n green: 'moss',\n pink: 'rose',\n orange: 'coral',\n gray: 'smoke',\n },\n webappTheme: {},\n tottTheme: {},\n}\n\nexport interface ProcessColorSchemeBasedOnThemeProps {\n currentTheme: CurrentTheme\n colorScheme: string\n}\n\nexport const processColorSchemeBasedOnTheme = ({\n currentTheme,\n colorScheme,\n}: ProcessColorSchemeBasedOnThemeProps) =>\n path<string>([ currentTheme, colorScheme ], themeMap) ?? colorScheme\n","import { ComponentMultiStyleConfig, useToken } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\nimport { processColorSchemeBasedOnTheme } from '../../process-color-scheme-based-on-theme'\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: ({ theme: { colors }, bgColor, colorScheme, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const tagBgColorRaw =\n bgColor ??\n (colors[processedColorScheme] && colors[processedColorScheme][500]\n ? colors[processedColorScheme][500]\n : processedColorScheme)\n\n const tagBgColor = typeof tagBgColorRaw === 'string' ? tagBgColorRaw.trim() : tagBgColorRaw\n\n const tagColor = getContrastColor(useToken('colors', tagBgColor))\n\n return {\n container: {\n bgColor: tagBgColor,\n color: tagColor,\n },\n }\n },\n subtle: ({ theme: { colors }, colorScheme, bgColor, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const tagBgColorRaw =\n bgColor ??\n (colors[processedColorScheme] && colors[processedColorScheme][100]\n ? colors[processedColorScheme][100]\n : processedColorScheme)\n\n const tagBgColor = typeof tagBgColorRaw === 'string' ? tagBgColorRaw.trim() : tagBgColorRaw\n\n const tagColor = getContrastColor(useToken('colors', tagBgColor))\n\n return {\n container: {\n bgColor: tagBgColor,\n color: tagColor,\n },\n }\n },\n ai: {\n container: {\n bgColor: 'bg.ai.default',\n color: 'text.inverted',\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', 'icon' ],\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 title: {\n lineHeight: '1.25',\n overflowWrap: 'break-word',\n },\n description: {\n lineHeight: '1.25',\n overflowWrap: 'break-word',\n },\n icon: {\n boxSize: 6,\n },\n }),\n variants: {\n success: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.success,\n },\n icon: {\n color: color.icon.toast.success,\n },\n }),\n warning: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.warning,\n },\n icon: {\n color: color.icon.toast.warning,\n },\n }),\n info: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.info,\n },\n icon: {\n color: color.icon.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 icon: {\n color: color.icon.toast.error,\n },\n }),\n ai: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.ai.default,\n color: color.text.inverted,\n },\n icon: {\n color: color.icon.toast.ai,\n },\n }),\n default: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.layer,\n color: color.text.default,\n },\n icon: {\n color: color.icon.toast.default,\n },\n }),\n ghost: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.base,\n color: color.text.default,\n borderWidth: 'xs',\n borderColor: color.border.default,\n borderStyle: 'solid',\n },\n icon: {\n color: color.icon.toast.ghost,\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, minWidth, minW }) => ({\n root: {\n borderRadius: borderRadius.input.outline,\n },\n field: {\n minWidth: minWidth ?? minW ?? 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: `inset 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: `inset 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: '1',\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: '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: `inset 0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n boxShadow: `inset 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: 'bg.brand.default',\n color: color.text.inverted,\n },\n _placeholder: {\n color: 'destructive',\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 light: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color['base-alt'],\n }, sx),\n button: {\n bgColor: 'mono.transparent',\n _hover: {\n bgColor: color.background.button['ghost-hover'],\n },\n _checked: {\n color: color.text['flip-button'].default,\n bgColor: 'bg.base',\n _hover: {\n bgColor: 'bg.base',\n },\n },\n },\n }),\n ai: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-brand'],\n }, sx),\n button: {\n bgColor: 'transparent',\n _hover: {\n bgColor: 'transparent',\n },\n _checked: {\n bgColor: color.bg.ai.default,\n _hover: {\n bgColor: color.bg.ai.default,\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 fontSize: '3xs',\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 fontSize: '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 fontSize: '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 fontSize: '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 fontSize: '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 fontSize: '2xl',\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 fontSize: '4xl',\n },\n }),\n\n },\n baseStyle: ({ theme: {\n colors: color,\n sizes: sizing,\n radii: borderRadius,\n }, image, name, bgColor }) => {\n const avatarBgColor = bgColor || 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.destructive,\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: { h4 } },\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: h4.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 { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { cssVar } from '@chakra-ui/theme-tools'\n\nconst $arrowBg = cssVar('popper-arrow-bg')\nconst $arrowBorder = cssVar('popper-arrow-shadow-color')\n\nexport const Tooltip: ComponentSingleStyleConfig = {\n baseStyle: ({\n theme: { colors: color, space: spacing, radii: borderRadius },\n }) => ({\n color: color.text.inverted,\n paddingInline: spacing['padding-inline'].tooltip.default,\n paddingY: spacing.paddingY.tooltip.default,\n borderRadius: borderRadius.tooltip.default,\n backgroundColor: color.background.tooltip.default,\n [$arrowBg.variable]: color.background.tooltip.default,\n }),\n variants: {\n default: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.bg.base,\n borderWidth: 'xs',\n borderColor: color.border.default,\n borderStyle: 'solid',\n [$arrowBg.variable]: color.bg.base,\n [$arrowBorder.variable]: color.border.default,\n }),\n success: ({ theme: { colors: color } }) => ({\n color: 'text.over.success',\n bgColor: 'success-alt',\n [$arrowBg.variable]: color['success-alt'],\n }),\n info: ({ theme: { colors: color } }) => ({\n color: 'text.over.brand',\n bgColor: 'brand-alt',\n [$arrowBg.variable]: color['brand-alt'],\n }),\n ghost: ({ theme: { colors: color } }) => ({\n color: 'text.default',\n bgColor: color.bg.base,\n borderWidth: 'xs',\n borderColor: color.border.default,\n [$arrowBorder.variable]: color.border.default,\n borderStyle: 'solid',\n [$arrowBg.variable]: color.bg.base,\n }),\n warning: ({ theme: { colors: color } }) => ({\n color: 'text.over.warning',\n bgColor: color['info-alt'],\n [$arrowBg.variable]: color['info-alt'],\n }),\n danger: ({ theme: { colors: color } }) => ({\n color: 'text.over.error',\n bgColor: color['destructive-alt'],\n [$arrowBg.variable]: color['destructive-alt'],\n }),\n error: ({ theme: { colors: color } }) => ({\n color: 'text.over.error',\n bgColor: color['destructive-alt'],\n [$arrowBg.variable]: color['destructive-alt'],\n }),\n ai: ({ theme: { colors: color } }) => ({\n bgColor: color.bg.ai.default,\n [$arrowBg.variable]: color.bg.ai.default,\n\n }),\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', 'indicator' ],\n baseStyle: ({ theme: { colors: color, fontWeights, space: spacing, borders: borderWidth } }) => ({\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 _disabled: {\n cursor: 'not-allowed',\n _hover: { borderColor: color.border.step.default },\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 '[data-part=\"indicator\"]': {\n bg: color.border.step.selected,\n },\n _hover: {\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n },\n },\n },\n label: {\n color: 'inherit',\n textAlign: 'start',\n fontWeight: fontWeights.bold,\n },\n description: {\n textAlign: 'start',\n fontWeight: fontWeights.semiBold,\n color: color.text.default,\n },\n indicator: {\n minW: 6,\n minH: 6,\n borderRadius: 'full',\n bg: color.text.subdued,\n color: 'mono.white',\n fontWeight: fontWeights.bold,\n fontSize: 'xs',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '2xs',\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'\nimport { merge } from 'ramda'\n\nexport const NumVal: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, sx }) =>\n merge(\n {\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 },\n sx\n ),\n sizes: {\n '2xs': ({ theme, sx }) => {\n const { tinyMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: tinyMono.fontFamily,\n fontWeight: tinyMono.fontWeight,\n lineHeight: tinyMono.lineHeight,\n fontSize: tinyMono.fontSize,\n letterSpacing: tinyMono.letterSpacing,\n textTransform: tinyMono.textCase,\n textDecoration: tinyMono.textDecoration,\n },\n sx\n )\n },\n xs: ({ theme, sx }) => {\n const { xsMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: xsMono.fontFamily,\n fontWeight: xsMono.fontWeight,\n lineHeight: xsMono.lineHeight,\n fontSize: xsMono.fontSize,\n letterSpacing: xsMono.letterSpacing,\n textTransform: xsMono.textCase,\n textDecoration: xsMono.textDecoration,\n },\n sx\n )\n },\n sm: ({ theme, sx }) => {\n const { smMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: smMono.fontFamily,\n fontWeight: smMono.fontWeight,\n lineHeight: smMono.lineHeight,\n fontSize: smMono.fontSize,\n letterSpacing: smMono.letterSpacing,\n textTransform: smMono.textCase,\n textDecoration: smMono.textDecoration,\n },\n sx\n )\n },\n md: ({ theme, sx }) => {\n const { mdMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: mdMono.fontFamily,\n fontWeight: mdMono.fontWeight,\n lineHeight: mdMono.lineHeight,\n fontSize: mdMono.fontSize,\n letterSpacing: mdMono.letterSpacing,\n textTransform: mdMono.textCase,\n textDecoration: mdMono.textDecoration,\n },\n sx\n )\n },\n lg: ({ theme, sx }) => {\n const { lgMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: lgMono.fontFamily,\n fontWeight: lgMono.fontWeight,\n lineHeight: lgMono.lineHeight,\n fontSize: lgMono.fontSize,\n letterSpacing: lgMono.letterSpacing,\n textTransform: lgMono.textCase,\n textDecoration: lgMono.textDecoration,\n },\n sx\n )\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'\nimport { isEmpty, isNil } from 'ramda'\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: ({ value }) => ({\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 color: isNil(value) || isEmpty(value) ? 'text.subdued' : 'text.default',\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: {\n colors: color,\n sizes: sizing,\n borders: borderWidth,\n } }) => ({\n container: {\n position: 'relative',\n bg: 'text.inverted',\n h: '100vh',\n borderLeftWidth: borderWidth.xs,\n borderLeftStyle: 'solid',\n borderLeftColor: color.border.default,\n },\n header: {\n alignItems: 'center',\n height: '16',\n borderBottomWidth: borderWidth.xs,\n borderBottomStyle: 'solid',\n borderBottomColor: color.border.default,\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: borderWidth.xs,\n borderTopStyle: 'solid',\n borderTopColor: color.border.default,\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 } from '@chakra-ui/react'\nimport { CSSObject, keyframes } from '@emotion/react'\nimport { merge } from 'ramda'\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 ? 'border.error' : 'border.default',\n bgColor: isInvalid && 'bg.error.default',\n animation: isInvalid && `500ms ${shakeAnimation} ease`,\n _hover: isImage && {\n bgColor: isInvalid ? 'bg.error.default' : getBgColor(currentTheme),\n borderColor: isInvalid ? 'border.error' : 'border.brand.default',\n },\n})\n\nconst getAiColorStyles = (isInvalid: boolean, isImage = true) => ({\n borderColor: isInvalid ? 'border.error' : 'border.default',\n bgColor: isInvalid && 'bg.error.default',\n animation: isInvalid && `500ms ${shakeAnimation} ease`,\n _hover: isImage && {\n bgColor: isInvalid ? 'bg.error.default' : 'bg.filled',\n borderColor: isInvalid ? 'border.error' : 'border.ai',\n },\n})\n\nexport const FilePicker: ComponentMultiStyleConfig = {\n parts: [ 'filePicker', 'fileItem', 'multiFilePicker' ],\n baseStyle: ({ theme: { sizes, colors }, hasLoaded, isImage, isInvalid, currentTheme, sx }) => ({\n filePicker: merge({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: 'full',\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 }, sx),\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 variants: {\n ai: ({ isInvalid }) => ({\n filePicker: {\n ...getAiColorStyles(isInvalid),\n },\n multiFilePicker: {\n ...getAiColorStyles(isInvalid),\n },\n }),\n\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { mode } from '@chakra-ui/theme-tools'\n\nexport const Table: ComponentMultiStyleConfig = {\n parts: [\n 'table',\n 'th',\n 'td',\n 'columnHeader',\n 'cell',\n 'caption',\n 'footer',\n 'tr',\n ],\n variants: {\n rounded: () => ({\n table: {\n borderSpacing: '0',\n borderCollapse: 'separate',\n borderRadius: 'md',\n borderColor: 'border.default',\n borderWidth: 'xs',\n px: '3',\n },\n\n th: {\n color: 'text.subdued',\n fontWeight: 'bold',\n textTransform: 'none',\n fontSize: 'sm',\n },\n\n td: {\n borderColor: 'border.default',\n borderTopWidth: 'xs',\n },\n }),\n striped: (props) => {\n const { colorScheme: c = 'gray' } = props\n\n return {\n table: {\n borderSpacing: '0',\n borderCollapse: 'separate',\n borderRadius: 'md',\n borderColor: 'border.default',\n borderWidth: 'xs',\n p: '2',\n },\n columnHeader: {\n color: 'text.subdued',\n bgColor: mode(`${c}.100`, `${c}.700`)(props),\n fontWeight: 'bold',\n textTransform: 'none',\n fontSize: 'sm',\n },\n cell: {\n bgColor: mode(`${c}.100`, `${c}.700`)(props),\n },\n caption: {\n color: mode('gray.600', 'gray.100')(props),\n },\n th: {\n borderBottomWidth: '0',\n },\n tr: {\n '&:nth-of-type(odd)': {\n td: {\n background: mode(`${c}.100`, `${c}.700`)(props),\n },\n },\n },\n footer: {\n tr: {\n th: { borderBottomWidth: 0 },\n },\n },\n }\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Menu: ComponentMultiStyleConfig = {\n parts: [ 'list', 'item' ],\n baseStyle: ({ theme: {\n colors: color,\n radii: borderRadius,\n } }) => ({\n menu: {\n borderColor: color.border.default,\n },\n list: {\n px: '2',\n bgColor: color.bg.base,\n },\n item: {\n py: '2',\n color: color.text.default,\n borderRadius: borderRadius.select.default,\n bgColor: color.bg.base,\n _hover: {\n bgColor: color.background.button.default,\n },\n _active: {\n bgColor: color.background.button.default,\n },\n _focus: {\n bgColor: color.background.button.default,\n },\n _checked: {\n fontWeight: 'bold',\n },\n },\n }),\n variants: {\n compact: ({ theme: { colors: color } }) => ({\n item: {\n fontSize: 'sm',\n color: color.text.default,\n },\n }),\n relaxed: ({ theme: { colors: color } }) => ({\n item: {\n py: '2',\n fontSize: 'md',\n color: color.text.default,\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig, useToken } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\nimport { processColorSchemeBasedOnTheme } from '../../process-color-scheme-based-on-theme'\n\nexport const Badge: ComponentSingleStyleConfig = {\n baseStyle: ({ colorScheme, theme: { colors }, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const bgColor = processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][100]\n : colors[processedColorScheme] && colors[processedColorScheme][100]\n const textColor = processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][800]\n : colors[processedColorScheme] && colors[processedColorScheme][800]\n\n return {\n bgColor,\n color: textColor,\n }\n },\n variants: {\n solid: ({ colorScheme, theme: { colors }, currentTheme, bg, bgColor }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const finalBg =\n bg ??\n bgColor ??\n (processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][500]\n : colors[processedColorScheme] && colors[processedColorScheme][500])\n\n return {\n bgColor: finalBg,\n color: getContrastColor(finalBg ?? useToken('colors', processedColorScheme)),\n }\n },\n outline: ({ colorScheme, theme: { colors }, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const textColor = processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][500]\n : colors[processedColorScheme] && colors[processedColorScheme][700]\n\n return {\n bgColor: 'mono.transparent',\n color: textColor,\n }\n },\n ghost: ({ colorScheme, theme: { colors }, currentTheme }) => {\n const processedColorScheme = processColorSchemeBasedOnTheme({ currentTheme, colorScheme })\n\n const textColor = processedColorScheme === 'mediatoolBlue'\n ? colors[processedColorScheme][500]\n : colors[processedColorScheme] && colors[processedColorScheme][700]\n\n return {\n bgColor: 'mono.transparent',\n color: textColor,\n }\n },\n },\n sizes: {\n xs: {\n fontSize: '2xs',\n },\n sm: {\n fontSize: 'xs',\n },\n md: {\n fontSize: 'sm',\n },\n lg: {\n fontSize: 'md',\n },\n },\n defaultProps: {\n size: 'sm',\n variant: 'solid',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Popover: ComponentMultiStyleConfig = {\n parts: [ 'popper' ],\n baseStyle: {\n popper: {\n zIndex: 'popover',\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Progress: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color } }) => ({\n track: {\n bg: color['subdued-alt'],\n },\n filledTrack: {\n bg: color.brand,\n },\n }),\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n WebappComponentsTokensSet,\n WebappSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const WebappSkin: ThemeOverride = {\n colors: {\n ...WebappSystemTokensSet.st.color,\n ...WebappComponentsTokensSet.color,\n text: {\n ...WebappSystemTokensSet.st.color.text,\n ...WebappComponentsTokensSet.color.text,\n },\n border: {\n ...WebappSystemTokensSet.st.color.border,\n ...WebappComponentsTokensSet.color.border,\n },\n },\n sizes: WebappComponentsTokensSet.sizing,\n space: WebappComponentsTokensSet.spacing,\n radii: {\n ...WebappSystemTokensSet.st.borderRadius,\n ...WebappComponentsTokensSet.borderRadius,\n },\n borders: {\n ...WebappSystemTokensSet.st.borderWidth,\n ...WebappComponentsTokensSet.borderWidth,\n },\n opacity: WebappComponentsTokensSet.opacity,\n typography,\n shadows: { ...WebappSystemTokensSet.st.boxShadow },\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n TottComponentsTokensSet,\n TottSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const TottSkin: ThemeOverride = {\n colors: {\n ...TottSystemTokensSet.st.color,\n ...TottComponentsTokensSet.color,\n border: {\n ...TottSystemTokensSet.st.color.border,\n ...TottComponentsTokensSet.color.border,\n },\n },\n sizes: TottComponentsTokensSet.sizing,\n space: TottComponentsTokensSet.spacing,\n radii: {\n ...TottSystemTokensSet.st.borderRadius,\n ...TottComponentsTokensSet.borderRadius,\n },\n borders: {\n ...TottSystemTokensSet.st.borderWidth,\n ...TottComponentsTokensSet.borderWidth,\n },\n opacity: TottComponentsTokensSet.opacity,\n typography,\n shadows: { ...TottSystemTokensSet.st.boxShadow },\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n CamphouseLightComponentsTokensSet,\n CamphouseLightSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const CamphouseLightSkin: ThemeOverride = {\n colors: {\n ...CamphouseLightSystemTokensSet.st.color,\n ...CamphouseLightComponentsTokensSet.color,\n text: {\n ...CamphouseLightSystemTokensSet.st.color.text,\n ...CamphouseLightComponentsTokensSet.color.text,\n },\n border: {\n ...CamphouseLightSystemTokensSet.st.color.border,\n ...CamphouseLightComponentsTokensSet.color.border,\n },\n },\n sizes: CamphouseLightComponentsTokensSet.sizing,\n space: CamphouseLightComponentsTokensSet.spacing,\n radii: {\n ...CamphouseLightSystemTokensSet.st.borderRadius,\n ...CamphouseLightComponentsTokensSet.borderRadius,\n },\n borders: {\n ...CamphouseLightSystemTokensSet.st.borderWidth,\n ...CamphouseLightComponentsTokensSet.borderWidth,\n },\n opacity: CamphouseLightComponentsTokensSet.opacity,\n typography,\n shadows: { ...CamphouseLightSystemTokensSet.st.boxShadow },\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 { CamphouseLightSkin, 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\nexport const camphouseLightTheme = extendTheme(overrides, CamphouseLightSkin)\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","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H1', { sx })\n\n return (\n <Heading\n as=\"h1\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H2', { sx })\n\n return (\n <Heading\n as=\"h2\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H3', { sx })\n\n return (\n <Heading\n as=\"h3\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H4', { sx })\n\n return (\n <Heading\n as=\"h4\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H5', { sx })\n\n return (\n <Heading\n as=\"h5\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H6', { sx })\n\n return (\n <Heading\n as=\"h6\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, PProps>(({\n children,\n variant = '16',\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('P', { variant, sx })\n\n return (\n <ChakraText\n variant={ variant }\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(\n ({ children, sx = {}, ...rest }, ref) => {\n const styles = useStyleConfig('Blockquote', { sx })\n\n return (\n <ChakraText as=\"span\" sx={ styles } ref={ ref } { ...rest }>\n { children }\n </ChakraText>\n )\n }\n)\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Capitalized', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Lead', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Small', { sx })\n\n return (\n <ChakraText\n as=\"small\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Tiny', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLLabelElement, LabelProps>(({\n children,\n size = 'sm',\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Label', { sx, size })\n\n return (\n <FormLabel\n sx={ styles }\n requiredIndicator={ <VisuallyHidden /> }\n ref={ ref }\n { ...rest }\n >\n { children }\n </FormLabel>\n )\n})\n","import React, { forwardRef } from 'react'\nimport {\n Text as ChakraText,\n TextProps,\n useStyleConfig,\n} from '@chakra-ui/react'\n\n/**\n * @see {@link https://northlight.dev/reference/label }\n *\n * @example\n * (?\n * <NumVal sx={{color: 'brand' }} size=\"lg\">270 000 000</NumVal>\n * ?)\n * (_Note, all other css properties not listed\n *\n */\nexport const NumVal = forwardRef<HTMLLabelElement, TextProps>(\n ({ children, size = 'sm', sx = {}, ...rest }, ref) => {\n const styles = useStyleConfig('NumVal', { sx, size })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n }\n)\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { always, dec, defaultTo, gt, identity, ifElse, inc, isNil, 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(isNil(rect) ? 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 React, { forwardRef } from 'react'\nimport { Badge as ChakraBadge } from '@chakra-ui/react'\nimport { MediatoolLogoSolid } from '@northlight/icons'\nimport * as NorthlightIcons from '@northlight/icons'\nimport { useCurrentTheme } from '../../utils'\nimport { BadgeProps } from './types'\nimport { Flex } from '../flex'\nimport { Icon } from '../icon'\n\n/**\n * Badges are used to highlight an item's status for quick recognition.\n * @see Tag\n * @see {@link https://northlight.dev/reference/badge}\n *\n * @example\n * (?\n * +\n * const colors = [\"gray\", \"mediatoolBlue\", \"blue\", \"red\", \"green\",\n * \"orange\", \"yellow\", \"teal\", \"purple\", \"pink\"]\n * const variants = [\"solid\", \"outline\", \"subtle\", \"ghost\"]\n *\n * const Example = () => (\n * <Stack>\n * {colors.map((color, i) => (\n * <HStack spacing={4} key={i}>\n * {variants.map((variant) => (\n * <Badge\n * colorScheme={color}\n * variant={variant}\n * iconPosition=\"left\"\n * withIcon\n * >\n * {variant} Badge\n * </Badge>\n * ))}\n * </HStack>\n * ))}\n * </Stack>\n * )\n * render(<Example />)\n * ?)\n */\n\nexport const Badge = forwardRef<HTMLDivElement, BadgeProps>((props, ref) => {\n const {\n children,\n withIcon,\n iconPosition = 'left',\n iconAs,\n ...rest\n } = props\n\n const IconComponent = iconAs ? NorthlightIcons[iconAs] : MediatoolLogoSolid\n const currentTheme = useCurrentTheme()\n\n return (\n <ChakraBadge ref={ ref } currentTheme={ currentTheme } { ...rest }>\n <Flex align=\"center\" gap=\"1\">\n { withIcon && iconPosition === 'left' && IconComponent && (\n <Icon as={ IconComponent } boxSize=\"3\" />\n ) }\n { children }\n { withIcon && iconPosition === 'right' && IconComponent && (\n <Icon as={ IconComponent } boxSize=\"3\" />\n ) }\n </Flex>\n </ChakraBadge>\n )\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 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","import React, { forwardRef } from 'react'\nimport { Button as ChakraButton } from '@chakra-ui/react'\nimport { Spinner } from '../spinner'\nimport { ButtonProps } from './types'\n\nconst SpinnerSizeMap = {\n xs: 'xs',\n sm: 'sm',\n md: 'sm',\n lg: 'md',\n}\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\n * ### Use the `isLoading` prop to show a loading spinner\n * (?\n <Button\n variant=\"success\"\n isLoading={ true }\n loadingText=\"Creating folder...\"\n >\n Create folder\n </Button>\n * ?)\n *\n * @example\n * ### Also use the `spinner` prop to show a custom spinner\n * (?\n <Button\n variant=\"success\"\n isLoading={ true }\n loadingText=\"Creating folder...\"\n spinner={ <Spinner color=\"text.success\" /> }\n >\n Creating folder\n </Button>\n * ?)\n *\n * @example (Example)\n * (?\n * +\n * const variants = ['link', 'success', 'default', 'danger', 'brand', 'accent',\n * 'ghost', 'ai', 'outline', 'brandSubdued', 'solid']\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 === variants.length - 1 ? 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 *\n * @example (Example)\n * Use LinkOverlay to turn the button into a link\n *\n * (?\n * <LinkBox>\n * <LinkOverlay as={NavLink} to=\"/\" />\n * <Button variant=\"link\">Go to home page</Button>\n * </LinkBox>\n * ?)\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>((\n { variant = 'default', children, size = 'md', ...rest },\n ref\n) => (\n <ChakraButton\n variant={ variant }\n ref={ ref }\n size={ size }\n spinner={ (\n <Spinner\n size={ SpinnerSizeMap[size] }\n />\n ) }\n { ...rest }\n >\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 const controlledValue = typeof value === 'boolean'\n ? { isChecked: value }\n : { value }\n\n return (\n <ChakraCheckbox\n size={ size }\n id={ name }\n onChange={ onChange }\n variant={ variant }\n { ...controlledValue }\n { ...rest }\n />\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 DefaultValues,\n FieldValues,\n FormProvider,\n Resolver,\n UseFormReturn,\n useForm,\n} from 'react-hook-form'\nimport { always, equals } from 'ramda'\nimport { joiResolver } from '@hookform/resolvers/joi'\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 * ## Validation with joi\n *\n * You can pass on validation either by using a custom validate\n * function, by passing html validation directly on a field, or by\n * using joi schema. joi schema is recommended when possible.\n *\n * (?\n * +\n\nconst joiSchema = Joi.object({\n username: Joi.string().alphanum().min(3).max(30).required(),\n password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),\n});\n\n * const MyForm = () => (\n <Form initialValues={{name: ''}} joiSchema={joiSchema}>\n <Stack>\n <TextField name=\"username\" label=\"User Name\"/>\n <TextField name=\"password\" label=\"Password\" />\n </Stack>\n </Form>\n )\n *\n * render(<MyForm />)\n * ?)\n *\n * @example (Example)\n * ## Moving the form state outside of Form\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 innerFormStyle = {},\n joiSchema,\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 getResolver = () => {\n if (validate) return customResolver\n if (joiSchema) return joiResolver(joiSchema)\n return undefined\n }\n\n const newMethods =\n methods ||\n useForm<FormValues>({\n defaultValues: initialValues as DefaultValues<FormValues>,\n resolver: getResolver(),\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%', ...innerFormStyle } } onSubmit={ handleSubmit }>\n { typeof children === 'function' ? children(newMethods) : children }\n </form>\n </FormProvider>\n )\n})\n","import React, { forwardRef } 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 = forwardRef<HTMLLabelElement, FormLabelProps >(({\n children: label,\n ...rest\n}, ref) => (\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 ref={ ref }\n >\n { label }\n </Label>\n))\n","import React, { forwardRef } from 'react'\nimport { Controller, FieldPath, FieldValues } 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 * @example (Example)\n * ## Type-safety\n * There are multiple ways to provide types for\n * the field callback values. To ensure that each\n * component within the field receives the correct\n * value, it's essential to make the field aware\n * of the form state values. When the Field component\n * does not receive any types, the \"value\" callback\n * argument will have the type of \"any\".\n * <br /><br />\n * ### Passing down the control prop (Recommended)\n * (?\n * <Form initialValues={{username: 'Alex'}}>\n * {\n * ({ control }) => {\n * <Box p=\"2\">\n * <Field name=\"username\" label=\"Input name\" control={ control }>\n * {({value, onChange}) => ( // \"value\" has type of \"string\"\n * <Input value={value} onChange={onChange} />\n * )}\n * </Field>\n * </Box>\n * }\n * }\n * </Form>\n * ?)\n * <br /><br />\n * ### Specifying generic arguments\n * You can also specify generic arguments on the Field\n * component to ensure that \"value\" has a valid type.\n * The passed generic type combined with the valid\n * \"name\" property ensures that \"value\" has the expected\n * type received from the generic type:\n * `<Field<MyFormBody> name=\"username\">...</Field>`\n */\n\nconst BaseField = <\n FormValues extends FieldValues = FieldValues,\n FieldName extends FieldPath<FormValues> = FieldPath<FormValues>\n> ({\n name,\n label,\n children,\n direction = 'column',\n isRequired = false,\n noLabelConnection = false,\n validate,\n control: passedControl,\n ...rest\n }: FieldProps<FormValues, FieldName>, ref: React.Ref<HTMLDivElement>) => {\n const methods = useFormContext<FormValues>()\n const { formState: { errors } } = methods\n const control = passedControl ?? methods.control\n\n const fieldError = getFieldError<FormValues>(name, errors)\n\n return (\n <FormControl isInvalid={ !!fieldError } isRequired={ isRequired } ref={ ref }>\n <Stack\n spacing=\"auto\"\n direction={ direction }\n alignItems={ direction === 'column' ? 'stretch' : 'center' }\n { ...rest }\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\nexport const Field = forwardRef(BaseField)\n","import React, { forwardRef } 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 = forwardRef<HTMLDivElement, CheckboxFieldProps>(({\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}, ref) => (\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 ref={ ref }\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, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { CheckboxGroup } from '@chakra-ui/react'\nimport { Field } from '../form'\nimport { Box } from '../box'\nimport { CheckboxFieldGroupProps } from './types'\n\n/**\n * The checkbox group component wrapped in a <Field />\n * meant to be used only inside <Form /> together with Checkbox\n * @see Checkbox\n * @see {@link https://northlight.dev/reference/checkbox-group-field}\n *\n */\nexport const CheckboxGroupField = forwardRef<HTMLDivElement, CheckboxFieldGroupProps>(({\n name,\n label,\n children,\n isRequired,\n direction,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <CheckboxGroup\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"checkbox-group-field-test-id\"\n { ...rest }\n >\n { children }\n </CheckboxGroup>\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: IconComponent.props.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 { Popover as ChakraPopover, PopoverProps } from '@chakra-ui/react'\n\nexport const Popover = (props: PopoverProps) => (\n <ChakraPopover isLazy={ true } { ...props } />\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, { forwardRef, 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 = forwardRef<HTMLDivElement, FlipButtonProps>((props, wrapperRef) => {\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, 'aria-label': `${isMulti ? 'Checkbox' : 'Radio'}-input for ${value}` })\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 && iconPlacement !== 'none') || 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 ref={ wrapperRef }\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, { forwardRef } 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 = forwardRef<HTMLDivElement, FlipButtonGroupFieldProps>(({\n name,\n label,\n children,\n direction,\n isRequired,\n iconPlacement = 'left',\n onChange: onChangeCallback = identity,\n validate,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\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, { forwardRef } from 'react'\nimport { Box, BoxProps } from '../box'\nimport { theme } from '../../theme'\n\nconst hoverAndActiveStyles = {\n borderLeftColor: theme.colors.border['pane-divider'].hover,\n}\n\nexport const ResizeHandle = forwardRef<HTMLDivElement, BoxProps>(\n ({ color, ...rest }, ref) => (\n <Box\n ref={ ref }\n cursor=\"col-resize\"\n _hover={ hoverAndActiveStyles }\n _active={ hoverAndActiveStyles }\n transition=\"border 250ms linear\"\n h=\"inherit\"\n w=\"1\"\n borderLeftWidth=\"lg\"\n borderLeftStyle=\"solid\"\n borderColor={ color ?? 'transparent' }\n zIndex=\"docked\"\n { ...rest }\n />\n )\n)\n","import React, { KeyboardEventHandler, useRef } from 'react'\nimport { CalendarDuo } from '@northlight/icons'\nimport { Button } from '../../../button'\nimport { TriggerProps } from './types'\nimport { Icon } from '../../../icon'\n\nexport const Trigger = (props: TriggerProps) => {\n const {\n id,\n 'aria-haspopup': ariaHasPopup,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-expanded': ariaExpanded,\n isDisabled,\n handleClick,\n } = props\n const ref = useRef<HTMLButtonElement>(null)\n\n const handleKeyDown: KeyboardEventHandler<HTMLButtonElement> = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n handleClick()\n }\n }\n\n return (\n <Button\n ref={ ref }\n id={ id }\n aria-haspopup={ ariaHasPopup }\n aria-label={ ariaLabel }\n aria-labelledby={ ariaLabelledBy }\n aria-describedby={ ariaDescribedBy }\n aria-expanded={ ariaExpanded }\n size=\"sm\"\n boxSize={ 8 }\n variant=\"ghost\"\n isDisabled={ isDisabled }\n onClick={ handleClick }\n onKeyDown={ handleKeyDown }\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 from 'react'\nimport { Table as ChakraTable } from '@chakra-ui/react'\nimport { TableProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/table}\n *\n * @example\n * (?\n <Table variant=\"rounded\">\n <Thead>\n <Tr>\n <Th fontWeight=\"bold\"> Number</Th>\n <Th fontWeight=\"bold\"> Title</Th>\n </Tr>\n </Thead>\n <Tbody>\n { [1, 2, 3, 4, 5].map((num) => (\n <Tr key={ num }>\n <Td>{ num }</Td>\n <Td>\n This is great Typography man\n </Td>\n </Tr>\n )) }\n </Tbody>\n </Table>\n * ?)\n *\n */\nexport const Table = (props: TableProps) => <ChakraTable { ...props } />\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=\"brand\"\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(({ weekDays }: DayLabelsProps) => {\n const { dayLabel } = useMultiStyleConfig('Calendar')\n const weekDaysWithIds = weekDays.map((day, i) => ({ label: day, _id: i }))\n\n return (\n <>\n { weekDaysWithIds.map(({ label, _id }) => (\n <chakra.th key={ _id } __css={ dayLabel }>\n { label }\n </chakra.th>\n )) }\n </>\n )\n})\n","const mondayFirstWeekDays = [ 'M', 'T', 'W', 'T', 'F', 'S', 'S' ]\nconst sundayFirstWeekDays = [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ]\n\nexport const getWeekdays = (firstDayOfWeek: 'monday' | 'sunday') =>\n (firstDayOfWeek === 'monday' ? mondayFirstWeekDays : sundayFirstWeekDays)\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'\nimport { getWeekdays } from './utils'\n\nexport const CalendarGrid = memo(\n ({ state, locale, firstDayOfWeek, ...rest }: CalendarGridProps) => {\n const startDate = state.visibleRange.start\n const { gridProps, headerProps } = useCalendarGrid(rest, state)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n const weekDays = getWeekdays(firstDayOfWeek)\n\n return (\n <Table variant=\"unstyled\" { ...gridProps }>\n <Thead { ...headerProps }>\n <Tr>\n <DayLabels weekDays={ weekDays } />\n </Tr>\n </Thead>\n <Tbody>\n { times(\n (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 ),\n weeksInMonth\n ) }\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]\n","import React, { ChangeEvent } from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { months } from '../constants'\nimport { MonthSelectProps } from './types'\n\nexport const MonthSelect = ({ state }: MonthSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n const selectedMonth = state.visibleRange.start.month - 1\n\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const diff = index - selectedMonth\n state.setFocusedDate(state.visibleRange.start.add({ months: diff }))\n }\n\n return (\n <Select\n id=\"month\"\n aria-label=\"Select Month\"\n onChange={ onChange }\n value={ selectedMonth }\n iconSize=\"0px\"\n size=\"sm\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n textAlign=\"center\"\n >\n { months.map((month, i) => (\n <option value={ i } key={ `month-${i as number}` }>\n { month }\n </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}: UseYearsRangeCalendarProps) => {\n const years: YearValue[] = []\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.visibleRange.start.add({ years: i })\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}: YearSelectRangeCalendarProps) => {\n const { years } = useYearsRangeCalendar({ 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","const MILLISECONDS_PER_DAY = 86400000\n\nconst getThursdayDate = (date: Date): Date => {\n const thursdayDate = new Date(date)\n thursdayDate.setDate(date.getDate() + (4 - (date.getDay() || 7)))\n return thursdayDate\n}\n\nconst hasWeek53 = (year: number): boolean => {\n const firstDayOfYear = new Date(year, 0, 1)\n return firstDayOfYear.getDay() === 4 ||\n (firstDayOfYear.getDay() === 3 && new Date(year, 1, 29).getMonth() === 1)\n}\n\nexport const getWeekNumberAtStartOfMonth = (\n year: number,\n month: number\n): number => {\n const firstDayOfMonth = new Date(year, month - 1, 1)\n const thursdayOfFirstWeek = getThursdayDate(firstDayOfMonth)\n const firstDayOfYear = new Date(year, 0, 1)\n const firstThursdayOfYear = getThursdayDate(firstDayOfYear)\n const daysDifference = thursdayOfFirstWeek.getTime() - firstThursdayOfYear.getTime()\n const weekNumber = Math.ceil((daysDifference / MILLISECONDS_PER_DAY + 1) / 7)\n\n const isYearTransition = firstThursdayOfYear.getFullYear() < year\n const isJanuaryTransition = isYearTransition\n && thursdayOfFirstWeek.getFullYear() < year && month === 1\n\n if (isJanuaryTransition) {\n return hasWeek53(year - 1) ? 53 : 52\n }\n\n if (isYearTransition && month > 1) {\n return weekNumber - 1\n }\n\n if (month === 1 && weekNumber > 51) {\n return !hasWeek53(year - 1) ? 1 : weekNumber\n }\n\n return weekNumber\n}\n\nexport const getDisplayWeek = (\n baseWeek: number,\n weekIndex: number,\n year: number,\n month: number\n): number => {\n const isJanuaryEdgeCase = month === 1 && baseWeek > 51\n\n if (isJanuaryEdgeCase) {\n return weekIndex === 0 ? baseWeek : weekIndex\n }\n\n if (weekIndex === 0) {\n return baseWeek\n }\n\n const nextWeek = baseWeek + weekIndex\n\n if (nextWeek > 52) {\n return hasWeek53(year) && nextWeek === 53 ? 53 : nextWeek - 52\n }\n\n return nextWeek\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 { equals } from 'ramda'\nimport { RangeCellProps } from './types'\n\nexport const RangeCell = ({\n state,\n date,\n currentMonth,\n range,\n}: RangeCellProps) => {\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n if (isOutsideMonth) return <chakra.td />\n\n const ref = useRef<HTMLButtonElement>(null)\n const {\n cellProps,\n buttonProps,\n isSelected: baseIsSelected,\n formattedDate,\n } = useCalendarCell({ date }, state, ref)\n\n const isToday = date.compare(today(state.timeZone)) === 0\n\n const isHighlighted = range && date < range.end && date > range.start\n\n const isSelected =\n range &&\n !isHighlighted &&\n (equals(date, range.start) || equals(date, range.end))\n\n return (\n <chakra.td { ...cellProps }>\n <chakra.button\n { ...buttonProps }\n type=\"button\"\n ref={ ref }\n borderRadius=\"xs\"\n bgColor={\n isHighlighted ? 'brand-alt' : isSelected ? 'brand' : 'transparent'\n }\n color={ isSelected ? 'text.inverted' : 'text.default' }\n fontSize=\"sm\"\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"brand\"\n mx=\"-1px\"\n ml={ isToday ? '-2px ' : undefined }\n my=\"0a\"\n w=\"8\"\n h=\"8\"\n fontWeight=\"medium\"\n opacity={ isSelected && !baseIsSelected ? '0.4' : '1' }\n _focusVisible={ {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n } }\n _hover={ {\n bgColor: isSelected ? ' background.button.brand-hover' : '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, { useMemo } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendar, useCalendarGrid } from '@react-aria/calendar'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { useLocale } from '@react-aria/i18n'\nimport { CalendarState } from '@react-stately/calendar'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { DayLabels } from './day-labels'\nimport { Box } from '../../../../box'\nimport { HStack, Stack } from '../../../../stack'\nimport { Flex } from '../../../../flex'\nimport { Icon } from '../../../../icon'\nimport { Small } from '../../../../typography'\nimport { MonthSelect, YearSelectRangeCalendar } from '../date-select'\nimport { MonthButton } from './month-button'\nimport { getDisplayWeek, getWeekNumberAtStartOfMonth } from './get-week-number-start-of-month'\nimport { RangeCell } from './range-cell'\nimport { DateRangeValue } from '../quick-navigation/types'\nimport { FirstDayOfWeek } from './types'\nimport { getWeekdays } from './utils'\n\ninterface StandaloneCalendarGridProps {\n state: CalendarState\n range: DateRangeValue | undefined\n firstDayOfWeek: FirstDayOfWeek\n}\n\nexport const StandaloneCalendarGrid = ({\n state,\n range,\n firstDayOfWeek,\n ...rest\n}: StandaloneCalendarGridProps) => {\n const { locale } = useLocale()\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n const startDate = state.visibleRange.start\n const { gridProps, headerProps } = useCalendarGrid(rest, state)\n const weekDays = getWeekdays(firstDayOfWeek)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n const weekNumberStart = useMemo(() => {\n const weekNumber = getWeekNumberAtStartOfMonth(startDate.year, startDate.month)\n return weekNumber\n }, [ startDate.year, startDate.month ])\n\n return (\n <Box { ...calendarProps } h=\"265px\" p=\"0\">\n <Stack>\n <Flex justify=\"space-between\" w=\"full\" p=\"1\" alignItems=\"center\">\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <HStack spacing=\"0\">\n <MonthSelect state={ state } />\n <YearSelectRangeCalendar state={ state } />\n </HStack>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </Flex>\n <chakra.table { ...gridProps } sx={ { borderSpacing: '0' } }>\n <chakra.thead { ...headerProps }>\n <chakra.tr>\n <chakra.th />\n <DayLabels weekDays={ weekDays } />\n </chakra.tr>\n </chakra.thead>\n <chakra.tbody>\n { times((weekIndex) => {\n const weekNumber = getDisplayWeek(weekNumberStart,\n weekIndex,\n startDate.year,\n startDate.month)\n return (\n <chakra.tr key={ weekIndex }>\n <chakra.td>\n <Small sx={ { color: 'text.subdued' } } pr=\"2\">\n w.\n { weekNumber }\n </Small>\n </chakra.td>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date) =>\n (date ? (\n <RangeCell\n key={ date.day }\n state={ state }\n range={ range }\n date={ date }\n currentMonth={ startDate }\n />\n ) : (\n <chakra.td />\n ))\n ) }\n </chakra.tr>\n )\n }, weeksInMonth) }\n </chakra.tbody>\n </chakra.table>\n </Stack>\n </Box>\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 { firstDayOfWeek } = props\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\n state={ state }\n locale={ locale }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Stack>\n </Box>\n )\n}\n","import React, { ReactNode } from 'react'\nimport { I18nProvider } from '@react-aria/i18n'\nimport { FirstDayOfWeek } from '../components/calendar/components/types'\n\ninterface DatePickerLocaleWrapperProps {\n firstDayOfWeek: FirstDayOfWeek\n children: ReactNode\n}\n\nexport const DatePickerLocaleWrapper = ({\n firstDayOfWeek,\n children,\n}: DatePickerLocaleWrapperProps) => {\n const locale = firstDayOfWeek === 'monday' ? 'en-DE' : 'en-US'\n return <I18nProvider locale={ locale }>{ children }</I18nProvider>\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig, useOutsideClick } 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'\nimport { DatePickerLocaleWrapper } from './date-picker-locale-wrapper'\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 'data-testid': dataTestId,\n isDisabled,\n isClearable = true,\n resetDate,\n isInvalid = false,\n dateFormat,\n minValue,\n variant = 'outline',\n firstDayOfWeek = 'monday',\n value,\n defaultValue,\n onChange,\n maxValue,\n isReadOnly,\n isRequired,\n placeholderValue,\n isDateUnavailable,\n granularity,\n hourCycle,\n shouldForceLeadingZeros,\n pageBehavior,\n defaultOpen,\n onOpenChange,\n label,\n description,\n errorMessage,\n id,\n name,\n autoFocus,\n onFocus,\n onBlur,\n onFocusChange,\n onKeyDown,\n onKeyUp,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-details': ariaDetails,\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const dialogRef = useRef() as React.MutableRefObject<HTMLDivElement>\n const { group } = useMultiStyleConfig('DatePicker')\n\n const state = useDatePickerState({\n value,\n defaultValue,\n onChange,\n minValue,\n maxValue,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n placeholderValue,\n isDateUnavailable,\n granularity,\n hourCycle,\n shouldForceLeadingZeros,\n defaultOpen,\n onOpenChange,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const { buttonProps, fieldProps, calendarProps, groupProps, dialogProps } =\n useDatePicker(\n {\n value,\n defaultValue,\n onChange,\n minValue: minValue || parseDate('1994-03-08'),\n maxValue,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n placeholderValue,\n isDateUnavailable,\n granularity,\n hourCycle,\n shouldForceLeadingZeros,\n pageBehavior,\n defaultOpen,\n onOpenChange,\n label,\n description,\n errorMessage,\n id,\n name,\n autoFocus,\n onFocus,\n onBlur,\n onFocusChange,\n onKeyDown,\n onKeyUp,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-details': ariaDetails,\n },\n state,\n ref\n )\n\n const {\n id: buttonId,\n 'aria-haspopup': buttonAriaHasPopup,\n 'aria-label': buttonAriaLabel,\n 'aria-labelledby': buttonAriaLabelledBy,\n 'aria-describedby': buttonAriaDescribedBy,\n 'aria-expanded': buttonAriaExpanded,\n } = buttonProps\n\n const {\n id: dialogId,\n 'aria-labelledby': dialogAriaLabelledBy,\n } = dialogProps\n\n const {\n autoFocus: calAutoFocus,\n value: calValue,\n onChange: calOnChange,\n minValue: calMinValue,\n maxValue: calMaxValue,\n isDisabled: calIsDisabled,\n isReadOnly: calIsReadOnly,\n isDateUnavailable: calIsDateUnavailable,\n defaultFocusedValue: calDefaultFocusedValue,\n isInvalid: calIsInvalid,\n errorMessage: calErrorMessage,\n } = calendarProps\n\n const {\n id: fieldId,\n 'aria-describedby': fieldAriaDescribedBy,\n 'aria-labelledby': fieldAriaLabelledBy,\n value: fieldValue,\n onChange: fieldOnChange,\n minValue: fieldMinValue,\n maxValue: fieldMaxValue,\n placeholderValue: fieldPlaceholderValue,\n hideTimeZone: fieldHideTimeZone,\n hourCycle: fieldHourCycle,\n shouldForceLeadingZeros: fieldShouldForceLeadingZeros,\n granularity: fieldGranularity,\n isDisabled: fieldIsDisabled,\n isReadOnly: fieldIsReadOnly,\n isRequired: fieldIsRequired,\n isInvalid: fieldIsInvalid,\n autoFocus: fieldAutoFocus,\n name: fieldName,\n ...restFieldProps\n } = fieldProps\n\n const {\n role: groupRole,\n id: groupId,\n 'aria-disabled': groupAriaDisabled,\n 'aria-labelledby': groupAriaLabelledBy,\n 'aria-describedby': groupAriaDescribedBy,\n onKeyDown: groupOnKeyDown,\n onKeyUp: groupOnKeyUp,\n onFocus: groupOnFocus,\n onBlur: groupOnBlur,\n onPointerDown: groupOnPointerDown,\n onClick: groupOnClick,\n } = groupProps\n\n const togglePopup = () => {\n state.setOpen(!state.isOpen)\n }\n\n useOutsideClick({\n ref: dialogRef,\n handler: (event) => {\n if (ref.current?.contains(event.target as Node)) return\n state.setOpen(false)\n },\n })\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ () => state.setOpen(false) }\n closeOnBlur={ false }\n placement=\"bottom-end\"\n >\n <PopoverAnchor>\n <HStack minW={ 56 } data-testid={ dataTestId }>\n <InputGroup\n role={ groupRole }\n id={ groupId }\n aria-disabled={ groupAriaDisabled }\n aria-labelledby={ groupAriaLabelledBy }\n aria-describedby={ groupAriaDescribedBy }\n onKeyDown={ groupOnKeyDown }\n onKeyUp={ groupOnKeyUp }\n onFocus={ groupOnFocus }\n onBlur={ groupOnBlur }\n onPointerDown={ groupOnPointerDown }\n onClick={ groupOnClick }\n ref={ ref }\n __css={ group }\n >\n <StyledField\n isDisabled={ isDisabled }\n isInvalid={ isInvalid }\n variant={ variant }\n >\n <Box paddingInlineStart=\"1a\" data-testid=\"date-picker-input-field\" paddingInlineEnd={ 10 }>\n <DateField\n { ...restFieldProps }\n id={ fieldId }\n aria-describedby={ fieldAriaDescribedBy }\n aria-labelledby={ fieldAriaLabelledBy }\n value={ fieldValue }\n onChange={ fieldOnChange }\n minValue={ fieldMinValue }\n maxValue={ fieldMaxValue }\n placeholderValue={ fieldPlaceholderValue }\n hideTimeZone={ fieldHideTimeZone }\n hourCycle={ fieldHourCycle }\n shouldForceLeadingZeros={ fieldShouldForceLeadingZeros }\n granularity={ fieldGranularity }\n isDisabled={ fieldIsDisabled }\n isReadOnly={ fieldIsReadOnly }\n isRequired={ fieldIsRequired }\n isInvalid={ fieldIsInvalid }\n autoFocus={ fieldAutoFocus }\n name={ fieldName }\n dateFormat={ dateFormat }\n />\n </Box>\n </StyledField>\n <InputRightElement\n sx={ { height: '100%', paddingRight: '1' } }\n zIndex={ 0 }\n data-testid=\"date-picker-trigger\"\n >\n <Trigger\n id={ buttonId }\n aria-haspopup={ buttonAriaHasPopup }\n aria-label={ buttonAriaLabel }\n aria-labelledby={ buttonAriaLabelledBy }\n aria-describedby={ buttonAriaDescribedBy }\n aria-expanded={ buttonAriaExpanded }\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\n id={ dialogId }\n aria-labelledby={ dialogAriaLabelledBy }\n ref={ dialogRef }\n w={ 64 }\n border=\"none\"\n >\n <FocusScope contain={ true } restoreFocus={ true }>\n <DatePickerLocaleWrapper firstDayOfWeek={ firstDayOfWeek }>\n <Calendar\n autoFocus={ calAutoFocus }\n value={ calValue }\n onChange={ calOnChange }\n minValue={ calMinValue }\n maxValue={ calMaxValue }\n isDisabled={ calIsDisabled }\n isReadOnly={ calIsReadOnly }\n isDateUnavailable={ calIsDateUnavailable }\n defaultFocusedValue={ calDefaultFocusedValue }\n isInvalid={ calIsInvalid }\n errorMessage={ calErrorMessage }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </DatePickerLocaleWrapper>\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","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 { DateRangeValue, QuickSelectState } from './types'\n\nexport const validRange = (date: DateRangeValue, state: QuickSelectState) =>\n !date || (\n (!state.minValue || date.start >= state.minValue) &&\n (!state.maxValue || date.end <= state.maxValue) &&\n date.end >= date.start\n )\n","import {\n CalendarDate,\n endOfMonth,\n endOfWeek,\n endOfYear,\n startOfMonth,\n startOfWeek,\n startOfYear,\n today,\n} from '@internationalized/date'\nimport { QuickSelectState } from './types'\n\nexport const getQuickSelectOptions = (\n state: QuickSelectState,\n locale: string,\n fiscalStartMonth: number,\n fiscalStartDay: number\n) => {\n const thisDay = today(state.timeZone)\n\n const startOfMonthWithDays = (\n date: CalendarDate,\n { months, days }: { months: number, days: number }\n ) => {\n const start = date.add({ months }).set({ day: days })\n return start\n }\n\n const endOfMonthWithDays = (\n date: CalendarDate,\n { months, days }: { months: number, days: number }\n ) => {\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 nextWeek = {\n value: {\n start: startOfWeek(thisDay.add({ weeks: 1 }), locale),\n end: endOfWeek(thisDay.add({ weeks: 1 }), locale),\n },\n label: 'Next 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 // Fiscal year from input is 0-11, while internationalized gives 1-12. This corrects the check.\n const offsetFiscalYear =\n thisDay.month < fiscalStartMonth + 1 ||\n (thisDay.month === fiscalStartMonth + 1 && thisDay.day < fiscalStartDay)\n ? 1\n : 0\n\n const thisFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n { months: fiscalStartMonth, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n { months: fiscalStartMonth + 12, days: fiscalStartDay }\n ),\n },\n label: 'This Fiscal Year',\n }\n\n const lastFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear + 1 }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear + 1 }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: 'Last Fiscal Year',\n }\n\n const yearToDate = {\n value: {\n start: startOfMonthWithDays(startOfYear(thisDay), {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }),\n end: thisDay,\n },\n label: 'Year to Date',\n }\n\n const S1 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'S1' : 'FS1',\n }\n\n const S2 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'S2' : 'FS2',\n }\n\n const F1 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 3,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q1' : 'FQ1',\n }\n\n const F2 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 3,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q2' : 'FQ2',\n }\n\n const F3 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 9,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q3' : 'FQ3',\n }\n\n const F4 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 9,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q4' : 'FQ4',\n }\n\n const fiscalSemesters = [ S1, S2 ]\n const fiscalQuarters = [ F1, F2, F3, F4 ]\n const fiscalYears =\n fiscalStartMonth === 0 ? [] : [ thisFiscalYear, lastFiscalYear ]\n\n const quickDates = [\n thisYear,\n yearToDate,\n lastWeek,\n nextWeek,\n thisWeek,\n lastMonth,\n nextThreeMonths,\n nextSixMonths,\n nextMonth,\n thisMonth,\n lastYear,\n nextYear,\n ...fiscalYears,\n ]\n\n return { quickDates, fiscalQuarters, fiscalSemesters }\n}\n","import React, { useMemo } from 'react'\nimport { any, equals, map } from 'ramda'\nimport { palette } from '@northlight/tokens'\nimport { Flex, Spacer } 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 locale = '',\n height = '17.5rem',\n}: QuickSelectProps) => {\n const { quickDates, fiscalQuarters, fiscalSemesters } = useMemo(\n () => getQuickSelectOptions(state, locale, fiscalStartMonth, fiscalStartDay),\n []\n )\n\n const updateDate = (newDate: DateRangeValue) => () => {\n if (newDate) {\n state.setValue(newDate)\n state.setFocusedDateRange(newDate)\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 >\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 <Spacer />\n <Flex\n justifyContent=\"space-around\"\n w=\"full\"\n pt=\"2\"\n pr=\"4\"\n display={ shouldShow(fiscalSemesters) ? 'flex' : 'none' }\n >\n { map(\n (semester) =>\n validRange(semester.value, state) && (\n <DateButton\n onClick={ updateDate(semester.value) }\n isActive={ getIsActive(semester) }\n key={ `quick-select-${semester.label}` }\n >\n { semester.label }\n </DateButton>\n ),\n fiscalSemesters\n ) }\n </Flex>\n <Flex\n justifyContent=\"space-around\"\n w=\"full\"\n pt={ shouldShow(fiscalSemesters) ? '0' : '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, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { useLocale } from '@react-aria/i18n'\nimport { useCalendarState } from '@react-stately/calendar'\nimport { CalendarDate, GregorianCalendar } from '@internationalized/date'\nimport { RangeCalendarProps } from './types'\nimport { Button } from '../../../button'\nimport { Label } from '../../../typography'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { StandaloneCalendarGrid } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { DateRangeValue } from './quick-navigation/types'\nimport { QuickSelect } from './quick-navigation/quick-select'\n\nconst focusRing = {\n borderWidth: 'xs',\n borderRadius: 'md',\n borderColor: 'border.brand.hover',\n borderStyle: 'solid',\n}\n\nexport const RangeCalendar = (props: RangeCalendarProps) => {\n const {\n onChange: setRange = identity,\n value,\n handleClose,\n resetDate,\n isClearable = true,\n fiscalStartMonth,\n fiscalStartDay,\n minValue,\n maxValue,\n firstDayOfWeek,\n onSave,\n buttonLabel = 'Save',\n clearButtonLabel = 'Clear',\n } = props\n\n const { locale } = useLocale()\n\n const ref = useRef<HTMLDivElement>(null)\n const { rangeCalendarContainer } = useMultiStyleConfig('Calendar')\n\n const calendarOneState = useCalendarState({\n value: value && value.start ? value.start : null,\n minValue,\n maxValue,\n onChange: (newVal) => {\n setRange({\n end: value && value.end && newVal <= value.end ? value.end : newVal,\n start: newVal,\n })\n },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const calendarTwoState = useCalendarState({\n value: value && value.end ? value.end : null,\n minValue,\n maxValue,\n onChange: (newVal) => {\n setRange({\n start:\n value && value.end && value.start <= newVal ? value.start : newVal,\n end: newVal,\n })\n },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const focusDateRange = (dateRange: DateRangeValue) => {\n if (dateRange && dateRange.start && dateRange.end) {\n calendarOneState.setFocusedDate(dateRange.start as CalendarDate)\n calendarTwoState.setFocusedDate(dateRange.end as CalendarDate)\n }\n }\n\n const state = {\n setValue: setRange,\n setFocusedDateRange: focusDateRange,\n value,\n timeZone: calendarOneState.timeZone,\n minValue,\n maxValue,\n }\n\n const focusedStartMonthProps = value && value.start ? {} : focusRing\n\n const handleSave = () => {\n onSave?.()\n handleClose()\n }\n\n const handleReset = () => {\n resetDate()\n handleClose()\n }\n\n return (\n <Box ref={ ref } __css={ rangeCalendarContainer }>\n <Stack>\n <Flex gap={ 4 }>\n <QuickSelect\n state={ state }\n locale={ locale }\n fiscalStartMonth={ fiscalStartMonth }\n fiscalStartDay={ fiscalStartDay }\n />\n <Stack>\n <HStack alignItems=\"start\" spacing={ 8 } h=\"full\" pt=\"2\">\n <Stack h=\"full\" { ...focusedStartMonthProps }>\n <Box p=\"2\">\n <Label size=\"xs\">Start date:</Label>\n <StandaloneCalendarGrid\n state={ calendarOneState }\n range={ value }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Box>\n </Stack>\n <Stack h=\"full\" justify=\"space-between\">\n <Stack opacity={ value && value.start ? '1' : '0.4' }>\n <Box p=\"2\">\n <Label size=\"xs\">End date:</Label>\n <StandaloneCalendarGrid\n state={ calendarTwoState }\n range={ value }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Box>\n </Stack>\n <HStack pt=\"2\" alignSelf=\"end\">\n { isClearable && (\n <Button onClick={ handleReset } variant=\"ghost\" size=\"sm\">\n { clearButtonLabel }\n </Button>\n ) }\n <Button variant=\"brand\" onClick={ handleSave } size=\"sm\">\n { buttonLabel }\n </Button>\n </HStack>\n </Stack>\n </HStack>\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 {\n AlertCircleSolid,\n AlertOctagonSolid,\n AlertTriangleSolid,\n BrightnessSolid,\n CheckCircleSolid,\n HelpCircleSolid,\n InfoSolid,\n} from '@northlight/icons'\nimport { AlertVariants } from '../../alert/types'\n\nexport const tooltipIconMap: Record<AlertVariants, any> = {\n success: CheckCircleSolid,\n warning: AlertTriangleSolid,\n error: AlertCircleSolid,\n danger: AlertOctagonSolid,\n info: InfoSolid,\n ai: BrightnessSolid,\n default: HelpCircleSolid,\n ghost: HelpCircleSolid,\n}\n","import React from 'react'\nimport {\n Tooltip as ChakraTooltip,\n HStack,\n VStack,\n} from '@chakra-ui/react'\nimport { Label, P } from '../typography'\nimport { Icon } from '../icon'\nimport { AlertVariants } from '../alert'\nimport { tooltipIconMap } from '../types/tooltipIconMap'\nimport { OurTooltipProps } from './types'\n\n/**\n * A tooltip is a brief, informative message that appears when a user interacts with an element.\n * @see {@link https://northlight.dev/reference/tooltip}\n *\n * @example\n * (?\n * <HStack>\n * <Tooltip\n * hasIcon={ true }\n * description=\"Here’s a regular tooltip with some with icon\n * inside of it that’s supposed to be substantially large.\">\n * <Badge>ICON</Badge>\n * </Tooltip>\n * <Tooltip\n * description=\"Here’s a regular tooltip with some text without icon\n * inside of it that’s supposed to be substantially large.\"\n * >\n * <Badge>NOICON</Badge>\n * </Tooltip>\n * <Tooltip\n * description={\n * <Box>\n * <Text>\n * Some text\n * </Text>\n * <UnorderedList>\n * <ListItem>\n * List item 1\n * </ListItem>\n * <ListItem>\n * List item 2\n * </ListItem>\n * <ListItem>\n * List item 3\n * </ListItem>\n * </UnorderedList>\n * </Box>\n * }\n * >\n * <Badge>With JSX content</Badge>\n * </Tooltip>\n * </HStack>\n * ?)\n *\n *\n * @example\n * (?\n * <HStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"success\"\n * description=\"This is a successful message\"\n * >\n * <Badge colorScheme=\"green\">Success</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"success\"\n * title=\"Please check fields\"\n * description=\"This is a successful message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"green\">Success</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"info\"\n * description=\"This is an informative text\"\n * >\n * <Badge colorScheme=\"blue\">Info</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"info\"\n * title=\"Please check fields\"\n * description=\"This is an informative text with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"blue\">Info</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"warning\"\n * description=\"This is a warning\"\n * >\n * <Badge colorScheme=\"yellow\">Warning</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"warning\"\n * title=\"Please check fields\"\n * description=\"This is a warning with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"yellow\">Warning</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"danger\"\n * description=\"This is an error message\"\n * >\n * <Badge colorScheme=\"red\">Error</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"danger\"\n * title=\"Please check fields\"\n * description=\"This is an error message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"red\">Error</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ai\"\n * description=\"This is an AI message\">\n * <Badge colorScheme=\"teal\" variant=\"subtle\">AI</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ai\"\n * title=\"Please check fields\"\n * description=\"This is an AI message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"teal\" variant=\"subtle\">AI</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ghost\"\n * description=\"This is an clean message\">\n * <Badge>Ghost</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ghost\"\n * title=\"Please check fields\"\n * description=\"This is an clean message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge>Ghost</Badge>\n * </Tooltip>\n * </VStack>\n * </HStack>\n * ?)\n */\n\nexport const Tooltip: React.FC<OurTooltipProps> = ({\n variant = 'default',\n hasArrow = true,\n title = '',\n description = '',\n hasIcon = false,\n ...rest\n}) => {\n const iconVariant: AlertVariants = variant as AlertVariants\n const icon = tooltipIconMap[iconVariant]\n\n const TooltipContent = (\n <HStack alignItems=\"flex-start\">\n { hasIcon && <Icon as={ icon } color={ `icon.toast.${iconVariant}` } /> }\n <VStack spacing={ 0 } alignItems=\"flex-start\">\n <Label size=\"sm\">{ title }</Label>\n <P\n variant=\"14\"\n sx={ {\n color: !variant || variant === 'ai' ? 'text.inverted' : 'text.default',\n } }\n >\n { description }\n </P>\n </VStack>\n </HStack>\n )\n return (\n <ChakraTooltip\n hasArrow={ hasArrow }\n hasIcon={ hasIcon }\n label={ title || description ? TooltipContent : undefined }\n variant={ variant }\n { ...rest }\n />\n )\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, useOutsideClick } from '@chakra-ui/react'\nimport { CheckSolid, XCloseSolid } from '@northlight/icons'\nimport { identity, isNil } from 'ramda'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { DateRange } from '@react-types/datepicker'\nimport { DateRangePickerProps, DateRange as NorthlightDateRange } from '../types'\nimport { RangeCalendar } from '../components/calendar/quick-navigation'\nimport { P } from '../../typography'\nimport { HStack } from '../../stack'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { Portal } from '../../portal'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { IconButton } from '../../icon-button'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Icon } from '../../icon'\nimport { isValidDateRange } from '../date-picker-field/utils'\nimport { DatePickerLocaleWrapper } from './date-picker-locale-wrapper'\nimport { Tooltip } from '../../tooltip'\n\nconst parseValue = (value: any) => {\n if (!isValidDateRange(value)) return null\n return { start: parseDate(value.startDate), end: parseDate(value.endDate) }\n}\n\nconst PortalWrapper = ({\n renderInPortal,\n children,\n}: {\n renderInPortal: boolean\n children: React.ReactNode\n}) => {\n if (renderInPortal) {\n return <Portal>{ children }</Portal>\n }\n return <>{ children }</>\n}\n\nconst isDatesEqual = (\n date1: NorthlightDateRange | null,\n date2: NorthlightDateRange | null\n) => date1?.startDate === date2?.startDate && date1?.endDate === date2?.endDate\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\" />\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 variant = 'outline',\n onChange: onChangeCallback = identity,\n value,\n minValue = '1994-03-08',\n maxValue,\n renderInPortal = false,\n firstDayOfWeek,\n onSave,\n buttonLabel = 'Save',\n clearButtonLabel = 'Clear',\n savedDateRange,\n defaultDateRange,\n CustomResetButton,\n onCancelChanges,\n 'data-testid': dataTestId,\n defaultOpen = false,\n onOpenChange,\n placeholderValue,\n isDateUnavailable,\n allowsNonContiguousRanges,\n startName,\n endName,\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const dialogRef = useRef() as React.MutableRefObject<HTMLDivElement>\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 const state = useDateRangePickerState({\n value: parsedProps.value,\n onChange: parsedProps.onChange,\n minValue: parsedProps.minValue,\n maxValue: parsedProps.maxValue,\n isDisabled,\n isInvalid,\n placeholderValue,\n isDateUnavailable,\n allowsNonContiguousRanges,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n defaultOpen,\n onOpenChange,\n })\n\n const {\n groupProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDateRangePicker(\n {\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: parsedProps.minValue || parseDate('1994-03-08'),\n maxValue: parsedProps.maxValue,\n placeholderValue,\n isDateUnavailable,\n allowsNonContiguousRanges,\n isDisabled,\n isInvalid,\n startName,\n endName,\n 'aria-label': 'Date range picker',\n },\n state,\n ref\n )\n\n const {\n id: buttonId,\n 'aria-haspopup': buttonAriaHasPopup,\n 'aria-label': buttonAriaLabel,\n 'aria-labelledby': buttonAriaLabelledBy,\n 'aria-describedby': buttonAriaDescribedBy,\n 'aria-expanded': buttonAriaExpanded,\n } = buttonProps\n\n const {\n role: groupRole,\n id: groupId,\n 'aria-disabled': groupAriaDisabled,\n 'aria-labelledby': groupAriaLabelledBy,\n 'aria-describedby': groupAriaDescribedBy,\n onKeyDown: groupOnKeyDown,\n onKeyUp: groupOnKeyUp,\n onFocus: groupOnFocus,\n onBlur: groupOnBlur,\n onPointerDown: groupOnPointerDown,\n onClick: groupOnClick,\n } = groupProps\n\n const {\n id: startFieldId,\n 'aria-describedby': startFieldAriaDescribedBy,\n 'aria-labelledby': startFieldAriaLabelledBy,\n value: startFieldValue,\n onChange: startFieldOnChange,\n minValue: startFieldMinValue,\n maxValue: startFieldMaxValue,\n placeholderValue: startFieldPlaceholderValue,\n hideTimeZone: startFieldHideTimeZone,\n hourCycle: startFieldHourCycle,\n shouldForceLeadingZeros: startFieldShouldForceLeadingZeros,\n granularity: startFieldGranularity,\n isDisabled: startFieldIsDisabled,\n isReadOnly: startFieldIsReadOnly,\n isRequired: startFieldIsRequired,\n isInvalid: startFieldIsInvalid,\n autoFocus: startFieldAutoFocus,\n name: startFieldName,\n ...restStartFieldProps\n } = startFieldProps\n\n const {\n id: endFieldId,\n 'aria-describedby': endFieldAriaDescribedBy,\n 'aria-labelledby': endFieldAriaLabelledBy,\n value: endFieldValue,\n onChange: endFieldOnChange,\n minValue: endFieldMinValue,\n maxValue: endFieldMaxValue,\n placeholderValue: endFieldPlaceholderValue,\n hideTimeZone: endFieldHideTimeZone,\n hourCycle: endFieldHourCycle,\n shouldForceLeadingZeros: endFieldShouldForceLeadingZeros,\n granularity: endFieldGranularity,\n isDisabled: endFieldIsDisabled,\n isReadOnly: endFieldIsReadOnly,\n isRequired: endFieldIsRequired,\n isInvalid: endFieldIsInvalid,\n name: endFieldName,\n ...restEndFieldProps\n } = endFieldProps\n\n const {\n id: dialogId,\n 'aria-labelledby': dialogAriaLabelledBy,\n } = dialogProps\n\n const {\n autoFocus: calAutoFocus,\n value: calValue,\n onChange: calOnChange,\n minValue: calMinValue,\n maxValue: calMaxValue,\n isDisabled: calIsDisabled,\n isReadOnly: calIsReadOnly,\n isDateUnavailable: calIsDateUnavailable,\n allowsNonContiguousRanges: calAllowsNonContiguousRanges,\n defaultFocusedValue: calDefaultFocusedValue,\n isInvalid: calIsInvalid,\n errorMessage: calErrorMessage,\n } = calendarProps\n\n const togglePopup = () => {\n state.setOpen(!state.isOpen)\n }\n\n const handleClose = () => {\n state.setOpen(false)\n }\n\n useOutsideClick({\n ref: dialogRef,\n handler: (event) => {\n if (ref.current?.contains(event.target as Node)) return\n state.setOpen(false)\n },\n })\n\n const ResetButton = CustomResetButton || (\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n hidden={ !isClearable }\n isDisabled={ isDisabled }\n onClick={ resetDate }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n )\n\n const cancelOrResetDateChange = () => {\n if (onCancelChanges) {\n if (!isNil(savedDateRange)) onChangeCallback(savedDateRange)\n onCancelChanges()\n } else {\n if (!isNil(defaultDateRange)) onChangeCallback(defaultDateRange)\n resetDate()\n }\n }\n\n const handleSave = () => {\n onSave?.()\n handleClose()\n }\n\n const handleModalClose = () => {\n if (!isNil(savedDateRange)) onChangeCallback(savedDateRange)\n handleClose()\n }\n\n // If savedDateRange is null, we consider value saved\n const isCurrentDateSaved =\n isNil(savedDateRange) || isDatesEqual(value, savedDateRange)\n\n // If defaultDateRange is null, we consider value resettable\n const isDateResettable =\n isNil(defaultDateRange) || !isDatesEqual(value, defaultDateRange)\n\n const canShowSaveAndCancelButtons = !isNil(savedDateRange) && !isNil(defaultDateRange)\n\n const shouldShowResetButton =\n !state.isOpen && isCurrentDateSaved && isDateResettable\n\n const shouldShowSaveAndCancelButtons =\n canShowSaveAndCancelButtons && !state.isOpen && !isCurrentDateSaved\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ handleModalClose }\n closeOnBlur={ false }\n placement=\"bottom-start\"\n >\n <PopoverAnchor>\n <HStack data-testid={ dataTestId }>\n <InputGroup\n role={ groupRole }\n id={ groupId }\n aria-disabled={ groupAriaDisabled }\n aria-labelledby={ groupAriaLabelledBy }\n aria-describedby={ groupAriaDescribedBy }\n onKeyDown={ groupOnKeyDown }\n onKeyUp={ groupOnKeyUp }\n onFocus={ groupOnFocus }\n onBlur={ groupOnBlur }\n onPointerDown={ groupOnPointerDown }\n onClick={ groupOnClick }\n ref={ ref }\n __css={ group }\n >\n <StyledField\n isDisabled={ isDisabled }\n isInvalid={ isInvalid }\n variant={ variant }\n >\n <HStack paddingInlineStart=\"1a\" data-test-id=\"daterange-picker-input-field\" paddingInlineEnd={ 10 }>\n <DateField\n { ...restStartFieldProps }\n id={ startFieldId }\n aria-describedby={ startFieldAriaDescribedBy }\n aria-labelledby={ startFieldAriaLabelledBy }\n value={ startFieldValue }\n onChange={ startFieldOnChange }\n minValue={ startFieldMinValue }\n maxValue={ startFieldMaxValue }\n placeholderValue={ startFieldPlaceholderValue }\n hideTimeZone={ startFieldHideTimeZone }\n hourCycle={ startFieldHourCycle }\n shouldForceLeadingZeros={ startFieldShouldForceLeadingZeros }\n granularity={ startFieldGranularity }\n isDisabled={ startFieldIsDisabled }\n isReadOnly={ startFieldIsReadOnly }\n isRequired={ startFieldIsRequired }\n isInvalid={ startFieldIsInvalid }\n autoFocus={ startFieldAutoFocus }\n name={ startFieldName }\n dateFormat={ dateFormat }\n />\n <P>-</P>\n <DateField\n { ...restEndFieldProps }\n id={ endFieldId }\n aria-describedby={ endFieldAriaDescribedBy }\n aria-labelledby={ endFieldAriaLabelledBy }\n value={ endFieldValue }\n onChange={ endFieldOnChange }\n minValue={ endFieldMinValue }\n maxValue={ endFieldMaxValue }\n placeholderValue={ endFieldPlaceholderValue }\n hideTimeZone={ endFieldHideTimeZone }\n hourCycle={ endFieldHourCycle }\n shouldForceLeadingZeros={ endFieldShouldForceLeadingZeros }\n granularity={ endFieldGranularity }\n isDisabled={ endFieldIsDisabled }\n isReadOnly={ endFieldIsReadOnly }\n isRequired={ endFieldIsRequired }\n isInvalid={ endFieldIsInvalid }\n name={ endFieldName }\n dateFormat={ dateFormat }\n />\n </HStack>\n </StyledField>\n <InputRightElement data-test-id=\"daterange-picker-trigger\" sx={ { height: '100%', paddingRight: '1' } }>\n <Trigger\n id={ buttonId }\n aria-haspopup={ buttonAriaHasPopup }\n aria-label={ buttonAriaLabel }\n aria-labelledby={ buttonAriaLabelledBy }\n aria-describedby={ buttonAriaDescribedBy }\n aria-expanded={ buttonAriaExpanded }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n { shouldShowResetButton && (\n ResetButton\n ) }\n { shouldShowSaveAndCancelButtons && (\n <>\n <Tooltip label={ clearButtonLabel }>\n <IconButton\n aria-label=\"cancel-date-change\"\n variant=\"ghost\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ onCancelChanges }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </Tooltip>\n <Tooltip label={ buttonLabel }>\n <IconButton\n aria-label=\"save-date\"\n variant=\"brand\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ handleSave }\n isDisabled={ isDisabled }\n icon={ <Icon as={ CheckSolid } /> }\n />\n </Tooltip>\n </>\n ) }\n </HStack>\n </PopoverAnchor>\n <PortalWrapper renderInPortal={ renderInPortal }>\n { state.isOpen && (\n <PopoverContent\n id={ dialogId }\n aria-labelledby={ dialogAriaLabelledBy }\n ref={ dialogRef }\n w=\"max-content\"\n >\n <FocusScope contain={ true } restoreFocus={ true }>\n <DatePickerLocaleWrapper firstDayOfWeek={ firstDayOfWeek }>\n <RangeCalendar\n autoFocus={ calAutoFocus }\n value={ calValue }\n onChange={ calOnChange }\n minValue={ calMinValue }\n maxValue={ calMaxValue }\n isDisabled={ calIsDisabled }\n isReadOnly={ calIsReadOnly }\n isDateUnavailable={ calIsDateUnavailable }\n allowsNonContiguousRanges={ calAllowsNonContiguousRanges }\n defaultFocusedValue={ calDefaultFocusedValue }\n isInvalid={ calIsInvalid }\n errorMessage={ calErrorMessage }\n resetDate={ cancelOrResetDateChange }\n handleClose={ handleModalClose }\n fiscalStartMonth={ fiscalStartMonth || 0 }\n fiscalStartDay={ fiscalStartDay || 0 }\n isClearable={ isClearable }\n firstDayOfWeek={ firstDayOfWeek }\n onSave={ onSave }\n clearButtonLabel={ clearButtonLabel }\n buttonLabel={ buttonLabel }\n />\n </DatePickerLocaleWrapper>\n </FocusScope>\n </PopoverContent>\n ) }\n </PortalWrapper>\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, { forwardRef } 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 = forwardRef<HTMLDivElement, DatePickerFieldProps>(({\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}, ref) => {\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 ref={ ref }\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, { forwardRef } 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 = forwardRef<HTMLDivElement, DateRangePickerFieldProps>(({\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 onSave,\n buttonLabel = 'Save',\n ...rest\n}, ref) => {\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 ref={ ref }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <DateRangePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n onSave={ onSave }\n resetDate={ () => onChange(null) }\n value={ value }\n minValue={ minValue }\n maxValue={ maxValue }\n validationState={ errors.name ? 'invalid' : 'valid' }\n isClearable={ isClearable }\n buttonLabel={ buttonLabel }\n { ...(rest as any) }\n />\n ) }\n </Field>\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, { forwardRef } 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 = forwardRef<HTMLDivElement, RadioFieldGroupProps>(({\n name,\n label,\n children,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\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 ref={ ref }\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","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 ControlProps,\n DropdownIndicatorProps,\n GroupBase,\n MenuProps,\n MultiValueGenericProps,\n OptionProps,\n chakraComponents,\n} from 'chakra-react-select'\nimport { merge } from 'ramda'\nimport { Box } from '../box'\nimport { HStack } from '../stack'\nimport { Icon } from '../icon'\nimport { SearchBarOptionType } from './types'\n\nexport function getComponents<T extends SearchBarOptionType> (\n components?: Record<string, any>\n) {\n return merge(\n {\n Menu: (props: MenuProps<T>) => (\n <Box data-testid=\"select-menu-wrapper-test-id\">\n <chakraComponents.Menu { ...props }>\n { props.children }\n </chakraComponents.Menu>\n </Box>\n ),\n DropdownIndicator: (props: DropdownIndicatorProps<T>) =>\n (props.selectProps.icon ? (\n <chakraComponents.DropdownIndicator { ...props }>\n <Icon as={ props.selectProps.icon } />\n </chakraComponents.DropdownIndicator>\n ) : (\n <chakraComponents.DropdownIndicator { ...props } />\n )),\n Option: (props: OptionProps<T>) =>\n (props.selectProps.customOption ? (\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 <chakraComponents.MultiValueContainer { ...props }>\n { props.selectProps.customTag(props.data) }\n </chakraComponents.MultiValueContainer>\n ) : (\n <chakraComponents.MultiValueContainer { ...props } />\n )),\n Control: ({\n children,\n ...props\n }: ControlProps<T, boolean, GroupBase<T>>) =>\n (props.selectProps.leftComponent ? (\n <chakraComponents.Control { ...props }>\n <HStack w=\"full\" pl=\"2\">\n { props.selectProps.leftComponent }\n <HStack w=\"full\" justify=\"space-between\">\n { children }\n </HStack>\n </HStack>\n </chakraComponents.Control>\n ) : (\n <chakraComponents.Control { ...props }>\n { children }\n </chakraComponents.Control>\n )),\n },\n components || {}\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, K extends boolean = false>({\n defaultOptions = [],\n isMulti,\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, K>,\n ref: React.Ref<SelectInstance<T, K, 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, K>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? value as T[] : [],\n })\n\n const customComponents = useMemo(\n () => getComponents<T>(),\n []\n )\n\n const simpleFilter = (query: string) => {\n if (typeof defaultOptions === 'boolean') return []\n return filter(\n (option: T) =>\n test(new RegExp(toLower(query), 'g'), toLower(option.label)),\n defaultOptions\n )\n }\n const getOptions = async (query: string) => {\n const newOptions = getCustomOptions\n ? await getCustomOptions(query)\n : simpleFilter(query)\n setFiltered((prev) => {\n // If default value is a boolean we want default value to persist to it's initial value\n // this is to allow pre-fetching of values on first render\n if (typeof prev === 'boolean') return prev\n return newOptions\n })\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<T, K>\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, { forwardRef } 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\nconst BaseSearchBarField = <T extends SearchBarOptionType, K extends boolean = false> ({\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, K>, ref: React.Ref<HTMLDivElement>) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n ref={ ref }\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\nexport const SearchBarField = forwardRef(BaseSearchBarField)\n","import React, { forwardRef } from 'react'\nimport { Tag as ChakraTag } from '@chakra-ui/react'\nimport { useCurrentTheme } from '../../utils'\nimport { TagProps } from './types'\n\n/**\n * Tag component is used for items that need to be labeled,\n * categorized, or organized using keywords that describe them.\n * @see TagGroup\n * @see {@link https://northlight.dev/reference/tag}\n *\n * @example\n * (?\n * <Tag>Hello</Tag>\n * ?)\n *\n * @example\n * (?\n * +\n * const colors = [\"mediatoolBlue\", \"blue\", \"gray\", \"red\", \"green\",\n * \"orange\", \"yellow\", \"teal\", \"purple\", \"pink\"]\n * const variants = [\"solid\", \"subtle\"]\n * const Example = () => {\n * return <Stack>\n * { colors.map((color) => (\n * <HStack spacing={ 4 }>\n * {\n * variants.map((variant) => (\n * <HStack spacing={ 4 }>\n * <Tag size=\"sm\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"xs\">\n* <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"xs\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * <Tag size=\"md\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"md\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"md\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * <Tag size=\"lg\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"lg\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"lg\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * </HStack>\n * ))\n * }\n * </HStack>\n * ))\n * }\n * </Stack>\n * }\n * render(<Example/>)\n * ?)\n *\n *\n*/\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(({\n children,\n variant = 'solid',\n bgColor,\n colorScheme,\n ...rest\n}, ref) => {\n const currentTheme = useCurrentTheme()\n\n return (\n <ChakraTag\n bgColor={ bgColor }\n colorScheme={ colorScheme }\n ref={ ref }\n variant={ variant }\n currentTheme={ currentTheme }\n { ...rest }\n >\n { children }\n </ChakraTag>\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<HTMLSpanElement, DragItemProps>(({\n size = 'md',\n isDragging,\n itemLabel = 'Drag Me',\n bgColor,\n ...rest\n}, 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, { 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=\"full\" 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'\nimport { ButtonVariants } from '../button/types'\n\ntype MapVariantTypes = Record<EditableControlsProps['variant'], ButtonVariants>\n\nconst mapEditableVariantsToButtonSubmitVariants: MapVariantTypes = {\n brand: 'brand',\n default: 'success',\n}\n\nconst mapEditableVariantsToButtonCancelVariants: MapVariantTypes = {\n brand: 'ghost',\n default: 'danger',\n}\n\nexport const EditableControls = ({ size, variant = 'default' }: 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={ mapEditableVariantsToButtonCancelVariants[variant] }\n { ...getCancelButtonProps() }\n >\n <Icon sx={ icon } as={ XCloseSolid } />\n </IconButton>\n <IconButton\n aria-label=\"Save\"\n sx={ button }\n variant={ mapEditableVariantsToButtonSubmitVariants[variant] }\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 variant = 'default',\n ...rest\n}: EditableProps) => {\n const [ value, setValue ] = useState(inputValue)\n const { input, preview } = useMultiStyleConfig('EditableText', { size, value })\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 } variant={ variant } />\n </InputRightElement>\n </InputGroup>\n </Editable>\n )\n}\n","import { Modal as ChakraModal, ModalCloseButton, ModalContent, ModalOverlay } from '@chakra-ui/react'\nimport React from 'react'\nimport { ModalProps } from './types'\n\nexport const ModalBase = ({\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 from 'react'\nimport { ModalProps } from './types'\nimport { ModalBase } from './modal-base'\n\n/**\n * @see {@link https://northlight.dev/reference/modal}\n *\n * */\n\nexport const Modal = ({\n stayMountedOnClose = false,\n isOpen,\n ...rest\n}: ModalProps) => (\n <>\n { (stayMountedOnClose || isOpen) && <ModalBase isOpen={ isOpen } { ...rest } /> }\n </>\n)\n","import React from 'react'\nimport { ModalBody as ChakraModalBody, ModalBodyProps } from '@chakra-ui/react'\n\nexport const ModalBody = (props: ModalBodyProps) => (\n <ChakraModalBody minH={ props.h } maxH={ props.h } { ...props } />\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","export const updateTimeThreshold = 0.5\nexport const animationSlideTime = 250\n","import React, { forwardRef } from 'react'\nimport {\n Progress as ChakraProgress,\n ProgressProps as ChakraProgressProps,\n} from '@chakra-ui/react'\nimport { animationSlideTime } from './constants'\n\nexport interface ProgressBarProps extends ChakraProgressProps {\n animationSlideTimeMs?: number\n}\n\n/**\n * @see {@link https:/northlight/reference/progress-bar}\n *\n * @example\n * (?\n * <ProgressBar value={40} />\n * ?)\n */\nexport const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(\n ({ animationSlideTimeMs = animationSlideTime, sx, ...props }, ref) => (\n <ChakraProgress\n ref={ ref }\n width=\"full\"\n height=\"1a\"\n borderRadius=\"full\"\n sx={ {\n '>[role=\"progressbar\"]': {\n transition: `width ${animationSlideTimeMs}ms ease-out`,\n },\n ...sx,\n } }\n { ...props }\n />\n )\n)\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 enableStepperArrows = false,\n}: NumberInputStepperProps) => (\n <ChakraNumberInputStepper>\n <HStack alignItems=\"center\" h=\"full\">\n { includePercentage && (\n <Center bgColor=\"bg.layer\" borderRadius=\"md\" boxSize=\"6\">\n <P>%</P>\n </Center>\n ) }\n { enableStepperArrows && (\n <HStack alignItems=\"center\" h=\"full\">\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 ) }\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} enableStepperArrows={true}/>\n * </Box>\n * ?)\n *\n */\nexport const NumberInput = ({\n variant = 'default',\n size = 'md',\n onChange = identity,\n onInputChange = identity,\n enableStepperArrows = false,\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\n includePercentage={ onlyAcceptPercentage }\n enableStepperArrows={ enableStepperArrows }\n />\n </ChakraNumberInput>\n )\n}\n","import React, { forwardRef, 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 = forwardRef<HTMLDivElement, NumberInputFieldProps>(({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n onlyAcceptPercentage = false,\n inputLeftElement,\n inputRightElement,\n ...rest\n}, ref) => {\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 ref={ ref }\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 { filter, find, is, length, propEq } from 'ramda'\nimport { Option, SelectProps } from './types'\n\nconst isStringArray = (value: any): value is string[] =>\n is(Array, value) && length(value) > 0 && typeof value[0] === 'string'\n\nexport const getMatchingValue = <T extends Option, K extends boolean>(\n value: SelectProps<T, K>['value'],\n options: SelectProps<T, K>['options']\n): T | T[] | undefined => {\n if (typeof value === 'string') {\n return find(propEq('value', value), options as T[])\n }\n\n if (isStringArray(value)) {\n return filter(\n (option) => (value).includes(option.value),\n options as T[]\n )\n }\n\n return value as K extends true ? T[] : T\n}\n","import React, { Ref, forwardRef, useMemo, useRef } from 'react'\nimport {\n Select as ChakraReactSelect,\n GroupBase,\n OptionsOrGroups,\n SelectInstance,\n} from 'chakra-react-select'\nimport { Box } from '@chakra-ui/react'\nimport { always, 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'\nimport { getMatchingValue } from './get-matching-value'\nimport { theme } from '../../theme'\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 * />\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 const Select = forwardRef(<T extends Option, K extends boolean = false>({\n options,\n isMulti,\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 isClearable = false,\n value,\n icon,\n components,\n generateComponentsUpdateKey = always(0),\n ...rest\n}: SelectProps<T, K>,\n ref: Ref<SelectInstance<T, K, GroupBase<T>>>\n) => {\n const handleChange = useSelectCallbacks<T, K>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? (value as T[]) : [],\n })\n\n const customComponents = useMemo(\n () => getComponents<T>(components),\n [ generateComponentsUpdateKey() ]\n )\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 } cursor=\"pointer\">\n <ChakraReactSelect\n isMulti={ isMulti }\n options={ renderedOptions }\n useBasicStyles={ true }\n closeMenuOnSelect={ !isMulti }\n hideSelectedOptions={ false }\n isClearable={ isClearable }\n onChange={ handleChange }\n selectedOptionStyle=\"check\"\n chakraStyles={ customSelectStyles }\n isLoading={ isLoading }\n { ...(isLoading && { components: { MenuList: loadingList } }) }\n value={ getMatchingValue(value, options) }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n ref={ ref }\n menuPortalTarget={ document.body }\n styles={ { menuPortal: (base) => ({ ...base, zIndex: theme.zIndices.popover }) } }\n { ...rest }\n />\n </Box>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { XCloseSolid } from '@northlight/icons'\nimport { equals, identity, isNil } 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'\n\nconst BaseSelectField = <T extends Option, K extends boolean = false>(\n {\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, K>,\n ref: React.Ref<HTMLDivElement>\n) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <Select<T, K>\n name={ name }\n options={ options }\n isMulti={ isMulti }\n onChange={ (values, event) => {\n onChange(\n isMulti\n ? (values as T[]).map((item: any) => item.value)\n : (values as T).value\n )\n onChangeCallback(values as K extends true ? T[] : T, event)\n } }\n value={\n value\n ? (options\n ?.flatMap((inner: any) =>\n (inner.options ? inner.options : inner)\n )\n .filter((option: any) =>\n (isMulti\n ? value.includes(option.value)\n : equals(value, option.value))\n ) 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={ isNil(value) || !isClearable }\n onClick={ () => {\n onChange(undefined)\n onChangeCallback(undefined, { action: 'clear', removedValues: value })\n } }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n\nexport const SelectField = forwardRef(BaseSelectField)\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, { forwardRef } 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 * Tip:\n * * For `labelPlacement` you can use `\"left\" | \"right\"`\n * * For `labelSize` you can use `\"2xs\" | \"xs\" | \"md\" | \"lg\"` or leave it blank\n * (?\n * <Form initialValues={{name: ''}}>\n * <SwitchField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPlacement=\"right\"\n * labelSize=\"md\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const SwitchField = forwardRef<HTMLDivElement, SwitchFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPlacement = 'right',\n labelSize = 'md',\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' } display=\"inline-flex\">\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <Flex\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={ 2 }\n direction={ labelPlacement === '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 htmlFor={ name } sx={ { fontWeight: 'normal' } } size={ labelSize }>{ label }</Label>\n </Flex>\n ) }\n </Field>\n </Box>\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, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { TextareaFieldProps } from './types'\nimport { Field } from '../form'\nimport { Textarea } from './textarea'\n\nexport const TextareaField = forwardRef<HTMLDivElement, TextareaFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n direction,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n ref={ ref }\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","export const roundToPrecision = (\n value: number,\n numberOfDecimals: number\n): number => parseFloat(value.toFixed(numberOfDecimals))\n","import React, { ComponentType, useEffect } from 'react'\nimport { defaultTo, identity, isEmpty, isNil } from 'ramda'\nimport {\n InputAttributes,\n NumberFormatValues,\n NumericFormat,\n SourceInfo,\n numericFormatter,\n} from 'react-number-format'\nimport { InputGroupWrapper } from '../../internal-components'\nimport { Input } from '../input'\nimport {\n FormattedNumberInputPreset,\n FormattedNumberInputProps,\n PresetOptions,\n} from './types'\nimport { roundToPrecision } from './round-to-precision'\n\nconst presetMap: Record<FormattedNumberInputPreset, PresetOptions> = {\n eu: {\n thousandSeparator: ' ',\n decimalSeparator: ',',\n },\n us: {\n thousandSeparator: ',',\n decimalSeparator: '.',\n },\n nor: {\n thousandSeparator: '.',\n decimalSeparator: ',',\n },\n}\n\n/**\n * @see {@link https://northlight.dev/reference/formatted-number-input-field}\n @example (Example)\n * The formatted number input is built uppon react-number-format\n * It formats numbers by adjusting thousand and decimal separators\n * ex : 22345351.34234 => 222 453 51,34234\n * It comes with three presets: eu, us and nor.\n * These have the following separators:\n (?\n <FormattedNumberInput\n preset=\"us\"\n onChange={(values) => console.log(values.floatValue)}\n isPercentage={true}\n max={1E9}\n min={0}\n />\n ?)\n\n @example (Example)\n ### Nor preset\n (?\n <FormattedNumberInput\n preset=\"nor\"\n onChange={(values) => console.log(values.floatValue)}\n value={320341345102.34134}\n numberOfDecimals={5}\n />\n ?)\n\n @example (Example)\n ### Eu preset\n (?\n <FormattedNumberInput\n preset=\"eu\"\n onChange={(values) => console.log(values.floatValue)}\n value={320341345102.34134}\n numberOfDecimals={5}\n />\n ?)\n\n */\nexport const FormattedNumberInput = ({\n preset = 'eu',\n isPercentage = false,\n onChange = identity,\n value: valueProp,\n numberOfDecimals,\n max = Infinity,\n min = -Infinity,\n inputLeftElement,\n inputRightElement,\n onBlur,\n ...rest\n}: FormattedNumberInputProps) => {\n const props = presetMap[preset]\n\n const value = valueProp ?? ''\n\n const defaultNumberOfDecimals = defaultTo(2, numberOfDecimals)\n\n const getNumberFormatValues = (number: number) => ({\n floatValue: number,\n formattedValue: numericFormatter(number.toString(), props),\n value: number.toString(),\n })\n\n const validateRange = () => {\n if (isNil(value) || isEmpty(value)) return\n\n const vNum = typeof value === 'string' ? parseFloat(value) : value\n\n if (isNil(numberOfDecimals) && !isPercentage) {\n onChange(getNumberFormatValues(vNum))\n return\n }\n\n const factor = isPercentage ? 100 : 1\n if (vNum * factor > max) {\n const newValue = roundToPrecision(max / factor, defaultNumberOfDecimals)\n onChange(getNumberFormatValues(newValue))\n }\n if (vNum * factor < min) {\n const newValue = roundToPrecision(min / factor, defaultNumberOfDecimals)\n onChange(getNumberFormatValues(newValue))\n }\n }\n\n const onValueChangeHandler = (\n values: NumberFormatValues,\n sourceInfo: SourceInfo\n ) => {\n const newFloatValue =\n values.floatValue && isPercentage\n ? roundToPrecision(values.floatValue / 100, defaultNumberOfDecimals)\n : values.floatValue\n onChange(\n {\n ...values,\n floatValue: newFloatValue,\n },\n sourceInfo\n )\n }\n\n useEffect(() => {\n validateRange()\n }, [ value ])\n\n return (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <NumericFormat\n allowLeadingZeros={ true }\n customInput={ Input as ComponentType<InputAttributes> }\n onBlur={ (e) => {\n onBlur?.(e)\n validateRange()\n } }\n onValueChange={ onValueChangeHandler }\n decimalScale={ numberOfDecimals }\n value={\n isPercentage\n ? roundToPrecision(parseFloat(`${value ?? 0}`) * 100, defaultNumberOfDecimals)\n : value\n }\n suffix={ isPercentage ? '%' : '' }\n { ...props }\n { ...rest }\n />\n </InputGroupWrapper>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { FormattedNumberInputFieldProps } from './types'\nimport { Field } from '../form'\nimport { FormattedNumberInput } from './formatted-number-input'\n\n/**\n * The formatted number input component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FormattedNumberInput\n * @see {@link https://northlight.dev/reference/formatted-number-input-field}\n * @example (Example)\n * (?\n * <Form initialValues={{money: ''}}>\n * <FormattedNumberInputField\n * name=\"money\"\n * label=\"How much money is currently on your account\"\n * labelPosition=\"left\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const FormattedNumberInputField =\nforwardRef<HTMLDivElement, FormattedNumberInputFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <FormattedNumberInput\n name={ name }\n onChange={ (values, sourceInfo) => {\n onChange(values.floatValue)\n onChangeCallback(values, sourceInfo)\n } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n))\n","import React, { forwardRef } from 'react'\nimport { identity, isNil } 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 = forwardRef<HTMLDivElement, TextFieldProps>(({\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}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={\n isNil(validate) && isRequired\n ? { validate: (value: string) => !!value.trim() }\n : validate\n }\n direction={ direction }\n ref={ ref }\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 React, { forwardRef, 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 = forwardRef<HTMLDivElement, ClipboardInputProps>(({\n size = 'md',\n value,\n 'aria-label': ariaLabel,\n ...rest\n}, ref) => {\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\" ref={ ref }>\n <Input\n textOverflow=\"ellipsis\"\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 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","/* eslint-disable no-restricted-syntax */\nimport { cleanup, render, screen, within } from '@testing-library/react'\nimport userEventImport from '@testing-library/user-event'\nimport { createElement } from 'react'\nimport { MediatoolThemeProvider, theme } from '../../lib'\nimport type { ComponentScenarios, PlayContext } from './types.ts'\n\n// Handle ESM/CJS interop for tsx/Node.js environments\nconst userEvent = ((userEventImport as any).default ?? userEventImport) as typeof userEventImport\n\ndeclare const describe: (name: string, fn: () => void) => void\ntype TimeoutSetter = { timeout: (ms: number) => void }\ndeclare const it: ((name: string, fn: () => void | Promise<void>) => TimeoutSetter)\n\nif (typeof window !== 'undefined' && !window.matchMedia) {\n window.matchMedia = (query: string) => ({\n matches: false,\n media: query,\n onchange: null,\n addListener: () => {},\n removeListener: () => {},\n addEventListener: () => {},\n removeEventListener: () => {},\n dispatchEvent: () => false,\n })\n}\n\nconst CI_TIMEOUT_SAFETY_NET = 30_000\n\nfunction runScenarios (allScenarios: ComponentScenarios[]): void {\n for (const componentScenarios of allScenarios) {\n const { name: componentName, component: defaultComponent, scenarios } = componentScenarios\n\n describe(componentName, () => {\n for (const scenario of scenarios) {\n const { name: scenarioName, props, component: scenarioComponent, play } = scenario\n const component = scenarioComponent ?? defaultComponent\n\n it(scenarioName, async () => {\n const user = userEvent.setup()\n const { container } = render(\n createElement(\n MediatoolThemeProvider,\n // @ts-expect-error children passed as 3rd arg to satisfy react/no-children-prop\n { theme },\n createElement(component, props as Record<string, unknown>)\n )\n )\n\n if (play) {\n const context: PlayContext = {\n screen: within(container),\n documentScreen: screen,\n user,\n container,\n }\n await play(context)\n }\n\n cleanup()\n }).timeout(CI_TIMEOUT_SAFETY_NET)\n }\n })\n }\n}\n\nexport { runScenarios }\n","import { Component, type ComponentType, type ReactNode, createElement } from 'react'\n\ntype ErrorBoundaryProps = {\n children: ReactNode\n fallback: ComponentType<{ error: Error }>\n}\n\ntype ErrorBoundaryState = {\n error: Error | null\n}\n\nclass ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor (props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: null }\n }\n\n static getDerivedStateFromError (error: Error): ErrorBoundaryState {\n return { error }\n }\n\n render () {\n const { error } = this.state\n const { children, fallback } = this.props\n\n if (error) {\n return createElement(fallback, { error })\n }\n\n return children\n }\n}\n\nexport { ErrorBoundary }\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { screen, within } from '@testing-library/react'\nimport userEvent from '@testing-library/user-event'\nimport { type ComponentType, createElement, useEffect, useRef, useState } from 'react'\nimport { MediatoolThemeProvider, theme } from '../../../lib'\nimport type { ComponentScenarios, PlayContext, Scenario } from '../types'\nimport { ErrorBoundary } from './error-boundary'\nimport './sandbox-viewer.css'\n\nfunction RenderErrorFallback ({ error }: { error: Error }) {\n return (\n <div className=\"sandbox-error\">\n <div className=\"sandbox-error-title\">Render Error</div>\n <pre className=\"sandbox-error-message\">{ error.message }</pre>\n <pre className=\"sandbox-error-stack\">{ error.stack }</pre>\n </div>\n )\n}\n\ntype PlayError = {\n scenarioName: string\n error: Error\n}\n\ntype ViewState =\n | { type: 'grid' }\n | { type: 'detail', componentSlug: string }\n\ntype Selection = {\n componentSlug: string\n scenarioSlug: string\n}\n\ntype SandboxViewerProps = {\n scenarios: ComponentScenarios[]\n /** Custom title for the landing page */\n title?: string\n /** Custom description for the landing page */\n description?: string\n /** Whether to show the hero section (default: true) */\n showHero?: boolean\n}\n\nfunction toSlug (name: string): string {\n return name.toLowerCase().replace(/\\s+/g, '-')\n}\n\nfunction parsePath (): Selection | null {\n const path = window.location.pathname\n const parts = path.split('/').filter(Boolean)\n if (parts.length === 0) return null\n return {\n componentSlug: parts[0],\n scenarioSlug: parts[1] ?? '',\n }\n}\n\nfunction toPath (componentSlug: string, scenarioSlug: string): string {\n return `/${componentSlug}/${scenarioSlug}`\n}\n\nfunction CodeIcon () {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m18 16 4-4-4-4\" />\n <path d=\"m6 8-4 4 4 4\" />\n <path d=\"m14.5 4-5 16\" />\n </svg>\n )\n}\n\nfunction EyeIcon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n )\n}\n\nfunction Code2Icon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m18 16 4-4-4-4\" />\n <path d=\"m6 8-4 4 4 4\" />\n </svg>\n )\n}\n\nfunction CopyIcon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </svg>\n )\n}\n\nfunction CheckIcon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n )\n}\n\nfunction PlayIcon () {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <polygon points=\"5 3 19 12 5 21 5 3\" />\n </svg>\n )\n}\n\nfunction ArrowLeftIcon () {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m12 19-7-7 7-7\" />\n <path d=\"M19 12H5\" />\n </svg>\n )\n}\n\nfunction ExternalLinkIcon () {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" />\n <polyline points=\"15 3 21 3 21 9\" />\n <line x1=\"10\" x2=\"21\" y1=\"14\" y2=\"3\" />\n </svg>\n )\n}\n\ntype SidebarProps = {\n scenarios: ComponentScenarios[]\n search: string\n onSearchChange: (value: string) => void\n selectedComponent: ComponentScenarios | null\n onSelectComponent: (component: ComponentScenarios) => void\n}\n\nfunction Sidebar ({\n scenarios,\n search,\n onSearchChange,\n selectedComponent,\n onSelectComponent,\n}: SidebarProps): JSX.Element {\n const filteredScenarios = search\n ? scenarios.filter((c) => {\n const searchTerms = search.toLowerCase().split(/\\s+/).filter(Boolean)\n const nameWords = c.name.toLowerCase().split(/\\s+/)\n return searchTerms.every((term) =>\n nameWords.some((word) => word.startsWith(term))\n )\n })\n : scenarios\n\n return (\n <nav className=\"sandbox-sidebar\">\n <div className=\"sandbox-logo\">\n <div className=\"sandbox-logo-icon\">\n <CodeIcon />\n </div>\n <span className=\"sandbox-logo-text\">Sandbox</span>\n </div>\n\n <div className=\"sandbox-sidebar-search\">\n <input\n type=\"text\"\n className=\"sandbox-sidebar-search-input\"\n placeholder=\"Search components...\"\n value={ search }\n onChange={ (e) => onSearchChange(e.target.value) }\n />\n </div>\n\n <div className=\"sandbox-nav\">\n <div className=\"sandbox-nav-section\">\n <div className=\"sandbox-nav-title\">Components</div>\n { filteredScenarios.map((component) => (\n <button\n type=\"button\"\n key={ component.name }\n className={ `sandbox-nav-item ${selectedComponent?.name === component.name ? 'selected' : ''}` }\n onClick={ () => onSelectComponent(component) }\n >\n <span className=\"sandbox-nav-item-icon\">{ '{ }' }</span>\n { component.name }\n </button>\n )) }\n </div>\n </div>\n </nav>\n )\n}\n\ntype HeroProps = {\n title: string\n description: string\n}\n\nfunction Hero ({ title, description }: HeroProps) {\n return (\n <div className=\"sandbox-hero\">\n <h1 className=\"sandbox-hero-title\">{ title }</h1>\n <p className=\"sandbox-hero-description\">{ description }</p>\n </div>\n )\n}\n\ntype ComponentCardProps = {\n component: ComponentScenarios\n onSelect: () => void\n}\n\nfunction ComponentCard ({ component, onSelect }: ComponentCardProps) {\n const firstScenario = component.scenarios[0]\n const scenarioCount = component.scenarios.length\n\n return (\n <div className=\"sandbox-card\" onClick={ onSelect } onKeyDown={ onSelect } role=\"button\" tabIndex={ 0 }>\n <div className=\"sandbox-card-preview\">\n { firstScenario && (\n <ErrorBoundary fallback={ RenderErrorFallback }>\n { createElement(\n firstScenario.component ?? component.component,\n firstScenario.props as Record<string, unknown>\n ) }\n </ErrorBoundary>\n ) }\n <div className=\"sandbox-card-actions\">\n <button type=\"button\" className=\"sandbox-card-btn sandbox-card-btn-primary\" onClick={ onSelect }>\n <ExternalLinkIcon />\n Open\n </button>\n </div>\n </div>\n <div className=\"sandbox-card-info\">\n <h3 className=\"sandbox-card-title\">{ component.name }</h3>\n <p className=\"sandbox-card-description\">\n { scenarioCount } { scenarioCount === 1 ? 'scenario' : 'scenarios' }\n </p>\n </div>\n </div>\n )\n}\n\ntype GridViewProps = {\n scenarios: ComponentScenarios[]\n search: string\n onSelectComponent: (component: ComponentScenarios) => void\n title: string\n description: string\n showHero: boolean\n}\n\nfunction GridView\n({ scenarios, search, onSelectComponent, title, description, showHero }: GridViewProps) {\n const filteredScenarios = search\n ? scenarios.filter((c) => {\n const searchTerms = search.toLowerCase().split(/\\s+/).filter(Boolean)\n const nameWords = c.name.toLowerCase().split(/\\s+/)\n return searchTerms.every((term) =>\n nameWords.some((word) => word.startsWith(term))\n )\n })\n : scenarios\n\n return (\n <>\n { showHero && (\n <Hero\n title={ title }\n description={ description }\n />\n ) }\n <div className=\"sandbox-grid\">\n { filteredScenarios.map((component) => (\n <ComponentCard\n key={ component.name }\n component={ component }\n onSelect={ () => onSelectComponent(component) }\n />\n )) }\n </div>\n </>\n )\n}\n\ntype ScenarioCardProps = {\n scenario: Scenario<unknown>\n component: ComponentType<unknown>\n playingScenario: string | null\n playError: PlayError | null\n playKeys: Record<string, number>\n onPlay: (\n scenario: { name: string, play?: (context: PlayContext) => Promise<void> },\n getContainer: () => HTMLElement | null\n ) => void\n}\n\nfunction ScenarioCard ({\n scenario,\n component,\n playingScenario,\n playError,\n playKeys,\n onPlay,\n}: ScenarioCardProps) {\n const [ viewMode, setViewMode ] = useState<'preview' | 'code'>('preview')\n const [ copied, setCopied ] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n const isPlaying = playingScenario === scenario.name\n const hasError = playError?.scenarioName === scenario.name\n\n const getCodeDisplay = () => {\n if (scenario.code) {\n return scenario.code\n }\n const componentName = component.displayName || component.name || 'Component'\n return `<${componentName} {...props} />`\n }\n\n const handleCopy = () => {\n navigator.clipboard.writeText(getCodeDisplay())\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n\n return (\n <div className=\"sandbox-scenario-card\">\n <div className=\"sandbox-scenario-header\">\n <div className=\"sandbox-scenario-info\">\n <h3>{ scenario.name }</h3>\n </div>\n <div className=\"sandbox-scenario-actions\">\n { scenario.code && (\n <button\n type=\"button\"\n className={ `sandbox-scenario-btn sandbox-scenario-btn-toggle ${viewMode === 'code' ? 'active' : ''}` }\n onClick={ () => setViewMode(viewMode === 'code' ? 'preview' : 'code') }\n >\n { viewMode === 'code' ? (\n <>\n <EyeIcon />\n Preview\n </>\n ) : (\n <>\n <Code2Icon />\n Code\n </>\n ) }\n </button>\n ) }\n { scenario.code && (\n <button\n type=\"button\"\n className=\"sandbox-scenario-btn sandbox-scenario-btn-copy\"\n onClick={ handleCopy }\n >\n { copied ? (\n <>\n <CheckIcon />\n Copied\n </>\n ) : (\n <>\n <CopyIcon />\n Copy\n </>\n ) }\n </button>\n ) }\n { scenario.play && (\n <button\n type=\"button\"\n className={ `sandbox-scenario-btn sandbox-scenario-btn-play ${hasError ? 'error' : ''}` }\n onClick={ () => onPlay(scenario, () => containerRef.current) }\n disabled={ isPlaying }\n >\n <PlayIcon />\n { isPlaying ? 'Playing...' : hasError ? 'Retry' : 'Play' }\n </button>\n ) }\n </div>\n </div>\n <div className=\"sandbox-scenario-content\">\n { viewMode === 'code' && scenario.code ? (\n <div className=\"sandbox-scenario-code\">\n <pre>{ scenario.code }</pre>\n </div>\n ) : (\n <div className=\"sandbox-scenario-preview\" ref={ containerRef }>\n <ErrorBoundary fallback={ RenderErrorFallback }>\n <div key={ `${scenario.name}-${playKeys[scenario.name] ?? 0}` }>\n { createElement(\n scenario.component ?? component,\n scenario.props as Record<string, unknown>\n ) }\n </div>\n </ErrorBoundary>\n </div>\n ) }\n { hasError && playError && (\n <div className=\"sandbox-play-error\">\n <div className=\"sandbox-play-error-title\">Play Error</div>\n <pre className=\"sandbox-play-error-message\">{ playError.error.message }</pre>\n </div>\n ) }\n </div>\n </div>\n )\n}\n\ntype DetailViewProps = {\n component: ComponentScenarios\n onBack: () => void\n playingScenario: string | null\n playError: PlayError | null\n playKeys: Record<string, number>\n onPlay: (\n scenario: { name: string, play?: (context: PlayContext) => Promise<void> },\n getContainer: () => HTMLElement | null\n ) => void\n}\n\nfunction DetailView ({\n component,\n onBack,\n playingScenario,\n playError,\n playKeys,\n onPlay,\n}: DetailViewProps) {\n const scenarioCount = component.scenarios.length\n\n return (\n <div className=\"sandbox-detail\">\n <button type=\"button\" className=\"sandbox-detail-back\" onClick={ onBack }>\n <ArrowLeftIcon />\n Back to components\n </button>\n\n <div className=\"sandbox-detail-header\">\n <div>\n <div className=\"sandbox-detail-title-row\">\n <h1 className=\"sandbox-detail-title\">{ component.name }</h1>\n <span className=\"sandbox-detail-badge\">\n { scenarioCount } { scenarioCount === 1 ? 'scenario' : 'scenarios' }\n </span>\n </div>\n <p className=\"sandbox-detail-description\">\n Component scenarios with interactive preview and code view.\n </p>\n </div>\n </div>\n\n <div className=\"sandbox-scenarios\">\n { component.scenarios.map((scenario) => (\n <ScenarioCard\n key={ scenario.name }\n scenario={ scenario }\n component={ component.component }\n playingScenario={ playingScenario }\n playError={ playError }\n playKeys={ playKeys }\n onPlay={ onPlay }\n />\n )) }\n </div>\n </div>\n )\n}\n\ntype TabbedDetailViewProps = {\n component: ComponentScenarios\n onBack: () => void\n playingScenario: string | null\n playError: PlayError | null\n playKeys: Record<string, number>\n onPlay: (\n scenario: { name: string, play?: (context: PlayContext) => Promise<void> },\n getContainer: () => HTMLElement | null\n ) => void\n}\n\nfunction TabbedDetailView ({\n component,\n onBack,\n playingScenario,\n playError,\n playKeys,\n onPlay,\n}: TabbedDetailViewProps) {\n const [ activeTab, setActiveTab ] = useState(0)\n const [ viewMode, setViewMode ] = useState<'preview' | 'code'>('preview')\n const [ copied, setCopied ] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n const activeScenario = component.scenarios[activeTab]\n const scenarioCount = component.scenarios.length\n const isPlaying = playingScenario === activeScenario?.name\n const hasError = playError?.scenarioName === activeScenario?.name\n\n const handleCopy = () => {\n if (activeScenario?.code) {\n navigator.clipboard.writeText(activeScenario.code)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n }\n\n return (\n <div className=\"sandbox-detail-tabbed\">\n <button type=\"button\" className=\"sandbox-detail-back\" onClick={ onBack }>\n <ArrowLeftIcon />\n Back to components\n </button>\n\n <div className=\"sandbox-detail-header\">\n <div>\n <div className=\"sandbox-detail-title-row\">\n <h1 className=\"sandbox-detail-title\">{ component.name }</h1>\n <span className=\"sandbox-badge-advanced\">Advanced</span>\n </div>\n <p className=\"sandbox-detail-description\">\n Component scenarios with interactive preview and code view.\n </p>\n </div>\n </div>\n\n <div className=\"sandbox-tabbed-card\">\n { /* Tabs Bar */ }\n <div className=\"sandbox-tabs-bar\">\n <div className=\"sandbox-tabs-list\">\n { component.scenarios.map((scenario, index) => (\n <button\n type=\"button\"\n key={ scenario.name }\n className={ `sandbox-tab-item ${activeTab === index ? 'active' : ''}` }\n onClick={ () => setActiveTab(index) }\n >\n { scenario.name }\n </button>\n )) }\n </div>\n\n <div className=\"sandbox-tabs-actions\">\n { activeScenario?.code && (\n <button\n type=\"button\"\n className={ `sandbox-scenario-btn sandbox-scenario-btn-toggle ${viewMode === 'code' ? 'active' : ''}` }\n onClick={ () => setViewMode(viewMode === 'code' ? 'preview' : 'code') }\n >\n { viewMode === 'code' ? (\n <>\n <EyeIcon />\n Preview\n </>\n ) : (\n <>\n <Code2Icon />\n Code\n </>\n ) }\n </button>\n ) }\n { activeScenario?.code && (\n <button\n type=\"button\"\n className=\"sandbox-scenario-btn sandbox-scenario-btn-copy\"\n onClick={ handleCopy }\n >\n { copied ? (\n <>\n <CheckIcon />\n Copied\n </>\n ) : (\n <>\n <CopyIcon />\n Copy\n </>\n ) }\n </button>\n ) }\n { activeScenario?.play && (\n <button\n type=\"button\"\n className={ `sandbox-scenario-btn sandbox-scenario-btn-play ${hasError ? 'error' : ''}` }\n onClick={ () => onPlay(activeScenario, () => containerRef.current) }\n disabled={ isPlaying }\n >\n <PlayIcon />\n { isPlaying ? 'Playing...' : hasError ? 'Retry' : 'Play' }\n </button>\n ) }\n </div>\n </div>\n\n { /* Content */ }\n <div className=\"sandbox-tab-content\">\n { viewMode === 'code' && activeScenario?.code ? (\n <div className=\"sandbox-tab-code\">\n <pre>{ activeScenario.code }</pre>\n </div>\n ) : (\n <div className=\"sandbox-tab-preview\" ref={ containerRef }>\n { activeScenario && (\n <ErrorBoundary fallback={ RenderErrorFallback }>\n <div key={ `${activeScenario.name}-${playKeys[activeScenario.name] ?? 0}` }>\n { createElement(\n activeScenario.component ?? component.component,\n activeScenario.props as Record<string, unknown>\n ) }\n </div>\n </ErrorBoundary>\n ) }\n </div>\n ) }\n { hasError && playError && (\n <div className=\"sandbox-play-error\">\n <div className=\"sandbox-play-error-title\">Play Error</div>\n <pre className=\"sandbox-play-error-message\">{ playError.error.message }</pre>\n </div>\n ) }\n </div>\n </div>\n\n { /* Navigation Dots */ }\n { scenarioCount > 1 && (\n <div className=\"sandbox-nav-dots\">\n { component.scenarios.map((scenario, index) => (\n <button\n type=\"button\"\n key={ scenario.name }\n className={ `sandbox-nav-dot ${activeTab === index ? 'active' : 'inactive'}` }\n onClick={ () => setActiveTab(index) }\n aria-label={ `Go to scenario ${index + 1}` }\n />\n )) }\n </div>\n ) }\n </div>\n )\n}\n\nfunction SandboxViewerContent ({\n scenarios,\n title = 'Northlight Component Library',\n description = 'Northligt component library sandbox for testing and development.',\n showHero = true,\n}: SandboxViewerProps) {\n const [ view, setView ] = useState<ViewState>({ type: 'grid' })\n const [ selectedComponent, setSelectedComponent ] = useState<ComponentScenarios | null>(null)\n const [ search, setSearch ] = useState('')\n const [ playingScenario, setPlayingScenario ] = useState<string | null>(null)\n const [ playError, setPlayError ] = useState<PlayError | null>(null)\n const [ playKeys, setPlayKeys ] = useState<Record<string, number>>({})\n\n useEffect(() => {\n const selection = parsePath()\n if (selection) {\n const component = scenarios.find((c) => toSlug(c.name) === selection.componentSlug)\n if (component) {\n setSelectedComponent(component)\n setView({ type: 'detail', componentSlug: selection.componentSlug })\n }\n }\n }, [ scenarios ])\n\n useEffect(() => {\n const handlePopState = () => {\n const selection = parsePath()\n if (selection) {\n const component = scenarios.find((c) => toSlug(c.name) === selection.componentSlug)\n if (component) {\n setSelectedComponent(component)\n setView({ type: 'detail', componentSlug: selection.componentSlug })\n return\n }\n }\n setSelectedComponent(null)\n setView({ type: 'grid' })\n }\n window.addEventListener('popstate', handlePopState)\n return () => window.removeEventListener('popstate', handlePopState)\n }, [ scenarios ])\n\n const handleSelectComponent = (component: ComponentScenarios) => {\n const componentSlug = toSlug(component.name)\n const firstScenario = component.scenarios[0]\n const scenarioSlug = firstScenario ? toSlug(firstScenario.name) : ''\n window.history.pushState(null, '', toPath(componentSlug, scenarioSlug))\n setSelectedComponent(component)\n setView({ type: 'detail', componentSlug })\n setPlayError(null)\n }\n\n const handleBack = () => {\n window.history.pushState(null, '', '/')\n setSelectedComponent(null)\n setView({ type: 'grid' })\n setPlayError(null)\n }\n\n const handlePlay = async (\n scenario: { name: string, play?: (context: PlayContext) => Promise<void> },\n getContainer: () => HTMLElement | null\n ) => {\n if (!scenario.play) return\n\n setPlayError(null)\n setPlayKeys((keys) => ({ ...keys, [scenario.name]: (keys[scenario.name] ?? 0) + 1 }))\n\n await new Promise((resolve) => {\n setTimeout(resolve, 50)\n })\n\n setPlayingScenario(scenario.name)\n\n const container = getContainer()\n if (!container) return\n\n const user = userEvent.setup()\n const context: PlayContext = {\n screen: within(container),\n documentScreen: screen,\n user,\n container,\n }\n\n try {\n await scenario.play(context)\n } catch (err) {\n setPlayError({\n scenarioName: scenario.name,\n error: err instanceof Error ? err : new Error(String(err)),\n })\n }\n\n setPlayingScenario(null)\n }\n\n const isInline = selectedComponent?.inline ?? false\n\n return (\n <div className=\"sandbox-viewer\">\n <Sidebar\n scenarios={ scenarios }\n search={ search }\n onSearchChange={ setSearch }\n selectedComponent={ selectedComponent }\n onSelectComponent={ handleSelectComponent }\n />\n\n <div className=\"sandbox-content\">\n <main className=\"sandbox-main\">\n { view.type === 'grid' && (\n <GridView\n scenarios={ scenarios }\n search={ search }\n onSelectComponent={ handleSelectComponent }\n title={ title }\n description={ description }\n showHero={ showHero }\n />\n ) }\n\n { view.type === 'detail' && selectedComponent && (\n !isInline ? (\n <TabbedDetailView\n component={ selectedComponent }\n onBack={ handleBack }\n playingScenario={ playingScenario }\n playError={ playError }\n playKeys={ playKeys }\n onPlay={ handlePlay }\n />\n ) : (\n <DetailView\n component={ selectedComponent }\n onBack={ handleBack }\n playingScenario={ playingScenario }\n playError={ playError }\n playKeys={ playKeys }\n onPlay={ handlePlay }\n />\n )\n ) }\n </main>\n </div>\n </div>\n )\n}\n\nfunction SandboxViewer ({ scenarios, title, description, showHero }: SandboxViewerProps) {\n return (\n <MediatoolThemeProvider theme={ theme }>\n <SandboxViewerContent\n scenarios={ scenarios }\n title={ title }\n description={ description }\n showHero={ showHero }\n />\n </MediatoolThemeProvider>\n )\n}\n\nexport { SandboxViewer, toSlug }\n"],"names":["useFocusManager","useRef","isNil","last","map","prop","difference","useToken","palette","replace","split","path","createContext","useContext","keys","omit","__spreadProps","__spreadValues","Button","keyframes","Blinker","Checkbox","Select","Textarea","Switch","Tag","NumberInput","Calendar","merge","DatePicker","Spinner","randomColor","Modal","cssVar","Tooltip","Icon","Small","P","Label","EditableText","isEmpty","Table","mode","Popover","WebappSystemTokensSet","WebappComponentsTokensSet","typography","TottSystemTokensSet","TottComponentsTokensSet","CamphouseLightSystemTokensSet","CamphouseLightComponentsTokensSet","coreZIndex","coreSizing","coreSpacing","coreFontWeight","coreBoxShadow","coreFontSize","coreLineHeight","coreBorderRadius","extendTheme","forwardRef","__objRest","jsx","ChakraIcon","useStyleConfig","Heading","ChakraText","FormLabel","VisuallyHidden","ifElse","gt","always","identity","NorthlightIcons","MediatoolLogoSolid","ChakraBadge","jsxs","Flex","Box","ChakraSpinner","ChakraButton","ChakraCheckbox","is","values","forEach","trim","joiResolver","useForm","useImperativeHandle","useEffect","equals","FormProvider","useFormContext","FormControl","Stack","Controller","FormErrorMessage","CheckboxGroup","_a","cloneElement","ChakraIconButton","useMultiStyleConfig","CheckDuo","ChakraPopover","useCheckboxGroupState","useRadioGroupState","useCheckboxGroup","useRadioGroup","useCheckboxGroupItem","useRadio","useFocusRing","mergeProps","HStack","mergeAll","CheckSolid","SlideFade","Text","Children","isValidElement","CalendarDuo","useDateSegment","toLower","useDateFieldState","createCalendar","useDateField","find","ChakraTable","date","useCalendarCell","today","isSameMonth","chakra","memo","useCalendarGrid","getWeeksInMonth","Thead","Tr","Tbody","times","useButton","useDateFormatter","useLocale","useCalendar","useMemo","ChevronLeftSolid","ChevronRightSolid","useCalendarState","GregorianCalendar","I18nProvider","useDatePickerState","useDatePicker","parseDate","useOutsideClick","PopoverAnchor","InputGroup","InputRightElement","XCloseSolid","PopoverContent","FocusScope","clickable","useClickable","Fragment","Link","ReactRouterLink","startOfWeek","endOfWeek","startOfMonth","endOfMonth","startOfYear","endOfYear","any","Spacer","has","CheckCircleSolid","AlertTriangleSolid","AlertCircleSolid","AlertOctagonSolid","InfoSolid","BrightnessSolid","HelpCircleSolid","VStack","ChakraTooltip","Portal","useDateRangePickerState","useDateRangePicker","not","all","ChakraRadioGroup","chakraComponents","SearchDuo","useState","filter","test","AsyncSelect","ChakraTag","TagLabel","TagRightIcon","DotsMatrixSolid","VariableSizeList","VariableSizeGrid","useEditableControls","useEditableState","EditDuo","Editable","InputLeftElement","Input","EditablePreview","ChakraEditableInput","ChakraModal","ModalOverlay","ModalContent","ModalCloseButton","ChakraModalBody","ModalHeader","Slider","SliderTrack","SliderFilledTrack","SliderThumb","ZoomInDuo","ModalFooter","ChakraProgress","theme","webappTheme","ChakraProvider","ChakraNumberInputStepper","Center","Divider","NumberIncrementStepper","ChevronUpSolid","NumberDecrementStepper","ChevronDownSolid","head","match","length","defaultTo","ChakraNumberInput","NumberInputField","propEq","ChakraReactSelect","ChakraSwitch","ChakraTextarea","numericFormatter","NumericFormat","useClipboard","CopyDuo","render","createElement","within","screen","cleanup","Component","userEvent"],"mappings":"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","x_google_ignoreList":[183]}