@northlight/ui 1.5.1 → 1.5.2

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 +0,0 @@
1
- {"version":3,"file":"sandbox.mjs","sources":["../../sandbox/app/components/lazy-page.tsx","../../sandbox/app/routing.tsx","../../lib/components/icon/icon.tsx","../../lib/utils/luminosity/index.ts","../../lib/utils/get-contrast-color/index.ts","../../lib/utils/ring/index.ts","../../lib/utils/get-shades/index.ts","../../lib/utils/debounce/create-debounce-function-instance.ts","../../lib/utils/use-current-theme/index.ts","../../lib/components/typography/body/p.tsx","../../lib/components/typography/stylized/capitalized.tsx","../../lib/components/typography/labels/label.tsx","../../lib/components/overflow-group/overflow-group.tsx","../../lib/components/blinker/blinker.tsx","../../lib/components/button/button.tsx","../../lib/components/form/trim-form-values.ts","../../lib/components/form/form.tsx","../../lib/components/form-control/form-label.tsx","../../lib/hooks/use-arrow-focus/index.ts","../../lib/hooks/use-select-callbacks/use-select-callbacks.ts","../../lib/components/icon-button/icon-button.tsx","../../lib/components/color-picker/constants.ts","../../lib/components/color-picker/color-button.tsx","../../lib/components/flip-button/utils.ts","../../lib/components/date-picker/components/date-field/styled-field.tsx","../../lib/components/date-picker/components/calendar/components/calendar-cell.tsx","../../lib/components/date-picker/components/calendar/components/day-labels.tsx","../../lib/components/date-picker/components/calendar/components/calendar-grid.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/quick-select.tsx","../../lib/components/search-bar/styles.ts","../../lib/components/search-bar/get-components.tsx","../../lib/components/search-bar/search-bar.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.tsx","../../lib/components/file-picker/file-editor-modal.tsx","../../lib/theme/global/scrollbar.ts","../../lib/theme/components/breadcrumb/index.ts","../../lib/theme/components/button/index.ts","../../lib/theme/components/blinker/index.ts","../../lib/theme/components/checkbox/index.ts","../../lib/theme/components/input/index.ts","../../lib/theme/components/pin-input/index.ts","../../lib/theme/components/select/index.ts","../../lib/theme/components/radio/index.ts","../../lib/theme/components/tabs/index.ts","../../lib/theme/components/textarea/index.ts","../../lib/theme/components/link/index.ts","../../lib/theme/components/switch/index.ts","../../lib/theme/components/tag/index.ts","../../lib/theme/components/alert/index.ts","../../lib/theme/components/number-input/index.ts","../../lib/theme/components/notification-icon-button/index.ts","../../lib/theme/components/calendar/index.ts","../../lib/theme/components/drag-and-drop/index.ts","../../lib/theme/components/date-picker/index.ts","../../lib/theme/components/flip-button/index.ts","../../lib/theme/components/spinner/index.ts","../../lib/theme/components/avatar/get-avatar-bg-color.ts","../../lib/theme/components/avatar/index.ts","../../lib/theme/components/close-button/index.ts","../../lib/theme/components/modal/index.ts","../../lib/theme/components/tooltip/index.ts","../../lib/theme/components/icon/index.ts","../../lib/theme/components/clipboard-input/index.ts","../../lib/theme/components/color-picker/index.ts","../../lib/theme/components/steps/step/index.ts","../../lib/theme/components/steps/step-list/index.ts","../../lib/theme/components/typography/headings/h1.ts","../../lib/theme/components/typography/headings/h2.ts","../../lib/theme/components/typography/headings/h3.ts","../../lib/theme/components/typography/headings/h4.ts","../../lib/theme/components/typography/headings/h5.ts","../../lib/theme/components/typography/headings/h6.ts","../../lib/theme/components/typography/stylized/blockquote.ts","../../lib/theme/components/typography/stylized/tiny.ts","../../lib/theme/components/typography/stylized/capitalized.ts","../../lib/theme/components/typography/stylized/lead.ts","../../lib/theme/components/typography/stylized/small.ts","../../lib/theme/components/typography/body/p.ts","../../lib/theme/components/typography/labels/label.ts","../../lib/theme/components/split-pane/index.ts","../../lib/theme/components/carousel/index.ts","../../lib/theme/components/editable-text/index.ts","../../lib/theme/components/toolbox/index.ts","../../lib/theme/components/file-picker/index.ts","../../lib/theme/skins/webapp/index.ts","../../lib/theme/skins/tott/index.ts","../../lib/theme/index.ts","../../lib/components/mediatool-theme-provider/mediatool-theme-provider.tsx","../../lib/components/notification-icon-button/notification-icon-button.tsx","../../lib/components/switch/switch.tsx","../../lib/components/split-pane/pane-divider.tsx","../../sandbox/app/components/main-menu.tsx","../../lib/internal-components/nav-side-link/nav-side-link.tsx","../../sandbox/app/components/sub-menu.tsx","../../sandbox/app/components/search-components-bar/styles.ts","../../sandbox/app/components/search-components-bar/component-page-link.tsx","../../sandbox/app/components/search-components-bar/search-components-bar.tsx","../../sandbox/app/context/user-context.tsx","../../sandbox/app/context/i18n-context.tsx","../../sandbox/app/context/calendar-provider.tsx","../../sandbox/app/custom-sandbox.tsx"],"sourcesContent":["import React, { ComponentType, ReactNode, Suspense, useMemo } from 'react'\nimport { RouteComponentProps } from 'react-router-dom'\nimport { DefaultComponent } from '../types'\n\nexport type LazyPageProps = {\n loader: () => Promise<DefaultComponent>\n children?: (\n component: ComponentType<any>,\n props: RouteComponentProps\n ) => ReactNode\n} & RouteComponentProps\n\nexport const LazyPage = ({ loader, children, ...rest }: LazyPageProps) => {\n const Component = useMemo(() => React.lazy(loader), [])\n\n return (\n <Suspense fallback={ <p>Loading....</p> }>\n { children\n ? children(Component, { ...rest })\n : <Component { ...rest } />\n }\n </Suspense>\n )\n}\n","import React from 'react'\nimport {\n Redirect,\n Route,\n Switch,\n} from 'react-router-dom'\nimport { LazyPage } from './components/lazy-page'\nimport { MainPage } from './types'\n\ninterface RoutingProps {\n routes: MainPage[]\n basename?: string\n fallback?: string\n}\n\nconst normalizePath = ({\n basename,\n path,\n}: { basename?: string, path: string }) => (basename\n ? `${basename}${path}`\n : path)\n\nexport const Routing = ({ routes, basename, fallback }: RoutingProps) => (\n <Switch>\n { routes.flatMap(({ path, component, subItems = [] }) => {\n const routePath = normalizePath({ basename, path })\n\n const mainRoute = (\n <Route\n key={ routePath }\n exact={ true }\n path={ routePath }\n render={ (props) => (\n <LazyPage\n { ...props }\n loader={ component }\n />\n ) }\n />\n )\n\n const subRoutes = subItems.map(({ path: subPath, component: subComponent, extraProps }) => {\n const fullPath = `${path}${subPath}`\n return (\n <Route\n key={ fullPath }\n path={ fullPath }\n render={ (props) => (\n <LazyPage\n { ...props }\n loader={ subComponent }\n { ...extraProps }\n />\n ) }\n />\n )\n })\n\n // Need to return the routes like this.\n // Using react fragments gives warnings.\n return [ mainRoute, ...subRoutes ]\n }) }\n { fallback && (\n <Redirect to={ fallback } />\n ) }\n </Switch>\n)\n","import React from 'react'\nimport {\n Icon as ChakraIcon,\n forwardRef,\n useStyleConfig,\n} from '@chakra-ui/react'\nimport { IconProps } from './types'\n\n/**\n * Pass down any icon from northlight/icons via as prop\n * @see IconButton\n * @see {@link https://northlight.dev/reference/icon}\n *\n * @example\n * (?\n * <Icon as={SmileyDuo} size=\"lg\" />\n * ?)\n */\nexport const Icon = forwardRef(({\n as: As,\n size,\n color,\n boxSize,\n ...rest\n}: IconProps, ref: any) => {\n const CustomIcon = As ?? (() => <ChakraIcon />)\n const styles = useStyleConfig('Icon', { size, color, boxSize })\n\n return (\n <ChakraIcon\n ref={ ref }\n sx={ styles }\n { ...rest }\n >\n <CustomIcon />\n </ChakraIcon>\n )\n})\n","export const luminosity = (hexcolor: string) => {\n let color = hexcolor\n\n if (color.slice(0, 1) === '#') {\n color = color.slice(1)\n }\n\n if (color.length === 3) {\n color = color\n .split('')\n .map((hex) => hex + hex)\n .join('')\n }\n\n const r = parseInt(color.substring(0, 2), 16)\n const g = parseInt(color.substring(2, 4), 16)\n const b = parseInt(color.substring(4, 6), 16)\n\n const brightness = (r * 299 + g * 587 + b * 114) / 1000\n return brightness\n}\n","import { useToken } from '@chakra-ui/system'\nimport { luminosity } from '../luminosity'\n\nexport const getContrastColor = (color: string) => {\n const colorTwo = useToken('colors', 'text.default')\n const colorOne = useToken('colors', 'text.inverted')\n const colorInHex = useToken('colors', color)\n\n const l1 = luminosity(colorOne)\n const l2 = luminosity(colorTwo)\n\n const threshold = (l1 + l2) / 2\n\n const brightColor = l1 > l2 ? colorOne : colorTwo\n const darkColor = l1 > l2 ? colorTwo : colorOne\n\n return luminosity(colorInHex) >= threshold ? darkColor : brightColor\n}\n","import { CSSObject } from '@emotion/react'\n\nexport const ring:CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n","import { 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","/** A debounce function to be used together with Async select in SearchBar.\n * The reason to why the usual debounce hook does not work is because we\n * don't control the loadOptions call ourselves.\n *\n * Important to note is that the timeout here needs to NOT be reinstantiated\n * every render, otherwise it defeats the purpose as a new timeout will be\n * created every time the component re-renders.\n*/\nexport const createDebounceFunctionInstance = (delay: number) => {\n let timeout: any\n\n return (fn: any) => (...args: any) => {\n clearTimeout(timeout)\n timeout = setTimeout(() => {\n fn(...args)\n }, delay)\n }\n}\n","import { createContext, useContext } from 'react'\n\nexport type CurrentTheme = 'webappTheme' | 'tottTheme'\n\nexport const CustomTheme = createContext<CurrentTheme>('webappTheme')\n\nexport const useCurrentTheme = () => {\n const theme = useContext(CustomTheme)\n return theme\n}\n","import React from 'react'\nimport { Text as ChakraText, useStyleConfig } from '@chakra-ui/react'\nimport { PProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/p}\n * @example\n * (?\n * <P>Body text</P>\n * ?)\n *\n */\nexport const P = ({\n children,\n variant = '16',\n sx = {},\n ...rest\n}: PProps) => {\n const styles = useStyleConfig('P', { variant, sx })\n\n return (\n <ChakraText\n variant={ variant }\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/capitalized }\n *\n * @example (Example)\n * (?\n * <Capitalized sx={{color: 'red.500' }}>Error</Capitalized>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Capitalized = ({\n children,\n sx = {},\n ...rest\n}: TextProps) => {\n const styles = useStyleConfig('Capitalized', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n}\n","import React from 'react'\nimport { FormLabel, VisuallyHidden, useStyleConfig } from '@chakra-ui/react'\nimport { LabelProps } from './types'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/label }\n *\n * @example\n * (?\n * <Label sx={{color: 'brand.500' }} size=\"lg\">Brand</Label>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Label = ({\n children,\n size = 'sm',\n sx = {},\n ...rest\n}: LabelProps) => {\n const styles = useStyleConfig('Label', { sx, size })\n\n return (\n <FormLabel\n sx={ styles }\n requiredIndicator={ <VisuallyHidden /> }\n { ...rest }\n >\n { children }\n </FormLabel>\n )\n}\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { always, dec, defaultTo, gt, identity, ifElse, inc, take } from 'ramda'\nimport { OverflowGroupProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\n\nconst positiveOrZero = ifElse(gt(0), always(0), identity)\nconst EMPTY_RECT = {\n clientWidht: 0,\n clientHeight: 0,\n}\nconst EMPTY_WINDOW = {\n innerWidth: 0,\n innerHeight: 0,\n}\n\n/**\n * Util wrapper for lists by only rendering as many items as fit per the specification\n * @see {@link https://northlight.dev/reference/overflow-group}\n * @example\n * (?\n * +\n *\nconst CustomSlider = ({ onChange }) => (\n <Slider min={ 100 } max={ 300 } step={ 1 } onChange={ onChange }>\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb />\n </Slider>\n)\n *\n\nconst arrayWithLength = (n) => {\n let buffer = []\n for(let i = 0; i < n; i++) {\n buffer.push(i)\n }\n return buffer\n}\n * const MyComponent = () => {\n * const [ n, setN ] = useState(5)\n const [ max, setMax ] = useState(10)\n const [ width, setWidth ] = useState(200)\n const [ height, setHeight ] = useState(200)\n const { containerRef, rect } = useOverflowGroup()\n const [ nbrRemainingItems, setNbrRemainingItems ] = useState(0)\n * return (\n * <Stack mb={ 4 } spacing={ 4 } w=\"40%\">\n <Stack h=\"300px\">\n <Wrap\n w={ width }\n h={ height }\n ref={ containerRef }\n borderWidth=\"2px\"\n borderColor=\"gray.200\"\n borderStyle=\"solid\"\n p=\"2\"\n borderRadius=\"md\"\n >\n <OverflowGroup\n max={ max }\n rect={ rect }\n onChange={ setNbrRemainingItems }\n >\n { arrayWithLength(n).map((i) => (\n <Badge key={ i } h=\"max-content\">\n Item { i }\n </Badge>\n )) }\n </OverflowGroup>\n { nbrRemainingItems > 0 && (\n <Tag w=\"fit-content\">+{ nbrRemainingItems }</Tag>\n ) }\n </Wrap>\n </Stack>\n <Stack bgColor=\"gray.50\" p=\"2\" borderRadius=\"md\">\n <HStack>\n <Label>Height</Label>\n <CustomSlider onChange={ setHeight } />\n </HStack>\n <HStack>\n <Label>Width</Label>\n <CustomSlider onChange={ setWidth } />\n </HStack>\n <HStack>\n <Label>Number of items </Label>\n <NumberInput onChange={ (v) => setN(Number(v)) } value={ n } />\n </HStack>\n <HStack>\n <Label>Render max </Label>\n <NumberInput onChange={ (v) => setMax(Number(v)) } value={ max } />\n </HStack>\n </Stack>\n </Stack>\n * )}\nrender(<MyComponent/>)\n * ?)\n<br />\nThe overflow group requires either a max prop for a set limit, or a rect prop,\n for a dynamic, responsive layouts. The rect prop can be received via the useOverflowGroup hook,\n along with a containerRef that needs to be set on the wrapper around the overflow group.\n<br />\n<br />\nThe overflow group is ambiguous in the styling of the children and does not pose any premade layout;\n instead the wrapper parent container determines the layout.\n One could for example use a <Stack /> <HStack /> or <Grid> and all would work.\n The overflow group only checks if the children don't fit within the height/width\n of it's container via the containerRef.\n\n *\n */\nexport const OverflowGroup = ({\n children,\n max: initMax = 0,\n childrenProps,\n onChange = identity,\n rect,\n}: OverflowGroupProps) => {\n const [ max, setMax ] = useState(typeof rect === 'undefined' ? initMax : 0)\n const [ windowState, setWindowState ] = useState(EMPTY_WINDOW)\n const isLocked = useRef(false)\n const nbrChildren = Children.count(children)\n\n const updateMax = () => {\n if (!rect) return\n\n if (\n rect.scrollHeight <= rect.clientHeight &&\n rect.scrollWidth <= rect.clientWidth &&\n max < nbrChildren &&\n !isLocked.current &&\n max < initMax\n ) {\n setMax(inc)\n }\n\n if (\n rect.scrollHeight > rect.clientHeight ||\n rect.scrollWidth > rect.clientWidth\n ) {\n setMax(dec)\n isLocked.current = true\n }\n }\n\n const rectDependency = defaultTo(EMPTY_RECT, rect) as HTMLElement\n useEffect(updateMax, [\n rectDependency.clientWidth,\n rectDependency.clientHeight,\n nbrChildren,\n max,\n windowState.innerHeight,\n windowState.innerHeight,\n initMax,\n ])\n\n useEffect(() => {\n isLocked.current = false\n }, [ rectDependency.clientHeight, rectDependency.clientWidth ])\n\n const handleResize = () => {\n setTimeout(() => {\n isLocked.current = false\n setWindowState({\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n })\n }, 200)\n }\n\n useEffect(() => {\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n useEffect(() => {\n const nbrRemainingChildren = positiveOrZero(nbrChildren - max)\n onChange(nbrRemainingChildren)\n }, [ max, nbrChildren ])\n\n const shownChildren = take(\n max,\n getChildrenWithProps(children, defaultTo({}, childrenProps))\n )\n\n return <>{ shownChildren }</>\n}\n","import React from 'react'\nimport { useStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../box'\nimport { BlinkerProps } from './types'\n\n/**\n * Status indicator of some sorts\n * @see {@link https://northlight.dev/reference/blinker}\n *\n * @example (Example)\n * (?\n * <Box p=\"4\">\n * <Blinker color=\"bg.brand.default\" />\n * </Box>\n * ?)\n */\nexport const Blinker = ({\n color = '',\n size,\n isBlinking = true,\n ...rest\n}: BlinkerProps) => {\n const styles = useStyleConfig('Blinker', { color, size, isBlinking })\n\n return <Box sx={ styles } data-testid=\"blinker-test-id\" { ...rest } />\n}\n","import React, { forwardRef } from 'react'\nimport { Button as ChakraButton } from '@chakra-ui/react'\nimport { ButtonProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/button}\n *\n * @example\n * (?\n <Button\n variant=\"success\"\n leftIcon={ <Icon as={ FolderCheckDuo } /> }\n rightIcon={ <Icon as={ PlusDuo } /> }\n >\n Create folder\n </Button>\n * ?)\n *\n * @example (Example)\n * (?\n * +\n * const variants = ['link', 'success', 'default', 'danger', 'brand', 'ghost']\n *\n * const ExampleButton = () => {\n * const [currentVariant, setCurrentVariant ] = useState(0)\n * const [ isLoading, setIsLoading ] = useState(false)\n *\n * const handleClick = () => {\n * setIsLoading(true)\n * setTimeout(() => {\n * setCurrentVariant((prev) => prev === 5 ? 0 : prev + 1)\n * setIsLoading(false)\n * }, 300)\n *\n * }\n *\n * return (\n * <Button variant={variants[currentVariant]}\n * isLoading={isLoading} onClick={handleClick} loadingText=\"Saving...\">\n * Save changes\n * </Button>\n * )\n *\n * }\n *\n * render(<ExampleButton/>)\n * ?)\n */\nexport const Button = forwardRef(\n ({ variant = 'default', children, ...rest }: ButtonProps, ref: any) => (\n <ChakraButton variant={ variant } ref={ ref } { ...rest }>\n { children }\n </ChakraButton>\n )\n)\n","import { forEach, identity, is, keys, trim, values } from 'ramda'\nimport { FieldValues } from 'react-hook-form'\n\nconst shouldTrim = (value: any): ((object: FieldValues) => FieldValues) =>\n (is(Array, value) ? values : identity)\n\nexport const trimFormValues = <T extends FieldValues>(obj: FieldValues) => {\n const newObj: FieldValues = obj\n forEach((property) => {\n const value = obj[property]\n if (is(Object, value)) {\n const format = shouldTrim(value)\n newObj[property] = format(trimFormValues(value as FieldValues))\n }\n if (is(String, value)) {\n newObj[property] = trim(value as string)\n }\n }, keys(obj))\n return newObj as T\n}\n","import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react'\nimport {\n DeepPartial,\n FieldValues,\n FormProvider,\n Resolver,\n UseFormReturn,\n useForm,\n} from 'react-hook-form'\nimport { always, equals } from 'ramda'\nimport { FormProps } from './types'\nimport { trimFormValues } from './trim-form-values'\n\n/**\n * The context provider for handling state of components wrapped in field\n * @see Field\n * @see {@link https://northlight.dev/reference/form}\n *\n * @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}} onSubmit={console.log}>\n * <TextField name=\"name\" label=\"What is your name\" />\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## With form methods\n * The form context provider passes down a lot of methods for handling state\n * (?\n * <Form initialValues={{name: ''}}>\n * {({watch, reset }) => (\n * <Stack>\n * <TextField name=\"name\" label=\"What is your name?\"/>\n * <Button variant=\"danger\" onClick={() => reset({})}>Reset</Button>\n * <Code>{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n *\n * </Form>\n * ?)\n * You can view more form methods on the **<a href=\"https://react-hook-form.com/api/useform/\" target=\"_blank\">react hook form docs</a>**\n * (everything that the useForm hooks returns)\n *\n * @example (Example)\n * ## Moving the form state outside of Form\n * (?\n * +\n\n//This code could live in the backend\nconst submitValuesToBackend = (values) => {\n console.log({values})\n if(values.firstName !== 'Steve') {\n throw Error('We only allow people named Steve \\;\\)')\n }\n}\nconst MyForm = () => (\n<Form\n initialValues={ { firstName: '' } }\n onSubmit={ async (values, methods) => {\n try {\n await submitValuesToBackend(values)\n }\n catch (err) {\n methods.setError('firstName', { message: err.message })\n }\n } }\n>\n <HStack alignItems=\"end\" p=\"3\">\n <TextField\n name=\"firstName\"\n label=\"First Name\"\n isRequired={ true }\n />\n <Button type=\"submit\" variant=\"success\">Validate</Button>\n </HStack>\n</Form>\n\n )\n\nrender(<MyForm />)\n\n * ?)\n\n@example (Example)\n## Using a ref\nYou can move up the form state using a ref as well\n(?\n() => {\n const methods = useRef(null)\n\n return (\n <Stack>\n <Form\n ref={methods}\n initialValues={{name: ''}}\n >\n <TextField name=\"name\" label=\"What is your name?\" />\n </Form>\n <Button onClick={() => methods.current.reset({name: (Math.round(Math.random() * 100))})}>\n Get random number\n </Button>\n </Stack>\n\n )\n\n}\n?)\n\n */\nexport const Form = forwardRef(<FormValues extends FieldValues>({\n initialValues,\n onSubmit,\n children,\n validate,\n formSettings = { mode: 'onChange' },\n methods = undefined,\n enableReinitialize = false,\n shouldTrim = true,\n ...rest\n}: FormProps<FormValues>, ref: React.Ref<UseFormReturn<FormValues>>) => {\n const customResolver: Resolver<FormValues, any> = (\n values,\n _context,\n _options\n ) => ({\n values,\n errors: validate(values),\n })\n\n const newMethods =\n methods ||\n useForm<FormValues>({\n defaultValues: initialValues as DeepPartial<FormValues>,\n resolver: validate ? customResolver : undefined,\n ...formSettings,\n })\n\n useImperativeHandle(ref, always(newMethods), [])\n\n if (enableReinitialize) {\n const initalValuesImage = useRef({})\n useEffect(() => {\n if (!equals(initalValuesImage.current, initialValues)) {\n newMethods?.reset(initialValues)\n initalValuesImage.current = initialValues\n }\n }, [ initialValues ])\n }\n\n const formatValues = (values: FormValues) => {\n if (!shouldTrim) {\n return values\n }\n\n return trimFormValues<FormValues>(values)\n }\n\n const handleSubmit = newMethods.formState.isValid\n ? newMethods.handleSubmit((values) =>\n onSubmit(formatValues(values), newMethods)\n )\n : (e: React.FormEvent<HTMLFormElement>) => {\n newMethods.trigger()\n e.preventDefault()\n }\n\n return (\n <FormProvider { ...newMethods } { ...rest }>\n <form style={ { width: '100%' } } onSubmit={ handleSubmit }>\n { typeof children === 'function' ? children(newMethods) : children }\n </form>\n </FormProvider>\n )\n})\n","import React from 'react'\nimport { FormLabelProps } from './types'\nimport { Label } from '../typography'\n\n/**\n * Renders a label, meant to be used alongside a field component\n * @see Field\n * @see {@link https://northlight.dev/reference/form-label}\n *\n */\nexport const FormLabel = ({\n children: label,\n ...rest\n}: FormLabelProps) => (\n <Label\n size=\"sm\"\n sx={ {\n width: '80%',\n maxWidth: '45ch',\n marginBottom: 1,\n marginInlineEnd: 3,\n } }\n requiredIndicator={ undefined }\n { ...rest }\n >\n { label }\n </Label>\n)\n","import { useFocusManager } from '@react-aria/focus'\n\nexport const useArrowFocus = (columns: number) => {\n const {\n focusNext: next,\n focusPrevious: previous,\n focusFirst,\n focusLast,\n } = useFocusManager()\n\n const defaultOpts = {\n ArrowRight: {\n wrap: true,\n repeat: 1,\n },\n ArrowLeft: {\n wrap: true,\n repeat: 1,\n },\n ArrowDown: {\n wrap: false,\n repeat: columns,\n },\n ArrowUp: {\n wrap: false,\n repeat: columns,\n },\n }\n\n const focusPrevious = ({\n repeat,\n wrap,\n } = defaultOpts.ArrowLeft) => {\n for (let i = 0; i < repeat; i += 1) {\n previous({ wrap })\n }\n }\n\n const focusNext = ({\n repeat,\n wrap,\n } = defaultOpts.ArrowRight) => {\n for (let i = 0; i < repeat; i += 1) {\n next({ wrap })\n }\n }\n\n const defaultArrows = (e: any) => {\n switch (e.key) {\n case 'ArrowRight':\n focusNext(defaultOpts.ArrowRight)\n break\n case 'ArrowLeft':\n focusPrevious(defaultOpts.ArrowLeft)\n break\n case 'ArrowDown':\n e.preventDefault()\n focusNext(defaultOpts.ArrowDown)\n break\n case 'ArrowUp':\n e.preventDefault()\n focusPrevious(defaultOpts.ArrowUp)\n break\n default:\n break\n }\n }\n\n return {\n defaultArrows,\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n }\n}\n","import { ActionMeta, MultiValue, SingleValue } from 'chakra-react-select'\nimport { difference, isNil, last, map, prop } from 'ramda'\nimport { useRef } from 'react'\nimport { BasicOption, UseSelectCallbacksProps } from './types'\n\nexport const useSelectCallbacks = <T extends BasicOption>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value,\n}: UseSelectCallbacksProps<T>) => {\n const items = useRef<MultiValue<T> | SingleValue<T>>(value)\n\n const handleChange = (val: MultiValue<T> | SingleValue<T>, event: ActionMeta<T>) => {\n onChange(val, event)\n if (!isMulti && !isNil(value)) {\n onAdd((val as T).value)\n } else if ((val as T[]).length > (items.current as T[]).length) {\n onAdd(last(val as T[])?.value)\n } else {\n const removedItems = map(\n prop('value'),\n difference((items.current as T[]), val as T[])\n )\n onRemove(removedItems.length === 1 ? removedItems[0] : removedItems)\n }\n items.current = val\n }\n return handleChange\n}\n","import React, { cloneElement, forwardRef } from 'react'\nimport { IconButton as ChakraIconButton } from '@chakra-ui/react'\nimport { IconButtonProps } from './types'\n\n/**\n * A normal button but renders an icon instead of text\n * @see Button\n * @see Icon\n * @see {@link https://northlight.dev/reference/icon-button}\n *\n * @example (Example)\n * (?\n * <IconButton variant='brand' icon={<Icon as={UsersDuo} />} onClick={console.log}/>\n * ?)\n *\n * @example (Example)\n * (?\n <IconButton\n isRound={ true }\n aria-label=\"create\"\n variant=\"success\"\n icon={ <Icon as={ PlusSolid } /> }\n />\n * ?)\n *\n */\nexport const IconButton = forwardRef(({\n variant = 'default',\n icon,\n 'aria-label': ariaLabel,\n children,\n ...rest\n}: IconButtonProps, ref: any) => {\n const IconComponent = icon ?? children as JSX.Element\n const IconWithSize = cloneElement(IconComponent, { size: rest.size })\n return (\n <ChakraIconButton\n variant={ variant }\n icon={ IconWithSize }\n aria-label={ ariaLabel }\n ref={ ref }\n { ...rest }\n />\n )\n})\n","import { getShades } from '../../utils'\n\nexport const columns = 5\nexport const paletteColors = getShades(100, 500)\nexport const defaultColors = getShades(500)\n","import React, { forwardRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { CheckDuo } from '@northlight/icons'\nimport { getContrastColor } from '../../utils'\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { Box } from '../box'\nimport { ColorButtonProps } from './types'\nimport { columns } from './constants'\nimport { useArrowFocus } from '../../hooks'\n\nexport const ColorButton = forwardRef(({\n color,\n onClick,\n size,\n selected = false,\n}: ColorButtonProps, ref: any) => {\n if (!color) return <Box />\n const { defaultArrows, focusPrevious, focusNext } = useArrowFocus(columns)\n\n const onKeyDown = (e: any) => {\n switch (e.key) {\n case 'PageUp':\n e.preventDefault()\n focusPrevious({ wrap: false, repeat: columns * 5 })\n break\n case 'PageDown':\n e.preventDefault()\n focusNext({ wrap: false, repeat: columns * 5 })\n break\n default:\n defaultArrows(e)\n break\n }\n }\n\n const { colorButton } = useMultiStyleConfig('ColorPicker', { size })\n\n return (\n <IconButton\n bg={ color }\n ref={ ref }\n onKeyDown={ onKeyDown }\n aria-label={ `select-${color}` }\n onClick={ onClick }\n sx={ colorButton }\n icon={ <Icon as={ CheckDuo } boxSize={ selected ? undefined : '0' } /> }\n color={ getContrastColor(color) }\n />\n )\n})\n","import { 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 } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../../../box'\nimport { StyledFieldProps } from './types'\n\nexport const StyledField = forwardRef((\n { isInvalid, isDisabled, children, variant, ...rest }: StyledFieldProps,\n ref: any\n) => {\n const { styledField } = useMultiStyleConfig('DatePicker', { variant })\n\n return (\n <Box\n { ...rest }\n ref={ ref }\n aria-invalid={ isInvalid }\n aria-disabled={ isDisabled }\n display=\"flex\"\n alignItems=\"center\"\n h={ 10 }\n __css={ styledField }\n >\n { children }\n </Box>\n )\n}\n)\n","import React, { useRef } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarCell } from '@react-aria/calendar'\nimport { isSameMonth, today } from '@internationalized/date'\nimport { CalendarCellProps } from './types'\nimport { Button } from '../../../../button'\n\nexport const CalendarCell = ({\n state,\n date,\n currentMonth,\n}: CalendarCellProps) => {\n const ref = useRef<HTMLButtonElement>(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n const isToday = date.compare(today(state.timeZone)) === 0\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n return (\n <chakra.td { ...cellProps }>\n <Button\n { ...buttonProps }\n ref={ ref }\n borderRadius=\"xs\"\n boxSize={ 8 }\n hidden={ isOutsideMonth }\n size=\"sm\"\n fontWeight=\"medium\"\n variant={ isSelected ? 'brand' : 'ghost' }\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"blue.500\"\n >\n { formattedDate }\n </Button>\n </chakra.td>\n )\n}\n","import React, { memo } from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/system'\nimport { DayLabelsProps } from './types'\n\nexport const DayLabels = memo(({\n weekDays,\n}: DayLabelsProps) => {\n const { dayLabel } = useMultiStyleConfig('Calendar')\n const weekDaysWithIds = weekDays.map((day, i) => ({ label: day, _id: i }))\n\n return (\n <chakra.tr>\n { weekDaysWithIds.map(({ label, _id }) => (\n <chakra.th key={ _id } __css={ dayLabel }>\n { label }\n </chakra.th>\n )) }\n </chakra.tr>\n )\n})\n","import React, { memo } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarGrid } from '@react-aria/calendar'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { Table, Tbody, Thead, Tr } from '../../../../table'\nimport { CalendarCell } from './calendar-cell'\nimport { CalendarGridProps } from './types'\nimport { DayLabels } from './day-labels'\n\nexport const CalendarGrid = memo(\n ({ state, locale, ...rest }: CalendarGridProps) => {\n const startDate = state.visibleRange.start\n const { gridProps, headerProps, weekDays } = useCalendarGrid(rest, state)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n\n return (\n <Table variant=\"unstyled\" { ...gridProps }>\n <Thead { ...headerProps }>\n <DayLabels weekDays={ weekDays } />\n </Thead>\n <Tbody>\n { times((weekIndex) => (\n <Tr key={ weekIndex }>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date) =>\n (date ? (\n <CalendarCell\n key={ date.day }\n state={ state }\n date={ date }\n currentMonth={ startDate }\n />\n ) : (\n <chakra.td />\n ))\n ) }\n </Tr>\n ), weeksInMonth) }\n </Tbody>\n </Table>\n )\n }\n)\n","import React, { useMemo } from 'react'\nimport { CalendarDate } from '@internationalized/date'\nimport { any, equals, map } from 'ramda'\nimport { palette } from '@northlight/tokens'\nimport { Flex } from '../../../../flex'\nimport { Stack } from '../../../../stack'\nimport { Box } from '../../../../box'\nimport { DateButton } from './date-button'\nimport { validRange } from './utils'\nimport { Date, DateRangeValue, QuickSelectProps } from './types'\nimport { getQuickSelectOptions } from './get-quick-select-options'\n\nconst seperator = `1px solid ${palette.gray['100']}`\n\nexport const QuickSelect = ({\n state,\n fiscalStartMonth = 0,\n updateVisibleRange,\n locale = '',\n height = 'xs',\n}: QuickSelectProps) => {\n const { quickDates, fiscalQuarters } = useMemo(\n () => getQuickSelectOptions(state, locale, fiscalStartMonth),\n []\n )\n\n const updateDate = (newDate: DateRangeValue) => () => {\n if (newDate) {\n state.setValue(newDate)\n state.setFocusedDate(newDate.start as CalendarDate)\n updateVisibleRange()\n }\n }\n\n const getIsActive = (newDate: Date) => equals(state.value, newDate.value)\n\n const shouldShow = (dates: Date[]) =>\n any((date) => validRange(date.value, state), dates)\n\n return (\n <Stack alignItems=\"start\" borderRight={ seperator } pt=\"2\">\n <Stack\n h={ height }\n overflowY=\"hidden\"\n pr=\"4\"\n _hover={ { overflowY: 'scroll' } }\n w=\"36\"\n display={ shouldShow(quickDates) ? 'initial' : 'none' }\n mb=\"4\"\n >\n { map(\n (quickDate) =>\n validRange(quickDate.value, state) && (\n <Box minH=\"20px\" key={ `quick-select-${quickDate.label}` }>\n <DateButton\n onClick={ updateDate(quickDate.value) }\n isActive={ getIsActive(quickDate) }\n >\n { quickDate.label }\n </DateButton>\n </Box>\n ),\n quickDates\n ) }\n </Stack>\n <Box\n w=\"50%\"\n borderTop={ seperator }\n display={ shouldShow(fiscalQuarters) ? 'initial' : 'none' }\n />\n <Flex\n justifyContent=\"space-between\"\n w=\"full\"\n pt=\"2\"\n pr=\"4\"\n display={ shouldShow(fiscalQuarters) ? 'flex' : 'none' }\n >\n { map(\n (quarter) =>\n validRange(quarter.value, state) && (\n <DateButton\n onClick={ updateDate(quarter.value) }\n isActive={ getIsActive(quarter) }\n key={ `quick-select-${quarter.label}` }\n >\n { quarter.label }\n </DateButton>\n ),\n fiscalQuarters\n ) }\n </Flex>\n </Stack>\n )\n}\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { merge } from 'ramda'\nimport { getContrastColor } from '../../utils'\n\nexport const searchBarStyles = (\n sx: ChakraStylesConfig<any>\n): ChakraStylesConfig<any> =>\n merge({\n container: (provided) => ({\n ...provided,\n width: '100%',\n color: 'text.default',\n alignSelf: 'center',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isFocused && 'background.select.option-focus',\n _active: {\n background: 'background.select.option-active',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n }),\n downChevron: (provided) => ({\n ...provided,\n color: 'icon.select.default',\n }),\n placeholder: (provided) => ({\n ...provided,\n color: 'text.select.placeholder',\n }),\n multiValue: (provided, state) => {\n const background = state.data.isFixed\n ? 'background.select.option-disabled'\n : state.data.color ?? provided.bgColor\n return {\n ...provided,\n bgColor: background,\n color: getContrastColor(background),\n ...sx.multiValue,\n }\n },\n menuList: (provided) => ({\n ...provided,\n bgColor: 'background.default',\n }),\n } as ChakraStylesConfig<any>, sx)\n","import React from 'react'\nimport {\n DropdownIndicatorProps,\n GroupBase,\n MultiValueGenericProps,\n OptionProps,\n chakraComponents,\n} from 'chakra-react-select'\nimport { Icon } from '../icon'\nimport { SearchBarOptionType } from './types'\n\nexport function getComponents<T extends SearchBarOptionType> () {\n return {\n DropdownIndicator: (props: DropdownIndicatorProps<T>) => (\n props.selectProps.icon\n ? (\n <chakraComponents.DropdownIndicator { ...props }>\n <Icon as={ props.selectProps.icon } />\n </chakraComponents.DropdownIndicator>\n )\n : (\n <chakraComponents.DropdownIndicator { ...props } />\n )\n ),\n Option: (props: OptionProps<T>) =>\n (props.selectProps.customOption\n ? (\n <chakraComponents.Option { ...props }>\n { props.selectProps.customOption(props.data) }\n </chakraComponents.Option>\n )\n : <chakraComponents.Option { ...props } />\n ),\n MultiValueContainer: (\n props: MultiValueGenericProps<T, boolean, GroupBase<T>>\n ) =>\n (props.selectProps.customTag\n ? (\n <chakraComponents.MultiValueContainer { ...props }>\n { props.selectProps.customTag(props.data) }\n </chakraComponents.MultiValueContainer>\n )\n : <chakraComponents.MultiValueContainer { ...props } />\n ),\n }\n}\n","import React, { forwardRef, useMemo, useState } from 'react'\nimport {\n AsyncSelect,\n GroupBase,\n InputActionMeta,\n SelectInstance,\n} from 'chakra-react-select'\nimport { filter, identity, is, test, toLower } from 'ramda'\nimport { SearchDuo } from '@northlight/icons'\nimport { createDebounceFunctionInstance } from '../../utils'\nimport { searchBarStyles } from './styles'\nimport { useSelectCallbacks } from '../../hooks'\nimport { Box } from '../box'\nimport { SearchBarOptionType, SearchBarProps } from './types'\nimport { getComponents } from './get-components'\n\nexport const SearchBar = forwardRef(\n <T extends SearchBarOptionType>({\n defaultOptions = [],\n isMulti = false,\n customOption = null,\n customTag = null,\n sx = {},\n debouncedWaitTime = 200,\n loadOptions: getCustomOptions = null,\n clearInputOnSelect = true,\n closeMenuOnSelect = false,\n onChange = identity,\n onAdd = identity,\n onRemove = identity,\n 'data-testid': testId,\n value,\n onSearchInputChange = identity,\n icon = SearchDuo,\n ...rest\n }: SearchBarProps<T>,\n ref: React.Ref<SelectInstance<T, boolean, GroupBase<T>>>\n ) => {\n const [ filtered, setFiltered ] = useState(defaultOptions)\n const [ filterInput, setFilterInput ] = useState('')\n const debounceFunction = useMemo(\n () => createDebounceFunctionInstance(debouncedWaitTime),\n [ debouncedWaitTime ]\n )\n const handleChange = useSelectCallbacks<T>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? value as T[] : [],\n })\n const customComponents = getComponents<T>()\n\n const simpleFilter = (query: string) => (\n filter(\n (option: T) =>\n test(new RegExp(toLower(query), 'g'), toLower(option.label)),\n defaultOptions\n )\n )\n\n const getOptions = async (query: string) => {\n const newOptions = getCustomOptions\n ? await getCustomOptions(query)\n : simpleFilter(query)\n setFiltered(newOptions)\n\n return newOptions\n }\n\n const loadOptions = debounceFunction(async (\n query: string,\n callback: (options: T[]) => void\n ) => {\n const newOptions = await getOptions(query)\n callback(newOptions)\n return []\n })\n\n const resetFiltered = (v: string, { action }: InputActionMeta) => {\n if (clearInputOnSelect || action !== 'set-value') {\n setFilterInput(v)\n onSearchInputChange(v)\n if (v === '') {\n setFiltered(defaultOptions)\n }\n }\n }\n\n return (\n <Box w=\"full\" data-testid={ testId }>\n <AsyncSelect\n cacheOptions={ true }\n defaultOptions={ filtered }\n loadOptions={ loadOptions }\n onChange={ handleChange }\n placeholder=\"Search...\"\n chakraStyles={ searchBarStyles(sx) }\n isMulti={ isMulti }\n useBasicStyles={ true }\n selectedOptionStyle=\"check\"\n hideSelectedOptions={ false }\n closeMenuOnSelect={ closeMenuOnSelect }\n isClearable={ false }\n onInputChange={ resetFiltered }\n inputValue={ filterInput }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n ref={ ref }\n value={ value }\n { ...rest }\n />\n </Box>\n )\n }\n)\n","import React, { forwardRef } from 'react'\nimport { Tag as ChakraTag } from '@chakra-ui/react'\nimport { TagProps } from './types'\n\n/**\n * @see TagGroup\n * @see {@link https://northlight.dev/reference/tag}\n *\n * @example\n * (? <Tag>Brand 1</Tag> ?)\n *\n * @example\n * (?\n * <Tag>\n <TagLeftIcon>\n <Icon as={ StackSolid } />\n </TagLeftIcon>\n <TagLabel>Left Icon</TagLabel>\n </Tag>\n * ?)\n *\n*/\nexport const Tag = forwardRef(({\n children,\n variant = 'solid',\n bgColor,\n colorScheme,\n ...rest\n}: TagProps, ref: any) => (\n <ChakraTag\n bgColor={ bgColor }\n colorScheme={ colorScheme }\n ref={ ref }\n variant={ variant }\n { ...rest }\n >\n { children }\n </ChakraTag>\n))\n","import React, { forwardRef } from 'react'\nimport { DotsMatrixSolid } from '@northlight/icons'\nimport { Tag, TagLabel, TagRightIcon } from '../tag'\nimport { Icon } from '../icon'\nimport { DragItemProps } from './types'\n\n/**\n * Default draggable item none other provided in SortableList and MultiSort.\n * Renders a tag which can be used under the DragAndDrop context\n * @see DragAndDrop\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/drag-item}\n *\n * @example (Example)\n * (?\n * <DragItem itemLabel=\"Option 1\" bgColor=\"bg.filled\" />\n * ?)\n *\n */\nexport const DragItem = forwardRef(({\n size = 'md',\n isDragging,\n itemLabel = 'Drag Me',\n bgColor,\n ...rest\n}: DragItemProps, ref) => (\n <Tag\n ref={ ref }\n cursor={ isDragging ? 'grabbing' : 'grab' }\n bgColor={ bgColor || (isDragging ? 'blue.200' : undefined) }\n size={ size }\n minW=\"max-content\"\n { ...rest }\n >\n <TagLabel>{ itemLabel }</TagLabel>\n <TagRightIcon>\n <Icon as={ DotsMatrixSolid } />\n </TagRightIcon>\n </Tag>\n)\n)\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeList } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastListProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized stacked layout\n * @see FastGrid\n * @see {@link https://northlight.dev/reference/fast-list}\n *\n * @example (Example)\n * (?\n * <Box h=\"500px\" w=\"300p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastList itemCount={ 10000 } itemSize={ 30 } overscanCount={ 100 }>\n { (index) => `item-${index}` }\n </FastList>\n</Box>\n * ?)\n *\n */\nexport const FastList = forwardRef(({\n itemCount,\n itemSize,\n direction = 'column',\n children,\n width,\n height,\n overscanCount = 0,\n initialScrollOffset,\n ...rest\n}: FastListProps, ref: LegacyRef<VariableSizeList<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeList\n itemCount={ itemCount }\n itemSize={ typeof itemSize === 'number' ? (_index) => itemSize : itemSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n layout={ direction === 'column' ? 'vertical' : 'horizontal' }\n initialScrollOffset={ initialScrollOffset }\n overscanCount={ overscanCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, index }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(index) : children }\n </div>\n ) }\n </VariableSizeList>\n ) }\n </AutoSizer>\n))\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeGrid } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastGridProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized html grid layout\n * @see FastList\n * @see {@link https://northlight.dev/reference/fast-grid}\n *\n * @example (Example)\n * ## Simple example\n * (?\n * <Box h=\"500px\" w=\"500px\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 100 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n { (rowIndex, columnIndex) => `[${rowIndex}, ${columnIndex}]` }\n </FastGrid>\n </Box>\n *\n * ?)\n *\n * @example (Example)\n * ## Spreadsheet example\n * (?\n * +\n *\nconst getCell = (rowIndex, columnIndex) => {\n if (rowIndex === 0 && columnIndex === 0) return ''\n if (rowIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Col { columnIndex }\n </Lead>\n )\n }\n if (columnIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Row { rowIndex }\n </Lead>\n )\n }\n return (\n <TextField name={ `${rowIndex}-${columnIndex}` } />\n )\n}\n *\n * const MyGrid = () => {\n * const [values, setValues ] = useState({})\n * return(\n * <Form initialValues={{}}>\n * {({getValues}) => (\n * <Stack>\n * <Box h=\"500px\" w=\"500p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 50 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n {getCell}\n </FastGrid>\n</Box>\n<Button onClick={() => setValues(getValues())} variant=\"success\">Save</Button>\n<Code> <pre>{JSON.stringify(values, null, 2)}</pre></Code>\n</Stack>\n * )}\n </Form>\n * )}\n\nrender(<MyGrid />)\n *\n *\n * ?)\n * **(Note, FastGrid must be wrapped in a parent element with set height and width!)**\n *\n*/\nexport const FastGrid = forwardRef(({\n columns,\n rows,\n columnSize,\n rowSize,\n children,\n width,\n height,\n overscanRowCount = 0,\n overscanColumnCount = 0,\n ...rest\n}: FastGridProps, ref: LegacyRef<VariableSizeGrid<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeGrid\n rowCount={ rows }\n columnCount={ columns }\n columnWidth={ typeof columnSize === 'number' ? (_index) => columnSize : columnSize }\n rowHeight={ typeof rowSize === 'number' ? (_index) => rowSize : rowSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n overscanRowCount={ overscanRowCount }\n overscanColumnCount={ overscanColumnCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, rowIndex, columnIndex }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(rowIndex, columnIndex) : children }\n </div>\n ) }\n </VariableSizeGrid>\n ) }\n </AutoSizer>\n))\n","import React from 'react'\nimport { CheckDuo, EditDuo, XCloseSolid } from '@northlight/icons'\nimport {\n HStack,\n useEditableControls,\n useEditableState,\n useMultiStyleConfig,\n} from '@chakra-ui/react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { EditableControlsProps } from './types'\n\nexport const EditableControls = ({ size }: EditableControlsProps) => {\n const {\n getSubmitButtonProps,\n getCancelButtonProps,\n } = useEditableControls()\n\n const { onEdit, isEditing } = useEditableState()\n\n const { button, icon, controls } = useMultiStyleConfig('EditableText', { size, isEditing })\n\n return (\n <HStack spacing={ 1 } sx={ controls }>\n { isEditing\n ? (\n <>\n <IconButton\n aria-label=\"Cancel\"\n sx={ button }\n variant=\"danger\"\n { ...getCancelButtonProps() }\n >\n <Icon sx={ icon } as={ XCloseSolid } />\n </IconButton>\n <IconButton\n aria-label=\"Save\"\n sx={ button }\n variant=\"success\"\n { ...getSubmitButtonProps() }\n >\n <Icon sx={ icon } as={ CheckDuo } />\n </IconButton>\n </>\n )\n : (\n <IconButton\n aria-label=\"Edit\"\n variant=\"ghost\"\n sx={ button }\n onClick={ onEdit }\n >\n <Icon sx={ icon } as={ EditDuo } />\n </IconButton>\n )\n }\n </HStack>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Input, InputGroup, InputLeftElement, InputRightElement } from '../input'\nimport { EditableInput as ChakraEditableInput, Editable, EditablePreview } from '../editable'\nimport { EditableProps } from './types'\nimport { EditableControls } from './editable-controls'\n\n/**\n * Used to safely modify text with default or previousely set value\n * @see {@link https://northlight.dev/reference/editable-text}\n *\n * @example (Example)\n * ##Edit password\n * (?\n * () => {\n * const [v, setV] = useState('123456789')\n * return (\n * <Box p=\"2\">\n * <EditableText value={v} onSubmit={setV} leftItem={<Icon as={LockDuo} />}/>\n * </Box>\n * )\n * }\n * ?)\n *\n * @example (Example)\n * ## Other notes\n <p>\n Pressing <b>ESC</b> or clicking on the\n <b> red icon</b> will delete the changes and go back to the original state\n </p>\n <p>\n Pressing <b>ENTER</b> or clicking on the\n <b> green icon</b> will save the changes internally and fire the{ ' ' }\n <Code>onSubmit</Code> callback.\n </p>\n *\n */\nexport const EditableText = ({\n size = 'md',\n value: inputValue,\n onSubmit,\n leftItem,\n ...rest\n}: EditableProps) => {\n const [ value, setValue ] = useState(inputValue)\n const { input, preview } = useMultiStyleConfig('EditableText', { size })\n\n useEffect(() => {\n setValue(inputValue)\n }, [ inputValue ])\n\n return (\n <Editable\n isPreviewFocusable={ true }\n selectAllOnFocus={ false }\n value={ value }\n onChange={ (newValue) => setValue(newValue) }\n onSubmit={ onSubmit }\n { ...rest }\n >\n <InputGroup size={ size }>\n { leftItem && (\n <InputLeftElement>\n { leftItem }\n </InputLeftElement>\n ) }\n <Input\n as={ EditablePreview }\n sx={ preview }\n />\n <Input\n as={ ChakraEditableInput }\n size={ size }\n sx={ input }\n />\n <InputRightElement sx={ { width: 'min-content' } }>\n <EditableControls size={ size } />\n </InputRightElement>\n </InputGroup>\n </Editable>\n )\n}\n","import React from 'react'\nimport {\n Modal as ChakraModal,\n ModalCloseButton,\n ModalContent,\n ModalOverlay,\n} from '@chakra-ui/react'\nimport { ModalProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/modal}\n *\n * */\nexport const Modal = ({\n isCentered = true,\n children,\n ...rest\n}: ModalProps) => (\n <ChakraModal\n isCentered={ isCentered }\n scrollBehavior=\"inside\"\n motionPreset=\"slideInBottom\"\n { ...rest }\n >\n <ModalOverlay />\n <ModalContent data-testid=\"modal-test-id\">\n <ModalCloseButton data-testid=\"modal-test-button-id\" />\n { children }\n </ModalContent>\n </ChakraModal>\n)\n","import React, { forwardRef, useState } from 'react'\nimport AvatarEditor from 'react-avatar-editor'\nimport { ZoomInDuo } from '@northlight/icons'\nimport { EditableText } from '../editable-text'\nimport { Icon } from '../icon'\nimport { HStack, Stack } from '../stack'\nimport { Box } from '../box'\nimport { Button } from '../button'\nimport { Slider, SliderFilledTrack, SliderThumb, SliderTrack } from '../slider'\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '../modal'\nimport { FormLabel } from '../form-control'\nimport { FileEditorModalProps } from './types'\n\nexport const FileEditorModal = forwardRef(({\n fileName,\n setFileName,\n isOpen,\n onClose,\n image = '',\n handleCrop,\n isImage,\n canEditFileName = true,\n canCropImage = false,\n ...rest\n}: FileEditorModalProps, ref: any) => {\n const [ zoomLevel, setZoomLevel ] = useState(1)\n const [ position, setPosition ] = useState({ x: 0.5, y: 0.5 })\n\n const handleClose = () => {\n setZoomLevel(1)\n onClose()\n }\n\n return (\n <Modal\n isOpen={ isOpen }\n onClose={ onClose }\n closeOnOverlayClick={ false }\n { ...rest }\n >\n <ModalHeader>Edit { isImage ? 'image' : 'file' }</ModalHeader>\n <ModalBody\n display=\"flex\"\n justifyContent=\"start\"\n flexDirection=\"column\"\n alignItems=\"center\"\n gap={ 4 }\n minH=\"300px\"\n >\n <Stack display={ isImage && canCropImage ? 'inherit' : 'none' }>\n <AvatarEditor\n ref={ ref }\n image={ image || '' }\n onPositionChange={ (pos) => setPosition(pos) }\n position={ position }\n width={ 250 }\n height={ 250 }\n border={ 50 }\n color={ [ 255, 255, 255, 0.7 ] }\n scale={ zoomLevel }\n rotate={ 0 }\n />\n <HStack w=\"90%\">\n <FormLabel>Zoom</FormLabel>\n <Slider\n aria-label=\"zoom\"\n defaultValue={ zoomLevel }\n maxW=\"50%\"\n min={ 0.1 }\n step={ 0.05 }\n max={ 10 }\n onChange={ (value) => setZoomLevel(value) }\n >\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb boxSize={ 6 }>\n <Icon as={ ZoomInDuo } />\n </SliderThumb>\n </Slider>\n </HStack>\n\n </Stack>\n { canEditFileName && (\n <Stack w=\"90%\" direction={ isImage ? 'row' : 'column' } pt={ 2 }>\n <FormLabel>Name the file:</FormLabel>\n <Box maxW=\"50%\">\n <EditableText onSubmit={ (v) => setFileName(v) } value={ fileName } size=\"sm\" />\n </Box>\n </Stack>\n ) }\n </ModalBody>\n <ModalFooter>\n <HStack>\n <Button variant=\"danger\" onClick={ handleClose }>\n Cancel\n </Button>\n <Button variant=\"success\" onClick={ handleCrop }>\n Save\n </Button>\n </HStack>\n </ModalFooter>\n </Modal>\n )\n})\n","export const scrollbarStyles = {\n '::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n '::-webkit-scrollbar-track': {\n background: 'background.scrollbar.track',\n },\n '::-webkit-scrollbar-thumb': {\n borderRadius: 'scrollbar.thumb',\n border: '2px solid',\n borderColor: 'border.scrollbar.thumb',\n backgroundClip: 'padding-box !important',\n background: 'background.scrollbar.thumb',\n },\n '::-webkit-scrollbar-thumb:hover': {\n borderRadius: 'scrollbar.thumb',\n border: '1px solid ',\n borderColor: 'border.scrollbar.thumb',\n backgroundClip: 'padding-box !important',\n background: 'background.scrollbar.thumb',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Breadcrumb: ComponentMultiStyleConfig = {\n parts: [ 'link', 'separator' ],\n baseStyle: {\n link: {\n padding: [ 0.5, 1 ],\n color: 'primary',\n fontWeight: '600',\n fontSize: 'semibold',\n _hover: {\n bg: 'blue.50',\n borderRadius: 'base',\n textDecor: 'none',\n },\n },\n separator: {\n color: 'gray.300',\n fontSize: 'semibold',\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Button: ComponentSingleStyleConfig = {\n sizes: {\n xs: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n paddingInlineStart: spacing['padding-inline'].button.xs,\n paddingInlineEnd: spacing['padding-inline'].button.xs,\n }),\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n paddingInlineStart: spacing['padding-inline'].button.md,\n paddingInlineEnd: spacing['padding-inline'].button.md,\n }),\n md: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.md,\n minWidth: sizing.button.md,\n paddingInlineStart: spacing['padding-inline'].button.md,\n paddingInlineEnd: spacing['padding-inline'].button.md,\n }),\n lg: ({ theme: { sizes: sizing, space: spacing } }) => ({\n height: sizing.button.lg,\n minWidth: sizing.button.lg,\n paddingInlineStart: spacing['padding-inline'].button.lg,\n paddingInlineEnd: spacing['padding-inline'].button.lg,\n }),\n },\n baseStyle: ({ theme: { colors: color, radii: borderRadius } }) => ({\n color: color.text.default,\n borderRadius: borderRadius.button.default,\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n }),\n variants: {\n default: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.default,\n _hover: {\n bgColor: color.background.button['default-hover'],\n },\n _active: {\n bgColor: color.background.button['default-active'],\n },\n }),\n danger: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.danger,\n color: color.text.button.danger,\n _hover: {\n bg: color.background.button['danger-hover'],\n _disabled: {\n bgColor: color.background.button.danger,\n },\n },\n _active: {\n bgColor: color.background.button['danger-active'],\n },\n }),\n success: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.success,\n _hover: {\n bg: color.background.button['success-hover'],\n _disabled: {\n bgColor: color.background.button.success,\n },\n },\n _active: {\n bgColor: color.background.button['success-active'],\n },\n }),\n brand: ({ theme: { colors: color } }) => ({\n color: color.text.inverted,\n bgColor: color.background.button.brand,\n _hover: {\n bg: color.background.button['brand-hover'],\n _disabled: {\n bgColor: color.background.button.brand,\n },\n },\n _active: {\n bgColor: color.background.button['brand-active'],\n },\n }),\n link: ({ theme: { colors: color } }) => ({\n textDecoration: 'underline',\n color: color.text.button.link,\n bgColor: color.background.button.link,\n _hover: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-hover'],\n },\n _active: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-active'],\n },\n }),\n ghost: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-hover'],\n _disabled: {\n bgColor: color.background.button.ghost,\n },\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n }),\n },\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentSingleStyleConfig, keyframes } from '@chakra-ui/react'\n\nconst pulseRing = keyframes`\n0% {\n transform: scale(0.33);\n}\n30% {\n transform: scale(0.66);\n},\n40%,\n50% {\n opacity: 0;\n}\n100% {\n opacity: 0;\n}\n`\n\nexport const Blinker: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: palette }, color, isBlinking }) => ({\n position: 'relative',\n borderRadius: '50%',\n bgColor: color === '' ? palette.blue['500'] : color,\n _before: isBlinking\n ? {\n content: \"''\",\n position: 'absolute',\n display: 'block',\n width: '300%',\n height: '300%',\n marginLeft: '-100%',\n marginTop: '-100%',\n borderRadius: '50%',\n bgColor: color === '' ? 'blue.500' : color,\n animation: `2.25s ${pulseRing} cubic-bezier(0.455, 0.03, 0.515, 0.955) -0.4s infinite`,\n zIndex: 'base',\n }\n : {},\n }),\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker['2xs'],\n width: sizing.blinker['2xs'],\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.xs,\n width: sizing.blinker.xs,\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.sm,\n width: sizing.blinker.sm,\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.md,\n width: sizing.blinker.md,\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.lg,\n width: sizing.blinker.lg,\n }),\n },\n defaultProps: {\n size: 'md',\n color: 'blue.500',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Checkbox: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label' ],\n sizes: {\n sm: {\n control: {\n fontSize: 5,\n },\n },\n md: {\n control: {\n fontSize: 7,\n },\n },\n lg: {\n control: {\n fontSize: 8,\n },\n },\n },\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n control: {\n borderColor: color.border.checkbox.default,\n bg: color.background.checkbox.default,\n borderWidth: 2,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n },\n },\n _invalid: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n _checked: {\n bg: color.background.checkbox.error,\n },\n _hover: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n _hover: {\n borderColor: color.border.checkbox['default-hover'],\n bg: color.background.checkbox.default,\n },\n _disabled: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n color: 'white',\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n },\n },\n _hover: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n },\n },\n },\n }),\n variants: {\n default: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.default,\n },\n }),\n rounded: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.full,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Input: ComponentMultiStyleConfig = {\n parts: [ 'field', 'addon' ],\n baseStyle: ({ theme: { colors: color } }) => ({\n field: {\n color: color.text.default,\n _placeholder: {\n color: color.text.input.placeholder,\n opacity: 1,\n },\n },\n }),\n variants: {\n outline: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _focusVisible: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n },\n _hover: {\n bgColor: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _invalid: {\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n addon: {\n border: 'none',\n background: 'none',\n color: color.text.default,\n },\n }),\n filled: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n borderRadius: borderRadius.input.filled,\n borderWidth: borderWidth.input.default,\n bgColor: color.background.input['filled-default'],\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n bgColor: color.background.input['filled-default'],\n },\n },\n _hover: {\n bgColor: color.background.input['filled-hover'],\n },\n _focusVisible: {\n boxShadow: `0 0 0 1px ${color.border.input.focus}`,\n borderColor: color.border.input.focus,\n bgColor: color.background.input['filled-focus'],\n _readOnly: {\n bgColor: color.background.input['filled-default'],\n },\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n },\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['filled-error'],\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['filled-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n }),\n flushed: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.flushed,\n paddingInlineEnd: spacing['padding-inline'].input.flushed,\n bgColor: color.background.input['flushed-default'],\n borderRadius: borderRadius.input.flushed,\n borderBottomWidth: borderWidth.input.default,\n borderBottomColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _hover: {\n bgColor: color.background.input['flushed-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focusVisible: {\n _hover: {\n boxShadow: `0 1px 0 0 ${color.border.input.focus}`,\n borderColor: color.border.input.focus,\n },\n _invalid: {\n boxShadow: `0 1px 0 0 ${color.border.input.error}`,\n borderColor: color.border.input.error,\n bgColor: color.background.input['flushed-error'],\n },\n },\n _invalid: {\n _hover: {\n boxShadow: `0 1px 0 0 ${color.border.input.error}`,\n borderColor: color.border.input.error,\n },\n bgColor: color.background.input['flushed-error'],\n },\n _disabled: {\n bgColor: color.background.input['flushed-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const PinInput: ComponentSingleStyleConfig = {\n variants: {\n outline: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n opacity,\n } }) => ({\n borderColor: color.border.input.default,\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n bg: color.background.input['outline-default'],\n color: color.text.default,\n paddingInline: spacing['padding-inline'].input.default,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focus: {\n borderColor: color.border.input.focus,\n bg: color.background.input['outline-focus'],\n },\n _invalid: {\n bg: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n _placeholder: {\n color: 'transparent',\n },\n },\n _disabled: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n _hover: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n },\n },\n _placeholder: {\n color: color.text.input.placeholder,\n },\n _readonly: {\n borderColor: color.border.input.readonly,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Select: ComponentMultiStyleConfig = {\n parts: [ 'field', 'icon' ],\n variants: {\n outline: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].select.default,\n paddingInlineEnd: spacing['padding-inline'].select.default,\n borderWidth: borderWidth.select,\n color: color.text.default,\n borderColor: color.border.select.default,\n borderRadius: borderRadius.select.default,\n _hover: {\n borderColor: color.border.select['default-hover'],\n },\n _focusVisible: {\n borderColor: color.border.select.focus,\n boxShadow: `0 0 0 1px ${color.border.select.focus}`,\n },\n _invalid: {\n borderColor: color.border.select.error,\n boxShadow: 'none',\n },\n _readOnly: {\n borderWidth: borderWidth.select,\n borderColor: color.border.select.readonly,\n _focusVisible: {\n borderColor: color.border.select.readonly,\n },\n },\n _disabled: {\n borderColor: color.border.select.disabled,\n bg: color.background.select.disabled,\n _hover: {\n borderColor: color.border.select.disabled,\n },\n },\n _placeholder: {\n color: color.text.select.placeholder,\n },\n },\n icon: {\n color: color.icon.select.default,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Radio: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label', 'container' ],\n sizes: {\n sm: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-sm'],\n },\n },\n }),\n md: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-md'],\n },\n },\n }),\n lg: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-lg'],\n },\n },\n }),\n },\n baseStyle: ({ theme: { borders: borderWidth, colors: color } }) => ({\n control: {\n borderColor: color.border.radio.default,\n bg: color.background.radio.default,\n borderWidth: borderWidth.radio.default,\n _checked: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n _hover: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n },\n },\n _hover: {\n borderColor: color.border.radio['default-hover'],\n bg: color.background.radio.default,\n },\n _disabled: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n _hover: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n },\n },\n _invalid: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n _hover: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n defaultProps: {\n size: 'md',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Tabs: ComponentMultiStyleConfig = {\n parts: [ 'tab' ],\n variants: {\n 'soft-rounded': ({ theme: { colors: color } }) => ({\n tab: {\n borderRadius: 999,\n color: color.text.subdued,\n _selected: {\n bg: color.background.tabs['soft-rounded-active'],\n color: color.text.tabs['soft-rounded-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Textarea: ComponentSingleStyleConfig = {\n variants: {\n outline: ({ theme: {\n space: spacing,\n colors: color,\n borders: borderWidth,\n radii: borderRadius,\n } }) => ({\n paddingInlineStart: spacing['padding-inline'].textarea.default,\n paddingInlineEnd: spacing['padding-inline'].textarea.default,\n borderRadius: borderRadius.textarea.default,\n borderWidth: borderWidth.textarea.default,\n borderColor: color.border.textarea.default,\n color: color.text.default,\n bgColor: color.background.textarea.default,\n _hover: {\n borderColor: color.border.textarea['default-hover'],\n bgColor: color.background.textarea.hover,\n },\n _focusVisible: {\n borderColor: color.border.textarea.focus,\n boxShadow: `0 0 0 1px ${color.border.textarea.focus}`,\n bgColor: color.background.textarea.active,\n },\n _invalid: {\n boxShadow: 'none',\n borderColor: color.border.textarea.error,\n bgColor: color.background.textarea.error,\n },\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.textarea.readonly,\n bgColor: color.background.textarea.default,\n },\n _hover: {\n borderColor: color.border.textarea.readonly,\n },\n },\n _disabled: {\n bgColor: color.background.textarea.disabled,\n _hover: {\n borderColor: color.border.textarea.default,\n },\n },\n _placeholder: {\n color: color.text.textarea.placeholder,\n },\n }),\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Link: ComponentSingleStyleConfig = {\n baseStyle: ({ colorScheme }) => ({\n _focus: {\n ring: '2px',\n ringColor: `${colorScheme}.100`,\n ringOffset: '1px',\n },\n }),\n defaultProps: {\n colorScheme: 'mediatoolBlue',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Switch: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n _disabled: {\n opacity: opacity.switch.disabled,\n },\n track: {\n bgColor: color.background.switch.default,\n _checked: {\n bgColor: color.background.switch['default-checked'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n thumb: {\n bgColor: color.background.switch.thumb,\n },\n }),\n}\n","import {\n ComponentMultiStyleConfig, useToken,\n} from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const Tag: ComponentMultiStyleConfig = {\n parts: [ 'container' ],\n baseStyle: {\n container: {\n fontWeight: 'semibold',\n },\n },\n sizes: {\n sm: {\n container: {\n borderRadius: 'tag.default',\n },\n },\n md: {\n container: {\n borderRadius: 'tag.default',\n },\n },\n lg: {\n container: {\n borderRadius: 'tag.default',\n },\n },\n },\n variants: {\n solid: ({ bgColor, colorScheme }) => ({\n container: {\n bgColor: bgColor ?? colorScheme,\n color: getContrastColor(bgColor ?? useToken('colors', colorScheme)),\n },\n }),\n subtle: () => ({\n container: {\n bgColor: useToken('colors', 'background.tag.subtle'),\n color: 'text.default',\n },\n }),\n },\n defaultProps: {\n size: 'md',\n colorScheme: 'background.tag.default',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Alert: ComponentMultiStyleConfig = {\n parts: [ 'container', 'title', 'description' ],\n baseStyle: ({ theme: {\n radii: borderRadius,\n colors: color,\n space: coreSpacing,\n } }) => ({\n container: {\n borderRadius: borderRadius.toast.default,\n color: color.text.default,\n paddingEnd: coreSpacing[8],\n width: 'auto',\n display: 'flex',\n },\n }),\n variants: {\n success: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.success,\n },\n }),\n warning: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.warning,\n },\n }),\n info: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.info,\n },\n }),\n error: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.background.toast.error,\n color: color.text.toast.error,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const NumberInput: ComponentMultiStyleConfig = {\n parts: [ 'root', 'field', 'stepper', 'stepperGroup' ],\n sizes: {\n sm: ({ theme: { radii: borderRadius, sizes: sizing } }) => ({\n field: {\n borderRadius: borderRadius.input.outline,\n },\n stepperGroup: {\n height: sizing['8'],\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['10'],\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['12'],\n },\n }),\n },\n baseStyle: ({ theme: {\n sizes: sizing,\n space: spacing,\n colors: color,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n }, isReadOnly }) => ({\n root: {\n borderRadius: borderRadius.input.outline,\n },\n field: {\n minWidth: sizing['44'],\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n WebkitPaddingStart: spacing['padding-inline'].input.default,\n WebkitPaddingEnd: spacing['padding-inline'].input.default,\n color: color.text.default,\n bg: color.background.input['outline-default'],\n\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n paddingRight: spacing.paddingRight['number-input'].field,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focusVisible: {\n bg: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n boxShadow: `0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n bg: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n },\n _disabled: {\n bg: color.background.input['outline-disabled'],\n opacity: opacity.input.disabled,\n borderColor: color.border.input.disabled,\n },\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n boxShadow: 'none',\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n },\n stepperGroup: {\n width: 'auto',\n paddingRight: spacing.paddingRight['number-input'].stepper,\n },\n stepper: {\n _first: {\n border: 'none',\n borderTopRightRadius: borderRadius['input-stepper'].default,\n borderRadius: borderRadius['input-stepper'].default,\n bg: color.background['input-stepper'].default,\n opacity: isReadOnly ? opacity.input.disabled : 'auto',\n _hover: {\n bg: isReadOnly ? 'none' : color.background['input-stepper'].hover,\n },\n _active: {\n bg: color.background['input-stepper'].active,\n },\n _disabled: {\n bg: color.background['input-stepper'].disabled,\n color: color.icon['input-stepper'].disabled,\n },\n },\n _last: {\n border: 'none',\n bg: color.background['input-stepper'].default,\n borderBottomRightRadius: borderRadius['input-stepper'].default,\n borderRadius: borderRadius['input-stepper'].default,\n opacity: isReadOnly ? opacity.input.disabled : 'auto',\n _hover: {\n bg: isReadOnly ? 'none' : color.background['input-stepper'].hover,\n },\n _active: {\n bg: color.background['input-stepper'].active,\n },\n _disabled: {\n bg: color.background['input-stepper'].disabled,\n color: color.icon['input-stepper'].disabled,\n },\n },\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const NotificationIconButton: ComponentMultiStyleConfig = {\n parts: [ 'container', 'notifier' ],\n sizes: {\n xs: {\n notifier: {\n top: '0.5',\n right: '0.5',\n },\n },\n sm: {\n notifier: {\n top: '0.5',\n right: '0.5',\n },\n },\n md: {\n notifier: {\n top: '1',\n right: '1',\n },\n },\n lg: {\n notifier: {\n top: '2',\n right: '2',\n },\n },\n },\n variants: {\n link: {\n notifier: {\n position: 'absolute',\n top: '0',\n right: '0',\n zIndex: 'base',\n },\n },\n },\n baseStyle: () => ({\n container: {\n position: 'relative',\n },\n notifier: {\n position: 'absolute',\n top: '1',\n right: '1',\n zIndex: 'base',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { ring } from '../../../utils'\n\nexport const Calendar: ComponentMultiStyleConfig = {\n parts: [ 'container', 'dateSelect', 'dayLabel', 'rangeCalendarContainer' ],\n baseStyle: ({ theme: {\n space: spacing,\n sizes: sizing,\n colors: color,\n } }) => ({\n container: {\n p: spacing[2],\n w: sizing[64],\n bgColor: 'background.default',\n border: '1px solid',\n borderColor: 'border.input.default',\n borderRadius: 'input.outline',\n },\n rangeCalendarContainer: {\n p: '3',\n w: '128',\n bgColor: 'background.default',\n borderRadius: 'input.outline',\n },\n dateSelect: {\n fontWeight: 'semibold',\n border: 'none',\n padding: '0',\n borderRadius: 'md',\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n cursor: 'pointer',\n bgColor: color.background.button['ghost-hover'],\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n ...ring,\n },\n dayLabel: {\n color: color.gray[600],\n fontSize: 'xs',\n p: spacing[2],\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const DragAndDrop: ComponentMultiStyleConfig = {\n parts: [ 'dropZone' ],\n baseStyle: ({ sx }) => ({\n dropZone: merge({\n borderWidth: 'st.border.width.sm',\n borderStyle: 'dashed',\n borderColor: 'border.default',\n padding: '4',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '4',\n justifyContent: 'center',\n textAlign: 'center',\n minH: '56',\n minW: '56',\n bgColor: 'bg.filled',\n }, sx),\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const DatePicker: ComponentMultiStyleConfig = {\n parts: [ 'group', 'styledField', 'dateField', 'dateSegment' ],\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n group: {\n position: 'relative',\n alignItems: 'center',\n flex: 1,\n },\n styledField: {\n bgColor: 'background.default',\n _focusWithin: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.textarea.focus,\n boxShadow: `0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n boxShadow: `0 0 0 1px ${color.border.input.error}`,\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n dateField: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n },\n dateSegment: {\n caretColor: 'transparent',\n boxSizing: 'content-box',\n textAlign: 'center',\n outline: 'none',\n rounded: 'md',\n _focus: {\n bgColor: 'blue.500',\n color: color.text.inverted,\n },\n _placeholder: {\n color: 'red.500',\n },\n },\n }),\n variants: {\n outline: ({\n theme: { colors: color, radii: borderRadius, borders: borderWidth },\n }) => ({\n styledField: {\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n },\n }),\n filled: ({\n theme: { colors: color, radii: borderRadius, borders: borderWidth },\n }) => ({\n styledField: {\n bgColor: color.background.input['filled-default'],\n borderRadius: borderRadius.input.filled,\n borderWidth: borderWidth.input.default,\n borderColor: color.background.input['filled-default'],\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const FlipButton: ComponentMultiStyleConfig = {\n parts: [ 'container', 'button', 'buttonIcon' ],\n sizes: {\n xs: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].xs,\n minWidth: sizing['flip-button'].xs,\n paddingInlineStart: spacing['padding-inline']['flip-button'].xs,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].xs,\n fontSize: 'xs',\n },\n buttonIcon: {\n boxSize: sizing.icon.xs,\n },\n }),\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].sm,\n minWidth: sizing['flip-button'].sm,\n paddingInlineStart: spacing['padding-inline']['flip-button'].md,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].md,\n fontSize: 'sm',\n buttonIcon: {\n boxSize: sizing.icon.sm,\n },\n },\n }),\n md: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].md,\n minWidth: sizing['flip-button'].md,\n paddingInlineStart: spacing['padding-inline']['flip-button'].md,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].md,\n fontSize: 'md',\n buttonIcon: {\n boxSize: sizing.icon.md,\n },\n },\n }),\n lg: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].lg,\n minWidth: sizing['flip-button'].lg,\n paddingInlineStart: spacing['padding-inline']['flip-button'].lg,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].lg,\n fontSize: 'lg',\n buttonIcon: {\n boxSize: sizing.icon.lg,\n },\n },\n }),\n },\n baseStyle: ({ theme: {\n space: spacing,\n sizes: sizing,\n colors: color,\n opacity,\n radii: borderRadius,\n fontWeights: coreFontWeight,\n }, numberOfButtons }) => ({\n container: {\n borderRadius: borderRadius['flip-button'].default,\n paddingInlineStart: spacing['padding-inline']['flip-button-group'].default,\n paddingInlineEnd: spacing['padding-inline']['flip-button-group'].default,\n paddingY: spacing.paddingY['flip-button-group'].default,\n disply: 'grid',\n width: '100%',\n gap: spacing['padding-inline']['flip-button'].gap,\n gridTemplateColumns: `repeat(${numberOfButtons}, minmax(${sizing[32]}, 1fr))`,\n gridTemplateRows: '1fr',\n overflowX: 'auto',\n },\n button: {\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n color: color.text['flip-button'].default,\n cursor: 'pointer',\n borderRadius: borderRadius['flip-button'].default,\n fontWeight: coreFontWeight.semiBold,\n _disabled: {\n opacity: opacity['flip-button'].disabled,\n },\n _checked: {\n color: color.text['flip-button'].inverted,\n },\n },\n }),\n variants: {\n default: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-blue'],\n }, sx),\n button: {\n bgColor: color.background['flip-button']['default-deselected-blue'],\n _hover: {\n bgColor: color.background['flip-button']['hover-deselected-blue'],\n },\n _checked: {\n bgColor: color.background['flip-button']['default-selected-blue'],\n _hover: {\n bgColor: color.background['flip-button']['default-selected-blue'],\n },\n },\n },\n }),\n brand: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-brand'],\n }, sx),\n button: {\n bgColor: color.background['flip-button']['default-deselected-brand'],\n _hover: {\n bgColor: color.background['flip-button']['hover-deselected-brand'],\n },\n _checked: {\n bgColor: color.background['flip-button']['default-selected-brand'],\n _hover: {\n bgColor: color.background['flip-button']['default-selected-brand'],\n },\n },\n },\n }),\n },\n defaultProps: {\n size: 'md',\n variant: 'default',\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Spinner: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, borders: borderWidth } }) => ({\n borderWidth: borderWidth.spinner.default,\n color: color.background.spinner.thumb,\n borderBottomColor: color.background.spinner.track,\n borderLeftColor: color.background.spinner.track,\n }),\n}\n","import { randomColor } from '@chakra-ui/theme-tools'\nimport { getShades } from '../../../utils'\n\nconst possibleBgColors = getShades(400, 600)\n\nexport const getAvatarBgColor = (image: string, name: string, color: any) => {\n if (image) return color.background.avatar.image\n if (name) return randomColor({ string: name, colors: possibleBgColors })\n\n return color.background.avatar.default\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\nimport { getAvatarBgColor } from './get-avatar-bg-color'\n\nexport const Avatar: ComponentMultiStyleConfig = {\n parts: [ 'container', 'text', 'badge', 'icon' ],\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xs'],\n height: sizing.avatar['2xs'],\n },\n text: {\n lineHeight: sizing.avatar['2xs'],\n },\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xs,\n height: sizing.avatar.xs,\n },\n text: {\n lineHeight: sizing.avatar.xs,\n },\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.sm,\n height: sizing.avatar.sm,\n },\n text: {\n lineHeight: sizing.avatar.sm,\n },\n icon: {\n boxSize: sizing.avatar.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.md,\n height: sizing.avatar.md,\n },\n text: {\n lineHeight: sizing.avatar.md,\n },\n icon: {\n boxSize: sizing.avatar.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.lg,\n height: sizing.avatar.lg,\n },\n text: {\n lineHeight: sizing.avatar.lg,\n },\n icon: {\n boxSize: sizing.avatar.lg,\n },\n }),\n xl: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xl,\n height: sizing.avatar.xl,\n },\n text: {\n lineHeight: sizing.avatar.xl,\n },\n }),\n '2xl': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xl'],\n height: sizing.avatar['2xl'],\n },\n text: {\n lineHeight: sizing.avatar['2xl'],\n },\n }),\n\n },\n baseStyle: ({ theme: {\n colors: color,\n sizes: sizing,\n radii: borderRadius,\n }, image, name }) => {\n const avatarBgColor = getAvatarBgColor(image, name, color)\n\n return {\n container: {\n bgColor: avatarBgColor,\n color: getContrastColor(avatarBgColor),\n display: 'grid',\n placeItems: 'center',\n objectFit: 'cover',\n position: 'relative',\n },\n userImage: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n badge: {\n position: 'absolute',\n bottom: `-${sizing['1']}`,\n right: `-${sizing['1']}`,\n minWidth: sizing['5'],\n height: sizing['5'],\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: 'xs',\n fontWeight: 'semibold',\n padding: sizing['0a'],\n bgColor: color.red['500'],\n color: color.text.inverted,\n borderRadius: borderRadius.avatar.square,\n border: 'none',\n },\n\n }\n },\n variants: {\n square: ({ theme: { radii: borderRadius } }) => ({\n container: {\n aspectRatio: '1 / 1',\n borderRadius: borderRadius.avatar.square,\n '> img': {\n borderRadius: borderRadius.avatar.square,\n aspectRatio: '1 / 1',\n },\n },\n badge: {\n borderRadius: borderRadius.avatar.square,\n },\n }),\n rounded: ({ theme: { radii: borderRadius } }) => ({\n container: {\n aspectRatio: '1 / 1',\n borderRadius: borderRadius.avatar.rounded,\n '> img': {\n borderRadius: borderRadius.avatar.rounded,\n aspectRatio: '1 / 1',\n },\n },\n badge: {\n borderRadius: borderRadius.avatar.rounded,\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const CloseButton: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-hover'],\n _disabled: {\n bgColor: color.background.button.ghost,\n },\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n }),\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Modal: ComponentMultiStyleConfig = {\n parts: [ 'overlay', 'closeButton', 'dialog' ],\n sizes: {\n huge: {\n dialog: {\n width: '90%',\n maxW: '96rem',\n aspectRatio: '16/9',\n },\n },\n },\n baseStyle: ({ theme }) => {\n const {\n typography: { headings: { h3 } },\n } = theme\n return ({\n overlay: {\n bgColor: 'background.modal.overlay',\n backdropFilter: 'blur(8px)',\n },\n closeButton: {\n top: 4,\n right: 4,\n },\n dialog: {\n bgColor: 'background.default',\n borderRadius: 'modal.dialog',\n },\n header: {\n fontSize: h3.fontSize,\n paddingTop: 'paddingTop.modal.header',\n paddingBottom: 'paddingBottom.modal.header',\n border: 'modal.header',\n borderBottomColor: 'border.modal.header',\n borderBottomStyle: 'solid',\n },\n body: {\n paddingTop: 'paddingTop.modal.body',\n paddingBottom: 'paddingBottom.modal.body',\n },\n footer: {\n paddingTop: 'paddingTop.modal.footer',\n paddingBottom: 'paddingBottom.modal.footer',\n },\n })\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Tooltip: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, space: spacing, radii: borderRadius } }) => ({\n backgroundColor: color.background.tooltip.default,\n color: color.text.inverted,\n paddingInline: spacing['padding-inline'].tooltip.default,\n paddingY: spacing.paddingY.tooltip.default,\n borderRadius: borderRadius.tooltip.default,\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Icon: ComponentSingleStyleConfig = {\n sizes: {\n xs: {\n boxSize: 'icon.xs',\n },\n sm: {\n boxSize: 'icon.sm',\n },\n md: {\n boxSize: 'icon.md',\n },\n lg: {\n boxSize: 'icon.lg',\n },\n },\n baseStyle: ({ boxSize, color }) => ({\n boxSize: boxSize || 'icon.default',\n color: color || 'inherit',\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const ClipboardInput: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'tooltip' ],\n sizes: {\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n tooltip: {\n paddingInline: spacing['padding-inline'].tooltip.sm,\n paddingY: spacing.paddingY.tooltip.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const ColorPicker: ComponentMultiStyleConfig = {\n parts: [ 'colorButton', 'trigger', 'heading' ],\n baseStyle: ({ theme, selectedColor }) => {\n const { sizes: sizing, colors: color } = theme\n return ({\n heading: {\n border: 'none',\n paddingInlineStart: sizing['4'],\n paddingInlineEnd: sizing['2'],\n paddingBottom: sizing['0'],\n fontSize: 'md',\n fontWeight: 'semibold',\n },\n trigger: {\n bgColor: selectedColor ?? color.background.button.default,\n color: selectedColor ? getContrastColor(selectedColor) : 'unset',\n _hover: {\n bgColor: selectedColor ?? color.background.button['default-hover'],\n },\n _active: {\n bgColor: selectedColor ?? color.background.button['default-active'],\n },\n },\n colorButton: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n _hover: {\n ring: '2px',\n ringOffset: '1px',\n ringColor: `${color.border.input['default-hover']}`,\n },\n },\n })\n },\n sizes: {\n sm: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.lg,\n minWidth: sizing.button.lg,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Step: ComponentMultiStyleConfig = {\n parts: [ 'step', 'label', 'description' ],\n baseStyle: ({ theme: {\n colors: color,\n fontWeights,\n space: spacing,\n borders: borderWidth,\n } }) => ({\n step: {\n justifyContent: 'start',\n alignItems: 'start',\n bgColor: color.background.step.default,\n borderTopWidth: borderWidth.step.default,\n borderColor: color.border.step.default,\n borderBottom: 'none',\n paddingInline: spacing['padding-inline'].step.default,\n color: color.text.subdued,\n _hover: {\n bgColor: color.background.step.hover,\n borderColor: color.border.step.hover,\n },\n _active: {\n bgColor: color.background.step.active,\n },\n _selected: {\n bgColor: color.background.step.selected,\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n _hover: {\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n },\n },\n },\n label: {\n color: 'inherit',\n pt: spacing.paddingTop.step.label,\n textAlign: 'start',\n fontWeight: fontWeights.bold,\n },\n description: {\n textAlign: 'start',\n fontWeight: fontWeights.semiBold,\n color: color.text.default,\n },\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const StepList: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, tabs }) => ({\n display: 'grid',\n width: '100%',\n gridTemplateColumns: `repeat(${tabs}, minmax(${sizing[32]}, 1fr))`,\n gridTemplateRows: '1fr',\n overflowX: 'auto',\n borderBottom: 'none',\n paddingBottom: sizing[2],\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H1: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h1 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h1.fontFamily,\n fontWeight: h1.fontWeight,\n lineHeight: h1.lineHeight,\n fontSize: h1.fontSize,\n letterSpacing: h1.letterSpacing,\n textTransform: h1.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H2: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h2 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h2.fontFamily,\n fontWeight: h2.fontWeight,\n lineHeight: h2.lineHeight,\n fontSize: h2.fontSize,\n letterSpacing: h2.letterSpacing,\n textTransform: h2.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H3: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h3 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h3.fontFamily,\n fontWeight: h3.fontWeight,\n lineHeight: h3.lineHeight,\n fontSize: h3.fontSize,\n letterSpacing: h3.letterSpacing,\n textTransform: h3.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H4: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h4 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h4.fontFamily,\n fontWeight: h4.fontWeight,\n lineHeight: h4.lineHeight,\n fontSize: h4.fontSize,\n letterSpacing: h4.letterSpacing,\n textTransform: h4.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H5: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h5 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h5.fontFamily,\n fontWeight: h5.fontWeight,\n lineHeight: h5.lineHeight,\n fontSize: h5.fontSize,\n letterSpacing: h5.letterSpacing,\n textTransform: h5.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H6: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h6 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h6.fontFamily,\n fontWeight: h6.fontWeight,\n lineHeight: h6.lineHeight,\n fontSize: h6.fontSize,\n letterSpacing: h6.letterSpacing,\n textTransform: h6.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Blockquote: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { blockquote } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: blockquote.fontFamily,\n fontWeight: blockquote.fontWeight,\n lineHeight: blockquote.lineHeight,\n fontSize: blockquote.fontSize,\n letterSpacing: blockquote.letterSpacing,\n textTransform: blockquote.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Tiny: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { tiny } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: tiny.fontFamily,\n fontWeight: tiny.fontWeight,\n lineHeight: tiny.lineHeight,\n fontSize: tiny.fontSize,\n letterSpacing: tiny.letterSpacing,\n textTransform: tiny.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Capitalized: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { CAPITALIZED } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: CAPITALIZED.fontFamily,\n fontWeight: CAPITALIZED.fontWeight,\n lineHeight: CAPITALIZED.lineHeight,\n fontSize: CAPITALIZED.fontSize,\n letterSpacing: CAPITALIZED.letterSpacing,\n textTransform: CAPITALIZED.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Lead: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { lead } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: lead.fontFamily,\n fontWeight: lead.fontWeight,\n lineHeight: lead.lineHeight,\n fontSize: lead.fontSize,\n letterSpacing: lead.letterSpacing,\n textTransform: lead.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Small: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { small } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: small.fontFamily,\n fontWeight: small.fontWeight,\n lineHeight: small.lineHeight,\n fontSize: small.fontSize,\n letterSpacing: small.letterSpacing,\n textTransform: small.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const P: ComponentSingleStyleConfig = {\n variants: {\n 14: ({ theme, sx }) => {\n const { body14 } = theme.typography.body\n return merge({\n fontFamily: body14.fontFamily,\n fontWeight: body14.fontWeight,\n lineHeight: body14.lineHeight,\n fontSize: body14.fontSize,\n letterSpacing: body14.letterSpacing,\n textTransform: body14.textCase,\n }, sx)\n },\n 16: ({ theme, sx }) => {\n const { body16 } = theme.typography.body\n return merge({\n fontFamily: body16.fontFamily,\n fontWeight: body16.fontWeight,\n lineHeight: body16.lineHeight,\n fontSize: body16.fontSize,\n letterSpacing: body16.letterSpacing,\n textTransform: body16.textCase,\n }, sx)\n },\n },\n baseStyle: {\n color: 'text.default',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Label: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, sx }) => merge({\n color: 'inherit',\n width: '100%',\n maxWidth: '100%',\n marginBottom: sizing[0],\n marginInlineStart: sizing[0],\n marginEnd: sizing[0],\n marginInlineEnd: sizing[0],\n }, sx),\n sizes: {\n '2xs': ({ theme, sx }) => {\n const { tinyLabel } = theme.typography.labels\n return merge({\n fontFamily: tinyLabel.fontFamily,\n fontWeight: tinyLabel.fontWeight,\n lineHeight: tinyLabel.lineHeight,\n fontSize: tinyLabel.fontSize,\n letterSpacing: tinyLabel.letterSpacing,\n textTransform: tinyLabel.textCase,\n }, sx)\n },\n xs: ({ theme, sx }) => {\n const { xsLabel } = theme.typography.labels\n return merge({\n fontFamily: xsLabel.fontFamily,\n fontWeight: xsLabel.fontWeight,\n lineHeight: xsLabel.lineHeight,\n fontSize: xsLabel.fontSize,\n letterSpacing: xsLabel.letterSpacing,\n textTransform: xsLabel.textCase,\n }, sx)\n },\n sm: ({ theme, sx }) => {\n const { smLabel } = theme.typography.labels\n return merge({\n fontFamily: smLabel.fontFamily,\n fontWeight: smLabel.fontWeight,\n lineHeight: smLabel.lineHeight,\n fontSize: smLabel.fontSize,\n letterSpacing: smLabel.letterSpacing,\n textTransform: smLabel.textCase,\n }, sx)\n },\n md: ({ theme, sx }) => {\n const { mdLabel } = theme.typography.labels\n return merge({\n fontFamily: mdLabel.fontFamily,\n fontWeight: mdLabel.fontWeight,\n lineHeight: mdLabel.lineHeight,\n fontSize: mdLabel.fontSize,\n letterSpacing: mdLabel.letterSpacing,\n textTransform: mdLabel.textCase,\n }, sx)\n },\n lg: ({ theme, sx }) => {\n const { lgLabel } = theme.typography.labels\n return merge({\n fontFamily: lgLabel.fontFamily,\n fontWeight: lgLabel.fontWeight,\n lineHeight: lgLabel.lineHeight,\n fontSize: lgLabel.fontSize,\n letterSpacing: lgLabel.letterSpacing,\n textTransform: lgLabel.textCase,\n }, sx)\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const SplitPane: ComponentSingleStyleConfig = {\n baseStyle: ({ minLeftWidth, minRightWidth, initialSplit, isOpen }) => ({\n display: 'grid',\n overflow: 'hidden',\n gridTemplateColumns: !isOpen ? '1fr' : `minmax(${minLeftWidth}%, var(--split-pos, ${initialSplit}%)) auto minmax(${minRightWidth}%, 1fr)`,\n alignItems: 'stretch',\n justifyItems: 'stretch',\n height: '100%',\n width: '100%',\n }),\n}\n\nexport const PaneDivider: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, sizes: sizing } }) => ({\n bgColor: color.background['pane-divider'].default,\n zIndex: 300,\n cursor: 'col-resize',\n height: '100%',\n width: sizing[1],\n _hover: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n _active: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Carousel: ComponentMultiStyleConfig = {\n parts: [ 'container', 'arrow', 'radio' ],\n baseStyle: {\n container: {\n display: 'grid',\n placeItems: 'center',\n position: 'relative',\n overflow: 'hidden',\n width: 'full',\n height: 'full',\n },\n radio: {\n position: 'absolute',\n bottom: '1',\n left: '50%',\n transform: 'translateX(-50%)',\n overflowX: 'scroll',\n maxWidth: '90%',\n padding: '2',\n },\n arrow: {\n position: 'absolute',\n bottom: '0',\n height: '100%',\n cursor: 'pointer',\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const EditableText: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'controls', 'preview', 'input' ],\n sizes: {\n sm: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n controls: {\n width: !isEditing ? 6 : '3.25rem',\n },\n preview: {\n pt: 1,\n },\n input: {\n paddingInlineEnd: 16,\n paddingRight: 16,\n },\n }),\n md: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n controls: {\n width: !isEditing ? 8 : '4.25rem',\n },\n preview: {\n pt: '7px',\n },\n input: {\n paddingInlineEnd: 20,\n paddingRight: 20,\n },\n }),\n lg: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n controls: {\n width: !isEditing ? 10 : '5.25rem',\n },\n preview: {\n pt: '8px',\n },\n input: {\n paddingInlineEnd: 24,\n paddingRight: 24,\n },\n }),\n },\n baseStyle: {\n controls: {\n mr: 1,\n },\n preview: {\n fontWeight: 'semibold',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n paddingTop: 0,\n paddingBottom: 0,\n },\n input: {\n fontWeight: 'semibold',\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Toolbox: ComponentMultiStyleConfig = {\n parts: [ 'container', 'header', 'body', 'footer' ],\n baseStyle: ({ theme: { sizes: sizing } }) => ({\n container: {\n position: 'relative',\n flexDirection: 'column',\n bg: 'text.inverted',\n h: '100vh',\n borderLeftWidth: '1px',\n borderLeftStyle: 'solid',\n borderLeftColor: 'gray.100',\n },\n header: {\n alignItems: 'center',\n height: '16',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n borderBottomColor: 'gray.100',\n pl: '4',\n pr: '16',\n },\n footer: {\n position: 'absolute',\n bottom: '0',\n w: 'full',\n p: '4',\n alignItems: 'center',\n height: '16',\n borderTopWidth: '1px',\n borderTopStyle: 'solid',\n borderTopColor: 'gray.100',\n },\n body: {\n p: sizing['4'],\n flexDirection: 'column',\n w: '100%',\n h: '100%',\n maxH: `calc(100vh - ${sizing['16']} * 2)`,\n overflowY: 'scroll',\n },\n }),\n sizes: {\n sm: {\n container: {\n w: 'xs',\n },\n },\n md: {\n container: {\n w: 'md',\n },\n },\n lg: {\n container: {\n w: 'xl',\n },\n },\n },\n}\n","import { ComponentMultiStyleConfig, keyframes } from '@chakra-ui/react'\nimport { CSSObject } from '@emotion/react'\nimport { CurrentTheme } from '../../../utils'\n\nconst shakeAnimation = keyframes`\n 0% { transform: translate(1px, 1px) rotate(0deg); }\n 10% { transform: translate(-1px, -2px) rotate(-1deg); }\n 20% { transform: translate(-3px, 0px) rotate(1deg); }\n 30% { transform: translate(3px, 2px) rotate(0deg); }\n 40% { transform: translate(1px, -1px) rotate(1deg); }\n 50% { transform: translate(-1px, 2px) rotate(-1deg); }\n 60% { transform: translate(-3px, 1px) rotate(0deg); }\n 70% { transform: translate(3px, 1px) rotate(-1deg); }\n 80% { transform: translate(-1px, -1px) rotate(1deg); }\n 90% { transform: translate(1px, 2px) rotate(0deg); }\n 100% { transform: translate(1px, -2px) rotate(-1deg); }\n`\n\nconst thickRing: CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '3px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n\nconst getBgColor = (currentTheme: CurrentTheme) => {\n switch (currentTheme) {\n case 'webappTheme': return 'blue.50'\n case 'tottTheme': return 'blue.900'\n default: return 'bg.filled'\n }\n}\n\nconst getInvalidColorStyles = (isInvalid: boolean, isImage = true, currentTheme: CurrentTheme = 'webappTheme') => ({\n borderColor: isInvalid ? 'red.500' : 'gray.300',\n bgColor: isInvalid && 'red.50',\n animation: isInvalid && `500ms ${shakeAnimation} ease`,\n _hover: isImage && {\n bgColor: isInvalid ? 'red.50' : getBgColor(currentTheme),\n borderColor: isInvalid ? 'red.500' : 'blue.500',\n },\n})\n\nexport const FilePicker: ComponentMultiStyleConfig = {\n parts: [ 'filePicker', 'fileItem', 'multiFilePicker' ],\n baseStyle: ({ theme: { sizes, colors }, hasLoaded, isImage, isInvalid, currentTheme }) => ({\n filePicker: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: '44',\n height: '40',\n textAlign: 'center',\n position: 'relative',\n borderWidth: hasLoaded && isImage ? '0' : sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, isImage, currentTheme),\n ...thickRing,\n },\n multiFilePicker: {\n width: 'full',\n maxWidth: 'inherit',\n height: '32',\n position: 'relative',\n borderWidth: sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, undefined, currentTheme),\n ...thickRing,\n },\n fileItem: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n paddingX: '2',\n paddingY: '1',\n borderRadius: sizes['2'],\n textAlign: 'center',\n position: 'relative',\n border: `2px solid ${colors.gray['100']}`,\n minHeight: '20',\n },\n }),\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n WebappSkin as WebappSkinTokens,\n typography,\n} from '@northlight/tokens'\n\nexport const WebappSkin:ThemeOverride = {\n colors: WebappSkinTokens.color,\n sizes: WebappSkinTokens.sizing,\n space: WebappSkinTokens.spacing,\n radii: WebappSkinTokens.borderRadius,\n borders: WebappSkinTokens.borderWidth,\n opacity: WebappSkinTokens.opacity,\n typography,\n shadows: WebappSkinTokens.boxShadow,\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n TottSkin as TottSkinTokens,\n typography,\n} from '@northlight/tokens'\n\nexport const TottSkin:ThemeOverride = {\n colors: TottSkinTokens.color,\n sizes: TottSkinTokens.sizing,\n space: TottSkinTokens.spacing,\n radii: TottSkinTokens.borderRadius,\n borders: TottSkinTokens.borderWidth,\n opacity: TottSkinTokens.opacity,\n shadows: TottSkinTokens.boxShadow,\n typography,\n}\n","import {\n ThemeOverride,\n extendTheme,\n} from '@chakra-ui/react'\nimport {\n coreBorderRadius,\n coreBoxShadow,\n coreFontSize,\n coreFontWeight,\n coreLineHeight,\n coreSizing,\n coreSpacing,\n coreZIndex,\n palette,\n} from '@northlight/tokens'\nimport { scrollbarStyles } from './global/scrollbar'\nimport * as components from './components'\nimport { TottSkin, WebappSkin } from './skins'\n\nconst overrides: ThemeOverride = {\n config: {\n cssVarPrefix: '',\n },\n semanticTokens: {\n colors: {\n 'chakra-body-text': {\n _light: 'text.default',\n _dark: 'text.inverted',\n },\n },\n },\n styles: {\n global: {\n html: {\n 'scroll-behavior': 'smooth',\n overflow: 'scroll',\n },\n body: {\n height: '100%',\n },\n '#app': {\n height: '100%',\n },\n ...scrollbarStyles,\n },\n },\n fonts: {\n heading: 'Inter, sans-serif',\n body: 'Inter, sans-serif',\n },\n components: { ...components },\n colors: palette,\n zIndices: coreZIndex,\n sizes: coreSizing,\n space: coreSpacing,\n fontWeights: coreFontWeight,\n shadows: coreBoxShadow,\n fontSizes: coreFontSize,\n lineHeights: coreLineHeight,\n radii: coreBorderRadius,\n borderWidths: WebappSkin.borders,\n}\n\nexport const theme = extendTheme(overrides, WebappSkin)\n\nexport const tottTheme = extendTheme(overrides, TottSkin)\n","import React from 'react'\nimport { ChakraProvider } from '@chakra-ui/react'\nimport { theme as webappTheme } from '../../theme'\nimport { MediatoolThemeProviderProps } from './types'\nimport { CustomTheme } from '../../utils/use-current-theme'\n\n/**\n * Should be at the root of you project, wraps the app in the theme context\n * @see {@link https://northlight.dev/reference/mediatool-theme-provider}\n *\n * @example\n * Should pass down a theme from northlight/ui, currently exports two themes:\n * * theme - light mode\n * * tottTheme - dark mode\n *\n *\n */\nexport const MediatoolThemeProvider = ({\n children,\n theme = webappTheme,\n themeName = 'webappTheme',\n}: MediatoolThemeProviderProps) => (\n <ChakraProvider resetCSS={ true } theme={ theme }>\n <CustomTheme.Provider value={ themeName }>\n { children }\n </CustomTheme.Provider>\n </ChakraProvider>\n)\n","import React, { forwardRef, useState } from 'react'\nimport { Box, useMultiStyleConfig } from '@chakra-ui/react'\nimport { Blinker } from '../blinker'\nimport { IconButton } from '../icon-button'\nimport { NotificationIconButtonProps } from './types'\n\n/**\n * A custom component that composes the IconButton and Blinker components.\n * The notification blinker blinks on hover.\n * @see {@link https://northlight.dev/reference/notification-icon-button}\n *\n * @example\n * (?\n * <Box w=\"min-content\">\n<NotificationIconButton\n variant=\"brand\"\n aria-label=\"conversations\"\n icon={ <Icon as={ ConversationDuo } /> }\n hasNotification={ true }\n size=\"lg\"\n/>\n</Box>\n * ?)\n */\nexport const NotificationIconButton = forwardRef(({\n variant = 'ghost',\n icon,\n 'aria-label': ariaLabel,\n hasNotification = false,\n blinkerColor = 'green.500',\n size,\n ...rest\n}: NotificationIconButtonProps, ref: any) => {\n const [ isBlinking, setIsBlinking ] = useState(false)\n const { container, notifier } = useMultiStyleConfig('NotificationIconButton', { size, variant })\n return (\n <Box\n onMouseEnter={ () => setIsBlinking(true) }\n onMouseLeave={ () => setIsBlinking(false) }\n sx={ container }\n >\n { hasNotification && (\n <Box sx={ notifier }>\n <Blinker isBlinking={ isBlinking } color={ blinkerColor } size=\"2xs\" />\n </Box>\n ) }\n <IconButton\n variant={ variant }\n icon={ icon }\n aria-label={ ariaLabel }\n ref={ ref }\n size={ size }\n { ...rest }\n />\n </Box>\n )\n})\n","import React from 'react'\nimport { Switch as ChakraSwitch } from '@chakra-ui/react'\nimport { SwitchProps } from './types'\n\n/**\n * @see SwitchField\n * @see {@link https://northlight.dev/reference/switch}\n *\n * @example (Example)\n * Mainly used for forms, however this component is controlled by\n * a value prop and an onChange callback\n *\n * (?\n * () => {\n * const [ advancedMode, setAdvancedMode ] = useState(false)\n *\n * return (\n * <Stack p=\"2\">\n * <Label size=\"sm\" htmlFor=\"advanced-mode-switch\">Advanced mode</Label>\n * <Switch name=\"vegan-checkbox\" onChange={() => setAdvancedMode((prev) => !prev)}\n * value={advancedMode} />\n * </Stack>\n * )\n * }\n * ?)\n */\nexport const Switch = ({\n value,\n onChange,\n name,\n size = 'md',\n ...rest\n}: SwitchProps) => (\n <ChakraSwitch\n size={ size }\n id={ name }\n isChecked={ value }\n onChange={ onChange }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { Box, BoxProps, forwardRef, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * Simple vertical line for split screen\n * @see SplitPane\n * @see PaneItem\n * @see {@link https://northlight.dev/reference/pane-divider}\n * @example\n * (?\n * <Box h=\"xs\">\n * <PaneDivider />\n * </Box>\n * ?)\n * */\nexport const PaneDivider = forwardRef((props: BoxProps, ref: any) => {\n const style = useStyleConfig('PaneDivider')\n return (\n <Box\n ref={ ref }\n sx={ style }\n { ...props }\n />\n )\n})\n","import React from 'react'\nimport { NavLink } from 'react-router-dom'\nimport {\n HStack,\n Icon,\n Label,\n Stack,\n} from '../../../index'\n\nexport interface MenuItemProps {\n path: string\n title: string\n Icon: any\n}\n\nconst MenuItem = ({ path, Icon: IconComponent, title }: MenuItemProps) => (\n <HStack\n pl={ 2 }\n to={ path }\n as={ NavLink }\n borderRadius={ 6 }\n _hover={ { bgColor: 'background.button.default-hover' } }\n _activeLink={ { bgColor: 'background.button.brand', color: 'text.inverted' } }\n >\n <HStack p={ 2 }>\n <Icon as={ IconComponent } boxSize={ 6 } />\n <Label size=\"md\" sx={ { color: 'inherit', cursor: 'pointer' } }>\n { title }\n </Label>\n </HStack>\n </HStack>\n)\n\nexport interface MainMenuProps {\n menuItems: MenuItemProps[]\n}\n\nexport const MainMenu = ({ menuItems }: MainMenuProps) => (\n <Stack spacing={ 2 } mb={ 6 } color=\"text.default\" bgColor=\"bg.layer\">\n { menuItems.map((item) => <MenuItem key={ item.path } { ...item } />) }\n </Stack>\n)\n","import React from 'react'\nimport { Button } from '../../components/button'\nimport { LinkOverlay } from '../../components/link-overlay'\nimport { P } from '../../components/typography'\nimport { CurrentTheme, useCurrentTheme } from '../../utils'\n\ninterface CustomNavLinkProps {\n linkName: string\n isActive: boolean\n onClick?: () => void\n linkProps: Record<string, unknown>\n}\n\nconst getBgColor = (currentTheme: CurrentTheme) => {\n switch (currentTheme) {\n case 'webappTheme': return 'blue.100'\n case 'tottTheme': return 'blue.800'\n default: return 'bg.filled'\n }\n}\nexport const NavSideLink = ({\n linkName,\n isActive,\n onClick,\n linkProps,\n}: CustomNavLinkProps) => {\n const currentTheme = useCurrentTheme()\n const bgColorHover = getBgColor(currentTheme)\n const color = isActive ? 'mono.white' : 'text.default'\n\n return (\n <Button\n p=\"4\"\n _hover={ { bgColor: isActive ? 'bg.brand.default' : bgColorHover } }\n _active={ { bgColor: 'bg.brand.default' } }\n bgColor={ isActive ? 'bg.brand.default' : 'transparent' }\n onClick={ onClick }\n display=\"flex\"\n justifyContent=\"start\"\n >\n <LinkOverlay { ...linkProps }>\n <P sx={ { color, textAlign: 'left' } }>{ linkName }</P>\n </LinkOverlay>\n </Button>\n )\n}\n","import React from 'react'\nimport {\n NavLink,\n Route as RouterRoute,\n Switch,\n useLocation,\n} from 'react-router-dom'\nimport { NavSideLink } from '../../../lib/internal-components'\nimport { Stack } from '../../../index'\nimport { MainPage } from '../types'\n\nexport interface SubMenuItemProps {\n path: string\n title: string\n}\n\nconst SubMenuItem = ({ path, title }: SubMenuItemProps) => {\n const location = useLocation()\n const isActive = location.pathname === path\n\n return (\n <NavSideLink\n linkName={ title }\n isActive={ isActive }\n linkProps={ { to: path, as: NavLink } }\n />\n )\n}\n\ninterface SubMenuProps {\n mainRoutes: MainPage[]\n}\n\nexport const SubMenu = ({ mainRoutes }: SubMenuProps) => (\n <Stack\n color=\"text.default\"\n overflow=\"auto\"\n h=\"calc(100vh - 320px)\"\n pr={ 2 }\n bgColor=\"bg.layer\"\n sx={ {\n '::-webkit-scrollbar': { display: 'none' },\n '::-webkit-scrollbar-thumb': { background: 'blue.500' },\n _hover: { '::-webkit-scrollbar': { display: 'block' } },\n } }\n >\n <Switch>\n { mainRoutes.map(({ path: mainPath, subItems = [] }) => (\n <RouterRoute\n key={ mainPath }\n path={ mainPath }\n render={ () =>\n subItems.map(({ path, ...rest }) => {\n const subPath = `${mainPath}${path}`\n return <SubMenuItem key={ path } path={ subPath } { ...rest } />\n })\n }\n />\n )) }\n </Switch>\n </Stack>\n)\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { palette } from '@northlight/tokens'\nimport { getContrastColor } from '../../../../lib/utils'\n\nexport const searchComponentsBarStyles: ChakraStylesConfig = {\n loadingIndicator: () => ({ display: 'none' }),\n control: (styles, { menuIsOpen, options }) => ({\n ...styles,\n _focusVisible: {},\n border: 'none',\n p: '4',\n width: '95%',\n mx: 'auto',\n borderBottom:\n menuIsOpen && options.length > 0\n ? `2px dashed ${palette.gray['100']}`\n : '2px dashed transparent',\n zIndex: 'maxnus',\n }),\n menu: (styles) => ({\n ...styles,\n mb: '0',\n mt: '-1',\n }),\n menuList: (styles) => ({\n ...styles,\n pt: '2',\n pb: '16',\n height: 'auto',\n maxHeight: '3xl',\n borderTopLeftRadius: '0',\n borderTopRightRadius: '0',\n borderBottomLeftRadius: 'md',\n borderBottomRightRadius: 'md',\n border: 'none',\n bgColor: 'background.default',\n }),\n option: (styles, { isFocused }) => {\n const focusRing = isFocused && {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n }\n\n const bgColor = isFocused ? 'bg.brand.hover' : 'bg.filled'\n const color = getContrastColor(bgColor)\n\n return {\n ...styles,\n mt: '4',\n p: '4',\n borderRadius: 'md',\n w: '90%',\n mx: 'auto',\n transition: 'none',\n bgColor,\n color,\n fontWeight: 'semibold',\n ...focusRing,\n }\n },\n}\n","import React from 'react'\nimport { ArrowCircleRightDuo } from '@northlight/icons'\nimport {\n HStack,\n Icon,\n Text,\n} from '../../../../lib'\nimport { RouteOption } from '../../types'\n\nexport const ComponentPageLink = ({ label }: RouteOption) => (\n <HStack justifyContent=\"space-between\" w=\"full\">\n <Text>{ label }</Text>\n <Icon as={ ArrowCircleRightDuo } size=\"lg\" />\n </HStack>\n)\n","import React, { KeyboardEvent, useEffect, useMemo, useRef } from 'react'\nimport { useHistory } from 'react-router-dom'\nimport Fuse from 'fuse.js'\nimport { chain, defaultTo, map, prop } from 'ramda'\nimport { Modal, ModalContent, ModalOverlay } from '@chakra-ui/react'\nimport { searchComponentsBarStyles } from './styles'\nimport { Card, SearchBar, Stack, useDisclosure } from '../../../../lib'\nimport { RouteOption, SearchBarComponentsBarProps } from '../../types'\nimport { ComponentPageLink } from './component-page-link'\n\nexport const SearchComponentsBar = ({\n routes,\n}: SearchBarComponentsBarProps) => {\n const { isOpen, onOpen, onClose } = useDisclosure()\n const history = useHistory()\n const ref = useRef(null)\n\n const handleKeyboardShortcut = (e: globalThis.KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key === 'k') {\n onOpen()\n }\n }\n\n useEffect(() => {\n window.addEventListener('keydown', handleKeyboardShortcut)\n return () => {\n window.removeEventListener('keydown', handleKeyboardShortcut)\n }\n }, [])\n\n const options = chain(\n (route) =>\n defaultTo([], route.subItems).map((subRoute) => ({\n value: `${route.path}${subRoute.path}`,\n label: `${route.title} ${subRoute.title}`,\n })),\n routes\n )\n\n const fuse = useMemo(\n () =>\n new Fuse(options, {\n threshold: 0.2,\n keys: [ 'label' ],\n }),\n [ options ]\n )\n\n const handleChange = ({ value }: RouteOption) => {\n history.push(`${value}`)\n onClose()\n }\n\n const loadOptions = async (query: string) =>\n map(prop('item'), fuse.search(query))\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n onClose()\n }\n }\n\n return (\n <Stack w=\"full\">\n <Card w=\"full\">\n <SearchBar placeholder=\"Search\" onMenuOpen={ onOpen } variant=\"filled\" />\n </Card>\n <Modal\n isOpen={ isOpen }\n onClose={ onClose }\n size=\"4xl\"\n autoFocus={ true }\n initialFocusRef={ ref }\n >\n <ModalOverlay />\n <ModalContent>\n <SearchBar\n loadOptions={ loadOptions }\n debouncedWaitTime={ 0 }\n closeMenuOnSelect={ true }\n onChange={ handleChange }\n ref={ ref }\n sx={ searchComponentsBarStyles }\n customOption={ ComponentPageLink }\n noOptionsMessage={ () => null }\n loadingMessage={ () => null }\n onKeyDown={ handleKeyDown }\n placeholder=\"Search for components, icons, styles...⊂(▀¯▀⊂ )\"\n />\n </ModalContent>\n </Modal>\n </Stack>\n )\n}\n","import React, { ReactNode, createContext, useContext, useMemo, useState } from 'react'\n\nexport interface User {\n name: string\n country: string\n image: string\n preferences: {\n locale: string\n currency: string\n firstDayOfWeek: 'monday' | 'sunday'\n }\n}\n\nexport const users: Record<string, User> = {\n 'obi-wan': {\n name: 'Obi-Wan Kenobi',\n country: 'Germany',\n image: `\n https://www.gamereactor.se/media/08/redaxresonerar_3470803.jpg\n `,\n preferences: {\n locale: 'de-DE',\n currency: 'EUR',\n firstDayOfWeek: 'monday',\n },\n },\n anakin: {\n name: 'Anakin Skywalker',\n country: 'US',\n image: `\n https://thenerdstash.com/wp-content/uploads/2021/10/Hayden-Christensen-Anakin-Skywalker.jpg\n `,\n preferences: {\n locale: 'en-US',\n currency: 'USD',\n firstDayOfWeek: 'sunday',\n },\n },\n han: {\n name: 'Han Solo',\n country: 'Sweden',\n image: `\n https://fictionhorizon.com/wp-content/uploads/2021/09/Han-Solo.jpg\n `,\n preferences: {\n locale: 'sv-SE',\n currency: 'SEK',\n firstDayOfWeek: 'sunday',\n },\n },\n yoda: {\n name: 'Yoda',\n country: 'England',\n image: `\n https://markerasomolast.files.wordpress.com/2013/08/yoda.jpg\n `,\n preferences: {\n locale: 'en-GB',\n currency: 'GBP',\n firstDayOfWeek: 'monday',\n },\n },\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\ninterface IUserContext {\n user: User\n setUser: (user: User) => void\n}\n\ninterface UserProviderProps {\n children: ReactNode\n}\n\nconst UserContext = createContext<IUserContext | null>(null)\nexport const UserProvider = ({ children }: UserProviderProps) => {\n const [ user, setUser ] = useState<User>(users['obi-wan'])\n\n const contextValue = useMemo<IUserContext>(() => ({\n user,\n setUser,\n }), [ user ])\n\n return (\n <UserContext.Provider value={ contextValue }>\n { children }\n </UserContext.Provider>\n )\n}\n\nexport const useUser = () => {\n const context = useContext(UserContext)\n\n if (!context) {\n throw new Error('Cannot find <UserProvider> anywhere in your React tree')\n }\n\n return context\n}\n","import React, { ReactNode, useMemo } from 'react'\nimport { I18nContext, I18nManager } from '@shopify/react-i18n'\nimport { useUser } from './user-context'\n\ninterface I18nProviderProps {\n children: ReactNode\n}\n\nexport const I18nProvider = ({ children }: I18nProviderProps) => {\n const { user } = useUser()\n const i18nManager = useMemo(() => {\n const { preferences: { locale, currency } } = user\n\n return new I18nManager({\n locale,\n currency,\n })\n }, [ user ])\n\n return (\n <I18nContext.Provider value={ i18nManager }>\n { children }\n </I18nContext.Provider>\n )\n}\n","import React, { ReactNode } from 'react'\nimport { I18nProvider } from '@react-aria/i18n'\nimport { useUser } from './user-context'\n\ninterface I18nProviderProps {\n children: ReactNode\n}\n\nexport const CalendarProvider = ({ children }: I18nProviderProps) => {\n const { user: { preferences: { firstDayOfWeek = 'monday' } } } = useUser()\n\n const calendarLocale = firstDayOfWeek === 'monday' ? 'en-GB' : 'en-US'\n\n return (\n <I18nProvider locale={ calendarLocale }>\n { children }\n </I18nProvider>\n )\n}\n","import React, { useState } from 'react'\nimport { BrowserRouter, Link as ReactRouterLink } from 'react-router-dom'\nimport { head } from 'ramda'\nimport { NorthlightLogoXs } from '@northlight/icons'\nimport {\n Box,\n Capitalized,\n Flex,\n FormControl,\n FormLabel,\n Grid,\n HStack,\n Icon,\n Link,\n MediatoolThemeProvider,\n Stack,\n Switch,\n tottTheme,\n} from '../../lib'\nimport { CalendarProvider, I18nProvider, UserProvider } from './context'\nimport { MainPage } from './types'\nimport { MainMenu, SearchComponentsBar, SubMenu } from './components'\nimport { Routing } from './routing'\n\nexport interface SandboxProps {\n routes: MainPage[]\n}\n\nexport const Sandbox = ({ routes }: SandboxProps) => {\n const [ tott, setTott ] = useState(false)\n\n return (\n <MediatoolThemeProvider theme={ tott ? tottTheme : undefined } themeName={ tott ? 'tottTheme' : 'webappTheme' }>\n <UserProvider>\n <CalendarProvider>\n <I18nProvider>\n <BrowserRouter>\n <Grid\n height=\"100vh\"\n minHeight=\"100vh\"\n gridTemplateColumns=\"280px auto\"\n color=\"text.default\"\n bgColor=\"background.default\"\n pl={ 4 }\n >\n <Flex\n direction=\"column\"\n overflow=\"auto\"\n >\n <Link\n as={ ReactRouterLink }\n to=\"/components/\"\n sx={ { _hover: { textDecoration: 'none' }, _focus: { outline: 'none' } } }\n >\n <HStack>\n <Icon as={ NorthlightLogoXs } mt={ 4 } ml={ 2 } boxSize={ 16 } />\n <Capitalized>Northlight</Capitalized>\n </HStack>\n </Link>\n <FormControl display=\"flex\" alignItems=\"center\" my={ 2 } pl={ 2 }>\n <FormLabel htmlFor=\"tott\" mb=\"0\">\n Dark theme\n </FormLabel>\n <Switch id=\"tott\" onChange={ () => setTott(!tott) } />\n </FormControl>\n <MainMenu menuItems={ routes } />\n <SubMenu mainRoutes={ routes } />\n </Flex>\n <Stack spacing=\"5\" pt=\"4\" height=\"100vh\">\n <Box ml={ 10 }>\n <SearchComponentsBar routes={ routes } />\n </Box>\n <Routing fallback={ head(routes)?.path } routes={ routes } />\n </Stack>\n </Grid>\n </BrowserRouter>\n </I18nProvider>\n </CalendarProvider>\n </UserProvider>\n </MediatoolThemeProvider>\n )\n}\n"],"names":["Switch","Icon","ChakraIcon","P","ChakraText","Capitalized","Label","FormLabel","Blinker","Button","forwardRef","ChakraButton","ChakraIconButton","useMultiStyleConfig","chakra","Tag","ChakraTag","EditableText","Input","ChakraEditableInput","Modal","ChakraModal","useToken","getBgColor","WebappSkinTokens","TottSkinTokens","theme","webappTheme","ChakraSwitch","RouterRoute","I18nProvider","Link","ReactRouterLink"],"mappings":"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"}