@northlight/ui 2.35.2 → 2.35.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"northlight.cjs","sources":["../../lib/components/accordion/accordion.tsx","../../lib/components/accordion/accordion-button.tsx","../../lib/components/accordion/accordion-panel.tsx","../../lib/components/accordion/accordion-item.tsx","../../lib/hooks/use-debounce/index.ts","../../lib/hooks/use-loading-message/index.ts","../../lib/hooks/use-scroll-to-bottom/utils/smooth-scroll-to-bottom.ts","../../lib/hooks/use-scroll-to-bottom/index.ts","../../lib/hooks/use-arrow-focus/index.ts","../../lib/hooks/use-select-callbacks/use-select-callbacks.ts","../../lib/hooks/use-outside-rect-click/index.ts","../../lib/hooks/use-screen-size/index.ts","../../lib/hooks/use-did-update-effect/index.ts","../../lib/utils/luminosity/index.ts","../../lib/utils/get-contrast-color/index.ts","../../lib/utils/ring/index.ts","../../lib/utils/highlight/index.ts","../../lib/utils/get-shades/index.ts","../../lib/utils/get-initials/index.ts","../../lib/utils/get-field-error/index.ts","../../lib/utils/get-children-with-props/pass-props-to-child.ts","../../lib/utils/get-children-with-props/index.ts","../../lib/utils/add-alpha/index.ts","../../lib/utils/debounce/create-debounce-function-instance.ts","../../lib/utils/use-current-theme/index.ts","../../lib/utils/clamp/index.ts","../../lib/utils/get-consistent-random-color-from-string/index.ts","../../lib/hooks/use-resize-width/index.ts","../../lib/theme/components/select/custom-select.ts","../../lib/components/tags-input/tags-input-styles.ts","../../lib/theme/global/scrollbar.ts","../../lib/theme/components/breadcrumb/index.ts","../../lib/theme/components/button/index.ts","../../lib/theme/components/blinker/index.ts","../../lib/theme/components/checkbox/index.ts","../../lib/theme/components/input/index.ts","../../lib/theme/components/pin-input/index.ts","../../lib/theme/components/select/index.ts","../../lib/theme/components/radio/index.ts","../../lib/theme/components/tabs/index.ts","../../lib/theme/components/textarea/index.ts","../../lib/theme/components/link/index.ts","../../lib/theme/components/switch/index.ts","../../lib/theme/components/tag/index.ts","../../lib/theme/components/alert/index.ts","../../lib/theme/components/number-input/index.ts","../../lib/theme/components/notification-icon-button/index.ts","../../lib/theme/components/calendar/index.ts","../../lib/theme/components/drag-and-drop/index.ts","../../lib/theme/components/date-picker/index.ts","../../lib/theme/components/flip-button/index.ts","../../lib/theme/components/spinner/index.ts","../../lib/theme/components/avatar/get-avatar-bg-color.ts","../../lib/theme/components/avatar/index.ts","../../lib/theme/components/close-button/index.ts","../../lib/theme/components/modal/index.ts","../../lib/theme/components/tooltip/index.ts","../../lib/theme/components/icon/index.ts","../../lib/theme/components/clipboard-input/index.ts","../../lib/theme/components/color-picker/index.ts","../../lib/theme/components/steps/step/index.ts","../../lib/theme/components/steps/step-list/index.ts","../../lib/theme/components/typography/headings/h1.ts","../../lib/theme/components/typography/headings/h2.ts","../../lib/theme/components/typography/headings/h3.ts","../../lib/theme/components/typography/headings/h4.ts","../../lib/theme/components/typography/headings/h5.ts","../../lib/theme/components/typography/headings/h6.ts","../../lib/theme/components/typography/stylized/blockquote.ts","../../lib/theme/components/typography/stylized/tiny.ts","../../lib/theme/components/typography/stylized/capitalized.ts","../../lib/theme/components/typography/stylized/lead.ts","../../lib/theme/components/typography/stylized/small.ts","../../lib/theme/components/typography/body/p.ts","../../lib/theme/components/typography/labels/label.ts","../../lib/theme/components/typography/numvals/numval.ts","../../lib/theme/components/split-pane/index.ts","../../lib/theme/components/carousel/index.ts","../../lib/theme/components/editable-text/index.ts","../../lib/theme/components/toolbox/index.ts","../../lib/theme/components/file-picker/index.ts","../../lib/theme/components/table/index.ts","../../lib/theme/components/menu/index.ts","../../lib/theme/components/badge/index.ts","../../lib/theme/components/popover/index.ts","../../lib/theme/skins/webapp/index.ts","../../lib/theme/skins/tott/index.ts","../../lib/theme/index.ts","../../lib/components/tags-input/tags-input.tsx","../../lib/components/organization-logo/organization-logo.tsx","../../lib/components/alert/alert.tsx","../../lib/components/aspect-ratio/aspect-ratio.tsx","../../lib/components/icon/icon.tsx","../../lib/components/avatar/avatar-badge.tsx","../../lib/components/avatar/avatar.tsx","../../lib/components/typography/headings/h1.tsx","../../lib/components/typography/headings/h2.tsx","../../lib/components/typography/headings/h3.tsx","../../lib/components/typography/headings/h4.tsx","../../lib/components/typography/headings/h5.tsx","../../lib/components/typography/headings/h6.tsx","../../lib/components/typography/body/p.tsx","../../lib/components/typography/stylized/blockquote.tsx","../../lib/components/typography/stylized/capitalized.tsx","../../lib/components/typography/stylized/lead.tsx","../../lib/components/typography/stylized/small.tsx","../../lib/components/typography/stylized/tiny.tsx","../../lib/components/typography/labels/label.tsx","../../lib/components/typography/numvals/numval.tsx","../../lib/components/overflow-group/overflow-group.tsx","../../lib/components/overflow-group/use-overflow-group.ts","../../lib/components/avatar/avatar-group.tsx","../../lib/components/badge/badge.tsx","../../lib/components/blinker/blinker.tsx","../../lib/components/spinner/spinner.tsx","../../lib/components/button/button.tsx","../../lib/components/checkbox/checkbox.tsx","../../lib/components/form/trim-form-values.ts","../../lib/components/form/form.tsx","../../lib/components/form-control/form-label.tsx","../../lib/components/form/field.tsx","../../lib/components/form/use-set-value-refreshed.ts","../../lib/components/checkbox/checkbox-field.tsx","../../lib/components/checkbox/checkbox-group-field.tsx","../../lib/components/icon-button/icon-button.tsx","../../lib/components/color-picker/constants.ts","../../lib/components/color-picker/color-button.tsx","../../lib/components/popover/popover.tsx","../../lib/components/color-picker/colors-expand-button.tsx","../../lib/components/portal/render-in-portal.tsx","../../lib/components/color-picker/color-picker.tsx","../../lib/components/color-picker/color-picker-field.tsx","../../lib/components/flip-button/utils.ts","../../lib/components/flip-button/flip-button.tsx","../../lib/components/flip-button/flip-button-group.tsx","../../lib/components/flip-button/flip-button-group-field.tsx","../../lib/components/resize-handle/resize-handle.tsx","../../lib/components/date-picker/components/date-field/trigger.tsx","../../lib/components/date-picker/components/date-field/date-segment.tsx","../../lib/components/date-picker/components/date-field/utils.ts","../../lib/components/date-picker/components/date-field/date-field.tsx","../../lib/components/date-picker/components/date-field/styled-field.tsx","../../lib/components/table/table.tsx","../../lib/components/date-picker/components/calendar/components/calendar-cell.tsx","../../lib/components/date-picker/components/calendar/components/day-labels.tsx","../../lib/components/date-picker/components/calendar/components/utils.ts","../../lib/components/date-picker/components/calendar/components/calendar-grid.tsx","../../lib/components/date-picker/components/calendar/components/month-button.tsx","../../lib/components/date-picker/components/calendar/constants.ts","../../lib/components/date-picker/components/calendar/date-select/month-select.tsx","../../lib/components/date-picker/components/calendar/date-select/year-select.tsx","../../lib/components/date-picker/components/calendar/date-select/utils.ts","../../lib/components/date-picker/components/calendar/date-select/year-select-calendar.tsx","../../lib/components/date-picker/components/calendar/date-select/year-select-range-calendar.tsx","../../lib/components/date-picker/components/calendar/components/get-week-number-start-of-month.ts","../../lib/components/date-picker/components/calendar/components/range-cell.tsx","../../lib/components/date-picker/components/calendar/components/standalone-calendar-grid.tsx","../../lib/components/date-picker/components/calendar/calendar.tsx","../../lib/components/date-picker/date-picker/date-picker-locale-wrapper.tsx","../../lib/components/date-picker/date-picker/date-picker.tsx","../../lib/components/clickable/clickable.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/date-button.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/utils.ts","../../lib/components/date-picker/components/calendar/quick-navigation/get-quick-select-options.ts","../../lib/components/date-picker/components/calendar/quick-navigation/quick-select.tsx","../../lib/components/date-picker/components/calendar/range-calendar.tsx","../../lib/components/date-picker/date-picker-field/utils.ts","../../lib/components/date-picker/date-picker/date-range-picker.tsx","../../lib/internal-components/input-group-wrapper/input-group-wrapper.tsx","../../lib/components/date-picker/date-picker-field/date-picker-field.tsx","../../lib/components/date-picker/date-picker-field/date-range-picker-field.tsx","../../lib/components/types/tooltipIconMap/index.ts","../../lib/components/tooltip/tooltip.tsx","../../lib/components/intent-button/timeout-progress-circle.tsx","../../lib/components/intent-button/intent-button.tsx","../../lib/components/transitions/constants.ts","../../lib/components/transitions/utils.ts","../../lib/components/transitions/fade.tsx","../../lib/components/transitions/scale-fade.tsx","../../lib/components/transitions/slide.tsx","../../lib/components/transitions/slide-fade.tsx","../../lib/components/transitions/collapse.tsx","../../lib/components/toolbox/toolbox.tsx","../../lib/components/toolbox/toolbox-header.tsx","../../lib/components/toolbox/toolbox-content.tsx","../../lib/components/toolbox/toolbox-footer.tsx","../../lib/components/radio/radio.tsx","../../lib/components/radio/radio-group.tsx","../../lib/components/radio/radio-group-field.tsx","../../lib/components/carousel/constants.ts","../../lib/components/carousel/carousel-item.tsx","../../lib/components/carousel/carousel-arrow.tsx","../../lib/components/carousel/carousel.tsx","../../lib/components/search-bar/styles.ts","../../lib/components/search-bar/get-components.tsx","../../lib/components/search-bar/search-bar.tsx","../../lib/components/search-bar/search-bar-field.tsx","../../lib/components/drag-and-drop/drag-and-drop.tsx","../../lib/components/tag/tag.tsx","../../lib/components/tag/overflow-indicator.tsx","../../lib/components/tag/tag-group.tsx","../../lib/components/drag-and-drop/drag-item.tsx","../../lib/components/drag-and-drop/draggable.tsx","../../lib/components/drag-and-drop/droppable.tsx","../../lib/components/drag-and-drop/sortable.tsx","../../lib/components/drag-and-drop/sortable-item.tsx","../../lib/components/drag-and-drop/drag-handle.tsx","../../lib/components/drag-and-drop/drop-zone.tsx","../../lib/components/drag-and-drop/multi-sort.tsx","../../lib/components/drag-and-drop/sortable-list.tsx","../../lib/components/drag-and-drop/sortable-container.tsx","../../lib/components/fast-list/fast-list.tsx","../../lib/components/fast-grid/fast-grid.tsx","../../lib/components/editable-text/editable-controls.tsx","../../lib/components/editable-text/editable-text.tsx","../../lib/components/modal/modal-base.tsx","../../lib/components/modal/modal.tsx","../../lib/components/modal/modal-body.tsx","../../lib/components/file-picker/file-editor-modal.tsx","../../lib/components/file-picker/confirm-delete-modal.tsx","../../lib/components/progress/constants.ts","../../lib/components/progress/progress-bar.tsx","../../lib/components/progress/utils.ts","../../lib/components/progress/loading-bar.tsx","../../lib/components/file-picker/constants.ts","../../lib/components/file-picker/utils.ts","../../lib/components/file-picker/file-icon-button.tsx","../../lib/components/file-picker/file-picker.tsx","../../lib/components/file-picker/file-picker-field.tsx","../../lib/components/file-picker/multi-file-uploader.tsx","../../lib/components/file-picker/file-item.tsx","../../lib/components/file-picker/multi-file-list.tsx","../../lib/components/file-picker/multi-file-picker.tsx","../../lib/components/file-picker/multi-file-picker-field.tsx","../../lib/components/mediatool-theme-provider/mediatool-theme-provider.tsx","../../lib/components/menu/menu.tsx","../../lib/components/number-input/number-input-stepper.tsx","../../lib/components/number-input/advanced-parse-float.ts","../../lib/components/number-input/number-input.tsx","../../lib/components/number-input/number-input-field.tsx","../../lib/components/notification-icon-button/notification-icon-button.tsx","../../lib/components/pin-input/pin-input.tsx","../../lib/components/select/get-matching-value.ts","../../lib/components/select/select.tsx","../../lib/components/select/select-field.tsx","../../lib/components/switch/switch.tsx","../../lib/components/switch/switch-field.tsx","../../lib/components/tabs/tab-panel.tsx","../../lib/components/tabs/tabs.tsx","../../lib/components/textarea/textarea.tsx","../../lib/components/textarea/textarea-field.tsx","../../lib/components/text-field/round-to-precision.ts","../../lib/components/text-field/formatted-number-input.tsx","../../lib/components/text-field/formatted-number-input-field.tsx","../../lib/components/text-field/masked-text-input.tsx","../../lib/components/text-field/text-field.tsx","../../lib/components/types/toastIconMap/index.ts","../../lib/components/toast/toast.tsx","../../lib/components/toast/use-toast.tsx","../../lib/components/status-pin/pin-variant-map.ts","../../lib/components/status-pin/pin-size-map.ts","../../lib/components/status-pin/status-pin.tsx","../../lib/components/async-error/async-error.tsx","../../lib/components/steps/step-panel.tsx","../../lib/components/steps/steps.tsx","../../lib/components/steps/step.tsx","../../lib/components/steps/step-list.tsx","../../lib/components/clipboard-input/clipboard-input.tsx","../../lib/components/split-pane/split-pane.tsx","../../lib/components/split-pane/pane-item.tsx","../../lib/components/split-pane/pane-divider.tsx","../../lib/components/step-stack/step-stack.tsx","../../lib/components/createable-select-dropdown/custom-components.tsx","../../lib/components/createable-select-dropdown/createable-select-dropdown.tsx","../../lib/components/combo-picker/combo-picker.tsx","../../lib/components/combo-picker/combo-picker-field.tsx"],"sourcesContent":["import React from 'react'\nimport { AccordionProps, Accordion as ChakraAccordion } from '@chakra-ui/react'\n\n/**\n * The wrapper that uses cloneElement to pass props to AccordionItem children.\n * @see {@link https::/northlight.dev/reference/accordion}\n *\n * @example\n * (?\n * <Accordion>\n <AccordionItem>\n <H2>\n <AccordionButton>\n <Box as=\"span\" flex='1' textAlign='left'>\n Section 1 title\n </Box>\n <AccordionIcon />\n </AccordionButton>\n </H2>\n <AccordionPanel pb={4}>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat.\n </AccordionPanel>\n </AccordionItem>\n\n <AccordionItem>\n <H2>\n <AccordionButton>\n <Box as=\"span\" flex='1' textAlign='left'>\n Section 2 title\n </Box>\n <AccordionIcon />\n </AccordionButton>\n </H2>\n <AccordionPanel pb={4}>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat.\n </AccordionPanel>\n </AccordionItem>\n</Accordion>\n * ?)\n */\nexport const Accordion = (props: AccordionProps) => (\n <ChakraAccordion { ...props } />\n)\n","import React from 'react'\nimport { AccordionButtonProps, AccordionButton as ChakraAccordionButton } from '@chakra-ui/react'\n\n/**\n * The button that toggles the expand/collapse state of the accordion item.\n * This button must be wrapped in an element with role heading.\n * @see Accordion\n * @see AcordionItem\n * @see {@link https://northlight.dev/reference/accordion-button}\n * @example\n * (Needs to be wrapped around AccordionItem and\n * Accordion context)\n * (?\n * <Accordion>\n * <AccordionItem>\n * <AccordionButton>Content</AccordionButton>\n * </AccordionItem>\n * </Accordion>\n * ?)\n */\nexport const AccordionButton = (props: AccordionButtonProps) => (\n <ChakraAccordionButton { ...props } />\n)\n","import React from 'react'\nimport {\n AccordionPanelProps,\n AccordionPanel as ChakraAccordionPanel,\n} from '@chakra-ui/react'\n\n/**\n * The container for the details to be revealed.\n * @see {@link htpts://northlight.dev/reference/accordion-panel}\n */\nexport const AccordionPanel = (props: AccordionPanelProps) => (\n <ChakraAccordionPanel { ...props } />\n)\n","import React from 'react'\nimport {\n AccordionItemProps,\n AccordionItem as ChakraAccordionItem,\n} from '@chakra-ui/react'\n\nexport const AccordionItem = (props: AccordionItemProps) => (\n <ChakraAccordionItem { ...props } />\n)\n","import { useEffect, useState } from 'react'\n\nexport const useDebounce = <T>(value: T, delay: number) => {\n const [ debouncedValue, setDebouncedValue ] = useState<T>(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n return () => {\n clearTimeout(handler)\n }\n }, [ value, delay ])\n\n return debouncedValue\n}\n","import { useState } from 'react'\nimport { useInterval } from '../use-interval'\n\nexport const useLoadingMessage = (prefix: string = '', delay: number = 300) => {\n const [ dots, setDots ] = useState('.')\n\n useInterval(() => {\n if (dots.length === 3) {\n setDots('.')\n } else {\n setDots(`${dots}.`)\n }\n }, delay)\n return `${prefix}${dots}`\n}\n","export const smoothScrollToBottom = (div: HTMLDivElement) => {\n const totalSteps = 50\n let currentStep = 0\n const targetScrollTop = div.scrollHeight - div.clientHeight\n const originalScrollTop = div.scrollTop\n const scrollInterval = setInterval(() => {\n if (currentStep >= totalSteps) {\n clearInterval(scrollInterval)\n } else {\n currentStep += 1\n const scrollProgress = currentStep / totalSteps\n const easing = 1 - (1 - scrollProgress) * (1 - scrollProgress) // quadratic ease out\n // eslint-disable-next-line no-param-reassign\n div.scrollTop = originalScrollTop + ((targetScrollTop - originalScrollTop) * easing)\n }\n }, 20)\n}\n","import { RefObject, useEffect } from 'react'\nimport { smoothScrollToBottom } from './utils/smooth-scroll-to-bottom'\n\nexport interface Message {\n content: string\n role: string\n type?: string\n data?: string\n}\n\nexport const useScrollToBottom = (scrollView: RefObject<HTMLDivElement>, messages: Message[]) => {\n useEffect(() => {\n const div = scrollView.current\n if (div) {\n smoothScrollToBottom(div)\n }\n }, [ messages ])\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 = <\n T extends BasicOption,\n K extends boolean = false\n>({\n onChange,\n onAdd,\n onRemove,\n isMulti = false,\n value,\n }: UseSelectCallbacksProps<T, K>) => {\n const items = useRef<MultiValue<T> | SingleValue<T>>(value)\n\n const handleChange = (\n val: K extends true ? MultiValue<T> : SingleValue<T>,\n event: ActionMeta<T>\n ) => {\n onChange(val, event)\n if (!isMulti && !isNil(val)) {\n onAdd((val as T).value)\n } else if (\n !isNil(val) &&\n (val as T[]).length > (items.current as T[]).length\n ) {\n onAdd(last(val as T[])?.value)\n } else {\n const removedItems = map(\n prop('value'),\n difference(\n isMulti ? (items.current as T[]) : ([ items.current ] as T[]),\n val as T[]\n )\n )\n onRemove(removedItems.length === 1 ? removedItems[0] : removedItems)\n }\n items.current = val\n }\n return handleChange\n}\n","import { isNil } from 'ramda'\nimport { MutableRefObject, useEffect, useRef } from 'react'\n\nconst isBetween = (point: number, min: number, max: number) => (point >= min && point <= max)\n\nexport const useOutsideRectClick =\n(ref: MutableRefObject<HTMLElement | null>, callback: (event: MouseEvent | TouchEvent) => void) => {\n const stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n })\n\n const state = stateRef.current\n\n useEffect(() => {\n const handleMouseClick = (event: MouseEvent | TouchEvent) => {\n let clientX\n let clientY\n\n if (event instanceof MouseEvent) {\n clientX = event.clientX\n clientY = event.clientY\n } else if (event instanceof TouchEvent && event.changedTouches[0]) {\n clientX = event.changedTouches[0].clientX\n clientY = event.changedTouches[0].clientY\n }\n\n if (isNil(clientX) || isNil(clientY)) return\n\n if (isNil(ref?.current)) return\n\n const {\n top,\n right,\n left,\n bottom,\n } = ref.current.getBoundingClientRect()\n\n const isInBound = isBetween(clientX, left, right) && isBetween(clientY, top, bottom)\n\n if (isInBound) return\n callback(event)\n }\n\n const onPointerDown: any = () => {\n state.isPointerDown = true\n }\n\n const onMouseUp: any = (event: MouseEvent) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false\n return\n }\n\n if (state.isPointerDown) {\n state.isPointerDown = false\n handleMouseClick(event)\n }\n }\n\n const onTouchEnd = (event: TouchEvent) => {\n state.ignoreEmulatedMouseEvents = true\n if (state.isPointerDown) {\n state.isPointerDown = false\n handleMouseClick(event)\n }\n }\n\n document.addEventListener('mousedown', onPointerDown, true)\n document.addEventListener('mouseup', onMouseUp, true)\n document.addEventListener('touchstart', onPointerDown, true)\n document.addEventListener('touchend', onTouchEnd, true)\n\n return () => {\n document.removeEventListener('mousedown', onPointerDown, true)\n document.removeEventListener('mouseup', onMouseUp, true)\n document.removeEventListener('touchstart', onPointerDown, true)\n document.removeEventListener('touchend', onTouchEnd, true)\n }\n }, [ callback ])\n}\n","import { useMediaQuery } from '../use-media-query'\n\nexport const useScreenSize = () => {\n const screenSizes = useMediaQuery([ '(min-width: 1280px)', '(min-width: 1024px)' ])\n if (screenSizes[0]) {\n return 'lg'\n }\n if (screenSizes[1]) {\n return 'md'\n }\n return 'sm'\n}\n","import { DependencyList, EffectCallback, useEffect, useRef } from 'react'\n\nexport const useDidUpdateEffect = (effect: EffectCallback, dependencies: DependencyList) => {\n const didMountRef = useRef(false)\n\n useEffect(() => {\n if (didMountRef.current) {\n effect()\n }\n didMountRef.current = true\n }, dependencies)\n}\n","export const luminosity = (hexcolor: string) => {\n let color = hexcolor\n\n if (color.slice(0, 1) === '#') {\n color = color.slice(1)\n }\n\n if (color.length === 3) {\n color = color\n .split('')\n .map((hex) => hex + hex)\n .join('')\n }\n\n const r = parseInt(color.substring(0, 2), 16)\n const g = parseInt(color.substring(2, 4), 16)\n const b = parseInt(color.substring(4, 6), 16)\n\n const brightness = (r * 299 + g * 587 + b * 114) / 1000\n return brightness\n}\n","import { useToken } from '@chakra-ui/system'\nimport { luminosity } from '../luminosity'\n\nexport const getContrastColor = (color: string) => {\n const colorTwo = useToken('colors', 'text.default')\n const colorOne = useToken('colors', 'text.inverted')\n const colorInHex = useToken('colors', color)\n\n const l1 = luminosity(colorOne)\n const l2 = luminosity(colorTwo)\n\n const threshold = (l1 + l2) / 2\n\n const brightColor = l1 > l2 ? colorOne : colorTwo\n const darkColor = l1 > l2 ? colorTwo : colorOne\n\n return luminosity(colorInHex) >= threshold ? darkColor : brightColor\n}\n","import { CSSObject } from '@emotion/react'\n\nexport const ring:CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n","import { CSSObject } from '@emotion/react'\n\nexport const highlight:CSSObject = {\n px: '1',\n py: '0.5',\n rounded: '6',\n bg: 'teal.100',\n fontWeight: 'bold',\n}\n","import { palette } from '@northlight/tokens'\nimport { Color, ColorGrade } from '../../types'\n\nexport const getShades = (startShade: number, endShade?: number) => {\n let start: number\n let end: number\n if (!endShade) {\n start = startShade\n end = startShade\n } else if (endShade > startShade) {\n start = startShade\n end = endShade\n } else {\n start = endShade\n end = startShade\n }\n\n return (\n Object.keys(palette).reduce((colors, color) => {\n if (color === 'mono') return colors\n return colors.concat(\n Object.keys(palette[color as Color])\n .filter((value) =>\n parseInt(value, 10) >= start\n && parseInt(value, 10) <= end\n )\n .map((shade) => palette[color as Color][shade as unknown as ColorGrade])\n )\n }, [] as string[])\n )\n}\n","export const getInitials = (name: string) => {\n const [ firstName, lastName ] = name.toUpperCase().split(' ')\n return firstName && lastName\n ? `${firstName[0]}${lastName[0]}`\n : firstName[0]\n}\n","import { path, replace, split } from 'ramda'\nimport { FieldErrorsImpl, FieldValues } from 'react-hook-form'\nimport { FieldErrorType } from '../../components/form/types'\n\nexport function getFieldError<T extends FieldValues> (name: string, errors: FieldErrorsImpl<T>) {\n const nameWithoutRightBracket = replace(/]/g, '', name)\n const leftBracketAndDot = /[.[\\]]/g\n const fieldErrorPath = split(leftBracketAndDot, nameWithoutRightBracket)\n\n const fieldError: FieldErrorType<T> = path(fieldErrorPath, errors)\n return fieldError\n}\n","import React, { cloneElement, isValidElement } from 'react'\nimport { CSSObject } from '@emotion/react'\n\nexport const passPropsToChild = (child: React.ReactNode, styles: CSSObject) => (\n isValidElement(child)\n ? cloneElement(child, {\n ...styles,\n })\n : child\n)\n","import React, { Children } from 'react'\nimport { T } from 'ramda'\nimport { passPropsToChild } from './pass-props-to-child'\n\nexport const getChildrenWithProps = (\n children: React.ReactNode | React.ReactNode[],\n styles: Record<string, any>,\n predicate: (child: React.ReactNode, index: number) => boolean = T\n) => {\n const childrenAsArr = Children.toArray(children)\n const childrenWithoutFocus = childrenAsArr.map((child, i) => (\n predicate(child, i)\n ? passPropsToChild(child, { ...styles })\n : child\n ))\n return childrenWithoutFocus\n}\n","import { useToken } from '@chakra-ui/system'\n\nexport const addAlpha = (color: string, alpha: number = 1) => {\n const colorInHex = useToken('colors', color)\n\n const limitAlpha = Math.min(Math.max(alpha, 0), 1)\n const opacity = Math.round(limitAlpha * 255)\n\n return `${colorInHex}${opacity.toString(16).toUpperCase()}`\n}\n","/** A debounce function to be used together with Async select in SearchBar.\n * The reason to why the usual debounce hook does not work is because we\n * don't control the loadOptions call ourselves.\n *\n * Important to note is that the timeout here needs to NOT be reinstantiated\n * every render, otherwise it defeats the purpose as a new timeout will be\n * created every time the component re-renders.\n*/\nexport const createDebounceFunctionInstance = (delay: number) => {\n let timeout: any\n\n return (fn: any) => (...args: any) => {\n clearTimeout(timeout)\n timeout = setTimeout(() => {\n fn(...args)\n }, delay)\n }\n}\n","import { createContext, useContext } from 'react'\n\nexport type CurrentTheme = 'webappTheme' | 'tottTheme'\n\nexport const CustomTheme = createContext<CurrentTheme>('webappTheme')\n\nexport const useCurrentTheme = () => {\n const theme = useContext(CustomTheme)\n return theme\n}\n","export const clamp = (minValue: number, maxValue: number, value: number) =>\n Math.min(Math.max(value, minValue), maxValue)\n","/* eslint-disable no-bitwise */\nimport { keys, omit } from 'ramda'\nimport { palette } from '@northlight/tokens'\n\nconst availableColorSchemes = keys(omit([ 'mono' ], palette))\n\nconst djb2Hash = (str: string, colors: string[]) => {\n let hash = 5381\n\n for (let i = 0; i < str.length; i += 1) {\n const char = str.charCodeAt(i)\n hash = (hash << 5) + hash + char\n\n hash &= hash\n }\n\n return (Math.abs(hash) % colors.length)\n}\n\nexport const getConsistentRandomColorFromString = (\n str: string,\n colors: string[] = availableColorSchemes\n) => {\n const index = djb2Hash(str, colors)\n return colors[index]\n}\n","import { MouseEvent, useState } from 'react'\nimport { clamp } from '../../utils'\n\ninterface UseResizeWidthProps {\n stationaryEdge?: 'left' | 'right'\n minWidthPx?: number\n maxWidthPx?: number\n defaultWidthPx: number\n}\n\nexport const useResizeWidth = ({\n stationaryEdge = 'left',\n minWidthPx = 0,\n maxWidthPx = Number.MAX_SAFE_INTEGER,\n defaultWidthPx,\n}: UseResizeWidthProps) => {\n const [ adjustableWidth, setAdjustableWidth ] = useState(defaultWidthPx)\n\n const resizeProps = {\n onMouseDown: (e: MouseEvent<unknown>) => {\n e.preventDefault()\n const startX = e.clientX\n const onMouseMove = (event: { clientX: number }) => {\n const newWidth =\n stationaryEdge === 'left'\n ? adjustableWidth + (event.clientX - startX)\n : adjustableWidth - (event.clientX - startX)\n setAdjustableWidth(clamp(minWidthPx, maxWidthPx, newWidth))\n }\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove)\n document.removeEventListener('mouseup', onMouseUp)\n }\n document.addEventListener('mousemove', onMouseMove)\n document.addEventListener('mouseup', onMouseUp)\n },\n }\n\n return {\n adjustableWidth,\n setAdjustableWidth,\n resizeProps,\n }\n}\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { getContrastColor } from '../../../utils'\n\nexport const customSelectStyles: ChakraStylesConfig<any> = {\n container: (provided) => ({\n ...provided,\n width: '100%',\n color: 'text.default',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isFocused && 'background.select.option-focus',\n overflowWrap: 'anywhere',\n _active: {\n background: 'background.select.option-active',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n }),\n downChevron: (provided) => ({\n ...provided,\n color: 'icon.select.default',\n }),\n placeholder: (provided) => ({\n ...provided,\n color: 'text.select.placeholder',\n }),\n multiValue: (provided, state) => {\n const background = state.data.isFixed\n ? 'background.select.option-disabled'\n : state.data.color ?? provided.bgColor\n return ({\n ...provided,\n bgColor: background,\n color: getContrastColor(background),\n })\n },\n menuList: (provided) => ({\n ...provided,\n bgColor: 'background.default',\n }),\n}\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { customSelectStyles } from '../../theme/components/select/custom-select'\n\nexport const tagsInputStyles = (\n isFocused: boolean,\n borderColor: string\n): ChakraStylesConfig<any> => ({\n ...customSelectStyles,\n container: (provided) => ({\n ...provided,\n w: 'full',\n height: '100%',\n resize: 'vertical',\n overflow: 'auto',\n minHeight: '20',\n borderColor: 'select.default',\n borderRadius: 'select.default',\n transitionDuration: 'normal',\n transitionProperty: 'box-shadow',\n color: 'text.default',\n boxShadow: isFocused ? `0 0 0 1px ${borderColor}` : 'none',\n }),\n control: (provided) => ({\n ...provided,\n minHeight: '20',\n height: '100%',\n alignItems: 'start',\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n overflowY: 'auto',\n maxH: '100%',\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 color: color.text.button.default,\n _hover: {\n bgColor: color.background.button['default-hover'],\n },\n _active: {\n bgColor: color.background.button['default-active'],\n },\n }),\n danger: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.danger,\n color: color.text.button.danger,\n _hover: {\n bg: color.background.button['danger-hover'],\n _disabled: {\n bgColor: color.background.button.danger,\n },\n },\n _active: {\n bgColor: color.background.button['danger-active'],\n },\n }),\n success: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.success,\n color: color.text.button.success,\n _hover: {\n bg: color.background.button['success-hover'],\n _disabled: {\n bgColor: color.background.button.success,\n },\n },\n _active: {\n bgColor: color.background.button['success-active'],\n },\n }),\n brand: ({ theme: { colors: color } }) => ({\n color: color.text.inverted,\n bgColor: color.background.button.brand,\n _hover: {\n bg: color.background.button['brand-hover'],\n _disabled: {\n bgColor: color.background.button.brand,\n },\n },\n _active: {\n bgColor: color.background.button['brand-active'],\n },\n }),\n brandSubdued: ({ theme: { colors: color } }) => ({\n color: color.text.button.link,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button.brand,\n color: color.text.inverted,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.text.button.link,\n },\n },\n _active: {\n bg: color.background.button['brand-hover'],\n color: color.text.inverted,\n },\n }),\n link: ({ theme: { colors: color } }) => ({\n textDecoration: 'underline',\n color: color.text.button.link,\n bgColor: color.background.button.link,\n _hover: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-hover'],\n },\n _active: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-active'],\n },\n }),\n outline: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n _hover: {\n bg: color.background.button['ghost-hover'],\n },\n _active: {\n bg: color.background.button['ghost-active'],\n },\n }),\n ghost: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-hover'],\n _disabled: {\n bgColor: color.background.button.ghost,\n },\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n }),\n ai: ({ theme: { colors: color } }) => ({\n color: color.text.inverted,\n bgColor: color.bg.ai.default,\n _hover: {\n bgColor: color.bg.ai.hover,\n _disabled: {\n bgColor: color.bg.ai.default,\n },\n },\n _active: {\n bgColor: color.bg.ai.active,\n },\n }),\n aiSubdued: ({ theme: { colors: color } }) => ({\n color: color.ai,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.bg.ai.default,\n color: color.text.inverted,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.ai,\n },\n },\n _active: {\n bg: color.bg.ai.hover,\n color: color.text.inverted,\n },\n }),\n },\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { keyframes } from '@emotion/react'\n\nconst pulseRing = keyframes`\n0% {\n transform: scale(0.33);\n}\n30% {\n transform: scale(0.66);\n},\n40%,\n50% {\n opacity: 0;\n}\n100% {\n opacity: 0;\n}\n`\n\nexport const Blinker: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: palette }, color, isBlinking }) => ({\n position: 'relative',\n borderRadius: '50%',\n bgColor: color === '' ? palette.blue['500'] : color,\n _before: isBlinking\n ? {\n content: \"''\",\n position: 'absolute',\n display: 'block',\n width: '300%',\n height: '300%',\n marginLeft: '-100%',\n marginTop: '-100%',\n borderRadius: '50%',\n bgColor: color === '' ? 'blue.500' : color,\n animation: `2.25s ${pulseRing} cubic-bezier(0.455, 0.03, 0.515, 0.955) -0.4s infinite`,\n zIndex: 'base',\n }\n : {},\n }),\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker['2xs'],\n width: sizing.blinker['2xs'],\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.xs,\n width: sizing.blinker.xs,\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.sm,\n width: sizing.blinker.sm,\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.md,\n width: sizing.blinker.md,\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.lg,\n width: sizing.blinker.lg,\n }),\n },\n defaultProps: {\n size: 'md',\n color: 'blue.500',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Checkbox: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label' ],\n sizes: {\n sm: {\n control: {\n fontSize: 5,\n },\n },\n md: {\n control: {\n fontSize: 7,\n },\n },\n lg: {\n control: {\n fontSize: 8,\n },\n },\n },\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n control: {\n borderColor: color.border.checkbox.default,\n bg: color.background.checkbox.default,\n borderWidth: 2,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n },\n },\n _invalid: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n _checked: {\n bg: color.background.checkbox.error,\n },\n _hover: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n _hover: {\n borderColor: color.border.checkbox['default-hover'],\n bg: color.background.checkbox.default,\n },\n _disabled: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n color: 'white',\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n },\n },\n _hover: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n },\n },\n },\n }),\n variants: {\n default: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.default,\n },\n }),\n rounded: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.full,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Input: ComponentMultiStyleConfig = {\n parts: [ 'field', 'addon' ],\n baseStyle: ({ theme: { colors: color } }) => ({\n field: {\n color: color.text.default,\n _placeholder: {\n color: color.text.input.placeholder,\n opacity: 1,\n },\n },\n }),\n variants: {\n outline: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _focusVisible: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n _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 ai: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _focusVisible: {\n bgColor: color.background.input['outline-focus'],\n _hover: {\n boxShadow: `0 0 0 1px ${color.border.ai}`,\n borderColor: color.border.ai,\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 _hover: {\n bgColor: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _invalid: {\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n addon: {\n border: 'none',\n background: 'none',\n color: color.text.default,\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const PinInput: ComponentSingleStyleConfig = {\n variants: {\n outline: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n opacity,\n } }) => ({\n borderColor: color.border.input.default,\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n bg: color.background.input['outline-default'],\n color: color.text.default,\n paddingInline: spacing['padding-inline'].input.default,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focus: {\n borderColor: color.border.input.focus,\n bg: color.background.input['outline-focus'],\n },\n _invalid: {\n bg: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n _placeholder: {\n color: 'transparent',\n },\n },\n _disabled: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n _hover: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n },\n },\n _placeholder: {\n color: color.text.input.placeholder,\n },\n _readonly: {\n borderColor: color.border.input.readonly,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Select: ComponentMultiStyleConfig = {\n parts: [ 'field', 'icon' ],\n baseStyle: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].select.default,\n paddingInlineEnd: spacing['padding-inline'].select.default,\n borderWidth: borderWidth.select,\n color: color.text.default,\n borderColor: color.border.select.default,\n borderRadius: borderRadius.select.default,\n _hover: {\n borderColor: color.border.select['default-hover'],\n },\n _focusVisible: {\n borderColor: color.border.select.focus,\n boxShadow: `0 0 0 1px ${color.border.select.focus}`,\n },\n _invalid: {\n borderColor: color.border.select.error,\n boxShadow: 'none',\n },\n _readOnly: {\n borderWidth: borderWidth.select,\n borderColor: color.border.select.readonly,\n _focusVisible: {\n borderColor: color.border.select.readonly,\n },\n },\n _disabled: {\n borderColor: color.border.select.disabled,\n bg: color.background.select.disabled,\n _hover: {\n borderColor: color.border.select.disabled,\n },\n },\n _placeholder: {\n color: color.text.select.placeholder,\n },\n },\n icon: {\n color: color.icon.select.default,\n },\n }),\n variants: {\n outline: {},\n ai: ({ theme: { colors: color } }) => ({\n field: {\n _focusVisible: {\n borderColor: color.border.ai,\n boxShadow: `0 0 0 1px ${color.border.ai}`,\n },\n\n },\n\n }),\n\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Radio: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label', 'container' ],\n sizes: {\n sm: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-sm'],\n },\n },\n }),\n md: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-md'],\n },\n },\n }),\n lg: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-lg'],\n },\n },\n }),\n },\n baseStyle: ({ theme: { borders: borderWidth, colors: color } }) => ({\n control: {\n borderColor: color.border.radio.default,\n bg: color.background.radio.default,\n borderWidth: borderWidth.radio.default,\n _checked: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n _hover: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n },\n },\n _hover: {\n borderColor: color.border.radio['default-hover'],\n bg: color.background.radio.default,\n },\n _disabled: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n _hover: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n },\n },\n _invalid: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n _hover: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n defaultProps: {\n size: 'md',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Tabs: ComponentMultiStyleConfig = {\n parts: [ 'tab' ],\n baseStyle: ({ theme: { fontWeights: coreFontWeight } }) => ({\n tab: {\n fontWeight: coreFontWeight.semiBold,\n },\n }),\n variants: {\n 'soft-rounded': ({ theme: { colors: color } }) => ({\n tab: {\n borderRadius: 999,\n color: color.text.subdued,\n _selected: {\n bg: color.background.tabs['soft-rounded-active'],\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n rounded: ({ theme: { colors: color, radii: borderRadius } }) => ({\n tab: {\n color: color.text.subdued,\n borderRadius: borderRadius.button.default,\n _selected: {\n bg: color.background.tabs['soft-rounded-active'],\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n ai: ({ theme: { colors: color } }) => ({\n tab: {\n borderRadius: 999,\n _selected: {\n bgColor: color.bg.ai.default,\n color: color.text.inverted,\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n line: ({ theme: { colors: color } }) => ({\n tab: {\n color: color.text.subdued,\n _selected: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _active: {\n bg: color.mono.transparent,\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Textarea: ComponentSingleStyleConfig = {\n baseStyle: ({ 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 variants: {\n outline: {},\n ai: ({ theme: { colors: color } }) => ({\n _focusVisible: {\n _hover: {\n boxShadow: `0 0 0 1px ${color.border.ai}`,\n borderColor: color.border.ai,\n },\n },\n }),\n\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Link: ComponentSingleStyleConfig = {\n baseStyle: ({ colorScheme }) => ({\n _focus: {\n ring: '2px',\n ringColor: `${colorScheme}.100`,\n ringOffset: '1px',\n },\n }),\n defaultProps: {\n colorScheme: 'mediatoolBlue',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Switch: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n _disabled: {\n opacity: opacity.switch.disabled,\n },\n track: {\n bgColor: color.background.switch.default,\n _checked: {\n bgColor: color.background.switch['default-checked'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n thumb: {\n bgColor: color.background.switch.thumb,\n },\n }),\n}\n","import { ComponentMultiStyleConfig, useToken } 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: ({ theme: { colors }, bgColor, colorScheme }) => {\n const tagBgColor =\n bgColor ??\n (colors[colorScheme] && colors[colorScheme][500]\n ? colors[colorScheme][500]\n : colorScheme)\n\n const tagColor = getContrastColor(useToken('colors', tagBgColor))\n\n return {\n container: {\n bgColor: tagBgColor,\n color: tagColor,\n },\n }\n },\n subtle: ({ theme: { colors }, colorScheme, bgColor }) => {\n const tagBgColor =\n bgColor ??\n (colors[colorScheme] && colors[colorScheme][100]\n ? colors[colorScheme][100]\n : colorScheme)\n\n const tagColor = getContrastColor(useToken('colors', tagBgColor))\n\n return {\n container: {\n bgColor: tagBgColor,\n color: tagColor,\n },\n }\n },\n ai: {\n container: {\n bgColor: 'bg.ai.default',\n color: 'text.inverted',\n },\n },\n },\n defaultProps: {\n size: 'md',\n colorScheme: 'background.tag.default',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Alert: ComponentMultiStyleConfig = {\n parts: [ 'container', 'title', 'description' ],\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 ai: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.ai.default,\n color: color.text.inverted,\n },\n }),\n default: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.layer,\n color: color.text.default,\n },\n }),\n ghost: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.base,\n color: color.text.default,\n borderWidth: 'xs',\n borderColor: color.border.default,\n borderStyle: 'solid',\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const NumberInput: ComponentMultiStyleConfig = {\n parts: [ 'root', 'field', 'stepper', 'stepperGroup' ],\n sizes: {\n sm: ({ theme: { radii: borderRadius, sizes: sizing } }) => ({\n field: {\n borderRadius: borderRadius.input.outline,\n },\n stepperGroup: {\n height: sizing['8'],\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['10'],\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['12'],\n },\n }),\n },\n baseStyle: ({ theme: {\n sizes: sizing,\n space: spacing,\n colors: color,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n }, isReadOnly, minWidth, minW }) => ({\n root: {\n borderRadius: borderRadius.input.outline,\n },\n field: {\n minWidth: minWidth ?? minW ?? sizing['44'],\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n WebkitPaddingStart: spacing['padding-inline'].input.default,\n WebkitPaddingEnd: spacing['padding-inline'].input.default,\n color: color.text.default,\n bg: color.background.input['outline-default'],\n\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n paddingRight: spacing.paddingRight['number-input'].field,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focusVisible: {\n bg: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n boxShadow: `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: '1',\n borderRadius: 'md',\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n cursor: 'pointer',\n bgColor: color.background.button['ghost-hover'],\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n ...ring,\n },\n dayLabel: {\n color: color.gray[600],\n fontSize: 'xs',\n p: spacing[2],\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const DragAndDrop: ComponentMultiStyleConfig = {\n parts: [ 'dropZone' ],\n baseStyle: ({ sx }) => ({\n dropZone: merge({\n borderWidth: 'sm',\n borderStyle: 'dashed',\n borderColor: 'border.default',\n padding: '4',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '4',\n justifyContent: 'center',\n textAlign: 'center',\n minH: '56',\n minW: '56',\n bgColor: 'bg.filled',\n }, sx),\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const DatePicker: ComponentMultiStyleConfig = {\n parts: [ 'group', 'styledField', 'dateField', 'dateSegment' ],\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n group: {\n position: 'relative',\n alignItems: 'center',\n flex: 1,\n },\n styledField: {\n bgColor: 'background.default',\n _focusWithin: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.textarea.focus,\n boxShadow: `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 light: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color['base-alt'],\n }, sx),\n button: {\n bgColor: 'mono.transparent',\n _hover: {\n bgColor: color.background.button['ghost-hover'],\n },\n _checked: {\n color: color.text['flip-button'].default,\n bgColor: 'bg.base',\n _hover: {\n bgColor: 'bg.base',\n },\n },\n },\n }),\n ai: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-brand'],\n }, sx),\n button: {\n bgColor: 'transparent',\n _hover: {\n bgColor: 'transparent',\n },\n _checked: {\n bgColor: color.bg.ai.default,\n _hover: {\n bgColor: color.bg.ai.default,\n },\n },\n },\n }),\n },\n defaultProps: {\n size: 'md',\n variant: 'default',\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Spinner: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, borders: borderWidth } }) => ({\n borderWidth: borderWidth.spinner.default,\n color: color.background.spinner.thumb,\n borderBottomColor: color.background.spinner.track,\n borderLeftColor: color.background.spinner.track,\n }),\n}\n","import { randomColor } from '@chakra-ui/theme-tools'\nimport { getShades } from '../../../utils'\n\nconst possibleBgColors = getShades(400, 600)\n\nexport const getAvatarBgColor = (image: string, name: string, color: any) => {\n if (image) return color.background.avatar.image\n if (name) return randomColor({ string: name, colors: possibleBgColors })\n\n return color.background.avatar.default\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\nimport { getAvatarBgColor } from './get-avatar-bg-color'\n\nexport const Avatar: ComponentMultiStyleConfig = {\n parts: [ 'container', 'text', 'badge', 'icon' ],\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xs'],\n height: sizing.avatar['2xs'],\n },\n text: {\n lineHeight: sizing.avatar['2xs'],\n fontSize: '3xs',\n },\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xs,\n height: sizing.avatar.xs,\n },\n text: {\n lineHeight: sizing.avatar.xs,\n fontSize: 'xs',\n },\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.sm,\n height: sizing.avatar.sm,\n },\n text: {\n lineHeight: sizing.avatar.sm,\n fontSize: 'sm',\n },\n icon: {\n boxSize: sizing.avatar.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.md,\n height: sizing.avatar.md,\n },\n text: {\n lineHeight: sizing.avatar.md,\n fontSize: 'md',\n },\n icon: {\n boxSize: sizing.avatar.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.lg,\n height: sizing.avatar.lg,\n },\n text: {\n lineHeight: sizing.avatar.lg,\n fontSize: 'lg',\n },\n icon: {\n boxSize: sizing.avatar.lg,\n },\n }),\n xl: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xl,\n height: sizing.avatar.xl,\n },\n text: {\n lineHeight: sizing.avatar.xl,\n fontSize: '2xl',\n },\n }),\n '2xl': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xl'],\n height: sizing.avatar['2xl'],\n },\n text: {\n lineHeight: sizing.avatar['2xl'],\n fontSize: '4xl',\n },\n }),\n\n },\n baseStyle: ({ theme: {\n colors: color,\n sizes: sizing,\n radii: borderRadius,\n }, image, name, bgColor }) => {\n const avatarBgColor = bgColor || getAvatarBgColor(image, name, color)\n\n return {\n container: {\n bgColor: avatarBgColor,\n color: getContrastColor(avatarBgColor),\n display: 'grid',\n placeItems: 'center',\n objectFit: 'cover',\n position: 'relative',\n },\n userImage: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n badge: {\n position: 'absolute',\n bottom: `-${sizing['1']}`,\n right: `-${sizing['1']}`,\n minWidth: sizing['5'],\n height: sizing['5'],\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: 'xs',\n fontWeight: 'semibold',\n padding: sizing['0a'],\n bgColor: color.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: { h4 } },\n } = theme\n return ({\n overlay: {\n bgColor: 'background.modal.overlay',\n backdropFilter: 'blur(8px)',\n },\n closeButton: {\n top: 4,\n right: 4,\n },\n dialog: {\n bgColor: 'background.default',\n borderRadius: 'modal.dialog',\n },\n header: {\n fontSize: h4.fontSize,\n paddingTop: 'paddingTop.modal.header',\n paddingBottom: 'paddingBottom.modal.header',\n border: 'modal.header',\n borderBottomColor: 'border.modal.header',\n borderBottomStyle: 'solid',\n },\n body: {\n paddingTop: 'paddingTop.modal.body',\n paddingBottom: 'paddingBottom.modal.body',\n },\n footer: {\n paddingTop: 'paddingTop.modal.footer',\n paddingBottom: 'paddingBottom.modal.footer',\n },\n })\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { cssVar } from '@chakra-ui/theme-tools'\n\nconst $arrowBg = cssVar('popper-arrow-bg')\nconst $arrowBorder = cssVar('popper-arrow-shadow-color')\n\nexport const Tooltip: ComponentSingleStyleConfig = {\n baseStyle: ({\n theme: { colors: color, space: spacing, radii: borderRadius },\n }) => ({\n color: color.text.inverted,\n paddingInline: spacing['padding-inline'].tooltip.default,\n paddingY: spacing.paddingY.tooltip.default,\n borderRadius: borderRadius.tooltip.default,\n backgroundColor: color.background.tooltip.default,\n [$arrowBg.variable]: color.background.tooltip.default,\n }),\n variants: {\n default: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.bg.base,\n borderWidth: 'xs',\n borderColor: color.border.default,\n borderStyle: 'solid',\n [$arrowBg.variable]: color.bg.base,\n [$arrowBorder.variable]: color.border.default,\n }),\n success: ({ theme: { colors: color } }) => ({\n color: 'text.over.success',\n bgColor: 'success-alt',\n [$arrowBg.variable]: color['success-alt'],\n }),\n info: ({ theme: { colors: color } }) => ({\n color: 'text.over.brand',\n bgColor: 'brand-alt',\n [$arrowBg.variable]: color['brand-alt'],\n }),\n ghost: ({ theme: { colors: color } }) => ({\n color: 'text.default',\n bgColor: color.bg.base,\n borderWidth: 'xs',\n borderColor: color.border.default,\n [$arrowBorder.variable]: color.border.default,\n borderStyle: 'solid',\n [$arrowBg.variable]: color.bg.base,\n }),\n warning: ({ theme: { colors: color } }) => ({\n color: 'text.over.warning',\n bgColor: color['info-alt'],\n [$arrowBg.variable]: color['info-alt'],\n }),\n danger: ({ theme: { colors: color } }) => ({\n color: 'text.over.error',\n bgColor: color['destructive-alt'],\n [$arrowBg.variable]: color['destructive-alt'],\n }),\n error: ({ theme: { colors: color } }) => ({\n color: 'text.over.error',\n bgColor: color['destructive-alt'],\n [$arrowBg.variable]: color['destructive-alt'],\n }),\n ai: ({ theme: { colors: color } }) => ({\n bgColor: color.bg.ai.default,\n [$arrowBg.variable]: color.bg.ai.default,\n\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Icon: ComponentSingleStyleConfig = {\n sizes: {\n xs: {\n boxSize: 'icon.xs',\n },\n sm: {\n boxSize: 'icon.sm',\n },\n md: {\n boxSize: 'icon.md',\n },\n lg: {\n boxSize: 'icon.lg',\n },\n },\n baseStyle: ({ boxSize, color }) => ({\n boxSize: boxSize || 'icon.default',\n color: color || 'inherit',\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const ClipboardInput: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'tooltip' ],\n sizes: {\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n tooltip: {\n paddingInline: spacing['padding-inline'].tooltip.sm,\n paddingY: spacing.paddingY.tooltip.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const ColorPicker: ComponentMultiStyleConfig = {\n parts: [ 'colorButton', 'trigger', 'heading' ],\n baseStyle: ({ theme, selectedColor }) => {\n const { sizes: sizing, colors: color } = theme\n return ({\n heading: {\n border: 'none',\n paddingInlineStart: sizing['4'],\n paddingInlineEnd: sizing['2'],\n paddingBottom: sizing['0'],\n fontSize: 'md',\n fontWeight: 'semibold',\n },\n trigger: {\n bgColor: selectedColor ?? color.background.button.default,\n color: selectedColor ? getContrastColor(selectedColor) : 'unset',\n _hover: {\n bgColor: selectedColor ?? color.background.button['default-hover'],\n },\n _active: {\n bgColor: selectedColor ?? color.background.button['default-active'],\n },\n },\n colorButton: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n _hover: {\n ring: '2px',\n ringOffset: '1px',\n ringColor: `${color.border.input['default-hover']}`,\n },\n },\n })\n },\n sizes: {\n sm: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.lg,\n minWidth: sizing.button.lg,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Step: ComponentMultiStyleConfig = {\n parts: [ 'step', 'label', 'description', 'indicator' ],\n baseStyle: ({ theme: { colors: color, fontWeights, space: spacing, borders: borderWidth } }) => ({\n step: {\n justifyContent: 'start',\n alignItems: 'start',\n bgColor: color.background.step.default,\n borderTopWidth: borderWidth.step.default,\n borderColor: color.border.step.default,\n borderBottom: 'none',\n paddingInline: spacing['padding-inline'].step.default,\n color: color.text.subdued,\n _hover: {\n bgColor: color.background.step.hover,\n borderColor: color.border.step.hover,\n },\n _disabled: {\n cursor: 'not-allowed',\n _hover: { borderColor: color.border.step.default },\n },\n _active: {\n bgColor: color.background.step.active,\n },\n _selected: {\n bgColor: color.background.step.selected,\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n '[data-part=\"indicator\"]': {\n bg: color.border.step.selected,\n },\n _hover: {\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n },\n },\n },\n label: {\n color: 'inherit',\n textAlign: 'start',\n fontWeight: fontWeights.bold,\n },\n description: {\n textAlign: 'start',\n fontWeight: fontWeights.semiBold,\n color: color.text.default,\n },\n indicator: {\n minW: 6,\n minH: 6,\n borderRadius: 'full',\n bg: color.text.subdued,\n color: 'mono.white',\n fontWeight: fontWeights.bold,\n fontSize: 'xs',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '2xs',\n },\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const StepList: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, tabs }) => ({\n display: 'grid',\n width: '100%',\n gridTemplateColumns: `repeat(${tabs}, minmax(${sizing[32]}, 1fr))`,\n gridTemplateRows: '1fr',\n overflowX: 'auto',\n borderBottom: 'none',\n paddingBottom: sizing[2],\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H1: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h1 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h1.fontFamily,\n fontWeight: h1.fontWeight,\n lineHeight: h1.lineHeight,\n fontSize: h1.fontSize,\n letterSpacing: h1.letterSpacing,\n textTransform: h1.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H2: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h2 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h2.fontFamily,\n fontWeight: h2.fontWeight,\n lineHeight: h2.lineHeight,\n fontSize: h2.fontSize,\n letterSpacing: h2.letterSpacing,\n textTransform: h2.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H3: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h3 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h3.fontFamily,\n fontWeight: h3.fontWeight,\n lineHeight: h3.lineHeight,\n fontSize: h3.fontSize,\n letterSpacing: h3.letterSpacing,\n textTransform: h3.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H4: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h4 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h4.fontFamily,\n fontWeight: h4.fontWeight,\n lineHeight: h4.lineHeight,\n fontSize: h4.fontSize,\n letterSpacing: h4.letterSpacing,\n textTransform: h4.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H5: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h5 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h5.fontFamily,\n fontWeight: h5.fontWeight,\n lineHeight: h5.lineHeight,\n fontSize: h5.fontSize,\n letterSpacing: h5.letterSpacing,\n textTransform: h5.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H6: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h6 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h6.fontFamily,\n fontWeight: h6.fontWeight,\n lineHeight: h6.lineHeight,\n fontSize: h6.fontSize,\n letterSpacing: h6.letterSpacing,\n textTransform: h6.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Blockquote: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { blockquote } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: blockquote.fontFamily,\n fontWeight: blockquote.fontWeight,\n lineHeight: blockquote.lineHeight,\n fontSize: blockquote.fontSize,\n letterSpacing: blockquote.letterSpacing,\n textTransform: blockquote.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Tiny: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { tiny } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: tiny.fontFamily,\n fontWeight: tiny.fontWeight,\n lineHeight: tiny.lineHeight,\n fontSize: tiny.fontSize,\n letterSpacing: tiny.letterSpacing,\n textTransform: tiny.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Capitalized: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { CAPITALIZED } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: CAPITALIZED.fontFamily,\n fontWeight: CAPITALIZED.fontWeight,\n lineHeight: CAPITALIZED.lineHeight,\n fontSize: CAPITALIZED.fontSize,\n letterSpacing: CAPITALIZED.letterSpacing,\n textTransform: CAPITALIZED.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Lead: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { lead } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: lead.fontFamily,\n fontWeight: lead.fontWeight,\n lineHeight: lead.lineHeight,\n fontSize: lead.fontSize,\n letterSpacing: lead.letterSpacing,\n textTransform: lead.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Small: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { small } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: small.fontFamily,\n fontWeight: small.fontWeight,\n lineHeight: small.lineHeight,\n fontSize: small.fontSize,\n letterSpacing: small.letterSpacing,\n textTransform: small.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const P: ComponentSingleStyleConfig = {\n variants: {\n 14: ({ theme, sx }) => {\n const { body14 } = theme.typography.body\n return merge({\n fontFamily: body14.fontFamily,\n fontWeight: body14.fontWeight,\n lineHeight: body14.lineHeight,\n fontSize: body14.fontSize,\n letterSpacing: body14.letterSpacing,\n textTransform: body14.textCase,\n }, sx)\n },\n 16: ({ theme, sx }) => {\n const { body16 } = theme.typography.body\n return merge({\n fontFamily: body16.fontFamily,\n fontWeight: body16.fontWeight,\n lineHeight: body16.lineHeight,\n fontSize: body16.fontSize,\n letterSpacing: body16.letterSpacing,\n textTransform: body16.textCase,\n }, sx)\n },\n },\n baseStyle: {\n color: 'text.default',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Label: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, sx }) => merge({\n color: 'inherit',\n width: '100%',\n maxWidth: '100%',\n marginBottom: sizing[0],\n marginInlineStart: sizing[0],\n marginEnd: sizing[0],\n marginInlineEnd: sizing[0],\n }, sx),\n sizes: {\n '2xs': ({ theme, sx }) => {\n const { tinyLabel } = theme.typography.labels\n return merge({\n fontFamily: tinyLabel.fontFamily,\n fontWeight: tinyLabel.fontWeight,\n lineHeight: tinyLabel.lineHeight,\n fontSize: tinyLabel.fontSize,\n letterSpacing: tinyLabel.letterSpacing,\n textTransform: tinyLabel.textCase,\n }, sx)\n },\n xs: ({ theme, sx }) => {\n const { xsLabel } = theme.typography.labels\n return merge({\n fontFamily: xsLabel.fontFamily,\n fontWeight: xsLabel.fontWeight,\n lineHeight: xsLabel.lineHeight,\n fontSize: xsLabel.fontSize,\n letterSpacing: xsLabel.letterSpacing,\n textTransform: xsLabel.textCase,\n }, sx)\n },\n sm: ({ theme, sx }) => {\n const { smLabel } = theme.typography.labels\n return merge({\n fontFamily: smLabel.fontFamily,\n fontWeight: smLabel.fontWeight,\n lineHeight: smLabel.lineHeight,\n fontSize: smLabel.fontSize,\n letterSpacing: smLabel.letterSpacing,\n textTransform: smLabel.textCase,\n }, sx)\n },\n md: ({ theme, sx }) => {\n const { mdLabel } = theme.typography.labels\n return merge({\n fontFamily: mdLabel.fontFamily,\n fontWeight: mdLabel.fontWeight,\n lineHeight: mdLabel.lineHeight,\n fontSize: mdLabel.fontSize,\n letterSpacing: mdLabel.letterSpacing,\n textTransform: mdLabel.textCase,\n }, sx)\n },\n lg: ({ theme, sx }) => {\n const { lgLabel } = theme.typography.labels\n return merge({\n fontFamily: lgLabel.fontFamily,\n fontWeight: lgLabel.fontWeight,\n lineHeight: lgLabel.lineHeight,\n fontSize: lgLabel.fontSize,\n letterSpacing: lgLabel.letterSpacing,\n textTransform: lgLabel.textCase,\n }, sx)\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const NumVal: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, sx }) =>\n merge(\n {\n color: 'inherit',\n width: '100%',\n maxWidth: '100%',\n marginBottom: sizing[0],\n marginInlineStart: sizing[0],\n marginEnd: sizing[0],\n marginInlineEnd: sizing[0],\n },\n sx\n ),\n sizes: {\n '2xs': ({ theme, sx }) => {\n const { tinyMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: tinyMono.fontFamily,\n fontWeight: tinyMono.fontWeight,\n lineHeight: tinyMono.lineHeight,\n fontSize: tinyMono.fontSize,\n letterSpacing: tinyMono.letterSpacing,\n textTransform: tinyMono.textCase,\n textDecoration: tinyMono.textDecoration,\n },\n sx\n )\n },\n xs: ({ theme, sx }) => {\n const { xsMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: xsMono.fontFamily,\n fontWeight: xsMono.fontWeight,\n lineHeight: xsMono.lineHeight,\n fontSize: xsMono.fontSize,\n letterSpacing: xsMono.letterSpacing,\n textTransform: xsMono.textCase,\n textDecoration: xsMono.textDecoration,\n },\n sx\n )\n },\n sm: ({ theme, sx }) => {\n const { smMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: smMono.fontFamily,\n fontWeight: smMono.fontWeight,\n lineHeight: smMono.lineHeight,\n fontSize: smMono.fontSize,\n letterSpacing: smMono.letterSpacing,\n textTransform: smMono.textCase,\n textDecoration: smMono.textDecoration,\n },\n sx\n )\n },\n md: ({ theme, sx }) => {\n const { mdMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: mdMono.fontFamily,\n fontWeight: mdMono.fontWeight,\n lineHeight: mdMono.lineHeight,\n fontSize: mdMono.fontSize,\n letterSpacing: mdMono.letterSpacing,\n textTransform: mdMono.textCase,\n textDecoration: mdMono.textDecoration,\n },\n sx\n )\n },\n lg: ({ theme, sx }) => {\n const { lgMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: lgMono.fontFamily,\n fontWeight: lgMono.fontWeight,\n lineHeight: lgMono.lineHeight,\n fontSize: lgMono.fontSize,\n letterSpacing: lgMono.letterSpacing,\n textTransform: lgMono.textCase,\n textDecoration: lgMono.textDecoration,\n },\n sx\n )\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const SplitPane: ComponentSingleStyleConfig = {\n baseStyle: ({ minLeftWidth, minRightWidth, initialSplit, isOpen }) => ({\n display: 'grid',\n overflow: 'hidden',\n gridTemplateColumns: !isOpen ? '1fr' : `minmax(${minLeftWidth}%, var(--split-pos, ${initialSplit}%)) auto minmax(${minRightWidth}%, 1fr)`,\n alignItems: 'stretch',\n justifyItems: 'stretch',\n height: '100%',\n width: '100%',\n }),\n}\n\nexport const PaneDivider: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, sizes: sizing } }) => ({\n bgColor: color.background['pane-divider'].default,\n zIndex: 300,\n cursor: 'col-resize',\n height: '100%',\n width: sizing[1],\n _hover: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n _active: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Carousel: ComponentMultiStyleConfig = {\n parts: [ 'container', 'arrow', 'radio' ],\n baseStyle: {\n container: {\n display: 'grid',\n placeItems: 'center',\n position: 'relative',\n overflow: 'hidden',\n width: 'full',\n height: 'full',\n },\n radio: {\n position: 'absolute',\n bottom: '1',\n left: '50%',\n transform: 'translateX(-50%)',\n overflowX: 'scroll',\n maxWidth: '90%',\n padding: '2',\n },\n arrow: {\n position: 'absolute',\n bottom: '0',\n height: '100%',\n cursor: 'pointer',\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { isEmpty, isNil } from 'ramda'\n\nexport const EditableText: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'controls', 'preview', 'input' ],\n sizes: {\n sm: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n controls: {\n width: !isEditing ? 6 : '3.25rem',\n },\n preview: {\n pt: 1,\n },\n input: {\n paddingInlineEnd: 16,\n paddingRight: 16,\n },\n }),\n md: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n controls: {\n width: !isEditing ? 8 : '4.25rem',\n },\n preview: {\n pt: '7px',\n },\n input: {\n paddingInlineEnd: 20,\n paddingRight: 20,\n },\n }),\n lg: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n controls: {\n width: !isEditing ? 10 : '5.25rem',\n },\n preview: {\n pt: '8px',\n },\n input: {\n paddingInlineEnd: 24,\n paddingRight: 24,\n },\n }),\n },\n baseStyle: ({ value }) => ({\n controls: {\n mr: 1,\n },\n preview: {\n fontWeight: 'semibold',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n paddingTop: 0,\n paddingBottom: 0,\n color: isNil(value) || isEmpty(value) ? 'text.subdued' : 'text.default',\n },\n input: {\n fontWeight: 'semibold',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Toolbox: ComponentMultiStyleConfig = {\n parts: [ 'container', 'header', 'body', 'footer' ],\n baseStyle: ({ theme: {\n colors: color,\n sizes: sizing,\n borders: borderWidth,\n } }) => ({\n container: {\n position: 'relative',\n bg: 'text.inverted',\n h: '100vh',\n borderLeftWidth: borderWidth.xs,\n borderLeftStyle: 'solid',\n borderLeftColor: color.border.default,\n },\n header: {\n alignItems: 'center',\n height: '16',\n borderBottomWidth: borderWidth.xs,\n borderBottomStyle: 'solid',\n borderBottomColor: color.border.default,\n pl: '4',\n pr: '16',\n },\n footer: {\n position: 'absolute',\n bottom: '0',\n w: 'full',\n p: '4',\n alignItems: 'center',\n height: '16',\n borderTopWidth: borderWidth.xs,\n borderTopStyle: 'solid',\n borderTopColor: color.border.default,\n },\n body: {\n p: sizing['4'],\n flexDirection: 'column',\n w: '100%',\n h: '100%',\n maxH: `calc(100vh - ${sizing['16']} * 2)`,\n overflowY: 'scroll',\n },\n }),\n sizes: {\n sm: {\n container: {\n w: 'xs',\n },\n },\n md: {\n container: {\n w: 'md',\n },\n },\n lg: {\n container: {\n w: 'xl',\n },\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { CSSObject, keyframes } from '@emotion/react'\nimport { merge } from 'ramda'\nimport { CurrentTheme } from '../../../utils'\n\nconst shakeAnimation = keyframes`\n 0% { transform: translate(1px, 1px) rotate(0deg); }\n 10% { transform: translate(-1px, -2px) rotate(-1deg); }\n 20% { transform: translate(-3px, 0px) rotate(1deg); }\n 30% { transform: translate(3px, 2px) rotate(0deg); }\n 40% { transform: translate(1px, -1px) rotate(1deg); }\n 50% { transform: translate(-1px, 2px) rotate(-1deg); }\n 60% { transform: translate(-3px, 1px) rotate(0deg); }\n 70% { transform: translate(3px, 1px) rotate(-1deg); }\n 80% { transform: translate(-1px, -1px) rotate(1deg); }\n 90% { transform: translate(1px, 2px) rotate(0deg); }\n 100% { transform: translate(1px, -2px) rotate(-1deg); }\n`\n\nconst thickRing: CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '3px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n\nconst getBgColor = (currentTheme: CurrentTheme) => {\n switch (currentTheme) {\n case 'webappTheme': return 'blue.50'\n case 'tottTheme': return 'blue.900'\n default: return 'bg.filled'\n }\n}\n\nconst getInvalidColorStyles = (isInvalid: boolean, isImage = true, currentTheme: CurrentTheme = 'webappTheme') => ({\n borderColor: isInvalid ? '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\nconst getAiColorStyles = (isInvalid: boolean, isImage = true) => ({\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' : 'bg.filled',\n borderColor: isInvalid ? 'red.500' : 'border.ai',\n },\n})\n\nexport const FilePicker: ComponentMultiStyleConfig = {\n parts: [ 'filePicker', 'fileItem', 'multiFilePicker' ],\n baseStyle: ({ theme: { sizes, colors }, hasLoaded, isImage, isInvalid, currentTheme, sx }) => ({\n filePicker: merge({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: 'full',\n height: '40',\n textAlign: 'center',\n position: 'relative',\n borderWidth: hasLoaded && isImage ? '0' : sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, isImage, currentTheme),\n ...thickRing,\n }, sx),\n multiFilePicker: {\n width: 'full',\n maxWidth: 'inherit',\n height: '32',\n position: 'relative',\n borderWidth: sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, undefined, currentTheme),\n ...thickRing,\n },\n fileItem: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n paddingX: '2',\n paddingY: '1',\n borderRadius: sizes['2'],\n textAlign: 'center',\n position: 'relative',\n border: `2px solid ${colors.gray['100']}`,\n minHeight: '20',\n },\n }),\n variants: {\n ai: ({ isInvalid }) => ({\n filePicker: {\n ...getAiColorStyles(isInvalid),\n },\n multiFilePicker: {\n ...getAiColorStyles(isInvalid),\n },\n }),\n\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { mode } from '@chakra-ui/theme-tools'\n\nexport const Table: ComponentMultiStyleConfig = {\n parts: [\n 'table',\n 'th',\n 'td',\n 'columnHeader',\n 'cell',\n 'caption',\n 'footer',\n 'tr',\n ],\n variants: {\n rounded: () => ({\n table: {\n borderSpacing: '0',\n borderCollapse: 'separate',\n borderRadius: 'md',\n borderColor: 'border.default',\n borderWidth: 'xs',\n px: '3',\n },\n\n th: {\n color: 'text.subdued',\n fontWeight: 'bold',\n textTransform: 'none',\n fontSize: 'sm',\n },\n\n td: {\n borderColor: 'border.default',\n borderTopWidth: 'xs',\n },\n }),\n striped: (props) => {\n const { colorScheme: c = 'gray' } = props\n\n return {\n table: {\n borderSpacing: '0',\n borderCollapse: 'separate',\n borderRadius: 'md',\n borderColor: 'border.default',\n borderWidth: 'xs',\n p: '2',\n },\n columnHeader: {\n color: 'text.subdued',\n bgColor: mode(`${c}.100`, `${c}.700`)(props),\n fontWeight: 'bold',\n textTransform: 'none',\n fontSize: 'sm',\n },\n cell: {\n bgColor: mode(`${c}.100`, `${c}.700`)(props),\n },\n caption: {\n color: mode('gray.600', 'gray.100')(props),\n },\n th: {\n borderBottomWidth: '0',\n },\n tr: {\n '&:nth-of-type(odd)': {\n td: {\n background: mode(`${c}.100`, `${c}.700`)(props),\n },\n },\n },\n footer: {\n tr: {\n th: { borderBottomWidth: 0 },\n },\n },\n }\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Menu: ComponentMultiStyleConfig = {\n parts: [ 'list', 'item' ],\n baseStyle: ({ theme: {\n colors: color,\n radii: borderRadius,\n } }) => ({\n menu: {\n borderColor: color.border.default,\n },\n list: {\n px: '2',\n bgColor: color.bg.base,\n },\n item: {\n py: '2',\n color: color.text.default,\n borderRadius: borderRadius.select.default,\n bgColor: color.bg.base,\n _hover: {\n bgColor: color.background.button.default,\n },\n _active: {\n bgColor: color.background.button.default,\n },\n _focus: {\n bgColor: color.background.button.default,\n },\n _checked: {\n fontWeight: 'bold',\n },\n },\n }),\n variants: {\n compact: ({ theme: { colors: color } }) => ({\n item: {\n fontSize: 'sm',\n color: color.text.default,\n },\n }),\n relaxed: ({ theme: { colors: color } }) => ({\n item: {\n py: '2',\n fontSize: 'md',\n color: color.text.default,\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig, useToken } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const Badge: ComponentSingleStyleConfig = {\n baseStyle: ({ colorScheme, theme: { colors } }) => {\n const bgColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][100]\n : colors[colorScheme] && colors[colorScheme][100]\n const textColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][800]\n : colors[colorScheme] && colors[colorScheme][800]\n\n return {\n bgColor,\n color: textColor,\n }\n },\n variants: {\n solid: ({ colorScheme, theme: { colors } }) => {\n const bgColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][500]\n : colors[colorScheme] && colors[colorScheme][500]\n\n return {\n bgColor,\n color: getContrastColor(bgColor ?? useToken('colors', colorScheme)),\n }\n },\n outline: ({ colorScheme, theme: { colors } }) => {\n const textColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][500]\n : colors[colorScheme] && colors[colorScheme][700]\n\n return {\n bgColor: 'mono.transparent',\n color: textColor,\n }\n },\n ghost: ({ colorScheme, theme: { colors } }) => {\n const textColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][500]\n : colors[colorScheme] && colors[colorScheme][700]\n\n return {\n bgColor: 'mono.transparent',\n color: textColor,\n }\n },\n },\n sizes: {\n xs: {\n fontSize: '2xs',\n },\n sm: {\n fontSize: 'xs',\n },\n md: {\n fontSize: 'sm',\n },\n lg: {\n fontSize: 'md',\n },\n },\n defaultProps: {\n size: 'sm',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Popover: ComponentMultiStyleConfig = {\n parts: [ 'popper' ],\n baseStyle: {\n popper: {\n zIndex: 'popover',\n },\n },\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n WebappComponentsTokensSet,\n WebappSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const WebappSkin: ThemeOverride = {\n colors: {\n ...WebappSystemTokensSet.st.color,\n ...WebappComponentsTokensSet.color,\n text: {\n ...WebappSystemTokensSet.st.color.text,\n ...WebappComponentsTokensSet.color.text,\n },\n border: {\n ...WebappSystemTokensSet.st.color.border,\n ...WebappComponentsTokensSet.color.border,\n },\n },\n sizes: WebappComponentsTokensSet.sizing,\n space: WebappComponentsTokensSet.spacing,\n radii: {\n ...WebappSystemTokensSet.st.borderRadius,\n ...WebappComponentsTokensSet.borderRadius,\n },\n borders: {\n ...WebappSystemTokensSet.st.borderWidth,\n ...WebappComponentsTokensSet.borderWidth,\n },\n opacity: WebappComponentsTokensSet.opacity,\n typography,\n shadows: { ...WebappSystemTokensSet.st.boxShadow },\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n TottComponentsTokensSet,\n TottSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const TottSkin: ThemeOverride = {\n colors: {\n ...TottSystemTokensSet.st.color,\n ...TottComponentsTokensSet.color,\n border: {\n ...TottSystemTokensSet.st.color.border,\n ...TottComponentsTokensSet.color.border,\n },\n },\n sizes: TottComponentsTokensSet.sizing,\n space: TottComponentsTokensSet.spacing,\n radii: {\n ...TottSystemTokensSet.st.borderRadius,\n ...TottComponentsTokensSet.borderRadius,\n },\n borders: {\n ...TottSystemTokensSet.st.borderWidth,\n ...TottComponentsTokensSet.borderWidth,\n },\n opacity: TottComponentsTokensSet.opacity,\n typography,\n shadows: { ...TottSystemTokensSet.st.boxShadow },\n}\n","import {\n ThemeOverride,\n extendTheme,\n} from '@chakra-ui/react'\nimport {\n coreBorderRadius,\n coreBoxShadow,\n coreFontSize,\n coreFontWeight,\n coreLineHeight,\n coreSizing,\n coreSpacing,\n coreZIndex,\n palette,\n} from '@northlight/tokens'\nimport { scrollbarStyles } from './global/scrollbar'\nimport * as components from './components'\nimport { TottSkin, WebappSkin } from './skins'\n\nconst overrides: ThemeOverride = {\n config: {\n cssVarPrefix: '',\n },\n semanticTokens: {\n colors: {\n 'chakra-body-text': {\n _light: 'text.default',\n _dark: 'text.inverted',\n },\n },\n },\n styles: {\n global: {\n html: {\n scrollBehavior: 'smooth',\n },\n body: {\n height: '100%',\n },\n '#app': {\n height: '100%',\n },\n ...scrollbarStyles,\n },\n },\n fonts: {\n heading: 'Inter, sans-serif',\n body: 'Inter, sans-serif',\n },\n components: { ...components },\n colors: palette,\n zIndices: coreZIndex,\n sizes: coreSizing,\n space: coreSpacing,\n fontWeights: coreFontWeight,\n shadows: coreBoxShadow,\n fontSizes: coreFontSize,\n lineHeights: coreLineHeight,\n radii: coreBorderRadius,\n borderWidths: WebappSkin.borders,\n}\n\nexport const theme = extendTheme(overrides, WebappSkin)\n\nexport const tottTheme = extendTheme(overrides, TottSkin)\n","import React, {\n FunctionComponent,\n KeyboardEvent,\n useEffect,\n useState,\n} from 'react'\nimport {\n ActionMeta,\n CreatableSelect,\n MultiValue,\n} from 'chakra-react-select'\nimport { any, identity, isEmpty } from 'ramda'\nimport { Box } from '../box'\nimport { useToken } from '../../hooks'\nimport { TagsInputProps } from './types'\nimport { Option } from '../select'\nimport { tagsInputStyles } from './tags-input-styles'\nimport { theme } from '../../theme'\n/**\n * Tags Input, based of react creatable select, is meant to select\n * multiple tags. Follows styling of textarea and is resizable.\n *\n * @see {@link https://northlight.dev/reference/tags-input}\n * @example (Example)\n * ## Simple\n * (?\n * <TagsInput />\n * ?)\n *\n * @example (Example)\n * ## With suggestions\n * (?\n * <TagsInput options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}/>\n * ?)\n *\n */\nexport function TagsInput<T extends Option> ({\n options,\n onChange = identity,\n isLoading,\n loadingList = () => null,\n 'data-testid': testId,\n value = [],\n onError,\n ...rest\n}: TagsInputProps<T>) {\n const [ borderColor ] = useToken('border.select', [ 'focus' ])\n const [ menuIsOpen, setMenuIsOpen ] = useState(false)\n const [ inputValue, setInputValue ] = useState('')\n const [ selectedOptions, setSelectedOptions ] = useState<MultiValue<T>>(value)\n const [ isFocused, setIsFocused ] = useState(false)\n\n useEffect(() => {\n setSelectedOptions(value)\n }, [ value.length ])\n\n const CustomSelect = CreatableSelect as FunctionComponent<TagsInputProps<T>>\n\n const handleChange = (values: MultiValue<T>, actionMeta: ActionMeta<T>) => {\n setSelectedOptions(values)\n onChange(values, actionMeta)\n }\n\n const isValidNewOption = (input: string, availableOptions: MultiValue<T>) => !any(\n (option) => option.value === input,\n availableOptions\n )\n\n const addNewOption = (newOption: T) => {\n const updatedOptions = [ ...selectedOptions, newOption ]\n onChange(updatedOptions, { action: 'select-option', option: newOption })\n setSelectedOptions(updatedOptions)\n }\n\n const clearInput = () => {\n setInputValue('')\n }\n\n const handleInputChange = (newInput: string) => {\n if (newInput === ',') return\n\n setInputValue(newInput)\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const shouldAddOption = event.key === 'Enter' || event.key === 'Tab' || event.key === ','\n\n if (!shouldAddOption || isEmpty(inputValue)) return\n\n const trimmedInputValue = inputValue.trim()\n\n if (isValidNewOption(trimmedInputValue, selectedOptions)) {\n const newOption: Option = { value: trimmedInputValue, label: trimmedInputValue }\n addNewOption(newOption as T)\n } else {\n onError?.('Tag already exists')\n }\n\n clearInput()\n }\n\n const handleFocus = () => {\n setIsFocused(true)\n if (options && options.length > 0) {\n setMenuIsOpen(true)\n }\n }\n\n return (\n <Box w=\"full\" data-testid={ testId }>\n <CustomSelect\n isMulti={ true }\n menuPortalTarget={ document.body }\n placeholder=\"Type something and press Enter or comma...\"\n options={ options }\n useBasicStyles={ true }\n closeMenuOnSelect={ false }\n hideSelectedOptions={ false }\n isClearable={ false }\n onChange={ handleChange }\n onInputChange={ handleInputChange }\n onKeyDown={ handleKeyDown }\n inputValue={ inputValue }\n selectedOptionStyle=\"check\"\n chakraStyles={ tagsInputStyles(isFocused, borderColor) }\n onFocus={ handleFocus }\n isValidNewOption={ isValidNewOption }\n onBlur={ () => {\n setMenuIsOpen(false)\n setIsFocused(false)\n } }\n menuIsOpen={ menuIsOpen }\n isLoading={ isLoading }\n { ...(isLoading && { components: { MenuList: loadingList } }) }\n value={ selectedOptions }\n components={ {\n DropdownIndicator: () => null,\n } }\n styles={ { menuPortal: (base) => ({ ...base, zIndex: theme.zIndices.popover }) } }\n formatCreateLabel={ (textInputValue: string) =>\n `Add tag \"${textInputValue}\"`\n }\n { ...rest }\n />\n </Box>\n )\n}\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { OrganizationLogoProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/organization-logo}\n *\n * @example\n * (?\n * <OrganizationLogo name=\"mediatool\" />\n * ?)\n *\n */\nexport const OrganizationLogo = ({\n name,\n image,\n variant = 'square',\n ...rest\n}: OrganizationLogoProps) => {\n const getInitials = (orgName: string) => orgName[0].toUpperCase()\n const {\n container,\n text,\n } = useMultiStyleConfig('Avatar', { variant, image, ...rest })\n\n return (\n <chakra.div\n __css={ container }\n data-testid=\"organization-logo-test-id\"\n { ...rest }\n >\n { image ? (\n <chakra.img\n alt={ name }\n src={ image }\n />\n )\n : (\n <chakra.span __css={ text }>\n { getInitials(name) }\n </chakra.span>\n )\n }\n </chakra.div>\n )\n}\n","import React from 'react'\nimport { Alert as ChakraAlert } from '@chakra-ui/react'\nimport { AlertProps } from './types'\n\nexport const Alert = ({\n variant = 'success',\n children,\n ...rest\n}: AlertProps) => (\n <ChakraAlert variant={ variant } { ...rest }>\n { children }\n </ChakraAlert>\n)\n","import React from 'react'\nimport { AspectRatioProps, AspectRatio as ChakraAspectRatio } from '@chakra-ui/react'\n\n/**\n * Meant to restrict child by specific ratio\n * @see {@link https://northlight.dev/aspect-ratio}\n * @example\n * (?\n <AspectRatio maxW='400px' ratio={4 / 3}>\n <Image src='https://bit.ly/naruto-sage' alt='naruto' objectFit='cover' />\n</AspectRatio>\n?)\n *\n * */\nexport const AspectRatio = (props: AspectRatioProps) => (\n <ChakraAspectRatio { ...props } />\n)\n","import React from 'react'\nimport {\n Icon as ChakraIcon,\n forwardRef,\n useStyleConfig,\n} from '@chakra-ui/react'\nimport { IconProps } from './types'\n\n/**\n * Pass down any icon from northlight/icons via as prop\n * @see IconButton\n * @see {@link https://northlight.dev/reference/icon}\n *\n * @example\n * (?\n * <Icon as={SmileyDuo} size=\"lg\" />\n * ?)\n */\nexport const Icon = forwardRef(({\n as: As,\n size,\n color,\n boxSize,\n ...rest\n}: IconProps, ref: any) => {\n const CustomIcon = As ?? (() => <ChakraIcon />)\n const styles = useStyleConfig('Icon', { size, color, boxSize })\n\n return (\n <ChakraIcon\n ref={ ref }\n sx={ styles }\n { ...rest }\n >\n <CustomIcon />\n </ChakraIcon>\n )\n})\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { AvatarBadgeProps } from './types'\n\n/**\n * Specific component meant to be used with <Avatar /> to display notification\n * @see Avatar\n * @see {@link https://northlight.dev/reference/avatar}\n *\n * @example (Example)\n * Examle:\n * (?\n * <Avatar notificationCount={4} />\n * ?)\n *\n */\nexport const AvatarBadge = ({\n notificationCount = 0,\n}: AvatarBadgeProps) => {\n const { badge } = useMultiStyleConfig('Avatar')\n return (\n <chakra.span sx={ badge }>\n { notificationCount > 999 ? '999+' : notificationCount }\n </chakra.span>\n )\n}\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { BusinessContactDuo, UserSquareDuo } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { getInitials } from '../../utils'\nimport { AvatarProps } from './types'\nimport { AvatarBadge } from './avatar-badge'\n\n/**\n * @see AvatarGroup\n * @see {@link https://northlight.dev/reference/avatar}\n *\n * @example (Example)\n * Avatar takes a name and image\n * (?\n * <Avatar name=\"Darth Vader\" image='/vader.png' />\n * ?)\n *\n * <br />\n * If there is no image, it will render the initials of the name along with a random bg color.\n * (?\n * <Avatar name=\"Darth Vader\" />\n * ?)\n *\n * <br />\n *\n * If the name also is undefined, it will render a fallback icon\n * (?\n * <Avatar />\n * ?)\n */\nexport const Avatar = ({\n variant = 'square',\n notificationCount = 0,\n name,\n image,\n size,\n bgColor,\n ...rest\n}: AvatarProps) => {\n const { container, text, userImage, icon } = useMultiStyleConfig('Avatar', {\n variant,\n image,\n size,\n name,\n bgColor,\n })\n\n return (\n <Box __css={ container } data-testid=\"avatar-test-id\" { ...rest }>\n { image\n ? (\n <chakra.img\n alt={ name }\n src={ image }\n sx={ userImage }\n />\n ) : name\n ? (\n <chakra.span sx={ text }>\n { getInitials(name) }\n </chakra.span>\n )\n : (\n <Icon\n as={ variant === 'square' ? UserSquareDuo : BusinessContactDuo }\n sx={ icon }\n aria-label=\"user-avatar\"\n />\n ) }\n { notificationCount > 0 && (\n <AvatarBadge notificationCount={ notificationCount } />\n ) }\n </Box>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h1}\n * @example (Example)\n * (?\n * <H1>Heading 1</H1>\n * ?)\n */\nexport const H1 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H1', { sx })\n\n return (\n <Heading\n as=\"h1\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h2}\n * @example (Example)\n * (?\n * <H2>Heading 2</H2>\n * ?)\n *\n */\nexport const H2 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H2', { sx })\n\n return (\n <Heading\n as=\"h2\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h3}\n * @example (Example)\n * (?\n * <H3>Heading 3</H3>\n * ?)\n */\nexport const H3 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H3', { sx })\n\n return (\n <Heading\n as=\"h3\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h4}\n * @example (Example)\n * (?\n * <H4>Heading 4</H4>\n * ?)\n */\nexport const H4 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H4', { sx })\n\n return (\n <Heading\n as=\"h4\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h5}\n * @example (Example)\n * (?\n * <H5>Heading 5</H5>\n * ?)\n */\nexport const H5 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H5', { sx })\n\n return (\n <Heading\n as=\"h5\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h6}\n * @example (Example)\n * (?\n * <H6>Heading 6</H6>\n * ?)\n */\nexport const H6 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H6', { sx })\n\n return (\n <Heading\n as=\"h6\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, useStyleConfig } from '@chakra-ui/react'\nimport { PProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/p}\n * @example\n * (?\n * <P>Body text</P>\n * ?)\n *\n */\nexport const P = forwardRef<HTMLParagraphElement, PProps>(({\n children,\n variant = '16',\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('P', { variant, sx })\n\n return (\n <ChakraText\n variant={ variant }\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/blockquote }\n *\n * @example (Example)\n * (?\n * <Blockquote sx={{color: 'green.500' }}>Success</Blockquote>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n *\n *\n */\nexport const Blockquote = forwardRef<HTMLParagraphElement, TextProps>(\n ({ children, sx = {}, ...rest }, ref) => {\n const styles = useStyleConfig('Blockquote', { sx })\n\n return (\n <ChakraText as=\"span\" sx={ styles } ref={ ref } { ...rest }>\n { children }\n </ChakraText>\n )\n }\n)\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/capitalized }\n *\n * @example (Example)\n * (?\n * <Capitalized sx={{color: 'red.500' }}>Error</Capitalized>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Capitalized = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Capitalized', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/lead }\n *\n * @example\n * (?\n * <Lead>Lead</Lead>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Lead = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Lead', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Blockquote\n * @see Tiny\n * @see {@link https://northlight.dev/reference/small }\n *\n * @example (Example)\n * (?\n * <Small>Small</Small>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n */\nexport const Small = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Small', { sx })\n\n return (\n <ChakraText\n as=\"small\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Blockquote\n * @see Small\n * @see {@link https://northlight.dev/reference/tiny }\n *\n * @example (Example)\n * (?\n * <Tiny>Tiny</Tiny>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n */\nexport const Tiny = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Tiny', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { FormLabel, VisuallyHidden, useStyleConfig } from '@chakra-ui/react'\nimport { LabelProps } from './types'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/label }\n *\n * @example\n * (?\n * <Label sx={{color: 'brand.500' }} size=\"lg\">Brand</Label>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(({\n children,\n size = 'sm',\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Label', { sx, size })\n\n return (\n <FormLabel\n sx={ styles }\n requiredIndicator={ <VisuallyHidden /> }\n ref={ ref }\n { ...rest }\n >\n { children }\n </FormLabel>\n )\n})\n","import React, { forwardRef } from 'react'\nimport {\n Text as ChakraText,\n TextProps,\n useStyleConfig,\n} from '@chakra-ui/react'\n\n/**\n * @see {@link https://northlight.dev/reference/label }\n *\n * @example\n * (?\n * <NumVal sx={{color: 'brand' }} size=\"lg\">270 000 000</NumVal>\n * ?)\n * (_Note, all other css properties not listed\n *\n */\nexport const NumVal = forwardRef<HTMLLabelElement, TextProps>(\n ({ children, size = 'sm', sx = {}, ...rest }, ref) => {\n const styles = useStyleConfig('NumVal', { sx, size })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n }\n)\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { always, dec, defaultTo, gt, identity, ifElse, inc, isNil, take } from 'ramda'\nimport { OverflowGroupProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\n\nconst positiveOrZero = ifElse(gt(0), always(0), identity)\nconst EMPTY_RECT = {\n clientWidht: 0,\n clientHeight: 0,\n}\nconst EMPTY_WINDOW = {\n innerWidth: 0,\n innerHeight: 0,\n}\n\n/**\n * Util wrapper for lists by only rendering as many items as fit per the specification\n * @see {@link https://northlight.dev/reference/overflow-group}\n * @example\n * (?\n * +\n *\nconst CustomSlider = ({ onChange }) => (\n <Slider min={ 100 } max={ 300 } step={ 1 } onChange={ onChange }>\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb />\n </Slider>\n)\n *\n\nconst arrayWithLength = (n) => {\n let buffer = []\n for(let i = 0; i < n; i++) {\n buffer.push(i)\n }\n return buffer\n}\n * const MyComponent = () => {\n * const [ n, setN ] = useState(5)\n const [ max, setMax ] = useState(10)\n const [ width, setWidth ] = useState(200)\n const [ height, setHeight ] = useState(200)\n const { containerRef, rect } = useOverflowGroup()\n const [ nbrRemainingItems, setNbrRemainingItems ] = useState(0)\n * return (\n * <Stack mb={ 4 } spacing={ 4 } w=\"40%\">\n <Stack h=\"300px\">\n <Wrap\n w={ width }\n h={ height }\n ref={ containerRef }\n borderWidth=\"2px\"\n borderColor=\"gray.200\"\n borderStyle=\"solid\"\n p=\"2\"\n borderRadius=\"md\"\n >\n <OverflowGroup\n max={ max }\n rect={ rect }\n onChange={ setNbrRemainingItems }\n >\n { arrayWithLength(n).map((i) => (\n <Badge key={ i } h=\"max-content\">\n Item { i }\n </Badge>\n )) }\n </OverflowGroup>\n { nbrRemainingItems > 0 && (\n <Tag w=\"fit-content\">+{ nbrRemainingItems }</Tag>\n ) }\n </Wrap>\n </Stack>\n <Stack bgColor=\"gray.50\" p=\"2\" borderRadius=\"md\">\n <HStack>\n <Label>Height</Label>\n <CustomSlider onChange={ setHeight } />\n </HStack>\n <HStack>\n <Label>Width</Label>\n <CustomSlider onChange={ setWidth } />\n </HStack>\n <HStack>\n <Label>Number of items </Label>\n <NumberInput onChange={ (v) => setN(Number(v)) } value={ n } />\n </HStack>\n <HStack>\n <Label>Render max </Label>\n <NumberInput onChange={ (v) => setMax(Number(v)) } value={ max } />\n </HStack>\n </Stack>\n </Stack>\n * )}\nrender(<MyComponent/>)\n * ?)\n<br />\nThe overflow group requires either a max prop for a set limit, or a rect prop,\n for a dynamic, responsive layouts. The rect prop can be received via the useOverflowGroup hook,\n along with a containerRef that needs to be set on the wrapper around the overflow group.\n<br />\n<br />\nThe overflow group is ambiguous in the styling of the children and does not pose any premade layout;\n instead the wrapper parent container determines the layout.\n One could for example use a <Stack /> <HStack /> or <Grid> and all would work.\n The overflow group only checks if the children don't fit within the height/width\n of it's container via the containerRef.\n\n *\n */\nexport const OverflowGroup = ({\n children,\n max: initMax = 0,\n childrenProps,\n onChange = identity,\n rect,\n}: OverflowGroupProps) => {\n const [ max, setMax ] = useState(isNil(rect) ? initMax : 0)\n const [ windowState, setWindowState ] = useState(EMPTY_WINDOW)\n const isLocked = useRef(false)\n const nbrChildren = Children.count(children)\n\n const updateMax = () => {\n if (!rect) return\n\n if (\n rect.scrollHeight <= rect.clientHeight &&\n rect.scrollWidth <= rect.clientWidth &&\n max < nbrChildren &&\n !isLocked.current &&\n max < initMax\n ) {\n setMax(inc)\n }\n\n if (\n rect.scrollHeight > rect.clientHeight ||\n rect.scrollWidth > rect.clientWidth\n ) {\n setMax(dec)\n isLocked.current = true\n }\n }\n\n const rectDependency = defaultTo(EMPTY_RECT, rect) as HTMLElement\n useEffect(updateMax, [\n rectDependency.clientWidth,\n rectDependency.clientHeight,\n nbrChildren,\n max,\n windowState.innerHeight,\n windowState.innerHeight,\n initMax,\n ])\n\n useEffect(() => {\n isLocked.current = false\n }, [ rectDependency.clientHeight, rectDependency.clientWidth ])\n\n const handleResize = () => {\n setTimeout(() => {\n isLocked.current = false\n setWindowState({\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n })\n }, 200)\n }\n\n useEffect(() => {\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n useEffect(() => {\n const nbrRemainingChildren = positiveOrZero(nbrChildren - max)\n onChange(nbrRemainingChildren)\n }, [ max, nbrChildren ])\n\n const shownChildren = take(\n max,\n getChildrenWithProps(children, defaultTo({}, childrenProps))\n )\n\n return <>{ shownChildren }</>\n}\n","import { useState } from 'react'\n\nexport const useOverflowGroup = () => {\n const [ rect, setRect ] = useState<HTMLDivElement | null>(null)\n const containerRef = (node: any) => {\n if (node) {\n setRect(node)\n }\n }\n\n return { rect, containerRef }\n}\n","import React, { useState } from 'react'\nimport { HStack } from '../stack'\nimport { AvatarGroupProps } from './types'\nimport { Small } from '../typography'\nimport { OverflowGroup } from '../overflow-group'\nimport { getChildrenWithProps } from '../../utils'\n\n/**\n * Used to display a group of users\n * @see Avatar\n * @see {@link https://northlight.dev/reference/avatar-group}\n *\n * @example (Example)\n * (?\n * <AvatarGroup max={ 3 }>\n {[1, 2, 3, 4, 5].map((i) => (\n <Avatar\n name=\"Darth Vader\"\n image=\"/vader.png\"\n size=\"sm\"\n variant=\"rounded\"\n key={ i }\n />\n )) }\n</AvatarGroup>\n * ?)\n *\n */\nexport const AvatarGroup = ({\n children,\n max = Infinity,\n spacing = '-4',\n ...rest\n}: AvatarGroupProps) => {\n const [ nbrRemainingAvatars, setNbrRemainingAvatars ] = useState(0)\n const childrenWithMargin = getChildrenWithProps(\n children,\n { ml: spacing },\n (_child, idx) => idx > 0\n )\n\n return (\n <HStack bgColor=\"background.default\" { ...rest }>\n <HStack spacing={ 0 }>\n <OverflowGroup max={ max } onChange={ setNbrRemainingAvatars }>\n { childrenWithMargin }\n </OverflowGroup>\n </HStack>\n { nbrRemainingAvatars > 0 && (\n <Small sx={ { color: 'blue.500' } }>\n +{ nbrRemainingAvatars }\n </Small>\n ) }\n </HStack>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { Badge as ChakraBadge } from '@chakra-ui/react'\nimport { BadgeProps } from './types'\n\n/**\n * Badges are used to highlight an item's status for quick recognition.\n * @see {@link https://northlight.dev/reference/badge}\n *\n * @example\n * (?\n * +\n * const colors = [\"gray\", \"mediatoolBlue\", \"blue\", \"red\", \"green\",\n * \"orange\", \"yellow\", \"teal\", \"purple\", \"pink\"]\n * const variants = [\"solid\", \"outline\", \"subtle\", \"ghost\"]\n * const Example = () => {\n * return <Stack>\n * { colors.map((color) => (\n * <HStack spacing={ 4 }>\n * {\n * variants.map((variant) => (\n * <Badge colorScheme={color} variant={variant}>{variant} Badge</Badge>\n * ))\n * }\n * </HStack>\n * ))}\n * </Stack>\n * }\n * render(<Example/>)\n * ?)\n */\nexport const Badge = forwardRef<HTMLDivElement, BadgeProps>((props, ref) => (\n <ChakraBadge ref={ ref } { ...props } />\n))\n","import React from 'react'\nimport { useStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../box'\nimport { BlinkerProps } from './types'\n\n/**\n * Status indicator of some sorts\n * @see {@link https://northlight.dev/reference/blinker}\n *\n * @example (Example)\n * (?\n * <Box p=\"4\">\n * <Blinker color=\"bg.brand.default\" />\n * </Box>\n * ?)\n */\nexport const Blinker = ({\n color = '',\n size,\n isBlinking = true,\n ...rest\n}: BlinkerProps) => {\n const styles = useStyleConfig('Blinker', { color, size, isBlinking })\n\n return <Box sx={ styles } data-testid=\"blinker-test-id\" { ...rest } />\n}\n","import React from 'react'\nimport { Spinner as ChakraSpinner } from '@chakra-ui/react'\nimport { SpinnerProps } from './types'\n\n/**\n * Loading indicator\n * @see {@link https://northlight.dev/reference/spinner }\n * @example\n * (? <Spinner /> ?)\n */\nexport const Spinner = (({\n ...rest\n}: SpinnerProps) => (\n <ChakraSpinner { ...rest } />\n))\n","import React, { forwardRef } from 'react'\nimport { Button as ChakraButton } from '@chakra-ui/react'\nimport { Spinner } from '../spinner'\nimport { ButtonProps } from './types'\n\nconst SpinnerSizeMap = {\n xs: 'xs',\n sm: 'sm',\n md: 'sm',\n lg: 'md',\n}\n\n/**\n * @see {@link https://northlight.dev/reference/button}\n *\n * @example\n * (?\n <Button\n variant=\"success\"\n leftIcon={ <Icon as={ FolderCheckDuo } /> }\n rightIcon={ <Icon as={ PlusDuo } /> }\n >\n Create folder\n </Button>\n * ?)\n *\n * @example (Example)\n * (?\n * +\n * const variants = ['link', 'success', 'default', 'danger', 'brand',\n * 'ghost', 'ai', 'outline', 'brandSubdued', 'solid']\n *\n * const ExampleButton = () => {\n * const [currentVariant, setCurrentVariant ] = useState(0)\n * const [ isLoading, setIsLoading ] = useState(false)\n *\n * const handleClick = () => {\n * setIsLoading(true)\n * setTimeout(() => {\n * setCurrentVariant((prev) => prev === variants.length - 1 ? 0 : prev + 1)\n * setIsLoading(false)\n * }, 300)\n *\n * }\n *\n * return (\n * <Button variant={variants[currentVariant]}\n * isLoading={isLoading} onClick={handleClick} loadingText=\"Saving...\">\n * Save changes\n * </Button>\n * )\n *\n * }\n *\n * render(<ExampleButton/>)\n * ?)\n *\n * @example (Example)\n * Use LinkOverlay to turn the button into a link\n *\n * (?\n * <LinkBox>\n * <LinkOverlay as={NavLink} to=\"/\" />\n * <Button variant=\"link\">Go to home page</Button>\n * </LinkBox>\n * ?)\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>((\n { variant = 'default', children, size = 'md', ...rest },\n ref\n) => (\n <ChakraButton\n variant={ variant }\n ref={ ref }\n size={ size }\n spinner={ (\n <Spinner\n size={ SpinnerSizeMap[size] }\n />\n ) }\n { ...rest }\n >\n { children }\n </ChakraButton>\n)\n)\n","import React from 'react'\nimport { Checkbox as ChakraCheckbox } from '@chakra-ui/react'\nimport { CheckboxProps } from './types'\n\n/**\n * @see CheckboxField\n * @see {@link https://northlight.dev/reference/checkbox}\n *\n * @example (Example)\n * Mainly used for forms, however this component is controlled by\n * a value prop and an onChange callback\n *\n * (?\n * +\n * const MyForm = () => {\n * const [ isVegan, setIsVegan ] = useState(false)\n *\n * return (\n * <Stack p=\"2\">\n * <Label size=\"sm\" htmlFor=\"vegan-checkbox\">Are you vegan</Label>\n * <Checkbox name=\"vegan-checkbox\" onChange={() => setIsVegan((prev) => !prev)} value={isVegan} />\n * </Stack>\n *\n * )\n * }\n *\n * render(<MyForm />)\n *\n * ?)\n *\n */\nexport const Checkbox = ({\n value,\n onChange,\n name,\n size = 'md',\n variant = 'default',\n ...rest\n}: CheckboxProps) => {\n const controlledValue = typeof value === 'boolean'\n ? { isChecked: value }\n : { value }\n\n return (\n <ChakraCheckbox\n size={ size }\n id={ name }\n onChange={ onChange }\n variant={ variant }\n { ...controlledValue }\n { ...rest }\n />\n )\n}\n","import { forEach, identity, is, keys, trim, values } from 'ramda'\nimport { FieldValues } from 'react-hook-form'\n\nconst shouldTrim = (value: any): ((object: FieldValues) => FieldValues) =>\n (is(Array, value) ? values : identity)\n\nexport const trimFormValues = <T extends FieldValues>(obj: FieldValues) => {\n const newObj: FieldValues = obj\n forEach((property) => {\n const value = obj[property]\n if (is(Object, value)) {\n const format = shouldTrim(value)\n newObj[property] = format(trimFormValues(value as FieldValues))\n }\n if (is(String, value)) {\n newObj[property] = trim(value as string)\n }\n }, keys(obj))\n return newObj as T\n}\n","import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react'\nimport {\n DefaultValues,\n FieldValues,\n FormProvider,\n Resolver,\n UseFormReturn,\n useForm,\n} from 'react-hook-form'\nimport { always, equals } from 'ramda'\nimport { joiResolver } from '@hookform/resolvers/joi'\nimport { FormProps } from './types'\nimport { trimFormValues } from './trim-form-values'\n\n/**\n * The context provider for handling state of components wrapped in field\n * @see Field\n * @see {@link https://northlight.dev/reference/form}\n *\n * @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}} onSubmit={console.log}>\n * <TextField name=\"name\" label=\"What is your name\" />\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## With form methods\n * The form context provider passes down a lot of methods for handling state\n * (?\n * <Form initialValues={{name: ''}}>\n * {({watch, reset }) => (\n * <Stack>\n * <TextField name=\"name\" label=\"What is your name?\"/>\n * <Button variant=\"danger\" onClick={() => reset({})}>Reset</Button>\n * <Code>{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n *\n * </Form>\n * ?)\n * You can view more form methods on the **<a href=\"https://react-hook-form.com/api/useform/\" target=\"_blank\">react hook form docs</a>**\n * (everything that the useForm hooks returns)\n *\n * @example (Example)\n * ## Validation with joi\n *\n * You can pass on validation either by using a custom validate\n * function, by passing html validation directly on a field, or by\n * using joi schema. joi schema is recommended when possible.\n *\n * (?\n * +\n\nconst joiSchema = Joi.object({\n username: Joi.string().alphanum().min(3).max(30).required(),\n password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),\n});\n\n * const MyForm = () => (\n <Form initialValues={{name: ''}} joiSchema={joiSchema}>\n <Stack>\n <TextField name=\"username\" label=\"User Name\"/>\n <TextField name=\"password\" label=\"Password\" />\n </Stack>\n </Form>\n )\n *\n * render(<MyForm />)\n * ?)\n *\n * @example (Example)\n * ## Moving the form state outside of Form\n * (?\n\n//This code could live in the backend\nconst submitValuesToBackend = (values) => {\n console.log({values})\n if(values.firstName !== 'Steve') {\n throw Error('We only allow people named Steve \\;\\)')\n }\n}\nconst MyForm = () => (\n<Form\n initialValues={ { firstName: '' } }\n onSubmit={ async (values, methods) => {\n try {\n await submitValuesToBackend(values)\n }\n catch (err) {\n methods.setError('firstName', { message: err.message })\n }\n } }\n>\n <HStack alignItems=\"end\" p=\"3\">\n <TextField\n name=\"firstName\"\n label=\"First Name\"\n isRequired={ true }\n />\n <Button type=\"submit\" variant=\"success\">Validate</Button>\n </HStack>\n</Form>\n\n )\n\nrender(<MyForm />)\n\n * ?)\n\n@example (Example)\n## Using a ref\nYou can move up the form state using a ref as well\n(?\n() => {\n const methods = useRef(null)\n\n return (\n <Stack>\n <Form\n ref={methods}\n initialValues={{name: ''}}\n >\n <TextField name=\"name\" label=\"What is your name?\" />\n </Form>\n <Button onClick={() => methods.current.reset({name: (Math.round(Math.random() * 100))})}>\n Get random number\n </Button>\n </Stack>\n\n )\n\n}\n?)\n\n */\nexport const Form = forwardRef(<FormValues extends FieldValues>({\n initialValues,\n onSubmit,\n children,\n validate,\n formSettings = { mode: 'onChange' },\n methods = undefined,\n enableReinitialize = false,\n shouldTrim = true,\n innerFormStyle = {},\n joiSchema,\n ...rest\n}: FormProps<FormValues>, ref: React.Ref<UseFormReturn<FormValues>>) => {\n const customResolver: Resolver<FormValues, any> = (\n values,\n _context,\n _options\n ) => ({\n values,\n errors: validate(values),\n })\n\n const getResolver = () => {\n if (validate) return customResolver\n if (joiSchema) return joiResolver(joiSchema)\n return undefined\n }\n\n const newMethods =\n methods ||\n useForm<FormValues>({\n defaultValues: initialValues as DefaultValues<FormValues>,\n resolver: getResolver(),\n ...formSettings,\n })\n\n useImperativeHandle(ref, always(newMethods), [])\n\n if (enableReinitialize) {\n const initalValuesImage = useRef({})\n useEffect(() => {\n if (!equals(initalValuesImage.current, initialValues)) {\n newMethods?.reset(initialValues)\n initalValuesImage.current = initialValues\n }\n }, [ initialValues ])\n }\n\n const formatValues = (values: FormValues) => {\n if (!shouldTrim) {\n return values\n }\n\n return trimFormValues<FormValues>(values)\n }\n\n const handleSubmit = newMethods.formState.isValid\n ? newMethods.handleSubmit((values) =>\n onSubmit(formatValues(values), newMethods)\n )\n : (e: React.FormEvent<HTMLFormElement>) => {\n newMethods.trigger()\n e.preventDefault()\n }\n\n return (\n <FormProvider { ...newMethods } { ...rest }>\n <form style={ { width: '100%', ...innerFormStyle } } onSubmit={ handleSubmit }>\n { typeof children === 'function' ? children(newMethods) : children }\n </form>\n </FormProvider>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { FormLabelProps } from './types'\nimport { Label } from '../typography'\n\n/**\n * Renders a label, meant to be used alongside a field component\n * @see Field\n * @see {@link https://northlight.dev/reference/form-label}\n *\n */\nexport const FormLabel = forwardRef<HTMLLabelElement, FormLabelProps >(({\n children: label,\n ...rest\n}, ref) => (\n <Label\n size=\"sm\"\n sx={ {\n width: '80%',\n maxWidth: '45ch',\n marginBottom: 1,\n marginInlineEnd: 3,\n } }\n requiredIndicator={ undefined }\n { ...rest }\n ref={ ref }\n >\n { label }\n </Label>\n))\n","import React, { forwardRef } from 'react'\nimport { Controller, FieldPath, FieldValues } from 'react-hook-form'\nimport { FormControl, FormErrorMessage, FormLabel } from '../form-control'\nimport { Stack } from '../stack'\nimport { FieldProps } from './types'\nimport { useFormContext } from '../../hooks'\nimport { getFieldError } from '../../utils'\n\n/**\n * Wraps children under form context\n * @see TextField\n * @see Form\n * @see {@link https://northlight.dev/reference/field}\n *\n * @example (Example)\n * ## Input example\n * (?\n * <Form initialValues={{name: ''}}>\n * <Box p=\"2\">\n * <Field name=\"name\" label=\"Input name\">\n * {({value, onChange}) => (\n * <Input value={value} onChange={onChange} />\n * )}\n * </Field>\n * </Box>\n *\n * </Form>\n * ?)\n * <br />\n * As you can see the field component acts as a middleman to connect\n * any component to the form context, via a controlled value and onChange prop.\n * Most of the common use cases for field,\n * such as text input have been abstracted into their own components, for example _TextField_\n *\n * @example (Example)\n * ## Example with validation and form submition\n * (?\n * () => {\n * const toast = useToast()\n * const handleSubmit =(v) => {\n * toast({title: 'Sent Message', description: `\"${v.message}\"`})\n * }\n * return (\n * <Form initialValues={{message: ''}} onSubmit={handleSubmit}>\n * <Stack p=\"2\">\n * <Field\n * name=\"message\"\n * label=\"Write email\"\n * isRequired={true}\n * validate={{maxLength: {message: 'Message must be under 30 characters', value: 30}}}\n * >\n * {({value, onChange}) => (\n * <Textarea value={value} onChange={onChange} />\n * )}\n * </Field>\n * <Button type=\"submit\" variant=\"brand\">Send Message</Button>\n * </Stack>\n *\n * </Form>\n * )\n * }\n * ?)\n *\n * @example (Example)\n * ## Type-safety\n * There are multiple ways to provide types for\n * the field callback values. To ensure that each\n * component within the field receives the correct\n * value, it's essential to make the field aware\n * of the form state values. When the Field component\n * does not receive any types, the \"value\" callback\n * argument will have the type of \"any\".\n * <br /><br />\n * ### Passing down the control prop (Recommended)\n * (?\n * <Form initialValues={{username: 'Alex'}}>\n * {\n * ({ control }) => {\n * <Box p=\"2\">\n * <Field name=\"username\" label=\"Input name\" control={ control }>\n * {({value, onChange}) => ( // \"value\" has type of \"string\"\n * <Input value={value} onChange={onChange} />\n * )}\n * </Field>\n * </Box>\n * }\n * }\n * </Form>\n * ?)\n * <br /><br />\n * ### Specifying generic arguments\n * You can also specify generic arguments on the Field\n * component to ensure that \"value\" has a valid type.\n * The passed generic type combined with the valid\n * \"name\" property ensures that \"value\" has the expected\n * type received from the generic type:\n * `<Field<MyFormBody> name=\"username\">...</Field>`\n */\n\nconst BaseField = <\n FormValues extends FieldValues = FieldValues,\n FieldName extends FieldPath<FormValues> = FieldPath<FormValues>\n> ({\n name,\n label,\n children,\n direction = 'column',\n isRequired = false,\n noLabelConnection = false,\n validate,\n control: passedControl,\n ...rest\n }: FieldProps<FormValues, FieldName>, ref: React.Ref<HTMLDivElement>) => {\n const methods = useFormContext<FormValues>()\n const { formState: { errors } } = methods\n const control = passedControl ?? methods.control\n\n const fieldError = getFieldError<FormValues>(name, errors)\n\n return (\n <FormControl isInvalid={ !!fieldError } isRequired={ isRequired } ref={ ref }>\n <Stack\n spacing=\"auto\"\n direction={ direction }\n alignItems={ direction === 'column' ? 'stretch' : 'center' }\n { ...rest }\n >\n { label && (\n <FormLabel htmlFor={ noLabelConnection ? undefined : name } mb={ 1 }>\n { label }\n </FormLabel>\n ) }\n <Controller\n name={ name }\n control={ control }\n rules={ validate }\n render={ ({ field }) => children(field, methods) }\n />\n </Stack>\n <FormErrorMessage>\n { fieldError && (fieldError?.message as string) }\n </FormErrorMessage>\n </FormControl>\n )\n}\n\nexport const Field = forwardRef(BaseField)\n","import { useFormContext } from '../../hooks'\nimport { SetValueOptionsType } from './types'\n\nexport const useSetValueRefreshed = () => {\n const { setValue, watch } = useFormContext()\n\n const setValueRefreshed = (name: any, value: any, options: SetValueOptionsType) => {\n watch(name)\n setValue(name, value, options)\n }\n return setValueRefreshed\n}\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { CheckboxFieldProps } from './types'\nimport { Field } from '../form'\nimport { Checkbox } from './checkbox'\nimport { Box } from '../box'\nimport { Label } from '../typography'\nimport { Flex } from '../flex'\n\n/**\n * The checkbox component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see Checkbox\n * @see {@link https://northlight.dev/reference/checkbox-field}\n * @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}}>\n * <CheckboxField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPlacement=\"left\"\n * labelSize=\"md\"\n * />\n * </Form>\n * ?)\n *\n */\n\nexport const CheckboxField = forwardRef<HTMLDivElement, CheckboxFieldProps>(({\n name,\n label,\n variant,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPlacement = 'left',\n labelSize = 'md',\n ...rest\n}, ref) => (\n <Box\n w={ label ? 'full' : 'fit-content' }\n display=\"inline-flex\"\n >\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <Flex\n gap={ 2 }\n direction={ labelPlacement === 'left' ? 'row-reverse' : 'row' }\n >\n <Checkbox\n name={ name }\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n variant={ variant }\n data-testid=\"checkbox-field-test-id\"\n { ...rest }\n />\n <Label htmlFor={ name } sx={ { fontWeight: 'normal' } } size={ labelSize }>{ label }</Label>\n </Flex>\n ) }\n </Field>\n </Box>\n))\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { CheckboxGroup } from '@chakra-ui/react'\nimport { Field } from '../form'\nimport { Box } from '../box'\nimport { CheckboxFieldGroupProps } from './types'\n\n/**\n * The checkbox group component wrapped in a <Field />\n * meant to be used only inside <Form /> together with Checkbox\n * @see Checkbox\n * @see {@link https://northlight.dev/reference/checkbox-group-field}\n *\n */\nexport const CheckboxGroupField = forwardRef<HTMLDivElement, CheckboxFieldGroupProps>(({\n name,\n label,\n children,\n isRequired,\n direction,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <CheckboxGroup\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"checkbox-group-field-test-id\"\n { ...rest }\n >\n { children }\n </CheckboxGroup>\n ) }\n </Field>\n </Box>\n))\n","import React, { cloneElement, forwardRef } from 'react'\nimport { IconButton as ChakraIconButton } from '@chakra-ui/react'\nimport { IconButtonProps } from './types'\n\n/**\n * A normal button but renders an icon instead of text\n * @see Button\n * @see Icon\n * @see {@link https://northlight.dev/reference/icon-button}\n *\n * @example (Example)\n * (?\n * <IconButton variant='brand' icon={<Icon as={UsersDuo} />} onClick={console.log}/>\n * ?)\n *\n * @example (Example)\n * (?\n <IconButton\n isRound={ true }\n aria-label=\"create\"\n variant=\"success\"\n icon={ <Icon as={ PlusSolid } /> }\n />\n * ?)\n *\n */\nexport const IconButton = forwardRef(({\n variant = 'default',\n icon,\n 'aria-label': ariaLabel,\n children,\n ...rest\n}: IconButtonProps, ref: any) => {\n const IconComponent = icon ?? children as JSX.Element\n const IconWithSize = cloneElement(IconComponent, { size: IconComponent.props.size ?? rest.size })\n return (\n <ChakraIconButton\n variant={ variant }\n icon={ IconWithSize }\n aria-label={ ariaLabel }\n ref={ ref }\n { ...rest }\n />\n )\n})\n","import { getShades } from '../../utils'\n\nexport const columns = 5\nexport const paletteColors = getShades(100, 500)\nexport const defaultColors = getShades(500)\n","import React, { forwardRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { CheckDuo } from '@northlight/icons'\nimport { getContrastColor } from '../../utils'\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { Box } from '../box'\nimport { ColorButtonProps } from './types'\nimport { columns } from './constants'\nimport { useArrowFocus } from '../../hooks'\n\nexport const ColorButton = forwardRef(({\n color,\n onClick,\n size,\n selected = false,\n}: ColorButtonProps, ref: any) => {\n if (!color) return <Box />\n const { defaultArrows, focusPrevious, focusNext } = useArrowFocus(columns)\n\n const onKeyDown = (e: any) => {\n switch (e.key) {\n case 'PageUp':\n e.preventDefault()\n focusPrevious({ wrap: false, repeat: columns * 5 })\n break\n case 'PageDown':\n e.preventDefault()\n focusNext({ wrap: false, repeat: columns * 5 })\n break\n default:\n defaultArrows(e)\n break\n }\n }\n\n const { colorButton } = useMultiStyleConfig('ColorPicker', { size })\n\n return (\n <IconButton\n bg={ color }\n ref={ ref }\n onKeyDown={ onKeyDown }\n aria-label={ `select-${color}` }\n onClick={ onClick }\n sx={ colorButton }\n icon={ <Icon as={ CheckDuo } boxSize={ selected ? undefined : '0' } /> }\n color={ getContrastColor(color) }\n />\n )\n})\n","import React from 'react'\nimport { Popover as ChakraPopover, PopoverProps } from '@chakra-ui/react'\n\nexport const Popover = (props: PopoverProps) => (\n <ChakraPopover isLazy={ true } { ...props } />\n)\n","import React from 'react'\nimport { ChevronDownDuo, ChevronUpDuo } from '@northlight/icons'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { columns } from './constants'\nimport { ColorsExpandButtonProps } from './types'\nimport { useArrowFocus } from '../../hooks'\n\nexport const ColorsExpandButton = ({\n onClick,\n size,\n expanded,\n}: ColorsExpandButtonProps) => {\n const { defaultArrows, focusPrevious, focusFirst } = useArrowFocus(columns)\n const { colorButton } = useMultiStyleConfig('ColorPicker', { size })\n const onKeyDown = (e: any) => {\n switch (e.key) {\n case 'Tab':\n focusFirst()\n break\n case 'ArrowUp':\n e.preventDefault()\n focusPrevious({ wrap: true, repeat: 1 })\n break\n case 'PageUp':\n e.preventDefault()\n focusPrevious({ wrap: false, repeat: columns * 5 })\n break\n default:\n defaultArrows(e)\n break\n }\n }\n\n return (\n <IconButton\n variant=\"ghost\"\n onKeyDown={ onKeyDown }\n aria-label=\"display more colors\"\n onClick={ onClick }\n sx={ colorButton }\n >\n <Icon as={ expanded ? ChevronUpDuo : ChevronDownDuo } />\n </IconButton>\n )\n}\n","import { Portal, PortalProps } from '@chakra-ui/react'\nimport React from 'react'\n\ninterface RenderInPortalProps extends PortalProps {\n shouldRenderInPortal: boolean\n children: JSX.Element\n}\n\nexport const RenderInPortal =\n ({ shouldRenderInPortal, children, ...rest }: RenderInPortalProps) => {\n if (!shouldRenderInPortal) return children\n return (\n <Portal { ...rest }>\n { children }\n </Portal>\n )\n }\n","import React, { useEffect, useRef, useState } from 'react'\nimport { ColorsDuo } from '@northlight/icons'\nimport { FocusScope } from '@react-aria/focus'\nimport { useMultiStyleConfig, useToken } from '@chakra-ui/react'\nimport { useBoolean, useDisclosure } from '../../hooks'\nimport { SimpleGrid } from '../simple-grid'\nimport { Stack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { ColorPickerProps } from './types'\nimport { ColorButton } from './color-button'\nimport { columns, defaultColors, paletteColors } from './constants'\nimport {\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverHeader,\n PopoverTrigger,\n} from '../popover'\nimport { ColorsExpandButton } from './colors-expand-button'\nimport { Button } from '../button'\nimport { RenderInPortal } from '../portal/render-in-portal'\n\n/**\n * Dropdown menu where user can select hex value\n * from set colors\n * @see {@link https://northlight.dev/reference/color-picker}\n *\n * @example (Example)\n * ##Pick a color for this campaign\n * (?\n * () => {\n * const [ color, setColor ] = useState(undefined)\n * return (\n * <HStack>\n * <ColorPicker color={color} onChange={setColor}/>\n * <ClipboardInput value={ color } />\n\n * </HStack>\n * )\n * }\n *\n * ?)\n *\n *\n */\nexport const ColorPicker = ({\n onChange = () => {},\n clearable = false,\n colors = defaultColors,\n expandedColors = paletteColors,\n value = null,\n name,\n size = 'md',\n shouldRenderInPortal = false,\n popoverProps,\n ...rest\n}: ColorPickerProps) => {\n const { isOpen, onToggle, onClose } = useDisclosure()\n const [ expanded, setExpanded ] = useBoolean()\n const [ selectedColor, setSelectedColor ] = useState(value)\n const [ visibleColors, setVisibleColors ] = useState(colors)\n const initialFocusRef = useRef(null)\n const {\n trigger,\n heading,\n } = useMultiStyleConfig('ColorPicker', { selectedColor, size })\n const parsedValue = value && useToken('colors', value)\n\n const baseColors = [ ...colors ]\n for (let i = 0; i < baseColors.length % columns; i += 1) {\n baseColors.push('')\n }\n\n useEffect(() => {\n if (value === '') {\n setSelectedColor(null)\n } else {\n setSelectedColor(parsedValue)\n }\n }, [ value ])\n\n useEffect(() => {\n if (expanded) {\n setVisibleColors((prev) => prev.concat(expandedColors))\n } else {\n setVisibleColors(baseColors)\n }\n }, [ expanded ])\n\n const expandColors = () => {\n setExpanded.toggle()\n }\n\n const getNumberOfColumns = () => {\n if (expanded) return columns\n if (colors.length < columns && colors.length > 2) {\n return colors.length\n }\n if (colors.length < columns) {\n return 3\n }\n return columns\n }\n\n const shouldBeFocused = (index: number) => (\n selectedColor\n ? index === visibleColors.findIndex((colorVal) => colorVal === selectedColor)\n : index === 0\n )\n\n const handleSelect = (color: string) => {\n onToggle()\n setSelectedColor(color)\n onChange(color)\n }\n\n const clearSelection = () => {\n setSelectedColor(null)\n onChange(null)\n }\n\n return (\n <Box data-testid=\"color-picker-test-id\">\n <Popover\n isOpen={ isOpen }\n onClose={ onClose }\n initialFocusRef={ initialFocusRef }\n { ...popoverProps }\n >\n <PopoverTrigger>\n <IconButton\n onClick={ onToggle }\n aria-label={ name || 'color picker' }\n name={ name }\n sx={ trigger }\n size={ size }\n icon={ <Icon as={ ColorsDuo } /> }\n { ...rest }\n />\n </PopoverTrigger>\n <RenderInPortal shouldRenderInPortal={ shouldRenderInPortal }>\n <PopoverContent w=\"auto\" boxShadow=\"md\" p={ 2 } bgColor=\"background.default\">\n <Stack>\n <PopoverHeader\n color=\"text.default\"\n sx={ heading }\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n width=\"full\"\n >\n Pick a color\n { clearable && trigger.color !== 'unset' && (\n <Button\n size=\"sm\"\n h=\"5\"\n onClick={ clearSelection }\n variant=\"ghost\"\n >\n Clear\n </Button>\n ) }\n </PopoverHeader>\n <PopoverBody p={ 0 }>\n <Stack alignItems=\"center\" p={ 0 } spacing={ 0 }>\n <FocusScope>\n <SimpleGrid\n columns={ getNumberOfColumns() }\n spacing={ 2 }\n overflowY=\"scroll\"\n maxH={ 72 }\n pr={ 2 }\n pl={ 4 }\n py={ 1 }\n >\n { visibleColors.map((color, index) => (\n <ColorButton\n color={ color }\n key={ `${color}-button-${index as number}` }\n selected={ color === selectedColor }\n ref={ shouldBeFocused(index) ? initialFocusRef : undefined }\n size={ size }\n onClick={ () => handleSelect(color) }\n />\n )) }\n </SimpleGrid>\n { expandedColors.length > 0 && (\n <ColorsExpandButton\n onClick={ expandColors }\n expanded={ expanded }\n size={ size }\n />\n ) }\n </FocusScope>\n </Stack>\n </PopoverBody>\n </Stack>\n </PopoverContent>\n </RenderInPortal>\n </Popover>\n </Box>\n )\n}\n","import React from 'react'\nimport { Field } from '../form'\nimport { ColorPicker } from './color-picker'\nimport { ColorPickerFieldProps } from './types'\n\n/**\n * The <ColorPicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see ColorPicker\n * @see {@link https://northlight.dev/reference/color-picker}\n *\n */\nexport const ColorPickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n ...rest\n}: ColorPickerFieldProps) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <ColorPicker\n name={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n)\n","import { DOMAttributes, createContext } from 'react'\nimport { RadioGroupProps, RadioGroupState, useRadioGroupState } from '@react-stately/radio'\nimport { CheckboxGroupProps, CheckboxGroupState, useCheckboxGroupState } from '@react-stately/checkbox'\nimport { AriaCheckboxGroupProps, useCheckboxGroup } from '@react-aria/checkbox'\nimport { AriaRadioGroupProps, useRadioGroup } from '@react-aria/radio'\nimport { FlipButtonGroupProps } from './types'\n\nexport const FlipButtonContext = createContext<CheckboxGroupState | RadioGroupState | null>(null)\n\nexport const useFlipButtonState = (\n props: FlipButtonGroupProps,\n isMulti: boolean\n) => (\n isMulti\n ? useCheckboxGroupState(props as CheckboxGroupProps)\n : useRadioGroupState(props as RadioGroupProps)\n)\n\nexport const useFlipButtonGroup = (\n props: FlipButtonGroupProps,\n state: CheckboxGroupState | RadioGroupState,\n isMulti: boolean\n): DOMAttributes<Element> => {\n const propsWithLabel = {\n ...props,\n 'aria-label': `${isMulti ? 'Checkbox' : 'Radio'}-button-group`,\n }\n\n return (isMulti\n ? useCheckboxGroup(\n propsWithLabel as AriaCheckboxGroupProps,\n state as CheckboxGroupState\n ).groupProps\n : useRadioGroup(\n propsWithLabel as AriaRadioGroupProps,\n state as RadioGroupState\n ).radioGroupProps\n )\n}\n\nexport const useFlipButton = (props: FlipButtonGroupProps, isMulti: boolean) => {\n const state = useFlipButtonState(props, isMulti)\n const flipButtonGroupProps = useFlipButtonGroup(props, state, isMulti)\n return { state, flipButtonGroupProps }\n}\n","import React, { useContext, useRef } from 'react'\nimport { CheckSolid } from '@northlight/icons'\nimport { useCheckboxGroupItem } from '@react-aria/checkbox'\nimport { SlideFade, useMultiStyleConfig } from '@chakra-ui/react'\nimport { useRadio } from '@react-aria/radio'\nimport { useFocusRing } from '@react-aria/focus'\nimport { mergeAll, omit } from 'ramda'\nimport { CheckboxGroupState } from '@react-stately/checkbox'\nimport { RadioGroupState } from '@react-stately/radio'\nimport { mergeProps } from '@react-aria/utils'\nimport { FlipButtonContext } from './utils'\nimport { HStack } from '../stack'\nimport { Icon } from '../icon'\nimport { Text } from '../text'\nimport { CustomContainerPropsType, CustomFlipButtonPropsType, FlipButtonProps } from './types'\n\n/**\n * Meant to act as a middleman to turn any component into\n * either a radio or checkbox input\n * where the user can choose between multiple options\n * @see CheckboxGroup\n * @see RadioGroup\n * @see FlipButtonGroup\n * @see {@link https://northlight.dev/reference/flip-button}\n *\n * @example (Example)\n * ### It must always be wrapped in a group\n * (?\n * <FlipButton />\n * ?)\n * Or it will throw an error\n *\n *\n * @example (Example)\n * ### As a radio button group\n * (?\n *<FlipButtonGroup isMulti={ false } size=\"sm\">\n <FlipButton value=\"one\" icon={AgencyDuo}>One</FlipButton>\n <FlipButton value=\"two\" icon={StagesDuo}>Two</FlipButton>\n <FlipButton value=\"three\" icon={Flag04Duo}>Three</FlipButton>\n</FlipButtonGroup>\n * ?)\n *\n * @example (Example)\n * ### As a checkbox button group\n * (?\n *<FlipButtonGroup isMulti={ true } size=\"sm\">\n <FlipButton value=\"one\" icon={TagsStackDuo}>One</FlipButton>\n <FlipButton value=\"two\" icon={Image03Duo}>Two</FlipButton>\n <FlipButton value=\"three\" icon={TagDuo }>Three</FlipButton>\n</FlipButtonGroup>\n * ?)\n *\n * @example (Example)\n * ###Custom Flip Button\n * (?\n * +\n * const customElement = ({\n flipButtonProps,\n containerProps,\n isSelected,\n label,\n value,\n}) => (\n <HStack\n { ...containerProps }\n spacing=\"4\"\n _checked={ { bgColor: 'blue.500', color: 'text.inverted' } }\n borderRadius=\"md\"\n p=\"2\"\n >\n <input { ...flipButtonProps } />\n <Icon as={ UsersDuo } />\n <Stack spacing=\"0\">\n <Text>{ label }</Text>\n <Text color={ isSelected ? 'text.inverted' : 'gray.200' }>\n { value === 'public'\n ? 'Everyone can view and edit the plan'\n : 'The plan is only visible to you'\n }\n </Text>\n </Stack>\n </HStack>\n)\n\nconst MyComponent = () => (\n<FlipButtonGroup direction=\"column\" sx={{bgColor: 'transparent'}}>\n <FlipButton value=\"public\" label=\"Public\">\n { customElement }\n </FlipButton>\n <FlipButton value=\"private\" label=\"Private\">\n { customElement }\n </FlipButton>\n</FlipButtonGroup>\n\n)\nrender(<MyComponent/>)\n *\n * ?)\n *\n */\nexport const FlipButton = (props: FlipButtonProps) => {\n const {\n children,\n size,\n variant,\n isMulti,\n isDisabled = false,\n icon,\n value,\n iconPlacement = 'left',\n ...rest\n } = props\n const state = useContext(FlipButtonContext)\n const ref = useRef(null)\n\n const propsWithoutChildren = omit([ 'children' ], { ...props, 'aria-label': `${isMulti ? 'Checkbox' : 'Radio'}-input for ${value}` })\n const { inputProps } = isMulti\n ? useCheckboxGroupItem(propsWithoutChildren, state as CheckboxGroupState, ref)\n : useRadio(propsWithoutChildren, state as RadioGroupState, ref)\n\n const { button, buttonIcon } = useMultiStyleConfig('FlipButton', { size, variant })\n const { focusProps, isFocusVisible: isFocused } = useFocusRing()\n const focusStyles = {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n }\n const focusRing = isFocused ? focusStyles : {}\n\n const isSelected = isMulti\n ? (state as CheckboxGroupState).isSelected(value)\n : (state as RadioGroupState).selectedValue === value\n\n const flipButtonProps: CustomFlipButtonPropsType = {\n ...mergeProps(inputProps, focusProps),\n ref,\n style: { opacity: '0', width: '0', height: '0' },\n 'aria-label': isMulti ? 'Checkbox-input' : 'Radio-input',\n }\n\n const containerProps: CustomContainerPropsType = {\n 'aria-checked': isSelected,\n 'aria-disabled': isDisabled,\n sx: focusRing,\n as: 'label',\n cursor: 'pointer',\n }\n\n return typeof children === 'function'\n ? children({\n state,\n containerProps,\n flipButtonProps,\n isFocused,\n isSelected,\n isDisabled,\n isMulti: isMulti || false,\n focusRing,\n value,\n ...rest,\n })\n : (\n <HStack\n spacing={ (isSelected && iconPlacement !== 'none') || icon ? 2 : 0 }\n sx={ mergeAll([ button, isFocused ? focusStyles : {}, { flexDirection: iconPlacement === 'left' ? 'row' : 'row-reverse' } ]) }\n aria-checked={ isSelected }\n aria-disabled={ isDisabled }\n as=\"label\"\n >\n <input { ...flipButtonProps } />\n { icon && iconPlacement !== 'none'\n ? (\n <Icon as={ icon || CheckSolid } sx={ buttonIcon } />\n ) : isSelected && iconPlacement !== 'none' && (\n <SlideFade in={ isSelected }>\n <Icon as={ icon || CheckSolid } sx={ buttonIcon } />\n </SlideFade>\n ) }\n <Text textAlign=\"center\">{ children }</Text>\n </HStack>\n )\n}\n","import React, { Children, cloneElement, isValidElement } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { omit } from 'ramda'\nimport { Stack } from '../stack'\nimport { FlipButtonGroupProps } from './types'\nimport { FlipButtonContext, useFlipButton } from './utils'\n\n/**\n * Provides context to FlipButton\n * @see FlipButton\n * @see {@link https://northlight.dev/reference/flip-button-group}\n */\nexport const FlipButtonGroup = (props: FlipButtonGroupProps) => {\n const {\n isMulti = false,\n name,\n children,\n direction = 'row',\n isDisabled = false,\n iconPlacement = 'left',\n size,\n variant,\n icon,\n sx = {},\n ...rest\n } = props\n\n const { state, flipButtonGroupProps } = useFlipButton(props, isMulti)\n\n const numberOfButtons = Children.count(children)\n\n const childrenWithProps = (Children.toArray(children)).map((child: React.ReactNode) =>\n (isValidElement(child)\n ? cloneElement(child, {\n key: child.props.value,\n isMulti,\n variant,\n isDisabled,\n iconPlacement,\n icon,\n size,\n ...child.props,\n })\n : child)\n )\n\n const { container } = useMultiStyleConfig('FlipButton', {\n size,\n variant,\n numberOfButtons,\n sx,\n })\n\n const restWithoutOnChange = omit([ 'onChange' ], rest)\n\n return (\n <Stack\n { ...flipButtonGroupProps }\n direction={ direction }\n id={ name }\n spacing={ 0 }\n sx={ container }\n { ...restWithoutOnChange }\n >\n <FlipButtonContext.Provider value={ state }>\n { childrenWithProps }\n </FlipButtonContext.Provider>\n </Stack>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { Field } from '../form'\nimport { FlipButtonGroup } from './flip-button-group'\nimport { FlipButtonGroupFieldProps } from './types'\n\n/**\n * The FlipButtonGroup component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FlipButton\n * @see {@link https://northlight.dev/reference/flip-button-group-field}\n *\n * @example (Example)\n * (?\n * <Form intitialValues={{foods: 'pizza'}}>\n <FlipButtonGroupField name=\"foods\" label=\"Select the food you enjoy most\" variant=\"brand\">\n <FlipButton value=\"pizza\">Pizza</FlipButton>\n <FlipButton value=\"hamburger\">Button</FlipButton>\n <FlipButton value=\"steak\">Steak</FlipButton>\n </FlipButtonGroupField>\n * </Form>\n *\n * ?)\n *\n */\nexport const FlipButtonGroupField = forwardRef<HTMLDivElement, FlipButtonGroupFieldProps>(({\n name,\n label,\n children,\n direction,\n isRequired,\n iconPlacement = 'left',\n onChange: onChangeCallback = identity,\n validate,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <FlipButtonGroup\n name={ name }\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n direction={ direction }\n value={ value }\n iconPlacement={ iconPlacement }\n { ...rest }\n >\n { children }\n </FlipButtonGroup>\n ) }\n </Field>\n))\n","import React, { forwardRef } from 'react'\nimport { Box, BoxProps } from '../box'\nimport { theme } from '../../theme'\n\nconst hoverAndActiveStyles = {\n borderLeftColor: theme.colors.border['pane-divider'].hover,\n}\n\nexport const ResizeHandle = forwardRef<HTMLDivElement, BoxProps>(\n ({ color, ...rest }, ref) => (\n <Box\n ref={ ref }\n cursor=\"col-resize\"\n _hover={ hoverAndActiveStyles }\n _active={ hoverAndActiveStyles }\n transition=\"border 250ms linear\"\n h=\"inherit\"\n w=\"1\"\n borderLeftWidth=\"lg\"\n borderLeftStyle=\"solid\"\n borderColor={ color ?? 'transparent' }\n zIndex=\"docked\"\n { ...rest }\n />\n )\n)\n","import React, { useRef } from 'react'\nimport { CalendarDuo } from '@northlight/icons'\nimport { useButton } from '@react-aria/button'\nimport { Button } from '../../../button'\nimport { TriggerProps } from './types'\nimport { Icon } from '../../../icon'\n\nexport const Trigger = (props: TriggerProps) => {\n const { isDisabled, handleClick } = props\n const ref = useRef<HTMLButtonElement>(null)\n const { buttonProps } = useButton(props, ref)\n\n return (\n <Button\n { ...buttonProps }\n ref={ ref }\n size=\"sm\"\n boxSize={ 8 }\n variant=\"ghost\"\n isDisabled={ isDisabled }\n onPointerDown={ handleClick }\n pointerEvents={ isDisabled ? 'none' : 'auto' }\n >\n <Icon as={ CalendarDuo } />\n </Button>\n )\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useDateSegment } from '@react-aria/datepicker'\nimport { Box } from '../../../box'\nimport { DateSegmentProps } from './types'\n\nexport const DateSegment = ({ segment, state }: DateSegmentProps) => {\n const ref = useRef<HTMLInputElement>(null)\n const { segmentProps } = useDateSegment(segment, state, ref)\n\n const isDivider = segment.type === 'literal'\n const { dateSegment } = useMultiStyleConfig('DatePicker')\n const minWidth = `${String(segment.maxValue).length}ch`\n\n return (\n <Box\n { ...segmentProps }\n ref={ ref }\n __css={ dateSegment }\n minWidth={ isDivider ? 0 : minWidth }\n paddingInline={ isDivider ? 0 : '0.25rem' }\n color={\n segment.isPlaceholder\n ? 'gray.500'\n : isDivider\n ? 'text.subduded'\n : 'text.default'\n }\n fontSize=\"md\"\n >\n { segment.text }\n </Box>\n )\n}\n","import { toLower } from 'ramda'\n\ntype FormatMapKey = 'y' | 'm' | 'd'\ntype FormatMapValue = 'yyyy' | 'mm' | 'dd'\n\nconst mapFormat: Record<FormatMapKey, FormatMapValue> = {\n y: 'yyyy',\n m: 'mm',\n d: 'dd',\n}\n\nexport const formatQuery = (query: string) =>\n mapFormat[toLower(query)[0] as FormatMapKey]\n\nexport const delimeterIncluded = /([.,:;|\\-/\\\\])/\n","import React, { useRef } from 'react'\nimport { useDateFieldState } from '@react-stately/datepicker'\nimport { useDateField } from '@react-aria/datepicker'\nimport { createCalendar } from '@internationalized/date'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { find, split } from 'ramda'\nimport { Box } from '../../../box'\nimport { DateSegment } from './date-segment'\nimport { DateFieldProps, DateSegmentType } from './types'\nimport { delimeterIncluded, formatQuery } from './utils'\n\nexport const DateField = (props: DateFieldProps) => {\n const ref = useRef<HTMLInputElement>(null)\n const state = useDateFieldState({\n ...props,\n /* Hard coding the United Kingdom locale,\n this enforces using english characters e.g.\n yyyy and not other such as åååå or chinese, which prevents hard to predict bugs */\n locale: 'en-GB',\n createCalendar,\n })\n\n const { dateField } = useMultiStyleConfig('DatePicker')\n const { fieldProps } = useDateField(props, state, ref)\n\n const { segments } = state\n const { dateFormat = 'dd/mm/yyyy' } = props\n const getMatchingSegment = (query: string, index: number) =>\n find(\n (segment: DateSegmentType) => segment.placeholder === formatQuery(query)\n )(segments) || { ...segments[index], text: query }\n\n const sortedSegments = split(delimeterIncluded, dateFormat).map(\n (query: string, index: number) => getMatchingSegment(query, index)\n )\n\n return (\n <Box\n { ...fieldProps }\n ref={ ref }\n display=\"flex\"\n __css={ dateField }\n data-testid=\"date-field-test-id\"\n >\n { sortedSegments.map((segment, i) => {\n const id = `${segment.type}-${i}`\n return <DateSegment segment={ segment } state={ state } key={ id } />\n }) }\n </Box>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../../../box'\nimport { StyledFieldProps } from './types'\n\nexport const StyledField = forwardRef((\n { isInvalid, isDisabled, children, variant, ...rest }: StyledFieldProps,\n ref: any\n) => {\n const { styledField } = useMultiStyleConfig('DatePicker', { variant })\n\n return (\n <Box\n { ...rest }\n ref={ ref }\n aria-invalid={ isInvalid }\n aria-disabled={ isDisabled }\n display=\"flex\"\n alignItems=\"center\"\n h={ 10 }\n __css={ styledField }\n >\n { children }\n </Box>\n )\n}\n)\n","import React from 'react'\nimport { Table as ChakraTable } from '@chakra-ui/react'\nimport { TableProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/table}\n *\n * @example\n * (?\n <Table variant=\"rounded\">\n <Thead>\n <Tr>\n <Th fontWeight=\"bold\"> Number</Th>\n <Th fontWeight=\"bold\"> Title</Th>\n </Tr>\n </Thead>\n <Tbody>\n { [1, 2, 3, 4, 5].map((num) => (\n <Tr key={ num }>\n <Td>{ num }</Td>\n <Td>\n This is great Typography man\n </Td>\n </Tr>\n )) }\n </Tbody>\n </Table>\n * ?)\n *\n */\nexport const Table = (props: TableProps) => <ChakraTable { ...props } />\n","import React, { useRef } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarCell } from '@react-aria/calendar'\nimport { isSameMonth, today } from '@internationalized/date'\nimport { CalendarCellProps } from './types'\nimport { Button } from '../../../../button'\n\nexport const CalendarCell = ({\n state,\n date,\n currentMonth,\n}: CalendarCellProps) => {\n const ref = useRef<HTMLButtonElement>(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n const isToday = date.compare(today(state.timeZone)) === 0\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n return (\n <chakra.td { ...cellProps }>\n <Button\n { ...buttonProps }\n ref={ ref }\n borderRadius=\"xs\"\n boxSize={ 8 }\n hidden={ isOutsideMonth }\n size=\"sm\"\n fontWeight=\"medium\"\n variant={ isSelected ? 'brand' : 'ghost' }\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"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(({ weekDays }: DayLabelsProps) => {\n const { dayLabel } = useMultiStyleConfig('Calendar')\n const weekDaysWithIds = weekDays.map((day, i) => ({ label: day, _id: i }))\n\n return (\n <>\n { weekDaysWithIds.map(({ label, _id }) => (\n <chakra.th key={ _id } __css={ dayLabel }>\n { label }\n </chakra.th>\n )) }\n </>\n )\n})\n","const mondayFirstWeekDays = [ 'M', 'T', 'W', 'T', 'F', 'S', 'S' ]\nconst sundayFirstWeekDays = [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ]\n\nexport const getWeekdays = (firstDayOfWeek: 'monday' | 'sunday') =>\n (firstDayOfWeek === 'monday' ? mondayFirstWeekDays : sundayFirstWeekDays)\n","import React, { memo } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarGrid } from '@react-aria/calendar'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { Table, Tbody, Thead, Tr } from '../../../../table'\nimport { CalendarCell } from './calendar-cell'\nimport { CalendarGridProps } from './types'\nimport { DayLabels } from './day-labels'\nimport { getWeekdays } from './utils'\n\nexport const CalendarGrid = memo(\n ({ state, locale, firstDayOfWeek, ...rest }: CalendarGridProps) => {\n const startDate = state.visibleRange.start\n const { gridProps, headerProps } = useCalendarGrid(rest, state)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n const weekDays = getWeekdays(firstDayOfWeek)\n\n return (\n <Table variant=\"unstyled\" { ...gridProps }>\n <Thead { ...headerProps }>\n <Tr>\n <DayLabels weekDays={ weekDays } />\n </Tr>\n </Thead>\n <Tbody>\n { times(\n (weekIndex) => (\n <Tr key={ weekIndex }>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date) =>\n (date ? (\n <CalendarCell\n key={ date.day }\n state={ state }\n date={ date }\n currentMonth={ startDate }\n />\n ) : (\n <chakra.td />\n ))\n ) }\n </Tr>\n ),\n weeksInMonth\n ) }\n </Tbody>\n </Table>\n )\n }\n)\n","import React, { useRef } from 'react'\nimport { useButton } from '@react-aria/button'\nimport { Button } from '../../../../button'\nimport { MonthButtonProps } from './types'\n\nexport const MonthButton = ({ children, ...rest }: MonthButtonProps) => {\n const ref = useRef<HTMLButtonElement>(null)\n const { buttonProps } = useButton(rest, ref)\n\n return (\n <Button\n { ...buttonProps }\n boxSize={ 8 }\n size=\"xs\"\n variant=\"ghost\"\n ref={ ref }\n >\n { children }\n </Button>\n )\n}\n","export const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n]\n","import React, { ChangeEvent } from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { months } from '../constants'\nimport { MonthSelectProps } from './types'\n\nexport const MonthSelect = ({ state }: MonthSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n const selectedMonth = state.visibleRange.start.month - 1\n\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const diff = index - selectedMonth\n state.setFocusedDate(state.visibleRange.start.add({ months: diff }))\n }\n\n return (\n <Select\n id=\"month\"\n aria-label=\"Select Month\"\n onChange={ onChange }\n value={ selectedMonth }\n iconSize=\"0px\"\n size=\"sm\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n textAlign=\"center\"\n >\n { months.map((month, i) => (\n <option value={ i } key={ `month-${i as number}` }>\n { month }\n </option>\n )) }\n </Select>\n )\n}\n","import React from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { YearSelectProps } from './types'\n\nexport const YearSelect = ({\n onChange,\n years,\n}: YearSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n\n return (\n <Select\n id=\"year\"\n aria-label=\"Year\"\n onChange={ onChange }\n value={ 10 }\n size=\"sm\"\n iconSize=\"0px\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n >\n { years.map((year, i) => (\n <option key={ year.formatted } value={ i }>\n { year.formatted }\n </option>\n )) }\n </Select>\n\n )\n}\n","import { useDateFormatter } from '@react-aria/i18n'\nimport { UseYearsCalendarProps, UseYearsRangeCalendarProps, YearValue } from './types'\n\nexport const useYearsCalendar = ({\n state,\n}: UseYearsCalendarProps) => {\n const years: YearValue[] = []\n const formatter = useDateFormatter({ year: 'numeric', month: 'long' })\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.focusedDate.add({ years: i })\n years.push({\n value: date,\n formatted: formatter.format(date.toDate(state.timeZone)),\n })\n }\n return { years }\n}\n\nexport const useYearsRangeCalendar = ({\n state,\n}: UseYearsRangeCalendarProps) => {\n const years: YearValue[] = []\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.visibleRange.start.add({ years: i })\n years.push({\n value: date,\n formatted: `${date.year}`,\n })\n }\n return { years }\n}\n","import React, { ChangeEvent } from 'react'\nimport { YearSelect } from './year-select'\nimport { useYearsCalendar } from './utils'\nimport { YearSelectCalendarProps } from './types'\n\nexport const YearSelectCalendar = ({ state }: YearSelectCalendarProps) => {\n const { years } = useYearsCalendar({ state })\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const date = years[index].value\n state.setFocusedDate(date)\n }\n\n return (\n <YearSelect onChange={ onChange } years={ years } />\n )\n}\n","import React, { ChangeEvent } from 'react'\nimport { YearSelect } from './year-select'\nimport { useYearsRangeCalendar } from './utils'\nimport { YearSelectRangeCalendarProps } from './types'\n\nexport const YearSelectRangeCalendar = ({\n state,\n}: YearSelectRangeCalendarProps) => {\n const { years } = useYearsRangeCalendar({ state })\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const date = years[index].value\n state.setFocusedDate(date)\n }\n\n return (\n <YearSelect onChange={ onChange } years={ years } />\n )\n}\n","const MILLISECONDS_PER_DAY = 86400000\n\nconst getThursdayDate = (date: Date): Date => {\n const thursdayDate = new Date(date)\n thursdayDate.setDate(date.getDate() + (4 - (date.getDay() || 7)))\n return thursdayDate\n}\n\nconst hasWeek53 = (year: number): boolean => {\n const firstDayOfYear = new Date(year, 0, 1)\n return firstDayOfYear.getDay() === 4 ||\n (firstDayOfYear.getDay() === 3 && new Date(year, 1, 29).getMonth() === 1)\n}\n\nexport const getWeekNumberAtStartOfMonth = (\n year: number,\n month: number\n): number => {\n const firstDayOfMonth = new Date(year, month - 1, 1)\n const thursdayOfFirstWeek = getThursdayDate(firstDayOfMonth)\n const firstDayOfYear = new Date(year, 0, 1)\n const firstThursdayOfYear = getThursdayDate(firstDayOfYear)\n const daysDifference = thursdayOfFirstWeek.getTime() - firstThursdayOfYear.getTime()\n const weekNumber = Math.ceil((daysDifference / MILLISECONDS_PER_DAY + 1) / 7)\n\n const isYearTransition = firstThursdayOfYear.getFullYear() < year\n const isJanuaryTransition = isYearTransition\n && thursdayOfFirstWeek.getFullYear() < year && month === 1\n\n if (isJanuaryTransition) {\n return hasWeek53(year - 1) ? 53 : 52\n }\n\n if (isYearTransition && month > 1) {\n return weekNumber - 1\n }\n\n if (month === 1 && weekNumber > 51) {\n return !hasWeek53(year - 1) ? 1 : weekNumber\n }\n\n return weekNumber\n}\n\nexport const getDisplayWeek = (\n baseWeek: number,\n weekIndex: number,\n year: number,\n month: number\n): number => {\n const isJanuaryEdgeCase = month === 1 && baseWeek > 51\n\n if (isJanuaryEdgeCase) {\n return weekIndex === 0 ? baseWeek : weekIndex\n }\n\n if (weekIndex === 0) {\n return baseWeek\n }\n\n const nextWeek = baseWeek + weekIndex\n\n if (nextWeek > 52) {\n return hasWeek53(year) && nextWeek === 53 ? 53 : nextWeek - 52\n }\n\n return nextWeek\n}\n","import React, { useRef } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarCell } from '@react-aria/calendar'\nimport { isSameMonth, today } from '@internationalized/date'\nimport { equals } from 'ramda'\nimport { RangeCellProps } from './types'\n\nexport const RangeCell = ({\n state,\n date,\n currentMonth,\n range,\n}: RangeCellProps) => {\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n if (isOutsideMonth) return <chakra.td />\n\n const ref = useRef<HTMLButtonElement>(null)\n const {\n cellProps,\n buttonProps,\n isSelected: baseIsSelected,\n formattedDate,\n } = useCalendarCell({ date }, state, ref)\n\n const isToday = date.compare(today(state.timeZone)) === 0\n\n const isHighlighted = range && date < range.end && date > range.start\n\n const isSelected =\n range &&\n !isHighlighted &&\n (equals(date, range.start) || equals(date, range.end))\n\n return (\n <chakra.td { ...cellProps }>\n <chakra.button\n { ...buttonProps }\n type=\"button\"\n ref={ ref }\n borderRadius=\"xs\"\n bgColor={\n isHighlighted ? 'brand-alt' : isSelected ? 'blue.500' : 'transparent'\n }\n color={ isSelected ? 'text.inverted' : 'text.default' }\n fontSize=\"sm\"\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"blue.500\"\n mx=\"-1px\"\n ml={ isToday ? '-2px ' : undefined }\n my=\"0a\"\n w=\"8\"\n h=\"8\"\n fontWeight=\"medium\"\n opacity={ isSelected && !baseIsSelected ? '0.4' : '1' }\n _focusVisible={ {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n } }\n _hover={ {\n bgColor: isSelected ? 'blue.400' : 'bg.filled',\n _disabled: {\n bgColor: 'transparent',\n },\n } }\n _disabled={ {\n opacity: 0.3,\n } }\n >\n { formattedDate }\n </chakra.button>\n </chakra.td>\n )\n}\n","import React, { useMemo } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendar, useCalendarGrid } from '@react-aria/calendar'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { useLocale } from '@react-aria/i18n'\nimport { CalendarState } from '@react-stately/calendar'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { DayLabels } from './day-labels'\nimport { Box } from '../../../../box'\nimport { HStack, Stack } from '../../../../stack'\nimport { Flex } from '../../../../flex'\nimport { Icon } from '../../../../icon'\nimport { Small } from '../../../../typography'\nimport { MonthSelect, YearSelectRangeCalendar } from '../date-select'\nimport { MonthButton } from './month-button'\nimport { getDisplayWeek, getWeekNumberAtStartOfMonth } from './get-week-number-start-of-month'\nimport { RangeCell } from './range-cell'\nimport { DateRangeValue } from '../quick-navigation/types'\nimport { FirstDayOfWeek } from './types'\nimport { getWeekdays } from './utils'\n\ninterface StandaloneCalendarGridProps {\n state: CalendarState\n range: DateRangeValue | undefined\n firstDayOfWeek: FirstDayOfWeek\n}\n\nexport const StandaloneCalendarGrid = ({\n state,\n range,\n firstDayOfWeek,\n ...rest\n}: StandaloneCalendarGridProps) => {\n const { locale } = useLocale()\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n const startDate = state.visibleRange.start\n const { gridProps, headerProps } = useCalendarGrid(rest, state)\n const weekDays = getWeekdays(firstDayOfWeek)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n const weekNumberStart = useMemo(() => {\n const weekNumber = getWeekNumberAtStartOfMonth(startDate.year, startDate.month)\n return weekNumber\n }, [ startDate.year, startDate.month ])\n\n return (\n <Box { ...calendarProps } h=\"265px\" p=\"0\">\n <Stack>\n <Flex justify=\"space-between\" w=\"full\" p=\"1\" alignItems=\"center\">\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <HStack spacing=\"0\">\n <MonthSelect state={ state } />\n <YearSelectRangeCalendar state={ state } />\n </HStack>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </Flex>\n <chakra.table { ...gridProps } sx={ { borderSpacing: '0' } }>\n <chakra.thead { ...headerProps }>\n <chakra.tr>\n <chakra.th />\n <DayLabels weekDays={ weekDays } />\n </chakra.tr>\n </chakra.thead>\n <chakra.tbody>\n { times((weekIndex) => {\n const weekNumber = getDisplayWeek(weekNumberStart,\n weekIndex,\n startDate.year,\n startDate.month)\n return (\n <chakra.tr key={ weekIndex }>\n <chakra.td>\n <Small sx={ { color: 'text.subdued' } } pr=\"2\">\n w.\n { weekNumber }\n </Small>\n </chakra.td>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date) =>\n (date ? (\n <RangeCell\n key={ date.day }\n state={ state }\n range={ range }\n date={ date }\n currentMonth={ startDate }\n />\n ) : (\n <chakra.td />\n ))\n ) }\n </chakra.tr>\n )\n }, weeksInMonth) }\n </chakra.tbody>\n </chakra.table>\n </Stack>\n </Box>\n )\n}\n","import React from 'react'\nimport { GregorianCalendar } from '@internationalized/date'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useLocale } from '@react-aria/i18n'\nimport { useCalendarState } from '@react-stately/calendar'\nimport { useCalendar } from '@react-aria/calendar'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { CalendarGrid, MonthButton } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { Icon } from '../../../icon'\nimport { YearSelectCalendar } from './date-select'\nimport { CalendarProps } from './types'\n\nexport const Calendar = (props: CalendarProps) => {\n const { firstDayOfWeek } = props\n const { locale } = useLocale()\n const { container } = useMultiStyleConfig('Calendar')\n\n const state = useCalendarState({\n ...props,\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n props,\n state\n )\n\n return (\n <Box { ...calendarProps } __css={ container }>\n <Stack>\n <Flex justifyContent=\"space-between\">\n <Box paddingInlineStart=\"2\">\n <YearSelectCalendar state={ state } />\n </Box>\n <HStack spacing={ 2 }>\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </HStack>\n </Flex>\n <CalendarGrid\n state={ state }\n locale={ locale }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Stack>\n </Box>\n )\n}\n","import React, { ReactNode } from 'react'\nimport { I18nProvider } from '@react-aria/i18n'\nimport { FirstDayOfWeek } from '../components/calendar/components/types'\n\ninterface DatePickerLocaleWrapperProps {\n firstDayOfWeek: FirstDayOfWeek\n children: ReactNode\n}\n\nexport const DatePickerLocaleWrapper = ({\n firstDayOfWeek,\n children,\n}: DatePickerLocaleWrapperProps) => {\n const locale = firstDayOfWeek === 'monday' ? 'en-DE' : 'en-US'\n return <I18nProvider locale={ locale }>{ children }</I18nProvider>\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useDatePicker } from '@react-aria/datepicker'\nimport { useDatePickerState } from '@react-stately/datepicker'\nimport { FocusScope } from '@react-aria/focus'\nimport { XCloseSolid } from '@northlight/icons'\nimport { parseDate } from '@internationalized/date'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { Calendar } from '../components/calendar'\nimport { DatePickerProps } from '../types'\nimport { IconButton } from '../../icon-button'\nimport { HStack } from '../../stack'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { Icon } from '../../icon'\nimport { Box } from '../../box'\nimport { DatePickerLocaleWrapper } from './date-picker-locale-wrapper'\n\n/**\n * Popover to select single date\n * @see DatePickerField\n * @see {@link https://northlight.dev/reference/date-picker}\n *\n * @example (Example)\n * ## When is your birthday\n * (?\n * () => {\n * const [ date, setDate ] = useState('2023-10-10')\n *\n * const parseDate = () => {\n * return undefined\n * }\n *\n * return (\n * <DatePicker\n * firstDayOfWeek=\"monday\"\n * resetDate={() => setDate(null)} onChange={setDate} value={parseDate(date)}/>\n * )\n * }\n *\n * ?)\n * <br />\n * ### Some notes on date format\n * As you can see in the above example, the parseDate function returns undefined.\n * The DatePicker natively handles\n * dates as a DateValue object. To get out a string value on format yyyy-mm-dd,\n * you can use the javascript <b>.toString</b> method,\n * and for getting it back from string to DateValue,\n * you can use the parseDate util.\n * <br />\n * To read more about date formatting, consult the\n * <a target=\"_blank\" style=\"fontWeight: bold;\" href=\"https://react-spectrum.adobe.com/internationalized/date/CalendarDate.html\">react aria internationalized documentation</a>\n *\n * @example (Example)\n * ## Another example\n * (?\n * <DatePicker\n * variant=\"filled\"\n * dateFormat=\"mm|dd-yyyy\"\n * />\n * ?)\n *\n */\nexport const DatePicker = (props: DatePickerProps) => {\n const {\n isDisabled,\n isClearable = true,\n resetDate,\n isInvalid = false,\n dateFormat,\n minValue,\n variant = 'outline',\n firstDayOfWeek = 'monday',\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const { group } = useMultiStyleConfig('DatePicker')\n\n const state = useDatePickerState({\n ...props,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const { buttonProps, fieldProps, calendarProps, groupProps, dialogProps } =\n useDatePicker(\n { ...props, minValue: minValue || parseDate('1994-03-08') },\n state,\n ref\n )\n\n const togglePopup = () => state.setOpen(!state.isOpen)\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ () => state.setOpen(false) }\n placement=\"bottom-end\"\n >\n <PopoverAnchor>\n <HStack minW={ 56 }>\n <InputGroup { ...groupProps } ref={ ref } __css={ group }>\n <StyledField\n isDisabled={ isDisabled }\n isInvalid={ isInvalid }\n variant={ variant }\n >\n <Box paddingInlineStart=\"1a\" paddingInlineEnd={ 10 }>\n <DateField { ...fieldProps } dateFormat={ dateFormat } />\n </Box>\n </StyledField>\n <InputRightElement\n sx={ { height: '100%', paddingRight: '1' } }\n zIndex={ 0 }\n >\n <Trigger\n { ...buttonProps }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ resetDate }\n hidden={ !state.dateValue || !isClearable }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n </PopoverAnchor>\n { state.isOpen && (\n <PopoverContent { ...dialogProps } ref={ ref } w={ 64 } border=\"none\">\n <FocusScope contain={ true } restoreFocus={ true }>\n <DatePickerLocaleWrapper firstDayOfWeek={ firstDayOfWeek }>\n <Calendar { ...calendarProps } firstDayOfWeek={ firstDayOfWeek } />\n </DatePickerLocaleWrapper>\n </FocusScope>\n </PopoverContent>\n ) }\n </Popover>\n )\n}\n","import React from 'react'\nimport { Link, chakra } from '@chakra-ui/react'\nimport { Link as ReactRouterLink } from 'react-router-dom'\nimport { useClickable } from '@chakra-ui/clickable'\nimport { isNil } from 'ramda'\nimport { ClickableProps } from './types'\nimport { ring } from '../../utils'\n\n/**\n * Wrapper component to make children interactive\n * by taking care of focus/accessibility, will render\n * either a link or button depending on if passing\n * an href\n * @see {@link https://northlight.dev/reference/clickable}\n * @example (Example)\n * ### Click to send notification\n * (?\n * () => {\n * const [ count, setCount ] = useState(0)\n * return (\n * <Clickable onClick={ () => setCount((prev) => prev + 1) }>\n <Avatar name=\"anakin skywalker\" variant=\"rounded\" notificationCount={count}/>\n </Clickable>\n * )\n * }\n * ?)\n * @example (Example)\n * ### Rendering a link if passing href\n * (?\n <Clickable href=\"/reference/select\">\n <Center boxSize=\"3xs\" bgColor=\"gray.50\">\n Link\n </Center>\n </Clickable>\n * ?)\n *\n */\nexport const Clickable = ({ href, linkProps, ...rest }: ClickableProps) => {\n const clickable = useClickable(rest)\n\n return (\n <>\n { !isNil(href) && (\n <Link\n as={ ReactRouterLink }\n _focusVisible={ ring }\n to={ href }\n _hover={ { textDecoration: 'none' } }\n { ...linkProps }\n { ...clickable }\n />\n ) }\n { isNil(href) && <chakra.button _focusVisible={ ring } { ...clickable } /> }\n </>\n )\n}\n","import React from 'react'\nimport { Clickable } from '../../../../clickable'\nimport { Label } from '../../../../typography'\nimport { Flex } from '../../../../flex'\nimport { DateButtonProps } from './types'\n\nexport const DateButton = ({\n isActive,\n onClick,\n children,\n}: DateButtonProps) => (\n <Flex maxW=\"120px\">\n <Clickable onClick={ onClick }>\n <Label\n _hover={ {\n fontWeight: 'semibold',\n } }\n sx={ {\n color: isActive ? 'background.button.brand' : 'text.default',\n cursor: 'pointer',\n fontWeight: isActive ? 'semibold' : 'regular',\n } }\n _active={ {\n fontWeight: 'semibold',\n } }\n h=\"8\"\n >\n { children }\n </Label>\n </Clickable>\n </Flex>\n)\n","import { DateRangeValue, QuickSelectState } from './types'\n\nexport const validRange = (date: DateRangeValue, state: QuickSelectState) =>\n !date || (\n (!state.minValue || date.start >= state.minValue) &&\n (!state.maxValue || date.end <= state.maxValue) &&\n date.end >= date.start\n )\n","import {\n CalendarDate,\n endOfMonth,\n endOfWeek,\n endOfYear,\n startOfMonth,\n startOfWeek,\n startOfYear,\n today,\n} from '@internationalized/date'\nimport { QuickSelectState } from './types'\n\nexport const getQuickSelectOptions = (\n state: QuickSelectState,\n locale: string,\n fiscalStartMonth: number,\n fiscalStartDay: number\n) => {\n const thisDay = today(state.timeZone)\n\n const startOfMonthWithDays = (\n date: CalendarDate,\n { months, days }: { months: number, days: number }\n ) => {\n const start = date.add({ months }).set({ day: days })\n return start\n }\n\n const endOfMonthWithDays = (\n date: CalendarDate,\n { months, days }: { months: number, days: number }\n ) => {\n const end = date.add({ months }).set({ day: days }).subtract({ days: 1 })\n return end\n }\n\n const thisWeek = {\n value: {\n start: startOfWeek(thisDay, locale),\n end: endOfWeek(thisDay, locale),\n },\n label: 'This Week',\n }\n\n const nextWeek = {\n value: {\n start: startOfWeek(thisDay.add({ weeks: 1 }), locale),\n end: endOfWeek(thisDay.add({ weeks: 1 }), locale),\n },\n label: 'Next Week',\n }\n\n const lastWeek = {\n value: {\n start: startOfWeek(thisDay.subtract({ weeks: 1 }), locale),\n end: endOfWeek(thisDay.subtract({ weeks: 1 }), locale),\n },\n label: 'Last Week',\n }\n\n const thisMonth = {\n value: {\n start: startOfMonth(thisDay),\n end: endOfMonth(thisDay),\n },\n label: 'This Month',\n }\n\n const lastMonth = {\n value: {\n start: startOfMonth(thisDay.subtract({ months: 1 })),\n end: endOfMonth(thisDay.subtract({ months: 1 })),\n },\n label: 'Last Month',\n }\n\n const thisYear = {\n value: {\n start: startOfYear(thisDay),\n end: endOfYear(thisDay),\n },\n label: 'This Year',\n }\n\n const lastYear = {\n value: {\n start: startOfYear(thisDay.subtract({ years: 1 })),\n end: endOfYear(thisDay.subtract({ years: 1 })),\n },\n label: 'Last Year',\n }\n\n const nextMonth = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 1 })),\n },\n label: 'Next Month',\n }\n\n const nextThreeMonths = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 3 })),\n },\n label: 'Next 3 Months',\n }\n\n const nextSixMonths = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 6 })),\n },\n label: 'Next 6 Months',\n }\n\n const nextYear = {\n value: {\n start: startOfYear(thisDay.add({ years: 1 })),\n end: endOfYear(thisDay.add({ years: 1 })),\n },\n label: 'Next Year',\n }\n\n // Fiscal year from input is 0-11, while internationalized gives 1-12. This corrects the check.\n const offsetFiscalYear =\n thisDay.month < fiscalStartMonth + 1 ||\n (thisDay.month === fiscalStartMonth + 1 && thisDay.day < fiscalStartDay)\n ? 1\n : 0\n\n const thisFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n { months: fiscalStartMonth, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n { months: fiscalStartMonth + 12, days: fiscalStartDay }\n ),\n },\n label: 'This Fiscal Year',\n }\n\n const lastFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear + 1 }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear + 1 }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: 'Last Fiscal Year',\n }\n\n const yearToDate = {\n value: {\n start: startOfMonthWithDays(startOfYear(thisDay), {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }),\n end: thisDay,\n },\n label: 'Year to Date',\n }\n\n const F1 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 3,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q1' : 'FQ1',\n }\n\n const F2 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 3,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q2' : 'FQ2',\n }\n\n const F3 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 9,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q3' : 'FQ3',\n }\n\n const F4 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 9,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q4' : 'FQ4',\n }\n\n const fiscalQuarters = [ F1, F2, F3, F4 ]\n const fiscalYears =\n fiscalStartMonth === 0 ? [] : [ thisFiscalYear, lastFiscalYear ]\n\n const quickDates = [\n thisYear,\n yearToDate,\n lastWeek,\n nextWeek,\n thisWeek,\n lastMonth,\n nextThreeMonths,\n nextSixMonths,\n nextMonth,\n thisMonth,\n lastYear,\n nextYear,\n ...fiscalYears,\n ]\n\n return { quickDates, fiscalQuarters }\n}\n","import React, { useMemo } from 'react'\nimport { any, equals, map } from 'ramda'\nimport { palette } from '@northlight/tokens'\nimport { Flex, Spacer } from '../../../../flex'\nimport { Stack } from '../../../../stack'\nimport { Box } from '../../../../box'\nimport { DateButton } from './date-button'\nimport { validRange } from './utils'\nimport { Date, DateRangeValue, QuickSelectProps } from './types'\nimport { getQuickSelectOptions } from './get-quick-select-options'\n\nconst seperator = `1px solid ${palette.gray['100']}`\n\nexport const QuickSelect = ({\n state,\n fiscalStartMonth = 0,\n fiscalStartDay = 0,\n locale = '',\n height = '17.5rem',\n}: QuickSelectProps) => {\n const { quickDates, fiscalQuarters } = useMemo(\n () => getQuickSelectOptions(state, locale, fiscalStartMonth, fiscalStartDay),\n []\n )\n\n const updateDate = (newDate: DateRangeValue) => () => {\n if (newDate) {\n state.setValue(newDate)\n state.setFocusedDateRange(newDate)\n }\n }\n\n const getIsActive = (newDate: Date) => equals(state.value, newDate.value)\n\n const shouldShow = (dates: Date[]) =>\n any((date) => validRange(date.value, state), dates)\n\n return (\n <Stack alignItems=\"start\" borderRight={ seperator } pt=\"2\">\n <Stack\n h={ height }\n overflowY=\"hidden\"\n pr=\"4\"\n _hover={ { overflowY: 'scroll' } }\n w=\"36\"\n display={ shouldShow(quickDates) ? 'initial' : 'none' }\n >\n { map(\n (quickDate) =>\n validRange(quickDate.value, state) && (\n <Box minH=\"20px\" key={ `quick-select-${quickDate.label}` }>\n <DateButton\n onClick={ updateDate(quickDate.value) }\n isActive={ getIsActive(quickDate) }\n >\n { quickDate.label }\n </DateButton>\n </Box>\n ),\n quickDates\n ) }\n </Stack>\n <Box\n w=\"50%\"\n borderTop={ seperator }\n display={ shouldShow(fiscalQuarters) ? 'initial' : 'none' }\n />\n <Spacer />\n <Flex\n justifyContent=\"space-between\"\n w=\"full\"\n pt=\"2\"\n pr=\"4\"\n display={ shouldShow(fiscalQuarters) ? 'flex' : 'none' }\n >\n { map(\n (quarter) =>\n validRange(quarter.value, state) && (\n <DateButton\n onClick={ updateDate(quarter.value) }\n isActive={ getIsActive(quarter) }\n key={ `quick-select-${quarter.label}` }\n >\n { quarter.label }\n </DateButton>\n ),\n fiscalQuarters\n ) }\n </Flex>\n </Stack>\n )\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { useLocale } from '@react-aria/i18n'\nimport { useCalendarState } from '@react-stately/calendar'\nimport { CalendarDate, GregorianCalendar } from '@internationalized/date'\nimport { RangeCalendarProps } from './types'\nimport { Button } from '../../../button'\nimport { Label } from '../../../typography'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { StandaloneCalendarGrid } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { DateRangeValue } from './quick-navigation/types'\nimport { QuickSelect } from './quick-navigation/quick-select'\n\nconst focusRing = {\n borderWidth: 'xs',\n borderRadius: 'md',\n borderColor: 'border.brand.hover',\n borderStyle: 'solid',\n}\n\nexport const RangeCalendar = (props: RangeCalendarProps) => {\n const {\n onChange: setRange = identity,\n value,\n handleClose,\n resetDate,\n isClearable = true,\n fiscalStartMonth,\n fiscalStartDay,\n minValue,\n maxValue,\n firstDayOfWeek,\n onSave,\n buttonLabel = 'Save',\n } = props\n\n const { locale } = useLocale()\n\n const ref = useRef<HTMLDivElement>(null)\n const { rangeCalendarContainer } = useMultiStyleConfig('Calendar')\n\n const calendarOneState = useCalendarState({\n value: value && value.start ? value.start : null,\n minValue,\n maxValue,\n onChange: (newVal) => {\n setRange({\n end: value && value.end && newVal <= value.end ? value.end : newVal,\n start: newVal,\n })\n },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const calendarTwoState = useCalendarState({\n value: value && value.end ? value.end : null,\n minValue,\n maxValue,\n onChange: (newVal) => {\n setRange({\n start:\n value && value.end && value.start <= newVal ? value.start : newVal,\n end: newVal,\n })\n },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const focusDateRange = (dateRange: DateRangeValue) => {\n if (dateRange && dateRange.start && dateRange.end) {\n calendarOneState.setFocusedDate(dateRange.start as CalendarDate)\n calendarTwoState.setFocusedDate(dateRange.end as CalendarDate)\n }\n }\n\n const state = {\n setValue: setRange,\n setFocusedDateRange: focusDateRange,\n value,\n timeZone: calendarOneState.timeZone,\n minValue,\n maxValue,\n }\n\n const focusedStartMonthProps = value && value.start ? {} : focusRing\n\n const handleSave = () => {\n onSave?.()\n handleClose()\n }\n\n return (\n <Box ref={ ref } __css={ rangeCalendarContainer }>\n <Stack>\n <Flex gap={ 4 }>\n <QuickSelect\n state={ state }\n locale={ locale }\n fiscalStartMonth={ fiscalStartMonth }\n fiscalStartDay={ fiscalStartDay }\n />\n <Stack>\n <HStack alignItems=\"start\" spacing={ 8 } h=\"full\" pt=\"2\">\n <Stack h=\"full\" { ...focusedStartMonthProps }>\n <Box p=\"2\">\n <Label size=\"xs\">Start date:</Label>\n <StandaloneCalendarGrid\n state={ calendarOneState }\n range={ value }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Box>\n </Stack>\n <Stack h=\"full\" justify=\"space-between\">\n <Stack opacity={ value && value.start ? '1' : '0.4' }>\n <Box p=\"2\">\n <Label size=\"xs\">End date:</Label>\n <StandaloneCalendarGrid\n state={ calendarTwoState }\n range={ value }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Box>\n </Stack>\n <HStack pt=\"2\" alignSelf=\"end\">\n { isClearable && (\n <Button onClick={ resetDate } variant=\"ghost\" size=\"sm\">\n Clear\n </Button>\n ) }\n <Button variant=\"brand\" onClick={ handleSave } size=\"sm\">\n { buttonLabel }\n </Button>\n </HStack>\n </Stack>\n </HStack>\n </Stack>\n </Flex>\n </Stack>\n </Box>\n )\n}\n","import { has, is } from 'ramda'\n\nexport const isValidDateRange = (value: unknown) => (\n is(Object, value) &&\n has('startDate', value) &&\n has('endDate', value) &&\n is(String, value.startDate) &&\n is(String, value.endDate)\n)\n","import React, { useRef } from 'react'\nimport { FocusScope } from '@react-aria/focus'\nimport { useDateRangePickerState } from '@react-stately/datepicker'\nimport { useDateRangePicker } from '@react-aria/datepicker'\nimport { useMultiStyleConfig, useOutsideClick } from '@chakra-ui/react'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity, isNil } from 'ramda'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { DateRange } from '@react-types/datepicker'\nimport { RangeCalendar } from '../components/calendar/quick-navigation'\nimport { P } from '../../typography'\nimport { HStack } from '../../stack'\nimport { DateRangePickerProps } from '../types'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { Portal } from '../../portal'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { IconButton } from '../../icon-button'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Icon } from '../../icon'\nimport { isValidDateRange } from '../date-picker-field/utils'\nimport { DatePickerLocaleWrapper } from './date-picker-locale-wrapper'\n\nconst parseValue = (value: any) => {\n if (!isValidDateRange(value)) return null\n return { start: parseDate(value.startDate), end: parseDate(value.endDate) }\n}\n\nconst PortalWrapper = ({\n renderInPortal,\n children,\n}: {\n renderInPortal: boolean\n children: React.ReactNode\n}) => {\n if (renderInPortal) {\n return <Portal>{ children }</Portal>\n }\n return <>{ children }</>\n}\n\n/**\n * Popover to choose date range on format {startDate:' yyyy-mm-dd', endDate: 'yyyy-mm-dd'}\n *\n * @see DatePicker\n * @see DateRangePickerField\n * @see {@link https://northlight.dev/reference/date-range-picker}\n * @example (Example)\n * ## Advanced Mode\n * (Due to it being harder to setup normal date range picker,\n * the date range picker field is demoed,\n * here, you need to pass down and parse a value for the date range picker for it to work properly,\n * consult the date picker documentation and the source code for date range picker\n * field for appropiate use)\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField name=\"date\"/>\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## Simple mode\n * The previous example was the date range picker variant\n * for which we call advance, this one is a simpler version with the same core functionality:\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField name=\"date\" />\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## Sophisticated example\n * The `DateRangePickerField` can have **fiscalStartMonth** and **fiscalStartDay** as a `number`\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField\n * name=\"date\"\n * mode=\"advanced\"\n * variant=\"filled\"\n * fiscalStartMonth={3}\n * fiscalStartDay={5}\n * dateFormat=\"mm|dd-yyyy\"\n * minValue=\"2023-01-01\"\n * maxValue=\"2028-01-01\"\n * />\n * </Form>\n * ?)\n */\nexport const DateRangePicker = (props: DateRangePickerProps) => {\n const {\n isDisabled,\n isClearable = true,\n resetDate,\n isInvalid = false,\n dateFormat,\n fiscalStartMonth,\n fiscalStartDay,\n variant = 'outline',\n onChange: onChangeCallback = identity,\n value,\n minValue = '1994-03-08',\n maxValue,\n renderInPortal = false,\n firstDayOfWeek,\n onSave,\n buttonLabel = 'Save',\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const { group } = useMultiStyleConfig('DatePicker')\n const parsedProps = {\n onChange: (date: DateRange) => {\n onChangeCallback({\n startDate: date?.start.toString(),\n endDate: date?.end.toString(),\n })\n },\n value: parseValue(value) as { start: DateValue, end: DateValue },\n minValue: isNil(minValue) ? undefined : (parseDate(minValue) as DateValue),\n maxValue: isNil(maxValue) ? undefined : (parseDate(maxValue) as DateValue),\n }\n const state = useDateRangePickerState({\n ...props,\n ...parsedProps,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const {\n groupProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDateRangePicker(\n {\n ...props,\n ...parsedProps,\n minValue: parsedProps.minValue || parseDate('1994-03-08'),\n },\n state,\n ref\n )\n\n const togglePopup = () => state.setOpen(!state.isOpen)\n\n const handleClose = () => {\n state.setOpen(false)\n }\n\n useOutsideClick({\n ref,\n handler: () => state.setOpen(false),\n })\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ handleClose }\n placement=\"bottom-start\"\n >\n <PopoverAnchor>\n <HStack>\n <InputGroup { ...groupProps } ref={ ref } __css={ group }>\n <StyledField\n isDisabled={ isDisabled }\n isInvalid={ isInvalid }\n variant={ variant }\n >\n <HStack paddingInlineStart=\"1a\" paddingInlineEnd={ 10 }>\n <DateField { ...startFieldProps } dateFormat={ dateFormat } />\n <P>-</P>\n <DateField { ...endFieldProps } dateFormat={ dateFormat } />\n </HStack>\n </StyledField>\n <InputRightElement sx={ { height: '100%', paddingRight: '1' } }>\n <Trigger\n { ...buttonProps }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ resetDate }\n hidden={ !isClearable }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n </PopoverAnchor>\n <PortalWrapper renderInPortal={ renderInPortal }>\n { state.isOpen && (\n <PopoverContent { ...dialogProps } ref={ ref } w=\"max-content\">\n <FocusScope contain={ true } restoreFocus={ true }>\n <DatePickerLocaleWrapper firstDayOfWeek={ firstDayOfWeek }>\n <RangeCalendar\n { ...calendarProps }\n resetDate={ resetDate }\n handleClose={ handleClose }\n fiscalStartMonth={ fiscalStartMonth || 0 }\n fiscalStartDay={ fiscalStartDay || 0 }\n isClearable={ isClearable }\n firstDayOfWeek={ firstDayOfWeek }\n onSave={ onSave }\n buttonLabel={ buttonLabel }\n />\n </DatePickerLocaleWrapper>\n </FocusScope>\n </PopoverContent>\n ) }\n </PortalWrapper>\n </Popover>\n )\n}\n","import React from 'react'\nimport { all, isNil, not } from 'ramda'\nimport { InputGroup } from '../../components/input'\nimport { InputGroupWrapperProps } from './types'\n\nexport const InputGroupWrapper = ({\n inputLeftElement,\n inputRightElement,\n children,\n ...rest\n}: InputGroupWrapperProps) => {\n const containsInputGroupElement =\n not(all(isNil, [ inputLeftElement, inputRightElement ]))\n\n return containsInputGroupElement\n ? (\n <InputGroup { ...rest }>\n { inputLeftElement }\n { children }\n { inputRightElement }\n </InputGroup>\n )\n : <>{ children }</>\n}\n","import React, { forwardRef } from 'react'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { identity } from 'ramda'\nimport { DatePickerFieldProps } from '../types'\nimport { Field } from '../../form'\nimport { DatePicker } from '../date-picker/date-picker'\nimport { useFormContext } from '../../../hooks'\nimport { InputGroupWrapper } from '../../../internal-components/input-group-wrapper'\n\n/**\n * The <DatePicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see DatePicker\n * @see {@link https://northlight.dev/reference/date-picker-field}\n *\n * @example (Example)\n * ##Fill in your information:\n * (?\n * <Form initialValues={{date: null}}>\n * <DatePickerField name=\"date\" />\n * </Form>\n *\n * ?)\n * <br />\n * ###The simplest way\n * Using the date picker in a form is probably the easiest\n * way to use it, it will handle the state for you and you\n * can retrieve the date at the end as a string on format\n * yyyy-mm-dd on the onSubmit callback on <Form>\n *\n */\nexport const DatePickerField = forwardRef<HTMLDivElement, DatePickerFieldProps>(({\n name,\n minValue,\n maxValue,\n isRequired,\n direction = 'column',\n label,\n validate,\n firstDayOfWeek = 'monday',\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}, ref) => {\n const { setValue, setError, trigger } = useFormContext()\n\n const handleChange = (date: DateValue) => {\n setValue(name, date?.toString())\n if ((minValue && date < parseDate(minValue)) || (maxValue && date > parseDate(maxValue))) {\n setError(name, {\n type: 'custom',\n message: minValue && maxValue\n ? `Date must be between ${minValue}-${maxValue}`\n : minValue\n ? `Select date earliest at ${minValue}`\n : `Select date latest at ${maxValue}`\n ,\n })\n } else {\n trigger(name)\n }\n onChangeCallback(date)\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <DatePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n resetDate={ () => onChange(null) }\n value={ value ? parseDate(value) as any : null }\n minValue={ minValue ? parseDate(minValue) as DateValue : undefined }\n maxValue={ maxValue ? parseDate(maxValue) as DateValue : undefined }\n validationState={ errors.name ? 'invalid' : 'valid' }\n { ...rest as any }\n />\n </InputGroupWrapper>\n ) }\n </Field>\n\n )\n})\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { DateRangePickerFieldProps, FormBody } from '../types'\nimport { Field } from '../../form'\nimport { DateRangePicker } from '../date-picker/date-range-picker'\nimport { useFormContext } from '../../../hooks'\n\n/**\n * The <DateRangePicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see DateRangePicker\n * @see {@link https://northlight.dev/reference/date-range-picker-field}\n *\n */\nexport const DateRangePickerField = forwardRef<HTMLDivElement, DateRangePickerFieldProps>(({\n name,\n minValue,\n maxValue,\n isRequired,\n direction = 'column',\n label,\n validate,\n firstDayOfWeek = 'monday',\n onChange: onChangeCallback = identity,\n isClearable = true,\n onSave,\n buttonLabel = 'Save',\n ...rest\n}, ref) => {\n const { setValue, setError, trigger } = useFormContext<FormBody>()\n\n const handleChange = (dateRange: { startDate: string, endDate: string }) => {\n setValue(name, dateRange)\n if (\n (minValue && dateRange?.startDate < minValue) ||\n (maxValue && dateRange?.endDate > maxValue)\n ) {\n setError(name, {\n type: 'custom',\n message:\n minValue && maxValue\n ? `Date must be between ${minValue}-${maxValue}`\n : minValue\n ? `Select date earliest at ${minValue}`\n : `Select date latest at ${maxValue}`,\n })\n } else {\n trigger(name)\n }\n onChangeCallback(dateRange)\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <DateRangePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n onSave={ onSave }\n resetDate={ () => onChange(null) }\n value={ value }\n minValue={ minValue }\n maxValue={ maxValue }\n validationState={ errors.name ? 'invalid' : 'valid' }\n isClearable={ isClearable }\n buttonLabel={ buttonLabel }\n { ...(rest as any) }\n />\n ) }\n </Field>\n )\n})\n","import {\n AlertCircleSolid,\n AlertOctagonSolid,\n AlertTriangleSolid,\n BrightnessSolid,\n CheckCircleSolid,\n HelpCircleSolid,\n InfoSolid,\n} from '@northlight/icons'\nimport { AlertVariants } from '../../alert/types'\n\nexport const tooltipIconMap: Record<AlertVariants, any> = {\n success: CheckCircleSolid,\n warning: AlertTriangleSolid,\n error: AlertCircleSolid,\n danger: AlertOctagonSolid,\n info: InfoSolid,\n ai: BrightnessSolid,\n default: HelpCircleSolid,\n ghost: HelpCircleSolid,\n}\n","import React from 'react'\nimport {\n Tooltip as ChakraTooltip,\n HStack,\n VStack,\n} from '@chakra-ui/react'\nimport { Label, P } from '../typography'\nimport { Icon } from '../icon'\nimport { AlertVariants } from '../alert'\nimport { tooltipIconMap } from '../types/tooltipIconMap'\nimport { OurTooltipProps } from './types'\n\n/**\n * A tooltip is a brief, informative message that appears when a user interacts with an element.\n * @see {@link https://northlight.dev/reference/tooltip}\n *\n * @example\n * (?\n * <HStack>\n * <Tooltip\n * hasIcon={ true }\n * description=\"Here’s a regular tooltip with some with icon\n * inside of it that’s supposed to be substantially large.\">\n * <Badge>ICON</Badge>\n * </Tooltip>\n * <Tooltip\n * description=\"Here’s a regular tooltip with some text without icon\n * inside of it that’s supposed to be substantially large.\"\n * >\n * <Badge>NOICON</Badge>\n * </Tooltip>\n * <Tooltip\n * description={\n * <Box>\n * <Text>\n * Some text\n * </Text>\n * <UnorderedList>\n * <ListItem>\n * List item 1\n * </ListItem>\n * <ListItem>\n * List item 2\n * </ListItem>\n * <ListItem>\n * List item 3\n * </ListItem>\n * </UnorderedList>\n * </Box>\n * }\n * >\n * <Badge>With JSX content</Badge>\n * </Tooltip>\n * </HStack>\n * ?)\n *\n *\n * @example\n * (?\n * <HStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"success\"\n * description=\"This is a successful message\"\n * >\n * <Badge colorScheme=\"green\">Success</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"success\"\n * title=\"Please check fields\"\n * description=\"This is a successful message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"green\">Success</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"info\"\n * description=\"This is an informative text\"\n * >\n * <Badge colorScheme=\"blue\">Info</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"info\"\n * title=\"Please check fields\"\n * description=\"This is an informative text with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"blue\">Info</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"warning\"\n * description=\"This is a warning\"\n * >\n * <Badge colorScheme=\"yellow\">Warning</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"warning\"\n * title=\"Please check fields\"\n * description=\"This is a warning with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"yellow\">Warning</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"danger\"\n * description=\"This is an error message\"\n * >\n * <Badge colorScheme=\"red\">Error</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"danger\"\n * title=\"Please check fields\"\n * description=\"This is an error message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"red\">Error</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ai\"\n * description=\"This is an AI message\">\n * <Badge colorScheme=\"teal\" variant=\"subtle\">AI</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ai\"\n * title=\"Please check fields\"\n * description=\"This is an AI message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"teal\" variant=\"subtle\">AI</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ghost\"\n * description=\"This is an clean message\">\n * <Badge>Ghost</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ghost\"\n * title=\"Please check fields\"\n * description=\"This is an clean message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge>Ghost</Badge>\n * </Tooltip>\n * </VStack>\n * </HStack>\n * ?)\n */\n\nexport const Tooltip: React.FC<OurTooltipProps> = ({\n variant = 'default',\n hasArrow = true,\n title = '',\n description = '',\n hasIcon = false,\n ...rest\n}) => {\n const iconVariant: AlertVariants = variant as AlertVariants\n const icon = tooltipIconMap[iconVariant]\n\n const TooltipContent = (\n <HStack alignItems=\"flex-start\">\n { hasIcon && <Icon as={ icon } color={ `icon.toast.${iconVariant}` } /> }\n <VStack spacing={ 0 } alignItems=\"flex-start\">\n <Label size=\"sm\">{ title }</Label>\n <P\n variant=\"14\"\n sx={ {\n color: !variant || variant === 'ai' ? 'text.inverted' : 'text.default',\n } }\n >\n { description }\n </P>\n </VStack>\n </HStack>\n )\n return (\n <ChakraTooltip\n hasArrow={ hasArrow }\n hasIcon={ hasIcon }\n label={ title || description ? TooltipContent : undefined }\n variant={ variant }\n { ...rest }\n />\n )\n}\n","import React from 'react'\nimport { Circle } from '@chakra-ui/react'\nimport { chakra } from '@chakra-ui/system'\nimport { TimeoutProgressCircleProps } from './types'\n\nexport const TimeoutProgressCircle = ({\n progress,\n ringColor = 'border.error',\n ...rest\n}: TimeoutProgressCircleProps) => {\n const RADIUS = 22\n const STROKE_WIDTH = 3\n const SVG_SIZE = 2 * (RADIUS + STROKE_WIDTH)\n const CIRCUMFERENCE = 2 * Math.PI * RADIUS\n const strokeDashoffset = CIRCUMFERENCE - (progress / 100) * CIRCUMFERENCE\n\n return (\n <Circle\n as=\"svg\"\n size={ `${SVG_SIZE}px` }\n viewBox={ `0 0 ${SVG_SIZE} ${SVG_SIZE}` }\n sx={ {\n transform: 'rotate(-90deg)',\n } }\n { ...rest }\n >\n <chakra.circle\n cx={ SVG_SIZE / 2 }\n cy={ SVG_SIZE / 2 }\n r={ RADIUS }\n fill=\"transparent\"\n stroke=\"border.hover\"\n strokeWidth={ STROKE_WIDTH }\n />\n <chakra.circle\n cx={ SVG_SIZE / 2 }\n cy={ SVG_SIZE / 2 }\n r={ RADIUS }\n fill=\"transparent\"\n stroke={ ringColor }\n strokeWidth={ STROKE_WIDTH }\n strokeDasharray={ CIRCUMFERENCE }\n strokeDashoffset={ strokeDashoffset }\n strokeLinecap=\"round\"\n />\n </Circle>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { TrashDuo } from '@northlight/icons'\nimport { Tooltip } from '../tooltip'\nimport { Center } from '../center'\nimport { Icon } from '../icon'\nimport { IntentButtonProps } from './types'\nimport { TimeoutProgressCircle } from './timeout-progress-circle'\nimport { IconButton } from '../icon-button'\n\n/**\n * @see {@link https://northlight.dev/reference/intent-button}\n *\n * Hold in to confirm delete\n *\n * @example\n * (?\n * +\n *\n * const Example = () => {\n * const [isShowing, setIsShowing] = useState(true)\n *\n * const handleDelete = () => {\n * setIsShowing(false)\n * }\n *\n * return (\n * <>\n * {isShowing && (\n * <IntentButton onTimeout={handleDelete} />\n * )}\n * </>\n * )\n *\n * }\n * render(<Example />)\n *?)\n *\n */\nexport const IntentButton = ({\n icon = TrashDuo,\n timeout = 1000,\n ringColor = 'border.error',\n onTimeout = () => {},\n tooltipText = 'Hold to Delete',\n 'aria-label': ariaLabel = 'confirm delete',\n ...rest\n}: IntentButtonProps) => {\n const [ progress, setProgress ] = useState(0)\n const [ isHovering, setIsHovering ] = useState(false)\n const timerRef = useRef<number | undefined>(undefined)\n\n const clearTimer = () => {\n if (timerRef.current) {\n clearInterval(timerRef.current)\n timerRef.current = undefined\n }\n setProgress(0)\n }\n\n useEffect(() => clearTimer, [])\n\n const startTimer = () => {\n clearTimer()\n\n const startTime = Date.now()\n timerRef.current = setInterval(() => {\n const elapsedTime = Date.now() - startTime\n const updatedProgress = (elapsedTime / timeout) * 100\n if (updatedProgress >= 100) {\n clearInterval(timerRef.current)\n onTimeout()\n } else {\n setProgress(updatedProgress)\n }\n }, 10)\n }\n\n const handleMouseEnter = () => {\n setIsHovering(true)\n }\n\n const handleMouseLeave = () => {\n setIsHovering(false)\n clearTimer()\n }\n\n return (\n <Tooltip label={ tooltipText } placement=\"top\">\n <Center\n position=\"relative\"\n cursor=\"pointer\"\n onMouseDown={ startTimer }\n onMouseUp={ clearTimer }\n onMouseLeave={ handleMouseLeave }\n onMouseEnter={ handleMouseEnter }\n boxSize=\"50px\"\n opacity={ `${(100 - progress) / 100}` }\n { ...rest }\n >\n <IconButton\n icon={ <Icon as={ icon } /> }\n size=\"md\"\n aria-label={ ariaLabel }\n variant=\"ghost\"\n />\n { isHovering && (\n <TimeoutProgressCircle\n ringColor={ ringColor }\n progress={ progress }\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n />\n ) }\n </Center>\n </Tooltip>\n )\n}\n","export const defaultFadeDelay = 250\nexport const defaultOffset = 20\n","import { useEffect, useState } from 'react'\nimport { identity } from 'ramda'\nimport { getChildrenWithProps } from '../../utils'\nimport {\n ChildrenType,\n DurationType,\n OffsetType,\n TransitionDirection,\n} from './types'\nimport { defaultFadeDelay, defaultOffset } from './constants'\n\nconst unFocusStyles = { tabIndex: '-1' }\nexport const getChildrenWithFocus = (\n children: ChildrenType,\n disableFocus: boolean,\n show: boolean\n) =>\n (show\n ? children\n : disableFocus\n ? getChildrenWithProps(children, unFocusStyles)\n : children)\n\nexport const getDuration = (\n enterDuration: DurationType,\n exitDuration: DurationType,\n duration: DurationType\n) => {\n const inDuration = enterDuration || duration || defaultFadeDelay\n const outDuration = exitDuration || duration || defaultFadeDelay\n const transition = {\n enter: {\n duration: inDuration / 1000,\n },\n exit: {\n duration: outDuration / 1000,\n },\n }\n return transition\n}\n\nexport const getOffsets = (\n direction: TransitionDirection,\n offset: OffsetType,\n offsetX: OffsetType,\n offsetY: OffsetType\n) => {\n if (offsetX || offsetY) {\n return { offsetX, offsetY }\n }\n if (direction) {\n const delta = offset || defaultOffset\n switch (direction) {\n case 'right':\n return { offsetX: delta, offsetY: 0 }\n case 'left':\n return { offsetX: -delta, offsetY: 0 }\n case 'top':\n return { offsetX: 0, offsetY: -delta }\n case 'bottom':\n return { offsetX: 0, offsetY: delta }\n default:\n break\n }\n }\n return { offsetX: defaultOffset, offsetY: defaultOffset }\n}\n\nexport const useDelay = (\n show: boolean,\n enterDelay: number,\n exitDelay: number\n) => {\n const [ showWithDelay, setShowWithDelay ] = useState(false)\n useEffect(() => {\n const ref = setTimeout(\n () => setShowWithDelay(show),\n show ? enterDelay : exitDelay\n )\n return () => clearTimeout(ref)\n }, [ show ])\n return showWithDelay\n}\n\nexport const useHiddenDisplay = (\n anchor = false,\n exitDelay = 0,\n exitDuration: DurationType = 0,\n duration: DurationType = 0,\n onTransitionComplete: (hidden: boolean) => void = identity\n) => {\n const [ hidden, setHidden ] = useState(anchor)\n\n useEffect(() => {\n const ref = setTimeout(() => {\n setHidden(anchor)\n onTransitionComplete(anchor)\n }, exitDelay + (exitDuration || duration || 0))\n return () => clearTimeout(ref)\n }, [ anchor ])\n\n return hidden\n}\n","import React from 'react'\nimport { Fade as ChakraFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { FadeProps } from './types'\n/**\n * Simple transition to hide/show content\n * @see ScaleFade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/fade}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Render random number</Button>\n <Box borderRadius=\"sm\"\n borderWidth=\"sm\" borderColor=\"border.default\">\n <Fade in={ show} exitDuration={1}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <H3>\n {Math.round(Math.random() * 100)}\n </H3>\n </HStack>\n </Fade>\n </Box>\n </>\n\n )\n\n}\n\n * ?)\n *\n */\nexport const Fade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: FadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraFade\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraFade>\n )\n}\n","import React from 'react'\nimport { ScaleFade as ChakraScaleFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { ScaleFadeProps } from './types'\n\n/**\n * Simple transition to hide/show content\n * @see Fade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/slide-fade}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Render random number</Button>\n <Box borderRadius=\"sm\"\n borderWidth=\"sm\" borderColor=\"border.default\">\n <SlideFade in={ show} exitDuration={1}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <H3>\n {Math.round(Math.random() * 100)}\n </H3>\n </HStack>\n </SlideFade>\n </Box>\n </>\n )\n}\n * ?)\n *\n */\nexport const ScaleFade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: ScaleFadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraScaleFade\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraScaleFade>\n )\n}\n","import React from 'react'\nimport { Slide as ChakraSlide } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { SlideProps } from './types'\n\nexport const Slide = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n direction = 'bottom',\n onTransitionComplete = identity,\n ...rest\n}: SlideProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraSlide\n in={ showWithDelay }\n transition={ transition }\n direction={ direction }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraSlide>\n )\n}\n","import React from 'react'\nimport { SlideFade as ChakraSlideFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, getOffsets, useDelay, useHiddenDisplay } from './utils'\nimport { SlideFadeProps } from './types'\nimport { defaultOffset } from './constants'\n\nexport const SlideFade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n direction = 'bottom',\n offset: delta = defaultOffset,\n offsetX: deltaX = 0,\n offsetY: deltaY = 0,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: SlideFadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const { offsetX, offsetY } = getOffsets(direction, delta, deltaX, deltaY)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraSlideFade\n in={ showWithDelay }\n transition={ transition }\n offsetX={ offsetX }\n offsetY={ offsetY }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraSlideFade>\n )\n}\n","import React from 'react'\nimport { Collapse as ChakraCollapse } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { CollapseProps } from './types'\n\n/**\n * Simple transition to hide/show content\n * @see Fade\n * @see ScaleFade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/collapse}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Click Me</Button>\n <Box borderRadius=\"sm\"\n borderWidth=\"sm\" borderColor=\"border.default\">\n <Collapse in={ show}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <P>\n Enable advanced mode\n </P>\n\n <Switch />\n </HStack>\n </Collapse>\n </Box>\n </>\n\n )\n\n}\n\n * ?)\n\n *\n */\n\nexport const Collapse = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: CollapseProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraCollapse\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraCollapse>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig, useToken } from '@chakra-ui/system'\nimport { coreZIndex } from '@northlight/tokens'\nimport { FocusScope } from '@react-aria/focus'\nimport { useResizeWidth } from '../../hooks'\nimport { Flex } from '../flex'\nimport { Slide } from '../transitions'\nimport { Box } from '../box'\nimport { Portal } from '../portal'\nimport { ToolboxProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\nimport { ResizeHandle } from '../resize-handle'\nimport { VStack } from '../stack'\n\n/**\n * Controllable Sidebar drawer\n * @see Slide\n * @see {@link https://northlight.dev/reference/toolbox}\n * @example\n * (?\n *() => {\n const { isOpen, onOpen, onClose } = useDisclosure()\n return (\n <Flex>\n <Button onClick={ onOpen } w=\"full\">\n Open Toolbox\n </Button>\n <Toolbox\n isOpen={ isOpen }\n isResizable={ true }\n onClose={ onClose }\n size=\"sm\"\n resizeLimit=\"half\"\n >\n <ToolboxHeader>Title</ToolboxHeader>\n <ToolboxContent>\n <Stack>\n <Input />\n <Input />\n </Stack>\n </ToolboxContent>\n <ToolboxFooter justifyContent=\"end\" gap=\"2\">\n <Button variant=\"ghost\">Cancel</Button>\n <Button variant=\"brand\">Save</Button>\n </ToolboxFooter>\n </Toolbox>\n </Flex>\n )\n }\n * ?)\n */\nexport const Toolbox = ({\n isResizable = false,\n isOpen = false,\n children,\n direction = 'right',\n shouldPush = false,\n size = 'sm',\n onClose,\n autoFocus = true,\n resizeLimit = 'full',\n zIndex = coreZIndex.overlay,\n ...rest\n}: ToolboxProps) => {\n const { container } = useMultiStyleConfig('Toolbox', { size })\n const newChildren = getChildrenWithProps(\n children,\n { onClose },\n (_child, i) => i === 0\n )\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n onClose?.()\n }\n }\n\n const getPixelSize = (sizeToken: string) => {\n const widthInRem = useToken('sizes', sizeToken)\n return parseFloat(widthInRem) * 16\n }\n\n const defaultWidthPx = getPixelSize(size)\n const minWidthPx = getPixelSize('sm')\n const maxWidthPx =\n resizeLimit === 'half' ? 0.5 * window.innerWidth : window.innerWidth\n\n const { adjustableWidth, resizeProps } = useResizeWidth({\n minWidthPx,\n maxWidthPx,\n defaultWidthPx,\n stationaryEdge: direction,\n })\n\n return (\n <Box\n w={ adjustableWidth }\n display={ isOpen && shouldPush ? 'initial' : 'none' }\n >\n <Portal>\n <Slide\n direction={ direction }\n in={ isOpen }\n style={ {\n height: container.h as string,\n width: adjustableWidth,\n zIndex,\n } }\n >\n <Flex\n sx={ { ...container, w: adjustableWidth } }\n onKeyDown={ handleKeyDown }\n position=\"relative\"\n overflow=\"hidden\"\n direction={ direction === 'left' ? 'row-reverse' : 'row' }\n { ...rest }\n >\n { isResizable && <ResizeHandle { ...resizeProps } /> }\n <FocusScope autoFocus={ autoFocus }>\n <VStack w=\"full\" h=\"full\" alignItems=\"normal\">\n { newChildren }\n </VStack>\n </FocusScope>\n </Flex>\n </Slide>\n </Portal>\n </Box>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { CloseButton } from '../close-button'\nimport { Flex } from '../flex'\nimport { ToolboxHeaderProps } from './types'\nimport { H4 } from '../typography'\n\n/**\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-header}\n *\n */\nexport const ToolboxHeader = ({\n children,\n onClose,\n ...rest\n}: ToolboxHeaderProps) => {\n const { header } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex sx={ header } { ...rest }>\n { typeof children === 'string' ? <H4>{ children }</H4> : children }\n <CloseButton\n aria-label=\"Close toolbox\"\n position=\"fixed\"\n right={ 4 }\n onClick={ onClose }\n />\n </Flex>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { merge } from 'ramda'\nimport { Flex } from '../flex'\nimport { ToolboxContentProps } from './types'\n\n/**\n * Main content of toolbox drawer\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-content}\n */\nexport const ToolboxContent = ({ sx = {}, children, ...rest }: ToolboxContentProps) => {\n const { body } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex\n sx={ merge(body, sx) }\n { ...rest }\n >\n { children }\n </Flex>\n )\n}\n","import { useMultiStyleConfig } from '@chakra-ui/system'\nimport React from 'react'\nimport { Flex } from '../flex'\nimport { ToolboxFooterProps } from './types'\n\n/**\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-footer}\n */\nexport const ToolboxFooter = ({ children, ...rest }: ToolboxFooterProps) => {\n const { footer } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex sx={ footer } { ...rest }>\n { children }\n </Flex>\n )\n}\n","import React from 'react'\nimport { Radio as ChakraRadio } from '@chakra-ui/react'\nimport { RadioProps } from './types'\n\n/**\n * @see RadioGroup\n * @see {@link https://northlight.dev/reference/radio}\n */\nexport const Radio = ({\n size = 'md',\n onChange,\n name,\n value,\n ...rest\n}: RadioProps) => (\n <ChakraRadio\n size={ size }\n id={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { RadioGroup as ChakraRadioGroup } from '@chakra-ui/react'\nimport { RadioGroupProps } from './types'\nimport { Stack } from '../stack'\n\n/**\n * Wrapper to select one of multiple options\n * @see {@link https://northlight.dev/reference/radio-group}\n * @example\n * (?\n <RadioGroup>\n <HStack>\n <Radio value=\"1\" />\n <Radio value=\"2\" />\n <Radio value=\"3\" />\n </HStack>\n </RadioGroup>\n * ?)\n *\n */\nexport const RadioGroup = ({\n direction = 'row',\n children,\n name,\n ...rest\n}: RadioGroupProps) => (\n <ChakraRadioGroup name={ name } id={ name } { ...rest }>\n <Stack direction={ direction }>{ children }</Stack>\n </ChakraRadioGroup>\n)\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { RadioFieldGroupProps } from './types'\nimport { Field } from '../form'\nimport { RadioGroup } from './radio-group'\nimport { Box } from '../box'\n\n/**\n * The radio group component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see RadioGroup\n * @see Radio\n * @see {@link https://northlight.dev/reference/radio-group-field}\n *\n */\nexport const RadioGroupField = forwardRef<HTMLDivElement, RadioFieldGroupProps>(({\n name,\n label,\n children,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <RadioGroup\n name={ name }\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n direction={ direction }\n value={ value }\n data-testid=\"radio-group-field-test-id\"\n { ...rest }\n >\n { children }\n </RadioGroup>\n ) }\n </Field>\n </Box>\n))\n","export const carouselItemWidth = 150\nexport const carouselItemSpacing = 60\n","import React from 'react'\nimport { motion } from 'framer-motion'\nimport { Center } from '../center'\nimport { carouselItemWidth } from './constants'\nimport { CarouselItemProps } from './types'\n\nconst variants = {\n active: { scale: 1.15, opacity: 1 },\n inActive: { scale: 0.95, opacity: 0.7 },\n}\n\nexport const CarouselItem = ({\n children,\n isActive = false,\n itemWidth = carouselItemWidth,\n itemHeight = carouselItemWidth,\n}: CarouselItemProps) => (\n <motion.div animate={ isActive ? 'active' : 'inActive' } variants={ variants }>\n <Center minW={ `${itemWidth}px` } h={ `${itemHeight}px ` }>\n { children }\n </Center>\n </motion.div>\n)\n","import React from 'react'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Center } from '../center'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { CarouselArrowProps } from './types'\n\nexport const CarouselArrow = ({\n onClick,\n direction,\n ...rest\n}: CarouselArrowProps) => {\n const { arrow } = useMultiStyleConfig('Carousel', {})\n\n return (\n <Center\n sx={ arrow }\n onClick={ onClick }\n { ...rest }\n >\n <IconButton aria-label={ `move carousel to ${direction}` } variant=\"ghost\" size=\"lg\">\n <Icon as={ direction === 'right' ? ChevronRightSolid : ChevronLeftSolid } />\n </IconButton>\n </Center>\n )\n}\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { animate, motion, useMotionValue } from 'framer-motion'\nimport { identity } from 'ramda'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../box'\nimport { HStack } from '../stack'\nimport { Radio, RadioGroup } from '../radio'\nimport { CarouselItem } from './carousel-item'\nimport { CarouselArrow } from './carousel-arrow'\nimport { carouselItemSpacing, carouselItemWidth } from './constants'\nimport { CarouselProps } from './types'\n\n/**\n * Easiely one of the fanciest components, horizontal carousel wrapper for anything\n *\n * @see {@link https://northlight.dev/reference/carousel}\n *\n * @example (Example)\n * The carousel takes up 100% of its parents container width and height.\n * It then renders all children div into a draggable div using framer-motion\n\n * (?\n * +\n *const Item = ({ name, ...rest }) => (\n <Center color=\"white\" bg=\"teal.500\" rounded=\"md\" w=\"full\" h=\"full\" { ...rest }>\n { name }\n </Center>\n)\n\nconst MyCarousel = () => (\n<Box h=\"300px\">\n <Carousel>\n <Item name=\"Item 1\" />\n <Item name=\"Item 2\" />\n <Item name=\"Item 3\" />\n </Carousel>\n</Box>\n\n)\n\nrender(<MyCarousel />)\n *\n * ?)\n *\n * @example (Example)\n * ##Controling the carousel state\n * The carousel takes an **onChange** and value\n * (which is the index of the current active element), meaning it can be controlled.\n *\n * (?\n * +\n * const Item = ({ name, ...rest }) => (\n <Center color=\"white\" bg=\"teal.500\" rounded=\"md\" w=\"full\" h=\"full\" { ...rest }>\n { name }\n </Center>\n)\n\nconst MyCarousel = () => {\n const [index, setIndex ] = useState(0)\n return (\n\n <VStack\n borderColor=\"border.default\"\n borderWidth=\"sm\" borderStyle=\"solid\" p=\"2\" borderRadius=\"lg\">\n <Box w=\"full\" h=\"sm\">\n <Carousel\n showArrows={ false }\n showRadio={ false }\n value={ index }\n onChange={ (v) => setIndex(v) }\n >\n <Item name=\"Item 1\" />\n <Item name=\"Item 2\" />\n <Item name=\"Item 3\" />\n </Carousel>\n </Box>\n <FlipButtonGroup\n onChange={ (v) => setIndex(parseInt(v, 10)) }\n value={ `${index}` }\n variant=\"brand\"\n >\n <FlipButton value=\"0\">One</FlipButton>\n <FlipButton value=\"1\">Two</FlipButton>\n <FlipButton value=\"2\">Three</FlipButton>\n </FlipButtonGroup>\n </VStack>\n )\n}\n*\nrender(<MyCarousel/>)\n * ?)\n *(You can also hide the default\n navigational arrows and radio button using <b>showArrows</b> and\n <b>showRadio</b> as in example)\n */\nexport const Carousel = ({\n children,\n showArrows = true,\n showRadio = true,\n value: controlledIndex = 0,\n onChange = identity,\n itemWidth = carouselItemWidth,\n itemHeight = carouselItemWidth,\n spacing = carouselItemSpacing,\n carouselStyles = {},\n ...rest\n}: CarouselProps) => {\n const [ dragging, setDragging ] = useState(false)\n const [ containerWidth, setContainerWidth ] = useState(0)\n const [ activeIndex, setActiveIndex ] = useState(0)\n const x = useMotionValue(0)\n const { radio, container } = useMultiStyleConfig('Carousel', {})\n\n const childrenAsArray = Children.toArray(children) as JSX.Element[]\n const numberOfChildren = Children.count(children)\n const carouselTotalWidth = itemWidth + spacing\n const totalWidth = carouselTotalWidth * numberOfChildren\n\n const containerRef = useRef<any>(null)\n\n useEffect(() => {\n setContainerWidth(containerRef.current.clientWidth)\n }, [])\n\n const getNewX = () => -(activeIndex * carouselTotalWidth)\n\n const updateActiveIndex = () => {\n setActiveIndex(Math.abs(Math.round(x.get() / carouselTotalWidth)))\n }\n\n useEffect(() => {\n animate(x, getNewX())\n onChange(activeIndex)\n }, [ activeIndex ])\n\n useEffect(() => {\n setActiveIndex(controlledIndex)\n }, [ controlledIndex ])\n\n const handleRightArrowClick = () => {\n setActiveIndex((prev) =>\n (activeIndex === numberOfChildren - 1 ? 0 : prev + 1)\n )\n }\n\n const handleLeftArrowClick = () => {\n setActiveIndex((prev) =>\n (activeIndex === 0 ? numberOfChildren - 1 : prev - 1)\n )\n }\n\n return (\n <Box\n cursor={ dragging ? 'grabbing' : 'grab' }\n onMouseDown={ () => setDragging(true) }\n onMouseUp={ () => setDragging(false) }\n ref={ containerRef }\n pl={ `${(containerWidth - itemWidth) / 2}px` }\n sx={ container }\n { ...rest }\n >\n <motion.div\n drag=\"x\"\n style={ {\n width: `${totalWidth}px`,\n height: '100%',\n x,\n } }\n dragConstraints={ { right: 0, left: -(totalWidth - itemWidth) } }\n onDragEnd={ updateActiveIndex }\n >\n <HStack\n spacing={ `${spacing}px` }\n width={ `${totalWidth}px` }\n h=\"full\"\n { ...carouselStyles }\n >\n { childrenAsArray.map((child, index) => (\n <CarouselItem\n isActive={ index === activeIndex }\n itemWidth={ itemWidth }\n itemHeight={ itemHeight }\n key={ `carousel-item-${index as number}` }\n >\n { child }\n </CarouselItem>\n )) }\n </HStack>\n </motion.div>\n { showRadio && (\n <RadioGroup\n onChange={ (val) => setActiveIndex(parseInt(val, 10)) }\n value={ `${activeIndex}` }\n sx={ radio }\n >\n <HStack>\n { childrenAsArray.map((_child, i) => (\n <Radio\n value={ `${i}` }\n size=\"lg\"\n key={ `carousel-radio-${i as number}` }\n />\n )) }\n </HStack>\n </RadioGroup>\n ) }\n { showArrows && (\n <>\n <CarouselArrow\n direction=\"left\"\n onClick={ handleLeftArrowClick }\n left=\"2\"\n />\n <CarouselArrow\n direction=\"right\"\n onClick={ handleRightArrowClick }\n right=\"2\"\n />\n </>\n ) }\n </Box>\n )\n}\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { merge } from 'ramda'\nimport { getContrastColor } from '../../utils'\n\nexport const searchBarStyles = (\n sx: ChakraStylesConfig<any>\n): ChakraStylesConfig<any> =>\n merge({\n container: (provided) => ({\n ...provided,\n width: '100%',\n color: 'text.default',\n alignSelf: 'center',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isFocused && 'background.select.option-focus',\n _active: {\n background: 'background.select.option-active',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n }),\n downChevron: (provided) => ({\n ...provided,\n color: 'icon.select.default',\n }),\n placeholder: (provided) => ({\n ...provided,\n color: 'text.select.placeholder',\n }),\n multiValue: (provided, state) => {\n const background = state.data.isFixed\n ? 'background.select.option-disabled'\n : state.data.color ?? provided.bgColor\n return {\n ...provided,\n bgColor: background,\n color: getContrastColor(background),\n ...sx.multiValue,\n }\n },\n menuList: (provided) => ({\n ...provided,\n bgColor: 'background.default',\n }),\n } as ChakraStylesConfig<any>, sx)\n","import React from 'react'\nimport {\n ControlProps,\n DropdownIndicatorProps,\n GroupBase,\n MenuProps,\n MultiValueGenericProps,\n OptionProps,\n chakraComponents,\n} from 'chakra-react-select'\nimport { merge } from 'ramda'\nimport { Box } from '../box'\nimport { HStack } from '../stack'\nimport { Icon } from '../icon'\nimport { SearchBarOptionType } from './types'\n\nexport function getComponents<T extends SearchBarOptionType> (\n components?: Record<string, any>\n) {\n return merge(\n {\n Menu: (props: MenuProps<T>) => (\n <Box data-testid=\"select-menu-wrapper-test-id\">\n <chakraComponents.Menu { ...props }>\n { props.children }\n </chakraComponents.Menu>\n </Box>\n ),\n DropdownIndicator: (props: DropdownIndicatorProps<T>) =>\n (props.selectProps.icon ? (\n <chakraComponents.DropdownIndicator { ...props }>\n <Icon as={ props.selectProps.icon } />\n </chakraComponents.DropdownIndicator>\n ) : (\n <chakraComponents.DropdownIndicator { ...props } />\n )),\n Option: (props: OptionProps<T>) =>\n (props.selectProps.customOption ? (\n <chakraComponents.Option { ...props }>\n { props.selectProps.customOption(props.data) }\n </chakraComponents.Option>\n ) : (\n <chakraComponents.Option { ...props } />\n )),\n MultiValueContainer: (\n props: MultiValueGenericProps<T, boolean, GroupBase<T>>\n ) =>\n (props.selectProps.customTag ? (\n <chakraComponents.MultiValueContainer { ...props }>\n { props.selectProps.customTag(props.data) }\n </chakraComponents.MultiValueContainer>\n ) : (\n <chakraComponents.MultiValueContainer { ...props } />\n )),\n Control: ({\n children,\n ...props\n }: ControlProps<T, boolean, GroupBase<T>>) =>\n (props.selectProps.leftComponent ? (\n <chakraComponents.Control { ...props }>\n <HStack w=\"full\" pl=\"2\">\n { props.selectProps.leftComponent }\n <HStack w=\"full\" justify=\"space-between\">\n { children }\n </HStack>\n </HStack>\n </chakraComponents.Control>\n ) : (\n <chakraComponents.Control { ...props }>\n { children }\n </chakraComponents.Control>\n )),\n },\n components || {}\n )\n}\n","import React, { forwardRef, useMemo, useState } from 'react'\nimport {\n AsyncSelect,\n GroupBase,\n InputActionMeta,\n SelectInstance,\n} from 'chakra-react-select'\nimport { filter, identity, is, test, toLower } from 'ramda'\nimport { SearchDuo } from '@northlight/icons'\nimport { createDebounceFunctionInstance } from '../../utils'\nimport { searchBarStyles } from './styles'\nimport { useSelectCallbacks } from '../../hooks'\nimport { Box } from '../box'\nimport { SearchBarOptionType, SearchBarProps } from './types'\nimport { getComponents } from './get-components'\n\nexport const SearchBar = forwardRef(\n <T extends SearchBarOptionType, K extends boolean = false>({\n defaultOptions = [],\n isMulti,\n customOption = null,\n customTag = null,\n sx = {},\n debouncedWaitTime = 200,\n loadOptions: getCustomOptions = null,\n clearInputOnSelect = true,\n closeMenuOnSelect = false,\n onChange = identity,\n onAdd = identity,\n onRemove = identity,\n 'data-testid': testId,\n value,\n onSearchInputChange = identity,\n icon = SearchDuo,\n ...rest\n }: SearchBarProps<T, K>,\n ref: React.Ref<SelectInstance<T, K, GroupBase<T>>>\n ) => {\n const [ filtered, setFiltered ] = useState(defaultOptions)\n const [ filterInput, setFilterInput ] = useState('')\n const debounceFunction = useMemo(\n () => createDebounceFunctionInstance(debouncedWaitTime),\n [ debouncedWaitTime ]\n )\n const handleChange = useSelectCallbacks<T, K>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? value as T[] : [],\n })\n\n const customComponents = useMemo(\n () => getComponents<T>(),\n []\n )\n\n const simpleFilter = (query: string) => {\n if (typeof defaultOptions === 'boolean') return []\n return filter(\n (option: T) =>\n test(new RegExp(toLower(query), 'g'), toLower(option.label)),\n defaultOptions\n )\n }\n const getOptions = async (query: string) => {\n const newOptions = getCustomOptions\n ? await getCustomOptions(query)\n : simpleFilter(query)\n setFiltered((prev) => {\n // If default value is a boolean we want default value to persist to it's initial value\n // this is to allow pre-fetching of values on first render\n if (typeof prev === 'boolean') return prev\n return newOptions\n })\n\n return newOptions\n }\n\n const loadOptions = debounceFunction(async (\n query: string,\n callback: (options: T[]) => void\n ) => {\n const newOptions = await getOptions(query)\n callback(newOptions)\n return []\n })\n\n const resetFiltered = (v: string, { action }: InputActionMeta) => {\n if (clearInputOnSelect || action !== 'set-value') {\n setFilterInput(v)\n onSearchInputChange(v)\n if (v === '') {\n setFiltered(defaultOptions)\n }\n }\n }\n\n return (\n <Box w=\"full\" data-testid={ testId }>\n <AsyncSelect<T, K>\n cacheOptions={ true }\n defaultOptions={ filtered }\n loadOptions={ loadOptions }\n onChange={ handleChange }\n placeholder=\"Search...\"\n chakraStyles={ searchBarStyles(sx) }\n isMulti={ isMulti }\n useBasicStyles={ true }\n selectedOptionStyle=\"check\"\n hideSelectedOptions={ false }\n closeMenuOnSelect={ closeMenuOnSelect }\n isClearable={ false }\n onInputChange={ resetFiltered }\n inputValue={ filterInput }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n ref={ ref }\n value={ value }\n { ...rest }\n />\n </Box>\n )\n }\n)\n","import React, { forwardRef } from 'react'\nimport { FieldValues } from 'react-hook-form'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity, isEmpty } from 'ramda'\nimport { SearchBarFieldProps, SearchBarOptionType } from './types'\nimport { Field } from '../form'\nimport { SearchBar } from './search-bar'\nimport { HStack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\nconst BaseSearchBarField = <T extends SearchBarOptionType, K extends boolean = false> ({\n name,\n label,\n direction = 'column',\n isMulti,\n isRequired,\n validate,\n isClearable = true,\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: SearchBarFieldProps<T, K>, ref: React.Ref<HTMLDivElement>) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <SearchBar\n name={ name }\n isMulti={ isMulti }\n onChange={ (values: FieldValues, event) => {\n onChange(\n isMulti\n ? values\n : values.value\n )\n onChangeCallback(values as T | T[], event)\n } }\n value={ value }\n { ...rest }\n />\n </InputGroupWrapper>\n <IconButton\n aria-label={ `${name}-close-button` }\n variant=\"danger\"\n size=\"lg\"\n fontSize=\"sm\"\n hidden={ isEmpty(value) || !isClearable }\n onClick={ () => onChange([]) }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n\nexport const SearchBarField = forwardRef(BaseSearchBarField)\n","import React from 'react'\nimport { DndContext, DndContextProps } from '@dnd-kit/core'\n\n/**\n * Context used for all drag and drop components\n * (Based on dnd-kit)\n * @see Draggable\n * @see Droppable\n * @see {@link https://northlight.dev}\n * @see {@link https://dndkit.com/}\n *\n */\nexport const DragAndDrop = (props: DndContextProps) => (\n <DndContext { ...props } />\n)\n","import React, { forwardRef } from 'react'\nimport { Tag as ChakraTag } from '@chakra-ui/react'\nimport { TagProps } from './types'\n\n/**\n * Tag component is used for items that need to be labeled,\n * categorized, or organized using keywords that describe them.\n * @see TagGroup\n * @see {@link https://northlight.dev/reference/tag}\n *\n * @example\n * (?\n * <Tag>Hello</Tag>\n * ?)\n *\n * @example\n * (?\n * +\n * const colors = [\"mediatoolBlue\", \"blue\", \"gray\", \"red\", \"green\",\n * \"orange\", \"yellow\", \"teal\", \"purple\", \"pink\"]\n * const variants = [\"solid\", \"subtle\"]\n * const Example = () => {\n * return <Stack>\n * { colors.map((color) => (\n * <HStack spacing={ 4 }>\n * {\n * variants.map((variant) => (\n * <HStack spacing={ 4 }>\n * <Tag size=\"sm\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"xs\">\n* <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"xs\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * <Tag size=\"md\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"md\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"md\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * <Tag size=\"lg\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"lg\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"lg\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * </HStack>\n * ))\n * }\n * </HStack>\n * ))\n * }\n * </Stack>\n * }\n * render(<Example/>)\n * ?)\n *\n *\n*/\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(({\n children,\n variant = 'solid',\n bgColor,\n colorScheme,\n ...rest\n}, ref) => (\n <ChakraTag\n bgColor={ bgColor }\n colorScheme={ colorScheme }\n ref={ ref }\n variant={ variant }\n { ...rest }\n >\n { children }\n </ChakraTag>\n))\n","import React from 'react'\nimport { OverflowIndicatorProps } from './types'\nimport { Tag } from './tag'\n\nexport const OverflowIndicator = ({\n nbrRemainingTags,\n}: OverflowIndicatorProps) => (\n <Tag variant=\"subtle\" minW=\"max-content\">\n +{ nbrRemainingTags }\n </Tag>\n)\n","import React, { useState } from 'react'\nimport { HStack } from '../stack'\nimport { OverflowGroup, useOverflowGroup } from '../overflow-group'\nimport { TagGroupProps } from './types'\nimport { OverflowIndicator as DefaultOverflowIndicator } from './overflow-indicator'\n\n/**\n * Used when rending multiple tags in limited container for responsive layout\n * @see Tag\n * @see {@link https://northlight.dev/reference/tag-group}\n *\n * @example\n * ##Try resizing the window!\n * (?\n <TagGroup w=\"full\"\n borderWidth=\"sm\"\n borderColor=\"border.default\"\n borderStyle=\"solid\"\n p=\"2\"\n borderRadius=\"md\"\n >\n { Array.from({length: 20}, (_, i) => i).map((i) => (\n <Tag w=\"max-content\" key={ i }>Brand-{ i }</Tag>\n )) }\n </TagGroup>\n * ?)\n *\n *\n */\nexport const TagGroup = ({\n children,\n max = Infinity,\n spacing = '2',\n OverflowIndicator = DefaultOverflowIndicator,\n ...rest\n}: TagGroupProps) => {\n const [ nbrRemainingTags, setNbrRemainingTags ] = useState(0)\n const { rect, containerRef } = useOverflowGroup()\n\n return (\n <HStack\n bgColor=\"background.default\"\n ref={ containerRef }\n overflow=\"hidden\"\n { ...rest }\n >\n <HStack spacing={ spacing }>\n <OverflowGroup max={ max } onChange={ setNbrRemainingTags } rect={ rect }>\n { children }\n </OverflowGroup>\n </HStack>\n { nbrRemainingTags > 0 && (\n <OverflowIndicator nbrRemainingTags={ nbrRemainingTags } />\n ) }\n </HStack>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { DotsMatrixSolid } from '@northlight/icons'\nimport { Tag, TagLabel, TagRightIcon } from '../tag'\nimport { Icon } from '../icon'\nimport { DragItemProps } from './types'\n\n/**\n * Default draggable item none other provided in SortableList and MultiSort.\n * Renders a tag which can be used under the DragAndDrop context\n * @see DragAndDrop\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/drag-item}\n *\n * @example (Example)\n * (?\n * <DragItem itemLabel=\"Option 1\" bgColor=\"bg.filled\" />\n * ?)\n *\n */\nexport const DragItem = forwardRef<HTMLSpanElement, DragItemProps>(({\n size = 'md',\n isDragging,\n itemLabel = 'Drag Me',\n bgColor,\n ...rest\n}, ref) => (\n <Tag\n ref={ ref }\n cursor={ isDragging ? 'grabbing' : 'grab' }\n bgColor={ bgColor || (isDragging ? 'blue.200' : undefined) }\n size={ size }\n minW=\"max-content\"\n { ...rest }\n >\n <TagLabel>{ itemLabel }</TagLabel>\n <TagRightIcon>\n <Icon as={ DotsMatrixSolid } />\n </TagRightIcon>\n </Tag>\n)\n)\n","import React, { cloneElement, isValidElement } from 'react'\nimport { useDraggable } from '@dnd-kit/core'\nimport { CSS } from '@dnd-kit/utilities'\nimport { Box } from '../box'\nimport { DraggableProps } from './types'\nimport { DragItem } from './drag-item'\nimport { ring } from '../../utils'\n\n/**\n * Will turn it's childen into a draggable component when under DragAndDrop context\n * @see {@link https://northlight.dev/reference/draggable}\n *\n * @example (Example)\n * ##Basic exapmle\n * (?\n * <DragAndDrop>\n * <HStack>\n * <Draggable id=\"random-id\" />\n * <Draggable />\n * </HStack>\n * </DragAndDrop>\n * ?)\n * <br />\n * (Notice that the id prop is required)\n *\n * @example (Example)\n * ## With custom children\n *\n * (?\n * <DragAndDrop>\n * <Box p=\"4\">\n * <Draggable id=\"random-id\">\n * <Center\n * boxSize=\"3xs\"\n * boxShadow=\"xl\"\n * borderRadius=\"lg\"\n * bgColor=\"bg.overlayer\"\n * >I am draggable</Center>\n * </Draggable>\n * </Box>\n *\n * </DragAndDrop>\n * ?)\n *\n *\n */\nexport const Draggable = ({\n itemLabel,\n children,\n disableDrag = false,\n 'data-testid': dataTestId,\n ...rest\n}: DraggableProps) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n isDragging,\n ...props\n } = useDraggable({ ...rest })\n if (!listeners) {\n return (\n <DragItem itemLabel={ itemLabel } />\n )\n }\n\n const childrenWithDragCursor = isValidElement(children)\n ? cloneElement(children as JSX.Element, {\n cursor: isDragging ? 'grabbing' : 'grab',\n })\n : children\n\n const dragEventListeners = !disableDrag && listeners\n\n return (\n <Box\n ref={ setNodeRef }\n { ...attributes }\n transform={ CSS.Translate.toString(transform) }\n _focusVisible={ ring }\n tabIndex={ disableDrag ? -1 : 0 }\n w=\"max-content\"\n data-testid={ dataTestId }\n { ...dragEventListeners }\n >\n { typeof childrenWithDragCursor === 'function'\n ? childrenWithDragCursor(listeners, props)\n : childrenWithDragCursor || (\n <DragItem isDragging={ isDragging } itemLabel={ itemLabel } />\n ) }\n </Box>\n )\n}\n","import React from 'react'\nimport { useDroppable } from '@dnd-kit/core'\nimport { Box } from '../box'\nimport { Center } from '../center'\nimport { DroppableProps } from './types'\n\n/**\n * Wrapper where you can style a container to place draggable elements\n * @see DropZone\n * @see Draggable\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/droppable}\n *\n * @example (Example)\n * ## Move the item into the container\n * (?\n * () => {\n * const [ isDropped, setIsDropped ] = useState(false)\n * const handleDragEnd = (e) => {\n * setIsDropped(e.over && e.over.id === 'droppable')\n * }\n *\n * return (\n * <DragAndDrop onDragEnd={handleDragEnd}>\n * <HStack>\n * {!isDropped && <Draggable id=\"draggable\" />}\n * <Droppable id=\"droppable\">\n * <Center bgColor=\"bg.filled\" boxSize=\"3xs\">\n * {isDropped ? <Draggable id=\"draggable\"/> : <P>Drop here!</P>}\n * </Center>\n * </Droppable>\n * </HStack>\n *\n * </DragAndDrop>\n *\n * )\n *\n *\n * }\n * ?)\n *\n */\nexport const Droppable = ({\n children,\n 'data-testid': testId,\n ...rest\n}: DroppableProps) => {\n const { setNodeRef, ...props } = useDroppable({\n ...rest,\n })\n return (\n <Box ref={ setNodeRef } data-testid={ testId }>\n { typeof children === 'function'\n ? children(props)\n : children || <Center>Drop here</Center> }\n </Box>\n )\n}\n","import React from 'react'\nimport { SortableContext, SortableContextProps } from '@dnd-kit/sortable'\n\n/**\n * Wrapper that provides context for sortable elements using DnD-kit\n * @see DragAndDrop\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev}\n * @see {@link https://docs.dndkit.com/presets/sortable/sortable-context}\n * @example\n * **<a href=\"https://docs.dndkit.com/presets/sortable/sortable-context\" target=\"_blank\">Read more on dnd-docs</a>**\n * */\nexport const Sortable = (props: SortableContextProps) => (\n <SortableContext { ...props } />\n)\n","import React, { PointerEvent, cloneElement, isValidElement, useRef } from 'react'\nimport { useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { Box } from '../box'\nimport { DragItem } from './drag-item'\nimport { ring } from '../../utils'\nimport { SortableItemProps } from './types'\n\n/**\n * Renders a draggable item under sortable context\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/sortable-item}\n *\n * @example\n * (? <SortableItem id=\"sortable-1\"/> ?)\n * */\nexport const SortableItem = ({\n itemLabel = 'Drag me',\n dblClickThreshold = 300,\n children,\n disableDrag = false,\n 'data-testid': dataTestId,\n ...rest\n}: SortableItemProps) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n ...props\n } = useSortable({ ...rest })\n if (!listeners) {\n return (\n <DragItem itemLabel={ itemLabel } />\n )\n }\n\n const timeStampSnapchot = useRef(0)\n const inEditMode = useRef(false)\n const { onPointerDown, onKeyDown } = listeners\n const handlePointerDown = (e: PointerEvent<Element>) => {\n const elapsedTime = e.timeStamp - timeStampSnapchot.current\n if (elapsedTime > dblClickThreshold) {\n inEditMode.current = true\n onPointerDown(e)\n } else {\n inEditMode.current = false\n }\n timeStampSnapchot.current = e.timeStamp\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>) => {\n if (inEditMode.current) {\n onKeyDown(e)\n }\n }\n\n const style = {\n transform: CSS.Translate.toString(transform),\n transition,\n }\n\n const childrenWithDragCursor = isValidElement(children)\n ? cloneElement(children as JSX.Element, {\n cursor: isDragging ? 'grabbing' : 'grab',\n })\n : children\n\n const dragEventListeners = !disableDrag && {\n onPointerDown: handlePointerDown,\n onKeyDown: handleKeyDown,\n }\n\n return (\n <Box\n ref={ setNodeRef }\n sx={ style }\n { ...attributes }\n _focusVisible={ ring }\n tabIndex={ disableDrag ? -1 : 0 }\n borderRadius=\"tag.default\"\n data-testid={ dataTestId }\n { ...dragEventListeners }\n >\n { (\n typeof childrenWithDragCursor === 'function'\n ? childrenWithDragCursor(listeners, props)\n : childrenWithDragCursor\n ) || <DragItem isDragging={ isDragging } itemLabel={ itemLabel } />\n }\n </Box>\n )\n}\n","import React from 'react'\nimport { DragDuo } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { DragHandleProps } from './types'\n\n/**\n * Util component to display drag handle icon\n * for draggable react components under DragAndDrop context\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/drag-handle}\n *\n * @example (Example)\n * (?\n * <DragHandle />\n * ?)\n */\nexport const DragHandle = ({ icon, isDragging, ...rest }: DragHandleProps) => (\n <Icon\n as={ icon || DragDuo }\n cursor={ isDragging ? 'grabbing' : 'grab' }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Stack } from '../stack'\nimport { Droppable } from './droppable'\nimport { DropZoneProps } from './types'\n\n/**\n * Prestyled droppable area to drop draggable components,\n * you can override the styles of dropzone with sx prop\n * @see Draggable\n * @see Droppable\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/drop-zone}\n *\n * @example (Example)\n * ## You can drop draggable components\n * (?\n * <DragAndDrop>\n * <DropZone name=\"random-id-2\"><Draggable id=\"test\"/></DropZone>\n * </DragAndDrop>\n * ?)\n */\nexport const DropZone = ({ sx = {}, name, children, ...rest }: DropZoneProps) => {\n const { dropZone } = useMultiStyleConfig('DragAndDrop', { sx })\n return (\n <Droppable id={ name }>\n <Stack sx={ dropZone } { ...rest }>\n { children }\n </Stack>\n </Droppable>\n )\n}\n","import React, { useState } from 'react'\nimport {\n DragOverEvent,\n KeyboardSensor,\n PointerSensor,\n UniqueIdentifier,\n rectIntersection,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport { arrayMove, sortableKeyboardCoordinates } from '@dnd-kit/sortable'\nimport { indexOf, insert, keys, remove } from 'ramda'\nimport { DragAndDrop } from './drag-and-drop'\nimport { MultiSortProps } from './types'\n\n/**\n * Util component for sorting items in two dimensions(container and order in container)\n * @see SortableList\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/multi-sort}\n *\n * @example\n * (?\n * () => {\n const [ multiItems, setMultiItems ] = useState({\n container1: [\n 'JavaScript',\n 'Python',\n 'Front end',\n 'Back end',\n ],\n container2: [ 'HTML', 'CSS' ],\n container3: [ 'Chakra UI', 'Next.js', 'Tailwind UI' ],\n })\n return (\n <Stack>\n <MultiSort\n items={ multiItems }\n onChange={ (items) => setMultiItems(items) }\n >\n { (items, activeId) => (\n <HStack alignItems=\"start\">\n <VStack>\n <Heading size=\"sm\">I like</Heading>\n <DropZone name=\"container1\">\n <SortableContainer items={ items.container1 } />\n </DropZone>\n </VStack>\n <VStack>\n <Heading size=\"sm\">I don't like</Heading>\n <DropZone name=\"container2\">\n <SortableContainer items={ items.container2 } />\n </DropZone>\n </VStack>\n <VStack>\n <Heading size=\"sm\">Neutral</Heading>\n <DropZone name=\"container3\">\n <SortableContainer items={ items.container3 } />\n </DropZone>\n </VStack>\n <DragOverlay>\n { activeId ? (\n <DragItem\n itemLabel={ activeId }\n isDragging={ true }\n bgColor=\"background.tag.default\"\n />\n ) : null }\n </DragOverlay>\n </HStack>\n ) }\n </MultiSort>\n <Text>Controlled output: </Text>\n <Code p={ 2 } borderRadius={ 4 }>\n <pre>{ JSON.stringify(multiItems, null, 2) }</pre>\n </Code>\n</Stack>\n )\n * }\n * ?)\n * <br />\n * Multisort abstracts logic away for setting up sortable items between multiple containers,\n * you can then separate, or create and style this containers as you want,\n * by putting them under <Droppable /> or a prestyled <Dropzone />\n\nSortableContainer is a wrapper for a <Sortable /> with a sortable item\n * */\nexport function MultiSort<itemKeys extends string | number | symbol> ({\n items,\n onChange = () => {},\n children,\n collisionDetection,\n sensors,\n}: MultiSortProps<itemKeys>) {\n const [ activeItem, setActiveItem ] = useState<UniqueIdentifier | null>(null)\n\n const moveBetweenContainers = (\n activeContainerName: itemKeys,\n activeIndex: number,\n overContainerName: itemKeys,\n overIndex: number,\n item: string\n ) => ({\n ...items,\n [activeContainerName]: remove(activeIndex, 1, items[activeContainerName]),\n [overContainerName]: insert(overIndex, item, items[overContainerName]),\n })\n\n const customSensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const findContainer = (id: string) =>\n (id in items ? id : keys(items).find((key) => items[key].includes(id)))\n\n const getContainers = (e: DragOverEvent) => {\n const { active, over } = e\n if (!over) return {}\n const { id } = active\n const { id: overId } = over\n\n const activeContainerName = findContainer(id as string) as itemKeys\n const overContainerName = findContainer(overId as string) as itemKeys\n return { activeContainerName, overContainerName, id, overId, active }\n }\n\n const handleDragStart = (e: DragOverEvent) => {\n const {\n active: { id },\n } = e\n setActiveItem(id)\n }\n\n const handleDragOver = (e: DragOverEvent) => {\n const { activeContainerName, overContainerName, id, overId } = getContainers(e)\n\n if (\n !(\n !activeContainerName ||\n !overContainerName ||\n activeContainerName === overContainerName\n )\n ) {\n const activeIndex = indexOf(id, items[activeContainerName])\n const overIndex = indexOf(overId, items[overContainerName])\n onChange(moveBetweenContainers(\n activeContainerName,\n activeIndex,\n overContainerName,\n overIndex,\n id as string\n ))\n }\n }\n\n const handleDragEnd = (e: DragOverEvent) => {\n const { activeContainerName, overContainerName, id, overId, active } = getContainers(e)\n\n if (!activeContainerName || !overContainerName) return\n\n const activeIndex = indexOf(id, items[activeContainerName])\n const overIndex = indexOf(overId, items[overContainerName])\n\n if (activeContainerName === overContainerName) {\n onChange({\n ...items,\n [overContainerName]: arrayMove(\n items[overContainerName],\n activeIndex,\n overIndex\n ),\n })\n } else {\n onChange(moveBetweenContainers(\n activeContainerName,\n activeIndex,\n overContainerName,\n overIndex,\n active?.id as string\n ))\n }\n }\n\n return (\n <DragAndDrop\n sensors={ sensors || customSensors }\n onDragStart={ handleDragStart }\n onDragOver={ handleDragOver }\n onDragEnd={ handleDragEnd }\n collisionDetection={ collisionDetection || rectIntersection }\n >\n { typeof children === 'function' ? children(items, activeItem) : children }\n </DragAndDrop>\n )\n}\n","import React, { useMemo, useState } from 'react'\nimport {\n DragOverEvent,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n UniqueIdentifier,\n rectIntersection,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n rectSortingStrategy,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable'\nimport { identity, indexOf, map } from 'ramda'\nimport { DragAndDrop } from './drag-and-drop'\nimport { Sortable } from './sortable'\nimport { SortableItem } from './sortable-item'\nimport { DragItem } from './drag-item'\nimport { SortableListProps } from './types'\n\n/**\n * Util component to render sortable items under sortable context\n * @see SortableItem\n * @see Sortable\n * @see {@link https://northlight.dev/reference/sortable-list}\n *\n * @example (Example)\n * ## You can render any layout of sortable components, for example grid:\n * (?\n * () => {\n * const [items, setItems] = useState(Array.from({length: 100}, (_, i) => i))\n * return (\n * <Stack>\n<SimpleGrid minChildWidth=\"50px\" spacing={ 4 }>\n <SortableList\n items={ items }\n onChange={ (items) => setItems(items) }\n />\n</SimpleGrid>\n <Code p={ 2 } borderRadius={ 4 }>\n { JSON.stringify(items, null, 2) }\n </Code>\n </Stack>\n * )}\n * ?)\n *\n * @example (Example)\n * ### With custom component\n * (?\n * () => {\n * const [items, setItems] = useState([ { name: 'item1' }, { name: 'item2' }, { name: 'item3' } ])\n * return (\n * <Stack>\n *\n * <SortableList\n items={ items }\n createKey={ (item) => item.name }\n disableDrag={ true }\n onChange={setItems}\n>\n { ({ name }, listeners, { isOver }) => (\n <HStack>\n <DragHandle { ...listeners } isDragging={ isOver } />\n <Input defaultValue={ name } />\n </HStack>\n ) }\n</SortableList>\n</Stack>\n )}\n * ?)\n<br />\nIf disableDrag=false, then when the user double clicks it will trigger\nthe default behaviour of the rendered component instead of the dragging,\n you can adjust the threshold with dblClickThreshold, default is 300ms\n *\n *\n */\nexport function SortableList<T> ({\n children,\n items,\n collisionDetection,\n createKey = identity as (t: T) => UniqueIdentifier,\n strategy,\n onChange = () => {},\n onMovedItem = identity,\n displayOverlay = false,\n sensors,\n dblClickThreshold = 300,\n disableDrag = false,\n modifiers,\n}: SortableListProps<T>) {\n const [ activeItem, setActiveItem ] = useState<UniqueIdentifier | null>(null)\n\n const identifierItems = useMemo(() => map(createKey, items), [ items ])\n\n const customSensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const handleDragStart = (event: DragOverEvent) => {\n const {\n active: { id },\n } = event\n setActiveItem(id)\n }\n\n const handleDragEnd = (event: DragOverEvent) => {\n const { active, over } = event\n if (active && over && active.id !== over.id) {\n const prevIds = map(createKey, items)\n const oldIndex = indexOf(active.id, prevIds)\n const newIndex = indexOf(over.id, prevIds)\n onMovedItem({ item: items[oldIndex], oldIndex, newIndex })\n const newItems = arrayMove(items, oldIndex, newIndex)\n onChange(newItems)\n }\n }\n\n return (\n <DragAndDrop\n sensors={ sensors || customSensors }\n collisionDetection={ collisionDetection || rectIntersection }\n onDragStart={ handleDragStart }\n onDragEnd={ handleDragEnd }\n modifiers={ modifiers }\n >\n <Sortable\n items={ identifierItems }\n strategy={ strategy || rectSortingStrategy }\n >\n { items.map((item, index) => {\n const id = createKey(item)\n return (\n <SortableItem\n key={ id }\n id={ id }\n itemLabel={ id }\n dblClickThreshold={ dblClickThreshold }\n disableDrag={ disableDrag }\n >\n { (listeners, props) =>\n (typeof children === 'function'\n ? children(item, listeners, props, index)\n : children)\n }\n </SortableItem>\n )\n }) }\n </Sortable>\n { displayOverlay && (\n <DragOverlay>\n { activeItem ? <DragItem itemLabel={ activeItem } /> : null }\n </DragOverlay>\n ) }\n </DragAndDrop>\n )\n}\n","import React from 'react'\nimport { rectSortingStrategy } from '@dnd-kit/sortable'\nimport { Sortable } from './sortable'\nimport { SortableItem } from './sortable-item'\nimport { SortableContainerProps } from './types'\n\n/**\n * Used with multi sort to render a sortable list inside a droppable\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/sortable-container}\n *\n * @example\n * (?\n * <SortableContainer items={['item 1', 'item 2', 'item 3']} />\n * ?)\n *\n */\nexport const SortableContainer = ({ children, items, strategy }: SortableContainerProps) => (\n <Sortable items={ items } strategy={ strategy || rectSortingStrategy }>\n { items.map((id) => (\n <SortableItem key={ id } id={ id } itemLabel={ id }>\n { typeof children === 'function' ? children(id) : children }\n </SortableItem>\n )) }\n </Sortable>\n)\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeList } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastListProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized stacked layout\n * @see FastGrid\n * @see {@link https://northlight.dev/reference/fast-list}\n *\n * @example (Example)\n * (?\n * <Box h=\"500px\" w=\"300p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastList itemCount={ 10000 } itemSize={ 30 } overscanCount={ 100 }>\n { (index) => `item-${index}` }\n </FastList>\n</Box>\n * ?)\n *\n */\nexport const FastList = forwardRef(({\n itemCount,\n itemSize,\n direction = 'column',\n children,\n width,\n height,\n overscanCount = 0,\n initialScrollOffset,\n ...rest\n}: FastListProps, ref: LegacyRef<VariableSizeList<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeList\n itemCount={ itemCount }\n itemSize={ typeof itemSize === 'number' ? (_index) => itemSize : itemSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n layout={ direction === 'column' ? 'vertical' : 'horizontal' }\n initialScrollOffset={ initialScrollOffset }\n overscanCount={ overscanCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, index }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(index) : children }\n </div>\n ) }\n </VariableSizeList>\n ) }\n </AutoSizer>\n))\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeGrid } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastGridProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized html grid layout\n * @see FastList\n * @see {@link https://northlight.dev/reference/fast-grid}\n *\n * @example (Example)\n * ## Simple example\n * (?\n * <Box h=\"500px\" w=\"full\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 100 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n { (rowIndex, columnIndex) => `[${rowIndex}, ${columnIndex}]` }\n </FastGrid>\n </Box>\n *\n * ?)\n *\n * @example (Example)\n * ## Spreadsheet example\n * (?\n * +\n *\nconst getCell = (rowIndex, columnIndex) => {\n if (rowIndex === 0 && columnIndex === 0) return ''\n if (rowIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Col { columnIndex }\n </Lead>\n )\n }\n if (columnIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Row { rowIndex }\n </Lead>\n )\n }\n return (\n <TextField name={ `${rowIndex}-${columnIndex}` } />\n )\n}\n *\n * const MyGrid = () => {\n * const [values, setValues ] = useState({})\n * return(\n * <Form initialValues={{}}>\n * {({getValues}) => (\n * <Stack>\n * <Box h=\"500px\" w=\"500p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 50 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n {getCell}\n </FastGrid>\n</Box>\n<Button onClick={() => setValues(getValues())} variant=\"success\">Save</Button>\n<Code> <pre>{JSON.stringify(values, null, 2)}</pre></Code>\n</Stack>\n * )}\n </Form>\n * )}\n\nrender(<MyGrid />)\n *\n *\n * ?)\n * **(Note, FastGrid must be wrapped in a parent element with set height and width!)**\n *\n*/\nexport const FastGrid = forwardRef(({\n columns,\n rows,\n columnSize,\n rowSize,\n children,\n width,\n height,\n overscanRowCount = 0,\n overscanColumnCount = 0,\n ...rest\n}: FastGridProps, ref: LegacyRef<VariableSizeGrid<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeGrid\n rowCount={ rows }\n columnCount={ columns }\n columnWidth={ typeof columnSize === 'number' ? (_index) => columnSize : columnSize }\n rowHeight={ typeof rowSize === 'number' ? (_index) => rowSize : rowSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n overscanRowCount={ overscanRowCount }\n overscanColumnCount={ overscanColumnCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, rowIndex, columnIndex }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(rowIndex, columnIndex) : children }\n </div>\n ) }\n </VariableSizeGrid>\n ) }\n </AutoSizer>\n))\n","import React from 'react'\nimport { CheckDuo, EditDuo, XCloseSolid } from '@northlight/icons'\nimport {\n HStack,\n useEditableControls,\n useEditableState,\n useMultiStyleConfig,\n} from '@chakra-ui/react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { EditableControlsProps } from './types'\nimport { ButtonVariants } from '../button/types'\n\ntype MapVariantTypes = Record<EditableControlsProps['variant'], ButtonVariants>\n\nconst mapEditableVariantsToButtonSubmitVariants: MapVariantTypes = {\n brand: 'brand',\n default: 'success',\n}\n\nconst mapEditableVariantsToButtonCancelVariants: MapVariantTypes = {\n brand: 'ghost',\n default: 'danger',\n}\n\nexport const EditableControls = ({ size, variant = 'default' }: EditableControlsProps) => {\n const {\n getSubmitButtonProps,\n getCancelButtonProps,\n } = useEditableControls()\n\n const { onEdit, isEditing } = useEditableState()\n\n const { button, icon, controls } = useMultiStyleConfig('EditableText', { size, isEditing })\n\n return (\n <HStack spacing={ 1 } sx={ controls }>\n { isEditing\n ? (\n <>\n <IconButton\n aria-label=\"Cancel\"\n sx={ button }\n variant={ mapEditableVariantsToButtonCancelVariants[variant] }\n { ...getCancelButtonProps() }\n >\n <Icon sx={ icon } as={ XCloseSolid } />\n </IconButton>\n <IconButton\n aria-label=\"Save\"\n sx={ button }\n variant={ mapEditableVariantsToButtonSubmitVariants[variant] }\n { ...getSubmitButtonProps() }\n >\n <Icon sx={ icon } as={ CheckDuo } />\n </IconButton>\n </>\n )\n : (\n <IconButton\n aria-label=\"Edit\"\n variant=\"ghost\"\n sx={ button }\n onClick={ onEdit }\n >\n <Icon sx={ icon } as={ EditDuo } />\n </IconButton>\n )\n }\n </HStack>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Input, InputGroup, InputLeftElement, InputRightElement } from '../input'\nimport { EditableInput as ChakraEditableInput, Editable, EditablePreview } from '../editable'\nimport { EditableProps } from './types'\nimport { EditableControls } from './editable-controls'\n\n/**\n * Used to safely modify text with default or previousely set value\n * @see {@link https://northlight.dev/reference/editable-text}\n *\n * @example (Example)\n * ##Edit password\n * (?\n * () => {\n * const [v, setV] = useState('123456789')\n * return (\n * <Box p=\"2\">\n * <EditableText value={v} onSubmit={setV} leftItem={<Icon as={LockDuo} />}/>\n * </Box>\n * )\n * }\n * ?)\n *\n * @example (Example)\n * ## Other notes\n <p>\n Pressing <b>ESC</b> or clicking on the\n <b> red icon</b> will delete the changes and go back to the original state\n </p>\n <p>\n Pressing <b>ENTER</b> or clicking on the\n <b> green icon</b> will save the changes internally and fire the{ ' ' }\n <Code>onSubmit</Code> callback.\n </p>\n *\n */\nexport const EditableText = ({\n size = 'md',\n value: inputValue,\n onSubmit,\n leftItem,\n variant = 'default',\n ...rest\n}: EditableProps) => {\n const [ value, setValue ] = useState(inputValue)\n const { input, preview } = useMultiStyleConfig('EditableText', { size, value })\n\n useEffect(() => {\n setValue(inputValue)\n }, [ inputValue ])\n\n return (\n <Editable\n isPreviewFocusable={ true }\n selectAllOnFocus={ false }\n value={ value }\n onChange={ (newValue) => setValue(newValue) }\n onSubmit={ onSubmit }\n { ...rest }\n >\n <InputGroup size={ size }>\n { leftItem && (\n <InputLeftElement>\n { leftItem }\n </InputLeftElement>\n ) }\n <Input\n as={ EditablePreview }\n sx={ preview }\n />\n <Input\n as={ ChakraEditableInput }\n size={ size }\n sx={ input }\n />\n <InputRightElement sx={ { width: 'min-content' } }>\n <EditableControls size={ size } variant={ variant } />\n </InputRightElement>\n </InputGroup>\n </Editable>\n )\n}\n","import { Modal as ChakraModal, ModalCloseButton, ModalContent, ModalOverlay } from '@chakra-ui/react'\nimport React from 'react'\nimport { ModalProps } from './types'\n\nexport const ModalBase = ({\n isCentered = true,\n children,\n ...rest\n}: ModalProps) => (\n <ChakraModal\n isCentered={ isCentered }\n scrollBehavior=\"inside\"\n motionPreset=\"slideInBottom\"\n { ...rest }\n >\n <ModalOverlay />\n <ModalContent data-testid=\"modal-test-id\">\n <ModalCloseButton data-testid=\"modal-test-button-id\" />\n { children }\n </ModalContent>\n </ChakraModal>\n)\n","import React from 'react'\nimport { ModalProps } from './types'\nimport { ModalBase } from './modal-base'\n\n/**\n * @see {@link https://northlight.dev/reference/modal}\n *\n * */\n\nexport const Modal = ({\n stayMountedOnClose = false,\n isOpen,\n ...rest\n}: ModalProps) => (\n <>\n { (stayMountedOnClose || isOpen) && <ModalBase isOpen={ isOpen } { ...rest } /> }\n </>\n)\n","import React from 'react'\nimport { ModalBody as ChakraModalBody, ModalBodyProps } from '@chakra-ui/react'\n\nexport const ModalBody = (props: ModalBodyProps) => (\n <ChakraModalBody minH={ props.h } maxH={ props.h } { ...props } />\n)\n","import React, { forwardRef, useState } from 'react'\nimport AvatarEditor from 'react-avatar-editor'\nimport { ZoomInDuo } from '@northlight/icons'\nimport { EditableText } from '../editable-text'\nimport { Icon } from '../icon'\nimport { HStack, Stack } from '../stack'\nimport { Box } from '../box'\nimport { Button } from '../button'\nimport { Slider, SliderFilledTrack, SliderThumb, SliderTrack } from '../slider'\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '../modal'\nimport { FormLabel } from '../form-control'\nimport { FileEditorModalProps } from './types'\n\nexport const FileEditorModal = forwardRef(({\n fileName,\n setFileName,\n isOpen,\n onClose,\n image = '',\n handleCrop,\n isImage,\n canEditFileName = true,\n canCropImage = false,\n ...rest\n}: FileEditorModalProps, ref: any) => {\n const [ zoomLevel, setZoomLevel ] = useState(1)\n const [ position, setPosition ] = useState({ x: 0.5, y: 0.5 })\n\n const handleClose = () => {\n setZoomLevel(1)\n onClose()\n }\n\n return (\n <Modal\n isOpen={ isOpen }\n onClose={ onClose }\n closeOnOverlayClick={ false }\n { ...rest }\n >\n <ModalHeader>Edit { isImage ? 'image' : 'file' }</ModalHeader>\n <ModalBody\n display=\"flex\"\n justifyContent=\"start\"\n flexDirection=\"column\"\n alignItems=\"center\"\n gap={ 4 }\n minH=\"300px\"\n >\n <Stack display={ isImage && canCropImage ? 'inherit' : 'none' }>\n <AvatarEditor\n ref={ ref }\n image={ image || '' }\n onPositionChange={ (pos) => setPosition(pos) }\n position={ position }\n width={ 250 }\n height={ 250 }\n border={ 50 }\n color={ [ 255, 255, 255, 0.7 ] }\n scale={ zoomLevel }\n rotate={ 0 }\n />\n <HStack w=\"90%\">\n <FormLabel>Zoom</FormLabel>\n <Slider\n aria-label=\"zoom\"\n defaultValue={ zoomLevel }\n maxW=\"50%\"\n min={ 0.1 }\n step={ 0.05 }\n max={ 10 }\n onChange={ (value) => setZoomLevel(value) }\n >\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb boxSize={ 6 }>\n <Icon as={ ZoomInDuo } />\n </SliderThumb>\n </Slider>\n </HStack>\n\n </Stack>\n { canEditFileName && (\n <Stack w=\"90%\" direction={ isImage ? 'row' : 'column' } pt={ 2 }>\n <FormLabel>Name the file:</FormLabel>\n <Box maxW=\"50%\">\n <EditableText onSubmit={ (v) => setFileName(v) } value={ fileName } size=\"sm\" />\n </Box>\n </Stack>\n ) }\n </ModalBody>\n <ModalFooter>\n <HStack>\n <Button variant=\"danger\" onClick={ handleClose }>\n Cancel\n </Button>\n <Button variant=\"success\" onClick={ handleCrop }>\n Save\n </Button>\n </HStack>\n </ModalFooter>\n </Modal>\n )\n})\n","import React from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '../modal'\nimport { Button } from '../button'\nimport { ConfirmDeleteModalProps } from './types'\n\nexport const ConfirmDeleteModal = ({\n isOpen,\n onClose,\n confirmDelete,\n fileName,\n ...rest\n}: ConfirmDeleteModalProps) => {\n const handleDelete = () => {\n confirmDelete()\n onClose()\n }\n\n return (\n <Modal isOpen={ isOpen } onClose={ onClose } { ...rest }>\n <ModalHeader\n sx={ { fontSize: 'lg' } }\n overflow=\"hidden\"\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n pr={ 16 }\n >\n Delete { fileName }\n </ModalHeader>\n <ModalBody>\n Deleting this file is a permanent action. You will not be able to\n recover this file at a later time.\n </ModalBody>\n <ModalFooter>\n <Button variant=\"danger\" onClick={ handleDelete }>\n Delete\n </Button>\n </ModalFooter>\n </Modal>\n )\n}\n","export const updateTimeThreshold = 0.5\nexport const animationSlideTime = 250\n","import React, { forwardRef } from 'react'\nimport {\n Progress as ChakraProgress,\n ProgressProps as ChakraProgressProps,\n} from '@chakra-ui/react'\nimport { animationSlideTime } from './constants'\n\nexport interface ProgressBarProps extends ChakraProgressProps {\n animationSlideTimeMs?: number\n}\n\n/**\n * @see {@link https:/northlight/reference/progress-bar}\n *\n * @example\n * (?\n * <ProgressBar value={40} />\n * ?)\n */\nexport const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(\n ({ animationSlideTimeMs = animationSlideTime, sx, ...props }, ref) => (\n <ChakraProgress\n ref={ ref }\n width=\"full\"\n height=\"1a\"\n borderRadius=\"full\"\n sx={ {\n '>[role=\"progressbar\"]': {\n transition: `width ${animationSlideTimeMs}ms ease-out`,\n },\n ...sx,\n } }\n { ...props }\n />\n )\n)\n","export const formattedTime = (seconds: number) => {\n let baseString = ''\n const hours = Math.floor(seconds / 3600)\n if (hours > 0) {\n baseString += ` ${hours}h`\n }\n const minutes = Math.floor((seconds - hours * 3600) / 60)\n if (minutes > 0) {\n baseString += ` ${minutes}min`\n }\n const newSeconds = Math.floor(seconds - hours * 3600 - minutes * 60)\n if (newSeconds > 0) {\n baseString += ` ${newSeconds}s`\n }\n\n return baseString\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { ProgressBar } from './progress-bar'\nimport { VStack } from '../stack'\nimport { Small } from '../typography'\nimport { formattedTime } from './utils'\nimport { Fade } from '../transitions'\nimport { LoadingBarProps } from './types'\nimport { animationSlideTime, updateTimeThreshold } from './constants'\n\n/**\n * @see {@link https:/northlight/reference/loading-bar}\n *\n * @example\n * (?\n * () => {\n const [ progress, setProgress ] = useState(0)\n if (progress > 1 && buffer) {\n clearInterval(buffer)\n buffer = null\n }\n\n const handleClick = () => {\n setProgress(0)\n buffer = setInterval(\n () => setProgress((prev) => prev + Math.random() * 0.1),\n Math.random() * 300 + 200\n )\n }\n return (\n <Stack>\n <LoadingBar loaded={ progress } hideDisplay={true}/>\n <Button onClick={ handleClick }>Start Loading</Button>\n </Stack>\n )\n * }\n * ?)\n *\n */\nexport const LoadingBar = ({\n loaded,\n onLoadEnd = () => {},\n hideDisplay = true,\n ...rest\n}: LoadingBarProps) => {\n const ref = useRef<HTMLDivElement>(null)\n const timeRef = useRef<number>(0)\n const progress = Math.max(0, Math.min(loaded, 1))\n const [ timeLeft, setTimeLeft ] = useState(0)\n\n useEffect(() => {\n if (ref.current) {\n (ref.current.children[0] as HTMLDivElement).style.width = `${progress * 100}%`\n }\n\n if (timeRef.current) {\n const deltaTime = timeRef.current\n ? (Date.now() - timeRef.current) / 1000\n : 0\n if (deltaTime > updateTimeThreshold) {\n const newEstimate = progress !== 0 ? deltaTime / progress : 0\n setTimeLeft(Math.round(newEstimate - deltaTime))\n }\n } else if (progress > 0) {\n timeRef.current = Date.now()\n }\n }, [ progress ])\n\n return (\n <Fade\n in={ progress < 1 }\n enterDuration={ 1 }\n exitDelay={ 250 }\n exitDuration={ 1000 }\n hideDisplay={ hideDisplay }\n onTransitionComplete={ () => {\n if (progress >= 1) {\n onLoadEnd()\n }\n } }\n >\n <VStack { ...rest }>\n <Small>\n { Math.round(progress * 100) }%{ ' ' }\n { !!timeLeft && `· ${formattedTime(timeLeft)} left` }\n </Small>\n <ProgressBar\n ref={ ref }\n animationSlideTimeMs={ animationSlideTime }\n />\n </VStack>\n </Fade>\n )\n}\n","export const fiveHundredMB = 5.24288E8\nexport const imageLazyThreshold = 1.572854E7\nexport const defaultEditOptions = {\n canEdit: true,\n canEditImage: true,\n canEditName: true,\n}\n","import {\n all,\n difference,\n has,\n intersection,\n isEmpty,\n last,\n split,\n test,\n trim,\n} from 'ramda'\nimport { imageLazyThreshold } from './constants'\nimport {\n FileFormat,\n FileWithSizeAndType,\n FileWithSrcNameType,\n FileWithType,\n} from './types'\n\nexport const getResizingFactor = (\n imgWidth: number,\n imgHeight: number,\n maxWidth: number,\n maxHeight: number\n) => Math.min(1, Math.min(maxWidth / imgWidth, maxHeight / imgHeight))\n\nexport const convertBlobToFile = (\n blob: Blob,\n name: string,\n type: string\n) => new File([ blob ], name, { type })\n\nexport const compressImage = (\n file: File,\n maxWidth = 3000,\n maxHeight = 3000,\n quality = 0.75\n) => {\n const canvas = document.createElement('canvas')\n const context = canvas.getContext('2d')\n if (!context) return file\n\n const imageBuffer = new Image()\n imageBuffer.src = URL.createObjectURL(file as File)\n\n return new Promise((resolve) => {\n imageBuffer.onload = () => {\n const resizingFactor = getResizingFactor(\n imageBuffer.width,\n imageBuffer.height,\n maxWidth,\n maxHeight\n )\n const scaledWidth = imageBuffer.width * resizingFactor\n const scaledHeight = imageBuffer.height * resizingFactor\n canvas.width = scaledWidth\n canvas.height = scaledHeight\n context.drawImage(imageBuffer, 0, 0, scaledWidth, scaledHeight)\n canvas.toBlob(\n (blob) => {\n if (file && blob) {\n const newImage = convertBlobToFile(blob, file.name, file.type)\n resolve(newImage)\n } else {\n resolve(file)\n }\n },\n 'image/jpeg',\n quality\n )\n }\n })\n}\n\nexport const readableFileSize = (size: number) => {\n if (size <= 0) return 0\n const i = Math.floor(Math.log(size) / Math.log(1024))\n return `${(size / 1024 ** i).toFixed(1)} ${\n [ 'B', 'kB', 'MB', 'GB', 'TB' ][i]\n }`\n}\n\nexport const getImageAsFile = async <T extends FileWithSrcNameType>(\n image: T,\n name?: string\n): Promise<File> =>\n fetch(image.src as string)\n .then((res) => res.blob())\n .then(\n (blob) =>\n new Promise((resolve) => {\n const newImage = convertBlobToFile(blob, name || image.name, image.type)\n resolve(newImage)\n })\n )\n\nconst getFormatsAsArray = (acceptFormat: string) =>\n split(',', acceptFormat)\n .map((format) => trim(format))\n\nexport const getAcceptedExtensions = (acceptFormat: string) =>\n getFormatsAsArray(acceptFormat)\n .filter((format) => test(/^\\./, format))\n .map((format) => format.substring(1))\n\nexport const getAcceptedFormats = (acceptFormat: string) =>\n getFormatsAsArray(acceptFormat)\n .filter((format) => test(/\\//, format))\n .map((format) => split('/', format)[0])\n\nconst getFileExtension = <T extends FileWithType> (file: T) => last(split('/', file.type)) as string\n\nconst getFileFormat = <T extends FileWithType> (file: T) => split('/', file.type)[0]\n\nexport const validFileFormat = <T extends FileWithType> (\n file: T,\n acceptFormat: string\n) => (\n acceptFormat === '*'\n|| getAcceptedFormats(acceptFormat).includes(getFileFormat(file))\n|| getAcceptedExtensions(acceptFormat).includes(getFileExtension(file))\n )\n\nexport const isValidFile = <T extends FileWithSizeAndType> (\n file:T,\n acceptFormat: string,\n maxFileSize: number\n) => {\n const isValid =\n file.size as number < maxFileSize\n && validFileFormat(file, acceptFormat)\n\n return {\n isValid,\n errorMessage: file.size as number > maxFileSize\n ? 'File size is too big'\n : isValid\n ? ''\n : 'File format not supported',\n }\n}\n\nexport function getNewUploadingFiles<T extends FileFormat> (\n prev: T[],\n curr: T[],\n files: T[]\n) {\n let buffer = prev\n const prevIDs = prev ? prev.map((file) => file.name) : null\n const currentIDs = curr ? curr.map((file) => file.name) : null\n const removedItemsIDs =\n prevIDs && currentIDs && difference(prevIDs, currentIDs)\n const filesIDs = files.map((file) => file.name)\n\n if (removedItemsIDs) {\n if (\n removedItemsIDs.length === 0 ||\n intersection(removedItemsIDs, filesIDs).length > 0\n ) {\n buffer = curr\n } else {\n buffer.forEach((value, index) => {\n if (removedItemsIDs.includes(value.name)) {\n const updatedData = { ...value,\n uploaded: has('size', value) ? value.size : 0 }\n buffer[index] = updatedData\n }\n }\n )\n }\n } else {\n buffer = curr\n }\n return buffer\n}\n\nexport const generateId = () => Math.random().toString().substring(3)\n\nexport const isFile = (file: any) => 'File' in window && file instanceof File\n\nexport const isFileImage = <T extends FileWithType>(file: T) => {\n if (isFile(file)) {\n return getFileFormat(file) === 'image'\n }\n switch (getFileFormat(file)) {\n case 'image':\n case 'jpeg':\n case 'jpg':\n case 'png':\n case 'gif':\n case 'tiff':\n case 'jfif':\n return true\n default:\n return false\n }\n}\n\nexport const onlyAcceptsImages = (acceptFormat: string) => {\n if (acceptFormat === '*' || acceptFormat === '') {\n return false\n }\n const formats = getAcceptedFormats(acceptFormat)\n const extensions = getAcceptedExtensions(acceptFormat)\n\n const premiseOne = isEmpty(formats) || all((type: string) => type === 'image', formats)\n\n const premiseTwo = isEmpty(extensions)\n || all((type: string) => isFileImage({ type }), extensions)\n\n return premiseOne && premiseTwo\n}\n\nexport const createFileObject = <T extends FileFormat>(file: File): T => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: null,\n src: null,\n type: file.type,\n name: file.name,\n isUploading: true,\n isLazy: file.size > imageLazyThreshold && isFileImage(file),\n }\n return fileObject as T\n}\n\nexport const createPreviewFileObject = <T extends FileFormat>(file: File): T => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: file.size,\n src: URL.createObjectURL(file),\n type: file.type,\n name: file.name,\n isUploading: false,\n isLazy: false,\n }\n return fileObject as T\n}\n\nexport const createFileObjectFromSrc = <T extends FileWithSrcNameType>(file: T) => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: null,\n src: file.src,\n type: file.type,\n name: file.name,\n isUploading: false,\n isLazy: false,\n }\n return fileObject\n}\n\nexport const isOverflowing = (element: Element) => (element\n ? element.scrollHeight > element.clientHeight\n : false\n)\n\nexport const toBase64 = (file: File): Promise<string> => new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.readAsDataURL(file)\n reader.onload = () => resolve(reader.result as string)\n reader.onerror = (error) => reject(error)\n})\n\nconst correctFileExtension = (str: string) => test(/./g, str)\n\nconst getFileFormattedName = (file: File | FileFormat) => (correctFileExtension(file.name)\n ? file.name\n : `${file.name}.${getFileExtension(file)}`)\nexport const handleDownload = (file:\nFile | FileFormat | null | string | FileFormat\n) => () => {\n if (!file) return\n const anchor = document.createElement('a')\n anchor.href = isFile(file) ? URL.createObjectURL(file as File) : (file as FileFormat).src || ''\n anchor.download = isFile(file)\n ? 'downloaded-file.jpg'\n : getFileFormattedName(file as File)\n anchor.click()\n}\n","import React from 'react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { FileIconButtonProps } from './types'\n\nexport const FileIconButton = ({\n icon,\n color = 'unset',\n ...rest\n}: FileIconButtonProps) => (\n <IconButton variant=\"ghost\" size=\"sm\" { ...rest }>\n <Icon as={ icon } boxSize=\"24px\" color={ color } />\n </IconButton>\n)\n","import React, { DragEvent, useEffect, useRef, useState } from 'react'\nimport { Fade, SlideFade, useMultiStyleConfig } from '@chakra-ui/react'\nimport {\n DownloadDuo,\n EditBoxDuo,\n FileBlankDuo,\n Image03Solid,\n TrashFullDuo,\n UploadCloudSolid,\n} from '@northlight/icons'\nimport { identity } from 'ramda'\nimport AvatarEditor from 'react-avatar-editor'\nimport { FileEditorModal } from './file-editor-modal'\nimport { ConfirmDeleteModal } from './confirm-delete-modal'\nimport { Icon } from '../icon'\nimport { Lead, P } from '../typography'\nimport { HStack, Stack } from '../stack'\nimport { FilePickerProps } from './types'\nimport { Input } from '../input'\nimport { Box } from '../box'\nimport { LoadingBar } from '../progress'\nimport { Spinner } from '../spinner'\nimport { Image } from '../image'\nimport { Clickable } from '../clickable'\nimport { useDisclosure } from '../../hooks'\nimport {\n compressImage,\n convertBlobToFile,\n handleDownload,\n isFile,\n isFileImage,\n isValidFile,\n onlyAcceptsImages,\n readableFileSize,\n} from './utils'\nimport { FileIconButton } from './file-icon-button'\nimport { defaultEditOptions, fiveHundredMB } from './constants'\nimport { useCurrentTheme } from '../../utils'\n\n/**\n * Lets user import file of any type as Javascript File Object\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/reference/file-picker}\n *\n * @example (Example)\n * (?\n * <FilePicker />\n * ?)\n *\n *\n */\nexport const FilePicker = ({\n acceptFormat = '*',\n onChange = identity,\n compression,\n uploaded: uploadedInitial = 0,\n maxFileSize = fiveHundredMB,\n showProgress = false,\n value = '',\n loadWithSpinner = false,\n confirmDelete = false,\n editFileOptions = defaultEditOptions,\n sx = {},\n ...rest\n}: FilePickerProps) => {\n const fileInputRef = useRef<HTMLInputElement>(null)\n const imageEditorRef = useRef<AvatarEditor>(null)\n const [ file, setFile ] = useState<File | null | string>(value)\n\n const [ isInvalid, setIsInvalid ] = useState(false)\n const [ name, setName ] = useState('')\n const editModal = useDisclosure()\n const deleteModal = useDisclosure()\n const [ editable, setEditable ] = useState(false)\n const [ hasLoaded, setHasLoaded ] = useState(false)\n const [ isLoading, setIsLoading ] = useState(false)\n const [ isImage, setIsImage ] = useState(true)\n const [ uploaded, setUploaded ] = useState(uploadedInitial)\n\n const onlyImageAccepted = onlyAcceptsImages(acceptFormat)\n\n const isUploading = uploaded < 1\n\n useEffect(() => {\n setUploaded(uploadedInitial)\n }, [ uploadedInitial ])\n\n useEffect(() => {\n if (!isUploading) {\n setIsLoading(false)\n setHasLoaded(true)\n }\n }, [ isUploading ])\n\n const currentTheme = useCurrentTheme()\n\n const { filePicker } = useMultiStyleConfig('FilePicker', {\n isImage,\n hasLoaded,\n isInvalid,\n currentTheme,\n sx,\n ...rest,\n })\n\n useEffect(() => {\n if (isInvalid) {\n setTimeout(() => {\n setIsInvalid(false)\n }, 1500)\n }\n }, [ isInvalid ])\n\n const handleOnClick = () => {\n if (fileInputRef.current && !file) {\n fileInputRef.current.click()\n }\n }\n\n const handleCrop = () => {\n if (imageEditorRef.current) {\n const canvas = imageEditorRef.current.getImageScaledToCanvas()\n canvas.toBlob((blob) => {\n if (file && blob) {\n const fileName = name\n || isFile(file)\n ? (file as File).name\n : 'downloaded-file'\n\n const fileType = isFile(file)\n ? (file as File).type\n : '.jpg'\n\n const newFile = convertBlobToFile(blob, fileName, fileType)\n setFile(newFile)\n setHasLoaded(true)\n onChange(newFile)\n }\n })\n editModal.onClose()\n }\n }\n\n const clearImage = () => {\n if (fileInputRef.current) {\n setIsInvalid(false)\n setName('')\n setFile(null)\n setIsImage(true)\n setHasLoaded(false)\n if (!showProgress) {\n setUploaded(0)\n }\n onChange(null)\n fileInputRef.current.value = ''\n }\n }\n\n const handleImageUpload = async (newImage: File | null) => {\n if (newImage) {\n setIsInvalid(false)\n const isFileTypeImage = isFileImage(newImage)\n setIsImage(isFileTypeImage)\n const compressedImage = isFileTypeImage\n ? ((await compressImage(\n newImage,\n compression?.width,\n compression?.height,\n compression?.quality\n )) as File)\n : newImage\n setFile(compressedImage)\n if (!showProgress) {\n setUploaded(1)\n }\n onChange(compressedImage)\n setIsLoading(isUploading)\n }\n }\n\n const handleChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n setIsInvalid(false)\n const newImage = e.target.files[0]\n handleImageUpload(newImage)\n }\n }\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault()\n if (e.dataTransfer.files) {\n const newFile = e.dataTransfer.files[0]\n if (isValidFile(newFile, acceptFormat, maxFileSize).isValid) {\n handleImageUpload(newFile)\n } else {\n setIsInvalid(true)\n }\n }\n }\n\n return (\n <Stack maxW={ filePicker.width as number } { ...rest }>\n <Clickable\n onClick={ handleOnClick }\n onDrop={ handleDrop }\n onDragOver={ (e: DragEvent) => e.preventDefault() }\n onMouseEnter={ () => setEditable(true) }\n onMouseLeave={ () => setEditable(false) }\n >\n <Box sx={ filePicker }>\n <SlideFade\n in={ hasLoaded }\n style={ {\n width: '100%',\n height: '100%',\n display: hasLoaded && isImage ? 'initial' : 'none',\n } }\n >\n <Image\n src={ file\n ? isFile(file)\n ? URL.createObjectURL(file as File)\n : file as string\n : '' }\n alt=\"preview-image\"\n objectFit=\"cover\"\n borderRadius={ 8 }\n display={ hasLoaded && isImage ? 'inherit' : 'none' }\n h=\"full\"\n w=\"full\"\n />\n </SlideFade>\n <Input\n type=\"file\"\n display=\"none\"\n accept={ acceptFormat }\n ref={ fileInputRef }\n onChange={ handleChange }\n />\n <Stack\n display={ hasLoaded && isImage ? 'none' : 'default' }\n alignItems=\"center\"\n w=\"85%\"\n spacing=\"0a\"\n >\n <Icon\n as={ onlyImageAccepted ? Image03Solid : UploadCloudSolid }\n boxSize=\"32px\"\n color={\n isInvalid\n ? 'red.500'\n : editable\n ? 'blue.500'\n : 'gray.300'\n }\n display={ isImage && !hasLoaded ? 'inline-block' : 'none' }\n aria-label=\"file-icon-upload\"\n />\n <Icon\n as={ FileBlankDuo }\n boxSize=\"32px\"\n color=\"gray.300\"\n display={ hasLoaded && !isImage ? 'inline-block' : 'none' }\n />\n <P\n variant={ isInvalid ? '16' : '14' }\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n overflow=\"hidden\"\n maxWidth={ filePicker.width as number }\n textAlign=\"center\"\n alignSelf=\"center\"\n >\n { isInvalid\n ? 'File not supported'\n : file && isFile(file)\n ? (file as File).name\n : `Drag & drop ${onlyImageAccepted ? 'image' : 'file'} or` }\n </P>\n <Lead\n sx={ {\n textDecoration: 'underline',\n color: isInvalid ? 'red.500' : 'blue.500',\n } }\n display={ isLoading || hasLoaded ? 'none' : 'default' }\n >\n Click to upload\n </Lead>\n <Box display={ isLoading ? 'block' : 'none' } pt={ 1 }>\n { loadWithSpinner\n ? <Spinner />\n : <LoadingBar loaded={ uploaded } />\n }\n </Box>\n </Stack>\n <Fade\n in={ hasLoaded && editable }\n style={ {\n display: hasLoaded && editable ? 'flex' : 'none',\n justifyContent: 'center',\n } }\n >\n <HStack\n spacing={ 2 }\n position=\"absolute\"\n bottom=\"3\"\n justifyContent=\"center\"\n bgColor=\"bg.layer\"\n borderRadius={ 6 }\n width=\"44\"\n py={ 2 }\n >\n { editFileOptions.canEdit && (\n <FileIconButton\n aria-label=\"edit-file\"\n onClick={ editModal.onOpen }\n icon={ EditBoxDuo }\n />\n ) }\n <FileIconButton\n aria-label=\"download-file\"\n onClick={ handleDownload(file) }\n icon={ DownloadDuo }\n />\n <FileIconButton\n aria-label=\"delete-file\"\n onClick={ confirmDelete ? deleteModal.onOpen : clearImage }\n icon={ TrashFullDuo }\n color=\"red.500\"\n />\n </HStack>\n </Fade>\n <P\n variant=\"14\"\n sx={ { color: 'gray.400' } }\n display={\n hasLoaded && !isImage && !isLoading\n ? 'inline-block'\n : 'none'\n }\n >\n { isFile(file) && readableFileSize((file as File)?.size as number) }\n </P>\n\n </Box>\n </Clickable>\n <FileEditorModal\n { ...editModal }\n fileName={ name }\n setFileName={ setName }\n image={ file }\n handleCrop={ handleCrop }\n isImage={ isImage }\n ref={ imageEditorRef }\n canEditFileName={ editFileOptions.canEditName }\n canCropImage={ editFileOptions.canEditImage }\n />\n <ConfirmDeleteModal\n { ...deleteModal }\n confirmDelete={ clearImage }\n fileName={ name || 'file' }\n />\n </Stack>\n )\n}\n","import React, { useState } from 'react'\nimport { identity } from 'ramda'\nimport { Field } from '../form'\nimport { FilePicker } from './file-picker'\nimport { toBase64 } from './utils'\nimport { FilePickerFieldProps } from './types'\n\n/**\n * The file picker component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FilePicker\n * @see Field\n * @see {@link https://northlight.dev/reference/file-picker-field}\n *\n * @example (Example)\n * ## Meant for uploading images in a form\n * Where they handled as base64 string\n * (?\n * <Form initialValues={{image: ''}}>\n * {({watch}) => (\n * <Stack>\n * <FilePickerField name=\"image\" />\n * <Code maxH=\"xs\" overflowY=\"scroll\">{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n * </Form>\n *\n * ?)\n *\n */\nexport const FilePickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: FilePickerFieldProps) => {\n const [ uploaded, setUploaded ] = useState(0)\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <FilePicker\n onChange={ async (file: File | null) => {\n if (file) {\n const formattedFile = await toBase64(file)\n setUploaded(1)\n onChange(formattedFile)\n onChangeCallback(formattedFile)\n } else {\n setUploaded(0)\n onChange(null)\n onChangeCallback(null)\n }\n } }\n value={ value }\n uploaded={ value ? 1 : uploaded }\n loadWithSpinner={ true }\n acceptFormat=\"image/*\"\n { ...rest }\n />\n ) }\n </Field>\n )\n}\n","import React, { DragEvent, useEffect, useRef, useState } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { filter, identity } from 'ramda'\nimport { Image03Solid, UploadCloudSolid } from '@northlight/icons'\nimport { Box } from '../box'\nimport { Icon } from '../icon'\nimport { Input } from '../input'\nimport {\n compressImage,\n createFileObject,\n createPreviewFileObject,\n isFileImage,\n isValidFile,\n onlyAcceptsImages,\n readableFileSize,\n} from './utils'\nimport { Clickable } from '../clickable'\nimport { HStack, Stack } from '../stack'\nimport { Lead, P } from '../typography'\nimport { fiveHundredMB } from './constants'\nimport { FileFormat, MultiFileUploaderProps } from './types'\nimport { useCurrentTheme } from '../../utils'\n\n/**\n * Input to upload multiple files without ui to render files\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/reference/multi-file-uploader}\n * @example\n * (?\n * () => {\n * const [ images, setImages ] = useState([])\n * return (\n * <Stack>\n <Box h=\"sm\">\n <Carousel>\n { images.map((imageSrc) => (\n <Image src={imageSrc} borderRadius=\"md\" />\n )) }\n </Carousel>\n </Box>\n <MultiFileUploader\n acceptFormat=\"image/*\"\n onChange={ (newFiles) =>\n setImages(\n newFiles.map((file) => URL.createObjectURL(file))\n )\n }\n />\n </Stack>\n * )\n * }\n * ?)\n *\n */\nexport function MultiFileUploader<T extends FileFormat> ({\n acceptFormat = '*',\n compression,\n onChange = identity,\n addFilesToQueue = identity,\n updatePreviewFiles = identity,\n maxFileSize = fiveHundredMB,\n ...rest\n}: MultiFileUploaderProps<T>) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [ isInvalid, setIsInvalid ] = useState(false)\n const currentTheme = useCurrentTheme()\n const { multiFilePicker } = useMultiStyleConfig('FilePicker', { isInvalid, currentTheme, ...rest })\n const [ active, setActive ] = useState(false)\n const [ errorMessage, setErrorMessage ] = useState('')\n\n const onlyImageAccepted = onlyAcceptsImages(acceptFormat)\n\n useEffect(() => {\n if (isInvalid) {\n setTimeout(() => {\n setIsInvalid(false)\n }, 1500)\n }\n }, [ isInvalid ])\n\n const toggleHover = () => {\n setActive((prev) => !prev)\n }\n\n const handleClick = () => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }\n\n const updateMultipleFiles = async (newFiles: FileList) => {\n const filesArr: File[] = Array.prototype.slice.call(newFiles)\n const validFiles = filter((file) => {\n const fileCheck = isValidFile(file, acceptFormat, maxFileSize)\n if (!fileCheck.isValid) {\n setErrorMessage(fileCheck.errorMessage || '')\n }\n return fileCheck.isValid\n }, filesArr)\n if (filesArr.length > 0 && validFiles.length === 0) {\n setIsInvalid(true)\n }\n\n addFilesToQueue(validFiles.map((file) => createFileObject(file)))\n updatePreviewFiles(validFiles.map((file) => createPreviewFileObject(file)))\n const compressedFiles = validFiles.map(\n async (file) => (isFileImage(file)\n ? compressImage(\n file,\n compression?.width,\n compression?.height,\n compression?.quality\n ) as File\n : file)\n )\n Promise.all(compressedFiles).then((values) => {\n onChange(values)\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n })\n }\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault()\n updateMultipleFiles(e.dataTransfer.files)\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n updateMultipleFiles(e.target.files)\n }\n }\n return (\n <Clickable\n onClick={ handleClick }\n onDragOver={ (e: DragEvent) => e.preventDefault() }\n onDrop={ handleDrop }\n onMouseEnter={ toggleHover }\n onMouseLeave={ toggleHover }\n >\n <Box sx={ multiFilePicker } { ...rest }>\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n h=\"full\"\n w=\"full\"\n spacing={ 0 }\n >\n <Icon\n as={ onlyImageAccepted ? Image03Solid : UploadCloudSolid }\n boxSize=\"32px\"\n color={\n isInvalid\n ? 'red.500 '\n : active\n ? 'blue.500 '\n : 'gray.300'\n }\n aria-label=\"image-icon-upload\"\n mb={ onlyImageAccepted ? '0a' : 0 }\n />\n <HStack spacing={ 1 } display={ isInvalid ? 'none' : 'flex' }>\n <P variant=\"14\" textAlign=\"center\" alignSelf=\"center\">\n Drag & drop { onlyImageAccepted ? 'images' : 'files' } here or\n </P>\n <Lead sx={ { textDecoration: 'underline', color: 'blue.500' } }>\n choose { onlyImageAccepted ? 'image' : 'file' }\n </Lead>\n </HStack>\n <P variant=\"14\" textAlign=\"center\" alignSelf=\"center\" display={ isInvalid ? 'initial' : 'none' }>\n { errorMessage }\n </P>\n <P variant=\"14\" sx={ { color: 'gray.400' } }>\n Max file size is { readableFileSize(maxFileSize) }\n </P>\n </Stack>\n <Input\n type=\"file\"\n display=\"none\"\n accept={ acceptFormat }\n onChange={ handleChange }\n multiple={ true }\n ref={ inputRef }\n />\n </Box>\n </Clickable>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { identity } from 'ramda'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { DownloadDuo, EditBoxDuo, FileBlankDuo, Image03Duo } from '@northlight/icons'\nimport AvatarEditor from 'react-avatar-editor'\nimport { Icon } from '../icon'\nimport { SlideFade } from '../transitions'\nimport { P } from '../typography'\nimport { HStack, Stack } from '../stack'\nimport { convertBlobToFile, getImageAsFile, handleDownload, isFileImage, readableFileSize } from './utils'\nimport { Box } from '../box'\nimport { Image as ChakraImage } from '../image'\nimport { useDisclosure } from '../../hooks'\nimport { CloseButton } from '../close-button'\nimport { LoadingBar } from '../progress'\nimport { ConfirmDeleteModal } from './confirm-delete-modal'\nimport { FileEditorModal } from './file-editor-modal'\nimport { FileIconButton } from './file-icon-button'\nimport { FileFormat, FileItemProps } from './types'\nimport { defaultEditOptions } from './constants'\n\nexport function FileItem<T extends FileFormat> ({\n onChangeCallback,\n addFile = identity,\n deleteFile,\n file,\n confirmDelete = true,\n isLazy = false,\n editFileOptions = defaultEditOptions,\n}: FileItemProps<T>) {\n const { canEdit, canEditImage, canEditName } = editFileOptions\n const { fileItem } = useMultiStyleConfig('FilePicker')\n const editModalDisclosure = useDisclosure()\n const deleteModalDisclosure = useDisclosure()\n const imageEditorRef = useRef<AvatarEditor>(null)\n const [ fileName, setFileName ] = useState('')\n const [ show, setShow ] = useState(true)\n const [ hasLoaded, setHasLoaded ] = useState(false)\n const [ loadingImage, setLoadingImage ] = useState(true)\n\n useEffect(() => {\n if (file.src) {\n const buffer = new Image()\n buffer.src = file.src\n buffer.onload = () => {\n setLoadingImage(false)\n }\n }\n }, [ file.isUploading ])\n\n const handleCrop = async () => {\n if (imageEditorRef.current && isFileImage(file)) {\n const canvas = imageEditorRef.current.getImageScaledToCanvas()\n canvas.toBlob(async (blob) => {\n if (file && blob) {\n const newFile = convertBlobToFile(blob, fileName || file.name, file.type)\n deleteFile(file)\n addFile(newFile, file._id)\n onChangeCallback([ newFile ])\n }\n })\n editModalDisclosure.onClose()\n } else if (file.src) {\n const newFile = await getImageAsFile(file, fileName)\n deleteFile(file)\n addFile(newFile, file._id)\n onChangeCallback([ newFile ])\n }\n }\n\n const clearImage = () => {\n setShow(false)\n setTimeout(() => {\n deleteFile(file)\n }, 500)\n }\n\n return (\n <SlideFade\n in={ show }\n direction=\"left\"\n offset={ 30 }\n enterDuration={ !isLazy ? 300 : 1 }\n exitDuration={ 300 }\n >\n <Box sx={ fileItem }>\n <HStack\n w=\"full\"\n h=\"full\"\n borderRadius={ 6 }\n alignItems=\"center\"\n justifyContent=\"space-between\"\n px={ 2 }\n pt={ file.isUploading && !hasLoaded ? 2 : 0 }\n >\n <HStack spacing={ 4 } alignItems=\"start\" maxW=\"50%\">\n { isFileImage(file)\n ? file.isUploading || loadingImage\n ? (\n <Icon\n as={ Image03Duo }\n bgColor=\"gray.100\"\n color=\"gray.400\"\n boxSize=\"10\"\n borderRadius=\"8\"\n p=\"2\"\n />\n )\n : (\n <ChakraImage\n src={ file.src || '' }\n alt=\"preview-image\"\n objectFit=\"cover\"\n display={ file.src ? 'inherit' : 'none' }\n borderRadius=\"8\"\n boxSize=\"10\"\n />\n )\n : (\n <Icon\n as={ FileBlankDuo }\n boxSize=\"10\"\n p=\"1\"\n color=\"gray.300\"\n />\n )\n }\n <Stack\n alignItems=\"start\"\n justifyContent=\"start\"\n spacing=\"0\"\n maxW=\"100%\"\n >\n <P\n variant=\"14\"\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n overflow=\"hidden\"\n maxW=\"100%\"\n >\n { file?.name }\n </P>\n <P variant=\"14\" sx={ { color: 'gray.400' } }>\n { file?.size && readableFileSize(file.size) }\n </P>\n </Stack>\n </HStack>\n <HStack\n spacing=\"3\"\n justifyContent=\"center\"\n borderRadius=\"6\"\n bgColor=\"bg.filled\"\n display={ file.isUploading ? 'none' : 'flex' }\n p=\"1\"\n >\n { canEdit && (\n <FileIconButton\n aria-label=\"Edit-image\"\n onClick={ editModalDisclosure.onOpen }\n icon={ EditBoxDuo }\n />\n ) }\n <FileIconButton\n aria-label=\"download-image\"\n onClick={ handleDownload(file) }\n icon={ DownloadDuo }\n />\n <CloseButton\n onClick={ confirmDelete ? deleteModalDisclosure.onOpen : clearImage }\n />\n </HStack>\n </HStack>\n <Box\n w=\"full\"\n pl=\"16\"\n pr=\"4\"\n pb=\"2\"\n mt=\"-2\"\n display={ file.isUploading ? 'block' : 'none' }\n >\n <LoadingBar\n loaded={ file.size ? (file?.uploaded || 0) / file.size : 0 }\n onLoadEnd={ () => setHasLoaded(true) }\n />\n </Box>\n { canEdit && (\n <FileEditorModal\n { ...editModalDisclosure }\n fileName={ fileName || file.name }\n setFileName={ setFileName }\n image={ file.src }\n canCropImage={ canEditImage }\n canEditFileName={ canEditName }\n handleCrop={ handleCrop }\n isImage={ isFileImage(file) }\n ref={ imageEditorRef }\n />\n ) }\n <ConfirmDeleteModal\n { ...deleteModalDisclosure }\n confirmDelete={ clearImage }\n fileName={ fileName || file.name }\n />\n </Box>\n </SlideFade>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { any, identity, map } from 'ramda'\nimport { FileItem } from './file-item'\nimport { Stack } from '../stack'\nimport { createPreviewFileObject, getNewUploadingFiles, isFile, isOverflowing } from './utils'\nimport { FileFormat, MultiFileListProps } from './types'\nimport { defaultEditOptions } from './constants'\n\n/**\n * Show list of files, their uploading progress as well as options to edit/delete them\n * @see MultiFileUploader\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/multi-file-list}\n *\n */\nexport function MultiFileList<T extends FileFormat> ({\n files,\n uploadingFiles,\n onChange = identity,\n deleteFile = identity,\n addFile = identity,\n confirmDelete,\n editFileOptions = defaultEditOptions,\n enableSmartLoad = true,\n ...rest\n}: MultiFileListProps<T>) {\n const [ uploadingFilesReference, setUploadingFilesReference ] = useState(uploadingFiles)\n const [ overflowing, setOverflowing ] = useState(false)\n\n const formattedFiles = files?.map((file) => (\n isFile(file)\n ? createPreviewFileObject(file as unknown as File)\n : file\n ))\n\n const listRef = useRef<HTMLDivElement>(null)\n useEffect(() => {\n if (uploadingFiles && uploadingFilesReference && files) {\n if (enableSmartLoad) {\n const newVal = getNewUploadingFiles<T>(uploadingFilesReference, uploadingFiles, files)\n setUploadingFilesReference(newVal)\n } else {\n setUploadingFilesReference(uploadingFiles)\n }\n }\n if (listRef.current) {\n setOverflowing(isOverflowing(listRef.current))\n }\n }, [ uploadingFiles, files ])\n\n const isLazy = uploadingFilesReference\n ? any((file: T) => file.isLazy || false, uploadingFilesReference as T[])\n : false\n\n return (\n <Stack\n ref={ listRef }\n spacing={ 2 }\n maxH=\"sm\"\n pr={ overflowing ? 2 : 0 }\n overflowY=\"auto\"\n { ...rest }\n >\n { uploadingFilesReference && map((file) => (\n <FileItem\n onChangeCallback={ onChange }\n file={ file }\n key={ file._id }\n deleteFile={ deleteFile }\n confirmDelete={ confirmDelete }\n isLazy={ isLazy }\n editFileOptions={ editFileOptions }\n />\n ), uploadingFilesReference) }\n { formattedFiles && map((file) => (\n <FileItem\n onChangeCallback={ onChange }\n addFile={ addFile }\n file={ file }\n key={ file._id }\n deleteFile={ deleteFile }\n confirmDelete={ confirmDelete }\n editFileOptions={ editFileOptions }\n />\n ), formattedFiles) }\n </Stack>\n )\n}\n","import React, { useState } from 'react'\nimport { findIndex, identity, insert, isEmpty, isNil, remove } from 'ramda'\nimport { MultiFileList } from './multi-file-list'\nimport { createPreviewFileObject } from './utils'\nimport { MultiFileUploader } from './multi-file-uploader'\nimport { Stack } from '../stack'\nimport { defaultEditOptions, fiveHundredMB } from './constants'\nimport { FileFormat, MultiFilePickerProps } from './types'\n\n/**\n * Lets user import file of any type as Javascript File Object\n * @see FilePicker\n * @see {@link https://northlight.dev/reference/multi-file-picker}\n *\n * @example (Example)\n * (?\n * <MultiFilePicker />\n * ?)\n * ## For more information, view: <a href=\"https://northlight.dev/components/file%20picker\">guide</a>\n *\n *\n */\nexport function MultiFilePicker<T extends FileFormat> ({\n acceptFormat = '*',\n compression,\n onChange = identity,\n files = null,\n uploadingFiles,\n deleteFile = null,\n confirmDelete = true,\n maxFileSize = fiveHundredMB,\n enablePreLoad = true,\n enableSmartLoad = true,\n editFileOptions = defaultEditOptions,\n variant,\n ...rest\n}: MultiFilePickerProps<T>) {\n const [ bufferFiles, setBufferFiles ] = useState<T[]>([])\n const [ previewFiles, setPreviewFiles ] = useState<T[]>([])\n\n const getIndexById = (id: string) => findIndex((file) => file._id === id, previewFiles)\n\n const addFile = (file: File, id: string) => {\n const addedFile = createPreviewFileObject(file)\n const indexOfChanged = getIndexById(id)\n const newPreviewFiles = remove(indexOfChanged, 1, previewFiles)\n const newFiles = insert(indexOfChanged, addedFile, newPreviewFiles)\n setPreviewFiles(newFiles as T[])\n }\n\n const handleDelete = (file: T | FileFormat) => {\n const indexOfRemoved = getIndexById(file._id)\n const newPreviewFiles = remove(indexOfRemoved, 1, previewFiles)\n setPreviewFiles(newPreviewFiles)\n }\n\n const updateQueuedFiles = (queuedFiles: T[]) => {\n if (enablePreLoad) {\n setBufferFiles(queuedFiles)\n }\n }\n\n return (\n <Stack\n spacing={ 4 }\n maxW=\"inherit\"\n maxH=\"inherit\"\n { ...rest }\n >\n <MultiFileUploader\n acceptFormat={ acceptFormat }\n compression={ compression }\n onChange={ onChange }\n addFilesToQueue={ updateQueuedFiles }\n updatePreviewFiles={ setPreviewFiles }\n maxFileSize={ maxFileSize }\n variant={ variant }\n />\n <MultiFileList\n files={ files || previewFiles }\n onChange={ onChange }\n uploadingFiles={\n isEmpty(files) && (uploadingFiles?.length === 0 || isNil(uploadingFiles))\n ? bufferFiles\n : uploadingFiles\n }\n deleteFile={ deleteFile || handleDelete }\n confirmDelete={ confirmDelete }\n enableSmartLoad={ enableSmartLoad }\n editFileOptions={ editFileOptions }\n addFile={ addFile }\n />\n </Stack>\n )\n}\n","import React from 'react'\nimport { concat, findIndex, identity, isEmpty, map, remove } from 'ramda'\nimport { Field } from '../form'\nimport { MultiFilePicker } from './multi-file-picker'\nimport { createFileObjectFromSrc, isFile, toBase64 } from './utils'\nimport { FileFormat, MultiFilePickerFieldProps } from './types'\n\n/**\n * The multi file picker component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see MultiFilePicker\n * @see Field\n * @see {@link https://northlight.dev/reference/multi-file-picker-field}\n *\n * @example (Example)\n * ## Meant for uploading images in a form\n * Where they handled as base64 strings\n * (?\n * <Form initialValues={{images: []}}>\n * {({watch}) => (\n * <Stack>\n * <MultiFilePickerField name=\"images\" />\n * <Code maxH=\"xs\" overflowY=\"scroll\">{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n * </Form>\n *\n * ?)\n *\n */\nexport const MultiFilePickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: MultiFilePickerFieldProps) => {\n const getFiles = (sources: string[]) => {\n const buffer = map((source) => ({\n type: 'jpg',\n src: source,\n name: '',\n }), sources)\n const formattedFiles = map((file) => (isFile(file)\n ? file : createFileObjectFromSrc(file)), buffer)\n return formattedFiles as FileFormat[]\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => {\n const handleDelete = (file: FileFormat) => {\n const removedIndex = findIndex((src) => src === file.src, value)\n const newValues = remove(removedIndex, 1, value)\n onChange(newValues)\n }\n\n return (\n <MultiFilePicker\n onChange={ async (files: File[] | null) => {\n if (!isEmpty(files)) {\n const newFiles = files?.map(async (file) => toBase64(file))\n if (newFiles) {\n Promise.all(newFiles).then((values) => {\n onChange(concat(value, values))\n onChangeCallback(values)\n })\n }\n } else {\n onChange([])\n onChangeCallback([])\n }\n } }\n enablePreLoad={ false }\n enableSmartLoad={ false }\n deleteFile={ handleDelete }\n acceptFormat=\"image/*\"\n editFileOptions={ { canEdit: true, canEditImage: true, canEditName: false } }\n confirmDelete={ false }\n files={ getFiles(value) }\n { ...rest }\n />\n )\n } }\n </Field>\n )\n}\n","import React from 'react'\nimport { ChakraProvider } from '@chakra-ui/react'\nimport { theme as webappTheme } from '../../theme'\nimport { MediatoolThemeProviderProps } from './types'\nimport { CustomTheme } from '../../utils/use-current-theme'\n\n/**\n * Should be at the root of you project, wraps the app in the theme context\n * @see {@link https://northlight.dev/reference/mediatool-theme-provider}\n *\n * @example\n * Should pass down a theme from northlight/ui, currently exports two themes:\n * * theme - light mode\n * * tottTheme - dark mode\n *\n *\n */\nexport const MediatoolThemeProvider = ({\n children,\n theme = webappTheme,\n themeName = 'webappTheme',\n}: MediatoolThemeProviderProps) => (\n <ChakraProvider resetCSS={ true } theme={ theme }>\n <CustomTheme.Provider value={ themeName }>\n { children }\n </CustomTheme.Provider>\n </ChakraProvider>\n)\n","import React from 'react'\nimport { Menu as ChakraMenu } from '@chakra-ui/react'\nimport { MenuProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/menu}\n *\n * @example (Example)\n * ##Clean menu with different options\n * The menu can be `relaxed` for primary menus, and `compact` for secodnary menus.\n * <br />\n * (?\n * +\n * const MyMenuComponent = () => {\n * const [selectedLabel, setSelectedLabel] = useState('Compare periods');\n *\n * const menuOptions = {\n * '1': 'No Comparison',\n * '2': 'Report date range',\n * '3': 'Previous week',\n * '4': 'Previous quarter',\n * '5': 'Previous month',\n * '6': 'Previous year',\n * '7': 'Previous period',\n *\n * }\n *\n * const handleMenuItemClick = (value) => {\n * setSelectedLabel(menuOptions[value] || 'Compare periods');\n * }\n *\n * return (\n * <Menu variant=\"relaxed\" closeOnSelect={false}>\n * <MenuButton\n * as={Button}\n * leftIcon={<VersionsDuo /> }\n * variant=\"brand\"\n * rightIcon={<ChevronDownDuo />}\n * >\n * { selectedLabel }\n * </MenuButton>\n * <MenuList>\n * <MenuOptionGroup onChange={ handleMenuItemClick } defaultValue=\"1\" type=\"radio\">\n * <MenuItemOption value=\"1\">No Comparison</MenuItemOption>\n * <MenuDivider />\n * <MenuItemOption isDisabled={true} value=\"2\">\n * <Box>\n * <Text>Report date range</Text>\n * <Text fontSize=\"xs\" color=\"text.subdued\">\n * 12-12-2022 01-01-23\n * </Text>\n * </Box>\n * </MenuItemOption>\n * <MenuDivider />\n * <MenuItemOption value=\"3\">Previous week</MenuItemOption>\n * <MenuItemOption value=\"4\">Previous quarter</MenuItemOption>\n * <MenuItemOption value=\"5\">Previous month</MenuItemOption>\n * <MenuItemOption value=\"6\">Previous year</MenuItemOption>\n * <MenuItemOption value=\"7\">Previous period</MenuItemOption>\n * </MenuOptionGroup>\n *<MenuDivider />\n * <MenuItem sx={ { placeContent: 'space-between' } }>\n * Custom Date\n * <Icon as={ ChevronRightDuo } aligh=\"right\" />\n * </MenuItem>\n * </MenuList>\n* </Menu>\n* )\n*\n* }\n*\n* render(<MyMenuComponent/>)\n* ?)\n*\n* @example (Example)\n* ##Menu with Group titles\n* To group related MenuItems, use the MenuGroup component and pass it a title for the group name\n* <br />\n* (?\n * <Menu closeOnSelect={false}>\n * <MenuButton as={Button} rightIcon={<ChevronDownDuo />}>\n * Actions\n * </MenuButton>\n * <MenuList minWidth='240px'>\n * <MenuOptionGroup defaultValue='asc' title='Order' type='radio'>\n * <MenuItemOption value='asc'>Ascending</MenuItemOption>\n * <MenuItemOption value='desc'>Descending</MenuItemOption>\n * </MenuOptionGroup>\n * <MenuDivider />\n * <MenuOptionGroup title='Country' type='checkbox'>\n * <MenuItemOption value='email'>Email</MenuItemOption>\n * <MenuItemOption value='phone'>Phone</MenuItemOption>\n * <MenuItemOption value='country'>Country</MenuItemOption>\n * </MenuOptionGroup>\n * </MenuList>\n* </Menu>\n* ?)\n*\n*/\n\nexport const Menu = ({ variant = 'relaxed', ...props }: MenuProps) => (\n <ChakraMenu variant={ variant } { ...props } />\n)\n","import React from 'react'\nimport {\n NumberInputStepper as ChakraNumberInputStepper,\n NumberDecrementStepper,\n NumberIncrementStepper,\n} from '@chakra-ui/react'\nimport { ChevronDownSolid, ChevronUpSolid } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { HStack } from '../stack'\nimport { Divider } from '../divider'\nimport { P } from '../typography'\nimport { Center } from '../center'\nimport { NumberInputStepperProps } from './types'\n\nexport const NumberInputStepper = ({\n includePercentage = false,\n enableStepperArrows = false,\n}: NumberInputStepperProps) => (\n <ChakraNumberInputStepper>\n <HStack alignItems=\"center\" h=\"full\">\n { includePercentage && (\n <Center bgColor=\"gray.50\" borderRadius=\"md\" boxSize=\"6\">\n <P>%</P>\n </Center>\n ) }\n { enableStepperArrows && (\n <HStack alignItems=\"center\" h=\"full\">\n <Divider orientation=\"vertical\" h=\"50%\" />\n <NumberIncrementStepper border=\"none\">\n <Icon\n as={ ChevronUpSolid }\n color=\"icon.input-stepper.default\"\n boxSize={ 4 }\n />\n </NumberIncrementStepper>\n <NumberDecrementStepper>\n <Icon\n as={ ChevronDownSolid }\n color=\"icon.input-stepper.default\"\n boxSize={ 4 }\n />\n </NumberDecrementStepper>\n </HStack>\n ) }\n </HStack>\n </ChakraNumberInputStepper>\n)\n","import { head, isNil, last, length, match, split } from 'ramda'\n\nconst regex = /(9{13,}|0{13,})(\\d)*$/gm\n\nexport const advancedParseFloat = (value: number | string) => {\n if (isNil(value) || Number.isNaN(parseFloat(value as string))) {\n return value\n }\n\n const splitValue = split('.', `${value}`)\n const intPart = head(splitValue)\n const decimalPart = last(splitValue)\n\n if (isNil(decimalPart)) {\n return value\n }\n\n const roundingError = match(regex, decimalPart)\n if (isNil(roundingError)) {\n return value\n }\n\n const decimalsErrorLength = length(head(roundingError) as string)\n const correctDecimalsLength = decimalPart.length - decimalsErrorLength\n\n return parseFloat(\n parseFloat(`${intPart}.${decimalPart}`)\n .toFixed(correctDecimalsLength)\n )\n}\n","import React, { ChangeEvent } from 'react'\nimport {\n NumberInput as ChakraNumberInput,\n NumberInputField,\n} from '@chakra-ui/react'\nimport { defaultTo, identity, path } from 'ramda'\nimport { NumberInputStepper } from './number-input-stepper'\nimport { NumberInputProps } from './types'\nimport { advancedParseFloat } from './advanced-parse-float'\n\n/**\n * Basic accessible input that only allows numbers, with support for arrow keys,\n * min max values and percentages\n *\n * @example\n * (?\n * <Box p=\"3\">\n * <NumberInput max={100} min={0} step={3} onlyAcceptPercentage={true} enableStepperArrows={true}/>\n * </Box>\n * ?)\n *\n */\nexport const NumberInput = ({\n variant = 'default',\n size = 'md',\n onChange = identity,\n onInputChange = identity,\n enableStepperArrows = false,\n name,\n onlyAcceptPercentage = false,\n ...rest\n}: NumberInputProps) => {\n const percentageProps = onlyAcceptPercentage && {\n step: 0.1,\n }\n\n const percentageFactor = onlyAcceptPercentage ? 0.01 : 1\n const handleChange = (e: ChangeEvent<HTMLInputElement> | string) => {\n const input = defaultTo(e, path([ 'target', 'value' ], e)) as string\n onInputChange(input)\n\n const value = advancedParseFloat(parseFloat(input) * percentageFactor)\n\n const filteredNaN = Number.isNaN(value)\n ? ''\n : value\n\n onChange(`${filteredNaN}`)\n }\n\n return (\n <ChakraNumberInput\n variant={ variant }\n size={ size }\n onChange={ handleChange }\n id={ name }\n { ...percentageProps }\n { ...rest }\n >\n <NumberInputField onChange={ handleChange } />\n <NumberInputStepper\n includePercentage={ onlyAcceptPercentage }\n enableStepperArrows={ enableStepperArrows }\n />\n </ChakraNumberInput>\n )\n}\n","import React, { forwardRef, useState } from 'react'\nimport { identity, isNil } from 'ramda'\nimport { NumberInputFieldProps } from './types'\nimport { Field } from '../form'\nimport { NumberInput } from './number-input'\nimport { advancedParseFloat } from './advanced-parse-float'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\n/**\n * The number input component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see NumberInput\n * @see {@link https://northlight.dev/reference/number-input-field}\n *\n */\nexport const NumberInputField = forwardRef<HTMLDivElement, NumberInputFieldProps>(({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n onlyAcceptPercentage = false,\n inputLeftElement,\n inputRightElement,\n ...rest\n}, ref) => {\n const formatNumber = (value: number, factor: number) => (\n onlyAcceptPercentage\n ? advancedParseFloat(value * factor)\n : value\n )\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => {\n const initialValue = isNil(value) || Number.isNaN(parseFloat(value))\n ? ''\n : formatNumber(value, 100)\n\n const [ displayValue, setDisplayValue ] = useState(initialValue)\n\n return (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <NumberInput\n name={ name }\n data-testid=\"number-input-field-test-id\"\n onInputChange={ (v) => {\n setDisplayValue(v)\n const parsed = formatNumber(parseFloat(v), 0.01)\n\n onChange(parsed)\n onChangeCallback(parsed)\n } }\n value={ displayValue }\n onlyAcceptPercentage={ onlyAcceptPercentage }\n { ...rest }\n />\n </InputGroupWrapper>\n )\n } }\n </Field>\n )\n})\n","import React, { forwardRef, useState } from 'react'\nimport { Box, useMultiStyleConfig } from '@chakra-ui/react'\nimport { Blinker } from '../blinker'\nimport { IconButton } from '../icon-button'\nimport { NotificationIconButtonProps } from './types'\n\n/**\n * A custom component that composes the IconButton and Blinker components.\n * The notification blinker blinks on hover.\n * @see {@link https://northlight.dev/reference/notification-icon-button}\n *\n * @example\n * (?\n * <Box w=\"min-content\">\n<NotificationIconButton\n variant=\"brand\"\n aria-label=\"conversations\"\n icon={ <Icon as={ ConversationDuo } /> }\n hasNotification={ true }\n size=\"lg\"\n/>\n</Box>\n * ?)\n */\nexport const NotificationIconButton = forwardRef(({\n variant = 'ghost',\n icon,\n 'aria-label': ariaLabel,\n hasNotification = false,\n blinkerColor = 'green.500',\n size,\n ...rest\n}: NotificationIconButtonProps, ref: any) => {\n const [ isBlinking, setIsBlinking ] = useState(false)\n const { container, notifier } = useMultiStyleConfig('NotificationIconButton', { size, variant })\n return (\n <Box\n onMouseEnter={ () => setIsBlinking(true) }\n onMouseLeave={ () => setIsBlinking(false) }\n sx={ container }\n >\n { hasNotification && (\n <Box sx={ notifier }>\n <Blinker isBlinking={ isBlinking } color={ blinkerColor } size=\"2xs\" />\n </Box>\n ) }\n <IconButton\n variant={ variant }\n icon={ icon }\n aria-label={ ariaLabel }\n ref={ ref }\n size={ size }\n { ...rest }\n />\n </Box>\n )\n})\n","import React from 'react'\nimport { PinInput as ChakraPinInput } from '@chakra-ui/react'\nimport { PinInputProps } from './types'\n\n/**\n * For entering numbers in ex two factor authentication\n * @see {@link https://northlight.dev/reference/pin-input}\n * @example\n * (?\n <HStack p=\"1\">\n <PinInput>\n <PinInputField />\n <PinInputField />\n <PinInputField />\n <PinInputField />\n </PinInput>\n </HStack>\n * ?)\n *\n *\n */\nexport const PinInput = ({\n variant = 'outline',\n hidden,\n children,\n ...rest\n}: PinInputProps) => (\n <ChakraPinInput { ...rest } variant={ variant } placeholder=\"●\" mask={ hidden }>\n { children }\n </ChakraPinInput>\n)\n","import { filter, find, is, length, propEq } from 'ramda'\nimport { Option, SelectProps } from './types'\n\nconst isStringArray = (value: any): value is string[] =>\n is(Array, value) && length(value) > 0 && typeof value[0] === 'string'\n\nexport const getMatchingValue = <T extends Option, K extends boolean>(\n value: SelectProps<T, K>['value'],\n options: SelectProps<T, K>['options']\n): T | T[] | undefined => {\n if (typeof value === 'string') {\n return find(propEq('value', value), options as T[])\n }\n\n if (isStringArray(value)) {\n return filter(\n (option) => (value).includes(option.value),\n options as T[]\n )\n }\n\n return value as K extends true ? T[] : T\n}\n","import React, { Ref, forwardRef, useMemo, useRef } from 'react'\nimport {\n Select as ChakraReactSelect,\n GroupBase,\n OptionsOrGroups,\n SelectInstance,\n} from 'chakra-react-select'\nimport { Box } from '@chakra-ui/react'\nimport { always, equals, identity, is } from 'ramda'\nimport { Option, SelectProps } from './types'\nimport { customSelectStyles } from '../../theme/components/select/custom-select'\nimport { useSelectCallbacks } from '../../hooks'\nimport { getComponents } from '../search-bar/get-components'\nimport { getMatchingValue } from './get-matching-value'\nimport { theme } from '../../theme'\n\n/**\n * Select component that provides a customizable and accessible select input.\n * It is built on top of Chakra UI and Chakra React Select components.\n *\n * @see SearchBar\n * @see {@link https://northlight.dev/reference/select}\n *\n * @example (Example)\n * ## Single Select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * />\n * ?)\n *\n * @example (Example)\n * ## Clearable Select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isClearable={ true }\n * />\n * ?)\n *\n * @example (Example)\n * ## Multi select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isMulti\n * />\n * ?)\n *\n * @example (Example)\n * ## Event meta\n * _There is a second argument passed to the handlechange that can be useful\n * for knowing which elements where adding/removed_\n * (?\n * () => {\n * const handleChange = (val, e) => {\n switch (e.action) {\n case 'select-option':\n //on add value\n console.log(e.option)\n break\n case 'pop-value':\n //on remove value\n console.log(e.removedValue.categoryKey)\n break\n default:\n break\n }\n }\n * return <Select onChange={handleChange} options={[{label: '1', value: '1'}]} isMulti={true}/>\n *\n * }\n * ?)\n *\n * @example (Example)\n * ##Customizing\n * There are two special props for easy customization\n * * customOption\n * * customTag\n *\n * This are themselves react components\n * (?\n+const customOption = ({ label }) => (\n <HStack>\n <Avatar name={label} />\n <P>{label}</P>\n </HStack>\n);\n\nconst customTag = ({ label }) => {\n const [ isIncluded, setIsIncluded ] = useState(true)\n const toggle = () => setIsIncluded((prev) => !prev)\n\n return (\n <Flex>\n <Button\n size=\"xs\"\n onClick={ toggle }\n onMouseDown={ (e) => e.stopPropagation() }\n >\n { isIncluded ? 'Include' : 'Exclude' }\n </Button>\n <Tag>{ label }</Tag>\n </Flex>\n )\n}\n\nconst CustomSelect = () => (\n <Select\n customOption={customOption}\n customTag={ customTag }\n isMulti={true}\n options={[\n { label: 'Option 1', value: '1' },\n { label: 'Option 2', value: '2' },\n ]}\n\n />\n);\n\nrender(<CustomSelect />);\n *\n * ?)\n *\n *\n * @example (Example)\n * ## Testing\n * You can grab the test id for the select by\n * **screen.getByTestId('custom-testid)\n * .children[0].children[2].children[0].children[1].children[0]**\n * (?\n * <Select\n * data-testid=\"custom-test-id\"\n * />\n * ?)\n*/\nexport const Select = forwardRef(<T extends Option, K extends boolean = false>({\n options,\n isMulti,\n onChange = identity,\n onAdd = identity,\n onRemove = identity,\n isLoading,\n loadingList = () => null,\n 'data-testid': testId,\n customOption = null,\n customTag = null,\n isClearable = false,\n value,\n icon,\n components,\n generateComponentsUpdateKey = always(0),\n ...rest\n}: SelectProps<T, K>,\n ref: Ref<SelectInstance<T, K, GroupBase<T>>>\n) => {\n const handleChange = useSelectCallbacks<T, K>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? (value as T[]) : [],\n })\n\n const customComponents = useMemo(\n () => getComponents<T>(components),\n [ generateComponentsUpdateKey() ]\n )\n\n const prevOptions = useRef<OptionsOrGroups<T, GroupBase<T>> | undefined>(\n options\n )\n const renderedOptions = useMemo(() => {\n if (!equals(prevOptions.current, options)) {\n prevOptions.current = options\n }\n return prevOptions.current\n }, [ options ])\n\n return (\n <Box w=\"full\" data-testid={ testId } cursor=\"pointer\">\n <ChakraReactSelect\n isMulti={ isMulti }\n options={ renderedOptions }\n useBasicStyles={ true }\n closeMenuOnSelect={ !isMulti }\n hideSelectedOptions={ false }\n isClearable={ isClearable }\n onChange={ handleChange }\n selectedOptionStyle=\"check\"\n chakraStyles={ customSelectStyles }\n isLoading={ isLoading }\n { ...(isLoading && { components: { MenuList: loadingList } }) }\n value={ getMatchingValue(value, options) }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n ref={ ref }\n menuPortalTarget={ document.body }\n styles={ { menuPortal: (base) => ({ ...base, zIndex: theme.zIndices.popover }) } }\n { ...rest }\n />\n </Box>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { XCloseSolid } from '@northlight/icons'\nimport { equals, identity, isNil } from 'ramda'\nimport { Option, SelectFieldProps } from './types'\nimport { Field } from '../form'\nimport { Select } from './select'\nimport { HStack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { InputGroupWrapper } from '../../internal-components'\n\nconst BaseSelectField = <T extends Option, K extends boolean = false>(\n {\n name,\n label,\n options,\n direction = 'column',\n isMulti,\n isRequired,\n validate,\n isClearable = true,\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n }: SelectFieldProps<T, K>,\n ref: React.Ref<HTMLDivElement>\n) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <Select<T, K>\n name={ name }\n options={ options }\n isMulti={ isMulti }\n onChange={ (values, event) => {\n onChange(\n isMulti\n ? (values as T[]).map((item: any) => item.value)\n : (values as T).value\n )\n onChangeCallback(values as K extends true ? T[] : T, event)\n } }\n value={\n value\n ? (options\n ?.flatMap((inner: any) =>\n (inner.options ? inner.options : inner)\n )\n .filter((option: any) =>\n (isMulti\n ? value.includes(option.value)\n : equals(value, option.value))\n ) as any)\n : null\n }\n { ...rest }\n />\n </InputGroupWrapper>\n <IconButton\n aria-label={ `${name}-close-button` }\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n hidden={ isNil(value) || !isClearable }\n onClick={ () => {\n onChange(undefined)\n onChangeCallback(undefined, { action: 'clear', removedValues: value })\n } }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n\nexport const SelectField = forwardRef(BaseSelectField)\n","import React from 'react'\nimport { Switch as ChakraSwitch } from '@chakra-ui/react'\nimport { SwitchProps } from './types'\n\n/**\n * @see SwitchField\n * @see {@link https://northlight.dev/reference/switch}\n *\n * @example (Example)\n * Mainly used for forms, however this component is controlled by\n * a value prop and an onChange callback\n *\n * (?\n * () => {\n * const [ advancedMode, setAdvancedMode ] = useState(false)\n *\n * return (\n * <Stack p=\"2\">\n * <Label size=\"sm\" htmlFor=\"advanced-mode-switch\">Advanced mode</Label>\n * <Switch name=\"vegan-checkbox\" onChange={() => setAdvancedMode((prev) => !prev)}\n * value={advancedMode} />\n * </Stack>\n * )\n * }\n * ?)\n */\nexport const Switch = ({\n value,\n onChange,\n name,\n size = 'md',\n ...rest\n}: SwitchProps) => (\n <ChakraSwitch\n size={ size }\n id={ name }\n isChecked={ value }\n onChange={ onChange }\n { ...rest }\n />\n)\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { SwitchFieldProps } from './types'\nimport { Field } from '../form'\nimport { Switch } from './switch'\nimport { Box } from '../box'\nimport { Flex } from '../flex'\nimport { Label } from '../typography'\n\n/**\n * The switch component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see switch\n * @see {@link https://northlight.dev/reference/switch-field}\n* @example (Example)\n * ## Basic\n * Tip:\n * * For `labelPlacement` you can use `\"left\" | \"right\"`\n * * For `labelSize` you can use `\"2xs\" | \"xs\" | \"md\" | \"lg\"` or leave it blank\n * (?\n * <Form initialValues={{name: ''}}>\n * <SwitchField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPlacement=\"right\"\n * labelSize=\"md\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const SwitchField = forwardRef<HTMLDivElement, SwitchFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPlacement = 'right',\n labelSize = 'md',\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' } display=\"inline-flex\">\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <Flex\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={ 2 }\n direction={ labelPlacement === 'left' ? 'row-reverse' : 'row' }\n >\n <Switch\n name={ name }\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"switch-field-test-id\"\n { ...rest }\n />\n <Label htmlFor={ name } sx={ { fontWeight: 'normal' } } size={ labelSize }>{ label }</Label>\n </Flex>\n ) }\n </Field>\n </Box>\n))\n","import React from 'react'\nimport { TabPanel as ChakraTabPanel } from '@chakra-ui/react'\nimport { TabPanelProps } from './types'\n\n/**\n * Used to display content under tabs context\n * @see Tabs\n * @see {@link https://northlight.dev/reference/tab-panel}\n * @example\n * (? <TabPanel>Tab 1</TabPanel> ?)\n */\nexport const TabPanel = (props: TabPanelProps) => (\n <ChakraTabPanel padding={ 0 } { ...props } />\n)\n","import React from 'react'\nimport { Tabs as ChakraTabs } from '@chakra-ui/react'\nimport { TabsProps } from './types'\n\n/**\n * Tabs are used for secondary navigation between groups on the page of the same context.\n * @see TabList\n * @see TabPanels\n * @see {@link https://northlight.dev/reference/tabs}\n * @example\n * ## Structure\n * <br />\n * - **Tabs**: Context provider and state manager for tab components.\n * - **TabList**: Container for Tab items.\n * - **Tab**: Interactive label for displaying a TabPanel.\n * - **TabPanels**: Group wrapper for TabPanel items.\n * - **TabPanel**: Content area for a Tab.\n * <br />\n * <br />\n * You can render any element within `Tabs`, but `TabList` should only have `Tab` as children,\n * and `TabPanels` should have `TabPanel` as children. <br />\n * <br />\n * `Tabs` expects `TabList` and `TabPanels` as children. The order doesn't matter,\n * you can have `TabList` at the top, at the bottom, or both.\n * <br />\n * <br />\n *\n * ## Usage\n * <br />\n * **Tabs** have three main variatns:\n * `rounded` (default) or no variant, `soft-rounded` and `line`. <br />\n * Also there are multiple sub-variants: `ai`, `enclosed`, `enclosed-colored` and `unstyled`\n * <br />\n * <br />\n * tip: `enclosed` and `enclosed-colored` can be combined with the `colorScheme=\"\"` prop.\n * <br />\n * <br />\n * (?\n <Tabs>\n <Stack spacing=\"2\">\n <TabList>\n <Tab><Icon as={ MediatoolLogoDuo } mr=\"2\" />One</Tab>\n <Tab><Icon as={ MediatoolLogoDuo } mr=\"2\" />Two</Tab>\n <Tab><Icon as={ MediatoolLogoDuo } mr=\"2\" />Three</Tab>\n </TabList>\n <TabPanels>\n <TabPanel>\n <P>one!</P>\n </TabPanel>\n <TabPanel>\n <P>two!</P>\n </TabPanel>\n <TabPanel>\n <P>three!</P>\n </TabPanel>\n </TabPanels>\n </Stack>\n </Tabs>\n * ?)\n *\n */\nexport const Tabs = (({\n children,\n variant = 'rounded',\n isManual = true,\n ...rest\n}: TabsProps) => (\n <ChakraTabs\n isManual={ isManual }\n variant={ variant }\n { ...rest }\n >\n { children }\n </ChakraTabs>\n))\n","import React from 'react'\nimport { Textarea as ChakraTextarea } from '@chakra-ui/react'\nimport { TextareaProps } from './types'\n\n/**\n * Text input for larger raw text\n * @see Input\n * @see {@link https://northlight.dev/reference/textarea}\n *\n * @example\n * (? <Textarea /> ?)\n */\nexport const Textarea = ({\n size = 'md',\n onChange,\n name,\n value,\n ...rest\n}: TextareaProps) => (\n <ChakraTextarea\n size={ size }\n id={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n)\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { TextareaFieldProps } from './types'\nimport { Field } from '../form'\nimport { Textarea } from './textarea'\n\nexport const TextareaField = forwardRef<HTMLDivElement, TextareaFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n direction,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <Textarea\n name={ name }\n data-testid=\"textarea-field-test-id\"\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n))\n","export const roundToPrecision = (\n value: number,\n numberOfDecimals: number\n): number => parseFloat(value.toFixed(numberOfDecimals))\n","import React, { ComponentType, useEffect, useState } from 'react'\nimport { identity, isNil } from 'ramda'\nimport {\n InputAttributes,\n NumberFormatValues,\n NumericFormat,\n SourceInfo,\n numericFormatter,\n} from 'react-number-format'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\nimport { Input } from '../input'\nimport {\n FormattedNumberInputPreset,\n FormattedNumberInputProps,\n PresetOptions,\n} from './types'\nimport { roundToPrecision } from './round-to-precision'\n\nconst presetMap: Record<FormattedNumberInputPreset, PresetOptions> = {\n eu: {\n thousandSeparator: ' ',\n decimalSeparator: ',',\n },\n us: {\n thousandSeparator: ',',\n decimalSeparator: '.',\n },\n nor: {\n thousandSeparator: '.',\n decimalSeparator: ',',\n },\n}\n\n/**\n * @see {@link https://northlight.dev/reference/formatted-number-input-field}\n @example (Example)\n * The formatted number input is built uppon react-number-format\n * It formats numbers by adjusting thousand and decimal separators\n * ex : 22345351.34234 => 222 453 51,34234\n * It comes with three presets: eu, us and nor.\n * These have the following separators:\n (?\n <FormattedNumberInput\n preset=\"us\"\n onChange={(values) => console.log(values.floatValue)}\n isPercentage={true}\n max={1E9}\n min={0}\n />\n ?)\n\n @example (Example)\n ### Nor preset\n (?\n <FormattedNumberInput\n preset=\"nor\"\n onChange={(values) => console.log(values.floatValue)}\n value={320341345102.34134}\n numberOfDecimals={5}\n />\n ?)\n\n @example (Example)\n ### Eu preset\n (?\n <FormattedNumberInput\n preset=\"eu\"\n onChange={(values) => console.log(values.floatValue)}\n value={320341345102.34134}\n numberOfDecimals={5}\n />\n ?)\n\n */\nexport const FormattedNumberInput = ({\n preset = 'eu',\n isPercentage = false,\n onChange = identity,\n value: valueProp,\n numberOfDecimals = 2,\n max = Infinity,\n min = -Infinity,\n inputLeftElement,\n inputRightElement,\n onBlur,\n ...rest\n}: FormattedNumberInputProps) => {\n const [ valueState, setValueState ] = useState(valueProp)\n const isControlled = typeof valueProp !== 'undefined'\n const value = isControlled ? valueProp : valueState\n const props = presetMap[preset]\n\n const getNumberFormatValues = (number: number) => ({\n floatValue: number,\n formattedValue: numericFormatter(number.toString(), props),\n value: number.toString(),\n })\n\n const validateRange = () => {\n if (isNil(value)) return\n const vNum = typeof value === 'string' ? parseFloat(value) : value\n const factor = isPercentage ? 100 : 1\n if (vNum * factor > max) {\n const newValue = roundToPrecision(max / factor, numberOfDecimals)\n setValueState(newValue)\n onChange(getNumberFormatValues(newValue))\n }\n if (vNum * factor < min) {\n const newValue = roundToPrecision(min / factor, numberOfDecimals)\n setValueState(newValue)\n onChange(getNumberFormatValues(newValue))\n }\n }\n\n const onValueChangeHandler = (\n values: NumberFormatValues,\n sourceInfo: SourceInfo\n ) => {\n const newFloatValue =\n values.floatValue && isPercentage\n ? roundToPrecision(values.floatValue / 100, numberOfDecimals)\n : values.floatValue\n setValueState(newFloatValue)\n onChange(\n {\n ...values,\n floatValue: newFloatValue,\n },\n sourceInfo\n )\n }\n\n useEffect(() => {\n validateRange()\n }, [ value ])\n\n return (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <NumericFormat\n allowLeadingZeros={ true }\n customInput={ Input as ComponentType<InputAttributes> }\n onBlur={ (e) => {\n onBlur?.(e)\n validateRange()\n } }\n onValueChange={ onValueChangeHandler }\n decimalScale={ numberOfDecimals }\n value={\n isPercentage\n ? roundToPrecision(parseFloat(`${value ?? 0}`) * 100, numberOfDecimals)\n : value\n }\n suffix={ isPercentage ? '%' : '' }\n { ...props }\n { ...rest }\n />\n </InputGroupWrapper>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { FormattedNumberInputFieldProps } from './types'\nimport { Field } from '../form'\nimport { FormattedNumberInput } from './formatted-number-input'\n\n/**\n * The formatted number input component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FormattedNumberInput\n * @see {@link https://northlight.dev/reference/formatted-number-input-field}\n * @example (Example)\n * (?\n * <Form initialValues={{money: ''}}>\n * <FormattedNumberInputField\n * name=\"money\"\n * label=\"How much money is currently on your account\"\n * labelPosition=\"left\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const FormattedNumberInputField =\nforwardRef<HTMLDivElement, FormattedNumberInputFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <FormattedNumberInput\n name={ name }\n onChange={ (values, sourceInfo) => {\n onChange(values.floatValue)\n onChangeCallback(values, sourceInfo)\n } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n))\n","import React from 'react'\nimport InputMask from 'react-input-mask'\nimport { Input } from '../input'\nimport { MaskedTextInputProps } from './types'\n\n//! Overload error in @types/react-input-mask, overwriting faulty types as unknown as any\nconst CustomInput = InputMask as unknown as any\n\nexport const MaskedTextInput = ({\n mask,\n maskPlaceholder,\n alwaysShowMask,\n name,\n value,\n placeholder,\n onChange,\n onBlur,\n ...rest\n}: MaskedTextInputProps) => (\n <CustomInput\n mask={ mask }\n maskPlaceholder={ maskPlaceholder }\n alwaysShowMask={ alwaysShowMask }\n name={ name }\n value={ value }\n onChange={ onChange }\n onBlur={ onBlur }\n >\n { ({ name: nameProp }: any) => (\n <Input\n placeholder={ maskPlaceholder ?? placeholder }\n name={ nameProp }\n { ...rest }\n />\n ) }\n </CustomInput>\n)\n","import React, { forwardRef } from 'react'\nimport { identity, isNil } from 'ramda'\nimport { TextFieldProps } from './types'\nimport { Input } from '../input'\nimport { Field } from '../form'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper'\n\n/**\n * The Input component wrapped in <Field />\n * Also supported formmated and musked input via as prop\n * @see Input\n * @see MaskedTextInput\n * @see FormattedNumberInput\n * @see {@link https://northlight.dev/reference/text-field}\n *\n *\n */\nexport const TextField = forwardRef<HTMLDivElement, TextFieldProps>(({\n name,\n label,\n as: As = Input,\n isRequired,\n validate,\n direction = 'column',\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={\n isNil(validate) && isRequired\n ? { validate: (value: string) => !!value.trim() }\n : validate\n }\n direction={ direction }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <As\n id={ name }\n name={ name }\n onChange={ (e: React.ChangeEvent<HTMLInputElement> | string) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"text-field-test-id\"\n { ...rest }\n />\n </InputGroupWrapper>\n ) }\n </Field>\n))\n","import {\n AlertCircleSolid,\n AlertTriangleSolid,\n BellSolid,\n BrightnessSolid,\n CheckCircleSolid,\n HelpCircleSolid,\n} from '@northlight/icons'\nimport { AlertVariants } from '../../alert/types'\n\nexport const toastIconMap: Record<AlertVariants, any> = {\n success: CheckCircleSolid,\n warning: AlertTriangleSolid,\n error: AlertCircleSolid,\n danger: AlertCircleSolid,\n info: BellSolid,\n ai: BrightnessSolid,\n default: HelpCircleSolid,\n ghost: HelpCircleSolid,\n}\n","import React from 'react'\nimport { Alert as ChakraAlert } from '@chakra-ui/react'\nimport { toastIconMap } from '../types'\nimport { ToastProps } from './types'\nimport { Icon } from '../icon'\nimport { HStack, Stack } from '../stack'\nimport { CloseButton } from '../close-button'\nimport { Label, P } from '../typography'\n\n/**\n * Toast is a modified alert meant for popup alerts\n * @see useToast\n * @see Alert\n * @see {@link https://northlight.dev/reference/toast}\n * @example\n * (?\n *\n <HStack spacing={ 4 }>\n <Toast variant=\"default\" title=\"default\" />\n <Toast variant=\"success\" title=\"success\" />\n <Toast variant=\"warning\" title=\"warning\" />\n <Toast variant=\"error\" title=\"error\" />\n <Toast variant=\"info\" title=\"info\" />\n <Toast variant=\"ai\" title=\"mtGPT\" />\n </HStack>\n * ?)\n *\n */\nexport const Toast = ({\n variant = 'success',\n title = '',\n description = '',\n onClose,\n ...rest\n}: ToastProps) => {\n const icon = toastIconMap[variant]\n\n return (\n <ChakraAlert\n variant={ variant }\n data-testid=\"toast-test\"\n { ...rest }\n >\n <HStack alignItems=\"flex-start\">\n { icon && (\n <Icon\n as={ icon }\n color={ `icon.toast.${variant}` }\n boxSize={ 6 }\n />\n ) }\n <Stack spacing={ 0 } alignItems=\"flex-start\">\n { title && <Label size=\"md\">{ title }</Label> }\n { description && (\n <P\n sx={ {\n color: variant === 'ai' ? 'color.text.inverted' : 'text.default',\n } }\n >\n { description }\n </P>\n ) }\n </Stack>\n\n <CloseButton\n size=\"sm\"\n onClick={ onClose }\n position=\"absolute\"\n insetEnd={ 1 }\n top={ 1 }\n />\n </HStack>\n </ChakraAlert>\n )\n}\n","import React, { useRef } from 'react'\nimport { ToastId, useToast as useChakraToast } from '@chakra-ui/react'\nimport { Toast } from './toast'\nimport { UseToastOptions } from './types'\n\n/**\n * This hook returns a toast function that when called will popup a toast\n * @see Toast\n * @see {@link https://northlight.dev/reference/use-toast}\n * @example\n * (?\n * () => {\n * const toast = useToast()\n * const handleClick = () => {\n * toast({title: 'Success',\n * description: `${Math.random()}-string`,\n * replacePreviousToast: true })\n * }\n * return (\n * <Button onClick={handleClick} variant=\"success\">Save</Button>\n * )}\n * ?)\n */\nexport const useToast = (defaultOpts: UseToastOptions = {}) => {\n const toast = useChakraToast(defaultOpts)\n const toastIdRef = useRef<ToastId | null>(null)\n\n return (opts: UseToastOptions = {}) => {\n const toastProps: UseToastOptions = {\n render: ({ onClose }: { onClose: () => void }) => {\n const {\n variant = 'success',\n title = 'Success',\n description = '',\n } = opts\n\n return (\n <Toast\n variant={ variant }\n title={ title }\n description={ description }\n onClose={ onClose }\n />\n )\n },\n position: 'top',\n ...opts,\n }\n\n const { replacePreviousToast = false } = opts\n if (replacePreviousToast && toastIdRef && toastIdRef.current) {\n toast.update(toastIdRef.current, toastProps)\n } else {\n toastIdRef.current = toast(toastProps)\n }\n }\n}\n","import { PinVariant } from '../pin-input/types'\n\nexport const pinVariantMap: Record<PinVariant, string> = {\n green: 'success',\n running: 'success',\n yellow: 'info',\n inProgress: 'info',\n gray: 'subdued',\n notExecuted: 'subdued',\n red: 'destructive',\n rejected: 'destructive',\n}\n","import { PinSize, PinSizeTuple } from '../pin-input/types'\n\nexport const pinSizeMap: Record<PinSize, PinSizeTuple > = {\n sm: [ 4, 2 ],\n md: [ 5, 3 ],\n lg: [ 6, 4 ],\n}\n","import React from 'react'\nimport { Circle } from '../circle'\nimport { pinVariantMap } from './pin-variant-map'\nimport { pinSizeMap } from './pin-size-map'\nimport { StatusPinProps } from './types'\n\n/**\n * Status pins are meant to display the status of a specific entry.\n * @see Badge\n * @see {@link https://northlight/reference/status-pin}\n *\n * @example (Example)\n * (?\n * +\n * const sizes = ['lg', 'md', 'sm']\n * const variants = ['notExecuted', 'running', 'inProgress', 'rejected']\n *\n * const Example = () => {\n * return (\n * <Stack>\n * {variants.map((variant)=>(\n * <HStack spacing={4} alignItems=\"center\">\n * {sizes.map((size)=>(\n * <StatusPin size={size} variant={variant} />\n * ))}\n * </HStack>\n * ))}\n * </Stack>\n * )\n * }\n * render(<Example/>)\n * ?)\n *\n */\n\nexport const StatusPin = ({ size = 'md', variant, ...rest }: StatusPinProps) => {\n const pinColor = pinVariantMap[variant]\n const pinSizeTuple = pinSizeMap[size]\n const [ outerSize, innerSize ] = pinSizeTuple\n\n return (\n <Circle\n size={ outerSize }\n bg=\"transparent\"\n borderWidth=\"xs\"\n borderColor={ pinColor }\n { ...rest }\n >\n <Circle\n size={ innerSize }\n bg={ pinColor }\n />\n </Circle>\n )\n}\n","import React from 'react'\nimport {\n AlertDescription,\n AlertTitle,\n Alert as ChakraAlert,\n} from '@chakra-ui/react'\nimport { toastIconMap } from '../types'\nimport { Icon } from '../icon'\nimport { VStack } from '../stack'\nimport { AsyncErrorProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/async-error}\n * @example\n * (?\n * <AsyncError />\n * ?)\n *\n */\nexport const AsyncError = ({\n message = '',\n ...rest\n}: AsyncErrorProps) => (\n <ChakraAlert backgroundColor=\"background.default\" color=\"text.default\" width=\"100%\" { ...rest }>\n <VStack w=\"full\">\n <Icon as={ toastIconMap.error } color=\"icon.toast.error\" boxSize={ 6 } />\n <AlertTitle> Error </AlertTitle>\n { message && (\n <AlertDescription>{ message }</AlertDescription>\n ) }\n </VStack>\n </ChakraAlert>\n)\n","import React from 'react'\nimport { StepPanelProps } from './types'\nimport { TabPanel as ChakraStepPanel } from '../tabs'\n\n/**\n * Used to display content under specific step\n * @see Steps\n * @see StepPanels\n * @see {@link https://northlight.dev/reference/step-panel}\n * @example\n * (? <StepPanel>Step 1</StepPanel> ?)\n */\nexport const StepPanel = (props: StepPanelProps) => (\n <ChakraStepPanel padding={ 0 } { ...props } />\n)\n","import React from 'react'\nimport { Tabs as ChakraSteps } from '@chakra-ui/react'\nimport { StepsProps } from './types'\n\n/**\n * Context provider for steps tabs\n * @see StepList\n * @see StepPanels\n * @see {@link https://northlight.dev/reference/steps}\n * @example\n * (?\n <Steps>\n <StepList>\n <Step label=\"Step 1\" description=\"Name and email\" indicator={1} />\n <Step label=\"Step 2\" description=\"Pick a password\" indicator={2} />\n <Step label=\"Step 3\"\n description=\"Review\"\n indicator={<Icon as={ BrightnessSolid }\n size=\"xs\" /> }\n />\n </StepList>\n <StepPanels>\n <StepPanel>1</StepPanel>\n <StepPanel>2</StepPanel>\n <StepPanel>3</StepPanel>\n </StepPanels>\n </Steps>\n * ?)\n *\n *\n */\nexport const Steps = (props: StepsProps) => (\n <ChakraSteps isManual={ true } { ...props } />\n)\n","import React from 'react'\nimport { Box, Tab as ChakraStep, useMultiStyleConfig } from '@chakra-ui/react'\nimport { Capitalized, Lead } from '../typography'\nimport { Flex } from '../flex'\nimport { ring } from '../../utils'\nimport { StepProps } from './types'\n\n/**\n * Renders a step in a step list\n * @see StepList\n * @see Steps\n * @see {@link https://northlight.dev/reference/step}\n * @example\n * (?\n <Steps>\n <StepList>\n <Step label=\"Step 1\" description=\"Personal information\" indicator={1} />\n </StepList>\n</Steps>\n * ?)\n *\n */\nexport const Step = ({ label, description, indicator, ...rest }: StepProps) => {\n const {\n step,\n label: labelStyle,\n description: descriptionStyle,\n indicator: indicatorStyle,\n } = useMultiStyleConfig('Step')\n return (\n <ChakraStep\n sx={ step }\n { ...rest }\n >\n <Flex flexDirection=\"row\" alignItems=\"flex-start\" gap=\"4\" _groupFocusVisible={ ring }>\n { indicator && (\n <Box\n sx={ indicatorStyle }\n data-part=\"indicator\"\n justifyContent=\"center\"\n >\n { indicator }\n </Box>\n ) }\n <Flex flexDirection=\"column\">\n <Capitalized sx={ labelStyle }>{ label }</Capitalized>\n { description && <Lead sx={ descriptionStyle }>{ description }</Lead> }\n </Flex>\n </Flex>\n </ChakraStep>\n )\n}\n","import React, { Children } from 'react'\nimport { TabList as ChakraStepList, useStyleConfig } from '@chakra-ui/react'\nimport { StepListProps } from './types'\n\n/**\n * Used to render a navigational list of steps\n * @see Step\n * @see Steps\n * @see {@link https://northlight.dev/reference/step-list}\n * @example\n * (?\n * <Steps>\n <StepList>\n <Step label=\"Step 1\" description=\"Name and email\" />\n <Step label=\"Step 2\" description=\"Pick a password\" />\n <Step label=\"Step 3\" description=\"Review\" />\n </StepList>\n </Steps>\n * ?)\n *\n */\nexport const StepList = ({ children, ...rest }: StepListProps) => {\n const tabs = Children.count(children)\n const styles = useStyleConfig('StepList', { tabs })\n return (\n <ChakraStepList { ...rest } sx={ styles }>\n { children }\n </ChakraStepList>\n )\n}\n","import React, { forwardRef, useEffect } from 'react'\nimport { useClipboard, useMultiStyleConfig } from '@chakra-ui/react'\nimport { CheckDuo, CopyDuo } from '@northlight/icons'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { Tooltip } from '../tooltip'\nimport { Input, InputGroup, InputRightElement } from '../input'\nimport { ClipboardInputProps } from './types'\n\n/**\n * Meant to display non editable copiable text\n * @see {@link https://northlight.dev/reference/clipboard-input}\n *\n * @example (Example)\n * ## Your token\n * (?\n * <ClipboardInput value=\"8aa6d075-eae2-49b3-8f65-318ece801b3b\" aria-label=\"Copy token\" />\n * ?)\n *\n */\nexport const ClipboardInput = forwardRef<HTMLDivElement, ClipboardInputProps>(({\n size = 'md',\n value,\n 'aria-label': ariaLabel,\n ...rest\n}, ref) => {\n const { hasCopied, onCopy, setValue } = useClipboard(value)\n const { button, icon, tooltip } = useMultiStyleConfig('ClipboardInput', { size })\n\n useEffect(() => {\n setValue(value)\n }, [ value ])\n\n return (\n <InputGroup size={ size } data-testid=\"clipboard-input-test-id\" ref={ ref }>\n <Input\n textOverflow=\"ellipsis\"\n aria-label={ `Value to copy: ${value}` }\n isReadOnly={ true }\n value={ value }\n { ...rest }\n />\n <InputRightElement>\n <Tooltip\n label={ hasCopied ? 'Copied!' : 'Copy' }\n placement=\"left\"\n closeOnClick={ false }\n sx={ tooltip }\n >\n <IconButton\n aria-label={ ariaLabel || 'Click to copy' }\n onClick={ onCopy }\n variant={ hasCopied ? 'success' : 'default' }\n sx={ button }\n >\n <Icon\n as={ hasCopied ? CheckDuo : CopyDuo }\n sx={ icon }\n />\n </IconButton>\n </Tooltip>\n </InputRightElement>\n </InputGroup>\n )\n})\n","import React, { cloneElement, useCallback, useRef } from 'react'\nimport { Grid, useStyleConfig } from '@chakra-ui/react'\nimport { SplitPaneProps } from './types'\n\n/**\n * Used for split screen layouts\n * @see PaneItem\n * @see PaneDivider\n * @see {@link https://northlight.dev/reference/split-pane}\n *\n */\nexport const SplitPane = ({\n children,\n initialSplit = 50,\n isOpen,\n minLeftWidth = 25,\n minRightWidth = 50,\n ...rest\n}: SplitPaneProps) => {\n const dividerRef = useRef<HTMLDivElement | null>(null)\n\n const mouseDownHandler = useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.target !== dividerRef.current) {\n return\n }\n let requestedFrame: number | null = null\n\n e.stopPropagation()\n e.preventDefault()\n\n const target = e.currentTarget\n\n target.setPointerCapture(e.pointerId)\n\n target.onpointermove = (moveEvent: PointerEvent) => {\n if (!(moveEvent.buttons && 1)) {\n target.onpointermove = null\n target.releasePointerCapture(moveEvent.pointerId)\n return\n }\n\n moveEvent.stopPropagation()\n moveEvent.preventDefault()\n\n if (!requestedFrame) {\n const { offsetX } = moveEvent\n\n requestedFrame = requestAnimationFrame(() => {\n target.style.setProperty(\n '--split-pos',\n `${Math.max(offsetX, 0)}px`\n )\n requestedFrame = null\n })\n }\n }\n },\n []\n )\n\n const containerStyle = useStyleConfig('SplitPane', { minLeftWidth, minRightWidth, initialSplit, isOpen })\n\n return (\n <Grid\n sx={ containerStyle }\n onPointerDown={ mouseDownHandler }\n { ...rest }\n >\n { children[0] }\n { isOpen && cloneElement(children[1], { ref: dividerRef }) }\n { isOpen && children[2] }\n </Grid>\n )\n}\n","import React from 'react'\nimport { GridItem, GridItemProps } from '@chakra-ui/react'\n\n/**\n * Wrapper around child of split pane\n * @see SplitPane\n * @see {@link https://northlight.dev/reference/PaneItem}\n *\n */\nexport const PaneItem = ({ children, ...rest } : GridItemProps) => (\n <GridItem overflow=\"hidden\" { ...rest }>\n { children }\n </GridItem>\n)\n","import React from 'react'\nimport { Box, BoxProps, forwardRef, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * Simple vertical line for split screen\n * @see SplitPane\n * @see PaneItem\n * @see {@link https://northlight.dev/reference/pane-divider}\n * @example\n * (?\n * <Box h=\"xs\">\n * <PaneDivider />\n * </Box>\n * ?)\n * */\nexport const PaneDivider = forwardRef((props: BoxProps, ref: any) => {\n const style = useStyleConfig('PaneDivider')\n return (\n <Box\n ref={ ref }\n sx={ style }\n { ...props }\n />\n )\n})\n","import React from 'react'\nimport { useToken } from '@chakra-ui/system'\nimport { StepStackProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\nimport { HStack, Stack } from '../stack'\nimport { Divider } from '../divider'\nimport { Label } from '../typography'\nimport { Box } from '../box'\n/**\n Util wrapper for creating ordered vertical layouts by stack\n @see {@link https://northlight.dev/reference/step-stack}\n @example\n The component takes all the props that a normal stack takes, with the addition of a\n rowHeight prop, which is needed to get the correct height for the grey\n line that goes between the steps. Any valid css height unit, px, rem, %,\n and tokens xs, sm are valid input for the <Code>rowHeight</Code> prop,\n for example, <Code>rowHeight=\"3rem\"</Code>.\n <br /><br />\n ## Simple step stack\n (?\n <StepStack maxW=\"sm\" spacing=\"4\" rowHeight=\"10\">\n { Array.from({length: 5}, (_, i) => i).map((i) => <Input key={ i } />) }\n </StepStack>\n ?)\n <br />\n ## Example with flex-start stepCircleAlignment prop\n (?\n <StepStack\n maxW=\"sm\"\n spacing=\"4\"\n rowHeight=\"10\"\n stepCircleAlignment=\"flex-start\"\n stepCircleMarginTopPx={ 40 }\n >\n { Array.from({ length: 5 }, (_, i) => i).map((i) => (\n <VStack key={ i }>\n <Center\n width={ 400 }\n height={ 24 }\n borderRadius={ 10 }\n backgroundColor=\"blue.500\"\n color=\"white\"\n >\n <VStack spacing=\"5\">\n <Text>Step { i + 1 }</Text>\n </VStack>\n </Center>\n <Center\n width={ 400 }\n height={ 36 }\n borderRadius={ 10 }\n backgroundColor=\"green.500\"\n color=\"white\"\n >\n <VStack spacing=\"5\">\n <Text>Some information</Text>\n </VStack>\n </Center>\n </VStack>\n )) }\n </StepStack>\n ?)\n*/\nexport const StepStack = ({\n children,\n spacing = '4',\n rowHeight = '10',\n stepCircleAlignment = 'center',\n stepCircleMarginTopPx = 0,\n ...rest\n}: StepStackProps) => {\n const rows = getChildrenWithProps(children, {})\n const parsedRowHeight = useToken('sizes', rowHeight)\n\n return (\n <Stack spacing={ spacing } position=\"relative\" { ...rest }>\n { rows.map(\n (row, i) => (\n <HStack key={ `row-${i as number}` } alignItems={ stepCircleAlignment }>\n <>\n <Box\n borderRadius=\"full\"\n bgColor=\"blue.500\"\n boxSize=\"6\"\n minW=\"6\"\n minH=\"6\"\n zIndex=\"docked\"\n marginTop={ `${stepCircleMarginTopPx}px` }\n >\n <Label\n size=\"sm\"\n sx={ { color: 'text.inverted' } }\n w=\"max-content\"\n textAlign=\"center\"\n >\n { i + 1 }\n </Label>\n </Box>\n { row }\n </>\n </HStack>\n )\n ) }\n <Divider\n orientation=\"vertical\"\n left=\"3\"\n top={ `calc(${parsedRowHeight} / 2 + ${stepCircleMarginTopPx}px)` }\n h={ `calc(100% - ${parsedRowHeight} - ${stepCircleMarginTopPx}px)` }\n position=\"absolute\"\n />\n </Stack>\n )\n}\n","import React from 'react'\nimport {\n GroupBase,\n SelectComponentsConfig,\n chakraComponents,\n} from 'chakra-react-select'\nimport { PlusSolid } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { Flex } from '../flex'\nimport { Text } from '../text'\nimport { Option } from '../select'\n\nconst { Option: ChakraOption } = chakraComponents\n\ntype CustomComponents<T extends string> =\nSelectComponentsConfig<Option<T>, false, GroupBase<Option<T>>>\n\nexport const getCustomComponents = <T extends string = string>(): CustomComponents<T> => (\n {\n Option: ({ children, ...props }) => (\n <ChakraOption { ...props }>\n { props.data.isCreation && (\n <Flex\n mr={ 3 }\n width={ 1.5 }\n mb={ 0.5 }\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Icon as={ PlusSolid } color=\"brand\" />\n </Flex>\n ) }\n { !props.data.isCreation && <Box mr={ 3 } width={ 1.5 } /> }\n <Text\n color={ props.data.isCreation ? 'text.brand' : 'text.default' }\n fontWeight={ props.data.isCreation ? 'semibold' : 'normal' }\n >\n { children }\n </Text>\n </ChakraOption>\n ),\n }\n)\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\nimport {\n ActionMeta,\n CreatableProps,\n CreatableSelect,\n GroupBase,\n SingleValue,\n} from 'chakra-react-select'\nimport { PlusSolid } from '@northlight/icons'\nimport { Box, Icon, theme } from '@chakra-ui/react'\nimport { any, isEmpty, prop, toLower, trim } from 'ramda'\nimport { uniqBy } from 'yafu'\nimport { customSelectStyles } from '../../theme/components/select/custom-select'\nimport type {\n CreatableSelectDropdownProps,\n CreationOption,\n CreationOptionValue,\n} from './types'\nimport { getCustomComponents } from './custom-components'\nimport { EditableText } from '../editable-text'\nimport type { Option } from '../select/types'\n\n/**\n * A dropdown component that allows users to select a value from given options\n * or create a new one if it doesn't exist.\n * @see {@link https://northlight.dev/reference/creatable-select-dropdown}\n *\n * @example (Example)\n * (?\n * () => {\n * const [artist, setArtist] = useState(null);\n * const [element, setElement] = useState({ label: 'Technique', value: 'technique' })\n * const someOptions = [\n * { label: 'Scooter', value: 'scooter' },\n * { label: 'Snoop Doggy Dogg', value: 'snoop-dogg' },\n * ];\n *\n * const someOtherOptions = [\n * { label: 'Vision', value: 'vision' },\n * { label: 'Technique', value: 'technique' },\n * { label: 'Expression', value: 'expression' }\n * ];\n *\n * return (\n * <VStack gap={10} alignItems={\"flex-start\"}>\n * <Box align=\"left\">\n * <H1>Basic example</H1>\n * <H3>Select the best artist</H3>\n * <CreatableSelectDropdown\n * standardOptions={someOptions}\n * onOptionChange={setArtist}\n * width=\"300px\"\n * value={artist ? artist.value : undefined}\n * />\n * {artist && artist.value !== 'Add option...' && (\n * <H3 py={8}>The best artist is: {artist.label}</H3>\n * )}\n * </Box>\n * <Box align=\"left\">\n * <H1>Pre-selected option</H1>\n * <H3>What is the quintessential element of an exceptional artisan?</H3>\n * <CreatableSelectDropdown\n * standardOptions={someOtherOptions}\n * onOptionChange={setElement}\n * width=\"300px\"\n * value={element ? element.value : undefined}\n * />\n * {element && element.value !== 'Add option...' && (\n * <H3 py={8}>\n * {element.value === 'vision' && (\n * 'The artist\\'s vision shapes their creative world.'\n * )}\n * {element.value === 'technique' && (\n * 'Technique is the legacy\\'s bedrock.'\n * )}\n * {element.value === 'expression' && (\n * 'Expression communicates the artist\\'s inner voice.'\n * )}\n * {element.value !== 'vision' &&\n * element.value !== 'technique' &&\n * element.value !== 'expression' && (\n * 'Absent the selection of legitimate alternatives.'\n * )}\n * </H3>\n * )}\n * </Box>\n * </VStack>\n * );\n * }\n * ?)\n */\n\nconst CREATION_OPTION_VALUE: CreationOptionValue = 'add_field'\n\nexport const CreatableSelectDropdown = <T extends string = string>({\n standardOptions,\n initialPlaceholder = 'Select or create...',\n addOptionPlaceholder = 'Select or create...',\n creationOption = {\n label: 'Add field',\n value: CREATION_OPTION_VALUE,\n isCreation: true,\n },\n onOptionChange,\n variant = 'outline',\n defaultValue,\n value,\n menuPlacement = 'bottom',\n ...restProps\n}: CreatableSelectDropdownProps<T>) => {\n const [ selectedOption, setSelectedOption ] =\n useState<Option<T | CreationOptionValue > | null>(() => {\n const targetValue = value ?? defaultValue ?? null\n return targetValue\n ? standardOptions.find((option) => option.value === targetValue) ?? null\n : null\n })\n\n const [ newOptionPlaceholder, setNewOptionPlaceholder ] =\n useState(initialPlaceholder)\n const [ createdOptions, setCreatedOptions ] = useState<Option<T>[]>([])\n const [ createNewOption, setCreateNewOption ] = useState<boolean>(false)\n const [ addFieldInputValue, setAddFieldInputValue ] = useState<string>('')\n\n function isCreationOption (option: any): option is CreationOption {\n return option && typeof option.isCreation === 'boolean'\n }\n\n const ref = useRef<HTMLDivElement>(null)\n\n const checkIfNewOptionTextExistsInOptions = (\n string: string,\n options: Option[]\n ) => any((option) => toLower(option.value) === string, options)\n\n const handleCreateOption = (newOptionTextString: T) => {\n setCreateNewOption(true)\n\n if (isEmpty(trim(newOptionTextString))) {\n return\n }\n\n const newOptionTextLower = toLower(newOptionTextString)\n\n const newOptionExistsInStandardOptions =\n checkIfNewOptionTextExistsInOptions(newOptionTextLower, standardOptions)\n\n const newOptionExistsInCreatedOptions = checkIfNewOptionTextExistsInOptions(\n newOptionTextLower,\n createdOptions\n )\n\n if (!newOptionExistsInCreatedOptions && !newOptionExistsInStandardOptions) {\n const newOption = {\n label: newOptionTextString,\n value: newOptionTextString,\n }\n setCreatedOptions((currentCreatedOptions) => [\n ...currentCreatedOptions,\n newOption,\n ])\n setSelectedOption(newOption)\n onOptionChange(newOption)\n }\n setNewOptionPlaceholder(initialPlaceholder)\n }\n\n const handleChange = (\n newValue: SingleValue<Option<T | CreationOptionValue>>,\n _actionMeta: ActionMeta<Option<T | CreationOptionValue>>\n ) => {\n const option = newValue\n\n if (newValue?.isCreation) {\n setCreateNewOption(true)\n }\n\n if (option == null) {\n return\n }\n\n if (isCreationOption(option)) {\n setNewOptionPlaceholder(addOptionPlaceholder)\n } else {\n setNewOptionPlaceholder(initialPlaceholder)\n }\n if (option.value !== CREATION_OPTION_VALUE) {\n setSelectedOption(option)\n onOptionChange(option)\n }\n }\n\n const combinedOptions = useMemo(\n (): Option<T>[] => uniqBy(prop('value'), [ ...standardOptions, ...createdOptions ]),\n [ standardOptions, createdOptions ]\n )\n\n const customOptions: Option<T | CreationOptionValue>[] = [\n {\n ...creationOption,\n icon: <Icon as={ PlusSolid } color=\"brand\" />,\n },\n ...combinedOptions,\n ]\n\n useEffect(() => {\n const newSelectedOption =\n combinedOptions.find((option) => option.value === value) ?? null\n if (selectedOption?.value !== newSelectedOption?.value) {\n setSelectedOption(newSelectedOption)\n }\n }, [ value, combinedOptions ])\n\n return (\n <Box\n ref={ ref }\n w=\"full\"\n borderRadius=\"none\"\n >\n { createNewOption && (\n <EditableText\n value={ addFieldInputValue }\n startWithEditView={ true }\n onChange={ (v) => {\n setAddFieldInputValue(v)\n } }\n submitOnBlur={ false }\n onCancel={ () => {\n setAddFieldInputValue('')\n setCreateNewOption(false)\n } }\n onSubmit={ (v) => {\n handleCreateOption(v as T)\n setCreateNewOption(false)\n } }\n variant=\"brand\"\n sx={ {\n minWidth: '100%',\n width: '100%',\n } }\n />\n ) }\n { !createNewOption && (\n <CreatableSelect<Option<T | CreationOptionValue>, false,\n GroupBase<Option<T | CreationOptionValue>>>\n menuPlacement={ menuPlacement }\n chakraStyles={ {\n ...customSelectStyles,\n container: (provided) => ({\n ...provided,\n width: '100%',\n }),\n option: (provided, { isSelected }) => ({\n ...provided,\n ...(isSelected && {\n color: 'black',\n }),\n }),\n } }\n components={ getCustomComponents<T | CreationOptionValue>() }\n options={ customOptions }\n menuPortalTarget={ document.body }\n styles={ { menuPortal: (base) => ({ ...base, zIndex: theme.zIndices.popover }) } }\n value={ selectedOption }\n onChange={ handleChange }\n isMulti={ false }\n onCreateOption={ (v) => {\n setCreateNewOption(true)\n setAddFieldInputValue(v)\n } }\n placeholder={ newOptionPlaceholder }\n useBasicStyles={ true }\n variant={ variant }\n { ...(restProps as CreatableProps<\n Option<T | CreationOptionValue>, false,\n GroupBase<Option<T | CreationOptionValue>>>\n ) }\n />\n ) }\n </Box>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Button, InputGroup, InputRightElement, useDisclosure } from '@chakra-ui/react'\nimport { is } from 'ramda'\nimport { ComboPickerOption, ComboPickerProps, ComboPickerValue } from './types'\nimport { Select, SingleValue } from '../select'\nimport { Box } from '../box'\nimport { FormattedNumberInput } from '../text-field'\nimport { clamp } from '../../utils'\n\n/**\n * @see ComboPickerField\n * @see {@link https://northlight.dev/reference/combo-picker}\n */\nexport const ComboPicker = ({\n onChange,\n options,\n size,\n value: valueProp,\n placeholder,\n precision,\n formatPreset,\n isDisabled,\n isReadOnly,\n defaultToZeroIfEmpty = true,\n max = Infinity,\n min = -Infinity,\n ...rest\n}: ComboPickerProps) => {\n const { isOpen, onToggle, onClose } = useDisclosure()\n const [ inputValueState, setInputValueState ] = useState(valueProp?.input)\n const [ selectOptionState, setselectOptionState ] = useState(valueProp?.option)\n const [ enableSelectInput, setEnableSelectInput ] = useState(false)\n\n const isInputValueControlled = typeof valueProp?.input !== 'undefined'\n const inputValue = isInputValueControlled ? valueProp.input : inputValueState\n\n const isOptionControlled = typeof valueProp?.option !== 'undefined'\n const selectOption = isOptionControlled ? valueProp.option : selectOptionState\n\n const buttonRef = useRef<any>()\n const selectRef = useRef<any>()\n\n const getNewValue = (option?: ComboPickerOption, input?: number): ComboPickerValue => {\n const newValueOption = option ?? options[0]\n\n return (is(Number, input))\n ? { input: Number(input), option: newValueOption }\n : { option: newValueOption }\n }\n\n const handleInputChange = (newInputvalue?: number) => {\n const newValue = getNewValue(selectOption, newInputvalue)\n\n setInputValueState(newValue.input)\n onChange?.(newValue)\n }\n\n const handleSelectClose = () => {\n if (buttonRef.current) {\n buttonRef.current.focus()\n setEnableSelectInput(false)\n }\n\n onClose()\n }\n\n const handleSelectChange = (selectedOption: SingleValue<ComboPickerOption>) => {\n if (selectedOption) {\n setselectOptionState(selectedOption)\n onChange?.(getNewValue(selectedOption, inputValue))\n\n if (isOpen) {\n handleSelectClose()\n }\n }\n }\n\n const handleSelectToggle = () => {\n if (!isOpen) {\n setEnableSelectInput(true)\n }\n\n onToggle()\n }\n\n useEffect(() => {\n if (enableSelectInput) {\n selectRef.current.focus()\n }\n }, [ enableSelectInput ])\n\n useEffect(() => {\n const needsToCorrectOption = !selectOption\n const needsToCorrectInput = !is(Number, inputValue) && defaultToZeroIfEmpty\n\n const option = needsToCorrectOption ? options[0] : selectOption\n const input = needsToCorrectInput ? clamp(min, max, 0) : inputValue\n\n if (needsToCorrectOption) {\n setselectOptionState(option)\n }\n\n if (needsToCorrectInput) {\n setInputValueState(input)\n }\n\n if (needsToCorrectOption || needsToCorrectInput) {\n onChange?.(getNewValue(option, input))\n }\n }, [ inputValue, defaultToZeroIfEmpty ])\n\n const buttonWidth = (buttonRef.current?.offsetWidth ?? 0)\n\n return (\n <InputGroup>\n <FormattedNumberInput\n width=\"100%\"\n onChange={ (values) => handleInputChange(values.floatValue) }\n value={ inputValue }\n placeholder={ placeholder }\n size={ size }\n numberOfDecimals={ precision }\n preset={ formatPreset }\n disabled={ isDisabled }\n readOnly={ isReadOnly }\n min={ min }\n max={ max }\n { ...rest }\n pr={ `${buttonWidth >= 0 ? buttonWidth + 10 : 0}px` }\n />\n <InputRightElement\n width=\"auto\"\n display=\"flex\"\n justifyContent=\"flex-end\"\n padding={ 2 }\n >\n <Button\n ref={ buttonRef }\n isDisabled={ isDisabled }\n onClick={ handleSelectToggle }\n flexShrink=\"0\"\n height=\"100%\"\n >\n { selectOption?.label ?? '' }\n </Button>\n </InputRightElement>\n <Box position=\"absolute\" width=\"100%\">\n <Select\n ref={ selectRef }\n chakraStyles={ { container: (provided) => ({\n ...provided,\n position: 'absolute',\n visibility: 'hidden',\n right: '0',\n }),\n input: (provided) => ({\n ...provided,\n pointerEvents: 'none',\n color: 'transparent',\n display: enableSelectInput ? 'block' : 'none',\n }),\n menu: (provided) => ({\n ...provided,\n width: 'auto',\n right: '0',\n }) } }\n options={ options }\n value={ selectOption ? selectOption.value : undefined }\n onChange={ handleSelectChange }\n onBlur={ handleSelectClose }\n menuIsOpen={ isOpen }\n />\n </Box>\n </InputGroup>\n )\n}\n","import React from 'react'\nimport { ComboPickerFieldProps } from './types'\nimport { ComboPicker } from './combo-picker'\nimport { Field } from '../form'\n\n/**\n * The <ComboPicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see ComboPicker\n * @see {@link https://northlight.dev/reference/combo-picker}\n *\n * @example (Example)\n * ##Default number format preset(EU) with default decimals(2):\n * (?\n * <Form initialValues={{\"budget\": {input: 123456789.123, option:{label: 'EUR', value: 'eur'}}}}>\n * <ComboPickerField\n * label=\"Budget\"\n * name=\"budget\"\n * placeholder=\"Amount\"\n * options={ [\n * { label: 'USD', value: 'usd' },\n * { label: 'EUR', value: 'eur' },\n * { label: 'SEK', value: 'sek' },\n * ] }\n * />\n * </Form>\n *\n * ?)\n * <br />\n * ##US number format preset with three decimals as Disabled:\n * (?\n * <Form initialValues={{\"budget\": {input: 123456789.1234, option:{label: 'USD', value: 'usd'}}}}>\n * <ComboPickerField\n * label=\"Budget\"\n * name=\"budget\"\n * precision={ 3 }\n * isDisabled={true}\n * formatPreset='us'\n * options={ [\n * { label: 'USD', value: 'usd' },\n * { label: 'EUR', value: 'eur' },\n * { label: 'SEK', value: 'sek' },\n * ] }\n * />\n * </Form>\n *\n * ?)\n * <br />\n * ##NOR number format preset with four decimals as ReadOnly:\n * (?\n * <Form initialValues={{\"budget\": {input: 123456789.1234, option:{label: 'SEK', value: 'sek'}}}}>\n * <ComboPickerField\n * label=\"Budget\"\n * name=\"budget\"\n * precision={ 4 }\n * isReadOnly={true}\n * formatPreset='nor'\n * options={ [\n * { label: 'USD', value: 'usd' },\n * { label: 'EUR', value: 'eur' },\n * { label: 'SEK', value: 'sek' },\n * ] }\n * />\n * </Form>\n *\n * ?)\n * <br />\n */\nexport const ComboPickerField = ({\n name,\n isRequired,\n direction = 'column',\n label,\n validate,\n onChange: onChangeCallback,\n ...rest\n}: ComboPickerFieldProps) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ value, onChange }) => (\n <ComboPicker\n data-testid=\"combo-picker-test-id\"\n aria-label={ label }\n onChange={ (comboPickerValue) => {\n onChange(comboPickerValue)\n onChangeCallback?.(comboPickerValue)\n } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n\n)\n"],"names":["ChakraAccordion","ChakraAccordionButton","ChakraAccordionPanel","ChakraAccordionItem","useState","useEffect","useInterval","useFocusManager","useRef","isNil","last","map","prop","difference","useMediaQuery","useToken","palette","replace","split","path","isValidElement","cloneElement","__spreadValues","T","Children","createContext","useContext","keys","omit","__spreadProps","Button","keyframes","Blinker","Checkbox","PinInput","Select","Radio","Tabs","Textarea","Switch","Tag","Alert","NumberInput","NotificationIconButton","Calendar","DragAndDrop","merge","DatePicker","FlipButton","Spinner","randomColor","Avatar","Modal","cssVar","Tooltip","Icon","ClipboardInput","ColorPicker","Step","StepList","H1","H2","H3","H4","H5","H6","Blockquote","Tiny","Capitalized","Lead","Small","P","Label","NumVal","SplitPane","PaneDivider","Carousel","EditableText","isEmpty","Toolbox","FilePicker","Table","mode","Menu","Badge","Popover","WebappSystemTokensSet","WebappComponentsTokensSet","typography","TottSystemTokensSet","TottComponentsTokensSet","coreZIndex","coreSizing","coreSpacing","coreFontWeight","coreBoxShadow","coreFontSize","coreLineHeight","coreBorderRadius","extendTheme","identity","__objRest","CreatableSelect","any","Box","useMultiStyleConfig","chakra","ChakraAlert","ChakraAspectRatio","forwardRef","ChakraIcon","useStyleConfig","UserSquareDuo","BusinessContactDuo","Heading","ChakraText","FormLabel","VisuallyHidden","ifElse","gt","always","inc","dec","defaultTo","take","HStack","ChakraBadge","ChakraSpinner","ChakraButton","ChakraCheckbox","is","values","forEach","trim","joiResolver","useForm","useImperativeHandle","equals","FormProvider","useFormContext","FormControl","Stack","Controller","FormErrorMessage","Flex","CheckboxGroup","_a","ChakraIconButton","CheckDuo","ChakraPopover","ChevronUpDuo","ChevronDownDuo","Portal","useDisclosure","useBoolean","PopoverTrigger","ColorsDuo","PopoverContent","PopoverHeader","PopoverBody","FocusScope","SimpleGrid","useCheckboxGroupState","useRadioGroupState","useCheckboxGroup","useRadioGroup","useCheckboxGroupItem","useRadio","useFocusRing","mergeProps","mergeAll","CheckSolid","SlideFade","Text","useButton","CalendarDuo","useDateSegment","toLower","useDateFieldState","createCalendar","useDateField","find","ChakraTable","date","useCalendarCell","today","isSameMonth","memo","useCalendarGrid","getWeeksInMonth","Thead","Tr","Tbody","times","useDateFormatter","useLocale","useCalendar","useMemo","ChevronLeftSolid","ChevronRightSolid","useCalendarState","GregorianCalendar","I18nProvider","useDatePickerState","useDatePicker","parseDate","PopoverAnchor","InputGroup","InputRightElement","XCloseSolid","clickable","useClickable","Link","ReactRouterLink","startOfWeek","endOfWeek","startOfMonth","endOfMonth","startOfYear","endOfYear","Spacer","has","useDateRangePickerState","useDateRangePicker","useOutsideClick","not","all","CheckCircleSolid","AlertTriangleSolid","AlertCircleSolid","AlertOctagonSolid","InfoSolid","BrightnessSolid","HelpCircleSolid","VStack","ChakraTooltip","Circle","TrashDuo","Center","ChakraFade","ChakraScaleFade","ChakraSlide","ChakraSlideFade","ChakraCollapse","CloseButton","ChakraRadio","ChakraRadioGroup","motion","useMotionValue","animate","chakraComponents","SearchDuo","filter","test","AsyncSelect","DndContext","ChakraTag","OverflowIndicator","DefaultOverflowIndicator","TagLabel","TagRightIcon","DotsMatrixSolid","useDraggable","CSS","useDroppable","SortableContext","useSortable","DragDuo","remove","insert","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","indexOf","arrayMove","rectIntersection","rectSortingStrategy","DragOverlay","VariableSizeList","VariableSizeGrid","useEditableControls","useEditableState","EditDuo","Editable","InputLeftElement","Input","EditablePreview","ChakraEditableInput","ChakraModal","ModalOverlay","ModalContent","ModalCloseButton","ChakraModalBody","ModalHeader","Slider","SliderTrack","SliderFilledTrack","SliderThumb","ZoomInDuo","ModalFooter","ChakraProgress","intersection","Image","Image03Solid","UploadCloudSolid","FileBlankDuo","Fade","EditBoxDuo","DownloadDuo","TrashFullDuo","Image03Duo","ChakraImage","findIndex","concat","theme","webappTheme","ChakraProvider","ChakraMenu","ChakraNumberInputStepper","Divider","NumberIncrementStepper","ChevronUpSolid","NumberDecrementStepper","ChevronDownSolid","head","match","length","ChakraNumberInput","NumberInputField","ChakraPinInput","propEq","ChakraReactSelect","ChakraSwitch","ChakraTabPanel","ChakraTabs","ChakraTextarea","numericFormatter","NumericFormat","BellSolid","useChakraToast","AlertTitle","AlertDescription","ChakraStepPanel","ChakraSteps","ChakraStep","ChakraStepList","useClipboard","CopyDuo","useCallback","Grid","GridItem","PlusSolid","_b","uniqBy"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA8CO,QAAM,SAAY,GAAA,CAAC,KACxB,qBAAA,KAAA,CAAA,aAAA,CAACA,uCAAqB,KAAQ,CAAA;;;;;;;;;;;;;;;;;;AC3BzB,QAAM,eAAkB,GAAA,CAAC,KAC9B,qBAAA,KAAA,CAAA,aAAA,CAACC,6CAA2B,KAAQ,CAAA;;;;;;;;;;;;;;;;;;ACX/B,QAAM,cAAiB,GAAA,CAAC,KAC7B,qBAAA,KAAA,CAAA,aAAA,CAACC,4CAA0B,KAAQ,CAAA;;;;;;;;;;;;;;;;;;ACL9B,QAAM,aAAgB,GAAA,CAAC,KAC5B,qBAAA,KAAA,CAAA,aAAA,CAACC,2CAAyB,KAAQ,CAAA;;ACLvB,QAAA,WAAA,GAAc,CAAI,KAAA,EAAU,KAAkB,KAAA;EACzD,EAAA,MAAM,CAAE,cAAA,EAAgB,iBAAkB,CAAA,GAAIC,eAAY,KAAK,CAAA,CAAA;EAE/D,EAAAC,eAAA,CAAU,MAAM;EACd,IAAM,MAAA,OAAA,GAAU,WAAW,MAAM;EAC/B,MAAA,iBAAA,CAAkB,KAAK,CAAA,CAAA;EAAA,OACtB,KAAK,CAAA,CAAA;EACR,IAAA,OAAO,MAAM;EACX,MAAA,YAAA,CAAa,OAAO,CAAA,CAAA;EAAA,KACtB,CAAA;EAAA,GACC,EAAA,CAAE,KAAO,EAAA,KAAM,CAAC,CAAA,CAAA;EAEnB,EAAO,OAAA,cAAA,CAAA;EACT;;ACZO,QAAM,iBAAoB,GAAA,CAAC,MAAiB,GAAA,EAAA,EAAI,QAAgB,GAAQ,KAAA;EAC7E,EAAA,MAAM,CAAE,IAAA,EAAM,OAAQ,CAAA,GAAID,eAAS,GAAG,CAAA,CAAA;EAEtC,EAAAE,iBAAA,CAAY,MAAM;EAChB,IAAI,IAAA,IAAA,CAAK,WAAW,CAAG,EAAA;EACrB,MAAA,OAAA,CAAQ,GAAG,CAAA,CAAA;EAAA,KACN,MAAA;EACL,MAAA,OAAA,CAAQ,GAAG,IAAO,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KACpB;EAAA,KACC,KAAK,CAAA,CAAA;EACR,EAAA,OAAO,GAAG,MAAS,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA;EACrB;;ECda,MAAA,oBAAA,GAAuB,CAAC,GAAwB,KAAA;EAC3D,EAAA,MAAM,UAAa,GAAA,EAAA,CAAA;EACnB,EAAA,IAAI,WAAc,GAAA,CAAA,CAAA;EAClB,EAAM,MAAA,eAAA,GAAkB,GAAI,CAAA,YAAA,GAAe,GAAI,CAAA,YAAA,CAAA;EAC/C,EAAA,MAAM,oBAAoB,GAAI,CAAA,SAAA,CAAA;EAC9B,EAAM,MAAA,cAAA,GAAiB,YAAY,MAAM;EACvC,IAAA,IAAI,eAAe,UAAY,EAAA;EAC7B,MAAA,aAAA,CAAc,cAAc,CAAA,CAAA;EAAA,KACvB,MAAA;EACL,MAAe,WAAA,IAAA,CAAA,CAAA;EACf,MAAA,MAAM,iBAAiB,WAAc,GAAA,UAAA,CAAA;EACrC,MAAA,MAAM,MAAS,GAAA,CAAA,GAAA,CAAK,CAAI,GAAA,cAAA,KAAmB,CAAI,GAAA,cAAA,CAAA,CAAA;EAE/C,MAAI,GAAA,CAAA,SAAA,GAAY,iBAAsB,GAAA,CAAA,eAAA,GAAkB,iBAAqB,IAAA,MAAA,CAAA;EAAA,KAC/E;EAAA,KACC,EAAE,CAAA,CAAA;EACP,CAAA;;ACNa,QAAA,iBAAA,GAAoB,CAAC,UAAA,EAAuC,QAAwB,KAAA;EAC/F,EAAAD,eAAA,CAAU,MAAM;EACd,IAAA,MAAM,MAAM,UAAW,CAAA,OAAA,CAAA;EACvB,IAAA,IAAI,GAAK,EAAA;EACP,MAAA,oBAAA,CAAqB,GAAG,CAAA,CAAA;EAAA,KAC1B;EAAA,GACF,EAAG,CAAE,QAAS,CAAC,CAAA,CAAA;EACjB;;ACfa,QAAA,aAAA,GAAgB,CAAC,OAAoB,KAAA;EAChD,EAAM,MAAA;EAAA,IACJ,SAAW,EAAA,IAAA;EAAA,IACX,aAAe,EAAA,QAAA;EAAA,IACf,UAAA;EAAA,IACA,SAAA;EAAA,MACEE,qBAAgB,EAAA,CAAA;EAEpB,EAAA,MAAM,WAAc,GAAA;EAAA,IAClB,UAAY,EAAA;EAAA,MACV,IAAM,EAAA,IAAA;EAAA,MACN,MAAQ,EAAA,CAAA;EAAA,KACV;EAAA,IACA,SAAW,EAAA;EAAA,MACT,IAAM,EAAA,IAAA;EAAA,MACN,MAAQ,EAAA,CAAA;EAAA,KACV;EAAA,IACA,SAAW,EAAA;EAAA,MACT,IAAM,EAAA,KAAA;EAAA,MACN,MAAQ,EAAA,OAAA;EAAA,KACV;EAAA,IACA,OAAS,EAAA;EAAA,MACP,IAAM,EAAA,KAAA;EAAA,MACN,MAAQ,EAAA,OAAA;EAAA,KACV;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,gBAAgB,CAAC;EAAA,IACrB,MAAA;EAAA,IACA,IAAA;EAAA,GACF,GAAI,YAAY,SAAc,KAAA;EAC5B,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,MAAA,EAAQ,KAAK,CAAG,EAAA;EAClC,MAAS,QAAA,CAAA,EAAE,MAAM,CAAA,CAAA;EAAA,KACnB;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,YAAY,CAAC;EAAA,IACjB,MAAA;EAAA,IACA,IAAA;EAAA,GACF,GAAI,YAAY,UAAe,KAAA;EAC7B,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,MAAA,EAAQ,KAAK,CAAG,EAAA;EAClC,MAAK,IAAA,CAAA,EAAE,MAAM,CAAA,CAAA;EAAA,KACf;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,aAAA,GAAgB,CAAC,CAAW,KAAA;EAChC,IAAA,QAAQ,EAAE,GAAK;EAAA,MACb,KAAK,YAAA;EACH,QAAA,SAAA,CAAU,YAAY,UAAU,CAAA,CAAA;EAChC,QAAA,MAAA;EAAA,MACF,KAAK,WAAA;EACH,QAAA,aAAA,CAAc,YAAY,SAAS,CAAA,CAAA;EACnC,QAAA,MAAA;EAAA,MACF,KAAK,WAAA;EACH,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EACjB,QAAA,SAAA,CAAU,YAAY,SAAS,CAAA,CAAA;EAC/B,QAAA,MAAA;EAAA,MACF,KAAK,SAAA;EACH,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EACjB,QAAA,aAAA,CAAc,YAAY,OAAO,CAAA,CAAA;EACjC,QAAA,MAAA;EAEA,KACJ;EAAA,GACF,CAAA;EAEA,EAAO,OAAA;EAAA,IACL,aAAA;EAAA,IACA,aAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAA;EAAA,GACF,CAAA;EACF;;ACtEO,QAAM,qBAAqB,CAGhC;EAAA,EACE,QAAA;EAAA,EACA,KAAA;EAAA,EACA,QAAA;EAAA,EACA,OAAU,GAAA,KAAA;EAAA,EACV,KAAA;EACF,CAAqC,KAAA;EACrC,EAAM,MAAA,KAAA,GAAQC,aAAuC,KAAK,CAAA,CAAA;EAE1D,EAAM,MAAA,YAAA,GAAe,CACnB,GAAA,EACA,KACG,KAAA;EApBP,IAAA,IAAA,EAAA,CAAA;EAqBI,IAAA,QAAA,CAAS,KAAK,KAAK,CAAA,CAAA;EACnB,IAAA,IAAI,CAAC,OAAA,IAAW,CAACC,WAAA,CAAM,GAAG,CAAG,EAAA;EAC3B,MAAA,KAAA,CAAO,IAAU,KAAK,CAAA,CAAA;EAAA,KACxB,MAAA,IACE,CAACA,WAAM,CAAA,GAAG,KACT,GAAY,CAAA,MAAA,GAAU,KAAM,CAAA,OAAA,CAAgB,MAC7C,EAAA;EACA,MAAA,KAAA,CAAA,CAAM,EAAK,GAAAC,UAAA,CAAA,GAAU,CAAf,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,KAAK,CAAA,CAAA;EAAA,KACxB,MAAA;EACL,MAAA,MAAM,YAAe,GAAAC,SAAA;EAAA,QACnBC,WAAK,OAAO,CAAA;EAAA,QACZC,gBAAA;EAAA,UACE,OAAW,GAAA,KAAA,CAAM,OAAmB,GAAA,CAAE,MAAM,OAAQ,CAAA;EAAA,UACpD,GAAA;EAAA,SACF;EAAA,OACF,CAAA;EACA,MAAA,QAAA,CAAS,aAAa,MAAW,KAAA,CAAA,GAAI,YAAa,CAAA,CAAC,IAAI,YAAY,CAAA,CAAA;EAAA,KACrE;EACA,IAAA,KAAA,CAAM,OAAU,GAAA,GAAA,CAAA;EAAA,GAClB,CAAA;EACA,EAAO,OAAA,YAAA,CAAA;EACT;;ECvCA,MAAM,YAAY,CAAC,KAAA,EAAe,KAAa,GAAiB,KAAA,KAAA,IAAS,OAAO,KAAS,IAAA,GAAA,CAAA;AAE5E,QAAA,mBAAA,GACb,CAAC,GAAA,EAA2C,QAAuD,KAAA;EACjG,EAAA,MAAM,WAAWL,YAAO,CAAA;EAAA,IACtB,aAAe,EAAA,KAAA;EAAA,IACf,yBAA2B,EAAA,KAAA;EAAA,GAC5B,CAAA,CAAA;EAED,EAAA,MAAM,QAAQ,QAAS,CAAA,OAAA,CAAA;EAEvB,EAAAH,eAAA,CAAU,MAAM;EACd,IAAM,MAAA,gBAAA,GAAmB,CAAC,KAAmC,KAAA;EAC3D,MAAI,IAAA,OAAA,CAAA;EACJ,MAAI,IAAA,OAAA,CAAA;EAEJ,MAAA,IAAI,iBAAiB,UAAY,EAAA;EAC/B,QAAA,OAAA,GAAU,KAAM,CAAA,OAAA,CAAA;EAChB,QAAA,OAAA,GAAU,KAAM,CAAA,OAAA,CAAA;EAAA,iBACP,KAAiB,YAAA,UAAA,IAAc,KAAM,CAAA,cAAA,CAAe,CAAC,CAAG,EAAA;EACjE,QAAU,OAAA,GAAA,KAAA,CAAM,cAAe,CAAA,CAAC,CAAE,CAAA,OAAA,CAAA;EAClC,QAAU,OAAA,GAAA,KAAA,CAAM,cAAe,CAAA,CAAC,CAAE,CAAA,OAAA,CAAA;EAAA,OACpC;EAEA,MAAA,IAAII,WAAM,CAAA,OAAO,CAAK,IAAAA,WAAA,CAAM,OAAO,CAAA;EAAG,QAAA,OAAA;EAEtC,MAAI,IAAAA,WAAA,CAAM,2BAAK,OAAO,CAAA;EAAG,QAAA,OAAA;EAEzB,MAAM,MAAA;EAAA,QACJ,GAAA;EAAA,QACA,KAAA;EAAA,QACA,IAAA;EAAA,QACA,MAAA;EAAA,OACF,GAAI,GAAI,CAAA,OAAA,CAAQ,qBAAsB,EAAA,CAAA;EAEtC,MAAM,MAAA,SAAA,GAAY,UAAU,OAAS,EAAA,IAAA,EAAM,KAAK,CAAK,IAAA,SAAA,CAAU,OAAS,EAAA,GAAA,EAAK,MAAM,CAAA,CAAA;EAEnF,MAAI,IAAA,SAAA;EAAW,QAAA,OAAA;EACf,MAAA,QAAA,CAAS,KAAK,CAAA,CAAA;EAAA,KAChB,CAAA;EAEA,IAAA,MAAM,gBAAqB,MAAM;EAC/B,MAAA,KAAA,CAAM,aAAgB,GAAA,IAAA,CAAA;EAAA,KACxB,CAAA;EAEA,IAAM,MAAA,SAAA,GAAiB,CAAC,KAAsB,KAAA;EAC5C,MAAA,IAAI,MAAM,yBAA2B,EAAA;EACnC,QAAA,KAAA,CAAM,yBAA4B,GAAA,KAAA,CAAA;EAClC,QAAA,OAAA;EAAA,OACF;EAEA,MAAA,IAAI,MAAM,aAAe,EAAA;EACvB,QAAA,KAAA,CAAM,aAAgB,GAAA,KAAA,CAAA;EACtB,QAAA,gBAAA,CAAiB,KAAK,CAAA,CAAA;EAAA,OACxB;EAAA,KACF,CAAA;EAEA,IAAM,MAAA,UAAA,GAAa,CAAC,KAAsB,KAAA;EACxC,MAAA,KAAA,CAAM,yBAA4B,GAAA,IAAA,CAAA;EAClC,MAAA,IAAI,MAAM,aAAe,EAAA;EACvB,QAAA,KAAA,CAAM,aAAgB,GAAA,KAAA,CAAA;EACtB,QAAA,gBAAA,CAAiB,KAAK,CAAA,CAAA;EAAA,OACxB;EAAA,KACF,CAAA;EAEA,IAAS,QAAA,CAAA,gBAAA,CAAiB,WAAa,EAAA,aAAA,EAAe,IAAI,CAAA,CAAA;EAC1D,IAAS,QAAA,CAAA,gBAAA,CAAiB,SAAW,EAAA,SAAA,EAAW,IAAI,CAAA,CAAA;EACpD,IAAS,QAAA,CAAA,gBAAA,CAAiB,YAAc,EAAA,aAAA,EAAe,IAAI,CAAA,CAAA;EAC3D,IAAS,QAAA,CAAA,gBAAA,CAAiB,UAAY,EAAA,UAAA,EAAY,IAAI,CAAA,CAAA;EAEtD,IAAA,OAAO,MAAM;EACX,MAAS,QAAA,CAAA,mBAAA,CAAoB,WAAa,EAAA,aAAA,EAAe,IAAI,CAAA,CAAA;EAC7D,MAAS,QAAA,CAAA,mBAAA,CAAoB,SAAW,EAAA,SAAA,EAAW,IAAI,CAAA,CAAA;EACvD,MAAS,QAAA,CAAA,mBAAA,CAAoB,YAAc,EAAA,aAAA,EAAe,IAAI,CAAA,CAAA;EAC9D,MAAS,QAAA,CAAA,mBAAA,CAAoB,UAAY,EAAA,UAAA,EAAY,IAAI,CAAA,CAAA;EAAA,KAC3D,CAAA;EAAA,GACF,EAAG,CAAE,QAAS,CAAC,CAAA,CAAA;EACjB;;AC9EO,QAAM,gBAAgB,MAAM;EACjC,EAAA,MAAM,WAAc,GAAAK,mBAAA,CAAc,CAAE,qBAAA,EAAuB,qBAAsB,CAAC,CAAA,CAAA;EAClF,EAAI,IAAA,WAAA,CAAY,CAAC,CAAG,EAAA;EAClB,IAAO,OAAA,IAAA,CAAA;EAAA,GACT;EACA,EAAI,IAAA,WAAA,CAAY,CAAC,CAAG,EAAA;EAClB,IAAO,OAAA,IAAA,CAAA;EAAA,GACT;EACA,EAAO,OAAA,IAAA,CAAA;EACT;;ACTa,QAAA,kBAAA,GAAqB,CAAC,MAAA,EAAwB,YAAiC,KAAA;EAC1F,EAAM,MAAA,WAAA,GAAcN,aAAO,KAAK,CAAA,CAAA;EAEhC,EAAAH,eAAA,CAAU,MAAM;EACd,IAAA,IAAI,YAAY,OAAS,EAAA;EACvB,MAAO,MAAA,EAAA,CAAA;EAAA,KACT;EACA,IAAA,WAAA,CAAY,OAAU,GAAA,IAAA,CAAA;EAAA,KACrB,YAAY,CAAA,CAAA;EACjB;;ACXa,QAAA,UAAA,GAAa,CAAC,QAAqB,KAAA;EAC9C,EAAA,IAAI,KAAQ,GAAA,QAAA,CAAA;EAEZ,EAAA,IAAI,KAAM,CAAA,KAAA,CAAM,CAAG,EAAA,CAAC,MAAM,GAAK,EAAA;EAC7B,IAAQ,KAAA,GAAA,KAAA,CAAM,MAAM,CAAC,CAAA,CAAA;EAAA,GACvB;EAEA,EAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;EACtB,IAAQ,KAAA,GAAA,KAAA,CACL,KAAM,CAAA,EAAE,CACR,CAAA,GAAA,CAAI,CAAC,GAAA,KAAQ,GAAM,GAAA,GAAG,CACtB,CAAA,IAAA,CAAK,EAAE,CAAA,CAAA;EAAA,GACZ;EAEA,EAAA,MAAM,IAAI,QAAS,CAAA,KAAA,CAAM,UAAU,CAAG,EAAA,CAAC,GAAG,EAAE,CAAA,CAAA;EAC5C,EAAA,MAAM,IAAI,QAAS,CAAA,KAAA,CAAM,UAAU,CAAG,EAAA,CAAC,GAAG,EAAE,CAAA,CAAA;EAC5C,EAAA,MAAM,IAAI,QAAS,CAAA,KAAA,CAAM,UAAU,CAAG,EAAA,CAAC,GAAG,EAAE,CAAA,CAAA;EAE5C,EAAA,MAAM,cAAc,CAAI,GAAA,GAAA,GAAM,CAAI,GAAA,GAAA,GAAM,IAAI,GAAO,IAAA,GAAA,CAAA;EACnD,EAAO,OAAA,UAAA,CAAA;EACT;;ACjBa,QAAA,gBAAA,GAAmB,CAAC,KAAkB,KAAA;EACjD,EAAM,MAAA,QAAA,GAAWU,eAAS,CAAA,QAAA,EAAU,cAAc,CAAA,CAAA;EAClD,EAAM,MAAA,QAAA,GAAWA,eAAS,CAAA,QAAA,EAAU,eAAe,CAAA,CAAA;EACnD,EAAM,MAAA,UAAA,GAAaA,eAAS,CAAA,QAAA,EAAU,KAAK,CAAA,CAAA;EAE3C,EAAM,MAAA,EAAA,GAAK,WAAW,QAAQ,CAAA,CAAA;EAC9B,EAAM,MAAA,EAAA,GAAK,WAAW,QAAQ,CAAA,CAAA;EAE9B,EAAM,MAAA,SAAA,GAAA,CAAa,KAAK,EAAM,IAAA,CAAA,CAAA;EAE9B,EAAM,MAAA,WAAA,GAAc,EAAK,GAAA,EAAA,GAAK,QAAW,GAAA,QAAA,CAAA;EACzC,EAAM,MAAA,SAAA,GAAY,EAAK,GAAA,EAAA,GAAK,QAAW,GAAA,QAAA,CAAA;EAEvC,EAAA,OAAO,UAAW,CAAA,UAAU,CAAK,IAAA,SAAA,GAAY,SAAY,GAAA,WAAA,CAAA;EAC3D;;ACfO,QAAM,IAAiB,GAAA;EAAA,EAC5B,aAAe,EAAA;EAAA,IACb,OAAS,EAAA,MAAA;EAAA,IACT,IAAM,EAAA,KAAA;EAAA,IACN,SAAW,EAAA,aAAA;EAAA,IACX,UAAY,EAAA,KAAA;EAAA,GACd;EACF;;ACPO,QAAM,SAAsB,GAAA;EAAA,EACjC,EAAI,EAAA,GAAA;EAAA,EACJ,EAAI,EAAA,KAAA;EAAA,EACJ,OAAS,EAAA,GAAA;EAAA,EACT,EAAI,EAAA,UAAA;EAAA,EACJ,UAAY,EAAA,MAAA;EACd;;ACLa,QAAA,SAAA,GAAY,CAAC,UAAA,EAAoB,QAAsB,KAAA;EAClE,EAAI,IAAA,KAAA,CAAA;EACJ,EAAI,IAAA,GAAA,CAAA;EACJ,EAAA,IAAI,CAAC,QAAU,EAAA;EACb,IAAQ,KAAA,GAAA,UAAA,CAAA;EACR,IAAM,GAAA,GAAA,UAAA,CAAA;EAAA,GACR,MAAA,IAAW,WAAW,UAAY,EAAA;EAChC,IAAQ,KAAA,GAAA,UAAA,CAAA;EACR,IAAM,GAAA,GAAA,QAAA,CAAA;EAAA,GACD,MAAA;EACL,IAAQ,KAAA,GAAA,QAAA,CAAA;EACR,IAAM,GAAA,GAAA,UAAA,CAAA;EAAA,GACR;EAEA,EAAA,OACE,OAAO,IAAK,CAAAC,cAAO,EAAE,MAAO,CAAA,CAAC,QAAQ,KAAU,KAAA;EAC7C,IAAA,IAAI,KAAU,KAAA,MAAA;EAAQ,MAAO,OAAA,MAAA,CAAA;EAC7B,IAAA,OAAO,MAAO,CAAA,MAAA;EAAA,MACZ,MAAO,CAAA,IAAA,CAAKA,cAAQ,CAAA,KAAc,CAAC,CAChC,CAAA,MAAA;EAAA,QAAO,CAAC,KACP,KAAA,QAAA,CAAS,KAAO,EAAA,EAAE,KAAK,KACtB,IAAA,QAAA,CAAS,KAAO,EAAA,EAAE,CAAK,IAAA,GAAA;EAAA,OAC1B,CACC,IAAI,CAAC,KAAA,KAAUA,eAAQ,KAAc,CAAA,CAAE,KAA8B,CAAC,CAAA;EAAA,KAC3E,CAAA;EAAA,GACF,EAAG,EAAc,CAAA,CAAA;EAErB;;AC9Ba,QAAA,WAAA,GAAc,CAAC,IAAiB,KAAA;EAC3C,EAAM,MAAA,CAAE,WAAW,QAAS,CAAA,GAAI,KAAK,WAAY,EAAA,CAAE,MAAM,GAAG,CAAA,CAAA;EAC5D,EAAO,OAAA,SAAA,IAAa,QAChB,GAAA,CAAA,EAAG,SAAU,CAAA,CAAC,IAAI,QAAS,CAAA,CAAC,CAC5B,CAAA,CAAA,GAAA,SAAA,CAAU,CAAC,CAAA,CAAA;EACjB;;ECDgB,SAAA,aAAA,CAAsC,MAAc,MAA4B,EAAA;EAC9F,EAAA,MAAM,uBAA0B,GAAAC,aAAA,CAAQ,IAAM,EAAA,EAAA,EAAI,IAAI,CAAA,CAAA;EACtD,EAAA,MAAM,iBAAoB,GAAA,SAAA,CAAA;EAC1B,EAAM,MAAA,cAAA,GAAiBC,WAAM,CAAA,iBAAA,EAAmB,uBAAuB,CAAA,CAAA;EAEvE,EAAM,MAAA,UAAA,GAAgCC,UAAK,CAAA,cAAA,EAAgB,MAAM,CAAA,CAAA;EACjE,EAAO,OAAA,UAAA,CAAA;EACT;;;;;;;;;;;;;;;;;;ECRa,MAAA,gBAAA,GAAmB,CAAC,KAAA,EAAwB,MACvD,KAAAC,oBAAA,CAAe,KAAK,CAAA,GAChBC,kBAAa,CAAA,KAAA,EAAOC,iBACjB,CAAA,EAAA,EAAA,MAAA,CACJ,CACC,GAAA,KAAA;;;;;;;;;;;;;;;;;;ACJC,QAAM,oBAAuB,GAAA,CAClC,QACA,EAAA,MAAA,EACA,YAAgEC,OAC7D,KAAA;EACH,EAAM,MAAA,aAAA,GAAgBC,cAAS,CAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;EAC/C,EAAA,MAAM,oBAAuB,GAAA,aAAA,CAAc,GAAI,CAAA,CAAC,OAAO,CACrD,KAAA,SAAA,CAAU,KAAO,EAAA,CAAC,IACd,gBAAiB,CAAA,KAAA,EAAOF,iBAAK,CAAA,EAAA,EAAA,MAAA,CAAQ,IACrC,KACL,CAAA,CAAA;EACD,EAAO,OAAA,oBAAA,CAAA;EACT;;ACdO,QAAM,QAAW,GAAA,CAAC,KAAe,EAAA,KAAA,GAAgB,CAAM,KAAA;EAC5D,EAAM,MAAA,UAAA,GAAaP,eAAS,CAAA,QAAA,EAAU,KAAK,CAAA,CAAA;EAE3C,EAAM,MAAA,UAAA,GAAa,KAAK,GAAI,CAAA,IAAA,CAAK,IAAI,KAAO,EAAA,CAAC,GAAG,CAAC,CAAA,CAAA;EACjD,EAAA,MAAM,OAAU,GAAA,IAAA,CAAK,KAAM,CAAA,UAAA,GAAa,GAAG,CAAA,CAAA;EAE3C,EAAA,OAAO,GAAG,UAAa,CAAA,EAAA,OAAA,CAAQ,QAAS,CAAA,EAAE,EAAE,WAAY,EAAA,CAAA,CAAA,CAAA;EAC1D;;ACDa,QAAA,8BAAA,GAAiC,CAAC,KAAkB,KAAA;EAC/D,EAAI,IAAA,OAAA,CAAA;EAEJ,EAAO,OAAA,CAAC,EAAY,KAAA,CAAA,GAAI,IAAc,KAAA;EACpC,IAAA,YAAA,CAAa,OAAO,CAAA,CAAA;EACpB,IAAA,OAAA,GAAU,WAAW,MAAM;EACzB,MAAA,EAAA,CAAG,GAAG,IAAI,CAAA,CAAA;EAAA,OACT,KAAK,CAAA,CAAA;EAAA,GACV,CAAA;EACF;;ACba,QAAA,WAAA,GAAcU,oBAA4B,aAAa,EAAA;AAE7D,QAAM,kBAAkB,MAAM;EACnC,EAAM,MAAA,KAAA,GAAQC,iBAAW,WAAW,CAAA,CAAA;EACpC,EAAO,OAAA,KAAA,CAAA;EACT;;ACTO,QAAM,KAAQ,GAAA,CAAC,QAAkB,EAAA,QAAA,EAAkB,KACxD,KAAA,IAAA,CAAK,GAAI,CAAA,IAAA,CAAK,GAAI,CAAA,KAAA,EAAO,QAAQ,CAAA,EAAG,QAAQ;;ECG9C,MAAM,wBAAwBC,UAAK,CAAAC,UAAA,CAAK,CAAE,MAAO,CAAA,EAAGZ,cAAO,CAAC,CAAA,CAAA;EAE5D,MAAM,QAAA,GAAW,CAAC,GAAA,EAAa,MAAqB,KAAA;EAClD,EAAA,IAAI,IAAO,GAAA,IAAA,CAAA;EAEX,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,GAAI,CAAA,MAAA,EAAQ,KAAK,CAAG,EAAA;EACtC,IAAM,MAAA,IAAA,GAAO,GAAI,CAAA,UAAA,CAAW,CAAC,CAAA,CAAA;EAC7B,IAAQ,IAAA,GAAA,CAAA,IAAA,IAAQ,KAAK,IAAO,GAAA,IAAA,CAAA;EAE5B,IAAQ,IAAA,IAAA,IAAA,CAAA;EAAA,GACV;EAEA,EAAA,OAAQ,IAAK,CAAA,GAAA,CAAI,IAAI,CAAA,GAAI,MAAO,CAAA,MAAA,CAAA;EAClC,CAAA,CAAA;AAEO,QAAM,kCAAqC,GAAA,CAChD,GACA,EAAA,MAAA,GAAmB,qBAChB,KAAA;EACH,EAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,GAAA,EAAK,MAAM,CAAA,CAAA;EAClC,EAAA,OAAO,OAAO,KAAK,CAAA,CAAA;EACrB;;ACfO,QAAM,iBAAiB,CAAC;EAAA,EAC7B,cAAiB,GAAA,MAAA;EAAA,EACjB,UAAa,GAAA,CAAA;EAAA,EACb,aAAa,MAAO,CAAA,gBAAA;EAAA,EACpB,cAAA;EACF,CAA2B,KAAA;EACzB,EAAA,MAAM,CAAE,eAAA,EAAiB,kBAAmB,CAAA,GAAIZ,eAAS,cAAc,CAAA,CAAA;EAEvE,EAAA,MAAM,WAAc,GAAA;EAAA,IAClB,WAAA,EAAa,CAAC,CAA2B,KAAA;EACvC,MAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EACjB,MAAA,MAAM,SAAS,CAAE,CAAA,OAAA,CAAA;EACjB,MAAM,MAAA,WAAA,GAAc,CAAC,KAA+B,KAAA;EAClD,QAAM,MAAA,QAAA,GACJ,mBAAmB,MACf,GAAA,eAAA,IAAmB,MAAM,OAAU,GAAA,MAAA,CAAA,GACnC,eAAmB,IAAA,KAAA,CAAM,OAAU,GAAA,MAAA,CAAA,CAAA;EACzC,QAAA,kBAAA,CAAmB,KAAM,CAAA,UAAA,EAAY,UAAY,EAAA,QAAQ,CAAC,CAAA,CAAA;EAAA,OAC5D,CAAA;EACA,MAAA,MAAM,YAAY,MAAM;EACtB,QAAS,QAAA,CAAA,mBAAA,CAAoB,aAAa,WAAW,CAAA,CAAA;EACrD,QAAS,QAAA,CAAA,mBAAA,CAAoB,WAAW,SAAS,CAAA,CAAA;EAAA,OACnD,CAAA;EACA,MAAS,QAAA,CAAA,gBAAA,CAAiB,aAAa,WAAW,CAAA,CAAA;EAClD,MAAS,QAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA,CAAA;EAAA,KAChD;EAAA,GACF,CAAA;EAEA,EAAO,OAAA;EAAA,IACL,eAAA;EAAA,IACA,kBAAA;EAAA,IACA,WAAA;EAAA,GACF,CAAA;EACF;;;;;;;;;;;;;;;;;;;;;ECxCO,MAAM,kBAA8C,GAAA;EAAA,EACzD,SAAW,EAAA,CAAC,QAAc,KAAAyB,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACrB,QADqB,CAAA,EAAA;EAAA,IAExB,KAAO,EAAA,MAAA;EAAA,IACP,KAAO,EAAA,cAAA;EAAA,GACT,CAAA;EAAA,EACA,MAAQ,EAAA,CAAC,QAAU,EAAA,KAAA,KAAWO,sCACzB,QADyB,CAAA,EAAA;EAAA,IAE5B,UAAA,EAAY,MAAM,SAAa,IAAA,gCAAA;EAAA,IAC/B,YAAc,EAAA,UAAA;EAAA,IACd,OAAS,EAAA;EAAA,MACP,UAAY,EAAA,iCAAA;EAAA,KACd;EAAA,GACF,CAAA;EAAA,EACA,cAAgB,EAAA,CAAC,QAAc,KAAAA,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAC1B,QAD0B,CAAA,EAAA;EAAA,IAE7B,kBAAoB,EAAA,+BAAA;EAAA,GACtB,CAAA;EAAA,EACA,WAAa,EAAA,CAAC,QAAc,KAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACvB,QADuB,CAAA,EAAA;EAAA,IAE1B,KAAO,EAAA,qBAAA;EAAA,GACT,CAAA;EAAA,EACA,WAAa,EAAA,CAAC,QAAc,KAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACvB,QADuB,CAAA,EAAA;EAAA,IAE1B,KAAO,EAAA,yBAAA;EAAA,GACT,CAAA;EAAA,EACA,UAAA,EAAY,CAAC,QAAA,EAAU,KAAU,KAAA;EA7BnC,IAAA,IAAA,EAAA,CAAA;EA8BI,IAAM,MAAA,UAAA,GAAa,MAAM,IAAK,CAAA,OAAA,GAC1B,uCACA,EAAM,GAAA,KAAA,CAAA,IAAA,CAAK,KAAX,KAAA,IAAA,GAAA,EAAA,GAAoB,QAAS,CAAA,OAAA,CAAA;EACjC,IAAA,OAAQO,sCACH,QADG,CAAA,EAAA;EAAA,MAEN,OAAS,EAAA,UAAA;EAAA,MACT,KAAA,EAAO,iBAAiB,UAAU,CAAA;EAAA,KACpC,CAAA,CAAA;EAAA,GACF;EAAA,EACA,QAAU,EAAA,CAAC,QAAc,KAAAA,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACpB,QADoB,CAAA,EAAA;EAAA,IAEvB,OAAS,EAAA,oBAAA;EAAA,GACX,CAAA;EACF,CAAA;;;;;;;;;;;;;;;;;;;;;ECxCO,MAAM,eAAkB,GAAA,CAC7B,SACA,EAAA,WAAA,KAC6BO,sCAC1B,kBAD0B,CAAA,EAAA;EAAA,EAE7B,SAAW,EAAA,CAAC,QAAc,KAAAA,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACrB,QADqB,CAAA,EAAA;EAAA,IAExB,CAAG,EAAA,MAAA;EAAA,IACH,MAAQ,EAAA,MAAA;EAAA,IACR,MAAQ,EAAA,UAAA;EAAA,IACR,QAAU,EAAA,MAAA;EAAA,IACV,SAAW,EAAA,IAAA;EAAA,IACX,WAAa,EAAA,gBAAA;EAAA,IACb,YAAc,EAAA,gBAAA;EAAA,IACd,kBAAoB,EAAA,QAAA;EAAA,IACpB,kBAAoB,EAAA,YAAA;EAAA,IACpB,KAAO,EAAA,cAAA;EAAA,IACP,SAAA,EAAW,SAAY,GAAA,CAAA,UAAA,EAAa,WAAgB,CAAA,CAAA,GAAA,MAAA;EAAA,GACtD,CAAA;EAAA,EACA,OAAS,EAAA,CAAC,QAAc,KAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACnB,QADmB,CAAA,EAAA;EAAA,IAEtB,SAAW,EAAA,IAAA;EAAA,IACX,MAAQ,EAAA,MAAA;EAAA,IACR,UAAY,EAAA,OAAA;EAAA,GACd,CAAA;EAAA,EACA,cAAgB,EAAA,CAAC,QAAc,KAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAC1B,QAD0B,CAAA,EAAA;EAAA,IAE7B,kBAAoB,EAAA,+BAAA;EAAA,IACpB,SAAW,EAAA,MAAA;EAAA,IACX,IAAM,EAAA,MAAA;EAAA,GACR,CAAA;EACF,CAAA,CAAA;;EClCO,MAAM,eAAkB,GAAA;EAAA,EAC7B,qBAAuB,EAAA;EAAA,IACrB,KAAO,EAAA,KAAA;EAAA,IACP,MAAQ,EAAA,KAAA;EAAA,GACV;EAAA,EACA,2BAA6B,EAAA;EAAA,IAC3B,UAAY,EAAA,4BAAA;EAAA,GACd;EAAA,EACA,2BAA6B,EAAA;EAAA,IAC3B,YAAc,EAAA,iBAAA;EAAA,IACd,MAAQ,EAAA,WAAA;EAAA,IACR,WAAa,EAAA,wBAAA;EAAA,IACb,cAAgB,EAAA,wBAAA;EAAA,IAChB,UAAY,EAAA,4BAAA;EAAA,GACd;EAAA,EACA,iCAAmC,EAAA;EAAA,IACjC,YAAc,EAAA,iBAAA;EAAA,IACd,MAAQ,EAAA,YAAA;EAAA,IACR,WAAa,EAAA,wBAAA;EAAA,IACb,cAAgB,EAAA,wBAAA;EAAA,IAChB,UAAY,EAAA,4BAAA;EAAA,GACd;EACF,CAAA;;ECpBO,MAAM,UAAwC,GAAA;EAAA,EACnD,KAAA,EAAO,CAAE,MAAA,EAAQ,WAAY,CAAA;EAAA,EAC7B,SAAW,EAAA;EAAA,IACT,IAAM,EAAA;EAAA,MACJ,OAAA,EAAS,CAAE,GAAA,EAAK,CAAE,CAAA;EAAA,MAClB,KAAO,EAAA,SAAA;EAAA,MACP,UAAY,EAAA,KAAA;EAAA,MACZ,QAAU,EAAA,UAAA;EAAA,MACV,MAAQ,EAAA;EAAA,QACN,EAAI,EAAA,SAAA;EAAA,QACJ,YAAc,EAAA,MAAA;EAAA,QACd,SAAW,EAAA,MAAA;EAAA,OACb;EAAA,KACF;EAAA,IACA,SAAW,EAAA;EAAA,MACT,KAAO,EAAA,UAAA;EAAA,MACP,QAAU,EAAA,UAAA;EAAA,KACZ;EAAA,GACF;EACF,CAAA;;ECnBO,MAAMQ,QAAqC,GAAA;EAAA,EAChD,KAAO,EAAA;EAAA,IACL,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,MACrD,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,MACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,MACxB,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,EAAA;EAAA,MACrD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,EAAA;EAAA,KACrD,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,MACrD,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,MACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,MACxB,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,EAAA;EAAA,MACrD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,EAAA;EAAA,KACrD,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,MACrD,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,MACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,MACxB,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,EAAA;EAAA,MACrD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,EAAA;EAAA,KACrD,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,MACrD,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,MACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,MACxB,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,EAAA;EAAA,MACrD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,EAAA;EAAA,KACrD,CAAA;EAAA,GACF;EAAA,EACA,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA,EAAE,QAAQ,KAAO,EAAA,KAAA,EAAO,YAAa,EAAA,EAAS,MAAA;EAAA,IACjE,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,IAClB,YAAA,EAAc,aAAa,MAAO,CAAA,OAAA;EAAA,IAClC,aAAe,EAAA;EAAA,MACb,IAAM,EAAA,KAAA;EAAA,MACN,SAAA,EAAW,MAAM,MAAO,CAAA,IAAA;EAAA,MACxB,UAAY,EAAA,KAAA;EAAA,KACd;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,OAAA;EAAA,MACjC,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,MAAO,CAAA,OAAA;EAAA,MACzB,MAAQ,EAAA;EAAA,QACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,eAAe,CAAA;EAAA,OAClD;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,gBAAgB,CAAA;EAAA,OACnD;EAAA,KACF,CAAA;EAAA,IACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACzC,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,MAAA;EAAA,MACjC,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,MAAO,CAAA,MAAA;EAAA,MACzB,MAAQ,EAAA;EAAA,QACN,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,cAAc,CAAA;EAAA,QAC1C,SAAW,EAAA;EAAA,UACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,MAAA;EAAA,SACnC;EAAA,OACF;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,eAAe,CAAA;EAAA,OAClD;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,OAAA;EAAA,MACjC,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,MAAO,CAAA,OAAA;EAAA,MACzB,MAAQ,EAAA;EAAA,QACN,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,eAAe,CAAA;EAAA,QAC3C,SAAW,EAAA;EAAA,UACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,OAAA;EAAA,SACnC;EAAA,OACF;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,gBAAgB,CAAA;EAAA,OACnD;EAAA,KACF,CAAA;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACxC,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,MAClB,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,MACjC,MAAQ,EAAA;EAAA,QACN,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,aAAa,CAAA;EAAA,QACzC,SAAW,EAAA;EAAA,UACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,SACnC;EAAA,OACF;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,cAAc,CAAA;EAAA,OACjD;EAAA,KACF,CAAA;EAAA,IACA,YAAA,EAAc,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC/C,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA;EAAA,MACzB,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,MACjC,MAAQ,EAAA;EAAA,QACN,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,QAC5B,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,QAClB,SAAW,EAAA;EAAA,UACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,UACjC,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA;EAAA,SAC3B;EAAA,OACF;EAAA,MACA,OAAS,EAAA;EAAA,QACP,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,aAAa,CAAA;EAAA,QACzC,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,OACpB;EAAA,KACF,CAAA;EAAA,IACA,IAAA,EAAM,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACvC,cAAgB,EAAA,WAAA;EAAA,MAChB,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA;EAAA,MACzB,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,IAAA;EAAA,MACjC,MAAQ,EAAA;EAAA,QACN,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,MAAA,CAAO,YAAY,CAAA;EAAA,QACrC,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,YAAY,CAAA;EAAA,OAC/C;EAAA,MACA,OAAS,EAAA;EAAA,QACP,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,MAAA,CAAO,YAAY,CAAA;EAAA,QACrC,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,aAAa,CAAA;EAAA,OAChD;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,MAAQ,EAAA;EAAA,QACN,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,aAAa,CAAA;EAAA,OAC3C;EAAA,MACA,OAAS,EAAA;EAAA,QACP,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,cAAc,CAAA;EAAA,OAC5C;EAAA,KACF,CAAA;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACxC,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,MACjC,MAAQ,EAAA;EAAA,QACN,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,aAAa,CAAA;EAAA,QACzC,SAAW,EAAA;EAAA,UACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,SACnC;EAAA,OACF;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,cAAc,CAAA;EAAA,OACjD;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACrC,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,MAClB,OAAA,EAAS,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,OAAA;EAAA,MACrB,MAAQ,EAAA;EAAA,QACN,OAAA,EAAS,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,KAAA;EAAA,QACrB,SAAW,EAAA;EAAA,UACT,OAAA,EAAS,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,OAAA;EAAA,SACvB;EAAA,OACF;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAA,EAAS,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,MAAA;EAAA,OACvB;EAAA,KACF,CAAA;EAAA,IACA,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC5C,OAAO,KAAM,CAAA,EAAA;EAAA,MACb,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,MACjC,MAAQ,EAAA;EAAA,QACN,EAAA,EAAI,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,OAAA;EAAA,QAChB,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,QAClB,SAAW,EAAA;EAAA,UACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,UACjC,OAAO,KAAM,CAAA,EAAA;EAAA,SACf;EAAA,OACF;EAAA,MACA,OAAS,EAAA;EAAA,QACP,EAAA,EAAI,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,KAAA;EAAA,QAChB,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,OACpB;EAAA,KACF,CAAA;EAAA,GACF;EAAA,EACA,YAAc,EAAA;EAAA,IACZ,IAAM,EAAA,IAAA;EAAA,GACR;EACF,CAAA;;ECzKA,MAAM,SAAY,GAAAC,iBAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;EAgBX,MAAMC,SAAsC,GAAA;EAAA,EACjD,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA,EAAE,QAAQ,OAAQ,EAAA,EAAG,KAAO,EAAA,UAAA,EAAkB,MAAA;EAAA,IACjE,QAAU,EAAA,UAAA;EAAA,IACV,YAAc,EAAA,KAAA;EAAA,IACd,SAAS,KAAU,KAAA,EAAA,GAAK,OAAQ,CAAA,IAAA,CAAK,KAAK,CAAI,GAAA,KAAA;EAAA,IAC9C,SAAS,UACL,GAAA;EAAA,MACA,OAAS,EAAA,IAAA;EAAA,MACT,QAAU,EAAA,UAAA;EAAA,MACV,OAAS,EAAA,OAAA;EAAA,MACT,KAAO,EAAA,MAAA;EAAA,MACP,MAAQ,EAAA,MAAA;EAAA,MACR,UAAY,EAAA,OAAA;EAAA,MACZ,SAAW,EAAA,OAAA;EAAA,MACX,YAAc,EAAA,KAAA;EAAA,MACd,OAAA,EAAS,KAAU,KAAA,EAAA,GAAK,UAAa,GAAA,KAAA;EAAA,MACrC,WAAW,CAAS,MAAA,EAAA,SAAA,CAAA,uDAAA,CAAA;EAAA,MACpB,MAAQ,EAAA,MAAA;EAAA,QAER,EAAC;EAAA,GACP,CAAA;EAAA,EACA,KAAO,EAAA;EAAA,IACL,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACxC,MAAA,EAAQ,MAAO,CAAA,OAAA,CAAQ,KAAK,CAAA;EAAA,MAC5B,KAAA,EAAO,MAAO,CAAA,OAAA,CAAQ,KAAK,CAAA;EAAA,KAC7B,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,MAAA,EAAQ,OAAO,OAAQ,CAAA,EAAA;EAAA,MACvB,KAAA,EAAO,OAAO,OAAQ,CAAA,EAAA;EAAA,KACxB,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,MAAA,EAAQ,OAAO,OAAQ,CAAA,EAAA;EAAA,MACvB,KAAA,EAAO,OAAO,OAAQ,CAAA,EAAA;EAAA,KACxB,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,MAAA,EAAQ,OAAO,OAAQ,CAAA,EAAA;EAAA,MACvB,KAAA,EAAO,OAAO,OAAQ,CAAA,EAAA;EAAA,KACxB,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,MAAA,EAAQ,OAAO,OAAQ,CAAA,EAAA;EAAA,MACvB,KAAA,EAAO,OAAO,OAAQ,CAAA,EAAA;EAAA,KACxB,CAAA;EAAA,GACF;EAAA,EACA,YAAc,EAAA;EAAA,IACZ,IAAM,EAAA,IAAA;EAAA,IACN,KAAO,EAAA,UAAA;EAAA,GACT;EACF,CAAA;;EChEO,MAAMC,UAAsC,GAAA;EAAA,EACjD,KAAA,EAAO,CAAE,SAAA,EAAW,OAAQ,CAAA;EAAA,EAC5B,KAAO,EAAA;EAAA,IACL,EAAI,EAAA;EAAA,MACF,OAAS,EAAA;EAAA,QACP,QAAU,EAAA,CAAA;EAAA,OACZ;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,OAAS,EAAA;EAAA,QACP,QAAU,EAAA,CAAA;EAAA,OACZ;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,OAAS,EAAA;EAAA,QACP,QAAU,EAAA,CAAA;EAAA,OACZ;EAAA,KACF;EAAA,GACF;EAAA,EACA,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,IACrD,OAAS,EAAA;EAAA,MACP,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,OAAA;EAAA,MACnC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,MAC9B,WAAa,EAAA,CAAA;EAAA,MACb,QAAU,EAAA;EAAA,QACR,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,OAAA;EAAA,QACnC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,QAC9B,MAAQ,EAAA;EAAA,UACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,OAAA;EAAA,UACnC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,SAChC;EAAA,OACF;EAAA,MACA,QAAU,EAAA;EAAA,QACR,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA;EAAA,QACnC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,QAC9B,QAAU,EAAA;EAAA,UACR,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,KAAA;EAAA,SAChC;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA;EAAA,UACnC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,SAChC;EAAA,OACF;EAAA,MACA,aAAe,EAAA;EAAA,QACb,IAAM,EAAA,KAAA;EAAA,QACN,SAAA,EAAW,MAAM,MAAO,CAAA,IAAA;EAAA,QACxB,UAAY,EAAA,KAAA;EAAA,OACd;EAAA,MACA,MAAQ,EAAA;EAAA,QACN,WAAa,EAAA,KAAA,CAAM,MAAO,CAAA,QAAA,CAAS,eAAe,CAAA;EAAA,QAClD,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,OAChC;EAAA,MACA,SAAW,EAAA;EAAA,QACT,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,QAAA;EAAA,QACnC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,QAAA;EAAA,QAC9B,OAAA,EAAS,QAAQ,QAAS,CAAA,QAAA;EAAA,QAC1B,QAAU,EAAA;EAAA,UACR,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,OAAA;EAAA,UACnC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,UAC9B,OAAA,EAAS,QAAQ,QAAS,CAAA,QAAA;EAAA,UAC1B,KAAO,EAAA,OAAA;EAAA,UACP,MAAQ,EAAA;EAAA,YACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,OAAA;EAAA,YACnC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,YAC9B,OAAA,EAAS,QAAQ,QAAS,CAAA,QAAA;EAAA,WAC5B;EAAA,SACF;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,QAAA;EAAA,UACnC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,QAAA;EAAA,UAC9B,OAAA,EAAS,QAAQ,QAAS,CAAA,QAAA;EAAA,SAC5B;EAAA,OACF;EAAA,KACF;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,YAAA,IAAsB,MAAA;EAAA,MAChD,OAAS,EAAA;EAAA,QACP,YAAA,EAAc,aAAa,QAAS,CAAA,OAAA;EAAA,OACtC;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,YAAA,IAAsB,MAAA;EAAA,MAChD,OAAS,EAAA;EAAA,QACP,YAAA,EAAc,aAAa,QAAS,CAAA,IAAA;EAAA,OACtC;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;ECvFO,MAAM,KAAmC,GAAA;EAAA,EAC9C,KAAA,EAAO,CAAE,OAAA,EAAS,OAAQ,CAAA;EAAA,EAC1B,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,IAC5C,KAAO,EAAA;EAAA,MACL,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,YAAc,EAAA;EAAA,QACZ,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,KAAM,CAAA,WAAA;EAAA,QACxB,OAAS,EAAA,CAAA;EAAA,OACX;EAAA,KACF;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,OAAA,EAAS,CAAC,EAAE,KAAO,EAAA;EAAA,MACjB,MAAQ,EAAA,KAAA;EAAA,MACR,KAAO,EAAA,OAAA;EAAA,MACP,KAAO,EAAA,YAAA;EAAA,MACP,OAAS,EAAA,WAAA;EAAA,MACT,OAAA;EAAA,OACO,MAAA;EAAA,MACP,KAAO,EAAA;EAAA,QACL,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QACpD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QAClD,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,iBAAiB,CAAA;EAAA,QACjD,YAAA,EAAc,aAAa,KAAM,CAAA,OAAA;EAAA,QACjC,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,QAC/B,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA;EAAA,QAChC,SAAW,EAAA;EAAA,UACT,aAAe,EAAA;EAAA,YACb,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,WAClC;EAAA,UACA,MAAQ,EAAA;EAAA,YACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,WAClC;EAAA,SACF;EAAA,QACA,aAAe,EAAA;EAAA,UACb,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC/C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,UAChC,QAAU,EAAA;EAAA,YACR,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,YAC3C,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,YAC/C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,WAClC;EAAA,SACF;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC/C,WAAa,EAAA,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,SACjD;EAAA,QACA,QAAU,EAAA;EAAA,UACR,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC/C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,SAClC;EAAA,QACA,SAAW,EAAA;EAAA,UACT,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,kBAAkB,CAAA;EAAA,UAClD,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,UAChC,OAAA,EAAS,QAAQ,KAAM,CAAA,QAAA;EAAA,SACzB;EAAA,OACF;EAAA,MACA,KAAO,EAAA;EAAA,QACL,MAAQ,EAAA,MAAA;EAAA,QACR,UAAY,EAAA,MAAA;EAAA,QACZ,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,OACpB;EAAA,KACF,CAAA;EAAA,IACA,MAAA,EAAQ,CAAC,EAAE,KAAO,EAAA;EAAA,MAChB,MAAQ,EAAA,KAAA;EAAA,MACR,KAAO,EAAA,OAAA;EAAA,MACP,KAAO,EAAA,YAAA;EAAA,MACP,OAAS,EAAA,WAAA;EAAA,MACT,OAAA;EAAA,OACO,MAAA;EAAA,MACP,KAAO,EAAA;EAAA,QACL,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QACpD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QAClD,YAAA,EAAc,aAAa,KAAM,CAAA,MAAA;EAAA,QACjC,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,QAC/B,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,gBAAgB,CAAA;EAAA,QAChD,SAAW,EAAA;EAAA,UACT,aAAe,EAAA;EAAA,YACb,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,WAClC;EAAA,UACA,MAAQ,EAAA;EAAA,YACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,gBAAgB,CAAA;EAAA,WAClD;EAAA,SACF;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,cAAc,CAAA;EAAA,SAChD;EAAA,QACA,aAAe,EAAA;EAAA,UACb,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,UAC3C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,UAChC,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,cAAc,CAAA;EAAA,UAC9C,SAAW,EAAA;EAAA,YACT,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,gBAAgB,CAAA;EAAA,WAClD;EAAA,UACA,QAAU,EAAA;EAAA,YACR,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,YAC3C,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,YAC/C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,WAClC;EAAA,SACF;EAAA,QACA,QAAU,EAAA;EAAA,UACR,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,UAC3C,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,cAAc,CAAA;EAAA,UAC9C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,SAClC;EAAA,QACA,SAAW,EAAA;EAAA,UACT,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,iBAAiB,CAAA;EAAA,UACjD,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,UAChC,OAAA,EAAS,QAAQ,KAAM,CAAA,QAAA;EAAA,SACzB;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAO,EAAA;EAAA,MACjB,MAAQ,EAAA,KAAA;EAAA,MACR,KAAO,EAAA,OAAA;EAAA,MACP,KAAO,EAAA,YAAA;EAAA,MACP,OAAS,EAAA,WAAA;EAAA,MACT,OAAA;EAAA,OACO,MAAA;EAAA,MACP,KAAO,EAAA;EAAA,QACL,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QACpD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QAClD,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,iBAAiB,CAAA;EAAA,QACjD,YAAA,EAAc,aAAa,KAAM,CAAA,OAAA;EAAA,QACjC,iBAAA,EAAmB,YAAY,KAAM,CAAA,OAAA;EAAA,QACrC,iBAAA,EAAmB,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA;EAAA,QACtC,SAAW,EAAA;EAAA,UACT,aAAe,EAAA;EAAA,YACb,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,WAClC;EAAA,UACA,MAAQ,EAAA;EAAA,YACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,WAClC;EAAA,SACF;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC/C,WAAa,EAAA,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,SACjD;EAAA,QACA,aAAe,EAAA;EAAA,UACb,MAAQ,EAAA;EAAA,YACN,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,YAC3C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,WAClC;EAAA,UACA,QAAU,EAAA;EAAA,YACR,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,YAC3C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,YAChC,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,WACjD;EAAA,SACF;EAAA,QACA,QAAU,EAAA;EAAA,UACR,MAAQ,EAAA;EAAA,YACN,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,YAC3C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,WAClC;EAAA,UACA,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,SACjD;EAAA,QACA,SAAW,EAAA;EAAA,UACT,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,kBAAkB,CAAA;EAAA,UAClD,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,UAChC,OAAA,EAAS,QAAQ,KAAM,CAAA,QAAA;EAAA,SACzB;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA;EAAA,MACZ,MAAQ,EAAA,KAAA;EAAA,MACR,KAAO,EAAA,OAAA;EAAA,MACP,KAAO,EAAA,YAAA;EAAA,MACP,OAAS,EAAA,WAAA;EAAA,MACT,OAAA;EAAA,OACO,MAAA;EAAA,MACP,KAAO,EAAA;EAAA,QACL,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QACpD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QAClD,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,iBAAiB,CAAA;EAAA,QACjD,YAAA,EAAc,aAAa,KAAM,CAAA,OAAA;EAAA,QACjC,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,QAC/B,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA;EAAA,QAChC,SAAW,EAAA;EAAA,UACT,aAAe,EAAA;EAAA,YACb,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,WAClC;EAAA,UACA,MAAQ,EAAA;EAAA,YACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,WAClC;EAAA,SACF;EAAA,QACA,aAAe,EAAA;EAAA,UACb,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC/C,MAAQ,EAAA;EAAA,YACN,SAAA,EAAW,CAAa,UAAA,EAAA,KAAA,CAAM,MAAO,CAAA,EAAA,CAAA,CAAA;EAAA,YACrC,WAAA,EAAa,MAAM,MAAO,CAAA,EAAA;EAAA,WAC5B;EAAA,UACA,QAAU,EAAA;EAAA,YACR,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,YAC3C,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,YAC/C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,WAClC;EAAA,SACF;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC/C,WAAa,EAAA,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,SACjD;EAAA,QACA,QAAU,EAAA;EAAA,UACR,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC/C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,SAClC;EAAA,QACA,SAAW,EAAA;EAAA,UACT,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,kBAAkB,CAAA;EAAA,UAClD,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,UAChC,OAAA,EAAS,QAAQ,KAAM,CAAA,QAAA;EAAA,SACzB;EAAA,OACF;EAAA,MACA,KAAO,EAAA;EAAA,QACL,MAAQ,EAAA,MAAA;EAAA,QACR,UAAY,EAAA,MAAA;EAAA,QACZ,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,OACpB;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;EC1NO,MAAMC,UAAuC,GAAA;EAAA,EAClD,QAAU,EAAA;EAAA,IACR,OAAA,EAAS,CAAC,EAAE,KAAO,EAAA;EAAA,MACjB,KAAO,EAAA,YAAA;EAAA,MACP,OAAS,EAAA,WAAA;EAAA,MACT,MAAQ,EAAA,KAAA;EAAA,MACR,KAAO,EAAA,OAAA;EAAA,MACP,OAAA;EAAA,OACO,MAAA;EAAA,MACP,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA;EAAA,MAChC,YAAA,EAAc,aAAa,KAAM,CAAA,OAAA;EAAA,MACjC,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,MAC/B,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,iBAAiB,CAAA;EAAA,MAC5C,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,aAAe,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,MAC/C,MAAQ,EAAA;EAAA,QACN,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,QAC1C,WAAa,EAAA,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,OACjD;EAAA,MACA,MAAQ,EAAA;EAAA,QACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,QAChC,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,OAC5C;EAAA,MACA,QAAU,EAAA;EAAA,QACR,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,QAC1C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,QAChC,YAAc,EAAA;EAAA,UACZ,KAAO,EAAA,aAAA;EAAA,SACT;EAAA,OACF;EAAA,MACA,SAAW,EAAA;EAAA,QACT,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,kBAAkB,CAAA;EAAA,QAC7C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,QAChC,OAAA,EAAS,QAAQ,KAAM,CAAA,QAAA;EAAA,QACvB,MAAQ,EAAA;EAAA,UACN,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,kBAAkB,CAAA;EAAA,UAC7C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,SAClC;EAAA,OACF;EAAA,MACA,YAAc,EAAA;EAAA,QACZ,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,KAAM,CAAA,WAAA;EAAA,OAC1B;EAAA,MACA,SAAW,EAAA;EAAA,QACT,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,OAClC;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;EC/CO,MAAMC,QAAoC,GAAA;EAAA,EAC/C,KAAA,EAAO,CAAE,OAAA,EAAS,MAAO,CAAA;EAAA,EACzB,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA;EAAA,IACnB,KAAO,EAAA,YAAA;EAAA,IACP,OAAS,EAAA,WAAA;EAAA,IACT,MAAQ,EAAA,KAAA;EAAA,IACR,KAAO,EAAA,OAAA;EAAA,KACA,MAAA;EAAA,IACP,KAAO,EAAA;EAAA,MACL,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,OAAA;EAAA,MACrD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,MAAO,CAAA,OAAA;EAAA,MACnD,aAAa,WAAY,CAAA,MAAA;EAAA,MACzB,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,OAAA;EAAA,MACjC,YAAA,EAAc,aAAa,MAAO,CAAA,OAAA;EAAA,MAClC,MAAQ,EAAA;EAAA,QACN,WAAa,EAAA,KAAA,CAAM,MAAO,CAAA,MAAA,CAAO,eAAe,CAAA;EAAA,OAClD;EAAA,MACA,aAAe,EAAA;EAAA,QACb,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,KAAA;EAAA,QACjC,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,KAAA,CAAA,CAAA;EAAA,OAC9C;EAAA,MACA,QAAU,EAAA;EAAA,QACR,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,KAAA;EAAA,QACjC,SAAW,EAAA,MAAA;EAAA,OACb;EAAA,MACA,SAAW,EAAA;EAAA,QACT,aAAa,WAAY,CAAA,MAAA;EAAA,QACzB,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,QAAA;EAAA,QACjC,aAAe,EAAA;EAAA,UACb,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,QAAA;EAAA,SACnC;EAAA,OACF;EAAA,MACA,SAAW,EAAA;EAAA,QACT,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,QAAA;EAAA,QACjC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,QAAA;EAAA,QAC5B,MAAQ,EAAA;EAAA,UACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,MAAO,CAAA,QAAA;EAAA,SACnC;EAAA,OACF;EAAA,MACA,YAAc,EAAA;EAAA,QACZ,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,MAAO,CAAA,WAAA;EAAA,OAC3B;EAAA,KACF;EAAA,IACA,IAAM,EAAA;EAAA,MACJ,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,MAAO,CAAA,OAAA;EAAA,KAC3B;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,SAAS,EAAC;EAAA,IACV,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACrC,KAAO,EAAA;EAAA,QACL,aAAe,EAAA;EAAA,UACb,WAAA,EAAa,MAAM,MAAO,CAAA,EAAA;EAAA,UAC1B,SAAA,EAAW,CAAa,UAAA,EAAA,KAAA,CAAM,MAAO,CAAA,EAAA,CAAA,CAAA;EAAA,SACvC;EAAA,OAEF;EAAA,KAEF,CAAA;EAAA,GAEF;EACF,CAAA;;EC9DO,MAAMC,OAAmC,GAAA;EAAA,EAC9C,KAAO,EAAA,CAAE,SAAW,EAAA,OAAA,EAAS,WAAY,CAAA;EAAA,EACzC,KAAO,EAAA;EAAA,IACL,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,OAAS,EAAA,WAAA,IAAqB,MAAA;EAAA,MAC5C,OAAS,EAAA;EAAA,QACP,QAAU,EAAA;EAAA,UACR,WAAA,EAAa,WAAY,CAAA,KAAA,CAAM,YAAY,CAAA;EAAA,SAC7C;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,OAAS,EAAA,WAAA,IAAqB,MAAA;EAAA,MAC5C,OAAS,EAAA;EAAA,QACP,QAAU,EAAA;EAAA,UACR,WAAA,EAAa,WAAY,CAAA,KAAA,CAAM,YAAY,CAAA;EAAA,SAC7C;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,OAAS,EAAA,WAAA,IAAqB,MAAA;EAAA,MAC5C,OAAS,EAAA;EAAA,QACP,QAAU,EAAA;EAAA,UACR,WAAA,EAAa,WAAY,CAAA,KAAA,CAAM,YAAY,CAAA;EAAA,SAC7C;EAAA,OACF;EAAA,KACF,CAAA;EAAA,GACF;EAAA,EACA,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA,EAAE,SAAS,WAAa,EAAA,MAAA,EAAQ,KAAM,EAAA,EAAS,MAAA;EAAA,IAClE,OAAS,EAAA;EAAA,MACP,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA;EAAA,MAChC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,OAAA;EAAA,MAC3B,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,MAC/B,QAAU,EAAA;EAAA,QACR,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA;EAAA,QAChC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,OAAA;EAAA,QAC3B,MAAQ,EAAA;EAAA,UACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA;EAAA,UAChC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,OAAA;EAAA,SAC7B;EAAA,OACF;EAAA,MACA,MAAQ,EAAA;EAAA,QACN,WAAa,EAAA,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,QAC/C,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,OAAA;EAAA,OAC7B;EAAA,MACA,SAAW,EAAA;EAAA,QACT,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,QAChC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,QAAA;EAAA,QAC3B,MAAQ,EAAA;EAAA,UACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,UAChC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,QAAA;EAAA,SAC7B;EAAA,OACF;EAAA,MACA,QAAU,EAAA;EAAA,QACR,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,QAChC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,KAAA;EAAA,QAC3B,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,QAC/B,MAAQ,EAAA;EAAA,UACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,UAChC,EAAA,EAAI,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,KAAA;EAAA,UAC3B,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,SACjC;EAAA,OACF;EAAA,MACA,aAAe,EAAA;EAAA,QACb,IAAM,EAAA,KAAA;EAAA,QACN,SAAA,EAAW,MAAM,MAAO,CAAA,IAAA;EAAA,QACxB,UAAY,EAAA,KAAA;EAAA,OACd;EAAA,KACF;EAAA,IACA,YAAc,EAAA;EAAA,MACZ,IAAM,EAAA,IAAA;EAAA,KACR;EAAA,GACF,CAAA;EACF,CAAA;;ECtEO,MAAMC,MAAkC,GAAA;EAAA,EAC7C,KAAA,EAAO,CAAE,KAAM,CAAA;EAAA,EACf,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,EAAE,WAAa,EAAA,cAAA,IAAwB,MAAA;EAAA,IAC1D,GAAK,EAAA;EAAA,MACH,YAAY,cAAe,CAAA,QAAA;EAAA,KAC7B;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,cAAA,EAAgB,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACjD,GAAK,EAAA;EAAA,QACH,YAAc,EAAA,GAAA;EAAA,QACd,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,QAClB,SAAW,EAAA;EAAA,UACT,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,IAAA,CAAK,qBAAqB,CAAA;EAAA,UAC/C,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,qBAAqB,CAAA;EAAA,SAC9C;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,qBAAqB,CAAA;EAAA,SAC9C;EAAA,QACA,aAAe,EAAA;EAAA,UACb,IAAM,EAAA,KAAA;EAAA,UACN,SAAA,EAAW,MAAM,MAAO,CAAA,IAAA;EAAA,UACxB,UAAY,EAAA,KAAA;EAAA,SACd;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAO,EAAA,EAAE,QAAQ,KAAO,EAAA,KAAA,EAAO,YAAa,EAAA,EAAS,MAAA;EAAA,MAC/D,GAAK,EAAA;EAAA,QACH,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,QAClB,YAAA,EAAc,aAAa,MAAO,CAAA,OAAA;EAAA,QAClC,SAAW,EAAA;EAAA,UACT,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,IAAA,CAAK,qBAAqB,CAAA;EAAA,UAC/C,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,qBAAqB,CAAA;EAAA,SAC9C;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,qBAAqB,CAAA;EAAA,SAC9C;EAAA,QACA,aAAe,EAAA;EAAA,UACb,IAAM,EAAA,KAAA;EAAA,UACN,SAAA,EAAW,MAAM,MAAO,CAAA,IAAA;EAAA,UACxB,UAAY,EAAA,KAAA;EAAA,SACd;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACrC,GAAK,EAAA;EAAA,QACH,YAAc,EAAA,GAAA;EAAA,QACd,SAAW,EAAA;EAAA,UACT,OAAA,EAAS,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,OAAA;EAAA,UACrB,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,SACpB;EAAA,QACA,aAAe,EAAA;EAAA,UACb,IAAM,EAAA,KAAA;EAAA,UACN,SAAA,EAAW,MAAM,MAAO,CAAA,IAAA;EAAA,UACxB,UAAY,EAAA,KAAA;EAAA,SACd;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,IAAA,EAAM,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACvC,GAAK,EAAA;EAAA,QACH,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,QAClB,SAAW,EAAA;EAAA,UACT,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,qBAAqB,CAAA;EAAA,SAC9C;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,qBAAqB,CAAA;EAAA,SAC9C;EAAA,QACA,OAAS,EAAA;EAAA,UACP,EAAA,EAAI,MAAM,IAAK,CAAA,WAAA;EAAA,SACjB;EAAA,QACA,aAAe,EAAA;EAAA,UACb,IAAM,EAAA,KAAA;EAAA,UACN,SAAA,EAAW,MAAM,MAAO,CAAA,IAAA;EAAA,UACxB,UAAY,EAAA,KAAA;EAAA,SACd;EAAA,OACF;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;EC9EO,MAAMC,UAAuC,GAAA;EAAA,EAClD,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA;EAAA,IACnB,KAAO,EAAA,OAAA;EAAA,IACP,MAAQ,EAAA,KAAA;EAAA,IACR,OAAS,EAAA,WAAA;EAAA,IACT,KAAO,EAAA,YAAA;EAAA,KACA,MAAA;EAAA,IACP,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,QAAS,CAAA,OAAA;EAAA,IACvD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,QAAS,CAAA,OAAA;EAAA,IACrD,YAAA,EAAc,aAAa,QAAS,CAAA,OAAA;EAAA,IACpC,WAAA,EAAa,YAAY,QAAS,CAAA,OAAA;EAAA,IAClC,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,OAAA;EAAA,IACnC,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,IAClB,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,IACnC,MAAQ,EAAA;EAAA,MACN,WAAa,EAAA,KAAA,CAAM,MAAO,CAAA,QAAA,CAAS,eAAe,CAAA;EAAA,MAClD,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,KAAA;EAAA,KACrC;EAAA,IACA,aAAe,EAAA;EAAA,MACb,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA;EAAA,MACnC,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAA,CAAA;EAAA,MAC9C,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,MAAA;EAAA,KACrC;EAAA,IACA,QAAU,EAAA;EAAA,MACR,SAAW,EAAA,MAAA;EAAA,MACX,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA;EAAA,MACnC,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,KAAA;EAAA,KACrC;EAAA,IACA,SAAW,EAAA;EAAA,MACT,aAAe,EAAA;EAAA,QACb,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,QAAA;EAAA,QACnC,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,OAAA;EAAA,OACrC;EAAA,MACA,MAAQ,EAAA;EAAA,QACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,QAAA;EAAA,OACrC;EAAA,KACF;EAAA,IACA,SAAW,EAAA;EAAA,MACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,QAAS,CAAA,QAAA;EAAA,MACnC,MAAQ,EAAA;EAAA,QACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,OAAA;EAAA,OACrC;EAAA,KACF;EAAA,IACA,YAAc,EAAA;EAAA,MACZ,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,QAAS,CAAA,WAAA;EAAA,KAC7B;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,SAAS,EAAC;EAAA,IACV,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACrC,aAAe,EAAA;EAAA,QACb,MAAQ,EAAA;EAAA,UACN,SAAA,EAAW,CAAa,UAAA,EAAA,KAAA,CAAM,MAAO,CAAA,EAAA,CAAA,CAAA;EAAA,UACrC,WAAA,EAAa,MAAM,MAAO,CAAA,EAAA;EAAA,SAC5B;EAAA,OACF;EAAA,KACF,CAAA;EAAA,GAEF;EACF,CAAA;;ECzDO,MAAM,IAAmC,GAAA;EAAA,EAC9C,SAAW,EAAA,CAAC,EAAE,WAAA,EAAmB,MAAA;EAAA,IAC/B,MAAQ,EAAA;EAAA,MACN,IAAM,EAAA,KAAA;EAAA,MACN,WAAW,CAAG,EAAA,WAAA,CAAA,IAAA,CAAA;EAAA,MACd,UAAY,EAAA,KAAA;EAAA,KACd;EAAA,GACF,CAAA;EAAA,EACA,YAAc,EAAA;EAAA,IACZ,WAAa,EAAA,eAAA;EAAA,GACf;EACF,CAAA;;ECbO,MAAMC,QAAqC,GAAA;EAAA,EAChD,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,IACrD,SAAW,EAAA;EAAA,MACT,OAAA,EAAS,QAAQ,MAAO,CAAA,QAAA;EAAA,KAC1B;EAAA,IACA,KAAO,EAAA;EAAA,MACL,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,OAAA;EAAA,MACjC,QAAU,EAAA;EAAA,QACR,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,iBAAiB,CAAA;EAAA,OACpD;EAAA,MACA,aAAe,EAAA;EAAA,QACb,IAAM,EAAA,KAAA;EAAA,QACN,SAAA,EAAW,MAAM,MAAO,CAAA,IAAA;EAAA,QACxB,UAAY,EAAA,KAAA;EAAA,OACd;EAAA,KACF;EAAA,IACA,KAAO,EAAA;EAAA,MACL,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,KACnC;EAAA,GACF,CAAA;EACF,CAAA;;ECnBO,MAAMC,KAAiC,GAAA;EAAA,EAC5C,KAAA,EAAO,CAAE,WAAY,CAAA;EAAA,EACrB,SAAW,EAAA;EAAA,IACT,SAAW,EAAA;EAAA,MACT,UAAY,EAAA,UAAA;EAAA,KACd;EAAA,GACF;EAAA,EACA,KAAO,EAAA;EAAA,IACL,EAAI,EAAA;EAAA,MACF,SAAW,EAAA;EAAA,QACT,YAAc,EAAA,aAAA;EAAA,OAChB;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,SAAW,EAAA;EAAA,QACT,YAAc,EAAA,aAAA;EAAA,OAChB;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,SAAW,EAAA;EAAA,QACT,YAAc,EAAA,aAAA;EAAA,OAChB;EAAA,KACF;EAAA,GACF;EAAA,EACA,QAAU,EAAA;EAAA,IACR,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,MAAO,EAAA,EAAG,OAAS,EAAA,WAAA,EAAkB,KAAA;EACtD,MAAA,MAAM,UACJ,GAAA,OAAA,IAAA,IAAA,GAAA,OAAA,GACC,MAAO,CAAA,WAAW,KAAK,MAAO,CAAA,WAAW,CAAE,CAAA,GAAG,CAC3C,GAAA,MAAA,CAAO,WAAW,CAAA,CAAE,GAAG,CACvB,GAAA,WAAA,CAAA;EAEN,MAAA,MAAM,QAAW,GAAA,gBAAA,CAAiBzB,cAAS,CAAA,QAAA,EAAU,UAAU,CAAC,CAAA,CAAA;EAEhE,MAAO,OAAA;EAAA,QACL,SAAW,EAAA;EAAA,UACT,OAAS,EAAA,UAAA;EAAA,UACT,KAAO,EAAA,QAAA;EAAA,SACT;EAAA,OACF,CAAA;EAAA,KACF;EAAA,IACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,EAAE,MAAO,EAAA,EAAG,WAAa,EAAA,OAAA,EAAc,KAAA;EACvD,MAAA,MAAM,UACJ,GAAA,OAAA,IAAA,IAAA,GAAA,OAAA,GACC,MAAO,CAAA,WAAW,KAAK,MAAO,CAAA,WAAW,CAAE,CAAA,GAAG,CAC3C,GAAA,MAAA,CAAO,WAAW,CAAA,CAAE,GAAG,CACvB,GAAA,WAAA,CAAA;EAEN,MAAA,MAAM,QAAW,GAAA,gBAAA,CAAiBA,cAAS,CAAA,QAAA,EAAU,UAAU,CAAC,CAAA,CAAA;EAEhE,MAAO,OAAA;EAAA,QACL,SAAW,EAAA;EAAA,UACT,OAAS,EAAA,UAAA;EAAA,UACT,KAAO,EAAA,QAAA;EAAA,SACT;EAAA,OACF,CAAA;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,SAAW,EAAA;EAAA,QACT,OAAS,EAAA,eAAA;EAAA,QACT,KAAO,EAAA,eAAA;EAAA,OACT;EAAA,KACF;EAAA,GACF;EAAA,EACA,YAAc,EAAA;EAAA,IACZ,IAAM,EAAA,IAAA;EAAA,IACN,WAAa,EAAA,wBAAA;EAAA,GACf;EACF,CAAA;;ECrEO,MAAM0B,OAAmC,GAAA;EAAA,EAC9C,KAAO,EAAA,CAAE,WAAa,EAAA,OAAA,EAAS,aAAc,CAAA;EAAA,EAC7C,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA;EAAA,IACnB,KAAO,EAAA,YAAA;EAAA,IACP,MAAQ,EAAA,KAAA;EAAA,IACR,KAAO,EAAA,WAAA;EAAA,KACA,MAAA;EAAA,IACP,SAAW,EAAA;EAAA,MACT,YAAA,EAAc,aAAa,KAAM,CAAA,OAAA;EAAA,MACjC,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,UAAA,EAAY,YAAY,CAAC,CAAA;EAAA,MACzB,KAAO,EAAA,MAAA;EAAA,MACP,OAAS,EAAA,MAAA;EAAA,KACX;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,OAAA;EAAA,OAClC;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,OAAA;EAAA,OAClC;EAAA,KACF,CAAA;EAAA,IACA,IAAA,EAAM,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACvC,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,IAAA;EAAA,OAClC;EAAA,KACF,CAAA;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACxC,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,KAAA;EAAA,QAChC,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,KAAM,CAAA,KAAA;EAAA,OAC1B;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACrC,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,OAAA;EAAA,QACrB,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,OACpB;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,MAAM,EAAG,CAAA,KAAA;EAAA,QAClB,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,OACpB;EAAA,KACF,CAAA;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACxC,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,MAAM,EAAG,CAAA,IAAA;EAAA,QAClB,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,QAClB,WAAa,EAAA,IAAA;EAAA,QACb,WAAA,EAAa,MAAM,MAAO,CAAA,OAAA;EAAA,QAC1B,WAAa,EAAA,OAAA;EAAA,OACf;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;EC3DO,MAAMC,aAAyC,GAAA;EAAA,EACpD,KAAO,EAAA,CAAE,MAAQ,EAAA,OAAA,EAAS,WAAW,cAAe,CAAA;EAAA,EACpD,KAAO,EAAA;EAAA,IACL,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,YAAc,EAAA,KAAA,EAAO,MAAO,EAAA,EAAS,MAAA;EAAA,MAC1D,KAAO,EAAA;EAAA,QACL,YAAA,EAAc,aAAa,KAAM,CAAA,OAAA;EAAA,OACnC;EAAA,MACA,YAAc,EAAA;EAAA,QACZ,MAAA,EAAQ,OAAO,GAAG,CAAA;EAAA,OACpB;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,YAAc,EAAA;EAAA,QACZ,MAAA,EAAQ,OAAO,IAAI,CAAA;EAAA,OACrB;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,YAAc,EAAA;EAAA,QACZ,MAAA,EAAQ,OAAO,IAAI,CAAA;EAAA,OACrB;EAAA,KACF,CAAA;EAAA,GACF;EAAA,EACA,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA;EAAA,IACnB,KAAO,EAAA,MAAA;EAAA,IACP,KAAO,EAAA,OAAA;EAAA,IACP,MAAQ,EAAA,KAAA;EAAA,IACR,KAAO,EAAA,YAAA;EAAA,IACP,OAAS,EAAA,WAAA;EAAA,IACT,OAAA;EAAA,GACC,EAAA,UAAA,EAAY,QAAU,EAAA,IAAA,EAAQ,KAAA;EA/BnC,IAAA,IAAA,EAAA,CAAA;EA+BuC,IAAA,OAAA;EAAA,MACnC,IAAM,EAAA;EAAA,QACJ,YAAA,EAAc,aAAa,KAAM,CAAA,OAAA;EAAA,OACnC;EAAA,MACA,KAAO,EAAA;EAAA,QACL,QAAU,EAAA,CAAA,EAAA,GAAA,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,IAAZ,KAAA,IAAA,GAAA,EAAA,GAAoB,OAAO,IAAI,CAAA;EAAA,QACzC,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QACpD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QAClD,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QACpD,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,KAAM,CAAA,OAAA;EAAA,QAClD,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,QAClB,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,iBAAiB,CAAA;EAAA,QAE5C,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,QAC/B,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA;EAAA,QAChC,YAAc,EAAA,OAAA,CAAQ,YAAa,CAAA,cAAc,CAAE,CAAA,KAAA;EAAA,QACnD,MAAQ,EAAA;EAAA,UACN,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC1C,WAAa,EAAA,KAAA,CAAM,MAAO,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,SACjD;EAAA,QACA,aAAe,EAAA;EAAA,UACb,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC1C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,UAChC,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAA,CAAA;EAAA,SAChD;EAAA,QACA,QAAU,EAAA;EAAA,UACR,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,UAC1C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,UAChC,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,SAC7C;EAAA,QACA,SAAW,EAAA;EAAA,UACT,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,kBAAkB,CAAA;EAAA,UAC7C,OAAA,EAAS,QAAQ,KAAM,CAAA,QAAA;EAAA,UACvB,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,SAClC;EAAA,QACA,SAAW,EAAA;EAAA,UACT,aAAe,EAAA;EAAA,YACb,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,YAChC,SAAW,EAAA,MAAA;EAAA,WACb;EAAA,UACA,MAAQ,EAAA;EAAA,YACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,WAClC;EAAA,SACF;EAAA,OACF;EAAA,MACA,YAAc,EAAA;EAAA,QACZ,KAAO,EAAA,MAAA;EAAA,QACP,YAAc,EAAA,OAAA,CAAQ,YAAa,CAAA,cAAc,CAAE,CAAA,OAAA;EAAA,OACrD;EAAA,MACA,OAAS,EAAA;EAAA,QACP,MAAQ,EAAA;EAAA,UACN,MAAQ,EAAA,MAAA;EAAA,UACR,oBAAA,EAAsB,YAAa,CAAA,eAAe,CAAE,CAAA,OAAA;EAAA,UACpD,YAAA,EAAc,YAAa,CAAA,eAAe,CAAE,CAAA,OAAA;EAAA,UAC5C,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,eAAe,CAAE,CAAA,OAAA;EAAA,UACtC,OAAS,EAAA,UAAA,GAAa,OAAQ,CAAA,KAAA,CAAM,QAAW,GAAA,MAAA;EAAA,UAC/C,MAAQ,EAAA;EAAA,YACN,IAAI,UAAa,GAAA,MAAA,GAAS,KAAM,CAAA,UAAA,CAAW,eAAe,CAAE,CAAA,KAAA;EAAA,WAC9D;EAAA,UACA,OAAS,EAAA;EAAA,YACP,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,eAAe,CAAE,CAAA,MAAA;EAAA,WACxC;EAAA,UACA,SAAW,EAAA;EAAA,YACT,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,eAAe,CAAE,CAAA,QAAA;EAAA,YACtC,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,eAAe,CAAE,CAAA,QAAA;EAAA,WACrC;EAAA,SACF;EAAA,QACA,KAAO,EAAA;EAAA,UACL,MAAQ,EAAA,MAAA;EAAA,UACR,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,eAAe,CAAE,CAAA,OAAA;EAAA,UACtC,uBAAA,EAAyB,YAAa,CAAA,eAAe,CAAE,CAAA,OAAA;EAAA,UACvD,YAAA,EAAc,YAAa,CAAA,eAAe,CAAE,CAAA,OAAA;EAAA,UAC5C,OAAS,EAAA,UAAA,GAAa,OAAQ,CAAA,KAAA,CAAM,QAAW,GAAA,MAAA;EAAA,UAC/C,MAAQ,EAAA;EAAA,YACN,IAAI,UAAa,GAAA,MAAA,GAAS,KAAM,CAAA,UAAA,CAAW,eAAe,CAAE,CAAA,KAAA;EAAA,WAC9D;EAAA,UACA,OAAS,EAAA;EAAA,YACP,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,eAAe,CAAE,CAAA,MAAA;EAAA,WACxC;EAAA,UACA,SAAW,EAAA;EAAA,YACT,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,eAAe,CAAE,CAAA,QAAA;EAAA,YACtC,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,eAAe,CAAE,CAAA,QAAA;EAAA,WACrC;EAAA,SACF;EAAA,OACF;EAAA,KACF,CAAA;EAAA,GAAA;EACF,CAAA;;ECnHO,MAAMC,wBAAoD,GAAA;EAAA,EAC/D,KAAA,EAAO,CAAE,WAAA,EAAa,UAAW,CAAA;EAAA,EACjC,KAAO,EAAA;EAAA,IACL,EAAI,EAAA;EAAA,MACF,QAAU,EAAA;EAAA,QACR,GAAK,EAAA,KAAA;EAAA,QACL,KAAO,EAAA,KAAA;EAAA,OACT;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,QAAU,EAAA;EAAA,QACR,GAAK,EAAA,KAAA;EAAA,QACL,KAAO,EAAA,KAAA;EAAA,OACT;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,QAAU,EAAA;EAAA,QACR,GAAK,EAAA,GAAA;EAAA,QACL,KAAO,EAAA,GAAA;EAAA,OACT;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,QAAU,EAAA;EAAA,QACR,GAAK,EAAA,GAAA;EAAA,QACL,KAAO,EAAA,GAAA;EAAA,OACT;EAAA,KACF;EAAA,GACF;EAAA,EACA,QAAU,EAAA;EAAA,IACR,IAAM,EAAA;EAAA,MACJ,QAAU,EAAA;EAAA,QACR,QAAU,EAAA,UAAA;EAAA,QACV,GAAK,EAAA,GAAA;EAAA,QACL,KAAO,EAAA,GAAA;EAAA,QACP,MAAQ,EAAA,MAAA;EAAA,OACV;EAAA,KACF;EAAA,GACF;EAAA,EACA,WAAW,OAAO;EAAA,IAChB,SAAW,EAAA;EAAA,MACT,QAAU,EAAA,UAAA;EAAA,KACZ;EAAA,IACA,QAAU,EAAA;EAAA,MACR,QAAU,EAAA,UAAA;EAAA,MACV,GAAK,EAAA,GAAA;EAAA,MACL,KAAO,EAAA,GAAA;EAAA,MACP,MAAQ,EAAA,MAAA;EAAA,KACV;EAAA,GACF,CAAA;EACF,CAAA;;;;;;;;;;;;;;;;;;EChDO,MAAMC,UAAsC,GAAA;EAAA,EACjD,KAAO,EAAA,CAAE,WAAa,EAAA,YAAA,EAAc,YAAY,wBAAyB,CAAA;EAAA,EACzE,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA;EAAA,IACnB,KAAO,EAAA,OAAA;EAAA,IACP,KAAO,EAAA,MAAA;EAAA,IACP,MAAQ,EAAA,KAAA;EAAA,KACD,MAAA;EAAA,IACP,SAAW,EAAA;EAAA,MACT,CAAA,EAAG,QAAQ,CAAC,CAAA;EAAA,MACZ,CAAA,EAAG,OAAO,EAAE,CAAA;EAAA,MACZ,OAAS,EAAA,oBAAA;EAAA,MACT,MAAQ,EAAA,WAAA;EAAA,MACR,WAAa,EAAA,sBAAA;EAAA,MACb,YAAc,EAAA,eAAA;EAAA,KAChB;EAAA,IACA,sBAAwB,EAAA;EAAA,MACtB,CAAG,EAAA,GAAA;EAAA,MACH,CAAG,EAAA,KAAA;EAAA,MACH,OAAS,EAAA,oBAAA;EAAA,MACT,YAAc,EAAA,eAAA;EAAA,KAChB;EAAA,IACA,UAAY,EAAAtB,iBAAA,CAAA;EAAA,MACV,UAAY,EAAA,UAAA;EAAA,MACZ,MAAQ,EAAA,MAAA;EAAA,MACR,OAAS,EAAA,GAAA;EAAA,MACT,YAAc,EAAA,IAAA;EAAA,MACd,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,MACjC,MAAQ,EAAA;EAAA,QACN,MAAQ,EAAA,SAAA;EAAA,QACR,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,aAAa,CAAA;EAAA,OAChD;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,cAAc,CAAA;EAAA,OACjD;EAAA,KACG,EAAA,IAAA,CAAA;EAAA,IAEL,QAAU,EAAA;EAAA,MACR,KAAA,EAAO,KAAM,CAAA,IAAA,CAAK,GAAG,CAAA;EAAA,MACrB,QAAU,EAAA,IAAA;EAAA,MACV,CAAA,EAAG,QAAQ,CAAC,CAAA;EAAA,KACd;EAAA,GACF,CAAA;EACF,CAAA;;EC3CO,MAAMuB,aAAyC,GAAA;EAAA,EACpD,KAAA,EAAO,CAAE,UAAW,CAAA;EAAA,EACpB,SAAW,EAAA,CAAC,EAAE,EAAA,EAAU,MAAA;EAAA,IACtB,UAAUC,WAAM,CAAA;EAAA,MACd,WAAa,EAAA,IAAA;EAAA,MACb,WAAa,EAAA,QAAA;EAAA,MACb,WAAa,EAAA,gBAAA;EAAA,MACb,OAAS,EAAA,GAAA;EAAA,MACT,OAAS,EAAA,MAAA;EAAA,MACT,aAAe,EAAA,QAAA;EAAA,MACf,UAAY,EAAA,QAAA;EAAA,MACZ,GAAK,EAAA,GAAA;EAAA,MACL,cAAgB,EAAA,QAAA;EAAA,MAChB,SAAW,EAAA,QAAA;EAAA,MACX,IAAM,EAAA,IAAA;EAAA,MACN,IAAM,EAAA,IAAA;EAAA,MACN,OAAS,EAAA,WAAA;EAAA,OACR,EAAE,CAAA;EAAA,GACP,CAAA;EACF,CAAA;;ECpBO,MAAMC,YAAwC,GAAA;EAAA,EACnD,KAAO,EAAA,CAAE,OAAS,EAAA,aAAA,EAAe,aAAa,aAAc,CAAA;EAAA,EAC5D,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,IACrD,KAAO,EAAA;EAAA,MACL,QAAU,EAAA,UAAA;EAAA,MACV,UAAY,EAAA,QAAA;EAAA,MACZ,IAAM,EAAA,CAAA;EAAA,KACR;EAAA,IACA,WAAa,EAAA;EAAA,MACX,OAAS,EAAA,oBAAA;EAAA,MACT,YAAc,EAAA;EAAA,QACZ,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,eAAe,CAAA;EAAA,QAC/C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA;EAAA,QACnC,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAA,CAAA;EAAA,OAChD;EAAA,MACA,QAAU,EAAA;EAAA,QACR,SAAW,EAAA,CAAA,UAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA,CAAA,CAAA;EAAA,QAC3C,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,KAAA;EAAA,OAClC;EAAA,MACA,SAAW,EAAA;EAAA,QACT,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,kBAAkB,CAAA;EAAA,QAClD,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAA;EAAA,QAChC,OAAA,EAAS,QAAQ,KAAM,CAAA,QAAA;EAAA,OACzB;EAAA,KACF;EAAA,IACA,SAAW,EAAA;EAAA,MACT,KAAO,EAAA,MAAA;EAAA,MACP,MAAQ,EAAA,MAAA;EAAA,MACR,UAAY,EAAA,QAAA;EAAA,KACd;EAAA,IACA,WAAa,EAAA;EAAA,MACX,UAAY,EAAA,aAAA;EAAA,MACZ,SAAW,EAAA,aAAA;EAAA,MACX,SAAW,EAAA,QAAA;EAAA,MACX,OAAS,EAAA,MAAA;EAAA,MACT,OAAS,EAAA,IAAA;EAAA,MACT,MAAQ,EAAA;EAAA,QACN,OAAS,EAAA,UAAA;EAAA,QACT,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,OACpB;EAAA,MACA,YAAc,EAAA;EAAA,QACZ,KAAO,EAAA,SAAA;EAAA,OACT;EAAA,KACF;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,SAAS,CAAC;EAAA,MACR,OAAO,EAAE,MAAA,EAAQ,OAAO,KAAO,EAAA,YAAA,EAAc,SAAS,WAAY,EAAA;EAAA,KAC7D,MAAA;EAAA,MACL,WAAa,EAAA;EAAA,QACX,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,iBAAiB,CAAA;EAAA,QACjD,YAAA,EAAc,aAAa,KAAM,CAAA,OAAA;EAAA,QACjC,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,QAC/B,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,OAAA;EAAA,OAClC;EAAA,KACF,CAAA;EAAA,IACA,QAAQ,CAAC;EAAA,MACP,OAAO,EAAE,MAAA,EAAQ,OAAO,KAAO,EAAA,YAAA,EAAc,SAAS,WAAY,EAAA;EAAA,KAC7D,MAAA;EAAA,MACL,WAAa,EAAA;EAAA,QACX,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,gBAAgB,CAAA;EAAA,QAChD,YAAA,EAAc,aAAa,KAAM,CAAA,MAAA;EAAA,QACjC,WAAA,EAAa,YAAY,KAAM,CAAA,OAAA;EAAA,QAC/B,WAAa,EAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,gBAAgB,CAAA;EAAA,OACtD;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;EClEO,MAAMC,YAAwC,GAAA;EAAA,EACnD,KAAO,EAAA,CAAE,WAAa,EAAA,QAAA,EAAU,YAAa,CAAA;EAAA,EAC7C,KAAO,EAAA;EAAA,IACL,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,MACrD,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,MAAO,CAAA,aAAa,CAAE,CAAA,EAAA;EAAA,QAC9B,QAAA,EAAU,MAAO,CAAA,aAAa,CAAE,CAAA,EAAA;EAAA,QAChC,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,aAAa,CAAE,CAAA,EAAA;EAAA,QAC7D,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,aAAa,CAAE,CAAA,EAAA;EAAA,QAC3D,QAAU,EAAA,IAAA;EAAA,OACZ;EAAA,MACA,UAAY,EAAA;EAAA,QACV,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,OACvB;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,MACrD,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,MAAO,CAAA,aAAa,CAAE,CAAA,EAAA;EAAA,QAC9B,QAAA,EAAU,MAAO,CAAA,aAAa,CAAE,CAAA,EAAA;EAAA,QAChC,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,aAAa,CAAE,CAAA,EAAA;EAAA,QAC7D,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,aAAa,CAAE,CAAA,EAAA;EAAA,QAC3D,QAAU,EAAA,IAAA;EAAA,QACV,UAAY,EAAA;EAAA,UACV,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,SACvB;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,MACrD,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,MAAO,CAAA,aAAa,CAAE,CAAA,EAAA;EAAA,QAC9B,QAAA,EAAU,MAAO,CAAA,aAAa,CAAE,CAAA,EAAA;EAAA,QAChC,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,aAAa,CAAE,CAAA,EAAA;EAAA,QAC7D,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,aAAa,CAAE,CAAA,EAAA;EAAA,QAC3D,QAAU,EAAA,IAAA;EAAA,QACV,UAAY,EAAA;EAAA,UACV,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,SACvB;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,MACrD,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,MAAO,CAAA,aAAa,CAAE,CAAA,EAAA;EAAA,QAC9B,QAAA,EAAU,MAAO,CAAA,aAAa,CAAE,CAAA,EAAA;EAAA,QAChC,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,aAAa,CAAE,CAAA,EAAA;EAAA,QAC7D,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,aAAa,CAAE,CAAA,EAAA;EAAA,QAC3D,QAAU,EAAA,IAAA;EAAA,QACV,UAAY,EAAA;EAAA,UACV,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,SACvB;EAAA,OACF;EAAA,KACF,CAAA;EAAA,GACF;EAAA,EACA,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA;EAAA,IACnB,KAAO,EAAA,OAAA;EAAA,IACP,KAAO,EAAA,MAAA;EAAA,IACP,MAAQ,EAAA,KAAA;EAAA,IACR,OAAA;EAAA,IACA,KAAO,EAAA,YAAA;EAAA,IACP,WAAa,EAAA,cAAA;EAAA,GACf,EAAG,iBAAuB,MAAA;EAAA,IACxB,SAAW,EAAA;EAAA,MACT,YAAA,EAAc,YAAa,CAAA,aAAa,CAAE,CAAA,OAAA;EAAA,MAC1C,kBAAoB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,mBAAmB,CAAE,CAAA,OAAA;EAAA,MACnE,gBAAkB,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,mBAAmB,CAAE,CAAA,OAAA;EAAA,MACjE,QAAU,EAAA,OAAA,CAAQ,QAAS,CAAA,mBAAmB,CAAE,CAAA,OAAA;EAAA,MAChD,MAAQ,EAAA,MAAA;EAAA,MACR,KAAO,EAAA,MAAA;EAAA,MACP,GAAK,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,aAAa,CAAE,CAAA,GAAA;EAAA,MAC9C,mBAAqB,EAAA,CAAA,OAAA,EAAU,eAA2B,CAAA,SAAA,EAAA,MAAA,CAAO,EAAE,CAAA,CAAA,OAAA,CAAA;EAAA,MACnE,gBAAkB,EAAA,KAAA;EAAA,MAClB,SAAW,EAAA,MAAA;EAAA,KACb;EAAA,IACA,MAAQ,EAAA;EAAA,MACN,KAAO,EAAA,MAAA;EAAA,MACP,cAAgB,EAAA,QAAA;EAAA,MAChB,UAAY,EAAA,QAAA;EAAA,MACZ,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,aAAa,CAAE,CAAA,OAAA;EAAA,MACjC,MAAQ,EAAA,SAAA;EAAA,MACR,YAAA,EAAc,YAAa,CAAA,aAAa,CAAE,CAAA,OAAA;EAAA,MAC1C,YAAY,cAAe,CAAA,QAAA;EAAA,MAC3B,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,OAAQ,CAAA,aAAa,CAAE,CAAA,QAAA;EAAA,OAClC;EAAA,MACA,QAAU,EAAA;EAAA,QACR,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,aAAa,CAAE,CAAA,QAAA;EAAA,OACnC;EAAA,KACF;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,EAAS,EAAA,EAAA,EAAU,MAAA;EAAA,MAC9C,WAAWF,WAAM,CAAA;EAAA,QACf,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,yBAAyB,CAAA;EAAA,SACjE,EAAE,CAAA;EAAA,MACL,MAAQ,EAAA;EAAA,QACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,yBAAyB,CAAA;EAAA,QAClE,MAAQ,EAAA;EAAA,UACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,uBAAuB,CAAA;EAAA,SAClE;EAAA,QACA,QAAU,EAAA;EAAA,UACR,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,uBAAuB,CAAA;EAAA,UAChE,MAAQ,EAAA;EAAA,YACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,uBAAuB,CAAA;EAAA,WAClE;EAAA,SACF;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,EAAS,EAAA,EAAA,EAAU,MAAA;EAAA,MAC5C,WAAWA,WAAM,CAAA;EAAA,QACf,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,0BAA0B,CAAA;EAAA,SAClE,EAAE,CAAA;EAAA,MACL,MAAQ,EAAA;EAAA,QACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,0BAA0B,CAAA;EAAA,QACnE,MAAQ,EAAA;EAAA,UACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,wBAAwB,CAAA;EAAA,SACnE;EAAA,QACA,QAAU,EAAA;EAAA,UACR,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,wBAAwB,CAAA;EAAA,UACjE,MAAQ,EAAA;EAAA,YACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,wBAAwB,CAAA;EAAA,WACnE;EAAA,SACF;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,EAAS,EAAA,EAAA,EAAU,MAAA;EAAA,MAC5C,WAAWA,WAAM,CAAA;EAAA,QACf,OAAA,EAAS,MAAM,UAAU,CAAA;EAAA,SACxB,EAAE,CAAA;EAAA,MACL,MAAQ,EAAA;EAAA,QACN,OAAS,EAAA,kBAAA;EAAA,QACT,MAAQ,EAAA;EAAA,UACN,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,aAAa,CAAA;EAAA,SAChD;EAAA,QACA,QAAU,EAAA;EAAA,UACR,KAAO,EAAA,KAAA,CAAM,IAAK,CAAA,aAAa,CAAE,CAAA,OAAA;EAAA,UACjC,OAAS,EAAA,SAAA;EAAA,UACT,MAAQ,EAAA;EAAA,YACN,OAAS,EAAA,SAAA;EAAA,WACX;EAAA,SACF;EAAA,OACF;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,EAAS,EAAA,EAAA,EAAU,MAAA;EAAA,MACzC,WAAWA,WAAM,CAAA;EAAA,QACf,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,aAAa,EAAE,0BAA0B,CAAA;EAAA,SAClE,EAAE,CAAA;EAAA,MACL,MAAQ,EAAA;EAAA,QACN,OAAS,EAAA,aAAA;EAAA,QACT,MAAQ,EAAA;EAAA,UACN,OAAS,EAAA,aAAA;EAAA,SACX;EAAA,QACA,QAAU,EAAA;EAAA,UACR,OAAA,EAAS,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,OAAA;EAAA,UACrB,MAAQ,EAAA;EAAA,YACN,OAAA,EAAS,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,OAAA;EAAA,WACvB;EAAA,SACF;EAAA,OACF;EAAA,KACF,CAAA;EAAA,GACF;EAAA,EACA,YAAc,EAAA;EAAA,IACZ,IAAM,EAAA,IAAA;EAAA,IACN,OAAS,EAAA,SAAA;EAAA,GACX;EACF,CAAA;;EClKO,MAAMG,SAAsC,GAAA;EAAA,EACjD,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA,EAAE,QAAQ,KAAO,EAAA,OAAA,EAAS,WAAY,EAAA,EAAS,MAAA;EAAA,IAClE,WAAA,EAAa,YAAY,OAAQ,CAAA,OAAA;EAAA,IACjC,KAAA,EAAO,KAAM,CAAA,UAAA,CAAW,OAAQ,CAAA,KAAA;EAAA,IAChC,iBAAA,EAAmB,KAAM,CAAA,UAAA,CAAW,OAAQ,CAAA,KAAA;EAAA,IAC5C,eAAA,EAAiB,KAAM,CAAA,UAAA,CAAW,OAAQ,CAAA,KAAA;EAAA,GAC5C,CAAA;EACF,CAAA;;ECRA,MAAM,gBAAA,GAAmB,SAAU,CAAA,GAAA,EAAK,GAAG,CAAA,CAAA;EAEpC,MAAM,gBAAmB,GAAA,CAAC,KAAe,EAAA,IAAA,EAAc,KAAe,KAAA;EAC3E,EAAI,IAAA,KAAA;EAAO,IAAO,OAAA,KAAA,CAAM,WAAW,MAAO,CAAA,KAAA,CAAA;EAC1C,EAAI,IAAA,IAAA;EAAM,IAAA,OAAOC,uBAAY,EAAE,MAAA,EAAQ,IAAM,EAAA,MAAA,EAAQ,kBAAkB,CAAA,CAAA;EAEvE,EAAO,OAAA,KAAA,CAAM,WAAW,MAAO,CAAA,OAAA,CAAA;EACjC,CAAA;;ECNO,MAAMC,QAAoC,GAAA;EAAA,EAC/C,KAAO,EAAA,CAAE,WAAa,EAAA,MAAA,EAAQ,SAAS,MAAO,CAAA;EAAA,EAC9C,KAAO,EAAA;EAAA,IACL,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACxC,SAAW,EAAA;EAAA,QACT,KAAA,EAAO,MAAO,CAAA,MAAA,CAAO,KAAK,CAAA;EAAA,QAC1B,MAAA,EAAQ,MAAO,CAAA,MAAA,CAAO,KAAK,CAAA;EAAA,OAC7B;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,UAAA,EAAY,MAAO,CAAA,MAAA,CAAO,KAAK,CAAA;EAAA,QAC/B,QAAU,EAAA,KAAA;EAAA,OACZ;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,SAAW,EAAA;EAAA,QACT,KAAA,EAAO,OAAO,MAAO,CAAA,EAAA;EAAA,QACrB,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,OACxB;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,UAAA,EAAY,OAAO,MAAO,CAAA,EAAA;EAAA,QAC1B,QAAU,EAAA,IAAA;EAAA,OACZ;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,SAAW,EAAA;EAAA,QACT,KAAA,EAAO,OAAO,MAAO,CAAA,EAAA;EAAA,QACrB,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,OACxB;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,UAAA,EAAY,OAAO,MAAO,CAAA,EAAA;EAAA,QAC1B,QAAU,EAAA,IAAA;EAAA,OACZ;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,OAAA,EAAS,OAAO,MAAO,CAAA,EAAA;EAAA,OACzB;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,SAAW,EAAA;EAAA,QACT,KAAA,EAAO,OAAO,MAAO,CAAA,EAAA;EAAA,QACrB,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,OACxB;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,UAAA,EAAY,OAAO,MAAO,CAAA,EAAA;EAAA,QAC1B,QAAU,EAAA,IAAA;EAAA,OACZ;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,OAAA,EAAS,OAAO,MAAO,CAAA,EAAA;EAAA,OACzB;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,SAAW,EAAA;EAAA,QACT,KAAA,EAAO,OAAO,MAAO,CAAA,EAAA;EAAA,QACrB,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,OACxB;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,UAAA,EAAY,OAAO,MAAO,CAAA,EAAA;EAAA,QAC1B,QAAU,EAAA,IAAA;EAAA,OACZ;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,OAAA,EAAS,OAAO,MAAO,CAAA,EAAA;EAAA,OACzB;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,SAAW,EAAA;EAAA,QACT,KAAA,EAAO,OAAO,MAAO,CAAA,EAAA;EAAA,QACrB,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,OACxB;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,UAAA,EAAY,OAAO,MAAO,CAAA,EAAA;EAAA,QAC1B,QAAU,EAAA,KAAA;EAAA,OACZ;EAAA,KACF,CAAA;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACxC,SAAW,EAAA;EAAA,QACT,KAAA,EAAO,MAAO,CAAA,MAAA,CAAO,KAAK,CAAA;EAAA,QAC1B,MAAA,EAAQ,MAAO,CAAA,MAAA,CAAO,KAAK,CAAA;EAAA,OAC7B;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,UAAA,EAAY,MAAO,CAAA,MAAA,CAAO,KAAK,CAAA;EAAA,QAC/B,QAAU,EAAA,KAAA;EAAA,OACZ;EAAA,KACF,CAAA;EAAA,GAEF;EAAA,EACA,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA;EAAA,IACnB,MAAQ,EAAA,KAAA;EAAA,IACR,KAAO,EAAA,MAAA;EAAA,IACP,KAAO,EAAA,YAAA;EAAA,GACN,EAAA,KAAA,EAAO,IAAM,EAAA,OAAA,EAAc,KAAA;EAC5B,IAAA,MAAM,aAAgB,GAAA,OAAA,IAAW,gBAAiB,CAAA,KAAA,EAAO,MAAM,KAAK,CAAA,CAAA;EAEpE,IAAO,OAAA;EAAA,MACL,SAAW,EAAA;EAAA,QACT,OAAS,EAAA,aAAA;EAAA,QACT,KAAA,EAAO,iBAAiB,aAAa,CAAA;EAAA,QACrC,OAAS,EAAA,MAAA;EAAA,QACT,UAAY,EAAA,QAAA;EAAA,QACZ,SAAW,EAAA,OAAA;EAAA,QACX,QAAU,EAAA,UAAA;EAAA,OACZ;EAAA,MACA,SAAW,EAAA;EAAA,QACT,KAAO,EAAA,MAAA;EAAA,QACP,MAAQ,EAAA,MAAA;EAAA,QACR,SAAW,EAAA,OAAA;EAAA,OACb;EAAA,MACA,KAAO,EAAA;EAAA,QACL,QAAU,EAAA,UAAA;EAAA,QACV,MAAA,EAAQ,CAAI,CAAA,EAAA,MAAA,CAAO,GAAG,CAAA,CAAA,CAAA;EAAA,QACtB,KAAA,EAAO,CAAI,CAAA,EAAA,MAAA,CAAO,GAAG,CAAA,CAAA,CAAA;EAAA,QACrB,QAAA,EAAU,OAAO,GAAG,CAAA;EAAA,QACpB,MAAA,EAAQ,OAAO,GAAG,CAAA;EAAA,QAClB,OAAS,EAAA,MAAA;EAAA,QACT,cAAgB,EAAA,QAAA;EAAA,QAChB,UAAY,EAAA,QAAA;EAAA,QACZ,QAAU,EAAA,IAAA;EAAA,QACV,UAAY,EAAA,UAAA;EAAA,QACZ,OAAA,EAAS,OAAO,IAAI,CAAA;EAAA,QACpB,OAAA,EAAS,KAAM,CAAA,GAAA,CAAI,KAAK,CAAA;EAAA,QACxB,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,QAClB,YAAA,EAAc,aAAa,MAAO,CAAA,MAAA;EAAA,QAClC,MAAQ,EAAA,MAAA;EAAA,OACV;EAAA,KAEF,CAAA;EAAA,GACF;EAAA,EACA,QAAU,EAAA;EAAA,IACR,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,YAAA,IAAsB,MAAA;EAAA,MAC/C,SAAW,EAAA;EAAA,QACT,WAAa,EAAA,OAAA;EAAA,QACb,YAAA,EAAc,aAAa,MAAO,CAAA,MAAA;EAAA,QAClC,OAAS,EAAA;EAAA,UACP,YAAA,EAAc,aAAa,MAAO,CAAA,MAAA;EAAA,UAClC,WAAa,EAAA,OAAA;EAAA,SACf;EAAA,OACF;EAAA,MACA,KAAO,EAAA;EAAA,QACL,YAAA,EAAc,aAAa,MAAO,CAAA,MAAA;EAAA,OACpC;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,YAAA,IAAsB,MAAA;EAAA,MAChD,SAAW,EAAA;EAAA,QACT,WAAa,EAAA,OAAA;EAAA,QACb,YAAA,EAAc,aAAa,MAAO,CAAA,OAAA;EAAA,QAClC,OAAS,EAAA;EAAA,UACP,YAAA,EAAc,aAAa,MAAO,CAAA,OAAA;EAAA,UAClC,WAAa,EAAA,OAAA;EAAA,SACf;EAAA,OACF;EAAA,MACA,KAAO,EAAA;EAAA,QACL,YAAA,EAAc,aAAa,MAAO,CAAA,OAAA;EAAA,OACpC;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;EC3JO,MAAM,WAA0C,GAAA;EAAA,EACrD,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,IAC5C,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,IAClB,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,IACjC,MAAQ,EAAA;EAAA,MACN,EAAI,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,aAAa,CAAA;EAAA,MACzC,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,KAAA;EAAA,OACnC;EAAA,KACF;EAAA,IACA,OAAS,EAAA;EAAA,MACP,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAO,cAAc,CAAA;EAAA,KACjD;EAAA,IACA,aAAe,EAAA;EAAA,MACb,IAAM,EAAA,KAAA;EAAA,MACN,SAAA,EAAW,MAAM,MAAO,CAAA,IAAA;EAAA,MACxB,UAAY,EAAA,KAAA;EAAA,KACd;EAAA,GACF,CAAA;EAAA,EACA,YAAc,EAAA;EAAA,IACZ,IAAM,EAAA,IAAA;EAAA,GACR;EACF,CAAA;;ECtBO,MAAMC,OAAmC,GAAA;EAAA,EAC9C,KAAO,EAAA,CAAE,SAAW,EAAA,aAAA,EAAe,QAAS,CAAA;EAAA,EAC5C,KAAO,EAAA;EAAA,IACL,IAAM,EAAA;EAAA,MACJ,MAAQ,EAAA;EAAA,QACN,KAAO,EAAA,KAAA;EAAA,QACP,IAAM,EAAA,OAAA;EAAA,QACN,WAAa,EAAA,MAAA;EAAA,OACf;EAAA,KACF;EAAA,GACF;EAAA,EACA,SAAW,EAAA,CAAC,EAAE,KAAA,EAAY,KAAA;EACxB,IAAM,MAAA;EAAA,MACJ,UAAY,EAAA,EAAE,QAAU,EAAA,EAAE,IAAK,EAAA;EAAA,KAC7B,GAAA,KAAA,CAAA;EACJ,IAAQ,OAAA;EAAA,MACN,OAAS,EAAA;EAAA,QACP,OAAS,EAAA,0BAAA;EAAA,QACT,cAAgB,EAAA,WAAA;EAAA,OAClB;EAAA,MACA,WAAa,EAAA;EAAA,QACX,GAAK,EAAA,CAAA;EAAA,QACL,KAAO,EAAA,CAAA;EAAA,OACT;EAAA,MACA,MAAQ,EAAA;EAAA,QACN,OAAS,EAAA,oBAAA;EAAA,QACT,YAAc,EAAA,cAAA;EAAA,OAChB;EAAA,MACA,MAAQ,EAAA;EAAA,QACN,UAAU,EAAG,CAAA,QAAA;EAAA,QACb,UAAY,EAAA,yBAAA;EAAA,QACZ,aAAe,EAAA,4BAAA;EAAA,QACf,MAAQ,EAAA,cAAA;EAAA,QACR,iBAAmB,EAAA,qBAAA;EAAA,QACnB,iBAAmB,EAAA,OAAA;EAAA,OACrB;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,UAAY,EAAA,uBAAA;EAAA,QACZ,aAAe,EAAA,0BAAA;EAAA,OACjB;EAAA,MACA,MAAQ,EAAA;EAAA,QACN,UAAY,EAAA,yBAAA;EAAA,QACZ,aAAe,EAAA,4BAAA;EAAA,OACjB;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;EC7CA,MAAM,QAAA,GAAWC,kBAAO,iBAAiB,CAAA,CAAA;EACzC,MAAM,YAAA,GAAeA,kBAAO,2BAA2B,CAAA,CAAA;EAEhD,MAAMC,SAAsC,GAAA;EAAA,EACjD,WAAW,CAAC;EAAA,IACV,OAAO,EAAE,MAAA,EAAQ,OAAO,KAAO,EAAA,OAAA,EAAS,OAAO,YAAa,EAAA;EAAA,GACvD,MAAA;EAAA,IACL,KAAA,EAAO,MAAM,IAAK,CAAA,QAAA;EAAA,IAClB,aAAe,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,OAAQ,CAAA,OAAA;EAAA,IACjD,QAAA,EAAU,OAAQ,CAAA,QAAA,CAAS,OAAQ,CAAA,OAAA;EAAA,IACnC,YAAA,EAAc,aAAa,OAAQ,CAAA,OAAA;EAAA,IACnC,eAAA,EAAiB,KAAM,CAAA,UAAA,CAAW,OAAQ,CAAA,OAAA;EAAA,IAC1C,CAAC,QAAS,CAAA,QAAQ,GAAG,KAAA,CAAM,WAAW,OAAQ,CAAA,OAAA;EAAA,GAChD,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,OAAA,EAAS,MAAM,EAAG,CAAA,IAAA;EAAA,MAClB,WAAa,EAAA,IAAA;EAAA,MACb,WAAA,EAAa,MAAM,MAAO,CAAA,OAAA;EAAA,MAC1B,WAAa,EAAA,OAAA;EAAA,MACb,CAAC,QAAA,CAAS,QAAQ,GAAG,MAAM,EAAG,CAAA,IAAA;EAAA,MAC9B,CAAC,YAAA,CAAa,QAAQ,GAAG,MAAM,MAAO,CAAA,OAAA;EAAA,KACxC,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,KAAO,EAAA,mBAAA;EAAA,MACP,OAAS,EAAA,aAAA;EAAA,MACT,CAAC,QAAA,CAAS,QAAQ,GAAG,MAAM,aAAa,CAAA;EAAA,KAC1C,CAAA;EAAA,IACA,IAAA,EAAM,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACvC,KAAO,EAAA,iBAAA;EAAA,MACP,OAAS,EAAA,WAAA;EAAA,MACT,CAAC,QAAA,CAAS,QAAQ,GAAG,MAAM,WAAW,CAAA;EAAA,KACxC,CAAA;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACxC,KAAO,EAAA,cAAA;EAAA,MACP,OAAA,EAAS,MAAM,EAAG,CAAA,IAAA;EAAA,MAClB,WAAa,EAAA,IAAA;EAAA,MACb,WAAA,EAAa,MAAM,MAAO,CAAA,OAAA;EAAA,MAC1B,CAAC,YAAA,CAAa,QAAQ,GAAG,MAAM,MAAO,CAAA,OAAA;EAAA,MACtC,WAAa,EAAA,OAAA;EAAA,MACb,CAAC,QAAA,CAAS,QAAQ,GAAG,MAAM,EAAG,CAAA,IAAA;EAAA,KAChC,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,KAAO,EAAA,mBAAA;EAAA,MACP,OAAA,EAAS,MAAM,UAAU,CAAA;EAAA,MACzB,CAAC,QAAA,CAAS,QAAQ,GAAG,MAAM,UAAU,CAAA;EAAA,KACvC,CAAA;EAAA,IACA,MAAA,EAAQ,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACzC,KAAO,EAAA,iBAAA;EAAA,MACP,OAAA,EAAS,MAAM,iBAAiB,CAAA;EAAA,MAChC,CAAC,QAAA,CAAS,QAAQ,GAAG,MAAM,iBAAiB,CAAA;EAAA,KAC9C,CAAA;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACxC,KAAO,EAAA,iBAAA;EAAA,MACP,OAAA,EAAS,MAAM,iBAAiB,CAAA;EAAA,MAChC,CAAC,QAAA,CAAS,QAAQ,GAAG,MAAM,iBAAiB,CAAA;EAAA,KAC9C,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MACrC,OAAA,EAAS,KAAM,CAAA,EAAA,CAAG,EAAG,CAAA,OAAA;EAAA,MACrB,CAAC,QAAS,CAAA,QAAQ,GAAG,KAAA,CAAM,GAAG,EAAG,CAAA,OAAA;EAAA,KAEnC,CAAA;EAAA,GACF;EACF,CAAA;;ECjEO,MAAMC,MAAmC,GAAA;EAAA,EAC9C,KAAO,EAAA;EAAA,IACL,EAAI,EAAA;EAAA,MACF,OAAS,EAAA,SAAA;EAAA,KACX;EAAA,IACA,EAAI,EAAA;EAAA,MACF,OAAS,EAAA,SAAA;EAAA,KACX;EAAA,IACA,EAAI,EAAA;EAAA,MACF,OAAS,EAAA,SAAA;EAAA,KACX;EAAA,IACA,EAAI,EAAA;EAAA,MACF,OAAS,EAAA,SAAA;EAAA,KACX;EAAA,GACF;EAAA,EACA,SAAW,EAAA,CAAC,EAAE,OAAA,EAAS,OAAa,MAAA;EAAA,IAClC,SAAS,OAAW,IAAA,cAAA;EAAA,IACpB,OAAO,KAAS,IAAA,SAAA;EAAA,GAClB,CAAA;EACF,CAAA;;ECnBO,MAAMC,gBAA4C,GAAA;EAAA,EACvD,KAAO,EAAA,CAAE,QAAU,EAAA,MAAA,EAAQ,SAAU,CAAA;EAAA,EACrC,KAAO,EAAA;EAAA,IACL,EAAA,EAAI,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAQ,EAAA,KAAA,EAAO,OAAQ,EAAA,EAAS,MAAA;EAAA,MACrD,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,OAC1B;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,OACvB;EAAA,MACA,OAAS,EAAA;EAAA,QACP,aAAe,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,OAAQ,CAAA,EAAA;EAAA,QACjD,QAAA,EAAU,OAAQ,CAAA,QAAA,CAAS,OAAQ,CAAA,EAAA;EAAA,OACrC;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,OAC1B;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,OACvB;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,OAC1B;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,OACvB;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;EClCO,MAAMC,aAAyC,GAAA;EAAA,EACpD,KAAO,EAAA,CAAE,aAAe,EAAA,SAAA,EAAW,SAAU,CAAA;EAAA,EAC7C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,eAAoB,KAAA;EACvC,IAAA,MAAM,EAAE,KAAA,EAAO,MAAQ,EAAA,MAAA,EAAQ,OAAU,GAAA,KAAA,CAAA;EACzC,IAAQ,OAAA;EAAA,MACN,OAAS,EAAA;EAAA,QACP,MAAQ,EAAA,MAAA;EAAA,QACR,kBAAA,EAAoB,OAAO,GAAG,CAAA;EAAA,QAC9B,gBAAA,EAAkB,OAAO,GAAG,CAAA;EAAA,QAC5B,aAAA,EAAe,OAAO,GAAG,CAAA;EAAA,QACzB,QAAU,EAAA,IAAA;EAAA,QACV,UAAY,EAAA,UAAA;EAAA,OACd;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAS,EAAA,aAAA,IAAA,IAAA,GAAA,aAAA,GAAiB,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,OAAA;EAAA,QAClD,KAAO,EAAA,aAAA,GAAgB,gBAAiB,CAAA,aAAa,CAAI,GAAA,OAAA;EAAA,QACzD,MAAQ,EAAA;EAAA,UACN,OAAS,EAAA,aAAA,IAAA,IAAA,GAAA,aAAA,GAAiB,KAAM,CAAA,UAAA,CAAW,OAAO,eAAe,CAAA;EAAA,SACnE;EAAA,QACA,OAAS,EAAA;EAAA,UACP,OAAS,EAAA,aAAA,IAAA,IAAA,GAAA,aAAA,GAAiB,KAAM,CAAA,UAAA,CAAW,OAAO,gBAAgB,CAAA;EAAA,SACpE;EAAA,OACF;EAAA,MACA,WAAa,EAAA;EAAA,QACX,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,QACxB,MAAQ,EAAA;EAAA,UACN,IAAM,EAAA,KAAA;EAAA,UACN,UAAY,EAAA,KAAA;EAAA,UACZ,SAAW,EAAA,CAAA,EAAG,KAAM,CAAA,MAAA,CAAO,MAAM,eAAe,CAAA,CAAA,CAAA;EAAA,SAClD;EAAA,OACF;EAAA,KACF,CAAA;EAAA,GACF;EAAA,EACA,KAAO,EAAA;EAAA,IACL,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,OAAS,EAAA;EAAA,QACP,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,OAC1B;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,OAAS,EAAA;EAAA,QACP,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,OAC1B;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,IAAgB,MAAA;EAAA,MACrC,OAAS,EAAA;EAAA,QACP,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,OAC1B;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;ECvDO,MAAMC,MAAkC,GAAA;EAAA,EAC7C,KAAO,EAAA,CAAE,MAAQ,EAAA,OAAA,EAAS,eAAe,WAAY,CAAA;EAAA,EACrD,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,KAAO,EAAA,WAAA,EAAa,KAAO,EAAA,OAAA,EAAS,OAAS,EAAA,WAAA,IAAqB,MAAA;EAAA,IAC/F,IAAM,EAAA;EAAA,MACJ,cAAgB,EAAA,OAAA;EAAA,MAChB,UAAY,EAAA,OAAA;EAAA,MACZ,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,IAAK,CAAA,OAAA;EAAA,MAC/B,cAAA,EAAgB,YAAY,IAAK,CAAA,OAAA;EAAA,MACjC,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,OAAA;EAAA,MAC/B,YAAc,EAAA,MAAA;EAAA,MACd,aAAe,EAAA,OAAA,CAAQ,gBAAgB,CAAA,CAAE,IAAK,CAAA,OAAA;EAAA,MAC9C,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,MAAQ,EAAA;EAAA,QACN,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,IAAK,CAAA,KAAA;EAAA,QAC/B,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,KAAA;EAAA,OACjC;EAAA,MACA,SAAW,EAAA;EAAA,QACT,MAAQ,EAAA,aAAA;EAAA,QACR,QAAQ,EAAE,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,KAAK,OAAQ,EAAA;EAAA,OACnD;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,IAAK,CAAA,MAAA;EAAA,OACjC;EAAA,MACA,SAAW,EAAA;EAAA,QACT,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,IAAK,CAAA,QAAA;EAAA,QAC/B,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,QAAA;EAAA,QAC/B,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,QAAA;EAAA,QACzB,yBAA2B,EAAA;EAAA,UACzB,EAAA,EAAI,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,QAAA;EAAA,SACxB;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,WAAA,EAAa,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,QAAA;EAAA,UAC/B,KAAA,EAAO,KAAM,CAAA,MAAA,CAAO,IAAK,CAAA,QAAA;EAAA,SAC3B;EAAA,OACF;EAAA,KACF;EAAA,IACA,KAAO,EAAA;EAAA,MACL,KAAO,EAAA,SAAA;EAAA,MACP,SAAW,EAAA,OAAA;EAAA,MACX,YAAY,WAAY,CAAA,IAAA;EAAA,KAC1B;EAAA,IACA,WAAa,EAAA;EAAA,MACX,SAAW,EAAA,OAAA;EAAA,MACX,YAAY,WAAY,CAAA,QAAA;EAAA,MACxB,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,KACpB;EAAA,IACA,SAAW,EAAA;EAAA,MACT,IAAM,EAAA,CAAA;EAAA,MACN,IAAM,EAAA,CAAA;EAAA,MACN,YAAc,EAAA,MAAA;EAAA,MACd,EAAA,EAAI,MAAM,IAAK,CAAA,OAAA;EAAA,MACf,KAAO,EAAA,YAAA;EAAA,MACP,YAAY,WAAY,CAAA,IAAA;EAAA,MACxB,QAAU,EAAA,IAAA;EAAA,MACV,OAAS,EAAA,MAAA;EAAA,MACT,UAAY,EAAA,QAAA;EAAA,MACZ,cAAgB,EAAA,QAAA;EAAA,MAChB,SAAW,EAAA,KAAA;EAAA,KACb;EAAA,GACF,CAAA;EACF,CAAA;;EC5DO,MAAMC,UAAuC,GAAA;EAAA,EAClD,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,EAAU,EAAA,IAAA,EAAY,MAAA;EAAA,IAClD,OAAS,EAAA,MAAA;EAAA,IACT,KAAO,EAAA,MAAA;EAAA,IACP,mBAAqB,EAAA,CAAA,OAAA,EAAU,IAAgB,CAAA,SAAA,EAAA,MAAA,CAAO,EAAE,CAAA,CAAA,OAAA,CAAA;EAAA,IACxD,gBAAkB,EAAA,KAAA;EAAA,IAClB,SAAW,EAAA,MAAA;EAAA,IACX,YAAc,EAAA,MAAA;EAAA,IACd,aAAA,EAAe,OAAO,CAAC,CAAA;EAAA,GACzB,CAAA;EACF,CAAA;;ECTO,MAAMC,IAAiC,GAAA;EAAA,EAC5C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAM,MAAA;EAAA,MACJ,MAAQ,EAAA,KAAA;EAAA,MACR,UAAY,EAAA,EAAE,QAAU,EAAA,EAAE,IAAK,EAAA;EAAA,KAC7B,GAAA,KAAA,CAAA;EACJ,IAAA,OAAOd,WAAM,CAAA;EAAA,MACX,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,UAAU,EAAG,CAAA,QAAA;EAAA,MACb,eAAe,EAAG,CAAA,aAAA;EAAA,MAClB,eAAe,EAAG,CAAA,QAAA;EAAA,OACjB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;EChBO,MAAMe,IAAiC,GAAA;EAAA,EAC5C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAM,MAAA;EAAA,MACJ,MAAQ,EAAA,KAAA;EAAA,MACR,UAAY,EAAA,EAAE,QAAU,EAAA,EAAE,IAAK,EAAA;EAAA,KAC7B,GAAA,KAAA,CAAA;EACJ,IAAA,OAAOf,WAAM,CAAA;EAAA,MACX,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,UAAU,EAAG,CAAA,QAAA;EAAA,MACb,eAAe,EAAG,CAAA,aAAA;EAAA,MAClB,eAAe,EAAG,CAAA,QAAA;EAAA,OACjB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;EChBO,MAAMgB,IAAiC,GAAA;EAAA,EAC5C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAM,MAAA;EAAA,MACJ,MAAQ,EAAA,KAAA;EAAA,MACR,UAAY,EAAA,EAAE,QAAU,EAAA,EAAE,IAAK,EAAA;EAAA,KAC7B,GAAA,KAAA,CAAA;EACJ,IAAA,OAAOhB,WAAM,CAAA;EAAA,MACX,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,UAAU,EAAG,CAAA,QAAA;EAAA,MACb,eAAe,EAAG,CAAA,aAAA;EAAA,MAClB,eAAe,EAAG,CAAA,QAAA;EAAA,OACjB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;EChBO,MAAMiB,IAAiC,GAAA;EAAA,EAC5C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAM,MAAA;EAAA,MACJ,MAAQ,EAAA,KAAA;EAAA,MACR,UAAY,EAAA,EAAE,QAAU,EAAA,EAAE,IAAK,EAAA;EAAA,KAC7B,GAAA,KAAA,CAAA;EACJ,IAAA,OAAOjB,WAAM,CAAA;EAAA,MACX,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,UAAU,EAAG,CAAA,QAAA;EAAA,MACb,eAAe,EAAG,CAAA,aAAA;EAAA,MAClB,eAAe,EAAG,CAAA,QAAA;EAAA,OACjB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;EChBO,MAAMkB,IAAiC,GAAA;EAAA,EAC5C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAM,MAAA;EAAA,MACJ,MAAQ,EAAA,KAAA;EAAA,MACR,UAAY,EAAA,EAAE,QAAU,EAAA,EAAE,IAAK,EAAA;EAAA,KAC7B,GAAA,KAAA,CAAA;EACJ,IAAA,OAAOlB,WAAM,CAAA;EAAA,MACX,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,UAAU,EAAG,CAAA,QAAA;EAAA,MACb,eAAe,EAAG,CAAA,aAAA;EAAA,MAClB,eAAe,EAAG,CAAA,QAAA;EAAA,OACjB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;EChBO,MAAMmB,IAAiC,GAAA;EAAA,EAC5C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAM,MAAA;EAAA,MACJ,MAAQ,EAAA,KAAA;EAAA,MACR,UAAY,EAAA,EAAE,QAAU,EAAA,EAAE,IAAK,EAAA;EAAA,KAC7B,GAAA,KAAA,CAAA;EACJ,IAAA,OAAOnB,WAAM,CAAA;EAAA,MACX,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,YAAY,EAAG,CAAA,UAAA;EAAA,MACf,UAAU,EAAG,CAAA,QAAA;EAAA,MACb,eAAe,EAAG,CAAA,aAAA;EAAA,MAClB,eAAe,EAAG,CAAA,QAAA;EAAA,OACjB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;EChBO,MAAMoB,YAAyC,GAAA;EAAA,EACpD,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAA,MAAM,EAAE,UAAA,EAAe,GAAA,KAAA,CAAM,UAAW,CAAA,QAAA,CAAA;EACxC,IAAA,OAAOpB,WAAM,CAAA;EAAA,MACX,KAAO,EAAA,cAAA;EAAA,MACP,YAAY,UAAW,CAAA,UAAA;EAAA,MACvB,YAAY,UAAW,CAAA,UAAA;EAAA,MACvB,YAAY,UAAW,CAAA,UAAA;EAAA,MACvB,UAAU,UAAW,CAAA,QAAA;EAAA,MACrB,eAAe,UAAW,CAAA,aAAA;EAAA,MAC1B,eAAe,UAAW,CAAA,QAAA;EAAA,OACzB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;ECbO,MAAMqB,MAAmC,GAAA;EAAA,EAC9C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAA,MAAM,EAAE,IAAA,EAAS,GAAA,KAAA,CAAM,UAAW,CAAA,QAAA,CAAA;EAClC,IAAA,OAAOrB,WAAM,CAAA;EAAA,MACX,KAAO,EAAA,cAAA;EAAA,MACP,YAAY,IAAK,CAAA,UAAA;EAAA,MACjB,YAAY,IAAK,CAAA,UAAA;EAAA,MACjB,YAAY,IAAK,CAAA,UAAA;EAAA,MACjB,UAAU,IAAK,CAAA,QAAA;EAAA,MACf,eAAe,IAAK,CAAA,aAAA;EAAA,MACpB,eAAe,IAAK,CAAA,QAAA;EAAA,OACnB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;ECbO,MAAMsB,aAA0C,GAAA;EAAA,EACrD,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAA,MAAM,EAAE,WAAA,EAAgB,GAAA,KAAA,CAAM,UAAW,CAAA,QAAA,CAAA;EACzC,IAAA,OAAOtB,WAAM,CAAA;EAAA,MACX,KAAO,EAAA,cAAA;EAAA,MACP,YAAY,WAAY,CAAA,UAAA;EAAA,MACxB,YAAY,WAAY,CAAA,UAAA;EAAA,MACxB,YAAY,WAAY,CAAA,UAAA;EAAA,MACxB,UAAU,WAAY,CAAA,QAAA;EAAA,MACtB,eAAe,WAAY,CAAA,aAAA;EAAA,MAC3B,eAAe,WAAY,CAAA,QAAA;EAAA,OAC1B,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;ECbO,MAAMuB,MAAmC,GAAA;EAAA,EAC9C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAA,MAAM,EAAE,IAAA,EAAS,GAAA,KAAA,CAAM,UAAW,CAAA,QAAA,CAAA;EAClC,IAAA,OAAOvB,WAAM,CAAA;EAAA,MACX,KAAO,EAAA,cAAA;EAAA,MACP,YAAY,IAAK,CAAA,UAAA;EAAA,MACjB,YAAY,IAAK,CAAA,UAAA;EAAA,MACjB,YAAY,IAAK,CAAA,UAAA;EAAA,MACjB,UAAU,IAAK,CAAA,QAAA;EAAA,MACf,eAAe,IAAK,CAAA,aAAA;EAAA,MACpB,eAAe,IAAK,CAAA,QAAA;EAAA,OACnB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;ECbO,MAAMwB,OAAoC,GAAA;EAAA,EAC/C,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EAC5B,IAAA,MAAM,EAAE,KAAA,EAAU,GAAA,KAAA,CAAM,UAAW,CAAA,QAAA,CAAA;EACnC,IAAA,OAAOxB,WAAM,CAAA;EAAA,MACX,KAAO,EAAA,cAAA;EAAA,MACP,YAAY,KAAM,CAAA,UAAA;EAAA,MAClB,YAAY,KAAM,CAAA,UAAA;EAAA,MAClB,YAAY,KAAM,CAAA,UAAA;EAAA,MAClB,UAAU,KAAM,CAAA,QAAA;EAAA,MAChB,eAAe,KAAM,CAAA,aAAA;EAAA,MACrB,eAAe,KAAM,CAAA,QAAA;EAAA,OACpB,EAAE,CAAA,CAAA;EAAA,GACP;EACF,CAAA;;ECbO,MAAMyB,GAAgC,GAAA;EAAA,EAC3C,QAAU,EAAA;EAAA,IACR,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,MAAA,EAAW,GAAA,KAAA,CAAM,UAAW,CAAA,IAAA,CAAA;EACpC,MAAA,OAAOzB,WAAM,CAAA;EAAA,QACX,YAAY,MAAO,CAAA,UAAA;EAAA,QACnB,YAAY,MAAO,CAAA,UAAA;EAAA,QACnB,YAAY,MAAO,CAAA,UAAA;EAAA,QACnB,UAAU,MAAO,CAAA,QAAA;EAAA,QACjB,eAAe,MAAO,CAAA,aAAA;EAAA,QACtB,eAAe,MAAO,CAAA,QAAA;EAAA,SACrB,EAAE,CAAA,CAAA;EAAA,KACP;EAAA,IACA,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,MAAA,EAAW,GAAA,KAAA,CAAM,UAAW,CAAA,IAAA,CAAA;EACpC,MAAA,OAAOA,WAAM,CAAA;EAAA,QACX,YAAY,MAAO,CAAA,UAAA;EAAA,QACnB,YAAY,MAAO,CAAA,UAAA;EAAA,QACnB,YAAY,MAAO,CAAA,UAAA;EAAA,QACnB,UAAU,MAAO,CAAA,QAAA;EAAA,QACjB,eAAe,MAAO,CAAA,aAAA;EAAA,QACtB,eAAe,MAAO,CAAA,QAAA;EAAA,SACrB,EAAE,CAAA,CAAA;EAAA,KACP;EAAA,GACF;EAAA,EACA,SAAW,EAAA;EAAA,IACT,KAAO,EAAA,cAAA;EAAA,GACT;EACF,CAAA;;EC5BO,MAAM0B,OAAoC,GAAA;EAAA,EAC/C,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA,EAAE,OAAO,MAAO,EAAA,EAAG,EAAG,EAAA,KAAM1B,WAAM,CAAA;EAAA,IACrD,KAAO,EAAA,SAAA;EAAA,IACP,KAAO,EAAA,MAAA;EAAA,IACP,QAAU,EAAA,MAAA;EAAA,IACV,YAAA,EAAc,OAAO,CAAC,CAAA;EAAA,IACtB,iBAAA,EAAmB,OAAO,CAAC,CAAA;EAAA,IAC3B,SAAA,EAAW,OAAO,CAAC,CAAA;EAAA,IACnB,eAAA,EAAiB,OAAO,CAAC,CAAA;EAAA,KACxB,EAAE,CAAA;EAAA,EACL,KAAO,EAAA;EAAA,IACL,KAAO,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACxB,MAAA,MAAM,EAAE,SAAA,EAAc,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACvC,MAAA,OAAOA,WAAM,CAAA;EAAA,QACX,YAAY,SAAU,CAAA,UAAA;EAAA,QACtB,YAAY,SAAU,CAAA,UAAA;EAAA,QACtB,YAAY,SAAU,CAAA,UAAA;EAAA,QACtB,UAAU,SAAU,CAAA,QAAA;EAAA,QACpB,eAAe,SAAU,CAAA,aAAA;EAAA,QACzB,eAAe,SAAU,CAAA,QAAA;EAAA,SACxB,EAAE,CAAA,CAAA;EAAA,KACP;EAAA,IACA,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,OAAA,EAAY,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACrC,MAAA,OAAOA,WAAM,CAAA;EAAA,QACX,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,UAAU,OAAQ,CAAA,QAAA;EAAA,QAClB,eAAe,OAAQ,CAAA,aAAA;EAAA,QACvB,eAAe,OAAQ,CAAA,QAAA;EAAA,SACtB,EAAE,CAAA,CAAA;EAAA,KACP;EAAA,IACA,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,OAAA,EAAY,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACrC,MAAA,OAAOA,WAAM,CAAA;EAAA,QACX,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,UAAU,OAAQ,CAAA,QAAA;EAAA,QAClB,eAAe,OAAQ,CAAA,aAAA;EAAA,QACvB,eAAe,OAAQ,CAAA,QAAA;EAAA,SACtB,EAAE,CAAA,CAAA;EAAA,KACP;EAAA,IACA,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,OAAA,EAAY,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACrC,MAAA,OAAOA,WAAM,CAAA;EAAA,QACX,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,UAAU,OAAQ,CAAA,QAAA;EAAA,QAClB,eAAe,OAAQ,CAAA,aAAA;EAAA,QACvB,eAAe,OAAQ,CAAA,QAAA;EAAA,SACtB,EAAE,CAAA,CAAA;EAAA,KACP;EAAA,IACA,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,OAAA,EAAY,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACrC,MAAA,OAAOA,WAAM,CAAA;EAAA,QACX,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,YAAY,OAAQ,CAAA,UAAA;EAAA,QACpB,UAAU,OAAQ,CAAA,QAAA;EAAA,QAClB,eAAe,OAAQ,CAAA,aAAA;EAAA,QACvB,eAAe,OAAQ,CAAA,QAAA;EAAA,SACtB,EAAE,CAAA,CAAA;EAAA,KACP;EAAA,GACF;EACF,CAAA;;ECnEO,MAAM2B,QAAqC,GAAA;EAAA,EAChD,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,EAAE,KAAO,EAAA,MAAA,EAAU,EAAA,EAAA,EACtC,KAAA3B,WAAA;EAAA,IACE;EAAA,MACE,KAAO,EAAA,SAAA;EAAA,MACP,KAAO,EAAA,MAAA;EAAA,MACP,QAAU,EAAA,MAAA;EAAA,MACV,YAAA,EAAc,OAAO,CAAC,CAAA;EAAA,MACtB,iBAAA,EAAmB,OAAO,CAAC,CAAA;EAAA,MAC3B,SAAA,EAAW,OAAO,CAAC,CAAA;EAAA,MACnB,eAAA,EAAiB,OAAO,CAAC,CAAA;EAAA,KAC3B;EAAA,IACA,EAAA;EAAA,GACF;EAAA,EACF,KAAO,EAAA;EAAA,IACL,KAAO,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACxB,MAAA,MAAM,EAAE,QAAA,EAAa,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACtC,MAAO,OAAAA,WAAA;EAAA,QACL;EAAA,UACE,YAAY,QAAS,CAAA,UAAA;EAAA,UACrB,YAAY,QAAS,CAAA,UAAA;EAAA,UACrB,YAAY,QAAS,CAAA,UAAA;EAAA,UACrB,UAAU,QAAS,CAAA,QAAA;EAAA,UACnB,eAAe,QAAS,CAAA,aAAA;EAAA,UACxB,eAAe,QAAS,CAAA,QAAA;EAAA,UACxB,gBAAgB,QAAS,CAAA,cAAA;EAAA,SAC3B;EAAA,QACA,EAAA;EAAA,OACF,CAAA;EAAA,KACF;EAAA,IACA,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,MAAA,EAAW,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACpC,MAAO,OAAAA,WAAA;EAAA,QACL;EAAA,UACE,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,UAAU,MAAO,CAAA,QAAA;EAAA,UACjB,eAAe,MAAO,CAAA,aAAA;EAAA,UACtB,eAAe,MAAO,CAAA,QAAA;EAAA,UACtB,gBAAgB,MAAO,CAAA,cAAA;EAAA,SACzB;EAAA,QACA,EAAA;EAAA,OACF,CAAA;EAAA,KACF;EAAA,IACA,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,MAAA,EAAW,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACpC,MAAO,OAAAA,WAAA;EAAA,QACL;EAAA,UACE,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,UAAU,MAAO,CAAA,QAAA;EAAA,UACjB,eAAe,MAAO,CAAA,aAAA;EAAA,UACtB,eAAe,MAAO,CAAA,QAAA;EAAA,UACtB,gBAAgB,MAAO,CAAA,cAAA;EAAA,SACzB;EAAA,QACA,EAAA;EAAA,OACF,CAAA;EAAA,KACF;EAAA,IACA,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,MAAA,EAAW,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACpC,MAAO,OAAAA,WAAA;EAAA,QACL;EAAA,UACE,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,UAAU,MAAO,CAAA,QAAA;EAAA,UACjB,eAAe,MAAO,CAAA,aAAA;EAAA,UACtB,eAAe,MAAO,CAAA,QAAA;EAAA,UACtB,gBAAgB,MAAO,CAAA,cAAA;EAAA,SACzB;EAAA,QACA,EAAA;EAAA,OACF,CAAA;EAAA,KACF;EAAA,IACA,EAAI,EAAA,CAAC,EAAE,KAAA,EAAO,IAAS,KAAA;EACrB,MAAA,MAAM,EAAE,MAAA,EAAW,GAAA,KAAA,CAAM,UAAW,CAAA,MAAA,CAAA;EACpC,MAAO,OAAAA,WAAA;EAAA,QACL;EAAA,UACE,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,YAAY,MAAO,CAAA,UAAA;EAAA,UACnB,UAAU,MAAO,CAAA,QAAA;EAAA,UACjB,eAAe,MAAO,CAAA,aAAA;EAAA,UACtB,eAAe,MAAO,CAAA,QAAA;EAAA,UACtB,gBAAgB,MAAO,CAAA,cAAA;EAAA,SACzB;EAAA,QACA,EAAA;EAAA,OACF,CAAA;EAAA,KACF;EAAA,GACF;EACF,CAAA;;EC5FO,MAAM4B,WAAwC,GAAA;EAAA,EACnD,WAAW,CAAC,EAAE,cAAc,aAAe,EAAA,YAAA,EAAc,QAAc,MAAA;EAAA,IACrE,OAAS,EAAA,MAAA;EAAA,IACT,QAAU,EAAA,QAAA;EAAA,IACV,qBAAqB,CAAC,MAAA,GAAS,KAAQ,GAAA,CAAA,OAAA,EAAU,mCAAmC,YAA+B,CAAA,gBAAA,EAAA,aAAA,CAAA,OAAA,CAAA;EAAA,IACnH,UAAY,EAAA,SAAA;EAAA,IACZ,YAAc,EAAA,SAAA;EAAA,IACd,MAAQ,EAAA,MAAA;EAAA,IACR,KAAO,EAAA,MAAA;EAAA,GACT,CAAA;EACF,CAAA,CAAA;EAEO,MAAMC,aAA0C,GAAA;EAAA,EACrD,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA,EAAE,QAAQ,KAAO,EAAA,KAAA,EAAO,MAAO,EAAA,EAAS,MAAA;EAAA,IAC3D,OAAS,EAAA,KAAA,CAAM,UAAW,CAAA,cAAc,CAAE,CAAA,OAAA;EAAA,IAC1C,MAAQ,EAAA,GAAA;EAAA,IACR,MAAQ,EAAA,YAAA;EAAA,IACR,MAAQ,EAAA,MAAA;EAAA,IACR,KAAA,EAAO,OAAO,CAAC,CAAA;EAAA,IACf,MAAQ,EAAA;EAAA,MACN,YAAc,EAAA,KAAA,CAAM,MAAO,CAAA,cAAc,CAAE,CAAA,KAAA;EAAA,MAC3C,YAAA,EAAc,OAAO,IAAI,CAAA;EAAA,MACzB,YAAc,EAAA,OAAA;EAAA,KAChB;EAAA,IACA,OAAS,EAAA;EAAA,MACP,YAAc,EAAA,KAAA,CAAM,MAAO,CAAA,cAAc,CAAE,CAAA,KAAA;EAAA,MAC3C,YAAA,EAAc,OAAO,IAAI,CAAA;EAAA,MACzB,YAAc,EAAA,OAAA;EAAA,KAChB;EAAA,GACF,CAAA;EACF,CAAA;;EC9BO,MAAMC,UAAsC,GAAA;EAAA,EACjD,KAAO,EAAA,CAAE,WAAa,EAAA,OAAA,EAAS,OAAQ,CAAA;EAAA,EACvC,SAAW,EAAA;EAAA,IACT,SAAW,EAAA;EAAA,MACT,OAAS,EAAA,MAAA;EAAA,MACT,UAAY,EAAA,QAAA;EAAA,MACZ,QAAU,EAAA,UAAA;EAAA,MACV,QAAU,EAAA,QAAA;EAAA,MACV,KAAO,EAAA,MAAA;EAAA,MACP,MAAQ,EAAA,MAAA;EAAA,KACV;EAAA,IACA,KAAO,EAAA;EAAA,MACL,QAAU,EAAA,UAAA;EAAA,MACV,MAAQ,EAAA,GAAA;EAAA,MACR,IAAM,EAAA,KAAA;EAAA,MACN,SAAW,EAAA,kBAAA;EAAA,MACX,SAAW,EAAA,QAAA;EAAA,MACX,QAAU,EAAA,KAAA;EAAA,MACV,OAAS,EAAA,GAAA;EAAA,KACX;EAAA,IACA,KAAO,EAAA;EAAA,MACL,QAAU,EAAA,UAAA;EAAA,MACV,MAAQ,EAAA,GAAA;EAAA,MACR,MAAQ,EAAA,MAAA;EAAA,MACR,MAAQ,EAAA,SAAA;EAAA,KACV;EAAA,GACF;EACF,CAAA;;EC1BO,MAAMC,cAA0C,GAAA;EAAA,EACrD,OAAO,CAAE,QAAA,EAAU,MAAQ,EAAA,UAAA,EAAY,WAAW,OAAQ,CAAA;EAAA,EAC1D,KAAO,EAAA;EAAA,IACL,EAAA,EAAI,CAAC,EAAE,SAAA,EAAW,OAAO,EAAE,KAAA,EAAO,MAAO,EAAA,EAAS,MAAA;EAAA,MAChD,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,OAC1B;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,OACvB;EAAA,MACA,QAAU,EAAA;EAAA,QACR,KAAA,EAAO,CAAC,SAAA,GAAY,CAAI,GAAA,SAAA;EAAA,OAC1B;EAAA,MACA,OAAS,EAAA;EAAA,QACP,EAAI,EAAA,CAAA;EAAA,OACN;EAAA,MACA,KAAO,EAAA;EAAA,QACL,gBAAkB,EAAA,EAAA;EAAA,QAClB,YAAc,EAAA,EAAA;EAAA,OAChB;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,SAAA,EAAW,OAAO,EAAE,KAAA,EAAO,MAAO,EAAA,EAAS,MAAA;EAAA,MAChD,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,OAC1B;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,OACvB;EAAA,MACA,QAAU,EAAA;EAAA,QACR,KAAA,EAAO,CAAC,SAAA,GAAY,CAAI,GAAA,SAAA;EAAA,OAC1B;EAAA,MACA,OAAS,EAAA;EAAA,QACP,EAAI,EAAA,KAAA;EAAA,OACN;EAAA,MACA,KAAO,EAAA;EAAA,QACL,gBAAkB,EAAA,EAAA;EAAA,QAClB,YAAc,EAAA,EAAA;EAAA,OAChB;EAAA,KACF,CAAA;EAAA,IACA,EAAA,EAAI,CAAC,EAAE,SAAA,EAAW,OAAO,EAAE,KAAA,EAAO,MAAO,EAAA,EAAS,MAAA;EAAA,MAChD,MAAQ,EAAA;EAAA,QACN,MAAA,EAAQ,OAAO,MAAO,CAAA,EAAA;EAAA,QACtB,QAAA,EAAU,OAAO,MAAO,CAAA,EAAA;EAAA,OAC1B;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,OAAA,EAAS,OAAO,IAAK,CAAA,EAAA;EAAA,OACvB;EAAA,MACA,QAAU,EAAA;EAAA,QACR,KAAA,EAAO,CAAC,SAAA,GAAY,EAAK,GAAA,SAAA;EAAA,OAC3B;EAAA,MACA,OAAS,EAAA;EAAA,QACP,EAAI,EAAA,KAAA;EAAA,OACN;EAAA,MACA,KAAO,EAAA;EAAA,QACL,gBAAkB,EAAA,EAAA;EAAA,QAClB,YAAc,EAAA,EAAA;EAAA,OAChB;EAAA,KACF,CAAA;EAAA,GACF;EAAA,EACA,SAAW,EAAA,CAAC,EAAE,KAAA,EAAa,MAAA;EAAA,IACzB,QAAU,EAAA;EAAA,MACR,EAAI,EAAA,CAAA;EAAA,KACN;EAAA,IACA,OAAS,EAAA;EAAA,MACP,UAAY,EAAA,UAAA;EAAA,MACZ,YAAc,EAAA,UAAA;EAAA,MACd,UAAY,EAAA,QAAA;EAAA,MACZ,QAAU,EAAA,QAAA;EAAA,MACV,UAAY,EAAA,CAAA;EAAA,MACZ,aAAe,EAAA,CAAA;EAAA,MACf,OAAOpE,WAAM,CAAA,KAAK,KAAKqE,aAAQ,CAAA,KAAK,IAAI,cAAiB,GAAA,cAAA;EAAA,KAC3D;EAAA,IACA,KAAO,EAAA;EAAA,MACL,UAAY,EAAA,UAAA;EAAA,KACd;EAAA,GACF,CAAA;EACF,CAAA;;EC/EO,MAAMC,SAAqC,GAAA;EAAA,EAChD,KAAO,EAAA,CAAE,WAAa,EAAA,QAAA,EAAU,QAAQ,QAAS,CAAA;EAAA,EACjD,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA;EAAA,IACnB,MAAQ,EAAA,KAAA;EAAA,IACR,KAAO,EAAA,MAAA;EAAA,IACP,OAAS,EAAA,WAAA;EAAA,KACF,MAAA;EAAA,IACP,SAAW,EAAA;EAAA,MACT,QAAU,EAAA,UAAA;EAAA,MACV,EAAI,EAAA,eAAA;EAAA,MACJ,CAAG,EAAA,OAAA;EAAA,MACH,iBAAiB,WAAY,CAAA,EAAA;EAAA,MAC7B,eAAiB,EAAA,OAAA;EAAA,MACjB,eAAA,EAAiB,MAAM,MAAO,CAAA,OAAA;EAAA,KAChC;EAAA,IACA,MAAQ,EAAA;EAAA,MACN,UAAY,EAAA,QAAA;EAAA,MACZ,MAAQ,EAAA,IAAA;EAAA,MACR,mBAAmB,WAAY,CAAA,EAAA;EAAA,MAC/B,iBAAmB,EAAA,OAAA;EAAA,MACnB,iBAAA,EAAmB,MAAM,MAAO,CAAA,OAAA;EAAA,MAChC,EAAI,EAAA,GAAA;EAAA,MACJ,EAAI,EAAA,IAAA;EAAA,KACN;EAAA,IACA,MAAQ,EAAA;EAAA,MACN,QAAU,EAAA,UAAA;EAAA,MACV,MAAQ,EAAA,GAAA;EAAA,MACR,CAAG,EAAA,MAAA;EAAA,MACH,CAAG,EAAA,GAAA;EAAA,MACH,UAAY,EAAA,QAAA;EAAA,MACZ,MAAQ,EAAA,IAAA;EAAA,MACR,gBAAgB,WAAY,CAAA,EAAA;EAAA,MAC5B,cAAgB,EAAA,OAAA;EAAA,MAChB,cAAA,EAAgB,MAAM,MAAO,CAAA,OAAA;EAAA,KAC/B;EAAA,IACA,IAAM,EAAA;EAAA,MACJ,CAAA,EAAG,OAAO,GAAG,CAAA;EAAA,MACb,aAAe,EAAA,QAAA;EAAA,MACf,CAAG,EAAA,MAAA;EAAA,MACH,CAAG,EAAA,MAAA;EAAA,MACH,IAAA,EAAM,CAAgB,aAAA,EAAA,MAAA,CAAO,IAAI,CAAA,CAAA,KAAA,CAAA;EAAA,MACjC,SAAW,EAAA,QAAA;EAAA,KACb;EAAA,GACF,CAAA;EAAA,EACA,KAAO,EAAA;EAAA,IACL,EAAI,EAAA;EAAA,MACF,SAAW,EAAA;EAAA,QACT,CAAG,EAAA,IAAA;EAAA,OACL;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,SAAW,EAAA;EAAA,QACT,CAAG,EAAA,IAAA;EAAA,OACL;EAAA,KACF;EAAA,IACA,EAAI,EAAA;EAAA,MACF,SAAW,EAAA;EAAA,QACT,CAAG,EAAA,IAAA;EAAA,OACL;EAAA,KACF;EAAA,GACF;EACF,CAAA;;;;;;;;;;;;;;;;;;EC1DA,MAAM,cAAiB,GAAAhD,iBAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;EAcvB,MAAM,SAAuB,GAAA;EAAA,EAC3B,aAAe,EAAA;EAAA,IACb,OAAS,EAAA,MAAA;EAAA,IACT,IAAM,EAAA,KAAA;EAAA,IACN,SAAW,EAAA,aAAA;EAAA,IACX,UAAY,EAAA,KAAA;EAAA,GACd;EACF,CAAA,CAAA;EAEA,MAAM,UAAA,GAAa,CAAC,YAA+B,KAAA;EACjD,EAAA,QAAQ,YAAc;EAAA,IACpB,KAAK,aAAA;EAAe,MAAO,OAAA,SAAA,CAAA;EAAA,IAC3B,KAAK,WAAA;EAAa,MAAO,OAAA,UAAA,CAAA;EAAA,IACzB;EAAS,MAAO,OAAA,WAAA,CAAA;EAAA,GAClB;EACF,CAAA,CAAA;EAEA,MAAM,wBAAwB,CAAC,SAAA,EAAoB,OAAU,GAAA,IAAA,EAAM,eAA6B,aAAmB,MAAA;EAAA,EACjH,WAAA,EAAa,YAAY,SAAY,GAAA,UAAA;EAAA,EACrC,SAAS,SAAa,IAAA,QAAA;EAAA,EACtB,SAAA,EAAW,aAAa,CAAS,MAAA,EAAA,cAAA,CAAA,KAAA,CAAA;EAAA,EACjC,QAAQ,OAAW,IAAA;EAAA,IACjB,OAAS,EAAA,SAAA,GAAY,QAAW,GAAA,UAAA,CAAW,YAAY,CAAA;EAAA,IACvD,WAAA,EAAa,YAAY,SAAY,GAAA,UAAA;EAAA,GACvC;EACF,CAAA,CAAA,CAAA;EAEA,MAAM,gBAAmB,GAAA,CAAC,SAAoB,EAAA,OAAA,GAAU,IAAU,MAAA;EAAA,EAChE,WAAA,EAAa,YAAY,SAAY,GAAA,UAAA;EAAA,EACrC,SAAS,SAAa,IAAA,QAAA;EAAA,EACtB,SAAA,EAAW,aAAa,CAAS,MAAA,EAAA,cAAA,CAAA,KAAA,CAAA;EAAA,EACjC,QAAQ,OAAW,IAAA;EAAA,IACjB,OAAA,EAAS,YAAY,QAAW,GAAA,WAAA;EAAA,IAChC,WAAA,EAAa,YAAY,SAAY,GAAA,WAAA;EAAA,GACvC;EACF,CAAA,CAAA,CAAA;EAEO,MAAMiD,YAAwC,GAAA;EAAA,EACnD,KAAO,EAAA,CAAE,YAAc,EAAA,UAAA,EAAY,iBAAkB,CAAA;EAAA,EACrD,SAAW,EAAA,CAAC,EAAE,KAAA,EAAO,EAAE,KAAA,EAAO,MAAO,EAAA,EAAG,SAAW,EAAA,OAAA,EAAS,SAAW,EAAA,YAAA,EAAc,IAAU,MAAA;EAAA,IAC7F,YAAYlC,WAAM,CAAAxB,iBAAA,CAAAA,iBAAA,CAAA;EAAA,MAChB,OAAS,EAAA,MAAA;EAAA,MACT,aAAe,EAAA,QAAA;EAAA,MACf,UAAY,EAAA,QAAA;EAAA,MACZ,cAAgB,EAAA,QAAA;EAAA,MAChB,KAAO,EAAA,MAAA;EAAA,MACP,MAAQ,EAAA,IAAA;EAAA,MACR,SAAW,EAAA,QAAA;EAAA,MACX,QAAU,EAAA,UAAA;EAAA,MACV,WAAa,EAAA,SAAA,IAAa,OAAU,GAAA,GAAA,GAAM,MAAM,IAAI,CAAA;EAAA,MACpD,WAAa,EAAA,QAAA;EAAA,MACb,YAAc,EAAA,IAAA;EAAA,KAAA,EACX,sBAAsB,SAAW,EAAA,OAAA,EAAS,YAAY,CAAA,CAAA,EACtD,YACF,EAAE,CAAA;EAAA,IACL,eAAiB,EAAAA,iBAAA,CAAAA,iBAAA,CAAA;EAAA,MACf,KAAO,EAAA,MAAA;EAAA,MACP,QAAU,EAAA,SAAA;EAAA,MACV,MAAQ,EAAA,IAAA;EAAA,MACR,QAAU,EAAA,UAAA;EAAA,MACV,WAAA,EAAa,MAAM,IAAI,CAAA;EAAA,MACvB,WAAa,EAAA,QAAA;EAAA,MACb,YAAc,EAAA,IAAA;EAAA,KAAA,EACX,qBAAsB,CAAA,SAAA,EAAW,KAAW,CAAA,EAAA,YAAY,CACxD,CAAA,EAAA,SAAA,CAAA;EAAA,IAEL,QAAU,EAAA;EAAA,MACR,OAAS,EAAA,MAAA;EAAA,MACT,aAAe,EAAA,QAAA;EAAA,MACf,UAAY,EAAA,QAAA;EAAA,MACZ,cAAgB,EAAA,QAAA;EAAA,MAChB,QAAU,EAAA,GAAA;EAAA,MACV,QAAU,EAAA,GAAA;EAAA,MACV,YAAA,EAAc,MAAM,GAAG,CAAA;EAAA,MACvB,SAAW,EAAA,QAAA;EAAA,MACX,QAAU,EAAA,UAAA;EAAA,MACV,MAAQ,EAAA,CAAA,UAAA,EAAa,MAAO,CAAA,IAAA,CAAK,KAAK,CAAA,CAAA,CAAA;EAAA,MACtC,SAAW,EAAA,IAAA;EAAA,KACb;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,EAAI,EAAA,CAAC,EAAE,SAAA,EAAiB,MAAA;EAAA,MACtB,UAAA,EAAYA,iBACP,CAAA,EAAA,EAAA,gBAAA,CAAiB,SAAS,CAAA,CAAA;EAAA,MAE/B,eAAA,EAAiBA,iBACZ,CAAA,EAAA,EAAA,gBAAA,CAAiB,SAAS,CAAA,CAAA;EAAA,KAEjC,CAAA;EAAA,GAEF;EACF,CAAA;;EC3GO,MAAM2D,OAAmC,GAAA;EAAA,EAC9C,KAAO,EAAA;EAAA,IACL,OAAA;EAAA,IACA,IAAA;EAAA,IACA,IAAA;EAAA,IACA,cAAA;EAAA,IACA,MAAA;EAAA,IACA,SAAA;EAAA,IACA,QAAA;EAAA,IACA,IAAA;EAAA,GACF;EAAA,EACA,QAAU,EAAA;EAAA,IACR,SAAS,OAAO;EAAA,MACd,KAAO,EAAA;EAAA,QACL,aAAe,EAAA,GAAA;EAAA,QACf,cAAgB,EAAA,UAAA;EAAA,QAChB,YAAc,EAAA,IAAA;EAAA,QACd,WAAa,EAAA,gBAAA;EAAA,QACb,WAAa,EAAA,IAAA;EAAA,QACb,EAAI,EAAA,GAAA;EAAA,OACN;EAAA,MAEA,EAAI,EAAA;EAAA,QACF,KAAO,EAAA,cAAA;EAAA,QACP,UAAY,EAAA,MAAA;EAAA,QACZ,aAAe,EAAA,MAAA;EAAA,QACf,QAAU,EAAA,IAAA;EAAA,OACZ;EAAA,MAEA,EAAI,EAAA;EAAA,QACF,WAAa,EAAA,gBAAA;EAAA,QACb,cAAgB,EAAA,IAAA;EAAA,OAClB;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,KAAU,KAAA;EAClB,MAAA,MAAM,EAAE,WAAA,EAAa,CAAI,GAAA,MAAA,EAAW,GAAA,KAAA,CAAA;EAEpC,MAAO,OAAA;EAAA,QACL,KAAO,EAAA;EAAA,UACL,aAAe,EAAA,GAAA;EAAA,UACf,cAAgB,EAAA,UAAA;EAAA,UAChB,YAAc,EAAA,IAAA;EAAA,UACd,WAAa,EAAA,gBAAA;EAAA,UACb,WAAa,EAAA,IAAA;EAAA,UACb,CAAG,EAAA,GAAA;EAAA,SACL;EAAA,QACA,YAAc,EAAA;EAAA,UACZ,KAAO,EAAA,cAAA;EAAA,UACP,SAASC,eAAK,CAAA,CAAA,EAAG,SAAS,CAAG,EAAA,CAAA,CAAA,IAAA,CAAO,EAAE,KAAK,CAAA;EAAA,UAC3C,UAAY,EAAA,MAAA;EAAA,UACZ,aAAe,EAAA,MAAA;EAAA,UACf,QAAU,EAAA,IAAA;EAAA,SACZ;EAAA,QACA,IAAM,EAAA;EAAA,UACJ,SAASA,eAAK,CAAA,CAAA,EAAG,SAAS,CAAG,EAAA,CAAA,CAAA,IAAA,CAAO,EAAE,KAAK,CAAA;EAAA,SAC7C;EAAA,QACA,OAAS,EAAA;EAAA,UACP,KAAO,EAAAA,eAAA,CAAK,UAAY,EAAA,UAAU,EAAE,KAAK,CAAA;EAAA,SAC3C;EAAA,QACA,EAAI,EAAA;EAAA,UACF,iBAAmB,EAAA,GAAA;EAAA,SACrB;EAAA,QACA,EAAI,EAAA;EAAA,UACF,oBAAsB,EAAA;EAAA,YACpB,EAAI,EAAA;EAAA,cACF,YAAYA,eAAK,CAAA,CAAA,EAAG,SAAS,CAAG,EAAA,CAAA,CAAA,IAAA,CAAO,EAAE,KAAK,CAAA;EAAA,aAChD;EAAA,WACF;EAAA,SACF;EAAA,QACA,MAAQ,EAAA;EAAA,UACN,EAAI,EAAA;EAAA,YACF,EAAA,EAAI,EAAE,iBAAA,EAAmB,CAAE,EAAA;EAAA,WAC7B;EAAA,SACF;EAAA,OACF,CAAA;EAAA,KACF;EAAA,GACF;EACF,CAAA;;EC9EO,MAAMC,MAAkC,GAAA;EAAA,EAC7C,KAAA,EAAO,CAAE,MAAA,EAAQ,MAAO,CAAA;EAAA,EACxB,SAAA,EAAW,CAAC,EAAE,KAAO,EAAA;EAAA,IACnB,MAAQ,EAAA,KAAA;EAAA,IACR,KAAO,EAAA,YAAA;EAAA,KACA,MAAA;EAAA,IACP,IAAM,EAAA;EAAA,MACJ,WAAA,EAAa,MAAM,MAAO,CAAA,OAAA;EAAA,KAC5B;EAAA,IACA,IAAM,EAAA;EAAA,MACJ,EAAI,EAAA,GAAA;EAAA,MACJ,OAAA,EAAS,MAAM,EAAG,CAAA,IAAA;EAAA,KACpB;EAAA,IACA,IAAM,EAAA;EAAA,MACJ,EAAI,EAAA,GAAA;EAAA,MACJ,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,MAClB,YAAA,EAAc,aAAa,MAAO,CAAA,OAAA;EAAA,MAClC,OAAA,EAAS,MAAM,EAAG,CAAA,IAAA;EAAA,MAClB,MAAQ,EAAA;EAAA,QACN,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,OAAA;EAAA,OACnC;EAAA,MACA,OAAS,EAAA;EAAA,QACP,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,OAAA;EAAA,OACnC;EAAA,MACA,MAAQ,EAAA;EAAA,QACN,OAAA,EAAS,KAAM,CAAA,UAAA,CAAW,MAAO,CAAA,OAAA;EAAA,OACnC;EAAA,MACA,QAAU,EAAA;EAAA,QACR,UAAY,EAAA,MAAA;EAAA,OACd;EAAA,KACF;EAAA,GACF,CAAA;EAAA,EACA,QAAU,EAAA;EAAA,IACR,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,IAAM,EAAA;EAAA,QACJ,QAAU,EAAA,IAAA;EAAA,QACV,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,OACpB;EAAA,KACF,CAAA;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,KAAA,EAAO,EAAE,MAAQ,EAAA,KAAA,IAAe,MAAA;EAAA,MAC1C,IAAM,EAAA;EAAA,QACJ,EAAI,EAAA,GAAA;EAAA,QACJ,QAAU,EAAA,IAAA;EAAA,QACV,KAAA,EAAO,MAAM,IAAK,CAAA,OAAA;EAAA,OACpB;EAAA,KACF,CAAA;EAAA,GACF;EACF,CAAA;;EC9CO,MAAMC,OAAoC,GAAA;EAAA,EAC/C,SAAA,EAAW,CAAC,EAAE,WAAA,EAAa,OAAO,EAAE,MAAA,IAAe,KAAA;EACjD,IAAA,MAAM,OAAU,GAAA,WAAA,KAAgB,eAC5B,GAAA,MAAA,CAAO,WAAW,CAAE,CAAA,GAAG,CACvB,GAAA,MAAA,CAAO,WAAW,CAAA,IAAK,MAAO,CAAA,WAAW,EAAE,GAAG,CAAA,CAAA;EAClD,IAAA,MAAM,SAAY,GAAA,WAAA,KAAgB,eAC9B,GAAA,MAAA,CAAO,WAAW,CAAE,CAAA,GAAG,CACvB,GAAA,MAAA,CAAO,WAAW,CAAA,IAAK,MAAO,CAAA,WAAW,EAAE,GAAG,CAAA,CAAA;EAElD,IAAO,OAAA;EAAA,MACL,OAAA;EAAA,MACA,KAAO,EAAA,SAAA;EAAA,KACT,CAAA;EAAA,GACF;EAAA,EACA,QAAU,EAAA;EAAA,IACR,KAAA,EAAO,CAAC,EAAE,WAAA,EAAa,OAAO,EAAE,MAAA,IAAe,KAAA;EAC7C,MAAA,MAAM,OAAU,GAAA,WAAA,KAAgB,eAC5B,GAAA,MAAA,CAAO,WAAW,CAAE,CAAA,GAAG,CACvB,GAAA,MAAA,CAAO,WAAW,CAAA,IAAK,MAAO,CAAA,WAAW,EAAE,GAAG,CAAA,CAAA;EAElD,MAAO,OAAA;EAAA,QACL,OAAA;EAAA,QACA,OAAO,gBAAiB,CAAA,OAAA,IAAA,IAAA,GAAA,OAAA,GAAWrE,cAAS,CAAA,QAAA,EAAU,WAAW,CAAC,CAAA;EAAA,OACpE,CAAA;EAAA,KACF;EAAA,IACA,OAAA,EAAS,CAAC,EAAE,WAAA,EAAa,OAAO,EAAE,MAAA,IAAe,KAAA;EAC/C,MAAA,MAAM,SAAY,GAAA,WAAA,KAAgB,eAC9B,GAAA,MAAA,CAAO,WAAW,CAAE,CAAA,GAAG,CACvB,GAAA,MAAA,CAAO,WAAW,CAAA,IAAK,MAAO,CAAA,WAAW,EAAE,GAAG,CAAA,CAAA;EAElD,MAAO,OAAA;EAAA,QACL,OAAS,EAAA,kBAAA;EAAA,QACT,KAAO,EAAA,SAAA;EAAA,OACT,CAAA;EAAA,KACF;EAAA,IACA,KAAA,EAAO,CAAC,EAAE,WAAA,EAAa,OAAO,EAAE,MAAA,IAAe,KAAA;EAC7C,MAAA,MAAM,SAAY,GAAA,WAAA,KAAgB,eAC9B,GAAA,MAAA,CAAO,WAAW,CAAE,CAAA,GAAG,CACvB,GAAA,MAAA,CAAO,WAAW,CAAA,IAAK,MAAO,CAAA,WAAW,EAAE,GAAG,CAAA,CAAA;EAElD,MAAO,OAAA;EAAA,QACL,OAAS,EAAA,kBAAA;EAAA,QACT,KAAO,EAAA,SAAA;EAAA,OACT,CAAA;EAAA,KACF;EAAA,GACF;EAAA,EACA,KAAO,EAAA;EAAA,IACL,EAAI,EAAA;EAAA,MACF,QAAU,EAAA,KAAA;EAAA,KACZ;EAAA,IACA,EAAI,EAAA;EAAA,MACF,QAAU,EAAA,IAAA;EAAA,KACZ;EAAA,IACA,EAAI,EAAA;EAAA,MACF,QAAU,EAAA,IAAA;EAAA,KACZ;EAAA,IACA,EAAI,EAAA;EAAA,MACF,QAAU,EAAA,IAAA;EAAA,KACZ;EAAA,GACF;EAAA,EACA,YAAc,EAAA;EAAA,IACZ,IAAM,EAAA,IAAA;EAAA,GACR;EACF,CAAA;;EChEO,MAAMsE,SAAqC,GAAA;EAAA,EAChD,KAAA,EAAO,CAAE,QAAS,CAAA;EAAA,EAClB,SAAW,EAAA;EAAA,IACT,MAAQ,EAAA;EAAA,MACN,MAAQ,EAAA,SAAA;EAAA,KACV;EAAA,GACF;EACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECFO,MAAM,UAA4B,GAAA;EAAA,EACvC,QAAQxD,eACH,CAAAP,iBAAA,CAAAA,iBAAA,CAAA,EAAA,EAAAgE,4BAAA,CAAsB,EAAG,CAAA,KAAA,CAAA,EACzBC,iCAA0B,KAFvB,CAAA,EAAA;EAAA,IAGN,MAAMjE,iBACD,CAAAA,iBAAA,CAAA,EAAA,EAAAgE,4BAAA,CAAsB,GAAG,KAAM,CAAA,IAAA,CAAA,EAC/BC,iCAA0B,KAAM,CAAA,IAAA,CAAA;EAAA,IAErC,QAAQjE,iBACH,CAAAA,iBAAA,CAAA,EAAA,EAAAgE,4BAAA,CAAsB,GAAG,KAAM,CAAA,MAAA,CAAA,EAC/BC,iCAA0B,KAAM,CAAA,MAAA,CAAA;EAAA,GAEvC,CAAA;EAAA,EACA,OAAOA,gCAA0B,CAAA,MAAA;EAAA,EACjC,OAAOA,gCAA0B,CAAA,OAAA;EAAA,EACjC,KAAO,EAAAjE,iBAAA,CAAAA,iBAAA,CAAA,EAAA,EACFgE,4BAAsB,CAAA,EAAA,CAAG,eACzBC,gCAA0B,CAAA,YAAA,CAAA;EAAA,EAE/B,OAAS,EAAAjE,iBAAA,CAAAA,iBAAA,CAAA,EAAA,EACJgE,4BAAsB,CAAA,EAAA,CAAG,cACzBC,gCAA0B,CAAA,WAAA,CAAA;EAAA,EAE/B,SAASA,gCAA0B,CAAA,OAAA;EAAA,cACnCC,iBAAA;EAAA,EACA,OAAA,EAASlE,iBAAK,CAAA,EAAA,EAAAgE,4BAAA,CAAsB,EAAG,CAAA,SAAA,CAAA;EACzC,CAAA;;;;;;;;;;;;;;;;;;;;;EC1BO,MAAM,QAA0B,GAAA;EAAA,EACrC,QAAQzD,eACH,CAAAP,iBAAA,CAAAA,iBAAA,CAAA,EAAA,EAAAmE,0BAAA,CAAoB,EAAG,CAAA,KAAA,CAAA,EACvBC,+BAAwB,KAFrB,CAAA,EAAA;EAAA,IAGN,QAAQpE,iBACH,CAAAA,iBAAA,CAAA,EAAA,EAAAmE,0BAAA,CAAoB,GAAG,KAAM,CAAA,MAAA,CAAA,EAC7BC,+BAAwB,KAAM,CAAA,MAAA,CAAA;EAAA,GAErC,CAAA;EAAA,EACA,OAAOA,8BAAwB,CAAA,MAAA;EAAA,EAC/B,OAAOA,8BAAwB,CAAA,OAAA;EAAA,EAC/B,KAAO,EAAApE,iBAAA,CAAAA,iBAAA,CAAA,EAAA,EACFmE,0BAAoB,CAAA,EAAA,CAAG,eACvBC,8BAAwB,CAAA,YAAA,CAAA;EAAA,EAE7B,OAAS,EAAApE,iBAAA,CAAAA,iBAAA,CAAA,EAAA,EACJmE,0BAAoB,CAAA,EAAA,CAAG,cACvBC,8BAAwB,CAAA,WAAA,CAAA;EAAA,EAE7B,SAASA,8BAAwB,CAAA,OAAA;EAAA,cACjCF,iBAAA;EAAA,EACA,OAAA,EAASlE,iBAAK,CAAA,EAAA,EAAAmE,0BAAA,CAAoB,EAAG,CAAA,SAAA,CAAA;EACvC,CAAA;;;;;;;;;;;;;;;;;;ECVA,MAAM,SAA2B,GAAA;EAAA,EAC/B,MAAQ,EAAA;EAAA,IACN,YAAc,EAAA,EAAA;EAAA,GAChB;EAAA,EACA,cAAgB,EAAA;EAAA,IACd,MAAQ,EAAA;EAAA,MACN,kBAAoB,EAAA;EAAA,QAClB,MAAQ,EAAA,cAAA;EAAA,QACR,KAAO,EAAA,eAAA;EAAA,OACT;EAAA,KACF;EAAA,GACF;EAAA,EACA,MAAQ,EAAA;EAAA,IACN,MAAQ,EAAAnE,iBAAA,CAAA;EAAA,MACN,IAAM,EAAA;EAAA,QACJ,cAAgB,EAAA,QAAA;EAAA,OAClB;EAAA,MACA,IAAM,EAAA;EAAA,QACJ,MAAQ,EAAA,MAAA;EAAA,OACV;EAAA,MACA,MAAQ,EAAA;EAAA,QACN,MAAQ,EAAA,MAAA;EAAA,OACV;EAAA,KACG,EAAA,eAAA,CAAA;EAAA,GAEP;EAAA,EACA,KAAO,EAAA;EAAA,IACL,OAAS,EAAA,mBAAA;EAAA,IACT,IAAM,EAAA,mBAAA;EAAA,GACR;EAAA,EACA,YAAYA,iBAAK,CAAA,EAAA,EAAA,UAAA,CAAA;EAAA,EACjB,MAAQ,EAAAN,cAAA;EAAA,EACR,QAAU,EAAA2E,iBAAA;EAAA,EACV,KAAO,EAAAC,iBAAA;EAAA,EACP,KAAO,EAAAC,kBAAA;EAAA,EACP,WAAa,EAAAC,qBAAA;EAAA,EACb,OAAS,EAAAC,oBAAA;EAAA,EACT,SAAW,EAAAC,mBAAA;EAAA,EACX,WAAa,EAAAC,qBAAA;EAAA,EACb,KAAO,EAAAC,uBAAA;EAAA,EACP,cAAc,UAAW,CAAA,OAAA;EAC3B,CAAA,CAAA;AAEa,QAAA,KAAA,GAAQC,iBAAY,CAAA,SAAA,EAAW,UAAU,EAAA;AAEzC,QAAA,SAAA,GAAYA,iBAAY,CAAA,SAAA,EAAW,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC5BjD,SAAS,UAA6B,EASvB,EAAA;EATuB,EAC3C,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,OAAA;EAAA,IACA,QAAW,GAAAC,cAAA;EAAA,IACX,SAAA;EAAA,IACA,cAAc,MAAM,IAAA;EAAA,IACpB,aAAe,EAAA,MAAA;EAAA,IACf,QAAQ,EAAC;EAAA,IACT,OAAA;EAAA,GA3CF,GAoC6C,EAQxC,EAAA,IAAA,GAAAC,YAAA,CARwC,EAQxC,EAAA;EAAA,IAPH,SAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,aAAA;EAAA,IACA,aAAA;EAAA,IACA,OAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,WAAY,CAAA,GAAItF,eAAS,eAAiB,EAAA,CAAE,OAAQ,CAAC,CAAA,CAAA;EAC7D,EAAA,MAAM,CAAE,UAAA,EAAY,aAAc,CAAA,GAAIX,eAAS,KAAK,CAAA,CAAA;EACpD,EAAA,MAAM,CAAE,UAAA,EAAY,aAAc,CAAA,GAAIA,eAAS,EAAE,CAAA,CAAA;EACjD,EAAA,MAAM,CAAE,eAAA,EAAiB,kBAAmB,CAAA,GAAIA,eAAwB,KAAK,CAAA,CAAA;EAC7E,EAAA,MAAM,CAAE,SAAA,EAAW,YAAa,CAAA,GAAIA,eAAS,KAAK,CAAA,CAAA;EAElD,EAAAC,eAAA,CAAU,MAAM;EACd,IAAA,kBAAA,CAAmB,KAAK,CAAA,CAAA;EAAA,GACvB,EAAA,CAAE,KAAM,CAAA,MAAO,CAAC,CAAA,CAAA;EAEnB,EAAA,MAAM,YAAe,GAAAiG,iCAAA,CAAA;EAErB,EAAM,MAAA,YAAA,GAAe,CAAC,MAAA,EAAuB,UAA8B,KAAA;EACzE,IAAA,kBAAA,CAAmB,MAAM,CAAA,CAAA;EACzB,IAAA,QAAA,CAAS,QAAQ,UAAU,CAAA,CAAA;EAAA,GAC7B,CAAA;EAEA,EAAA,MAAM,gBAAmB,GAAA,CAAC,KAAe,EAAA,gBAAA,KAAoC,CAACC,SAAA;EAAA,IAC5E,CAAC,MAAW,KAAA,MAAA,CAAO,KAAU,KAAA,KAAA;EAAA,IAC7B,gBAAA;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,YAAA,GAAe,CAAC,SAAiB,KAAA;EACrC,IAAA,MAAM,cAAiB,GAAA,CAAE,GAAG,eAAA,EAAiB,SAAU,CAAA,CAAA;EACvD,IAAA,QAAA,CAAS,gBAAgB,EAAE,MAAA,EAAQ,eAAiB,EAAA,MAAA,EAAQ,WAAW,CAAA,CAAA;EACvE,IAAA,kBAAA,CAAmB,cAAc,CAAA,CAAA;EAAA,GACnC,CAAA;EAEA,EAAA,MAAM,aAAa,MAAM;EACvB,IAAA,aAAA,CAAc,EAAE,CAAA,CAAA;EAAA,GAClB,CAAA;EAEA,EAAM,MAAA,iBAAA,GAAoB,CAAC,QAAqB,KAAA;EAC9C,IAAA,IAAI,QAAa,KAAA,GAAA;EAAK,MAAA,OAAA;EAEtB,IAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;EAAA,GACxB,CAAA;EAEA,EAAM,MAAA,aAAA,GAAgB,CAAC,KAAyC,KAAA;EAC9D,IAAM,MAAA,eAAA,GAAkB,MAAM,GAAQ,KAAA,OAAA,IAAW,MAAM,GAAQ,KAAA,KAAA,IAAS,MAAM,GAAQ,KAAA,GAAA,CAAA;EAEtF,IAAI,IAAA,CAAC,eAAmB,IAAAzB,aAAA,CAAQ,UAAU,CAAA;EAAG,MAAA,OAAA;EAE7C,IAAM,MAAA,iBAAA,GAAoB,WAAW,IAAK,EAAA,CAAA;EAE1C,IAAI,IAAA,gBAAA,CAAiB,iBAAmB,EAAA,eAAe,CAAG,EAAA;EACxD,MAAA,MAAM,SAAoB,GAAA,EAAE,KAAO,EAAA,iBAAA,EAAmB,OAAO,iBAAkB,EAAA,CAAA;EAC/E,MAAA,YAAA,CAAa,SAAc,CAAA,CAAA;EAAA,KACtB,MAAA;EACL,MAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,oBAAA,CAAA,CAAA;EAAA,KACZ;EAEA,IAAW,UAAA,EAAA,CAAA;EAAA,GACb,CAAA;EAEA,EAAA,MAAM,cAAc,MAAM;EACxB,IAAA,YAAA,CAAa,IAAI,CAAA,CAAA;EACjB,IAAI,IAAA,OAAA,IAAW,OAAQ,CAAA,MAAA,GAAS,CAAG,EAAA;EACjC,MAAA,aAAA,CAAc,IAAI,CAAA,CAAA;EAAA,KACpB;EAAA,GACF,CAAA;EAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA0B,SAAA,EAAA,EAAI,CAAE,EAAA,MAAA,EAAO,eAAc,MAC1B,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,YAAA;EAAA,IAAAlF,iBAAA,CAAAO,eAAA,CAAAP,iBAAA,CAAA;EAAA,MACC,OAAU,EAAA,IAAA;EAAA,MACV,kBAAmB,QAAS,CAAA,IAAA;EAAA,MAC5B,WAAY,EAAA,4CAAA;EAAA,MACZ,OAAA;EAAA,MACA,cAAiB,EAAA,IAAA;EAAA,MACjB,iBAAoB,EAAA,KAAA;EAAA,MACpB,mBAAsB,EAAA,KAAA;EAAA,MACtB,WAAc,EAAA,KAAA;EAAA,MACd,QAAW,EAAA,YAAA;EAAA,MACX,aAAgB,EAAA,iBAAA;EAAA,MAChB,SAAY,EAAA,aAAA;EAAA,MACZ,UAAA;EAAA,MACA,mBAAoB,EAAA,OAAA;EAAA,MACpB,YAAA,EAAe,eAAgB,CAAA,SAAA,EAAW,WAAW,CAAA;EAAA,MACrD,OAAU,EAAA,WAAA;EAAA,MACV,gBAAA;EAAA,MACA,QAAS,MAAM;EACb,QAAA,aAAA,CAAc,KAAK,CAAA,CAAA;EACnB,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;EAAA,OACpB;EAAA,MACA,UAAA;EAAA,MACA,SAAA;EAAA,KAAA,EACM,aAAa,EAAE,UAAA,EAAY,EAAE,QAAU,EAAA,WAAA,IAvB9C,CAAA,EAAA;EAAA,MAwBC,KAAQ,EAAA,eAAA;EAAA,MACR,UAAa,EAAA;EAAA,QACX,mBAAmB,MAAM,IAAA;EAAA,OAC3B;EAAA,MACA,MAAS,EAAA,EAAE,UAAY,EAAA,CAAC,IAAU,KAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAAK,IAAL,CAAA,EAAA,EAAW,MAAQ,EAAA,KAAA,CAAM,QAAS,CAAA,OAAA,EAAW,CAAA,EAAA;EAAA,MAC/E,iBAAA,EAAoB,CAAC,cAAA,KACnB,CAAY,SAAA,EAAA,cAAA,CAAA,CAAA,CAAA;EAAA,KAET,CAAA,EAAA,IAAA,CAAA;EAAA,GAET,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrIa,QAAA,gBAAA,GAAmB,CAAC,EAKJ,KAAA;EALI,EAC/B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,OAAU,GAAA,QAAA;EAAA,GAhBZ,GAaiC,EAI5B,EAAA,IAAA,GAAA+E,YAAA,CAJ4B,EAI5B,EAAA;EAAA,IAHH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,cAAc,CAAC,OAAA,KAAoB,OAAQ,CAAA,CAAC,EAAE,WAAY,EAAA,CAAA;EAChE,EAAM,MAAA;EAAA,IACJ,SAAA;EAAA,IACA,IAAA;EAAA,MACEI,yBAAoB,CAAA,QAAA,EAAUnF,iBAAE,CAAA,EAAA,OAAA,EAAS,SAAU,IAAM,CAAA,CAAA,CAAA;EAE7D,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACoF,YAAO,CAAA,GAAA;EAAA,IAAPpF,iBAAA,CAAA;EAAA,MACC,KAAQ,EAAA,SAAA;EAAA,MACR,aAAY,EAAA,2BAAA;EAAA,KACP,EAAA,IAAA,CAAA;EAAA,IAEH,KACA,mBAAA,KAAA,CAAA,aAAA;EAAA,MAACoF,YAAO,CAAA,GAAA;EAAA,MAAP;EAAA,QACC,GAAM,EAAA,IAAA;EAAA,QACN,GAAM,EAAA,KAAA;EAAA,OAAA;EAAA,KACR,uCAGGA,YAAO,CAAA,IAAA,EAAP,EAAY,KAAQ,EAAA,IAAA,EAAA,EACjB,WAAY,CAAA,IAAI,CACpB,CAAA;EAAA,GAGN,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCa,QAAA,KAAA,GAAQ,CAAC,EAIP,KAAA;EAJO,EACpB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,OAAA,GAAA,SAAA;EAAA,IACV,QAAA;EAAA,GANF,GAIsB,EAGjB,EAAA,IAAA,GAAAL,YAAA,CAHiB,EAGjB,EAAA;EAAA,IAFH,SAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAC,uBAAA,KAAA,CAAA,aAAA,CAAAM,WAAA,EAAArF,iBAAA,CAAA,EAAY,OAAyB,EAAA,EAAA,IAAA,CAAA,EAClC,QACJ,CAAA,CAAA;EAAA;;;;;;;;;;;;;;;;;;ACGK,QAAM,WAAc,GAAA,CAAC,KAC1B,qBAAA,KAAA,CAAA,aAAA,CAACsF,yCAAuB,KAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACG3B,QAAM,IAAO,GAAAC,gBAAA,CAAW,CAAC,EAAA,EAMlB,GAAa,KAAA;EANK,EAC9B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAI,EAAA,EAAA,EAAA;EAAA,IACJ,IAAA;EAAA,IACA,KAAA;EAAA,IACA,OAAA;EAAA,GAtBF,GAkBgC,EAK3B,EAAA,IAAA,GAAAR,YAAA,CAL2B,EAK3B,EAAA;EAAA,IAJH,IAAA;EAAA,IACA,MAAA;EAAA,IACA,OAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,UAAa,GAAA,EAAA,IAAA,IAAA,GAAA,EAAA,GAAO,sBAAM,KAAA,CAAA,aAAA,CAACS,UAAW,EAAA,IAAA,CAAA,CAAA;EAC5C,EAAA,MAAM,SAASC,oBAAe,CAAA,MAAA,EAAQ,EAAE,IAAM,EAAA,KAAA,EAAO,SAAS,CAAA,CAAA;EAE9D,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACD,UAAA;EAAA,IAAAxF,iBAAA,CAAA;EAAA,MACC,GAAA;EAAA,MACA,EAAK,EAAA,MAAA;EAAA,KACA,EAAA,IAAA,CAAA;EAAA,wCAEJ,UAAW,EAAA,IAAA,CAAA;EAAA,GACd,CAAA;EAEJ,CAAC;;ECrBM,MAAM,cAAc,CAAC;EAAA,EAC1B,iBAAoB,GAAA,CAAA;EACtB,CAAwB,KAAA;EACtB,EAAA,MAAM,EAAE,KAAA,EAAU,GAAAmF,yBAAA,CAAoB,QAAQ,CAAA,CAAA;EAC9C,EACE,uBAAA,KAAA,CAAA,aAAA,CAACC,aAAO,IAAP,EAAA,EAAY,IAAK,KACd,EAAA,EAAA,iBAAA,GAAoB,GAAM,GAAA,MAAA,GAAS,iBACvC,CAAA,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACOa,QAAA,MAAA,GAAS,CAAC,EAQJ,KAAA;EARI,EACrB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,OAAA,GAAA,QAAA;EAAA,IACV,iBAAoB,GAAA,CAAA;EAAA,IACpB,IAAA;EAAA,IACA,KAAA;EAAA,IACA,IAAA;EAAA,IACA,OAAA;EAAA,GAtCF,GAgCuB,EAOlB,EAAA,IAAA,GAAAL,YAAA,CAPkB,EAOlB,EAAA;EAAA,IANH,SAAA;EAAA,IACA,mBAAA;EAAA,IACA,MAAA;EAAA,IACA,OAAA;EAAA,IACA,MAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,EAAE,SAAW,EAAA,IAAA,EAAM,WAAW,IAAK,EAAA,GAAII,0BAAoB,QAAU,EAAA;EAAA,IACzE,OAAA;EAAA,IACA,KAAA;EAAA,IACA,IAAA;EAAA,IACA,IAAA;EAAA,IACA,OAAA;EAAA,GACD,CAAA,CAAA;EAED,EAAA,2CACGD,SAAI,EAAAlF,iBAAA,CAAA,EAAA,KAAA,EAAQ,WAAY,aAAY,EAAA,gBAAA,EAAA,EAAsB,OACvD,KAEE,mBAAA,KAAA,CAAA,aAAA;EAAA,IAACoF,YAAO,CAAA,GAAA;EAAA,IAAP;EAAA,MACC,GAAM,EAAA,IAAA;EAAA,MACN,GAAM,EAAA,KAAA;EAAA,MACN,EAAK,EAAA,SAAA;EAAA,KAAA;EAAA,GACP,GACE,IAEA,mBAAA,KAAA,CAAA,aAAA,CAACA,YAAO,CAAA,IAAA,EAAP,EAAY,EAAA,EAAK,IACd,EAAA,EAAA,WAAA,CAAY,IAAI,CACpB,CAGA,mBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,IAAA;EAAA,IAAA;EAAA,MACC,EAAA,EAAK,OAAY,KAAA,QAAA,GAAWM,mBAAgB,GAAAC,wBAAA;EAAA,MAC5C,EAAK,EAAA,IAAA;EAAA,MACL,YAAW,EAAA,aAAA;EAAA,KAAA;EAAA,KAGjB,iBAAoB,GAAA,CAAA,oBACnB,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,mBAAwC,CAEzD,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjEO,QAAM,EAAK,GAAAJ,gBAAA,CAA6C,CAAC,EAAA,EAI7D,GAAQ,KAAA;EAJqD,EAC9D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GAbR,GAWgE,EAG3D,EAAA,IAAA,GAAAR,YAAA,CAH2D,EAG3D,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,IAAM,EAAA,EAAE,IAAI,CAAA,CAAA;EAE1C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACG,aAAA;EAAA,IAAA5F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,IAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBM,QAAM,EAAK,GAAAuF,gBAAA,CAA6C,CAAC,EAAA,EAI7D,GAAQ,KAAA;EAJqD,EAC9D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GAdR,GAYgE,EAG3D,EAAA,IAAA,GAAAR,YAAA,CAH2D,EAG3D,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,IAAM,EAAA,EAAE,IAAI,CAAA,CAAA;EAE1C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACG,aAAA;EAAA,IAAA5F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,IAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBM,QAAM,EAAK,GAAAuF,gBAAA,CAA6C,CAAC,EAAA,EAI7D,GAAQ,KAAA;EAJqD,EAC9D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GAbR,GAWgE,EAG3D,EAAA,IAAA,GAAAR,YAAA,CAH2D,EAG3D,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,IAAM,EAAA,EAAE,IAAI,CAAA,CAAA;EAE1C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACG,aAAA;EAAA,IAAA5F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,IAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBM,QAAM,EAAK,GAAAuF,gBAAA,CAA6C,CAAC,EAAA,EAI7D,GAAQ,KAAA;EAJqD,EAC9D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GAbR,GAWgE,EAG3D,EAAA,IAAA,GAAAR,YAAA,CAH2D,EAG3D,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,IAAM,EAAA,EAAE,IAAI,CAAA,CAAA;EAE1C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACG,aAAA;EAAA,IAAA5F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,IAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBM,QAAM,EAAK,GAAAuF,gBAAA,CAA6C,CAAC,EAAA,EAI7D,GAAQ,KAAA;EAJqD,EAC9D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GAbR,GAWgE,EAG3D,EAAA,IAAA,GAAAR,YAAA,CAH2D,EAG3D,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,IAAM,EAAA,EAAE,IAAI,CAAA,CAAA;EAE1C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACG,aAAA;EAAA,IAAA5F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,IAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBM,QAAM,EAAK,GAAAuF,gBAAA,CAA6C,CAAC,EAAA,EAI7D,GAAQ,KAAA;EAJqD,EAC9D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GAbR,GAWgE,EAG3D,EAAA,IAAA,GAAAR,YAAA,CAH2D,EAG3D,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,IAAM,EAAA,EAAE,IAAI,CAAA,CAAA;EAE1C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACG,aAAA;EAAA,IAAA5F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,IAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBM,QAAM,CAAI,GAAAuF,gBAAA,CAAyC,CAAC,EAAA,EAKxD,GAAQ,KAAA;EALgD,EACzD,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,OAAU,GAAA,IAAA;EAAA,IACV,KAAK,EAAC;EAAA,GAfR,GAY2D,EAItD,EAAA,IAAA,GAAAR,YAAA,CAJsD,EAItD,EAAA;EAAA,IAHH,UAAA;EAAA,IACA,SAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,SAASU,oBAAe,CAAA,GAAA,EAAK,EAAE,OAAA,EAAS,IAAI,CAAA,CAAA;EAElD,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACI,UAAA;EAAA,IAAA7F,iBAAA,CAAA;EAAA,MACC,OAAA;EAAA,MACA,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTM,QAAM,UAAa,GAAAuF,gBAAA;EAAA,EACxB,CAAC,IAAgC,GAAQ,KAAA;EAAxC,IAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,QAAA,EAAU,KAAK,EAAC,KAAlB,EAAwB,EAAA,IAAA,GAAAR,YAAA,CAAxB,EAAwB,EAAA,CAAtB,UAAU,EAAA,IAAA,CAAA,CAAA,CAAA;EACX,IAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,YAAc,EAAA,EAAE,IAAI,CAAA,CAAA;EAElD,IACE,uBAAA,KAAA,CAAA,aAAA,CAACI,gCAAW,EAAG,EAAA,MAAA,EAAO,IAAK,MAAS,EAAA,GAAA,EAAA,EAAiB,OACjD,QACJ,CAAA,CAAA;EAAA,GAEJ;EACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZO,QAAM,WAAc,GAAAN,gBAAA,CAA4C,CAAC,EAAA,EAIrE,GAAQ,KAAA;EAJ6D,EACtE,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GArBR,GAmBwE,EAGnE,EAAA,IAAA,GAAAR,YAAA,CAHmE,EAGnE,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,aAAe,EAAA,EAAE,IAAI,CAAA,CAAA;EAEnD,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACI,UAAA;EAAA,IAAA7F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,MAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBM,QAAM,IAAO,GAAAuF,gBAAA,CAA4C,CAAC,EAAA,EAI9D,GAAQ,KAAA;EAJsD,EAC/D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GArBR,GAmBiE,EAG5D,EAAA,IAAA,GAAAR,YAAA,CAH4D,EAG5D,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,MAAQ,EAAA,EAAE,IAAI,CAAA,CAAA;EAE5C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACI,UAAA;EAAA,IAAA7F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,MAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBM,QAAM,KAAQ,GAAAuF,gBAAA,CAA4C,CAAC,EAAA,EAI/D,GAAQ,KAAA;EAJuD,EAChE,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GArBR,GAmBkE,EAG7D,EAAA,IAAA,GAAAR,YAAA,CAH6D,EAG7D,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,OAAS,EAAA,EAAE,IAAI,CAAA,CAAA;EAE7C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACI,UAAA;EAAA,IAAA7F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,OAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBM,QAAM,IAAO,GAAAuF,gBAAA,CAA4C,CAAC,EAAA,EAI9D,GAAQ,KAAA;EAJsD,EAC/D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,KAAK,EAAC;EAAA,GArBR,GAmBiE,EAG5D,EAAA,IAAA,GAAAR,YAAA,CAH4D,EAG5D,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAAU,oBAAA,CAAe,MAAQ,EAAA,EAAE,IAAI,CAAA,CAAA;EAE5C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACI,UAAA;EAAA,IAAA7F,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,MAAA;EAAA,MACH,EAAK,EAAA,MAAA;EAAA,MACL,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBM,QAAM,KAAQ,GAAAuF,gBAAA,CAAyC,CAAC,EAAA,EAK5D,GAAQ,KAAA;EALoD,EAC7D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,IAAO,GAAA,IAAA;EAAA,IACP,KAAK,EAAC;EAAA,GAvBR,GAoB+D,EAI1D,EAAA,IAAA,GAAAR,YAAA,CAJ0D,EAI1D,EAAA;EAAA,IAHH,UAAA;EAAA,IACA,MAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,SAASU,oBAAe,CAAA,OAAA,EAAS,EAAE,EAAA,EAAI,MAAM,CAAA,CAAA;EAEnD,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACK,eAAA;EAAA,IAAA9F,iBAAA,CAAA;EAAA,MACC,EAAK,EAAA,MAAA;EAAA,MACL,iBAAA,sCAAqB+F,oBAAe,EAAA,IAAA,CAAA;EAAA,MACpC,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBM,QAAM,MAAS,GAAAR,gBAAA;EAAA,EACpB,CAAC,IAA6C,GAAQ,KAAA;EAArD,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAU,QAAA,EAAA,IAAA,GAAO,IAAM,EAAA,EAAA,GAAK,EAAC,EAA/B,GAAA,EAAA,EAAqC,IAArC,GAAAR,YAAA,CAAA,EAAA,EAAqC,CAAnC,UAAA,EAAU,MAAa,EAAA,IAAA,CAAA,CAAA,CAAA;EACxB,IAAA,MAAM,SAASU,oBAAe,CAAA,QAAA,EAAU,EAAE,EAAA,EAAI,MAAM,CAAA,CAAA;EAEpD,IACE,uBAAA,KAAA,CAAA,aAAA;EAAA,MAACI,UAAA;EAAA,MAAA7F,iBAAA,CAAA;EAAA,QACC,EAAG,EAAA,MAAA;EAAA,QACH,EAAK,EAAA,MAAA;EAAA,QACL,GAAA;EAAA,OACK,EAAA,IAAA,CAAA;EAAA,MAEH,QAAA;EAAA,KACJ,CAAA;EAAA,GAEJ;EACF;;EC3BA,MAAM,cAAA,GAAiBgG,aAAOC,QAAG,CAAA,CAAC,GAAGC,YAAO,CAAA,CAAC,GAAGpB,cAAQ,CAAA,CAAA;EACxD,MAAM,UAAa,GAAA;EAAA,EACjB,WAAa,EAAA,CAAA;EAAA,EACb,YAAc,EAAA,CAAA;EAChB,CAAA,CAAA;EACA,MAAM,YAAe,GAAA;EAAA,EACnB,UAAY,EAAA,CAAA;EAAA,EACZ,WAAa,EAAA,CAAA;EACf,CAAA,CAAA;AAkGO,QAAM,gBAAgB,CAAC;EAAA,EAC5B,QAAA;EAAA,EACA,KAAK,OAAU,GAAA,CAAA;EAAA,EACf,aAAA;EAAA,EACA,QAAW,GAAAA,cAAA;EAAA,EACX,IAAA;EACF,CAA0B,KAAA;EACxB,EAAM,MAAA,CAAE,KAAK,MAAO,CAAA,GAAIhG,eAASK,WAAM,CAAA,IAAI,CAAI,GAAA,OAAA,GAAU,CAAC,CAAA,CAAA;EAC1D,EAAA,MAAM,CAAE,WAAA,EAAa,cAAe,CAAA,GAAIL,eAAS,YAAY,CAAA,CAAA;EAC7D,EAAM,MAAA,QAAA,GAAWI,aAAO,KAAK,CAAA,CAAA;EAC7B,EAAM,MAAA,WAAA,GAAcgB,cAAS,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;EAE3C,EAAA,MAAM,YAAY,MAAM;EACtB,IAAA,IAAI,CAAC,IAAA;EAAM,MAAA,OAAA;EAEX,IAAA,IACE,IAAK,CAAA,YAAA,IAAgB,IAAK,CAAA,YAAA,IAC1B,KAAK,WAAe,IAAA,IAAA,CAAK,WACzB,IAAA,GAAA,GAAM,WACN,IAAA,CAAC,QAAS,CAAA,OAAA,IACV,MAAM,OACN,EAAA;EACA,MAAA,MAAA,CAAOiG,SAAG,CAAA,CAAA;EAAA,KACZ;EAEA,IAAA,IACE,KAAK,YAAe,GAAA,IAAA,CAAK,gBACzB,IAAK,CAAA,WAAA,GAAc,KAAK,WACxB,EAAA;EACA,MAAA,MAAA,CAAOC,SAAG,CAAA,CAAA;EACV,MAAA,QAAA,CAAS,OAAU,GAAA,IAAA,CAAA;EAAA,KACrB;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,cAAA,GAAiBC,eAAU,CAAA,UAAA,EAAY,IAAI,CAAA,CAAA;EACjD,EAAAtH,eAAA,CAAU,SAAW,EAAA;EAAA,IACnB,cAAe,CAAA,WAAA;EAAA,IACf,cAAe,CAAA,YAAA;EAAA,IACf,WAAA;EAAA,IACA,GAAA;EAAA,IACA,WAAY,CAAA,WAAA;EAAA,IACZ,WAAY,CAAA,WAAA;EAAA,IACZ,OAAA;EAAA,GACD,CAAA,CAAA;EAED,EAAAA,eAAA,CAAU,MAAM;EACd,IAAA,QAAA,CAAS,OAAU,GAAA,KAAA,CAAA;EAAA,KAClB,CAAE,cAAA,CAAe,YAAc,EAAA,cAAA,CAAe,WAAY,CAAC,CAAA,CAAA;EAE9D,EAAA,MAAM,eAAe,MAAM;EACzB,IAAA,UAAA,CAAW,MAAM;EACf,MAAA,QAAA,CAAS,OAAU,GAAA,KAAA,CAAA;EACnB,MAAe,cAAA,CAAA;EAAA,QACb,YAAY,MAAO,CAAA,UAAA;EAAA,QACnB,aAAa,MAAO,CAAA,WAAA;EAAA,OACrB,CAAA,CAAA;EAAA,OACA,GAAG,CAAA,CAAA;EAAA,GACR,CAAA;EAEA,EAAAA,eAAA,CAAU,MAAM;EACd,IAAO,MAAA,CAAA,gBAAA,CAAiB,UAAU,YAAY,CAAA,CAAA;EAC9C,IAAA,OAAO,MAAM;EACX,MAAO,MAAA,CAAA,mBAAA,CAAoB,UAAU,YAAY,CAAA,CAAA;EAAA,KACnD,CAAA;EAAA,GACF,EAAG,EAAE,CAAA,CAAA;EAEL,EAAAA,eAAA,CAAU,MAAM;EACd,IAAM,MAAA,oBAAA,GAAuB,cAAe,CAAA,WAAA,GAAc,GAAG,CAAA,CAAA;EAC7D,IAAA,QAAA,CAAS,oBAAoB,CAAA,CAAA;EAAA,GAC5B,EAAA,CAAE,GAAK,EAAA,WAAY,CAAC,CAAA,CAAA;EAEvB,EAAA,MAAM,aAAgB,GAAAuH,UAAA;EAAA,IACpB,GAAA;EAAA,IACA,qBAAqB,QAAU,EAAAD,eAAA,CAAU,EAAC,EAAG,aAAa,CAAC,CAAA;EAAA,GAC7D,CAAA;EAEA,EAAA,iEAAW,aAAe,CAAA,CAAA;EAC5B;;AC1LO,QAAM,mBAAmB,MAAM;EACpC,EAAA,MAAM,CAAE,IAAA,EAAM,OAAQ,CAAA,GAAIvH,eAAgC,IAAI,CAAA,CAAA;EAC9D,EAAM,MAAA,YAAA,GAAe,CAAC,IAAc,KAAA;EAClC,IAAA,IAAI,IAAM,EAAA;EACR,MAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;EAAA,KACd;EAAA,GACF,CAAA;EAEA,EAAO,OAAA,EAAE,MAAM,YAAa,EAAA,CAAA;EAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiBa,QAAA,WAAA,GAAc,CAAC,EAKJ,KAAA;EALI,EAC1B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,GAAM,GAAA,QAAA;EAAA,IACN,OAAU,GAAA,IAAA;EAAA,GA/BZ,GA4B4B,EAIvB,EAAA,IAAA,GAAAiG,YAAA,CAJuB,EAIvB,EAAA;EAAA,IAHH,UAAA;EAAA,IACA,KAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,mBAAA,EAAqB,sBAAuB,CAAA,GAAIjG,eAAS,CAAC,CAAA,CAAA;EAClE,EAAA,MAAM,kBAAqB,GAAA,oBAAA;EAAA,IACzB,QAAA;EAAA,IACA,EAAE,IAAI,OAAQ,EAAA;EAAA,IACd,CAAC,MAAQ,EAAA,GAAA,KAAQ,GAAM,GAAA,CAAA;EAAA,GACzB,CAAA;EAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAAyH,YAAA,EAAAvG,iBAAA,CAAA,EAAO,OAAQ,EAAA,oBAAA,EAAA,EAA0B,IACxC,CAAA,kBAAA,KAAA,CAAA,aAAA,CAACuG,YAAO,EAAA,EAAA,OAAA,EAAU,CAChB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,aAAc,EAAA,EAAA,GAAA,EAAY,QAAW,EAAA,sBAAA,EAAA,EAClC,kBACJ,CACF,CACE,EAAA,mBAAA,GAAsB,CACtB,oBAAA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,EAAA,EAAK,EAAE,KAAA,EAAO,UAAW,EAAA,EAAA,EAAI,GAC/B,EAAA,mBACL,CAEJ,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;ACzBa,QAAA,KAAA,GAAQhB,iBAAuC,CAAC,KAAA,EAAO,wBACjE,KAAA,CAAA,aAAA,CAAAiB,WAAA,EAAAxG,iBAAA,CAAA,EAAY,GAAiB,EAAA,EAAA,KAAA,CAAQ,CACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBY,QAAA,OAAA,GAAU,CAAC,EAKJ,KAAA;EALI,EACtB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAQ,KAAA,GAAA,EAAA;EAAA,IACR,IAAA;EAAA,IACA,UAAa,GAAA,IAAA;EAAA,GAnBf,GAgBwB,EAInB,EAAA,IAAA,GAAA+E,YAAA,CAJmB,EAInB,EAAA;EAAA,IAHH,OAAA;EAAA,IACA,MAAA;EAAA,IACA,YAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,SAASU,oBAAe,CAAA,SAAA,EAAW,EAAE,KAAO,EAAA,IAAA,EAAM,YAAY,CAAA,CAAA;EAEpE,EAAA,2CAAQP,SAAI,EAAAlF,iBAAA,CAAA,EAAA,EAAA,EAAK,MAAS,EAAA,aAAA,EAAY,qBAAuB,IAAO,CAAA,CAAA,CAAA;EACtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfa,QAAA,OAAA,GAAW,CAAC,EAER,KAAA;EAFQ,EAAA,IACpB,oBADoB,EACpB,EAAA,EAAA,CAAA,CAAA;EAEH,EAAA,uBAAA,KAAA,CAAA,aAAA,CAACyG,qCAAmB,IAAO,CAAA,CAAA,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECR7B,MAAM,cAAiB,GAAA;EAAA,EACrB,EAAI,EAAA,IAAA;EAAA,EACJ,EAAI,EAAA,IAAA;EAAA,EACJ,EAAI,EAAA,IAAA;EAAA,EACJ,EAAI,EAAA,IAAA;EACN,CAAA,CAAA;AAyDO,QAAM,MAAS,GAAAlB,gBAAA;EAAA,EAA2C,CAC/D,IACA,GACA,KAAA;EAFA,IAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,OAAA,GAAU,SAAW,EAAA,QAAA,EAAU,IAAO,GAAA,IAAA,EAAxC,GAAA,EAAA,EAAiD,IAAjD,GAAAR,YAAA,CAAA,EAAA,EAAiD,CAA/C,SAAA,EAAqB,UAAU,EAAA,MAAA,CAAA,CAAA,CAAA;EAGjC,IAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,MAAC2B,YAAA;EAAA,MAAA1G,iBAAA,CAAA;EAAA,QACC,OAAA;EAAA,QACA,GAAA;EAAA,QACA,IAAA;EAAA,QACA,OACE,kBAAA,KAAA,CAAA,aAAA;EAAA,UAAC,OAAA;EAAA,UAAA;EAAA,YACC,IAAA,EAAO,eAAe,IAAI,CAAA;EAAA,WAAA;EAAA,SAC5B;EAAA,OAEG,EAAA,IAAA,CAAA;EAAA,MAEH,QAAA;EAAA,KACJ,CAAA;EAAA,GAAA;EAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtDa,QAAA,QAAA,GAAW,CAAC,EAOJ,KAAA;EAPI,EACvB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,KAAA;EAAA,IACA,QAAA;EAAA,IACA,IAAA;EAAA,IACA,IAAO,GAAA,IAAA;EAAA,IACP,OAAU,GAAA,SAAA;EAAA,GApCZ,GA+ByB,EAMpB,EAAA,IAAA,GAAA+E,YAAA,CANoB,EAMpB,EAAA;EAAA,IALH,OAAA;EAAA,IACA,UAAA;EAAA,IACA,MAAA;EAAA,IACA,MAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,eAAA,GAAkB,OAAO,KAAU,KAAA,SAAA,GACrC,EAAE,SAAW,EAAA,KAAA,EACb,GAAA,EAAE,KAAM,EAAA,CAAA;EAEZ,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC4B,cAAA;EAAA,IAAA3G,iBAAA,CAAAA,iBAAA,CAAA;EAAA,MACC,IAAA;EAAA,MACA,EAAK,EAAA,IAAA;EAAA,MACL,QAAA;EAAA,MACA,OAAA;EAAA,KAAA,EACK,eACA,CAAA,EAAA,IAAA,CAAA;EAAA,GACP,CAAA;EAEJ;;EClDA,MAAM,aAAa,CAAC,KAAA,KACjB4G,SAAG,KAAO,EAAA,KAAK,IAAIC,YAAS,GAAA/B,cAAA,CAAA;AAElB,QAAA,cAAA,GAAiB,CAAwB,GAAqB,KAAA;EACzE,EAAA,MAAM,MAAsB,GAAA,GAAA,CAAA;EAC5B,EAAAgC,aAAA,CAAQ,CAAC,QAAa,KAAA;EACpB,IAAM,MAAA,KAAA,GAAQ,IAAI,QAAQ,CAAA,CAAA;EAC1B,IAAI,IAAAF,QAAA,CAAG,MAAQ,EAAA,KAAK,CAAG,EAAA;EACrB,MAAM,MAAA,MAAA,GAAS,WAAW,KAAK,CAAA,CAAA;EAC/B,MAAA,MAAA,CAAO,QAAQ,CAAA,GAAI,MAAO,CAAA,cAAA,CAAe,KAAoB,CAAC,CAAA,CAAA;EAAA,KAChE;EACA,IAAI,IAAAA,QAAA,CAAG,MAAQ,EAAA,KAAK,CAAG,EAAA;EACrB,MAAO,MAAA,CAAA,QAAQ,CAAI,GAAAG,UAAA,CAAK,KAAe,CAAA,CAAA;EAAA,KACzC;EAAA,GACF,EAAG1G,UAAK,CAAA,GAAG,CAAC,CAAA,CAAA;EACZ,EAAO,OAAA,MAAA,CAAA;EACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsHO,QAAM,IAAO,GAAAkF,gBAAA,CAAW,CAAiC,EAAA,EAYtC,GAA8C,KAAA;EAZR,EAC9D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,aAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA;EAAA,IACA,YAAA,GAAe,EAAE,IAAA,EAAM,UAAW,EAAA;EAAA,IAClC,OAAU,GAAA,KAAA,CAAA;EAAA,IACV,kBAAqB,GAAA,KAAA;EAAA,IACrB,UAAa,GAAA,IAAA;EAAA,IACb,iBAAiB,EAAC;EAAA,IAClB,SAAA;EAAA,GAnJF,GAyIgE,EAW3D,EAAA,IAAA,GAAAR,YAAA,CAX2D,EAW3D,EAAA;EAAA,IAVH,eAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,cAAA;EAAA,IACA,SAAA;EAAA,IACA,oBAAA;EAAA,IACA,YAAA;EAAA,IACA,gBAAA;EAAA,IACA,WAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,cAA4C,GAAA,CAChD,MACA,EAAA,QAAA,EACA,QACI,MAAA;EAAA,IACJ,MAAA;EAAA,IACA,MAAA,EAAQ,SAAS,MAAM,CAAA;EAAA,GACzB,CAAA,CAAA;EAEA,EAAA,MAAM,cAAc,MAAM;EACxB,IAAI,IAAA,QAAA;EAAU,MAAO,OAAA,cAAA,CAAA;EACrB,IAAI,IAAA,SAAA;EAAW,MAAA,OAAOiC,gBAAY,SAAS,CAAA,CAAA;EAC3C,IAAO,OAAA,KAAA,CAAA,CAAA;EAAA,GACT,CAAA;EAEA,EAAM,MAAA,UAAA,GACJ,WACAC,qBAAoB,CAAAjH,iBAAA,CAAA;EAAA,IAClB,aAAe,EAAA,aAAA;EAAA,IACf,UAAU,WAAY,EAAA;EAAA,GAAA,EACnB,YACJ,CAAA,CAAA,CAAA;EAEH,EAAAkH,yBAAA,CAAoB,GAAK,EAAAhB,YAAA,CAAO,UAAU,CAAA,EAAG,EAAE,CAAA,CAAA;EAE/C,EAAA,IAAI,kBAAoB,EAAA;EACtB,IAAM,MAAA,iBAAA,GAAoBhH,YAAO,CAAA,EAAE,CAAA,CAAA;EACnC,IAAAH,eAAA,CAAU,MAAM;EACd,MAAA,IAAI,CAACoI,YAAA,CAAO,iBAAkB,CAAA,OAAA,EAAS,aAAa,CAAG,EAAA;EACrD,QAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,KAAM,CAAA,aAAA,CAAA,CAAA;EAClB,QAAA,iBAAA,CAAkB,OAAU,GAAA,aAAA,CAAA;EAAA,OAC9B;EAAA,KACF,EAAG,CAAE,aAAc,CAAC,CAAA,CAAA;EAAA,GACtB;EAEA,EAAM,MAAA,YAAA,GAAe,CAAC,MAAuB,KAAA;EAC3C,IAAA,IAAI,CAAC,UAAY,EAAA;EACf,MAAO,OAAA,MAAA,CAAA;EAAA,KACT;EAEA,IAAA,OAAO,eAA2B,MAAM,CAAA,CAAA;EAAA,GAC1C,CAAA;EAEA,EAAA,MAAM,YAAe,GAAA,UAAA,CAAW,SAAU,CAAA,OAAA,GACtC,UAAW,CAAA,YAAA;EAAA,IAAa,CAAC,MACzB,KAAA,QAAA,CAAS,YAAa,CAAA,MAAM,GAAG,UAAU,CAAA;EAAA,GAC3C,GACE,CAAC,CAAwC,KAAA;EACzC,IAAA,UAAA,CAAW,OAAQ,EAAA,CAAA;EACnB,IAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EAAA,GACnB,CAAA;EAEF,EACE,uBAAA,KAAA,CAAA,aAAA,CAACC,oEAAkB,UAAkB,CAAA,EAAA,IAAA,CAAA,sCAClC,MAAK,EAAA,EAAA,KAAA,EAAQpH,oBAAE,KAAO,EAAA,MAAA,EAAA,EAAW,iBAAmB,QAAW,EAAA,YAAA,EAAA,EAC5D,OAAO,QAAa,KAAA,UAAA,GAAa,SAAS,UAAU,CAAA,GAAI,QAC5D,CACF,CAAA,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvMM,QAAM,SAAY,GAAAuF,gBAAA,CAA8C,CAAC,EAAA,EAGrE,GAAK,KAAA;EAHgE,EACtE,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,QAAA,EAAA,KAAA;EAAA,GAXZ,GAUwE,EAEnE,EAAA,IAAA,GAAAR,YAAA,CAFmE,EAEnE,EAAA;EAAA,IADH,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAAxE,eAAA,CAAAP,iBAAA,CAAA;EAAA,MACC,IAAK,EAAA,IAAA;EAAA,MACL,EAAK,EAAA;EAAA,QACH,KAAO,EAAA,KAAA;EAAA,QACP,QAAU,EAAA,MAAA;EAAA,QACV,YAAc,EAAA,CAAA;EAAA,QACd,eAAiB,EAAA,CAAA;EAAA,OACnB;EAAA,MACA,iBAAoB,EAAA,KAAA,CAAA;EAAA,KAAA,EACf,IATN,CAAA,EAAA;EAAA,MAUC,GAAA;EAAA,KAAA,CAAA;EAAA,IAEE,KAAA;EAAA,GACJ,CAAA;EAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECuED,MAAM,SAAA,GAAY,CAGf,EAAA,EAUqC,GAAmC,KAAA;EAVxE,EACC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAY,GAAA,QAAA;EAAA,IACZ,UAAa,GAAA,KAAA;EAAA,IACb,iBAAoB,GAAA,KAAA;EAAA,IACpB,QAAA;EAAA,IACA,OAAS,EAAA,aAAA;EAAA,GA9Gb,GAsGG,EASI,EAAA,IAAA,GAAA+E,YAAA,CATJ,EASI,EAAA;EAAA,IARH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,mBAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGF,EAAA,MAAM,UAAUsC,4BAA2B,EAAA,CAAA;EAC3C,EAAA,MAAM,EAAE,SAAA,EAAW,EAAE,MAAA,IAAa,GAAA,OAAA,CAAA;EAClC,EAAM,MAAA,OAAA,GAAU,wCAAiB,OAAQ,CAAA,OAAA,CAAA;EAEzC,EAAM,MAAA,UAAA,GAAa,aAA0B,CAAA,IAAA,EAAM,MAAM,CAAA,CAAA;EAEzD,EAAA,2CACGC,iBAAY,EAAA,EAAA,SAAA,EAAY,CAAC,CAAC,UAAA,EAAa,YAA0B,GAChE,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAACC,WAAA;EAAA,IAAAvH,iBAAA,CAAA;EAAA,MACC,OAAQ,EAAA,MAAA;EAAA,MACR,SAAA;EAAA,MACA,UAAA,EAAa,SAAc,KAAA,QAAA,GAAW,SAAY,GAAA,QAAA;EAAA,KAC7C,EAAA,IAAA,CAAA;EAAA,IAEH,KAAA,wCACC,SAAU,EAAA,EAAA,OAAA,EAAU,oBAAoB,KAAY,CAAA,GAAA,IAAA,EAAO,EAAK,EAAA,CAAA,EAAA,EAC7D,KACJ,CAAA;EAAA,oBAEF,KAAA,CAAA,aAAA;EAAA,MAACwH,wBAAA;EAAA,MAAA;EAAA,QACC,IAAA;EAAA,QACA,OAAA;EAAA,QACA,KAAQ,EAAA,QAAA;EAAA,QACR,QAAS,CAAC,EAAE,OAAY,KAAA,QAAA,CAAS,OAAO,OAAO,CAAA;EAAA,OAAA;EAAA,KACjD;EAAA,qBAED,KAAA,CAAA,aAAA,CAAAC,sBAAA,EAAA,IAAA,EACG,UAAe,KAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,CAAY,QAC/B,CACF,CAAA,CAAA;EAEJ,CAAA,CAAA;AAEa,QAAA,KAAA,GAAQlC,iBAAW,SAAS;;AC/IlC,QAAM,uBAAuB,MAAM;EACxC,EAAA,MAAM,EAAE,QAAA,EAAU,KAAM,EAAA,GAAI8B,4BAAe,EAAA,CAAA;EAE3C,EAAA,MAAM,iBAAoB,GAAA,CAAC,IAAW,EAAA,KAAA,EAAY,OAAiC,KAAA;EACjF,IAAA,KAAA,CAAM,IAAI,CAAA,CAAA;EACV,IAAS,QAAA,CAAA,IAAA,EAAM,OAAO,OAAO,CAAA,CAAA;EAAA,GAC/B,CAAA;EACA,EAAO,OAAA,iBAAA,CAAA;EACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACkBO,QAAM,aAAgB,GAAA9B,gBAAA,CAA+C,CAAC,EAAA,EAW1E,GAAK,KAAA;EAXqE,EAC3E,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAU,gBAAmB,GAAAT,cAAA;EAAA,IAC7B,SAAY,GAAA,KAAA;EAAA,IACZ,cAAiB,GAAA,MAAA;EAAA,IACjB,SAAY,GAAA,IAAA;EAAA,GAtCd,GA6B6E,EAUxE,EAAA,IAAA,GAAAC,YAAA,CAVwE,EAUxE,EAAA;EAAA,IATH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,SAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,gBAAA;EAAA,IACA,WAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACG,SAAA;EAAA,IAAA;EAAA,MACC,CAAA,EAAI,QAAQ,MAAS,GAAA,aAAA;EAAA,MACrB,OAAQ,EAAA,aAAA;EAAA,KAAA;EAAA,oBAER,KAAA,CAAA,aAAA;EAAA,MAAC,KAAA;EAAA,MAAA;EAAA,QACC,IAAA;EAAA,QACA,KAAM,EAAA,EAAA;EAAA,QACN,UAAA;EAAA,QACA,SAAA;EAAA,QACA,QAAA;EAAA,QACA,GAAA;EAAA,OAAA;EAAA,MAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,QAACwC,UAAA;EAAA,QAAA;EAAA,UACC,GAAM,EAAA,CAAA;EAAA,UACN,SAAA,EAAY,cAAmB,KAAA,MAAA,GAAS,aAAgB,GAAA,KAAA;EAAA,SAAA;EAAA,wBAExD,KAAA,CAAA,aAAA;EAAA,UAAC,QAAA;EAAA,UAAA1H,iBAAA,CAAA;EAAA,YACC,IAAA;EAAA,YACA,QAAA,EAAW,CAAC,CAAM,KAAA;EAChB,cAAA,QAAA,CAAS,CAAC,CAAA,CAAA;EACV,cAAA,gBAAA,CAAiB,CAAC,CAAA,CAAA;EAAA,aACpB;EAAA,YACA,KAAA;EAAA,YACA,OAAA;EAAA,YACA,aAAY,EAAA,wBAAA;EAAA,WACP,EAAA,IAAA,CAAA;EAAA,SACP;EAAA,wBACA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,OAAA,EAAU,IAAO,EAAA,EAAA,EAAK,EAAE,UAAA,EAAY,QAAS,EAAA,EAAI,IAAO,EAAA,SAAA,EAAA,EAAc,KAAO,CAAA;EAAA,OACtF;EAAA,KAEJ;EAAA,GACF,CAAA;EAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5DM,QAAM,kBAAqB,GAAAuF,gBAAA,CAAoD,CAAC,EAAA,EASpF,GAAK,KAAA;EAT+E,EACrF,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAU,gBAAmB,GAAAT,cAAA;EAAA,GArB/B,GAcuF,EAQlF,EAAA,IAAA,GAAAC,YAAA,CARkF,EAQlF,EAAA;EAAA,IAPH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA,CAACG,SAAI,EAAA,EAAA,CAAA,EAAI,KAAQ,GAAA,MAAA,GAAS,aACxB,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,MACA,SAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,MAACyC,mBAAA;EAAA,MAAA3H,iBAAA,CAAA;EAAA,QACC,QAAA,EAAW,CAAC,CAAM,KAAA;EAChB,UAAA,QAAA,CAAS,CAAC,CAAA,CAAA;EACV,UAAA,gBAAA,CAAiB,CAAC,CAAA,CAAA;EAAA,SACpB;EAAA,QACA,KAAA;EAAA,QACA,aAAY,EAAA,8BAAA;EAAA,OACP,EAAA,IAAA,CAAA;EAAA,MAEH,QAAA;EAAA,KACJ;EAAA,GAGN,CAAA,CAAA;EAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBM,QAAM,UAAa,GAAAuF,gBAAA,CAAW,CAAC,EAAA,EAMlB,GAAa,KAAA;EANK,EACpC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,OAAA,GAAA,SAAA;EAAA,IACV,IAAA;EAAA,IACA,YAAc,EAAA,SAAA;EAAA,IACd,QAAA;EAAA,GA9BF,GA0BsC,EAKjC,EAAA,IAAA,GAAAR,YAAA,CALiC,EAKjC,EAAA;EAAA,IAJH,SAAA;EAAA,IACA,MAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EA9BF,EAAA6C,IAAAA,GAAAA,CAAAA;EAiCE,EAAA,MAAM,gBAAgB,IAAQ,IAAA,IAAA,GAAA,IAAA,GAAA,QAAA,CAAA;EAC9B,EAAA,MAAM,YAAe,GAAA7H,kBAAA,CAAa,aAAe,EAAA,EAAE,IAAM6H,EAAAA,CAAAA,GAAAA,GAAA,aAAc,CAAA,KAAA,CAAM,IAApB,KAAA,IAAA,GAAAA,GAA4B,GAAA,IAAA,CAAK,MAAM,CAAA,CAAA;EAChG,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACC,gBAAA;EAAA,IAAA7H,iBAAA,CAAA;EAAA,MACC,OAAA;EAAA,MACA,IAAO,EAAA,YAAA;EAAA,MACP,YAAa,EAAA,SAAA;EAAA,MACb,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,GACP,CAAA;EAEJ,CAAC;;EC1CM,MAAM,OAAU,GAAA,CAAA,CAAA;EACV,MAAA,aAAA,GAAgB,SAAU,CAAA,GAAA,EAAK,GAAG,CAAA,CAAA;EAClC,MAAA,aAAA,GAAgB,UAAU,GAAG,CAAA;;ECO7B,MAAA,WAAA,GAAcuF,iBAAW,CAAC;EAAA,EACrC,KAAA;EAAA,EACA,OAAA;EAAA,EACA,IAAA;EAAA,EACA,QAAW,GAAA,KAAA;EACb,CAAA,EAAqB,GAAa,KAAA;EAChC,EAAA,IAAI,CAAC,KAAA;EAAO,IAAA,2CAAQL,SAAI,EAAA,IAAA,CAAA,CAAA;EACxB,EAAA,MAAM,EAAE,aAAe,EAAA,aAAA,EAAe,SAAU,EAAA,GAAI,cAAc,OAAO,CAAA,CAAA;EAEzE,EAAM,MAAA,SAAA,GAAY,CAAC,CAAW,KAAA;EAC5B,IAAA,QAAQ,EAAE,GAAK;EAAA,MACb,KAAK,QAAA;EACH,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EACjB,QAAA,aAAA,CAAc,EAAE,IAAM,EAAA,KAAA,EAAO,MAAQ,EAAA,OAAA,GAAU,GAAG,CAAA,CAAA;EAClD,QAAA,MAAA;EAAA,MACF,KAAK,UAAA;EACH,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EACjB,QAAA,SAAA,CAAU,EAAE,IAAM,EAAA,KAAA,EAAO,MAAQ,EAAA,OAAA,GAAU,GAAG,CAAA,CAAA;EAC9C,QAAA,MAAA;EAAA,MACF;EACE,QAAA,aAAA,CAAc,CAAC,CAAA,CAAA;EACf,QAAA,MAAA;EAAA,KACJ;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,EAAE,WAAY,EAAA,GAAIC,0BAAoB,aAAe,EAAA,EAAE,MAAM,CAAA,CAAA;EAEnE,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,UAAA;EAAA,IAAA;EAAA,MACC,EAAK,EAAA,KAAA;EAAA,MACL,GAAA;EAAA,MACA,SAAA;EAAA,MACA,cAAa,CAAU,OAAA,EAAA,KAAA,CAAA,CAAA;EAAA,MACvB,OAAA;EAAA,MACA,EAAK,EAAA,WAAA;EAAA,MACL,IAAA,sCAAQ,IAAK,EAAA,EAAA,EAAA,EAAK2C,gBAAW,OAAU,EAAA,QAAA,GAAW,SAAY,GAAM,EAAA,CAAA;EAAA,MACpE,KAAA,EAAQ,iBAAiB,KAAK,CAAA;EAAA,KAAA;EAAA,GAChC,CAAA;EAEJ,CAAC,CAAA;;;;;;;;;;;;;;;;;;AC/CM,QAAM,UAAU,CAAC,KAAA,yCACrBC,aAAc,EAAA/H,iBAAA,CAAA,EAAA,MAAA,EAAS,QAAY,KAAQ,CAAA;;ECKvC,MAAM,qBAAqB,CAAC;EAAA,EACjC,OAAA;EAAA,EACA,IAAA;EAAA,EACA,QAAA;EACF,CAA+B,KAAA;EAC7B,EAAA,MAAM,EAAE,aAAe,EAAA,aAAA,EAAe,UAAW,EAAA,GAAI,cAAc,OAAO,CAAA,CAAA;EAC1E,EAAA,MAAM,EAAE,WAAY,EAAA,GAAImF,0BAAoB,aAAe,EAAA,EAAE,MAAM,CAAA,CAAA;EACnE,EAAM,MAAA,SAAA,GAAY,CAAC,CAAW,KAAA;EAC5B,IAAA,QAAQ,EAAE,GAAK;EAAA,MACb,KAAK,KAAA;EACH,QAAW,UAAA,EAAA,CAAA;EACX,QAAA,MAAA;EAAA,MACF,KAAK,SAAA;EACH,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EACjB,QAAA,aAAA,CAAc,EAAE,IAAA,EAAM,IAAM,EAAA,MAAA,EAAQ,GAAG,CAAA,CAAA;EACvC,QAAA,MAAA;EAAA,MACF,KAAK,QAAA;EACH,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EACjB,QAAA,aAAA,CAAc,EAAE,IAAM,EAAA,KAAA,EAAO,MAAQ,EAAA,OAAA,GAAU,GAAG,CAAA,CAAA;EAClD,QAAA,MAAA;EAAA,MACF;EACE,QAAA,aAAA,CAAc,CAAC,CAAA,CAAA;EACf,QAAA,MAAA;EAAA,KACJ;EAAA,GACF,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,UAAA;EAAA,IAAA;EAAA,MACC,OAAQ,EAAA,OAAA;EAAA,MACR,SAAA;EAAA,MACA,YAAW,EAAA,qBAAA;EAAA,MACX,OAAA;EAAA,MACA,EAAK,EAAA,WAAA;EAAA,KAAA;EAAA,oBAEJ,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAK,EAAA,QAAA,GAAW6C,qBAAeC,oBAAiB,EAAA,CAAA;EAAA,GACxD,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECtCa,MAAA,cAAA,GACT,CAAC,EAAqE,KAAA;EAArE,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,wBAAsB,QAT7B,EAAA,GASK,IAAqC,IAArC,GAAAlD,YAAA,CAAA,EAAA,EAAqC,CAAnC,sBAAsB,EAAA,UAAA,CAAA,CAAA,CAAA;EACvB,EAAA,IAAI,CAAC,oBAAA;EAAsB,IAAO,OAAA,QAAA,CAAA;EAClC,EACE,uBAAA,KAAA,CAAA,aAAA,CAACmD,YAAY,EAAAlI,iBAAA,CAAA,EAAA,EAAA,IAAA,CAAA,EACT,QACJ,CAAA,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC+BS,QAAA,WAAA,GAAc,CAAC,EAWJ,KAAA;EAXI,EAC1B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA,GAAW,MAAM;EAAA,KAAC;EAAA,IAClB,SAAY,GAAA,KAAA;EAAA,IACZ,MAAS,GAAA,aAAA;EAAA,IACT,cAAiB,GAAA,aAAA;EAAA,IACjB,KAAQ,GAAA,IAAA;EAAA,IACR,IAAA;EAAA,IACA,IAAO,GAAA,IAAA;EAAA,IACP,oBAAuB,GAAA,KAAA;EAAA,IACvB,YAAA;EAAA,GAxDF,GA+C4B,EAUvB,EAAA,IAAA,GAAA+E,YAAA,CAVuB,EAUvB,EAAA;EAAA,IATH,UAAA;EAAA,IACA,WAAA;EAAA,IACA,QAAA;EAAA,IACA,gBAAA;EAAA,IACA,OAAA;EAAA,IACA,MAAA;EAAA,IACA,MAAA;EAAA,IACA,sBAAA;EAAA,IACA,cAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,EAAE,MAAA,EAAQ,QAAU,EAAA,OAAA,KAAYoD,mBAAc,EAAA,CAAA;EACpD,EAAA,MAAM,CAAE,QAAA,EAAU,WAAY,CAAA,GAAIC,gBAAW,EAAA,CAAA;EAC7C,EAAA,MAAM,CAAE,aAAA,EAAe,gBAAiB,CAAA,GAAItJ,eAAS,KAAK,CAAA,CAAA;EAC1D,EAAA,MAAM,CAAE,aAAA,EAAe,gBAAiB,CAAA,GAAIA,eAAS,MAAM,CAAA,CAAA;EAC3D,EAAM,MAAA,eAAA,GAAkBI,aAAO,IAAI,CAAA,CAAA;EACnC,EAAM,MAAA;EAAA,IACJ,OAAA;EAAA,IACA,OAAA;EAAA,MACEiG,yBAAoB,CAAA,aAAA,EAAe,EAAE,aAAA,EAAe,MAAM,CAAA,CAAA;EAC9D,EAAA,MAAM,WAAc,GAAA,KAAA,IAAS1F,cAAS,CAAA,QAAA,EAAU,KAAK,CAAA,CAAA;EAErD,EAAM,MAAA,UAAA,GAAa,CAAE,GAAG,MAAO,CAAA,CAAA;EAC/B,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,WAAW,MAAS,GAAA,OAAA,EAAS,KAAK,CAAG,EAAA;EACvD,IAAA,UAAA,CAAW,KAAK,EAAE,CAAA,CAAA;EAAA,GACpB;EAEA,EAAAV,eAAA,CAAU,MAAM;EACd,IAAA,IAAI,UAAU,EAAI,EAAA;EAChB,MAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;EAAA,KAChB,MAAA;EACL,MAAA,gBAAA,CAAiB,WAAW,CAAA,CAAA;EAAA,KAC9B;EAAA,GACF,EAAG,CAAE,KAAM,CAAC,CAAA,CAAA;EAEZ,EAAAA,eAAA,CAAU,MAAM;EACd,IAAA,IAAI,QAAU,EAAA;EACZ,MAAA,gBAAA,CAAiB,CAAC,IAAA,KAAS,IAAK,CAAA,MAAA,CAAO,cAAc,CAAC,CAAA,CAAA;EAAA,KACjD,MAAA;EACL,MAAA,gBAAA,CAAiB,UAAU,CAAA,CAAA;EAAA,KAC7B;EAAA,GACF,EAAG,CAAE,QAAS,CAAC,CAAA,CAAA;EAEf,EAAA,MAAM,eAAe,MAAM;EACzB,IAAA,WAAA,CAAY,MAAO,EAAA,CAAA;EAAA,GACrB,CAAA;EAEA,EAAA,MAAM,qBAAqB,MAAM;EAC/B,IAAI,IAAA,QAAA;EAAU,MAAO,OAAA,OAAA,CAAA;EACrB,IAAA,IAAI,MAAO,CAAA,MAAA,GAAS,OAAW,IAAA,MAAA,CAAO,SAAS,CAAG,EAAA;EAChD,MAAA,OAAO,MAAO,CAAA,MAAA,CAAA;EAAA,KAChB;EACA,IAAI,IAAA,MAAA,CAAO,SAAS,OAAS,EAAA;EAC3B,MAAO,OAAA,CAAA,CAAA;EAAA,KACT;EACA,IAAO,OAAA,OAAA,CAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,eAAkB,GAAA,CAAC,KACvB,KAAA,aAAA,GACI,KAAU,KAAA,aAAA,CAAc,SAAU,CAAA,CAAC,QAAa,KAAA,QAAA,KAAa,aAAa,CAAA,GAC1E,KAAU,KAAA,CAAA,CAAA;EAGhB,EAAM,MAAA,YAAA,GAAe,CAAC,KAAkB,KAAA;EACtC,IAAS,QAAA,EAAA,CAAA;EACT,IAAA,gBAAA,CAAiB,KAAK,CAAA,CAAA;EACtB,IAAA,QAAA,CAAS,KAAK,CAAA,CAAA;EAAA,GAChB,CAAA;EAEA,EAAA,MAAM,iBAAiB,MAAM;EAC3B,IAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;EACrB,IAAA,QAAA,CAAS,IAAI,CAAA,CAAA;EAAA,GACf,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAACmG,SAAI,EAAA,EAAA,aAAA,EAAY,sBACf,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,OAAA;EAAA,IAAAlF,iBAAA,CAAA;EAAA,MACC,MAAA;EAAA,MACA,OAAA;EAAA,MACA,eAAA;EAAA,KACK,EAAA,YAAA,CAAA;EAAA,wCAEJqI,oBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAArI,iBAAA,CAAA;EAAA,QACC,OAAU,EAAA,QAAA;EAAA,QACV,cAAa,IAAQ,IAAA,cAAA;EAAA,QACrB,IAAA;EAAA,QACA,EAAK,EAAA,OAAA;EAAA,QACL,IAAA;EAAA,QACA,IAAO,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAKsI,eAAY,EAAA,CAAA;EAAA,OACzB,EAAA,IAAA,CAAA;EAAA,KAET,CAAA;EAAA,oBACC,KAAA,CAAA,aAAA,CAAA,cAAA,EAAA,EAAe,oBACd,EAAA,kBAAA,KAAA,CAAA,aAAA,CAACC,wBAAe,CAAE,EAAA,MAAA,EAAO,SAAU,EAAA,IAAA,EAAK,CAAI,EAAA,CAAA,EAAI,OAAQ,EAAA,oBAAA,EAAA,sCACrDhB,WACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACiB,mBAAA;EAAA,MAAA;EAAA,QACC,KAAM,EAAA,cAAA;EAAA,QACN,EAAK,EAAA,OAAA;EAAA,QACL,OAAQ,EAAA,MAAA;EAAA,QACR,UAAW,EAAA,QAAA;EAAA,QACX,cAAe,EAAA,eAAA;EAAA,QACf,KAAM,EAAA,MAAA;EAAA,OAAA;EAAA,MACP,cAAA;EAAA,MAEG,SAAA,IAAa,OAAQ,CAAA,KAAA,KAAU,OACjC,oBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,MAAA;EAAA,QAAA;EAAA,UACC,IAAK,EAAA,IAAA;EAAA,UACL,CAAE,EAAA,GAAA;EAAA,UACF,OAAU,EAAA,cAAA;EAAA,UACV,OAAQ,EAAA,OAAA;EAAA,SAAA;EAAA,QACT,OAAA;EAAA,OAED;EAAA,KAGF,kBAAA,KAAA,CAAA,aAAA,CAACC,iBAAY,EAAA,EAAA,CAAA,EAAI,qBACd,KAAA,CAAA,aAAA,CAAAlB,WAAA,EAAA,EAAM,UAAW,EAAA,QAAA,EAAS,CAAI,EAAA,CAAA,EAAI,OAAU,EAAA,CAAA,EAAA,sCAC1CmB,gBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACC,gBAAA;EAAA,MAAA;EAAA,QACC,SAAU,kBAAmB,EAAA;EAAA,QAC7B,OAAU,EAAA,CAAA;EAAA,QACV,SAAU,EAAA,QAAA;EAAA,QACV,IAAO,EAAA,EAAA;EAAA,QACP,EAAK,EAAA,CAAA;EAAA,QACL,EAAK,EAAA,CAAA;EAAA,QACL,EAAK,EAAA,CAAA;EAAA,OAAA;EAAA,MAEH,aAAc,CAAA,GAAA,CAAI,CAAC,KAAA,EAAO,KAC1B,qBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,WAAA;EAAA,QAAA;EAAA,UACC,KAAA;EAAA,UACA,GAAA,EAAM,GAAG,KAAgB,CAAA,QAAA,EAAA,KAAA,CAAA,CAAA;EAAA,UACzB,UAAW,KAAU,KAAA,aAAA;EAAA,UACrB,GAAM,EAAA,eAAA,CAAgB,KAAK,CAAA,GAAI,eAAkB,GAAA,KAAA,CAAA;EAAA,UACjD,IAAA;EAAA,UACA,OAAA,EAAU,MAAM,YAAA,CAAa,KAAK,CAAA;EAAA,SAAA;EAAA,OAErC,CAAA;EAAA,KACH,EACE,cAAe,CAAA,MAAA,GAAS,CAC1B,oBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,kBAAA;EAAA,MAAA;EAAA,QACC,OAAU,EAAA,YAAA;EAAA,QACV,QAAA;EAAA,QACA,IAAA;EAAA,OAAA;EAAA,KAGJ,CACF,CACF,CACF,CACF,CACF,CAAA;EAAA,GAEJ,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChMa,QAAA,gBAAA,GAAmB,CAAC,EAOP,KAAA;EAPO,EAC/B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,GAjBF,GAYiC,EAM5B,EAAA,IAAA,GAAA5D,YAAA,CAN4B,EAM5B,EAAA;EAAA,IALH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,WAAA;EAAA,MAAA/E,iBAAA,CAAA;EAAA,QACC,IAAA;EAAA,QACA,QAAA;EAAA,QACA,KAAA;EAAA,OACK,EAAA,IAAA,CAAA;EAAA,KACP;EAAA,GAEJ,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;EC5BW,MAAA,iBAAA,GAAoBG,oBAA2D,IAAI,CAAA,CAAA;EAEnF,MAAA,kBAAA,GAAqB,CAChC,KACA,EAAA,OAAA,KAEA,UACIyI,8BAAsB,CAAA,KAA2B,CACjD,GAAAC,wBAAA,CAAmB,KAAwB,CAAA,CAAA;EAG1C,MAAM,kBAAqB,GAAA,CAChC,KACA,EAAA,KAAA,EACA,OAC2B,KAAA;EAC3B,EAAM,MAAA,cAAA,GAAiBtI,sCAClB,KADkB,CAAA,EAAA;EAAA,IAErB,YAAA,EAAc,CAAG,EAAA,OAAA,GAAU,UAAa,GAAA,OAAA,CAAA,aAAA,CAAA;EAAA,GAC1C,CAAA,CAAA;EAEA,EAAA,OAAQ,OACJ,GAAAuI,2BAAA;EAAA,IACA,cAAA;EAAA,IACA,KAAA;EAAA,IACA,UACA,GAAAC,qBAAA;EAAA,IACA,cAAA;EAAA,IACA,KAAA;EAAA,GACA,CAAA,eAAA,CAAA;EAEN,CAAA,CAAA;EAEa,MAAA,aAAA,GAAgB,CAAC,KAAA,EAA6B,OAAqB,KAAA;EAC9E,EAAM,MAAA,KAAA,GAAQ,kBAAmB,CAAA,KAAA,EAAO,OAAO,CAAA,CAAA;EAC/C,EAAA,MAAM,oBAAuB,GAAA,kBAAA,CAAmB,KAAO,EAAA,KAAA,EAAO,OAAO,CAAA,CAAA;EACrE,EAAO,OAAA,EAAE,OAAO,oBAAqB,EAAA,CAAA;EACvC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACyDa,QAAA,UAAA,GAAa,CAAC,KAA2B,KAAA;EACpD,EAAA,MAUI,EATF,GAAA,KAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,IAAA;EAAA,IACA,OAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAa,GAAA,KAAA;EAAA,IACb,IAAA;EAAA,IACA,KAAA;EAAA,IACA,aAAgB,GAAA,MAAA;EAAA,GA9GpB,GAgHM,EADC,EAAA,IAAA,GAAAhE,YAAA,CACD,EADC,EAAA;EAAA,IARH,UAAA;EAAA,IACA,MAAA;EAAA,IACA,SAAA;EAAA,IACA,SAAA;EAAA,IACA,YAAA;EAAA,IACA,MAAA;EAAA,IACA,OAAA;EAAA,IACA,eAAA;EAAA,GAAA,CAAA,CAAA;EAGF,EAAM,MAAA,KAAA,GAAQ3E,iBAAW,iBAAiB,CAAA,CAAA;EAC1C,EAAM,MAAA,GAAA,GAAMlB,aAAO,IAAI,CAAA,CAAA;EAEvB,EAAA,MAAM,oBAAuB,GAAAoB,UAAA,CAAK,CAAE,UAAW,GAAGC,eAAK,CAAAP,iBAAA,CAAA,EAAA,EAAA,KAAA,CAAA,EAAL,EAAY,YAAA,EAAc,CAAG,EAAA,OAAA,GAAU,UAAa,GAAA,OAAA,CAAA,WAAA,EAAqB,SAAS,CAAA,CAAA,CAAA;EACpI,EAAA,MAAM,EAAE,UAAA,EAAe,GAAA,OAAA,GACnBgJ,+BAAqB,CAAA,oBAAA,EAAsB,KAA6B,EAAA,GAAG,CAC3E,GAAAC,gBAAA,CAAS,oBAAsB,EAAA,KAAA,EAA0B,GAAG,CAAA,CAAA;EAEhE,EAAM,MAAA,EAAE,QAAQ,UAAW,EAAA,GAAI9D,0BAAoB,YAAc,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,CAAA,CAAA;EAClF,EAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,SAAA,KAAc+D,kBAAa,EAAA,CAAA;EAC/D,EAAA,MAAM,WAAc,GAAA;EAAA,IAClB,OAAS,EAAA,MAAA;EAAA,IACT,IAAM,EAAA,KAAA;EAAA,IACN,SAAW,EAAA,aAAA;EAAA,IACX,UAAY,EAAA,KAAA;EAAA,GACd,CAAA;EACA,EAAM,MAAA,SAAA,GAAY,SAAY,GAAA,WAAA,GAAc,EAAC,CAAA;EAE7C,EAAA,MAAM,aAAa,OACd,GAAA,KAAA,CAA6B,WAAW,KAAK,CAAA,GAC7C,MAA0B,aAAkB,KAAA,KAAA,CAAA;EAEjD,EAAA,MAAM,eAA6C,GAAA3I,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAC9CmJ,gBAAW,CAAA,UAAA,EAAY,UAAU,CADa,CAAA,EAAA;EAAA,IAEjD,GAAA;EAAA,IACA,OAAO,EAAE,OAAA,EAAS,KAAK,KAAO,EAAA,GAAA,EAAK,QAAQ,GAAI,EAAA;EAAA,IAC/C,YAAA,EAAc,UAAU,gBAAmB,GAAA,aAAA;EAAA,GAC7C,CAAA,CAAA;EAEA,EAAA,MAAM,cAA2C,GAAA;EAAA,IAC/C,cAAgB,EAAA,UAAA;EAAA,IAChB,eAAiB,EAAA,UAAA;EAAA,IACjB,EAAI,EAAA,SAAA;EAAA,IACJ,EAAI,EAAA,OAAA;EAAA,IACJ,MAAQ,EAAA,SAAA;EAAA,GACV,CAAA;EAEA,EAAO,OAAA,OAAO,QAAa,KAAA,UAAA,GACvB,QAAS,CAAAnJ,iBAAA,CAAA;EAAA,IACT,KAAA;EAAA,IACA,cAAA;EAAA,IACA,eAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAS,OAAW,IAAA,KAAA;EAAA,IACpB,SAAA;EAAA,IACA,KAAA;EAAA,GAAA,EACG,KACJ,CAEC,mBAAA,KAAA,CAAA,aAAA;EAAA,IAACuG,YAAA;EAAA,IAAA;EAAA,MACC,OAAW,EAAA,UAAA,IAAc,aAAkB,KAAA,MAAA,IAAW,OAAO,CAAI,GAAA,CAAA;EAAA,MACjE,EAAK,EAAA6C,cAAA,CAAS,CAAE,MAAA,EAAQ,YAAY,WAAc,GAAA,EAAI,EAAA,EAAE,eAAe,aAAkB,KAAA,MAAA,GAAS,KAAQ,GAAA,aAAA,EAAgB,CAAC,CAAA;EAAA,MAC3H,cAAe,EAAA,UAAA;EAAA,MACf,eAAgB,EAAA,UAAA;EAAA,MAChB,EAAG,EAAA,OAAA;EAAA,KAAA;EAAA,oBAEH,KAAA,CAAA,aAAA,CAAC,+BAAW,eAAkB,CAAA,CAAA;EAAA,IAC5B,IAAA,IAAQ,aAAkB,KAAA,MAAA,mBAEvB,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,IAAK,IAAQ,IAAAC,gBAAA,EAAa,EAAK,EAAA,UAAA,EAAa,CAChD,GAAA,UAAA,IAAc,kBAAkB,MAClC,oBAAA,KAAA,CAAA,aAAA,CAACC,eAAU,EAAA,EAAA,EAAA,EAAK,UACd,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAK,IAAQ,IAAAD,gBAAA,EAAa,EAAK,EAAA,UAAA,EAAa,CACpD,CAAA;EAAA,oBAEH,KAAA,CAAA,aAAA,CAAAE,UAAA,EAAA,EAAK,SAAU,EAAA,QAAA,EAAA,EAAW,QAAU,CAAA;EAAA,GACvC,CAAA;EAEN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3Ka,QAAA,eAAA,GAAkB,CAAC,KAAgC,KAAA;EAC9D,EAAA,MAYI,EAXF,GAAA,KAAA,EAAA;EAAA,IAAU,OAAA,GAAA,KAAA;EAAA,IACV,IAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAY,GAAA,KAAA;EAAA,IACZ,UAAa,GAAA,KAAA;EAAA,IACb,aAAgB,GAAA,MAAA;EAAA,IAChB,IAAA;EAAA,IACA,OAAA;EAAA,IACA,IAAA;EAAA,IACA,KAAK,EAAC;EAAA,GAvBV,GAyBM,EADC,EAAA,IAAA,GAAAxE,YAAA,CACD,EADC,EAAA;EAAA,IAVH,SAAA;EAAA,IACA,MAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,eAAA;EAAA,IACA,MAAA;EAAA,IACA,SAAA;EAAA,IACA,MAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAIF,EAAA,MAAM,EAAE,KAAO,EAAA,oBAAA,EAAyB,GAAA,aAAA,CAAc,OAAO,OAAO,CAAA,CAAA;EAEpE,EAAM,MAAA,eAAA,GAAkB7E,cAAS,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;EAE/C,EAAA,MAAM,iBAAqB,GAAAA,cAAA,CAAS,OAAQ,CAAA,QAAQ,CAAG,CAAA,GAAA;EAAA,IAAI,CAAC,KACzD,KAAAJ,oBAAA,CAAe,KAAK,CAAA,GACjBC,mBAAa,KAAO,EAAAC,iBAAA,CAAA;EAAA,MACpB,GAAA,EAAK,MAAM,KAAM,CAAA,KAAA;EAAA,MACjB,OAAA;EAAA,MACA,OAAA;EAAA,MACA,UAAA;EAAA,MACA,aAAA;EAAA,MACA,IAAA;EAAA,MACA,IAAA;EAAA,KACG,EAAA,KAAA,CAAM,MACV,CACC,GAAA,KAAA;EAAA,GACN,CAAA;EAEA,EAAA,MAAM,EAAE,SAAA,EAAc,GAAAmF,yBAAA,CAAoB,YAAc,EAAA;EAAA,IACtD,IAAA;EAAA,IACA,OAAA;EAAA,IACA,eAAA;EAAA,IACA,EAAA;EAAA,GACD,CAAA,CAAA;EAED,EAAA,MAAM,mBAAsB,GAAA7E,UAAA,CAAK,CAAE,UAAW,GAAG,IAAI,CAAA,CAAA;EAErD,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACiH,WAAA;EAAA,IAAAvH,iBAAA,CAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,oBADN,CAAA,EAAA;EAAA,MAEC,SAAA;EAAA,MACA,EAAK,EAAA,IAAA;EAAA,MACL,OAAU,EAAA,CAAA;EAAA,MACV,EAAK,EAAA,SAAA;EAAA,KACA,CAAA,EAAA,mBAAA,CAAA;EAAA,wCAEJ,iBAAkB,CAAA,QAAA,EAAlB,EAA2B,KAAA,EAAQ,SAChC,iBACJ,CAAA;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CO,QAAM,oBAAuB,GAAAuF,gBAAA,CAAsD,CAAC,EAAA,EAUxF,GAAK,KAAA;EAVmF,EACzF,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,aAAgB,GAAA,MAAA;EAAA,IAChB,UAAU,gBAAmB,GAAAT,cAAA;EAAA,IAC7B,QAAA;EAAA,GAjCF,GAyB2F,EAStF,EAAA,IAAA,GAAAC,YAAA,CATsF,EAStF,EAAA;EAAA,IARH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,eAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,eAAA;EAAA,MAAA/E,iBAAA,CAAA;EAAA,QACC,IAAA;EAAA,QACA,QAAA,EAAW,CAAC,CAAM,KAAA;EAAE,UAAA,QAAA,CAAS,CAAC,CAAA,CAAA;EAAG,UAAA,gBAAA,CAAiB,CAAC,CAAA,CAAA;EAAA,SAAE;EAAA,QACrD,SAAA;EAAA,QACA,KAAA;EAAA,QACA,aAAA;EAAA,OACK,EAAA,IAAA,CAAA;EAAA,MAEH,QAAA;EAAA,KACJ;EAAA,GAEJ,CAAA;EAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECrDD,MAAM,oBAAuB,GAAA;EAAA,EAC3B,eAAiB,EAAA,KAAA,CAAM,MAAO,CAAA,MAAA,CAAO,cAAc,CAAE,CAAA,KAAA;EACvD,CAAA,CAAA;AAEO,QAAM,YAAe,GAAAuF,gBAAA;EAAA,EAC1B,CAAC,IAAoB,GAAK,KAAA;EAAzB,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EATL,KAAA,EAAA,GASG,EAAY,EAAA,IAAA,GAAAR,YAAA,CAAZ,IAAY,CAAV,OAAA,CAAA,CAAA,CAAA;EACD,IAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,MAACG,SAAA;EAAA,MAAAlF,iBAAA,CAAA;EAAA,QACC,GAAA;EAAA,QACA,MAAO,EAAA,YAAA;EAAA,QACP,MAAS,EAAA,oBAAA;EAAA,QACT,OAAU,EAAA,oBAAA;EAAA,QACV,UAAW,EAAA,qBAAA;EAAA,QACX,CAAE,EAAA,SAAA;EAAA,QACF,CAAE,EAAA,GAAA;EAAA,QACF,eAAgB,EAAA,IAAA;EAAA,QAChB,eAAgB,EAAA,OAAA;EAAA,QAChB,aAAc,KAAS,IAAA,IAAA,GAAA,KAAA,GAAA,aAAA;EAAA,QACvB,MAAO,EAAA,QAAA;EAAA,OACF,EAAA,IAAA,CAAA;EAAA,KACP,CAAA;EAAA,GAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;EClBa,MAAA,OAAA,GAAU,CAAC,KAAwB,KAAA;EAC9C,EAAM,MAAA,EAAE,UAAY,EAAA,WAAA,EAAgB,GAAA,KAAA,CAAA;EACpC,EAAM,MAAA,GAAA,GAAMd,aAA0B,IAAI,CAAA,CAAA;EAC1C,EAAA,MAAM,EAAE,WAAA,EAAgB,GAAAsK,gBAAA,CAAU,OAAO,GAAG,CAAA,CAAA;EAE5C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,MAAA;EAAA,IAAAjJ,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,WADN,CAAA,EAAA;EAAA,MAEC,GAAA;EAAA,MACA,IAAK,EAAA,IAAA;EAAA,MACL,OAAU,EAAA,CAAA;EAAA,MACV,OAAQ,EAAA,OAAA;EAAA,MACR,UAAA;EAAA,MACA,aAAgB,EAAA,WAAA;EAAA,MAChB,aAAA,EAAgB,aAAa,MAAS,GAAA,MAAA;EAAA,KAAA,CAAA;EAAA,oBAEtC,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAKyJ,iBAAc,EAAA,CAAA;EAAA,GAC3B,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;ECpBO,MAAM,WAAc,GAAA,CAAC,EAAE,OAAA,EAAS,OAA8B,KAAA;EACnE,EAAM,MAAA,GAAA,GAAMvK,aAAyB,IAAI,CAAA,CAAA;EACzC,EAAA,MAAM,EAAE,YAAa,EAAA,GAAIwK,yBAAe,CAAA,OAAA,EAAS,OAAO,GAAG,CAAA,CAAA;EAE3D,EAAM,MAAA,SAAA,GAAY,QAAQ,IAAS,KAAA,SAAA,CAAA;EACnC,EAAA,MAAM,EAAE,WAAA,EAAgB,GAAAvE,yBAAA,CAAoB,YAAY,CAAA,CAAA;EACxD,EAAA,MAAM,QAAW,GAAA,CAAA,EAAG,MAAO,CAAA,OAAA,CAAQ,QAAQ,CAAE,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;EAE7C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACD,SAAA;EAAA,IAAA3E,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,YADN,CAAA,EAAA;EAAA,MAEC,GAAA;EAAA,MACA,KAAQ,EAAA,WAAA;EAAA,MACR,QAAA,EAAW,YAAY,CAAI,GAAA,QAAA;EAAA,MAC3B,aAAA,EAAgB,YAAY,CAAI,GAAA,SAAA;EAAA,MAChC,KACE,EAAA,OAAA,CAAQ,aACJ,GAAA,UAAA,GACA,YACE,eACA,GAAA,cAAA;EAAA,MAER,QAAS,EAAA,IAAA;EAAA,KAAA,CAAA;EAAA,IAEP,OAAQ,CAAA,IAAA;EAAA,GACZ,CAAA;EAEJ,CAAA;;EC5BA,MAAM,SAAkD,GAAA;EAAA,EACtD,CAAG,EAAA,MAAA;EAAA,EACH,CAAG,EAAA,IAAA;EAAA,EACH,CAAG,EAAA,IAAA;EACL,CAAA,CAAA;EAEa,MAAA,WAAA,GAAc,CAAC,KAC1B,KAAA,SAAA,CAAU2J,cAAQ,KAAK,CAAA,CAAE,CAAC,CAAiB,CAAA,CAAA;EAEtC,MAAM,iBAAoB,GAAA,gBAAA;;;;;;;;;;;;;;;;;;;;;ECHpB,MAAA,SAAA,GAAY,CAAC,KAA0B,KAAA;EAClD,EAAM,MAAA,GAAA,GAAMzK,aAAyB,IAAI,CAAA,CAAA;EACzC,EAAM,MAAA,KAAA,GAAQ0K,8BAAkB,CAAArJ,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAC3B,KAD2B,CAAA,EAAA;EAAA;EAAA;EAAA;EAAA,IAK9B,MAAQ,EAAA,OAAA;EAAA,oBACR6J,mBAAA;EAAA,GACD,CAAA,CAAA,CAAA;EAED,EAAA,MAAM,EAAE,SAAA,EAAc,GAAA1E,yBAAA,CAAoB,YAAY,CAAA,CAAA;EACtD,EAAA,MAAM,EAAE,UAAW,EAAA,GAAI2E,uBAAa,CAAA,KAAA,EAAO,OAAO,GAAG,CAAA,CAAA;EAErD,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA,CAAA;EACrB,EAAM,MAAA,EAAE,UAAa,GAAA,YAAA,EAAiB,GAAA,KAAA,CAAA;EACtC,EAAM,MAAA,kBAAA,GAAqB,CAAC,KAAA,EAAe,KACzC,KAAAC,UAAA;EAAA,IACE,CAAC,OAAA,KAA6B,OAAQ,CAAA,WAAA,KAAgB,YAAY,KAAK,CAAA;EAAA,GACzE,CAAE,QAAQ,CAAK,IAAAxJ,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAAK,SAAS,KAAK,CAAA,CAAA,EAAnB,EAAsB,IAAA,EAAM,KAAM,EAAA,CAAA,CAAA;EAEnD,EAAA,MAAM,cAAiB,GAAAJ,WAAA,CAAM,iBAAmB,EAAA,UAAU,CAAE,CAAA,GAAA;EAAA,IAC1D,CAAC,KAAA,EAAe,KAAkB,KAAA,kBAAA,CAAmB,OAAO,KAAK,CAAA;EAAA,GACnE,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACsF,SAAA;EAAA,IAAA3E,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,UADN,CAAA,EAAA;EAAA,MAEC,GAAA;EAAA,MACA,OAAQ,EAAA,MAAA;EAAA,MACR,KAAQ,EAAA,SAAA;EAAA,MACR,aAAY,EAAA,oBAAA;EAAA,KAAA,CAAA;EAAA,IAEV,cAAe,CAAA,GAAA,CAAI,CAAC,OAAA,EAAS,CAAM,KAAA;EACnC,MAAM,MAAA,EAAA,GAAK,CAAG,EAAA,OAAA,CAAQ,IAAQ,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;EAC9B,MAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,OAAoB,EAAA,KAAA,EAAgB,KAAM,EAAK,EAAA,CAAA,CAAA;EAAA,KACpE,CAAA;EAAA,GACH,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC7CO,MAAM,WAAc,GAAAuF,gBAAA;EAAA,EAAW,CACpC,IACA,GACG,KAAA;EAFH,IAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,SAAA,EAAW,UAAY,EAAA,QAAA,EAAU,OANrC,EAAA,GAME,EAA+C,EAAA,IAAA,GAAAR,YAAA,CAA/C,EAA+C,EAAA,CAA7C,WAAW,EAAA,YAAA,EAAY,UAAU,EAAA,SAAA,CAAA,CAAA,CAAA;EAGnC,IAAA,MAAM,EAAE,WAAY,EAAA,GAAII,0BAAoB,YAAc,EAAA,EAAE,SAAS,CAAA,CAAA;EAErE,IACE,uBAAA,KAAA,CAAA,aAAA;EAAA,MAACD,SAAA;EAAA,MAAA3E,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,IADN,CAAA,EAAA;EAAA,QAEC,GAAA;EAAA,QACA,cAAe,EAAA,SAAA;EAAA,QACf,eAAgB,EAAA,UAAA;EAAA,QAChB,OAAQ,EAAA,MAAA;EAAA,QACR,UAAW,EAAA,QAAA;EAAA,QACX,CAAI,EAAA,EAAA;EAAA,QACJ,KAAQ,EAAA,WAAA;EAAA,OAAA,CAAA;EAAA,MAEN,QAAA;EAAA,KACJ,CAAA;EAAA,GAEJ;EACA,CAAA;;;;;;;;;;;;;;;;;;ACIO,QAAM,KAAQ,GAAA,CAAC,KAAsB,qBAAA,KAAA,CAAA,aAAA,CAACgK,mCAAiB,KAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;ECvB/D,MAAM,eAAe,CAAC;EAAA,EAC3B,KAAA;EAAA,QACAC,MAAA;EAAA,EACA,YAAA;EACF,CAAyB,KAAA;EACvB,EAAM,MAAA,GAAA,GAAM/K,aAA0B,IAAI,CAAA,CAAA;EAC1C,EAAA,MAAM,EAAE,SAAA,EAAW,WAAa,EAAA,UAAA,EAAY,eAAkB,GAAAgL,wBAAA;EAAA,IAC5D,QAAED,MAAK,EAAA;EAAA,IACP,KAAA;EAAA,IACA,GAAA;EAAA,GACF,CAAA;EACA,EAAA,MAAM,UAAUA,MAAK,CAAA,OAAA,CAAQE,WAAM,KAAM,CAAA,QAAQ,CAAC,CAAM,KAAA,CAAA,CAAA;EAExD,EAAA,MAAM,cAAiB,GAAA,CAACC,gBAAY,CAAA,YAAA,EAAcH,MAAI,CAAA,CAAA;EAEtD,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA7E,YAAA,CAAO,EAAP,EAAApF,iBAAA,CAAA,EAAA,EAAe,SACd,CAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,MAAA;EAAA,IAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,WADN,CAAA,EAAA;EAAA,MAEC,GAAA;EAAA,MACA,YAAa,EAAA,IAAA;EAAA,MACb,OAAU,EAAA,CAAA;EAAA,MACV,MAAS,EAAA,cAAA;EAAA,MACT,IAAK,EAAA,IAAA;EAAA,MACL,UAAW,EAAA,QAAA;EAAA,MACX,OAAA,EAAU,aAAa,OAAU,GAAA,OAAA;EAAA,MACjC,IAAO,EAAA,OAAA,IAAW,CAAC,UAAA,GAAa,KAAQ,GAAA,KAAA;EAAA,MACxC,SAAU,EAAA,UAAA;EAAA,KAAA,CAAA;EAAA,IAER,aAAA;EAAA,GAEN,CAAA,CAAA;EAEJ,CAAA;;ECpCO,MAAM,SAAY,GAAAqK,UAAA,CAAK,CAAC,EAAE,UAA+B,KAAA;EAC9D,EAAA,MAAM,EAAE,QAAA,EAAa,GAAAlF,0BAAA,CAAoB,UAAU,CAAA,CAAA;EACnD,EAAM,MAAA,eAAA,GAAkB,QAAS,CAAA,GAAA,CAAI,CAAC,GAAA,EAAK,CAAO,MAAA,EAAE,KAAO,EAAA,GAAA,EAAK,GAAK,EAAA,CAAA,EAAI,CAAA,CAAA,CAAA;EAEzE,EAAA,iEAEM,eAAgB,CAAA,GAAA,CAAI,CAAC,EAAE,KAAA,EAAO,KAC9B,qBAAA,KAAA,CAAA,aAAA,CAACC,aAAO,CAAA,EAAA,EAAP,EAAU,GAAM,EAAA,GAAA,EAAM,OAAQ,QAC3B,EAAA,EAAA,KACJ,CACD,CACH,CAAA,CAAA;EAEJ,CAAC,CAAA;;ECjBD,MAAM,mBAAA,GAAsB,CAAE,GAAK,EAAA,GAAA,EAAK,KAAK,GAAK,EAAA,GAAA,EAAK,KAAK,GAAI,CAAA,CAAA;EAChE,MAAM,mBAAA,GAAsB,CAAE,GAAK,EAAA,GAAA,EAAK,KAAK,GAAK,EAAA,GAAA,EAAK,KAAK,GAAI,CAAA,CAAA;EAEzD,MAAM,WAAc,GAAA,CAAC,cACzB,KAAA,cAAA,KAAmB,WAAW,mBAAsB,GAAA,mBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECOhD,MAAM,YAAe,GAAAiF,UAAA;EAAA,EAC1B,CAAC,EAAkE,KAAA;EAAlE,IAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,KAAA,EAAO,QAAQ,cAZpB,EAAA,GAYG,IAAoC,IAApC,GAAAtF,YAAA,CAAA,EAAA,EAAoC,CAAlC,OAAA,EAAO,QAAQ,EAAA,gBAAA,CAAA,CAAA,CAAA;EAChB,IAAM,MAAA,SAAA,GAAY,MAAM,YAAa,CAAA,KAAA,CAAA;EACrC,IAAA,MAAM,EAAE,SAAW,EAAA,WAAA,EAAgB,GAAAuF,wBAAA,CAAgB,MAAM,KAAK,CAAA,CAAA;EAC9D,IAAM,MAAA,YAAA,GAAeC,oBAAgB,CAAA,SAAA,EAAW,MAAM,CAAA,CAAA;EACtD,IAAM,MAAA,QAAA,GAAW,YAAY,cAAc,CAAA,CAAA;EAE3C,IAAA,2CACG,KAAM,EAAAvK,iBAAA,CAAA,EAAA,OAAA,EAAQ,UAAgB,EAAA,EAAA,SAAA,CAAA,sCAC5BwK,WAAW,EAAAxK,iBAAA,CAAA,EAAA,EAAA,WAAA,CAAA,kBACT,KAAA,CAAA,aAAA,CAAAyK,QAAA,EAAA,IAAA,sCACE,SAAU,EAAA,EAAA,QAAA,EAAsB,CACnC,CACF,CAAA,sCACCC,WACG,EAAA,IAAA,EAAAC,WAAA;EAAA,MACA,CAAC,SACC,qBAAA,KAAA,CAAA,aAAA,CAACF,QAAG,EAAA,EAAA,GAAA,EAAM,aACN,KACC,CAAA,cAAA,CAAe,SAAW,EAAA,SAAS,CACnC,CAAA,GAAA;EAAA,QAAI,CAAC,SACH,IACC,mBAAA,KAAA,CAAA,aAAA;EAAA,UAAC,YAAA;EAAA,UAAA;EAAA,YACC,KAAM,IAAK,CAAA,GAAA;EAAA,YACX,KAAA;EAAA,YACA,IAAA;EAAA,YACA,YAAe,EAAA,SAAA;EAAA,WAAA;EAAA,SAGjB,mBAAA,KAAA,CAAA,aAAA,CAACrF,YAAO,CAAA,EAAA,EAAP,IAAU,CAAA;EAAA,OAGnB,CAAA;EAAA,MAEF,YAAA;EAAA,KAEJ,CACF,CAAA,CAAA;EAAA,GAEJ;EACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC9Ca,MAAA,WAAA,GAAc,CAAC,EAA4C,KAAA;EAA5C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAL9B,QAAA,EAAA,GAK4B,EAAe,EAAA,IAAA,GAAAL,YAAA,CAAf,IAAe,CAAb,UAAA,CAAA,CAAA,CAAA;EAC5B,EAAM,MAAA,GAAA,GAAM7F,aAA0B,IAAI,CAAA,CAAA;EAC1C,EAAA,MAAM,EAAE,WAAA,EAAgB,GAAAsK,gBAAA,CAAU,MAAM,GAAG,CAAA,CAAA;EAE3C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,MAAA;EAAA,IAAAjJ,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,WADN,CAAA,EAAA;EAAA,MAEC,OAAU,EAAA,CAAA;EAAA,MACV,IAAK,EAAA,IAAA;EAAA,MACL,OAAQ,EAAA,OAAA;EAAA,MACR,GAAA;EAAA,KAAA,CAAA;EAAA,IAEE,QAAA;EAAA,GACJ,CAAA;EAEJ,CAAA;;ECpBO,MAAM,MAAS,GAAA;EAAA,EACpB,SAAA;EAAA,EACA,UAAA;EAAA,EACA,OAAA;EAAA,EACA,OAAA;EAAA,EACA,KAAA;EAAA,EACA,MAAA;EAAA,EACA,MAAA;EAAA,EACA,QAAA;EAAA,EACA,WAAA;EAAA,EACA,SAAA;EAAA,EACA,UAAA;EAAA,EACA,UAAA;EACF,CAAA;;ECRO,MAAM,WAAc,GAAA,CAAC,EAAE,KAAA,EAA8B,KAAA;EAC1D,EAAA,MAAM,EAAE,UAAA,EAAe,GAAAmF,yBAAA,CAAoB,UAAU,CAAA,CAAA;EACrD,EAAA,MAAM,aAAgB,GAAA,KAAA,CAAM,YAAa,CAAA,KAAA,CAAM,KAAQ,GAAA,CAAA,CAAA;EAEvD,EAAM,MAAA,QAAA,GAAW,CAAC,CAAsC,KAAA;EACtD,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAO,CAAE,CAAA,MAAA,CAAO,KAAK,CAAA,CAAA;EACnC,IAAA,MAAM,OAAO,KAAQ,GAAA,aAAA,CAAA;EACrB,IAAM,KAAA,CAAA,cAAA,CAAe,MAAM,YAAa,CAAA,KAAA,CAAM,IAAI,EAAE,MAAA,EAAQ,IAAK,EAAC,CAAC,CAAA,CAAA;EAAA,GACrE,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACtE,YAAA;EAAA,IAAA;EAAA,MACC,EAAG,EAAA,OAAA;EAAA,MACH,YAAW,EAAA,cAAA;EAAA,MACX,QAAA;EAAA,MACA,KAAQ,EAAA,aAAA;EAAA,MACR,QAAS,EAAA,KAAA;EAAA,MACT,IAAK,EAAA,IAAA;EAAA,MACL,OAAQ,EAAA,UAAA;EAAA,MACR,EAAK,EAAA,UAAA;EAAA,MACL,CAAE,EAAA,aAAA;EAAA,MACF,SAAU,EAAA,QAAA;EAAA,KAAA;EAAA,IAER,MAAO,CAAA,GAAA,CAAI,CAAC,KAAA,EAAO,CACnB,qBAAA,KAAA,CAAA,aAAA,CAAC,QAAO,EAAA,EAAA,KAAA,EAAQ,CAAI,EAAA,GAAA,EAAM,CAAS,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAC/B,KACJ,CACD,CAAA;EAAA,GACH,CAAA;EAEJ,CAAA;;EC/BO,MAAM,aAAa,CAAC;EAAA,EACzB,QAAA;EAAA,EACA,KAAA;EACF,CAAuB,KAAA;EACrB,EAAA,MAAM,EAAE,UAAA,EAAe,GAAAsE,yBAAA,CAAoB,UAAU,CAAA,CAAA;EAErD,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACtE,YAAA;EAAA,IAAA;EAAA,MACC,EAAG,EAAA,MAAA;EAAA,MACH,YAAW,EAAA,MAAA;EAAA,MACX,QAAA;EAAA,MACA,KAAQ,EAAA,EAAA;EAAA,MACR,IAAK,EAAA,IAAA;EAAA,MACL,QAAS,EAAA,KAAA;EAAA,MACT,OAAQ,EAAA,UAAA;EAAA,MACR,EAAK,EAAA,UAAA;EAAA,MACL,CAAE,EAAA,aAAA;EAAA,KAAA;EAAA,IAEA,KAAM,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,sBAChB,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAO,GAAM,EAAA,IAAA,CAAK,SAAY,EAAA,KAAA,EAAQ,CACnC,EAAA,EAAA,IAAA,CAAK,SACT,CACD,CAAA;EAAA,GACH,CAAA;EAGJ,CAAA;;EC3BO,MAAM,mBAAmB,CAAC;EAAA,EAC/B,KAAA;EACF,CAA6B,KAAA;EAC3B,EAAA,MAAM,QAAqB,EAAC,CAAA;EAC5B,EAAA,MAAM,YAAY+J,qBAAiB,CAAA,EAAE,MAAM,SAAW,EAAA,KAAA,EAAO,QAAQ,CAAA,CAAA;EAErE,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAA,EAAK,CAAI,GAAA,EAAA,EAAI,KAAK,CAAG,EAAA;EAChC,IAAA,MAAM,OAAO,KAAM,CAAA,WAAA,CAAY,IAAI,EAAE,KAAA,EAAO,GAAG,CAAA,CAAA;EAC/C,IAAA,KAAA,CAAM,IAAK,CAAA;EAAA,MACT,KAAO,EAAA,IAAA;EAAA,MACP,WAAW,SAAU,CAAA,MAAA,CAAO,KAAK,MAAO,CAAA,KAAA,CAAM,QAAQ,CAAC,CAAA;EAAA,KACxD,CAAA,CAAA;EAAA,GACH;EACA,EAAA,OAAO,EAAE,KAAM,EAAA,CAAA;EACjB,CAAA,CAAA;EAEO,MAAM,wBAAwB,CAAC;EAAA,EACpC,KAAA;EACF,CAAkC,KAAA;EAChC,EAAA,MAAM,QAAqB,EAAC,CAAA;EAE5B,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAA,EAAK,CAAI,GAAA,EAAA,EAAI,KAAK,CAAG,EAAA;EAChC,IAAM,MAAA,IAAA,GAAO,MAAM,YAAa,CAAA,KAAA,CAAM,IAAI,EAAE,KAAA,EAAO,GAAG,CAAA,CAAA;EACtD,IAAA,KAAA,CAAM,IAAK,CAAA;EAAA,MACT,KAAO,EAAA,IAAA;EAAA,MACP,SAAA,EAAW,GAAG,IAAK,CAAA,IAAA,CAAA,CAAA;EAAA,KACpB,CAAA,CAAA;EAAA,GACH;EACA,EAAA,OAAO,EAAE,KAAM,EAAA,CAAA;EACjB,CAAA;;EC3BO,MAAM,kBAAqB,GAAA,CAAC,EAAE,KAAA,EAAqC,KAAA;EACxE,EAAA,MAAM,EAAE,KAAM,EAAA,GAAI,gBAAiB,CAAA,EAAE,OAAO,CAAA,CAAA;EAC5C,EAAM,MAAA,QAAA,GAAW,CAAC,CAAsC,KAAA;EACtD,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAO,CAAE,CAAA,MAAA,CAAO,KAAK,CAAA,CAAA;EACnC,IAAM,MAAA,IAAA,GAAO,KAAM,CAAA,KAAK,CAAE,CAAA,KAAA,CAAA;EAC1B,IAAA,KAAA,CAAM,eAAe,IAAI,CAAA,CAAA;EAAA,GAC3B,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,QAAA,EAAsB,KAAgB,EAAA,CAAA,CAAA;EAEtD,CAAA;;ECXO,MAAM,0BAA0B,CAAC;EAAA,EACtC,KAAA;EACF,CAAoC,KAAA;EAClC,EAAA,MAAM,EAAE,KAAM,EAAA,GAAI,qBAAsB,CAAA,EAAE,OAAO,CAAA,CAAA;EACjD,EAAM,MAAA,QAAA,GAAW,CAAC,CAAsC,KAAA;EACtD,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAO,CAAE,CAAA,MAAA,CAAO,KAAK,CAAA,CAAA;EACnC,IAAM,MAAA,IAAA,GAAO,KAAM,CAAA,KAAK,CAAE,CAAA,KAAA,CAAA;EAC1B,IAAA,KAAA,CAAM,eAAe,IAAI,CAAA,CAAA;EAAA,GAC3B,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,QAAA,EAAsB,KAAgB,EAAA,CAAA,CAAA;EAEtD,CAAA;;EClBA,MAAM,oBAAuB,GAAA,KAAA,CAAA;EAE7B,MAAM,eAAA,GAAkB,CAAC,IAAqB,KAAA;EAC5C,EAAM,MAAA,YAAA,GAAe,IAAI,IAAA,CAAK,IAAI,CAAA,CAAA;EAClC,EAAa,YAAA,CAAA,OAAA,CAAQ,KAAK,OAAQ,EAAA,IAAK,KAAK,IAAK,CAAA,MAAA,MAAY,CAAG,CAAA,CAAA,CAAA,CAAA;EAChE,EAAO,OAAA,YAAA,CAAA;EACT,CAAA,CAAA;EAEA,MAAM,SAAA,GAAY,CAAC,IAA0B,KAAA;EAC3C,EAAA,MAAM,cAAiB,GAAA,IAAI,IAAK,CAAA,IAAA,EAAM,GAAG,CAAC,CAAA,CAAA;EAC1C,EAAA,OAAO,cAAe,CAAA,MAAA,EAAa,KAAA,CAAA,IAC3B,eAAe,MAAO,EAAA,KAAM,CAAK,IAAA,IAAI,KAAK,IAAM,EAAA,CAAA,EAAG,EAAE,CAAA,CAAE,UAAe,KAAA,CAAA,CAAA;EAChF,CAAA,CAAA;EAEa,MAAA,2BAAA,GAA8B,CACzC,IAAA,EACA,KACW,KAAA;EACX,EAAA,MAAM,kBAAkB,IAAI,IAAA,CAAK,IAAM,EAAA,KAAA,GAAQ,GAAG,CAAC,CAAA,CAAA;EACnD,EAAM,MAAA,mBAAA,GAAsB,gBAAgB,eAAe,CAAA,CAAA;EAC3D,EAAA,MAAM,cAAiB,GAAA,IAAI,IAAK,CAAA,IAAA,EAAM,GAAG,CAAC,CAAA,CAAA;EAC1C,EAAM,MAAA,mBAAA,GAAsB,gBAAgB,cAAc,CAAA,CAAA;EAC1D,EAAA,MAAM,cAAiB,GAAA,mBAAA,CAAoB,OAAQ,EAAA,GAAI,oBAAoB,OAAQ,EAAA,CAAA;EACnF,EAAA,MAAM,aAAa,IAAK,CAAA,IAAA,CAAA,CAAM,cAAiB,GAAA,oBAAA,GAAuB,KAAK,CAAC,CAAA,CAAA;EAE5E,EAAM,MAAA,gBAAA,GAAmB,mBAAoB,CAAA,WAAA,EAAgB,GAAA,IAAA,CAAA;EAC7D,EAAA,MAAM,sBAAsB,gBACzB,IAAA,mBAAA,CAAoB,WAAY,EAAA,GAAI,QAAQ,KAAU,KAAA,CAAA,CAAA;EAEzD,EAAA,IAAI,mBAAqB,EAAA;EACvB,IAAA,OAAO,SAAU,CAAA,IAAA,GAAO,CAAC,CAAA,GAAI,EAAK,GAAA,EAAA,CAAA;EAAA,GACpC;EAEA,EAAI,IAAA,gBAAA,IAAoB,QAAQ,CAAG,EAAA;EACjC,IAAA,OAAO,UAAa,GAAA,CAAA,CAAA;EAAA,GACtB;EAEA,EAAI,IAAA,KAAA,KAAU,CAAK,IAAA,UAAA,GAAa,EAAI,EAAA;EAClC,IAAA,OAAO,CAAC,SAAA,CAAU,IAAO,GAAA,CAAC,IAAI,CAAI,GAAA,UAAA,CAAA;EAAA,GACpC;EAEA,EAAO,OAAA,UAAA,CAAA;EACT,CAAA,CAAA;EAEO,MAAM,cAAiB,GAAA,CAC5B,QACA,EAAA,SAAA,EACA,MACA,KACW,KAAA;EACX,EAAM,MAAA,iBAAA,GAAoB,KAAU,KAAA,CAAA,IAAK,QAAW,GAAA,EAAA,CAAA;EAEpD,EAAA,IAAI,iBAAmB,EAAA;EACrB,IAAO,OAAA,SAAA,KAAc,IAAI,QAAW,GAAA,SAAA,CAAA;EAAA,GACtC;EAEA,EAAA,IAAI,cAAc,CAAG,EAAA;EACnB,IAAO,OAAA,QAAA,CAAA;EAAA,GACT;EAEA,EAAA,MAAM,WAAW,QAAW,GAAA,SAAA,CAAA;EAE5B,EAAA,IAAI,WAAW,EAAI,EAAA;EACjB,IAAA,OAAO,UAAU,IAAI,CAAA,IAAK,QAAa,KAAA,EAAA,GAAK,KAAK,QAAW,GAAA,EAAA,CAAA;EAAA,GAC9D;EAEA,EAAO,OAAA,QAAA,CAAA;EACT,CAAA;;;;;;;;;;;;;;;;;;;;;EC5DO,MAAM,YAAY,CAAC;EAAA,EACxB,KAAA;EAAA,QACAX,MAAA;EAAA,EACA,YAAA;EAAA,EACA,KAAA;EACF,CAAsB,KAAA;EACpB,EAAA,MAAM,cAAiB,GAAA,CAACG,gBAAY,CAAA,YAAA,EAAcH,MAAI,CAAA,CAAA;EACtD,EAAI,IAAA,cAAA;EAAgB,IAAO,uBAAA,KAAA,CAAA,aAAA,CAAC7E,YAAO,CAAA,EAAA,EAAP,IAAU,CAAA,CAAA;EAEtC,EAAM,MAAA,GAAA,GAAMlG,aAA0B,IAAI,CAAA,CAAA;EAC1C,EAAM,MAAA;EAAA,IACJ,SAAA;EAAA,IACA,WAAA;EAAA,IACA,UAAY,EAAA,cAAA;EAAA,IACZ,aAAA;EAAA,MACEgL,wBAAgB,CAAA,QAAED,MAAK,EAAA,EAAG,OAAO,GAAG,CAAA,CAAA;EAExC,EAAA,MAAM,UAAUA,MAAK,CAAA,OAAA,CAAQE,WAAM,KAAM,CAAA,QAAQ,CAAC,CAAM,KAAA,CAAA,CAAA;EAExD,EAAA,MAAM,gBAAgB,KAAS,IAAAF,MAAA,GAAO,KAAM,CAAA,GAAA,IAAOA,SAAO,KAAM,CAAA,KAAA,CAAA;EAEhE,EAAA,MAAM,UACJ,GAAA,KAAA,IACA,CAAC,aAAA,KACA9C,YAAO,CAAA8C,MAAA,EAAM,KAAM,CAAA,KAAK,CAAK,IAAA9C,YAAA,CAAO8C,MAAM,EAAA,KAAA,CAAM,GAAG,CAAA,CAAA,CAAA;EAEtD,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA7E,YAAA,CAAO,EAAP,EAAApF,iBAAA,CAAA,EAAA,EAAe,SACd,CAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAACoF,YAAO,CAAA,MAAA;EAAA,IAAP7E,sCACM,WADN,CAAA,EAAA;EAAA,MAEC,IAAK,EAAA,QAAA;EAAA,MACL,GAAA;EAAA,MACA,YAAa,EAAA,IAAA;EAAA,MACb,OACE,EAAA,aAAA,GAAgB,WAAc,GAAA,UAAA,GAAa,UAAa,GAAA,aAAA;EAAA,MAE1D,KAAA,EAAQ,aAAa,eAAkB,GAAA,cAAA;EAAA,MACvC,QAAS,EAAA,IAAA;EAAA,MACT,IAAO,EAAA,OAAA,IAAW,CAAC,UAAA,GAAa,KAAQ,GAAA,KAAA;EAAA,MACxC,SAAU,EAAA,UAAA;EAAA,MACV,EAAG,EAAA,MAAA;EAAA,MACH,EAAA,EAAK,UAAU,OAAU,GAAA,KAAA,CAAA;EAAA,MACzB,EAAG,EAAA,IAAA;EAAA,MACH,CAAE,EAAA,GAAA;EAAA,MACF,CAAE,EAAA,GAAA;EAAA,MACF,UAAW,EAAA,QAAA;EAAA,MACX,OAAU,EAAA,UAAA,IAAc,CAAC,cAAA,GAAiB,KAAQ,GAAA,GAAA;EAAA,MAClD,aAAgB,EAAA;EAAA,QACd,OAAS,EAAA,MAAA;EAAA,QACT,IAAM,EAAA,KAAA;EAAA,QACN,SAAW,EAAA,aAAA;EAAA,QACX,UAAY,EAAA,KAAA;EAAA,OACd;EAAA,MACA,MAAS,EAAA;EAAA,QACP,OAAA,EAAS,aAAa,UAAa,GAAA,WAAA;EAAA,QACnC,SAAW,EAAA;EAAA,UACT,OAAS,EAAA,aAAA;EAAA,SACX;EAAA,OACF;EAAA,MACA,SAAY,EAAA;EAAA,QACV,OAAS,EAAA,GAAA;EAAA,OACX;EAAA,KAAA,CAAA;EAAA,IAEE,aAAA;EAAA,GAEN,CAAA,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC9Ca,MAAA,sBAAA,GAAyB,CAAC,EAKJ,KAAA;EALI,EACrC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,KAAA;EAAA,IACA,KAAA;EAAA,IACA,cAAA;EAAA,GA/BF,GA4BuC,EAIlC,EAAA,IAAA,GAAAwE,YAAA,CAJkC,EAIlC,EAAA;EAAA,IAHH,OAAA;EAAA,IACA,OAAA;EAAA,IACA,gBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI8F,cAAU,EAAA,CAAA;EAC7B,EAAA,MAAM,EAAE,aAAA,EAAe,eAAiB,EAAA,eAAA,EAAoB,GAAAC,oBAAA;EAAA,IAC1D,EAAC;EAAA,IACD,KAAA;EAAA,GACF,CAAA;EACA,EAAM,MAAA,SAAA,GAAY,MAAM,YAAa,CAAA,KAAA,CAAA;EACrC,EAAA,MAAM,EAAE,SAAW,EAAA,WAAA,EAAgB,GAAAR,wBAAA,CAAgB,MAAM,KAAK,CAAA,CAAA;EAC9D,EAAM,MAAA,QAAA,GAAW,YAAY,cAAc,CAAA,CAAA;EAC3C,EAAM,MAAA,YAAA,GAAeC,oBAAgB,CAAA,SAAA,EAAW,MAAM,CAAA,CAAA;EACtD,EAAM,MAAA,eAAA,GAAkBQ,cAAQ,MAAM;EACpC,IAAA,MAAM,UAAa,GAAA,2BAAA,CAA4B,SAAU,CAAA,IAAA,EAAM,UAAU,KAAK,CAAA,CAAA;EAC9E,IAAO,OAAA,UAAA,CAAA;EAAA,KACN,CAAE,SAAA,CAAU,IAAM,EAAA,SAAA,CAAU,KAAM,CAAC,CAAA,CAAA;EAEtC,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC7F,iDAAS,aAAT,CAAA,EAAA,EAAyB,GAAE,OAAQ,EAAA,CAAA,EAAE,wBACnC,KAAA,CAAA,aAAA,CAAAqC,WAAA,EAAA,IAAA,sCACEG,UAAK,EAAA,EAAA,OAAA,EAAQ,iBAAgB,CAAE,EAAA,MAAA,EAAO,GAAE,GAAI,EAAA,UAAA,EAAW,4BACrD,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA1H,iBAAA,CAAA,EAAA,EAAiB,kCACf,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,IAAKgL,sBAAmB,EAAA,OAAA,EAAU,GAAI,CAC9C,CAAA,sCACCzE,YAAO,EAAA,EAAA,OAAA,EAAQ,uBACb,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,EAAY,OAAgB,CAC7B,kBAAA,KAAA,CAAA,aAAA,CAAC,2BAAwB,KAAgB,EAAA,CAC3C,mBACC,KAAA,CAAA,aAAA,CAAA,WAAA,EAAAvG,iBAAA,CAAA,EAAA,EAAiB,kCACf,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,IAAKiL,uBAAoB,EAAA,OAAA,EAAU,GAAI,CAC/C,CACF,mBACC,KAAA,CAAA,aAAA,CAAA7F,YAAA,CAAO,OAAP7E,eAAkB,CAAAP,iBAAA,CAAA,EAAA,EAAA,SAAA,CAAA,EAAlB,EAA8B,EAAK,EAAA,EAAE,eAAe,GAAI,EAAA,EAAA,CAAA,sCACtDoF,YAAO,CAAA,KAAA,EAAPpF,sBAAkB,WACjB,CAAA,kBAAA,KAAA,CAAA,aAAA,CAACoF,aAAO,EAAP,EAAA,IAAA,sCACEA,YAAO,CAAA,EAAA,EAAP,IAAU,CACX,kBAAA,KAAA,CAAA,aAAA,CAAC,aAAU,QAAsB,EAAA,CACnC,CACF,CACA,kBAAA,KAAA,CAAA,aAAA,CAACA,aAAO,KAAP,EAAA,IAAA,EACGuF,WAAM,CAAA,CAAC,SAAc,KAAA;EACrB,IAAA,MAAM,UAAa,GAAA,cAAA;EAAA,MAAe,eAAA;EAAA,MAChC,SAAA;EAAA,MACA,SAAU,CAAA,IAAA;EAAA,MACV,SAAU,CAAA,KAAA;EAAA,KAAK,CAAA;EACjB,IACE,uBAAA,KAAA,CAAA,aAAA,CAACvF,YAAO,CAAA,EAAA,EAAP,EAAU,GAAA,EAAM,SACf,EAAA,kBAAA,KAAA,CAAA,aAAA,CAACA,YAAO,CAAA,EAAA,EAAP,IACC,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,EAAA,EAAK,EAAE,KAAA,EAAO,cAAe,EAAA,EAAI,EAAG,EAAA,GAAA,EAAA,EAAI,IAE3C,EAAA,UACJ,CACF,CAAA,EACE,KACC,CAAA,cAAA,CAAe,SAAW,EAAA,SAAS,CACnC,CAAA,GAAA;EAAA,MAAI,CAAC,SACH,IACC,mBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,SAAA;EAAA,QAAA;EAAA,UACC,KAAM,IAAK,CAAA,GAAA;EAAA,UACX,KAAA;EAAA,UACA,KAAA;EAAA,UACA,IAAA;EAAA,UACA,YAAe,EAAA,SAAA;EAAA,SAAA;EAAA,OAGjB,mBAAA,KAAA,CAAA,aAAA,CAACA,YAAO,CAAA,EAAA,EAAP,IAAU,CAAA;EAAA,KAGnB,CAAA,CAAA;EAAA,GAED,EAAA,YAAY,CACjB,CACF,CACF,CACF,CAAA,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;EC5Fa,MAAA,QAAA,GAAW,CAAC,KAAyB,KAAA;EAChD,EAAM,MAAA,EAAE,gBAAmB,GAAA,KAAA,CAAA;EAC3B,EAAM,MAAA,EAAE,MAAO,EAAA,GAAIyF,cAAU,EAAA,CAAA;EAC7B,EAAA,MAAM,EAAE,SAAA,EAAc,GAAA1F,yBAAA,CAAoB,UAAU,CAAA,CAAA;EAEpD,EAAM,MAAA,KAAA,GAAQ+F,2BAAiB,CAAA3K,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAC1B,KAD0B,CAAA,EAAA;EAAA,IAE7B,MAAA;EAAA,IACA,cAAA,EAAgB,MAAM,IAAImL,sBAAkB,EAAA;EAAA,GAC7C,CAAA,CAAA,CAAA;EAED,EAAA,MAAM,EAAE,aAAA,EAAe,eAAiB,EAAA,eAAA,EAAoB,GAAAL,oBAAA;EAAA,IAC1D,KAAA;EAAA,IACA,KAAA;EAAA,GACF,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC5F,iDAAS,aAAT,CAAA,EAAA,EAAyB,OAAQ,SAChC,EAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAACqC,WACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAACG,UAAK,EAAA,EAAA,cAAA,EAAe,mCAClB,KAAA,CAAA,aAAA,CAAAxC,SAAA,EAAA,EAAI,oBAAmB,GACtB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,sBAAmB,KAAgB,EAAA,CACtC,CACA,kBAAA,KAAA,CAAA,aAAA,CAACqB,YAAO,EAAA,EAAA,OAAA,EAAU,qBACf,KAAA,CAAA,aAAA,CAAA,WAAA,EAAAvG,iBAAA,CAAA,EAAA,EAAiB,kCACf,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,IAAKgL,sBAAmB,EAAA,OAAA,EAAU,CAAI,EAAA,CAC9C,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,mCAAiB,eAChB,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,EAAK,EAAAC,uBAAA,EAAoB,SAAU,CAAI,EAAA,CAC/C,CACF,CACF,CACA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,YAAA;EAAA,IAAA;EAAA,MACC,KAAA;EAAA,MACA,MAAA;EAAA,MACA,cAAA;EAAA,KAAA;EAAA,GAEJ,CACF,CAAA,CAAA;EAEJ,CAAA;;AC9CO,QAAM,0BAA0B,CAAC;EAAA,EACtC,cAAA;EAAA,EACA,QAAA;EACF,CAAoC,KAAA;EAClC,EAAM,MAAA,MAAA,GAAS,cAAmB,KAAA,QAAA,GAAW,OAAU,GAAA,OAAA,CAAA;EACvD,EAAO,uBAAA,KAAA,CAAA,aAAA,CAACG,iBAAa,EAAA,EAAA,MAAA,EAAA,EAAoB,QAAU,CAAA,CAAA;EACrD;;;;;;;;;;;;;;;;;;;;;ACgDa,QAAA,UAAA,GAAa,CAAC,KAA2B,KAAA;EACpD,EAAM,MAAA;EAAA,IACJ,UAAA;EAAA,IACA,WAAc,GAAA,IAAA;EAAA,IACd,SAAA;EAAA,IACA,SAAY,GAAA,KAAA;EAAA,IACZ,UAAA;EAAA,IACA,QAAA;EAAA,IACA,OAAU,GAAA,SAAA;EAAA,IACV,cAAiB,GAAA,QAAA;EAAA,GACf,GAAA,KAAA,CAAA;EACJ,EAAA,MAAM,MAAMlM,YAAO,EAAA,CAAA;EACnB,EAAA,MAAM,EAAE,KAAA,EAAU,GAAAiG,yBAAA,CAAoB,YAAY,CAAA,CAAA;EAElD,EAAM,MAAA,KAAA,GAAQkG,+BAAmB,CAAA9K,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAC5B,KAD4B,CAAA,EAAA;EAAA,IAE/B,mBAAqB,EAAA,KAAA;EAAA,IACrB,YAAc,EAAA,IAAA;EAAA,GACf,CAAA,CAAA,CAAA;EAED,EAAA,MAAM,EAAE,WAAa,EAAA,UAAA,EAAY,aAAe,EAAA,UAAA,EAAY,aAC1D,GAAAsL,wBAAA;EAAA,IACE/K,sCAAK,KAAL,CAAA,EAAA,EAAY,UAAU,QAAY,IAAAgL,cAAA,CAAU,YAAY,CAAE,EAAA,CAAA;EAAA,IAC1D,KAAA;EAAA,IACA,GAAA;EAAA,GACF,CAAA;EAEF,EAAA,MAAM,cAAc,MAAM,KAAA,CAAM,OAAQ,CAAA,CAAC,MAAM,MAAM,CAAA,CAAA;EAErD,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,OAAA;EAAA,IAAA;EAAA,MACC,QAAS,KAAM,CAAA,MAAA;EAAA,MACf,OAAU,EAAA,MAAM,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA;EAAA,MACnC,SAAU,EAAA,YAAA;EAAA,KAAA;EAAA,oBAET,KAAA,CAAA,aAAA,CAAAC,mBAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAAjF,YAAA,EAAA,EAAO,IAAO,EAAA,EAAA,EAAA,kBACZ,KAAA,CAAA,aAAA,CAAAkF,gBAAA,EAAAlL,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAAgB,UAAhB,CAAA,EAAA,EAA6B,GAAY,EAAA,KAAA,EAAQ,KAChD,EAAA,CAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,WAAA;EAAA,MAAA;EAAA,QACC,UAAA;EAAA,QACA,SAAA;EAAA,QACA,OAAA;EAAA,OAAA;EAAA,sBAEA,KAAA,CAAA,aAAA,CAACkF,SAAI,EAAA,EAAA,kBAAA,EAAmB,IAAK,EAAA,gBAAA,EAAmB,EAC9C,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,SAAe,EAAA3E,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAAA,UAAA,CAAA,EAAf,EAA4B,UAAA,EAAA,CAA0B,CACzD,CAAA;EAAA,KAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC0L,uBAAA;EAAA,MAAA;EAAA,QACC,EAAK,EAAA,EAAE,MAAQ,EAAA,MAAA,EAAQ,cAAc,GAAI,EAAA;EAAA,QACzC,MAAS,EAAA,CAAA;EAAA,OAAA;EAAA,sBAET,KAAA,CAAA,aAAA;EAAA,QAAC,OAAA;EAAA,QAAAnL,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,WADN,CAAA,EAAA;EAAA,UAEC,UAAA;EAAA,UACA,WAAc,EAAA,WAAA;EAAA,SAAA,CAAA;EAAA,OAChB;EAAA,KAEJ,CACA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAA;EAAA,QACC,YAAW,EAAA,YAAA;EAAA,QACX,OAAQ,EAAA,QAAA;EAAA,QACR,IAAK,EAAA,IAAA;EAAA,QACL,QAAS,EAAA,IAAA;EAAA,QACT,OAAU,EAAA,SAAA;EAAA,QACV,MAAS,EAAA,CAAC,KAAM,CAAA,SAAA,IAAa,CAAC,WAAA;EAAA,QAC9B,UAAA;EAAA,QACA,IAAO,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAK2L,iBAAc,EAAA,CAAA;EAAA,OAAA;EAAA,KAEpC,CACF,CAAA;EAAA,IACE,KAAA,CAAM,MACN,oBAAA,KAAA,CAAA,aAAA,CAACpD,oBAAoB,EAAAhI,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAAA,WAAA,CAAA,EAApB,EAAkC,GAAA,EAAY,CAAI,EAAA,EAAA,EAAK,MAAO,EAAA,MAAA,EAAA,CAAA,kBAC5D,KAAA,CAAA,aAAA,CAAA0I,gBAAA,EAAA,EAAW,OAAU,EAAA,IAAA,EAAO,YAAe,EAAA,IAAA,EAAA,kBACzC,KAAA,CAAA,aAAA,CAAA,uBAAA,EAAA,EAAwB,cACvB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAc,EAAAnI,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAAA,aAAA,CAAA,EAAd,EAA8B,cAAA,EAAA,CAAkC,CACnE,CACF,CACF,CAAA;EAAA,GAEJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3Ga,QAAA,SAAA,GAAY,CAAC,EAAiD,KAAA;EAAjD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,QAAM,SArClC,EAAA,GAqC0B,IAAsB,IAAtB,GAAA+E,YAAA,CAAA,EAAA,EAAsB,CAApB,MAAM,EAAA,WAAA,CAAA,CAAA,CAAA;EAChC,EAAM,MAAA6G,WAAA,GAAYC,uBAAa,IAAI,CAAA,CAAA;EAEnC,EAAA,uBAEM,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAA,CAAC1M,WAAM,CAAA,IAAI,CACX,oBAAA,KAAA,CAAA,aAAA;EAAA,IAAC2M,UAAA;EAAA,IAAA9L,iBAAA,CAAAA,iBAAA,CAAA;EAAA,MACC,EAAK,EAAA+L,mBAAA;EAAA,MACL,aAAgB,EAAA,IAAA;EAAA,MAChB,EAAK,EAAA,IAAA;EAAA,MACL,MAAA,EAAS,EAAE,cAAA,EAAgB,MAAO,EAAA;EAAA,KAAA,EAC7B,SACA,CAAA,EAAAH,WAAA,CAAA;EAAA,GACP,EAEAzM,WAAM,CAAA,IAAI,CAAK,oBAAA,KAAA,CAAA,aAAA,CAACiG,YAAO,CAAA,MAAA,EAAPpF,iBAAc,CAAA,EAAA,aAAA,EAAgB,IAAY,EAAA,EAAA4L,WAAA,CAAY,CAC1E,CAAA,CAAA;EAEJ;;ECjDO,MAAM,aAAa,CAAC;EAAA,EACzB,QAAA;EAAA,EACA,OAAA;EAAA,EACA,QAAA;EACF,CAAA,yCACGlE,UAAK,EAAA,EAAA,IAAA,EAAK,OACT,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,aAAU,OACT,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,EAAC,KAAA;EAAA,EAAA;EAAA,IACC,MAAS,EAAA;EAAA,MACP,UAAY,EAAA,UAAA;EAAA,KACd;EAAA,IACA,EAAK,EAAA;EAAA,MACH,KAAA,EAAO,WAAW,yBAA4B,GAAA,cAAA;EAAA,MAC9C,MAAQ,EAAA,SAAA;EAAA,MACR,UAAA,EAAY,WAAW,UAAa,GAAA,SAAA;EAAA,KACtC;EAAA,IACA,OAAU,EAAA;EAAA,MACR,UAAY,EAAA,UAAA;EAAA,KACd;EAAA,IACA,CAAE,EAAA,GAAA;EAAA,GAAA;EAAA,EAEA,QAAA;EACJ,CACF,CACF,CAAA;;EC5BW,MAAA,UAAA,GAAa,CAAC,IAAsB,EAAA,KAAA,KAC/C,CAAC,IACE,IAAA,CAAA,CAAC,KAAM,CAAA,QAAA,IAAY,IAAK,CAAA,KAAA,IAAS,MAAM,QACvC,MAAA,CAAC,MAAM,QAAY,IAAA,IAAA,CAAK,OAAO,KAAM,CAAA,QAAA,CAAA,IACtC,IAAK,CAAA,GAAA,IAAO,IAAK,CAAA,KAAA;;ECMd,MAAM,qBAAwB,GAAA,CACnC,KACA,EAAA,MAAA,EACA,kBACA,cACG,KAAA;EACH,EAAM,MAAA,OAAA,GAAUyC,UAAM,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;EAEpC,EAAA,MAAM,uBAAuB,CAC3B,IAAA,EACA,EAAE,MAAA,EAAQ,MACP,KAAA;EACH,IAAM,MAAA,KAAA,GAAQ,IAAK,CAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,CAAA,CAAE,GAAI,CAAA,EAAE,GAAK,EAAA,IAAA,EAAM,CAAA,CAAA;EACpD,IAAO,OAAA,KAAA,CAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,qBAAqB,CACzB,IAAA,EACA,EAAE,MAAA,EAAQ,MACP,KAAA;EACH,IAAA,MAAM,MAAM,IAAK,CAAA,GAAA,CAAI,EAAE,MAAA,EAAQ,CAAE,CAAA,GAAA,CAAI,EAAE,GAAA,EAAK,MAAM,CAAA,CAAE,SAAS,EAAE,IAAA,EAAM,GAAG,CAAA,CAAA;EACxE,IAAO,OAAA,GAAA,CAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,QAAW,GAAA;EAAA,IACf,KAAO,EAAA;EAAA,MACL,KAAA,EAAO6B,gBAAY,CAAA,OAAA,EAAS,MAAM,CAAA;EAAA,MAClC,GAAA,EAAKC,cAAU,CAAA,OAAA,EAAS,MAAM,CAAA;EAAA,KAChC;EAAA,IACA,KAAO,EAAA,WAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,QAAW,GAAA;EAAA,IACf,KAAO,EAAA;EAAA,MACL,KAAA,EAAOD,iBAAY,OAAQ,CAAA,GAAA,CAAI,EAAE,KAAO,EAAA,CAAA,EAAG,CAAA,EAAG,MAAM,CAAA;EAAA,MACpD,GAAA,EAAKC,eAAU,OAAQ,CAAA,GAAA,CAAI,EAAE,KAAO,EAAA,CAAA,EAAG,CAAA,EAAG,MAAM,CAAA;EAAA,KAClD;EAAA,IACA,KAAO,EAAA,WAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,QAAW,GAAA;EAAA,IACf,KAAO,EAAA;EAAA,MACL,KAAA,EAAOD,iBAAY,OAAQ,CAAA,QAAA,CAAS,EAAE,KAAO,EAAA,CAAA,EAAG,CAAA,EAAG,MAAM,CAAA;EAAA,MACzD,GAAA,EAAKC,eAAU,OAAQ,CAAA,QAAA,CAAS,EAAE,KAAO,EAAA,CAAA,EAAG,CAAA,EAAG,MAAM,CAAA;EAAA,KACvD;EAAA,IACA,KAAO,EAAA,WAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,SAAY,GAAA;EAAA,IAChB,KAAO,EAAA;EAAA,MACL,KAAA,EAAOC,kBAAa,OAAO,CAAA;EAAA,MAC3B,GAAA,EAAKC,gBAAW,OAAO,CAAA;EAAA,KACzB;EAAA,IACA,KAAO,EAAA,YAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,SAAY,GAAA;EAAA,IAChB,KAAO,EAAA;EAAA,MACL,KAAA,EAAOD,kBAAa,OAAQ,CAAA,QAAA,CAAS,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,MACnD,GAAA,EAAKC,gBAAW,OAAQ,CAAA,QAAA,CAAS,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,KACjD;EAAA,IACA,KAAO,EAAA,YAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,QAAW,GAAA;EAAA,IACf,KAAO,EAAA;EAAA,MACL,KAAA,EAAOC,iBAAY,OAAO,CAAA;EAAA,MAC1B,GAAA,EAAKC,eAAU,OAAO,CAAA;EAAA,KACxB;EAAA,IACA,KAAO,EAAA,WAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,QAAW,GAAA;EAAA,IACf,KAAO,EAAA;EAAA,MACL,KAAA,EAAOD,iBAAY,OAAQ,CAAA,QAAA,CAAS,EAAE,KAAO,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,MACjD,GAAA,EAAKC,eAAU,OAAQ,CAAA,QAAA,CAAS,EAAE,KAAO,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,KAC/C;EAAA,IACA,KAAO,EAAA,WAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,SAAY,GAAA;EAAA,IAChB,KAAO,EAAA;EAAA,MACL,KAAA,EAAOH,kBAAa,OAAQ,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,MAC9C,GAAA,EAAKC,gBAAW,OAAQ,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,KAC5C;EAAA,IACA,KAAO,EAAA,YAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,eAAkB,GAAA;EAAA,IACtB,KAAO,EAAA;EAAA,MACL,KAAA,EAAOD,kBAAa,OAAQ,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,MAC9C,GAAA,EAAKC,gBAAW,OAAQ,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,KAC5C;EAAA,IACA,KAAO,EAAA,eAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,aAAgB,GAAA;EAAA,IACpB,KAAO,EAAA;EAAA,MACL,KAAA,EAAOD,kBAAa,OAAQ,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,MAC9C,GAAA,EAAKC,gBAAW,OAAQ,CAAA,GAAA,CAAI,EAAE,MAAQ,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,KAC5C;EAAA,IACA,KAAO,EAAA,eAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,QAAW,GAAA;EAAA,IACf,KAAO,EAAA;EAAA,MACL,KAAA,EAAOC,iBAAY,OAAQ,CAAA,GAAA,CAAI,EAAE,KAAO,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,MAC5C,GAAA,EAAKC,eAAU,OAAQ,CAAA,GAAA,CAAI,EAAE,KAAO,EAAA,CAAA,EAAG,CAAC,CAAA;EAAA,KAC1C;EAAA,IACA,KAAO,EAAA,WAAA;EAAA,GACT,CAAA;EAGA,EAAA,MAAM,gBACJ,GAAA,OAAA,CAAQ,KAAQ,GAAA,gBAAA,GAAmB,CAClC,IAAA,OAAA,CAAQ,KAAU,KAAA,gBAAA,GAAmB,CAAK,IAAA,OAAA,CAAQ,GAAM,GAAA,cAAA,GACrD,CACA,GAAA,CAAA,CAAA;EAEN,EAAA,MAAM,cAAiB,GAAA;EAAA,IACrB,KAAO,EAAA;EAAA,MACL,KAAO,EAAA,oBAAA;EAAA,QACLD,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD,EAAE,MAAA,EAAQ,gBAAkB,EAAA,IAAA,EAAM,cAAe,EAAA;EAAA,OACnD;EAAA,MACA,GAAK,EAAA,kBAAA;EAAA,QACHA,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD,EAAE,MAAA,EAAQ,gBAAmB,GAAA,EAAA,EAAI,MAAM,cAAe,EAAA;EAAA,OACxD;EAAA,KACF;EAAA,IACA,KAAO,EAAA,kBAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,cAAiB,GAAA;EAAA,IACrB,KAAO,EAAA;EAAA,MACL,KAAO,EAAA,oBAAA;EAAA,QACLA,gBAAA,CAAY,OAAO,CAAE,CAAA,QAAA,CAAS,EAAE,KAAO,EAAA,gBAAA,GAAmB,GAAG,CAAA;EAAA,QAC7D;EAAA,UACE,MAAQ,EAAA,gBAAA;EAAA,UACR,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,MACA,GAAK,EAAA,kBAAA;EAAA,QACHA,gBAAA,CAAY,OAAO,CAAE,CAAA,QAAA,CAAS,EAAE,KAAO,EAAA,gBAAA,GAAmB,GAAG,CAAA;EAAA,QAC7D;EAAA,UACE,QAAQ,gBAAmB,GAAA,EAAA;EAAA,UAC3B,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,KACF;EAAA,IACA,KAAO,EAAA,kBAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,UAAa,GAAA;EAAA,IACjB,KAAO,EAAA;EAAA,MACL,KAAO,EAAA,oBAAA,CAAqBA,gBAAY,CAAA,OAAO,CAAG,EAAA;EAAA,QAChD,MAAQ,EAAA,gBAAA;EAAA,QACR,IAAM,EAAA,cAAA;EAAA,OACP,CAAA;EAAA,MACD,GAAK,EAAA,OAAA;EAAA,KACP;EAAA,IACA,KAAO,EAAA,cAAA;EAAA,GACT,CAAA;EAEA,EAAA,MAAM,EAAK,GAAA;EAAA,IACT,KAAO,EAAA;EAAA,MACL,KAAO,EAAA,oBAAA;EAAA,QACLA,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD;EAAA,UACE,MAAQ,EAAA,gBAAA;EAAA,UACR,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,MACA,GAAK,EAAA,kBAAA;EAAA,QACHA,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD;EAAA,UACE,QAAQ,gBAAmB,GAAA,CAAA;EAAA,UAC3B,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,KACF;EAAA,IACA,KAAA,EAAO,gBAAqB,KAAA,CAAA,GAAI,IAAO,GAAA,KAAA;EAAA,GACzC,CAAA;EAEA,EAAA,MAAM,EAAK,GAAA;EAAA,IACT,KAAO,EAAA;EAAA,MACL,KAAO,EAAA,oBAAA;EAAA,QACLA,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD;EAAA,UACE,QAAQ,gBAAmB,GAAA,CAAA;EAAA,UAC3B,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,MACA,GAAK,EAAA,kBAAA;EAAA,QACHA,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD;EAAA,UACE,QAAQ,gBAAmB,GAAA,CAAA;EAAA,UAC3B,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,KACF;EAAA,IACA,KAAA,EAAO,gBAAqB,KAAA,CAAA,GAAI,IAAO,GAAA,KAAA;EAAA,GACzC,CAAA;EAEA,EAAA,MAAM,EAAK,GAAA;EAAA,IACT,KAAO,EAAA;EAAA,MACL,KAAO,EAAA,oBAAA;EAAA,QACLA,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD;EAAA,UACE,QAAQ,gBAAmB,GAAA,CAAA;EAAA,UAC3B,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,MACA,GAAK,EAAA,kBAAA;EAAA,QACHA,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD;EAAA,UACE,QAAQ,gBAAmB,GAAA,CAAA;EAAA,UAC3B,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,KACF;EAAA,IACA,KAAA,EAAO,gBAAqB,KAAA,CAAA,GAAI,IAAO,GAAA,KAAA;EAAA,GACzC,CAAA;EAEA,EAAA,MAAM,EAAK,GAAA;EAAA,IACT,KAAO,EAAA;EAAA,MACL,KAAO,EAAA,oBAAA;EAAA,QACLA,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD;EAAA,UACE,QAAQ,gBAAmB,GAAA,CAAA;EAAA,UAC3B,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,MACA,GAAK,EAAA,kBAAA;EAAA,QACHA,iBAAY,OAAO,CAAA,CAAE,SAAS,EAAE,KAAA,EAAO,kBAAkB,CAAA;EAAA,QACzD;EAAA,UACE,QAAQ,gBAAmB,GAAA,EAAA;EAAA,UAC3B,IAAM,EAAA,cAAA;EAAA,SACR;EAAA,OACF;EAAA,KACF;EAAA,IACA,KAAA,EAAO,gBAAqB,KAAA,CAAA,GAAI,IAAO,GAAA,KAAA;EAAA,GACzC,CAAA;EAEA,EAAA,MAAM,cAAiB,GAAA,CAAE,EAAI,EAAA,EAAA,EAAI,IAAI,EAAG,CAAA,CAAA;EACxC,EAAA,MAAM,cACJ,gBAAqB,KAAA,CAAA,GAAI,EAAK,GAAA,CAAE,gBAAgB,cAAe,CAAA,CAAA;EAEjE,EAAA,MAAM,UAAa,GAAA;EAAA,IACjB,QAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAA;EAAA,IACA,eAAA;EAAA,IACA,aAAA;EAAA,IACA,SAAA;EAAA,IACA,SAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA;EAAA,IACA,GAAG,WAAA;EAAA,GACL,CAAA;EAEA,EAAO,OAAA,EAAE,YAAY,cAAe,EAAA,CAAA;EACtC,CAAA;;EC1QA,MAAM,SAAY,GAAA,CAAA,UAAA,EAAa1M,cAAQ,CAAA,IAAA,CAAK,KAAK,CAAA,CAAA,CAAA,CAAA;EAE1C,MAAM,cAAc,CAAC;EAAA,EAC1B,KAAA;EAAA,EACA,gBAAmB,GAAA,CAAA;EAAA,EACnB,cAAiB,GAAA,CAAA;EAAA,EACjB,MAAS,GAAA,EAAA;EAAA,EACT,MAAS,GAAA,SAAA;EACX,CAAwB,KAAA;EACtB,EAAM,MAAA,EAAE,UAAY,EAAA,cAAA,EAAmB,GAAAqL,aAAA;EAAA,IACrC,MAAM,qBAAA,CAAsB,KAAO,EAAA,MAAA,EAAQ,kBAAkB,cAAc,CAAA;EAAA,IAC3E,EAAC;EAAA,GACH,CAAA;EAEA,EAAM,MAAA,UAAA,GAAa,CAAC,OAAA,KAA4B,MAAM;EACpD,IAAA,IAAI,OAAS,EAAA;EACX,MAAA,KAAA,CAAM,SAAS,OAAO,CAAA,CAAA;EACtB,MAAA,KAAA,CAAM,oBAAoB,OAAO,CAAA,CAAA;EAAA,KACnC;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,cAAc,CAAC,OAAA,KAAkB5D,aAAO,KAAM,CAAA,KAAA,EAAO,QAAQ,KAAK,CAAA,CAAA;EAExE,EAAM,MAAA,UAAA,GAAa,CAAC,KAAA,KAClBlC,SAAI,CAAA,CAAC,IAAS,KAAA,UAAA,CAAW,IAAK,CAAA,KAAA,EAAO,KAAK,CAAA,EAAG,KAAK,CAAA,CAAA;EAEpD,EAAA,2CACGsC,WAAM,EAAA,EAAA,UAAA,EAAW,SAAQ,WAAc,EAAA,SAAA,EAAY,IAAG,GACrD,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAACA,WAAA;EAAA,IAAA;EAAA,MACC,CAAI,EAAA,MAAA;EAAA,MACJ,SAAU,EAAA,QAAA;EAAA,MACV,EAAG,EAAA,GAAA;EAAA,MACH,MAAA,EAAS,EAAE,SAAA,EAAW,QAAS,EAAA;EAAA,MAC/B,CAAE,EAAA,IAAA;EAAA,MACF,OAAU,EAAA,UAAA,CAAW,UAAU,CAAA,GAAI,SAAY,GAAA,MAAA;EAAA,KAAA;EAAA,IAE7ClI,SAAA;EAAA,MACA,CAAC,SAAA,KACC,UAAW,CAAA,SAAA,CAAU,OAAO,KAAK,CAAA,oBAC9B,KAAA,CAAA,aAAA,CAAA6F,SAAA,EAAA,EAAI,IAAK,EAAA,MAAA,EAAO,GAAM,EAAA,CAAA,aAAA,EAAgB,UAAU,KAC/C,CAAA,CAAA,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,UAAA;EAAA,QAAA;EAAA,UACC,OAAA,EAAU,UAAW,CAAA,SAAA,CAAU,KAAK,CAAA;EAAA,UACpC,QAAA,EAAW,YAAY,SAAS,CAAA;EAAA,SAAA;EAAA,QAE9B,SAAU,CAAA,KAAA;EAAA,OAEhB,CAAA;EAAA,MAEJ,UAAA;EAAA,KACF;EAAA,GAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,IAACA,SAAA;EAAA,IAAA;EAAA,MACC,CAAE,EAAA,KAAA;EAAA,MACF,SAAY,EAAA,SAAA;EAAA,MACZ,OAAU,EAAA,UAAA,CAAW,cAAc,CAAA,GAAI,SAAY,GAAA,MAAA;EAAA,KAAA;EAAA,GACrD,kBACC,KAAA,CAAA,aAAA,CAAAoH,YAAA,EAAA,IAAO,CACR,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC5E,UAAA;EAAA,IAAA;EAAA,MACC,cAAe,EAAA,eAAA;EAAA,MACf,CAAE,EAAA,MAAA;EAAA,MACF,EAAG,EAAA,GAAA;EAAA,MACH,EAAG,EAAA,GAAA;EAAA,MACH,OAAU,EAAA,UAAA,CAAW,cAAc,CAAA,GAAI,MAAS,GAAA,MAAA;EAAA,KAAA;EAAA,IAE9CrI,SAAA;EAAA,MACA,CAAC,OACC,KAAA,UAAA,CAAW,OAAQ,CAAA,KAAA,EAAO,KAAK,CAC7B,oBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,UAAA;EAAA,QAAA;EAAA,UACC,OAAA,EAAU,UAAW,CAAA,OAAA,CAAQ,KAAK,CAAA;EAAA,UAClC,QAAA,EAAW,YAAY,OAAO,CAAA;EAAA,UAC9B,GAAA,EAAM,gBAAgB,OAAQ,CAAA,KAAA,CAAA,CAAA;EAAA,SAAA;EAAA,QAE5B,OAAQ,CAAA,KAAA;EAAA,OACZ;EAAA,MAEJ,cAAA;EAAA,KACF;EAAA,GAEJ,CAAA,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;EC3EA,MAAM,SAAY,GAAA;EAAA,EAChB,WAAa,EAAA,IAAA;EAAA,EACb,YAAc,EAAA,IAAA;EAAA,EACd,WAAa,EAAA,oBAAA;EAAA,EACb,WAAa,EAAA,OAAA;EACf,CAAA,CAAA;EAEa,MAAA,aAAA,GAAgB,CAAC,KAA8B,KAAA;EAC1D,EAAM,MAAA;EAAA,IACJ,UAAU,QAAW,GAAAyF,cAAA;EAAA,IACrB,KAAA;EAAA,IACA,WAAA;EAAA,IACA,SAAA;EAAA,IACA,WAAc,GAAA,IAAA;EAAA,IACd,gBAAA;EAAA,IACA,cAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA;EAAA,IACA,cAAA;EAAA,IACA,MAAA;EAAA,IACA,WAAc,GAAA,MAAA;EAAA,GACZ,GAAA,KAAA,CAAA;EAEJ,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI+F,cAAU,EAAA,CAAA;EAE7B,EAAM,MAAA,GAAA,GAAM3L,aAAuB,IAAI,CAAA,CAAA;EACvC,EAAA,MAAM,EAAE,sBAAA,EAA2B,GAAAiG,yBAAA,CAAoB,UAAU,CAAA,CAAA;EAEjE,EAAA,MAAM,mBAAmB+F,2BAAiB,CAAA;EAAA,IACxC,KAAO,EAAA,KAAA,IAAS,KAAM,CAAA,KAAA,GAAQ,MAAM,KAAQ,GAAA,IAAA;EAAA,IAC5C,QAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA,EAAU,CAAC,MAAW,KAAA;EACpB,MAAS,QAAA,CAAA;EAAA,QACP,GAAA,EAAK,SAAS,KAAM,CAAA,GAAA,IAAO,UAAU,KAAM,CAAA,GAAA,GAAM,MAAM,GAAM,GAAA,MAAA;EAAA,QAC7D,KAAO,EAAA,MAAA;EAAA,OACR,CAAA,CAAA;EAAA,KACH;EAAA,IACA,MAAA;EAAA,IACA,cAAA,EAAgB,MAAM,IAAIC,sBAAkB,EAAA;EAAA,GAC7C,CAAA,CAAA;EAED,EAAA,MAAM,mBAAmBD,2BAAiB,CAAA;EAAA,IACxC,KAAO,EAAA,KAAA,IAAS,KAAM,CAAA,GAAA,GAAM,MAAM,GAAM,GAAA,IAAA;EAAA,IACxC,QAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA,EAAU,CAAC,MAAW,KAAA;EACpB,MAAS,QAAA,CAAA;EAAA,QACP,KAAA,EACE,SAAS,KAAM,CAAA,GAAA,IAAO,MAAM,KAAS,IAAA,MAAA,GAAS,MAAM,KAAQ,GAAA,MAAA;EAAA,QAC9D,GAAK,EAAA,MAAA;EAAA,OACN,CAAA,CAAA;EAAA,KACH;EAAA,IACA,MAAA;EAAA,IACA,cAAA,EAAgB,MAAM,IAAIC,sBAAkB,EAAA;EAAA,GAC7C,CAAA,CAAA;EAED,EAAM,MAAA,cAAA,GAAiB,CAAC,SAA8B,KAAA;EACpD,IAAA,IAAI,SAAa,IAAA,SAAA,CAAU,KAAS,IAAA,SAAA,CAAU,GAAK,EAAA;EACjD,MAAiB,gBAAA,CAAA,cAAA,CAAe,UAAU,KAAqB,CAAA,CAAA;EAC/D,MAAiB,gBAAA,CAAA,cAAA,CAAe,UAAU,GAAmB,CAAA,CAAA;EAAA,KAC/D;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,KAAQ,GAAA;EAAA,IACZ,QAAU,EAAA,QAAA;EAAA,IACV,mBAAqB,EAAA,cAAA;EAAA,IACrB,KAAA;EAAA,IACA,UAAU,gBAAiB,CAAA,QAAA;EAAA,IAC3B,QAAA;EAAA,IACA,QAAA;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,sBAAyB,GAAA,KAAA,IAAS,KAAM,CAAA,KAAA,GAAQ,EAAK,GAAA,SAAA,CAAA;EAE3D,EAAA,MAAM,aAAa,MAAM;EACvB,IAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,EAAA,CAAA;EACA,IAAY,WAAA,EAAA,CAAA;EAAA,GACd,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA,CAACjG,SAAI,EAAA,EAAA,GAAA,EAAY,KAAQ,EAAA,sBAAA,EAAA,sCACtBqC,WACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAACG,UAAK,EAAA,EAAA,GAAA,EAAM,CACV,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,WAAA;EAAA,IAAA;EAAA,MACC,KAAA;EAAA,MACA,MAAA;EAAA,MACA,gBAAA;EAAA,MACA,cAAA;EAAA,KAAA;EAAA,GACF,kBACC,KAAA,CAAA,aAAA,CAAAH,WAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAAhB,YAAA,EAAA,EAAO,UAAW,EAAA,OAAA,EAAQ,OAAU,EAAA,CAAA,EAAI,CAAE,EAAA,MAAA,EAAO,EAAG,EAAA,GAAA,EAAA,kBAClD,KAAA,CAAA,aAAA,CAAAgB,WAAA,EAAAvH,iBAAA,CAAA,EAAM,CAAE,EAAA,MAAA,EAAA,EAAY,sBACnB,CAAA,kBAAA,KAAA,CAAA,aAAA,CAACkF,SAAI,EAAA,EAAA,CAAA,EAAE,GACL,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,IAAA,EAAK,IAAK,EAAA,EAAA,aAAW,CAC5B,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,sBAAA;EAAA,IAAA;EAAA,MACC,KAAQ,EAAA,gBAAA;EAAA,MACR,KAAQ,EAAA,KAAA;EAAA,MACR,cAAA;EAAA,KAAA;EAAA,GAEJ,CACF,CAAA,kBACC,KAAA,CAAA,aAAA,CAAAqC,WAAA,EAAA,EAAM,CAAE,EAAA,MAAA,EAAO,OAAQ,EAAA,eAAA,EAAA,kBACrB,KAAA,CAAA,aAAA,CAAAA,WAAA,EAAA,EAAM,OAAU,EAAA,KAAA,IAAS,MAAM,KAAQ,GAAA,GAAA,GAAM,KAC5C,EAAA,kBAAA,KAAA,CAAA,aAAA,CAACrC,SAAI,EAAA,EAAA,CAAA,EAAE,GACL,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,IAAA,EAAK,IAAK,EAAA,EAAA,WAAS,CAC1B,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,sBAAA;EAAA,IAAA;EAAA,MACC,KAAQ,EAAA,gBAAA;EAAA,MACR,KAAQ,EAAA,KAAA;EAAA,MACR,cAAA;EAAA,KAAA;EAAA,GAEJ,CACF,CACA,kBAAA,KAAA,CAAA,aAAA,CAACqB,gBAAO,EAAG,EAAA,GAAA,EAAI,SAAU,EAAA,KAAA,EAAA,EACrB,+BACC,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,OAAU,EAAA,SAAA,EAAY,SAAQ,OAAQ,EAAA,IAAA,EAAK,IAAK,EAAA,EAAA,OAExD,mBAED,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,OAAQ,EAAA,OAAA,EAAQ,SAAU,UAAa,EAAA,IAAA,EAAK,IAChD,EAAA,EAAA,WACJ,CACF,CACF,CACF,CACF,CACF,CACF,CACF,CAAA,CAAA;EAEJ,CAAA;;EChJa,MAAA,gBAAA,GAAmB,CAAC,KAC/B,KAAAK,QAAA,CAAG,QAAQ,KAAK,CAAA,IAChB2F,SAAI,CAAA,WAAA,EAAa,KAAK,CAAA,IACtBA,UAAI,SAAW,EAAA,KAAK,CACpB,IAAA3F,QAAA,CAAG,MAAQ,EAAA,KAAA,CAAM,SAAS,CAC1B,IAAAA,QAAA,CAAG,MAAQ,EAAA,KAAA,CAAM,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;ECe1B,MAAM,UAAA,GAAa,CAAC,KAAe,KAAA;EACjC,EAAI,IAAA,CAAC,iBAAiB,KAAK,CAAA;EAAG,IAAO,OAAA,IAAA,CAAA;EACrC,EAAO,OAAA,EAAE,KAAO,EAAA2E,cAAA,CAAU,KAAM,CAAA,SAAS,GAAG,GAAK,EAAAA,cAAA,CAAU,KAAM,CAAA,OAAO,CAAE,EAAA,CAAA;EAC5E,CAAA,CAAA;EAEA,MAAM,gBAAgB,CAAC;EAAA,EACrB,cAAA;EAAA,EACA,QAAA;EACF,CAGM,KAAA;EACJ,EAAA,IAAI,cAAgB,EAAA;EAClB,IAAO,uBAAA,KAAA,CAAA,aAAA,CAACrD,oBAAS,QAAU,CAAA,CAAA;EAAA,GAC7B;EACA,EAAA,iEAAW,QAAU,CAAA,CAAA;EACvB,CAAA,CAAA;AAiDa,QAAA,eAAA,GAAkB,CAAC,KAAgC,KAAA;EAC9D,EAAM,MAAA;EAAA,IACJ,UAAA;EAAA,IACA,WAAc,GAAA,IAAA;EAAA,IACd,SAAA;EAAA,IACA,SAAY,GAAA,KAAA;EAAA,IACZ,UAAA;EAAA,IACA,gBAAA;EAAA,IACA,cAAA;EAAA,IACA,OAAU,GAAA,SAAA;EAAA,IACV,UAAU,gBAAmB,GAAApD,cAAA;EAAA,IAC7B,KAAA;EAAA,IACA,QAAW,GAAA,YAAA;EAAA,IACX,QAAA;EAAA,IACA,cAAiB,GAAA,KAAA;EAAA,IACjB,cAAA;EAAA,IACA,MAAA;EAAA,IACA,WAAc,GAAA,MAAA;EAAA,GACZ,GAAA,KAAA,CAAA;EACJ,EAAA,MAAM,MAAM5F,YAAO,EAAA,CAAA;EACnB,EAAA,MAAM,EAAE,KAAA,EAAU,GAAAiG,yBAAA,CAAoB,YAAY,CAAA,CAAA;EAClD,EAAA,MAAM,WAAc,GAAA;EAAA,IAClB,QAAA,EAAU,CAAC,IAAoB,KAAA;EAC7B,MAAiB,gBAAA,CAAA;EAAA,QACf,SAAA,EAAW,6BAAM,KAAM,CAAA,QAAA,EAAA;EAAA,QACvB,OAAA,EAAS,6BAAM,GAAI,CAAA,QAAA,EAAA;EAAA,OACpB,CAAA,CAAA;EAAA,KACH;EAAA,IACA,KAAA,EAAO,WAAW,KAAK,CAAA;EAAA,IACvB,UAAUhG,WAAM,CAAA,QAAQ,CAAI,GAAA,KAAA,CAAA,GAAaoM,eAAU,QAAQ,CAAA;EAAA,IAC3D,UAAUpM,WAAM,CAAA,QAAQ,CAAI,GAAA,KAAA,CAAA,GAAaoM,eAAU,QAAQ,CAAA;EAAA,GAC7D,CAAA;EACA,EAAA,MAAM,KAAQ,GAAAiB,oCAAA,CAAwBjM,eACjC,CAAAP,iBAAA,CAAAA,iBAAA,CAAA,EAAA,EAAA,KAAA,CAAA,EACA,WAFiC,CAAA,EAAA;EAAA,IAGpC,mBAAqB,EAAA,KAAA;EAAA,IACrB,YAAc,EAAA,IAAA;EAAA,GACf,CAAA,CAAA,CAAA;EAED,EAAM,MAAA;EAAA,IACJ,UAAA;EAAA,IACA,eAAA;EAAA,IACA,aAAA;EAAA,IACA,WAAA;EAAA,IACA,WAAA;EAAA,IACA,aAAA;EAAA,GACE,GAAAyM,6BAAA;EAAA,IACFlM,eAAA,CAAAP,iBAAA,CAAAA,iBAAA,CAAA,EAAA,EACK,QACA,WAFL,CAAA,EAAA;EAAA,MAGE,QAAU,EAAA,WAAA,CAAY,QAAY,IAAAuL,cAAA,CAAU,YAAY,CAAA;EAAA,KAC1D,CAAA;EAAA,IACA,KAAA;EAAA,IACA,GAAA;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,cAAc,MAAM,KAAA,CAAM,OAAQ,CAAA,CAAC,MAAM,MAAM,CAAA,CAAA;EAErD,EAAA,MAAM,cAAc,MAAM;EACxB,IAAA,KAAA,CAAM,QAAQ,KAAK,CAAA,CAAA;EAAA,GACrB,CAAA;EAEA,EAAgBmB,qBAAA,CAAA;EAAA,IACd,GAAA;EAAA,IACA,OAAS,EAAA,MAAM,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA;EAAA,GACnC,CAAA,CAAA;EAED,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,OAAA;EAAA,IAAA;EAAA,MACC,QAAS,KAAM,CAAA,MAAA;EAAA,MACf,OAAU,EAAA,WAAA;EAAA,MACV,SAAU,EAAA,cAAA;EAAA,KAAA;EAAA,oBAEV,KAAA,CAAA,aAAA,CAAClB,mBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAACjF,YACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAACkF,wDAAgB,UAAhB,CAAA,EAAA,EAA6B,GAAY,EAAA,KAAA,EAAQ,KAChD,EAAA,CAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,WAAA;EAAA,MAAA;EAAA,QACC,UAAA;EAAA,QACA,SAAA;EAAA,QACA,OAAA;EAAA,OAAA;EAAA,sBAEA,KAAA,CAAA,aAAA,CAAClF,gBAAO,kBAAmB,EAAA,IAAA,EAAK,kBAAmB,EACjD,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,iDAAe,eAAf,CAAA,EAAA,EAAiC,aAA0B,CAC5D,kBAAA,KAAA,CAAA,aAAA,CAAC,SAAE,GAAC,CAAA,sCACH,SAAe,EAAAhG,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAAA,aAAA,CAAA,EAAf,EAA+B,UAAA,EAAA,CAA0B,CAC5D,CAAA;EAAA,KACF,sCACC0L,uBAAkB,EAAA,EAAA,EAAA,EAAK,EAAE,MAAQ,EAAA,MAAA,EAAQ,YAAc,EAAA,GAAA,EACtD,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,OAAA;EAAA,MAAAnL,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,WADN,CAAA,EAAA;EAAA,QAEC,UAAA;EAAA,QACA,WAAc,EAAA,WAAA;EAAA,OAAA,CAAA;EAAA,KAElB,CACF,CACA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAA;EAAA,QACC,YAAW,EAAA,YAAA;EAAA,QACX,OAAQ,EAAA,QAAA;EAAA,QACR,IAAK,EAAA,IAAA;EAAA,QACL,QAAS,EAAA,IAAA;EAAA,QACT,OAAU,EAAA,SAAA;EAAA,QACV,QAAS,CAAC,WAAA;EAAA,QACV,UAAA;EAAA,QACA,IAAO,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAK2L,iBAAc,EAAA,CAAA;EAAA,OAAA;EAAA,KAEpC,CACF,CAAA;EAAA,oBACA,KAAA,CAAA,aAAA,CAAC,iBAAc,cACX,EAAA,EAAA,KAAA,CAAM,0BACL,KAAA,CAAA,aAAA,CAAApD,oBAAA,EAAAhI,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAAoB,cAApB,EAAkC,GAAA,EAAY,GAAE,aAC/C,EAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC0I,oBAAW,OAAU,EAAA,IAAA,EAAO,cAAe,IAC1C,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,2BAAwB,cACvB,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,aAAA;EAAA,MAAAnI,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACM,aADN,CAAA,EAAA;EAAA,QAEC,SAAA;EAAA,QACA,WAAA;EAAA,QACA,kBAAmB,gBAAoB,IAAA,CAAA;EAAA,QACvC,gBAAiB,cAAkB,IAAA,CAAA;EAAA,QACnC,WAAA;EAAA,QACA,cAAA;EAAA,QACA,MAAA;EAAA,QACA,WAAA;EAAA,OAAA,CAAA;EAAA,KAEJ,CACF,CACF,CAEJ,CAAA;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECpNa,MAAA,iBAAA,GAAoB,CAAC,EAKJ,KAAA;EALI,EAChC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,gBAAA;EAAA,IACA,iBAAA;EAAA,IACA,QAAA;EAAA,GARF,GAKkC,EAI7B,EAAA,IAAA,GAAA+E,YAAA,CAJ6B,EAI7B,EAAA;EAAA,IAHH,kBAAA;EAAA,IACA,mBAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,yBAAA,GACN4H,UAAIC,SAAI,CAAAzN,WAAA,EAAO,CAAE,gBAAkB,EAAA,iBAAkB,CAAC,CAAC,CAAA,CAAA;EAEvD,EAAO,OAAA,yBAAA,uCAEFsM,gBAAgB,EAAAzL,iBAAA,CAAA,EAAA,EAAA,IAAA,CAAA,EACb,kBACA,QACA,EAAA,iBACJ,CAEA,mBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAI,QAAU,CAAA,CAAA;EACpB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACQO,QAAM,eAAkB,GAAAuF,gBAAA,CAAiD,CAAC,EAAA,EAa9E,GAAQ,KAAA;EAbsE,EAC/E,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAY,GAAA,QAAA;EAAA,IACZ,KAAA;EAAA,IACA,QAAA;EAAA,IACA,cAAiB,GAAA,QAAA;EAAA,IACjB,UAAU,gBAAmB,GAAAT,cAAA;EAAA,IAC7B,gBAAA;EAAA,IACA,iBAAA;EAAA,GA1CF,GA+BiF,EAY5E,EAAA,IAAA,GAAAC,YAAA,CAZ4E,EAY5E,EAAA;EAAA,IAXH,MAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,gBAAA;EAAA,IACA,UAAA;EAAA,IACA,kBAAA;EAAA,IACA,mBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,EAAE,QAAA,EAAU,QAAU,EAAA,OAAA,KAAYsC,4BAAe,EAAA,CAAA;EAEvD,EAAM,MAAA,YAAA,GAAe,CAAC4C,MAAoB,KAAA;EACxC,IAAS,QAAA,CAAA,IAAA,EAAMA,iCAAM,QAAU,EAAA,CAAA,CAAA;EAC/B,IAAK,IAAA,QAAA,IAAYA,SAAOsB,cAAU,CAAA,QAAQ,KAAO,QAAY,IAAAtB,MAAA,GAAOsB,cAAU,CAAA,QAAQ,CAAI,EAAA;EACxF,MAAA,QAAA,CAAS,IAAM,EAAA;EAAA,QACb,IAAM,EAAA,QAAA;EAAA,QACN,OAAA,EAAS,YAAY,QACjB,GAAA,CAAA,qBAAA,EAAwB,YAAY,QACpC,CAAA,CAAA,GAAA,QAAA,GACE,CAA2B,wBAAA,EAAA,QAAA,CAAA,CAAA,GAC3B,CAAyB,sBAAA,EAAA,QAAA,CAAA,CAAA;EAAA,OAEhC,CAAA,CAAA;EAAA,KACI,MAAA;EACL,MAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;EAAA,KACd;EACA,IAAA,gBAAA,CAAiBtB,MAAI,CAAA,CAAA;EAAA,GACvB,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,KAAA,EAAO,QAAS,EAAA,EAAG,EAAE,SAAW,EAAA,EAAE,MAAO,EAAA,EAC5C,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,iBAAA;EAAA,MAAA;EAAA,QACC,gBAAA;EAAA,QACA,iBAAA;EAAA,OAAA;EAAA,sBAEA,KAAA,CAAA,aAAA;EAAA,QAAC,UAAA;EAAA,QAAAjK,iBAAA,CAAA;EAAA,UACC,cAAA;EAAA,UACA,YAAa,EAAA,KAAA;EAAA,UACb,SAAY,EAAA,CAAC,CAAC,MAAA,CAAO,IAAI,CAAA;EAAA,UACzB,QAAW,EAAA,YAAA;EAAA,UACX,SAAA,EAAY,MAAM,QAAA,CAAS,IAAI,CAAA;EAAA,UAC/B,KAAQ,EAAA,KAAA,GAAQuL,cAAU,CAAA,KAAK,CAAW,GAAA,IAAA;EAAA,UAC1C,QAAW,EAAA,QAAA,GAAWA,cAAU,CAAA,QAAQ,CAAiB,GAAA,KAAA,CAAA;EAAA,UACzD,QAAW,EAAA,QAAA,GAAWA,cAAU,CAAA,QAAQ,CAAiB,GAAA,KAAA,CAAA;EAAA,UACzD,eAAA,EAAkB,MAAO,CAAA,IAAA,GAAO,SAAY,GAAA,OAAA;EAAA,SACvC,EAAA,IAAA,CAAA;EAAA,OACP;EAAA,KACF;EAAA,GAEJ,CAAA;EAGJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFM,QAAM,oBAAuB,GAAAhG,gBAAA,CAAsD,CAAC,EAAA,EAcxF,GAAQ,KAAA;EAdgF,EACzF,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAY,GAAA,QAAA;EAAA,IACZ,KAAA;EAAA,IACA,QAAA;EAAA,IACA,cAAiB,GAAA,QAAA;EAAA,IACjB,UAAU,gBAAmB,GAAAT,cAAA;EAAA,IAC7B,WAAc,GAAA,IAAA;EAAA,IACd,MAAA;EAAA,IACA,WAAc,GAAA,MAAA;EAAA,GA1BhB,GAc2F,EAatF,EAAA,IAAA,GAAAC,YAAA,CAbsF,EAatF,EAAA;EAAA,IAZH,MAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,gBAAA;EAAA,IACA,UAAA;EAAA,IACA,aAAA;EAAA,IACA,QAAA;EAAA,IACA,aAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,EAAE,QAAA,EAAU,QAAU,EAAA,OAAA,KAAYsC,4BAAyB,EAAA,CAAA;EAEjE,EAAM,MAAA,YAAA,GAAe,CAAC,SAAsD,KAAA;EAC1E,IAAA,QAAA,CAAS,MAAM,SAAS,CAAA,CAAA;EACxB,IAAA,IACG,aAAY,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,SAAA,IAAY,YACnC,QAAY,IAAA,CAAA,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,WAAU,QAClC,EAAA;EACA,MAAA,QAAA,CAAS,IAAM,EAAA;EAAA,QACb,IAAM,EAAA,QAAA;EAAA,QACN,OAAA,EACE,YAAY,QACR,GAAA,CAAA,qBAAA,EAAwB,YAAY,QACpC,CAAA,CAAA,GAAA,QAAA,GACE,CAA2B,wBAAA,EAAA,QAAA,CAAA,CAAA,GAC3B,CAAyB,sBAAA,EAAA,QAAA,CAAA,CAAA;EAAA,OAClC,CAAA,CAAA;EAAA,KACI,MAAA;EACL,MAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;EAAA,KACd;EACA,IAAA,gBAAA,CAAiB,SAAS,CAAA,CAAA;EAAA,GAC5B,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,KAAA,EAAO,QAAS,EAAA,EAAG,EAAE,SAAW,EAAA,EAAE,MAAO,EAAA,EAC5C,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,eAAA;EAAA,MAAArH,iBAAA,CAAA;EAAA,QACC,cAAA;EAAA,QACA,YAAa,EAAA,KAAA;EAAA,QACb,SAAY,EAAA,CAAC,CAAC,MAAA,CAAO,IAAI,CAAA;EAAA,QACzB,QAAW,EAAA,YAAA;EAAA,QACX,MAAA;EAAA,QACA,SAAA,EAAY,MAAM,QAAA,CAAS,IAAI,CAAA;EAAA,QAC/B,KAAA;EAAA,QACA,QAAA;EAAA,QACA,QAAA;EAAA,QACA,eAAA,EAAkB,MAAO,CAAA,IAAA,GAAO,SAAY,GAAA,OAAA;EAAA,QAC5C,WAAA;EAAA,QACA,WAAA;EAAA,OACM,EAAA,IAAA,CAAA;EAAA,KACR;EAAA,GAEJ,CAAA;EAEJ,CAAC;;ECrEM,MAAM,cAA6C,GAAA;EAAA,EACxD,OAAS,EAAA6M,sBAAA;EAAA,EACT,OAAS,EAAAC,wBAAA;EAAA,EACT,KAAO,EAAAC,sBAAA;EAAA,EACP,MAAQ,EAAAC,uBAAA;EAAA,EACR,IAAM,EAAAC,eAAA;EAAA,EACN,EAAI,EAAAC,qBAAA;EAAA,EACJ,OAAS,EAAAC,qBAAA;EAAA,EACT,KAAO,EAAAA,qBAAA;EACT,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsJa,QAAA,OAAA,GAAqC,CAAC,EAO7C,KAAA;EAP6C,EACjD,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,OAAA,GAAA,SAAA;EAAA,IACV,QAAW,GAAA,IAAA;EAAA,IACX,KAAQ,GAAA,EAAA;EAAA,IACR,WAAc,GAAA,EAAA;EAAA,IACd,OAAU,GAAA,KAAA;EAAA,GA/KZ,GA0KmD,EAM9C,EAAA,IAAA,GAAApI,YAAA,CAN8C,EAM9C,EAAA;EAAA,IALH,SAAA;EAAA,IACA,UAAA;EAAA,IACA,OAAA;EAAA,IACA,aAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,WAA6B,GAAA,OAAA,CAAA;EACnC,EAAM,MAAA,IAAA,GAAO,eAAe,WAAW,CAAA,CAAA;EAEvC,EAAM,MAAA,cAAA,mBACH,KAAA,CAAA,aAAA,CAAAwB,YAAA,EAAA,EAAO,UAAW,EAAA,YAAA,EAAA,EACf,2BAAY,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAK,EAAA,IAAA,EAAO,KAAQ,EAAA,CAAA,WAAA,EAAc,eAAgB,CACrE,kBAAA,KAAA,CAAA,aAAA,CAAC6G,YAAO,EAAA,EAAA,OAAA,EAAU,CAAI,EAAA,UAAA,EAAW,YAC/B,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,IAAA,EAAK,IAAO,EAAA,EAAA,KAAO,CAC1B,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,CAAA;EAAA,IAAA;EAAA,MACC,OAAQ,EAAA,IAAA;EAAA,MACR,EAAK,EAAA;EAAA,QACH,KAAO,EAAA,CAAC,OAAW,IAAA,OAAA,KAAY,OAAO,eAAkB,GAAA,cAAA;EAAA,OAC1D;EAAA,KAAA;EAAA,IAEE,WAAA;EAAA,GAEN,CACF,CAAA,CAAA;EAEF,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACC,aAAA;EAAA,IAAArN,iBAAA,CAAA;EAAA,MACC,QAAA;EAAA,MACA,OAAA;EAAA,MACA,KAAA,EAAQ,KAAS,IAAA,WAAA,GAAc,cAAiB,GAAA,KAAA,CAAA;EAAA,MAChD,OAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,GACP,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECzMa,MAAA,qBAAA,GAAwB,CAAC,EAIJ,KAAA;EAJI,EACpC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,SAAY,GAAA,cAAA;EAAA,GAPd,GAKsC,EAGjC,EAAA,IAAA,GAAA+E,YAAA,CAHiC,EAGjC,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,WAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,MAAS,GAAA,EAAA,CAAA;EACf,EAAA,MAAM,YAAe,GAAA,CAAA,CAAA;EACrB,EAAM,MAAA,QAAA,GAAW,KAAK,MAAS,GAAA,YAAA,CAAA,CAAA;EAC/B,EAAM,MAAA,aAAA,GAAgB,CAAI,GAAA,IAAA,CAAK,EAAK,GAAA,MAAA,CAAA;EACpC,EAAM,MAAA,gBAAA,GAAmB,aAAiB,GAAA,QAAA,GAAW,GAAO,GAAA,aAAA,CAAA;EAE5D,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACuI,YAAA;EAAA,IAAAtN,iBAAA,CAAA;EAAA,MACC,EAAG,EAAA,KAAA;EAAA,MACH,MAAO,CAAG,EAAA,QAAA,CAAA,EAAA,CAAA;EAAA,MACV,OAAA,EAAU,OAAO,QAAY,CAAA,CAAA,EAAA,QAAA,CAAA,CAAA;EAAA,MAC7B,EAAK,EAAA;EAAA,QACH,SAAW,EAAA,gBAAA;EAAA,OACb;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,oBAEL,KAAA,CAAA,aAAA;EAAA,MAACoF,aAAO,CAAA,MAAA;EAAA,MAAP;EAAA,QACC,IAAK,QAAW,GAAA,CAAA;EAAA,QAChB,IAAK,QAAW,GAAA,CAAA;EAAA,QAChB,CAAI,EAAA,MAAA;EAAA,QACJ,IAAK,EAAA,aAAA;EAAA,QACL,MAAO,EAAA,cAAA;EAAA,QACP,WAAc,EAAA,YAAA;EAAA,OAAA;EAAA,KAChB;EAAA,oBACA,KAAA,CAAA,aAAA;EAAA,MAACA,aAAO,CAAA,MAAA;EAAA,MAAP;EAAA,QACC,IAAK,QAAW,GAAA,CAAA;EAAA,QAChB,IAAK,QAAW,GAAA,CAAA;EAAA,QAChB,CAAI,EAAA,MAAA;EAAA,QACJ,IAAK,EAAA,aAAA;EAAA,QACL,MAAS,EAAA,SAAA;EAAA,QACT,WAAc,EAAA,YAAA;EAAA,QACd,eAAkB,EAAA,aAAA;EAAA,QAClB,gBAAA;EAAA,QACA,aAAc,EAAA,OAAA;EAAA,OAAA;EAAA,KAChB;EAAA,GACF,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTa,QAAA,YAAA,GAAe,CAAC,EAQJ,KAAA;EARI,EAC3B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAO,IAAA,GAAAmI,cAAA;EAAA,IACP,OAAU,GAAA,GAAA;EAAA,IACV,SAAY,GAAA,cAAA;EAAA,IACZ,YAAY,MAAM;EAAA,KAAC;EAAA,IACnB,WAAc,GAAA,gBAAA;EAAA,IACd,cAAc,SAAY,GAAA,gBAAA;EAAA,GA5C5B,GAsC6B,EAOxB,EAAA,IAAA,GAAAxI,YAAA,CAPwB,EAOxB,EAAA;EAAA,IANH,MAAA;EAAA,IACA,SAAA;EAAA,IACA,WAAA;EAAA,IACA,WAAA;EAAA,IACA,aAAA;EAAA,IACA,YAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,QAAA,EAAU,WAAY,CAAA,GAAIjG,eAAS,CAAC,CAAA,CAAA;EAC5C,EAAA,MAAM,CAAE,UAAA,EAAY,aAAc,CAAA,GAAIA,eAAS,KAAK,CAAA,CAAA;EACpD,EAAM,MAAA,QAAA,GAAWI,aAA2B,KAAS,CAAA,CAAA,CAAA;EAErD,EAAA,MAAM,aAAa,MAAM;EACvB,IAAA,IAAI,SAAS,OAAS,EAAA;EACpB,MAAA,aAAA,CAAc,SAAS,OAAO,CAAA,CAAA;EAC9B,MAAA,QAAA,CAAS,OAAU,GAAA,KAAA,CAAA,CAAA;EAAA,KACrB;EACA,IAAA,WAAA,CAAY,CAAC,CAAA,CAAA;EAAA,GACf,CAAA;EAEA,EAAUH,eAAA,CAAA,MAAM,UAAY,EAAA,EAAE,CAAA,CAAA;EAE9B,EAAA,MAAM,aAAa,MAAM;EACvB,IAAW,UAAA,EAAA,CAAA;EAEX,IAAM,MAAA,SAAA,GAAY,KAAK,GAAI,EAAA,CAAA;EAC3B,IAAS,QAAA,CAAA,OAAA,GAAU,YAAY,MAAM;EACnC,MAAM,MAAA,WAAA,GAAc,IAAK,CAAA,GAAA,EAAQ,GAAA,SAAA,CAAA;EACjC,MAAM,MAAA,eAAA,GAAmB,cAAc,OAAW,GAAA,GAAA,CAAA;EAClD,MAAA,IAAI,mBAAmB,GAAK,EAAA;EAC1B,QAAA,aAAA,CAAc,SAAS,OAAO,CAAA,CAAA;EAC9B,QAAU,SAAA,EAAA,CAAA;EAAA,OACL,MAAA;EACL,QAAA,WAAA,CAAY,eAAe,CAAA,CAAA;EAAA,OAC7B;EAAA,OACC,EAAE,CAAA,CAAA;EAAA,GACP,CAAA;EAEA,EAAA,MAAM,mBAAmB,MAAM;EAC7B,IAAA,aAAA,CAAc,IAAI,CAAA,CAAA;EAAA,GACpB,CAAA;EAEA,EAAA,MAAM,mBAAmB,MAAM;EAC7B,IAAA,aAAA,CAAc,KAAK,CAAA,CAAA;EACnB,IAAW,UAAA,EAAA,CAAA;EAAA,GACb,CAAA;EAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EAAQ,KAAQ,EAAA,WAAA,EAAc,WAAU,KACvC,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAACyO,YAAA;EAAA,IAAAxN,iBAAA,CAAA;EAAA,MACC,QAAS,EAAA,UAAA;EAAA,MACT,MAAO,EAAA,SAAA;EAAA,MACP,WAAc,EAAA,UAAA;EAAA,MACd,SAAY,EAAA,UAAA;EAAA,MACZ,YAAe,EAAA,gBAAA;EAAA,MACf,YAAe,EAAA,gBAAA;EAAA,MACf,OAAQ,EAAA,MAAA;EAAA,MACR,OAAA,EAAU,CAAI,EAAA,CAAA,GAAA,GAAM,QAAY,IAAA,GAAA,CAAA,CAAA;EAAA,KAC3B,EAAA,IAAA,CAAA;EAAA,oBAEL,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAA;EAAA,QACC,IAAO,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAK,IAAO,EAAA,CAAA;EAAA,QACzB,IAAK,EAAA,IAAA;EAAA,QACL,YAAa,EAAA,SAAA;EAAA,QACb,OAAQ,EAAA,OAAA;EAAA,OAAA;EAAA,KACV;EAAA,IACE,UACA,oBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,qBAAA;EAAA,MAAA;EAAA,QACC,SAAA;EAAA,QACA,QAAA;EAAA,QACA,QAAS,EAAA,UAAA;EAAA,QACT,GAAI,EAAA,GAAA;EAAA,QACJ,IAAK,EAAA,GAAA;EAAA,OAAA;EAAA,KACP;EAAA,GAGN,CAAA,CAAA;EAEJ;;ECrHO,MAAM,gBAAmB,GAAA,GAAA,CAAA;EACzB,MAAM,aAAgB,GAAA,EAAA;;ECU7B,MAAM,aAAA,GAAgB,EAAE,QAAA,EAAU,IAAK,EAAA,CAAA;EAC1B,MAAA,oBAAA,GAAuB,CAClC,QAAA,EACA,YACA,EAAA,IAAA,KAEC,IACG,GAAA,QAAA,GACA,YACE,GAAA,oBAAA,CAAqB,QAAU,EAAA,aAAa,CAC5C,GAAA,QAAA,CAAA;EAED,MAAM,WAAc,GAAA,CACzB,aACA,EAAA,YAAA,EACA,QACG,KAAA;EACH,EAAM,MAAA,UAAA,GAAa,iBAAiB,QAAY,IAAA,gBAAA,CAAA;EAChD,EAAM,MAAA,WAAA,GAAc,gBAAgB,QAAY,IAAA,gBAAA,CAAA;EAChD,EAAA,MAAM,UAAa,GAAA;EAAA,IACjB,KAAO,EAAA;EAAA,MACL,UAAU,UAAa,GAAA,GAAA;EAAA,KACzB;EAAA,IACA,IAAM,EAAA;EAAA,MACJ,UAAU,WAAc,GAAA,GAAA;EAAA,KAC1B;EAAA,GACF,CAAA;EACA,EAAO,OAAA,UAAA,CAAA;EACT,CAAA,CAAA;EAEO,MAAM,UAAa,GAAA,CACxB,SACA,EAAA,MAAA,EACA,SACA,OACG,KAAA;EACH,EAAA,IAAI,WAAW,OAAS,EAAA;EACtB,IAAO,OAAA,EAAE,SAAS,OAAQ,EAAA,CAAA;EAAA,GAC5B;EACA,EAAA,IAAI,SAAW,EAAA;EACb,IAAA,MAAM,QAAQ,MAAU,IAAA,aAAA,CAAA;EACxB,IAAA,QAAQ,SAAW;EAAA,MACjB,KAAK,OAAA;EACH,QAAA,OAAO,EAAE,OAAA,EAAS,KAAO,EAAA,OAAA,EAAS,CAAE,EAAA,CAAA;EAAA,MACtC,KAAK,MAAA;EACH,QAAA,OAAO,EAAE,OAAA,EAAS,CAAC,KAAA,EAAO,SAAS,CAAE,EAAA,CAAA;EAAA,MACvC,KAAK,KAAA;EACH,QAAA,OAAO,EAAE,OAAA,EAAS,CAAG,EAAA,OAAA,EAAS,CAAC,KAAM,EAAA,CAAA;EAAA,MACvC,KAAK,QAAA;EACH,QAAA,OAAO,EAAE,OAAA,EAAS,CAAG,EAAA,OAAA,EAAS,KAAM,EAAA,CAAA;EAEpC,KACJ;EAAA,GACF;EACA,EAAA,OAAO,EAAE,OAAA,EAAS,aAAe,EAAA,OAAA,EAAS,aAAc,EAAA,CAAA;EAC1D,CAAA,CAAA;EAEO,MAAM,QAAW,GAAA,CACtB,IACA,EAAA,UAAA,EACA,SACG,KAAA;EACH,EAAA,MAAM,CAAE,aAAA,EAAe,gBAAiB,CAAA,GAAIlB,eAAS,KAAK,CAAA,CAAA;EAC1D,EAAAC,eAAA,CAAU,MAAM;EACd,IAAA,MAAM,GAAM,GAAA,UAAA;EAAA,MACV,MAAM,iBAAiB,IAAI,CAAA;EAAA,MAC3B,OAAO,UAAa,GAAA,SAAA;EAAA,KACtB,CAAA;EACA,IAAO,OAAA,MAAM,aAAa,GAAG,CAAA,CAAA;EAAA,GAC/B,EAAG,CAAE,IAAK,CAAC,CAAA,CAAA;EACX,EAAO,OAAA,aAAA,CAAA;EACT,CAAA,CAAA;EAEa,MAAA,gBAAA,GAAmB,CAC9B,MAAA,GAAS,KACT,EAAA,SAAA,GAAY,CACZ,EAAA,YAAA,GAA6B,CAC7B,EAAA,QAAA,GAAyB,CACzB,EAAA,oBAAA,GAAkD+F,cAC/C,KAAA;EACH,EAAA,MAAM,CAAE,MAAA,EAAQ,SAAU,CAAA,GAAIhG,eAAS,MAAM,CAAA,CAAA;EAE7C,EAAAC,eAAA,CAAU,MAAM;EACd,IAAM,MAAA,GAAA,GAAM,WAAW,MAAM;EAC3B,MAAA,SAAA,CAAU,MAAM,CAAA,CAAA;EAChB,MAAA,oBAAA,CAAqB,MAAM,CAAA,CAAA;EAAA,KAC1B,EAAA,SAAA,IAAa,YAAgB,IAAA,QAAA,IAAY,CAAE,CAAA,CAAA,CAAA;EAC9C,IAAO,OAAA,MAAM,aAAa,GAAG,CAAA,CAAA;EAAA,GAC/B,EAAG,CAAE,MAAO,CAAC,CAAA,CAAA;EAEb,EAAO,OAAA,MAAA,CAAA;EACT,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3Da,QAAA,IAAA,GAAO,CAAC,EAYJ,KAAA;EAZI,EACnB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,aAAgB,GAAA,IAAA;EAAA,IAChB,YAAe,GAAA,IAAA;EAAA,IACf,QAAW,GAAA,IAAA;EAAA,IACX,IAAI,IAAO,GAAA,KAAA;EAAA,IACX,YAAe,GAAA,IAAA;EAAA,IACf,WAAc,GAAA,KAAA;EAAA,IACd,UAAa,GAAA,CAAA;EAAA,IACb,SAAY,GAAA,CAAA;EAAA,IACZ,oBAAuB,GAAA+F,cAAA;EAAA,GArDzB,GA2CqB,EAWhB,EAAA,IAAA,GAAAC,YAAA,CAXgB,EAWhB,EAAA;EAAA,IAVH,UAAA;EAAA,IACA,eAAA;EAAA,IACA,cAAA;EAAA,IACA,UAAA;EAAA,IACA,IAAA;EAAA,IACA,cAAA;EAAA,IACA,aAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,sBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,UAAa,GAAA,WAAA,CAAY,aAAe,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EACpE,EAAA,MAAM,aAAgB,GAAA,QAAA,CAAS,IAAM,EAAA,UAAA,EAAY,SAAS,CAAA,CAAA;EAC1D,EAAA,MAAM,WAAW,gBAAiB,CAAA,IAAA,EAAM,SAAW,EAAA,YAAA,EAAc,UAAU,oBAAoB,CAAA,CAAA;EAC/F,EAAA,MAAM,iBAAoB,GAAA,oBAAA,CAAqB,QAAU,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EAE/E,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC0I,UAAA;EAAA,IAAAzN,iBAAA,CAAA;EAAA,MACC,EAAK,EAAA,aAAA;EAAA,MACL,UAAA;EAAA,MACA,aAAgB,EAAA,WAAA;EAAA,KACX,EAAA,IAAA,CAAA;EAAA,IAEH,iBAAA;EAAA,GACJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9Ba,QAAA,SAAA,GAAY,CAAC,EAYJ,KAAA;EAZI,EACxB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,aAAgB,GAAA,IAAA;EAAA,IAChB,YAAe,GAAA,IAAA;EAAA,IACf,QAAW,GAAA,IAAA;EAAA,IACX,IAAI,IAAO,GAAA,KAAA;EAAA,IACX,YAAe,GAAA,IAAA;EAAA,IACf,WAAc,GAAA,KAAA;EAAA,IACd,UAAa,GAAA,CAAA;EAAA,IACb,SAAY,GAAA,CAAA;EAAA,IACZ,oBAAuB,GAAA8E,cAAA;EAAA,GAnDzB,GAyC0B,EAWrB,EAAA,IAAA,GAAAC,YAAA,CAXqB,EAWrB,EAAA;EAAA,IAVH,UAAA;EAAA,IACA,eAAA;EAAA,IACA,cAAA;EAAA,IACA,UAAA;EAAA,IACA,IAAA;EAAA,IACA,cAAA;EAAA,IACA,aAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,sBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,UAAa,GAAA,WAAA,CAAY,aAAe,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EACpE,EAAA,MAAM,aAAgB,GAAA,QAAA,CAAS,IAAM,EAAA,UAAA,EAAY,SAAS,CAAA,CAAA;EAC1D,EAAA,MAAM,WAAW,gBAAiB,CAAA,IAAA,EAAM,SAAW,EAAA,YAAA,EAAc,UAAU,oBAAoB,CAAA,CAAA;EAC/F,EAAA,MAAM,iBAAoB,GAAA,oBAAA,CAAqB,QAAU,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EAE/E,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC2I,eAAA;EAAA,IAAA1N,iBAAA,CAAA;EAAA,MACC,EAAK,EAAA,aAAA;EAAA,MACL,UAAA;EAAA,MACA,aAAgB,EAAA,WAAA;EAAA,KACX,EAAA,IAAA,CAAA;EAAA,IAEH,iBAAA;EAAA,GACJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Da,QAAA,KAAA,GAAQ,CAAC,EAaJ,KAAA;EAbI,EACpB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,aAAgB,GAAA,IAAA;EAAA,IAChB,YAAe,GAAA,IAAA;EAAA,IACf,QAAW,GAAA,IAAA;EAAA,IACX,IAAI,IAAO,GAAA,KAAA;EAAA,IACX,YAAe,GAAA,IAAA;EAAA,IACf,WAAc,GAAA,KAAA;EAAA,IACd,UAAa,GAAA,CAAA;EAAA,IACb,SAAY,GAAA,CAAA;EAAA,IACZ,SAAY,GAAA,QAAA;EAAA,IACZ,oBAAuB,GAAA8E,cAAA;EAAA,GAjBzB,GAMsB,EAYjB,EAAA,IAAA,GAAAC,YAAA,CAZiB,EAYjB,EAAA;EAAA,IAXH,UAAA;EAAA,IACA,eAAA;EAAA,IACA,cAAA;EAAA,IACA,UAAA;EAAA,IACA,IAAA;EAAA,IACA,cAAA;EAAA,IACA,aAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,WAAA;EAAA,IACA,sBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,UAAa,GAAA,WAAA,CAAY,aAAe,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EACpE,EAAA,MAAM,aAAgB,GAAA,QAAA,CAAS,IAAM,EAAA,UAAA,EAAY,SAAS,CAAA,CAAA;EAC1D,EAAA,MAAM,WAAW,gBAAiB,CAAA,IAAA,EAAM,SAAW,EAAA,YAAA,EAAc,UAAU,oBAAoB,CAAA,CAAA;EAC/F,EAAA,MAAM,iBAAoB,GAAA,oBAAA,CAAqB,QAAU,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EAE/E,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC4I,WAAA;EAAA,IAAA3N,iBAAA,CAAA;EAAA,MACC,EAAK,EAAA,aAAA;EAAA,MACL,UAAA;EAAA,MACA,SAAA;EAAA,MACA,aAAgB,EAAA,WAAA;EAAA,KACX,EAAA,IAAA,CAAA;EAAA,IAEH,iBAAA;EAAA,GACJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7Ba,QAAA,SAAA,GAAY,CAAC,EAgBJ,KAAA;EAhBI,EACxB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,aAAgB,GAAA,IAAA;EAAA,IAChB,YAAe,GAAA,IAAA;EAAA,IACf,QAAW,GAAA,IAAA;EAAA,IACX,IAAI,IAAO,GAAA,KAAA;EAAA,IACX,YAAe,GAAA,IAAA;EAAA,IACf,WAAc,GAAA,KAAA;EAAA,IACd,SAAY,GAAA,QAAA;EAAA,IACZ,QAAQ,KAAQ,GAAA,aAAA;EAAA,IAChB,SAAS,MAAS,GAAA,CAAA;EAAA,IAClB,SAAS,MAAS,GAAA,CAAA;EAAA,IAClB,UAAa,GAAA,CAAA;EAAA,IACb,SAAY,GAAA,CAAA;EAAA,IACZ,oBAAuB,GAAA8E,cAAA;EAAA,GArBzB,GAO0B,EAerB,EAAA,IAAA,GAAAC,YAAA,CAfqB,EAerB,EAAA;EAAA,IAdH,UAAA;EAAA,IACA,eAAA;EAAA,IACA,cAAA;EAAA,IACA,UAAA;EAAA,IACA,IAAA;EAAA,IACA,cAAA;EAAA,IACA,aAAA;EAAA,IACA,WAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAA;EAAA,IACA,SAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,sBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,UAAa,GAAA,WAAA,CAAY,aAAe,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EACpE,EAAM,MAAA,EAAE,SAAS,OAAQ,EAAA,GAAI,WAAW,SAAW,EAAA,KAAA,EAAO,QAAQ,MAAM,CAAA,CAAA;EACxE,EAAA,MAAM,aAAgB,GAAA,QAAA,CAAS,IAAM,EAAA,UAAA,EAAY,SAAS,CAAA,CAAA;EAC1D,EAAA,MAAM,WAAW,gBAAiB,CAAA,IAAA,EAAM,SAAW,EAAA,YAAA,EAAc,UAAU,oBAAoB,CAAA,CAAA;EAC/F,EAAA,MAAM,iBAAoB,GAAA,oBAAA,CAAqB,QAAU,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EAE/E,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC6I,eAAA;EAAA,IAAA5N,iBAAA,CAAA;EAAA,MACC,EAAK,EAAA,aAAA;EAAA,MACL,UAAA;EAAA,MACA,OAAA;EAAA,MACA,OAAA;EAAA,MACA,aAAgB,EAAA,WAAA;EAAA,KACX,EAAA,IAAA,CAAA;EAAA,IAEH,iBAAA;EAAA,GACJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACOa,QAAA,QAAA,GAAW,CAAC,EAYJ,KAAA;EAZI,EACvB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,aAAgB,GAAA,IAAA;EAAA,IAChB,YAAe,GAAA,IAAA;EAAA,IACf,QAAW,GAAA,IAAA;EAAA,IACX,IAAI,IAAO,GAAA,KAAA;EAAA,IACX,YAAe,GAAA,IAAA;EAAA,IACf,WAAc,GAAA,KAAA;EAAA,IACd,UAAa,GAAA,CAAA;EAAA,IACb,SAAY,GAAA,CAAA;EAAA,IACZ,oBAAuB,GAAA8E,cAAA;EAAA,GA3DzB,GAiDyB,EAWpB,EAAA,IAAA,GAAAC,YAAA,CAXoB,EAWpB,EAAA;EAAA,IAVH,UAAA;EAAA,IACA,eAAA;EAAA,IACA,cAAA;EAAA,IACA,UAAA;EAAA,IACA,IAAA;EAAA,IACA,cAAA;EAAA,IACA,aAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,sBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,UAAa,GAAA,WAAA,CAAY,aAAe,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EACpE,EAAA,MAAM,aAAgB,GAAA,QAAA,CAAS,IAAM,EAAA,UAAA,EAAY,SAAS,CAAA,CAAA;EAC1D,EAAA,MAAM,WAAW,gBAAiB,CAAA,IAAA,EAAM,SAAW,EAAA,YAAA,EAAc,UAAU,oBAAoB,CAAA,CAAA;EAC/F,EAAA,MAAM,iBAAoB,GAAA,oBAAA,CAAqB,QAAU,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EAE/E,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC8I,cAAA;EAAA,IAAA7N,iBAAA,CAAA;EAAA,MACC,EAAK,EAAA,aAAA;EAAA,MACL,UAAA;EAAA,MACA,aAAgB,EAAA,WAAA;EAAA,KACX,EAAA,IAAA,CAAA;EAAA,IAEH,iBAAA;EAAA,GACJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1Ba,QAAA,OAAA,GAAU,CAAC,EAYJ,KAAA;EAZI,EACtB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAc,WAAA,GAAA,KAAA;EAAA,IACd,MAAS,GAAA,KAAA;EAAA,IACT,QAAA;EAAA,IACA,SAAY,GAAA,OAAA;EAAA,IACZ,UAAa,GAAA,KAAA;EAAA,IACb,IAAO,GAAA,IAAA;EAAA,IACP,OAAA;EAAA,IACA,SAAY,GAAA,IAAA;EAAA,IACZ,WAAc,GAAA,MAAA;EAAA,IACd,SAASqE,iBAAW,CAAA,OAAA;EAAA,GA7DtB,GAmDwB,EAWnB,EAAA,IAAA,GAAAU,YAAA,CAXmB,EAWnB,EAAA;EAAA,IAVH,aAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,MAAA;EAAA,IACA,SAAA;EAAA,IACA,WAAA;EAAA,IACA,aAAA;EAAA,IACA,QAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,EAAE,SAAU,EAAA,GAAII,2BAAoB,SAAW,EAAA,EAAE,MAAM,CAAA,CAAA;EAC7D,EAAA,MAAM,WAAc,GAAA,oBAAA;EAAA,IAClB,QAAA;EAAA,IACA,EAAE,OAAQ,EAAA;EAAA,IACV,CAAC,MAAQ,EAAA,CAAA,KAAM,CAAM,KAAA,CAAA;EAAA,GACvB,CAAA;EAEA,EAAM,MAAA,aAAA,GAAgB,CAAC,CAA2B,KAAA;EAChD,IAAI,IAAA,CAAA,CAAE,QAAQ,QAAU,EAAA;EACtB,MAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;EAClB,MAAA,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,EAAA,CAAA;EAAA,KACF;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,YAAA,GAAe,CAAC,SAAsB,KAAA;EAC1C,IAAM,MAAA,UAAA,GAAa1F,eAAS,CAAA,OAAA,EAAS,SAAS,CAAA,CAAA;EAC9C,IAAO,OAAA,UAAA,CAAW,UAAU,CAAI,GAAA,EAAA,CAAA;EAAA,GAClC,CAAA;EAEA,EAAM,MAAA,cAAA,GAAiB,aAAa,IAAI,CAAA,CAAA;EACxC,EAAM,MAAA,UAAA,GAAa,aAAa,IAAI,CAAA,CAAA;EACpC,EAAA,MAAM,aACJ,WAAgB,KAAA,MAAA,GAAS,GAAM,GAAA,MAAA,CAAO,aAAa,MAAO,CAAA,UAAA,CAAA;EAE5D,EAAA,MAAM,EAAE,eAAA,EAAiB,WAAY,EAAA,GAAI,cAAe,CAAA;EAAA,IACtD,UAAA;EAAA,IACA,UAAA;EAAA,IACA,cAAA;EAAA,IACA,cAAgB,EAAA,SAAA;EAAA,GACjB,CAAA,CAAA;EAED,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACyF,SAAA;EAAA,IAAA;EAAA,MACC,CAAI,EAAA,eAAA;EAAA,MACJ,OAAA,EAAU,MAAU,IAAA,UAAA,GAAa,SAAY,GAAA,MAAA;EAAA,KAAA;EAAA,wCAE5CgD,YACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,KAAA;EAAA,MAAA;EAAA,QACC,SAAA;EAAA,QACA,EAAK,EAAA,MAAA;EAAA,QACL,KAAQ,EAAA;EAAA,UACN,QAAQ,SAAU,CAAA,CAAA;EAAA,UAClB,KAAO,EAAA,eAAA;EAAA,UACP,MAAA;EAAA,SACF;EAAA,OAAA;EAAA,sBAEA,KAAA,CAAA,aAAA;EAAA,QAACR,UAAA;EAAA,QAAA1H,iBAAA,CAAA;EAAA,UACC,EAAK,EAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAAK,SAAL,CAAA,EAAA,EAAgB,GAAG,eAAgB,EAAA,CAAA;EAAA,UACxC,SAAY,EAAA,aAAA;EAAA,UACZ,QAAS,EAAA,UAAA;EAAA,UACT,QAAS,EAAA,QAAA;EAAA,UACT,SAAA,EAAY,SAAc,KAAA,MAAA,GAAS,aAAgB,GAAA,KAAA;EAAA,SAC9C,EAAA,IAAA,CAAA;EAAA,QAEH,WAAA,oBAAgB,KAAA,CAAA,aAAA,CAAA,YAAA,EAAAA,iBAAA,CAAA,EAAA,EAAkB,WAAc,CAAA,CAAA;EAAA,wBACjD,KAAA,CAAA,aAAA,CAAA0I,gBAAA,EAAA,EAAW,SACV,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC0E,YAAO,EAAA,EAAA,CAAA,EAAE,MAAO,EAAA,CAAA,EAAE,MAAO,EAAA,UAAA,EAAW,QACjC,EAAA,EAAA,WACJ,CACF,CAAA;EAAA,OACF;EAAA,KAEJ,CAAA;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrHa,QAAA,aAAA,GAAgB,CAAC,EAIJ,KAAA;EAJI,EAC5B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,OAAA;EAAA,GAdF,GAY8B,EAGzB,EAAA,IAAA,GAAArI,WAAA,CAHyB,EAGzB,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,EAAE,MAAO,EAAA,GAAII,0BAAoB,CAAA,SAAA,EAAW,EAAE,CAAA,CAAA;EAEpD,EAAA,uBACG,KAAA,CAAA,aAAA,CAAAuC,UAAA,EAAA1H,iBAAA,CAAA,EAAK,EAAK,EAAA,MAAA,EAAA,EAAc,IACrB,CAAA,EAAA,OAAO,QAAa,KAAA,QAAA,mBAAY,KAAA,CAAA,aAAA,CAAA,EAAA,EAAA,IAAA,EAAK,QAAU,CAAA,GAAQ,QACzD,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC8N,iBAAA;EAAA,IAAA;EAAA,MACC,YAAW,EAAA,eAAA;EAAA,MACX,QAAS,EAAA,OAAA;EAAA,MACT,KAAQ,EAAA,CAAA;EAAA,MACR,OAAU,EAAA,OAAA;EAAA,KAAA;EAAA,GAEd,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBa,QAAA,cAAA,GAAiB,CAAC,EAAwD,KAAA;EAAxD,EAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,GAAK,EAAI,EAAA,QAAA,KAAX,EAAwB,EAAA,IAAA,GAAA/I,WAAA,CAAxB,EAAwB,EAAA,CAAtB,IAAS,EAAA,UAAA,CAAA,CAAA,CAAA;EACxC,EAAA,MAAM,EAAE,IAAK,EAAA,GAAII,0BAAoB,CAAA,SAAA,EAAW,EAAE,CAAA,CAAA;EAElD,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACuC,UAAA;EAAA,IAAA1H,iBAAA,CAAA;EAAA,MACC,EAAA,EAAKwB,WAAM,CAAA,IAAA,EAAM,EAAE,CAAA;EAAA,KACd,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACba,QAAA,aAAA,GAAgB,CAAC,EAA8C,KAAA;EAA9C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAThC,QAAA,EAAA,GAS8B,EAAe,EAAA,IAAA,GAAAuD,WAAA,CAAf,IAAe,CAAb,UAAA,CAAA,CAAA,CAAA;EAC9B,EAAA,MAAM,EAAE,MAAO,EAAA,GAAII,0BAAoB,CAAA,SAAA,EAAW,EAAE,CAAA,CAAA;EAEpD,EAAA,uBACG,KAAA,CAAA,aAAA,CAAAuC,UAAA,EAAA1H,iBAAA,CAAA,EAAK,EAAK,EAAA,MAAA,EAAA,EAAc,OACrB,QACJ,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTa,QAAA,KAAA,GAAQ,CAAC,EAMP,KAAA;EANO,EACpB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAO,IAAA,GAAA,IAAA;EAAA,IACP,QAAA;EAAA,IACA,IAAA;EAAA,IACA,KAAA;EAAA,GAZF,GAQsB,EAKjB,EAAA,IAAA,GAAA+E,WAAA,CALiB,EAKjB,EAAA;EAAA,IAJH,MAAA;EAAA,IACA,UAAA;EAAA,IACA,MAAA;EAAA,IACA,OAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACgJ,WAAA;EAAA,IAAA/N,iBAAA,CAAA;EAAA,MACC,IAAA;EAAA,MACA,EAAK,EAAA,IAAA;EAAA,MACL,QAAA;EAAA,MACA,KAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,GACP,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDW,QAAA,UAAA,GAAa,CAAC,EAKP,KAAA;EALO,EACzB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAY,SAAA,GAAA,KAAA;EAAA,IACZ,QAAA;EAAA,IACA,IAAA;EAAA,GAvBF,GAoB2B,EAItB,EAAA,IAAA,GAAA+E,WAAA,CAJsB,EAItB,EAAA;EAAA,IAHH,WAAA;EAAA,IACA,UAAA;EAAA,IACA,MAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAC,uBAAA,KAAA,CAAA,aAAA,CAAAiJ,gBAAA,EAAAhO,iBAAA,CAAA,EAAiB,MAAc,EAAK,EAAA,IAAA,EAAA,EAAY,uBAC9C,KAAA,CAAA,aAAA,CAAAuH,WAAA,EAAA,EAAM,SAA0B,EAAA,EAAA,QAAU,CAC7C,CAAA,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbK,QAAM,eAAkB,GAAAhC,gBAAA,CAAiD,CAAC,EAAA,EAS9E,GAAK,KAAA;EATyE,EAC/E,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAU,gBAAmB,GAAAT,cAAA;EAAA,GAtB/B,GAeiF,EAQ5E,EAAA,IAAA,GAAAC,WAAA,CAR4E,EAQ5E,EAAA;EAAA,IAPH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA,CAACG,SAAI,EAAA,EAAA,CAAA,EAAI,KAAQ,GAAA,MAAA,GAAS,aACxB,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAAlF,iBAAA,CAAA;EAAA,QACC,IAAA;EAAA,QACA,QAAA,EAAW,CAAC,CAAM,KAAA;EAAE,UAAA,QAAA,CAAS,CAAC,CAAA,CAAA;EAAG,UAAA,gBAAA,CAAiB,CAAC,CAAA,CAAA;EAAA,SAAE;EAAA,QACrD,SAAA;EAAA,QACA,KAAA;EAAA,QACA,aAAY,EAAA,2BAAA;EAAA,OACP,EAAA,IAAA,CAAA;EAAA,MAEH,QAAA;EAAA,KACJ;EAAA,GAGN,CAAA,CAAA;EAAA,CACD;;EChDM,MAAM,iBAAoB,GAAA,GAAA,CAAA;EAC1B,MAAM,mBAAsB,GAAA,EAAA;;ECKnC,MAAM,QAAW,GAAA;EAAA,EACf,MAAQ,EAAA,EAAE,KAAO,EAAA,IAAA,EAAM,SAAS,CAAE,EAAA;EAAA,EAClC,QAAU,EAAA,EAAE,KAAO,EAAA,IAAA,EAAM,SAAS,GAAI,EAAA;EACxC,CAAA,CAAA;EAEO,MAAM,eAAe,CAAC;EAAA,EAC3B,QAAA;EAAA,EACA,QAAW,GAAA,KAAA;EAAA,EACX,SAAY,GAAA,iBAAA;EAAA,EACZ,UAAa,GAAA,iBAAA;EACf,CAAA,yCACGiO,mBAAO,CAAA,GAAA,EAAP,EAAW,OAAU,EAAA,QAAA,GAAW,WAAW,UAAa,EAAA,QAAA,EAAA,kBACtD,KAAA,CAAA,aAAA,CAAAT,YAAA,EAAA,EAAO,MAAO,CAAG,EAAA,SAAA,CAAA,EAAA,CAAA,EAAgB,GAAI,CAAG,EAAA,UAAA,CAAA,GAAA,CAAA,EAAA,EACrC,QACJ,CACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECbW,MAAA,aAAA,GAAgB,CAAC,EAIJ,KAAA;EAJI,EAC5B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,OAAA;EAAA,IACA,SAAA;EAAA,GAVF,GAQ8B,EAGzB,EAAA,IAAA,GAAAzI,WAAA,CAHyB,EAGzB,EAAA;EAAA,IAFH,SAAA;EAAA,IACA,WAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,EAAE,KAAM,EAAA,GAAII,yBAAoB,CAAA,UAAA,EAAY,EAAE,CAAA,CAAA;EAEpD,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACqI,YAAA;EAAA,IAAAxN,iBAAA,CAAA;EAAA,MACC,EAAK,EAAA,KAAA;EAAA,MACL,OAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,wCAEJ,UAAW,EAAA,EAAA,YAAA,EAAa,CAAoB,iBAAA,EAAA,SAAA,CAAA,CAAA,EAAc,SAAQ,OAAQ,EAAA,IAAA,EAAK,IAC9E,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,EAAK,EAAA,SAAA,KAAc,OAAU,GAAAiL,uBAAA,GAAoBD,wBAAmB,CAC5E,CAAA;EAAA,GACF,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqEa,QAAA,QAAA,GAAW,CAAC,EAWJ,KAAA;EAXI,EACvB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,UAAa,GAAA,IAAA;EAAA,IACb,SAAY,GAAA,IAAA;EAAA,IACZ,OAAO,eAAkB,GAAA,CAAA;EAAA,IACzB,QAAW,GAAAlG,cAAA;EAAA,IACX,SAAY,GAAA,iBAAA;EAAA,IACZ,UAAa,GAAA,iBAAA;EAAA,IACb,OAAU,GAAA,mBAAA;EAAA,IACV,iBAAiB,EAAC;EAAA,GAxGpB,GA+FyB,EAUpB,EAAA,IAAA,GAAAC,WAAA,CAVoB,EAUpB,EAAA;EAAA,IATH,UAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,SAAA;EAAA,IACA,gBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,QAAA,EAAU,WAAY,CAAA,GAAIjG,eAAS,KAAK,CAAA,CAAA;EAChD,EAAA,MAAM,CAAE,cAAA,EAAgB,iBAAkB,CAAA,GAAIA,eAAS,CAAC,CAAA,CAAA;EACxD,EAAA,MAAM,CAAE,WAAA,EAAa,cAAe,CAAA,GAAIA,eAAS,CAAC,CAAA,CAAA;EAClD,EAAM,MAAA,CAAA,GAAIoP,4BAAe,CAAC,CAAA,CAAA;EAC1B,EAAA,MAAM,EAAE,KAAO,EAAA,SAAA,KAAc/I,yBAAoB,CAAA,UAAA,EAAY,EAAE,CAAA,CAAA;EAE/D,EAAM,MAAA,eAAA,GAAkBjF,cAAS,CAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;EACjD,EAAM,MAAA,gBAAA,GAAmBA,cAAS,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;EAChD,EAAA,MAAM,qBAAqB,SAAY,GAAA,OAAA,CAAA;EACvC,EAAA,MAAM,aAAa,kBAAqB,GAAA,gBAAA,CAAA;EAExC,EAAM,MAAA,YAAA,GAAehB,aAAY,IAAI,CAAA,CAAA;EAErC,EAAAH,eAAA,CAAU,MAAM;EACd,IAAkB,iBAAA,CAAA,YAAA,CAAa,QAAQ,WAAW,CAAA,CAAA;EAAA,GACpD,EAAG,EAAE,CAAA,CAAA;EAEL,EAAM,MAAA,OAAA,GAAU,MAAM,EAAE,WAAc,GAAA,kBAAA,CAAA,CAAA;EAEtC,EAAA,MAAM,oBAAoB,MAAM;EAC9B,IAAe,cAAA,CAAA,IAAA,CAAK,IAAI,IAAK,CAAA,KAAA,CAAM,EAAE,GAAI,EAAA,GAAI,kBAAkB,CAAC,CAAC,CAAA,CAAA;EAAA,GACnE,CAAA;EAEA,EAAAA,eAAA,CAAU,MAAM;EACd,IAAQoP,oBAAA,CAAA,CAAA,EAAG,SAAS,CAAA,CAAA;EACpB,IAAA,QAAA,CAAS,WAAW,CAAA,CAAA;EAAA,GACtB,EAAG,CAAE,WAAY,CAAC,CAAA,CAAA;EAElB,EAAApP,eAAA,CAAU,MAAM;EACd,IAAA,cAAA,CAAe,eAAe,CAAA,CAAA;EAAA,GAChC,EAAG,CAAE,eAAgB,CAAC,CAAA,CAAA;EAEtB,EAAA,MAAM,wBAAwB,MAAM;EAClC,IAAA,cAAA;EAAA,MAAe,CAAC,IACb,KAAA,WAAA,KAAgB,gBAAmB,GAAA,CAAA,GAAI,IAAI,IAAO,GAAA,CAAA;EAAA,KACrD,CAAA;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,uBAAuB,MAAM;EACjC,IAAA,cAAA;EAAA,MAAe,CAAC,IACb,KAAA,WAAA,KAAgB,CAAI,GAAA,gBAAA,GAAmB,IAAI,IAAO,GAAA,CAAA;EAAA,KACrD,CAAA;EAAA,GACF,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACmG,SAAA;EAAA,IAAAlF,iBAAA,CAAA;EAAA,MACC,MAAA,EAAS,WAAW,UAAa,GAAA,MAAA;EAAA,MACjC,WAAA,EAAc,MAAM,WAAA,CAAY,IAAI,CAAA;EAAA,MACpC,SAAA,EAAY,MAAM,WAAA,CAAY,KAAK,CAAA;EAAA,MACnC,GAAM,EAAA,YAAA;EAAA,MACN,EAAA,EAAK,CAAI,EAAA,CAAA,cAAA,GAAiB,SAAa,IAAA,CAAA,CAAA,EAAA,CAAA;EAAA,MACvC,EAAK,EAAA,SAAA;EAAA,KACA,EAAA,IAAA,CAAA;EAAA,oBAEL,KAAA,CAAA,aAAA;EAAA,MAACiO,mBAAO,CAAA,GAAA;EAAA,MAAP;EAAA,QACC,IAAK,EAAA,GAAA;EAAA,QACL,KAAQ,EAAA;EAAA,UACN,OAAO,CAAG,EAAA,UAAA,CAAA,EAAA,CAAA;EAAA,UACV,MAAQ,EAAA,MAAA;EAAA,UACR,CAAA;EAAA,SACF;EAAA,QACA,iBAAkB,EAAE,KAAA,EAAO,GAAG,IAAM,EAAA,EAAE,aAAa,SAAW,CAAA,EAAA;EAAA,QAC9D,SAAY,EAAA,iBAAA;EAAA,OAAA;EAAA,sBAEZ,KAAA,CAAA,aAAA;EAAA,QAAC1H,YAAA;EAAA,QAAAvG,iBAAA,CAAA;EAAA,UACC,SAAU,CAAG,EAAA,OAAA,CAAA,EAAA,CAAA;EAAA,UACb,OAAQ,CAAG,EAAA,UAAA,CAAA,EAAA,CAAA;EAAA,UACX,CAAE,EAAA,MAAA;EAAA,SACG,EAAA,cAAA,CAAA;EAAA,QAEH,eAAgB,CAAA,GAAA,CAAI,CAAC,KAAA,EAAO,KAC5B,qBAAA,KAAA,CAAA,aAAA;EAAA,UAAC,YAAA;EAAA,UAAA;EAAA,YACC,UAAW,KAAU,KAAA,WAAA;EAAA,YACrB,SAAA;EAAA,YACA,UAAA;EAAA,YACA,KAAM,CAAiB,cAAA,EAAA,KAAA,CAAA,CAAA;EAAA,WAAA;EAAA,UAErB,KAAA;EAAA,SAEL,CAAA;EAAA,OACH;EAAA,KACF;EAAA,IACE,SACA,oBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAA;EAAA,QACC,UAAW,CAAC,GAAA,KAAQ,eAAe,QAAS,CAAA,GAAA,EAAK,EAAE,CAAC,CAAA;EAAA,QACpD,OAAQ,CAAG,EAAA,WAAA,CAAA,CAAA;EAAA,QACX,EAAK,EAAA,KAAA;EAAA,OAAA;EAAA,0CAEJuG,YACG,EAAA,IAAA,EAAA,eAAA,CAAgB,GAAI,CAAA,CAAC,QAAQ,CAC7B,qBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,KAAA;EAAA,QAAA;EAAA,UACC,OAAQ,CAAG,EAAA,CAAA,CAAA,CAAA;EAAA,UACX,IAAK,EAAA,IAAA;EAAA,UACL,KAAM,CAAkB,eAAA,EAAA,CAAA,CAAA,CAAA;EAAA,SAAA;EAAA,OAE3B,CACH,CAAA;EAAA,KACF;EAAA,IAEA,8BAEE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,aAAA;EAAA,MAAA;EAAA,QACC,SAAU,EAAA,MAAA;EAAA,QACV,OAAU,EAAA,oBAAA;EAAA,QACV,IAAK,EAAA,GAAA;EAAA,OAAA;EAAA,KAEP,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,aAAA;EAAA,MAAA;EAAA,QACC,SAAU,EAAA,OAAA;EAAA,QACV,OAAU,EAAA,qBAAA;EAAA,QACV,KAAM,EAAA,GAAA;EAAA,OAAA;EAAA,KAEV,CAAA;EAAA,GAEJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;EC1Na,MAAA,eAAA,GAAkB,CAC7B,EAAA,KAEA/E,WAAM,CAAA;EAAA,EACJ,SAAW,EAAA,CAAC,QAAc,KAAAjB,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACrB,QADqB,CAAA,EAAA;EAAA,IAExB,KAAO,EAAA,MAAA;EAAA,IACP,KAAO,EAAA,cAAA;EAAA,IACP,SAAW,EAAA,QAAA;EAAA,GACb,CAAA;EAAA,EACA,MAAQ,EAAA,CAAC,QAAU,EAAA,KAAA,KAAWO,sCACzB,QADyB,CAAA,EAAA;EAAA,IAE5B,UAAA,EAAY,MAAM,SAAa,IAAA,gCAAA;EAAA,IAC/B,OAAS,EAAA;EAAA,MACP,UAAY,EAAA,iCAAA;EAAA,KACd;EAAA,GACF,CAAA;EAAA,EACA,cAAgB,EAAA,CAAC,QAAc,KAAAA,eAAA,CAAAP,iBAAA,CAAA,EAAA,EAC1B,QAD0B,CAAA,EAAA;EAAA,IAE7B,kBAAoB,EAAA,+BAAA;EAAA,GACtB,CAAA;EAAA,EACA,WAAa,EAAA,CAAC,QAAc,KAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACvB,QADuB,CAAA,EAAA;EAAA,IAE1B,KAAO,EAAA,qBAAA;EAAA,GACT,CAAA;EAAA,EACA,WAAa,EAAA,CAAC,QAAc,KAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACvB,QADuB,CAAA,EAAA;EAAA,IAE1B,KAAO,EAAA,yBAAA;EAAA,GACT,CAAA;EAAA,EACA,UAAA,EAAY,CAAC,QAAA,EAAU,KAAU,KAAA;EAjCrC,IAAA,IAAA,EAAA,CAAA;EAkCM,IAAM,MAAA,UAAA,GAAa,MAAM,IAAK,CAAA,OAAA,GAC1B,uCACA,EAAM,GAAA,KAAA,CAAA,IAAA,CAAK,KAAX,KAAA,IAAA,GAAA,EAAA,GAAoB,QAAS,CAAA,OAAA,CAAA;EACjC,IAAA,OAAOA,wDACF,QADE,CAAA,EAAA;EAAA,MAEL,OAAS,EAAA,UAAA;EAAA,MACT,KAAA,EAAO,iBAAiB,UAAU,CAAA;EAAA,KAAA,CAAA,EAC/B,EAAG,CAAA,UAAA,CAAA,CAAA;EAAA,GAEV;EAAA,EACA,QAAU,EAAA,CAAC,QAAc,KAAAO,eAAA,CAAAP,iBAAA,CAAA,EAAA,EACpB,QADoB,CAAA,EAAA;EAAA,IAEvB,OAAS,EAAA,oBAAA;EAAA,GACX,CAAA;EACF,CAAA,EAA8B,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EChC3B,SAAS,cACd,UACA,EAAA;EACA,EAAO,OAAAwB,WAAA;EAAA,IACL;EAAA,MACE,IAAM,EAAA,CAAC,KACL,qBAAA,KAAA,CAAA,aAAA,CAAC0D,aAAI,aAAY,EAAA,6BAAA,EAAA,kBACd,KAAA,CAAA,aAAA,CAAAkJ,kCAAA,CAAiB,IAAjB,EAAApO,iBAAA,CAAA,EAAA,EAA2B,KACxB,CAAA,EAAA,KAAA,CAAM,QACV,CACF,CAAA;EAAA,MAEF,iBAAA,EAAmB,CAAC,KACjB,KAAA,KAAA,CAAM,YAAY,IACjB,mBAAA,KAAA,CAAA,aAAA,CAACoO,kCAAiB,CAAA,iBAAA,EAAjBpO,iBAAwC,CAAA,EAAA,EAAA,KAAA,CAAA,sCACtC,IAAK,EAAA,EAAA,EAAA,EAAK,KAAM,CAAA,WAAA,CAAY,IAAO,EAAA,CACtC,oBAEC,KAAA,CAAA,aAAA,CAAAoO,kCAAA,CAAiB,iBAAjB,EAAApO,iBAAA,CAAA,EAAA,EAAwC,KAAQ,CAAA,CAAA;EAAA,MAErD,MAAA,EAAQ,CAAC,KACN,KAAA,KAAA,CAAM,YAAY,YACjB,mBAAA,KAAA,CAAA,aAAA,CAACoO,kCAAiB,CAAA,MAAA,EAAjBpO,iBAA6B,CAAA,EAAA,EAAA,KAAA,CAAA,EAC1B,MAAM,WAAY,CAAA,YAAA,CAAa,MAAM,IAAI,CAC7C,oBAEC,KAAA,CAAA,aAAA,CAAAoO,kCAAA,CAAiB,MAAjB,EAAApO,iBAAA,CAAA,EAAA,EAA6B,KAAQ,CAAA,CAAA;EAAA,MAE1C,mBAAA,EAAqB,CACnB,KAEC,KAAA,KAAA,CAAM,YAAY,SACjB,mBAAA,KAAA,CAAA,aAAA,CAACoO,kCAAiB,CAAA,mBAAA,EAAjBpO,iBAA0C,CAAA,EAAA,EAAA,KAAA,CAAA,EACvC,MAAM,WAAY,CAAA,SAAA,CAAU,MAAM,IAAI,CAC1C,oBAEC,KAAA,CAAA,aAAA,CAAAoO,kCAAA,CAAiB,mBAAjB,EAAApO,iBAAA,CAAA,EAAA,EAA0C,KAAQ,CAAA,CAAA;EAAA,MAEvD,OAAA,EAAS,CAAC,EAGiC,KAAA;EAHjC,QACR,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,UAAA,QAAA;EAAA,SAvDR,GAsDgB,EAEL,EAAA,KAAA,GAAA+E,WAAA,CAFK,EAEL,EAAA;EAAA,UADH,UAAA;EAAA,SAAA,CAAA,CAAA;EAGC,QAAA,OAAA,KAAA,CAAM,WAAY,CAAA,aAAA,mBAChB,KAAA,CAAA,aAAA,CAAAqJ,kCAAA,CAAiB,OAAjB,EAAApO,iBAAA,CAAA,EAAA,EAA8B,KAC7B,CAAA,kBAAA,KAAA,CAAA,aAAA,CAACuG,YAAO,EAAA,EAAA,CAAA,EAAE,MAAO,EAAA,EAAA,EAAG,OAChB,KAAM,CAAA,WAAA,CAAY,aACpB,kBAAA,KAAA,CAAA,aAAA,CAACA,YAAO,EAAA,EAAA,CAAA,EAAE,MAAO,EAAA,OAAA,EAAQ,mBACrB,QACJ,CACF,CACF,CAAA,mBAEC,KAAA,CAAA,aAAA,CAAA6H,kCAAA,CAAiB,OAAjB,EAAApO,iBAAA,CAAA,EAAA,EAA8B,QAC3B,QACJ,CAAA,CAAA;EAAA,OAAA;EAAA,KAEN;EAAA,IACA,cAAc,EAAC;EAAA,GACjB,CAAA;EACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3DO,QAAM,SAAY,GAAAuF,gBAAA;EAAA,EACvB,CAA2D,IAmBzD,GACG,KAAA;EApBsD,IACzD,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,MAAA,cAAA,GAAiB,EAAC;EAAA,MAClB,OAAA;EAAA,MACA,YAAe,GAAA,IAAA;EAAA,MACf,SAAY,GAAA,IAAA;EAAA,MACZ,KAAK,EAAC;EAAA,MACN,iBAAoB,GAAA,GAAA;EAAA,MACpB,aAAa,gBAAmB,GAAA,IAAA;EAAA,MAChC,kBAAqB,GAAA,IAAA;EAAA,MACrB,iBAAoB,GAAA,KAAA;EAAA,MACpB,QAAW,GAAAT,cAAA;EAAA,MACX,KAAQ,GAAAA,cAAA;EAAA,MACR,QAAW,GAAAA,cAAA;EAAA,MACX,aAAe,EAAA,MAAA;EAAA,MACf,KAAA;EAAA,MACA,mBAAsB,GAAAA,cAAA;EAAA,MACtB,IAAO,GAAAuJ,eAAA;EAAA,KAjCX,GAiB6D,EAiBtD,EAAA,IAAA,GAAAtJ,WAAA,CAjBsD,EAiBtD,EAAA;EAAA,MAhBH,gBAAA;EAAA,MACA,SAAA;EAAA,MACA,cAAA;EAAA,MACA,WAAA;EAAA,MACA,IAAA;EAAA,MACA,mBAAA;EAAA,MACA,aAAA;EAAA,MACA,oBAAA;EAAA,MACA,mBAAA;EAAA,MACA,UAAA;EAAA,MACA,OAAA;EAAA,MACA,UAAA;EAAA,MACA,aAAA;EAAA,MACA,OAAA;EAAA,MACA,qBAAA;EAAA,MACA,MAAA;EAAA,KAAA,CAAA,CAAA;EAKA,IAAA,MAAM,CAAE,QAAA,EAAU,WAAY,CAAA,GAAIjG,eAAS,cAAc,CAAA,CAAA;EACzD,IAAA,MAAM,CAAE,WAAA,EAAa,cAAe,CAAA,GAAIA,eAAS,EAAE,CAAA,CAAA;EACnD,IAAA,MAAM,gBAAmB,GAAAiM,aAAA;EAAA,MACvB,MAAM,+BAA+B,iBAAiB,CAAA;EAAA,MACtD,CAAE,iBAAkB,CAAA;EAAA,KACtB,CAAA;EACA,IAAA,MAAM,eAAe,kBAAyB,CAAA;EAAA,MAC5C,QAAA;EAAA,MACA,KAAA;EAAA,MACA,QAAA;EAAA,MACA,OAAA;EAAA,MACA,OAAOnE,QAAG,CAAA,KAAA,EAAO,KAAK,CAAA,GAAI,QAAe,EAAC;EAAA,KAC3C,CAAA,CAAA;EAED,IAAA,MAAM,gBAAmB,GAAAmE,aAAA;EAAA,MACvB,MAAM,aAAiB,EAAA;EAAA,MACvB,EAAC;EAAA,KACH,CAAA;EAEA,IAAM,MAAA,YAAA,GAAe,CAAC,KAAkB,KAAA;EACtC,MAAA,IAAI,OAAO,cAAmB,KAAA,SAAA;EAAW,QAAA,OAAO,EAAC,CAAA;EACjD,MAAO,OAAAuD,YAAA;EAAA,QACL,CAAC,MAAA,KACCC,UAAK,CAAA,IAAI,MAAO,CAAA5E,aAAA,CAAQ,KAAK,CAAA,EAAG,GAAG,CAAA,EAAGA,aAAQ,CAAA,MAAA,CAAO,KAAK,CAAC,CAAA;EAAA,QAC7D,cAAA;EAAA,OACF,CAAA;EAAA,KACF,CAAA;EACA,IAAM,MAAA,UAAA,GAAa,OAAO,KAAkB,KAAA;EAC1C,MAAA,MAAM,aAAa,gBACf,GAAA,MAAM,iBAAiB,KAAK,CAAA,GAC5B,aAAa,KAAK,CAAA,CAAA;EACtB,MAAA,WAAA,CAAY,CAAC,IAAS,KAAA;EAGpB,QAAA,IAAI,OAAO,IAAS,KAAA,SAAA;EAAW,UAAO,OAAA,IAAA,CAAA;EACtC,QAAO,OAAA,UAAA,CAAA;EAAA,OACR,CAAA,CAAA;EAED,MAAO,OAAA,UAAA,CAAA;EAAA,KACT,CAAA;EAEA,IAAA,MAAM,WAAc,GAAA,gBAAA,CAAiB,OACnC,KAAA,EACA,QACG,KAAA;EACH,MAAM,MAAA,UAAA,GAAa,MAAM,UAAA,CAAW,KAAK,CAAA,CAAA;EACzC,MAAA,QAAA,CAAS,UAAU,CAAA,CAAA;EACnB,MAAA,OAAO,EAAC,CAAA;EAAA,KACT,CAAA,CAAA;EAED,IAAA,MAAM,aAAgB,GAAA,CAAC,CAAW,EAAA,EAAE,QAA8B,KAAA;EAChE,MAAI,IAAA,kBAAA,IAAsB,WAAW,WAAa,EAAA;EAChD,QAAA,cAAA,CAAe,CAAC,CAAA,CAAA;EAChB,QAAA,mBAAA,CAAoB,CAAC,CAAA,CAAA;EACrB,QAAA,IAAI,MAAM,EAAI,EAAA;EACZ,UAAA,WAAA,CAAY,cAAc,CAAA,CAAA;EAAA,SAC5B;EAAA,OACF;EAAA,KACF,CAAA;EAEA,IAAA,uBACG,KAAA,CAAA,aAAA,CAAAzE,SAAA,EAAA,EAAI,CAAE,EAAA,MAAA,EAAO,eAAc,MAC1B,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACsJ,6BAAA;EAAA,MAAAxO,iBAAA,CAAA;EAAA,QACC,YAAe,EAAA,IAAA;EAAA,QACf,cAAiB,EAAA,QAAA;EAAA,QACjB,WAAA;EAAA,QACA,QAAW,EAAA,YAAA;EAAA,QACX,WAAY,EAAA,WAAA;EAAA,QACZ,YAAA,EAAe,gBAAgB,EAAE,CAAA;EAAA,QACjC,OAAA;EAAA,QACA,cAAiB,EAAA,IAAA;EAAA,QACjB,mBAAoB,EAAA,OAAA;EAAA,QACpB,mBAAsB,EAAA,KAAA;EAAA,QACtB,iBAAA;EAAA,QACA,WAAc,EAAA,KAAA;EAAA,QACd,aAAgB,EAAA,aAAA;EAAA,QAChB,UAAa,EAAA,WAAA;EAAA,QACb,YAAA;EAAA,QACA,SAAA;EAAA,QACA,IAAA;EAAA,QACA,UAAa,EAAA,gBAAA;EAAA,QACb,GAAA;EAAA,QACA,KAAA;EAAA,OACK,EAAA,IAAA,CAAA;EAAA,KAET,CAAA,CAAA;EAAA,GAEJ;EACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EClHA,MAAM,kBAAA,GAAqB,CAA4D,EAAA,EAYzD,GAAgC,KAAA;EAZyB,EACrF,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,SAAY,GAAA,QAAA;EAAA,IACZ,OAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,WAAc,GAAA,IAAA;EAAA,IACd,UAAU,gBAAmB,GAAA8E,cAAA;EAAA,IAC7B,gBAAA;EAAA,IACA,iBAAA;EAAA,GAtBF,GAYuF,EAWlF,EAAA,IAAA,GAAAC,WAAA,CAXkF,EAWlF,EAAA;EAAA,IAVH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,WAAA;EAAA,IACA,SAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,aAAA;EAAA,IACA,UAAA;EAAA,IACA,kBAAA;EAAA,IACA,mBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,iBAAoB,EAAA,IAAA;EAAA,MACpB,QAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,KAAO,EAAA,QAAA,uBACT,KAAA,CAAA,aAAA,CAAAwB,YAAA,EAAA,EAAO,GAAE,MACR,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,iBAAA;EAAA,MAAA;EAAA,QACC,gBAAA;EAAA,QACA,iBAAA;EAAA,OAAA;EAAA,sBAEA,KAAA,CAAA,aAAA;EAAA,QAAC,SAAA;EAAA,QAAAvG,iBAAA,CAAA;EAAA,UACC,IAAA;EAAA,UACA,OAAA;EAAA,UACA,QAAA,EAAW,CAAC,MAAA,EAAqB,KAAU,KAAA;EACzC,YAAA,QAAA;EAAA,cACE,OAAA,GACI,SACA,MAAO,CAAA,KAAA;EAAA,aACb,CAAA;EACA,YAAA,gBAAA,CAAiB,QAAmB,KAAK,CAAA,CAAA;EAAA,WAC3C;EAAA,UACA,KAAA;EAAA,SACK,EAAA,IAAA,CAAA;EAAA,OACP;EAAA,KAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAA;EAAA,QACC,cAAa,CAAG,EAAA,IAAA,CAAA,aAAA,CAAA;EAAA,QAChB,OAAQ,EAAA,QAAA;EAAA,QACR,IAAK,EAAA,IAAA;EAAA,QACL,QAAS,EAAA,IAAA;EAAA,QACT,MAAS,EAAAwD,aAAA,CAAQ,KAAK,CAAA,IAAK,CAAC,WAAA;EAAA,QAC5B,OAAU,EAAA,MAAM,QAAS,CAAA,EAAE,CAAA;EAAA,QAC3B,IAAO,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAKmI,iBAAc,EAAA,CAAA;EAAA,OAAA;EAAA,KAEpC,CAAA;EAAA,GAEJ,CAAA;EAAA,CAAA,CAAA;AAGW,QAAA,cAAA,GAAiBpG,iBAAW,kBAAkB;;;;;;;;;;;;;;;;;;ACzDpD,QAAM,WAAc,GAAA,CAAC,KAC1B,qBAAA,KAAA,CAAA,aAAA,CAACkJ,uCAAgB,KAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC6DpB,QAAM,GAAM,GAAAlJ,gBAAA,CAAsC,CAAC,EAAA,EAMvD,GAAK,KAAA;EANkD,EACxD,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,OAAU,GAAA,OAAA;EAAA,IACV,OAAA;EAAA,IACA,WAAA;EAAA,GA9EF,GA0E0D,EAKrD,EAAA,IAAA,GAAAR,WAAA,CALqD,EAKrD,EAAA;EAAA,IAJH,UAAA;EAAA,IACA,SAAA;EAAA,IACA,SAAA;EAAA,IACA,aAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC2J,SAAA;EAAA,IAAA1O,gBAAA,CAAA;EAAA,MACC,OAAA;EAAA,MACA,WAAA;EAAA,MACA,GAAA;EAAA,MACA,OAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAAA,CACD;;ECtFM,MAAM,oBAAoB,CAAC;EAAA,EAChC,gBAAA;EACF,CAAA,yCACG,GAAI,EAAA,EAAA,OAAA,EAAQ,UAAS,IAAK,EAAA,aAAA,EAAA,EAAc,KACpC,gBACL,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoBW,QAAA,QAAA,GAAW,CAAC,EAMJ,KAAA;EANI,EACvB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,GAAM,GAAA,QAAA;EAAA,IACN,OAAU,GAAA,GAAA;EAAA,uBACV2O,mBAAoB,GAAAC,iBAAA;EAAA,GAjCtB,GA6ByB,EAKpB,EAAA,IAAA,GAAA7J,WAAA,CALoB,EAKpB,EAAA;EAAA,IAJH,UAAA;EAAA,IACA,KAAA;EAAA,IACA,SAAA;EAAA,IACA,mBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,gBAAA,EAAkB,mBAAoB,CAAA,GAAIjG,eAAS,CAAC,CAAA,CAAA;EAC5D,EAAA,MAAM,EAAE,IAAA,EAAM,YAAa,EAAA,GAAI,gBAAiB,EAAA,CAAA;EAEhD,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACyH,YAAA;EAAA,IAAAvG,gBAAA,CAAA;EAAA,MACC,OAAQ,EAAA,oBAAA;EAAA,MACR,GAAM,EAAA,YAAA;EAAA,MACN,QAAS,EAAA,QAAA;EAAA,KACJ,EAAA,IAAA,CAAA;EAAA,oBAEL,KAAA,CAAA,aAAA,CAACuG,YAAO,EAAA,EAAA,OAAA,EAAA,kBACL,KAAA,CAAA,aAAA,CAAA,aAAA,EAAA,EAAc,KAAY,QAAW,EAAA,mBAAA,EAAsB,IACxD,EAAA,EAAA,QACJ,CACF,CAAA;EAAA,IACE,gBAAmB,GAAA,CAAA,oBAClB,KAAA,CAAA,aAAA,CAAAoI,mBAAA,EAAA,EAAkB,gBAAsC,EAAA,CAAA;EAAA,GAE7D,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpCO,QAAM,QAAW,GAAApJ,gBAAA;EAAA,EAA2C,CAAC,IAMjE,GAAK,KAAA;EAN4D,IAClE,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,MAAO,IAAA,GAAA,IAAA;EAAA,MACP,UAAA;EAAA,MACA,SAAY,GAAA,SAAA;EAAA,MACZ,OAAA;EAAA,KAxBF,GAoBoE,EAK/D,EAAA,IAAA,GAAAR,WAAA,CAL+D,EAK/D,EAAA;EAAA,MAJH,MAAA;EAAA,MACA,YAAA;EAAA,MACA,WAAA;EAAA,MACA,SAAA;EAAA,KAAA,CAAA,CAAA;EAGA,IAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,GAAA;EAAA,MAAA/E,gBAAA,CAAA;EAAA,QACC,GAAA;EAAA,QACA,MAAA,EAAS,aAAa,UAAa,GAAA,MAAA;EAAA,QACnC,OAAA,EAAU,OAAY,KAAA,UAAA,GAAa,UAAa,GAAA,KAAA,CAAA,CAAA;EAAA,QAChD,IAAA;EAAA,QACA,IAAK,EAAA,aAAA;EAAA,OACA,EAAA,IAAA,CAAA;EAAA,sBAEL,KAAA,CAAA,aAAA,CAAC6O,sBAAW,SAAW,CAAA;EAAA,0CACtBC,kBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAKC,uBAAkB,CAC/B,CAAA;EAAA,KACF,CAAA;EAAA,GAAA;EAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKa,QAAA,SAAA,GAAY,CAAC,EAMJ,KAAA;EANI,EACxB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,SAAA;EAAA,IACA,QAAA;EAAA,IACA,WAAc,GAAA,KAAA;EAAA,IACd,aAAe,EAAA,UAAA;EAAA,GAlDjB,GA8C0B,EAKrB,EAAA,IAAA,GAAAhK,WAAA,CALqB,EAKrB,EAAA;EAAA,IAJH,WAAA;EAAA,IACA,UAAA;EAAA,IACA,aAAA;EAAA,IACA,aAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAOI6C,GAAA,GAAAoH,iBAAA,CAAahP,gBAAK,CAAA,EAAA,EAAA,IAAA,CAAM,CAN1B,EAAA;EAAA,IAAA,UAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,GA1DJ,GA4DM4H,GADC,EAAA,KAAA,GAAA7C,WAAA,CACD6C,GADC,EAAA;EAAA,IALH,YAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,GAAA,CAAA,CAAA;EAGF,EAAA,IAAI,CAAC,SAAW,EAAA;EACd,IACE,uBAAA,KAAA,CAAA,aAAA,CAAC,YAAS,SAAwB,EAAA,CAAA,CAAA;EAAA,GAEtC;EAEA,EAAA,MAAM,sBAAyB,GAAA9H,oBAAA,CAAe,QAAQ,CAAA,GAClDC,mBAAa,QAAyB,EAAA;EAAA,IACtC,MAAA,EAAQ,aAAa,UAAa,GAAA,MAAA;EAAA,GACnC,CACC,GAAA,QAAA,CAAA;EAEJ,EAAM,MAAA,kBAAA,GAAqB,CAAC,WAAe,IAAA,SAAA,CAAA;EAE3C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACmF,SAAA;EAAA,IAAAlF,gBAAA,CAAAO,eAAA,CAAAP,gBAAA,CAAA;EAAA,MACC,GAAM,EAAA,UAAA;EAAA,KAAA,EACD,UAFN,CAAA,EAAA;EAAA,MAGC,SAAY,EAAAiP,aAAA,CAAI,SAAU,CAAA,QAAA,CAAS,SAAS,CAAA;EAAA,MAC5C,aAAgB,EAAA,IAAA;EAAA,MAChB,QAAA,EAAW,cAAc,CAAK,CAAA,GAAA,CAAA;EAAA,MAC9B,CAAE,EAAA,aAAA;EAAA,MACF,aAAc,EAAA,UAAA;EAAA,KACT,CAAA,EAAA,kBAAA,CAAA;EAAA,IAEH,OAAO,sBAA2B,KAAA,UAAA,GAChC,sBAAuB,CAAA,SAAA,EAAW,KAAK,CAAA,GACvC,sBACF,oBAAA,KAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,UAAA,EAA0B,SAAwB,EAAA,CAAA;EAAA,GAEhE,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDa,QAAA,SAAA,GAAY,CAAC,EAIJ,KAAA;EAJI,EACxB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,aAAe,EAAA,MAAA;EAAA,GA5CjB,GA0C0B,EAGrB,EAAA,IAAA,GAAAlK,WAAA,CAHqB,EAGrB,EAAA;EAAA,IAFH,UAAA;EAAA,IACA,aAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAiC6C,MAAAA,GAAAA,GAAAsH,iBAAa,CAAAlP,gBAAA,CAAA,EAAA,EACzC,IACJ,CAAA,CAAA,EAFO,cAAyB4H,GAAAA,GAAAA,EAAV,KAAUA,GAAAA,WAAAA,CAAAA,GAAAA,EAAV,CAAf,YAAA,CAAA,CAAA,CAAA;EAGR,EAAA,2CACG1C,SAAI,EAAA,EAAA,GAAA,EAAM,UAAa,EAAA,aAAA,EAAc,UAClC,OAAO,QAAA,KAAa,UAClB,GAAA,QAAA,CAAS,KAAK,CACd,GAAA,QAAA,oBAAa,KAAA,CAAA,aAAA,CAAAsI,YAAA,EAAA,IAAA,EAAO,WAAS,CACnC,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;AC5CO,QAAM,QAAW,GAAA,CAAC,KACvB,qBAAA,KAAA,CAAA,aAAA,CAAC2B,+CAAqB,KAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGnB,QAAA,YAAA,GAAe,CAAC,EAOJ,KAAA;EAPI,EAC3B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAY,SAAA,GAAA,SAAA;EAAA,IACZ,iBAAoB,GAAA,GAAA;EAAA,IACpB,QAAA;EAAA,IACA,WAAc,GAAA,KAAA;EAAA,IACd,aAAe,EAAA,UAAA;EAAA,GAtBjB,GAiB6B,EAMxB,EAAA,IAAA,GAAApK,WAAA,CANwB,EAMxB,EAAA;EAAA,IALH,WAAA;EAAA,IACA,mBAAA;EAAA,IACA,UAAA;EAAA,IACA,aAAA;EAAA,IACA,aAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAQI6C,GAAA,GAAAwH,oBAAA,CAAYpP,gBAAK,CAAA,EAAA,EAAA,IAAA,CAAM,CAPzB,EAAA;EAAA,IAAA,UAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,GA/BJ,GAiCM4H,GADC,EAAA,KAAA,GAAA7C,WAAA,CACD6C,GADC,EAAA;EAAA,IANH,YAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,YAAA;EAAA,GAAA,CAAA,CAAA;EAGF,EAAA,IAAI,CAAC,SAAW,EAAA;EACd,IACE,uBAAA,KAAA,CAAA,aAAA,CAAC,YAAS,SAAwB,EAAA,CAAA,CAAA;EAAA,GAEtC;EAEA,EAAM,MAAA,iBAAA,GAAoB1I,aAAO,CAAC,CAAA,CAAA;EAClC,EAAM,MAAA,UAAA,GAAaA,aAAO,KAAK,CAAA,CAAA;EAC/B,EAAM,MAAA,EAAE,aAAe,EAAA,SAAA,EAAc,GAAA,SAAA,CAAA;EACrC,EAAM,MAAA,iBAAA,GAAoB,CAAC,CAA6B,KAAA;EACtD,IAAM,MAAA,WAAA,GAAc,CAAE,CAAA,SAAA,GAAY,iBAAkB,CAAA,OAAA,CAAA;EACpD,IAAA,IAAI,cAAc,iBAAmB,EAAA;EACnC,MAAA,UAAA,CAAW,OAAU,GAAA,IAAA,CAAA;EACrB,MAAA,aAAA,CAAc,CAAC,CAAA,CAAA;EAAA,KACV,MAAA;EACL,MAAA,UAAA,CAAW,OAAU,GAAA,KAAA,CAAA;EAAA,KACvB;EACA,IAAA,iBAAA,CAAkB,UAAU,CAAE,CAAA,SAAA,CAAA;EAAA,GAChC,CAAA;EAEA,EAAM,MAAA,aAAA,GAAgB,CAAC,CAAoC,KAAA;EACzD,IAAA,IAAI,WAAW,OAAS,EAAA;EACtB,MAAA,SAAA,CAAU,CAAC,CAAA,CAAA;EAAA,KACb;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,KAAQ,GAAA;EAAA,IACZ,SAAW,EAAA+P,aAAA,CAAI,SAAU,CAAA,QAAA,CAAS,SAAS,CAAA;EAAA,IAC3C,UAAA;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,sBAAyB,GAAAnP,oBAAA,CAAe,QAAQ,CAAA,GAClDC,mBAAa,QAAyB,EAAA;EAAA,IACtC,MAAA,EAAQ,aAAa,UAAa,GAAA,MAAA;EAAA,GACnC,CACC,GAAA,QAAA,CAAA;EAEJ,EAAM,MAAA,kBAAA,GAAqB,CAAC,WAAe,IAAA;EAAA,IACzC,aAAe,EAAA,iBAAA;EAAA,IACf,SAAW,EAAA,aAAA;EAAA,GACb,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACmF,SAAA;EAAA,IAAAlF,gBAAA,CAAAO,eAAA,CAAAP,gBAAA,CAAA;EAAA,MACC,GAAM,EAAA,UAAA;EAAA,MACN,EAAK,EAAA,KAAA;EAAA,KAAA,EACA,UAHN,CAAA,EAAA;EAAA,MAIC,aAAgB,EAAA,IAAA;EAAA,MAChB,QAAA,EAAW,cAAc,CAAK,CAAA,GAAA,CAAA;EAAA,MAC9B,YAAa,EAAA,aAAA;EAAA,MACb,aAAc,EAAA,UAAA;EAAA,KACT,CAAA,EAAA,kBAAA,CAAA;EAAA,IAGH,CAAA,OAAO,sBAA2B,KAAA,UAAA,GAC9B,sBAAuB,CAAA,SAAA,EAAW,KAAK,CAAA,GACvC,sBACD,qBAAA,KAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,UAAA,EAA0B,SAAwB,EAAA,CAAA;EAAA,GAEnE,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Ea,QAAA,UAAA,GAAa,CAAC,EAAgD,KAAA;EAAhD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,QAAM,UAhBnC,EAAA,GAgB2B,IAAuB,IAAvB,GAAA+E,WAAA,CAAA,EAAA,EAAuB,CAArB,MAAM,EAAA,YAAA,CAAA,CAAA,CAAA;EACjC,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,IAAA;EAAA,IAAA/E,gBAAA,CAAA;EAAA,MACC,IAAK,IAAQ,IAAAqP,aAAA;EAAA,MACb,MAAA,EAAS,aAAa,UAAa,GAAA,MAAA;EAAA,KAC9B,EAAA,IAAA,CAAA;EAAA,GACP,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACCW,QAAA,QAAA,GAAW,CAAC,EAAwD,KAAA;EAAxD,EAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,EAAA,GAAK,EAAC,EAAG,IAAM,EAAA,QAAA,EAAjB,GAAA,EAAA,EAA8B,IAA9B,GAAAtK,WAAA,CAAA,EAAA,EAA8B,CAA5B,IAAA,EAAS,MAAM,EAAA,UAAA,CAAA,CAAA,CAAA;EACxC,EAAA,MAAM,EAAE,QAAS,EAAA,GAAII,0BAAoB,aAAe,EAAA,EAAE,IAAI,CAAA,CAAA;EAC9D,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,SAAU,EAAA,EAAA,EAAA,EAAK,IACd,EAAA,kBAAA,KAAA,CAAA,aAAA,CAACoC,gCAAM,EAAK,EAAA,QAAA,EAAA,EAAgB,IACxB,CAAA,EAAA,QACJ,CACF,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;ECwDO,SAAS,SAAsD,CAAA;EAAA,EACpE,KAAA;EAAA,EACA,WAAW,MAAM;EAAA,GAAC;EAAA,EAClB,QAAA;EAAA,EACA,kBAAA;EAAA,EACA,OAAA;EACF,CAA6B,EAAA;EAC3B,EAAA,MAAM,CAAE,UAAA,EAAY,aAAc,CAAA,GAAIzI,eAAkC,IAAI,CAAA,CAAA;EAE5E,EAAM,MAAA,qBAAA,GAAwB,CAC5B,mBACA,EAAA,WAAA,EACA,mBACA,SACA,EAAA,IAAA,KACIyB,qCACD,KADC,CAAA,EAAA;EAAA,IAEJ,CAAC,mBAAmB,GAAG+O,YAAA,CAAO,aAAa,CAAG,EAAA,KAAA,CAAM,mBAAmB,CAAC,CAAA;EAAA,IACxE,CAAC,iBAAiB,GAAGC,YAAA,CAAO,WAAW,IAAM,EAAA,KAAA,CAAM,iBAAiB,CAAC,CAAA;EAAA,GACvE,CAAA,CAAA;EAEA,EAAA,MAAM,aAAgB,GAAAC,eAAA;EAAA,IACpBC,eAAUC,kBAAa,CAAA;EAAA,IACvBD,eAAUE,mBAAgB,EAAA;EAAA,MACxB,gBAAkB,EAAAC,oCAAA;EAAA,KACnB,CAAA;EAAA,GACH,CAAA;EAEA,EAAA,MAAM,gBAAgB,CAAC,EAAA,KACpB,EAAM,IAAA,KAAA,GAAQ,KAAKvP,UAAK,CAAA,KAAK,CAAE,CAAA,IAAA,CAAK,CAAC,GAAQ,KAAA,KAAA,CAAM,GAAG,CAAE,CAAA,QAAA,CAAS,EAAE,CAAC,CAAA,CAAA;EAEvE,EAAM,MAAA,aAAA,GAAgB,CAAC,CAAqB,KAAA;EAC1C,IAAM,MAAA,EAAE,MAAQ,EAAA,IAAA,EAAS,GAAA,CAAA,CAAA;EACzB,IAAA,IAAI,CAAC,IAAA;EAAM,MAAA,OAAO,EAAC,CAAA;EACnB,IAAM,MAAA,EAAE,IAAO,GAAA,MAAA,CAAA;EACf,IAAM,MAAA,EAAE,EAAI,EAAA,MAAA,EAAW,GAAA,IAAA,CAAA;EAEvB,IAAM,MAAA,mBAAA,GAAsB,cAAc,EAAY,CAAA,CAAA;EACtD,IAAM,MAAA,iBAAA,GAAoB,cAAc,MAAgB,CAAA,CAAA;EACxD,IAAA,OAAO,EAAE,mBAAA,EAAqB,iBAAmB,EAAA,EAAA,EAAI,QAAQ,MAAO,EAAA,CAAA;EAAA,GACtE,CAAA;EAEA,EAAM,MAAA,eAAA,GAAkB,CAAC,CAAqB,KAAA;EAC5C,IAAM,MAAA;EAAA,MACJ,MAAA,EAAQ,EAAE,EAAG,EAAA;EAAA,KACX,GAAA,CAAA,CAAA;EACJ,IAAA,aAAA,CAAc,EAAE,CAAA,CAAA;EAAA,GAClB,CAAA;EAEA,EAAM,MAAA,cAAA,GAAiB,CAAC,CAAqB,KAAA;EAC3C,IAAA,MAAM,EAAE,mBAAqB,EAAA,iBAAA,EAAmB,IAAI,MAAO,EAAA,GAAI,cAAc,CAAC,CAAA,CAAA;EAE9E,IAAA,IACE,EACE,CAAC,mBAAA,IACD,CAAC,iBAAA,IACD,wBAAwB,iBAE1B,CAAA,EAAA;EACA,MAAA,MAAM,WAAc,GAAAwP,aAAA,CAAQ,EAAI,EAAA,KAAA,CAAM,mBAAmB,CAAC,CAAA,CAAA;EAC1D,MAAA,MAAM,SAAY,GAAAA,aAAA,CAAQ,MAAQ,EAAA,KAAA,CAAM,iBAAiB,CAAC,CAAA,CAAA;EAC1D,MAAS,QAAA,CAAA,qBAAA;EAAA,QACP,mBAAA;EAAA,QACA,WAAA;EAAA,QACA,iBAAA;EAAA,QACA,SAAA;EAAA,QACA,EAAA;EAAA,OACD,CAAA,CAAA;EAAA,KACH;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,aAAA,GAAgB,CAAC,CAAqB,KAAA;EAC1C,IAAM,MAAA,EAAE,qBAAqB,iBAAmB,EAAA,EAAA,EAAI,QAAQ,MAAO,EAAA,GAAI,cAAc,CAAC,CAAA,CAAA;EAEtF,IAAI,IAAA,CAAC,uBAAuB,CAAC,iBAAA;EAAmB,MAAA,OAAA;EAEhD,IAAA,MAAM,WAAc,GAAAA,aAAA,CAAQ,EAAI,EAAA,KAAA,CAAM,mBAAmB,CAAC,CAAA,CAAA;EAC1D,IAAA,MAAM,SAAY,GAAAA,aAAA,CAAQ,MAAQ,EAAA,KAAA,CAAM,iBAAiB,CAAC,CAAA,CAAA;EAE1D,IAAA,IAAI,wBAAwB,iBAAmB,EAAA;EAC7C,MAAA,QAAA,CAAStP,qCACJ,KADI,CAAA,EAAA;EAAA,QAEP,CAAC,iBAAiB,GAAGuP,kBAAA;EAAA,UACnB,MAAM,iBAAiB,CAAA;EAAA,UACvB,WAAA;EAAA,UACA,SAAA;EAAA,SACF;EAAA,OACD,CAAA,CAAA,CAAA;EAAA,KACI,MAAA;EACL,MAAS,QAAA,CAAA,qBAAA;EAAA,QACP,mBAAA;EAAA,QACA,WAAA;EAAA,QACA,iBAAA;EAAA,QACA,SAAA;EAAA,QACA,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,EAAA;EAAA,OACT,CAAA,CAAA;EAAA,KACH;EAAA,GACF,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,WAAA;EAAA,IAAA;EAAA,MACC,SAAU,OAAW,IAAA,aAAA;EAAA,MACrB,WAAc,EAAA,eAAA;EAAA,MACd,UAAa,EAAA,cAAA;EAAA,MACb,SAAY,EAAA,aAAA;EAAA,MACZ,oBAAqB,kBAAsB,IAAAC,qBAAA;EAAA,KAAA;EAAA,IAEzC,OAAO,QAAa,KAAA,UAAA,GAAa,QAAS,CAAA,KAAA,EAAO,UAAU,CAAI,GAAA,QAAA;EAAA,GACnE,CAAA;EAEJ;;ECrHO,SAAS,YAAiB,CAAA;EAAA,EAC/B,QAAA;EAAA,EACA,KAAA;EAAA,EACA,kBAAA;EAAA,EACA,SAAY,GAAAjL,cAAA;EAAA,EACZ,QAAA;EAAA,EACA,WAAW,MAAM;EAAA,GAAC;EAAA,EAClB,WAAc,GAAAA,cAAA;EAAA,EACd,cAAiB,GAAA,KAAA;EAAA,EACjB,OAAA;EAAA,EACA,iBAAoB,GAAA,GAAA;EAAA,EACpB,WAAc,GAAA,KAAA;EAAA,EACd,SAAA;EACF,CAAyB,EAAA;EACvB,EAAA,MAAM,CAAE,UAAA,EAAY,aAAc,CAAA,GAAIhG,eAAkC,IAAI,CAAA,CAAA;EAE5E,EAAM,MAAA,eAAA,GAAkBiM,cAAQ,MAAM1L,SAAA,CAAI,WAAW,KAAK,CAAA,EAAG,CAAE,KAAM,CAAC,CAAA,CAAA;EAEtE,EAAA,MAAM,aAAgB,GAAAmQ,eAAA;EAAA,IACpBC,eAAUC,kBAAa,CAAA;EAAA,IACvBD,eAAUE,mBAAgB,EAAA;EAAA,MACxB,gBAAkB,EAAAC,oCAAA;EAAA,KACnB,CAAA;EAAA,GACH,CAAA;EAEA,EAAM,MAAA,eAAA,GAAkB,CAAC,KAAyB,KAAA;EAChD,IAAM,MAAA;EAAA,MACJ,MAAA,EAAQ,EAAE,EAAG,EAAA;EAAA,KACX,GAAA,KAAA,CAAA;EACJ,IAAA,aAAA,CAAc,EAAE,CAAA,CAAA;EAAA,GAClB,CAAA;EAEA,EAAM,MAAA,aAAA,GAAgB,CAAC,KAAyB,KAAA;EAC9C,IAAM,MAAA,EAAE,MAAQ,EAAA,IAAA,EAAS,GAAA,KAAA,CAAA;EACzB,IAAA,IAAI,MAAU,IAAA,IAAA,IAAQ,MAAO,CAAA,EAAA,KAAO,KAAK,EAAI,EAAA;EAC3C,MAAM,MAAA,OAAA,GAAUvQ,SAAI,CAAA,SAAA,EAAW,KAAK,CAAA,CAAA;EACpC,MAAA,MAAM,QAAW,GAAAwQ,aAAA,CAAQ,MAAO,CAAA,EAAA,EAAI,OAAO,CAAA,CAAA;EAC3C,MAAA,MAAM,QAAW,GAAAA,aAAA,CAAQ,IAAK,CAAA,EAAA,EAAI,OAAO,CAAA,CAAA;EACzC,MAAA,WAAA,CAAY,EAAE,IAAM,EAAA,KAAA,CAAM,QAAQ,CAAG,EAAA,QAAA,EAAU,UAAU,CAAA,CAAA;EACzD,MAAA,MAAM,QAAW,GAAAC,kBAAA,CAAU,KAAO,EAAA,QAAA,EAAU,QAAQ,CAAA,CAAA;EACpD,MAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;EAAA,KACnB;EAAA,GACF,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,WAAA;EAAA,IAAA;EAAA,MACC,SAAU,OAAW,IAAA,aAAA;EAAA,MACrB,oBAAqB,kBAAsB,IAAAC,qBAAA;EAAA,MAC3C,WAAc,EAAA,eAAA;EAAA,MACd,SAAY,EAAA,aAAA;EAAA,MACZ,SAAA;EAAA,KAAA;EAAA,oBAEA,KAAA,CAAA,aAAA;EAAA,MAAC,QAAA;EAAA,MAAA;EAAA,QACC,KAAQ,EAAA,eAAA;EAAA,QACR,UAAW,QAAY,IAAAC,4BAAA;EAAA,OAAA;EAAA,MAErB,KAAM,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,KAAU,KAAA;EAC3B,QAAM,MAAA,EAAA,GAAK,UAAU,IAAI,CAAA,CAAA;EACzB,QACE,uBAAA,KAAA,CAAA,aAAA;EAAA,UAAC,YAAA;EAAA,UAAA;EAAA,YACC,GAAM,EAAA,EAAA;EAAA,YACN,EAAA;EAAA,YACA,SAAY,EAAA,EAAA;EAAA,YACZ,iBAAA;EAAA,YACA,WAAA;EAAA,WAAA;EAAA,UAEE,CAAC,SAAW,EAAA,KAAA,KACX,OAAO,QAAA,KAAa,UACjB,GAAA,QAAA,CAAS,IAAM,EAAA,SAAA,EAAW,KAAO,EAAA,KAAK,CACtC,GAAA,QAAA;EAAA,SAER,CAAA;EAAA,OAEH,CAAA;EAAA,KACH;EAAA,IACE,cAAA,wCACCC,gBACG,EAAA,IAAA,EAAA,UAAA,uCAAc,QAAS,EAAA,EAAA,SAAA,EAAY,UAAa,EAAA,CAAA,GAAK,IACzD,CAAA;EAAA,GAEJ,CAAA;EAEJ;;ACjJO,QAAM,iBAAoB,GAAA,CAAC,EAAE,QAAA,EAAU,OAAO,QAAS,EAAA,qBAC3D,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,KAAgB,EAAA,QAAA,EAAW,QAAY,IAAAD,4BAAA,EAAA,EAC7C,MAAM,GAAI,CAAA,CAAC,EACX,qBAAA,KAAA,CAAA,aAAA,CAAC,YAAa,EAAA,EAAA,GAAA,EAAM,EAAK,EAAA,EAAA,EAAU,WAAY,EAC3C,EAAA,EAAA,OAAO,QAAa,KAAA,UAAA,GAAa,QAAS,CAAA,EAAE,CAAI,GAAA,QACpD,CACD,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJK,QAAM,QAAW,GAAAzK,gBAAA,CAAW,CAAC,EAAA,EAUlB,GAAuC,KAAA;EAVrB,EAClC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,SAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAY,GAAA,QAAA;EAAA,IACZ,QAAA;EAAA,IACA,KAAA;EAAA,IACA,MAAA;EAAA,IACA,aAAgB,GAAA,CAAA;EAAA,IAChB,mBAAA;EAAA,GA5BF,GAoBoC,EAS/B,EAAA,IAAA,GAAAR,WAAA,CAT+B,EAS/B,EAAA;EAAA,IARH,WAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,UAAA;EAAA,IACA,OAAA;EAAA,IACA,QAAA;EAAA,IACA,eAAA;EAAA,IACA,qBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA,CAAC,iBACG,CAAC,EAAE,OAAO,SAAW,EAAA,MAAA,EAAQ,YAC7B,qBAAA,KAAA,CAAA,aAAA;EAAA,IAACmL,4BAAA;EAAA,IAAAlQ,gBAAA,CAAA;EAAA,MACC,SAAA;EAAA,MACA,UAAW,OAAO,QAAA,KAAa,QAAW,GAAA,CAAC,WAAW,QAAW,GAAA,QAAA;EAAA,MACjE,QAAS,MAAU,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA;EAAA,MACnB,OAAQ,KAAS,IAAA,IAAA,GAAA,KAAA,GAAA,SAAA;EAAA,MACjB,MAAA,EAAS,SAAc,KAAA,QAAA,GAAW,UAAa,GAAA,YAAA;EAAA,MAC/C,mBAAA;EAAA,MACA,aAAA;EAAA,MACA,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,CAAC,EAAE,KAAO,EAAA,KAAA,uBACT,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,KACD,EAAA,EAAA,OAAO,QAAa,KAAA,UAAA,GAAa,QAAS,CAAA,KAAK,IAAI,QACvD,CAAA;EAAA,GAIR,CAAA,CAAA;EAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoCM,QAAM,QAAW,GAAAuF,gBAAA,CAAW,CAAC,EAAA,EAWlB,GAAuC,KAAA;EAXrB,EAClC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,OAAA;EAAA,IACA,IAAA;EAAA,IACA,UAAA;EAAA,IACA,OAAA;EAAA,IACA,QAAA;EAAA,IACA,KAAA;EAAA,IACA,MAAA;EAAA,IACA,gBAAmB,GAAA,CAAA;EAAA,IACnB,mBAAsB,GAAA,CAAA;EAAA,GAjGxB,GAwFoC,EAU/B,EAAA,IAAA,GAAAR,WAAA,CAV+B,EAU/B,EAAA;EAAA,IATH,SAAA;EAAA,IACA,MAAA;EAAA,IACA,YAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,OAAA;EAAA,IACA,QAAA;EAAA,IACA,kBAAA;EAAA,IACA,qBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA,CAAC,iBACG,CAAC,EAAE,OAAO,SAAW,EAAA,MAAA,EAAQ,YAC7B,qBAAA,KAAA,CAAA,aAAA;EAAA,IAACoL,4BAAA;EAAA,IAAAnQ,gBAAA,CAAA;EAAA,MACC,QAAW,EAAA,IAAA;EAAA,MACX,WAAc,EAAA,OAAA;EAAA,MACd,aAAc,OAAO,UAAA,KAAe,QAAW,GAAA,CAAC,WAAW,UAAa,GAAA,UAAA;EAAA,MACxE,WAAY,OAAO,OAAA,KAAY,QAAW,GAAA,CAAC,WAAW,OAAU,GAAA,OAAA;EAAA,MAChE,QAAS,MAAU,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA;EAAA,MACnB,OAAQ,KAAS,IAAA,IAAA,GAAA,KAAA,GAAA,SAAA;EAAA,MACjB,gBAAA;EAAA,MACA,mBAAA;EAAA,MACA,GAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,CAAC,EAAE,KAAA,EAAO,QAAU,EAAA,WAAA,uBACnB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,KACD,EAAA,EAAA,OAAO,aAAa,UAAa,GAAA,QAAA,CAAS,QAAU,EAAA,WAAW,IAAI,QACvE,CAAA;EAAA,GAIR,CAAA,CAAA;EAAA,CACD;;;;;;;;;;;;;;;;;;EC3GD,MAAM,yCAA6D,GAAA;EAAA,EACjE,KAAO,EAAA,OAAA;EAAA,EACP,OAAS,EAAA,SAAA;EACX,CAAA,CAAA;EAEA,MAAM,yCAA6D,GAAA;EAAA,EACjE,KAAO,EAAA,OAAA;EAAA,EACP,OAAS,EAAA,QAAA;EACX,CAAA,CAAA;EAEO,MAAM,mBAAmB,CAAC,EAAE,IAAM,EAAA,OAAA,GAAU,WAAuC,KAAA;EACxF,EAAM,MAAA;EAAA,IACJ,oBAAA;EAAA,IACA,oBAAA;EAAA,MACEoQ,yBAAoB,EAAA,CAAA;EAExB,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAU,EAAA,GAAIC,sBAAiB,EAAA,CAAA;EAE/C,EAAM,MAAA,EAAE,MAAQ,EAAA,IAAA,EAAM,QAAS,EAAA,GAAIlL,0BAAoB,cAAgB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,CAAA,CAAA;EAE1F,EAAA,2CACGoB,YAAO,EAAA,EAAA,OAAA,EAAU,GAAI,EAAK,EAAA,QAAA,EAAA,EACvB,4BAGI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,UAAA;EAAA,IAAAvG,gBAAA,CAAA;EAAA,MACC,YAAW,EAAA,QAAA;EAAA,MACX,EAAK,EAAA,MAAA;EAAA,MACL,OAAA,EAAU,0CAA0C,OAAO,CAAA;EAAA,KAAA,EACtD,oBAAqB,EAAA,CAAA;EAAA,oBAEzB,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAK,EAAA,IAAA,EAAO,IAAK2L,iBAAc,EAAA,CAAA;EAAA,GAEvC,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,UAAA;EAAA,IAAA3L,gBAAA,CAAA;EAAA,MACC,YAAW,EAAA,MAAA;EAAA,MACX,EAAK,EAAA,MAAA;EAAA,MACL,OAAA,EAAU,0CAA0C,OAAO,CAAA;EAAA,KAAA,EACtD,oBAAqB,EAAA,CAAA;EAAA,oBAEzB,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAK,EAAA,IAAA,EAAO,IAAK8H,cAAW,EAAA,CAAA;EAAA,GAEtC,CAGA,mBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,UAAA;EAAA,IAAA;EAAA,MACC,YAAW,EAAA,MAAA;EAAA,MACX,OAAQ,EAAA,OAAA;EAAA,MACR,EAAK,EAAA,MAAA;EAAA,MACL,OAAU,EAAA,MAAA;EAAA,KAAA;EAAA,oBAET,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAK,EAAA,IAAA,EAAO,IAAKwI,aAAU,EAAA,CAAA;EAAA,GAIzC,CAAA,CAAA;EAEJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCa,QAAA,YAAA,GAAe,CAAC,EAOR,KAAA;EAPQ,EAC3B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAO,IAAA,GAAA,IAAA;EAAA,IACP,KAAO,EAAA,UAAA;EAAA,IACP,QAAA;EAAA,IACA,QAAA;EAAA,IACA,OAAU,GAAA,SAAA;EAAA,GA1CZ,GAqC6B,EAMxB,EAAA,IAAA,GAAAvL,WAAA,CANwB,EAMxB,EAAA;EAAA,IALH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,KAAA,EAAO,QAAS,CAAA,GAAIjG,eAAS,UAAU,CAAA,CAAA;EAC/C,EAAM,MAAA,EAAE,OAAO,OAAQ,EAAA,GAAIqG,0BAAoB,cAAgB,EAAA,EAAE,IAAM,EAAA,KAAA,EAAO,CAAA,CAAA;EAE9E,EAAApG,eAAA,CAAU,MAAM;EACd,IAAA,QAAA,CAAS,UAAU,CAAA,CAAA;EAAA,GACrB,EAAG,CAAE,UAAW,CAAC,CAAA,CAAA;EAEjB,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACwR,cAAA;EAAA,IAAAvQ,gBAAA,CAAA;EAAA,MACC,kBAAqB,EAAA,IAAA;EAAA,MACrB,gBAAmB,EAAA,KAAA;EAAA,MACnB,KAAA;EAAA,MACA,QAAW,EAAA,CAAC,QAAa,KAAA,QAAA,CAAS,QAAQ,CAAA;EAAA,MAC1C,QAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,wCAEJyL,gBAAW,EAAA,EAAA,IAAA,EAAA,EACR,4BACC,KAAA,CAAA,aAAA,CAAA+E,sBAAA,EAAA,IAAA,EACG,QACJ,CAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACC,WAAA;EAAA,MAAA;EAAA,QACC,EAAK,EAAAC,qBAAA;EAAA,QACL,EAAK,EAAA,OAAA;EAAA,OAAA;EAAA,KAEP,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACD,WAAA;EAAA,MAAA;EAAA,QACC,EAAK,EAAAE,mBAAA;EAAA,QACL,IAAA;EAAA,QACA,EAAK,EAAA,KAAA;EAAA,OAAA;EAAA,KAEP,kBAAA,KAAA,CAAA,aAAA,CAACjF,uBAAkB,EAAA,EAAA,EAAA,EAAK,EAAE,KAAA,EAAO,aAAc,EAAA,EAAA,kBAC5C,KAAA,CAAA,aAAA,CAAA,gBAAA,EAAA,EAAiB,IAAc,EAAA,OAAA,EAAoB,CACtD,CACF,CAAA;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9Ea,QAAA,SAAA,GAAY,CAAC,EAIX,KAAA;EAJW,EACxB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAa,UAAA,GAAA,IAAA;EAAA,IACb,QAAA;EAAA,GANF,GAI0B,EAGrB,EAAA,IAAA,GAAA3G,WAAA,CAHqB,EAGrB,EAAA;EAAA,IAFH,YAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC6L,WAAA;EAAA,IAAA5Q,gBAAA,CAAA;EAAA,MACC,UAAA;EAAA,MACA,cAAe,EAAA,QAAA;EAAA,MACf,YAAa,EAAA,eAAA;EAAA,KACR,EAAA,IAAA,CAAA;EAAA,wCAEJ6Q,kBAAa,EAAA,IAAA,CAAA;EAAA,oBACd,KAAA,CAAA,aAAA,CAACC,sBAAa,aAAY,EAAA,eAAA,EAAA,sCACvBC,sBAAiB,EAAA,EAAA,aAAA,EAAY,sBAAuB,EAAA,CAAA,EACnD,QACJ,CAAA;EAAA,GACF,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXW,QAAA,KAAA,GAAQ,CAAC,EAIP,KAAA;EAJO,EACpB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAqB,kBAAA,GAAA,KAAA;EAAA,IACrB,MAAA;EAAA,GAXF,GASsB,EAGjB,EAAA,IAAA,GAAAhM,WAAA,CAHiB,EAGjB,EAAA;EAAA,IAFH,oBAAA;EAAA,IACA,QAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAA,CACK,sBAAsB,MAAW,qBAAA,KAAA,CAAA,aAAA,CAAC,SAAU,EAAA/E,gBAAA,CAAA,EAAA,MAAA,EAAA,EAAuB,KAAO,CAC/E,CAAA,CAAA;EAAA;;;;;;;;;;;;;;;;;;ACbW,QAAA,SAAA,GAAY,CAAC,KAAA,qBACvB,KAAA,CAAA,aAAA,CAAAgR,eAAA,EAAAhR,gBAAA,CAAA,EAAgB,IAAO,EAAA,KAAA,CAAM,CAAI,EAAA,IAAA,EAAO,KAAM,CAAA,CAAA,EAAA,EAAS,KAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECS3D,MAAM,eAAkB,GAAAuF,gBAAA,CAAW,CAAC,EAAA,EAWlB,GAAa,KAAA;EAXK,EACzC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,WAAA;EAAA,IACA,MAAA;EAAA,IACA,OAAA;EAAA,IACA,KAAQ,GAAA,EAAA;EAAA,IACR,UAAA;EAAA,IACA,OAAA;EAAA,IACA,eAAkB,GAAA,IAAA;EAAA,IAClB,YAAe,GAAA,KAAA;EAAA,GAtBjB,GAa2C,EAUtC,EAAA,IAAA,GAAAR,WAAA,CAVsC,EAUtC,EAAA;EAAA,IATH,UAAA;EAAA,IACA,aAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAA;EAAA,IACA,OAAA;EAAA,IACA,YAAA;EAAA,IACA,SAAA;EAAA,IACA,iBAAA;EAAA,IACA,cAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,SAAA,EAAW,YAAa,CAAA,GAAIjG,eAAS,CAAC,CAAA,CAAA;EAC9C,EAAM,MAAA,CAAE,QAAU,EAAA,WAAY,CAAI,GAAAA,cAAA,CAAS,EAAE,CAAG,EAAA,GAAA,EAAK,CAAG,EAAA,GAAA,EAAK,CAAA,CAAA;EAE7D,EAAA,MAAM,cAAc,MAAM;EACxB,IAAA,YAAA,CAAa,CAAC,CAAA,CAAA;EACd,IAAQ,OAAA,EAAA,CAAA;EAAA,GACV,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAAkB,gBAAA,CAAA;EAAA,MACC,MAAA;EAAA,MACA,OAAA;EAAA,MACA,mBAAsB,EAAA,KAAA;EAAA,KACjB,EAAA,IAAA,CAAA;EAAA,oBAEJ,KAAA,CAAA,aAAA,CAAAiR,iBAAA,EAAA,IAAA,EAAY,OAAO,EAAA,OAAA,GAAU,UAAU,MAAQ,CAAA;EAAA,oBAChD,KAAA,CAAA,aAAA;EAAA,MAAC,SAAA;EAAA,MAAA;EAAA,QACC,OAAQ,EAAA,MAAA;EAAA,QACR,cAAe,EAAA,OAAA;EAAA,QACf,aAAc,EAAA,QAAA;EAAA,QACd,UAAW,EAAA,QAAA;EAAA,QACX,GAAM,EAAA,CAAA;EAAA,QACN,IAAK,EAAA,OAAA;EAAA,OAAA;EAAA,0CAEJ1J,WAAM,EAAA,EAAA,OAAA,EAAU,OAAW,IAAA,YAAA,GAAe,YAAY,MACrD,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,YAAA;EAAA,QAAA;EAAA,UACC,GAAA;EAAA,UACA,OAAQ,KAAS,IAAA,EAAA;EAAA,UACjB,gBAAmB,EAAA,CAAC,GAAQ,KAAA,WAAA,CAAY,GAAG,CAAA;EAAA,UAC3C,QAAA;EAAA,UACA,KAAQ,EAAA,GAAA;EAAA,UACR,MAAS,EAAA,GAAA;EAAA,UACT,MAAS,EAAA,EAAA;EAAA,UACT,KAAQ,EAAA,CAAE,GAAK,EAAA,GAAA,EAAK,KAAK,GAAI,CAAA;EAAA,UAC7B,KAAQ,EAAA,SAAA;EAAA,UACR,MAAS,EAAA,CAAA;EAAA,SAAA;EAAA,OACX,sCACChB,YAAO,EAAA,EAAA,CAAA,EAAE,yBACP,KAAA,CAAA,aAAA,CAAA,SAAA,EAAA,IAAA,EAAU,MAAI,CACf,kBAAA,KAAA,CAAA,aAAA;EAAA,QAAC2K,YAAA;EAAA,QAAA;EAAA,UACC,YAAW,EAAA,MAAA;EAAA,UACX,YAAe,EAAA,SAAA;EAAA,UACf,IAAK,EAAA,KAAA;EAAA,UACL,GAAM,EAAA,GAAA;EAAA,UACN,IAAO,EAAA,IAAA;EAAA,UACP,GAAM,EAAA,EAAA;EAAA,UACN,QAAW,EAAA,CAAC,KAAU,KAAA,YAAA,CAAa,KAAK,CAAA;EAAA,SAAA;EAAA,wBAEvC,KAAA,CAAA,aAAA,CAAAC,iBAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAAC,uBAAA,EAAA,IAAkB,CACrB,CAAA;EAAA,wBACA,KAAA,CAAA,aAAA,CAACC,qBAAY,OAAU,EAAA,CAAA,EAAA,sCACpB,IAAK,EAAA,EAAA,EAAA,EAAKC,iBAAY,CACzB,CAAA;EAAA,OAEJ,CAEF,CAAA;EAAA,MACE,eACF,oBAAA,KAAA,CAAA,aAAA,CAAC/J,WAAM,EAAA,EAAA,CAAA,EAAE,OAAM,SAAY,EAAA,OAAA,GAAU,KAAQ,GAAA,QAAA,EAAW,EAAK,EAAA,CAAA,EAAA,kBAC1D,KAAA,CAAA,aAAA,CAAA,SAAA,EAAA,IAAA,EAAU,gBAAc,CACzB,kBAAA,KAAA,CAAA,aAAA,CAACrC,SAAI,EAAA,EAAA,IAAA,EAAK,KACR,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,YAAa,EAAA,EAAA,QAAA,EAAW,CAAC,CAAM,KAAA,WAAA,CAAY,CAAC,CAAA,EAAI,KAAQ,EAAA,QAAA,EAAW,IAAK,EAAA,IAAA,EAAK,CAChF,CACF,CAAA;EAAA,KAEF;EAAA,oBACA,KAAA,CAAA,aAAA,CAACqM,yCACE,KAAA,CAAA,aAAA,CAAAhL,YAAA,EAAA,IAAA,sCACE,MAAO,EAAA,EAAA,OAAA,EAAQ,UAAS,OAAU,EAAA,WAAA,EAAA,EAAc,QAEjD,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAO,OAAQ,EAAA,SAAA,EAAU,SAAU,UAAa,EAAA,EAAA,MAEjD,CACF,CACF,CAAA;EAAA,GACF,CAAA;EAEJ,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC9FY,MAAA,kBAAA,GAAqB,CAAC,EAMJ,KAAA;EANI,EACjC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,MAAA;EAAA,IACA,OAAA;EAAA,IACA,aAAA;EAAA,IACA,QAAA;EAAA,GAdF,GAUmC,EAK9B,EAAA,IAAA,GAAAxB,WAAA,CAL8B,EAK9B,EAAA;EAAA,IAJH,QAAA;EAAA,IACA,SAAA;EAAA,IACA,eAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,eAAe,MAAM;EACzB,IAAc,aAAA,EAAA,CAAA;EACd,IAAQ,OAAA,EAAA,CAAA;EAAA,GACV,CAAA;EAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA/E,gBAAA,CAAA,EAAM,MAAkB,EAAA,OAAA,EAAA,EAAyB,IAChD,CAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAACiR,iBAAA;EAAA,IAAA;EAAA,MACC,EAAA,EAAK,EAAE,QAAA,EAAU,IAAK,EAAA;EAAA,MACtB,QAAS,EAAA,QAAA;EAAA,MACT,UAAW,EAAA,QAAA;EAAA,MACX,YAAa,EAAA,UAAA;EAAA,MACb,EAAK,EAAA,EAAA;EAAA,KAAA;EAAA,IACN,SAAA;EAAA,IACU,QAAA;EAAA,GAEX,kBAAA,KAAA,CAAA,aAAA,CAAC,SAAU,EAAA,IAAA,EAAA,sGAGX,mBACC,KAAA,CAAA,aAAA,CAAAM,iBAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAO,SAAQ,QAAS,EAAA,OAAA,EAAU,YAAe,EAAA,EAAA,QAElD,CACF,CACF,CAAA,CAAA;EAEJ,CAAA;;EC5CO,MAAM,mBAAsB,GAAA,GAAA,CAAA;EAC5B,MAAM,kBAAqB,GAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACkB3B,QAAM,WAAc,GAAAhM,gBAAA;EAAA,EACzB,CAAC,IAA6D,GAAK,KAAA;EAAlE,IAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,oBAAA,GAAuB,oBAAoB,EApBhD,EAAA,GAoBG,IAAoD,KAApD,GAAAR,WAAA,CAAA,EAAA,EAAoD,CAAlD,sBAA2C,EAAA,IAAA,CAAA,CAAA,CAAA;EAC5C,IAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,MAACyM,cAAA;EAAA,MAAAxR,gBAAA,CAAA;EAAA,QACC,GAAA;EAAA,QACA,KAAM,EAAA,MAAA;EAAA,QACN,MAAO,EAAA,IAAA;EAAA,QACP,YAAa,EAAA,MAAA;EAAA,QACb,EAAK,EAAAA,gBAAA,CAAA;EAAA,UACH,uBAAyB,EAAA;EAAA,YACvB,YAAY,CAAS,MAAA,EAAA,oBAAA,CAAA,WAAA,CAAA;EAAA,WACvB;EAAA,SACG,EAAA,EAAA,CAAA;EAAA,OAEA,EAAA,KAAA,CAAA;EAAA,KACP,CAAA;EAAA,GAAA;EAEJ;;ECnCa,MAAA,aAAA,GAAgB,CAAC,OAAoB,KAAA;EAChD,EAAA,IAAI,UAAa,GAAA,EAAA,CAAA;EACjB,EAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,KAAM,CAAA,OAAA,GAAU,IAAI,CAAA,CAAA;EACvC,EAAA,IAAI,QAAQ,CAAG,EAAA;EACb,IAAA,UAAA,IAAc,CAAI,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA,CAAA;EAAA,GACpB;EACA,EAAA,MAAM,UAAU,IAAK,CAAA,KAAA,CAAA,CAAO,OAAU,GAAA,KAAA,GAAQ,QAAQ,EAAE,CAAA,CAAA;EACxD,EAAA,IAAI,UAAU,CAAG,EAAA;EACf,IAAA,UAAA,IAAc,CAAI,CAAA,EAAA,OAAA,CAAA,GAAA,CAAA,CAAA;EAAA,GACpB;EACA,EAAA,MAAM,aAAa,IAAK,CAAA,KAAA,CAAM,UAAU,KAAQ,GAAA,IAAA,GAAO,UAAU,EAAE,CAAA,CAAA;EACnE,EAAA,IAAI,aAAa,CAAG,EAAA;EAClB,IAAA,UAAA,IAAc,CAAI,CAAA,EAAA,UAAA,CAAA,CAAA,CAAA,CAAA;EAAA,GACpB;EAEA,EAAO,OAAA,UAAA,CAAA;EACT,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsBa,QAAA,UAAA,GAAa,CAAC,EAKJ,KAAA;EALI,EACzB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,MAAA;EAAA,IACA,YAAY,MAAM;EAAA,KAAC;EAAA,IACnB,WAAc,GAAA,IAAA;EAAA,GAzChB,GAsC2B,EAItB,EAAA,IAAA,GAAA+E,WAAA,CAJsB,EAItB,EAAA;EAAA,IAHH,QAAA;EAAA,IACA,WAAA;EAAA,IACA,aAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,GAAA,GAAM7F,aAAuB,IAAI,CAAA,CAAA;EACvC,EAAM,MAAA,OAAA,GAAUA,aAAe,CAAC,CAAA,CAAA;EAChC,EAAM,MAAA,QAAA,GAAW,KAAK,GAAI,CAAA,CAAA,EAAG,KAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAA,CAAA;EAChD,EAAA,MAAM,CAAE,QAAA,EAAU,WAAY,CAAA,GAAIJ,eAAS,CAAC,CAAA,CAAA;EAE5C,EAAAC,eAAA,CAAU,MAAM;EACd,IAAA,IAAI,IAAI,OAAS,EAAA;EACf,MAAC,GAAA,CAAI,QAAQ,QAAS,CAAA,CAAC,EAAqB,KAAM,CAAA,KAAA,GAAQ,GAAG,QAAW,GAAA,GAAA,CAAA,CAAA,CAAA,CAAA;EAAA,KAC1E;EAEA,IAAA,IAAI,QAAQ,OAAS,EAAA;EACnB,MAAM,MAAA,SAAA,GAAY,QAAQ,OACrB,GAAA,CAAA,IAAA,CAAK,KAAQ,GAAA,OAAA,CAAQ,WAAW,GACjC,GAAA,CAAA,CAAA;EACJ,MAAA,IAAI,YAAY,mBAAqB,EAAA;EACnC,QAAA,MAAM,WAAc,GAAA,QAAA,KAAa,CAAI,GAAA,SAAA,GAAY,QAAW,GAAA,CAAA,CAAA;EAC5D,QAAA,WAAA,CAAY,IAAK,CAAA,KAAA,CAAM,WAAc,GAAA,SAAS,CAAC,CAAA,CAAA;EAAA,OACjD;EAAA,KACF,MAAA,IAAW,WAAW,CAAG,EAAA;EACvB,MAAQ,OAAA,CAAA,OAAA,GAAU,KAAK,GAAI,EAAA,CAAA;EAAA,KAC7B;EAAA,GACF,EAAG,CAAE,QAAS,CAAC,CAAA,CAAA;EAEf,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,IAAA;EAAA,IAAA;EAAA,MACC,IAAK,QAAW,GAAA,CAAA;EAAA,MAChB,aAAgB,EAAA,CAAA;EAAA,MAChB,SAAY,EAAA,GAAA;EAAA,MACZ,YAAe,EAAA,GAAA;EAAA,MACf,WAAA;EAAA,MACA,sBAAuB,MAAM;EAC3B,QAAA,IAAI,YAAY,CAAG,EAAA;EACjB,UAAU,SAAA,EAAA,CAAA;EAAA,SACZ;EAAA,OACF;EAAA,KAAA;EAAA,wCAECqO,YAAY,EAAApN,gBAAA,CAAA,EAAA,EAAA,IAAA,CAAA,sCACV,KACG,EAAA,IAAA,EAAA,IAAA,CAAK,MAAM,QAAW,GAAA,GAAG,GAAG,GAAG,EAAA,GAAA,EAC/B,CAAC,CAAC,QAAA,IAAY,QAAK,aAAc,CAAA,QAAQ,QAC7C,CACA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,WAAA;EAAA,MAAA;EAAA,QACC,GAAA;EAAA,QACA,oBAAuB,EAAA,kBAAA;EAAA,OAAA;EAAA,KAE3B,CAAA;EAAA,GACF,CAAA;EAEJ;;EC5FO,MAAM,aAAgB,GAAA,QAAA,CAAA;EACtB,MAAM,kBAAqB,GAAA,QAAA,CAAA;EAC3B,MAAM,kBAAqB,GAAA;EAAA,EAChC,OAAS,EAAA,IAAA;EAAA,EACT,YAAc,EAAA,IAAA;EAAA,EACd,WAAa,EAAA,IAAA;EACf,CAAA;;;;;;;;;;;;;;;;;;;;;ECaO,MAAM,iBAAoB,GAAA,CAC/B,QACA,EAAA,SAAA,EACA,UACA,SACG,KAAA,IAAA,CAAK,GAAI,CAAA,CAAA,EAAG,KAAK,GAAI,CAAA,QAAA,GAAW,QAAU,EAAA,SAAA,GAAY,SAAS,CAAC,CAAA,CAAA;EAE9D,MAAM,iBAAoB,GAAA,CAC/B,IACA,EAAA,IAAA,EACA,IACG,KAAA,IAAI,IAAK,CAAA,CAAE,IAAK,CAAA,EAAG,IAAM,EAAA,EAAE,MAAM,CAAA,CAAA;EAEzB,MAAA,aAAA,GAAgB,CAC3B,IACA,EAAA,QAAA,GAAW,KACX,SAAY,GAAA,GAAA,EACZ,UAAU,IACP,KAAA;EACH,EAAM,MAAA,MAAA,GAAS,QAAS,CAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;EAC9C,EAAM,MAAA,OAAA,GAAU,MAAO,CAAA,UAAA,CAAW,IAAI,CAAA,CAAA;EACtC,EAAA,IAAI,CAAC,OAAA;EAAS,IAAO,OAAA,IAAA,CAAA;EAErB,EAAM,MAAA,WAAA,GAAc,IAAI,KAAM,EAAA,CAAA;EAC9B,EAAY,WAAA,CAAA,GAAA,GAAM,GAAI,CAAA,eAAA,CAAgB,IAAY,CAAA,CAAA;EAElD,EAAO,OAAA,IAAI,OAAQ,CAAA,CAAC,OAAY,KAAA;EAC9B,IAAA,WAAA,CAAY,SAAS,MAAM;EACzB,MAAA,MAAM,cAAiB,GAAA,iBAAA;EAAA,QACrB,WAAY,CAAA,KAAA;EAAA,QACZ,WAAY,CAAA,MAAA;EAAA,QACZ,QAAA;EAAA,QACA,SAAA;EAAA,OACF,CAAA;EACA,MAAM,MAAA,WAAA,GAAc,YAAY,KAAQ,GAAA,cAAA,CAAA;EACxC,MAAM,MAAA,YAAA,GAAe,YAAY,MAAS,GAAA,cAAA,CAAA;EAC1C,MAAA,MAAA,CAAO,KAAQ,GAAA,WAAA,CAAA;EACf,MAAA,MAAA,CAAO,MAAS,GAAA,YAAA,CAAA;EAChB,MAAA,OAAA,CAAQ,SAAU,CAAA,WAAA,EAAa,CAAG,EAAA,CAAA,EAAG,aAAa,YAAY,CAAA,CAAA;EAC9D,MAAO,MAAA,CAAA,MAAA;EAAA,QACL,CAAC,IAAS,KAAA;EACR,UAAA,IAAI,QAAQ,IAAM,EAAA;EAChB,YAAA,MAAM,WAAW,iBAAkB,CAAA,IAAA,EAAM,IAAK,CAAA,IAAA,EAAM,KAAK,IAAI,CAAA,CAAA;EAC7D,YAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;EAAA,WACX,MAAA;EACL,YAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;EAAA,WACd;EAAA,SACF;EAAA,QACA,YAAA;EAAA,QACA,OAAA;EAAA,OACF,CAAA;EAAA,KACF,CAAA;EAAA,GACD,CAAA,CAAA;EACH,CAAA,CAAA;EAEa,MAAA,gBAAA,GAAmB,CAAC,IAAiB,KAAA;EAChD,EAAA,IAAI,IAAQ,IAAA,CAAA;EAAG,IAAO,OAAA,CAAA,CAAA;EACtB,EAAM,MAAA,CAAA,GAAI,IAAK,CAAA,KAAA,CAAM,IAAK,CAAA,GAAA,CAAI,IAAI,CAAI,GAAA,IAAA,CAAK,GAAI,CAAA,IAAI,CAAC,CAAA,CAAA;EACpD,EAAA,OAAO,CAAI,EAAA,CAAA,IAAA,GAAO,IAAQ,IAAA,CAAA,EAAG,QAAQ,CAAC,CAAA,CAAA,CAAA,EACpC,CAAE,GAAA,EAAK,IAAM,EAAA,IAAA,EAAM,IAAM,EAAA,IAAK,EAAE,CAAC,CAAA,CAAA,CAAA,CAAA;EAErC,CAAA,CAAA;EAEO,MAAM,cAAiB,GAAA,OAC5B,KACA,EAAA,IAAA,KAEA,MAAM,KAAM,CAAA,GAAa,CACtB,CAAA,IAAA,CAAK,CAAC,GAAA,KAAQ,GAAI,CAAA,IAAA,EAAM,CACxB,CAAA,IAAA;EAAA,EACC,CAAC,IAAA,KACC,IAAI,OAAA,CAAQ,CAAC,OAAY,KAAA;EACvB,IAAA,MAAM,WAAW,iBAAkB,CAAA,IAAA,EAAM,QAAQ,KAAM,CAAA,IAAA,EAAM,MAAM,IAAI,CAAA,CAAA;EACvE,IAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;EAAA,GACjB,CAAA;EACL,CAAA,CAAA;EAEJ,MAAM,iBAAoB,GAAA,CAAC,YACzB,KAAAJ,WAAA,CAAM,GAAK,EAAA,YAAY,CACpB,CAAA,GAAA,CAAI,CAAC,MAAA,KAAWmH,UAAK,CAAA,MAAM,CAAC,CAAA,CAAA;EAEpB,MAAA,qBAAA,GAAwB,CAAC,YACpC,KAAA,iBAAA,CAAkB,YAAY,CAC3B,CAAA,MAAA,CAAO,CAAC,MAAW,KAAAwH,UAAA,CAAK,OAAO,MAAM,CAAC,EACtC,GAAI,CAAA,CAAC,WAAW,MAAO,CAAA,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;EAE3B,MAAA,kBAAA,GAAqB,CAAC,YACjC,KAAA,iBAAA,CAAkB,YAAY,CAC3B,CAAA,MAAA,CAAO,CAAC,MAAA,KAAWA,UAAK,CAAA,IAAA,EAAM,MAAM,CAAC,CAAA,CACrC,IAAI,CAAC,MAAA,KAAW3O,YAAM,GAAK,EAAA,MAAM,CAAE,CAAA,CAAC,CAAC,CAAA,CAAA;EAE1C,MAAM,gBAAA,GAAmB,CAA0B,IAAY,KAAAR,UAAA,CAAKQ,YAAM,GAAK,EAAA,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA;EAEzF,MAAM,aAAA,GAAgB,CAA0B,IAAY,KAAAA,WAAA,CAAM,KAAK,IAAK,CAAA,IAAI,EAAE,CAAC,CAAA,CAAA;EAEtE,MAAA,eAAA,GAAkB,CAC7B,IACA,EAAA,YAAA,KAEE,iBAAiB,GAClB,IAAA,kBAAA,CAAmB,YAAY,CAAE,CAAA,QAAA,CAAS,cAAc,IAAI,CAAC,KAC7D,qBAAsB,CAAA,YAAY,EAAE,QAAS,CAAA,gBAAA,CAAiB,IAAI,CAAC,CAAA,CAAA;EAG/D,MAAM,WAAc,GAAA,CACzB,IACA,EAAA,YAAA,EACA,WACG,KAAA;EACH,EAAA,MAAM,UACJ,IAAK,CAAA,IAAA,GAAiB,WACnB,IAAA,eAAA,CAAgB,MAAM,YAAY,CAAA,CAAA;EAEvC,EAAO,OAAA;EAAA,IACL,OAAA;EAAA,IACA,cAAc,IAAK,CAAA,IAAA,GAAiB,WAChC,GAAA,sBAAA,GACA,UACE,EACA,GAAA,2BAAA;EAAA,GACR,CAAA;EACF,CAAA,CAAA;EAEgB,SAAA,oBAAA,CACd,IACA,EAAA,IAAA,EACA,KACA,EAAA;EACA,EAAA,IAAI,MAAS,GAAA,IAAA,CAAA;EACb,EAAM,MAAA,OAAA,GAAU,OAAO,IAAK,CAAA,GAAA,CAAI,CAAC,IAAS,KAAA,IAAA,CAAK,IAAI,CAAI,GAAA,IAAA,CAAA;EACvD,EAAM,MAAA,UAAA,GAAa,OAAO,IAAK,CAAA,GAAA,CAAI,CAAC,IAAS,KAAA,IAAA,CAAK,IAAI,CAAI,GAAA,IAAA,CAAA;EAC1D,EAAA,MAAM,eACJ,GAAA,OAAA,IAAW,UAAc,IAAAL,gBAAA,CAAW,SAAS,UAAU,CAAA,CAAA;EACzD,EAAA,MAAM,WAAW,KAAM,CAAA,GAAA,CAAI,CAAC,IAAA,KAAS,KAAK,IAAI,CAAA,CAAA;EAE9C,EAAA,IAAI,eAAiB,EAAA;EACnB,IACE,IAAA,eAAA,CAAgB,WAAW,CAC3B,IAAAkS,kBAAA,CAAa,iBAAiB,QAAQ,CAAA,CAAE,SAAS,CACjD,EAAA;EACA,MAAS,MAAA,GAAA,IAAA,CAAA;EAAA,KACJ,MAAA;EACL,MAAO,MAAA,CAAA,OAAA;EAAA,QAAQ,CAAC,OAAO,KAAU,KAAA;EAC/B,UAAA,IAAI,eAAgB,CAAA,QAAA,CAAS,KAAM,CAAA,IAAI,CAAG,EAAA;EACxC,YAAM,MAAA,WAAA,GAAclR,qCAAK,KAAL,CAAA,EAAA;EAAA,cAClB,UAAUgM,SAAI,CAAA,MAAA,EAAQ,KAAK,CAAA,GAAI,MAAM,IAAO,GAAA,CAAA;EAAA,aAAE,CAAA,CAAA;EAChD,YAAA,MAAA,CAAO,KAAK,CAAI,GAAA,WAAA,CAAA;EAAA,WAClB;EAAA,SACF;EAAA,OACA,CAAA;EAAA,KACF;EAAA,GACK,MAAA;EACL,IAAS,MAAA,GAAA,IAAA,CAAA;EAAA,GACX;EACA,EAAO,OAAA,MAAA,CAAA;EACT,CAAA;EAEa,MAAA,UAAA,GAAa,MAAM,IAAK,CAAA,MAAA,GAAS,QAAS,EAAA,CAAE,UAAU,CAAC,CAAA,CAAA;EAE7D,MAAM,MAAS,GAAA,CAAC,IAAc,KAAA,MAAA,IAAU,UAAU,IAAgB,YAAA,IAAA,CAAA;EAE5D,MAAA,WAAA,GAAc,CAAyB,IAAY,KAAA;EAC9D,EAAI,IAAA,MAAA,CAAO,IAAI,CAAG,EAAA;EAChB,IAAO,OAAA,aAAA,CAAc,IAAI,CAAM,KAAA,OAAA,CAAA;EAAA,GACjC;EACA,EAAQ,QAAA,aAAA,CAAc,IAAI,CAAG;EAAA,IAC3B,KAAK,OAAA,CAAA;EAAA,IACL,KAAK,MAAA,CAAA;EAAA,IACL,KAAK,KAAA,CAAA;EAAA,IACL,KAAK,KAAA,CAAA;EAAA,IACL,KAAK,KAAA,CAAA;EAAA,IACL,KAAK,MAAA,CAAA;EAAA,IACL,KAAK,MAAA;EACH,MAAO,OAAA,IAAA,CAAA;EAAA,IACT;EACE,MAAO,OAAA,KAAA,CAAA;EAAA,GACX;EACF,CAAA,CAAA;EAEa,MAAA,iBAAA,GAAoB,CAAC,YAAyB,KAAA;EACzD,EAAI,IAAA,YAAA,KAAiB,GAAO,IAAA,YAAA,KAAiB,EAAI,EAAA;EAC/C,IAAO,OAAA,KAAA,CAAA;EAAA,GACT;EACA,EAAM,MAAA,OAAA,GAAU,mBAAmB,YAAY,CAAA,CAAA;EAC/C,EAAM,MAAA,UAAA,GAAa,sBAAsB,YAAY,CAAA,CAAA;EAErD,EAAM,MAAA,UAAA,GAAa/I,cAAQ,OAAO,CAAA,IAAKoJ,UAAI,CAAC,IAAA,KAAiB,IAAS,KAAA,OAAA,EAAS,OAAO,CAAA,CAAA;EAEtF,EAAA,MAAM,UAAa,GAAApJ,aAAA,CAAQ,UAAU,CAAA,IAClCoJ,SAAI,CAAA,CAAC,IAAiB,KAAA,WAAA,CAAY,EAAE,IAAA,EAAM,CAAA,EAAG,UAAU,CAAA,CAAA;EAE1D,EAAA,OAAO,UAAc,IAAA,UAAA,CAAA;EACvB,CAAA,CAAA;EAEa,MAAA,gBAAA,GAAmB,CAAuB,IAAkB,KAAA;EACvE,EAAA,MAAM,SAAS,UAAW,EAAA,CAAA;EAC1B,EAAA,MAAM,UAAa,GAAA;EAAA,IACjB,GAAK,EAAA,MAAA;EAAA,IACL,IAAM,EAAA,IAAA;EAAA,IACN,GAAK,EAAA,IAAA;EAAA,IACL,MAAM,IAAK,CAAA,IAAA;EAAA,IACX,MAAM,IAAK,CAAA,IAAA;EAAA,IACX,WAAa,EAAA,IAAA;EAAA,IACb,MAAQ,EAAA,IAAA,CAAK,IAAO,GAAA,kBAAA,IAAsB,YAAY,IAAI,CAAA;EAAA,GAC5D,CAAA;EACA,EAAO,OAAA,UAAA,CAAA;EACT,CAAA,CAAA;EAEa,MAAA,uBAAA,GAA0B,CAAuB,IAAkB,KAAA;EAC9E,EAAA,MAAM,SAAS,UAAW,EAAA,CAAA;EAC1B,EAAA,MAAM,UAAa,GAAA;EAAA,IACjB,GAAK,EAAA,MAAA;EAAA,IACL,MAAM,IAAK,CAAA,IAAA;EAAA,IACX,GAAA,EAAK,GAAI,CAAA,eAAA,CAAgB,IAAI,CAAA;EAAA,IAC7B,MAAM,IAAK,CAAA,IAAA;EAAA,IACX,MAAM,IAAK,CAAA,IAAA;EAAA,IACX,WAAa,EAAA,KAAA;EAAA,IACb,MAAQ,EAAA,KAAA;EAAA,GACV,CAAA;EACA,EAAO,OAAA,UAAA,CAAA;EACT,CAAA,CAAA;EAEa,MAAA,uBAAA,GAA0B,CAAgC,IAAY,KAAA;EACjF,EAAA,MAAM,SAAS,UAAW,EAAA,CAAA;EAC1B,EAAA,MAAM,UAAa,GAAA;EAAA,IACjB,GAAK,EAAA,MAAA;EAAA,IACL,IAAM,EAAA,IAAA;EAAA,IACN,KAAK,IAAK,CAAA,GAAA;EAAA,IACV,MAAM,IAAK,CAAA,IAAA;EAAA,IACX,MAAM,IAAK,CAAA,IAAA;EAAA,IACX,WAAa,EAAA,KAAA;EAAA,IACb,MAAQ,EAAA,KAAA;EAAA,GACV,CAAA;EACA,EAAO,OAAA,UAAA,CAAA;EACT,CAAA,CAAA;EAEO,MAAM,gBAAgB,CAAC,OAAA,KAAsB,UAChD,OAAQ,CAAA,YAAA,GAAe,QAAQ,YAC/B,GAAA,KAAA,CAAA;EAGG,MAAM,WAAW,CAAC,IAAA,KAAgC,IAAI,OAAQ,CAAA,CAAC,SAAS,MAAW,KAAA;EACxF,EAAM,MAAA,MAAA,GAAS,IAAI,UAAW,EAAA,CAAA;EAC9B,EAAA,MAAA,CAAO,cAAc,IAAI,CAAA,CAAA;EACzB,EAAA,MAAA,CAAO,MAAS,GAAA,MAAM,OAAQ,CAAA,MAAA,CAAO,MAAgB,CAAA,CAAA;EACrD,EAAA,MAAA,CAAO,OAAU,GAAA,CAAC,KAAU,KAAA,MAAA,CAAO,KAAK,CAAA,CAAA;EAC1C,CAAC,CAAA,CAAA;EAED,MAAM,oBAAuB,GAAA,CAAC,GAAgB,KAAA2B,UAAA,CAAK,MAAM,GAAG,CAAA,CAAA;EAE5D,MAAM,oBAAuB,GAAA,CAAC,IAA6B,KAAA,oBAAA,CAAqB,IAAK,CAAA,IAAI,CACrF,GAAA,IAAA,CAAK,IACL,GAAA,CAAA,EAAG,IAAK,CAAA,IAAA,CAAA,CAAA,EAAQ,iBAAiB,IAAI,CAAA,CAAA,CAAA,CAAA;EAC5B,MAAA,cAAA,GAAiB,CAAC,IAAA,KAE1B,MAAM;EACT,EAAA,IAAI,CAAC,IAAA;EAAM,IAAA,OAAA;EACX,EAAM,MAAA,MAAA,GAAS,QAAS,CAAA,aAAA,CAAc,GAAG,CAAA,CAAA;EACzC,EAAO,MAAA,CAAA,IAAA,GAAO,OAAO,IAAI,CAAA,GAAI,IAAI,eAAgB,CAAA,IAAY,CAAK,GAAA,IAAA,CAAoB,GAAO,IAAA,EAAA,CAAA;EAC7F,EAAA,MAAA,CAAO,WAAW,MAAO,CAAA,IAAI,CACzB,GAAA,qBAAA,GACA,qBAAqB,IAAY,CAAA,CAAA;EACrC,EAAA,MAAA,CAAO,KAAM,EAAA,CAAA;EACf,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECrRa,MAAA,cAAA,GAAiB,CAAC,EAIP,KAAA;EAJO,EAC7B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAQ,GAAA,OAAA;EAAA,GAPV,GAK+B,EAG1B,EAAA,IAAA,GAAAxJ,WAAA,CAH0B,EAG1B,EAAA;EAAA,IAFH,MAAA;EAAA,IACA,OAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA/E,gBAAA,CAAA,EAAA,OAAA,EAAQ,OAAQ,EAAA,IAAA,EAAK,IAAU,EAAA,EAAA,IAAA,CAAA,kBACxC,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAK,EAAA,IAAA,EAAO,OAAQ,EAAA,MAAA,EAAO,OAAgB,CACnD,CAAA,CAAA;EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACuCW,QAAA,UAAA,GAAa,CAAC,EAaJ,KAAA;EAbI,EACzB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAe,YAAA,GAAA,GAAA;EAAA,IACf,QAAW,GAAA8E,cAAA;EAAA,IACX,WAAA;EAAA,IACA,UAAU,eAAkB,GAAA,CAAA;EAAA,IAC5B,WAAc,GAAA,aAAA;EAAA,IACd,YAAe,GAAA,KAAA;EAAA,IACf,KAAQ,GAAA,EAAA;EAAA,IACR,eAAkB,GAAA,KAAA;EAAA,IAClB,aAAgB,GAAA,KAAA;EAAA,IAChB,eAAkB,GAAA,kBAAA;EAAA,IAClB,KAAK,EAAC;EAAA,GA9DR,GAmD2B,EAYtB,EAAA,IAAA,GAAAC,WAAA,CAZsB,EAYtB,EAAA;EAAA,IAXH,cAAA;EAAA,IACA,UAAA;EAAA,IACA,aAAA;EAAA,IACA,UAAA;EAAA,IACA,aAAA;EAAA,IACA,cAAA;EAAA,IACA,OAAA;EAAA,IACA,iBAAA;EAAA,IACA,eAAA;EAAA,IACA,iBAAA;EAAA,IACA,IAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,YAAA,GAAe7F,aAAyB,IAAI,CAAA,CAAA;EAClD,EAAM,MAAA,cAAA,GAAiBA,aAAqB,IAAI,CAAA,CAAA;EAChD,EAAA,MAAM,CAAE,IAAA,EAAM,OAAQ,CAAA,GAAIJ,eAA+B,KAAK,CAAA,CAAA;EAE9D,EAAA,MAAM,CAAE,SAAA,EAAW,YAAa,CAAA,GAAIA,eAAS,KAAK,CAAA,CAAA;EAClD,EAAA,MAAM,CAAE,IAAA,EAAM,OAAQ,CAAA,GAAIA,eAAS,EAAE,CAAA,CAAA;EACrC,EAAA,MAAM,YAAYqJ,mBAAc,EAAA,CAAA;EAChC,EAAA,MAAM,cAAcA,mBAAc,EAAA,CAAA;EAClC,EAAA,MAAM,CAAE,QAAA,EAAU,WAAY,CAAA,GAAIrJ,eAAS,KAAK,CAAA,CAAA;EAChD,EAAA,MAAM,CAAE,SAAA,EAAW,YAAa,CAAA,GAAIA,eAAS,KAAK,CAAA,CAAA;EAClD,EAAA,MAAM,CAAE,SAAA,EAAW,YAAa,CAAA,GAAIA,eAAS,KAAK,CAAA,CAAA;EAClD,EAAA,MAAM,CAAE,OAAA,EAAS,UAAW,CAAA,GAAIA,eAAS,IAAI,CAAA,CAAA;EAC7C,EAAA,MAAM,CAAE,QAAA,EAAU,WAAY,CAAA,GAAIA,eAAS,eAAe,CAAA,CAAA;EAE1D,EAAM,MAAA,iBAAA,GAAoB,kBAAkB,YAAY,CAAA,CAAA;EAExD,EAAA,MAAM,cAAc,QAAW,GAAA,CAAA,CAAA;EAE/B,EAAAC,eAAA,CAAU,MAAM;EACd,IAAA,WAAA,CAAY,eAAe,CAAA,CAAA;EAAA,GAC7B,EAAG,CAAE,eAAgB,CAAC,CAAA,CAAA;EAEtB,EAAAA,eAAA,CAAU,MAAM;EACd,IAAA,IAAI,CAAC,WAAa,EAAA;EAChB,MAAA,YAAA,CAAa,KAAK,CAAA,CAAA;EAClB,MAAA,YAAA,CAAa,IAAI,CAAA,CAAA;EAAA,KACnB;EAAA,GACF,EAAG,CAAE,WAAY,CAAC,CAAA,CAAA;EAElB,EAAA,MAAM,eAAe,eAAgB,EAAA,CAAA;EAErC,EAAA,MAAM,EAAE,UAAA,EAAe,GAAAoG,yBAAA,CAAoB,YAAc,EAAAnF,gBAAA,CAAA;EAAA,IACvD,OAAA;EAAA,IACA,SAAA;EAAA,IACA,SAAA;EAAA,IACA,YAAA;EAAA,IACA,EAAA;EAAA,GAAA,EACG,IACJ,CAAA,CAAA,CAAA;EAED,EAAAjB,eAAA,CAAU,MAAM;EACd,IAAA,IAAI,SAAW,EAAA;EACb,MAAA,UAAA,CAAW,MAAM;EACf,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;EAAA,SACjB,IAAI,CAAA,CAAA;EAAA,KACT;EAAA,GACF,EAAG,CAAE,SAAU,CAAC,CAAA,CAAA;EAEhB,EAAA,MAAM,gBAAgB,MAAM;EAC1B,IAAI,IAAA,YAAA,CAAa,OAAW,IAAA,CAAC,IAAM,EAAA;EACjC,MAAA,YAAA,CAAa,QAAQ,KAAM,EAAA,CAAA;EAAA,KAC7B;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,aAAa,MAAM;EACvB,IAAA,IAAI,eAAe,OAAS,EAAA;EAC1B,MAAM,MAAA,MAAA,GAAS,cAAe,CAAA,OAAA,CAAQ,sBAAuB,EAAA,CAAA;EAC7D,MAAO,MAAA,CAAA,MAAA,CAAO,CAAC,IAAS,KAAA;EACtB,QAAA,IAAI,QAAQ,IAAM,EAAA;EAChB,UAAA,MAAM,WAAW,IACd,IAAA,MAAA,CAAO,IAAI,CAAA,GACT,KAAc,IACf,GAAA,iBAAA,CAAA;EAEJ,UAAA,MAAM,QAAW,GAAA,MAAA,CAAO,IAAI,CAAA,GACvB,KAAc,IACf,GAAA,MAAA,CAAA;EAEJ,UAAA,MAAM,OAAU,GAAA,iBAAA,CAAkB,IAAM,EAAA,QAAA,EAAU,QAAQ,CAAA,CAAA;EAC1D,UAAA,OAAA,CAAQ,OAAO,CAAA,CAAA;EACf,UAAA,YAAA,CAAa,IAAI,CAAA,CAAA;EACjB,UAAA,QAAA,CAAS,OAAO,CAAA,CAAA;EAAA,SAClB;EAAA,OACD,CAAA,CAAA;EACD,MAAA,SAAA,CAAU,OAAQ,EAAA,CAAA;EAAA,KACpB;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,aAAa,MAAM;EACvB,IAAA,IAAI,aAAa,OAAS,EAAA;EACxB,MAAA,YAAA,CAAa,KAAK,CAAA,CAAA;EAClB,MAAA,OAAA,CAAQ,EAAE,CAAA,CAAA;EACV,MAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;EACZ,MAAA,UAAA,CAAW,IAAI,CAAA,CAAA;EACf,MAAA,YAAA,CAAa,KAAK,CAAA,CAAA;EAClB,MAAA,IAAI,CAAC,YAAc,EAAA;EACjB,QAAA,WAAA,CAAY,CAAC,CAAA,CAAA;EAAA,OACf;EACA,MAAA,QAAA,CAAS,IAAI,CAAA,CAAA;EACb,MAAA,YAAA,CAAa,QAAQ,KAAQ,GAAA,EAAA,CAAA;EAAA,KAC/B;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,iBAAA,GAAoB,OAAO,QAA0B,KAAA;EACzD,IAAA,IAAI,QAAU,EAAA;EACZ,MAAA,YAAA,CAAa,KAAK,CAAA,CAAA;EAClB,MAAM,MAAA,eAAA,GAAkB,YAAY,QAAQ,CAAA,CAAA;EAC5C,MAAA,UAAA,CAAW,eAAe,CAAA,CAAA;EAC1B,MAAM,MAAA,eAAA,GAAkB,kBAClB,MAAM,aAAA;EAAA,QACR,QAAA;EAAA,QACA,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,KAAA;EAAA,QACb,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,MAAA;EAAA,QACb,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,OAAA;EAAA,OAEb,GAAA,QAAA,CAAA;EACJ,MAAA,OAAA,CAAQ,eAAe,CAAA,CAAA;EACvB,MAAA,IAAI,CAAC,YAAc,EAAA;EACjB,QAAA,WAAA,CAAY,CAAC,CAAA,CAAA;EAAA,OACf;EACA,MAAA,QAAA,CAAS,eAAe,CAAA,CAAA;EACxB,MAAA,YAAA,CAAa,WAAW,CAAA,CAAA;EAAA,KAC1B;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,YAAA,GAAe,OAAO,CAA2C,KAAA;EACrE,IAAI,IAAA,CAAA,CAAE,OAAO,KAAO,EAAA;EAClB,MAAA,YAAA,CAAa,KAAK,CAAA,CAAA;EAClB,MAAA,MAAM,QAAW,GAAA,CAAA,CAAE,MAAO,CAAA,KAAA,CAAM,CAAC,CAAA,CAAA;EACjC,MAAA,iBAAA,CAAkB,QAAQ,CAAA,CAAA;EAAA,KAC5B;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,UAAA,GAAa,CAAC,CAAiB,KAAA;EACnC,IAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EACjB,IAAI,IAAA,CAAA,CAAE,aAAa,KAAO,EAAA;EACxB,MAAA,MAAM,OAAU,GAAA,CAAA,CAAE,YAAa,CAAA,KAAA,CAAM,CAAC,CAAA,CAAA;EACtC,MAAA,IAAI,WAAY,CAAA,OAAA,EAAS,YAAc,EAAA,WAAW,EAAE,OAAS,EAAA;EAC3D,QAAA,iBAAA,CAAkB,OAAO,CAAA,CAAA;EAAA,OACpB,MAAA;EACL,QAAA,YAAA,CAAa,IAAI,CAAA,CAAA;EAAA,OACnB;EAAA,KACF;EAAA,GACF,CAAA;EAEA,EAAA,uBACG,KAAA,CAAA,aAAA,CAAAwI,WAAA,EAAAvH,gBAAA,CAAA,EAAM,IAAO,EAAA,UAAA,CAAW,SAAuB,IAC9C,CAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,SAAA;EAAA,IAAA;EAAA,MACC,OAAU,EAAA,aAAA;EAAA,MACV,MAAS,EAAA,UAAA;EAAA,MACT,UAAa,EAAA,CAAC,CAAiB,KAAA,CAAA,CAAE,cAAe,EAAA;EAAA,MAChD,YAAA,EAAe,MAAM,WAAA,CAAY,IAAI,CAAA;EAAA,MACrC,YAAA,EAAe,MAAM,WAAA,CAAY,KAAK,CAAA;EAAA,KAAA;EAAA,oBAEtC,KAAA,CAAA,aAAA,CAACkF,SAAI,EAAA,EAAA,EAAA,EAAK,UACR,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACoE,eAAA;EAAA,MAAA;EAAA,QACC,EAAK,EAAA,SAAA;EAAA,QACL,KAAQ,EAAA;EAAA,UACN,KAAO,EAAA,MAAA;EAAA,UACP,MAAQ,EAAA,MAAA;EAAA,UACR,OAAA,EAAS,SAAa,IAAA,OAAA,GAAU,SAAY,GAAA,MAAA;EAAA,SAC9C;EAAA,OAAA;EAAA,sBAEA,KAAA,CAAA,aAAA;EAAA,QAACoI,WAAA;EAAA,QAAA;EAAA,UACC,GAAA,EAAM,OACF,MAAO,CAAA,IAAI,IACT,GAAI,CAAA,eAAA,CAAgB,IAAY,CAAA,GAChC,IACF,GAAA,EAAA;EAAA,UACJ,GAAI,EAAA,eAAA;EAAA,UACJ,SAAU,EAAA,OAAA;EAAA,UACV,YAAe,EAAA,CAAA;EAAA,UACf,OAAA,EAAU,SAAa,IAAA,OAAA,GAAU,SAAY,GAAA,MAAA;EAAA,UAC7C,CAAE,EAAA,MAAA;EAAA,UACF,CAAE,EAAA,MAAA;EAAA,SAAA;EAAA,OACJ;EAAA,KAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACjB,WAAA;EAAA,MAAA;EAAA,QACC,IAAK,EAAA,MAAA;EAAA,QACL,OAAQ,EAAA,MAAA;EAAA,QACR,MAAS,EAAA,YAAA;EAAA,QACT,GAAM,EAAA,YAAA;EAAA,QACN,QAAW,EAAA,YAAA;EAAA,OAAA;EAAA,KAEb,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAClJ,WAAA;EAAA,MAAA;EAAA,QACC,OAAA,EAAU,SAAa,IAAA,OAAA,GAAU,MAAS,GAAA,SAAA;EAAA,QAC1C,UAAW,EAAA,QAAA;EAAA,QACX,CAAE,EAAA,KAAA;EAAA,QACF,OAAQ,EAAA,IAAA;EAAA,OAAA;EAAA,sBAER,KAAA,CAAA,aAAA;EAAA,QAAC,IAAA;EAAA,QAAA;EAAA,UACC,EAAA,EAAK,oBAAoBoK,kBAAe,GAAAC,sBAAA;EAAA,UACxC,OAAQ,EAAA,MAAA;EAAA,UACR,KACA,EAAA,SAAA,GACI,SACA,GAAA,QAAA,GACE,UACA,GAAA,UAAA;EAAA,UAEN,OAAU,EAAA,OAAA,IAAW,CAAC,SAAA,GAAY,cAAiB,GAAA,MAAA;EAAA,UACnD,YAAW,EAAA,kBAAA;EAAA,SAAA;EAAA,OACb;EAAA,sBACA,KAAA,CAAA,aAAA;EAAA,QAAC,IAAA;EAAA,QAAA;EAAA,UACC,EAAK,EAAAC,kBAAA;EAAA,UACL,OAAQ,EAAA,MAAA;EAAA,UACR,KAAM,EAAA,UAAA;EAAA,UACN,OAAU,EAAA,SAAA,IAAa,CAAC,OAAA,GAAU,cAAiB,GAAA,MAAA;EAAA,SAAA;EAAA,OACrD;EAAA,sBACA,KAAA,CAAA,aAAA;EAAA,QAAC,CAAA;EAAA,QAAA;EAAA,UACC,OAAA,EAAU,YAAY,IAAO,GAAA,IAAA;EAAA,UAC7B,UAAW,EAAA,QAAA;EAAA,UACX,YAAa,EAAA,UAAA;EAAA,UACb,QAAS,EAAA,QAAA;EAAA,UACT,UAAW,UAAW,CAAA,KAAA;EAAA,UACtB,SAAU,EAAA,QAAA;EAAA,UACV,SAAU,EAAA,QAAA;EAAA,SAAA;EAAA,QAER,SAAA,GACE,oBACA,GAAA,IAAA,IAAQ,MAAO,CAAA,IAAI,IAChB,IAAc,CAAA,IAAA,GACf,CAAe,YAAA,EAAA,iBAAA,GAAoB,OAAU,GAAA,MAAA,CAAA,GAAA,CAAA;EAAA,OACrD;EAAA,sBACA,KAAA,CAAA,aAAA;EAAA,QAAC,IAAA;EAAA,QAAA;EAAA,UACC,EAAK,EAAA;EAAA,YACH,cAAgB,EAAA,WAAA;EAAA,YAChB,KAAA,EAAO,YAAY,SAAY,GAAA,UAAA;EAAA,WACjC;EAAA,UACA,OAAA,EAAU,SAAa,IAAA,SAAA,GAAY,MAAS,GAAA,SAAA;EAAA,SAAA;EAAA,QAC7C,iBAAA;EAAA,OAED;EAAA,0CACC3M,SAAI,EAAA,EAAA,OAAA,EAAU,SAAY,GAAA,OAAA,GAAU,QAAS,EAAK,EAAA,CAAA,EAAA,EAC/C,eACE,mBAAA,KAAA,CAAA,aAAA,CAAC,aAAQ,CACT,mBAAA,KAAA,CAAA,aAAA,CAAC,UAAW,EAAA,EAAA,MAAA,EAAS,UAAW,CAEtC,CAAA;EAAA,KAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC4M,UAAA;EAAA,MAAA;EAAA,QACC,IAAK,SAAa,IAAA,QAAA;EAAA,QAClB,KAAQ,EAAA;EAAA,UACN,OAAA,EAAS,SAAa,IAAA,QAAA,GAAW,MAAS,GAAA,MAAA;EAAA,UAC1C,cAAgB,EAAA,QAAA;EAAA,SAClB;EAAA,OAAA;EAAA,sBAEA,KAAA,CAAA,aAAA;EAAA,QAACvL,YAAA;EAAA,QAAA;EAAA,UACC,OAAU,EAAA,CAAA;EAAA,UACV,QAAS,EAAA,UAAA;EAAA,UACT,MAAO,EAAA,GAAA;EAAA,UACP,cAAe,EAAA,QAAA;EAAA,UACf,OAAQ,EAAA,UAAA;EAAA,UACR,YAAe,EAAA,CAAA;EAAA,UACf,KAAM,EAAA,IAAA;EAAA,UACN,EAAK,EAAA,CAAA;EAAA,SAAA;EAAA,QAEH,gBAAgB,OAClB,oBAAA,KAAA,CAAA,aAAA;EAAA,UAAC,cAAA;EAAA,UAAA;EAAA,YACC,YAAW,EAAA,WAAA;EAAA,YACX,SAAU,SAAU,CAAA,MAAA;EAAA,YACpB,IAAO,EAAAwL,gBAAA;EAAA,WAAA;EAAA,SACT;EAAA,wBAEA,KAAA,CAAA,aAAA;EAAA,UAAC,cAAA;EAAA,UAAA;EAAA,YACC,YAAW,EAAA,eAAA;EAAA,YACX,OAAA,EAAU,eAAe,IAAI,CAAA;EAAA,YAC7B,IAAO,EAAAC,iBAAA;EAAA,WAAA;EAAA,SACT;EAAA,wBACA,KAAA,CAAA,aAAA;EAAA,UAAC,cAAA;EAAA,UAAA;EAAA,YACC,YAAW,EAAA,aAAA;EAAA,YACX,OAAA,EAAU,aAAgB,GAAA,WAAA,CAAY,MAAS,GAAA,UAAA;EAAA,YAC/C,IAAO,EAAAC,kBAAA;EAAA,YACP,KAAM,EAAA,SAAA;EAAA,WAAA;EAAA,SACR;EAAA,OACF;EAAA,KAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,CAAA;EAAA,MAAA;EAAA,QACC,OAAQ,EAAA,IAAA;EAAA,QACR,EAAA,EAAK,EAAE,KAAA,EAAO,UAAW,EAAA;EAAA,QACzB,SACA,SAAa,IAAA,CAAC,OAAW,IAAA,CAAC,YACtB,cACA,GAAA,MAAA;EAAA,OAAA;EAAA,MAGF,MAAO,CAAA,IAAI,CAAK,IAAA,gBAAA,CAAkB,6BAAe,IAAc,CAAA;EAAA,KAGrE,CAAA;EAAA,GAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,eAAA;EAAA,IAAA1R,eAAA,CAAAP,gBAAA,CAAA,EAAA,EACM,SADN,CAAA,EAAA;EAAA,MAEC,QAAW,EAAA,IAAA;EAAA,MACX,WAAc,EAAA,OAAA;EAAA,MACd,KAAQ,EAAA,IAAA;EAAA,MACR,UAAA;EAAA,MACA,OAAA;EAAA,MACA,GAAM,EAAA,cAAA;EAAA,MACN,iBAAkB,eAAgB,CAAA,WAAA;EAAA,MAClC,cAAe,eAAgB,CAAA,YAAA;EAAA,KAAA,CAAA;EAAA,GAEjC,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,kBAAA;EAAA,IAAAO,eAAA,CAAAP,gBAAA,CAAA,EAAA,EACM,WADN,CAAA,EAAA;EAAA,MAEC,aAAgB,EAAA,UAAA;EAAA,MAChB,UAAW,IAAQ,IAAA,MAAA;EAAA,KAAA,CAAA;EAAA,GAEvB,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9Ua,QAAA,eAAA,GAAkB,CAAC,EAQJ,KAAA;EARI,EAC9B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAU,gBAAmB,GAAA8E,cAAA;EAAA,GApC/B,GA8BgC,EAO3B,EAAA,IAAA,GAAAC,WAAA,CAP2B,EAO3B,EAAA;EAAA,IANH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,QAAA,EAAU,WAAY,CAAA,GAAIjG,eAAS,CAAC,CAAA,CAAA;EAE5C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAAkB,gBAAA,CAAA;EAAA,QACC,QAAA,EAAW,OAAO,IAAsB,KAAA;EACtC,UAAA,IAAI,IAAM,EAAA;EACR,YAAM,MAAA,aAAA,GAAgB,MAAM,QAAA,CAAS,IAAI,CAAA,CAAA;EACzC,YAAA,WAAA,CAAY,CAAC,CAAA,CAAA;EACb,YAAA,QAAA,CAAS,aAAa,CAAA,CAAA;EACtB,YAAA,gBAAA,CAAiB,aAAa,CAAA,CAAA;EAAA,WACzB,MAAA;EACL,YAAA,WAAA,CAAY,CAAC,CAAA,CAAA;EACb,YAAA,QAAA,CAAS,IAAI,CAAA,CAAA;EACb,YAAA,gBAAA,CAAiB,IAAI,CAAA,CAAA;EAAA,WACvB;EAAA,SACF;EAAA,QACA,KAAA;EAAA,QACA,QAAA,EAAW,QAAQ,CAAI,GAAA,QAAA;EAAA,QACvB,eAAkB,EAAA,IAAA;EAAA,QAClB,YAAa,EAAA,SAAA;EAAA,OACR,EAAA,IAAA,CAAA;EAAA,KACP;EAAA,GAEJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EClBO,SAAS,kBAAyC,EAQ3B,EAAA;EAR2B,EACvD,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAe,YAAA,GAAA,GAAA;EAAA,IACf,WAAA;EAAA,IACA,QAAW,GAAA8E,cAAA;EAAA,IACX,eAAkB,GAAAA,cAAA;EAAA,IAClB,kBAAqB,GAAAA,cAAA;EAAA,IACrB,WAAc,GAAA,aAAA;EAAA,GA5DhB,GAsDyD,EAOpD,EAAA,IAAA,GAAAC,WAAA,CAPoD,EAOpD,EAAA;EAAA,IANH,cAAA;EAAA,IACA,aAAA;EAAA,IACA,UAAA;EAAA,IACA,iBAAA;EAAA,IACA,oBAAA;EAAA,IACA,aAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,QAAA,GAAW7F,aAAyB,IAAI,CAAA,CAAA;EAC9C,EAAA,MAAM,CAAE,SAAA,EAAW,YAAa,CAAA,GAAIJ,eAAS,KAAK,CAAA,CAAA;EAClD,EAAA,MAAM,eAAe,eAAgB,EAAA,CAAA;EACrC,EAAM,MAAA,EAAE,iBAAoB,GAAAqG,yBAAA,CAAoB,cAAcnF,gBAAE,CAAA,EAAA,SAAA,EAAW,gBAAiB,IAAM,CAAA,CAAA,CAAA;EAClG,EAAA,MAAM,CAAE,MAAA,EAAQ,SAAU,CAAA,GAAIlB,eAAS,KAAK,CAAA,CAAA;EAC5C,EAAA,MAAM,CAAE,YAAA,EAAc,eAAgB,CAAA,GAAIA,eAAS,EAAE,CAAA,CAAA;EAErD,EAAM,MAAA,iBAAA,GAAoB,kBAAkB,YAAY,CAAA,CAAA;EAExD,EAAAC,eAAA,CAAU,MAAM;EACd,IAAA,IAAI,SAAW,EAAA;EACb,MAAA,UAAA,CAAW,MAAM;EACf,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;EAAA,SACjB,IAAI,CAAA,CAAA;EAAA,KACT;EAAA,GACF,EAAG,CAAE,SAAU,CAAC,CAAA,CAAA;EAEhB,EAAA,MAAM,cAAc,MAAM;EACxB,IAAU,SAAA,CAAA,CAAC,IAAS,KAAA,CAAC,IAAI,CAAA,CAAA;EAAA,GAC3B,CAAA;EAEA,EAAA,MAAM,cAAc,MAAM;EACxB,IAAA,IAAI,SAAS,OAAS,EAAA;EACpB,MAAA,QAAA,CAAS,QAAQ,KAAM,EAAA,CAAA;EAAA,KACzB;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,mBAAA,GAAsB,OAAO,QAAuB,KAAA;EACxD,IAAA,MAAM,QAAmB,GAAA,KAAA,CAAM,SAAU,CAAA,KAAA,CAAM,KAAK,QAAQ,CAAA,CAAA;EAC5D,IAAM,MAAA,UAAA,GAAauP,YAAO,CAAA,CAAC,IAAS,KAAA;EAClC,MAAA,MAAM,SAAY,GAAA,WAAA,CAAY,IAAM,EAAA,YAAA,EAAc,WAAW,CAAA,CAAA;EAC7D,MAAI,IAAA,CAAC,UAAU,OAAS,EAAA;EACtB,QAAgB,eAAA,CAAA,SAAA,CAAU,gBAAgB,EAAE,CAAA,CAAA;EAAA,OAC9C;EACA,MAAA,OAAO,SAAU,CAAA,OAAA,CAAA;EAAA,OAChB,QAAQ,CAAA,CAAA;EACX,IAAA,IAAI,QAAS,CAAA,MAAA,GAAS,CAAK,IAAA,UAAA,CAAW,WAAW,CAAG,EAAA;EAClD,MAAA,YAAA,CAAa,IAAI,CAAA,CAAA;EAAA,KACnB;EAEA,IAAA,eAAA,CAAgB,WAAW,GAAI,CAAA,CAAC,SAAS,gBAAiB,CAAA,IAAI,CAAC,CAAC,CAAA,CAAA;EAChE,IAAA,kBAAA,CAAmB,WAAW,GAAI,CAAA,CAAC,SAAS,uBAAwB,CAAA,IAAI,CAAC,CAAC,CAAA,CAAA;EAC1E,IAAA,MAAM,kBAAkB,UAAW,CAAA,GAAA;EAAA,MACjC,OAAO,IAAA,KAAU,WAAY,CAAA,IAAI,CAC7B,GAAA,aAAA;EAAA,QACA,IAAA;EAAA,QACA,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,KAAA;EAAA,QACb,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,MAAA;EAAA,QACb,WAAa,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,OAAA;EAAA,OAEb,GAAA,IAAA;EAAA,KACN,CAAA;EACA,IAAA,OAAA,CAAQ,GAAI,CAAA,eAAe,CAAE,CAAA,IAAA,CAAK,CAAC,MAAW,KAAA;EAC5C,MAAA,QAAA,CAAS,MAAM,CAAA,CAAA;EACf,MAAA,IAAI,SAAS,OAAS,EAAA;EACpB,QAAA,QAAA,CAAS,QAAQ,KAAQ,GAAA,EAAA,CAAA;EAAA,OAC3B;EAAA,KACD,CAAA,CAAA;EAAA,GACH,CAAA;EAEA,EAAM,MAAA,UAAA,GAAa,CAAC,CAAiB,KAAA;EACnC,IAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EACjB,IAAoB,mBAAA,CAAA,CAAA,CAAE,aAAa,KAAK,CAAA,CAAA;EAAA,GAC1C,CAAA;EAEA,EAAM,MAAA,YAAA,GAAe,CAAC,CAA2C,KAAA;EAC/D,IAAI,IAAA,CAAA,CAAE,OAAO,KAAO,EAAA;EAClB,MAAoB,mBAAA,CAAA,CAAA,CAAE,OAAO,KAAK,CAAA,CAAA;EAAA,KACpC;EAAA,GACF,CAAA;EACA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,SAAA;EAAA,IAAA;EAAA,MACC,OAAU,EAAA,WAAA;EAAA,MACV,UAAa,EAAA,CAAC,CAAiB,KAAA,CAAA,CAAE,cAAe,EAAA;EAAA,MAChD,MAAS,EAAA,UAAA;EAAA,MACT,YAAe,EAAA,WAAA;EAAA,MACf,YAAe,EAAA,WAAA;EAAA,KAAA;EAAA,oBAEd,KAAA,CAAA,aAAA,CAAApJ,SAAA,EAAAlF,gBAAA,CAAA,EAAI,EAAK,EAAA,eAAA,EAAA,EAAuB,IAC/B,CAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACuH,WAAA;EAAA,MAAA;EAAA,QACC,UAAW,EAAA,QAAA;EAAA,QACX,cAAe,EAAA,QAAA;EAAA,QACf,CAAE,EAAA,MAAA;EAAA,QACF,CAAE,EAAA,MAAA;EAAA,QACF,OAAU,EAAA,CAAA;EAAA,OAAA;EAAA,sBAEV,KAAA,CAAA,aAAA;EAAA,QAAC,IAAA;EAAA,QAAA;EAAA,UACC,EAAA,EAAK,oBAAoBoK,kBAAe,GAAAC,sBAAA;EAAA,UACxC,OAAQ,EAAA,MAAA;EAAA,UACR,KACA,EAAA,SAAA,GACI,UACA,GAAA,MAAA,GACE,WACA,GAAA,UAAA;EAAA,UAEN,YAAW,EAAA,mBAAA;EAAA,UACX,EAAA,EAAK,oBAAoB,IAAO,GAAA,CAAA;EAAA,SAAA;EAAA,OAClC;EAAA,sBACC,KAAA,CAAA,aAAA,CAAArL,YAAA,EAAA,EAAO,OAAU,EAAA,CAAA,EAAI,SAAU,SAAY,GAAA,MAAA,GAAS,MACnD,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAE,OAAQ,EAAA,IAAA,EAAK,SAAU,EAAA,QAAA,EAAS,WAAU,QAAS,EAAA,EAAA,cAAA,EACtC,iBAAoB,GAAA,QAAA,GAAW,SAAS,UACxD,CAAA,kBACC,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,IAAK,EAAE,cAAA,EAAgB,WAAa,EAAA,KAAA,EAAO,YAAe,EAAA,EAAA,SAAA,EACrD,iBAAoB,GAAA,OAAA,GAAU,MACzC,CACF,CAAA;EAAA,sBACC,KAAA,CAAA,aAAA,CAAA,CAAA,EAAA,EAAE,OAAQ,EAAA,IAAA,EAAK,SAAU,EAAA,QAAA,EAAS,SAAU,EAAA,QAAA,EAAS,OAAU,EAAA,SAAA,GAAY,SAAY,GAAA,MAAA,EAAA,EACpF,YACJ,CAAA;EAAA,sBACC,KAAA,CAAA,aAAA,CAAA,CAAA,EAAA,EAAE,OAAQ,EAAA,IAAA,EAAK,EAAK,EAAA,EAAE,KAAO,EAAA,UAAA,EAAe,EAAA,EAAA,mBAAA,EACxB,gBAAiB,CAAA,WAAW,CACjD,CAAA;EAAA,KAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACkK,WAAA;EAAA,MAAA;EAAA,QACC,IAAK,EAAA,MAAA;EAAA,QACL,OAAQ,EAAA,MAAA;EAAA,QACR,MAAS,EAAA,YAAA;EAAA,QACT,QAAW,EAAA,YAAA;EAAA,QACX,QAAW,EAAA,IAAA;EAAA,QACX,GAAM,EAAA,QAAA;EAAA,OAAA;EAAA,KAEV,CAAA;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;ECvKO,SAAS,QAAgC,CAAA;EAAA,EAC9C,gBAAA;EAAA,EACA,OAAU,GAAA3L,cAAA;EAAA,EACV,UAAA;EAAA,EACA,IAAA;EAAA,EACA,aAAgB,GAAA,IAAA;EAAA,EAChB,MAAS,GAAA,KAAA;EAAA,EACT,eAAkB,GAAA,kBAAA;EACpB,CAAqB,EAAA;EACnB,EAAA,MAAM,EAAE,OAAA,EAAS,YAAc,EAAA,WAAA,EAAgB,GAAA,eAAA,CAAA;EAC/C,EAAA,MAAM,EAAE,QAAA,EAAa,GAAAK,yBAAA,CAAoB,YAAY,CAAA,CAAA;EACrD,EAAA,MAAM,sBAAsBgD,mBAAc,EAAA,CAAA;EAC1C,EAAA,MAAM,wBAAwBA,mBAAc,EAAA,CAAA;EAC5C,EAAM,MAAA,cAAA,GAAiBjJ,aAAqB,IAAI,CAAA,CAAA;EAChD,EAAA,MAAM,CAAE,QAAA,EAAU,WAAY,CAAA,GAAIJ,eAAS,EAAE,CAAA,CAAA;EAC7C,EAAA,MAAM,CAAE,IAAA,EAAM,OAAQ,CAAA,GAAIA,eAAS,IAAI,CAAA,CAAA;EACvC,EAAA,MAAM,CAAE,SAAA,EAAW,YAAa,CAAA,GAAIA,eAAS,KAAK,CAAA,CAAA;EAClD,EAAA,MAAM,CAAE,YAAA,EAAc,eAAgB,CAAA,GAAIA,eAAS,IAAI,CAAA,CAAA;EAEvD,EAAAC,eAAA,CAAU,MAAM;EACd,IAAA,IAAI,KAAK,GAAK,EAAA;EACZ,MAAM,MAAA,MAAA,GAAS,IAAI,KAAM,EAAA,CAAA;EACzB,MAAA,MAAA,CAAO,MAAM,IAAK,CAAA,GAAA,CAAA;EAClB,MAAA,MAAA,CAAO,SAAS,MAAM;EACpB,QAAA,eAAA,CAAgB,KAAK,CAAA,CAAA;EAAA,OACvB,CAAA;EAAA,KACF;EAAA,GACC,EAAA,CAAE,IAAK,CAAA,WAAY,CAAC,CAAA,CAAA;EAEvB,EAAA,MAAM,aAAa,YAAY;EAC7B,IAAA,IAAI,cAAe,CAAA,OAAA,IAAW,WAAY,CAAA,IAAI,CAAG,EAAA;EAC/C,MAAM,MAAA,MAAA,GAAS,cAAe,CAAA,OAAA,CAAQ,sBAAuB,EAAA,CAAA;EAC7D,MAAO,MAAA,CAAA,MAAA,CAAO,OAAO,IAAS,KAAA;EAC5B,QAAA,IAAI,QAAQ,IAAM,EAAA;EAChB,UAAA,MAAM,UAAU,iBAAkB,CAAA,IAAA,EAAM,YAAY,IAAK,CAAA,IAAA,EAAM,KAAK,IAAI,CAAA,CAAA;EACxE,UAAA,UAAA,CAAW,IAAI,CAAA,CAAA;EACf,UAAQ,OAAA,CAAA,OAAA,EAAS,KAAK,GAAG,CAAA,CAAA;EACzB,UAAiB,gBAAA,CAAA,CAAE,OAAQ,CAAC,CAAA,CAAA;EAAA,SAC9B;EAAA,OACD,CAAA,CAAA;EACD,MAAA,mBAAA,CAAoB,OAAQ,EAAA,CAAA;EAAA,KAC9B,MAAA,IAAW,KAAK,GAAK,EAAA;EACnB,MAAA,MAAM,OAAU,GAAA,MAAM,cAAe,CAAA,IAAA,EAAM,QAAQ,CAAA,CAAA;EACnD,MAAA,UAAA,CAAW,IAAI,CAAA,CAAA;EACf,MAAQ,OAAA,CAAA,OAAA,EAAS,KAAK,GAAG,CAAA,CAAA;EACzB,MAAiB,gBAAA,CAAA,CAAE,OAAQ,CAAC,CAAA,CAAA;EAAA,KAC9B;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,aAAa,MAAM;EACvB,IAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;EACb,IAAA,UAAA,CAAW,MAAM;EACf,MAAA,UAAA,CAAW,IAAI,CAAA,CAAA;EAAA,OACd,GAAG,CAAA,CAAA;EAAA,GACR,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,SAAA;EAAA,IAAA;EAAA,MACC,EAAK,EAAA,IAAA;EAAA,MACL,SAAU,EAAA,MAAA;EAAA,MACV,MAAS,EAAA,EAAA;EAAA,MACT,aAAA,EAAgB,CAAC,MAAA,GAAS,GAAM,GAAA,CAAA;EAAA,MAChC,YAAe,EAAA,GAAA;EAAA,KAAA;EAAA,oBAEf,KAAA,CAAA,aAAA,CAACmG,SAAI,EAAA,EAAA,EAAA,EAAK,QACR,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACqB,YAAA;EAAA,MAAA;EAAA,QACC,CAAE,EAAA,MAAA;EAAA,QACF,CAAE,EAAA,MAAA;EAAA,QACF,YAAe,EAAA,CAAA;EAAA,QACf,UAAW,EAAA,QAAA;EAAA,QACX,cAAe,EAAA,eAAA;EAAA,QACf,EAAK,EAAA,CAAA;EAAA,QACL,EAAK,EAAA,IAAA,CAAK,WAAe,IAAA,CAAC,YAAY,CAAI,GAAA,CAAA;EAAA,OAAA;EAAA,sBAEzC,KAAA,CAAA,aAAA,CAAAA,YAAA,EAAA,EAAO,OAAU,EAAA,CAAA,EAAI,UAAW,EAAA,OAAA,EAAQ,IAAK,EAAA,KAAA,EAAA,EAC1C,WAAY,CAAA,IAAI,CACd,GAAA,IAAA,CAAK,eAAe,YAElB,mBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,IAAA;EAAA,QAAA;EAAA,UACC,EAAK,EAAA2L,gBAAA;EAAA,UACL,OAAQ,EAAA,UAAA;EAAA,UACR,KAAM,EAAA,UAAA;EAAA,UACN,OAAQ,EAAA,IAAA;EAAA,UACR,YAAa,EAAA,GAAA;EAAA,UACb,CAAE,EAAA,GAAA;EAAA,SAAA;EAAA,OAIJ,mBAAA,KAAA,CAAA,aAAA;EAAA,QAACC,WAAA;EAAA,QAAA;EAAA,UACC,GAAA,EAAM,KAAK,GAAO,IAAA,EAAA;EAAA,UAClB,GAAI,EAAA,eAAA;EAAA,UACJ,SAAU,EAAA,OAAA;EAAA,UACV,OAAA,EAAU,IAAK,CAAA,GAAA,GAAM,SAAY,GAAA,MAAA;EAAA,UACjC,YAAa,EAAA,GAAA;EAAA,UACb,OAAQ,EAAA,IAAA;EAAA,SAAA;EAAA,OAIZ,mBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,IAAA;EAAA,QAAA;EAAA,UACC,EAAK,EAAAN,kBAAA;EAAA,UACL,OAAQ,EAAA,IAAA;EAAA,UACR,CAAE,EAAA,GAAA;EAAA,UACF,KAAM,EAAA,UAAA;EAAA,SAAA;EAAA,OAIZ,kBAAA,KAAA,CAAA,aAAA;EAAA,QAACtK,WAAA;EAAA,QAAA;EAAA,UACC,UAAW,EAAA,OAAA;EAAA,UACX,cAAe,EAAA,OAAA;EAAA,UACf,OAAQ,EAAA,GAAA;EAAA,UACR,IAAK,EAAA,MAAA;EAAA,SAAA;EAAA,wBAEL,KAAA,CAAA,aAAA;EAAA,UAAC,CAAA;EAAA,UAAA;EAAA,YACC,OAAQ,EAAA,IAAA;EAAA,YACR,UAAW,EAAA,QAAA;EAAA,YACX,YAAa,EAAA,UAAA;EAAA,YACb,QAAS,EAAA,QAAA;EAAA,YACT,IAAK,EAAA,MAAA;EAAA,WAAA;EAAA,UAEH,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,IAAA;EAAA,SACV;EAAA,wBACC,KAAA,CAAA,aAAA,CAAA,CAAA,EAAA,EAAE,OAAQ,EAAA,IAAA,EAAK,IAAK,EAAE,KAAA,EAAO,UAAW,EAAA,EAAA,EAAA,CACrC,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,IAAA,KAAQ,gBAAiB,CAAA,IAAA,CAAK,IAAI,CAC5C,CAAA;EAAA,OAEJ,CAAA;EAAA,sBACA,KAAA,CAAA,aAAA;EAAA,QAAChB,YAAA;EAAA,QAAA;EAAA,UACC,OAAQ,EAAA,GAAA;EAAA,UACR,cAAe,EAAA,QAAA;EAAA,UACf,YAAa,EAAA,GAAA;EAAA,UACb,OAAQ,EAAA,WAAA;EAAA,UACR,OAAA,EAAU,IAAK,CAAA,WAAA,GAAc,MAAS,GAAA,MAAA;EAAA,UACtC,CAAE,EAAA,GAAA;EAAA,SAAA;EAAA,QAEA,OACF,oBAAA,KAAA,CAAA,aAAA;EAAA,UAAC,cAAA;EAAA,UAAA;EAAA,YACC,YAAW,EAAA,YAAA;EAAA,YACX,SAAU,mBAAoB,CAAA,MAAA;EAAA,YAC9B,IAAO,EAAAwL,gBAAA;EAAA,WAAA;EAAA,SACT;EAAA,wBAEA,KAAA,CAAA,aAAA;EAAA,UAAC,cAAA;EAAA,UAAA;EAAA,YACC,YAAW,EAAA,gBAAA;EAAA,YACX,OAAA,EAAU,eAAe,IAAI,CAAA;EAAA,YAC7B,IAAO,EAAAC,iBAAA;EAAA,WAAA;EAAA,SACT;EAAA,wBACA,KAAA,CAAA,aAAA;EAAA,UAAClE,iBAAA;EAAA,UAAA;EAAA,YACC,OAAA,EAAU,aAAgB,GAAA,qBAAA,CAAsB,MAAS,GAAA,UAAA;EAAA,WAAA;EAAA,SAC3D;EAAA,OACF;EAAA,KAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC5I,SAAA;EAAA,MAAA;EAAA,QACC,CAAE,EAAA,MAAA;EAAA,QACF,EAAG,EAAA,IAAA;EAAA,QACH,EAAG,EAAA,GAAA;EAAA,QACH,EAAG,EAAA,GAAA;EAAA,QACH,EAAG,EAAA,IAAA;EAAA,QACH,OAAA,EAAU,IAAK,CAAA,WAAA,GAAc,OAAU,GAAA,MAAA;EAAA,OAAA;EAAA,sBAEvC,KAAA,CAAA,aAAA;EAAA,QAAC,UAAA;EAAA,QAAA;EAAA,UACC,QAAS,IAAK,CAAA,IAAA,GAAA,CAAA,CAAQ,6BAAM,QAAY,KAAA,CAAA,IAAK,KAAK,IAAO,GAAA,CAAA;EAAA,UACzD,SAAA,EAAY,MAAM,YAAA,CAAa,IAAI,CAAA;EAAA,SAAA;EAAA,OACrC;EAAA,OAEA,OACF,oBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,eAAA;EAAA,MAAA3E,eAAA,CAAAP,gBAAA,CAAA,EAAA,EACM,mBADN,CAAA,EAAA;EAAA,QAEC,QAAA,EAAW,YAAY,IAAK,CAAA,IAAA;EAAA,QAC5B,WAAA;EAAA,QACA,OAAQ,IAAK,CAAA,GAAA;EAAA,QACb,YAAe,EAAA,YAAA;EAAA,QACf,eAAkB,EAAA,WAAA;EAAA,QAClB,UAAA;EAAA,QACA,OAAA,EAAU,YAAY,IAAI,CAAA;EAAA,QAC1B,GAAM,EAAA,cAAA;EAAA,OAAA,CAAA;EAAA,KAGR,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,kBAAA;EAAA,MAAAO,eAAA,CAAAP,gBAAA,CAAA,EAAA,EACM,qBADN,CAAA,EAAA;EAAA,QAEC,aAAgB,EAAA,UAAA;EAAA,QAChB,QAAA,EAAW,YAAY,IAAK,CAAA,IAAA;EAAA,OAAA,CAAA;EAAA,KAEhC,CAAA;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC/LO,SAAS,cAAqC,EAU3B,EAAA;EAV2B,EACnD,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,KAAA;EAAA,IACA,cAAA;EAAA,IACA,QAAW,GAAA8E,cAAA;EAAA,IACX,UAAa,GAAAA,cAAA;EAAA,IACb,OAAU,GAAAA,cAAA;EAAA,IACV,aAAA;EAAA,IACA,eAAkB,GAAA,kBAAA;EAAA,IAClB,eAAkB,GAAA,IAAA;EAAA,GAvBpB,GAeqD,EAShD,EAAA,IAAA,GAAAC,WAAA,CATgD,EAShD,EAAA;EAAA,IARH,OAAA;EAAA,IACA,gBAAA;EAAA,IACA,UAAA;EAAA,IACA,YAAA;EAAA,IACA,SAAA;EAAA,IACA,eAAA;EAAA,IACA,iBAAA;EAAA,IACA,iBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,uBAAA,EAAyB,0BAA2B,CAAA,GAAIjG,eAAS,cAAc,CAAA,CAAA;EACvF,EAAA,MAAM,CAAE,WAAA,EAAa,cAAe,CAAA,GAAIA,eAAS,KAAK,CAAA,CAAA;EAEtD,EAAM,MAAA,cAAA,GAAiB,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAI,CAAC,IAAA,KACjC,OAAO,IAAI,CAAA,GACP,uBAAwB,CAAA,IAAuB,CAC/C,GAAA,IAAA,CAAA,CAAA;EAGN,EAAM,MAAA,OAAA,GAAUI,aAAuB,IAAI,CAAA,CAAA;EAC3C,EAAAH,eAAA,CAAU,MAAM;EACd,IAAI,IAAA,cAAA,IAAkB,2BAA2B,KAAO,EAAA;EACtD,MAAA,IAAI,eAAiB,EAAA;EACnB,QAAA,MAAM,MAAS,GAAA,oBAAA,CAAwB,uBAAyB,EAAA,cAAA,EAAgB,KAAK,CAAA,CAAA;EACrF,QAAA,0BAAA,CAA2B,MAAM,CAAA,CAAA;EAAA,OAC5B,MAAA;EACL,QAAA,0BAAA,CAA2B,cAAc,CAAA,CAAA;EAAA,OAC3C;EAAA,KACF;EACA,IAAA,IAAI,QAAQ,OAAS,EAAA;EACnB,MAAe,cAAA,CAAA,aAAA,CAAc,OAAQ,CAAA,OAAO,CAAC,CAAA,CAAA;EAAA,KAC/C;EAAA,GACC,EAAA,CAAE,cAAgB,EAAA,KAAM,CAAC,CAAA,CAAA;EAE5B,EAAM,MAAA,MAAA,GAAS,0BACXkG,SAAI,CAAA,CAAC,SAAY,IAAK,CAAA,MAAA,IAAU,KAAO,EAAA,uBAA8B,CACrE,GAAA,KAAA,CAAA;EAEJ,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACsC,WAAA;EAAA,IAAAvH,gBAAA,CAAA;EAAA,MACC,GAAM,EAAA,OAAA;EAAA,MACN,OAAU,EAAA,CAAA;EAAA,MACV,IAAK,EAAA,IAAA;EAAA,MACL,EAAA,EAAK,cAAc,CAAI,GAAA,CAAA;EAAA,MACvB,SAAU,EAAA,MAAA;EAAA,KACL,EAAA,IAAA,CAAA;EAAA,IAEH,uBAAA,IAA2BX,SAAI,CAAA,CAAC,IAChC,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,QAAA;EAAA,MAAA;EAAA,QACC,gBAAmB,EAAA,QAAA;EAAA,QACnB,IAAA;EAAA,QACA,KAAM,IAAK,CAAA,GAAA;EAAA,QACX,UAAA;EAAA,QACA,aAAA;EAAA,QACA,MAAA;EAAA,QACA,eAAA;EAAA,OAAA;EAAA,OAED,uBAAuB,CAAA;EAAA,IACxB,cAAA,IAAkBA,SAAI,CAAA,CAAC,IACvB,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,QAAA;EAAA,MAAA;EAAA,QACC,gBAAmB,EAAA,QAAA;EAAA,QACnB,OAAA;EAAA,QACA,IAAA;EAAA,QACA,KAAM,IAAK,CAAA,GAAA;EAAA,QACX,UAAA;EAAA,QACA,aAAA;EAAA,QACA,eAAA;EAAA,OAAA;EAAA,OAED,cAAc,CAAA;EAAA,GACnB,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECjEO,SAAS,gBAAuC,EAc3B,EAAA;EAd2B,EACrD,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAe,YAAA,GAAA,GAAA;EAAA,IACf,WAAA;EAAA,IACA,QAAW,GAAAyF,cAAA;EAAA,IACX,KAAQ,GAAA,IAAA;EAAA,IACR,cAAA;EAAA,IACA,UAAa,GAAA,IAAA;EAAA,IACb,aAAgB,GAAA,IAAA;EAAA,IAChB,WAAc,GAAA,aAAA;EAAA,IACd,aAAgB,GAAA,IAAA;EAAA,IAChB,eAAkB,GAAA,IAAA;EAAA,IAClB,eAAkB,GAAA,kBAAA;EAAA,IAClB,OAAA;EAAA,GAlCF,GAsBuD,EAalD,EAAA,IAAA,GAAAC,WAAA,CAbkD,EAalD,EAAA;EAAA,IAZH,cAAA;EAAA,IACA,aAAA;EAAA,IACA,UAAA;EAAA,IACA,OAAA;EAAA,IACA,gBAAA;EAAA,IACA,YAAA;EAAA,IACA,eAAA;EAAA,IACA,aAAA;EAAA,IACA,eAAA;EAAA,IACA,iBAAA;EAAA,IACA,iBAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,WAAa,EAAA,cAAe,CAAI,GAAAjG,cAAA,CAAc,EAAE,CAAA,CAAA;EACxD,EAAA,MAAM,CAAE,YAAc,EAAA,eAAgB,CAAI,GAAAA,cAAA,CAAc,EAAE,CAAA,CAAA;EAE1D,EAAM,MAAA,YAAA,GAAe,CAAC,EAAe,KAAAsT,eAAA,CAAU,CAAC,IAAS,KAAA,IAAA,CAAK,GAAQ,KAAA,EAAA,EAAI,YAAY,CAAA,CAAA;EAEtF,EAAM,MAAA,OAAA,GAAU,CAAC,IAAA,EAAY,EAAe,KAAA;EAC1C,IAAM,MAAA,SAAA,GAAY,wBAAwB,IAAI,CAAA,CAAA;EAC9C,IAAM,MAAA,cAAA,GAAiB,aAAa,EAAE,CAAA,CAAA;EACtC,IAAA,MAAM,eAAkB,GAAA9C,YAAA,CAAO,cAAgB,EAAA,CAAA,EAAG,YAAY,CAAA,CAAA;EAC9D,IAAA,MAAM,QAAW,GAAAC,YAAA,CAAO,cAAgB,EAAA,SAAA,EAAW,eAAe,CAAA,CAAA;EAClE,IAAA,eAAA,CAAgB,QAAe,CAAA,CAAA;EAAA,GACjC,CAAA;EAEA,EAAM,MAAA,YAAA,GAAe,CAAC,IAAyB,KAAA;EAC7C,IAAM,MAAA,cAAA,GAAiB,YAAa,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;EAC5C,IAAA,MAAM,eAAkB,GAAAD,YAAA,CAAO,cAAgB,EAAA,CAAA,EAAG,YAAY,CAAA,CAAA;EAC9D,IAAA,eAAA,CAAgB,eAAe,CAAA,CAAA;EAAA,GACjC,CAAA;EAEA,EAAM,MAAA,iBAAA,GAAoB,CAAC,WAAqB,KAAA;EAC9C,IAAA,IAAI,aAAe,EAAA;EACjB,MAAA,cAAA,CAAe,WAAW,CAAA,CAAA;EAAA,KAC5B;EAAA,GACF,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC/H,WAAA;EAAA,IAAAvH,gBAAA,CAAA;EAAA,MACC,OAAU,EAAA,CAAA;EAAA,MACV,IAAK,EAAA,SAAA;EAAA,MACL,IAAK,EAAA,SAAA;EAAA,KACA,EAAA,IAAA,CAAA;EAAA,oBAEL,KAAA,CAAA,aAAA;EAAA,MAAC,iBAAA;EAAA,MAAA;EAAA,QACC,YAAA;EAAA,QACA,WAAA;EAAA,QACA,QAAA;EAAA,QACA,eAAkB,EAAA,iBAAA;EAAA,QAClB,kBAAqB,EAAA,eAAA;EAAA,QACrB,WAAA;EAAA,QACA,OAAA;EAAA,OAAA;EAAA,KACF;EAAA,oBACA,KAAA,CAAA,aAAA;EAAA,MAAC,aAAA;EAAA,MAAA;EAAA,QACC,OAAQ,KAAS,IAAA,YAAA;EAAA,QACjB,QAAA;EAAA,QACA,cAAA,EACEwD,aAAQ,CAAA,KAAK,CAAM,KAAA,CAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAgB,YAAW,CAAK,IAAArE,WAAA,CAAM,cAAc,CAAA,CAAA,GACnE,WACA,GAAA,cAAA;EAAA,QAEN,YAAa,UAAc,IAAA,YAAA;EAAA,QAC3B,aAAA;EAAA,QACA,eAAA;EAAA,QACA,eAAA;EAAA,QACA,OAAA;EAAA,OAAA;EAAA,KACF;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChEa,QAAA,oBAAA,GAAuB,CAAC,EAQJ,KAAA;EARI,EACnC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAU,gBAAmB,GAAA2F,cAAA;EAAA,GApC/B,GA8BqC,EAOhC,EAAA,IAAA,GAAAC,WAAA,CAPgC,EAOhC,EAAA;EAAA,IANH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,QAAA,GAAW,CAAC,OAAsB,KAAA;EACtC,IAAM,MAAA,MAAA,GAAS1F,SAAI,CAAA,CAAC,MAAY,MAAA;EAAA,MAC9B,IAAM,EAAA,KAAA;EAAA,MACN,GAAK,EAAA,MAAA;EAAA,MACL,IAAM,EAAA,EAAA;EAAA,QACJ,OAAO,CAAA,CAAA;EACX,IAAM,MAAA,cAAA,GAAiBA,SAAI,CAAA,CAAC,IAAU,KAAA,MAAA,CAAO,IAAI,CAAA,GAC7C,IAAO,GAAA,uBAAA,CAAwB,IAAI,CAAA,EAAI,MAAM,CAAA,CAAA;EACjD,IAAO,OAAA,cAAA,CAAA;EAAA,GACT,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EAAY,KAAA;EACzB,MAAM,MAAA,YAAA,GAAe,CAAC,IAAqB,KAAA;EACzC,QAAA,MAAM,eAAe+S,eAAU,CAAA,CAAC,QAAQ,GAAQ,KAAA,IAAA,CAAK,KAAK,KAAK,CAAA,CAAA;EAC/D,QAAA,MAAM,SAAY,GAAA9C,YAAA,CAAO,YAAc,EAAA,CAAA,EAAG,KAAK,CAAA,CAAA;EAC/C,QAAA,QAAA,CAAS,SAAS,CAAA,CAAA;EAAA,OACpB,CAAA;EAEA,MACE,uBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,eAAA;EAAA,QAAAtP,gBAAA,CAAA;EAAA,UACC,QAAA,EAAW,OAAO,KAAyB,KAAA;EACzC,YAAI,IAAA,CAACwD,aAAQ,CAAA,KAAK,CAAG,EAAA;EACnB,cAAA,MAAM,WAAW,KAAO,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAI,OAAO,IAAA,KAAS,SAAS,IAAI,CAAA,CAAA,CAAA;EACzD,cAAA,IAAI,QAAU,EAAA;EACZ,gBAAA,OAAA,CAAQ,GAAI,CAAA,QAAQ,CAAE,CAAA,IAAA,CAAK,CAAC,MAAW,KAAA;EACrC,kBAAS,QAAA,CAAA6O,YAAA,CAAO,KAAO,EAAA,MAAM,CAAC,CAAA,CAAA;EAC9B,kBAAA,gBAAA,CAAiB,MAAM,CAAA,CAAA;EAAA,iBACxB,CAAA,CAAA;EAAA,eACH;EAAA,aACK,MAAA;EACL,cAAA,QAAA,CAAS,EAAE,CAAA,CAAA;EACX,cAAA,gBAAA,CAAiB,EAAE,CAAA,CAAA;EAAA,aACrB;EAAA,WACF;EAAA,UACA,aAAgB,EAAA,KAAA;EAAA,UAChB,eAAkB,EAAA,KAAA;EAAA,UAClB,UAAa,EAAA,YAAA;EAAA,UACb,YAAa,EAAA,SAAA;EAAA,UACb,iBAAkB,EAAE,OAAA,EAAS,MAAM,YAAc,EAAA,IAAA,EAAM,aAAa,KAAM,EAAA;EAAA,UAC1E,aAAgB,EAAA,KAAA;EAAA,UAChB,KAAA,EAAQ,SAAS,KAAK,CAAA;EAAA,SACjB,EAAA,IAAA,CAAA;EAAA,OACP,CAAA;EAAA,KAEJ;EAAA,GACF,CAAA;EAEJ;;AC7EO,QAAM,yBAAyB,CAAC;EAAA,EACrC,QAAA;EAAA,SACAC,OAAQ,GAAAC,KAAA;EAAA,EACR,SAAY,GAAA,aAAA;EACd,CAAA,qBACG,KAAA,CAAA,aAAA,CAAAC,oBAAA,EAAA,EAAe,QAAW,EAAA,IAAA,SAAOF,OAChC,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,WAAY,CAAA,QAAA,EAAZ,EAAqB,KAAA,EAAQ,SAC1B,EAAA,EAAA,QACJ,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC0EW,QAAA,IAAA,GAAO,CAAC,EAA8C,KAAA;EAA9C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,YAAU,SApGjC,EAAA,GAoGqB,EAA0B,EAAA,KAAA,GAAAvN,WAAA,CAA1B,IAA0B,CAAxB,SAAA,CAAA,CAAA,CAAA;EACrB,EAAC,uBAAA,KAAA,CAAA,aAAA,CAAA0N,UAAA,EAAAzS,gBAAA,CAAA,EAAW,WAAyB,KAAQ,CAAA,CAAA,CAAA;EAAA;;ECvFxC,MAAM,qBAAqB,CAAC;EAAA,EACjC,iBAAoB,GAAA,KAAA;EAAA,EACpB,mBAAsB,GAAA,KAAA;EACxB,CAAA,yCACG0S,wBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAACnM,YAAO,EAAA,EAAA,UAAA,EAAW,UAAS,CAAE,EAAA,MAAA,EAAA,EAC1B,iBACA,oBAAA,KAAA,CAAA,aAAA,CAACiH,gBAAO,OAAQ,EAAA,SAAA,EAAU,cAAa,IAAK,EAAA,OAAA,EAAQ,uBACjD,KAAA,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAE,GAAC,CACN,GAEA,mBACA,oBAAA,KAAA,CAAA,aAAA,CAACjH,gBAAO,UAAW,EAAA,QAAA,EAAS,GAAE,MAC5B,EAAA,kBAAA,KAAA,CAAA,aAAA,CAACoM,aAAQ,EAAA,EAAA,WAAA,EAAY,YAAW,CAAE,EAAA,KAAA,EAAM,mBACvC,KAAA,CAAA,aAAA,CAAAC,4BAAA,EAAA,EAAuB,QAAO,MAC7B,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,EAAC,IAAA;EAAA,EAAA;EAAA,IACC,EAAK,EAAAC,oBAAA;EAAA,IACL,KAAM,EAAA,4BAAA;EAAA,IACN,OAAU,EAAA,CAAA;EAAA,GAAA;EACZ,CACF,CAAA,sCACCC,4BACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,EAAC,IAAA;EAAA,EAAA;EAAA,IACC,EAAK,EAAAC,sBAAA;EAAA,IACL,KAAM,EAAA,4BAAA;EAAA,IACN,OAAU,EAAA,CAAA;EAAA,GAAA;EACZ,CACF,CACF,CAEJ,CACF,CAAA;;EC3CF,MAAM,KAAQ,GAAA,yBAAA,CAAA;AAED,QAAA,kBAAA,GAAqB,CAAC,KAA2B,KAAA;EAC5D,EAAI,IAAA5T,WAAA,CAAM,KAAK,CAAK,IAAA,MAAA,CAAO,MAAM,UAAW,CAAA,KAAe,CAAC,CAAG,EAAA;EAC7D,IAAO,OAAA,KAAA,CAAA;EAAA,GACT;EAEA,EAAA,MAAM,UAAa,GAAAS,WAAA,CAAM,GAAK,EAAA,CAAA,EAAG,KAAO,CAAA,CAAA,CAAA,CAAA;EACxC,EAAM,MAAA,OAAA,GAAUoT,WAAK,UAAU,CAAA,CAAA;EAC/B,EAAM,MAAA,WAAA,GAAc5T,WAAK,UAAU,CAAA,CAAA;EAEnC,EAAI,IAAAD,WAAA,CAAM,WAAW,CAAG,EAAA;EACtB,IAAO,OAAA,KAAA,CAAA;EAAA,GACT;EAEA,EAAM,MAAA,aAAA,GAAgB8T,WAAM,CAAA,KAAA,EAAO,WAAW,CAAA,CAAA;EAC9C,EAAI,IAAA9T,WAAA,CAAM,aAAa,CAAG,EAAA;EACxB,IAAO,OAAA,KAAA,CAAA;EAAA,GACT;EAEA,EAAA,MAAM,mBAAsB,GAAA+T,YAAA,CAAOF,UAAK,CAAA,aAAa,CAAW,CAAA,CAAA;EAChE,EAAM,MAAA,qBAAA,GAAwB,YAAY,MAAS,GAAA,mBAAA,CAAA;EAEnD,EAAO,OAAA,UAAA;EAAA,IACL,WAAW,CAAG,EAAA,OAAA,CAAA,CAAA,EAAW,WAAa,CAAA,CAAA,CAAA,CACnC,QAAQ,qBAAqB,CAAA;EAAA,GAClC,CAAA;EACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPa,QAAA,WAAA,GAAc,CAAC,EASJ,KAAA;EATI,EAC1B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,OAAA,GAAA,SAAA;EAAA,IACV,IAAO,GAAA,IAAA;EAAA,IACP,QAAW,GAAAlO,cAAA;EAAA,IACX,aAAgB,GAAAA,cAAA;EAAA,IAChB,mBAAsB,GAAA,KAAA;EAAA,IACtB,IAAA;EAAA,IACA,oBAAuB,GAAA,KAAA;EAAA,GA7BzB,GAsB4B,EAQvB,EAAA,IAAA,GAAAC,WAAA,CARuB,EAQvB,EAAA;EAAA,IAPH,SAAA;EAAA,IACA,MAAA;EAAA,IACA,UAAA;EAAA,IACA,eAAA;EAAA,IACA,qBAAA;EAAA,IACA,MAAA;EAAA,IACA,sBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,kBAAkB,oBAAwB,IAAA;EAAA,IAC9C,IAAM,EAAA,GAAA;EAAA,GACR,CAAA;EAEA,EAAM,MAAA,gBAAA,GAAmB,uBAAuB,IAAO,GAAA,CAAA,CAAA;EACvD,EAAM,MAAA,YAAA,GAAe,CAAC,CAA8C,KAAA;EAClE,IAAM,MAAA,KAAA,GAAQsB,gBAAU,CAAG,EAAAxG,UAAA,CAAK,CAAE,QAAU,EAAA,OAAQ,CAAG,EAAA,CAAC,CAAC,CAAA,CAAA;EACzD,IAAA,aAAA,CAAc,KAAK,CAAA,CAAA;EAEnB,IAAA,MAAM,KAAQ,GAAA,kBAAA,CAAmB,UAAW,CAAA,KAAK,IAAI,gBAAgB,CAAA,CAAA;EAErE,IAAA,MAAM,WAAc,GAAA,MAAA,CAAO,KAAM,CAAA,KAAK,IAClC,EACA,GAAA,KAAA,CAAA;EAEJ,IAAA,QAAA,CAAS,GAAG,WAAa,CAAA,CAAA,CAAA,CAAA;EAAA,GAC3B,CAAA;EAEA,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACsT,iBAAA;EAAA,IAAAnT,gBAAA,CAAAA,gBAAA,CAAA;EAAA,MACC,OAAA;EAAA,MACA,IAAA;EAAA,MACA,QAAW,EAAA,YAAA;EAAA,MACX,EAAK,EAAA,IAAA;EAAA,KAAA,EACA,eACA,CAAA,EAAA,IAAA,CAAA;EAAA,oBAEL,KAAA,CAAA,aAAA,CAACoT,sBAAiB,EAAA,EAAA,QAAA,EAAW,YAAe,EAAA,CAAA;EAAA,oBAC5C,KAAA,CAAA,aAAA;EAAA,MAAC,kBAAA;EAAA,MAAA;EAAA,QACC,iBAAoB,EAAA,oBAAA;EAAA,QACpB,mBAAA;EAAA,OAAA;EAAA,KACF;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDO,QAAM,gBAAmB,GAAA7N,gBAAA,CAAkD,CAAC,EAAA,EAWhF,GAAQ,KAAA;EAXwE,EACjF,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAU,gBAAmB,GAAAT,cAAA;EAAA,IAC7B,oBAAuB,GAAA,KAAA;EAAA,IACvB,gBAAA;EAAA,IACA,iBAAA;EAAA,GAxBF,GAemF,EAU9E,EAAA,IAAA,GAAAC,WAAA,CAV8E,EAU9E,EAAA;EAAA,IATH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,WAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,sBAAA;EAAA,IACA,kBAAA;EAAA,IACA,mBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,YAAA,GAAe,CAAC,KAAe,EAAA,MAAA,KACnC,uBACI,kBAAmB,CAAA,KAAA,GAAQ,MAAM,CACjC,GAAA,KAAA,CAAA;EAGN,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EAAY,KAAA;EACzB,MAAA,MAAM,YAAe,GAAA5F,WAAA,CAAM,KAAK,CAAA,IAAK,MAAO,CAAA,KAAA,CAAM,UAAW,CAAA,KAAK,CAAC,CAAA,GAC/D,EACA,GAAA,YAAA,CAAa,OAAO,GAAG,CAAA,CAAA;EAE3B,MAAA,MAAM,CAAE,YAAA,EAAc,eAAgB,CAAA,GAAIL,eAAS,YAAY,CAAA,CAAA;EAE/D,MACE,uBAAA,KAAA,CAAA,aAAA;EAAA,QAAC,iBAAA;EAAA,QAAA;EAAA,UACC,gBAAA;EAAA,UACA,iBAAA;EAAA,SAAA;EAAA,wBAEA,KAAA,CAAA,aAAA;EAAA,UAAC,WAAA;EAAA,UAAAkB,gBAAA,CAAA;EAAA,YACC,IAAA;EAAA,YACA,aAAY,EAAA,4BAAA;EAAA,YACZ,aAAA,EAAgB,CAAC,CAAM,KAAA;EACrB,cAAA,eAAA,CAAgB,CAAC,CAAA,CAAA;EACjB,cAAA,MAAM,MAAS,GAAA,YAAA,CAAa,UAAW,CAAA,CAAC,GAAG,IAAI,CAAA,CAAA;EAE/C,cAAA,QAAA,CAAS,MAAM,CAAA,CAAA;EACf,cAAA,gBAAA,CAAiB,MAAM,CAAA,CAAA;EAAA,aACzB;EAAA,YACA,KAAQ,EAAA,YAAA;EAAA,YACR,oBAAA;EAAA,WACK,EAAA,IAAA,CAAA;EAAA,SACP;EAAA,OACF,CAAA;EAAA,KAEJ;EAAA,GACF,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjDM,QAAM,sBAAyB,GAAAuF,gBAAA,CAAW,CAAC,EAAA,EAQlB,GAAa,KAAA;EARK,EAChD,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,OAAA,GAAA,OAAA;EAAA,IACV,IAAA;EAAA,IACA,YAAc,EAAA,SAAA;EAAA,IACd,eAAkB,GAAA,KAAA;EAAA,IAClB,YAAe,GAAA,WAAA;EAAA,IACf,IAAA;EAAA,GA9BF,GAwBkD,EAO7C,EAAA,IAAA,GAAAR,WAAA,CAP6C,EAO7C,EAAA;EAAA,IANH,SAAA;EAAA,IACA,MAAA;EAAA,IACA,YAAA;EAAA,IACA,iBAAA;EAAA,IACA,cAAA;EAAA,IACA,MAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,UAAA,EAAY,aAAc,CAAA,GAAIjG,eAAS,KAAK,CAAA,CAAA;EACpD,EAAM,MAAA,EAAE,WAAW,QAAS,EAAA,GAAIqG,0BAAoB,wBAA0B,EAAA,EAAE,IAAM,EAAA,OAAA,EAAS,CAAA,CAAA;EAC/F,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACD,SAAA;EAAA,IAAA;EAAA,MACC,YAAA,EAAe,MAAM,aAAA,CAAc,IAAI,CAAA;EAAA,MACvC,YAAA,EAAe,MAAM,aAAA,CAAc,KAAK,CAAA;EAAA,MACxC,EAAK,EAAA,SAAA;EAAA,KAAA;EAAA,IAEH,eACA,oBAAA,KAAA,CAAA,aAAA,CAACA,SAAI,EAAA,EAAA,EAAA,EAAK,QACR,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,OAAQ,EAAA,EAAA,UAAA,EAA0B,KAAQ,EAAA,YAAA,EAAe,IAAK,EAAA,KAAA,EAAM,CACvE,CAAA;EAAA,oBAEF,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAAlF,gBAAA,CAAA;EAAA,QACC,OAAA;EAAA,QACA,IAAA;EAAA,QACA,YAAa,EAAA,SAAA;EAAA,QACb,GAAA;EAAA,QACA,IAAA;EAAA,OACK,EAAA,IAAA,CAAA;EAAA,KACP;EAAA,GACF,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCY,QAAA,QAAA,GAAW,CAAC,EAKP,KAAA;EALO,EACvB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,OAAA,GAAA,SAAA;EAAA,IACV,MAAA;EAAA,IACA,QAAA;EAAA,GAxBF,GAqByB,EAIpB,EAAA,IAAA,GAAA+E,WAAA,CAJoB,EAIpB,EAAA;EAAA,IAHH,SAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAC,uBAAA,KAAA,CAAA,aAAA,CAAAsO,cAAA,EAAA9S,eAAA,CAAAP,gBAAA,CAAA,EAAA,EAAoB,OAApB,EAA2B,OAAA,EAAoB,aAAY,QAAI,EAAA,IAAA,EAAO,WACnE,QACJ,CAAA,CAAA;EAAA;;EC1BF,MAAM,aAAgB,GAAA,CAAC,KACrB,KAAA4G,QAAA,CAAG,OAAO,KAAK,CAAA,IAAKsM,YAAO,CAAA,KAAK,CAAI,GAAA,CAAA,IAAK,OAAO,KAAA,CAAM,CAAC,CAAM,KAAA,QAAA,CAAA;AAElD,QAAA,gBAAA,GAAmB,CAC9B,KAAA,EACA,OACwB,KAAA;EACxB,EAAI,IAAA,OAAO,UAAU,QAAU,EAAA;EAC7B,IAAA,OAAOnJ,UAAK,CAAAuJ,YAAA,CAAO,OAAS,EAAA,KAAK,GAAG,OAAc,CAAA,CAAA;EAAA,GACpD;EAEA,EAAI,IAAA,aAAA,CAAc,KAAK,CAAG,EAAA;EACxB,IAAO,OAAAhF,YAAA;EAAA,MACL,CAAC,MAAA,KAAY,KAAO,CAAA,QAAA,CAAS,OAAO,KAAK,CAAA;EAAA,MACzC,OAAA;EAAA,KACF,CAAA;EAAA,GACF;EAEA,EAAO,OAAA,KAAA,CAAA;EACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACqHO,QAAM,MAAS,GAAA/I,gBAAA,CAAW,CAA8C,EAAA,EAkB7E,GACG,KAAA;EAnB0E,EAC7E,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,OAAA;EAAA,IACA,OAAA;EAAA,IACA,QAAW,GAAAT,cAAA;EAAA,IACX,KAAQ,GAAAA,cAAA;EAAA,IACR,QAAW,GAAAA,cAAA;EAAA,IACX,SAAA;EAAA,IACA,cAAc,MAAM,IAAA;EAAA,IACpB,aAAe,EAAA,MAAA;EAAA,IACf,YAAe,GAAA,IAAA;EAAA,IACf,SAAY,GAAA,IAAA;EAAA,IACZ,WAAc,GAAA,KAAA;EAAA,IACd,KAAA;EAAA,IACA,IAAA;EAAA,IACA,UAAA;EAAA,IACA,2BAAA,GAA8BoB,aAAO,CAAC,CAAA;EAAA,GA1JxC,GA2I+E,EAgB1E,EAAA,IAAA,GAAAnB,WAAA,CAhB0E,EAgB1E,EAAA;EAAA,IAfH,SAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,aAAA;EAAA,IACA,aAAA;EAAA,IACA,cAAA;EAAA,IACA,WAAA;EAAA,IACA,aAAA;EAAA,IACA,OAAA;EAAA,IACA,MAAA;EAAA,IACA,YAAA;EAAA,IACA,6BAAA;EAAA,GAAA,CAAA,CAAA;EAKA,EAAA,MAAM,eAAe,kBAAyB,CAAA;EAAA,IAC5C,QAAA;EAAA,IACA,KAAA;EAAA,IACA,QAAA;EAAA,IACA,OAAA;EAAA,IACA,OAAO6B,QAAG,CAAA,KAAA,EAAO,KAAK,CAAA,GAAK,QAAgB,EAAC;EAAA,GAC7C,CAAA,CAAA;EAED,EAAA,MAAM,gBAAmB,GAAAmE,aAAA;EAAA,IACvB,MAAM,cAAiB,UAAU,CAAA;EAAA,IACjC,CAAE,6BAA8B,CAAA;EAAA,GAClC,CAAA;EAEA,EAAA,MAAM,WAAc,GAAA7L,YAAA;EAAA,IAClB,OAAA;EAAA,GACF,CAAA;EACA,EAAM,MAAA,eAAA,GAAkB6L,cAAQ,MAAM;EACpC,IAAA,IAAI,CAAC5D,YAAA,CAAO,WAAY,CAAA,OAAA,EAAS,OAAO,CAAG,EAAA;EACzC,MAAA,WAAA,CAAY,OAAU,GAAA,OAAA,CAAA;EAAA,KACxB;EACA,IAAA,OAAO,WAAY,CAAA,OAAA,CAAA;EAAA,GACrB,EAAG,CAAE,OAAQ,CAAC,CAAA,CAAA;EAEd,EAAA,2CACGjC,SAAI,EAAA,EAAA,CAAA,EAAE,QAAO,aAAc,EAAA,MAAA,EAAS,QAAO,SAC1C,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAACqO,wBAAA;EAAA,IAAAvT,gBAAA,CAAAO,eAAA,CAAAP,gBAAA,CAAA;EAAA,MACC,OAAA;EAAA,MACA,OAAU,EAAA,eAAA;EAAA,MACV,cAAiB,EAAA,IAAA;EAAA,MACjB,mBAAoB,CAAC,OAAA;EAAA,MACrB,mBAAsB,EAAA,KAAA;EAAA,MACtB,WAAA;EAAA,MACA,QAAW,EAAA,YAAA;EAAA,MACX,mBAAoB,EAAA,OAAA;EAAA,MACpB,YAAe,EAAA,kBAAA;EAAA,MACf,SAAA;EAAA,KAAA,EACM,aAAa,EAAE,UAAA,EAAY,EAAE,QAAU,EAAA,WAAA,IAX9C,CAAA,EAAA;EAAA,MAYC,KAAA,EAAQ,gBAAiB,CAAA,KAAA,EAAO,OAAO,CAAA;EAAA,MACvC,YAAA;EAAA,MACA,SAAA;EAAA,MACA,IAAA;EAAA,MACA,UAAa,EAAA,gBAAA;EAAA,MACb,GAAA;EAAA,MACA,kBAAmB,QAAS,CAAA,IAAA;EAAA,MAC5B,MAAS,EAAA,EAAE,UAAY,EAAA,CAAC,IAAU,KAAAO,eAAA,CAAAP,gBAAA,CAAA,EAAA,EAAK,IAAL,CAAA,EAAA,EAAW,MAAQ,EAAA,KAAA,CAAM,QAAS,CAAA,OAAA,EAAW,CAAA,EAAA;EAAA,KAC1E,CAAA,EAAA,IAAA,CAAA;EAAA,GAET,CAAA,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECrMD,MAAM,eAAA,GAAkB,CACtB,EAAA,EAcA,GACA,KAAA;EAfA,EACE,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,OAAA;EAAA,IACA,SAAY,GAAA,QAAA;EAAA,IACZ,OAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,WAAc,GAAA,IAAA;EAAA,IACd,UAAU,gBAAmB,GAAA8E,cAAA;EAAA,IAC7B,gBAAA;EAAA,IACA,iBAAA;EAAA,GAvBJ,GAYE,EAYK,EAAA,IAAA,GAAAC,WAAA,CAZL,EAYK,EAAA;EAAA,IAXH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,SAAA;EAAA,IACA,WAAA;EAAA,IACA,SAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,aAAA;EAAA,IACA,UAAA;EAAA,IACA,kBAAA;EAAA,IACA,mBAAA;EAAA,GAAA,CAAA,CAAA;EAKF,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,iBAAoB,EAAA,IAAA;EAAA,MACpB,QAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,KAAO,EAAA,QAAA,uBACT,KAAA,CAAA,aAAA,CAAAwB,YAAA,EAAA,EAAO,GAAE,MACR,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,iBAAA;EAAA,MAAA;EAAA,QACC,gBAAA;EAAA,QACA,iBAAA;EAAA,OAAA;EAAA,sBAEA,KAAA,CAAA,aAAA;EAAA,QAAC,MAAA;EAAA,QAAAvG,gBAAA,CAAA;EAAA,UACC,IAAA;EAAA,UACA,OAAA;EAAA,UACA,OAAA;EAAA,UACA,QAAA,EAAW,CAAC,MAAA,EAAQ,KAAU,KAAA;EAC5B,YAAA,QAAA;EAAA,cACE,OAAA,GACK,OAAe,GAAI,CAAA,CAAC,SAAc,IAAK,CAAA,KAAK,IAC5C,MAAa,CAAA,KAAA;EAAA,aACpB,CAAA;EACA,YAAA,gBAAA,CAAiB,QAAoC,KAAK,CAAA,CAAA;EAAA,WAC5D;EAAA,UACA,KAAA,EACE,QACK,OACC,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,OAAA;EAAA,YAAQ,CAAC,KAAA,KACR,KAAM,CAAA,OAAA,GAAU,MAAM,OAAU,GAAA,KAAA;EAAA,WAElC,CAAA,MAAA;EAAA,YAAO,CAAC,MACN,KAAA,OAAA,GACG,KAAM,CAAA,QAAA,CAAS,MAAO,CAAA,KAAK,CAC3B,GAAAmH,YAAA,CAAO,KAAO,EAAA,MAAA,CAAO,KAAK,CAAA;EAAA,WAEhC,GAAA,IAAA;EAAA,SAED,EAAA,IAAA,CAAA;EAAA,OACP;EAAA,KAEF,kBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAA;EAAA,QACC,cAAa,CAAG,EAAA,IAAA,CAAA,aAAA,CAAA;EAAA,QAChB,OAAQ,EAAA,QAAA;EAAA,QACR,IAAK,EAAA,IAAA;EAAA,QACL,QAAS,EAAA,IAAA;EAAA,QACT,MAAS,EAAAhI,WAAA,CAAM,KAAK,CAAA,IAAK,CAAC,WAAA;EAAA,QAC1B,SAAU,MAAM;EACd,UAAA,QAAA,CAAS,KAAS,CAAA,CAAA,CAAA;EAClB,UAAA,gBAAA,CAAiB,QAAW,EAAE,MAAA,EAAQ,OAAS,EAAA,aAAA,EAAe,OAAO,CAAA,CAAA;EAAA,SACvE;EAAA,QACA,IAAO,kBAAA,KAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,EAAA,EAAKwM,iBAAc,EAAA,CAAA;EAAA,OAAA;EAAA,KAEpC,CAAA;EAAA,GAEJ,CAAA;EAAA,CAAA,CAAA;AAGW,QAAA,WAAA,GAAcpG,iBAAW,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9DxC,QAAA,MAAA,GAAS,CAAC,EAMP,KAAA;EANO,EACrB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,KAAA;EAAA,IACA,QAAA;EAAA,IACA,IAAA;EAAA,IACA,IAAO,GAAA,IAAA;EAAA,GA9BT,GA0BuB,EAKlB,EAAA,IAAA,GAAAR,WAAA,CALkB,EAKlB,EAAA;EAAA,IAJH,OAAA;EAAA,IACA,UAAA;EAAA,IACA,MAAA;EAAA,IACA,MAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACyO,YAAA;EAAA,IAAAxT,gBAAA,CAAA;EAAA,MACC,IAAA;EAAA,MACA,EAAK,EAAA,IAAA;EAAA,MACL,SAAY,EAAA,KAAA;EAAA,MACZ,QAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,GACP,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRK,QAAM,WAAc,GAAAuF,gBAAA,CAA6C,CAAC,EAAA,EAUtE,GAAK,KAAA;EAViE,EACvE,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAU,gBAAmB,GAAAT,cAAA;EAAA,IAC7B,SAAY,GAAA,KAAA;EAAA,IACZ,cAAiB,GAAA,OAAA;EAAA,IACjB,SAAY,GAAA,IAAA;EAAA,GAvCd,GA+ByE,EASpE,EAAA,IAAA,GAAAC,WAAA,CAToE,EASpE,EAAA;EAAA,IARH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,gBAAA;EAAA,IACA,WAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA,CAACG,aAAI,CAAI,EAAA,KAAA,GAAQ,MAAS,GAAA,aAAA,EAAgB,SAAQ,aAChD,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAM,EAAA,EAAA;EAAA,MACN,UAAA;EAAA,MACA,SAAA;EAAA,MACA,QAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,MAACwC,UAAA;EAAA,MAAA;EAAA,QACC,OAAQ,EAAA,aAAA;EAAA,QACR,UAAW,EAAA,QAAA;EAAA,QACX,GAAM,EAAA,CAAA;EAAA,QACN,SAAA,EAAY,cAAmB,KAAA,MAAA,GAAS,aAAgB,GAAA,KAAA;EAAA,OAAA;EAAA,sBAExD,KAAA,CAAA,aAAA;EAAA,QAAC,MAAA;EAAA,QAAA1H,gBAAA,CAAA;EAAA,UACC,IAAA;EAAA,UACA,QAAA,EAAW,CAAC,CAAM,KAAA;EAChB,YAAA,QAAA,CAAS,CAAC,CAAA,CAAA;EACV,YAAA,gBAAA,CAAiB,CAAC,CAAA,CAAA;EAAA,WACpB;EAAA,UACA,KAAA;EAAA,UACA,aAAY,EAAA,sBAAA;EAAA,SACP,EAAA,IAAA,CAAA;EAAA,OACP;EAAA,sBACA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,OAAA,EAAU,IAAO,EAAA,EAAA,EAAK,EAAE,UAAA,EAAY,QAAS,EAAA,EAAI,IAAO,EAAA,SAAA,EAAA,EAAc,KAAO,CAAA;EAAA,KACtF;EAAA,GAGN,CAAA,CAAA;EAAA,CACD;;;;;;;;;;;;;;;;;;AC9DM,QAAM,WAAW,CAAC,KAAA,yCACtByT,cAAe,EAAAzT,gBAAA,CAAA,EAAA,OAAA,EAAU,KAAS,KAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiDhC,QAAA,IAAA,GAAQ,CAAC,EAKR,KAAA;EALQ,EACpB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,OAAU,GAAA,SAAA;EAAA,IACV,QAAW,GAAA,IAAA;EAAA,GAhEb,GA6DsB,EAIjB,EAAA,IAAA,GAAA+E,WAAA,CAJiB,EAIjB,EAAA;EAAA,IAHH,UAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC2O,UAAA;EAAA,IAAA1T,gBAAA,CAAA;EAAA,MACC,QAAA;EAAA,MACA,OAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,IAEH,QAAA;EAAA,GACJ,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7DW,QAAA,QAAA,GAAW,CAAC,EAMP,KAAA;EANO,EACvB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAO,IAAA,GAAA,IAAA;EAAA,IACP,QAAA;EAAA,IACA,IAAA;EAAA,IACA,KAAA;EAAA,GAhBF,GAYyB,EAKpB,EAAA,IAAA,GAAA+E,WAAA,CALoB,EAKpB,EAAA;EAAA,IAJH,MAAA;EAAA,IACA,UAAA;EAAA,IACA,MAAA;EAAA,IACA,OAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC4O,cAAA;EAAA,IAAA3T,gBAAA,CAAA;EAAA,MACC,IAAA;EAAA,MACA,EAAK,EAAA,IAAA;EAAA,MACL,QAAA;EAAA,MACA,KAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,GACP,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBK,QAAM,aAAgB,GAAAuF,gBAAA,CAA+C,CAAC,EAAA,EAQ1E,GAAK,KAAA;EARqE,EAC3E,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAA;EAAA,IACA,UAAU,gBAAmB,GAAAT,cAAA;EAAA,GAZ/B,GAM6E,EAOxE,EAAA,IAAA,GAAAC,WAAA,CAPwE,EAOxE,EAAA;EAAA,IANH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,MACA,SAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,QAAA;EAAA,MAAA/E,gBAAA,CAAA;EAAA,QACC,IAAA;EAAA,QACA,aAAY,EAAA,wBAAA;EAAA,QACZ,QAAA,EAAW,CAAC,CAAM,KAAA;EAAE,UAAA,QAAA,CAAS,CAAC,CAAA,CAAA;EAAG,UAAA,gBAAA,CAAiB,CAAC,CAAA,CAAA;EAAA,SAAE;EAAA,QACrD,KAAA;EAAA,OACK,EAAA,IAAA,CAAA;EAAA,KACP;EAAA,GAEJ,CAAA;EAAA,CACD;;ECjCY,MAAA,gBAAA,GAAmB,CAC9B,KACA,EAAA,gBAAA,KACW,WAAW,KAAM,CAAA,OAAA,CAAQ,gBAAgB,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECevD,MAAM,SAA+D,GAAA;EAAA,EACnE,EAAI,EAAA;EAAA,IACF,iBAAmB,EAAA,GAAA;EAAA,IACnB,gBAAkB,EAAA,GAAA;EAAA,GACpB;EAAA,EACA,EAAI,EAAA;EAAA,IACF,iBAAmB,EAAA,GAAA;EAAA,IACnB,gBAAkB,EAAA,GAAA;EAAA,GACpB;EAAA,EACA,GAAK,EAAA;EAAA,IACH,iBAAmB,EAAA,GAAA;EAAA,IACnB,gBAAkB,EAAA,GAAA;EAAA,GACpB;EACF,CAAA,CAAA;AA2Ca,QAAA,oBAAA,GAAuB,CAAC,EAYJ,KAAA;EAZI,EACnC,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAS,MAAA,GAAA,IAAA;EAAA,IACT,YAAe,GAAA,KAAA;EAAA,IACf,QAAW,GAAA8E,cAAA;EAAA,IACX,KAAO,EAAA,SAAA;EAAA,IACP,gBAAmB,GAAA,CAAA;EAAA,IACnB,GAAM,GAAA,QAAA;EAAA,IACN,GAAM,GAAA,CAAA,QAAA;EAAA,IACN,gBAAA;EAAA,IACA,iBAAA;EAAA,IACA,MAAA;EAAA,GApFF,GA0EqC,EAWhC,EAAA,IAAA,GAAAC,WAAA,CAXgC,EAWhC,EAAA;EAAA,IAVH,QAAA;EAAA,IACA,cAAA;EAAA,IACA,UAAA;EAAA,IACA,OAAA;EAAA,IACA,kBAAA;EAAA,IACA,KAAA;EAAA,IACA,KAAA;EAAA,IACA,kBAAA;EAAA,IACA,mBAAA;EAAA,IACA,QAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,UAAA,EAAY,aAAc,CAAA,GAAIjG,eAAS,SAAS,CAAA,CAAA;EACxD,EAAM,MAAA,YAAA,GAAe,OAAO,SAAc,KAAA,WAAA,CAAA;EAC1C,EAAM,MAAA,KAAA,GAAQ,eAAe,SAAY,GAAA,UAAA,CAAA;EACzC,EAAM,MAAA,KAAA,GAAQ,UAAU,MAAM,CAAA,CAAA;EAE9B,EAAM,MAAA,qBAAA,GAAwB,CAAC,MAAoB,MAAA;EAAA,IACjD,UAAY,EAAA,MAAA;EAAA,IACZ,cAAgB,EAAA8U,kCAAA,CAAiB,MAAO,CAAA,QAAA,IAAY,KAAK,CAAA;EAAA,IACzD,KAAA,EAAO,OAAO,QAAS,EAAA;EAAA,GACzB,CAAA,CAAA;EAEA,EAAA,MAAM,gBAAgB,MAAM;EAC1B,IAAA,IAAIzU,YAAM,KAAK,CAAA;EAAG,MAAA,OAAA;EAClB,IAAA,MAAM,OAAO,OAAO,KAAA,KAAU,QAAW,GAAA,UAAA,CAAW,KAAK,CAAI,GAAA,KAAA,CAAA;EAC7D,IAAM,MAAA,MAAA,GAAS,eAAe,GAAM,GAAA,CAAA,CAAA;EACpC,IAAI,IAAA,IAAA,GAAO,SAAS,GAAK,EAAA;EACvB,MAAA,MAAM,QAAW,GAAA,gBAAA,CAAiB,GAAM,GAAA,MAAA,EAAQ,gBAAgB,CAAA,CAAA;EAChE,MAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;EACtB,MAAS,QAAA,CAAA,qBAAA,CAAsB,QAAQ,CAAC,CAAA,CAAA;EAAA,KAC1C;EACA,IAAI,IAAA,IAAA,GAAO,SAAS,GAAK,EAAA;EACvB,MAAA,MAAM,QAAW,GAAA,gBAAA,CAAiB,GAAM,GAAA,MAAA,EAAQ,gBAAgB,CAAA,CAAA;EAChE,MAAA,aAAA,CAAc,QAAQ,CAAA,CAAA;EACtB,MAAS,QAAA,CAAA,qBAAA,CAAsB,QAAQ,CAAC,CAAA,CAAA;EAAA,KAC1C;EAAA,GACF,CAAA;EAEA,EAAM,MAAA,oBAAA,GAAuB,CAC3B,MAAA,EACA,UACG,KAAA;EACH,IAAM,MAAA,aAAA,GACJ,MAAO,CAAA,UAAA,IAAc,YACjB,GAAA,gBAAA,CAAiB,OAAO,UAAa,GAAA,GAAA,EAAK,gBAAgB,CAAA,GAC1D,MAAO,CAAA,UAAA,CAAA;EACb,IAAA,aAAA,CAAc,aAAa,CAAA,CAAA;EAC3B,IAAA,QAAA;EAAA,MACEoB,qCACK,MADL,CAAA,EAAA;EAAA,QAEE,UAAY,EAAA,aAAA;EAAA,OACd,CAAA;EAAA,MACA,UAAA;EAAA,KACF,CAAA;EAAA,GACF,CAAA;EAEA,EAAAxB,eAAA,CAAU,MAAM;EACd,IAAc,aAAA,EAAA,CAAA;EAAA,GAChB,EAAG,CAAE,KAAM,CAAC,CAAA,CAAA;EAEZ,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,iBAAA;EAAA,IAAA;EAAA,MACC,gBAAA;EAAA,MACA,iBAAA;EAAA,KAAA;EAAA,oBAEA,KAAA,CAAA,aAAA;EAAA,MAAC8U,+BAAA;EAAA,MAAA7T,gBAAA,CAAAA,gBAAA,CAAA;EAAA,QACC,iBAAoB,EAAA,IAAA;EAAA,QACpB,WAAc,EAAAyQ,WAAA;EAAA,QACd,MAAA,EAAS,CAAC,CAAM,KAAA;EACd,UAAS,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,CAAA,CAAA,CAAA;EACT,UAAc,aAAA,EAAA,CAAA;EAAA,SAChB;EAAA,QACA,aAAgB,EAAA,oBAAA;EAAA,QAChB,YAAe,EAAA,gBAAA;EAAA,QACf,KAAA,EACE,YACI,GAAA,gBAAA,CAAiB,UAAW,CAAA,CAAA,EAAG,wBAAS,CAAG,CAAA,CAAA,CAAA,GAAI,GAAK,EAAA,gBAAgB,CACpE,GAAA,KAAA;EAAA,QAEN,MAAA,EAAS,eAAe,GAAM,GAAA,EAAA;EAAA,OAAA,EACzB,KACA,CAAA,EAAA,IAAA,CAAA;EAAA,KACP;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1IO,QAAM,yBACb,GAAAlL,gBAAA,CAA2D,CAAC,EAAA,EAQzD,GAAK,KAAA;EARoD,EAC1D,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,IACA,UAAU,gBAAmB,GAAAT,cAAA;EAAA,IAC7B,SAAY,GAAA,KAAA;EAAA,GA9Bd,GAwB4D,EAOvD,EAAA,IAAA,GAAAC,WAAA,CAPuD,EAOvD,EAAA;EAAA,IANH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,UAAA;EAAA,MACA,SAAA;EAAA,MACA,QAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,oBAAA;EAAA,MAAA/E,gBAAA,CAAA;EAAA,QACC,IAAA;EAAA,QACA,QAAA,EAAW,CAAC,MAAA,EAAQ,UAAe,KAAA;EACjC,UAAA,QAAA,CAAS,OAAO,UAAU,CAAA,CAAA;EAC1B,UAAA,gBAAA,CAAiB,QAAQ,UAAU,CAAA,CAAA;EAAA,SACrC;EAAA,QACA,KAAA;EAAA,OACK,EAAA,IAAA,CAAA;EAAA,KACP;EAAA,GAEJ,CAAA;EAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EChDD;EACA,MAAM,WAAc,GAAA,SAAA,CAAA;AAEP,QAAA,eAAA,GAAkB,CAAC,EAUP,KAAA;EAVO,EAC9B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,eAAA;EAAA,IACA,cAAA;EAAA,IACA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,WAAA;EAAA,IACA,QAAA;EAAA,IACA,MAAA;EAAA,GAhBF,GAQgC,EAS3B,EAAA,IAAA,GAAA+E,WAAA,CAT2B,EAS3B,EAAA;EAAA,IARH,MAAA;EAAA,IACA,iBAAA;EAAA,IACA,gBAAA;EAAA,IACA,MAAA;EAAA,IACA,OAAA;EAAA,IACA,aAAA;EAAA,IACA,UAAA;EAAA,IACA,QAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,WAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,eAAA;EAAA,MACA,cAAA;EAAA,MACA,IAAA;EAAA,MACA,KAAA;EAAA,MACA,QAAA;EAAA,MACA,MAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,IAAM,EAAA,QAAA,EACT,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC0L,WAAA;EAAA,MAAAzQ,gBAAA,CAAA;EAAA,QACC,aAAc,eAAmB,IAAA,IAAA,GAAA,eAAA,GAAA,WAAA;EAAA,QACjC,IAAO,EAAA,QAAA;EAAA,OACF,EAAA,IAAA,CAAA;EAAA,KACP;EAAA,GAEJ,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBK,QAAM,SAAY,GAAAuF,gBAAA,CAA2C,CAAC,EAAA,EAWlE,GAAK,KAAA;EAX6D,EACnE,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,KAAA;EAAA,IACA,IAAI,EAAK,GAAAkL,WAAA;EAAA,IACT,UAAA;EAAA,IACA,QAAA;EAAA,IACA,SAAY,GAAA,QAAA;EAAA,IACZ,UAAU,gBAAmB,GAAA3L,cAAA;EAAA,IAC7B,gBAAA;EAAA,IACA,iBAAA;EAAA,GA1BF,GAiBqE,EAUhE,EAAA,IAAA,GAAAC,WAAA,CAVgE,EAUhE,EAAA;EAAA,IATH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,IAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,WAAA;EAAA,IACA,UAAA;EAAA,IACA,kBAAA;EAAA,IACA,mBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,UAAA;EAAA,MACA,QACE,EAAA5F,WAAA,CAAM,QAAQ,CAAA,IAAK,aACf,EAAE,QAAA,EAAU,CAAC,KAAA,KAAkB,CAAC,CAAC,KAAM,CAAA,IAAA,IACvC,GAAA,QAAA;EAAA,MAEN,SAAA;EAAA,MACA,GAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,QAAU,EAAA,KAAA,EACb,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,iBAAA;EAAA,MAAA;EAAA,QACC,gBAAA;EAAA,QACA,iBAAA;EAAA,OAAA;EAAA,sBAEA,KAAA,CAAA,aAAA;EAAA,QAAC,EAAA;EAAA,QAAAa,gBAAA,CAAA;EAAA,UACC,EAAK,EAAA,IAAA;EAAA,UACL,IAAA;EAAA,UACA,QAAA,EAAW,CAAC,CAAoD,KAAA;EAC9D,YAAA,QAAA,CAAS,CAAC,CAAA,CAAA;EACV,YAAA,gBAAA,CAAiB,CAAC,CAAA,CAAA;EAAA,WACpB;EAAA,UACA,KAAA;EAAA,UACA,aAAY,EAAA,oBAAA;EAAA,SACP,EAAA,IAAA,CAAA;EAAA,OACP;EAAA,KACF;EAAA,GAEJ,CAAA;EAAA,CACD;;EClDM,MAAM,YAA2C,GAAA;EAAA,EACtD,OAAS,EAAA6M,sBAAA;EAAA,EACT,OAAS,EAAAC,wBAAA;EAAA,EACT,KAAO,EAAAC,sBAAA;EAAA,EACP,MAAQ,EAAAA,sBAAA;EAAA,EACR,IAAM,EAAA+G,eAAA;EAAA,EACN,EAAI,EAAA5G,qBAAA;EAAA,EACJ,OAAS,EAAAC,qBAAA;EAAA,EACT,KAAO,EAAAA,qBAAA;EACT,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACSa,QAAA,KAAA,GAAQ,CAAC,EAMJ,KAAA;EANI,EACpB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,OAAA,GAAA,SAAA;EAAA,IACV,KAAQ,GAAA,EAAA;EAAA,IACR,WAAc,GAAA,EAAA;EAAA,IACd,OAAA;EAAA,GAhCF,GA4BsB,EAKjB,EAAA,IAAA,GAAApI,WAAA,CALiB,EAKjB,EAAA;EAAA,IAJH,SAAA;EAAA,IACA,OAAA;EAAA,IACA,aAAA;EAAA,IACA,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,IAAA,GAAO,aAAa,OAAO,CAAA,CAAA;EAEjC,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACM,WAAA;EAAA,IAAArF,gBAAA,CAAA;EAAA,MACC,OAAA;EAAA,MACA,aAAY,EAAA,YAAA;EAAA,KACP,EAAA,IAAA,CAAA;EAAA,oBAEJ,KAAA,CAAA,aAAA,CAAAuG,YAAA,EAAA,EAAO,UAAW,EAAA,YAAA,EAAA,EACf,IACF,oBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,IAAA;EAAA,MAAA;EAAA,QACC,EAAK,EAAA,IAAA;EAAA,QACL,OAAQ,CAAc,WAAA,EAAA,OAAA,CAAA,CAAA;EAAA,QACtB,OAAU,EAAA,CAAA;EAAA,OAAA;EAAA,KAGZ,kBAAA,KAAA,CAAA,aAAA,CAACgB,WAAM,EAAA,EAAA,OAAA,EAAU,GAAI,UAAW,EAAA,YAAA,EAAA,EAC5B,KAAS,oBAAA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,IAAA,EAAK,IAAO,EAAA,EAAA,KAAO,GACnC,WACF,oBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,CAAA;EAAA,MAAA;EAAA,QACC,EAAK,EAAA;EAAA,UACH,KAAA,EAAO,OAAY,KAAA,IAAA,GAAO,qBAAwB,GAAA,cAAA;EAAA,SACpD;EAAA,OAAA;EAAA,MAEE,WAAA;EAAA,KAGN,CAEA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACuG,iBAAA;EAAA,MAAA;EAAA,QACC,IAAK,EAAA,IAAA;EAAA,QACL,OAAU,EAAA,OAAA;EAAA,QACV,QAAS,EAAA,UAAA;EAAA,QACT,QAAW,EAAA,CAAA;EAAA,QACX,GAAM,EAAA,CAAA;EAAA,OAAA;EAAA,KAEV,CAAA;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;ACnDO,QAAM,QAAW,GAAA,CAAC,WAA+B,GAAA,EAAO,KAAA;EAC7D,EAAM,MAAA,KAAA,GAAQiG,eAAe,WAAW,CAAA,CAAA;EACxC,EAAM,MAAA,UAAA,GAAa7U,aAAuB,IAAI,CAAA,CAAA;EAE9C,EAAO,OAAA,CAAC,IAAwB,GAAA,EAAO,KAAA;EACrC,IAAA,MAAM,UAA8B,GAAAc,gBAAA,CAAA;EAAA,MAClC,MAAQ,EAAA,CAAC,EAAE,OAAA,EAAuC,KAAA;EAChD,QAAM,MAAA;EAAA,UACJ,OAAU,GAAA,SAAA;EAAA,UACV,KAAQ,GAAA,SAAA;EAAA,UACR,WAAc,GAAA,EAAA;EAAA,SACZ,GAAA,IAAA,CAAA;EAEJ,QACE,uBAAA,KAAA,CAAA,aAAA;EAAA,UAAC,KAAA;EAAA,UAAA;EAAA,YACC,OAAA;EAAA,YACA,KAAA;EAAA,YACA,WAAA;EAAA,YACA,OAAA;EAAA,WAAA;EAAA,SACF,CAAA;EAAA,OAEJ;EAAA,MACA,QAAU,EAAA,KAAA;EAAA,KACP,EAAA,IAAA,CAAA,CAAA;EAGL,IAAM,MAAA,EAAE,oBAAuB,GAAA,KAAA,EAAU,GAAA,IAAA,CAAA;EACzC,IAAI,IAAA,oBAAA,IAAwB,UAAc,IAAA,UAAA,CAAW,OAAS,EAAA;EAC5D,MAAM,KAAA,CAAA,MAAA,CAAO,UAAW,CAAA,OAAA,EAAS,UAAU,CAAA,CAAA;EAAA,KACtC,MAAA;EACL,MAAW,UAAA,CAAA,OAAA,GAAU,MAAM,UAAU,CAAA,CAAA;EAAA,KACvC;EAAA,GACF,CAAA;EACF;;ECtDO,MAAM,aAA4C,GAAA;EAAA,EACvD,KAAO,EAAA,SAAA;EAAA,EACP,OAAS,EAAA,SAAA;EAAA,EACT,MAAQ,EAAA,MAAA;EAAA,EACR,UAAY,EAAA,MAAA;EAAA,EACZ,IAAM,EAAA,SAAA;EAAA,EACN,WAAa,EAAA,SAAA;EAAA,EACb,GAAK,EAAA,aAAA;EAAA,EACL,QAAU,EAAA,aAAA;EACZ,CAAA;;ECTO,MAAM,UAA6C,GAAA;EAAA,EACxD,EAAA,EAAI,CAAE,CAAA,EAAG,CAAE,CAAA;EAAA,EACX,EAAA,EAAI,CAAE,CAAA,EAAG,CAAE,CAAA;EAAA,EACX,EAAA,EAAI,CAAE,CAAA,EAAG,CAAE,CAAA;EACb,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC6Ba,QAAA,SAAA,GAAY,CAAC,EAAsD,KAAA;EAAtD,EAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,IAAA,GAAO,MAAM,OAnCzC,EAAA,GAmC0B,IAA2B,IAA3B,GAAA+E,WAAA,CAAA,EAAA,EAA2B,CAAzB,MAAa,EAAA,SAAA,CAAA,CAAA,CAAA;EACvC,EAAM,MAAA,QAAA,GAAW,cAAc,OAAO,CAAA,CAAA;EACtC,EAAM,MAAA,YAAA,GAAe,WAAW,IAAI,CAAA,CAAA;EACpC,EAAM,MAAA,CAAE,SAAW,EAAA,SAAU,CAAI,GAAA,YAAA,CAAA;EAEjC,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACuI,YAAA;EAAA,IAAAtN,gBAAA,CAAA;EAAA,MACC,IAAO,EAAA,SAAA;EAAA,MACP,EAAG,EAAA,aAAA;EAAA,MACH,WAAY,EAAA,IAAA;EAAA,MACZ,WAAc,EAAA,QAAA;EAAA,KACT,EAAA,IAAA,CAAA;EAAA,oBAEL,KAAA,CAAA,aAAA;EAAA,MAACsN,YAAA;EAAA,MAAA;EAAA,QACC,IAAO,EAAA,SAAA;EAAA,QACP,EAAK,EAAA,QAAA;EAAA,OAAA;EAAA,KACP;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCa,QAAA,UAAA,GAAa,CAAC,EAGP,KAAA;EAHO,EACzB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAU,OAAA,GAAA,EAAA;EAAA,GApBZ,GAmB2B,EAEtB,EAAA,IAAA,GAAAvI,WAAA,CAFsB,EAEtB,EAAA;EAAA,IADH,SAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA,CAACM,WAAY,EAAArF,gBAAA,CAAA,EAAA,eAAA,EAAgB,oBAAqB,EAAA,KAAA,EAAM,cAAe,EAAA,KAAA,EAAM,MAAY,EAAA,EAAA,IAAA,CAAA,kBACtF,KAAA,CAAA,aAAA,CAAAoN,YAAA,EAAA,EAAO,CAAE,EAAA,MAAA,EAAA,sCACP,IAAK,EAAA,EAAA,EAAA,EAAK,YAAa,CAAA,KAAA,EAAQ,KAAM,EAAA,kBAAA,EAAmB,OAAU,EAAA,CAAA,EAAI,mBACtE,KAAA,CAAA,aAAA,CAAA4G,gBAAA,EAAA,IAAA,EAAW,SAAO,CAAA,EACjB,OACF,oBAAA,KAAA,CAAA,aAAA,CAACC,sBAAmB,EAAA,IAAA,EAAA,OAAS,CAE/B,CACF,CAAA,CAAA;EAAA;;;;;;;;;;;;;;;;;;ACnBK,QAAM,YAAY,CAAC,KAAA,yCACvBC,QAAgB,EAAAlU,gBAAA,CAAA,EAAA,OAAA,EAAU,KAAS,KAAQ,CAAA;;;;;;;;;;;;;;;;;;ACkBvC,QAAM,QAAQ,CAAC,KAAA,yCACnBmU,UAAY,EAAAnU,gBAAA,CAAA,EAAA,QAAA,EAAW,QAAY,KAAQ,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVjC,QAAA,IAAA,GAAO,CAAC,EAA0D,KAAA;EAA1D,EAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,KAAA,EAAO,aAAa,SAtB3C,EAAA,GAsBqB,IAAoC,IAApC,GAAA+E,WAAA,CAAA,EAAA,EAAoC,CAAlC,OAAA,EAAO,aAAa,EAAA,WAAA,CAAA,CAAA,CAAA;EACzC,EAAM,MAAA;EAAA,IACJ,IAAA;EAAA,IACA,KAAO,EAAA,UAAA;EAAA,IACP,WAAa,EAAA,gBAAA;EAAA,IACb,SAAW,EAAA,cAAA;EAAA,GACb,GAAII,0BAAoB,MAAM,CAAA,CAAA;EAC9B,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACiP,SAAA;EAAA,IAAApU,gBAAA,CAAA;EAAA,MACC,EAAK,EAAA,IAAA;EAAA,KACA,EAAA,IAAA,CAAA;EAAA,oBAEL,KAAA,CAAA,aAAA,CAAC0H,UAAK,EAAA,EAAA,aAAA,EAAc,KAAM,EAAA,UAAA,EAAW,cAAa,GAAI,EAAA,GAAA,EAAI,kBAAqB,EAAA,IAAA,EAAA,EAC3E,SACA,oBAAA,KAAA,CAAA,aAAA;EAAA,MAACxC,SAAA;EAAA,MAAA;EAAA,QACC,EAAK,EAAA,cAAA;EAAA,QACL,WAAU,EAAA,WAAA;EAAA,QACV,cAAe,EAAA,QAAA;EAAA,OAAA;EAAA,MAEb,SAAA;EAAA,uBAGL,KAAA,CAAA,aAAA,CAAAwC,UAAA,EAAA,EAAK,eAAc,QAClB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,eAAY,EAAK,EAAA,UAAA,EAAA,EAAe,KAAO,CAAA,EACtC,+BAAgB,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,IAAK,gBAAqB,EAAA,EAAA,WAAa,CAChE,CACF,CAAA;EAAA,GACF,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9Ba,QAAA,QAAA,GAAW,CAAC,EAAyC,KAAA;EAAzC,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EArB3B,QAAA,EAAA,GAqByB,EAAe,EAAA,IAAA,GAAA3C,WAAA,CAAf,IAAe,CAAb,UAAA,CAAA,CAAA,CAAA;EACzB,EAAM,MAAA,IAAA,GAAO7E,cAAS,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;EACpC,EAAA,MAAM,MAAS,GAAAuF,oBAAA,CAAe,UAAY,EAAA,EAAE,MAAM,CAAA,CAAA;EAClD,EAAA,2CACG4O,aAAoB,EAAA9T,eAAA,CAAAP,gBAAA,CAAA,EAAA,EAAA,IAAA,CAAA,EAApB,EAA2B,EAAA,EAAK,WAC7B,QACJ,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTO,QAAM,cAAiB,GAAAuF,gBAAA,CAAgD,CAAC,EAAA,EAK5E,GAAQ,KAAA;EALoE,EAC7E,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAO,IAAA,GAAA,IAAA;EAAA,IACP,KAAA;EAAA,IACA,YAAc,EAAA,SAAA;EAAA,GAvBhB,GAoB+E,EAI1E,EAAA,IAAA,GAAAR,WAAA,CAJ0E,EAI1E,EAAA;EAAA,IAHH,MAAA;EAAA,IACA,OAAA;EAAA,IACA,YAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,EAAE,SAAW,EAAA,MAAA,EAAQ,QAAS,EAAA,GAAIuP,mBAAa,KAAK,CAAA,CAAA;EAC1D,EAAM,MAAA,EAAE,QAAQ,IAAM,EAAA,OAAA,KAAYnP,yBAAoB,CAAA,gBAAA,EAAkB,EAAE,IAAA,EAAM,CAAA,CAAA;EAEhF,EAAApG,eAAA,CAAU,MAAM;EACd,IAAA,QAAA,CAAS,KAAK,CAAA,CAAA;EAAA,GAChB,EAAG,CAAE,KAAM,CAAC,CAAA,CAAA;EAEZ,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA0M,gBAAA,EAAA,EAAW,IAAc,EAAA,aAAA,EAAY,2BAA0B,GAC9D,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAACgF,WAAA;EAAA,IAAAzQ,gBAAA,CAAA;EAAA,MACC,YAAa,EAAA,UAAA;EAAA,MACb,cAAa,CAAkB,eAAA,EAAA,KAAA,CAAA,CAAA;EAAA,MAC/B,UAAa,EAAA,IAAA;EAAA,MACb,KAAA;EAAA,KACK,EAAA,IAAA,CAAA;EAAA,GACP,sCACC0L,uBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,OAAA;EAAA,IAAA;EAAA,MACC,KAAA,EAAQ,YAAY,SAAY,GAAA,MAAA;EAAA,MAChC,SAAU,EAAA,MAAA;EAAA,MACV,YAAe,EAAA,KAAA;EAAA,MACf,EAAK,EAAA,OAAA;EAAA,KAAA;EAAA,oBAEL,KAAA,CAAA,aAAA;EAAA,MAAC,UAAA;EAAA,MAAA;EAAA,QACC,cAAa,SAAa,IAAA,eAAA;EAAA,QAC1B,OAAU,EAAA,MAAA;EAAA,QACV,OAAA,EAAU,YAAY,SAAY,GAAA,SAAA;EAAA,QAClC,EAAK,EAAA,MAAA;EAAA,OAAA;EAAA,sBAEL,KAAA,CAAA,aAAA;EAAA,QAAC,IAAA;EAAA,QAAA;EAAA,UACC,EAAA,EAAK,YAAY5D,cAAW,GAAAyM,aAAA;EAAA,UAC5B,EAAK,EAAA,IAAA;EAAA,SAAA;EAAA,OACP;EAAA,KACF;EAAA,GAEJ,CACF,CAAA,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDY,QAAA,SAAA,GAAY,CAAC,EAOJ,KAAA;EAPI,EACxB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,YAAe,GAAA,EAAA;EAAA,IACf,MAAA;EAAA,IACA,YAAe,GAAA,EAAA;EAAA,IACf,aAAgB,GAAA,EAAA;EAAA,GAhBlB,GAW0B,EAMrB,EAAA,IAAA,GAAAxP,WAAA,CANqB,EAMrB,EAAA;EAAA,IALH,UAAA;EAAA,IACA,cAAA;EAAA,IACA,QAAA;EAAA,IACA,cAAA;EAAA,IACA,eAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAM,MAAA,UAAA,GAAa7F,aAA8B,IAAI,CAAA,CAAA;EAErD,EAAA,MAAM,gBAAmB,GAAAsV,iBAAA;EAAA,IACvB,CAAC,CAA0C,KAAA;EACzC,MAAI,IAAA,CAAA,CAAE,MAAW,KAAA,UAAA,CAAW,OAAS,EAAA;EACnC,QAAA,OAAA;EAAA,OACF;EACA,MAAA,IAAI,cAAgC,GAAA,IAAA,CAAA;EAEpC,MAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;EAClB,MAAA,CAAA,CAAE,cAAe,EAAA,CAAA;EAEjB,MAAA,MAAM,SAAS,CAAE,CAAA,aAAA,CAAA;EAEjB,MAAO,MAAA,CAAA,iBAAA,CAAkB,EAAE,SAAS,CAAA,CAAA;EAEpC,MAAO,MAAA,CAAA,aAAA,GAAgB,CAAC,SAA4B,KAAA;EAClD,QAAI,IAAA,EAAE,SAAU,CAAA,OAAA,IAAW,CAAI,CAAA,EAAA;EAC7B,UAAA,MAAA,CAAO,aAAgB,GAAA,IAAA,CAAA;EACvB,UAAO,MAAA,CAAA,qBAAA,CAAsB,UAAU,SAAS,CAAA,CAAA;EAChD,UAAA,OAAA;EAAA,SACF;EAEA,QAAA,SAAA,CAAU,eAAgB,EAAA,CAAA;EAC1B,QAAA,SAAA,CAAU,cAAe,EAAA,CAAA;EAEzB,QAAA,IAAI,CAAC,cAAgB,EAAA;EACnB,UAAM,MAAA,EAAE,SAAY,GAAA,SAAA,CAAA;EAEpB,UAAA,cAAA,GAAiB,sBAAsB,MAAM;EAC3C,YAAA,MAAA,CAAO,KAAM,CAAA,WAAA;EAAA,cACX,aAAA;EAAA,cACA,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,OAAA,EAAS,CAAC,CAAA,CAAA,EAAA,CAAA;EAAA,aACxB,CAAA;EACA,YAAiB,cAAA,GAAA,IAAA,CAAA;EAAA,WAClB,CAAA,CAAA;EAAA,SACH;EAAA,OACF,CAAA;EAAA,KACF;EAAA,IACA,EAAC;EAAA,GACH,CAAA;EAEA,EAAM,MAAA,cAAA,GAAiB/O,qBAAe,WAAa,EAAA,EAAE,cAAc,aAAe,EAAA,YAAA,EAAc,QAAQ,CAAA,CAAA;EAExG,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACgP,UAAA;EAAA,IAAAzU,gBAAA,CAAA;EAAA,MACC,EAAK,EAAA,cAAA;EAAA,MACL,aAAgB,EAAA,gBAAA;EAAA,KACX,EAAA,IAAA,CAAA;EAAA,IAEH,SAAS,CAAC,CAAA;EAAA,IACV,MAAA,IAAUD,mBAAa,QAAS,CAAA,CAAC,GAAG,EAAE,GAAA,EAAK,YAAY,CAAA;EAAA,IACvD,MAAA,IAAU,SAAS,CAAC,CAAA;EAAA,GACxB,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjEa,QAAA,QAAA,GAAW,CAAC,EAAuC,KAAA;EAAvC,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAT3B,QAAA,EAAA,GASyB,EAAe,EAAA,IAAA,GAAAgF,WAAA,CAAf,IAAe,CAAb,UAAA,CAAA,CAAA,CAAA;EACzB,EAAA,uBAAA,KAAA,CAAA,aAAA,CAAC2P,cAAS,EAAA1U,gBAAA,CAAA,EAAA,QAAA,EAAS,QAAc,EAAA,EAAA,IAAA,CAAA,EAC7B,QACJ,CAAA,CAAA;EAAA;;;;;;;;;;;;;;;;;;ACGK,QAAM,WAAc,GAAAuF,gBAAA,CAAW,CAAC,KAAA,EAAiB,GAAa,KAAA;EACnE,EAAM,MAAA,KAAA,GAAQE,qBAAe,aAAa,CAAA,CAAA;EAC1C,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAACP,SAAA;EAAA,IAAAlF,gBAAA,CAAA;EAAA,MACC,GAAA;EAAA,MACA,EAAK,EAAA,KAAA;EAAA,KACA,EAAA,KAAA,CAAA;EAAA,GACP,CAAA;EAEJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACuCY,QAAA,SAAA,GAAY,CAAC,EAOJ,KAAA;EAPI,EACxB,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,OAAU,GAAA,GAAA;EAAA,IACV,SAAY,GAAA,IAAA;EAAA,IACZ,mBAAsB,GAAA,QAAA;EAAA,IACtB,qBAAwB,GAAA,CAAA;EAAA,GApE1B,GA+D0B,EAMrB,EAAA,IAAA,GAAA+E,WAAA,CANqB,EAMrB,EAAA;EAAA,IALH,UAAA;EAAA,IACA,SAAA;EAAA,IACA,WAAA;EAAA,IACA,qBAAA;EAAA,IACA,uBAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,IAAO,GAAA,oBAAA,CAAqB,QAAU,EAAA,EAAE,CAAA,CAAA;EAC9C,EAAM,MAAA,eAAA,GAAkBtF,eAAS,CAAA,OAAA,EAAS,SAAS,CAAA,CAAA;EAEnD,EAAA,2CACG8H,WAAM,EAAAvH,gBAAA,CAAA,EAAA,OAAA,EAAoB,QAAS,EAAA,UAAA,EAAA,EAAgB,OAChD,IAAK,CAAA,GAAA;EAAA,IACL,CAAC,GAAK,EAAA,CAAA,qBACH,KAAA,CAAA,aAAA,CAAAuG,YAAA,EAAA,EAAO,KAAM,CAAO,IAAA,EAAA,CAAA,CAAA,CAAA,EAAgB,UAAa,EAAA,mBAAA,EAAA,kBAE9C,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACrB,SAAA;EAAA,MAAA;EAAA,QACC,YAAa,EAAA,MAAA;EAAA,QACb,OAAQ,EAAA,UAAA;EAAA,QACR,OAAQ,EAAA,GAAA;EAAA,QACR,IAAK,EAAA,GAAA;EAAA,QACL,IAAK,EAAA,GAAA;EAAA,QACL,MAAO,EAAA,QAAA;EAAA,QACP,WAAY,CAAG,EAAA,qBAAA,CAAA,EAAA,CAAA;EAAA,OAAA;EAAA,sBAEf,KAAA,CAAA,aAAA;EAAA,QAAC,KAAA;EAAA,QAAA;EAAA,UACC,IAAK,EAAA,IAAA;EAAA,UACL,EAAA,EAAK,EAAE,KAAA,EAAO,eAAgB,EAAA;EAAA,UAC9B,CAAE,EAAA,aAAA;EAAA,UACF,SAAU,EAAA,QAAA;EAAA,SAAA;EAAA,QAER,CAAI,GAAA,CAAA;EAAA,OACR;EAAA,KACF,EACE,GACJ,CACF,CAAA;EAAA,GAGJ,kBAAA,KAAA,CAAA,aAAA;EAAA,IAACyN,aAAA;EAAA,IAAA;EAAA,MACC,WAAY,EAAA,UAAA;EAAA,MACZ,IAAK,EAAA,GAAA;EAAA,MACL,GAAA,EAAM,QAAQ,eAAyB,CAAA,OAAA,EAAA,qBAAA,CAAA,GAAA,CAAA;EAAA,MACvC,CAAA,EAAI,eAAe,eAAqB,CAAA,GAAA,EAAA,qBAAA,CAAA,GAAA,CAAA;EAAA,MACxC,QAAS,EAAA,UAAA;EAAA,KAAA;EAAA,GAEb,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECnGA,MAAM,EAAE,MAAQ,EAAA,YAAA,EAAiB,GAAAvE,kCAAA,CAAA;EAK1B,MAAM,sBAAsB,OACjC;EAAA,EACE,MAAA,EAAQ,CAAC,EAAwB,KAAA;EAAxB,IAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EApBf,QAAA,EAAA,GAoBa,EAAe,EAAA,KAAA,GAAArJ,WAAA,CAAf,IAAe,CAAb,UAAA,CAAA,CAAA,CAAA;EACT,IAAA,uBAAA,KAAA,CAAA,aAAA,CAAC,YAAkB,EAAA/E,gBAAA,CAAA,EAAA,EAAA,KAAA,CAAA,EACf,KAAM,CAAA,IAAA,CAAK,UACX,oBAAA,KAAA,CAAA,aAAA;EAAA,MAAC0H,UAAA;EAAA,MAAA;EAAA,QACC,EAAK,EAAA,CAAA;EAAA,QACL,KAAQ,EAAA,GAAA;EAAA,QACR,EAAK,EAAA,GAAA;EAAA,QACL,cAAe,EAAA,QAAA;EAAA,QACf,UAAW,EAAA,QAAA;EAAA,OAAA;EAAA,sBAEV,KAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAK,EAAK,EAAAiN,eAAA,EAAY,OAAM,OAAQ,EAAA,CAAA;EAAA,KACvC,EAEA,CAAC,KAAA,CAAM,IAAK,CAAA,UAAA,oBAAe,KAAA,CAAA,aAAA,CAAAzP,SAAA,EAAA,EAAI,EAAK,EAAA,CAAA,EAAI,KAAQ,EAAA,GAAA,EAAM,CACxD,kBAAA,KAAA,CAAA,aAAA;EAAA,MAACqE,UAAA;EAAA,MAAA;EAAA,QACC,KAAQ,EAAA,KAAA,CAAM,IAAK,CAAA,UAAA,GAAa,YAAe,GAAA,cAAA;EAAA,QAC/C,UAAa,EAAA,KAAA,CAAM,IAAK,CAAA,UAAA,GAAa,UAAa,GAAA,QAAA;EAAA,OAAA;EAAA,MAEhD,QAAA;EAAA,KAEN,CAAA,CAAA;EAAA,GAAA;EAEJ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECkDF,MAAM,qBAA6C,GAAA,WAAA,CAAA;AAEtC,QAAA,uBAAA,GAA0B,CAA4B,EAe5B,KAAA;EAf4B,EACjE,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,eAAA;EAAA,IACA,kBAAqB,GAAA,qBAAA;EAAA,IACrB,oBAAuB,GAAA,qBAAA;EAAA,IACvB,cAAiB,GAAA;EAAA,MACf,KAAO,EAAA,WAAA;EAAA,MACP,KAAO,EAAA,qBAAA;EAAA,MACP,UAAY,EAAA,IAAA;EAAA,KACd;EAAA,IACA,cAAA;EAAA,IACA,OAAU,GAAA,SAAA;EAAA,IACV,YAAA;EAAA,IACA,KAAA;EAAA,IACA,aAAgB,GAAA,QAAA;EAAA,GA3GlB,GA8FmE,EAc9D,EAAA,SAAA,GAAAxE,WAAA,CAd8D,EAc9D,EAAA;EAAA,IAbH,iBAAA;EAAA,IACA,oBAAA;EAAA,IACA,sBAAA;EAAA,IACA,gBAAA;EAAA,IAKA,gBAAA;EAAA,IACA,SAAA;EAAA,IACA,cAAA;EAAA,IACA,OAAA;EAAA,IACA,eAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,MAAM,CAAE,cAAA,EAAgB,iBAAkB,CAAA,GAC1CjG,eAAkD,MAAM;EA/G1D,IAAA,IAAA8I,GAAAgN,EAAAA,GAAAA,CAAAA;EAgHI,IAAA,MAAM,WAAchN,GAAAA,CAAAA,GAAAA,GAAA,KAAS,IAAA,IAAA,GAAA,KAAA,GAAA,YAAA,KAAT,OAAAA,GAAyB,GAAA,IAAA,CAAA;EAC7C,IAAA,OAAO,WACHgN,GAAAA,CAAAA,GAAAA,GAAA,eAAgB,CAAA,IAAA,CAAK,CAAC,MAAA,KAAW,MAAO,CAAA,KAAA,KAAU,WAAW,CAAA,KAA7D,IAAAA,GAAAA,GAAAA,GAAkE,IAClE,GAAA,IAAA,CAAA;EAAA,GACL,CAAA,CAAA;EAED,EAAA,MAAM,CAAE,oBAAA,EAAsB,uBAAwB,CAAA,GACpD9V,eAAS,kBAAkB,CAAA,CAAA;EAC7B,EAAA,MAAM,CAAE,cAAgB,EAAA,iBAAkB,CAAI,GAAAA,cAAA,CAAsB,EAAE,CAAA,CAAA;EACtE,EAAA,MAAM,CAAE,eAAA,EAAiB,kBAAmB,CAAA,GAAIA,eAAkB,KAAK,CAAA,CAAA;EACvE,EAAA,MAAM,CAAE,kBAAA,EAAoB,qBAAsB,CAAA,GAAIA,eAAiB,EAAE,CAAA,CAAA;EAEzE,EAAA,SAAS,iBAAkB,MAAuC,EAAA;EAChE,IAAO,OAAA,MAAA,IAAU,OAAO,MAAA,CAAO,UAAe,KAAA,SAAA,CAAA;EAAA,GAChD;EAEA,EAAM,MAAA,GAAA,GAAMI,aAAuB,IAAI,CAAA,CAAA;EAEvC,EAAA,MAAM,mCAAsC,GAAA,CAC1C,MACA,EAAA,OAAA,KACG+F,SAAI,CAAA,CAAC,MAAW,KAAA0E,aAAA,CAAQ,MAAO,CAAA,KAAK,CAAM,KAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;EAE9D,EAAM,MAAA,kBAAA,GAAqB,CAAC,mBAA2B,KAAA;EACrD,IAAA,kBAAA,CAAmB,IAAI,CAAA,CAAA;EAEvB,IAAA,IAAInG,aAAQ,CAAAuD,UAAA,CAAK,mBAAmB,CAAC,CAAG,EAAA;EACtC,MAAA,OAAA;EAAA,KACF;EAEA,IAAM,MAAA,kBAAA,GAAqB4C,cAAQ,mBAAmB,CAAA,CAAA;EAEtD,IAAM,MAAA,gCAAA,GACJ,mCAAoC,CAAA,kBAAA,EAAoB,eAAe,CAAA,CAAA;EAEzE,IAAA,MAAM,+BAAkC,GAAA,mCAAA;EAAA,MACtC,kBAAA;EAAA,MACA,cAAA;EAAA,KACF,CAAA;EAEA,IAAI,IAAA,CAAC,+BAAmC,IAAA,CAAC,gCAAkC,EAAA;EACzE,MAAA,MAAM,SAAY,GAAA;EAAA,QAChB,KAAO,EAAA,mBAAA;EAAA,QACP,KAAO,EAAA,mBAAA;EAAA,OACT,CAAA;EACA,MAAA,iBAAA,CAAkB,CAAC,qBAA0B,KAAA;EAAA,QAC3C,GAAG,qBAAA;EAAA,QACH,SAAA;EAAA,OACD,CAAA,CAAA;EACD,MAAA,iBAAA,CAAkB,SAAS,CAAA,CAAA;EAC3B,MAAA,cAAA,CAAe,SAAS,CAAA,CAAA;EAAA,KAC1B;EACA,IAAA,uBAAA,CAAwB,kBAAkB,CAAA,CAAA;EAAA,GAC5C,CAAA;EAEA,EAAM,MAAA,YAAA,GAAe,CACnB,QAAA,EACA,WACG,KAAA;EACH,IAAA,MAAM,MAAS,GAAA,QAAA,CAAA;EAEf,IAAA,IAAI,qCAAU,UAAY,EAAA;EACxB,MAAA,kBAAA,CAAmB,IAAI,CAAA,CAAA;EAAA,KACzB;EAEA,IAAA,IAAI,UAAU,IAAM,EAAA;EAClB,MAAA,OAAA;EAAA,KACF;EAEA,IAAI,IAAA,gBAAA,CAAiB,MAAM,CAAG,EAAA;EAC5B,MAAA,uBAAA,CAAwB,oBAAoB,CAAA,CAAA;EAAA,KACvC,MAAA;EACL,MAAA,uBAAA,CAAwB,kBAAkB,CAAA,CAAA;EAAA,KAC5C;EACA,IAAI,IAAA,MAAA,CAAO,UAAU,qBAAuB,EAAA;EAC1C,MAAA,iBAAA,CAAkB,MAAM,CAAA,CAAA;EACxB,MAAA,cAAA,CAAe,MAAM,CAAA,CAAA;EAAA,KACvB;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,eAAkB,GAAAoB,aAAA;EAAA,IACtB,MAAmB8J,WAAO,CAAAvV,UAAA,CAAK,OAAO,CAAA,EAAG,CAAE,GAAG,eAAA,EAAiB,GAAG,cAAe,CAAC,CAAA;EAAA,IAClF,CAAE,iBAAiB,cAAe,CAAA;EAAA,GACpC,CAAA;EAEA,EAAA,MAAM,aAAmD,GAAA;EAAA,IACvDiB,qCACK,cADL,CAAA,EAAA;EAAA,MAEE,sBAAO,KAAA,CAAA,aAAA,CAAA0B,UAAA,EAAA,EAAK,EAAK,EAAA0S,eAAA,EAAY,OAAM,OAAQ,EAAA,CAAA;EAAA,KAC7C,CAAA;EAAA,IACA,GAAG,eAAA;EAAA,GACL,CAAA;EAEA,EAAA5V,eAAA,CAAU,MAAM;EA7MlB,IAAA6I,IAAAA,GAAAA,CAAAA;EA8MI,IAAM,MAAA,iBAAA,GAAA,CACJA,GAAA,GAAA,eAAA,CAAgB,IAAK,CAAA,CAAC,MAAW,KAAA,MAAA,CAAO,KAAU,KAAA,KAAK,CAAvD,KAAA,IAAA,GAAAA,GAA4D,GAAA,IAAA,CAAA;EAC9D,IAAI,IAAA,CAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAgB,KAAU,OAAA,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAmB,KAAO,CAAA,EAAA;EACtD,MAAA,iBAAA,CAAkB,iBAAiB,CAAA,CAAA;EAAA,KACrC;EAAA,GACC,EAAA,CAAE,KAAO,EAAA,eAAgB,CAAC,CAAA,CAAA;EAE7B,EACE,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC1C,SAAA;EAAA,IAAA;EAAA,MACC,GAAA;EAAA,MACA,CAAE,EAAA,MAAA;EAAA,MACF,YAAa,EAAA,MAAA;EAAA,KAAA;EAAA,IAEX,eACA,oBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,YAAA;EAAA,MAAA;EAAA,QACC,KAAQ,EAAA,kBAAA;EAAA,QACR,iBAAoB,EAAA,IAAA;EAAA,QACpB,QAAA,EAAW,CAAC,CAAM,KAAA;EAChB,UAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;EAAA,SACzB;EAAA,QACA,YAAe,EAAA,KAAA;EAAA,QACf,UAAW,MAAM;EACf,UAAA,qBAAA,CAAsB,EAAE,CAAA,CAAA;EACxB,UAAA,kBAAA,CAAmB,KAAK,CAAA,CAAA;EAAA,SAC1B;EAAA,QACA,QAAA,EAAW,CAAC,CAAM,KAAA;EAChB,UAAA,kBAAA,CAAmB,CAAM,CAAA,CAAA;EACzB,UAAA,kBAAA,CAAmB,KAAK,CAAA,CAAA;EAAA,SAC1B;EAAA,QACA,OAAQ,EAAA,OAAA;EAAA,QACR,EAAK,EAAA;EAAA,UACH,QAAU,EAAA,MAAA;EAAA,UACV,KAAO,EAAA,MAAA;EAAA,SACT;EAAA,OAAA;EAAA,KACF;EAAA,IAEA,CAAC,eACD,oBAAA,KAAA,CAAA,aAAA;EAAA,MAACF,iCAAA;EAAA,MAAAhF,gBAAA,CAAA;EAAA,QAEC,aAAA;EAAA,QACA,YAAA,EAAeO,qCACV,kBADU,CAAA,EAAA;EAAA,UAEb,SAAW,EAAA,CAAC,QAAc,KAAAA,eAAA,CAAAP,gBAAA,CAAA,EAAA,EACrB,QADqB,CAAA,EAAA;EAAA,YAExB,KAAO,EAAA,MAAA;EAAA,WACT,CAAA;EAAA,UACA,MAAA,EAAQ,CAAC,QAAU,EAAA,EAAE,YAAkB,KAAAA,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EAClC,WACC,UAAc,IAAA;EAAA,YAChB,KAAO,EAAA,OAAA;EAAA,WACT,CAAA;EAAA,SAEJ,CAAA;EAAA,QACA,YAAa,mBAA6C,EAAA;EAAA,QAC1D,OAAU,EAAA,aAAA;EAAA,QACV,kBAAmB,QAAS,CAAA,IAAA;EAAA,QAC5B,MAAS,EAAA,EAAE,UAAY,EAAA,CAAC,IAAU,KAAAO,eAAA,CAAAP,gBAAA,CAAA,EAAA,EAAK,IAAL,CAAA,EAAA,EAAW,MAAQ,EAAAsS,WAAA,CAAM,QAAS,CAAA,OAAA,EAAW,CAAA,EAAA;EAAA,QAC/E,KAAQ,EAAA,cAAA;EAAA,QACR,QAAW,EAAA,YAAA;EAAA,QACX,OAAU,EAAA,KAAA;EAAA,QACV,cAAA,EAAiB,CAAC,CAAM,KAAA;EACtB,UAAA,kBAAA,CAAmB,IAAI,CAAA,CAAA;EACvB,UAAA,qBAAA,CAAsB,CAAC,CAAA,CAAA;EAAA,SACzB;EAAA,QACA,WAAc,EAAA,oBAAA;EAAA,QACd,cAAiB,EAAA,IAAA;EAAA,QACjB,OAAA;EAAA,OACM,EAAA,SAAA,CAAA;EAAA,KAIR;EAAA,GAEJ,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5Qa,QAAA,WAAA,GAAc,CAAC,EAcJ,KAAA;EAdI,EAC1B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,QAAA;EAAA,IACA,OAAA;EAAA,IACA,IAAA;EAAA,IACA,KAAO,EAAA,SAAA;EAAA,IACP,WAAA;EAAA,IACA,SAAA;EAAA,IACA,YAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,IACA,oBAAuB,GAAA,IAAA;EAAA,IACvB,GAAM,GAAA,QAAA;EAAA,IACN,GAAM,GAAA,CAAA,QAAA;EAAA,GAzBR,GAa4B,EAavB,EAAA,IAAA,GAAAvN,WAAA,CAbuB,EAavB,EAAA;EAAA,IAZH,UAAA;EAAA,IACA,SAAA;EAAA,IACA,MAAA;EAAA,IACA,OAAA;EAAA,IACA,aAAA;EAAA,IACA,WAAA;EAAA,IACA,cAAA;EAAA,IACA,YAAA;EAAA,IACA,YAAA;EAAA,IACA,sBAAA;EAAA,IACA,KAAA;EAAA,IACA,KAAA;EAAA,GAAA,CAAA,CAAA;EAzBF,EAAA,IAAA6C,KAAAgN,GAAA,EAAA,EAAA,CAAA;EA4BE,EAAA,MAAM,EAAE,MAAA,EAAQ,QAAU,EAAA,OAAA,KAAYzM,mBAAc,EAAA,CAAA;EACpD,EAAA,MAAM,CAAE,eAAiB,EAAA,kBAAmB,CAAI,GAAArJ,cAAA,CAAS,uCAAW,KAAK,CAAA,CAAA;EACzE,EAAA,MAAM,CAAE,iBAAmB,EAAA,oBAAqB,CAAI,GAAAA,cAAA,CAAS,uCAAW,MAAM,CAAA,CAAA;EAC9E,EAAA,MAAM,CAAE,iBAAA,EAAmB,oBAAqB,CAAA,GAAIA,eAAS,KAAK,CAAA,CAAA;EAElE,EAAM,MAAA,sBAAA,GAAyB,QAAO,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,KAAU,CAAA,KAAA,WAAA,CAAA;EAC3D,EAAM,MAAA,UAAA,GAAa,sBAAyB,GAAA,SAAA,CAAU,KAAQ,GAAA,eAAA,CAAA;EAE9D,EAAM,MAAA,kBAAA,GAAqB,QAAO,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAW,MAAW,CAAA,KAAA,WAAA,CAAA;EACxD,EAAM,MAAA,YAAA,GAAe,kBAAqB,GAAA,SAAA,CAAU,MAAS,GAAA,iBAAA,CAAA;EAE7D,EAAA,MAAM,YAAYI,YAAY,EAAA,CAAA;EAC9B,EAAA,MAAM,YAAYA,YAAY,EAAA,CAAA;EAE9B,EAAM,MAAA,WAAA,GAAc,CAAC,MAAA,EAA4B,KAAqC,KAAA;EACpF,IAAM,MAAA,cAAA,GAAiB,MAAU,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAQ,CAAC,CAAA,CAAA;EAE1C,IAAA,OAAQ0H,QAAG,CAAA,MAAA,EAAQ,KAAK,CAAA,GACpB,EAAE,KAAO,EAAA,MAAA,CAAO,KAAK,CAAA,EAAG,MAAQ,EAAA,cAAA,EAChC,GAAA,EAAE,QAAQ,cAAe,EAAA,CAAA;EAAA,GAC/B,CAAA;EAEA,EAAM,MAAA,iBAAA,GAAoB,CAAC,aAA2B,KAAA;EACpD,IAAM,MAAA,QAAA,GAAW,WAAY,CAAA,YAAA,EAAc,aAAa,CAAA,CAAA;EAExD,IAAA,kBAAA,CAAmB,SAAS,KAAK,CAAA,CAAA;EACjC,IAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,QAAA,CAAA,CAAA;EAAA,GACb,CAAA;EAEA,EAAA,MAAM,oBAAoB,MAAM;EAC9B,IAAA,IAAI,UAAU,OAAS,EAAA;EACrB,MAAA,SAAA,CAAU,QAAQ,KAAM,EAAA,CAAA;EACxB,MAAA,oBAAA,CAAqB,KAAK,CAAA,CAAA;EAAA,KAC5B;EAEA,IAAQ,OAAA,EAAA,CAAA;EAAA,GACV,CAAA;EAEA,EAAM,MAAA,kBAAA,GAAqB,CAAC,cAAmD,KAAA;EAC7E,IAAA,IAAI,cAAgB,EAAA;EAClB,MAAA,oBAAA,CAAqB,cAAc,CAAA,CAAA;EACnC,MAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,WAAA,CAAY,gBAAgB,UAAU,CAAA,CAAA,CAAA;EAEjD,MAAA,IAAI,MAAQ,EAAA;EACV,QAAkB,iBAAA,EAAA,CAAA;EAAA,OACpB;EAAA,KACF;EAAA,GACF,CAAA;EAEA,EAAA,MAAM,qBAAqB,MAAM;EAC/B,IAAA,IAAI,CAAC,MAAQ,EAAA;EACX,MAAA,oBAAA,CAAqB,IAAI,CAAA,CAAA;EAAA,KAC3B;EAEA,IAAS,QAAA,EAAA,CAAA;EAAA,GACX,CAAA;EAEA,EAAA7H,eAAA,CAAU,MAAM;EACd,IAAA,IAAI,iBAAmB,EAAA;EACrB,MAAA,SAAA,CAAU,QAAQ,KAAM,EAAA,CAAA;EAAA,KAC1B;EAAA,GACF,EAAG,CAAE,iBAAkB,CAAC,CAAA,CAAA;EAExB,EAAAA,eAAA,CAAU,MAAM;EACd,IAAA,MAAM,uBAAuB,CAAC,YAAA,CAAA;EAC9B,IAAA,MAAM,mBAAsB,GAAA,CAAC6H,QAAG,CAAA,MAAA,EAAQ,UAAU,CAAK,IAAA,oBAAA,CAAA;EAEvD,IAAA,MAAM,MAAS,GAAA,oBAAA,GAAuB,OAAQ,CAAA,CAAC,CAAI,GAAA,YAAA,CAAA;EACnD,IAAA,MAAM,QAAQ,mBAAsB,GAAA,KAAA,CAAM,GAAK,EAAA,GAAA,EAAK,CAAC,CAAI,GAAA,UAAA,CAAA;EAEzD,IAAA,IAAI,oBAAsB,EAAA;EACxB,MAAA,oBAAA,CAAqB,MAAM,CAAA,CAAA;EAAA,KAC7B;EAEA,IAAA,IAAI,mBAAqB,EAAA;EACvB,MAAA,kBAAA,CAAmB,KAAK,CAAA,CAAA;EAAA,KAC1B;EAEA,IAAA,IAAI,wBAAwB,mBAAqB,EAAA;EAC/C,MAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,WAAA,CAAY,QAAQ,KAAK,CAAA,CAAA,CAAA;EAAA,KACtC;EAAA,GACC,EAAA,CAAE,UAAY,EAAA,oBAAqB,CAAC,CAAA,CAAA;EAEvC,EAAM,MAAA,WAAA,GAAA,CAAegO,OAAAhN,GAAA,GAAA,SAAA,CAAU,YAAV,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAmB,WAAnB,KAAA,IAAA,GAAAgN,GAAkC,GAAA,CAAA,CAAA;EAEvD,EAAA,2CACGnJ,gBACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,oBAAA;EAAA,IAAA,aAAA,CAAAzL,gBAAA,CAAA;EAAA,MACC,KAAM,EAAA,MAAA;EAAA,MACN,QAAW,EAAA,CAAC,MAAW,KAAA,iBAAA,CAAkB,OAAO,UAAU,CAAA;EAAA,MAC1D,KAAQ,EAAA,UAAA;EAAA,MACR,WAAA;EAAA,MACA,IAAA;EAAA,MACA,gBAAmB,EAAA,SAAA;EAAA,MACnB,MAAS,EAAA,YAAA;EAAA,MACT,QAAW,EAAA,UAAA;EAAA,MACX,QAAW,EAAA,UAAA;EAAA,MACX,GAAA;EAAA,MACA,GAAA;EAAA,KAAA,EACK,IAZN,CAAA,EAAA;EAAA,MAaC,EAAK,EAAA,CAAA,EAAG,WAAe,IAAA,CAAA,GAAI,cAAc,EAAK,GAAA,CAAA,CAAA,EAAA,CAAA;EAAA,KAAA,CAAA;EAAA,GAEhD,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC0L,uBAAA;EAAA,IAAA;EAAA,MACC,KAAM,EAAA,MAAA;EAAA,MACN,OAAQ,EAAA,MAAA;EAAA,MACR,cAAe,EAAA,UAAA;EAAA,MACf,OAAU,EAAA,CAAA;EAAA,KAAA;EAAA,oBAEV,KAAA,CAAA,aAAA;EAAA,MAAClL,YAAA;EAAA,MAAA;EAAA,QACC,GAAM,EAAA,SAAA;EAAA,QACN,UAAA;EAAA,QACA,OAAU,EAAA,kBAAA;EAAA,QACV,UAAW,EAAA,GAAA;EAAA,QACX,MAAO,EAAA,MAAA;EAAA,OAAA;EAAA,MAEL,CAAA,EAAA,GAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,UAAd,IAAuB,GAAA,EAAA,GAAA,EAAA;EAAA,KAC3B;EAAA,qBAED,KAAA,CAAA,aAAA,CAAA0E,SAAA,EAAA,EAAI,QAAS,EAAA,UAAA,EAAW,OAAM,MAC7B,EAAA,kBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,MAAA;EAAA,IAAA;EAAA,MACC,GAAM,EAAA,SAAA;EAAA,MACN,YAAe,EAAA;EAAA,QAAE,SAAW,EAAA,CAAC,QAAc,KAAA,aAAA,CAAAlF,gBAAA,CAAA,EAAA,EACtC,QADsC,CAAA,EAAA;EAAA,UAEzC,QAAU,EAAA,UAAA;EAAA,UACV,UAAY,EAAA,QAAA;EAAA,UACZ,KAAO,EAAA,GAAA;EAAA,SACT,CAAA;EAAA,QACA,KAAO,EAAA,CAAC,QAAc,KAAA,aAAA,CAAAA,gBAAA,CAAA,EAAA,EACjB,QADiB,CAAA,EAAA;EAAA,UAEpB,aAAe,EAAA,MAAA;EAAA,UACf,KAAO,EAAA,aAAA;EAAA,UACP,OAAA,EAAS,oBAAoB,OAAU,GAAA,MAAA;EAAA,SACzC,CAAA;EAAA,QACA,IAAM,EAAA,CAAC,QAAc,KAAA,aAAA,CAAAA,gBAAA,CAAA,EAAA,EAChB,QADgB,CAAA,EAAA;EAAA,UAEnB,KAAO,EAAA,MAAA;EAAA,UACP,KAAO,EAAA,GAAA;EAAA,SACT,CAAA;EAAA,OAAG;EAAA,MACH,OAAA;EAAA,MACA,KAAA,EAAQ,YAAe,GAAA,YAAA,CAAa,KAAQ,GAAA,KAAA,CAAA;EAAA,MAC5C,QAAW,EAAA,kBAAA;EAAA,MACX,MAAS,EAAA,iBAAA;EAAA,MACT,UAAa,EAAA,MAAA;EAAA,KAAA;EAAA,GAEjB,CACF,CAAA,CAAA;EAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3Ga,QAAA,gBAAA,GAAmB,CAAC,EAQP,KAAA;EARO,EAC/B,IAAA,EAAA,GAAA,EAAA,EAAA;EAAA,IAAA,IAAA;EAAA,IACA,UAAA;EAAA,IACA,SAAY,GAAA,QAAA;EAAA,IACZ,KAAA;EAAA,IACA,QAAA;EAAA,IACA,QAAU,EAAA,gBAAA;EAAA,GA1EZ,GAoEiC,EAO5B,EAAA,IAAA,GAAA,SAAA,CAP4B,EAO5B,EAAA;EAAA,IANH,MAAA;EAAA,IACA,YAAA;EAAA,IACA,WAAA;EAAA,IACA,OAAA;EAAA,IACA,UAAA;EAAA,IACA,UAAA;EAAA,GAAA,CAAA,CAAA;EAGA,EAAA,uBAAA,KAAA,CAAA,aAAA;EAAA,IAAC,KAAA;EAAA,IAAA;EAAA,MACC,IAAA;EAAA,MACA,KAAA;EAAA,MACA,SAAA;EAAA,MACA,UAAA;EAAA,MACA,QAAA;EAAA,KAAA;EAAA,IAEE,CAAC,EAAE,KAAO,EAAA,QAAA,EACV,qBAAA,KAAA,CAAA,aAAA;EAAA,MAAC,WAAA;EAAA,MAAA,cAAA,CAAA;EAAA,QACC,aAAY,EAAA,sBAAA;EAAA,QACZ,YAAa,EAAA,KAAA;EAAA,QACb,QAAA,EAAW,CAAC,gBAAqB,KAAA;EAC/B,UAAA,QAAA,CAAS,gBAAgB,CAAA,CAAA;EACzB,UAAmB,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,gBAAA,CAAA,CAAA;EAAA,SACrB;EAAA,QACA,KAAA;EAAA,OACK,EAAA,IAAA,CAAA;EAAA,KACP;EAAA,GAEJ,CAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"northlight.cjs","sources":["../../lib/components/accordion/accordion.tsx","../../lib/components/accordion/accordion-button.tsx","../../lib/components/accordion/accordion-panel.tsx","../../lib/components/accordion/accordion-item.tsx","../../lib/hooks/use-debounce/index.ts","../../lib/hooks/use-loading-message/index.ts","../../lib/hooks/use-scroll-to-bottom/utils/smooth-scroll-to-bottom.ts","../../lib/hooks/use-scroll-to-bottom/index.ts","../../lib/hooks/use-arrow-focus/index.ts","../../lib/hooks/use-select-callbacks/use-select-callbacks.ts","../../lib/hooks/use-outside-rect-click/index.ts","../../lib/hooks/use-screen-size/index.ts","../../lib/hooks/use-did-update-effect/index.ts","../../lib/utils/luminosity/index.ts","../../lib/utils/get-contrast-color/index.ts","../../lib/utils/ring/index.ts","../../lib/utils/highlight/index.ts","../../lib/utils/get-shades/index.ts","../../lib/utils/get-initials/index.ts","../../lib/utils/get-field-error/index.ts","../../lib/utils/get-children-with-props/pass-props-to-child.ts","../../lib/utils/get-children-with-props/index.ts","../../lib/utils/add-alpha/index.ts","../../lib/utils/debounce/create-debounce-function-instance.ts","../../lib/utils/use-current-theme/index.ts","../../lib/utils/clamp/index.ts","../../lib/utils/get-consistent-random-color-from-string/index.ts","../../lib/hooks/use-resize-width/index.ts","../../lib/theme/components/select/custom-select.ts","../../lib/components/tags-input/tags-input-styles.ts","../../lib/theme/global/scrollbar.ts","../../lib/theme/components/breadcrumb/index.ts","../../lib/theme/components/button/index.ts","../../lib/theme/components/blinker/index.ts","../../lib/theme/components/checkbox/index.ts","../../lib/theme/components/input/index.ts","../../lib/theme/components/pin-input/index.ts","../../lib/theme/components/select/index.ts","../../lib/theme/components/radio/index.ts","../../lib/theme/components/tabs/index.ts","../../lib/theme/components/textarea/index.ts","../../lib/theme/components/link/index.ts","../../lib/theme/components/switch/index.ts","../../lib/theme/components/tag/index.ts","../../lib/theme/components/alert/index.ts","../../lib/theme/components/number-input/index.ts","../../lib/theme/components/notification-icon-button/index.ts","../../lib/theme/components/calendar/index.ts","../../lib/theme/components/drag-and-drop/index.ts","../../lib/theme/components/date-picker/index.ts","../../lib/theme/components/flip-button/index.ts","../../lib/theme/components/spinner/index.ts","../../lib/theme/components/avatar/get-avatar-bg-color.ts","../../lib/theme/components/avatar/index.ts","../../lib/theme/components/close-button/index.ts","../../lib/theme/components/modal/index.ts","../../lib/theme/components/tooltip/index.ts","../../lib/theme/components/icon/index.ts","../../lib/theme/components/clipboard-input/index.ts","../../lib/theme/components/color-picker/index.ts","../../lib/theme/components/steps/step/index.ts","../../lib/theme/components/steps/step-list/index.ts","../../lib/theme/components/typography/headings/h1.ts","../../lib/theme/components/typography/headings/h2.ts","../../lib/theme/components/typography/headings/h3.ts","../../lib/theme/components/typography/headings/h4.ts","../../lib/theme/components/typography/headings/h5.ts","../../lib/theme/components/typography/headings/h6.ts","../../lib/theme/components/typography/stylized/blockquote.ts","../../lib/theme/components/typography/stylized/tiny.ts","../../lib/theme/components/typography/stylized/capitalized.ts","../../lib/theme/components/typography/stylized/lead.ts","../../lib/theme/components/typography/stylized/small.ts","../../lib/theme/components/typography/body/p.ts","../../lib/theme/components/typography/labels/label.ts","../../lib/theme/components/typography/numvals/numval.ts","../../lib/theme/components/split-pane/index.ts","../../lib/theme/components/carousel/index.ts","../../lib/theme/components/editable-text/index.ts","../../lib/theme/components/toolbox/index.ts","../../lib/theme/components/file-picker/index.ts","../../lib/theme/components/table/index.ts","../../lib/theme/components/menu/index.ts","../../lib/theme/components/badge/index.ts","../../lib/theme/components/popover/index.ts","../../lib/theme/skins/webapp/index.ts","../../lib/theme/skins/tott/index.ts","../../lib/theme/index.ts","../../lib/components/tags-input/tags-input.tsx","../../lib/components/organization-logo/organization-logo.tsx","../../lib/components/alert/alert.tsx","../../lib/components/aspect-ratio/aspect-ratio.tsx","../../lib/components/icon/icon.tsx","../../lib/components/avatar/avatar-badge.tsx","../../lib/components/avatar/avatar.tsx","../../lib/components/typography/headings/h1.tsx","../../lib/components/typography/headings/h2.tsx","../../lib/components/typography/headings/h3.tsx","../../lib/components/typography/headings/h4.tsx","../../lib/components/typography/headings/h5.tsx","../../lib/components/typography/headings/h6.tsx","../../lib/components/typography/body/p.tsx","../../lib/components/typography/stylized/blockquote.tsx","../../lib/components/typography/stylized/capitalized.tsx","../../lib/components/typography/stylized/lead.tsx","../../lib/components/typography/stylized/small.tsx","../../lib/components/typography/stylized/tiny.tsx","../../lib/components/typography/labels/label.tsx","../../lib/components/typography/numvals/numval.tsx","../../lib/components/overflow-group/overflow-group.tsx","../../lib/components/overflow-group/use-overflow-group.ts","../../lib/components/avatar/avatar-group.tsx","../../lib/components/badge/badge.tsx","../../lib/components/blinker/blinker.tsx","../../lib/components/spinner/spinner.tsx","../../lib/components/button/button.tsx","../../lib/components/checkbox/checkbox.tsx","../../lib/components/form/trim-form-values.ts","../../lib/components/form/form.tsx","../../lib/components/form-control/form-label.tsx","../../lib/components/form/field.tsx","../../lib/components/form/use-set-value-refreshed.ts","../../lib/components/checkbox/checkbox-field.tsx","../../lib/components/checkbox/checkbox-group-field.tsx","../../lib/components/icon-button/icon-button.tsx","../../lib/components/color-picker/constants.ts","../../lib/components/color-picker/color-button.tsx","../../lib/components/popover/popover.tsx","../../lib/components/color-picker/colors-expand-button.tsx","../../lib/components/portal/render-in-portal.tsx","../../lib/components/color-picker/color-picker.tsx","../../lib/components/color-picker/color-picker-field.tsx","../../lib/components/flip-button/utils.ts","../../lib/components/flip-button/flip-button.tsx","../../lib/components/flip-button/flip-button-group.tsx","../../lib/components/flip-button/flip-button-group-field.tsx","../../lib/components/resize-handle/resize-handle.tsx","../../lib/components/date-picker/components/date-field/trigger.tsx","../../lib/components/date-picker/components/date-field/date-segment.tsx","../../lib/components/date-picker/components/date-field/utils.ts","../../lib/components/date-picker/components/date-field/date-field.tsx","../../lib/components/date-picker/components/date-field/styled-field.tsx","../../lib/components/table/table.tsx","../../lib/components/date-picker/components/calendar/components/calendar-cell.tsx","../../lib/components/date-picker/components/calendar/components/day-labels.tsx","../../lib/components/date-picker/components/calendar/components/utils.ts","../../lib/components/date-picker/components/calendar/components/calendar-grid.tsx","../../lib/components/date-picker/components/calendar/components/month-button.tsx","../../lib/components/date-picker/components/calendar/constants.ts","../../lib/components/date-picker/components/calendar/date-select/month-select.tsx","../../lib/components/date-picker/components/calendar/date-select/year-select.tsx","../../lib/components/date-picker/components/calendar/date-select/utils.ts","../../lib/components/date-picker/components/calendar/date-select/year-select-calendar.tsx","../../lib/components/date-picker/components/calendar/date-select/year-select-range-calendar.tsx","../../lib/components/date-picker/components/calendar/components/get-week-number-start-of-month.ts","../../lib/components/date-picker/components/calendar/components/range-cell.tsx","../../lib/components/date-picker/components/calendar/components/standalone-calendar-grid.tsx","../../lib/components/date-picker/components/calendar/calendar.tsx","../../lib/components/date-picker/date-picker/date-picker-locale-wrapper.tsx","../../lib/components/date-picker/date-picker/date-picker.tsx","../../lib/components/clickable/clickable.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/date-button.tsx","../../lib/components/date-picker/components/calendar/quick-navigation/utils.ts","../../lib/components/date-picker/components/calendar/quick-navigation/get-quick-select-options.ts","../../lib/components/date-picker/components/calendar/quick-navigation/quick-select.tsx","../../lib/components/date-picker/components/calendar/range-calendar.tsx","../../lib/components/date-picker/date-picker-field/utils.ts","../../lib/components/date-picker/date-picker/date-range-picker.tsx","../../lib/internal-components/input-group-wrapper/input-group-wrapper.tsx","../../lib/components/date-picker/date-picker-field/date-picker-field.tsx","../../lib/components/date-picker/date-picker-field/date-range-picker-field.tsx","../../lib/components/types/tooltipIconMap/index.ts","../../lib/components/tooltip/tooltip.tsx","../../lib/components/intent-button/timeout-progress-circle.tsx","../../lib/components/intent-button/intent-button.tsx","../../lib/components/transitions/constants.ts","../../lib/components/transitions/utils.ts","../../lib/components/transitions/fade.tsx","../../lib/components/transitions/scale-fade.tsx","../../lib/components/transitions/slide.tsx","../../lib/components/transitions/slide-fade.tsx","../../lib/components/transitions/collapse.tsx","../../lib/components/toolbox/toolbox.tsx","../../lib/components/toolbox/toolbox-header.tsx","../../lib/components/toolbox/toolbox-content.tsx","../../lib/components/toolbox/toolbox-footer.tsx","../../lib/components/radio/radio.tsx","../../lib/components/radio/radio-group.tsx","../../lib/components/radio/radio-group-field.tsx","../../lib/components/carousel/constants.ts","../../lib/components/carousel/carousel-item.tsx","../../lib/components/carousel/carousel-arrow.tsx","../../lib/components/carousel/carousel.tsx","../../lib/components/search-bar/styles.ts","../../lib/components/search-bar/get-components.tsx","../../lib/components/search-bar/search-bar.tsx","../../lib/components/search-bar/search-bar-field.tsx","../../lib/components/drag-and-drop/drag-and-drop.tsx","../../lib/components/tag/tag.tsx","../../lib/components/tag/overflow-indicator.tsx","../../lib/components/tag/tag-group.tsx","../../lib/components/drag-and-drop/drag-item.tsx","../../lib/components/drag-and-drop/draggable.tsx","../../lib/components/drag-and-drop/droppable.tsx","../../lib/components/drag-and-drop/sortable.tsx","../../lib/components/drag-and-drop/sortable-item.tsx","../../lib/components/drag-and-drop/drag-handle.tsx","../../lib/components/drag-and-drop/drop-zone.tsx","../../lib/components/drag-and-drop/multi-sort.tsx","../../lib/components/drag-and-drop/sortable-list.tsx","../../lib/components/drag-and-drop/sortable-container.tsx","../../lib/components/fast-list/fast-list.tsx","../../lib/components/fast-grid/fast-grid.tsx","../../lib/components/editable-text/editable-controls.tsx","../../lib/components/editable-text/editable-text.tsx","../../lib/components/modal/modal-base.tsx","../../lib/components/modal/modal.tsx","../../lib/components/modal/modal-body.tsx","../../lib/components/file-picker/file-editor-modal.tsx","../../lib/components/file-picker/confirm-delete-modal.tsx","../../lib/components/progress/constants.ts","../../lib/components/progress/progress-bar.tsx","../../lib/components/progress/utils.ts","../../lib/components/progress/loading-bar.tsx","../../lib/components/file-picker/constants.ts","../../lib/components/file-picker/utils.ts","../../lib/components/file-picker/file-icon-button.tsx","../../lib/components/file-picker/file-picker.tsx","../../lib/components/file-picker/file-picker-field.tsx","../../lib/components/file-picker/multi-file-uploader.tsx","../../lib/components/file-picker/file-item.tsx","../../lib/components/file-picker/multi-file-list.tsx","../../lib/components/file-picker/multi-file-picker.tsx","../../lib/components/file-picker/multi-file-picker-field.tsx","../../lib/components/mediatool-theme-provider/mediatool-theme-provider.tsx","../../lib/components/menu/menu.tsx","../../lib/components/number-input/number-input-stepper.tsx","../../lib/components/number-input/advanced-parse-float.ts","../../lib/components/number-input/number-input.tsx","../../lib/components/number-input/number-input-field.tsx","../../lib/components/notification-icon-button/notification-icon-button.tsx","../../lib/components/pin-input/pin-input.tsx","../../lib/components/select/get-matching-value.ts","../../lib/components/select/select.tsx","../../lib/components/select/select-field.tsx","../../lib/components/switch/switch.tsx","../../lib/components/switch/switch-field.tsx","../../lib/components/tabs/tab-panel.tsx","../../lib/components/tabs/tabs.tsx","../../lib/components/textarea/textarea.tsx","../../lib/components/textarea/textarea-field.tsx","../../lib/components/text-field/round-to-precision.ts","../../lib/components/text-field/formatted-number-input.tsx","../../lib/components/text-field/formatted-number-input-field.tsx","../../lib/components/text-field/masked-text-input.tsx","../../lib/components/text-field/text-field.tsx","../../lib/components/types/toastIconMap/index.ts","../../lib/components/toast/toast.tsx","../../lib/components/toast/use-toast.tsx","../../lib/components/status-pin/pin-variant-map.ts","../../lib/components/status-pin/pin-size-map.ts","../../lib/components/status-pin/status-pin.tsx","../../lib/components/async-error/async-error.tsx","../../lib/components/steps/step-panel.tsx","../../lib/components/steps/steps.tsx","../../lib/components/steps/step.tsx","../../lib/components/steps/step-list.tsx","../../lib/components/clipboard-input/clipboard-input.tsx","../../lib/components/split-pane/split-pane.tsx","../../lib/components/split-pane/pane-item.tsx","../../lib/components/split-pane/pane-divider.tsx","../../lib/components/step-stack/step-stack.tsx","../../lib/components/createable-select-dropdown/custom-components.tsx","../../lib/components/createable-select-dropdown/createable-select-dropdown.tsx","../../lib/components/combo-picker/combo-picker.tsx","../../lib/components/combo-picker/combo-picker-field.tsx"],"sourcesContent":["import React from 'react'\nimport { AccordionProps, Accordion as ChakraAccordion } from '@chakra-ui/react'\n\n/**\n * The wrapper that uses cloneElement to pass props to AccordionItem children.\n * @see {@link https::/northlight.dev/reference/accordion}\n *\n * @example\n * (?\n * <Accordion>\n <AccordionItem>\n <H2>\n <AccordionButton>\n <Box as=\"span\" flex='1' textAlign='left'>\n Section 1 title\n </Box>\n <AccordionIcon />\n </AccordionButton>\n </H2>\n <AccordionPanel pb={4}>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat.\n </AccordionPanel>\n </AccordionItem>\n\n <AccordionItem>\n <H2>\n <AccordionButton>\n <Box as=\"span\" flex='1' textAlign='left'>\n Section 2 title\n </Box>\n <AccordionIcon />\n </AccordionButton>\n </H2>\n <AccordionPanel pb={4}>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat.\n </AccordionPanel>\n </AccordionItem>\n</Accordion>\n * ?)\n */\nexport const Accordion = (props: AccordionProps) => (\n <ChakraAccordion { ...props } />\n)\n","import React from 'react'\nimport { AccordionButtonProps, AccordionButton as ChakraAccordionButton } from '@chakra-ui/react'\n\n/**\n * The button that toggles the expand/collapse state of the accordion item.\n * This button must be wrapped in an element with role heading.\n * @see Accordion\n * @see AcordionItem\n * @see {@link https://northlight.dev/reference/accordion-button}\n * @example\n * (Needs to be wrapped around AccordionItem and\n * Accordion context)\n * (?\n * <Accordion>\n * <AccordionItem>\n * <AccordionButton>Content</AccordionButton>\n * </AccordionItem>\n * </Accordion>\n * ?)\n */\nexport const AccordionButton = (props: AccordionButtonProps) => (\n <ChakraAccordionButton { ...props } />\n)\n","import React from 'react'\nimport {\n AccordionPanelProps,\n AccordionPanel as ChakraAccordionPanel,\n} from '@chakra-ui/react'\n\n/**\n * The container for the details to be revealed.\n * @see {@link htpts://northlight.dev/reference/accordion-panel}\n */\nexport const AccordionPanel = (props: AccordionPanelProps) => (\n <ChakraAccordionPanel { ...props } />\n)\n","import React from 'react'\nimport {\n AccordionItemProps,\n AccordionItem as ChakraAccordionItem,\n} from '@chakra-ui/react'\n\nexport const AccordionItem = (props: AccordionItemProps) => (\n <ChakraAccordionItem { ...props } />\n)\n","import { useEffect, useState } from 'react'\n\nexport const useDebounce = <T>(value: T, delay: number) => {\n const [ debouncedValue, setDebouncedValue ] = useState<T>(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n return () => {\n clearTimeout(handler)\n }\n }, [ value, delay ])\n\n return debouncedValue\n}\n","import { useState } from 'react'\nimport { useInterval } from '../use-interval'\n\nexport const useLoadingMessage = (prefix: string = '', delay: number = 300) => {\n const [ dots, setDots ] = useState('.')\n\n useInterval(() => {\n if (dots.length === 3) {\n setDots('.')\n } else {\n setDots(`${dots}.`)\n }\n }, delay)\n return `${prefix}${dots}`\n}\n","export const smoothScrollToBottom = (div: HTMLDivElement) => {\n const totalSteps = 50\n let currentStep = 0\n const targetScrollTop = div.scrollHeight - div.clientHeight\n const originalScrollTop = div.scrollTop\n const scrollInterval = setInterval(() => {\n if (currentStep >= totalSteps) {\n clearInterval(scrollInterval)\n } else {\n currentStep += 1\n const scrollProgress = currentStep / totalSteps\n const easing = 1 - (1 - scrollProgress) * (1 - scrollProgress) // quadratic ease out\n // eslint-disable-next-line no-param-reassign\n div.scrollTop = originalScrollTop + ((targetScrollTop - originalScrollTop) * easing)\n }\n }, 20)\n}\n","import { RefObject, useEffect } from 'react'\nimport { smoothScrollToBottom } from './utils/smooth-scroll-to-bottom'\n\nexport interface Message {\n content: string\n role: string\n type?: string\n data?: string\n}\n\nexport const useScrollToBottom = (scrollView: RefObject<HTMLDivElement>, messages: Message[]) => {\n useEffect(() => {\n const div = scrollView.current\n if (div) {\n smoothScrollToBottom(div)\n }\n }, [ messages ])\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 = <\n T extends BasicOption,\n K extends boolean = false\n>({\n onChange,\n onAdd,\n onRemove,\n isMulti = false,\n value,\n }: UseSelectCallbacksProps<T, K>) => {\n const items = useRef<MultiValue<T> | SingleValue<T>>(value)\n\n const handleChange = (\n val: K extends true ? MultiValue<T> : SingleValue<T>,\n event: ActionMeta<T>\n ) => {\n onChange(val, event)\n if (!isMulti && !isNil(val)) {\n onAdd((val as T).value)\n } else if (\n !isNil(val) &&\n (val as T[]).length > (items.current as T[]).length\n ) {\n onAdd(last(val as T[])?.value)\n } else {\n const removedItems = map(\n prop('value'),\n difference(\n isMulti ? (items.current as T[]) : ([ items.current ] as T[]),\n val as T[]\n )\n )\n onRemove(removedItems.length === 1 ? removedItems[0] : removedItems)\n }\n items.current = val\n }\n return handleChange\n}\n","import { isNil } from 'ramda'\nimport { MutableRefObject, useEffect, useRef } from 'react'\n\nconst isBetween = (point: number, min: number, max: number) => (point >= min && point <= max)\n\nexport const useOutsideRectClick =\n(ref: MutableRefObject<HTMLElement | null>, callback: (event: MouseEvent | TouchEvent) => void) => {\n const stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n })\n\n const state = stateRef.current\n\n useEffect(() => {\n const handleMouseClick = (event: MouseEvent | TouchEvent) => {\n let clientX\n let clientY\n\n if (event instanceof MouseEvent) {\n clientX = event.clientX\n clientY = event.clientY\n } else if (event instanceof TouchEvent && event.changedTouches[0]) {\n clientX = event.changedTouches[0].clientX\n clientY = event.changedTouches[0].clientY\n }\n\n if (isNil(clientX) || isNil(clientY)) return\n\n if (isNil(ref?.current)) return\n\n const {\n top,\n right,\n left,\n bottom,\n } = ref.current.getBoundingClientRect()\n\n const isInBound = isBetween(clientX, left, right) && isBetween(clientY, top, bottom)\n\n if (isInBound) return\n callback(event)\n }\n\n const onPointerDown: any = () => {\n state.isPointerDown = true\n }\n\n const onMouseUp: any = (event: MouseEvent) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false\n return\n }\n\n if (state.isPointerDown) {\n state.isPointerDown = false\n handleMouseClick(event)\n }\n }\n\n const onTouchEnd = (event: TouchEvent) => {\n state.ignoreEmulatedMouseEvents = true\n if (state.isPointerDown) {\n state.isPointerDown = false\n handleMouseClick(event)\n }\n }\n\n document.addEventListener('mousedown', onPointerDown, true)\n document.addEventListener('mouseup', onMouseUp, true)\n document.addEventListener('touchstart', onPointerDown, true)\n document.addEventListener('touchend', onTouchEnd, true)\n\n return () => {\n document.removeEventListener('mousedown', onPointerDown, true)\n document.removeEventListener('mouseup', onMouseUp, true)\n document.removeEventListener('touchstart', onPointerDown, true)\n document.removeEventListener('touchend', onTouchEnd, true)\n }\n }, [ callback ])\n}\n","import { useMediaQuery } from '../use-media-query'\n\nexport const useScreenSize = () => {\n const screenSizes = useMediaQuery([ '(min-width: 1280px)', '(min-width: 1024px)' ])\n if (screenSizes[0]) {\n return 'lg'\n }\n if (screenSizes[1]) {\n return 'md'\n }\n return 'sm'\n}\n","import { DependencyList, EffectCallback, useEffect, useRef } from 'react'\n\nexport const useDidUpdateEffect = (effect: EffectCallback, dependencies: DependencyList) => {\n const didMountRef = useRef(false)\n\n useEffect(() => {\n if (didMountRef.current) {\n effect()\n }\n didMountRef.current = true\n }, dependencies)\n}\n","export const luminosity = (hexcolor: string) => {\n let color = hexcolor\n\n if (color.slice(0, 1) === '#') {\n color = color.slice(1)\n }\n\n if (color.length === 3) {\n color = color\n .split('')\n .map((hex) => hex + hex)\n .join('')\n }\n\n const r = parseInt(color.substring(0, 2), 16)\n const g = parseInt(color.substring(2, 4), 16)\n const b = parseInt(color.substring(4, 6), 16)\n\n const brightness = (r * 299 + g * 587 + b * 114) / 1000\n return brightness\n}\n","import { useToken } from '@chakra-ui/system'\nimport { luminosity } from '../luminosity'\n\nexport const getContrastColor = (color: string) => {\n const colorTwo = useToken('colors', 'text.default')\n const colorOne = useToken('colors', 'text.inverted')\n const colorInHex = useToken('colors', color)\n\n const l1 = luminosity(colorOne)\n const l2 = luminosity(colorTwo)\n\n const threshold = (l1 + l2) / 2\n\n const brightColor = l1 > l2 ? colorOne : colorTwo\n const darkColor = l1 > l2 ? colorTwo : colorOne\n\n return luminosity(colorInHex) >= threshold ? darkColor : brightColor\n}\n","import { CSSObject } from '@emotion/react'\n\nexport const ring:CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n","import { CSSObject } from '@emotion/react'\n\nexport const highlight:CSSObject = {\n px: '1',\n py: '0.5',\n rounded: '6',\n bg: 'teal.100',\n fontWeight: 'bold',\n}\n","import { palette } from '@northlight/tokens'\nimport { Color, ColorGrade } from '../../types'\n\nexport const getShades = (startShade: number, endShade?: number) => {\n let start: number\n let end: number\n if (!endShade) {\n start = startShade\n end = startShade\n } else if (endShade > startShade) {\n start = startShade\n end = endShade\n } else {\n start = endShade\n end = startShade\n }\n\n return (\n Object.keys(palette).reduce((colors, color) => {\n if (color === 'mono') return colors\n return colors.concat(\n Object.keys(palette[color as Color])\n .filter((value) =>\n parseInt(value, 10) >= start\n && parseInt(value, 10) <= end\n )\n .map((shade) => palette[color as Color][shade as unknown as ColorGrade])\n )\n }, [] as string[])\n )\n}\n","export const getInitials = (name: string) => {\n const [ firstName, lastName ] = name.toUpperCase().split(' ')\n return firstName && lastName\n ? `${firstName[0]}${lastName[0]}`\n : firstName[0]\n}\n","import { path, replace, split } from 'ramda'\nimport { FieldErrorsImpl, FieldValues } from 'react-hook-form'\nimport { FieldErrorType } from '../../components/form/types'\n\nexport function getFieldError<T extends FieldValues> (name: string, errors: FieldErrorsImpl<T>) {\n const nameWithoutRightBracket = replace(/]/g, '', name)\n const leftBracketAndDot = /[.[\\]]/g\n const fieldErrorPath = split(leftBracketAndDot, nameWithoutRightBracket)\n\n const fieldError: FieldErrorType<T> = path(fieldErrorPath, errors)\n return fieldError\n}\n","import React, { cloneElement, isValidElement } from 'react'\nimport { CSSObject } from '@emotion/react'\n\nexport const passPropsToChild = (child: React.ReactNode, styles: CSSObject) => (\n isValidElement(child)\n ? cloneElement(child, {\n ...styles,\n })\n : child\n)\n","import React, { Children } from 'react'\nimport { T } from 'ramda'\nimport { passPropsToChild } from './pass-props-to-child'\n\nexport const getChildrenWithProps = (\n children: React.ReactNode | React.ReactNode[],\n styles: Record<string, any>,\n predicate: (child: React.ReactNode, index: number) => boolean = T\n) => {\n const childrenAsArr = Children.toArray(children)\n const childrenWithoutFocus = childrenAsArr.map((child, i) => (\n predicate(child, i)\n ? passPropsToChild(child, { ...styles })\n : child\n ))\n return childrenWithoutFocus\n}\n","import { useToken } from '@chakra-ui/system'\n\nexport const addAlpha = (color: string, alpha: number = 1) => {\n const colorInHex = useToken('colors', color)\n\n const limitAlpha = Math.min(Math.max(alpha, 0), 1)\n const opacity = Math.round(limitAlpha * 255)\n\n return `${colorInHex}${opacity.toString(16).toUpperCase()}`\n}\n","/** A debounce function to be used together with Async select in SearchBar.\n * The reason to why the usual debounce hook does not work is because we\n * don't control the loadOptions call ourselves.\n *\n * Important to note is that the timeout here needs to NOT be reinstantiated\n * every render, otherwise it defeats the purpose as a new timeout will be\n * created every time the component re-renders.\n*/\nexport const createDebounceFunctionInstance = (delay: number) => {\n let timeout: any\n\n return (fn: any) => (...args: any) => {\n clearTimeout(timeout)\n timeout = setTimeout(() => {\n fn(...args)\n }, delay)\n }\n}\n","import { createContext, useContext } from 'react'\n\nexport type CurrentTheme = 'webappTheme' | 'tottTheme'\n\nexport const CustomTheme = createContext<CurrentTheme>('webappTheme')\n\nexport const useCurrentTheme = () => {\n const theme = useContext(CustomTheme)\n return theme\n}\n","export const clamp = (minValue: number, maxValue: number, value: number) =>\n Math.min(Math.max(value, minValue), maxValue)\n","/* eslint-disable no-bitwise */\nimport { keys, omit } from 'ramda'\nimport { palette } from '@northlight/tokens'\n\nconst availableColorSchemes = keys(omit([ 'mono' ], palette))\n\nconst djb2Hash = (str: string, colors: string[]) => {\n let hash = 5381\n\n for (let i = 0; i < str.length; i += 1) {\n const char = str.charCodeAt(i)\n hash = (hash << 5) + hash + char\n\n hash &= hash\n }\n\n return (Math.abs(hash) % colors.length)\n}\n\nexport const getConsistentRandomColorFromString = (\n str: string,\n colors: string[] = availableColorSchemes\n) => {\n const index = djb2Hash(str, colors)\n return colors[index]\n}\n","import { MouseEvent, useState } from 'react'\nimport { clamp } from '../../utils'\n\ninterface UseResizeWidthProps {\n stationaryEdge?: 'left' | 'right'\n minWidthPx?: number\n maxWidthPx?: number\n defaultWidthPx: number\n}\n\nexport const useResizeWidth = ({\n stationaryEdge = 'left',\n minWidthPx = 0,\n maxWidthPx = Number.MAX_SAFE_INTEGER,\n defaultWidthPx,\n}: UseResizeWidthProps) => {\n const [ adjustableWidth, setAdjustableWidth ] = useState(defaultWidthPx)\n\n const resizeProps = {\n onMouseDown: (e: MouseEvent<unknown>) => {\n e.preventDefault()\n const startX = e.clientX\n const onMouseMove = (event: { clientX: number }) => {\n const newWidth =\n stationaryEdge === 'left'\n ? adjustableWidth + (event.clientX - startX)\n : adjustableWidth - (event.clientX - startX)\n setAdjustableWidth(clamp(minWidthPx, maxWidthPx, newWidth))\n }\n const onMouseUp = () => {\n document.removeEventListener('mousemove', onMouseMove)\n document.removeEventListener('mouseup', onMouseUp)\n }\n document.addEventListener('mousemove', onMouseMove)\n document.addEventListener('mouseup', onMouseUp)\n },\n }\n\n return {\n adjustableWidth,\n setAdjustableWidth,\n resizeProps,\n }\n}\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { getContrastColor } from '../../../utils'\n\nexport const customSelectStyles: ChakraStylesConfig<any> = {\n container: (provided) => ({\n ...provided,\n width: '100%',\n color: 'text.default',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isFocused && 'background.select.option-focus',\n overflowWrap: 'anywhere',\n _active: {\n background: 'background.select.option-active',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n }),\n downChevron: (provided) => ({\n ...provided,\n color: 'icon.select.default',\n }),\n placeholder: (provided) => ({\n ...provided,\n color: 'text.select.placeholder',\n }),\n multiValue: (provided, state) => {\n const background = state.data.isFixed\n ? 'background.select.option-disabled'\n : state.data.color ?? provided.bgColor\n return ({\n ...provided,\n bgColor: background,\n color: getContrastColor(background),\n })\n },\n menuList: (provided) => ({\n ...provided,\n bgColor: 'background.default',\n }),\n}\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { customSelectStyles } from '../../theme/components/select/custom-select'\n\nexport const tagsInputStyles = (\n isFocused: boolean,\n borderColor: string\n): ChakraStylesConfig<any> => ({\n ...customSelectStyles,\n container: (provided) => ({\n ...provided,\n w: 'full',\n height: '100%',\n resize: 'vertical',\n overflow: 'auto',\n minHeight: '20',\n borderColor: 'select.default',\n borderRadius: 'select.default',\n transitionDuration: 'normal',\n transitionProperty: 'box-shadow',\n color: 'text.default',\n boxShadow: isFocused ? `0 0 0 1px ${borderColor}` : 'none',\n }),\n control: (provided) => ({\n ...provided,\n minHeight: '20',\n height: '100%',\n alignItems: 'start',\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n overflowY: 'auto',\n maxH: '100%',\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 color: color.text.button.default,\n _hover: {\n bgColor: color.background.button['default-hover'],\n },\n _active: {\n bgColor: color.background.button['default-active'],\n },\n }),\n danger: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.danger,\n color: color.text.button.danger,\n _hover: {\n bg: color.background.button['danger-hover'],\n _disabled: {\n bgColor: color.background.button.danger,\n },\n },\n _active: {\n bgColor: color.background.button['danger-active'],\n },\n }),\n success: ({ theme: { colors: color } }) => ({\n bgColor: color.background.button.success,\n color: color.text.button.success,\n _hover: {\n bg: color.background.button['success-hover'],\n _disabled: {\n bgColor: color.background.button.success,\n },\n },\n _active: {\n bgColor: color.background.button['success-active'],\n },\n }),\n brand: ({ theme: { colors: color } }) => ({\n color: color.text.inverted,\n bgColor: color.background.button.brand,\n _hover: {\n bg: color.background.button['brand-hover'],\n _disabled: {\n bgColor: color.background.button.brand,\n },\n },\n _active: {\n bgColor: color.background.button['brand-active'],\n },\n }),\n brandSubdued: ({ theme: { colors: color } }) => ({\n color: color.text.button.link,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button.brand,\n color: color.text.inverted,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.text.button.link,\n },\n },\n _active: {\n bg: color.background.button['brand-hover'],\n color: color.text.inverted,\n },\n }),\n link: ({ theme: { colors: color } }) => ({\n textDecoration: 'underline',\n color: color.text.button.link,\n bgColor: color.background.button.link,\n _hover: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-hover'],\n },\n _active: {\n color: color.text.button['link-hover'],\n bgColor: color.background.button['link-active'],\n },\n }),\n outline: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n _hover: {\n bg: color.background.button['ghost-hover'],\n },\n _active: {\n bg: color.background.button['ghost-active'],\n },\n }),\n ghost: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.background.button['ghost-hover'],\n _disabled: {\n bgColor: color.background.button.ghost,\n },\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n }),\n ai: ({ theme: { colors: color } }) => ({\n color: color.text.inverted,\n bgColor: color.bg.ai.default,\n _hover: {\n bgColor: color.bg.ai.hover,\n _disabled: {\n bgColor: color.bg.ai.default,\n },\n },\n _active: {\n bgColor: color.bg.ai.active,\n },\n }),\n aiSubdued: ({ theme: { colors: color } }) => ({\n color: color.ai,\n bgColor: color.background.button.ghost,\n _hover: {\n bg: color.bg.ai.default,\n color: color.text.inverted,\n _disabled: {\n bgColor: color.background.button.ghost,\n color: color.ai,\n },\n },\n _active: {\n bg: color.bg.ai.hover,\n color: color.text.inverted,\n },\n }),\n },\n defaultProps: {\n size: 'md',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { keyframes } from '@emotion/react'\n\nconst pulseRing = keyframes`\n0% {\n transform: scale(0.33);\n}\n30% {\n transform: scale(0.66);\n},\n40%,\n50% {\n opacity: 0;\n}\n100% {\n opacity: 0;\n}\n`\n\nexport const Blinker: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: palette }, color, isBlinking }) => ({\n position: 'relative',\n borderRadius: '50%',\n bgColor: color === '' ? palette.blue['500'] : color,\n _before: isBlinking\n ? {\n content: \"''\",\n position: 'absolute',\n display: 'block',\n width: '300%',\n height: '300%',\n marginLeft: '-100%',\n marginTop: '-100%',\n borderRadius: '50%',\n bgColor: color === '' ? 'blue.500' : color,\n animation: `2.25s ${pulseRing} cubic-bezier(0.455, 0.03, 0.515, 0.955) -0.4s infinite`,\n zIndex: 'base',\n }\n : {},\n }),\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker['2xs'],\n width: sizing.blinker['2xs'],\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.xs,\n width: sizing.blinker.xs,\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.sm,\n width: sizing.blinker.sm,\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.md,\n width: sizing.blinker.md,\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n height: sizing.blinker.lg,\n width: sizing.blinker.lg,\n }),\n },\n defaultProps: {\n size: 'md',\n color: 'blue.500',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Checkbox: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label' ],\n sizes: {\n sm: {\n control: {\n fontSize: 5,\n },\n },\n md: {\n control: {\n fontSize: 7,\n },\n },\n lg: {\n control: {\n fontSize: 8,\n },\n },\n },\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n control: {\n borderColor: color.border.checkbox.default,\n bg: color.background.checkbox.default,\n borderWidth: 2,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n },\n },\n _invalid: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n _checked: {\n bg: color.background.checkbox.error,\n },\n _hover: {\n borderColor: color.border.checkbox.error,\n bg: color.background.checkbox.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n _hover: {\n borderColor: color.border.checkbox['default-hover'],\n bg: color.background.checkbox.default,\n },\n _disabled: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n _checked: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n color: 'white',\n _hover: {\n borderColor: color.border.checkbox.checked,\n bg: color.background.checkbox.checked,\n opacity: opacity.checkbox.disabled,\n },\n },\n _hover: {\n borderColor: color.border.checkbox.disabled,\n bg: color.background.checkbox.disabled,\n opacity: opacity.checkbox.disabled,\n },\n },\n },\n }),\n variants: {\n default: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.default,\n },\n }),\n rounded: ({ theme: { radii: borderRadius } }) => ({\n control: {\n borderRadius: borderRadius.checkbox.full,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Input: ComponentMultiStyleConfig = {\n parts: [ 'field', 'addon' ],\n baseStyle: ({ theme: { colors: color } }) => ({\n field: {\n color: color.text.default,\n _placeholder: {\n color: color.text.input.placeholder,\n opacity: 1,\n },\n },\n }),\n variants: {\n outline: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _focusVisible: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n boxShadow: `inset 0 0 0 1px ${color.border.input.focus}`,\n _invalid: {\n boxShadow: `inset 0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n },\n _hover: {\n bgColor: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _invalid: {\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n boxShadow: `inset 0 0 0 1px ${color.border.input.error}`,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n addon: {\n border: 'none',\n background: 'none',\n color: color.text.default,\n },\n }),\n filled: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n borderRadius: borderRadius.input.filled,\n borderWidth: borderWidth.input.default,\n bgColor: color.background.input['filled-default'],\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n bgColor: color.background.input['filled-default'],\n },\n },\n _hover: {\n bgColor: color.background.input['filled-hover'],\n },\n _focusVisible: {\n boxShadow: `inset 0 0 0 1px ${color.border.input.focus}`,\n borderColor: color.border.input.focus,\n bgColor: color.background.input['filled-focus'],\n _readOnly: {\n bgColor: color.background.input['filled-default'],\n },\n _invalid: {\n boxShadow: `inset 0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n },\n _invalid: {\n boxShadow: `inset 0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['filled-error'],\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['filled-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n }),\n flushed: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.flushed,\n paddingInlineEnd: spacing['padding-inline'].input.flushed,\n bgColor: color.background.input['flushed-default'],\n borderRadius: borderRadius.input.flushed,\n borderBottomWidth: borderWidth.input.default,\n borderBottomColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _hover: {\n bgColor: color.background.input['flushed-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focusVisible: {\n _hover: {\n boxShadow: `0 1px 0 0 ${color.border.input.focus}`,\n borderColor: color.border.input.focus,\n },\n _invalid: {\n boxShadow: `0 1px 0 0 ${color.border.input.error}`,\n borderColor: color.border.input.error,\n bgColor: color.background.input['flushed-error'],\n },\n },\n _invalid: {\n _hover: {\n boxShadow: `0 1px 0 0 ${color.border.input.error}`,\n borderColor: color.border.input.error,\n },\n bgColor: color.background.input['flushed-error'],\n },\n _disabled: {\n bgColor: color.background.input['flushed-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n }),\n ai: ({ theme: {\n colors: color,\n space: spacing,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n _focusVisible: {\n bgColor: color.background.input['outline-focus'],\n _hover: {\n boxShadow: `inset 0 0 0 1px ${color.border.ai}`,\n borderColor: color.border.ai,\n },\n _invalid: {\n boxShadow: `inset 0 0 0 1px ${color.border.input.error}`,\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n },\n _hover: {\n bgColor: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _invalid: {\n bgColor: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n addon: {\n border: 'none',\n background: 'none',\n color: color.text.default,\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const PinInput: ComponentSingleStyleConfig = {\n variants: {\n outline: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n opacity,\n } }) => ({\n borderColor: color.border.input.default,\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n bg: color.background.input['outline-default'],\n color: color.text.default,\n paddingInline: spacing['padding-inline'].input.default,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focus: {\n borderColor: color.border.input.focus,\n bg: color.background.input['outline-focus'],\n },\n _invalid: {\n bg: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n _placeholder: {\n color: 'transparent',\n },\n },\n _disabled: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n _hover: {\n bg: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n },\n },\n _placeholder: {\n color: color.text.input.placeholder,\n },\n _readonly: {\n borderColor: color.border.input.readonly,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Select: ComponentMultiStyleConfig = {\n parts: [ 'field', 'icon' ],\n baseStyle: ({ theme: {\n radii: borderRadius,\n borders: borderWidth,\n colors: color,\n space: spacing,\n } }) => ({\n field: {\n paddingInlineStart: spacing['padding-inline'].select.default,\n paddingInlineEnd: spacing['padding-inline'].select.default,\n borderWidth: borderWidth.select,\n color: color.text.default,\n borderColor: color.border.select.default,\n borderRadius: borderRadius.select.default,\n _hover: {\n borderColor: color.border.select['default-hover'],\n },\n _focusVisible: {\n borderColor: color.border.select.focus,\n boxShadow: `0 0 0 1px ${color.border.select.focus}`,\n },\n _invalid: {\n borderColor: color.border.select.error,\n boxShadow: 'none',\n },\n _readOnly: {\n borderWidth: borderWidth.select,\n borderColor: color.border.select.readonly,\n _focusVisible: {\n borderColor: color.border.select.readonly,\n },\n },\n _disabled: {\n borderColor: color.border.select.disabled,\n bg: color.background.select.disabled,\n _hover: {\n borderColor: color.border.select.disabled,\n },\n },\n _placeholder: {\n color: color.text.select.placeholder,\n },\n },\n icon: {\n color: color.icon.select.default,\n },\n }),\n variants: {\n outline: {},\n ai: ({ theme: { colors: color } }) => ({\n field: {\n _focusVisible: {\n borderColor: color.border.ai,\n boxShadow: `0 0 0 1px ${color.border.ai}`,\n },\n\n },\n\n }),\n\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Radio: ComponentMultiStyleConfig = {\n parts: [ 'control', 'label', 'container' ],\n sizes: {\n sm: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-sm'],\n },\n },\n }),\n md: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-md'],\n },\n },\n }),\n lg: ({ theme: { borders: borderWidth } }) => ({\n control: {\n _checked: {\n borderWidth: borderWidth.radio['checked-lg'],\n },\n },\n }),\n },\n baseStyle: ({ theme: { borders: borderWidth, colors: color } }) => ({\n control: {\n borderColor: color.border.radio.default,\n bg: color.background.radio.default,\n borderWidth: borderWidth.radio.default,\n _checked: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n _hover: {\n borderColor: color.border.radio.checked,\n bg: color.background.radio.checked,\n },\n },\n _hover: {\n borderColor: color.border.radio['default-hover'],\n bg: color.background.radio.default,\n },\n _disabled: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n _hover: {\n borderColor: color.border.radio.disabled,\n bg: color.background.radio.disabled,\n },\n },\n _invalid: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n _hover: {\n borderColor: color.border.radio.error,\n bg: color.background.radio.error,\n borderWidth: borderWidth.radio.default,\n },\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n defaultProps: {\n size: 'md',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Tabs: ComponentMultiStyleConfig = {\n parts: [ 'tab' ],\n baseStyle: ({ theme: { fontWeights: coreFontWeight } }) => ({\n tab: {\n fontWeight: coreFontWeight.semiBold,\n },\n }),\n variants: {\n 'soft-rounded': ({ theme: { colors: color } }) => ({\n tab: {\n borderRadius: 999,\n color: color.text.subdued,\n _selected: {\n bg: color.background.tabs['soft-rounded-active'],\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n rounded: ({ theme: { colors: color, radii: borderRadius } }) => ({\n tab: {\n color: color.text.subdued,\n borderRadius: borderRadius.button.default,\n _selected: {\n bg: color.background.tabs['soft-rounded-active'],\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n ai: ({ theme: { colors: color } }) => ({\n tab: {\n borderRadius: 999,\n _selected: {\n bgColor: color.bg.ai.default,\n color: color.text.inverted,\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n line: ({ theme: { colors: color } }) => ({\n tab: {\n color: color.text.subdued,\n _selected: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _hover: {\n color: color.text.tabs['soft-rounded-active'],\n },\n _active: {\n bg: color.mono.transparent,\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Textarea: ComponentSingleStyleConfig = {\n baseStyle: ({ 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 variants: {\n outline: {},\n ai: ({ theme: { colors: color } }) => ({\n _focusVisible: {\n _hover: {\n boxShadow: `0 0 0 1px ${color.border.ai}`,\n borderColor: color.border.ai,\n },\n },\n }),\n\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Link: ComponentSingleStyleConfig = {\n baseStyle: ({ colorScheme }) => ({\n _focus: {\n ring: '2px',\n ringColor: `${colorScheme}.100`,\n ringOffset: '1px',\n },\n }),\n defaultProps: {\n colorScheme: 'mediatoolBlue',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Switch: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n _disabled: {\n opacity: opacity.switch.disabled,\n },\n track: {\n bgColor: color.background.switch.default,\n _checked: {\n bgColor: color.background.switch['default-checked'],\n },\n _focusVisible: {\n ring: '2px',\n ringColor: color.border.wcag,\n ringOffset: '1px',\n },\n },\n thumb: {\n bgColor: color.background.switch.thumb,\n },\n }),\n}\n","import { ComponentMultiStyleConfig, useToken } 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: ({ theme: { colors }, bgColor, colorScheme }) => {\n const tagBgColor =\n bgColor ??\n (colors[colorScheme] && colors[colorScheme][500]\n ? colors[colorScheme][500]\n : colorScheme)\n\n const tagColor = getContrastColor(useToken('colors', tagBgColor))\n\n return {\n container: {\n bgColor: tagBgColor,\n color: tagColor,\n },\n }\n },\n subtle: ({ theme: { colors }, colorScheme, bgColor }) => {\n const tagBgColor =\n bgColor ??\n (colors[colorScheme] && colors[colorScheme][100]\n ? colors[colorScheme][100]\n : colorScheme)\n\n const tagColor = getContrastColor(useToken('colors', tagBgColor))\n\n return {\n container: {\n bgColor: tagBgColor,\n color: tagColor,\n },\n }\n },\n ai: {\n container: {\n bgColor: 'bg.ai.default',\n color: 'text.inverted',\n },\n },\n },\n defaultProps: {\n size: 'md',\n colorScheme: 'background.tag.default',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Alert: ComponentMultiStyleConfig = {\n parts: [ 'container', 'title', 'description' ],\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 ai: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.ai.default,\n color: color.text.inverted,\n },\n }),\n default: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.layer,\n color: color.text.default,\n },\n }),\n ghost: ({ theme: { colors: color } }) => ({\n container: {\n bgColor: color.bg.base,\n color: color.text.default,\n borderWidth: 'xs',\n borderColor: color.border.default,\n borderStyle: 'solid',\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const NumberInput: ComponentMultiStyleConfig = {\n parts: [ 'root', 'field', 'stepper', 'stepperGroup' ],\n sizes: {\n sm: ({ theme: { radii: borderRadius, sizes: sizing } }) => ({\n field: {\n borderRadius: borderRadius.input.outline,\n },\n stepperGroup: {\n height: sizing['8'],\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['10'],\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n stepperGroup: {\n height: sizing['12'],\n },\n }),\n },\n baseStyle: ({ theme: {\n sizes: sizing,\n space: spacing,\n colors: color,\n radii: borderRadius,\n borders: borderWidth,\n opacity,\n }, isReadOnly, minWidth, minW }) => ({\n root: {\n borderRadius: borderRadius.input.outline,\n },\n field: {\n minWidth: minWidth ?? minW ?? sizing['44'],\n paddingInlineStart: spacing['padding-inline'].input.default,\n paddingInlineEnd: spacing['padding-inline'].input.default,\n WebkitPaddingStart: spacing['padding-inline'].input.default,\n WebkitPaddingEnd: spacing['padding-inline'].input.default,\n color: color.text.default,\n bg: color.background.input['outline-default'],\n\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n paddingRight: spacing.paddingRight['number-input'].field,\n _hover: {\n bg: color.background.input['outline-hover'],\n borderColor: color.border.input['default-hover'],\n },\n _focusVisible: {\n bg: color.background.input['outline-focus'],\n borderColor: color.border.input.focus,\n boxShadow: `inset 0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n bg: color.background.input['outline-error'],\n borderColor: color.border.input.error,\n boxShadow: `inset 0 0 0 1px ${color.border.input.error}`,\n },\n _disabled: {\n bg: color.background.input['outline-disabled'],\n opacity: opacity.input.disabled,\n borderColor: color.border.input.disabled,\n },\n _readOnly: {\n _focusVisible: {\n borderColor: color.border.input.readonly,\n boxShadow: 'none',\n },\n _hover: {\n borderColor: color.border.input.readonly,\n },\n },\n },\n stepperGroup: {\n width: 'auto',\n paddingRight: spacing.paddingRight['number-input'].stepper,\n },\n stepper: {\n _first: {\n border: 'none',\n borderTopRightRadius: borderRadius['input-stepper'].default,\n borderRadius: borderRadius['input-stepper'].default,\n bg: color.background['input-stepper'].default,\n opacity: isReadOnly ? opacity.input.disabled : 'auto',\n _hover: {\n bg: isReadOnly ? 'none' : color.background['input-stepper'].hover,\n },\n _active: {\n bg: color.background['input-stepper'].active,\n },\n _disabled: {\n bg: color.background['input-stepper'].disabled,\n color: color.icon['input-stepper'].disabled,\n },\n },\n _last: {\n border: 'none',\n bg: color.background['input-stepper'].default,\n borderBottomRightRadius: borderRadius['input-stepper'].default,\n borderRadius: borderRadius['input-stepper'].default,\n opacity: isReadOnly ? opacity.input.disabled : 'auto',\n _hover: {\n bg: isReadOnly ? 'none' : color.background['input-stepper'].hover,\n },\n _active: {\n bg: color.background['input-stepper'].active,\n },\n _disabled: {\n bg: color.background['input-stepper'].disabled,\n color: color.icon['input-stepper'].disabled,\n },\n },\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const NotificationIconButton: ComponentMultiStyleConfig = {\n parts: [ 'container', 'notifier' ],\n sizes: {\n xs: {\n notifier: {\n top: '0.5',\n right: '0.5',\n },\n },\n sm: {\n notifier: {\n top: '0.5',\n right: '0.5',\n },\n },\n md: {\n notifier: {\n top: '1',\n right: '1',\n },\n },\n lg: {\n notifier: {\n top: '2',\n right: '2',\n },\n },\n },\n variants: {\n link: {\n notifier: {\n position: 'absolute',\n top: '0',\n right: '0',\n zIndex: 'base',\n },\n },\n },\n baseStyle: () => ({\n container: {\n position: 'relative',\n },\n notifier: {\n position: 'absolute',\n top: '1',\n right: '1',\n zIndex: 'base',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { ring } from '../../../utils'\n\nexport const Calendar: ComponentMultiStyleConfig = {\n parts: [ 'container', 'dateSelect', 'dayLabel', 'rangeCalendarContainer' ],\n baseStyle: ({ theme: {\n space: spacing,\n sizes: sizing,\n colors: color,\n } }) => ({\n container: {\n p: spacing[2],\n w: sizing[64],\n bgColor: 'background.default',\n border: '1px solid',\n borderColor: 'border.input.default',\n borderRadius: 'input.outline',\n },\n rangeCalendarContainer: {\n p: '3',\n w: '128',\n bgColor: 'background.default',\n borderRadius: 'input.outline',\n },\n dateSelect: {\n fontWeight: 'semibold',\n border: 'none',\n padding: '1',\n borderRadius: 'md',\n color: color.text.default,\n bgColor: color.background.button.ghost,\n _hover: {\n cursor: 'pointer',\n bgColor: color.background.button['ghost-hover'],\n },\n _active: {\n bgColor: color.background.button['ghost-active'],\n },\n ...ring,\n },\n dayLabel: {\n color: color.gray[600],\n fontSize: 'xs',\n p: spacing[2],\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const DragAndDrop: ComponentMultiStyleConfig = {\n parts: [ 'dropZone' ],\n baseStyle: ({ sx }) => ({\n dropZone: merge({\n borderWidth: 'sm',\n borderStyle: 'dashed',\n borderColor: 'border.default',\n padding: '4',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '4',\n justifyContent: 'center',\n textAlign: 'center',\n minH: '56',\n minW: '56',\n bgColor: 'bg.filled',\n }, sx),\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const DatePicker: ComponentMultiStyleConfig = {\n parts: [ 'group', 'styledField', 'dateField', 'dateSegment' ],\n baseStyle: ({ theme: { colors: color, opacity } }) => ({\n group: {\n position: 'relative',\n alignItems: 'center',\n flex: 1,\n },\n styledField: {\n bgColor: 'background.default',\n _focusWithin: {\n bgColor: color.background.input['outline-focus'],\n borderColor: color.border.textarea.focus,\n boxShadow: `inset 0 0 0 1px ${color.border.textarea.focus}`,\n },\n _invalid: {\n boxShadow: `inset 0 0 0 1px ${color.border.input.error}`,\n borderColor: color.border.input.error,\n },\n _disabled: {\n bgColor: color.background.input['outline-disabled'],\n borderColor: color.border.input.disabled,\n opacity: opacity.input.disabled,\n },\n },\n dateField: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n },\n dateSegment: {\n caretColor: 'transparent',\n boxSizing: 'content-box',\n textAlign: 'center',\n outline: 'none',\n rounded: 'md',\n _focus: {\n bgColor: 'bg.brand.default',\n color: color.text.inverted,\n },\n _placeholder: {\n color: 'destructive',\n },\n },\n }),\n variants: {\n outline: ({\n theme: { colors: color, radii: borderRadius, borders: borderWidth },\n }) => ({\n styledField: {\n bgColor: color.background.input['outline-default'],\n borderRadius: borderRadius.input.outline,\n borderWidth: borderWidth.input.default,\n borderColor: color.border.input.default,\n },\n }),\n filled: ({\n theme: { colors: color, radii: borderRadius, borders: borderWidth },\n }) => ({\n styledField: {\n bgColor: color.background.input['filled-default'],\n borderRadius: borderRadius.input.filled,\n borderWidth: borderWidth.input.default,\n borderColor: color.background.input['filled-default'],\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const FlipButton: ComponentMultiStyleConfig = {\n parts: [ 'container', 'button', 'buttonIcon' ],\n sizes: {\n xs: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].xs,\n minWidth: sizing['flip-button'].xs,\n paddingInlineStart: spacing['padding-inline']['flip-button'].xs,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].xs,\n fontSize: 'xs',\n },\n buttonIcon: {\n boxSize: sizing.icon.xs,\n },\n }),\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].sm,\n minWidth: sizing['flip-button'].sm,\n paddingInlineStart: spacing['padding-inline']['flip-button'].md,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].md,\n fontSize: 'sm',\n buttonIcon: {\n boxSize: sizing.icon.sm,\n },\n },\n }),\n md: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].md,\n minWidth: sizing['flip-button'].md,\n paddingInlineStart: spacing['padding-inline']['flip-button'].md,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].md,\n fontSize: 'md',\n buttonIcon: {\n boxSize: sizing.icon.md,\n },\n },\n }),\n lg: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing['flip-button'].lg,\n minWidth: sizing['flip-button'].lg,\n paddingInlineStart: spacing['padding-inline']['flip-button'].lg,\n paddingInlineEnd: spacing['padding-inline']['flip-button'].lg,\n fontSize: 'lg',\n buttonIcon: {\n boxSize: sizing.icon.lg,\n },\n },\n }),\n },\n baseStyle: ({ theme: {\n space: spacing,\n sizes: sizing,\n colors: color,\n opacity,\n radii: borderRadius,\n fontWeights: coreFontWeight,\n }, numberOfButtons }) => ({\n container: {\n borderRadius: borderRadius['flip-button'].default,\n paddingInlineStart: spacing['padding-inline']['flip-button-group'].default,\n paddingInlineEnd: spacing['padding-inline']['flip-button-group'].default,\n paddingY: spacing.paddingY['flip-button-group'].default,\n disply: 'grid',\n width: '100%',\n gap: spacing['padding-inline']['flip-button'].gap,\n gridTemplateColumns: `repeat(${numberOfButtons}, minmax(${sizing[32]}, 1fr))`,\n gridTemplateRows: '1fr',\n overflowX: 'auto',\n },\n button: {\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n color: color.text['flip-button'].default,\n cursor: 'pointer',\n borderRadius: borderRadius['flip-button'].default,\n fontWeight: coreFontWeight.semiBold,\n _disabled: {\n opacity: opacity['flip-button'].disabled,\n },\n _checked: {\n color: color.text['flip-button'].inverted,\n },\n },\n }),\n variants: {\n default: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-blue'],\n }, sx),\n button: {\n bgColor: color.background['flip-button']['default-deselected-blue'],\n _hover: {\n bgColor: color.background['flip-button']['hover-deselected-blue'],\n },\n _checked: {\n bgColor: color.background['flip-button']['default-selected-blue'],\n _hover: {\n bgColor: color.background['flip-button']['default-selected-blue'],\n },\n },\n },\n }),\n brand: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-brand'],\n }, sx),\n button: {\n bgColor: color.background['flip-button']['default-deselected-brand'],\n _hover: {\n bgColor: color.background['flip-button']['hover-deselected-brand'],\n },\n _checked: {\n bgColor: color.background['flip-button']['default-selected-brand'],\n _hover: {\n bgColor: color.background['flip-button']['default-selected-brand'],\n },\n },\n },\n }),\n light: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color['base-alt'],\n }, sx),\n button: {\n bgColor: 'mono.transparent',\n _hover: {\n bgColor: color.background.button['ghost-hover'],\n },\n _checked: {\n color: color.text['flip-button'].default,\n bgColor: 'bg.base',\n _hover: {\n bgColor: 'bg.base',\n },\n },\n },\n }),\n ai: ({ theme: { colors: color }, sx }) => ({\n container: merge({\n bgColor: color.background['flip-button']['default-deselected-brand'],\n }, sx),\n button: {\n bgColor: 'transparent',\n _hover: {\n bgColor: 'transparent',\n },\n _checked: {\n bgColor: color.bg.ai.default,\n _hover: {\n bgColor: color.bg.ai.default,\n },\n },\n },\n }),\n },\n defaultProps: {\n size: 'md',\n variant: 'default',\n },\n}\n","import {\n ComponentSingleStyleConfig,\n} from '@chakra-ui/react'\n\nexport const Spinner: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, borders: borderWidth } }) => ({\n borderWidth: borderWidth.spinner.default,\n color: color.background.spinner.thumb,\n borderBottomColor: color.background.spinner.track,\n borderLeftColor: color.background.spinner.track,\n }),\n}\n","import { randomColor } from '@chakra-ui/theme-tools'\nimport { getShades } from '../../../utils'\n\nconst possibleBgColors = getShades(400, 600)\n\nexport const getAvatarBgColor = (image: string, name: string, color: any) => {\n if (image) return color.background.avatar.image\n if (name) return randomColor({ string: name, colors: possibleBgColors })\n\n return color.background.avatar.default\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\nimport { getAvatarBgColor } from './get-avatar-bg-color'\n\nexport const Avatar: ComponentMultiStyleConfig = {\n parts: [ 'container', 'text', 'badge', 'icon' ],\n sizes: {\n '2xs': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xs'],\n height: sizing.avatar['2xs'],\n },\n text: {\n lineHeight: sizing.avatar['2xs'],\n fontSize: '3xs',\n },\n }),\n xs: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xs,\n height: sizing.avatar.xs,\n },\n text: {\n lineHeight: sizing.avatar.xs,\n fontSize: 'xs',\n },\n }),\n sm: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.sm,\n height: sizing.avatar.sm,\n },\n text: {\n lineHeight: sizing.avatar.sm,\n fontSize: 'sm',\n },\n icon: {\n boxSize: sizing.avatar.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.md,\n height: sizing.avatar.md,\n },\n text: {\n lineHeight: sizing.avatar.md,\n fontSize: 'md',\n },\n icon: {\n boxSize: sizing.avatar.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.lg,\n height: sizing.avatar.lg,\n },\n text: {\n lineHeight: sizing.avatar.lg,\n fontSize: 'lg',\n },\n icon: {\n boxSize: sizing.avatar.lg,\n },\n }),\n xl: ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar.xl,\n height: sizing.avatar.xl,\n },\n text: {\n lineHeight: sizing.avatar.xl,\n fontSize: '2xl',\n },\n }),\n '2xl': ({ theme: { sizes: sizing } }) => ({\n container: {\n width: sizing.avatar['2xl'],\n height: sizing.avatar['2xl'],\n },\n text: {\n lineHeight: sizing.avatar['2xl'],\n fontSize: '4xl',\n },\n }),\n\n },\n baseStyle: ({ theme: {\n colors: color,\n sizes: sizing,\n radii: borderRadius,\n }, image, name, bgColor }) => {\n const avatarBgColor = bgColor || getAvatarBgColor(image, name, color)\n\n return {\n container: {\n bgColor: avatarBgColor,\n color: getContrastColor(avatarBgColor),\n display: 'grid',\n placeItems: 'center',\n objectFit: 'cover',\n position: 'relative',\n },\n userImage: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n badge: {\n position: 'absolute',\n bottom: `-${sizing['1']}`,\n right: `-${sizing['1']}`,\n minWidth: sizing['5'],\n height: sizing['5'],\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontSize: 'xs',\n fontWeight: 'semibold',\n padding: sizing['0a'],\n bgColor: color.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: { h4 } },\n } = theme\n return ({\n overlay: {\n bgColor: 'background.modal.overlay',\n backdropFilter: 'blur(8px)',\n },\n closeButton: {\n top: 4,\n right: 4,\n },\n dialog: {\n bgColor: 'background.default',\n borderRadius: 'modal.dialog',\n },\n header: {\n fontSize: h4.fontSize,\n paddingTop: 'paddingTop.modal.header',\n paddingBottom: 'paddingBottom.modal.header',\n border: 'modal.header',\n borderBottomColor: 'border.modal.header',\n borderBottomStyle: 'solid',\n },\n body: {\n paddingTop: 'paddingTop.modal.body',\n paddingBottom: 'paddingBottom.modal.body',\n },\n footer: {\n paddingTop: 'paddingTop.modal.footer',\n paddingBottom: 'paddingBottom.modal.footer',\n },\n })\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { cssVar } from '@chakra-ui/theme-tools'\n\nconst $arrowBg = cssVar('popper-arrow-bg')\nconst $arrowBorder = cssVar('popper-arrow-shadow-color')\n\nexport const Tooltip: ComponentSingleStyleConfig = {\n baseStyle: ({\n theme: { colors: color, space: spacing, radii: borderRadius },\n }) => ({\n color: color.text.inverted,\n paddingInline: spacing['padding-inline'].tooltip.default,\n paddingY: spacing.paddingY.tooltip.default,\n borderRadius: borderRadius.tooltip.default,\n backgroundColor: color.background.tooltip.default,\n [$arrowBg.variable]: color.background.tooltip.default,\n }),\n variants: {\n default: ({ theme: { colors: color } }) => ({\n color: color.text.default,\n bgColor: color.bg.base,\n borderWidth: 'xs',\n borderColor: color.border.default,\n borderStyle: 'solid',\n [$arrowBg.variable]: color.bg.base,\n [$arrowBorder.variable]: color.border.default,\n }),\n success: ({ theme: { colors: color } }) => ({\n color: 'text.over.success',\n bgColor: 'success-alt',\n [$arrowBg.variable]: color['success-alt'],\n }),\n info: ({ theme: { colors: color } }) => ({\n color: 'text.over.brand',\n bgColor: 'brand-alt',\n [$arrowBg.variable]: color['brand-alt'],\n }),\n ghost: ({ theme: { colors: color } }) => ({\n color: 'text.default',\n bgColor: color.bg.base,\n borderWidth: 'xs',\n borderColor: color.border.default,\n [$arrowBorder.variable]: color.border.default,\n borderStyle: 'solid',\n [$arrowBg.variable]: color.bg.base,\n }),\n warning: ({ theme: { colors: color } }) => ({\n color: 'text.over.warning',\n bgColor: color['info-alt'],\n [$arrowBg.variable]: color['info-alt'],\n }),\n danger: ({ theme: { colors: color } }) => ({\n color: 'text.over.error',\n bgColor: color['destructive-alt'],\n [$arrowBg.variable]: color['destructive-alt'],\n }),\n error: ({ theme: { colors: color } }) => ({\n color: 'text.over.error',\n bgColor: color['destructive-alt'],\n [$arrowBg.variable]: color['destructive-alt'],\n }),\n ai: ({ theme: { colors: color } }) => ({\n bgColor: color.bg.ai.default,\n [$arrowBg.variable]: color.bg.ai.default,\n\n }),\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const Icon: ComponentSingleStyleConfig = {\n sizes: {\n xs: {\n boxSize: 'icon.xs',\n },\n sm: {\n boxSize: 'icon.sm',\n },\n md: {\n boxSize: 'icon.md',\n },\n lg: {\n boxSize: 'icon.lg',\n },\n },\n baseStyle: ({ boxSize, color }) => ({\n boxSize: boxSize || 'icon.default',\n color: color || 'inherit',\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const ClipboardInput: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'tooltip' ],\n sizes: {\n sm: ({ theme: { sizes: sizing, space: spacing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n tooltip: {\n paddingInline: spacing['padding-inline'].tooltip.sm,\n paddingY: spacing.paddingY.tooltip.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const ColorPicker: ComponentMultiStyleConfig = {\n parts: [ 'colorButton', 'trigger', 'heading' ],\n baseStyle: ({ theme, selectedColor }) => {\n const { sizes: sizing, colors: color } = theme\n return ({\n heading: {\n border: 'none',\n paddingInlineStart: sizing['4'],\n paddingInlineEnd: sizing['2'],\n paddingBottom: sizing['0'],\n fontSize: 'md',\n fontWeight: 'semibold',\n },\n trigger: {\n bgColor: selectedColor ?? color.background.button.default,\n color: selectedColor ? getContrastColor(selectedColor) : 'unset',\n _hover: {\n bgColor: selectedColor ?? color.background.button['default-hover'],\n },\n _active: {\n bgColor: selectedColor ?? color.background.button['default-active'],\n },\n },\n colorButton: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n _hover: {\n ring: '2px',\n ringOffset: '1px',\n ringColor: `${color.border.input['default-hover']}`,\n },\n },\n })\n },\n sizes: {\n sm: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n }),\n md: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n }),\n lg: ({ theme: { sizes: sizing } }) => ({\n trigger: {\n height: sizing.button.lg,\n minWidth: sizing.button.lg,\n },\n }),\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Step: ComponentMultiStyleConfig = {\n parts: [ 'step', 'label', 'description', 'indicator' ],\n baseStyle: ({ theme: { colors: color, fontWeights, space: spacing, borders: borderWidth } }) => ({\n step: {\n justifyContent: 'start',\n alignItems: 'start',\n bgColor: color.background.step.default,\n borderTopWidth: borderWidth.step.default,\n borderColor: color.border.step.default,\n borderBottom: 'none',\n paddingInline: spacing['padding-inline'].step.default,\n color: color.text.subdued,\n _hover: {\n bgColor: color.background.step.hover,\n borderColor: color.border.step.hover,\n },\n _disabled: {\n cursor: 'not-allowed',\n _hover: { borderColor: color.border.step.default },\n },\n _active: {\n bgColor: color.background.step.active,\n },\n _selected: {\n bgColor: color.background.step.selected,\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n '[data-part=\"indicator\"]': {\n bg: color.border.step.selected,\n },\n _hover: {\n borderColor: color.border.step.selected,\n color: color.border.step.selected,\n },\n },\n },\n label: {\n color: 'inherit',\n textAlign: 'start',\n fontWeight: fontWeights.bold,\n },\n description: {\n textAlign: 'start',\n fontWeight: fontWeights.semiBold,\n color: color.text.default,\n },\n indicator: {\n minW: 6,\n minH: 6,\n borderRadius: 'full',\n bg: color.text.subdued,\n color: 'mono.white',\n fontWeight: fontWeights.bold,\n fontSize: 'xs',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '2xs',\n },\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const StepList: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, tabs }) => ({\n display: 'grid',\n width: '100%',\n gridTemplateColumns: `repeat(${tabs}, minmax(${sizing[32]}, 1fr))`,\n gridTemplateRows: '1fr',\n overflowX: 'auto',\n borderBottom: 'none',\n paddingBottom: sizing[2],\n }),\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H1: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h1 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h1.fontFamily,\n fontWeight: h1.fontWeight,\n lineHeight: h1.lineHeight,\n fontSize: h1.fontSize,\n letterSpacing: h1.letterSpacing,\n textTransform: h1.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H2: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h2 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h2.fontFamily,\n fontWeight: h2.fontWeight,\n lineHeight: h2.lineHeight,\n fontSize: h2.fontSize,\n letterSpacing: h2.letterSpacing,\n textTransform: h2.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H3: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h3 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h3.fontFamily,\n fontWeight: h3.fontWeight,\n lineHeight: h3.lineHeight,\n fontSize: h3.fontSize,\n letterSpacing: h3.letterSpacing,\n textTransform: h3.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H4: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h4 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h4.fontFamily,\n fontWeight: h4.fontWeight,\n lineHeight: h4.lineHeight,\n fontSize: h4.fontSize,\n letterSpacing: h4.letterSpacing,\n textTransform: h4.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H5: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h5 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h5.fontFamily,\n fontWeight: h5.fontWeight,\n lineHeight: h5.lineHeight,\n fontSize: h5.fontSize,\n letterSpacing: h5.letterSpacing,\n textTransform: h5.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const H6: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const {\n colors: color,\n typography: { headings: { h6 } },\n } = theme\n return merge({\n color: color.text.default,\n fontFamily: h6.fontFamily,\n fontWeight: h6.fontWeight,\n lineHeight: h6.lineHeight,\n fontSize: h6.fontSize,\n letterSpacing: h6.letterSpacing,\n textTransform: h6.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Blockquote: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { blockquote } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: blockquote.fontFamily,\n fontWeight: blockquote.fontWeight,\n lineHeight: blockquote.lineHeight,\n fontSize: blockquote.fontSize,\n letterSpacing: blockquote.letterSpacing,\n textTransform: blockquote.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Tiny: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { tiny } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: tiny.fontFamily,\n fontWeight: tiny.fontWeight,\n lineHeight: tiny.lineHeight,\n fontSize: tiny.fontSize,\n letterSpacing: tiny.letterSpacing,\n textTransform: tiny.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Capitalized: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { CAPITALIZED } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: CAPITALIZED.fontFamily,\n fontWeight: CAPITALIZED.fontWeight,\n lineHeight: CAPITALIZED.lineHeight,\n fontSize: CAPITALIZED.fontSize,\n letterSpacing: CAPITALIZED.letterSpacing,\n textTransform: CAPITALIZED.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Lead: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { lead } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: lead.fontFamily,\n fontWeight: lead.fontWeight,\n lineHeight: lead.lineHeight,\n fontSize: lead.fontSize,\n letterSpacing: lead.letterSpacing,\n textTransform: lead.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Small: ComponentSingleStyleConfig = {\n baseStyle: ({ theme, sx }) => {\n const { small } = theme.typography.stylized\n return merge({\n color: 'text.default',\n fontFamily: small.fontFamily,\n fontWeight: small.fontWeight,\n lineHeight: small.lineHeight,\n fontSize: small.fontSize,\n letterSpacing: small.letterSpacing,\n textTransform: small.textCase,\n }, sx)\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const P: ComponentSingleStyleConfig = {\n variants: {\n 14: ({ theme, sx }) => {\n const { body14 } = theme.typography.body\n return merge({\n fontFamily: body14.fontFamily,\n fontWeight: body14.fontWeight,\n lineHeight: body14.lineHeight,\n fontSize: body14.fontSize,\n letterSpacing: body14.letterSpacing,\n textTransform: body14.textCase,\n }, sx)\n },\n 16: ({ theme, sx }) => {\n const { body16 } = theme.typography.body\n return merge({\n fontFamily: body16.fontFamily,\n fontWeight: body16.fontWeight,\n lineHeight: body16.lineHeight,\n fontSize: body16.fontSize,\n letterSpacing: body16.letterSpacing,\n textTransform: body16.textCase,\n }, sx)\n },\n },\n baseStyle: {\n color: 'text.default',\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const Label: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, sx }) => merge({\n color: 'inherit',\n width: '100%',\n maxWidth: '100%',\n marginBottom: sizing[0],\n marginInlineStart: sizing[0],\n marginEnd: sizing[0],\n marginInlineEnd: sizing[0],\n }, sx),\n sizes: {\n '2xs': ({ theme, sx }) => {\n const { tinyLabel } = theme.typography.labels\n return merge({\n fontFamily: tinyLabel.fontFamily,\n fontWeight: tinyLabel.fontWeight,\n lineHeight: tinyLabel.lineHeight,\n fontSize: tinyLabel.fontSize,\n letterSpacing: tinyLabel.letterSpacing,\n textTransform: tinyLabel.textCase,\n }, sx)\n },\n xs: ({ theme, sx }) => {\n const { xsLabel } = theme.typography.labels\n return merge({\n fontFamily: xsLabel.fontFamily,\n fontWeight: xsLabel.fontWeight,\n lineHeight: xsLabel.lineHeight,\n fontSize: xsLabel.fontSize,\n letterSpacing: xsLabel.letterSpacing,\n textTransform: xsLabel.textCase,\n }, sx)\n },\n sm: ({ theme, sx }) => {\n const { smLabel } = theme.typography.labels\n return merge({\n fontFamily: smLabel.fontFamily,\n fontWeight: smLabel.fontWeight,\n lineHeight: smLabel.lineHeight,\n fontSize: smLabel.fontSize,\n letterSpacing: smLabel.letterSpacing,\n textTransform: smLabel.textCase,\n }, sx)\n },\n md: ({ theme, sx }) => {\n const { mdLabel } = theme.typography.labels\n return merge({\n fontFamily: mdLabel.fontFamily,\n fontWeight: mdLabel.fontWeight,\n lineHeight: mdLabel.lineHeight,\n fontSize: mdLabel.fontSize,\n letterSpacing: mdLabel.letterSpacing,\n textTransform: mdLabel.textCase,\n }, sx)\n },\n lg: ({ theme, sx }) => {\n const { lgLabel } = theme.typography.labels\n return merge({\n fontFamily: lgLabel.fontFamily,\n fontWeight: lgLabel.fontWeight,\n lineHeight: lgLabel.lineHeight,\n fontSize: lgLabel.fontSize,\n letterSpacing: lgLabel.letterSpacing,\n textTransform: lgLabel.textCase,\n }, sx)\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\nimport { merge } from 'ramda'\n\nexport const NumVal: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { sizes: sizing }, sx }) =>\n merge(\n {\n color: 'inherit',\n width: '100%',\n maxWidth: '100%',\n marginBottom: sizing[0],\n marginInlineStart: sizing[0],\n marginEnd: sizing[0],\n marginInlineEnd: sizing[0],\n },\n sx\n ),\n sizes: {\n '2xs': ({ theme, sx }) => {\n const { tinyMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: tinyMono.fontFamily,\n fontWeight: tinyMono.fontWeight,\n lineHeight: tinyMono.lineHeight,\n fontSize: tinyMono.fontSize,\n letterSpacing: tinyMono.letterSpacing,\n textTransform: tinyMono.textCase,\n textDecoration: tinyMono.textDecoration,\n },\n sx\n )\n },\n xs: ({ theme, sx }) => {\n const { xsMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: xsMono.fontFamily,\n fontWeight: xsMono.fontWeight,\n lineHeight: xsMono.lineHeight,\n fontSize: xsMono.fontSize,\n letterSpacing: xsMono.letterSpacing,\n textTransform: xsMono.textCase,\n textDecoration: xsMono.textDecoration,\n },\n sx\n )\n },\n sm: ({ theme, sx }) => {\n const { smMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: smMono.fontFamily,\n fontWeight: smMono.fontWeight,\n lineHeight: smMono.lineHeight,\n fontSize: smMono.fontSize,\n letterSpacing: smMono.letterSpacing,\n textTransform: smMono.textCase,\n textDecoration: smMono.textDecoration,\n },\n sx\n )\n },\n md: ({ theme, sx }) => {\n const { mdMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: mdMono.fontFamily,\n fontWeight: mdMono.fontWeight,\n lineHeight: mdMono.lineHeight,\n fontSize: mdMono.fontSize,\n letterSpacing: mdMono.letterSpacing,\n textTransform: mdMono.textCase,\n textDecoration: mdMono.textDecoration,\n },\n sx\n )\n },\n lg: ({ theme, sx }) => {\n const { lgMono } = theme.typography.numVal\n return merge(\n {\n fontFamily: lgMono.fontFamily,\n fontWeight: lgMono.fontWeight,\n lineHeight: lgMono.lineHeight,\n fontSize: lgMono.fontSize,\n letterSpacing: lgMono.letterSpacing,\n textTransform: lgMono.textCase,\n textDecoration: lgMono.textDecoration,\n },\n sx\n )\n },\n },\n}\n","import { ComponentSingleStyleConfig } from '@chakra-ui/react'\n\nexport const SplitPane: ComponentSingleStyleConfig = {\n baseStyle: ({ minLeftWidth, minRightWidth, initialSplit, isOpen }) => ({\n display: 'grid',\n overflow: 'hidden',\n gridTemplateColumns: !isOpen ? '1fr' : `minmax(${minLeftWidth}%, var(--split-pos, ${initialSplit}%)) auto minmax(${minRightWidth}%, 1fr)`,\n alignItems: 'stretch',\n justifyItems: 'stretch',\n height: '100%',\n width: '100%',\n }),\n}\n\nexport const PaneDivider: ComponentSingleStyleConfig = {\n baseStyle: ({ theme: { colors: color, sizes: sizing } }) => ({\n bgColor: color.background['pane-divider'].default,\n zIndex: 300,\n cursor: 'col-resize',\n height: '100%',\n width: sizing[1],\n _hover: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n _active: {\n outlineColor: color.border['pane-divider'].hover,\n outlineWidth: sizing['0a'],\n outlineStyle: 'solid',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Carousel: ComponentMultiStyleConfig = {\n parts: [ 'container', 'arrow', 'radio' ],\n baseStyle: {\n container: {\n display: 'grid',\n placeItems: 'center',\n position: 'relative',\n overflow: 'hidden',\n width: 'full',\n height: 'full',\n },\n radio: {\n position: 'absolute',\n bottom: '1',\n left: '50%',\n transform: 'translateX(-50%)',\n overflowX: 'scroll',\n maxWidth: '90%',\n padding: '2',\n },\n arrow: {\n position: 'absolute',\n bottom: '0',\n height: '100%',\n cursor: 'pointer',\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { isEmpty, isNil } from 'ramda'\n\nexport const EditableText: ComponentMultiStyleConfig = {\n parts: [ 'button', 'icon', 'controls', 'preview', 'input' ],\n sizes: {\n sm: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.xs,\n minWidth: sizing.button.xs,\n },\n icon: {\n boxSize: sizing.icon.xs,\n },\n controls: {\n width: !isEditing ? 6 : '3.25rem',\n },\n preview: {\n pt: 1,\n },\n input: {\n paddingInlineEnd: 16,\n paddingRight: 16,\n },\n }),\n md: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.sm,\n minWidth: sizing.button.sm,\n },\n icon: {\n boxSize: sizing.icon.sm,\n },\n controls: {\n width: !isEditing ? 8 : '4.25rem',\n },\n preview: {\n pt: '7px',\n },\n input: {\n paddingInlineEnd: 20,\n paddingRight: 20,\n },\n }),\n lg: ({ isEditing, theme: { sizes: sizing } }) => ({\n button: {\n height: sizing.button.md,\n minWidth: sizing.button.md,\n },\n icon: {\n boxSize: sizing.icon.md,\n },\n controls: {\n width: !isEditing ? 10 : '5.25rem',\n },\n preview: {\n pt: '8px',\n },\n input: {\n paddingInlineEnd: 24,\n paddingRight: 24,\n },\n }),\n },\n baseStyle: ({ value }) => ({\n controls: {\n mr: 1,\n },\n preview: {\n fontWeight: 'semibold',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n paddingTop: 0,\n paddingBottom: 0,\n color: isNil(value) || isEmpty(value) ? 'text.subdued' : 'text.default',\n },\n input: {\n fontWeight: 'semibold',\n },\n }),\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Toolbox: ComponentMultiStyleConfig = {\n parts: [ 'container', 'header', 'body', 'footer' ],\n baseStyle: ({ theme: {\n colors: color,\n sizes: sizing,\n borders: borderWidth,\n } }) => ({\n container: {\n position: 'relative',\n bg: 'text.inverted',\n h: '100vh',\n borderLeftWidth: borderWidth.xs,\n borderLeftStyle: 'solid',\n borderLeftColor: color.border.default,\n },\n header: {\n alignItems: 'center',\n height: '16',\n borderBottomWidth: borderWidth.xs,\n borderBottomStyle: 'solid',\n borderBottomColor: color.border.default,\n pl: '4',\n pr: '16',\n },\n footer: {\n position: 'absolute',\n bottom: '0',\n w: 'full',\n p: '4',\n alignItems: 'center',\n height: '16',\n borderTopWidth: borderWidth.xs,\n borderTopStyle: 'solid',\n borderTopColor: color.border.default,\n },\n body: {\n p: sizing['4'],\n flexDirection: 'column',\n w: '100%',\n h: '100%',\n maxH: `calc(100vh - ${sizing['16']} * 2)`,\n overflowY: 'scroll',\n },\n }),\n sizes: {\n sm: {\n container: {\n w: 'xs',\n },\n },\n md: {\n container: {\n w: 'md',\n },\n },\n lg: {\n container: {\n w: 'xl',\n },\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { CSSObject, keyframes } from '@emotion/react'\nimport { merge } from 'ramda'\nimport { CurrentTheme } from '../../../utils'\n\nconst shakeAnimation = keyframes`\n 0% { transform: translate(1px, 1px) rotate(0deg); }\n 10% { transform: translate(-1px, -2px) rotate(-1deg); }\n 20% { transform: translate(-3px, 0px) rotate(1deg); }\n 30% { transform: translate(3px, 2px) rotate(0deg); }\n 40% { transform: translate(1px, -1px) rotate(1deg); }\n 50% { transform: translate(-1px, 2px) rotate(-1deg); }\n 60% { transform: translate(-3px, 1px) rotate(0deg); }\n 70% { transform: translate(3px, 1px) rotate(-1deg); }\n 80% { transform: translate(-1px, -1px) rotate(1deg); }\n 90% { transform: translate(1px, 2px) rotate(0deg); }\n 100% { transform: translate(1px, -2px) rotate(-1deg); }\n`\n\nconst thickRing: CSSObject = {\n _focusVisible: {\n outline: 'none',\n ring: '3px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n },\n}\n\nconst getBgColor = (currentTheme: CurrentTheme) => {\n switch (currentTheme) {\n case 'webappTheme': return 'blue.50'\n case 'tottTheme': return 'blue.900'\n default: return 'bg.filled'\n }\n}\n\nconst getInvalidColorStyles = (isInvalid: boolean, isImage = true, currentTheme: CurrentTheme = 'webappTheme') => ({\n borderColor: isInvalid ? '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\nconst getAiColorStyles = (isInvalid: boolean, isImage = true) => ({\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' : 'bg.filled',\n borderColor: isInvalid ? 'red.500' : 'border.ai',\n },\n})\n\nexport const FilePicker: ComponentMultiStyleConfig = {\n parts: [ 'filePicker', 'fileItem', 'multiFilePicker' ],\n baseStyle: ({ theme: { sizes, colors }, hasLoaded, isImage, isInvalid, currentTheme, sx }) => ({\n filePicker: merge({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n width: 'full',\n height: '40',\n textAlign: 'center',\n position: 'relative',\n borderWidth: hasLoaded && isImage ? '0' : sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, isImage, currentTheme),\n ...thickRing,\n }, sx),\n multiFilePicker: {\n width: 'full',\n maxWidth: 'inherit',\n height: '32',\n position: 'relative',\n borderWidth: sizes['0a'],\n borderStyle: 'dashed',\n borderRadius: 'lg',\n ...getInvalidColorStyles(isInvalid, undefined, currentTheme),\n ...thickRing,\n },\n fileItem: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n paddingX: '2',\n paddingY: '1',\n borderRadius: sizes['2'],\n textAlign: 'center',\n position: 'relative',\n border: `2px solid ${colors.gray['100']}`,\n minHeight: '20',\n },\n }),\n variants: {\n ai: ({ isInvalid }) => ({\n filePicker: {\n ...getAiColorStyles(isInvalid),\n },\n multiFilePicker: {\n ...getAiColorStyles(isInvalid),\n },\n }),\n\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\nimport { mode } from '@chakra-ui/theme-tools'\n\nexport const Table: ComponentMultiStyleConfig = {\n parts: [\n 'table',\n 'th',\n 'td',\n 'columnHeader',\n 'cell',\n 'caption',\n 'footer',\n 'tr',\n ],\n variants: {\n rounded: () => ({\n table: {\n borderSpacing: '0',\n borderCollapse: 'separate',\n borderRadius: 'md',\n borderColor: 'border.default',\n borderWidth: 'xs',\n px: '3',\n },\n\n th: {\n color: 'text.subdued',\n fontWeight: 'bold',\n textTransform: 'none',\n fontSize: 'sm',\n },\n\n td: {\n borderColor: 'border.default',\n borderTopWidth: 'xs',\n },\n }),\n striped: (props) => {\n const { colorScheme: c = 'gray' } = props\n\n return {\n table: {\n borderSpacing: '0',\n borderCollapse: 'separate',\n borderRadius: 'md',\n borderColor: 'border.default',\n borderWidth: 'xs',\n p: '2',\n },\n columnHeader: {\n color: 'text.subdued',\n bgColor: mode(`${c}.100`, `${c}.700`)(props),\n fontWeight: 'bold',\n textTransform: 'none',\n fontSize: 'sm',\n },\n cell: {\n bgColor: mode(`${c}.100`, `${c}.700`)(props),\n },\n caption: {\n color: mode('gray.600', 'gray.100')(props),\n },\n th: {\n borderBottomWidth: '0',\n },\n tr: {\n '&:nth-of-type(odd)': {\n td: {\n background: mode(`${c}.100`, `${c}.700`)(props),\n },\n },\n },\n footer: {\n tr: {\n th: { borderBottomWidth: 0 },\n },\n },\n }\n },\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Menu: ComponentMultiStyleConfig = {\n parts: [ 'list', 'item' ],\n baseStyle: ({ theme: {\n colors: color,\n radii: borderRadius,\n } }) => ({\n menu: {\n borderColor: color.border.default,\n },\n list: {\n px: '2',\n bgColor: color.bg.base,\n },\n item: {\n py: '2',\n color: color.text.default,\n borderRadius: borderRadius.select.default,\n bgColor: color.bg.base,\n _hover: {\n bgColor: color.background.button.default,\n },\n _active: {\n bgColor: color.background.button.default,\n },\n _focus: {\n bgColor: color.background.button.default,\n },\n _checked: {\n fontWeight: 'bold',\n },\n },\n }),\n variants: {\n compact: ({ theme: { colors: color } }) => ({\n item: {\n fontSize: 'sm',\n color: color.text.default,\n },\n }),\n relaxed: ({ theme: { colors: color } }) => ({\n item: {\n py: '2',\n fontSize: 'md',\n color: color.text.default,\n },\n }),\n },\n}\n","import { ComponentSingleStyleConfig, useToken } from '@chakra-ui/react'\nimport { getContrastColor } from '../../../utils'\n\nexport const Badge: ComponentSingleStyleConfig = {\n baseStyle: ({ colorScheme, theme: { colors } }) => {\n const bgColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][100]\n : colors[colorScheme] && colors[colorScheme][100]\n const textColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][800]\n : colors[colorScheme] && colors[colorScheme][800]\n\n return {\n bgColor,\n color: textColor,\n }\n },\n variants: {\n solid: ({ colorScheme, theme: { colors } }) => {\n const bgColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][500]\n : colors[colorScheme] && colors[colorScheme][500]\n\n return {\n bgColor,\n color: getContrastColor(bgColor ?? useToken('colors', colorScheme)),\n }\n },\n outline: ({ colorScheme, theme: { colors } }) => {\n const textColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][500]\n : colors[colorScheme] && colors[colorScheme][700]\n\n return {\n bgColor: 'mono.transparent',\n color: textColor,\n }\n },\n ghost: ({ colorScheme, theme: { colors } }) => {\n const textColor = colorScheme === 'mediatoolBlue'\n ? colors[colorScheme][500]\n : colors[colorScheme] && colors[colorScheme][700]\n\n return {\n bgColor: 'mono.transparent',\n color: textColor,\n }\n },\n },\n sizes: {\n xs: {\n fontSize: '2xs',\n },\n sm: {\n fontSize: 'xs',\n },\n md: {\n fontSize: 'sm',\n },\n lg: {\n fontSize: 'md',\n },\n },\n defaultProps: {\n size: 'sm',\n },\n}\n","import { ComponentMultiStyleConfig } from '@chakra-ui/react'\n\nexport const Popover: ComponentMultiStyleConfig = {\n parts: [ 'popper' ],\n baseStyle: {\n popper: {\n zIndex: 'popover',\n },\n },\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n WebappComponentsTokensSet,\n WebappSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const WebappSkin: ThemeOverride = {\n colors: {\n ...WebappSystemTokensSet.st.color,\n ...WebappComponentsTokensSet.color,\n text: {\n ...WebappSystemTokensSet.st.color.text,\n ...WebappComponentsTokensSet.color.text,\n },\n border: {\n ...WebappSystemTokensSet.st.color.border,\n ...WebappComponentsTokensSet.color.border,\n },\n },\n sizes: WebappComponentsTokensSet.sizing,\n space: WebappComponentsTokensSet.spacing,\n radii: {\n ...WebappSystemTokensSet.st.borderRadius,\n ...WebappComponentsTokensSet.borderRadius,\n },\n borders: {\n ...WebappSystemTokensSet.st.borderWidth,\n ...WebappComponentsTokensSet.borderWidth,\n },\n opacity: WebappComponentsTokensSet.opacity,\n typography,\n shadows: { ...WebappSystemTokensSet.st.boxShadow },\n}\n","import { ThemeOverride } from '@chakra-ui/react'\nimport {\n TottComponentsTokensSet,\n TottSystemTokensSet,\n typography,\n} from '@northlight/tokens'\n\nexport const TottSkin: ThemeOverride = {\n colors: {\n ...TottSystemTokensSet.st.color,\n ...TottComponentsTokensSet.color,\n border: {\n ...TottSystemTokensSet.st.color.border,\n ...TottComponentsTokensSet.color.border,\n },\n },\n sizes: TottComponentsTokensSet.sizing,\n space: TottComponentsTokensSet.spacing,\n radii: {\n ...TottSystemTokensSet.st.borderRadius,\n ...TottComponentsTokensSet.borderRadius,\n },\n borders: {\n ...TottSystemTokensSet.st.borderWidth,\n ...TottComponentsTokensSet.borderWidth,\n },\n opacity: TottComponentsTokensSet.opacity,\n typography,\n shadows: { ...TottSystemTokensSet.st.boxShadow },\n}\n","import {\n ThemeOverride,\n extendTheme,\n} from '@chakra-ui/react'\nimport {\n coreBorderRadius,\n coreBoxShadow,\n coreFontSize,\n coreFontWeight,\n coreLineHeight,\n coreSizing,\n coreSpacing,\n coreZIndex,\n palette,\n} from '@northlight/tokens'\nimport { scrollbarStyles } from './global/scrollbar'\nimport * as components from './components'\nimport { TottSkin, WebappSkin } from './skins'\n\nconst overrides: ThemeOverride = {\n config: {\n cssVarPrefix: '',\n },\n semanticTokens: {\n colors: {\n 'chakra-body-text': {\n _light: 'text.default',\n _dark: 'text.inverted',\n },\n },\n },\n styles: {\n global: {\n html: {\n scrollBehavior: 'smooth',\n },\n body: {\n height: '100%',\n },\n '#app': {\n height: '100%',\n },\n ...scrollbarStyles,\n },\n },\n fonts: {\n heading: 'Inter, sans-serif',\n body: 'Inter, sans-serif',\n },\n components: { ...components },\n colors: palette,\n zIndices: coreZIndex,\n sizes: coreSizing,\n space: coreSpacing,\n fontWeights: coreFontWeight,\n shadows: coreBoxShadow,\n fontSizes: coreFontSize,\n lineHeights: coreLineHeight,\n radii: coreBorderRadius,\n borderWidths: WebappSkin.borders,\n}\n\nexport const theme = extendTheme(overrides, WebappSkin)\n\nexport const tottTheme = extendTheme(overrides, TottSkin)\n","import React, {\n FunctionComponent,\n KeyboardEvent,\n useEffect,\n useState,\n} from 'react'\nimport {\n ActionMeta,\n CreatableSelect,\n MultiValue,\n} from 'chakra-react-select'\nimport { any, identity, isEmpty } from 'ramda'\nimport { Box } from '../box'\nimport { useToken } from '../../hooks'\nimport { TagsInputProps } from './types'\nimport { Option } from '../select'\nimport { tagsInputStyles } from './tags-input-styles'\nimport { theme } from '../../theme'\n/**\n * Tags Input, based of react creatable select, is meant to select\n * multiple tags. Follows styling of textarea and is resizable.\n *\n * @see {@link https://northlight.dev/reference/tags-input}\n * @example (Example)\n * ## Simple\n * (?\n * <TagsInput />\n * ?)\n *\n * @example (Example)\n * ## With suggestions\n * (?\n * <TagsInput options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}/>\n * ?)\n *\n */\nexport function TagsInput<T extends Option> ({\n options,\n onChange = identity,\n isLoading,\n loadingList = () => null,\n 'data-testid': testId,\n value = [],\n onError,\n ...rest\n}: TagsInputProps<T>) {\n const [ borderColor ] = useToken('border.select', [ 'focus' ])\n const [ menuIsOpen, setMenuIsOpen ] = useState(false)\n const [ inputValue, setInputValue ] = useState('')\n const [ selectedOptions, setSelectedOptions ] = useState<MultiValue<T>>(value)\n const [ isFocused, setIsFocused ] = useState(false)\n\n useEffect(() => {\n setSelectedOptions(value)\n }, [ value.length ])\n\n const CustomSelect = CreatableSelect as FunctionComponent<TagsInputProps<T>>\n\n const handleChange = (values: MultiValue<T>, actionMeta: ActionMeta<T>) => {\n setSelectedOptions(values)\n onChange(values, actionMeta)\n }\n\n const isValidNewOption = (input: string, availableOptions: MultiValue<T>) => !any(\n (option) => option.value === input,\n availableOptions\n )\n\n const addNewOption = (newOption: T) => {\n const updatedOptions = [ ...selectedOptions, newOption ]\n onChange(updatedOptions, { action: 'select-option', option: newOption })\n setSelectedOptions(updatedOptions)\n }\n\n const clearInput = () => {\n setInputValue('')\n }\n\n const handleInputChange = (newInput: string) => {\n if (newInput === ',') return\n\n setInputValue(newInput)\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const shouldAddOption = event.key === 'Enter' || event.key === 'Tab' || event.key === ','\n\n if (!shouldAddOption || isEmpty(inputValue)) return\n\n const trimmedInputValue = inputValue.trim()\n\n if (isValidNewOption(trimmedInputValue, selectedOptions)) {\n const newOption: Option = { value: trimmedInputValue, label: trimmedInputValue }\n addNewOption(newOption as T)\n } else {\n onError?.('Tag already exists')\n }\n\n clearInput()\n }\n\n const handleFocus = () => {\n setIsFocused(true)\n if (options && options.length > 0) {\n setMenuIsOpen(true)\n }\n }\n\n return (\n <Box w=\"full\" data-testid={ testId }>\n <CustomSelect\n isMulti={ true }\n menuPortalTarget={ document.body }\n placeholder=\"Type something and press Enter or comma...\"\n options={ options }\n useBasicStyles={ true }\n closeMenuOnSelect={ false }\n hideSelectedOptions={ false }\n isClearable={ false }\n onChange={ handleChange }\n onInputChange={ handleInputChange }\n onKeyDown={ handleKeyDown }\n inputValue={ inputValue }\n selectedOptionStyle=\"check\"\n chakraStyles={ tagsInputStyles(isFocused, borderColor) }\n onFocus={ handleFocus }\n isValidNewOption={ isValidNewOption }\n onBlur={ () => {\n setMenuIsOpen(false)\n setIsFocused(false)\n } }\n menuIsOpen={ menuIsOpen }\n isLoading={ isLoading }\n { ...(isLoading && { components: { MenuList: loadingList } }) }\n value={ selectedOptions }\n components={ {\n DropdownIndicator: () => null,\n } }\n styles={ { menuPortal: (base) => ({ ...base, zIndex: theme.zIndices.popover }) } }\n formatCreateLabel={ (textInputValue: string) =>\n `Add tag \"${textInputValue}\"`\n }\n { ...rest }\n />\n </Box>\n )\n}\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { OrganizationLogoProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/organization-logo}\n *\n * @example\n * (?\n * <OrganizationLogo name=\"mediatool\" />\n * ?)\n *\n */\nexport const OrganizationLogo = ({\n name,\n image,\n variant = 'square',\n ...rest\n}: OrganizationLogoProps) => {\n const getInitials = (orgName: string) => orgName[0].toUpperCase()\n const {\n container,\n text,\n } = useMultiStyleConfig('Avatar', { variant, image, ...rest })\n\n return (\n <chakra.div\n __css={ container }\n data-testid=\"organization-logo-test-id\"\n { ...rest }\n >\n { image ? (\n <chakra.img\n alt={ name }\n src={ image }\n />\n )\n : (\n <chakra.span __css={ text }>\n { getInitials(name) }\n </chakra.span>\n )\n }\n </chakra.div>\n )\n}\n","import React from 'react'\nimport { Alert as ChakraAlert } from '@chakra-ui/react'\nimport { AlertProps } from './types'\n\nexport const Alert = ({\n variant = 'success',\n children,\n ...rest\n}: AlertProps) => (\n <ChakraAlert variant={ variant } { ...rest }>\n { children }\n </ChakraAlert>\n)\n","import React from 'react'\nimport { AspectRatioProps, AspectRatio as ChakraAspectRatio } from '@chakra-ui/react'\n\n/**\n * Meant to restrict child by specific ratio\n * @see {@link https://northlight.dev/aspect-ratio}\n * @example\n * (?\n <AspectRatio maxW='400px' ratio={4 / 3}>\n <Image src='https://bit.ly/naruto-sage' alt='naruto' objectFit='cover' />\n</AspectRatio>\n?)\n *\n * */\nexport const AspectRatio = (props: AspectRatioProps) => (\n <ChakraAspectRatio { ...props } />\n)\n","import React from 'react'\nimport {\n Icon as ChakraIcon,\n forwardRef,\n useStyleConfig,\n} from '@chakra-ui/react'\nimport { IconProps } from './types'\n\n/**\n * Pass down any icon from northlight/icons via as prop\n * @see IconButton\n * @see {@link https://northlight.dev/reference/icon}\n *\n * @example\n * (?\n * <Icon as={SmileyDuo} size=\"lg\" />\n * ?)\n */\nexport const Icon = forwardRef(({\n as: As,\n size,\n color,\n boxSize,\n ...rest\n}: IconProps, ref: any) => {\n const CustomIcon = As ?? (() => <ChakraIcon />)\n const styles = useStyleConfig('Icon', { size, color, boxSize })\n\n return (\n <ChakraIcon\n ref={ ref }\n sx={ styles }\n { ...rest }\n >\n <CustomIcon />\n </ChakraIcon>\n )\n})\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { AvatarBadgeProps } from './types'\n\n/**\n * Specific component meant to be used with <Avatar /> to display notification\n * @see Avatar\n * @see {@link https://northlight.dev/reference/avatar}\n *\n * @example (Example)\n * Examle:\n * (?\n * <Avatar notificationCount={4} />\n * ?)\n *\n */\nexport const AvatarBadge = ({\n notificationCount = 0,\n}: AvatarBadgeProps) => {\n const { badge } = useMultiStyleConfig('Avatar')\n return (\n <chakra.span sx={ badge }>\n { notificationCount > 999 ? '999+' : notificationCount }\n </chakra.span>\n )\n}\n","import React from 'react'\nimport { chakra, useMultiStyleConfig } from '@chakra-ui/react'\nimport { BusinessContactDuo, UserSquareDuo } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { getInitials } from '../../utils'\nimport { AvatarProps } from './types'\nimport { AvatarBadge } from './avatar-badge'\n\n/**\n * @see AvatarGroup\n * @see {@link https://northlight.dev/reference/avatar}\n *\n * @example (Example)\n * Avatar takes a name and image\n * (?\n * <Avatar name=\"Darth Vader\" image='/vader.png' />\n * ?)\n *\n * <br />\n * If there is no image, it will render the initials of the name along with a random bg color.\n * (?\n * <Avatar name=\"Darth Vader\" />\n * ?)\n *\n * <br />\n *\n * If the name also is undefined, it will render a fallback icon\n * (?\n * <Avatar />\n * ?)\n */\nexport const Avatar = ({\n variant = 'square',\n notificationCount = 0,\n name,\n image,\n size,\n bgColor,\n ...rest\n}: AvatarProps) => {\n const { container, text, userImage, icon } = useMultiStyleConfig('Avatar', {\n variant,\n image,\n size,\n name,\n bgColor,\n })\n\n return (\n <Box __css={ container } data-testid=\"avatar-test-id\" { ...rest }>\n { image\n ? (\n <chakra.img\n alt={ name }\n src={ image }\n sx={ userImage }\n />\n ) : name\n ? (\n <chakra.span sx={ text }>\n { getInitials(name) }\n </chakra.span>\n )\n : (\n <Icon\n as={ variant === 'square' ? UserSquareDuo : BusinessContactDuo }\n sx={ icon }\n aria-label=\"user-avatar\"\n />\n ) }\n { notificationCount > 0 && (\n <AvatarBadge notificationCount={ notificationCount } />\n ) }\n </Box>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h1}\n * @example (Example)\n * (?\n * <H1>Heading 1</H1>\n * ?)\n */\nexport const H1 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H1', { sx })\n\n return (\n <Heading\n as=\"h1\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h2}\n * @example (Example)\n * (?\n * <H2>Heading 2</H2>\n * ?)\n *\n */\nexport const H2 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H2', { sx })\n\n return (\n <Heading\n as=\"h2\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h3}\n * @example (Example)\n * (?\n * <H3>Heading 3</H3>\n * ?)\n */\nexport const H3 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H3', { sx })\n\n return (\n <Heading\n as=\"h3\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h4}\n * @example (Example)\n * (?\n * <H4>Heading 4</H4>\n * ?)\n */\nexport const H4 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H4', { sx })\n\n return (\n <Heading\n as=\"h4\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h5}\n * @example (Example)\n * (?\n * <H5>Heading 5</H5>\n * ?)\n */\nexport const H5 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H5', { sx })\n\n return (\n <Heading\n as=\"h5\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Heading, useStyleConfig } from '@chakra-ui/react'\nimport { HeadingProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/h6}\n * @example (Example)\n * (?\n * <H6>Heading 6</H6>\n * ?)\n */\nexport const H6 = forwardRef<HTMLHeadingElement, HeadingProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('H6', { sx })\n\n return (\n <Heading\n as=\"h6\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </Heading>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, useStyleConfig } from '@chakra-ui/react'\nimport { PProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/p}\n * @example\n * (?\n * <P>Body text</P>\n * ?)\n *\n */\nexport const P = forwardRef<HTMLParagraphElement, PProps>(({\n children,\n variant = '16',\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('P', { variant, sx })\n\n return (\n <ChakraText\n variant={ variant }\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/blockquote }\n *\n * @example (Example)\n * (?\n * <Blockquote sx={{color: 'green.500' }}>Success</Blockquote>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n *\n *\n */\nexport const Blockquote = forwardRef<HTMLParagraphElement, TextProps>(\n ({ children, sx = {}, ...rest }, ref) => {\n const styles = useStyleConfig('Blockquote', { sx })\n\n return (\n <ChakraText as=\"span\" sx={ styles } ref={ ref } { ...rest }>\n { children }\n </ChakraText>\n )\n }\n)\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/capitalized }\n *\n * @example (Example)\n * (?\n * <Capitalized sx={{color: 'red.500' }}>Error</Capitalized>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Capitalized = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Capitalized', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/lead }\n *\n * @example\n * (?\n * <Lead>Lead</Lead>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Lead = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Lead', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Blockquote\n * @see Tiny\n * @see {@link https://northlight.dev/reference/small }\n *\n * @example (Example)\n * (?\n * <Small>Small</Small>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n */\nexport const Small = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Small', { sx })\n\n return (\n <ChakraText\n as=\"small\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { Text as ChakraText, TextProps, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * One of the stylized typography components\n * @see Capitalized\n * @see Lead\n * @see Blockquote\n * @see Small\n * @see {@link https://northlight.dev/reference/tiny }\n *\n * @example (Example)\n * (?\n * <Tiny>Tiny</Tiny>\n * ?)\n * (_Note, all other css properties not listed under the\n * props tab to right should be passed down via **sx**_)\n *\n */\nexport const Tiny = forwardRef<HTMLParagraphElement, TextProps>(({\n children,\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Tiny', { sx })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { FormLabel, VisuallyHidden, useStyleConfig } from '@chakra-ui/react'\nimport { LabelProps } from './types'\n\n/**\n * One of the stylized typography components\n * @see Blockquote\n * @see Lead\n * @see Small\n * @see Tiny\n * @see {@link https://northlight.dev/reference/label }\n *\n * @example\n * (?\n * <Label sx={{color: 'brand.500' }} size=\"lg\">Brand</Label>\n * ?)\n * (_Note, all other css properties not listed\n * under the props tab to right should be passed down via **sx**_)\n *\n */\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(({\n children,\n size = 'sm',\n sx = {},\n ...rest\n}, ref) => {\n const styles = useStyleConfig('Label', { sx, size })\n\n return (\n <FormLabel\n sx={ styles }\n requiredIndicator={ <VisuallyHidden /> }\n ref={ ref }\n { ...rest }\n >\n { children }\n </FormLabel>\n )\n})\n","import React, { forwardRef } from 'react'\nimport {\n Text as ChakraText,\n TextProps,\n useStyleConfig,\n} from '@chakra-ui/react'\n\n/**\n * @see {@link https://northlight.dev/reference/label }\n *\n * @example\n * (?\n * <NumVal sx={{color: 'brand' }} size=\"lg\">270 000 000</NumVal>\n * ?)\n * (_Note, all other css properties not listed\n *\n */\nexport const NumVal = forwardRef<HTMLLabelElement, TextProps>(\n ({ children, size = 'sm', sx = {}, ...rest }, ref) => {\n const styles = useStyleConfig('NumVal', { sx, size })\n\n return (\n <ChakraText\n as=\"span\"\n sx={ styles }\n ref={ ref }\n { ...rest }\n >\n { children }\n </ChakraText>\n )\n }\n)\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { always, dec, defaultTo, gt, identity, ifElse, inc, isNil, take } from 'ramda'\nimport { OverflowGroupProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\n\nconst positiveOrZero = ifElse(gt(0), always(0), identity)\nconst EMPTY_RECT = {\n clientWidht: 0,\n clientHeight: 0,\n}\nconst EMPTY_WINDOW = {\n innerWidth: 0,\n innerHeight: 0,\n}\n\n/**\n * Util wrapper for lists by only rendering as many items as fit per the specification\n * @see {@link https://northlight.dev/reference/overflow-group}\n * @example\n * (?\n * +\n *\nconst CustomSlider = ({ onChange }) => (\n <Slider min={ 100 } max={ 300 } step={ 1 } onChange={ onChange }>\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb />\n </Slider>\n)\n *\n\nconst arrayWithLength = (n) => {\n let buffer = []\n for(let i = 0; i < n; i++) {\n buffer.push(i)\n }\n return buffer\n}\n * const MyComponent = () => {\n * const [ n, setN ] = useState(5)\n const [ max, setMax ] = useState(10)\n const [ width, setWidth ] = useState(200)\n const [ height, setHeight ] = useState(200)\n const { containerRef, rect } = useOverflowGroup()\n const [ nbrRemainingItems, setNbrRemainingItems ] = useState(0)\n * return (\n * <Stack mb={ 4 } spacing={ 4 } w=\"40%\">\n <Stack h=\"300px\">\n <Wrap\n w={ width }\n h={ height }\n ref={ containerRef }\n borderWidth=\"2px\"\n borderColor=\"gray.200\"\n borderStyle=\"solid\"\n p=\"2\"\n borderRadius=\"md\"\n >\n <OverflowGroup\n max={ max }\n rect={ rect }\n onChange={ setNbrRemainingItems }\n >\n { arrayWithLength(n).map((i) => (\n <Badge key={ i } h=\"max-content\">\n Item { i }\n </Badge>\n )) }\n </OverflowGroup>\n { nbrRemainingItems > 0 && (\n <Tag w=\"fit-content\">+{ nbrRemainingItems }</Tag>\n ) }\n </Wrap>\n </Stack>\n <Stack bgColor=\"gray.50\" p=\"2\" borderRadius=\"md\">\n <HStack>\n <Label>Height</Label>\n <CustomSlider onChange={ setHeight } />\n </HStack>\n <HStack>\n <Label>Width</Label>\n <CustomSlider onChange={ setWidth } />\n </HStack>\n <HStack>\n <Label>Number of items </Label>\n <NumberInput onChange={ (v) => setN(Number(v)) } value={ n } />\n </HStack>\n <HStack>\n <Label>Render max </Label>\n <NumberInput onChange={ (v) => setMax(Number(v)) } value={ max } />\n </HStack>\n </Stack>\n </Stack>\n * )}\nrender(<MyComponent/>)\n * ?)\n<br />\nThe overflow group requires either a max prop for a set limit, or a rect prop,\n for a dynamic, responsive layouts. The rect prop can be received via the useOverflowGroup hook,\n along with a containerRef that needs to be set on the wrapper around the overflow group.\n<br />\n<br />\nThe overflow group is ambiguous in the styling of the children and does not pose any premade layout;\n instead the wrapper parent container determines the layout.\n One could for example use a <Stack /> <HStack /> or <Grid> and all would work.\n The overflow group only checks if the children don't fit within the height/width\n of it's container via the containerRef.\n\n *\n */\nexport const OverflowGroup = ({\n children,\n max: initMax = 0,\n childrenProps,\n onChange = identity,\n rect,\n}: OverflowGroupProps) => {\n const [ max, setMax ] = useState(isNil(rect) ? initMax : 0)\n const [ windowState, setWindowState ] = useState(EMPTY_WINDOW)\n const isLocked = useRef(false)\n const nbrChildren = Children.count(children)\n\n const updateMax = () => {\n if (!rect) return\n\n if (\n rect.scrollHeight <= rect.clientHeight &&\n rect.scrollWidth <= rect.clientWidth &&\n max < nbrChildren &&\n !isLocked.current &&\n max < initMax\n ) {\n setMax(inc)\n }\n\n if (\n rect.scrollHeight > rect.clientHeight ||\n rect.scrollWidth > rect.clientWidth\n ) {\n setMax(dec)\n isLocked.current = true\n }\n }\n\n const rectDependency = defaultTo(EMPTY_RECT, rect) as HTMLElement\n useEffect(updateMax, [\n rectDependency.clientWidth,\n rectDependency.clientHeight,\n nbrChildren,\n max,\n windowState.innerHeight,\n windowState.innerHeight,\n initMax,\n ])\n\n useEffect(() => {\n isLocked.current = false\n }, [ rectDependency.clientHeight, rectDependency.clientWidth ])\n\n const handleResize = () => {\n setTimeout(() => {\n isLocked.current = false\n setWindowState({\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n })\n }, 200)\n }\n\n useEffect(() => {\n window.addEventListener('resize', handleResize)\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n useEffect(() => {\n const nbrRemainingChildren = positiveOrZero(nbrChildren - max)\n onChange(nbrRemainingChildren)\n }, [ max, nbrChildren ])\n\n const shownChildren = take(\n max,\n getChildrenWithProps(children, defaultTo({}, childrenProps))\n )\n\n return <>{ shownChildren }</>\n}\n","import { useState } from 'react'\n\nexport const useOverflowGroup = () => {\n const [ rect, setRect ] = useState<HTMLDivElement | null>(null)\n const containerRef = (node: any) => {\n if (node) {\n setRect(node)\n }\n }\n\n return { rect, containerRef }\n}\n","import React, { useState } from 'react'\nimport { HStack } from '../stack'\nimport { AvatarGroupProps } from './types'\nimport { Small } from '../typography'\nimport { OverflowGroup } from '../overflow-group'\nimport { getChildrenWithProps } from '../../utils'\n\n/**\n * Used to display a group of users\n * @see Avatar\n * @see {@link https://northlight.dev/reference/avatar-group}\n *\n * @example (Example)\n * (?\n * <AvatarGroup max={ 3 }>\n {[1, 2, 3, 4, 5].map((i) => (\n <Avatar\n name=\"Darth Vader\"\n image=\"/vader.png\"\n size=\"sm\"\n variant=\"rounded\"\n key={ i }\n />\n )) }\n</AvatarGroup>\n * ?)\n *\n */\nexport const AvatarGroup = ({\n children,\n max = Infinity,\n spacing = '-4',\n ...rest\n}: AvatarGroupProps) => {\n const [ nbrRemainingAvatars, setNbrRemainingAvatars ] = useState(0)\n const childrenWithMargin = getChildrenWithProps(\n children,\n { ml: spacing },\n (_child, idx) => idx > 0\n )\n\n return (\n <HStack bgColor=\"background.default\" { ...rest }>\n <HStack spacing={ 0 }>\n <OverflowGroup max={ max } onChange={ setNbrRemainingAvatars }>\n { childrenWithMargin }\n </OverflowGroup>\n </HStack>\n { nbrRemainingAvatars > 0 && (\n <Small sx={ { color: 'blue.500' } }>\n +{ nbrRemainingAvatars }\n </Small>\n ) }\n </HStack>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { Badge as ChakraBadge } from '@chakra-ui/react'\nimport { BadgeProps } from './types'\n\n/**\n * Badges are used to highlight an item's status for quick recognition.\n * @see {@link https://northlight.dev/reference/badge}\n *\n * @example\n * (?\n * +\n * const colors = [\"gray\", \"mediatoolBlue\", \"blue\", \"red\", \"green\",\n * \"orange\", \"yellow\", \"teal\", \"purple\", \"pink\"]\n * const variants = [\"solid\", \"outline\", \"subtle\", \"ghost\"]\n * const Example = () => {\n * return <Stack>\n * { colors.map((color) => (\n * <HStack spacing={ 4 }>\n * {\n * variants.map((variant) => (\n * <Badge colorScheme={color} variant={variant}>{variant} Badge</Badge>\n * ))\n * }\n * </HStack>\n * ))}\n * </Stack>\n * }\n * render(<Example/>)\n * ?)\n */\nexport const Badge = forwardRef<HTMLDivElement, BadgeProps>((props, ref) => (\n <ChakraBadge ref={ ref } { ...props } />\n))\n","import React from 'react'\nimport { useStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../box'\nimport { BlinkerProps } from './types'\n\n/**\n * Status indicator of some sorts\n * @see {@link https://northlight.dev/reference/blinker}\n *\n * @example (Example)\n * (?\n * <Box p=\"4\">\n * <Blinker color=\"bg.brand.default\" />\n * </Box>\n * ?)\n */\nexport const Blinker = ({\n color = '',\n size,\n isBlinking = true,\n ...rest\n}: BlinkerProps) => {\n const styles = useStyleConfig('Blinker', { color, size, isBlinking })\n\n return <Box sx={ styles } data-testid=\"blinker-test-id\" { ...rest } />\n}\n","import React from 'react'\nimport { Spinner as ChakraSpinner } from '@chakra-ui/react'\nimport { SpinnerProps } from './types'\n\n/**\n * Loading indicator\n * @see {@link https://northlight.dev/reference/spinner }\n * @example\n * (? <Spinner /> ?)\n */\nexport const Spinner = (({\n ...rest\n}: SpinnerProps) => (\n <ChakraSpinner { ...rest } />\n))\n","import React, { forwardRef } from 'react'\nimport { Button as ChakraButton } from '@chakra-ui/react'\nimport { Spinner } from '../spinner'\nimport { ButtonProps } from './types'\n\nconst SpinnerSizeMap = {\n xs: 'xs',\n sm: 'sm',\n md: 'sm',\n lg: 'md',\n}\n\n/**\n * @see {@link https://northlight.dev/reference/button}\n *\n * @example\n * (?\n <Button\n variant=\"success\"\n leftIcon={ <Icon as={ FolderCheckDuo } /> }\n rightIcon={ <Icon as={ PlusDuo } /> }\n >\n Create folder\n </Button>\n * ?)\n *\n * @example (Example)\n * (?\n * +\n * const variants = ['link', 'success', 'default', 'danger', 'brand',\n * 'ghost', 'ai', 'outline', 'brandSubdued', 'solid']\n *\n * const ExampleButton = () => {\n * const [currentVariant, setCurrentVariant ] = useState(0)\n * const [ isLoading, setIsLoading ] = useState(false)\n *\n * const handleClick = () => {\n * setIsLoading(true)\n * setTimeout(() => {\n * setCurrentVariant((prev) => prev === variants.length - 1 ? 0 : prev + 1)\n * setIsLoading(false)\n * }, 300)\n *\n * }\n *\n * return (\n * <Button variant={variants[currentVariant]}\n * isLoading={isLoading} onClick={handleClick} loadingText=\"Saving...\">\n * Save changes\n * </Button>\n * )\n *\n * }\n *\n * render(<ExampleButton/>)\n * ?)\n *\n * @example (Example)\n * Use LinkOverlay to turn the button into a link\n *\n * (?\n * <LinkBox>\n * <LinkOverlay as={NavLink} to=\"/\" />\n * <Button variant=\"link\">Go to home page</Button>\n * </LinkBox>\n * ?)\n */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>((\n { variant = 'default', children, size = 'md', ...rest },\n ref\n) => (\n <ChakraButton\n variant={ variant }\n ref={ ref }\n size={ size }\n spinner={ (\n <Spinner\n size={ SpinnerSizeMap[size] }\n />\n ) }\n { ...rest }\n >\n { children }\n </ChakraButton>\n)\n)\n","import React from 'react'\nimport { Checkbox as ChakraCheckbox } from '@chakra-ui/react'\nimport { CheckboxProps } from './types'\n\n/**\n * @see CheckboxField\n * @see {@link https://northlight.dev/reference/checkbox}\n *\n * @example (Example)\n * Mainly used for forms, however this component is controlled by\n * a value prop and an onChange callback\n *\n * (?\n * +\n * const MyForm = () => {\n * const [ isVegan, setIsVegan ] = useState(false)\n *\n * return (\n * <Stack p=\"2\">\n * <Label size=\"sm\" htmlFor=\"vegan-checkbox\">Are you vegan</Label>\n * <Checkbox name=\"vegan-checkbox\" onChange={() => setIsVegan((prev) => !prev)} value={isVegan} />\n * </Stack>\n *\n * )\n * }\n *\n * render(<MyForm />)\n *\n * ?)\n *\n */\nexport const Checkbox = ({\n value,\n onChange,\n name,\n size = 'md',\n variant = 'default',\n ...rest\n}: CheckboxProps) => {\n const controlledValue = typeof value === 'boolean'\n ? { isChecked: value }\n : { value }\n\n return (\n <ChakraCheckbox\n size={ size }\n id={ name }\n onChange={ onChange }\n variant={ variant }\n { ...controlledValue }\n { ...rest }\n />\n )\n}\n","import { forEach, identity, is, keys, trim, values } from 'ramda'\nimport { FieldValues } from 'react-hook-form'\n\nconst shouldTrim = (value: any): ((object: FieldValues) => FieldValues) =>\n (is(Array, value) ? values : identity)\n\nexport const trimFormValues = <T extends FieldValues>(obj: FieldValues) => {\n const newObj: FieldValues = obj\n forEach((property) => {\n const value = obj[property]\n if (is(Object, value)) {\n const format = shouldTrim(value)\n newObj[property] = format(trimFormValues(value as FieldValues))\n }\n if (is(String, value)) {\n newObj[property] = trim(value as string)\n }\n }, keys(obj))\n return newObj as T\n}\n","import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react'\nimport {\n DefaultValues,\n FieldValues,\n FormProvider,\n Resolver,\n UseFormReturn,\n useForm,\n} from 'react-hook-form'\nimport { always, equals } from 'ramda'\nimport { joiResolver } from '@hookform/resolvers/joi'\nimport { FormProps } from './types'\nimport { trimFormValues } from './trim-form-values'\n\n/**\n * The context provider for handling state of components wrapped in field\n * @see Field\n * @see {@link https://northlight.dev/reference/form}\n *\n * @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}} onSubmit={console.log}>\n * <TextField name=\"name\" label=\"What is your name\" />\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## With form methods\n * The form context provider passes down a lot of methods for handling state\n * (?\n * <Form initialValues={{name: ''}}>\n * {({watch, reset }) => (\n * <Stack>\n * <TextField name=\"name\" label=\"What is your name?\"/>\n * <Button variant=\"danger\" onClick={() => reset({})}>Reset</Button>\n * <Code>{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n *\n * </Form>\n * ?)\n * You can view more form methods on the **<a href=\"https://react-hook-form.com/api/useform/\" target=\"_blank\">react hook form docs</a>**\n * (everything that the useForm hooks returns)\n *\n * @example (Example)\n * ## Validation with joi\n *\n * You can pass on validation either by using a custom validate\n * function, by passing html validation directly on a field, or by\n * using joi schema. joi schema is recommended when possible.\n *\n * (?\n * +\n\nconst joiSchema = Joi.object({\n username: Joi.string().alphanum().min(3).max(30).required(),\n password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),\n});\n\n * const MyForm = () => (\n <Form initialValues={{name: ''}} joiSchema={joiSchema}>\n <Stack>\n <TextField name=\"username\" label=\"User Name\"/>\n <TextField name=\"password\" label=\"Password\" />\n </Stack>\n </Form>\n )\n *\n * render(<MyForm />)\n * ?)\n *\n * @example (Example)\n * ## Moving the form state outside of Form\n * (?\n\n//This code could live in the backend\nconst submitValuesToBackend = (values) => {\n console.log({values})\n if(values.firstName !== 'Steve') {\n throw Error('We only allow people named Steve \\;\\)')\n }\n}\nconst MyForm = () => (\n<Form\n initialValues={ { firstName: '' } }\n onSubmit={ async (values, methods) => {\n try {\n await submitValuesToBackend(values)\n }\n catch (err) {\n methods.setError('firstName', { message: err.message })\n }\n } }\n>\n <HStack alignItems=\"end\" p=\"3\">\n <TextField\n name=\"firstName\"\n label=\"First Name\"\n isRequired={ true }\n />\n <Button type=\"submit\" variant=\"success\">Validate</Button>\n </HStack>\n</Form>\n\n )\n\nrender(<MyForm />)\n\n * ?)\n\n@example (Example)\n## Using a ref\nYou can move up the form state using a ref as well\n(?\n() => {\n const methods = useRef(null)\n\n return (\n <Stack>\n <Form\n ref={methods}\n initialValues={{name: ''}}\n >\n <TextField name=\"name\" label=\"What is your name?\" />\n </Form>\n <Button onClick={() => methods.current.reset({name: (Math.round(Math.random() * 100))})}>\n Get random number\n </Button>\n </Stack>\n\n )\n\n}\n?)\n\n */\nexport const Form = forwardRef(<FormValues extends FieldValues>({\n initialValues,\n onSubmit,\n children,\n validate,\n formSettings = { mode: 'onChange' },\n methods = undefined,\n enableReinitialize = false,\n shouldTrim = true,\n innerFormStyle = {},\n joiSchema,\n ...rest\n}: FormProps<FormValues>, ref: React.Ref<UseFormReturn<FormValues>>) => {\n const customResolver: Resolver<FormValues, any> = (\n values,\n _context,\n _options\n ) => ({\n values,\n errors: validate(values),\n })\n\n const getResolver = () => {\n if (validate) return customResolver\n if (joiSchema) return joiResolver(joiSchema)\n return undefined\n }\n\n const newMethods =\n methods ||\n useForm<FormValues>({\n defaultValues: initialValues as DefaultValues<FormValues>,\n resolver: getResolver(),\n ...formSettings,\n })\n\n useImperativeHandle(ref, always(newMethods), [])\n\n if (enableReinitialize) {\n const initalValuesImage = useRef({})\n useEffect(() => {\n if (!equals(initalValuesImage.current, initialValues)) {\n newMethods?.reset(initialValues)\n initalValuesImage.current = initialValues\n }\n }, [ initialValues ])\n }\n\n const formatValues = (values: FormValues) => {\n if (!shouldTrim) {\n return values\n }\n\n return trimFormValues<FormValues>(values)\n }\n\n const handleSubmit = newMethods.formState.isValid\n ? newMethods.handleSubmit((values) =>\n onSubmit(formatValues(values), newMethods)\n )\n : (e: React.FormEvent<HTMLFormElement>) => {\n newMethods.trigger()\n e.preventDefault()\n }\n\n return (\n <FormProvider { ...newMethods } { ...rest }>\n <form style={ { width: '100%', ...innerFormStyle } } onSubmit={ handleSubmit }>\n { typeof children === 'function' ? children(newMethods) : children }\n </form>\n </FormProvider>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { FormLabelProps } from './types'\nimport { Label } from '../typography'\n\n/**\n * Renders a label, meant to be used alongside a field component\n * @see Field\n * @see {@link https://northlight.dev/reference/form-label}\n *\n */\nexport const FormLabel = forwardRef<HTMLLabelElement, FormLabelProps >(({\n children: label,\n ...rest\n}, ref) => (\n <Label\n size=\"sm\"\n sx={ {\n width: '80%',\n maxWidth: '45ch',\n marginBottom: 1,\n marginInlineEnd: 3,\n } }\n requiredIndicator={ undefined }\n { ...rest }\n ref={ ref }\n >\n { label }\n </Label>\n))\n","import React, { forwardRef } from 'react'\nimport { Controller, FieldPath, FieldValues } from 'react-hook-form'\nimport { FormControl, FormErrorMessage, FormLabel } from '../form-control'\nimport { Stack } from '../stack'\nimport { FieldProps } from './types'\nimport { useFormContext } from '../../hooks'\nimport { getFieldError } from '../../utils'\n\n/**\n * Wraps children under form context\n * @see TextField\n * @see Form\n * @see {@link https://northlight.dev/reference/field}\n *\n * @example (Example)\n * ## Input example\n * (?\n * <Form initialValues={{name: ''}}>\n * <Box p=\"2\">\n * <Field name=\"name\" label=\"Input name\">\n * {({value, onChange}) => (\n * <Input value={value} onChange={onChange} />\n * )}\n * </Field>\n * </Box>\n *\n * </Form>\n * ?)\n * <br />\n * As you can see the field component acts as a middleman to connect\n * any component to the form context, via a controlled value and onChange prop.\n * Most of the common use cases for field,\n * such as text input have been abstracted into their own components, for example _TextField_\n *\n * @example (Example)\n * ## Example with validation and form submition\n * (?\n * () => {\n * const toast = useToast()\n * const handleSubmit =(v) => {\n * toast({title: 'Sent Message', description: `\"${v.message}\"`})\n * }\n * return (\n * <Form initialValues={{message: ''}} onSubmit={handleSubmit}>\n * <Stack p=\"2\">\n * <Field\n * name=\"message\"\n * label=\"Write email\"\n * isRequired={true}\n * validate={{maxLength: {message: 'Message must be under 30 characters', value: 30}}}\n * >\n * {({value, onChange}) => (\n * <Textarea value={value} onChange={onChange} />\n * )}\n * </Field>\n * <Button type=\"submit\" variant=\"brand\">Send Message</Button>\n * </Stack>\n *\n * </Form>\n * )\n * }\n * ?)\n *\n * @example (Example)\n * ## Type-safety\n * There are multiple ways to provide types for\n * the field callback values. To ensure that each\n * component within the field receives the correct\n * value, it's essential to make the field aware\n * of the form state values. When the Field component\n * does not receive any types, the \"value\" callback\n * argument will have the type of \"any\".\n * <br /><br />\n * ### Passing down the control prop (Recommended)\n * (?\n * <Form initialValues={{username: 'Alex'}}>\n * {\n * ({ control }) => {\n * <Box p=\"2\">\n * <Field name=\"username\" label=\"Input name\" control={ control }>\n * {({value, onChange}) => ( // \"value\" has type of \"string\"\n * <Input value={value} onChange={onChange} />\n * )}\n * </Field>\n * </Box>\n * }\n * }\n * </Form>\n * ?)\n * <br /><br />\n * ### Specifying generic arguments\n * You can also specify generic arguments on the Field\n * component to ensure that \"value\" has a valid type.\n * The passed generic type combined with the valid\n * \"name\" property ensures that \"value\" has the expected\n * type received from the generic type:\n * `<Field<MyFormBody> name=\"username\">...</Field>`\n */\n\nconst BaseField = <\n FormValues extends FieldValues = FieldValues,\n FieldName extends FieldPath<FormValues> = FieldPath<FormValues>\n> ({\n name,\n label,\n children,\n direction = 'column',\n isRequired = false,\n noLabelConnection = false,\n validate,\n control: passedControl,\n ...rest\n }: FieldProps<FormValues, FieldName>, ref: React.Ref<HTMLDivElement>) => {\n const methods = useFormContext<FormValues>()\n const { formState: { errors } } = methods\n const control = passedControl ?? methods.control\n\n const fieldError = getFieldError<FormValues>(name, errors)\n\n return (\n <FormControl isInvalid={ !!fieldError } isRequired={ isRequired } ref={ ref }>\n <Stack\n spacing=\"auto\"\n direction={ direction }\n alignItems={ direction === 'column' ? 'stretch' : 'center' }\n { ...rest }\n >\n { label && (\n <FormLabel htmlFor={ noLabelConnection ? undefined : name } mb={ 1 }>\n { label }\n </FormLabel>\n ) }\n <Controller\n name={ name }\n control={ control }\n rules={ validate }\n render={ ({ field }) => children(field, methods) }\n />\n </Stack>\n <FormErrorMessage>\n { fieldError && (fieldError?.message as string) }\n </FormErrorMessage>\n </FormControl>\n )\n}\n\nexport const Field = forwardRef(BaseField)\n","import { useFormContext } from '../../hooks'\nimport { SetValueOptionsType } from './types'\n\nexport const useSetValueRefreshed = () => {\n const { setValue, watch } = useFormContext()\n\n const setValueRefreshed = (name: any, value: any, options: SetValueOptionsType) => {\n watch(name)\n setValue(name, value, options)\n }\n return setValueRefreshed\n}\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { CheckboxFieldProps } from './types'\nimport { Field } from '../form'\nimport { Checkbox } from './checkbox'\nimport { Box } from '../box'\nimport { Label } from '../typography'\nimport { Flex } from '../flex'\n\n/**\n * The checkbox component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see Checkbox\n * @see {@link https://northlight.dev/reference/checkbox-field}\n * @example (Example)\n * ## Basic\n * (?\n * <Form initialValues={{name: ''}}>\n * <CheckboxField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPlacement=\"left\"\n * labelSize=\"md\"\n * />\n * </Form>\n * ?)\n *\n */\n\nexport const CheckboxField = forwardRef<HTMLDivElement, CheckboxFieldProps>(({\n name,\n label,\n variant,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPlacement = 'left',\n labelSize = 'md',\n ...rest\n}, ref) => (\n <Box\n w={ label ? 'full' : 'fit-content' }\n display=\"inline-flex\"\n >\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <Flex\n gap={ 2 }\n direction={ labelPlacement === 'left' ? 'row-reverse' : 'row' }\n >\n <Checkbox\n name={ name }\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n variant={ variant }\n data-testid=\"checkbox-field-test-id\"\n { ...rest }\n />\n <Label htmlFor={ name } sx={ { fontWeight: 'normal' } } size={ labelSize }>{ label }</Label>\n </Flex>\n ) }\n </Field>\n </Box>\n))\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { CheckboxGroup } from '@chakra-ui/react'\nimport { Field } from '../form'\nimport { Box } from '../box'\nimport { CheckboxFieldGroupProps } from './types'\n\n/**\n * The checkbox group component wrapped in a <Field />\n * meant to be used only inside <Form /> together with Checkbox\n * @see Checkbox\n * @see {@link https://northlight.dev/reference/checkbox-group-field}\n *\n */\nexport const CheckboxGroupField = forwardRef<HTMLDivElement, CheckboxFieldGroupProps>(({\n name,\n label,\n children,\n isRequired,\n direction,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <CheckboxGroup\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"checkbox-group-field-test-id\"\n { ...rest }\n >\n { children }\n </CheckboxGroup>\n ) }\n </Field>\n </Box>\n))\n","import React, { cloneElement, forwardRef } from 'react'\nimport { IconButton as ChakraIconButton } from '@chakra-ui/react'\nimport { IconButtonProps } from './types'\n\n/**\n * A normal button but renders an icon instead of text\n * @see Button\n * @see Icon\n * @see {@link https://northlight.dev/reference/icon-button}\n *\n * @example (Example)\n * (?\n * <IconButton variant='brand' icon={<Icon as={UsersDuo} />} onClick={console.log}/>\n * ?)\n *\n * @example (Example)\n * (?\n <IconButton\n isRound={ true }\n aria-label=\"create\"\n variant=\"success\"\n icon={ <Icon as={ PlusSolid } /> }\n />\n * ?)\n *\n */\nexport const IconButton = forwardRef(({\n variant = 'default',\n icon,\n 'aria-label': ariaLabel,\n children,\n ...rest\n}: IconButtonProps, ref: any) => {\n const IconComponent = icon ?? children as JSX.Element\n const IconWithSize = cloneElement(IconComponent, { size: IconComponent.props.size ?? rest.size })\n return (\n <ChakraIconButton\n variant={ variant }\n icon={ IconWithSize }\n aria-label={ ariaLabel }\n ref={ ref }\n { ...rest }\n />\n )\n})\n","import { getShades } from '../../utils'\n\nexport const columns = 5\nexport const paletteColors = getShades(100, 500)\nexport const defaultColors = getShades(500)\n","import React, { forwardRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { CheckDuo } from '@northlight/icons'\nimport { getContrastColor } from '../../utils'\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\nimport { Box } from '../box'\nimport { ColorButtonProps } from './types'\nimport { columns } from './constants'\nimport { useArrowFocus } from '../../hooks'\n\nexport const ColorButton = forwardRef(({\n color,\n onClick,\n size,\n selected = false,\n}: ColorButtonProps, ref: any) => {\n if (!color) return <Box />\n const { defaultArrows, focusPrevious, focusNext } = useArrowFocus(columns)\n\n const onKeyDown = (e: any) => {\n switch (e.key) {\n case 'PageUp':\n e.preventDefault()\n focusPrevious({ wrap: false, repeat: columns * 5 })\n break\n case 'PageDown':\n e.preventDefault()\n focusNext({ wrap: false, repeat: columns * 5 })\n break\n default:\n defaultArrows(e)\n break\n }\n }\n\n const { colorButton } = useMultiStyleConfig('ColorPicker', { size })\n\n return (\n <IconButton\n bg={ color }\n ref={ ref }\n onKeyDown={ onKeyDown }\n aria-label={ `select-${color}` }\n onClick={ onClick }\n sx={ colorButton }\n icon={ <Icon as={ CheckDuo } boxSize={ selected ? undefined : '0' } /> }\n color={ getContrastColor(color) }\n />\n )\n})\n","import React from 'react'\nimport { Popover as ChakraPopover, PopoverProps } from '@chakra-ui/react'\n\nexport const Popover = (props: PopoverProps) => (\n <ChakraPopover isLazy={ true } { ...props } />\n)\n","import React from 'react'\nimport { ChevronDownDuo, ChevronUpDuo } from '@northlight/icons'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { columns } from './constants'\nimport { ColorsExpandButtonProps } from './types'\nimport { useArrowFocus } from '../../hooks'\n\nexport const ColorsExpandButton = ({\n onClick,\n size,\n expanded,\n}: ColorsExpandButtonProps) => {\n const { defaultArrows, focusPrevious, focusFirst } = useArrowFocus(columns)\n const { colorButton } = useMultiStyleConfig('ColorPicker', { size })\n const onKeyDown = (e: any) => {\n switch (e.key) {\n case 'Tab':\n focusFirst()\n break\n case 'ArrowUp':\n e.preventDefault()\n focusPrevious({ wrap: true, repeat: 1 })\n break\n case 'PageUp':\n e.preventDefault()\n focusPrevious({ wrap: false, repeat: columns * 5 })\n break\n default:\n defaultArrows(e)\n break\n }\n }\n\n return (\n <IconButton\n variant=\"ghost\"\n onKeyDown={ onKeyDown }\n aria-label=\"display more colors\"\n onClick={ onClick }\n sx={ colorButton }\n >\n <Icon as={ expanded ? ChevronUpDuo : ChevronDownDuo } />\n </IconButton>\n )\n}\n","import { Portal, PortalProps } from '@chakra-ui/react'\nimport React from 'react'\n\ninterface RenderInPortalProps extends PortalProps {\n shouldRenderInPortal: boolean\n children: JSX.Element\n}\n\nexport const RenderInPortal =\n ({ shouldRenderInPortal, children, ...rest }: RenderInPortalProps) => {\n if (!shouldRenderInPortal) return children\n return (\n <Portal { ...rest }>\n { children }\n </Portal>\n )\n }\n","import React, { useEffect, useRef, useState } from 'react'\nimport { ColorsDuo } from '@northlight/icons'\nimport { FocusScope } from '@react-aria/focus'\nimport { useMultiStyleConfig, useToken } from '@chakra-ui/react'\nimport { useBoolean, useDisclosure } from '../../hooks'\nimport { SimpleGrid } from '../simple-grid'\nimport { Stack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { ColorPickerProps } from './types'\nimport { ColorButton } from './color-button'\nimport { columns, defaultColors, paletteColors } from './constants'\nimport {\n Popover,\n PopoverBody,\n PopoverContent,\n PopoverHeader,\n PopoverTrigger,\n} from '../popover'\nimport { ColorsExpandButton } from './colors-expand-button'\nimport { Button } from '../button'\nimport { RenderInPortal } from '../portal/render-in-portal'\n\n/**\n * Dropdown menu where user can select hex value\n * from set colors\n * @see {@link https://northlight.dev/reference/color-picker}\n *\n * @example (Example)\n * ##Pick a color for this campaign\n * (?\n * () => {\n * const [ color, setColor ] = useState(undefined)\n * return (\n * <HStack>\n * <ColorPicker color={color} onChange={setColor}/>\n * <ClipboardInput value={ color } />\n\n * </HStack>\n * )\n * }\n *\n * ?)\n *\n *\n */\nexport const ColorPicker = ({\n onChange = () => {},\n clearable = false,\n colors = defaultColors,\n expandedColors = paletteColors,\n value = null,\n name,\n size = 'md',\n shouldRenderInPortal = false,\n popoverProps,\n ...rest\n}: ColorPickerProps) => {\n const { isOpen, onToggle, onClose } = useDisclosure()\n const [ expanded, setExpanded ] = useBoolean()\n const [ selectedColor, setSelectedColor ] = useState(value)\n const [ visibleColors, setVisibleColors ] = useState(colors)\n const initialFocusRef = useRef(null)\n const {\n trigger,\n heading,\n } = useMultiStyleConfig('ColorPicker', { selectedColor, size })\n const parsedValue = value && useToken('colors', value)\n\n const baseColors = [ ...colors ]\n for (let i = 0; i < baseColors.length % columns; i += 1) {\n baseColors.push('')\n }\n\n useEffect(() => {\n if (value === '') {\n setSelectedColor(null)\n } else {\n setSelectedColor(parsedValue)\n }\n }, [ value ])\n\n useEffect(() => {\n if (expanded) {\n setVisibleColors((prev) => prev.concat(expandedColors))\n } else {\n setVisibleColors(baseColors)\n }\n }, [ expanded ])\n\n const expandColors = () => {\n setExpanded.toggle()\n }\n\n const getNumberOfColumns = () => {\n if (expanded) return columns\n if (colors.length < columns && colors.length > 2) {\n return colors.length\n }\n if (colors.length < columns) {\n return 3\n }\n return columns\n }\n\n const shouldBeFocused = (index: number) => (\n selectedColor\n ? index === visibleColors.findIndex((colorVal) => colorVal === selectedColor)\n : index === 0\n )\n\n const handleSelect = (color: string) => {\n onToggle()\n setSelectedColor(color)\n onChange(color)\n }\n\n const clearSelection = () => {\n setSelectedColor(null)\n onChange(null)\n }\n\n return (\n <Box data-testid=\"color-picker-test-id\">\n <Popover\n isOpen={ isOpen }\n onClose={ onClose }\n initialFocusRef={ initialFocusRef }\n { ...popoverProps }\n >\n <PopoverTrigger>\n <IconButton\n onClick={ onToggle }\n aria-label={ name || 'color picker' }\n name={ name }\n sx={ trigger }\n size={ size }\n icon={ <Icon as={ ColorsDuo } /> }\n { ...rest }\n />\n </PopoverTrigger>\n <RenderInPortal shouldRenderInPortal={ shouldRenderInPortal }>\n <PopoverContent w=\"auto\" boxShadow=\"md\" p={ 2 } bgColor=\"background.default\">\n <Stack>\n <PopoverHeader\n color=\"text.default\"\n sx={ heading }\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n width=\"full\"\n >\n Pick a color\n { clearable && trigger.color !== 'unset' && (\n <Button\n size=\"sm\"\n h=\"5\"\n onClick={ clearSelection }\n variant=\"ghost\"\n >\n Clear\n </Button>\n ) }\n </PopoverHeader>\n <PopoverBody p={ 0 }>\n <Stack alignItems=\"center\" p={ 0 } spacing={ 0 }>\n <FocusScope>\n <SimpleGrid\n columns={ getNumberOfColumns() }\n spacing={ 2 }\n overflowY=\"scroll\"\n maxH={ 72 }\n pr={ 2 }\n pl={ 4 }\n py={ 1 }\n >\n { visibleColors.map((color, index) => (\n <ColorButton\n color={ color }\n key={ `${color}-button-${index as number}` }\n selected={ color === selectedColor }\n ref={ shouldBeFocused(index) ? initialFocusRef : undefined }\n size={ size }\n onClick={ () => handleSelect(color) }\n />\n )) }\n </SimpleGrid>\n { expandedColors.length > 0 && (\n <ColorsExpandButton\n onClick={ expandColors }\n expanded={ expanded }\n size={ size }\n />\n ) }\n </FocusScope>\n </Stack>\n </PopoverBody>\n </Stack>\n </PopoverContent>\n </RenderInPortal>\n </Popover>\n </Box>\n )\n}\n","import React from 'react'\nimport { Field } from '../form'\nimport { ColorPicker } from './color-picker'\nimport { ColorPickerFieldProps } from './types'\n\n/**\n * The <ColorPicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see ColorPicker\n * @see {@link https://northlight.dev/reference/color-picker}\n *\n */\nexport const ColorPickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n ...rest\n}: ColorPickerFieldProps) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <ColorPicker\n name={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n)\n","import { DOMAttributes, createContext } from 'react'\nimport { RadioGroupProps, RadioGroupState, useRadioGroupState } from '@react-stately/radio'\nimport { CheckboxGroupProps, CheckboxGroupState, useCheckboxGroupState } from '@react-stately/checkbox'\nimport { AriaCheckboxGroupProps, useCheckboxGroup } from '@react-aria/checkbox'\nimport { AriaRadioGroupProps, useRadioGroup } from '@react-aria/radio'\nimport { FlipButtonGroupProps } from './types'\n\nexport const FlipButtonContext = createContext<CheckboxGroupState | RadioGroupState | null>(null)\n\nexport const useFlipButtonState = (\n props: FlipButtonGroupProps,\n isMulti: boolean\n) => (\n isMulti\n ? useCheckboxGroupState(props as CheckboxGroupProps)\n : useRadioGroupState(props as RadioGroupProps)\n)\n\nexport const useFlipButtonGroup = (\n props: FlipButtonGroupProps,\n state: CheckboxGroupState | RadioGroupState,\n isMulti: boolean\n): DOMAttributes<Element> => {\n const propsWithLabel = {\n ...props,\n 'aria-label': `${isMulti ? 'Checkbox' : 'Radio'}-button-group`,\n }\n\n return (isMulti\n ? useCheckboxGroup(\n propsWithLabel as AriaCheckboxGroupProps,\n state as CheckboxGroupState\n ).groupProps\n : useRadioGroup(\n propsWithLabel as AriaRadioGroupProps,\n state as RadioGroupState\n ).radioGroupProps\n )\n}\n\nexport const useFlipButton = (props: FlipButtonGroupProps, isMulti: boolean) => {\n const state = useFlipButtonState(props, isMulti)\n const flipButtonGroupProps = useFlipButtonGroup(props, state, isMulti)\n return { state, flipButtonGroupProps }\n}\n","import React, { useContext, useRef } from 'react'\nimport { CheckSolid } from '@northlight/icons'\nimport { useCheckboxGroupItem } from '@react-aria/checkbox'\nimport { SlideFade, useMultiStyleConfig } from '@chakra-ui/react'\nimport { useRadio } from '@react-aria/radio'\nimport { useFocusRing } from '@react-aria/focus'\nimport { mergeAll, omit } from 'ramda'\nimport { CheckboxGroupState } from '@react-stately/checkbox'\nimport { RadioGroupState } from '@react-stately/radio'\nimport { mergeProps } from '@react-aria/utils'\nimport { FlipButtonContext } from './utils'\nimport { HStack } from '../stack'\nimport { Icon } from '../icon'\nimport { Text } from '../text'\nimport { CustomContainerPropsType, CustomFlipButtonPropsType, FlipButtonProps } from './types'\n\n/**\n * Meant to act as a middleman to turn any component into\n * either a radio or checkbox input\n * where the user can choose between multiple options\n * @see CheckboxGroup\n * @see RadioGroup\n * @see FlipButtonGroup\n * @see {@link https://northlight.dev/reference/flip-button}\n *\n * @example (Example)\n * ### It must always be wrapped in a group\n * (?\n * <FlipButton />\n * ?)\n * Or it will throw an error\n *\n *\n * @example (Example)\n * ### As a radio button group\n * (?\n *<FlipButtonGroup isMulti={ false } size=\"sm\">\n <FlipButton value=\"one\" icon={AgencyDuo}>One</FlipButton>\n <FlipButton value=\"two\" icon={StagesDuo}>Two</FlipButton>\n <FlipButton value=\"three\" icon={Flag04Duo}>Three</FlipButton>\n</FlipButtonGroup>\n * ?)\n *\n * @example (Example)\n * ### As a checkbox button group\n * (?\n *<FlipButtonGroup isMulti={ true } size=\"sm\">\n <FlipButton value=\"one\" icon={TagsStackDuo}>One</FlipButton>\n <FlipButton value=\"two\" icon={Image03Duo}>Two</FlipButton>\n <FlipButton value=\"three\" icon={TagDuo }>Three</FlipButton>\n</FlipButtonGroup>\n * ?)\n *\n * @example (Example)\n * ###Custom Flip Button\n * (?\n * +\n * const customElement = ({\n flipButtonProps,\n containerProps,\n isSelected,\n label,\n value,\n}) => (\n <HStack\n { ...containerProps }\n spacing=\"4\"\n _checked={ { bgColor: 'blue.500', color: 'text.inverted' } }\n borderRadius=\"md\"\n p=\"2\"\n >\n <input { ...flipButtonProps } />\n <Icon as={ UsersDuo } />\n <Stack spacing=\"0\">\n <Text>{ label }</Text>\n <Text color={ isSelected ? 'text.inverted' : 'gray.200' }>\n { value === 'public'\n ? 'Everyone can view and edit the plan'\n : 'The plan is only visible to you'\n }\n </Text>\n </Stack>\n </HStack>\n)\n\nconst MyComponent = () => (\n<FlipButtonGroup direction=\"column\" sx={{bgColor: 'transparent'}}>\n <FlipButton value=\"public\" label=\"Public\">\n { customElement }\n </FlipButton>\n <FlipButton value=\"private\" label=\"Private\">\n { customElement }\n </FlipButton>\n</FlipButtonGroup>\n\n)\nrender(<MyComponent/>)\n *\n * ?)\n *\n */\nexport const FlipButton = (props: FlipButtonProps) => {\n const {\n children,\n size,\n variant,\n isMulti,\n isDisabled = false,\n icon,\n value,\n iconPlacement = 'left',\n ...rest\n } = props\n const state = useContext(FlipButtonContext)\n const ref = useRef(null)\n\n const propsWithoutChildren = omit([ 'children' ], { ...props, 'aria-label': `${isMulti ? 'Checkbox' : 'Radio'}-input for ${value}` })\n const { inputProps } = isMulti\n ? useCheckboxGroupItem(propsWithoutChildren, state as CheckboxGroupState, ref)\n : useRadio(propsWithoutChildren, state as RadioGroupState, ref)\n\n const { button, buttonIcon } = useMultiStyleConfig('FlipButton', { size, variant })\n const { focusProps, isFocusVisible: isFocused } = useFocusRing()\n const focusStyles = {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n }\n const focusRing = isFocused ? focusStyles : {}\n\n const isSelected = isMulti\n ? (state as CheckboxGroupState).isSelected(value)\n : (state as RadioGroupState).selectedValue === value\n\n const flipButtonProps: CustomFlipButtonPropsType = {\n ...mergeProps(inputProps, focusProps),\n ref,\n style: { opacity: '0', width: '0', height: '0' },\n 'aria-label': isMulti ? 'Checkbox-input' : 'Radio-input',\n }\n\n const containerProps: CustomContainerPropsType = {\n 'aria-checked': isSelected,\n 'aria-disabled': isDisabled,\n sx: focusRing,\n as: 'label',\n cursor: 'pointer',\n }\n\n return typeof children === 'function'\n ? children({\n state,\n containerProps,\n flipButtonProps,\n isFocused,\n isSelected,\n isDisabled,\n isMulti: isMulti || false,\n focusRing,\n value,\n ...rest,\n })\n : (\n <HStack\n spacing={ (isSelected && iconPlacement !== 'none') || icon ? 2 : 0 }\n sx={ mergeAll([ button, isFocused ? focusStyles : {}, { flexDirection: iconPlacement === 'left' ? 'row' : 'row-reverse' } ]) }\n aria-checked={ isSelected }\n aria-disabled={ isDisabled }\n as=\"label\"\n >\n <input { ...flipButtonProps } />\n { icon && iconPlacement !== 'none'\n ? (\n <Icon as={ icon || CheckSolid } sx={ buttonIcon } />\n ) : isSelected && iconPlacement !== 'none' && (\n <SlideFade in={ isSelected }>\n <Icon as={ icon || CheckSolid } sx={ buttonIcon } />\n </SlideFade>\n ) }\n <Text textAlign=\"center\">{ children }</Text>\n </HStack>\n )\n}\n","import React, { Children, cloneElement, isValidElement } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { omit } from 'ramda'\nimport { Stack } from '../stack'\nimport { FlipButtonGroupProps } from './types'\nimport { FlipButtonContext, useFlipButton } from './utils'\n\n/**\n * Provides context to FlipButton\n * @see FlipButton\n * @see {@link https://northlight.dev/reference/flip-button-group}\n */\nexport const FlipButtonGroup = (props: FlipButtonGroupProps) => {\n const {\n isMulti = false,\n name,\n children,\n direction = 'row',\n isDisabled = false,\n iconPlacement = 'left',\n size,\n variant,\n icon,\n sx = {},\n ...rest\n } = props\n\n const { state, flipButtonGroupProps } = useFlipButton(props, isMulti)\n\n const numberOfButtons = Children.count(children)\n\n const childrenWithProps = (Children.toArray(children)).map((child: React.ReactNode) =>\n (isValidElement(child)\n ? cloneElement(child, {\n key: child.props.value,\n isMulti,\n variant,\n isDisabled,\n iconPlacement,\n icon,\n size,\n ...child.props,\n })\n : child)\n )\n\n const { container } = useMultiStyleConfig('FlipButton', {\n size,\n variant,\n numberOfButtons,\n sx,\n })\n\n const restWithoutOnChange = omit([ 'onChange' ], rest)\n\n return (\n <Stack\n { ...flipButtonGroupProps }\n direction={ direction }\n id={ name }\n spacing={ 0 }\n sx={ container }\n { ...restWithoutOnChange }\n >\n <FlipButtonContext.Provider value={ state }>\n { childrenWithProps }\n </FlipButtonContext.Provider>\n </Stack>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { Field } from '../form'\nimport { FlipButtonGroup } from './flip-button-group'\nimport { FlipButtonGroupFieldProps } from './types'\n\n/**\n * The FlipButtonGroup component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FlipButton\n * @see {@link https://northlight.dev/reference/flip-button-group-field}\n *\n * @example (Example)\n * (?\n * <Form intitialValues={{foods: 'pizza'}}>\n <FlipButtonGroupField name=\"foods\" label=\"Select the food you enjoy most\" variant=\"brand\">\n <FlipButton value=\"pizza\">Pizza</FlipButton>\n <FlipButton value=\"hamburger\">Button</FlipButton>\n <FlipButton value=\"steak\">Steak</FlipButton>\n </FlipButtonGroupField>\n * </Form>\n *\n * ?)\n *\n */\nexport const FlipButtonGroupField = forwardRef<HTMLDivElement, FlipButtonGroupFieldProps>(({\n name,\n label,\n children,\n direction,\n isRequired,\n iconPlacement = 'left',\n onChange: onChangeCallback = identity,\n validate,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <FlipButtonGroup\n name={ name }\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n direction={ direction }\n value={ value }\n iconPlacement={ iconPlacement }\n { ...rest }\n >\n { children }\n </FlipButtonGroup>\n ) }\n </Field>\n))\n","import React, { forwardRef } from 'react'\nimport { Box, BoxProps } from '../box'\nimport { theme } from '../../theme'\n\nconst hoverAndActiveStyles = {\n borderLeftColor: theme.colors.border['pane-divider'].hover,\n}\n\nexport const ResizeHandle = forwardRef<HTMLDivElement, BoxProps>(\n ({ color, ...rest }, ref) => (\n <Box\n ref={ ref }\n cursor=\"col-resize\"\n _hover={ hoverAndActiveStyles }\n _active={ hoverAndActiveStyles }\n transition=\"border 250ms linear\"\n h=\"inherit\"\n w=\"1\"\n borderLeftWidth=\"lg\"\n borderLeftStyle=\"solid\"\n borderColor={ color ?? 'transparent' }\n zIndex=\"docked\"\n { ...rest }\n />\n )\n)\n","import React, { useRef } from 'react'\nimport { CalendarDuo } from '@northlight/icons'\nimport { useButton } from '@react-aria/button'\nimport { Button } from '../../../button'\nimport { TriggerProps } from './types'\nimport { Icon } from '../../../icon'\n\nexport const Trigger = (props: TriggerProps) => {\n const { isDisabled, handleClick } = props\n const ref = useRef<HTMLButtonElement>(null)\n const { buttonProps } = useButton(props, ref)\n\n return (\n <Button\n { ...buttonProps }\n ref={ ref }\n size=\"sm\"\n boxSize={ 8 }\n variant=\"ghost\"\n isDisabled={ isDisabled }\n onPointerDown={ handleClick }\n pointerEvents={ isDisabled ? 'none' : 'auto' }\n >\n <Icon as={ CalendarDuo } />\n </Button>\n )\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useDateSegment } from '@react-aria/datepicker'\nimport { Box } from '../../../box'\nimport { DateSegmentProps } from './types'\n\nexport const DateSegment = ({ segment, state }: DateSegmentProps) => {\n const ref = useRef<HTMLInputElement>(null)\n const { segmentProps } = useDateSegment(segment, state, ref)\n\n const isDivider = segment.type === 'literal'\n const { dateSegment } = useMultiStyleConfig('DatePicker')\n const minWidth = `${String(segment.maxValue).length}ch`\n\n return (\n <Box\n { ...segmentProps }\n ref={ ref }\n __css={ dateSegment }\n minWidth={ isDivider ? 0 : minWidth }\n paddingInline={ isDivider ? 0 : '0.25rem' }\n color={\n segment.isPlaceholder\n ? 'gray.500'\n : isDivider\n ? 'text.subduded'\n : 'text.default'\n }\n fontSize=\"md\"\n >\n { segment.text }\n </Box>\n )\n}\n","import { toLower } from 'ramda'\n\ntype FormatMapKey = 'y' | 'm' | 'd'\ntype FormatMapValue = 'yyyy' | 'mm' | 'dd'\n\nconst mapFormat: Record<FormatMapKey, FormatMapValue> = {\n y: 'yyyy',\n m: 'mm',\n d: 'dd',\n}\n\nexport const formatQuery = (query: string) =>\n mapFormat[toLower(query)[0] as FormatMapKey]\n\nexport const delimeterIncluded = /([.,:;|\\-/\\\\])/\n","import React, { useRef } from 'react'\nimport { useDateFieldState } from '@react-stately/datepicker'\nimport { useDateField } from '@react-aria/datepicker'\nimport { createCalendar } from '@internationalized/date'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { find, split } from 'ramda'\nimport { Box } from '../../../box'\nimport { DateSegment } from './date-segment'\nimport { DateFieldProps, DateSegmentType } from './types'\nimport { delimeterIncluded, formatQuery } from './utils'\n\nexport const DateField = (props: DateFieldProps) => {\n const ref = useRef<HTMLInputElement>(null)\n const state = useDateFieldState({\n ...props,\n /* Hard coding the United Kingdom locale,\n this enforces using english characters e.g.\n yyyy and not other such as åååå or chinese, which prevents hard to predict bugs */\n locale: 'en-GB',\n createCalendar,\n })\n\n const { dateField } = useMultiStyleConfig('DatePicker')\n const { fieldProps } = useDateField(props, state, ref)\n\n const { segments } = state\n const { dateFormat = 'dd/mm/yyyy' } = props\n const getMatchingSegment = (query: string, index: number) =>\n find(\n (segment: DateSegmentType) => segment.placeholder === formatQuery(query)\n )(segments) || { ...segments[index], text: query }\n\n const sortedSegments = split(delimeterIncluded, dateFormat).map(\n (query: string, index: number) => getMatchingSegment(query, index)\n )\n\n return (\n <Box\n { ...fieldProps }\n ref={ ref }\n display=\"flex\"\n __css={ dateField }\n data-testid=\"date-field-test-id\"\n >\n { sortedSegments.map((segment, i) => {\n const id = `${segment.type}-${i}`\n return <DateSegment segment={ segment } state={ state } key={ id } />\n }) }\n </Box>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../../../box'\nimport { StyledFieldProps } from './types'\n\nexport const StyledField = forwardRef((\n { isInvalid, isDisabled, children, variant, ...rest }: StyledFieldProps,\n ref: any\n) => {\n const { styledField } = useMultiStyleConfig('DatePicker', { variant })\n\n return (\n <Box\n { ...rest }\n ref={ ref }\n aria-invalid={ isInvalid }\n aria-disabled={ isDisabled }\n display=\"flex\"\n alignItems=\"center\"\n h={ 10 }\n __css={ styledField }\n >\n { children }\n </Box>\n )\n}\n)\n","import React from 'react'\nimport { Table as ChakraTable } from '@chakra-ui/react'\nimport { TableProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/table}\n *\n * @example\n * (?\n <Table variant=\"rounded\">\n <Thead>\n <Tr>\n <Th fontWeight=\"bold\"> Number</Th>\n <Th fontWeight=\"bold\"> Title</Th>\n </Tr>\n </Thead>\n <Tbody>\n { [1, 2, 3, 4, 5].map((num) => (\n <Tr key={ num }>\n <Td>{ num }</Td>\n <Td>\n This is great Typography man\n </Td>\n </Tr>\n )) }\n </Tbody>\n </Table>\n * ?)\n *\n */\nexport const Table = (props: TableProps) => <ChakraTable { ...props } />\n","import React, { useRef } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarCell } from '@react-aria/calendar'\nimport { isSameMonth, today } from '@internationalized/date'\nimport { CalendarCellProps } from './types'\nimport { Button } from '../../../../button'\n\nexport const CalendarCell = ({\n state,\n date,\n currentMonth,\n}: CalendarCellProps) => {\n const ref = useRef<HTMLButtonElement>(null)\n const { cellProps, buttonProps, isSelected, formattedDate } = useCalendarCell(\n { date },\n state,\n ref\n )\n const isToday = date.compare(today(state.timeZone)) === 0\n\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n\n return (\n <chakra.td { ...cellProps }>\n <Button\n { ...buttonProps }\n ref={ ref }\n borderRadius=\"xs\"\n boxSize={ 8 }\n hidden={ isOutsideMonth }\n size=\"sm\"\n fontWeight=\"medium\"\n variant={ isSelected ? 'brand' : 'ghost' }\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"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(({ weekDays }: DayLabelsProps) => {\n const { dayLabel } = useMultiStyleConfig('Calendar')\n const weekDaysWithIds = weekDays.map((day, i) => ({ label: day, _id: i }))\n\n return (\n <>\n { weekDaysWithIds.map(({ label, _id }) => (\n <chakra.th key={ _id } __css={ dayLabel }>\n { label }\n </chakra.th>\n )) }\n </>\n )\n})\n","const mondayFirstWeekDays = [ 'M', 'T', 'W', 'T', 'F', 'S', 'S' ]\nconst sundayFirstWeekDays = [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ]\n\nexport const getWeekdays = (firstDayOfWeek: 'monday' | 'sunday') =>\n (firstDayOfWeek === 'monday' ? mondayFirstWeekDays : sundayFirstWeekDays)\n","import React, { memo } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarGrid } from '@react-aria/calendar'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { Table, Tbody, Thead, Tr } from '../../../../table'\nimport { CalendarCell } from './calendar-cell'\nimport { CalendarGridProps } from './types'\nimport { DayLabels } from './day-labels'\nimport { getWeekdays } from './utils'\n\nexport const CalendarGrid = memo(\n ({ state, locale, firstDayOfWeek, ...rest }: CalendarGridProps) => {\n const startDate = state.visibleRange.start\n const { gridProps, headerProps } = useCalendarGrid(rest, state)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n const weekDays = getWeekdays(firstDayOfWeek)\n\n return (\n <Table variant=\"unstyled\" { ...gridProps }>\n <Thead { ...headerProps }>\n <Tr>\n <DayLabels weekDays={ weekDays } />\n </Tr>\n </Thead>\n <Tbody>\n { times(\n (weekIndex) => (\n <Tr key={ weekIndex }>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date) =>\n (date ? (\n <CalendarCell\n key={ date.day }\n state={ state }\n date={ date }\n currentMonth={ startDate }\n />\n ) : (\n <chakra.td />\n ))\n ) }\n </Tr>\n ),\n weeksInMonth\n ) }\n </Tbody>\n </Table>\n )\n }\n)\n","import React, { useRef } from 'react'\nimport { useButton } from '@react-aria/button'\nimport { Button } from '../../../../button'\nimport { MonthButtonProps } from './types'\n\nexport const MonthButton = ({ children, ...rest }: MonthButtonProps) => {\n const ref = useRef<HTMLButtonElement>(null)\n const { buttonProps } = useButton(rest, ref)\n\n return (\n <Button\n { ...buttonProps }\n boxSize={ 8 }\n size=\"xs\"\n variant=\"ghost\"\n ref={ ref }\n >\n { children }\n </Button>\n )\n}\n","export const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n]\n","import React, { ChangeEvent } from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { months } from '../constants'\nimport { MonthSelectProps } from './types'\n\nexport const MonthSelect = ({ state }: MonthSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n const selectedMonth = state.visibleRange.start.month - 1\n\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const diff = index - selectedMonth\n state.setFocusedDate(state.visibleRange.start.add({ months: diff }))\n }\n\n return (\n <Select\n id=\"month\"\n aria-label=\"Select Month\"\n onChange={ onChange }\n value={ selectedMonth }\n iconSize=\"0px\"\n size=\"sm\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n textAlign=\"center\"\n >\n { months.map((month, i) => (\n <option value={ i } key={ `month-${i as number}` }>\n { month }\n </option>\n )) }\n </Select>\n )\n}\n","import React from 'react'\nimport { Select, useMultiStyleConfig } from '@chakra-ui/react'\nimport { YearSelectProps } from './types'\n\nexport const YearSelect = ({\n onChange,\n years,\n}: YearSelectProps) => {\n const { dateSelect } = useMultiStyleConfig('Calendar')\n\n return (\n <Select\n id=\"year\"\n aria-label=\"Year\"\n onChange={ onChange }\n value={ 10 }\n size=\"sm\"\n iconSize=\"0px\"\n variant=\"unstyled\"\n sx={ dateSelect }\n w=\"max-content\"\n >\n { years.map((year, i) => (\n <option key={ year.formatted } value={ i }>\n { year.formatted }\n </option>\n )) }\n </Select>\n\n )\n}\n","import { useDateFormatter } from '@react-aria/i18n'\nimport { UseYearsCalendarProps, UseYearsRangeCalendarProps, YearValue } from './types'\n\nexport const useYearsCalendar = ({\n state,\n}: UseYearsCalendarProps) => {\n const years: YearValue[] = []\n const formatter = useDateFormatter({ year: 'numeric', month: 'long' })\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.focusedDate.add({ years: i })\n years.push({\n value: date,\n formatted: formatter.format(date.toDate(state.timeZone)),\n })\n }\n return { years }\n}\n\nexport const useYearsRangeCalendar = ({\n state,\n}: UseYearsRangeCalendarProps) => {\n const years: YearValue[] = []\n\n for (let i = -10; i < 10; i += 1) {\n const date = state.visibleRange.start.add({ years: i })\n years.push({\n value: date,\n formatted: `${date.year}`,\n })\n }\n return { years }\n}\n","import React, { ChangeEvent } from 'react'\nimport { YearSelect } from './year-select'\nimport { useYearsCalendar } from './utils'\nimport { YearSelectCalendarProps } from './types'\n\nexport const YearSelectCalendar = ({ state }: YearSelectCalendarProps) => {\n const { years } = useYearsCalendar({ state })\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const date = years[index].value\n state.setFocusedDate(date)\n }\n\n return (\n <YearSelect onChange={ onChange } years={ years } />\n )\n}\n","import React, { ChangeEvent } from 'react'\nimport { YearSelect } from './year-select'\nimport { useYearsRangeCalendar } from './utils'\nimport { YearSelectRangeCalendarProps } from './types'\n\nexport const YearSelectRangeCalendar = ({\n state,\n}: YearSelectRangeCalendarProps) => {\n const { years } = useYearsRangeCalendar({ state })\n const onChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const index = Number(e.target.value)\n const date = years[index].value\n state.setFocusedDate(date)\n }\n\n return (\n <YearSelect onChange={ onChange } years={ years } />\n )\n}\n","const MILLISECONDS_PER_DAY = 86400000\n\nconst getThursdayDate = (date: Date): Date => {\n const thursdayDate = new Date(date)\n thursdayDate.setDate(date.getDate() + (4 - (date.getDay() || 7)))\n return thursdayDate\n}\n\nconst hasWeek53 = (year: number): boolean => {\n const firstDayOfYear = new Date(year, 0, 1)\n return firstDayOfYear.getDay() === 4 ||\n (firstDayOfYear.getDay() === 3 && new Date(year, 1, 29).getMonth() === 1)\n}\n\nexport const getWeekNumberAtStartOfMonth = (\n year: number,\n month: number\n): number => {\n const firstDayOfMonth = new Date(year, month - 1, 1)\n const thursdayOfFirstWeek = getThursdayDate(firstDayOfMonth)\n const firstDayOfYear = new Date(year, 0, 1)\n const firstThursdayOfYear = getThursdayDate(firstDayOfYear)\n const daysDifference = thursdayOfFirstWeek.getTime() - firstThursdayOfYear.getTime()\n const weekNumber = Math.ceil((daysDifference / MILLISECONDS_PER_DAY + 1) / 7)\n\n const isYearTransition = firstThursdayOfYear.getFullYear() < year\n const isJanuaryTransition = isYearTransition\n && thursdayOfFirstWeek.getFullYear() < year && month === 1\n\n if (isJanuaryTransition) {\n return hasWeek53(year - 1) ? 53 : 52\n }\n\n if (isYearTransition && month > 1) {\n return weekNumber - 1\n }\n\n if (month === 1 && weekNumber > 51) {\n return !hasWeek53(year - 1) ? 1 : weekNumber\n }\n\n return weekNumber\n}\n\nexport const getDisplayWeek = (\n baseWeek: number,\n weekIndex: number,\n year: number,\n month: number\n): number => {\n const isJanuaryEdgeCase = month === 1 && baseWeek > 51\n\n if (isJanuaryEdgeCase) {\n return weekIndex === 0 ? baseWeek : weekIndex\n }\n\n if (weekIndex === 0) {\n return baseWeek\n }\n\n const nextWeek = baseWeek + weekIndex\n\n if (nextWeek > 52) {\n return hasWeek53(year) && nextWeek === 53 ? 53 : nextWeek - 52\n }\n\n return nextWeek\n}\n","import React, { useRef } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendarCell } from '@react-aria/calendar'\nimport { isSameMonth, today } from '@internationalized/date'\nimport { equals } from 'ramda'\nimport { RangeCellProps } from './types'\n\nexport const RangeCell = ({\n state,\n date,\n currentMonth,\n range,\n}: RangeCellProps) => {\n const isOutsideMonth = !isSameMonth(currentMonth, date)\n if (isOutsideMonth) return <chakra.td />\n\n const ref = useRef<HTMLButtonElement>(null)\n const {\n cellProps,\n buttonProps,\n isSelected: baseIsSelected,\n formattedDate,\n } = useCalendarCell({ date }, state, ref)\n\n const isToday = date.compare(today(state.timeZone)) === 0\n\n const isHighlighted = range && date < range.end && date > range.start\n\n const isSelected =\n range &&\n !isHighlighted &&\n (equals(date, range.start) || equals(date, range.end))\n\n return (\n <chakra.td { ...cellProps }>\n <chakra.button\n { ...buttonProps }\n type=\"button\"\n ref={ ref }\n borderRadius=\"xs\"\n bgColor={\n isHighlighted ? 'brand-alt' : isSelected ? 'blue.500' : 'transparent'\n }\n color={ isSelected ? 'text.inverted' : 'text.default' }\n fontSize=\"sm\"\n ring={ isToday && !isSelected ? '1px' : '0px' }\n ringColor=\"blue.500\"\n mx=\"-1px\"\n ml={ isToday ? '-2px ' : undefined }\n my=\"0a\"\n w=\"8\"\n h=\"8\"\n fontWeight=\"medium\"\n opacity={ isSelected && !baseIsSelected ? '0.4' : '1' }\n _focusVisible={ {\n outline: 'none',\n ring: '2px',\n ringColor: 'border.wcag',\n ringOffset: '1px',\n } }\n _hover={ {\n bgColor: isSelected ? 'blue.400' : 'bg.filled',\n _disabled: {\n bgColor: 'transparent',\n },\n } }\n _disabled={ {\n opacity: 0.3,\n } }\n >\n { formattedDate }\n </chakra.button>\n </chakra.td>\n )\n}\n","import React, { useMemo } from 'react'\nimport { chakra } from '@chakra-ui/react'\nimport { useCalendar, useCalendarGrid } from '@react-aria/calendar'\nimport { getWeeksInMonth } from '@internationalized/date'\nimport { times } from 'ramda'\nimport { useLocale } from '@react-aria/i18n'\nimport { CalendarState } from '@react-stately/calendar'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { DayLabels } from './day-labels'\nimport { Box } from '../../../../box'\nimport { HStack, Stack } from '../../../../stack'\nimport { Flex } from '../../../../flex'\nimport { Icon } from '../../../../icon'\nimport { Small } from '../../../../typography'\nimport { MonthSelect, YearSelectRangeCalendar } from '../date-select'\nimport { MonthButton } from './month-button'\nimport { getDisplayWeek, getWeekNumberAtStartOfMonth } from './get-week-number-start-of-month'\nimport { RangeCell } from './range-cell'\nimport { DateRangeValue } from '../quick-navigation/types'\nimport { FirstDayOfWeek } from './types'\nimport { getWeekdays } from './utils'\n\ninterface StandaloneCalendarGridProps {\n state: CalendarState\n range: DateRangeValue | undefined\n firstDayOfWeek: FirstDayOfWeek\n}\n\nexport const StandaloneCalendarGrid = ({\n state,\n range,\n firstDayOfWeek,\n ...rest\n}: StandaloneCalendarGridProps) => {\n const { locale } = useLocale()\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n {},\n state\n )\n const startDate = state.visibleRange.start\n const { gridProps, headerProps } = useCalendarGrid(rest, state)\n const weekDays = getWeekdays(firstDayOfWeek)\n const weeksInMonth = getWeeksInMonth(startDate, locale)\n const weekNumberStart = useMemo(() => {\n const weekNumber = getWeekNumberAtStartOfMonth(startDate.year, startDate.month)\n return weekNumber\n }, [ startDate.year, startDate.month ])\n\n return (\n <Box { ...calendarProps } h=\"265px\" p=\"0\">\n <Stack>\n <Flex justify=\"space-between\" w=\"full\" p=\"1\" alignItems=\"center\">\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <HStack spacing=\"0\">\n <MonthSelect state={ state } />\n <YearSelectRangeCalendar state={ state } />\n </HStack>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </Flex>\n <chakra.table { ...gridProps } sx={ { borderSpacing: '0' } }>\n <chakra.thead { ...headerProps }>\n <chakra.tr>\n <chakra.th />\n <DayLabels weekDays={ weekDays } />\n </chakra.tr>\n </chakra.thead>\n <chakra.tbody>\n { times((weekIndex) => {\n const weekNumber = getDisplayWeek(weekNumberStart,\n weekIndex,\n startDate.year,\n startDate.month)\n return (\n <chakra.tr key={ weekIndex }>\n <chakra.td>\n <Small sx={ { color: 'text.subdued' } } pr=\"2\">\n w.\n { weekNumber }\n </Small>\n </chakra.td>\n { state\n .getDatesInWeek(weekIndex, startDate)\n .map((date) =>\n (date ? (\n <RangeCell\n key={ date.day }\n state={ state }\n range={ range }\n date={ date }\n currentMonth={ startDate }\n />\n ) : (\n <chakra.td />\n ))\n ) }\n </chakra.tr>\n )\n }, weeksInMonth) }\n </chakra.tbody>\n </chakra.table>\n </Stack>\n </Box>\n )\n}\n","import React from 'react'\nimport { GregorianCalendar } from '@internationalized/date'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useLocale } from '@react-aria/i18n'\nimport { useCalendarState } from '@react-stately/calendar'\nimport { useCalendar } from '@react-aria/calendar'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { CalendarGrid, MonthButton } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { Icon } from '../../../icon'\nimport { YearSelectCalendar } from './date-select'\nimport { CalendarProps } from './types'\n\nexport const Calendar = (props: CalendarProps) => {\n const { firstDayOfWeek } = props\n const { locale } = useLocale()\n const { container } = useMultiStyleConfig('Calendar')\n\n const state = useCalendarState({\n ...props,\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const { calendarProps, prevButtonProps, nextButtonProps } = useCalendar(\n props,\n state\n )\n\n return (\n <Box { ...calendarProps } __css={ container }>\n <Stack>\n <Flex justifyContent=\"space-between\">\n <Box paddingInlineStart=\"2\">\n <YearSelectCalendar state={ state } />\n </Box>\n <HStack spacing={ 2 }>\n <MonthButton { ...prevButtonProps }>\n <Icon as={ ChevronLeftSolid } boxSize={ 4 } />\n </MonthButton>\n <MonthButton { ...nextButtonProps }>\n <Icon as={ ChevronRightSolid } boxSize={ 4 } />\n </MonthButton>\n </HStack>\n </Flex>\n <CalendarGrid\n state={ state }\n locale={ locale }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Stack>\n </Box>\n )\n}\n","import React, { ReactNode } from 'react'\nimport { I18nProvider } from '@react-aria/i18n'\nimport { FirstDayOfWeek } from '../components/calendar/components/types'\n\ninterface DatePickerLocaleWrapperProps {\n firstDayOfWeek: FirstDayOfWeek\n children: ReactNode\n}\n\nexport const DatePickerLocaleWrapper = ({\n firstDayOfWeek,\n children,\n}: DatePickerLocaleWrapperProps) => {\n const locale = firstDayOfWeek === 'monday' ? 'en-DE' : 'en-US'\n return <I18nProvider locale={ locale }>{ children }</I18nProvider>\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { useDatePicker } from '@react-aria/datepicker'\nimport { useDatePickerState } from '@react-stately/datepicker'\nimport { FocusScope } from '@react-aria/focus'\nimport { XCloseSolid } from '@northlight/icons'\nimport { parseDate } from '@internationalized/date'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { Calendar } from '../components/calendar'\nimport { DatePickerProps } from '../types'\nimport { IconButton } from '../../icon-button'\nimport { HStack } from '../../stack'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { Icon } from '../../icon'\nimport { Box } from '../../box'\nimport { DatePickerLocaleWrapper } from './date-picker-locale-wrapper'\n\n/**\n * Popover to select single date\n * @see DatePickerField\n * @see {@link https://northlight.dev/reference/date-picker}\n *\n * @example (Example)\n * ## When is your birthday\n * (?\n * () => {\n * const [ date, setDate ] = useState('2023-10-10')\n *\n * const parseDate = () => {\n * return undefined\n * }\n *\n * return (\n * <DatePicker\n * firstDayOfWeek=\"monday\"\n * resetDate={() => setDate(null)} onChange={setDate} value={parseDate(date)}/>\n * )\n * }\n *\n * ?)\n * <br />\n * ### Some notes on date format\n * As you can see in the above example, the parseDate function returns undefined.\n * The DatePicker natively handles\n * dates as a DateValue object. To get out a string value on format yyyy-mm-dd,\n * you can use the javascript <b>.toString</b> method,\n * and for getting it back from string to DateValue,\n * you can use the parseDate util.\n * <br />\n * To read more about date formatting, consult the\n * <a target=\"_blank\" style=\"fontWeight: bold;\" href=\"https://react-spectrum.adobe.com/internationalized/date/CalendarDate.html\">react aria internationalized documentation</a>\n *\n * @example (Example)\n * ## Another example\n * (?\n * <DatePicker\n * variant=\"filled\"\n * dateFormat=\"mm|dd-yyyy\"\n * />\n * ?)\n *\n */\nexport const DatePicker = (props: DatePickerProps) => {\n const {\n isDisabled,\n isClearable = true,\n resetDate,\n isInvalid = false,\n dateFormat,\n minValue,\n variant = 'outline',\n firstDayOfWeek = 'monday',\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const { group } = useMultiStyleConfig('DatePicker')\n\n const state = useDatePickerState({\n ...props,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const { buttonProps, fieldProps, calendarProps, groupProps, dialogProps } =\n useDatePicker(\n { ...props, minValue: minValue || parseDate('1994-03-08') },\n state,\n ref\n )\n\n const togglePopup = () => state.setOpen(!state.isOpen)\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ () => state.setOpen(false) }\n placement=\"bottom-end\"\n >\n <PopoverAnchor>\n <HStack minW={ 56 }>\n <InputGroup { ...groupProps } ref={ ref } __css={ group }>\n <StyledField\n isDisabled={ isDisabled }\n isInvalid={ isInvalid }\n variant={ variant }\n >\n <Box paddingInlineStart=\"1a\" paddingInlineEnd={ 10 }>\n <DateField { ...fieldProps } dateFormat={ dateFormat } />\n </Box>\n </StyledField>\n <InputRightElement\n sx={ { height: '100%', paddingRight: '1' } }\n zIndex={ 0 }\n >\n <Trigger\n { ...buttonProps }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ resetDate }\n hidden={ !state.dateValue || !isClearable }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n </PopoverAnchor>\n { state.isOpen && (\n <PopoverContent { ...dialogProps } ref={ ref } w={ 64 } border=\"none\">\n <FocusScope contain={ true } restoreFocus={ true }>\n <DatePickerLocaleWrapper firstDayOfWeek={ firstDayOfWeek }>\n <Calendar { ...calendarProps } firstDayOfWeek={ firstDayOfWeek } />\n </DatePickerLocaleWrapper>\n </FocusScope>\n </PopoverContent>\n ) }\n </Popover>\n )\n}\n","import React from 'react'\nimport { Link, chakra } from '@chakra-ui/react'\nimport { Link as ReactRouterLink } from 'react-router-dom'\nimport { useClickable } from '@chakra-ui/clickable'\nimport { isNil } from 'ramda'\nimport { ClickableProps } from './types'\nimport { ring } from '../../utils'\n\n/**\n * Wrapper component to make children interactive\n * by taking care of focus/accessibility, will render\n * either a link or button depending on if passing\n * an href\n * @see {@link https://northlight.dev/reference/clickable}\n * @example (Example)\n * ### Click to send notification\n * (?\n * () => {\n * const [ count, setCount ] = useState(0)\n * return (\n * <Clickable onClick={ () => setCount((prev) => prev + 1) }>\n <Avatar name=\"anakin skywalker\" variant=\"rounded\" notificationCount={count}/>\n </Clickable>\n * )\n * }\n * ?)\n * @example (Example)\n * ### Rendering a link if passing href\n * (?\n <Clickable href=\"/reference/select\">\n <Center boxSize=\"3xs\" bgColor=\"gray.50\">\n Link\n </Center>\n </Clickable>\n * ?)\n *\n */\nexport const Clickable = ({ href, linkProps, ...rest }: ClickableProps) => {\n const clickable = useClickable(rest)\n\n return (\n <>\n { !isNil(href) && (\n <Link\n as={ ReactRouterLink }\n _focusVisible={ ring }\n to={ href }\n _hover={ { textDecoration: 'none' } }\n { ...linkProps }\n { ...clickable }\n />\n ) }\n { isNil(href) && <chakra.button _focusVisible={ ring } { ...clickable } /> }\n </>\n )\n}\n","import React from 'react'\nimport { Clickable } from '../../../../clickable'\nimport { Label } from '../../../../typography'\nimport { Flex } from '../../../../flex'\nimport { DateButtonProps } from './types'\n\nexport const DateButton = ({\n isActive,\n onClick,\n children,\n}: DateButtonProps) => (\n <Flex maxW=\"120px\">\n <Clickable onClick={ onClick }>\n <Label\n _hover={ {\n fontWeight: 'semibold',\n } }\n sx={ {\n color: isActive ? 'background.button.brand' : 'text.default',\n cursor: 'pointer',\n fontWeight: isActive ? 'semibold' : 'regular',\n } }\n _active={ {\n fontWeight: 'semibold',\n } }\n h=\"8\"\n >\n { children }\n </Label>\n </Clickable>\n </Flex>\n)\n","import { DateRangeValue, QuickSelectState } from './types'\n\nexport const validRange = (date: DateRangeValue, state: QuickSelectState) =>\n !date || (\n (!state.minValue || date.start >= state.minValue) &&\n (!state.maxValue || date.end <= state.maxValue) &&\n date.end >= date.start\n )\n","import {\n CalendarDate,\n endOfMonth,\n endOfWeek,\n endOfYear,\n startOfMonth,\n startOfWeek,\n startOfYear,\n today,\n} from '@internationalized/date'\nimport { QuickSelectState } from './types'\n\nexport const getQuickSelectOptions = (\n state: QuickSelectState,\n locale: string,\n fiscalStartMonth: number,\n fiscalStartDay: number\n) => {\n const thisDay = today(state.timeZone)\n\n const startOfMonthWithDays = (\n date: CalendarDate,\n { months, days }: { months: number, days: number }\n ) => {\n const start = date.add({ months }).set({ day: days })\n return start\n }\n\n const endOfMonthWithDays = (\n date: CalendarDate,\n { months, days }: { months: number, days: number }\n ) => {\n const end = date.add({ months }).set({ day: days }).subtract({ days: 1 })\n return end\n }\n\n const thisWeek = {\n value: {\n start: startOfWeek(thisDay, locale),\n end: endOfWeek(thisDay, locale),\n },\n label: 'This Week',\n }\n\n const nextWeek = {\n value: {\n start: startOfWeek(thisDay.add({ weeks: 1 }), locale),\n end: endOfWeek(thisDay.add({ weeks: 1 }), locale),\n },\n label: 'Next Week',\n }\n\n const lastWeek = {\n value: {\n start: startOfWeek(thisDay.subtract({ weeks: 1 }), locale),\n end: endOfWeek(thisDay.subtract({ weeks: 1 }), locale),\n },\n label: 'Last Week',\n }\n\n const thisMonth = {\n value: {\n start: startOfMonth(thisDay),\n end: endOfMonth(thisDay),\n },\n label: 'This Month',\n }\n\n const lastMonth = {\n value: {\n start: startOfMonth(thisDay.subtract({ months: 1 })),\n end: endOfMonth(thisDay.subtract({ months: 1 })),\n },\n label: 'Last Month',\n }\n\n const thisYear = {\n value: {\n start: startOfYear(thisDay),\n end: endOfYear(thisDay),\n },\n label: 'This Year',\n }\n\n const lastYear = {\n value: {\n start: startOfYear(thisDay.subtract({ years: 1 })),\n end: endOfYear(thisDay.subtract({ years: 1 })),\n },\n label: 'Last Year',\n }\n\n const nextMonth = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 1 })),\n },\n label: 'Next Month',\n }\n\n const nextThreeMonths = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 3 })),\n },\n label: 'Next 3 Months',\n }\n\n const nextSixMonths = {\n value: {\n start: startOfMonth(thisDay.add({ months: 1 })),\n end: endOfMonth(thisDay.add({ months: 6 })),\n },\n label: 'Next 6 Months',\n }\n\n const nextYear = {\n value: {\n start: startOfYear(thisDay.add({ years: 1 })),\n end: endOfYear(thisDay.add({ years: 1 })),\n },\n label: 'Next Year',\n }\n\n // Fiscal year from input is 0-11, while internationalized gives 1-12. This corrects the check.\n const offsetFiscalYear =\n thisDay.month < fiscalStartMonth + 1 ||\n (thisDay.month === fiscalStartMonth + 1 && thisDay.day < fiscalStartDay)\n ? 1\n : 0\n\n const thisFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n { months: fiscalStartMonth, days: fiscalStartDay }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n { months: fiscalStartMonth + 12, days: fiscalStartDay }\n ),\n },\n label: 'This Fiscal Year',\n }\n\n const lastFiscalYear = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear + 1 }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear + 1 }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: 'Last Fiscal Year',\n }\n\n const yearToDate = {\n value: {\n start: startOfMonthWithDays(startOfYear(thisDay), {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }),\n end: thisDay,\n },\n label: 'Year to Date',\n }\n\n const S1 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'S1' : 'FS1',\n }\n\n const S2 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'S2' : 'FS2',\n }\n\n const F1 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 3,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q1' : 'FQ1',\n }\n\n const F2 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 3,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q2' : 'FQ2',\n }\n\n const F3 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 6,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 9,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q3' : 'FQ3',\n }\n\n const F4 = {\n value: {\n start: startOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 9,\n days: fiscalStartDay,\n }\n ),\n end: endOfMonthWithDays(\n startOfYear(thisDay).subtract({ years: offsetFiscalYear }),\n {\n months: fiscalStartMonth + 12,\n days: fiscalStartDay,\n }\n ),\n },\n label: fiscalStartMonth === 0 ? 'Q4' : 'FQ4',\n }\n\n const fiscalSemesters = [ S1, S2 ]\n const fiscalQuarters = [ F1, F2, F3, F4 ]\n const fiscalYears =\n fiscalStartMonth === 0 ? [] : [ thisFiscalYear, lastFiscalYear ]\n\n const quickDates = [\n thisYear,\n yearToDate,\n lastWeek,\n nextWeek,\n thisWeek,\n lastMonth,\n nextThreeMonths,\n nextSixMonths,\n nextMonth,\n thisMonth,\n lastYear,\n nextYear,\n ...fiscalYears,\n ]\n\n return { quickDates, fiscalQuarters, fiscalSemesters }\n}\n","import React, { useMemo } from 'react'\nimport { any, equals, map } from 'ramda'\nimport { palette } from '@northlight/tokens'\nimport { Flex, Spacer } from '../../../../flex'\nimport { Stack } from '../../../../stack'\nimport { Box } from '../../../../box'\nimport { DateButton } from './date-button'\nimport { validRange } from './utils'\nimport { Date, DateRangeValue, QuickSelectProps } from './types'\nimport { getQuickSelectOptions } from './get-quick-select-options'\n\nconst seperator = `1px solid ${palette.gray['100']}`\n\nexport const QuickSelect = ({\n state,\n fiscalStartMonth = 0,\n fiscalStartDay = 0,\n locale = '',\n height = '17.5rem',\n}: QuickSelectProps) => {\n const { quickDates, fiscalQuarters, fiscalSemesters } = useMemo(\n () => getQuickSelectOptions(state, locale, fiscalStartMonth, fiscalStartDay),\n []\n )\n\n const updateDate = (newDate: DateRangeValue) => () => {\n if (newDate) {\n state.setValue(newDate)\n state.setFocusedDateRange(newDate)\n }\n }\n\n const getIsActive = (newDate: Date) => equals(state.value, newDate.value)\n\n const shouldShow = (dates: Date[]) =>\n any((date) => validRange(date.value, state), dates)\n\n return (\n <Stack alignItems=\"start\" borderRight={ seperator } pt=\"2\">\n <Stack\n h={ height }\n overflowY=\"hidden\"\n pr=\"4\"\n _hover={ { overflowY: 'scroll' } }\n w=\"36\"\n display={ shouldShow(quickDates) ? 'initial' : 'none' }\n >\n { map(\n (quickDate) =>\n validRange(quickDate.value, state) && (\n <Box minH=\"20px\" key={ `quick-select-${quickDate.label}` }>\n <DateButton\n onClick={ updateDate(quickDate.value) }\n isActive={ getIsActive(quickDate) }\n >\n { quickDate.label }\n </DateButton>\n </Box>\n ),\n quickDates\n ) }\n </Stack>\n <Box\n w=\"50%\"\n borderTop={ seperator }\n display={ shouldShow(fiscalQuarters) ? 'initial' : 'none' }\n />\n <Spacer />\n <Flex\n justifyContent=\"space-around\"\n w=\"full\"\n pt=\"2\"\n pr=\"4\"\n display={ shouldShow(fiscalSemesters) ? 'flex' : 'none' }\n >\n { map(\n (semester) =>\n validRange(semester.value, state) && (\n <DateButton\n onClick={ updateDate(semester.value) }\n isActive={ getIsActive(semester) }\n key={ `quick-select-${semester.label}` }\n >\n { semester.label }\n </DateButton>\n ),\n fiscalSemesters\n ) }\n </Flex>\n <Flex\n justifyContent=\"space-around\"\n w=\"full\"\n pt={ shouldShow(fiscalSemesters) ? '0' : '2' }\n pr=\"4\"\n display={ shouldShow(fiscalQuarters) ? 'flex' : 'none' }\n >\n { map(\n (quarter) =>\n validRange(quarter.value, state) && (\n <DateButton\n onClick={ updateDate(quarter.value) }\n isActive={ getIsActive(quarter) }\n key={ `quick-select-${quarter.label}` }\n >\n { quarter.label }\n </DateButton>\n ),\n fiscalQuarters\n ) }\n </Flex>\n </Stack>\n )\n}\n","import React, { useRef } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { useLocale } from '@react-aria/i18n'\nimport { useCalendarState } from '@react-stately/calendar'\nimport { CalendarDate, GregorianCalendar } from '@internationalized/date'\nimport { RangeCalendarProps } from './types'\nimport { Button } from '../../../button'\nimport { Label } from '../../../typography'\nimport { Flex } from '../../../flex'\nimport { Box } from '../../../box'\nimport { StandaloneCalendarGrid } from './components'\nimport { HStack, Stack } from '../../../stack'\nimport { DateRangeValue } from './quick-navigation/types'\nimport { QuickSelect } from './quick-navigation/quick-select'\n\nconst focusRing = {\n borderWidth: 'xs',\n borderRadius: 'md',\n borderColor: 'border.brand.hover',\n borderStyle: 'solid',\n}\n\nexport const RangeCalendar = (props: RangeCalendarProps) => {\n const {\n onChange: setRange = identity,\n value,\n handleClose,\n resetDate,\n isClearable = true,\n fiscalStartMonth,\n fiscalStartDay,\n minValue,\n maxValue,\n firstDayOfWeek,\n onSave,\n buttonLabel = 'Save',\n } = props\n\n const { locale } = useLocale()\n\n const ref = useRef<HTMLDivElement>(null)\n const { rangeCalendarContainer } = useMultiStyleConfig('Calendar')\n\n const calendarOneState = useCalendarState({\n value: value && value.start ? value.start : null,\n minValue,\n maxValue,\n onChange: (newVal) => {\n setRange({\n end: value && value.end && newVal <= value.end ? value.end : newVal,\n start: newVal,\n })\n },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const calendarTwoState = useCalendarState({\n value: value && value.end ? value.end : null,\n minValue,\n maxValue,\n onChange: (newVal) => {\n setRange({\n start:\n value && value.end && value.start <= newVal ? value.start : newVal,\n end: newVal,\n })\n },\n locale,\n createCalendar: () => new GregorianCalendar(),\n })\n\n const focusDateRange = (dateRange: DateRangeValue) => {\n if (dateRange && dateRange.start && dateRange.end) {\n calendarOneState.setFocusedDate(dateRange.start as CalendarDate)\n calendarTwoState.setFocusedDate(dateRange.end as CalendarDate)\n }\n }\n\n const state = {\n setValue: setRange,\n setFocusedDateRange: focusDateRange,\n value,\n timeZone: calendarOneState.timeZone,\n minValue,\n maxValue,\n }\n\n const focusedStartMonthProps = value && value.start ? {} : focusRing\n\n const handleSave = () => {\n onSave?.()\n handleClose()\n }\n\n return (\n <Box ref={ ref } __css={ rangeCalendarContainer }>\n <Stack>\n <Flex gap={ 4 }>\n <QuickSelect\n state={ state }\n locale={ locale }\n fiscalStartMonth={ fiscalStartMonth }\n fiscalStartDay={ fiscalStartDay }\n />\n <Stack>\n <HStack alignItems=\"start\" spacing={ 8 } h=\"full\" pt=\"2\">\n <Stack h=\"full\" { ...focusedStartMonthProps }>\n <Box p=\"2\">\n <Label size=\"xs\">Start date:</Label>\n <StandaloneCalendarGrid\n state={ calendarOneState }\n range={ value }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Box>\n </Stack>\n <Stack h=\"full\" justify=\"space-between\">\n <Stack opacity={ value && value.start ? '1' : '0.4' }>\n <Box p=\"2\">\n <Label size=\"xs\">End date:</Label>\n <StandaloneCalendarGrid\n state={ calendarTwoState }\n range={ value }\n firstDayOfWeek={ firstDayOfWeek }\n />\n </Box>\n </Stack>\n <HStack pt=\"2\" alignSelf=\"end\">\n { isClearable && (\n <Button onClick={ resetDate } variant=\"ghost\" size=\"sm\">\n Clear\n </Button>\n ) }\n <Button variant=\"brand\" onClick={ handleSave } size=\"sm\">\n { buttonLabel }\n </Button>\n </HStack>\n </Stack>\n </HStack>\n </Stack>\n </Flex>\n </Stack>\n </Box>\n )\n}\n","import { has, is } from 'ramda'\n\nexport const isValidDateRange = (value: unknown) => (\n is(Object, value) &&\n has('startDate', value) &&\n has('endDate', value) &&\n is(String, value.startDate) &&\n is(String, value.endDate)\n)\n","import React, { useRef } from 'react'\nimport { FocusScope } from '@react-aria/focus'\nimport { useDateRangePickerState } from '@react-stately/datepicker'\nimport { useDateRangePicker } from '@react-aria/datepicker'\nimport { useMultiStyleConfig, useOutsideClick } from '@chakra-ui/react'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity, isNil } from 'ramda'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { DateRange } from '@react-types/datepicker'\nimport { RangeCalendar } from '../components/calendar/quick-navigation'\nimport { P } from '../../typography'\nimport { HStack } from '../../stack'\nimport { DateRangePickerProps } from '../types'\nimport { Popover, PopoverAnchor, PopoverContent } from '../../popover'\nimport { Portal } from '../../portal'\nimport { DateField, StyledField, Trigger } from '../components/date-field'\nimport { IconButton } from '../../icon-button'\nimport { InputGroup, InputRightElement } from '../../input'\nimport { Icon } from '../../icon'\nimport { isValidDateRange } from '../date-picker-field/utils'\nimport { DatePickerLocaleWrapper } from './date-picker-locale-wrapper'\n\nconst parseValue = (value: any) => {\n if (!isValidDateRange(value)) return null\n return { start: parseDate(value.startDate), end: parseDate(value.endDate) }\n}\n\nconst PortalWrapper = ({\n renderInPortal,\n children,\n}: {\n renderInPortal: boolean\n children: React.ReactNode\n}) => {\n if (renderInPortal) {\n return <Portal>{ children }</Portal>\n }\n return <>{ children }</>\n}\n\n/**\n * Popover to choose date range on format {startDate:' yyyy-mm-dd', endDate: 'yyyy-mm-dd'}\n *\n * @see DatePicker\n * @see DateRangePickerField\n * @see {@link https://northlight.dev/reference/date-range-picker}\n * @example (Example)\n * ## Advanced Mode\n * (Due to it being harder to setup normal date range picker,\n * the date range picker field is demoed,\n * here, you need to pass down and parse a value for the date range picker for it to work properly,\n * consult the date picker documentation and the source code for date range picker\n * field for appropiate use)\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField name=\"date\"/>\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## Simple mode\n * The previous example was the date range picker variant\n * for which we call advance, this one is a simpler version with the same core functionality:\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField name=\"date\" />\n * </Form>\n * ?)\n *\n * @example (Example)\n * ## Sophisticated example\n * The `DateRangePickerField` can have **fiscalStartMonth** and **fiscalStartDay** as a `number`\n * (?\n * <Form initialValues={{date: null}}>\n * <DateRangePickerField\n * name=\"date\"\n * mode=\"advanced\"\n * variant=\"filled\"\n * fiscalStartMonth={3}\n * fiscalStartDay={5}\n * dateFormat=\"mm|dd-yyyy\"\n * minValue=\"2023-01-01\"\n * maxValue=\"2028-01-01\"\n * />\n * </Form>\n * ?)\n */\nexport const DateRangePicker = (props: DateRangePickerProps) => {\n const {\n isDisabled,\n isClearable = true,\n resetDate,\n isInvalid = false,\n dateFormat,\n fiscalStartMonth,\n fiscalStartDay,\n variant = 'outline',\n onChange: onChangeCallback = identity,\n value,\n minValue = '1994-03-08',\n maxValue,\n renderInPortal = false,\n firstDayOfWeek,\n onSave,\n buttonLabel = 'Save',\n } = props\n const ref = useRef() as React.MutableRefObject<HTMLInputElement>\n const { group } = useMultiStyleConfig('DatePicker')\n const parsedProps = {\n onChange: (date: DateRange) => {\n onChangeCallback({\n startDate: date?.start.toString(),\n endDate: date?.end.toString(),\n })\n },\n value: parseValue(value) as { start: DateValue, end: DateValue },\n minValue: isNil(minValue) ? undefined : (parseDate(minValue) as DateValue),\n maxValue: isNil(maxValue) ? undefined : (parseDate(maxValue) as DateValue),\n }\n const state = useDateRangePickerState({\n ...props,\n ...parsedProps,\n shouldCloseOnSelect: false,\n hideTimeZone: true,\n })\n\n const {\n groupProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDateRangePicker(\n {\n ...props,\n ...parsedProps,\n minValue: parsedProps.minValue || parseDate('1994-03-08'),\n },\n state,\n ref\n )\n\n const togglePopup = () => state.setOpen(!state.isOpen)\n\n const handleClose = () => {\n state.setOpen(false)\n }\n\n useOutsideClick({\n ref,\n handler: () => state.setOpen(false),\n })\n\n return (\n <Popover\n isOpen={ state.isOpen }\n onClose={ handleClose }\n placement=\"bottom-start\"\n >\n <PopoverAnchor>\n <HStack>\n <InputGroup { ...groupProps } ref={ ref } __css={ group }>\n <StyledField\n isDisabled={ isDisabled }\n isInvalid={ isInvalid }\n variant={ variant }\n >\n <HStack paddingInlineStart=\"1a\" paddingInlineEnd={ 10 }>\n <DateField { ...startFieldProps } dateFormat={ dateFormat } />\n <P>-</P>\n <DateField { ...endFieldProps } dateFormat={ dateFormat } />\n </HStack>\n </StyledField>\n <InputRightElement sx={ { height: '100%', paddingRight: '1' } }>\n <Trigger\n { ...buttonProps }\n isDisabled={ isDisabled }\n handleClick={ togglePopup }\n />\n </InputRightElement>\n </InputGroup>\n <IconButton\n aria-label=\"reset-date\"\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n onClick={ resetDate }\n hidden={ !isClearable }\n isDisabled={ isDisabled }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n </PopoverAnchor>\n <PortalWrapper renderInPortal={ renderInPortal }>\n { state.isOpen && (\n <PopoverContent { ...dialogProps } ref={ ref } w=\"max-content\">\n <FocusScope contain={ true } restoreFocus={ true }>\n <DatePickerLocaleWrapper firstDayOfWeek={ firstDayOfWeek }>\n <RangeCalendar\n { ...calendarProps }\n resetDate={ resetDate }\n handleClose={ handleClose }\n fiscalStartMonth={ fiscalStartMonth || 0 }\n fiscalStartDay={ fiscalStartDay || 0 }\n isClearable={ isClearable }\n firstDayOfWeek={ firstDayOfWeek }\n onSave={ onSave }\n buttonLabel={ buttonLabel }\n />\n </DatePickerLocaleWrapper>\n </FocusScope>\n </PopoverContent>\n ) }\n </PortalWrapper>\n </Popover>\n )\n}\n","import React from 'react'\nimport { all, isNil, not } from 'ramda'\nimport { InputGroup } from '../../components/input'\nimport { InputGroupWrapperProps } from './types'\n\nexport const InputGroupWrapper = ({\n inputLeftElement,\n inputRightElement,\n children,\n ...rest\n}: InputGroupWrapperProps) => {\n const containsInputGroupElement =\n not(all(isNil, [ inputLeftElement, inputRightElement ]))\n\n return containsInputGroupElement\n ? (\n <InputGroup { ...rest }>\n { inputLeftElement }\n { children }\n { inputRightElement }\n </InputGroup>\n )\n : <>{ children }</>\n}\n","import React, { forwardRef } from 'react'\nimport { DateValue, parseDate } from '@internationalized/date'\nimport { identity } from 'ramda'\nimport { DatePickerFieldProps } from '../types'\nimport { Field } from '../../form'\nimport { DatePicker } from '../date-picker/date-picker'\nimport { useFormContext } from '../../../hooks'\nimport { InputGroupWrapper } from '../../../internal-components/input-group-wrapper'\n\n/**\n * The <DatePicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see DatePicker\n * @see {@link https://northlight.dev/reference/date-picker-field}\n *\n * @example (Example)\n * ##Fill in your information:\n * (?\n * <Form initialValues={{date: null}}>\n * <DatePickerField name=\"date\" />\n * </Form>\n *\n * ?)\n * <br />\n * ###The simplest way\n * Using the date picker in a form is probably the easiest\n * way to use it, it will handle the state for you and you\n * can retrieve the date at the end as a string on format\n * yyyy-mm-dd on the onSubmit callback on <Form>\n *\n */\nexport const DatePickerField = forwardRef<HTMLDivElement, DatePickerFieldProps>(({\n name,\n minValue,\n maxValue,\n isRequired,\n direction = 'column',\n label,\n validate,\n firstDayOfWeek = 'monday',\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}, ref) => {\n const { setValue, setError, trigger } = useFormContext()\n\n const handleChange = (date: DateValue) => {\n setValue(name, date?.toString())\n if ((minValue && date < parseDate(minValue)) || (maxValue && date > parseDate(maxValue))) {\n setError(name, {\n type: 'custom',\n message: minValue && maxValue\n ? `Date must be between ${minValue}-${maxValue}`\n : minValue\n ? `Select date earliest at ${minValue}`\n : `Select date latest at ${maxValue}`\n ,\n })\n } else {\n trigger(name)\n }\n onChangeCallback(date)\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <DatePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n resetDate={ () => onChange(null) }\n value={ value ? parseDate(value) as any : null }\n minValue={ minValue ? parseDate(minValue) as DateValue : undefined }\n maxValue={ maxValue ? parseDate(maxValue) as DateValue : undefined }\n validationState={ errors.name ? 'invalid' : 'valid' }\n { ...rest as any }\n />\n </InputGroupWrapper>\n ) }\n </Field>\n\n )\n})\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { DateRangePickerFieldProps, FormBody } from '../types'\nimport { Field } from '../../form'\nimport { DateRangePicker } from '../date-picker/date-range-picker'\nimport { useFormContext } from '../../../hooks'\n\n/**\n * The <DateRangePicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see DateRangePicker\n * @see {@link https://northlight.dev/reference/date-range-picker-field}\n *\n */\nexport const DateRangePickerField = forwardRef<HTMLDivElement, DateRangePickerFieldProps>(({\n name,\n minValue,\n maxValue,\n isRequired,\n direction = 'column',\n label,\n validate,\n firstDayOfWeek = 'monday',\n onChange: onChangeCallback = identity,\n isClearable = true,\n onSave,\n buttonLabel = 'Save',\n ...rest\n}, ref) => {\n const { setValue, setError, trigger } = useFormContext<FormBody>()\n\n const handleChange = (dateRange: { startDate: string, endDate: string }) => {\n setValue(name, dateRange)\n if (\n (minValue && dateRange?.startDate < minValue) ||\n (maxValue && dateRange?.endDate > maxValue)\n ) {\n setError(name, {\n type: 'custom',\n message:\n minValue && maxValue\n ? `Date must be between ${minValue}-${maxValue}`\n : minValue\n ? `Select date earliest at ${minValue}`\n : `Select date latest at ${maxValue}`,\n })\n } else {\n trigger(name)\n }\n onChangeCallback(dateRange)\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }, { formState: { errors } }) => (\n <DateRangePicker\n firstDayOfWeek={ firstDayOfWeek }\n aria-label={ label }\n isInvalid={ !!errors[name] }\n onChange={ handleChange }\n onSave={ onSave }\n resetDate={ () => onChange(null) }\n value={ value }\n minValue={ minValue }\n maxValue={ maxValue }\n validationState={ errors.name ? 'invalid' : 'valid' }\n isClearable={ isClearable }\n buttonLabel={ buttonLabel }\n { ...(rest as any) }\n />\n ) }\n </Field>\n )\n})\n","import {\n AlertCircleSolid,\n AlertOctagonSolid,\n AlertTriangleSolid,\n BrightnessSolid,\n CheckCircleSolid,\n HelpCircleSolid,\n InfoSolid,\n} from '@northlight/icons'\nimport { AlertVariants } from '../../alert/types'\n\nexport const tooltipIconMap: Record<AlertVariants, any> = {\n success: CheckCircleSolid,\n warning: AlertTriangleSolid,\n error: AlertCircleSolid,\n danger: AlertOctagonSolid,\n info: InfoSolid,\n ai: BrightnessSolid,\n default: HelpCircleSolid,\n ghost: HelpCircleSolid,\n}\n","import React from 'react'\nimport {\n Tooltip as ChakraTooltip,\n HStack,\n VStack,\n} from '@chakra-ui/react'\nimport { Label, P } from '../typography'\nimport { Icon } from '../icon'\nimport { AlertVariants } from '../alert'\nimport { tooltipIconMap } from '../types/tooltipIconMap'\nimport { OurTooltipProps } from './types'\n\n/**\n * A tooltip is a brief, informative message that appears when a user interacts with an element.\n * @see {@link https://northlight.dev/reference/tooltip}\n *\n * @example\n * (?\n * <HStack>\n * <Tooltip\n * hasIcon={ true }\n * description=\"Here’s a regular tooltip with some with icon\n * inside of it that’s supposed to be substantially large.\">\n * <Badge>ICON</Badge>\n * </Tooltip>\n * <Tooltip\n * description=\"Here’s a regular tooltip with some text without icon\n * inside of it that’s supposed to be substantially large.\"\n * >\n * <Badge>NOICON</Badge>\n * </Tooltip>\n * <Tooltip\n * description={\n * <Box>\n * <Text>\n * Some text\n * </Text>\n * <UnorderedList>\n * <ListItem>\n * List item 1\n * </ListItem>\n * <ListItem>\n * List item 2\n * </ListItem>\n * <ListItem>\n * List item 3\n * </ListItem>\n * </UnorderedList>\n * </Box>\n * }\n * >\n * <Badge>With JSX content</Badge>\n * </Tooltip>\n * </HStack>\n * ?)\n *\n *\n * @example\n * (?\n * <HStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"success\"\n * description=\"This is a successful message\"\n * >\n * <Badge colorScheme=\"green\">Success</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"success\"\n * title=\"Please check fields\"\n * description=\"This is a successful message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"green\">Success</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"info\"\n * description=\"This is an informative text\"\n * >\n * <Badge colorScheme=\"blue\">Info</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"info\"\n * title=\"Please check fields\"\n * description=\"This is an informative text with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"blue\">Info</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"warning\"\n * description=\"This is a warning\"\n * >\n * <Badge colorScheme=\"yellow\">Warning</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"warning\"\n * title=\"Please check fields\"\n * description=\"This is a warning with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"yellow\">Warning</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"danger\"\n * description=\"This is an error message\"\n * >\n * <Badge colorScheme=\"red\">Error</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"danger\"\n * title=\"Please check fields\"\n * description=\"This is an error message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"red\">Error</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ai\"\n * description=\"This is an AI message\">\n * <Badge colorScheme=\"teal\" variant=\"subtle\">AI</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ai\"\n * title=\"Please check fields\"\n * description=\"This is an AI message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge colorScheme=\"teal\" variant=\"subtle\">AI</Badge>\n * </Tooltip>\n * </VStack>\n * <VStack>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ghost\"\n * description=\"This is an clean message\">\n * <Badge>Ghost</Badge>\n * </Tooltip>\n * <Tooltip\n * hasIcon={ true }\n * variant=\"ghost\"\n * title=\"Please check fields\"\n * description=\"This is an clean message with a title and an icon\n * that’s supposed to be substantially large.\"\n * >\n * <Badge>Ghost</Badge>\n * </Tooltip>\n * </VStack>\n * </HStack>\n * ?)\n */\n\nexport const Tooltip: React.FC<OurTooltipProps> = ({\n variant = 'default',\n hasArrow = true,\n title = '',\n description = '',\n hasIcon = false,\n ...rest\n}) => {\n const iconVariant: AlertVariants = variant as AlertVariants\n const icon = tooltipIconMap[iconVariant]\n\n const TooltipContent = (\n <HStack alignItems=\"flex-start\">\n { hasIcon && <Icon as={ icon } color={ `icon.toast.${iconVariant}` } /> }\n <VStack spacing={ 0 } alignItems=\"flex-start\">\n <Label size=\"sm\">{ title }</Label>\n <P\n variant=\"14\"\n sx={ {\n color: !variant || variant === 'ai' ? 'text.inverted' : 'text.default',\n } }\n >\n { description }\n </P>\n </VStack>\n </HStack>\n )\n return (\n <ChakraTooltip\n hasArrow={ hasArrow }\n hasIcon={ hasIcon }\n label={ title || description ? TooltipContent : undefined }\n variant={ variant }\n { ...rest }\n />\n )\n}\n","import React from 'react'\nimport { Circle } from '@chakra-ui/react'\nimport { chakra } from '@chakra-ui/system'\nimport { TimeoutProgressCircleProps } from './types'\n\nexport const TimeoutProgressCircle = ({\n progress,\n ringColor = 'border.error',\n ...rest\n}: TimeoutProgressCircleProps) => {\n const RADIUS = 22\n const STROKE_WIDTH = 3\n const SVG_SIZE = 2 * (RADIUS + STROKE_WIDTH)\n const CIRCUMFERENCE = 2 * Math.PI * RADIUS\n const strokeDashoffset = CIRCUMFERENCE - (progress / 100) * CIRCUMFERENCE\n\n return (\n <Circle\n as=\"svg\"\n size={ `${SVG_SIZE}px` }\n viewBox={ `0 0 ${SVG_SIZE} ${SVG_SIZE}` }\n sx={ {\n transform: 'rotate(-90deg)',\n } }\n { ...rest }\n >\n <chakra.circle\n cx={ SVG_SIZE / 2 }\n cy={ SVG_SIZE / 2 }\n r={ RADIUS }\n fill=\"transparent\"\n stroke=\"border.hover\"\n strokeWidth={ STROKE_WIDTH }\n />\n <chakra.circle\n cx={ SVG_SIZE / 2 }\n cy={ SVG_SIZE / 2 }\n r={ RADIUS }\n fill=\"transparent\"\n stroke={ ringColor }\n strokeWidth={ STROKE_WIDTH }\n strokeDasharray={ CIRCUMFERENCE }\n strokeDashoffset={ strokeDashoffset }\n strokeLinecap=\"round\"\n />\n </Circle>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { TrashDuo } from '@northlight/icons'\nimport { Tooltip } from '../tooltip'\nimport { Center } from '../center'\nimport { Icon } from '../icon'\nimport { IntentButtonProps } from './types'\nimport { TimeoutProgressCircle } from './timeout-progress-circle'\nimport { IconButton } from '../icon-button'\n\n/**\n * @see {@link https://northlight.dev/reference/intent-button}\n *\n * Hold in to confirm delete\n *\n * @example\n * (?\n * +\n *\n * const Example = () => {\n * const [isShowing, setIsShowing] = useState(true)\n *\n * const handleDelete = () => {\n * setIsShowing(false)\n * }\n *\n * return (\n * <>\n * {isShowing && (\n * <IntentButton onTimeout={handleDelete} />\n * )}\n * </>\n * )\n *\n * }\n * render(<Example />)\n *?)\n *\n */\nexport const IntentButton = ({\n icon = TrashDuo,\n timeout = 1000,\n ringColor = 'border.error',\n onTimeout = () => {},\n tooltipText = 'Hold to Delete',\n 'aria-label': ariaLabel = 'confirm delete',\n ...rest\n}: IntentButtonProps) => {\n const [ progress, setProgress ] = useState(0)\n const [ isHovering, setIsHovering ] = useState(false)\n const timerRef = useRef<number | undefined>(undefined)\n\n const clearTimer = () => {\n if (timerRef.current) {\n clearInterval(timerRef.current)\n timerRef.current = undefined\n }\n setProgress(0)\n }\n\n useEffect(() => clearTimer, [])\n\n const startTimer = () => {\n clearTimer()\n\n const startTime = Date.now()\n timerRef.current = setInterval(() => {\n const elapsedTime = Date.now() - startTime\n const updatedProgress = (elapsedTime / timeout) * 100\n if (updatedProgress >= 100) {\n clearInterval(timerRef.current)\n onTimeout()\n } else {\n setProgress(updatedProgress)\n }\n }, 10)\n }\n\n const handleMouseEnter = () => {\n setIsHovering(true)\n }\n\n const handleMouseLeave = () => {\n setIsHovering(false)\n clearTimer()\n }\n\n return (\n <Tooltip label={ tooltipText } placement=\"top\">\n <Center\n position=\"relative\"\n cursor=\"pointer\"\n onMouseDown={ startTimer }\n onMouseUp={ clearTimer }\n onMouseLeave={ handleMouseLeave }\n onMouseEnter={ handleMouseEnter }\n boxSize=\"50px\"\n opacity={ `${(100 - progress) / 100}` }\n { ...rest }\n >\n <IconButton\n icon={ <Icon as={ icon } /> }\n size=\"md\"\n aria-label={ ariaLabel }\n variant=\"ghost\"\n />\n { isHovering && (\n <TimeoutProgressCircle\n ringColor={ ringColor }\n progress={ progress }\n position=\"absolute\"\n top=\"0\"\n left=\"0\"\n />\n ) }\n </Center>\n </Tooltip>\n )\n}\n","export const defaultFadeDelay = 250\nexport const defaultOffset = 20\n","import { useEffect, useState } from 'react'\nimport { identity } from 'ramda'\nimport { getChildrenWithProps } from '../../utils'\nimport {\n ChildrenType,\n DurationType,\n OffsetType,\n TransitionDirection,\n} from './types'\nimport { defaultFadeDelay, defaultOffset } from './constants'\n\nconst unFocusStyles = { tabIndex: '-1' }\nexport const getChildrenWithFocus = (\n children: ChildrenType,\n disableFocus: boolean,\n show: boolean\n) =>\n (show\n ? children\n : disableFocus\n ? getChildrenWithProps(children, unFocusStyles)\n : children)\n\nexport const getDuration = (\n enterDuration: DurationType,\n exitDuration: DurationType,\n duration: DurationType\n) => {\n const inDuration = enterDuration || duration || defaultFadeDelay\n const outDuration = exitDuration || duration || defaultFadeDelay\n const transition = {\n enter: {\n duration: inDuration / 1000,\n },\n exit: {\n duration: outDuration / 1000,\n },\n }\n return transition\n}\n\nexport const getOffsets = (\n direction: TransitionDirection,\n offset: OffsetType,\n offsetX: OffsetType,\n offsetY: OffsetType\n) => {\n if (offsetX || offsetY) {\n return { offsetX, offsetY }\n }\n if (direction) {\n const delta = offset || defaultOffset\n switch (direction) {\n case 'right':\n return { offsetX: delta, offsetY: 0 }\n case 'left':\n return { offsetX: -delta, offsetY: 0 }\n case 'top':\n return { offsetX: 0, offsetY: -delta }\n case 'bottom':\n return { offsetX: 0, offsetY: delta }\n default:\n break\n }\n }\n return { offsetX: defaultOffset, offsetY: defaultOffset }\n}\n\nexport const useDelay = (\n show: boolean,\n enterDelay: number,\n exitDelay: number\n) => {\n const [ showWithDelay, setShowWithDelay ] = useState(false)\n useEffect(() => {\n const ref = setTimeout(\n () => setShowWithDelay(show),\n show ? enterDelay : exitDelay\n )\n return () => clearTimeout(ref)\n }, [ show ])\n return showWithDelay\n}\n\nexport const useHiddenDisplay = (\n anchor = false,\n exitDelay = 0,\n exitDuration: DurationType = 0,\n duration: DurationType = 0,\n onTransitionComplete: (hidden: boolean) => void = identity\n) => {\n const [ hidden, setHidden ] = useState(anchor)\n\n useEffect(() => {\n const ref = setTimeout(() => {\n setHidden(anchor)\n onTransitionComplete(anchor)\n }, exitDelay + (exitDuration || duration || 0))\n return () => clearTimeout(ref)\n }, [ anchor ])\n\n return hidden\n}\n","import React from 'react'\nimport { Fade as ChakraFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { FadeProps } from './types'\n/**\n * Simple transition to hide/show content\n * @see ScaleFade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/fade}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Render random number</Button>\n <Box borderRadius=\"sm\"\n borderWidth=\"sm\" borderColor=\"border.default\">\n <Fade in={ show} exitDuration={1}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <H3>\n {Math.round(Math.random() * 100)}\n </H3>\n </HStack>\n </Fade>\n </Box>\n </>\n\n )\n\n}\n\n * ?)\n *\n */\nexport const Fade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: FadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraFade\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraFade>\n )\n}\n","import React from 'react'\nimport { ScaleFade as ChakraScaleFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { ScaleFadeProps } from './types'\n\n/**\n * Simple transition to hide/show content\n * @see Fade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/slide-fade}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Render random number</Button>\n <Box borderRadius=\"sm\"\n borderWidth=\"sm\" borderColor=\"border.default\">\n <SlideFade in={ show} exitDuration={1}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <H3>\n {Math.round(Math.random() * 100)}\n </H3>\n </HStack>\n </SlideFade>\n </Box>\n </>\n )\n}\n * ?)\n *\n */\nexport const ScaleFade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: ScaleFadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraScaleFade\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraScaleFade>\n )\n}\n","import React from 'react'\nimport { Slide as ChakraSlide } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { SlideProps } from './types'\n\nexport const Slide = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n direction = 'bottom',\n onTransitionComplete = identity,\n ...rest\n}: SlideProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraSlide\n in={ showWithDelay }\n transition={ transition }\n direction={ direction }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraSlide>\n )\n}\n","import React from 'react'\nimport { SlideFade as ChakraSlideFade } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, getOffsets, useDelay, useHiddenDisplay } from './utils'\nimport { SlideFadeProps } from './types'\nimport { defaultOffset } from './constants'\n\nexport const SlideFade = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n direction = 'bottom',\n offset: delta = defaultOffset,\n offsetX: deltaX = 0,\n offsetY: deltaY = 0,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: SlideFadeProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const { offsetX, offsetY } = getOffsets(direction, delta, deltaX, deltaY)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraSlideFade\n in={ showWithDelay }\n transition={ transition }\n offsetX={ offsetX }\n offsetY={ offsetY }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraSlideFade>\n )\n}\n","import React from 'react'\nimport { Collapse as ChakraCollapse } from '@chakra-ui/react'\nimport { identity } from 'ramda'\nimport { getChildrenWithFocus, getDuration, useDelay, useHiddenDisplay } from './utils'\nimport { CollapseProps } from './types'\n\n/**\n * Simple transition to hide/show content\n * @see Fade\n * @see ScaleFade\n * @see SlideFade\n * @see {@link https://northlight.dev/reference/collapse}\n *\n * @example (Example)\n * ##View other options\n * (?\n *\n() => {\n const [ show, setShow ] = useState(false)\n const toggle = () => {\n setShow((prev) => !prev)\n\n }\n return (\n <>\n <Button onClick={toggle}>Click Me</Button>\n <Box borderRadius=\"sm\"\n borderWidth=\"sm\" borderColor=\"border.default\">\n <Collapse in={ show}>\n <HStack p=\"10\" bg=\"bg.filled\" rounded=\"md\" >\n <P>\n Enable advanced mode\n </P>\n\n <Switch />\n </HStack>\n </Collapse>\n </Box>\n </>\n\n )\n\n}\n\n * ?)\n\n *\n */\n\nexport const Collapse = ({\n children,\n enterDuration = null,\n exitDuration = null,\n duration = null,\n in: show = false,\n disableFocus = true,\n hideDisplay = false,\n enterDelay = 0,\n exitDelay = 0,\n onTransitionComplete = identity,\n ...rest\n}: CollapseProps) => {\n const transition = getDuration(enterDuration, exitDuration, duration)\n const showWithDelay = useDelay(show, enterDelay, exitDelay)\n const isHidden = useHiddenDisplay(show, exitDelay, exitDuration, duration, onTransitionComplete)\n const childrenWithProps = getChildrenWithFocus(children, disableFocus, isHidden)\n\n return (\n <ChakraCollapse\n in={ showWithDelay }\n transition={ transition }\n unmountOnExit={ hideDisplay }\n { ...rest }\n >\n { childrenWithProps }\n </ChakraCollapse>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig, useToken } from '@chakra-ui/system'\nimport { coreZIndex } from '@northlight/tokens'\nimport { FocusScope } from '@react-aria/focus'\nimport { useResizeWidth } from '../../hooks'\nimport { Flex } from '../flex'\nimport { Slide } from '../transitions'\nimport { Box } from '../box'\nimport { Portal } from '../portal'\nimport { ToolboxProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\nimport { ResizeHandle } from '../resize-handle'\nimport { VStack } from '../stack'\n\n/**\n * Controllable Sidebar drawer\n * @see Slide\n * @see {@link https://northlight.dev/reference/toolbox}\n * @example\n * (?\n *() => {\n const { isOpen, onOpen, onClose } = useDisclosure()\n return (\n <Flex>\n <Button onClick={ onOpen } w=\"full\">\n Open Toolbox\n </Button>\n <Toolbox\n isOpen={ isOpen }\n isResizable={ true }\n onClose={ onClose }\n size=\"sm\"\n resizeLimit=\"half\"\n >\n <ToolboxHeader>Title</ToolboxHeader>\n <ToolboxContent>\n <Stack>\n <Input />\n <Input />\n </Stack>\n </ToolboxContent>\n <ToolboxFooter justifyContent=\"end\" gap=\"2\">\n <Button variant=\"ghost\">Cancel</Button>\n <Button variant=\"brand\">Save</Button>\n </ToolboxFooter>\n </Toolbox>\n </Flex>\n )\n }\n * ?)\n */\nexport const Toolbox = ({\n isResizable = false,\n isOpen = false,\n children,\n direction = 'right',\n shouldPush = false,\n size = 'sm',\n onClose,\n autoFocus = true,\n resizeLimit = 'full',\n zIndex = coreZIndex.overlay,\n ...rest\n}: ToolboxProps) => {\n const { container } = useMultiStyleConfig('Toolbox', { size })\n const newChildren = getChildrenWithProps(\n children,\n { onClose },\n (_child, i) => i === 0\n )\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopPropagation()\n onClose?.()\n }\n }\n\n const getPixelSize = (sizeToken: string) => {\n const widthInRem = useToken('sizes', sizeToken)\n return parseFloat(widthInRem) * 16\n }\n\n const defaultWidthPx = getPixelSize(size)\n const minWidthPx = getPixelSize('sm')\n const maxWidthPx =\n resizeLimit === 'half' ? 0.5 * window.innerWidth : window.innerWidth\n\n const { adjustableWidth, resizeProps } = useResizeWidth({\n minWidthPx,\n maxWidthPx,\n defaultWidthPx,\n stationaryEdge: direction,\n })\n\n return (\n <Box\n w={ adjustableWidth }\n display={ isOpen && shouldPush ? 'initial' : 'none' }\n >\n <Portal>\n <Slide\n direction={ direction }\n in={ isOpen }\n style={ {\n height: container.h as string,\n width: adjustableWidth,\n zIndex,\n } }\n >\n <Flex\n sx={ { ...container, w: adjustableWidth } }\n onKeyDown={ handleKeyDown }\n position=\"relative\"\n overflow=\"hidden\"\n direction={ direction === 'left' ? 'row-reverse' : 'row' }\n { ...rest }\n >\n { isResizable && <ResizeHandle { ...resizeProps } /> }\n <FocusScope autoFocus={ autoFocus }>\n <VStack w=\"full\" h=\"full\" alignItems=\"normal\">\n { newChildren }\n </VStack>\n </FocusScope>\n </Flex>\n </Slide>\n </Portal>\n </Box>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { CloseButton } from '../close-button'\nimport { Flex } from '../flex'\nimport { ToolboxHeaderProps } from './types'\nimport { H4 } from '../typography'\n\n/**\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-header}\n *\n */\nexport const ToolboxHeader = ({\n children,\n onClose,\n ...rest\n}: ToolboxHeaderProps) => {\n const { header } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex sx={ header } { ...rest }>\n { typeof children === 'string' ? <H4>{ children }</H4> : children }\n <CloseButton\n aria-label=\"Close toolbox\"\n position=\"fixed\"\n right={ 4 }\n onClick={ onClose }\n />\n </Flex>\n )\n}\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/system'\nimport { merge } from 'ramda'\nimport { Flex } from '../flex'\nimport { ToolboxContentProps } from './types'\n\n/**\n * Main content of toolbox drawer\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-content}\n */\nexport const ToolboxContent = ({ sx = {}, children, ...rest }: ToolboxContentProps) => {\n const { body } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex\n sx={ merge(body, sx) }\n { ...rest }\n >\n { children }\n </Flex>\n )\n}\n","import { useMultiStyleConfig } from '@chakra-ui/system'\nimport React from 'react'\nimport { Flex } from '../flex'\nimport { ToolboxFooterProps } from './types'\n\n/**\n * @see Toolbox\n * @see {@link https://northlight.dev/reference/toolbox-footer}\n */\nexport const ToolboxFooter = ({ children, ...rest }: ToolboxFooterProps) => {\n const { footer } = useMultiStyleConfig('Toolbox', {})\n\n return (\n <Flex sx={ footer } { ...rest }>\n { children }\n </Flex>\n )\n}\n","import React from 'react'\nimport { Radio as ChakraRadio } from '@chakra-ui/react'\nimport { RadioProps } from './types'\n\n/**\n * @see RadioGroup\n * @see {@link https://northlight.dev/reference/radio}\n */\nexport const Radio = ({\n size = 'md',\n onChange,\n name,\n value,\n ...rest\n}: RadioProps) => (\n <ChakraRadio\n size={ size }\n id={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { RadioGroup as ChakraRadioGroup } from '@chakra-ui/react'\nimport { RadioGroupProps } from './types'\nimport { Stack } from '../stack'\n\n/**\n * Wrapper to select one of multiple options\n * @see {@link https://northlight.dev/reference/radio-group}\n * @example\n * (?\n <RadioGroup>\n <HStack>\n <Radio value=\"1\" />\n <Radio value=\"2\" />\n <Radio value=\"3\" />\n </HStack>\n </RadioGroup>\n * ?)\n *\n */\nexport const RadioGroup = ({\n direction = 'row',\n children,\n name,\n ...rest\n}: RadioGroupProps) => (\n <ChakraRadioGroup name={ name } id={ name } { ...rest }>\n <Stack direction={ direction }>{ children }</Stack>\n </ChakraRadioGroup>\n)\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { RadioFieldGroupProps } from './types'\nimport { Field } from '../form'\nimport { RadioGroup } from './radio-group'\nimport { Box } from '../box'\n\n/**\n * The radio group component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see RadioGroup\n * @see Radio\n * @see {@link https://northlight.dev/reference/radio-group-field}\n *\n */\nexport const RadioGroupField = forwardRef<HTMLDivElement, RadioFieldGroupProps>(({\n name,\n label,\n children,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' }>\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <RadioGroup\n name={ name }\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n direction={ direction }\n value={ value }\n data-testid=\"radio-group-field-test-id\"\n { ...rest }\n >\n { children }\n </RadioGroup>\n ) }\n </Field>\n </Box>\n))\n","export const carouselItemWidth = 150\nexport const carouselItemSpacing = 60\n","import React from 'react'\nimport { motion } from 'framer-motion'\nimport { Center } from '../center'\nimport { carouselItemWidth } from './constants'\nimport { CarouselItemProps } from './types'\n\nconst variants = {\n active: { scale: 1.15, opacity: 1 },\n inActive: { scale: 0.95, opacity: 0.7 },\n}\n\nexport const CarouselItem = ({\n children,\n isActive = false,\n itemWidth = carouselItemWidth,\n itemHeight = carouselItemWidth,\n}: CarouselItemProps) => (\n <motion.div animate={ isActive ? 'active' : 'inActive' } variants={ variants }>\n <Center minW={ `${itemWidth}px` } h={ `${itemHeight}px ` }>\n { children }\n </Center>\n </motion.div>\n)\n","import React from 'react'\nimport { ChevronLeftSolid, ChevronRightSolid } from '@northlight/icons'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Center } from '../center'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { CarouselArrowProps } from './types'\n\nexport const CarouselArrow = ({\n onClick,\n direction,\n ...rest\n}: CarouselArrowProps) => {\n const { arrow } = useMultiStyleConfig('Carousel', {})\n\n return (\n <Center\n sx={ arrow }\n onClick={ onClick }\n { ...rest }\n >\n <IconButton aria-label={ `move carousel to ${direction}` } variant=\"ghost\" size=\"lg\">\n <Icon as={ direction === 'right' ? ChevronRightSolid : ChevronLeftSolid } />\n </IconButton>\n </Center>\n )\n}\n","import React, { Children, useEffect, useRef, useState } from 'react'\nimport { animate, motion, useMotionValue } from 'framer-motion'\nimport { identity } from 'ramda'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Box } from '../box'\nimport { HStack } from '../stack'\nimport { Radio, RadioGroup } from '../radio'\nimport { CarouselItem } from './carousel-item'\nimport { CarouselArrow } from './carousel-arrow'\nimport { carouselItemSpacing, carouselItemWidth } from './constants'\nimport { CarouselProps } from './types'\n\n/**\n * Easiely one of the fanciest components, horizontal carousel wrapper for anything\n *\n * @see {@link https://northlight.dev/reference/carousel}\n *\n * @example (Example)\n * The carousel takes up 100% of its parents container width and height.\n * It then renders all children div into a draggable div using framer-motion\n\n * (?\n * +\n *const Item = ({ name, ...rest }) => (\n <Center color=\"white\" bg=\"teal.500\" rounded=\"md\" w=\"full\" h=\"full\" { ...rest }>\n { name }\n </Center>\n)\n\nconst MyCarousel = () => (\n<Box h=\"300px\">\n <Carousel>\n <Item name=\"Item 1\" />\n <Item name=\"Item 2\" />\n <Item name=\"Item 3\" />\n </Carousel>\n</Box>\n\n)\n\nrender(<MyCarousel />)\n *\n * ?)\n *\n * @example (Example)\n * ##Controling the carousel state\n * The carousel takes an **onChange** and value\n * (which is the index of the current active element), meaning it can be controlled.\n *\n * (?\n * +\n * const Item = ({ name, ...rest }) => (\n <Center color=\"white\" bg=\"teal.500\" rounded=\"md\" w=\"full\" h=\"full\" { ...rest }>\n { name }\n </Center>\n)\n\nconst MyCarousel = () => {\n const [index, setIndex ] = useState(0)\n return (\n\n <VStack\n borderColor=\"border.default\"\n borderWidth=\"sm\" borderStyle=\"solid\" p=\"2\" borderRadius=\"lg\">\n <Box w=\"full\" h=\"sm\">\n <Carousel\n showArrows={ false }\n showRadio={ false }\n value={ index }\n onChange={ (v) => setIndex(v) }\n >\n <Item name=\"Item 1\" />\n <Item name=\"Item 2\" />\n <Item name=\"Item 3\" />\n </Carousel>\n </Box>\n <FlipButtonGroup\n onChange={ (v) => setIndex(parseInt(v, 10)) }\n value={ `${index}` }\n variant=\"brand\"\n >\n <FlipButton value=\"0\">One</FlipButton>\n <FlipButton value=\"1\">Two</FlipButton>\n <FlipButton value=\"2\">Three</FlipButton>\n </FlipButtonGroup>\n </VStack>\n )\n}\n*\nrender(<MyCarousel/>)\n * ?)\n *(You can also hide the default\n navigational arrows and radio button using <b>showArrows</b> and\n <b>showRadio</b> as in example)\n */\nexport const Carousel = ({\n children,\n showArrows = true,\n showRadio = true,\n value: controlledIndex = 0,\n onChange = identity,\n itemWidth = carouselItemWidth,\n itemHeight = carouselItemWidth,\n spacing = carouselItemSpacing,\n carouselStyles = {},\n ...rest\n}: CarouselProps) => {\n const [ dragging, setDragging ] = useState(false)\n const [ containerWidth, setContainerWidth ] = useState(0)\n const [ activeIndex, setActiveIndex ] = useState(0)\n const x = useMotionValue(0)\n const { radio, container } = useMultiStyleConfig('Carousel', {})\n\n const childrenAsArray = Children.toArray(children) as JSX.Element[]\n const numberOfChildren = Children.count(children)\n const carouselTotalWidth = itemWidth + spacing\n const totalWidth = carouselTotalWidth * numberOfChildren\n\n const containerRef = useRef<any>(null)\n\n useEffect(() => {\n setContainerWidth(containerRef.current.clientWidth)\n }, [])\n\n const getNewX = () => -(activeIndex * carouselTotalWidth)\n\n const updateActiveIndex = () => {\n setActiveIndex(Math.abs(Math.round(x.get() / carouselTotalWidth)))\n }\n\n useEffect(() => {\n animate(x, getNewX())\n onChange(activeIndex)\n }, [ activeIndex ])\n\n useEffect(() => {\n setActiveIndex(controlledIndex)\n }, [ controlledIndex ])\n\n const handleRightArrowClick = () => {\n setActiveIndex((prev) =>\n (activeIndex === numberOfChildren - 1 ? 0 : prev + 1)\n )\n }\n\n const handleLeftArrowClick = () => {\n setActiveIndex((prev) =>\n (activeIndex === 0 ? numberOfChildren - 1 : prev - 1)\n )\n }\n\n return (\n <Box\n cursor={ dragging ? 'grabbing' : 'grab' }\n onMouseDown={ () => setDragging(true) }\n onMouseUp={ () => setDragging(false) }\n ref={ containerRef }\n pl={ `${(containerWidth - itemWidth) / 2}px` }\n sx={ container }\n { ...rest }\n >\n <motion.div\n drag=\"x\"\n style={ {\n width: `${totalWidth}px`,\n height: '100%',\n x,\n } }\n dragConstraints={ { right: 0, left: -(totalWidth - itemWidth) } }\n onDragEnd={ updateActiveIndex }\n >\n <HStack\n spacing={ `${spacing}px` }\n width={ `${totalWidth}px` }\n h=\"full\"\n { ...carouselStyles }\n >\n { childrenAsArray.map((child, index) => (\n <CarouselItem\n isActive={ index === activeIndex }\n itemWidth={ itemWidth }\n itemHeight={ itemHeight }\n key={ `carousel-item-${index as number}` }\n >\n { child }\n </CarouselItem>\n )) }\n </HStack>\n </motion.div>\n { showRadio && (\n <RadioGroup\n onChange={ (val) => setActiveIndex(parseInt(val, 10)) }\n value={ `${activeIndex}` }\n sx={ radio }\n >\n <HStack>\n { childrenAsArray.map((_child, i) => (\n <Radio\n value={ `${i}` }\n size=\"lg\"\n key={ `carousel-radio-${i as number}` }\n />\n )) }\n </HStack>\n </RadioGroup>\n ) }\n { showArrows && (\n <>\n <CarouselArrow\n direction=\"left\"\n onClick={ handleLeftArrowClick }\n left=\"2\"\n />\n <CarouselArrow\n direction=\"right\"\n onClick={ handleRightArrowClick }\n right=\"2\"\n />\n </>\n ) }\n </Box>\n )\n}\n","import { ChakraStylesConfig } from 'chakra-react-select'\nimport { merge } from 'ramda'\nimport { getContrastColor } from '../../utils'\n\nexport const searchBarStyles = (\n sx: ChakraStylesConfig<any>\n): ChakraStylesConfig<any> =>\n merge({\n container: (provided) => ({\n ...provided,\n width: '100%',\n color: 'text.default',\n alignSelf: 'center',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isFocused && 'background.select.option-focus',\n _active: {\n background: 'background.select.option-active',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingInlineStart: 'padding-inline.select.default',\n }),\n downChevron: (provided) => ({\n ...provided,\n color: 'icon.select.default',\n }),\n placeholder: (provided) => ({\n ...provided,\n color: 'text.select.placeholder',\n }),\n multiValue: (provided, state) => {\n const background = state.data.isFixed\n ? 'background.select.option-disabled'\n : state.data.color ?? provided.bgColor\n return {\n ...provided,\n bgColor: background,\n color: getContrastColor(background),\n ...sx.multiValue,\n }\n },\n menuList: (provided) => ({\n ...provided,\n bgColor: 'background.default',\n }),\n } as ChakraStylesConfig<any>, sx)\n","import React from 'react'\nimport {\n ControlProps,\n DropdownIndicatorProps,\n GroupBase,\n MenuProps,\n MultiValueGenericProps,\n OptionProps,\n chakraComponents,\n} from 'chakra-react-select'\nimport { merge } from 'ramda'\nimport { Box } from '../box'\nimport { HStack } from '../stack'\nimport { Icon } from '../icon'\nimport { SearchBarOptionType } from './types'\n\nexport function getComponents<T extends SearchBarOptionType> (\n components?: Record<string, any>\n) {\n return merge(\n {\n Menu: (props: MenuProps<T>) => (\n <Box data-testid=\"select-menu-wrapper-test-id\">\n <chakraComponents.Menu { ...props }>\n { props.children }\n </chakraComponents.Menu>\n </Box>\n ),\n DropdownIndicator: (props: DropdownIndicatorProps<T>) =>\n (props.selectProps.icon ? (\n <chakraComponents.DropdownIndicator { ...props }>\n <Icon as={ props.selectProps.icon } />\n </chakraComponents.DropdownIndicator>\n ) : (\n <chakraComponents.DropdownIndicator { ...props } />\n )),\n Option: (props: OptionProps<T>) =>\n (props.selectProps.customOption ? (\n <chakraComponents.Option { ...props }>\n { props.selectProps.customOption(props.data) }\n </chakraComponents.Option>\n ) : (\n <chakraComponents.Option { ...props } />\n )),\n MultiValueContainer: (\n props: MultiValueGenericProps<T, boolean, GroupBase<T>>\n ) =>\n (props.selectProps.customTag ? (\n <chakraComponents.MultiValueContainer { ...props }>\n { props.selectProps.customTag(props.data) }\n </chakraComponents.MultiValueContainer>\n ) : (\n <chakraComponents.MultiValueContainer { ...props } />\n )),\n Control: ({\n children,\n ...props\n }: ControlProps<T, boolean, GroupBase<T>>) =>\n (props.selectProps.leftComponent ? (\n <chakraComponents.Control { ...props }>\n <HStack w=\"full\" pl=\"2\">\n { props.selectProps.leftComponent }\n <HStack w=\"full\" justify=\"space-between\">\n { children }\n </HStack>\n </HStack>\n </chakraComponents.Control>\n ) : (\n <chakraComponents.Control { ...props }>\n { children }\n </chakraComponents.Control>\n )),\n },\n components || {}\n )\n}\n","import React, { forwardRef, useMemo, useState } from 'react'\nimport {\n AsyncSelect,\n GroupBase,\n InputActionMeta,\n SelectInstance,\n} from 'chakra-react-select'\nimport { filter, identity, is, test, toLower } from 'ramda'\nimport { SearchDuo } from '@northlight/icons'\nimport { createDebounceFunctionInstance } from '../../utils'\nimport { searchBarStyles } from './styles'\nimport { useSelectCallbacks } from '../../hooks'\nimport { Box } from '../box'\nimport { SearchBarOptionType, SearchBarProps } from './types'\nimport { getComponents } from './get-components'\n\nexport const SearchBar = forwardRef(\n <T extends SearchBarOptionType, K extends boolean = false>({\n defaultOptions = [],\n isMulti,\n customOption = null,\n customTag = null,\n sx = {},\n debouncedWaitTime = 200,\n loadOptions: getCustomOptions = null,\n clearInputOnSelect = true,\n closeMenuOnSelect = false,\n onChange = identity,\n onAdd = identity,\n onRemove = identity,\n 'data-testid': testId,\n value,\n onSearchInputChange = identity,\n icon = SearchDuo,\n ...rest\n }: SearchBarProps<T, K>,\n ref: React.Ref<SelectInstance<T, K, GroupBase<T>>>\n ) => {\n const [ filtered, setFiltered ] = useState(defaultOptions)\n const [ filterInput, setFilterInput ] = useState('')\n const debounceFunction = useMemo(\n () => createDebounceFunctionInstance(debouncedWaitTime),\n [ debouncedWaitTime ]\n )\n const handleChange = useSelectCallbacks<T, K>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? value as T[] : [],\n })\n\n const customComponents = useMemo(\n () => getComponents<T>(),\n []\n )\n\n const simpleFilter = (query: string) => {\n if (typeof defaultOptions === 'boolean') return []\n return filter(\n (option: T) =>\n test(new RegExp(toLower(query), 'g'), toLower(option.label)),\n defaultOptions\n )\n }\n const getOptions = async (query: string) => {\n const newOptions = getCustomOptions\n ? await getCustomOptions(query)\n : simpleFilter(query)\n setFiltered((prev) => {\n // If default value is a boolean we want default value to persist to it's initial value\n // this is to allow pre-fetching of values on first render\n if (typeof prev === 'boolean') return prev\n return newOptions\n })\n\n return newOptions\n }\n\n const loadOptions = debounceFunction(async (\n query: string,\n callback: (options: T[]) => void\n ) => {\n const newOptions = await getOptions(query)\n callback(newOptions)\n return []\n })\n\n const resetFiltered = (v: string, { action }: InputActionMeta) => {\n if (clearInputOnSelect || action !== 'set-value') {\n setFilterInput(v)\n onSearchInputChange(v)\n if (v === '') {\n setFiltered(defaultOptions)\n }\n }\n }\n\n return (\n <Box w=\"full\" data-testid={ testId }>\n <AsyncSelect<T, K>\n cacheOptions={ true }\n defaultOptions={ filtered }\n loadOptions={ loadOptions }\n onChange={ handleChange }\n placeholder=\"Search...\"\n chakraStyles={ searchBarStyles(sx) }\n isMulti={ isMulti }\n useBasicStyles={ true }\n selectedOptionStyle=\"check\"\n hideSelectedOptions={ false }\n closeMenuOnSelect={ closeMenuOnSelect }\n isClearable={ false }\n onInputChange={ resetFiltered }\n inputValue={ filterInput }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n ref={ ref }\n value={ value }\n { ...rest }\n />\n </Box>\n )\n }\n)\n","import React, { forwardRef } from 'react'\nimport { FieldValues } from 'react-hook-form'\nimport { XCloseSolid } from '@northlight/icons'\nimport { identity, isEmpty } from 'ramda'\nimport { SearchBarFieldProps, SearchBarOptionType } from './types'\nimport { Field } from '../form'\nimport { SearchBar } from './search-bar'\nimport { HStack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\nconst BaseSearchBarField = <T extends SearchBarOptionType, K extends boolean = false> ({\n name,\n label,\n direction = 'column',\n isMulti,\n isRequired,\n validate,\n isClearable = true,\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}: SearchBarFieldProps<T, K>, ref: React.Ref<HTMLDivElement>) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <SearchBar\n name={ name }\n isMulti={ isMulti }\n onChange={ (values: FieldValues, event) => {\n onChange(\n isMulti\n ? values\n : values.value\n )\n onChangeCallback(values as T | T[], event)\n } }\n value={ value }\n { ...rest }\n />\n </InputGroupWrapper>\n <IconButton\n aria-label={ `${name}-close-button` }\n variant=\"danger\"\n size=\"lg\"\n fontSize=\"sm\"\n hidden={ isEmpty(value) || !isClearable }\n onClick={ () => onChange([]) }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n\nexport const SearchBarField = forwardRef(BaseSearchBarField)\n","import React from 'react'\nimport { DndContext, DndContextProps } from '@dnd-kit/core'\n\n/**\n * Context used for all drag and drop components\n * (Based on dnd-kit)\n * @see Draggable\n * @see Droppable\n * @see {@link https://northlight.dev}\n * @see {@link https://dndkit.com/}\n *\n */\nexport const DragAndDrop = (props: DndContextProps) => (\n <DndContext { ...props } />\n)\n","import React, { forwardRef } from 'react'\nimport { Tag as ChakraTag } from '@chakra-ui/react'\nimport { TagProps } from './types'\n\n/**\n * Tag component is used for items that need to be labeled,\n * categorized, or organized using keywords that describe them.\n * @see TagGroup\n * @see {@link https://northlight.dev/reference/tag}\n *\n * @example\n * (?\n * <Tag>Hello</Tag>\n * ?)\n *\n * @example\n * (?\n * +\n * const colors = [\"mediatoolBlue\", \"blue\", \"gray\", \"red\", \"green\",\n * \"orange\", \"yellow\", \"teal\", \"purple\", \"pink\"]\n * const variants = [\"solid\", \"subtle\"]\n * const Example = () => {\n * return <Stack>\n * { colors.map((color) => (\n * <HStack spacing={ 4 }>\n * {\n * variants.map((variant) => (\n * <HStack spacing={ 4 }>\n * <Tag size=\"sm\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"xs\">\n* <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"xs\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * <Tag size=\"md\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"md\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"md\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * <Tag size=\"lg\" variant={variant} colorScheme={color}>\n * <TagLeftIcon size=\"lg\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagLeftIcon>\n * <TagLabel>\n * Hello\n * </TagLabel>\n * <TagRightIcon size=\"lg\">\n * <Icon as={ MediatoolLogoDuo } />\n * </TagRightIcon>\n * </Tag>\n * </HStack>\n * ))\n * }\n * </HStack>\n * ))\n * }\n * </Stack>\n * }\n * render(<Example/>)\n * ?)\n *\n *\n*/\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(({\n children,\n variant = 'solid',\n bgColor,\n colorScheme,\n ...rest\n}, ref) => (\n <ChakraTag\n bgColor={ bgColor }\n colorScheme={ colorScheme }\n ref={ ref }\n variant={ variant }\n { ...rest }\n >\n { children }\n </ChakraTag>\n))\n","import React from 'react'\nimport { OverflowIndicatorProps } from './types'\nimport { Tag } from './tag'\n\nexport const OverflowIndicator = ({\n nbrRemainingTags,\n}: OverflowIndicatorProps) => (\n <Tag variant=\"subtle\" minW=\"max-content\">\n +{ nbrRemainingTags }\n </Tag>\n)\n","import React, { useState } from 'react'\nimport { HStack } from '../stack'\nimport { OverflowGroup, useOverflowGroup } from '../overflow-group'\nimport { TagGroupProps } from './types'\nimport { OverflowIndicator as DefaultOverflowIndicator } from './overflow-indicator'\n\n/**\n * Used when rending multiple tags in limited container for responsive layout\n * @see Tag\n * @see {@link https://northlight.dev/reference/tag-group}\n *\n * @example\n * ##Try resizing the window!\n * (?\n <TagGroup w=\"full\"\n borderWidth=\"sm\"\n borderColor=\"border.default\"\n borderStyle=\"solid\"\n p=\"2\"\n borderRadius=\"md\"\n >\n { Array.from({length: 20}, (_, i) => i).map((i) => (\n <Tag w=\"max-content\" key={ i }>Brand-{ i }</Tag>\n )) }\n </TagGroup>\n * ?)\n *\n *\n */\nexport const TagGroup = ({\n children,\n max = Infinity,\n spacing = '2',\n OverflowIndicator = DefaultOverflowIndicator,\n ...rest\n}: TagGroupProps) => {\n const [ nbrRemainingTags, setNbrRemainingTags ] = useState(0)\n const { rect, containerRef } = useOverflowGroup()\n\n return (\n <HStack\n bgColor=\"background.default\"\n ref={ containerRef }\n overflow=\"hidden\"\n { ...rest }\n >\n <HStack spacing={ spacing }>\n <OverflowGroup max={ max } onChange={ setNbrRemainingTags } rect={ rect }>\n { children }\n </OverflowGroup>\n </HStack>\n { nbrRemainingTags > 0 && (\n <OverflowIndicator nbrRemainingTags={ nbrRemainingTags } />\n ) }\n </HStack>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { DotsMatrixSolid } from '@northlight/icons'\nimport { Tag, TagLabel, TagRightIcon } from '../tag'\nimport { Icon } from '../icon'\nimport { DragItemProps } from './types'\n\n/**\n * Default draggable item none other provided in SortableList and MultiSort.\n * Renders a tag which can be used under the DragAndDrop context\n * @see DragAndDrop\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/drag-item}\n *\n * @example (Example)\n * (?\n * <DragItem itemLabel=\"Option 1\" bgColor=\"bg.filled\" />\n * ?)\n *\n */\nexport const DragItem = forwardRef<HTMLSpanElement, DragItemProps>(({\n size = 'md',\n isDragging,\n itemLabel = 'Drag Me',\n bgColor,\n ...rest\n}, ref) => (\n <Tag\n ref={ ref }\n cursor={ isDragging ? 'grabbing' : 'grab' }\n bgColor={ bgColor || (isDragging ? 'blue.200' : undefined) }\n size={ size }\n minW=\"max-content\"\n { ...rest }\n >\n <TagLabel>{ itemLabel }</TagLabel>\n <TagRightIcon>\n <Icon as={ DotsMatrixSolid } />\n </TagRightIcon>\n </Tag>\n)\n)\n","import React, { cloneElement, isValidElement } from 'react'\nimport { useDraggable } from '@dnd-kit/core'\nimport { CSS } from '@dnd-kit/utilities'\nimport { Box } from '../box'\nimport { DraggableProps } from './types'\nimport { DragItem } from './drag-item'\nimport { ring } from '../../utils'\n\n/**\n * Will turn it's childen into a draggable component when under DragAndDrop context\n * @see {@link https://northlight.dev/reference/draggable}\n *\n * @example (Example)\n * ##Basic exapmle\n * (?\n * <DragAndDrop>\n * <HStack>\n * <Draggable id=\"random-id\" />\n * <Draggable />\n * </HStack>\n * </DragAndDrop>\n * ?)\n * <br />\n * (Notice that the id prop is required)\n *\n * @example (Example)\n * ## With custom children\n *\n * (?\n * <DragAndDrop>\n * <Box p=\"4\">\n * <Draggable id=\"random-id\">\n * <Center\n * boxSize=\"3xs\"\n * boxShadow=\"xl\"\n * borderRadius=\"lg\"\n * bgColor=\"bg.overlayer\"\n * >I am draggable</Center>\n * </Draggable>\n * </Box>\n *\n * </DragAndDrop>\n * ?)\n *\n *\n */\nexport const Draggable = ({\n itemLabel,\n children,\n disableDrag = false,\n 'data-testid': dataTestId,\n ...rest\n}: DraggableProps) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n isDragging,\n ...props\n } = useDraggable({ ...rest })\n if (!listeners) {\n return (\n <DragItem itemLabel={ itemLabel } />\n )\n }\n\n const childrenWithDragCursor = isValidElement(children)\n ? cloneElement(children as JSX.Element, {\n cursor: isDragging ? 'grabbing' : 'grab',\n })\n : children\n\n const dragEventListeners = !disableDrag && listeners\n\n return (\n <Box\n ref={ setNodeRef }\n { ...attributes }\n transform={ CSS.Translate.toString(transform) }\n _focusVisible={ ring }\n tabIndex={ disableDrag ? -1 : 0 }\n w=\"max-content\"\n data-testid={ dataTestId }\n { ...dragEventListeners }\n >\n { typeof childrenWithDragCursor === 'function'\n ? childrenWithDragCursor(listeners, props)\n : childrenWithDragCursor || (\n <DragItem isDragging={ isDragging } itemLabel={ itemLabel } />\n ) }\n </Box>\n )\n}\n","import React from 'react'\nimport { useDroppable } from '@dnd-kit/core'\nimport { Box } from '../box'\nimport { Center } from '../center'\nimport { DroppableProps } from './types'\n\n/**\n * Wrapper where you can style a container to place draggable elements\n * @see DropZone\n * @see Draggable\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/droppable}\n *\n * @example (Example)\n * ## Move the item into the container\n * (?\n * () => {\n * const [ isDropped, setIsDropped ] = useState(false)\n * const handleDragEnd = (e) => {\n * setIsDropped(e.over && e.over.id === 'droppable')\n * }\n *\n * return (\n * <DragAndDrop onDragEnd={handleDragEnd}>\n * <HStack>\n * {!isDropped && <Draggable id=\"draggable\" />}\n * <Droppable id=\"droppable\">\n * <Center bgColor=\"bg.filled\" boxSize=\"3xs\">\n * {isDropped ? <Draggable id=\"draggable\"/> : <P>Drop here!</P>}\n * </Center>\n * </Droppable>\n * </HStack>\n *\n * </DragAndDrop>\n *\n * )\n *\n *\n * }\n * ?)\n *\n */\nexport const Droppable = ({\n children,\n 'data-testid': testId,\n ...rest\n}: DroppableProps) => {\n const { setNodeRef, ...props } = useDroppable({\n ...rest,\n })\n return (\n <Box ref={ setNodeRef } data-testid={ testId }>\n { typeof children === 'function'\n ? children(props)\n : children || <Center>Drop here</Center> }\n </Box>\n )\n}\n","import React from 'react'\nimport { SortableContext, SortableContextProps } from '@dnd-kit/sortable'\n\n/**\n * Wrapper that provides context for sortable elements using DnD-kit\n * @see DragAndDrop\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev}\n * @see {@link https://docs.dndkit.com/presets/sortable/sortable-context}\n * @example\n * **<a href=\"https://docs.dndkit.com/presets/sortable/sortable-context\" target=\"_blank\">Read more on dnd-docs</a>**\n * */\nexport const Sortable = (props: SortableContextProps) => (\n <SortableContext { ...props } />\n)\n","import React, { PointerEvent, cloneElement, isValidElement, useRef } from 'react'\nimport { useSortable } from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport { Box } from '../box'\nimport { DragItem } from './drag-item'\nimport { ring } from '../../utils'\nimport { SortableItemProps } from './types'\n\n/**\n * Renders a draggable item under sortable context\n * @see SortableList\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/sortable-item}\n *\n * @example\n * (? <SortableItem id=\"sortable-1\"/> ?)\n * */\nexport const SortableItem = ({\n itemLabel = 'Drag me',\n dblClickThreshold = 300,\n children,\n disableDrag = false,\n 'data-testid': dataTestId,\n ...rest\n}: SortableItemProps) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n ...props\n } = useSortable({ ...rest })\n if (!listeners) {\n return (\n <DragItem itemLabel={ itemLabel } />\n )\n }\n\n const timeStampSnapchot = useRef(0)\n const inEditMode = useRef(false)\n const { onPointerDown, onKeyDown } = listeners\n const handlePointerDown = (e: PointerEvent<Element>) => {\n const elapsedTime = e.timeStamp - timeStampSnapchot.current\n if (elapsedTime > dblClickThreshold) {\n inEditMode.current = true\n onPointerDown(e)\n } else {\n inEditMode.current = false\n }\n timeStampSnapchot.current = e.timeStamp\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>) => {\n if (inEditMode.current) {\n onKeyDown(e)\n }\n }\n\n const style = {\n transform: CSS.Translate.toString(transform),\n transition,\n }\n\n const childrenWithDragCursor = isValidElement(children)\n ? cloneElement(children as JSX.Element, {\n cursor: isDragging ? 'grabbing' : 'grab',\n })\n : children\n\n const dragEventListeners = !disableDrag && {\n onPointerDown: handlePointerDown,\n onKeyDown: handleKeyDown,\n }\n\n return (\n <Box\n ref={ setNodeRef }\n sx={ style }\n { ...attributes }\n _focusVisible={ ring }\n tabIndex={ disableDrag ? -1 : 0 }\n borderRadius=\"tag.default\"\n data-testid={ dataTestId }\n { ...dragEventListeners }\n >\n { (\n typeof childrenWithDragCursor === 'function'\n ? childrenWithDragCursor(listeners, props)\n : childrenWithDragCursor\n ) || <DragItem isDragging={ isDragging } itemLabel={ itemLabel } />\n }\n </Box>\n )\n}\n","import React from 'react'\nimport { DragDuo } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { DragHandleProps } from './types'\n\n/**\n * Util component to display drag handle icon\n * for draggable react components under DragAndDrop context\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/drag-handle}\n *\n * @example (Example)\n * (?\n * <DragHandle />\n * ?)\n */\nexport const DragHandle = ({ icon, isDragging, ...rest }: DragHandleProps) => (\n <Icon\n as={ icon || DragDuo }\n cursor={ isDragging ? 'grabbing' : 'grab' }\n { ...rest }\n />\n)\n","import React from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Stack } from '../stack'\nimport { Droppable } from './droppable'\nimport { DropZoneProps } from './types'\n\n/**\n * Prestyled droppable area to drop draggable components,\n * you can override the styles of dropzone with sx prop\n * @see Draggable\n * @see Droppable\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/drop-zone}\n *\n * @example (Example)\n * ## You can drop draggable components\n * (?\n * <DragAndDrop>\n * <DropZone name=\"random-id-2\"><Draggable id=\"test\"/></DropZone>\n * </DragAndDrop>\n * ?)\n */\nexport const DropZone = ({ sx = {}, name, children, ...rest }: DropZoneProps) => {\n const { dropZone } = useMultiStyleConfig('DragAndDrop', { sx })\n return (\n <Droppable id={ name }>\n <Stack sx={ dropZone } { ...rest }>\n { children }\n </Stack>\n </Droppable>\n )\n}\n","import React, { useState } from 'react'\nimport {\n DragOverEvent,\n KeyboardSensor,\n PointerSensor,\n UniqueIdentifier,\n rectIntersection,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport { arrayMove, sortableKeyboardCoordinates } from '@dnd-kit/sortable'\nimport { indexOf, insert, keys, remove } from 'ramda'\nimport { DragAndDrop } from './drag-and-drop'\nimport { MultiSortProps } from './types'\n\n/**\n * Util component for sorting items in two dimensions(container and order in container)\n * @see SortableList\n * @see DragAndDrop\n * @see {@link https://northlight.dev/reference/multi-sort}\n *\n * @example\n * (?\n * () => {\n const [ multiItems, setMultiItems ] = useState({\n container1: [\n 'JavaScript',\n 'Python',\n 'Front end',\n 'Back end',\n ],\n container2: [ 'HTML', 'CSS' ],\n container3: [ 'Chakra UI', 'Next.js', 'Tailwind UI' ],\n })\n return (\n <Stack>\n <MultiSort\n items={ multiItems }\n onChange={ (items) => setMultiItems(items) }\n >\n { (items, activeId) => (\n <HStack alignItems=\"start\">\n <VStack>\n <Heading size=\"sm\">I like</Heading>\n <DropZone name=\"container1\">\n <SortableContainer items={ items.container1 } />\n </DropZone>\n </VStack>\n <VStack>\n <Heading size=\"sm\">I don't like</Heading>\n <DropZone name=\"container2\">\n <SortableContainer items={ items.container2 } />\n </DropZone>\n </VStack>\n <VStack>\n <Heading size=\"sm\">Neutral</Heading>\n <DropZone name=\"container3\">\n <SortableContainer items={ items.container3 } />\n </DropZone>\n </VStack>\n <DragOverlay>\n { activeId ? (\n <DragItem\n itemLabel={ activeId }\n isDragging={ true }\n bgColor=\"background.tag.default\"\n />\n ) : null }\n </DragOverlay>\n </HStack>\n ) }\n </MultiSort>\n <Text>Controlled output: </Text>\n <Code p={ 2 } borderRadius={ 4 }>\n <pre>{ JSON.stringify(multiItems, null, 2) }</pre>\n </Code>\n</Stack>\n )\n * }\n * ?)\n * <br />\n * Multisort abstracts logic away for setting up sortable items between multiple containers,\n * you can then separate, or create and style this containers as you want,\n * by putting them under <Droppable /> or a prestyled <Dropzone />\n\nSortableContainer is a wrapper for a <Sortable /> with a sortable item\n * */\nexport function MultiSort<itemKeys extends string | number | symbol> ({\n items,\n onChange = () => {},\n children,\n collisionDetection,\n sensors,\n}: MultiSortProps<itemKeys>) {\n const [ activeItem, setActiveItem ] = useState<UniqueIdentifier | null>(null)\n\n const moveBetweenContainers = (\n activeContainerName: itemKeys,\n activeIndex: number,\n overContainerName: itemKeys,\n overIndex: number,\n item: string\n ) => ({\n ...items,\n [activeContainerName]: remove(activeIndex, 1, items[activeContainerName]),\n [overContainerName]: insert(overIndex, item, items[overContainerName]),\n })\n\n const customSensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const findContainer = (id: string) =>\n (id in items ? id : keys(items).find((key) => items[key].includes(id)))\n\n const getContainers = (e: DragOverEvent) => {\n const { active, over } = e\n if (!over) return {}\n const { id } = active\n const { id: overId } = over\n\n const activeContainerName = findContainer(id as string) as itemKeys\n const overContainerName = findContainer(overId as string) as itemKeys\n return { activeContainerName, overContainerName, id, overId, active }\n }\n\n const handleDragStart = (e: DragOverEvent) => {\n const {\n active: { id },\n } = e\n setActiveItem(id)\n }\n\n const handleDragOver = (e: DragOverEvent) => {\n const { activeContainerName, overContainerName, id, overId } = getContainers(e)\n\n if (\n !(\n !activeContainerName ||\n !overContainerName ||\n activeContainerName === overContainerName\n )\n ) {\n const activeIndex = indexOf(id, items[activeContainerName])\n const overIndex = indexOf(overId, items[overContainerName])\n onChange(moveBetweenContainers(\n activeContainerName,\n activeIndex,\n overContainerName,\n overIndex,\n id as string\n ))\n }\n }\n\n const handleDragEnd = (e: DragOverEvent) => {\n const { activeContainerName, overContainerName, id, overId, active } = getContainers(e)\n\n if (!activeContainerName || !overContainerName) return\n\n const activeIndex = indexOf(id, items[activeContainerName])\n const overIndex = indexOf(overId, items[overContainerName])\n\n if (activeContainerName === overContainerName) {\n onChange({\n ...items,\n [overContainerName]: arrayMove(\n items[overContainerName],\n activeIndex,\n overIndex\n ),\n })\n } else {\n onChange(moveBetweenContainers(\n activeContainerName,\n activeIndex,\n overContainerName,\n overIndex,\n active?.id as string\n ))\n }\n }\n\n return (\n <DragAndDrop\n sensors={ sensors || customSensors }\n onDragStart={ handleDragStart }\n onDragOver={ handleDragOver }\n onDragEnd={ handleDragEnd }\n collisionDetection={ collisionDetection || rectIntersection }\n >\n { typeof children === 'function' ? children(items, activeItem) : children }\n </DragAndDrop>\n )\n}\n","import React, { useMemo, useState } from 'react'\nimport {\n DragOverEvent,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n UniqueIdentifier,\n rectIntersection,\n useSensor,\n useSensors,\n} from '@dnd-kit/core'\nimport {\n arrayMove,\n rectSortingStrategy,\n sortableKeyboardCoordinates,\n} from '@dnd-kit/sortable'\nimport { identity, indexOf, map } from 'ramda'\nimport { DragAndDrop } from './drag-and-drop'\nimport { Sortable } from './sortable'\nimport { SortableItem } from './sortable-item'\nimport { DragItem } from './drag-item'\nimport { SortableListProps } from './types'\n\n/**\n * Util component to render sortable items under sortable context\n * @see SortableItem\n * @see Sortable\n * @see {@link https://northlight.dev/reference/sortable-list}\n *\n * @example (Example)\n * ## You can render any layout of sortable components, for example grid:\n * (?\n * () => {\n * const [items, setItems] = useState(Array.from({length: 100}, (_, i) => i))\n * return (\n * <Stack>\n<SimpleGrid minChildWidth=\"50px\" spacing={ 4 }>\n <SortableList\n items={ items }\n onChange={ (items) => setItems(items) }\n />\n</SimpleGrid>\n <Code p={ 2 } borderRadius={ 4 }>\n { JSON.stringify(items, null, 2) }\n </Code>\n </Stack>\n * )}\n * ?)\n *\n * @example (Example)\n * ### With custom component\n * (?\n * () => {\n * const [items, setItems] = useState([ { name: 'item1' }, { name: 'item2' }, { name: 'item3' } ])\n * return (\n * <Stack>\n *\n * <SortableList\n items={ items }\n createKey={ (item) => item.name }\n disableDrag={ true }\n onChange={setItems}\n>\n { ({ name }, listeners, { isOver }) => (\n <HStack>\n <DragHandle { ...listeners } isDragging={ isOver } />\n <Input defaultValue={ name } />\n </HStack>\n ) }\n</SortableList>\n</Stack>\n )}\n * ?)\n<br />\nIf disableDrag=false, then when the user double clicks it will trigger\nthe default behaviour of the rendered component instead of the dragging,\n you can adjust the threshold with dblClickThreshold, default is 300ms\n *\n *\n */\nexport function SortableList<T> ({\n children,\n items,\n collisionDetection,\n createKey = identity as (t: T) => UniqueIdentifier,\n strategy,\n onChange = () => {},\n onMovedItem = identity,\n displayOverlay = false,\n sensors,\n dblClickThreshold = 300,\n disableDrag = false,\n modifiers,\n}: SortableListProps<T>) {\n const [ activeItem, setActiveItem ] = useState<UniqueIdentifier | null>(null)\n\n const identifierItems = useMemo(() => map(createKey, items), [ items ])\n\n const customSensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n )\n\n const handleDragStart = (event: DragOverEvent) => {\n const {\n active: { id },\n } = event\n setActiveItem(id)\n }\n\n const handleDragEnd = (event: DragOverEvent) => {\n const { active, over } = event\n if (active && over && active.id !== over.id) {\n const prevIds = map(createKey, items)\n const oldIndex = indexOf(active.id, prevIds)\n const newIndex = indexOf(over.id, prevIds)\n onMovedItem({ item: items[oldIndex], oldIndex, newIndex })\n const newItems = arrayMove(items, oldIndex, newIndex)\n onChange(newItems)\n }\n }\n\n return (\n <DragAndDrop\n sensors={ sensors || customSensors }\n collisionDetection={ collisionDetection || rectIntersection }\n onDragStart={ handleDragStart }\n onDragEnd={ handleDragEnd }\n modifiers={ modifiers }\n >\n <Sortable\n items={ identifierItems }\n strategy={ strategy || rectSortingStrategy }\n >\n { items.map((item, index) => {\n const id = createKey(item)\n return (\n <SortableItem\n key={ id }\n id={ id }\n itemLabel={ id }\n dblClickThreshold={ dblClickThreshold }\n disableDrag={ disableDrag }\n >\n { (listeners, props) =>\n (typeof children === 'function'\n ? children(item, listeners, props, index)\n : children)\n }\n </SortableItem>\n )\n }) }\n </Sortable>\n { displayOverlay && (\n <DragOverlay>\n { activeItem ? <DragItem itemLabel={ activeItem } /> : null }\n </DragOverlay>\n ) }\n </DragAndDrop>\n )\n}\n","import React from 'react'\nimport { rectSortingStrategy } from '@dnd-kit/sortable'\nimport { Sortable } from './sortable'\nimport { SortableItem } from './sortable-item'\nimport { SortableContainerProps } from './types'\n\n/**\n * Used with multi sort to render a sortable list inside a droppable\n * @see MultiSort\n * @see {@link https://northlight.dev/reference/sortable-container}\n *\n * @example\n * (?\n * <SortableContainer items={['item 1', 'item 2', 'item 3']} />\n * ?)\n *\n */\nexport const SortableContainer = ({ children, items, strategy }: SortableContainerProps) => (\n <Sortable items={ items } strategy={ strategy || rectSortingStrategy }>\n { items.map((id) => (\n <SortableItem key={ id } id={ id } itemLabel={ id }>\n { typeof children === 'function' ? children(id) : children }\n </SortableItem>\n )) }\n </Sortable>\n)\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeList } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastListProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized stacked layout\n * @see FastGrid\n * @see {@link https://northlight.dev/reference/fast-list}\n *\n * @example (Example)\n * (?\n * <Box h=\"500px\" w=\"300p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastList itemCount={ 10000 } itemSize={ 30 } overscanCount={ 100 }>\n { (index) => `item-${index}` }\n </FastList>\n</Box>\n * ?)\n *\n */\nexport const FastList = forwardRef(({\n itemCount,\n itemSize,\n direction = 'column',\n children,\n width,\n height,\n overscanCount = 0,\n initialScrollOffset,\n ...rest\n}: FastListProps, ref: LegacyRef<VariableSizeList<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeList\n itemCount={ itemCount }\n itemSize={ typeof itemSize === 'number' ? (_index) => itemSize : itemSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n layout={ direction === 'column' ? 'vertical' : 'horizontal' }\n initialScrollOffset={ initialScrollOffset }\n overscanCount={ overscanCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, index }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(index) : children }\n </div>\n ) }\n </VariableSizeList>\n ) }\n </AutoSizer>\n))\n","import React, { LegacyRef, forwardRef } from 'react'\nimport { VariableSizeGrid } from 'react-window'\nimport AutoSizer from 'react-virtualized-auto-sizer'\nimport { FastGridProps } from './types'\n\n/**\n * Wrapper that renders children in a virtualized html grid layout\n * @see FastList\n * @see {@link https://northlight.dev/reference/fast-grid}\n *\n * @example (Example)\n * ## Simple example\n * (?\n * <Box h=\"500px\" w=\"full\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 100 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n { (rowIndex, columnIndex) => `[${rowIndex}, ${columnIndex}]` }\n </FastGrid>\n </Box>\n *\n * ?)\n *\n * @example (Example)\n * ## Spreadsheet example\n * (?\n * +\n *\nconst getCell = (rowIndex, columnIndex) => {\n if (rowIndex === 0 && columnIndex === 0) return ''\n if (rowIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Col { columnIndex }\n </Lead>\n )\n }\n if (columnIndex === 0) {\n return (\n <Lead w=\"full\">\n { ' ' }\n Row { rowIndex }\n </Lead>\n )\n }\n return (\n <TextField name={ `${rowIndex}-${columnIndex}` } />\n )\n}\n *\n * const MyGrid = () => {\n * const [values, setValues ] = useState({})\n * return(\n * <Form initialValues={{}}>\n * {({getValues}) => (\n * <Stack>\n * <Box h=\"500px\" w=\"500p\" border=\"1px solid gray\" p={ 4 } borderRadius={ 4 }>\n <FastGrid\n columns={ 10000 }\n rows={ 10000 }\n rowSize={ 50 }\n columnSize={ 100 }\n overscanRowCount={ 10 }\n overscanColumnCount={ 1 }\n >\n {getCell}\n </FastGrid>\n</Box>\n<Button onClick={() => setValues(getValues())} variant=\"success\">Save</Button>\n<Code> <pre>{JSON.stringify(values, null, 2)}</pre></Code>\n</Stack>\n * )}\n </Form>\n * )}\n\nrender(<MyGrid />)\n *\n *\n * ?)\n * **(Note, FastGrid must be wrapped in a parent element with set height and width!)**\n *\n*/\nexport const FastGrid = forwardRef(({\n columns,\n rows,\n columnSize,\n rowSize,\n children,\n width,\n height,\n overscanRowCount = 0,\n overscanColumnCount = 0,\n ...rest\n}: FastGridProps, ref: LegacyRef<VariableSizeGrid<any>>) => (\n <AutoSizer>\n { ({ width: autoWidth, height: autoHeight }) => (\n <VariableSizeGrid\n rowCount={ rows }\n columnCount={ columns }\n columnWidth={ typeof columnSize === 'number' ? (_index) => columnSize : columnSize }\n rowHeight={ typeof rowSize === 'number' ? (_index) => rowSize : rowSize }\n height={ height ?? autoHeight }\n width={ width ?? autoWidth }\n overscanRowCount={ overscanRowCount }\n overscanColumnCount={ overscanColumnCount }\n ref={ ref }\n { ...rest }\n >\n { ({ style, rowIndex, columnIndex }) => (\n <div style={ style }>\n { typeof children === 'function' ? children(rowIndex, columnIndex) : children }\n </div>\n ) }\n </VariableSizeGrid>\n ) }\n </AutoSizer>\n))\n","import React from 'react'\nimport { CheckDuo, EditDuo, XCloseSolid } from '@northlight/icons'\nimport {\n HStack,\n useEditableControls,\n useEditableState,\n useMultiStyleConfig,\n} from '@chakra-ui/react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { EditableControlsProps } from './types'\nimport { ButtonVariants } from '../button/types'\n\ntype MapVariantTypes = Record<EditableControlsProps['variant'], ButtonVariants>\n\nconst mapEditableVariantsToButtonSubmitVariants: MapVariantTypes = {\n brand: 'brand',\n default: 'success',\n}\n\nconst mapEditableVariantsToButtonCancelVariants: MapVariantTypes = {\n brand: 'ghost',\n default: 'danger',\n}\n\nexport const EditableControls = ({ size, variant = 'default' }: EditableControlsProps) => {\n const {\n getSubmitButtonProps,\n getCancelButtonProps,\n } = useEditableControls()\n\n const { onEdit, isEditing } = useEditableState()\n\n const { button, icon, controls } = useMultiStyleConfig('EditableText', { size, isEditing })\n\n return (\n <HStack spacing={ 1 } sx={ controls }>\n { isEditing\n ? (\n <>\n <IconButton\n aria-label=\"Cancel\"\n sx={ button }\n variant={ mapEditableVariantsToButtonCancelVariants[variant] }\n { ...getCancelButtonProps() }\n >\n <Icon sx={ icon } as={ XCloseSolid } />\n </IconButton>\n <IconButton\n aria-label=\"Save\"\n sx={ button }\n variant={ mapEditableVariantsToButtonSubmitVariants[variant] }\n { ...getSubmitButtonProps() }\n >\n <Icon sx={ icon } as={ CheckDuo } />\n </IconButton>\n </>\n )\n : (\n <IconButton\n aria-label=\"Edit\"\n variant=\"ghost\"\n sx={ button }\n onClick={ onEdit }\n >\n <Icon sx={ icon } as={ EditDuo } />\n </IconButton>\n )\n }\n </HStack>\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { Input, InputGroup, InputLeftElement, InputRightElement } from '../input'\nimport { EditableInput as ChakraEditableInput, Editable, EditablePreview } from '../editable'\nimport { EditableProps } from './types'\nimport { EditableControls } from './editable-controls'\n\n/**\n * Used to safely modify text with default or previousely set value\n * @see {@link https://northlight.dev/reference/editable-text}\n *\n * @example (Example)\n * ##Edit password\n * (?\n * () => {\n * const [v, setV] = useState('123456789')\n * return (\n * <Box p=\"2\">\n * <EditableText value={v} onSubmit={setV} leftItem={<Icon as={LockDuo} />}/>\n * </Box>\n * )\n * }\n * ?)\n *\n * @example (Example)\n * ## Other notes\n <p>\n Pressing <b>ESC</b> or clicking on the\n <b> red icon</b> will delete the changes and go back to the original state\n </p>\n <p>\n Pressing <b>ENTER</b> or clicking on the\n <b> green icon</b> will save the changes internally and fire the{ ' ' }\n <Code>onSubmit</Code> callback.\n </p>\n *\n */\nexport const EditableText = ({\n size = 'md',\n value: inputValue,\n onSubmit,\n leftItem,\n variant = 'default',\n ...rest\n}: EditableProps) => {\n const [ value, setValue ] = useState(inputValue)\n const { input, preview } = useMultiStyleConfig('EditableText', { size, value })\n\n useEffect(() => {\n setValue(inputValue)\n }, [ inputValue ])\n\n return (\n <Editable\n isPreviewFocusable={ true }\n selectAllOnFocus={ false }\n value={ value }\n onChange={ (newValue) => setValue(newValue) }\n onSubmit={ onSubmit }\n { ...rest }\n >\n <InputGroup size={ size }>\n { leftItem && (\n <InputLeftElement>\n { leftItem }\n </InputLeftElement>\n ) }\n <Input\n as={ EditablePreview }\n sx={ preview }\n />\n <Input\n as={ ChakraEditableInput }\n size={ size }\n sx={ input }\n />\n <InputRightElement sx={ { width: 'min-content' } }>\n <EditableControls size={ size } variant={ variant } />\n </InputRightElement>\n </InputGroup>\n </Editable>\n )\n}\n","import { Modal as ChakraModal, ModalCloseButton, ModalContent, ModalOverlay } from '@chakra-ui/react'\nimport React from 'react'\nimport { ModalProps } from './types'\n\nexport const ModalBase = ({\n isCentered = true,\n children,\n ...rest\n}: ModalProps) => (\n <ChakraModal\n isCentered={ isCentered }\n scrollBehavior=\"inside\"\n motionPreset=\"slideInBottom\"\n { ...rest }\n >\n <ModalOverlay />\n <ModalContent data-testid=\"modal-test-id\">\n <ModalCloseButton data-testid=\"modal-test-button-id\" />\n { children }\n </ModalContent>\n </ChakraModal>\n)\n","import React from 'react'\nimport { ModalProps } from './types'\nimport { ModalBase } from './modal-base'\n\n/**\n * @see {@link https://northlight.dev/reference/modal}\n *\n * */\n\nexport const Modal = ({\n stayMountedOnClose = false,\n isOpen,\n ...rest\n}: ModalProps) => (\n <>\n { (stayMountedOnClose || isOpen) && <ModalBase isOpen={ isOpen } { ...rest } /> }\n </>\n)\n","import React from 'react'\nimport { ModalBody as ChakraModalBody, ModalBodyProps } from '@chakra-ui/react'\n\nexport const ModalBody = (props: ModalBodyProps) => (\n <ChakraModalBody minH={ props.h } maxH={ props.h } { ...props } />\n)\n","import React, { forwardRef, useState } from 'react'\nimport AvatarEditor from 'react-avatar-editor'\nimport { ZoomInDuo } from '@northlight/icons'\nimport { EditableText } from '../editable-text'\nimport { Icon } from '../icon'\nimport { HStack, Stack } from '../stack'\nimport { Box } from '../box'\nimport { Button } from '../button'\nimport { Slider, SliderFilledTrack, SliderThumb, SliderTrack } from '../slider'\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '../modal'\nimport { FormLabel } from '../form-control'\nimport { FileEditorModalProps } from './types'\n\nexport const FileEditorModal = forwardRef(({\n fileName,\n setFileName,\n isOpen,\n onClose,\n image = '',\n handleCrop,\n isImage,\n canEditFileName = true,\n canCropImage = false,\n ...rest\n}: FileEditorModalProps, ref: any) => {\n const [ zoomLevel, setZoomLevel ] = useState(1)\n const [ position, setPosition ] = useState({ x: 0.5, y: 0.5 })\n\n const handleClose = () => {\n setZoomLevel(1)\n onClose()\n }\n\n return (\n <Modal\n isOpen={ isOpen }\n onClose={ onClose }\n closeOnOverlayClick={ false }\n { ...rest }\n >\n <ModalHeader>Edit { isImage ? 'image' : 'file' }</ModalHeader>\n <ModalBody\n display=\"flex\"\n justifyContent=\"start\"\n flexDirection=\"column\"\n alignItems=\"center\"\n gap={ 4 }\n minH=\"300px\"\n >\n <Stack display={ isImage && canCropImage ? 'inherit' : 'none' }>\n <AvatarEditor\n ref={ ref }\n image={ image || '' }\n onPositionChange={ (pos) => setPosition(pos) }\n position={ position }\n width={ 250 }\n height={ 250 }\n border={ 50 }\n color={ [ 255, 255, 255, 0.7 ] }\n scale={ zoomLevel }\n rotate={ 0 }\n />\n <HStack w=\"90%\">\n <FormLabel>Zoom</FormLabel>\n <Slider\n aria-label=\"zoom\"\n defaultValue={ zoomLevel }\n maxW=\"50%\"\n min={ 0.1 }\n step={ 0.05 }\n max={ 10 }\n onChange={ (value) => setZoomLevel(value) }\n >\n <SliderTrack>\n <SliderFilledTrack />\n </SliderTrack>\n <SliderThumb boxSize={ 6 }>\n <Icon as={ ZoomInDuo } />\n </SliderThumb>\n </Slider>\n </HStack>\n\n </Stack>\n { canEditFileName && (\n <Stack w=\"90%\" direction={ isImage ? 'row' : 'column' } pt={ 2 }>\n <FormLabel>Name the file:</FormLabel>\n <Box maxW=\"50%\">\n <EditableText onSubmit={ (v) => setFileName(v) } value={ fileName } size=\"sm\" />\n </Box>\n </Stack>\n ) }\n </ModalBody>\n <ModalFooter>\n <HStack>\n <Button variant=\"danger\" onClick={ handleClose }>\n Cancel\n </Button>\n <Button variant=\"success\" onClick={ handleCrop }>\n Save\n </Button>\n </HStack>\n </ModalFooter>\n </Modal>\n )\n})\n","import React from 'react'\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '../modal'\nimport { Button } from '../button'\nimport { ConfirmDeleteModalProps } from './types'\n\nexport const ConfirmDeleteModal = ({\n isOpen,\n onClose,\n confirmDelete,\n fileName,\n ...rest\n}: ConfirmDeleteModalProps) => {\n const handleDelete = () => {\n confirmDelete()\n onClose()\n }\n\n return (\n <Modal isOpen={ isOpen } onClose={ onClose } { ...rest }>\n <ModalHeader\n sx={ { fontSize: 'lg' } }\n overflow=\"hidden\"\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n pr={ 16 }\n >\n Delete { fileName }\n </ModalHeader>\n <ModalBody>\n Deleting this file is a permanent action. You will not be able to\n recover this file at a later time.\n </ModalBody>\n <ModalFooter>\n <Button variant=\"danger\" onClick={ handleDelete }>\n Delete\n </Button>\n </ModalFooter>\n </Modal>\n )\n}\n","export const updateTimeThreshold = 0.5\nexport const animationSlideTime = 250\n","import React, { forwardRef } from 'react'\nimport {\n Progress as ChakraProgress,\n ProgressProps as ChakraProgressProps,\n} from '@chakra-ui/react'\nimport { animationSlideTime } from './constants'\n\nexport interface ProgressBarProps extends ChakraProgressProps {\n animationSlideTimeMs?: number\n}\n\n/**\n * @see {@link https:/northlight/reference/progress-bar}\n *\n * @example\n * (?\n * <ProgressBar value={40} />\n * ?)\n */\nexport const ProgressBar = forwardRef<HTMLDivElement, ProgressBarProps>(\n ({ animationSlideTimeMs = animationSlideTime, sx, ...props }, ref) => (\n <ChakraProgress\n ref={ ref }\n width=\"full\"\n height=\"1a\"\n borderRadius=\"full\"\n sx={ {\n '>[role=\"progressbar\"]': {\n transition: `width ${animationSlideTimeMs}ms ease-out`,\n },\n ...sx,\n } }\n { ...props }\n />\n )\n)\n","export const formattedTime = (seconds: number) => {\n let baseString = ''\n const hours = Math.floor(seconds / 3600)\n if (hours > 0) {\n baseString += ` ${hours}h`\n }\n const minutes = Math.floor((seconds - hours * 3600) / 60)\n if (minutes > 0) {\n baseString += ` ${minutes}min`\n }\n const newSeconds = Math.floor(seconds - hours * 3600 - minutes * 60)\n if (newSeconds > 0) {\n baseString += ` ${newSeconds}s`\n }\n\n return baseString\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { ProgressBar } from './progress-bar'\nimport { VStack } from '../stack'\nimport { Small } from '../typography'\nimport { formattedTime } from './utils'\nimport { Fade } from '../transitions'\nimport { LoadingBarProps } from './types'\nimport { animationSlideTime, updateTimeThreshold } from './constants'\n\n/**\n * @see {@link https:/northlight/reference/loading-bar}\n *\n * @example\n * (?\n * () => {\n const [ progress, setProgress ] = useState(0)\n if (progress > 1 && buffer) {\n clearInterval(buffer)\n buffer = null\n }\n\n const handleClick = () => {\n setProgress(0)\n buffer = setInterval(\n () => setProgress((prev) => prev + Math.random() * 0.1),\n Math.random() * 300 + 200\n )\n }\n return (\n <Stack>\n <LoadingBar loaded={ progress } hideDisplay={true}/>\n <Button onClick={ handleClick }>Start Loading</Button>\n </Stack>\n )\n * }\n * ?)\n *\n */\nexport const LoadingBar = ({\n loaded,\n onLoadEnd = () => {},\n hideDisplay = true,\n ...rest\n}: LoadingBarProps) => {\n const ref = useRef<HTMLDivElement>(null)\n const timeRef = useRef<number>(0)\n const progress = Math.max(0, Math.min(loaded, 1))\n const [ timeLeft, setTimeLeft ] = useState(0)\n\n useEffect(() => {\n if (ref.current) {\n (ref.current.children[0] as HTMLDivElement).style.width = `${progress * 100}%`\n }\n\n if (timeRef.current) {\n const deltaTime = timeRef.current\n ? (Date.now() - timeRef.current) / 1000\n : 0\n if (deltaTime > updateTimeThreshold) {\n const newEstimate = progress !== 0 ? deltaTime / progress : 0\n setTimeLeft(Math.round(newEstimate - deltaTime))\n }\n } else if (progress > 0) {\n timeRef.current = Date.now()\n }\n }, [ progress ])\n\n return (\n <Fade\n in={ progress < 1 }\n enterDuration={ 1 }\n exitDelay={ 250 }\n exitDuration={ 1000 }\n hideDisplay={ hideDisplay }\n onTransitionComplete={ () => {\n if (progress >= 1) {\n onLoadEnd()\n }\n } }\n >\n <VStack { ...rest }>\n <Small>\n { Math.round(progress * 100) }%{ ' ' }\n { !!timeLeft && `· ${formattedTime(timeLeft)} left` }\n </Small>\n <ProgressBar\n ref={ ref }\n animationSlideTimeMs={ animationSlideTime }\n />\n </VStack>\n </Fade>\n )\n}\n","export const fiveHundredMB = 5.24288E8\nexport const imageLazyThreshold = 1.572854E7\nexport const defaultEditOptions = {\n canEdit: true,\n canEditImage: true,\n canEditName: true,\n}\n","import {\n all,\n difference,\n has,\n intersection,\n isEmpty,\n last,\n split,\n test,\n trim,\n} from 'ramda'\nimport { imageLazyThreshold } from './constants'\nimport {\n FileFormat,\n FileWithSizeAndType,\n FileWithSrcNameType,\n FileWithType,\n} from './types'\n\nexport const getResizingFactor = (\n imgWidth: number,\n imgHeight: number,\n maxWidth: number,\n maxHeight: number\n) => Math.min(1, Math.min(maxWidth / imgWidth, maxHeight / imgHeight))\n\nexport const convertBlobToFile = (\n blob: Blob,\n name: string,\n type: string\n) => new File([ blob ], name, { type })\n\nexport const compressImage = (\n file: File,\n maxWidth = 3000,\n maxHeight = 3000,\n quality = 0.75\n) => {\n const canvas = document.createElement('canvas')\n const context = canvas.getContext('2d')\n if (!context) return file\n\n const imageBuffer = new Image()\n imageBuffer.src = URL.createObjectURL(file as File)\n\n return new Promise((resolve) => {\n imageBuffer.onload = () => {\n const resizingFactor = getResizingFactor(\n imageBuffer.width,\n imageBuffer.height,\n maxWidth,\n maxHeight\n )\n const scaledWidth = imageBuffer.width * resizingFactor\n const scaledHeight = imageBuffer.height * resizingFactor\n canvas.width = scaledWidth\n canvas.height = scaledHeight\n context.drawImage(imageBuffer, 0, 0, scaledWidth, scaledHeight)\n canvas.toBlob(\n (blob) => {\n if (file && blob) {\n const newImage = convertBlobToFile(blob, file.name, file.type)\n resolve(newImage)\n } else {\n resolve(file)\n }\n },\n 'image/jpeg',\n quality\n )\n }\n })\n}\n\nexport const readableFileSize = (size: number) => {\n if (size <= 0) return 0\n const i = Math.floor(Math.log(size) / Math.log(1024))\n return `${(size / 1024 ** i).toFixed(1)} ${\n [ 'B', 'kB', 'MB', 'GB', 'TB' ][i]\n }`\n}\n\nexport const getImageAsFile = async <T extends FileWithSrcNameType>(\n image: T,\n name?: string\n): Promise<File> =>\n fetch(image.src as string)\n .then((res) => res.blob())\n .then(\n (blob) =>\n new Promise((resolve) => {\n const newImage = convertBlobToFile(blob, name || image.name, image.type)\n resolve(newImage)\n })\n )\n\nconst getFormatsAsArray = (acceptFormat: string) =>\n split(',', acceptFormat)\n .map((format) => trim(format))\n\nexport const getAcceptedExtensions = (acceptFormat: string) =>\n getFormatsAsArray(acceptFormat)\n .filter((format) => test(/^\\./, format))\n .map((format) => format.substring(1))\n\nexport const getAcceptedFormats = (acceptFormat: string) =>\n getFormatsAsArray(acceptFormat)\n .filter((format) => test(/\\//, format))\n .map((format) => split('/', format)[0])\n\nconst getFileExtension = <T extends FileWithType> (file: T) => last(split('/', file.type)) as string\n\nconst getFileFormat = <T extends FileWithType> (file: T) => split('/', file.type)[0]\n\nexport const validFileFormat = <T extends FileWithType> (\n file: T,\n acceptFormat: string\n) => (\n acceptFormat === '*'\n|| getAcceptedFormats(acceptFormat).includes(getFileFormat(file))\n|| getAcceptedExtensions(acceptFormat).includes(getFileExtension(file))\n )\n\nexport const isValidFile = <T extends FileWithSizeAndType> (\n file:T,\n acceptFormat: string,\n maxFileSize: number\n) => {\n const isValid =\n file.size as number < maxFileSize\n && validFileFormat(file, acceptFormat)\n\n return {\n isValid,\n errorMessage: file.size as number > maxFileSize\n ? 'File size is too big'\n : isValid\n ? ''\n : 'File format not supported',\n }\n}\n\nexport function getNewUploadingFiles<T extends FileFormat> (\n prev: T[],\n curr: T[],\n files: T[]\n) {\n let buffer = prev\n const prevIDs = prev ? prev.map((file) => file.name) : null\n const currentIDs = curr ? curr.map((file) => file.name) : null\n const removedItemsIDs =\n prevIDs && currentIDs && difference(prevIDs, currentIDs)\n const filesIDs = files.map((file) => file.name)\n\n if (removedItemsIDs) {\n if (\n removedItemsIDs.length === 0 ||\n intersection(removedItemsIDs, filesIDs).length > 0\n ) {\n buffer = curr\n } else {\n buffer.forEach((value, index) => {\n if (removedItemsIDs.includes(value.name)) {\n const updatedData = { ...value,\n uploaded: has('size', value) ? value.size : 0 }\n buffer[index] = updatedData\n }\n }\n )\n }\n } else {\n buffer = curr\n }\n return buffer\n}\n\nexport const generateId = () => Math.random().toString().substring(3)\n\nexport const isFile = (file: any) => 'File' in window && file instanceof File\n\nexport const isFileImage = <T extends FileWithType>(file: T) => {\n if (isFile(file)) {\n return getFileFormat(file) === 'image'\n }\n switch (getFileFormat(file)) {\n case 'image':\n case 'jpeg':\n case 'jpg':\n case 'png':\n case 'gif':\n case 'tiff':\n case 'jfif':\n return true\n default:\n return false\n }\n}\n\nexport const onlyAcceptsImages = (acceptFormat: string) => {\n if (acceptFormat === '*' || acceptFormat === '') {\n return false\n }\n const formats = getAcceptedFormats(acceptFormat)\n const extensions = getAcceptedExtensions(acceptFormat)\n\n const premiseOne = isEmpty(formats) || all((type: string) => type === 'image', formats)\n\n const premiseTwo = isEmpty(extensions)\n || all((type: string) => isFileImage({ type }), extensions)\n\n return premiseOne && premiseTwo\n}\n\nexport const createFileObject = <T extends FileFormat>(file: File): T => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: null,\n src: null,\n type: file.type,\n name: file.name,\n isUploading: true,\n isLazy: file.size > imageLazyThreshold && isFileImage(file),\n }\n return fileObject as T\n}\n\nexport const createPreviewFileObject = <T extends FileFormat>(file: File): T => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: file.size,\n src: URL.createObjectURL(file),\n type: file.type,\n name: file.name,\n isUploading: false,\n isLazy: false,\n }\n return fileObject as T\n}\n\nexport const createFileObjectFromSrc = <T extends FileWithSrcNameType>(file: T) => {\n const fileId = generateId()\n const fileObject = {\n _id: fileId,\n size: null,\n src: file.src,\n type: file.type,\n name: file.name,\n isUploading: false,\n isLazy: false,\n }\n return fileObject\n}\n\nexport const isOverflowing = (element: Element) => (element\n ? element.scrollHeight > element.clientHeight\n : false\n)\n\nexport const toBase64 = (file: File): Promise<string> => new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.readAsDataURL(file)\n reader.onload = () => resolve(reader.result as string)\n reader.onerror = (error) => reject(error)\n})\n\nconst correctFileExtension = (str: string) => test(/./g, str)\n\nconst getFileFormattedName = (file: File | FileFormat) => (correctFileExtension(file.name)\n ? file.name\n : `${file.name}.${getFileExtension(file)}`)\nexport const handleDownload = (file:\nFile | FileFormat | null | string | FileFormat\n) => () => {\n if (!file) return\n const anchor = document.createElement('a')\n anchor.href = isFile(file) ? URL.createObjectURL(file as File) : (file as FileFormat).src || ''\n anchor.download = isFile(file)\n ? 'downloaded-file.jpg'\n : getFileFormattedName(file as File)\n anchor.click()\n}\n","import React from 'react'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { FileIconButtonProps } from './types'\n\nexport const FileIconButton = ({\n icon,\n color = 'unset',\n ...rest\n}: FileIconButtonProps) => (\n <IconButton variant=\"ghost\" size=\"sm\" { ...rest }>\n <Icon as={ icon } boxSize=\"24px\" color={ color } />\n </IconButton>\n)\n","import React, { DragEvent, useEffect, useRef, useState } from 'react'\nimport { Fade, SlideFade, useMultiStyleConfig } from '@chakra-ui/react'\nimport {\n DownloadDuo,\n EditBoxDuo,\n FileBlankDuo,\n Image03Solid,\n TrashFullDuo,\n UploadCloudSolid,\n} from '@northlight/icons'\nimport { identity } from 'ramda'\nimport AvatarEditor from 'react-avatar-editor'\nimport { FileEditorModal } from './file-editor-modal'\nimport { ConfirmDeleteModal } from './confirm-delete-modal'\nimport { Icon } from '../icon'\nimport { Lead, P } from '../typography'\nimport { HStack, Stack } from '../stack'\nimport { FilePickerProps } from './types'\nimport { Input } from '../input'\nimport { Box } from '../box'\nimport { LoadingBar } from '../progress'\nimport { Spinner } from '../spinner'\nimport { Image } from '../image'\nimport { Clickable } from '../clickable'\nimport { useDisclosure } from '../../hooks'\nimport {\n compressImage,\n convertBlobToFile,\n handleDownload,\n isFile,\n isFileImage,\n isValidFile,\n onlyAcceptsImages,\n readableFileSize,\n} from './utils'\nimport { FileIconButton } from './file-icon-button'\nimport { defaultEditOptions, fiveHundredMB } from './constants'\nimport { useCurrentTheme } from '../../utils'\n\n/**\n * Lets user import file of any type as Javascript File Object\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/reference/file-picker}\n *\n * @example (Example)\n * (?\n * <FilePicker />\n * ?)\n *\n *\n */\nexport const FilePicker = ({\n acceptFormat = '*',\n onChange = identity,\n compression,\n uploaded: uploadedInitial = 0,\n maxFileSize = fiveHundredMB,\n showProgress = false,\n value = '',\n loadWithSpinner = false,\n confirmDelete = false,\n editFileOptions = defaultEditOptions,\n sx = {},\n ...rest\n}: FilePickerProps) => {\n const fileInputRef = useRef<HTMLInputElement>(null)\n const imageEditorRef = useRef<AvatarEditor>(null)\n const [ file, setFile ] = useState<File | null | string>(value)\n\n const [ isInvalid, setIsInvalid ] = useState(false)\n const [ name, setName ] = useState('')\n const editModal = useDisclosure()\n const deleteModal = useDisclosure()\n const [ editable, setEditable ] = useState(false)\n const [ hasLoaded, setHasLoaded ] = useState(false)\n const [ isLoading, setIsLoading ] = useState(false)\n const [ isImage, setIsImage ] = useState(true)\n const [ uploaded, setUploaded ] = useState(uploadedInitial)\n\n const onlyImageAccepted = onlyAcceptsImages(acceptFormat)\n\n const isUploading = uploaded < 1\n\n useEffect(() => {\n setUploaded(uploadedInitial)\n }, [ uploadedInitial ])\n\n useEffect(() => {\n if (!isUploading) {\n setIsLoading(false)\n setHasLoaded(true)\n }\n }, [ isUploading ])\n\n const currentTheme = useCurrentTheme()\n\n const { filePicker } = useMultiStyleConfig('FilePicker', {\n isImage,\n hasLoaded,\n isInvalid,\n currentTheme,\n sx,\n ...rest,\n })\n\n useEffect(() => {\n if (isInvalid) {\n setTimeout(() => {\n setIsInvalid(false)\n }, 1500)\n }\n }, [ isInvalid ])\n\n const handleOnClick = () => {\n if (fileInputRef.current && !file) {\n fileInputRef.current.click()\n }\n }\n\n const handleCrop = () => {\n if (imageEditorRef.current) {\n const canvas = imageEditorRef.current.getImageScaledToCanvas()\n canvas.toBlob((blob) => {\n if (file && blob) {\n const fileName = name\n || isFile(file)\n ? (file as File).name\n : 'downloaded-file'\n\n const fileType = isFile(file)\n ? (file as File).type\n : '.jpg'\n\n const newFile = convertBlobToFile(blob, fileName, fileType)\n setFile(newFile)\n setHasLoaded(true)\n onChange(newFile)\n }\n })\n editModal.onClose()\n }\n }\n\n const clearImage = () => {\n if (fileInputRef.current) {\n setIsInvalid(false)\n setName('')\n setFile(null)\n setIsImage(true)\n setHasLoaded(false)\n if (!showProgress) {\n setUploaded(0)\n }\n onChange(null)\n fileInputRef.current.value = ''\n }\n }\n\n const handleImageUpload = async (newImage: File | null) => {\n if (newImage) {\n setIsInvalid(false)\n const isFileTypeImage = isFileImage(newImage)\n setIsImage(isFileTypeImage)\n const compressedImage = isFileTypeImage\n ? ((await compressImage(\n newImage,\n compression?.width,\n compression?.height,\n compression?.quality\n )) as File)\n : newImage\n setFile(compressedImage)\n if (!showProgress) {\n setUploaded(1)\n }\n onChange(compressedImage)\n setIsLoading(isUploading)\n }\n }\n\n const handleChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n setIsInvalid(false)\n const newImage = e.target.files[0]\n handleImageUpload(newImage)\n }\n }\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault()\n if (e.dataTransfer.files) {\n const newFile = e.dataTransfer.files[0]\n if (isValidFile(newFile, acceptFormat, maxFileSize).isValid) {\n handleImageUpload(newFile)\n } else {\n setIsInvalid(true)\n }\n }\n }\n\n return (\n <Stack maxW={ filePicker.width as number } { ...rest }>\n <Clickable\n onClick={ handleOnClick }\n onDrop={ handleDrop }\n onDragOver={ (e: DragEvent) => e.preventDefault() }\n onMouseEnter={ () => setEditable(true) }\n onMouseLeave={ () => setEditable(false) }\n >\n <Box sx={ filePicker }>\n <SlideFade\n in={ hasLoaded }\n style={ {\n width: '100%',\n height: '100%',\n display: hasLoaded && isImage ? 'initial' : 'none',\n } }\n >\n <Image\n src={ file\n ? isFile(file)\n ? URL.createObjectURL(file as File)\n : file as string\n : '' }\n alt=\"preview-image\"\n objectFit=\"cover\"\n borderRadius={ 8 }\n display={ hasLoaded && isImage ? 'inherit' : 'none' }\n h=\"full\"\n w=\"full\"\n />\n </SlideFade>\n <Input\n type=\"file\"\n display=\"none\"\n accept={ acceptFormat }\n ref={ fileInputRef }\n onChange={ handleChange }\n />\n <Stack\n display={ hasLoaded && isImage ? 'none' : 'default' }\n alignItems=\"center\"\n w=\"85%\"\n spacing=\"0a\"\n >\n <Icon\n as={ onlyImageAccepted ? Image03Solid : UploadCloudSolid }\n boxSize=\"32px\"\n color={\n isInvalid\n ? 'red.500'\n : editable\n ? 'blue.500'\n : 'gray.300'\n }\n display={ isImage && !hasLoaded ? 'inline-block' : 'none' }\n aria-label=\"file-icon-upload\"\n />\n <Icon\n as={ FileBlankDuo }\n boxSize=\"32px\"\n color=\"gray.300\"\n display={ hasLoaded && !isImage ? 'inline-block' : 'none' }\n />\n <P\n variant={ isInvalid ? '16' : '14' }\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n overflow=\"hidden\"\n maxWidth={ filePicker.width as number }\n textAlign=\"center\"\n alignSelf=\"center\"\n >\n { isInvalid\n ? 'File not supported'\n : file && isFile(file)\n ? (file as File).name\n : `Drag & drop ${onlyImageAccepted ? 'image' : 'file'} or` }\n </P>\n <Lead\n sx={ {\n textDecoration: 'underline',\n color: isInvalid ? 'red.500' : 'blue.500',\n } }\n display={ isLoading || hasLoaded ? 'none' : 'default' }\n >\n Click to upload\n </Lead>\n <Box display={ isLoading ? 'block' : 'none' } pt={ 1 }>\n { loadWithSpinner\n ? <Spinner />\n : <LoadingBar loaded={ uploaded } />\n }\n </Box>\n </Stack>\n <Fade\n in={ hasLoaded && editable }\n style={ {\n display: hasLoaded && editable ? 'flex' : 'none',\n justifyContent: 'center',\n } }\n >\n <HStack\n spacing={ 2 }\n position=\"absolute\"\n bottom=\"3\"\n justifyContent=\"center\"\n bgColor=\"bg.layer\"\n borderRadius={ 6 }\n width=\"44\"\n py={ 2 }\n >\n { editFileOptions.canEdit && (\n <FileIconButton\n aria-label=\"edit-file\"\n onClick={ editModal.onOpen }\n icon={ EditBoxDuo }\n />\n ) }\n <FileIconButton\n aria-label=\"download-file\"\n onClick={ handleDownload(file) }\n icon={ DownloadDuo }\n />\n <FileIconButton\n aria-label=\"delete-file\"\n onClick={ confirmDelete ? deleteModal.onOpen : clearImage }\n icon={ TrashFullDuo }\n color=\"red.500\"\n />\n </HStack>\n </Fade>\n <P\n variant=\"14\"\n sx={ { color: 'gray.400' } }\n display={\n hasLoaded && !isImage && !isLoading\n ? 'inline-block'\n : 'none'\n }\n >\n { isFile(file) && readableFileSize((file as File)?.size as number) }\n </P>\n\n </Box>\n </Clickable>\n <FileEditorModal\n { ...editModal }\n fileName={ name }\n setFileName={ setName }\n image={ file }\n handleCrop={ handleCrop }\n isImage={ isImage }\n ref={ imageEditorRef }\n canEditFileName={ editFileOptions.canEditName }\n canCropImage={ editFileOptions.canEditImage }\n />\n <ConfirmDeleteModal\n { ...deleteModal }\n confirmDelete={ clearImage }\n fileName={ name || 'file' }\n />\n </Stack>\n )\n}\n","import React, { useState } from 'react'\nimport { identity } from 'ramda'\nimport { Field } from '../form'\nimport { FilePicker } from './file-picker'\nimport { toBase64 } from './utils'\nimport { FilePickerFieldProps } from './types'\n\n/**\n * The file picker component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FilePicker\n * @see Field\n * @see {@link https://northlight.dev/reference/file-picker-field}\n *\n * @example (Example)\n * ## Meant for uploading images in a form\n * Where they handled as base64 string\n * (?\n * <Form initialValues={{image: ''}}>\n * {({watch}) => (\n * <Stack>\n * <FilePickerField name=\"image\" />\n * <Code maxH=\"xs\" overflowY=\"scroll\">{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n * </Form>\n *\n * ?)\n *\n */\nexport const FilePickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: FilePickerFieldProps) => {\n const [ uploaded, setUploaded ] = useState(0)\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => (\n <FilePicker\n onChange={ async (file: File | null) => {\n if (file) {\n const formattedFile = await toBase64(file)\n setUploaded(1)\n onChange(formattedFile)\n onChangeCallback(formattedFile)\n } else {\n setUploaded(0)\n onChange(null)\n onChangeCallback(null)\n }\n } }\n value={ value }\n uploaded={ value ? 1 : uploaded }\n loadWithSpinner={ true }\n acceptFormat=\"image/*\"\n { ...rest }\n />\n ) }\n </Field>\n )\n}\n","import React, { DragEvent, useEffect, useRef, useState } from 'react'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { filter, identity } from 'ramda'\nimport { Image03Solid, UploadCloudSolid } from '@northlight/icons'\nimport { Box } from '../box'\nimport { Icon } from '../icon'\nimport { Input } from '../input'\nimport {\n compressImage,\n createFileObject,\n createPreviewFileObject,\n isFileImage,\n isValidFile,\n onlyAcceptsImages,\n readableFileSize,\n} from './utils'\nimport { Clickable } from '../clickable'\nimport { HStack, Stack } from '../stack'\nimport { Lead, P } from '../typography'\nimport { fiveHundredMB } from './constants'\nimport { FileFormat, MultiFileUploaderProps } from './types'\nimport { useCurrentTheme } from '../../utils'\n\n/**\n * Input to upload multiple files without ui to render files\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/reference/multi-file-uploader}\n * @example\n * (?\n * () => {\n * const [ images, setImages ] = useState([])\n * return (\n * <Stack>\n <Box h=\"sm\">\n <Carousel>\n { images.map((imageSrc) => (\n <Image src={imageSrc} borderRadius=\"md\" />\n )) }\n </Carousel>\n </Box>\n <MultiFileUploader\n acceptFormat=\"image/*\"\n onChange={ (newFiles) =>\n setImages(\n newFiles.map((file) => URL.createObjectURL(file))\n )\n }\n />\n </Stack>\n * )\n * }\n * ?)\n *\n */\nexport function MultiFileUploader<T extends FileFormat> ({\n acceptFormat = '*',\n compression,\n onChange = identity,\n addFilesToQueue = identity,\n updatePreviewFiles = identity,\n maxFileSize = fiveHundredMB,\n ...rest\n}: MultiFileUploaderProps<T>) {\n const inputRef = useRef<HTMLInputElement>(null)\n const [ isInvalid, setIsInvalid ] = useState(false)\n const currentTheme = useCurrentTheme()\n const { multiFilePicker } = useMultiStyleConfig('FilePicker', { isInvalid, currentTheme, ...rest })\n const [ active, setActive ] = useState(false)\n const [ errorMessage, setErrorMessage ] = useState('')\n\n const onlyImageAccepted = onlyAcceptsImages(acceptFormat)\n\n useEffect(() => {\n if (isInvalid) {\n setTimeout(() => {\n setIsInvalid(false)\n }, 1500)\n }\n }, [ isInvalid ])\n\n const toggleHover = () => {\n setActive((prev) => !prev)\n }\n\n const handleClick = () => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }\n\n const updateMultipleFiles = async (newFiles: FileList) => {\n const filesArr: File[] = Array.prototype.slice.call(newFiles)\n const validFiles = filter((file) => {\n const fileCheck = isValidFile(file, acceptFormat, maxFileSize)\n if (!fileCheck.isValid) {\n setErrorMessage(fileCheck.errorMessage || '')\n }\n return fileCheck.isValid\n }, filesArr)\n if (filesArr.length > 0 && validFiles.length === 0) {\n setIsInvalid(true)\n }\n\n addFilesToQueue(validFiles.map((file) => createFileObject(file)))\n updatePreviewFiles(validFiles.map((file) => createPreviewFileObject(file)))\n const compressedFiles = validFiles.map(\n async (file) => (isFileImage(file)\n ? compressImage(\n file,\n compression?.width,\n compression?.height,\n compression?.quality\n ) as File\n : file)\n )\n Promise.all(compressedFiles).then((values) => {\n onChange(values)\n if (inputRef.current) {\n inputRef.current.value = ''\n }\n })\n }\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault()\n updateMultipleFiles(e.dataTransfer.files)\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n updateMultipleFiles(e.target.files)\n }\n }\n return (\n <Clickable\n onClick={ handleClick }\n onDragOver={ (e: DragEvent) => e.preventDefault() }\n onDrop={ handleDrop }\n onMouseEnter={ toggleHover }\n onMouseLeave={ toggleHover }\n >\n <Box sx={ multiFilePicker } { ...rest }>\n <Stack\n alignItems=\"center\"\n justifyContent=\"center\"\n h=\"full\"\n w=\"full\"\n spacing={ 0 }\n >\n <Icon\n as={ onlyImageAccepted ? Image03Solid : UploadCloudSolid }\n boxSize=\"32px\"\n color={\n isInvalid\n ? 'red.500 '\n : active\n ? 'blue.500 '\n : 'gray.300'\n }\n aria-label=\"image-icon-upload\"\n mb={ onlyImageAccepted ? '0a' : 0 }\n />\n <HStack spacing={ 1 } display={ isInvalid ? 'none' : 'flex' }>\n <P variant=\"14\" textAlign=\"center\" alignSelf=\"center\">\n Drag & drop { onlyImageAccepted ? 'images' : 'files' } here or\n </P>\n <Lead sx={ { textDecoration: 'underline', color: 'blue.500' } }>\n choose { onlyImageAccepted ? 'image' : 'file' }\n </Lead>\n </HStack>\n <P variant=\"14\" textAlign=\"center\" alignSelf=\"center\" display={ isInvalid ? 'initial' : 'none' }>\n { errorMessage }\n </P>\n <P variant=\"14\" sx={ { color: 'gray.400' } }>\n Max file size is { readableFileSize(maxFileSize) }\n </P>\n </Stack>\n <Input\n type=\"file\"\n display=\"none\"\n accept={ acceptFormat }\n onChange={ handleChange }\n multiple={ true }\n ref={ inputRef }\n />\n </Box>\n </Clickable>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { identity } from 'ramda'\nimport { useMultiStyleConfig } from '@chakra-ui/react'\nimport { DownloadDuo, EditBoxDuo, FileBlankDuo, Image03Duo } from '@northlight/icons'\nimport AvatarEditor from 'react-avatar-editor'\nimport { Icon } from '../icon'\nimport { SlideFade } from '../transitions'\nimport { P } from '../typography'\nimport { HStack, Stack } from '../stack'\nimport { convertBlobToFile, getImageAsFile, handleDownload, isFileImage, readableFileSize } from './utils'\nimport { Box } from '../box'\nimport { Image as ChakraImage } from '../image'\nimport { useDisclosure } from '../../hooks'\nimport { CloseButton } from '../close-button'\nimport { LoadingBar } from '../progress'\nimport { ConfirmDeleteModal } from './confirm-delete-modal'\nimport { FileEditorModal } from './file-editor-modal'\nimport { FileIconButton } from './file-icon-button'\nimport { FileFormat, FileItemProps } from './types'\nimport { defaultEditOptions } from './constants'\n\nexport function FileItem<T extends FileFormat> ({\n onChangeCallback,\n addFile = identity,\n deleteFile,\n file,\n confirmDelete = true,\n isLazy = false,\n editFileOptions = defaultEditOptions,\n}: FileItemProps<T>) {\n const { canEdit, canEditImage, canEditName } = editFileOptions\n const { fileItem } = useMultiStyleConfig('FilePicker')\n const editModalDisclosure = useDisclosure()\n const deleteModalDisclosure = useDisclosure()\n const imageEditorRef = useRef<AvatarEditor>(null)\n const [ fileName, setFileName ] = useState('')\n const [ show, setShow ] = useState(true)\n const [ hasLoaded, setHasLoaded ] = useState(false)\n const [ loadingImage, setLoadingImage ] = useState(true)\n\n useEffect(() => {\n if (file.src) {\n const buffer = new Image()\n buffer.src = file.src\n buffer.onload = () => {\n setLoadingImage(false)\n }\n }\n }, [ file.isUploading ])\n\n const handleCrop = async () => {\n if (imageEditorRef.current && isFileImage(file)) {\n const canvas = imageEditorRef.current.getImageScaledToCanvas()\n canvas.toBlob(async (blob) => {\n if (file && blob) {\n const newFile = convertBlobToFile(blob, fileName || file.name, file.type)\n deleteFile(file)\n addFile(newFile, file._id)\n onChangeCallback([ newFile ])\n }\n })\n editModalDisclosure.onClose()\n } else if (file.src) {\n const newFile = await getImageAsFile(file, fileName)\n deleteFile(file)\n addFile(newFile, file._id)\n onChangeCallback([ newFile ])\n }\n }\n\n const clearImage = () => {\n setShow(false)\n setTimeout(() => {\n deleteFile(file)\n }, 500)\n }\n\n return (\n <SlideFade\n in={ show }\n direction=\"left\"\n offset={ 30 }\n enterDuration={ !isLazy ? 300 : 1 }\n exitDuration={ 300 }\n >\n <Box sx={ fileItem }>\n <HStack\n w=\"full\"\n h=\"full\"\n borderRadius={ 6 }\n alignItems=\"center\"\n justifyContent=\"space-between\"\n px={ 2 }\n pt={ file.isUploading && !hasLoaded ? 2 : 0 }\n >\n <HStack spacing={ 4 } alignItems=\"start\" maxW=\"50%\">\n { isFileImage(file)\n ? file.isUploading || loadingImage\n ? (\n <Icon\n as={ Image03Duo }\n bgColor=\"gray.100\"\n color=\"gray.400\"\n boxSize=\"10\"\n borderRadius=\"8\"\n p=\"2\"\n />\n )\n : (\n <ChakraImage\n src={ file.src || '' }\n alt=\"preview-image\"\n objectFit=\"cover\"\n display={ file.src ? 'inherit' : 'none' }\n borderRadius=\"8\"\n boxSize=\"10\"\n />\n )\n : (\n <Icon\n as={ FileBlankDuo }\n boxSize=\"10\"\n p=\"1\"\n color=\"gray.300\"\n />\n )\n }\n <Stack\n alignItems=\"start\"\n justifyContent=\"start\"\n spacing=\"0\"\n maxW=\"100%\"\n >\n <P\n variant=\"14\"\n whiteSpace=\"nowrap\"\n textOverflow=\"ellipsis\"\n overflow=\"hidden\"\n maxW=\"100%\"\n >\n { file?.name }\n </P>\n <P variant=\"14\" sx={ { color: 'gray.400' } }>\n { file?.size && readableFileSize(file.size) }\n </P>\n </Stack>\n </HStack>\n <HStack\n spacing=\"3\"\n justifyContent=\"center\"\n borderRadius=\"6\"\n bgColor=\"bg.filled\"\n display={ file.isUploading ? 'none' : 'flex' }\n p=\"1\"\n >\n { canEdit && (\n <FileIconButton\n aria-label=\"Edit-image\"\n onClick={ editModalDisclosure.onOpen }\n icon={ EditBoxDuo }\n />\n ) }\n <FileIconButton\n aria-label=\"download-image\"\n onClick={ handleDownload(file) }\n icon={ DownloadDuo }\n />\n <CloseButton\n onClick={ confirmDelete ? deleteModalDisclosure.onOpen : clearImage }\n />\n </HStack>\n </HStack>\n <Box\n w=\"full\"\n pl=\"16\"\n pr=\"4\"\n pb=\"2\"\n mt=\"-2\"\n display={ file.isUploading ? 'block' : 'none' }\n >\n <LoadingBar\n loaded={ file.size ? (file?.uploaded || 0) / file.size : 0 }\n onLoadEnd={ () => setHasLoaded(true) }\n />\n </Box>\n { canEdit && (\n <FileEditorModal\n { ...editModalDisclosure }\n fileName={ fileName || file.name }\n setFileName={ setFileName }\n image={ file.src }\n canCropImage={ canEditImage }\n canEditFileName={ canEditName }\n handleCrop={ handleCrop }\n isImage={ isFileImage(file) }\n ref={ imageEditorRef }\n />\n ) }\n <ConfirmDeleteModal\n { ...deleteModalDisclosure }\n confirmDelete={ clearImage }\n fileName={ fileName || file.name }\n />\n </Box>\n </SlideFade>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { any, identity, map } from 'ramda'\nimport { FileItem } from './file-item'\nimport { Stack } from '../stack'\nimport { createPreviewFileObject, getNewUploadingFiles, isFile, isOverflowing } from './utils'\nimport { FileFormat, MultiFileListProps } from './types'\nimport { defaultEditOptions } from './constants'\n\n/**\n * Show list of files, their uploading progress as well as options to edit/delete them\n * @see MultiFileUploader\n * @see MultiFilePicker\n * @see {@link https://northlight.dev/multi-file-list}\n *\n */\nexport function MultiFileList<T extends FileFormat> ({\n files,\n uploadingFiles,\n onChange = identity,\n deleteFile = identity,\n addFile = identity,\n confirmDelete,\n editFileOptions = defaultEditOptions,\n enableSmartLoad = true,\n ...rest\n}: MultiFileListProps<T>) {\n const [ uploadingFilesReference, setUploadingFilesReference ] = useState(uploadingFiles)\n const [ overflowing, setOverflowing ] = useState(false)\n\n const formattedFiles = files?.map((file) => (\n isFile(file)\n ? createPreviewFileObject(file as unknown as File)\n : file\n ))\n\n const listRef = useRef<HTMLDivElement>(null)\n useEffect(() => {\n if (uploadingFiles && uploadingFilesReference && files) {\n if (enableSmartLoad) {\n const newVal = getNewUploadingFiles<T>(uploadingFilesReference, uploadingFiles, files)\n setUploadingFilesReference(newVal)\n } else {\n setUploadingFilesReference(uploadingFiles)\n }\n }\n if (listRef.current) {\n setOverflowing(isOverflowing(listRef.current))\n }\n }, [ uploadingFiles, files ])\n\n const isLazy = uploadingFilesReference\n ? any((file: T) => file.isLazy || false, uploadingFilesReference as T[])\n : false\n\n return (\n <Stack\n ref={ listRef }\n spacing={ 2 }\n maxH=\"sm\"\n pr={ overflowing ? 2 : 0 }\n overflowY=\"auto\"\n { ...rest }\n >\n { uploadingFilesReference && map((file) => (\n <FileItem\n onChangeCallback={ onChange }\n file={ file }\n key={ file._id }\n deleteFile={ deleteFile }\n confirmDelete={ confirmDelete }\n isLazy={ isLazy }\n editFileOptions={ editFileOptions }\n />\n ), uploadingFilesReference) }\n { formattedFiles && map((file) => (\n <FileItem\n onChangeCallback={ onChange }\n addFile={ addFile }\n file={ file }\n key={ file._id }\n deleteFile={ deleteFile }\n confirmDelete={ confirmDelete }\n editFileOptions={ editFileOptions }\n />\n ), formattedFiles) }\n </Stack>\n )\n}\n","import React, { useState } from 'react'\nimport { findIndex, identity, insert, isEmpty, isNil, remove } from 'ramda'\nimport { MultiFileList } from './multi-file-list'\nimport { createPreviewFileObject } from './utils'\nimport { MultiFileUploader } from './multi-file-uploader'\nimport { Stack } from '../stack'\nimport { defaultEditOptions, fiveHundredMB } from './constants'\nimport { FileFormat, MultiFilePickerProps } from './types'\n\n/**\n * Lets user import file of any type as Javascript File Object\n * @see FilePicker\n * @see {@link https://northlight.dev/reference/multi-file-picker}\n *\n * @example (Example)\n * (?\n * <MultiFilePicker />\n * ?)\n * ## For more information, view: <a href=\"https://northlight.dev/components/file%20picker\">guide</a>\n *\n *\n */\nexport function MultiFilePicker<T extends FileFormat> ({\n acceptFormat = '*',\n compression,\n onChange = identity,\n files = null,\n uploadingFiles,\n deleteFile = null,\n confirmDelete = true,\n maxFileSize = fiveHundredMB,\n enablePreLoad = true,\n enableSmartLoad = true,\n editFileOptions = defaultEditOptions,\n variant,\n ...rest\n}: MultiFilePickerProps<T>) {\n const [ bufferFiles, setBufferFiles ] = useState<T[]>([])\n const [ previewFiles, setPreviewFiles ] = useState<T[]>([])\n\n const getIndexById = (id: string) => findIndex((file) => file._id === id, previewFiles)\n\n const addFile = (file: File, id: string) => {\n const addedFile = createPreviewFileObject(file)\n const indexOfChanged = getIndexById(id)\n const newPreviewFiles = remove(indexOfChanged, 1, previewFiles)\n const newFiles = insert(indexOfChanged, addedFile, newPreviewFiles)\n setPreviewFiles(newFiles as T[])\n }\n\n const handleDelete = (file: T | FileFormat) => {\n const indexOfRemoved = getIndexById(file._id)\n const newPreviewFiles = remove(indexOfRemoved, 1, previewFiles)\n setPreviewFiles(newPreviewFiles)\n }\n\n const updateQueuedFiles = (queuedFiles: T[]) => {\n if (enablePreLoad) {\n setBufferFiles(queuedFiles)\n }\n }\n\n return (\n <Stack\n spacing={ 4 }\n maxW=\"inherit\"\n maxH=\"inherit\"\n { ...rest }\n >\n <MultiFileUploader\n acceptFormat={ acceptFormat }\n compression={ compression }\n onChange={ onChange }\n addFilesToQueue={ updateQueuedFiles }\n updatePreviewFiles={ setPreviewFiles }\n maxFileSize={ maxFileSize }\n variant={ variant }\n />\n <MultiFileList\n files={ files || previewFiles }\n onChange={ onChange }\n uploadingFiles={\n isEmpty(files) && (uploadingFiles?.length === 0 || isNil(uploadingFiles))\n ? bufferFiles\n : uploadingFiles\n }\n deleteFile={ deleteFile || handleDelete }\n confirmDelete={ confirmDelete }\n enableSmartLoad={ enableSmartLoad }\n editFileOptions={ editFileOptions }\n addFile={ addFile }\n />\n </Stack>\n )\n}\n","import React from 'react'\nimport { concat, findIndex, identity, isEmpty, map, remove } from 'ramda'\nimport { Field } from '../form'\nimport { MultiFilePicker } from './multi-file-picker'\nimport { createFileObjectFromSrc, isFile, toBase64 } from './utils'\nimport { FileFormat, MultiFilePickerFieldProps } from './types'\n\n/**\n * The multi file picker component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see MultiFilePicker\n * @see Field\n * @see {@link https://northlight.dev/reference/multi-file-picker-field}\n *\n * @example (Example)\n * ## Meant for uploading images in a form\n * Where they handled as base64 strings\n * (?\n * <Form initialValues={{images: []}}>\n * {({watch}) => (\n * <Stack>\n * <MultiFilePickerField name=\"images\" />\n * <Code maxH=\"xs\" overflowY=\"scroll\">{JSON.stringify(watch(), null, 2)}</Code>\n * </Stack>\n * )}\n * </Form>\n *\n * ?)\n *\n */\nexport const MultiFilePickerField = ({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n ...rest\n}: MultiFilePickerFieldProps) => {\n const getFiles = (sources: string[]) => {\n const buffer = map((source) => ({\n type: 'jpg',\n src: source,\n name: '',\n }), sources)\n const formattedFiles = map((file) => (isFile(file)\n ? file : createFileObjectFromSrc(file)), buffer)\n return formattedFiles as FileFormat[]\n }\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ onChange, value }) => {\n const handleDelete = (file: FileFormat) => {\n const removedIndex = findIndex((src) => src === file.src, value)\n const newValues = remove(removedIndex, 1, value)\n onChange(newValues)\n }\n\n return (\n <MultiFilePicker\n onChange={ async (files: File[] | null) => {\n if (!isEmpty(files)) {\n const newFiles = files?.map(async (file) => toBase64(file))\n if (newFiles) {\n Promise.all(newFiles).then((values) => {\n onChange(concat(value, values))\n onChangeCallback(values)\n })\n }\n } else {\n onChange([])\n onChangeCallback([])\n }\n } }\n enablePreLoad={ false }\n enableSmartLoad={ false }\n deleteFile={ handleDelete }\n acceptFormat=\"image/*\"\n editFileOptions={ { canEdit: true, canEditImage: true, canEditName: false } }\n confirmDelete={ false }\n files={ getFiles(value) }\n { ...rest }\n />\n )\n } }\n </Field>\n )\n}\n","import React from 'react'\nimport { ChakraProvider } from '@chakra-ui/react'\nimport { theme as webappTheme } from '../../theme'\nimport { MediatoolThemeProviderProps } from './types'\nimport { CustomTheme } from '../../utils/use-current-theme'\n\n/**\n * Should be at the root of you project, wraps the app in the theme context\n * @see {@link https://northlight.dev/reference/mediatool-theme-provider}\n *\n * @example\n * Should pass down a theme from northlight/ui, currently exports two themes:\n * * theme - light mode\n * * tottTheme - dark mode\n *\n *\n */\nexport const MediatoolThemeProvider = ({\n children,\n theme = webappTheme,\n themeName = 'webappTheme',\n}: MediatoolThemeProviderProps) => (\n <ChakraProvider resetCSS={ true } theme={ theme }>\n <CustomTheme.Provider value={ themeName }>\n { children }\n </CustomTheme.Provider>\n </ChakraProvider>\n)\n","import React from 'react'\nimport { Menu as ChakraMenu } from '@chakra-ui/react'\nimport { MenuProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/menu}\n *\n * @example (Example)\n * ##Clean menu with different options\n * The menu can be `relaxed` for primary menus, and `compact` for secodnary menus.\n * <br />\n * (?\n * +\n * const MyMenuComponent = () => {\n * const [selectedLabel, setSelectedLabel] = useState('Compare periods');\n *\n * const menuOptions = {\n * '1': 'No Comparison',\n * '2': 'Report date range',\n * '3': 'Previous week',\n * '4': 'Previous quarter',\n * '5': 'Previous month',\n * '6': 'Previous year',\n * '7': 'Previous period',\n *\n * }\n *\n * const handleMenuItemClick = (value) => {\n * setSelectedLabel(menuOptions[value] || 'Compare periods');\n * }\n *\n * return (\n * <Menu variant=\"relaxed\" closeOnSelect={false}>\n * <MenuButton\n * as={Button}\n * leftIcon={<VersionsDuo /> }\n * variant=\"brand\"\n * rightIcon={<ChevronDownDuo />}\n * >\n * { selectedLabel }\n * </MenuButton>\n * <MenuList>\n * <MenuOptionGroup onChange={ handleMenuItemClick } defaultValue=\"1\" type=\"radio\">\n * <MenuItemOption value=\"1\">No Comparison</MenuItemOption>\n * <MenuDivider />\n * <MenuItemOption isDisabled={true} value=\"2\">\n * <Box>\n * <Text>Report date range</Text>\n * <Text fontSize=\"xs\" color=\"text.subdued\">\n * 12-12-2022 01-01-23\n * </Text>\n * </Box>\n * </MenuItemOption>\n * <MenuDivider />\n * <MenuItemOption value=\"3\">Previous week</MenuItemOption>\n * <MenuItemOption value=\"4\">Previous quarter</MenuItemOption>\n * <MenuItemOption value=\"5\">Previous month</MenuItemOption>\n * <MenuItemOption value=\"6\">Previous year</MenuItemOption>\n * <MenuItemOption value=\"7\">Previous period</MenuItemOption>\n * </MenuOptionGroup>\n *<MenuDivider />\n * <MenuItem sx={ { placeContent: 'space-between' } }>\n * Custom Date\n * <Icon as={ ChevronRightDuo } aligh=\"right\" />\n * </MenuItem>\n * </MenuList>\n* </Menu>\n* )\n*\n* }\n*\n* render(<MyMenuComponent/>)\n* ?)\n*\n* @example (Example)\n* ##Menu with Group titles\n* To group related MenuItems, use the MenuGroup component and pass it a title for the group name\n* <br />\n* (?\n * <Menu closeOnSelect={false}>\n * <MenuButton as={Button} rightIcon={<ChevronDownDuo />}>\n * Actions\n * </MenuButton>\n * <MenuList minWidth='240px'>\n * <MenuOptionGroup defaultValue='asc' title='Order' type='radio'>\n * <MenuItemOption value='asc'>Ascending</MenuItemOption>\n * <MenuItemOption value='desc'>Descending</MenuItemOption>\n * </MenuOptionGroup>\n * <MenuDivider />\n * <MenuOptionGroup title='Country' type='checkbox'>\n * <MenuItemOption value='email'>Email</MenuItemOption>\n * <MenuItemOption value='phone'>Phone</MenuItemOption>\n * <MenuItemOption value='country'>Country</MenuItemOption>\n * </MenuOptionGroup>\n * </MenuList>\n* </Menu>\n* ?)\n*\n*/\n\nexport const Menu = ({ variant = 'relaxed', ...props }: MenuProps) => (\n <ChakraMenu variant={ variant } { ...props } />\n)\n","import React from 'react'\nimport {\n NumberInputStepper as ChakraNumberInputStepper,\n NumberDecrementStepper,\n NumberIncrementStepper,\n} from '@chakra-ui/react'\nimport { ChevronDownSolid, ChevronUpSolid } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { HStack } from '../stack'\nimport { Divider } from '../divider'\nimport { P } from '../typography'\nimport { Center } from '../center'\nimport { NumberInputStepperProps } from './types'\n\nexport const NumberInputStepper = ({\n includePercentage = false,\n enableStepperArrows = false,\n}: NumberInputStepperProps) => (\n <ChakraNumberInputStepper>\n <HStack alignItems=\"center\" h=\"full\">\n { includePercentage && (\n <Center bgColor=\"gray.50\" borderRadius=\"md\" boxSize=\"6\">\n <P>%</P>\n </Center>\n ) }\n { enableStepperArrows && (\n <HStack alignItems=\"center\" h=\"full\">\n <Divider orientation=\"vertical\" h=\"50%\" />\n <NumberIncrementStepper border=\"none\">\n <Icon\n as={ ChevronUpSolid }\n color=\"icon.input-stepper.default\"\n boxSize={ 4 }\n />\n </NumberIncrementStepper>\n <NumberDecrementStepper>\n <Icon\n as={ ChevronDownSolid }\n color=\"icon.input-stepper.default\"\n boxSize={ 4 }\n />\n </NumberDecrementStepper>\n </HStack>\n ) }\n </HStack>\n </ChakraNumberInputStepper>\n)\n","import { head, isNil, last, length, match, split } from 'ramda'\n\nconst regex = /(9{13,}|0{13,})(\\d)*$/gm\n\nexport const advancedParseFloat = (value: number | string) => {\n if (isNil(value) || Number.isNaN(parseFloat(value as string))) {\n return value\n }\n\n const splitValue = split('.', `${value}`)\n const intPart = head(splitValue)\n const decimalPart = last(splitValue)\n\n if (isNil(decimalPart)) {\n return value\n }\n\n const roundingError = match(regex, decimalPart)\n if (isNil(roundingError)) {\n return value\n }\n\n const decimalsErrorLength = length(head(roundingError) as string)\n const correctDecimalsLength = decimalPart.length - decimalsErrorLength\n\n return parseFloat(\n parseFloat(`${intPart}.${decimalPart}`)\n .toFixed(correctDecimalsLength)\n )\n}\n","import React, { ChangeEvent } from 'react'\nimport {\n NumberInput as ChakraNumberInput,\n NumberInputField,\n} from '@chakra-ui/react'\nimport { defaultTo, identity, path } from 'ramda'\nimport { NumberInputStepper } from './number-input-stepper'\nimport { NumberInputProps } from './types'\nimport { advancedParseFloat } from './advanced-parse-float'\n\n/**\n * Basic accessible input that only allows numbers, with support for arrow keys,\n * min max values and percentages\n *\n * @example\n * (?\n * <Box p=\"3\">\n * <NumberInput max={100} min={0} step={3} onlyAcceptPercentage={true} enableStepperArrows={true}/>\n * </Box>\n * ?)\n *\n */\nexport const NumberInput = ({\n variant = 'default',\n size = 'md',\n onChange = identity,\n onInputChange = identity,\n enableStepperArrows = false,\n name,\n onlyAcceptPercentage = false,\n ...rest\n}: NumberInputProps) => {\n const percentageProps = onlyAcceptPercentage && {\n step: 0.1,\n }\n\n const percentageFactor = onlyAcceptPercentage ? 0.01 : 1\n const handleChange = (e: ChangeEvent<HTMLInputElement> | string) => {\n const input = defaultTo(e, path([ 'target', 'value' ], e)) as string\n onInputChange(input)\n\n const value = advancedParseFloat(parseFloat(input) * percentageFactor)\n\n const filteredNaN = Number.isNaN(value)\n ? ''\n : value\n\n onChange(`${filteredNaN}`)\n }\n\n return (\n <ChakraNumberInput\n variant={ variant }\n size={ size }\n onChange={ handleChange }\n id={ name }\n { ...percentageProps }\n { ...rest }\n >\n <NumberInputField onChange={ handleChange } />\n <NumberInputStepper\n includePercentage={ onlyAcceptPercentage }\n enableStepperArrows={ enableStepperArrows }\n />\n </ChakraNumberInput>\n )\n}\n","import React, { forwardRef, useState } from 'react'\nimport { identity, isNil } from 'ramda'\nimport { NumberInputFieldProps } from './types'\nimport { Field } from '../form'\nimport { NumberInput } from './number-input'\nimport { advancedParseFloat } from './advanced-parse-float'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\n\n/**\n * The number input component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see NumberInput\n * @see {@link https://northlight.dev/reference/number-input-field}\n *\n */\nexport const NumberInputField = forwardRef<HTMLDivElement, NumberInputFieldProps>(({\n name,\n label,\n direction,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n onlyAcceptPercentage = false,\n inputLeftElement,\n inputRightElement,\n ...rest\n}, ref) => {\n const formatNumber = (value: number, factor: number) => (\n onlyAcceptPercentage\n ? advancedParseFloat(value * factor)\n : value\n )\n\n return (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => {\n const initialValue = isNil(value) || Number.isNaN(parseFloat(value))\n ? ''\n : formatNumber(value, 100)\n\n const [ displayValue, setDisplayValue ] = useState(initialValue)\n\n return (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <NumberInput\n name={ name }\n data-testid=\"number-input-field-test-id\"\n onInputChange={ (v) => {\n setDisplayValue(v)\n const parsed = formatNumber(parseFloat(v), 0.01)\n\n onChange(parsed)\n onChangeCallback(parsed)\n } }\n value={ displayValue }\n onlyAcceptPercentage={ onlyAcceptPercentage }\n { ...rest }\n />\n </InputGroupWrapper>\n )\n } }\n </Field>\n )\n})\n","import React, { forwardRef, useState } from 'react'\nimport { Box, useMultiStyleConfig } from '@chakra-ui/react'\nimport { Blinker } from '../blinker'\nimport { IconButton } from '../icon-button'\nimport { NotificationIconButtonProps } from './types'\n\n/**\n * A custom component that composes the IconButton and Blinker components.\n * The notification blinker blinks on hover.\n * @see {@link https://northlight.dev/reference/notification-icon-button}\n *\n * @example\n * (?\n * <Box w=\"min-content\">\n<NotificationIconButton\n variant=\"brand\"\n aria-label=\"conversations\"\n icon={ <Icon as={ ConversationDuo } /> }\n hasNotification={ true }\n size=\"lg\"\n/>\n</Box>\n * ?)\n */\nexport const NotificationIconButton = forwardRef(({\n variant = 'ghost',\n icon,\n 'aria-label': ariaLabel,\n hasNotification = false,\n blinkerColor = 'green.500',\n size,\n ...rest\n}: NotificationIconButtonProps, ref: any) => {\n const [ isBlinking, setIsBlinking ] = useState(false)\n const { container, notifier } = useMultiStyleConfig('NotificationIconButton', { size, variant })\n return (\n <Box\n onMouseEnter={ () => setIsBlinking(true) }\n onMouseLeave={ () => setIsBlinking(false) }\n sx={ container }\n >\n { hasNotification && (\n <Box sx={ notifier }>\n <Blinker isBlinking={ isBlinking } color={ blinkerColor } size=\"2xs\" />\n </Box>\n ) }\n <IconButton\n variant={ variant }\n icon={ icon }\n aria-label={ ariaLabel }\n ref={ ref }\n size={ size }\n { ...rest }\n />\n </Box>\n )\n})\n","import React from 'react'\nimport { PinInput as ChakraPinInput } from '@chakra-ui/react'\nimport { PinInputProps } from './types'\n\n/**\n * For entering numbers in ex two factor authentication\n * @see {@link https://northlight.dev/reference/pin-input}\n * @example\n * (?\n <HStack p=\"1\">\n <PinInput>\n <PinInputField />\n <PinInputField />\n <PinInputField />\n <PinInputField />\n </PinInput>\n </HStack>\n * ?)\n *\n *\n */\nexport const PinInput = ({\n variant = 'outline',\n hidden,\n children,\n ...rest\n}: PinInputProps) => (\n <ChakraPinInput { ...rest } variant={ variant } placeholder=\"●\" mask={ hidden }>\n { children }\n </ChakraPinInput>\n)\n","import { filter, find, is, length, propEq } from 'ramda'\nimport { Option, SelectProps } from './types'\n\nconst isStringArray = (value: any): value is string[] =>\n is(Array, value) && length(value) > 0 && typeof value[0] === 'string'\n\nexport const getMatchingValue = <T extends Option, K extends boolean>(\n value: SelectProps<T, K>['value'],\n options: SelectProps<T, K>['options']\n): T | T[] | undefined => {\n if (typeof value === 'string') {\n return find(propEq('value', value), options as T[])\n }\n\n if (isStringArray(value)) {\n return filter(\n (option) => (value).includes(option.value),\n options as T[]\n )\n }\n\n return value as K extends true ? T[] : T\n}\n","import React, { Ref, forwardRef, useMemo, useRef } from 'react'\nimport {\n Select as ChakraReactSelect,\n GroupBase,\n OptionsOrGroups,\n SelectInstance,\n} from 'chakra-react-select'\nimport { Box } from '@chakra-ui/react'\nimport { always, equals, identity, is } from 'ramda'\nimport { Option, SelectProps } from './types'\nimport { customSelectStyles } from '../../theme/components/select/custom-select'\nimport { useSelectCallbacks } from '../../hooks'\nimport { getComponents } from '../search-bar/get-components'\nimport { getMatchingValue } from './get-matching-value'\nimport { theme } from '../../theme'\n\n/**\n * Select component that provides a customizable and accessible select input.\n * It is built on top of Chakra UI and Chakra React Select components.\n *\n * @see SearchBar\n * @see {@link https://northlight.dev/reference/select}\n *\n * @example (Example)\n * ## Single Select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * />\n * ?)\n *\n * @example (Example)\n * ## Clearable Select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isClearable={ true }\n * />\n * ?)\n *\n * @example (Example)\n * ## Multi select\n * (?\n * <Select\n * options={[{ label: 'Option 1', value: '1' }, { label: 'Option 2', value: '2' }]}\n * onChange={(value, action) => console.log('Selected:', value)}\n * isMulti\n * />\n * ?)\n *\n * @example (Example)\n * ## Event meta\n * _There is a second argument passed to the handlechange that can be useful\n * for knowing which elements where adding/removed_\n * (?\n * () => {\n * const handleChange = (val, e) => {\n switch (e.action) {\n case 'select-option':\n //on add value\n console.log(e.option)\n break\n case 'pop-value':\n //on remove value\n console.log(e.removedValue.categoryKey)\n break\n default:\n break\n }\n }\n * return <Select onChange={handleChange} options={[{label: '1', value: '1'}]} isMulti={true}/>\n *\n * }\n * ?)\n *\n * @example (Example)\n * ##Customizing\n * There are two special props for easy customization\n * * customOption\n * * customTag\n *\n * This are themselves react components\n * (?\n+const customOption = ({ label }) => (\n <HStack>\n <Avatar name={label} />\n <P>{label}</P>\n </HStack>\n);\n\nconst customTag = ({ label }) => {\n const [ isIncluded, setIsIncluded ] = useState(true)\n const toggle = () => setIsIncluded((prev) => !prev)\n\n return (\n <Flex>\n <Button\n size=\"xs\"\n onClick={ toggle }\n onMouseDown={ (e) => e.stopPropagation() }\n >\n { isIncluded ? 'Include' : 'Exclude' }\n </Button>\n <Tag>{ label }</Tag>\n </Flex>\n )\n}\n\nconst CustomSelect = () => (\n <Select\n customOption={customOption}\n customTag={ customTag }\n isMulti={true}\n options={[\n { label: 'Option 1', value: '1' },\n { label: 'Option 2', value: '2' },\n ]}\n\n />\n);\n\nrender(<CustomSelect />);\n *\n * ?)\n *\n *\n * @example (Example)\n * ## Testing\n * You can grab the test id for the select by\n * **screen.getByTestId('custom-testid)\n * .children[0].children[2].children[0].children[1].children[0]**\n * (?\n * <Select\n * data-testid=\"custom-test-id\"\n * />\n * ?)\n*/\nexport const Select = forwardRef(<T extends Option, K extends boolean = false>({\n options,\n isMulti,\n onChange = identity,\n onAdd = identity,\n onRemove = identity,\n isLoading,\n loadingList = () => null,\n 'data-testid': testId,\n customOption = null,\n customTag = null,\n isClearable = false,\n value,\n icon,\n components,\n generateComponentsUpdateKey = always(0),\n ...rest\n}: SelectProps<T, K>,\n ref: Ref<SelectInstance<T, K, GroupBase<T>>>\n) => {\n const handleChange = useSelectCallbacks<T, K>({\n onChange,\n onAdd,\n onRemove,\n isMulti,\n value: is(Array, value) ? (value as T[]) : [],\n })\n\n const customComponents = useMemo(\n () => getComponents<T>(components),\n [ generateComponentsUpdateKey() ]\n )\n\n const prevOptions = useRef<OptionsOrGroups<T, GroupBase<T>> | undefined>(\n options\n )\n const renderedOptions = useMemo(() => {\n if (!equals(prevOptions.current, options)) {\n prevOptions.current = options\n }\n return prevOptions.current\n }, [ options ])\n\n return (\n <Box w=\"full\" data-testid={ testId } cursor=\"pointer\">\n <ChakraReactSelect\n isMulti={ isMulti }\n options={ renderedOptions }\n useBasicStyles={ true }\n closeMenuOnSelect={ !isMulti }\n hideSelectedOptions={ false }\n isClearable={ isClearable }\n onChange={ handleChange }\n selectedOptionStyle=\"check\"\n chakraStyles={ customSelectStyles }\n isLoading={ isLoading }\n { ...(isLoading && { components: { MenuList: loadingList } }) }\n value={ getMatchingValue(value, options) }\n customOption={ customOption }\n customTag={ customTag }\n icon={ icon }\n components={ customComponents }\n ref={ ref }\n menuPortalTarget={ document.body }\n styles={ { menuPortal: (base) => ({ ...base, zIndex: theme.zIndices.popover }) } }\n { ...rest }\n />\n </Box>\n )\n})\n","import React, { forwardRef } from 'react'\nimport { XCloseSolid } from '@northlight/icons'\nimport { equals, identity, isNil } from 'ramda'\nimport { Option, SelectFieldProps } from './types'\nimport { Field } from '../form'\nimport { Select } from './select'\nimport { HStack } from '../stack'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { InputGroupWrapper } from '../../internal-components'\n\nconst BaseSelectField = <T extends Option, K extends boolean = false>(\n {\n name,\n label,\n options,\n direction = 'column',\n isMulti,\n isRequired,\n validate,\n isClearable = true,\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n }: SelectFieldProps<T, K>,\n ref: React.Ref<HTMLDivElement>\n) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n noLabelConnection={ true }\n validate={ validate }\n ref={ ref }\n >\n { ({ value, onChange }) => (\n <HStack w=\"full\">\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <Select<T, K>\n name={ name }\n options={ options }\n isMulti={ isMulti }\n onChange={ (values, event) => {\n onChange(\n isMulti\n ? (values as T[]).map((item: any) => item.value)\n : (values as T).value\n )\n onChangeCallback(values as K extends true ? T[] : T, event)\n } }\n value={\n value\n ? (options\n ?.flatMap((inner: any) =>\n (inner.options ? inner.options : inner)\n )\n .filter((option: any) =>\n (isMulti\n ? value.includes(option.value)\n : equals(value, option.value))\n ) as any)\n : null\n }\n { ...rest }\n />\n </InputGroupWrapper>\n <IconButton\n aria-label={ `${name}-close-button` }\n variant=\"danger\"\n size=\"sm\"\n fontSize=\"xs\"\n hidden={ isNil(value) || !isClearable }\n onClick={ () => {\n onChange(undefined)\n onChangeCallback(undefined, { action: 'clear', removedValues: value })\n } }\n icon={ <Icon as={ XCloseSolid } /> }\n />\n </HStack>\n ) }\n </Field>\n )\n\nexport const SelectField = forwardRef(BaseSelectField)\n","import React from 'react'\nimport { Switch as ChakraSwitch } from '@chakra-ui/react'\nimport { SwitchProps } from './types'\n\n/**\n * @see SwitchField\n * @see {@link https://northlight.dev/reference/switch}\n *\n * @example (Example)\n * Mainly used for forms, however this component is controlled by\n * a value prop and an onChange callback\n *\n * (?\n * () => {\n * const [ advancedMode, setAdvancedMode ] = useState(false)\n *\n * return (\n * <Stack p=\"2\">\n * <Label size=\"sm\" htmlFor=\"advanced-mode-switch\">Advanced mode</Label>\n * <Switch name=\"vegan-checkbox\" onChange={() => setAdvancedMode((prev) => !prev)}\n * value={advancedMode} />\n * </Stack>\n * )\n * }\n * ?)\n */\nexport const Switch = ({\n value,\n onChange,\n name,\n size = 'md',\n ...rest\n}: SwitchProps) => (\n <ChakraSwitch\n size={ size }\n id={ name }\n isChecked={ value }\n onChange={ onChange }\n { ...rest }\n />\n)\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { SwitchFieldProps } from './types'\nimport { Field } from '../form'\nimport { Switch } from './switch'\nimport { Box } from '../box'\nimport { Flex } from '../flex'\nimport { Label } from '../typography'\n\n/**\n * The switch component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see switch\n * @see {@link https://northlight.dev/reference/switch-field}\n* @example (Example)\n * ## Basic\n * Tip:\n * * For `labelPlacement` you can use `\"left\" | \"right\"`\n * * For `labelSize` you can use `\"2xs\" | \"xs\" | \"md\" | \"lg\"` or leave it blank\n * (?\n * <Form initialValues={{name: ''}}>\n * <SwitchField\n * name=\"terms\"\n * label=\"I agree to the Terms & Conditions\"\n * labelPlacement=\"right\"\n * labelSize=\"md\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const SwitchField = forwardRef<HTMLDivElement, SwitchFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n labelPlacement = 'right',\n labelSize = 'md',\n ...rest\n}, ref) => (\n <Box w={ label ? 'full' : 'fit-content' } display=\"inline-flex\">\n <Field\n name={ name }\n label=\"\"\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <Flex\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={ 2 }\n direction={ labelPlacement === 'left' ? 'row-reverse' : 'row' }\n >\n <Switch\n name={ name }\n onChange={ (e) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"switch-field-test-id\"\n { ...rest }\n />\n <Label htmlFor={ name } sx={ { fontWeight: 'normal' } } size={ labelSize }>{ label }</Label>\n </Flex>\n ) }\n </Field>\n </Box>\n))\n","import React from 'react'\nimport { TabPanel as ChakraTabPanel } from '@chakra-ui/react'\nimport { TabPanelProps } from './types'\n\n/**\n * Used to display content under tabs context\n * @see Tabs\n * @see {@link https://northlight.dev/reference/tab-panel}\n * @example\n * (? <TabPanel>Tab 1</TabPanel> ?)\n */\nexport const TabPanel = (props: TabPanelProps) => (\n <ChakraTabPanel padding={ 0 } { ...props } />\n)\n","import React from 'react'\nimport { Tabs as ChakraTabs } from '@chakra-ui/react'\nimport { TabsProps } from './types'\n\n/**\n * Tabs are used for secondary navigation between groups on the page of the same context.\n * @see TabList\n * @see TabPanels\n * @see {@link https://northlight.dev/reference/tabs}\n * @example\n * ## Structure\n * <br />\n * - **Tabs**: Context provider and state manager for tab components.\n * - **TabList**: Container for Tab items.\n * - **Tab**: Interactive label for displaying a TabPanel.\n * - **TabPanels**: Group wrapper for TabPanel items.\n * - **TabPanel**: Content area for a Tab.\n * <br />\n * <br />\n * You can render any element within `Tabs`, but `TabList` should only have `Tab` as children,\n * and `TabPanels` should have `TabPanel` as children. <br />\n * <br />\n * `Tabs` expects `TabList` and `TabPanels` as children. The order doesn't matter,\n * you can have `TabList` at the top, at the bottom, or both.\n * <br />\n * <br />\n *\n * ## Usage\n * <br />\n * **Tabs** have three main variatns:\n * `rounded` (default) or no variant, `soft-rounded` and `line`. <br />\n * Also there are multiple sub-variants: `ai`, `enclosed`, `enclosed-colored` and `unstyled`\n * <br />\n * <br />\n * tip: `enclosed` and `enclosed-colored` can be combined with the `colorScheme=\"\"` prop.\n * <br />\n * <br />\n * (?\n <Tabs>\n <Stack spacing=\"2\">\n <TabList>\n <Tab><Icon as={ MediatoolLogoDuo } mr=\"2\" />One</Tab>\n <Tab><Icon as={ MediatoolLogoDuo } mr=\"2\" />Two</Tab>\n <Tab><Icon as={ MediatoolLogoDuo } mr=\"2\" />Three</Tab>\n </TabList>\n <TabPanels>\n <TabPanel>\n <P>one!</P>\n </TabPanel>\n <TabPanel>\n <P>two!</P>\n </TabPanel>\n <TabPanel>\n <P>three!</P>\n </TabPanel>\n </TabPanels>\n </Stack>\n </Tabs>\n * ?)\n *\n */\nexport const Tabs = (({\n children,\n variant = 'rounded',\n isManual = true,\n ...rest\n}: TabsProps) => (\n <ChakraTabs\n isManual={ isManual }\n variant={ variant }\n { ...rest }\n >\n { children }\n </ChakraTabs>\n))\n","import React from 'react'\nimport { Textarea as ChakraTextarea } from '@chakra-ui/react'\nimport { TextareaProps } from './types'\n\n/**\n * Text input for larger raw text\n * @see Input\n * @see {@link https://northlight.dev/reference/textarea}\n *\n * @example\n * (? <Textarea /> ?)\n */\nexport const Textarea = ({\n size = 'md',\n onChange,\n name,\n value,\n ...rest\n}: TextareaProps) => (\n <ChakraTextarea\n size={ size }\n id={ name }\n onChange={ onChange }\n value={ value }\n { ...rest }\n />\n)\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { TextareaFieldProps } from './types'\nimport { Field } from '../form'\nimport { Textarea } from './textarea'\n\nexport const TextareaField = forwardRef<HTMLDivElement, TextareaFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n direction,\n onChange: onChangeCallback = identity,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={ validate }\n direction={ direction }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <Textarea\n name={ name }\n data-testid=\"textarea-field-test-id\"\n onChange={ (e) => { onChange(e); onChangeCallback(e) } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n))\n","export const roundToPrecision = (\n value: number,\n numberOfDecimals: number\n): number => parseFloat(value.toFixed(numberOfDecimals))\n","import React, { ComponentType, useEffect, useState } from 'react'\nimport { identity, isNil } from 'ramda'\nimport {\n InputAttributes,\n NumberFormatValues,\n NumericFormat,\n SourceInfo,\n numericFormatter,\n} from 'react-number-format'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper/input-group-wrapper'\nimport { Input } from '../input'\nimport {\n FormattedNumberInputPreset,\n FormattedNumberInputProps,\n PresetOptions,\n} from './types'\nimport { roundToPrecision } from './round-to-precision'\n\nconst presetMap: Record<FormattedNumberInputPreset, PresetOptions> = {\n eu: {\n thousandSeparator: ' ',\n decimalSeparator: ',',\n },\n us: {\n thousandSeparator: ',',\n decimalSeparator: '.',\n },\n nor: {\n thousandSeparator: '.',\n decimalSeparator: ',',\n },\n}\n\n/**\n * @see {@link https://northlight.dev/reference/formatted-number-input-field}\n @example (Example)\n * The formatted number input is built uppon react-number-format\n * It formats numbers by adjusting thousand and decimal separators\n * ex : 22345351.34234 => 222 453 51,34234\n * It comes with three presets: eu, us and nor.\n * These have the following separators:\n (?\n <FormattedNumberInput\n preset=\"us\"\n onChange={(values) => console.log(values.floatValue)}\n isPercentage={true}\n max={1E9}\n min={0}\n />\n ?)\n\n @example (Example)\n ### Nor preset\n (?\n <FormattedNumberInput\n preset=\"nor\"\n onChange={(values) => console.log(values.floatValue)}\n value={320341345102.34134}\n numberOfDecimals={5}\n />\n ?)\n\n @example (Example)\n ### Eu preset\n (?\n <FormattedNumberInput\n preset=\"eu\"\n onChange={(values) => console.log(values.floatValue)}\n value={320341345102.34134}\n numberOfDecimals={5}\n />\n ?)\n\n */\nexport const FormattedNumberInput = ({\n preset = 'eu',\n isPercentage = false,\n onChange = identity,\n value: valueProp,\n numberOfDecimals = 2,\n max = Infinity,\n min = -Infinity,\n inputLeftElement,\n inputRightElement,\n onBlur,\n ...rest\n}: FormattedNumberInputProps) => {\n const [ valueState, setValueState ] = useState(valueProp)\n const isControlled = typeof valueProp !== 'undefined'\n const value = isControlled ? valueProp : valueState\n const props = presetMap[preset]\n\n const getNumberFormatValues = (number: number) => ({\n floatValue: number,\n formattedValue: numericFormatter(number.toString(), props),\n value: number.toString(),\n })\n\n const validateRange = () => {\n if (isNil(value)) return\n const vNum = typeof value === 'string' ? parseFloat(value) : value\n const factor = isPercentage ? 100 : 1\n if (vNum * factor > max) {\n const newValue = roundToPrecision(max / factor, numberOfDecimals)\n setValueState(newValue)\n onChange(getNumberFormatValues(newValue))\n }\n if (vNum * factor < min) {\n const newValue = roundToPrecision(min / factor, numberOfDecimals)\n setValueState(newValue)\n onChange(getNumberFormatValues(newValue))\n }\n }\n\n const onValueChangeHandler = (\n values: NumberFormatValues,\n sourceInfo: SourceInfo\n ) => {\n const newFloatValue =\n values.floatValue && isPercentage\n ? roundToPrecision(values.floatValue / 100, numberOfDecimals)\n : values.floatValue\n setValueState(newFloatValue)\n onChange(\n {\n ...values,\n floatValue: newFloatValue,\n },\n sourceInfo\n )\n }\n\n useEffect(() => {\n validateRange()\n }, [ value ])\n\n return (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <NumericFormat\n allowLeadingZeros={ true }\n customInput={ Input as ComponentType<InputAttributes> }\n onBlur={ (e) => {\n onBlur?.(e)\n validateRange()\n } }\n onValueChange={ onValueChangeHandler }\n decimalScale={ numberOfDecimals }\n value={\n isPercentage\n ? roundToPrecision(parseFloat(`${value ?? 0}`) * 100, numberOfDecimals)\n : value\n }\n suffix={ isPercentage ? '%' : '' }\n { ...props }\n { ...rest }\n />\n </InputGroupWrapper>\n )\n}\n","import React, { forwardRef } from 'react'\nimport { identity } from 'ramda'\nimport { FormattedNumberInputFieldProps } from './types'\nimport { Field } from '../form'\nimport { FormattedNumberInput } from './formatted-number-input'\n\n/**\n * The formatted number input component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see FormattedNumberInput\n * @see {@link https://northlight.dev/reference/formatted-number-input-field}\n * @example (Example)\n * (?\n * <Form initialValues={{money: ''}}>\n * <FormattedNumberInputField\n * name=\"money\"\n * label=\"How much money is currently on your account\"\n * labelPosition=\"left\"\n * />\n * </Form>\n * ?)\n *\n */\nexport const FormattedNumberInputField =\nforwardRef<HTMLDivElement, FormattedNumberInputFieldProps>(({\n name,\n label,\n isRequired,\n validate,\n onChange: onChangeCallback = identity,\n direction = 'row',\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n direction={ direction }\n validate={ validate }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <FormattedNumberInput\n name={ name }\n onChange={ (values, sourceInfo) => {\n onChange(values.floatValue)\n onChangeCallback(values, sourceInfo)\n } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n))\n","import React from 'react'\nimport InputMask from 'react-input-mask'\nimport { Input } from '../input'\nimport { MaskedTextInputProps } from './types'\n\n//! Overload error in @types/react-input-mask, overwriting faulty types as unknown as any\nconst CustomInput = InputMask as unknown as any\n\nexport const MaskedTextInput = ({\n mask,\n maskPlaceholder,\n alwaysShowMask,\n name,\n value,\n placeholder,\n onChange,\n onBlur,\n ...rest\n}: MaskedTextInputProps) => (\n <CustomInput\n mask={ mask }\n maskPlaceholder={ maskPlaceholder }\n alwaysShowMask={ alwaysShowMask }\n name={ name }\n value={ value }\n onChange={ onChange }\n onBlur={ onBlur }\n >\n { ({ name: nameProp }: any) => (\n <Input\n placeholder={ maskPlaceholder ?? placeholder }\n name={ nameProp }\n { ...rest }\n />\n ) }\n </CustomInput>\n)\n","import React, { forwardRef } from 'react'\nimport { identity, isNil } from 'ramda'\nimport { TextFieldProps } from './types'\nimport { Input } from '../input'\nimport { Field } from '../form'\nimport { InputGroupWrapper } from '../../internal-components/input-group-wrapper'\n\n/**\n * The Input component wrapped in <Field />\n * Also supported formmated and musked input via as prop\n * @see Input\n * @see MaskedTextInput\n * @see FormattedNumberInput\n * @see {@link https://northlight.dev/reference/text-field}\n *\n *\n */\nexport const TextField = forwardRef<HTMLDivElement, TextFieldProps>(({\n name,\n label,\n as: As = Input,\n isRequired,\n validate,\n direction = 'column',\n onChange: onChangeCallback = identity,\n inputLeftElement,\n inputRightElement,\n ...rest\n}, ref) => (\n <Field\n name={ name }\n label={ label }\n isRequired={ isRequired }\n validate={\n isNil(validate) && isRequired\n ? { validate: (value: string) => !!value.trim() }\n : validate\n }\n direction={ direction }\n ref={ ref }\n >\n { ({ onChange, value }) => (\n <InputGroupWrapper\n inputLeftElement={ inputLeftElement }\n inputRightElement={ inputRightElement }\n >\n <As\n id={ name }\n name={ name }\n onChange={ (e: React.ChangeEvent<HTMLInputElement> | string) => {\n onChange(e)\n onChangeCallback(e)\n } }\n value={ value }\n data-testid=\"text-field-test-id\"\n { ...rest }\n />\n </InputGroupWrapper>\n ) }\n </Field>\n))\n","import {\n AlertCircleSolid,\n AlertTriangleSolid,\n BellSolid,\n BrightnessSolid,\n CheckCircleSolid,\n HelpCircleSolid,\n} from '@northlight/icons'\nimport { AlertVariants } from '../../alert/types'\n\nexport const toastIconMap: Record<AlertVariants, any> = {\n success: CheckCircleSolid,\n warning: AlertTriangleSolid,\n error: AlertCircleSolid,\n danger: AlertCircleSolid,\n info: BellSolid,\n ai: BrightnessSolid,\n default: HelpCircleSolid,\n ghost: HelpCircleSolid,\n}\n","import React from 'react'\nimport { Alert as ChakraAlert } from '@chakra-ui/react'\nimport { toastIconMap } from '../types'\nimport { ToastProps } from './types'\nimport { Icon } from '../icon'\nimport { HStack, Stack } from '../stack'\nimport { CloseButton } from '../close-button'\nimport { Label, P } from '../typography'\n\n/**\n * Toast is a modified alert meant for popup alerts\n * @see useToast\n * @see Alert\n * @see {@link https://northlight.dev/reference/toast}\n * @example\n * (?\n *\n <HStack spacing={ 4 }>\n <Toast variant=\"default\" title=\"default\" />\n <Toast variant=\"success\" title=\"success\" />\n <Toast variant=\"warning\" title=\"warning\" />\n <Toast variant=\"error\" title=\"error\" />\n <Toast variant=\"info\" title=\"info\" />\n <Toast variant=\"ai\" title=\"mtGPT\" />\n </HStack>\n * ?)\n *\n */\nexport const Toast = ({\n variant = 'success',\n title = '',\n description = '',\n onClose,\n ...rest\n}: ToastProps) => {\n const icon = toastIconMap[variant]\n\n return (\n <ChakraAlert\n variant={ variant }\n data-testid=\"toast-test\"\n { ...rest }\n >\n <HStack alignItems=\"flex-start\">\n { icon && (\n <Icon\n as={ icon }\n color={ `icon.toast.${variant}` }\n boxSize={ 6 }\n />\n ) }\n <Stack spacing={ 0 } alignItems=\"flex-start\">\n { title && <Label size=\"md\">{ title }</Label> }\n { description && (\n <P\n sx={ {\n color: variant === 'ai' ? 'color.text.inverted' : 'text.default',\n } }\n >\n { description }\n </P>\n ) }\n </Stack>\n\n <CloseButton\n size=\"sm\"\n onClick={ onClose }\n position=\"absolute\"\n insetEnd={ 1 }\n top={ 1 }\n />\n </HStack>\n </ChakraAlert>\n )\n}\n","import React, { useRef } from 'react'\nimport { ToastId, useToast as useChakraToast } from '@chakra-ui/react'\nimport { Toast } from './toast'\nimport { UseToastOptions } from './types'\n\n/**\n * This hook returns a toast function that when called will popup a toast\n * @see Toast\n * @see {@link https://northlight.dev/reference/use-toast}\n * @example\n * (?\n * () => {\n * const toast = useToast()\n * const handleClick = () => {\n * toast({title: 'Success',\n * description: `${Math.random()}-string`,\n * replacePreviousToast: true })\n * }\n * return (\n * <Button onClick={handleClick} variant=\"success\">Save</Button>\n * )}\n * ?)\n */\nexport const useToast = (defaultOpts: UseToastOptions = {}) => {\n const toast = useChakraToast(defaultOpts)\n const toastIdRef = useRef<ToastId | null>(null)\n\n return (opts: UseToastOptions = {}) => {\n const toastProps: UseToastOptions = {\n render: ({ onClose }: { onClose: () => void }) => {\n const {\n variant = 'success',\n title = 'Success',\n description = '',\n } = opts\n\n return (\n <Toast\n variant={ variant }\n title={ title }\n description={ description }\n onClose={ onClose }\n />\n )\n },\n position: 'top',\n ...opts,\n }\n\n const { replacePreviousToast = false } = opts\n if (replacePreviousToast && toastIdRef && toastIdRef.current) {\n toast.update(toastIdRef.current, toastProps)\n } else {\n toastIdRef.current = toast(toastProps)\n }\n }\n}\n","import { PinVariant } from '../pin-input/types'\n\nexport const pinVariantMap: Record<PinVariant, string> = {\n green: 'success',\n running: 'success',\n yellow: 'info',\n inProgress: 'info',\n gray: 'subdued',\n notExecuted: 'subdued',\n red: 'destructive',\n rejected: 'destructive',\n}\n","import { PinSize, PinSizeTuple } from '../pin-input/types'\n\nexport const pinSizeMap: Record<PinSize, PinSizeTuple > = {\n sm: [ 4, 2 ],\n md: [ 5, 3 ],\n lg: [ 6, 4 ],\n}\n","import React from 'react'\nimport { Circle } from '../circle'\nimport { pinVariantMap } from './pin-variant-map'\nimport { pinSizeMap } from './pin-size-map'\nimport { StatusPinProps } from './types'\n\n/**\n * Status pins are meant to display the status of a specific entry.\n * @see Badge\n * @see {@link https://northlight/reference/status-pin}\n *\n * @example (Example)\n * (?\n * +\n * const sizes = ['lg', 'md', 'sm']\n * const variants = ['notExecuted', 'running', 'inProgress', 'rejected']\n *\n * const Example = () => {\n * return (\n * <Stack>\n * {variants.map((variant)=>(\n * <HStack spacing={4} alignItems=\"center\">\n * {sizes.map((size)=>(\n * <StatusPin size={size} variant={variant} />\n * ))}\n * </HStack>\n * ))}\n * </Stack>\n * )\n * }\n * render(<Example/>)\n * ?)\n *\n */\n\nexport const StatusPin = ({ size = 'md', variant, ...rest }: StatusPinProps) => {\n const pinColor = pinVariantMap[variant]\n const pinSizeTuple = pinSizeMap[size]\n const [ outerSize, innerSize ] = pinSizeTuple\n\n return (\n <Circle\n size={ outerSize }\n bg=\"transparent\"\n borderWidth=\"xs\"\n borderColor={ pinColor }\n { ...rest }\n >\n <Circle\n size={ innerSize }\n bg={ pinColor }\n />\n </Circle>\n )\n}\n","import React from 'react'\nimport {\n AlertDescription,\n AlertTitle,\n Alert as ChakraAlert,\n} from '@chakra-ui/react'\nimport { toastIconMap } from '../types'\nimport { Icon } from '../icon'\nimport { VStack } from '../stack'\nimport { AsyncErrorProps } from './types'\n\n/**\n * @see {@link https://northlight.dev/reference/async-error}\n * @example\n * (?\n * <AsyncError />\n * ?)\n *\n */\nexport const AsyncError = ({\n message = '',\n ...rest\n}: AsyncErrorProps) => (\n <ChakraAlert backgroundColor=\"background.default\" color=\"text.default\" width=\"100%\" { ...rest }>\n <VStack w=\"full\">\n <Icon as={ toastIconMap.error } color=\"icon.toast.error\" boxSize={ 6 } />\n <AlertTitle> Error </AlertTitle>\n { message && (\n <AlertDescription>{ message }</AlertDescription>\n ) }\n </VStack>\n </ChakraAlert>\n)\n","import React from 'react'\nimport { StepPanelProps } from './types'\nimport { TabPanel as ChakraStepPanel } from '../tabs'\n\n/**\n * Used to display content under specific step\n * @see Steps\n * @see StepPanels\n * @see {@link https://northlight.dev/reference/step-panel}\n * @example\n * (? <StepPanel>Step 1</StepPanel> ?)\n */\nexport const StepPanel = (props: StepPanelProps) => (\n <ChakraStepPanel padding={ 0 } { ...props } />\n)\n","import React from 'react'\nimport { Tabs as ChakraSteps } from '@chakra-ui/react'\nimport { StepsProps } from './types'\n\n/**\n * Context provider for steps tabs\n * @see StepList\n * @see StepPanels\n * @see {@link https://northlight.dev/reference/steps}\n * @example\n * (?\n <Steps>\n <StepList>\n <Step label=\"Step 1\" description=\"Name and email\" indicator={1} />\n <Step label=\"Step 2\" description=\"Pick a password\" indicator={2} />\n <Step label=\"Step 3\"\n description=\"Review\"\n indicator={<Icon as={ BrightnessSolid }\n size=\"xs\" /> }\n />\n </StepList>\n <StepPanels>\n <StepPanel>1</StepPanel>\n <StepPanel>2</StepPanel>\n <StepPanel>3</StepPanel>\n </StepPanels>\n </Steps>\n * ?)\n *\n *\n */\nexport const Steps = (props: StepsProps) => (\n <ChakraSteps isManual={ true } { ...props } />\n)\n","import React from 'react'\nimport { Box, Tab as ChakraStep, useMultiStyleConfig } from '@chakra-ui/react'\nimport { Capitalized, Lead } from '../typography'\nimport { Flex } from '../flex'\nimport { ring } from '../../utils'\nimport { StepProps } from './types'\n\n/**\n * Renders a step in a step list\n * @see StepList\n * @see Steps\n * @see {@link https://northlight.dev/reference/step}\n * @example\n * (?\n <Steps>\n <StepList>\n <Step label=\"Step 1\" description=\"Personal information\" indicator={1} />\n </StepList>\n</Steps>\n * ?)\n *\n */\nexport const Step = ({ label, description, indicator, ...rest }: StepProps) => {\n const {\n step,\n label: labelStyle,\n description: descriptionStyle,\n indicator: indicatorStyle,\n } = useMultiStyleConfig('Step')\n return (\n <ChakraStep\n sx={ step }\n { ...rest }\n >\n <Flex flexDirection=\"row\" alignItems=\"flex-start\" gap=\"4\" _groupFocusVisible={ ring }>\n { indicator && (\n <Box\n sx={ indicatorStyle }\n data-part=\"indicator\"\n justifyContent=\"center\"\n >\n { indicator }\n </Box>\n ) }\n <Flex flexDirection=\"column\">\n <Capitalized sx={ labelStyle }>{ label }</Capitalized>\n { description && <Lead sx={ descriptionStyle }>{ description }</Lead> }\n </Flex>\n </Flex>\n </ChakraStep>\n )\n}\n","import React, { Children } from 'react'\nimport { TabList as ChakraStepList, useStyleConfig } from '@chakra-ui/react'\nimport { StepListProps } from './types'\n\n/**\n * Used to render a navigational list of steps\n * @see Step\n * @see Steps\n * @see {@link https://northlight.dev/reference/step-list}\n * @example\n * (?\n * <Steps>\n <StepList>\n <Step label=\"Step 1\" description=\"Name and email\" />\n <Step label=\"Step 2\" description=\"Pick a password\" />\n <Step label=\"Step 3\" description=\"Review\" />\n </StepList>\n </Steps>\n * ?)\n *\n */\nexport const StepList = ({ children, ...rest }: StepListProps) => {\n const tabs = Children.count(children)\n const styles = useStyleConfig('StepList', { tabs })\n return (\n <ChakraStepList { ...rest } sx={ styles }>\n { children }\n </ChakraStepList>\n )\n}\n","import React, { forwardRef, useEffect } from 'react'\nimport { useClipboard, useMultiStyleConfig } from '@chakra-ui/react'\nimport { CheckDuo, CopyDuo } from '@northlight/icons'\nimport { IconButton } from '../icon-button'\nimport { Icon } from '../icon'\nimport { Tooltip } from '../tooltip'\nimport { Input, InputGroup, InputRightElement } from '../input'\nimport { ClipboardInputProps } from './types'\n\n/**\n * Meant to display non editable copiable text\n * @see {@link https://northlight.dev/reference/clipboard-input}\n *\n * @example (Example)\n * ## Your token\n * (?\n * <ClipboardInput value=\"8aa6d075-eae2-49b3-8f65-318ece801b3b\" aria-label=\"Copy token\" />\n * ?)\n *\n */\nexport const ClipboardInput = forwardRef<HTMLDivElement, ClipboardInputProps>(({\n size = 'md',\n value,\n 'aria-label': ariaLabel,\n ...rest\n}, ref) => {\n const { hasCopied, onCopy, setValue } = useClipboard(value)\n const { button, icon, tooltip } = useMultiStyleConfig('ClipboardInput', { size })\n\n useEffect(() => {\n setValue(value)\n }, [ value ])\n\n return (\n <InputGroup size={ size } data-testid=\"clipboard-input-test-id\" ref={ ref }>\n <Input\n textOverflow=\"ellipsis\"\n aria-label={ `Value to copy: ${value}` }\n isReadOnly={ true }\n value={ value }\n { ...rest }\n />\n <InputRightElement>\n <Tooltip\n label={ hasCopied ? 'Copied!' : 'Copy' }\n placement=\"left\"\n closeOnClick={ false }\n sx={ tooltip }\n >\n <IconButton\n aria-label={ ariaLabel || 'Click to copy' }\n onClick={ onCopy }\n variant={ hasCopied ? 'success' : 'default' }\n sx={ button }\n >\n <Icon\n as={ hasCopied ? CheckDuo : CopyDuo }\n sx={ icon }\n />\n </IconButton>\n </Tooltip>\n </InputRightElement>\n </InputGroup>\n )\n})\n","import React, { cloneElement, useCallback, useRef } from 'react'\nimport { Grid, useStyleConfig } from '@chakra-ui/react'\nimport { SplitPaneProps } from './types'\n\n/**\n * Used for split screen layouts\n * @see PaneItem\n * @see PaneDivider\n * @see {@link https://northlight.dev/reference/split-pane}\n *\n */\nexport const SplitPane = ({\n children,\n initialSplit = 50,\n isOpen,\n minLeftWidth = 25,\n minRightWidth = 50,\n ...rest\n}: SplitPaneProps) => {\n const dividerRef = useRef<HTMLDivElement | null>(null)\n\n const mouseDownHandler = useCallback(\n (e: React.PointerEvent<HTMLDivElement>) => {\n if (e.target !== dividerRef.current) {\n return\n }\n let requestedFrame: number | null = null\n\n e.stopPropagation()\n e.preventDefault()\n\n const target = e.currentTarget\n\n target.setPointerCapture(e.pointerId)\n\n target.onpointermove = (moveEvent: PointerEvent) => {\n if (!(moveEvent.buttons && 1)) {\n target.onpointermove = null\n target.releasePointerCapture(moveEvent.pointerId)\n return\n }\n\n moveEvent.stopPropagation()\n moveEvent.preventDefault()\n\n if (!requestedFrame) {\n const { offsetX } = moveEvent\n\n requestedFrame = requestAnimationFrame(() => {\n target.style.setProperty(\n '--split-pos',\n `${Math.max(offsetX, 0)}px`\n )\n requestedFrame = null\n })\n }\n }\n },\n []\n )\n\n const containerStyle = useStyleConfig('SplitPane', { minLeftWidth, minRightWidth, initialSplit, isOpen })\n\n return (\n <Grid\n sx={ containerStyle }\n onPointerDown={ mouseDownHandler }\n { ...rest }\n >\n { children[0] }\n { isOpen && cloneElement(children[1], { ref: dividerRef }) }\n { isOpen && children[2] }\n </Grid>\n )\n}\n","import React from 'react'\nimport { GridItem, GridItemProps } from '@chakra-ui/react'\n\n/**\n * Wrapper around child of split pane\n * @see SplitPane\n * @see {@link https://northlight.dev/reference/PaneItem}\n *\n */\nexport const PaneItem = ({ children, ...rest } : GridItemProps) => (\n <GridItem overflow=\"hidden\" { ...rest }>\n { children }\n </GridItem>\n)\n","import React from 'react'\nimport { Box, BoxProps, forwardRef, useStyleConfig } from '@chakra-ui/react'\n\n/**\n * Simple vertical line for split screen\n * @see SplitPane\n * @see PaneItem\n * @see {@link https://northlight.dev/reference/pane-divider}\n * @example\n * (?\n * <Box h=\"xs\">\n * <PaneDivider />\n * </Box>\n * ?)\n * */\nexport const PaneDivider = forwardRef((props: BoxProps, ref: any) => {\n const style = useStyleConfig('PaneDivider')\n return (\n <Box\n ref={ ref }\n sx={ style }\n { ...props }\n />\n )\n})\n","import React from 'react'\nimport { useToken } from '@chakra-ui/system'\nimport { StepStackProps } from './types'\nimport { getChildrenWithProps } from '../../utils'\nimport { HStack, Stack } from '../stack'\nimport { Divider } from '../divider'\nimport { Label } from '../typography'\nimport { Box } from '../box'\n/**\n Util wrapper for creating ordered vertical layouts by stack\n @see {@link https://northlight.dev/reference/step-stack}\n @example\n The component takes all the props that a normal stack takes, with the addition of a\n rowHeight prop, which is needed to get the correct height for the grey\n line that goes between the steps. Any valid css height unit, px, rem, %,\n and tokens xs, sm are valid input for the <Code>rowHeight</Code> prop,\n for example, <Code>rowHeight=\"3rem\"</Code>.\n <br /><br />\n ## Simple step stack\n (?\n <StepStack maxW=\"sm\" spacing=\"4\" rowHeight=\"10\">\n { Array.from({length: 5}, (_, i) => i).map((i) => <Input key={ i } />) }\n </StepStack>\n ?)\n <br />\n ## Example with flex-start stepCircleAlignment prop\n (?\n <StepStack\n maxW=\"sm\"\n spacing=\"4\"\n rowHeight=\"10\"\n stepCircleAlignment=\"flex-start\"\n stepCircleMarginTopPx={ 40 }\n >\n { Array.from({ length: 5 }, (_, i) => i).map((i) => (\n <VStack key={ i }>\n <Center\n width={ 400 }\n height={ 24 }\n borderRadius={ 10 }\n backgroundColor=\"blue.500\"\n color=\"white\"\n >\n <VStack spacing=\"5\">\n <Text>Step { i + 1 }</Text>\n </VStack>\n </Center>\n <Center\n width={ 400 }\n height={ 36 }\n borderRadius={ 10 }\n backgroundColor=\"green.500\"\n color=\"white\"\n >\n <VStack spacing=\"5\">\n <Text>Some information</Text>\n </VStack>\n </Center>\n </VStack>\n )) }\n </StepStack>\n ?)\n*/\nexport const StepStack = ({\n children,\n spacing = '4',\n rowHeight = '10',\n stepCircleAlignment = 'center',\n stepCircleMarginTopPx = 0,\n ...rest\n}: StepStackProps) => {\n const rows = getChildrenWithProps(children, {})\n const parsedRowHeight = useToken('sizes', rowHeight)\n\n return (\n <Stack spacing={ spacing } position=\"relative\" { ...rest }>\n { rows.map(\n (row, i) => (\n <HStack key={ `row-${i as number}` } alignItems={ stepCircleAlignment }>\n <>\n <Box\n borderRadius=\"full\"\n bgColor=\"blue.500\"\n boxSize=\"6\"\n minW=\"6\"\n minH=\"6\"\n zIndex=\"docked\"\n marginTop={ `${stepCircleMarginTopPx}px` }\n >\n <Label\n size=\"sm\"\n sx={ { color: 'text.inverted' } }\n w=\"max-content\"\n textAlign=\"center\"\n >\n { i + 1 }\n </Label>\n </Box>\n { row }\n </>\n </HStack>\n )\n ) }\n <Divider\n orientation=\"vertical\"\n left=\"3\"\n top={ `calc(${parsedRowHeight} / 2 + ${stepCircleMarginTopPx}px)` }\n h={ `calc(100% - ${parsedRowHeight} - ${stepCircleMarginTopPx}px)` }\n position=\"absolute\"\n />\n </Stack>\n )\n}\n","import React from 'react'\nimport {\n GroupBase,\n SelectComponentsConfig,\n chakraComponents,\n} from 'chakra-react-select'\nimport { PlusSolid } from '@northlight/icons'\nimport { Icon } from '../icon'\nimport { Box } from '../box'\nimport { Flex } from '../flex'\nimport { Text } from '../text'\nimport { Option } from '../select'\n\nconst { Option: ChakraOption } = chakraComponents\n\ntype CustomComponents<T extends string> =\nSelectComponentsConfig<Option<T>, false, GroupBase<Option<T>>>\n\nexport const getCustomComponents = <T extends string = string>(): CustomComponents<T> => (\n {\n Option: ({ children, ...props }) => (\n <ChakraOption { ...props }>\n { props.data.isCreation && (\n <Flex\n mr={ 3 }\n width={ 1.5 }\n mb={ 0.5 }\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <Icon as={ PlusSolid } color=\"brand\" />\n </Flex>\n ) }\n { !props.data.isCreation && <Box mr={ 3 } width={ 1.5 } /> }\n <Text\n color={ props.data.isCreation ? 'text.brand' : 'text.default' }\n fontWeight={ props.data.isCreation ? 'semibold' : 'normal' }\n >\n { children }\n </Text>\n </ChakraOption>\n ),\n }\n)\n","import React, { useEffect, useMemo, useRef, useState } from 'react'\nimport {\n ActionMeta,\n CreatableProps,\n CreatableSelect,\n GroupBase,\n SingleValue,\n} from 'chakra-react-select'\nimport { PlusSolid } from '@northlight/icons'\nimport { Box, Icon, theme } from '@chakra-ui/react'\nimport { any, isEmpty, prop, toLower, trim } from 'ramda'\nimport { uniqBy } from 'yafu'\nimport { customSelectStyles } from '../../theme/components/select/custom-select'\nimport type {\n CreatableSelectDropdownProps,\n CreationOption,\n CreationOptionValue,\n} from './types'\nimport { getCustomComponents } from './custom-components'\nimport { EditableText } from '../editable-text'\nimport type { Option } from '../select/types'\n\n/**\n * A dropdown component that allows users to select a value from given options\n * or create a new one if it doesn't exist.\n * @see {@link https://northlight.dev/reference/creatable-select-dropdown}\n *\n * @example (Example)\n * (?\n * () => {\n * const [artist, setArtist] = useState(null);\n * const [element, setElement] = useState({ label: 'Technique', value: 'technique' })\n * const someOptions = [\n * { label: 'Scooter', value: 'scooter' },\n * { label: 'Snoop Doggy Dogg', value: 'snoop-dogg' },\n * ];\n *\n * const someOtherOptions = [\n * { label: 'Vision', value: 'vision' },\n * { label: 'Technique', value: 'technique' },\n * { label: 'Expression', value: 'expression' }\n * ];\n *\n * return (\n * <VStack gap={10} alignItems={\"flex-start\"}>\n * <Box align=\"left\">\n * <H1>Basic example</H1>\n * <H3>Select the best artist</H3>\n * <CreatableSelectDropdown\n * standardOptions={someOptions}\n * onOptionChange={setArtist}\n * width=\"300px\"\n * value={artist ? artist.value : undefined}\n * />\n * {artist && artist.value !== 'Add option...' && (\n * <H3 py={8}>The best artist is: {artist.label}</H3>\n * )}\n * </Box>\n * <Box align=\"left\">\n * <H1>Pre-selected option</H1>\n * <H3>What is the quintessential element of an exceptional artisan?</H3>\n * <CreatableSelectDropdown\n * standardOptions={someOtherOptions}\n * onOptionChange={setElement}\n * width=\"300px\"\n * value={element ? element.value : undefined}\n * />\n * {element && element.value !== 'Add option...' && (\n * <H3 py={8}>\n * {element.value === 'vision' && (\n * 'The artist\\'s vision shapes their creative world.'\n * )}\n * {element.value === 'technique' && (\n * 'Technique is the legacy\\'s bedrock.'\n * )}\n * {element.value === 'expression' && (\n * 'Expression communicates the artist\\'s inner voice.'\n * )}\n * {element.value !== 'vision' &&\n * element.value !== 'technique' &&\n * element.value !== 'expression' && (\n * 'Absent the selection of legitimate alternatives.'\n * )}\n * </H3>\n * )}\n * </Box>\n * </VStack>\n * );\n * }\n * ?)\n */\n\nconst CREATION_OPTION_VALUE: CreationOptionValue = 'add_field'\n\nexport const CreatableSelectDropdown = <T extends string = string>({\n standardOptions,\n initialPlaceholder = 'Select or create...',\n addOptionPlaceholder = 'Select or create...',\n creationOption = {\n label: 'Add field',\n value: CREATION_OPTION_VALUE,\n isCreation: true,\n },\n onOptionChange,\n variant = 'outline',\n defaultValue,\n value,\n menuPlacement = 'bottom',\n ...restProps\n}: CreatableSelectDropdownProps<T>) => {\n const [ selectedOption, setSelectedOption ] =\n useState<Option<T | CreationOptionValue > | null>(() => {\n const targetValue = value ?? defaultValue ?? null\n return targetValue\n ? standardOptions.find((option) => option.value === targetValue) ?? null\n : null\n })\n\n const [ newOptionPlaceholder, setNewOptionPlaceholder ] =\n useState(initialPlaceholder)\n const [ createdOptions, setCreatedOptions ] = useState<Option<T>[]>([])\n const [ createNewOption, setCreateNewOption ] = useState<boolean>(false)\n const [ addFieldInputValue, setAddFieldInputValue ] = useState<string>('')\n\n function isCreationOption (option: any): option is CreationOption {\n return option && typeof option.isCreation === 'boolean'\n }\n\n const ref = useRef<HTMLDivElement>(null)\n\n const checkIfNewOptionTextExistsInOptions = (\n string: string,\n options: Option[]\n ) => any((option) => toLower(option.value) === string, options)\n\n const handleCreateOption = (newOptionTextString: T) => {\n setCreateNewOption(true)\n\n if (isEmpty(trim(newOptionTextString))) {\n return\n }\n\n const newOptionTextLower = toLower(newOptionTextString)\n\n const newOptionExistsInStandardOptions =\n checkIfNewOptionTextExistsInOptions(newOptionTextLower, standardOptions)\n\n const newOptionExistsInCreatedOptions = checkIfNewOptionTextExistsInOptions(\n newOptionTextLower,\n createdOptions\n )\n\n if (!newOptionExistsInCreatedOptions && !newOptionExistsInStandardOptions) {\n const newOption = {\n label: newOptionTextString,\n value: newOptionTextString,\n }\n setCreatedOptions((currentCreatedOptions) => [\n ...currentCreatedOptions,\n newOption,\n ])\n setSelectedOption(newOption)\n onOptionChange(newOption)\n }\n setNewOptionPlaceholder(initialPlaceholder)\n }\n\n const handleChange = (\n newValue: SingleValue<Option<T | CreationOptionValue>>,\n _actionMeta: ActionMeta<Option<T | CreationOptionValue>>\n ) => {\n const option = newValue\n\n if (newValue?.isCreation) {\n setCreateNewOption(true)\n }\n\n if (option == null) {\n return\n }\n\n if (isCreationOption(option)) {\n setNewOptionPlaceholder(addOptionPlaceholder)\n } else {\n setNewOptionPlaceholder(initialPlaceholder)\n }\n if (option.value !== CREATION_OPTION_VALUE) {\n setSelectedOption(option)\n onOptionChange(option)\n }\n }\n\n const combinedOptions = useMemo(\n (): Option<T>[] => uniqBy(prop('value'), [ ...standardOptions, ...createdOptions ]),\n [ standardOptions, createdOptions ]\n )\n\n const customOptions: Option<T | CreationOptionValue>[] = [\n {\n ...creationOption,\n icon: <Icon as={ PlusSolid } color=\"brand\" />,\n },\n ...combinedOptions,\n ]\n\n useEffect(() => {\n const newSelectedOption =\n combinedOptions.find((option) => option.value === value) ?? null\n if (selectedOption?.value !== newSelectedOption?.value) {\n setSelectedOption(newSelectedOption)\n }\n }, [ value, combinedOptions ])\n\n return (\n <Box\n ref={ ref }\n w=\"full\"\n borderRadius=\"none\"\n >\n { createNewOption && (\n <EditableText\n value={ addFieldInputValue }\n startWithEditView={ true }\n onChange={ (v) => {\n setAddFieldInputValue(v)\n } }\n submitOnBlur={ false }\n onCancel={ () => {\n setAddFieldInputValue('')\n setCreateNewOption(false)\n } }\n onSubmit={ (v) => {\n handleCreateOption(v as T)\n setCreateNewOption(false)\n } }\n variant=\"brand\"\n sx={ {\n minWidth: '100%',\n width: '100%',\n } }\n />\n ) }\n { !createNewOption && (\n <CreatableSelect<Option<T | CreationOptionValue>, false,\n GroupBase<Option<T | CreationOptionValue>>>\n menuPlacement={ menuPlacement }\n chakraStyles={ {\n ...customSelectStyles,\n container: (provided) => ({\n ...provided,\n width: '100%',\n }),\n option: (provided, { isSelected }) => ({\n ...provided,\n ...(isSelected && {\n color: 'black',\n }),\n }),\n } }\n components={ getCustomComponents<T | CreationOptionValue>() }\n options={ customOptions }\n menuPortalTarget={ document.body }\n styles={ { menuPortal: (base) => ({ ...base, zIndex: theme.zIndices.popover }) } }\n value={ selectedOption }\n onChange={ handleChange }\n isMulti={ false }\n onCreateOption={ (v) => {\n setCreateNewOption(true)\n setAddFieldInputValue(v)\n } }\n placeholder={ newOptionPlaceholder }\n useBasicStyles={ true }\n variant={ variant }\n { ...(restProps as CreatableProps<\n Option<T | CreationOptionValue>, false,\n GroupBase<Option<T | CreationOptionValue>>>\n ) }\n />\n ) }\n </Box>\n )\n}\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Button, InputGroup, InputRightElement, useDisclosure } from '@chakra-ui/react'\nimport { is } from 'ramda'\nimport { ComboPickerOption, ComboPickerProps, ComboPickerValue } from './types'\nimport { Select, SingleValue } from '../select'\nimport { Box } from '../box'\nimport { FormattedNumberInput } from '../text-field'\nimport { clamp } from '../../utils'\n\n/**\n * @see ComboPickerField\n * @see {@link https://northlight.dev/reference/combo-picker}\n */\nexport const ComboPicker = ({\n onChange,\n options,\n size,\n value: valueProp,\n placeholder,\n precision,\n formatPreset,\n isDisabled,\n isReadOnly,\n defaultToZeroIfEmpty = true,\n max = Infinity,\n min = -Infinity,\n ...rest\n}: ComboPickerProps) => {\n const { isOpen, onToggle, onClose } = useDisclosure()\n const [ inputValueState, setInputValueState ] = useState(valueProp?.input)\n const [ selectOptionState, setselectOptionState ] = useState(valueProp?.option)\n const [ enableSelectInput, setEnableSelectInput ] = useState(false)\n\n const isInputValueControlled = typeof valueProp?.input !== 'undefined'\n const inputValue = isInputValueControlled ? valueProp.input : inputValueState\n\n const isOptionControlled = typeof valueProp?.option !== 'undefined'\n const selectOption = isOptionControlled ? valueProp.option : selectOptionState\n\n const buttonRef = useRef<any>()\n const selectRef = useRef<any>()\n\n const getNewValue = (option?: ComboPickerOption, input?: number): ComboPickerValue => {\n const newValueOption = option ?? options[0]\n\n return (is(Number, input))\n ? { input: Number(input), option: newValueOption }\n : { option: newValueOption }\n }\n\n const handleInputChange = (newInputvalue?: number) => {\n const newValue = getNewValue(selectOption, newInputvalue)\n\n setInputValueState(newValue.input)\n onChange?.(newValue)\n }\n\n const handleSelectClose = () => {\n if (buttonRef.current) {\n buttonRef.current.focus()\n setEnableSelectInput(false)\n }\n\n onClose()\n }\n\n const handleSelectChange = (selectedOption: SingleValue<ComboPickerOption>) => {\n if (selectedOption) {\n setselectOptionState(selectedOption)\n onChange?.(getNewValue(selectedOption, inputValue))\n\n if (isOpen) {\n handleSelectClose()\n }\n }\n }\n\n const handleSelectToggle = () => {\n if (!isOpen) {\n setEnableSelectInput(true)\n }\n\n onToggle()\n }\n\n useEffect(() => {\n if (enableSelectInput) {\n selectRef.current.focus()\n }\n }, [ enableSelectInput ])\n\n useEffect(() => {\n const needsToCorrectOption = !selectOption\n const needsToCorrectInput = !is(Number, inputValue) && defaultToZeroIfEmpty\n\n const option = needsToCorrectOption ? options[0] : selectOption\n const input = needsToCorrectInput ? clamp(min, max, 0) : inputValue\n\n if (needsToCorrectOption) {\n setselectOptionState(option)\n }\n\n if (needsToCorrectInput) {\n setInputValueState(input)\n }\n\n if (needsToCorrectOption || needsToCorrectInput) {\n onChange?.(getNewValue(option, input))\n }\n }, [ inputValue, defaultToZeroIfEmpty ])\n\n const buttonWidth = (buttonRef.current?.offsetWidth ?? 0)\n\n return (\n <InputGroup>\n <FormattedNumberInput\n width=\"100%\"\n onChange={ (values) => handleInputChange(values.floatValue) }\n value={ inputValue }\n placeholder={ placeholder }\n size={ size }\n numberOfDecimals={ precision }\n preset={ formatPreset }\n disabled={ isDisabled }\n readOnly={ isReadOnly }\n min={ min }\n max={ max }\n { ...rest }\n pr={ `${buttonWidth >= 0 ? buttonWidth + 10 : 0}px` }\n />\n <InputRightElement\n width=\"auto\"\n display=\"flex\"\n justifyContent=\"flex-end\"\n padding={ 2 }\n >\n <Button\n ref={ buttonRef }\n isDisabled={ isDisabled }\n onClick={ handleSelectToggle }\n flexShrink=\"0\"\n height=\"100%\"\n >\n { selectOption?.label ?? '' }\n </Button>\n </InputRightElement>\n <Box position=\"absolute\" width=\"100%\">\n <Select\n ref={ selectRef }\n chakraStyles={ { container: (provided) => ({\n ...provided,\n position: 'absolute',\n visibility: 'hidden',\n right: '0',\n }),\n input: (provided) => ({\n ...provided,\n pointerEvents: 'none',\n color: 'transparent',\n display: enableSelectInput ? 'block' : 'none',\n }),\n menu: (provided) => ({\n ...provided,\n width: 'auto',\n right: '0',\n }) } }\n options={ options }\n value={ selectOption ? selectOption.value : undefined }\n onChange={ handleSelectChange }\n onBlur={ handleSelectClose }\n menuIsOpen={ isOpen }\n />\n </Box>\n </InputGroup>\n )\n}\n","import React from 'react'\nimport { ComboPickerFieldProps } from './types'\nimport { ComboPicker } from './combo-picker'\nimport { Field } from '../form'\n\n/**\n * The <ComboPicker /> component wrapped in a <Field />\n * meant to be used only inside <Form />\n * @see ComboPicker\n * @see {@link https://northlight.dev/reference/combo-picker}\n *\n * @example (Example)\n * ##Default number format preset(EU) with default decimals(2):\n * (?\n * <Form initialValues={{\"budget\": {input: 123456789.123, option:{label: 'EUR', value: 'eur'}}}}>\n * <ComboPickerField\n * label=\"Budget\"\n * name=\"budget\"\n * placeholder=\"Amount\"\n * options={ [\n * { label: 'USD', value: 'usd' },\n * { label: 'EUR', value: 'eur' },\n * { label: 'SEK', value: 'sek' },\n * ] }\n * />\n * </Form>\n *\n * ?)\n * <br />\n * ##US number format preset with three decimals as Disabled:\n * (?\n * <Form initialValues={{\"budget\": {input: 123456789.1234, option:{label: 'USD', value: 'usd'}}}}>\n * <ComboPickerField\n * label=\"Budget\"\n * name=\"budget\"\n * precision={ 3 }\n * isDisabled={true}\n * formatPreset='us'\n * options={ [\n * { label: 'USD', value: 'usd' },\n * { label: 'EUR', value: 'eur' },\n * { label: 'SEK', value: 'sek' },\n * ] }\n * />\n * </Form>\n *\n * ?)\n * <br />\n * ##NOR number format preset with four decimals as ReadOnly:\n * (?\n * <Form initialValues={{\"budget\": {input: 123456789.1234, option:{label: 'SEK', value: 'sek'}}}}>\n * <ComboPickerField\n * label=\"Budget\"\n * name=\"budget\"\n * precision={ 4 }\n * isReadOnly={true}\n * formatPreset='nor'\n * options={ [\n * { label: 'USD', value: 'usd' },\n * { label: 'EUR', value: 'eur' },\n * { label: 'SEK', value: 'sek' },\n * ] }\n * />\n * </Form>\n *\n * ?)\n * <br />\n */\nexport const ComboPickerField = ({\n name,\n isRequired,\n direction = 'column',\n label,\n validate,\n onChange: onChangeCallback,\n ...rest\n}: ComboPickerFieldProps) => (\n <Field\n name={ name }\n label={ label }\n direction={ direction }\n isRequired={ isRequired }\n validate={ validate }\n >\n { ({ value, onChange }) => (\n <ComboPicker\n data-testid=\"combo-picker-test-id\"\n aria-label={ label }\n onChange={ (comboPickerValue) => {\n onChange(comboPickerValue)\n onChangeCallback?.(comboPickerValue)\n } }\n value={ value }\n { ...rest }\n />\n ) }\n </Field>\n\n)\n"],"names":["ChakraAccordion","ChakraAccordionButton","ChakraAccordionPanel","ChakraAccordionItem","useState","useEffect","useInterval","useFocusManager","useRef","isNil","last","map","prop","difference","useMediaQuery","useToken","palette","replace","split","path","isValidElement","cloneElement","__spreadValues","T","Children","createContext","useContext","keys","omit","__spreadProps","Button","keyframes","Blinker","Checkbox","PinInput","Select","Radio","Tabs","Textarea","Switch","Tag","Alert","NumberInput","NotificationIconButton","Calendar","DragAndDrop","merge","DatePicker","FlipButton","Spinner","randomColor","Avatar","Modal","cssVar","Tooltip","Icon","ClipboardInput","ColorPicker","Step","StepList","H1","H2","H3","H4","H5","H6","Blockquote","Tiny","Capitalized","Lead","Small","P","Label","NumVal","SplitPane","PaneDivider","Carousel","EditableText","isEmpty","Toolbox","FilePicker","Table","mode","Menu","Badge","Popover","WebappSystemTokensSet","WebappComponentsTokensSet","typography","TottSystemTokensSet","TottComponentsTokensSet","coreZIndex","coreSizing","coreSpacing","coreFontWeight","coreBoxShadow","coreFontSize","coreLineHeight","coreBorderRadius","extendTheme","identity","__objRest","CreatableSelect","any","Box","useMultiStyleConfig","chakra","ChakraAlert","ChakraAspectRatio","forwardRef","ChakraIcon","useStyleConfig","UserSquareDuo","BusinessContactDuo","Heading","ChakraText","FormLabel","VisuallyHidden","ifElse","gt","always","inc","dec","defaultTo","take","HStack","ChakraBadge","ChakraSpinner","ChakraButton","ChakraCheckbox","is","values","forEach","trim","joiResolver","useForm","useImperativeHandle","equals","FormProvider","useFormContext","FormControl","Stack","Controller","FormErrorMessage","Flex","CheckboxGroup","_a","ChakraIconButton","CheckDuo","ChakraPopover","ChevronUpDuo","ChevronDownDuo","Portal","useDisclosure","useBoolean","PopoverTrigger","ColorsDuo","PopoverContent","PopoverHeader","PopoverBody","FocusScope","SimpleGrid","useCheckboxGroupState","useRadioGroupState","useCheckboxGroup","useRadioGroup","useCheckboxGroupItem","useRadio","useFocusRing","mergeProps","mergeAll","CheckSolid","SlideFade","Text","useButton","CalendarDuo","useDateSegment","toLower","useDateFieldState","createCalendar","useDateField","find","ChakraTable","date","useCalendarCell","today","isSameMonth","memo","useCalendarGrid","getWeeksInMonth","Thead","Tr","Tbody","times","useDateFormatter","useLocale","useCalendar","useMemo","ChevronLeftSolid","ChevronRightSolid","useCalendarState","GregorianCalendar","I18nProvider","useDatePickerState","useDatePicker","parseDate","PopoverAnchor","InputGroup","InputRightElement","XCloseSolid","clickable","useClickable","Link","ReactRouterLink","startOfWeek","endOfWeek","startOfMonth","endOfMonth","startOfYear","endOfYear","Spacer","has","useDateRangePickerState","useDateRangePicker","useOutsideClick","not","all","CheckCircleSolid","AlertTriangleSolid","AlertCircleSolid","AlertOctagonSolid","InfoSolid","BrightnessSolid","HelpCircleSolid","VStack","ChakraTooltip","Circle","TrashDuo","Center","ChakraFade","ChakraScaleFade","ChakraSlide","ChakraSlideFade","ChakraCollapse","CloseButton","ChakraRadio","ChakraRadioGroup","motion","useMotionValue","animate","chakraComponents","SearchDuo","filter","test","AsyncSelect","DndContext","ChakraTag","OverflowIndicator","DefaultOverflowIndicator","TagLabel","TagRightIcon","DotsMatrixSolid","useDraggable","CSS","useDroppable","SortableContext","useSortable","DragDuo","remove","insert","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","indexOf","arrayMove","rectIntersection","rectSortingStrategy","DragOverlay","VariableSizeList","VariableSizeGrid","useEditableControls","useEditableState","EditDuo","Editable","InputLeftElement","Input","EditablePreview","ChakraEditableInput","ChakraModal","ModalOverlay","ModalContent","ModalCloseButton","ChakraModalBody","ModalHeader","Slider","SliderTrack","SliderFilledTrack","SliderThumb","ZoomInDuo","ModalFooter","ChakraProgress","intersection","Image","Image03Solid","UploadCloudSolid","FileBlankDuo","Fade","EditBoxDuo","DownloadDuo","TrashFullDuo","Image03Duo","ChakraImage","findIndex","concat","theme","webappTheme","ChakraProvider","ChakraMenu","ChakraNumberInputStepper","Divider","NumberIncrementStepper","ChevronUpSolid","NumberDecrementStepper","ChevronDownSolid","head","match","length","ChakraNumberInput","NumberInputField","ChakraPinInput","propEq","ChakraReactSelect","ChakraSwitch","ChakraTabPanel","ChakraTabs","ChakraTextarea","numericFormatter","NumericFormat","BellSolid","useChakraToast","AlertTitle","AlertDescription","ChakraStepPanel","ChakraSteps","ChakraStep","ChakraStepList","useClipboard","CopyDuo","useCallback","Grid","GridItem","PlusSolid","_b","uniqBy"],"mappings":"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"}