{"version":3,"file":"static/js/4258.07e53dc0.chunk.js","mappings":"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","sources":["../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/Switch/switchClasses.js","../node_modules/@mui/material/Switch/Switch.js","../node_modules/@mui/material/internal/switchBaseClasses.js","../node_modules/@mui/material/internal/SwitchBase.js","../node_modules/@mantine/core/src/components/Checkbox/CheckIcon.tsx","../node_modules/@mantine/core/src/components/Combobox/Combobox.context.ts","../node_modules/@mantine/core/src/components/Combobox/ComboboxChevron/ComboboxChevron.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxClearButton/ComboboxClearButton.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxDropdown/ComboboxDropdown.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxDropdownTarget/ComboboxDropdownTarget.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxEmpty/ComboboxEmpty.tsx","../node_modules/@mantine/core/src/components/Combobox/use-combobox-target-props/use-combobox-target-props.ts","../node_modules/@mantine/core/src/components/Combobox/ComboboxEventsTarget/ComboboxEventsTarget.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxFooter/ComboboxFooter.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxGroup/ComboboxGroup.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxHeader/ComboboxHeader.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxHiddenInput/ComboboxHiddenInput.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxOption/ComboboxOption.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxOptions/ComboboxOptions.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxSearch/ComboboxSearch.tsx","../node_modules/@mantine/core/src/components/Combobox/ComboboxTarget/ComboboxTarget.tsx","../node_modules/@mantine/core/src/components/Combobox/Combobox.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollArea.context.ts","../node_modules/@mantine/hooks/src/use-callback-ref/use-callback-ref.ts","../node_modules/@mantine/core/src/components/ScrollArea/use-resize-observer.ts","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaRoot/ScrollAreaRoot.tsx","../node_modules/@mantine/hooks/src/use-debounced-callback/use-debounced-callback.ts","../node_modules/@mantine/core/src/components/ScrollArea/utils/get-thumb-ratio.tsx","../node_modules/@mantine/core/src/components/ScrollArea/utils/get-thumb-size.tsx","../node_modules/@mantine/core/src/components/ScrollArea/utils/linear-scale.ts","../node_modules/@mantine/core/src/components/ScrollArea/utils/get-thumb-offset-from-scroll.ts","../node_modules/@mantine/core/src/components/ScrollArea/utils/is-scrolling-within-scrollbar-bounds.ts","../node_modules/@mantine/core/src/components/ScrollArea/utils/to-int.ts","../node_modules/@mantine/core/src/components/ScrollArea/utils/compose-event-handlers.ts","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.context.ts","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/Scrollbar.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/ScrollbarX.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/ScrollbarY.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarVisible.tsx","../node_modules/@mantine/core/src/components/ScrollArea/utils/get-scroll-position-from-pointer.ts","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarAuto.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarHover.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbarScroll.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaScrollbar/ScrollAreaScrollbar.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaThumb/ScrollAreaThumb.tsx","../node_modules/@mantine/core/src/components/ScrollArea/utils/add-unlinked-scroll-listener.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollAreaViewport/ScrollAreaViewport.tsx","../node_modules/@mantine/core/src/components/ScrollArea/ScrollArea.tsx","../node_modules/@mantine/core/src/components/Combobox/OptionsDropdown/default-options-filter.ts","../node_modules/@mantine/core/src/components/Combobox/OptionsDropdown/validate-options.ts","../node_modules/@mantine/core/src/components/Combobox/OptionsDropdown/OptionsDropdown.tsx","../node_modules/@mantine/core/src/components/Combobox/OptionsDropdown/is-empty-combobox-data.ts","../node_modules/@mantine/core/src/components/Combobox/OptionsDropdown/is-options-group.ts","../node_modules/@mantine/core/src/components/Combobox/get-options-lockup/get-options-lockup.ts","../node_modules/@mantine/core/src/components/Combobox/get-parsed-combobox-data/get-parsed-combobox-data.ts","../node_modules/@mantine/core/src/components/Combobox/use-combobox/use-combobox.ts","../node_modules/@mantine/core/src/components/Combobox/use-combobox/get-index/get-index.ts","../node_modules/@mantine/core/src/components/Input/InputDescription/InputDescription.tsx","../node_modules/@mantine/core/src/components/Input/InputError/InputError.tsx","../node_modules/@mantine/core/src/components/Input/InputLabel/InputLabel.tsx","../node_modules/@mantine/core/src/components/Input/InputPlaceholder/InputPlaceholder.tsx","../node_modules/@mantine/core/src/components/Input/InputWrapper/get-input-offsets/get-input-offsets.ts","../node_modules/@mantine/core/src/components/Input/InputWrapper/InputWrapper.tsx","../node_modules/@mantine/core/src/components/Input/Input.tsx","../node_modules/@mantine/core/src/components/Input/InputWrapper.context.ts","../node_modules/@mantine/core/src/components/InputBase/InputBase.tsx","../node_modules/@mantine/core/src/components/Input/use-input-props.ts","../node_modules/@mantine/core/src/components/Select/Select.tsx","../node_modules/@mantine/hooks/src/use-previous/use-previous.ts","../node_modules/@mantine/core/src/core/utils/create-optional-context/create-optional-context.tsx"],"sourcesContent":["import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst FormControlContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n FormControlContext.displayName = 'FormControlContext';\n}\nexport default FormControlContext;","'use client';\n\nimport * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSwitchUtilityClass(slot) {\n return generateUtilityClass('MuiSwitch', slot);\n}\nconst switchClasses = generateUtilityClasses('MuiSwitch', ['root', 'edgeStart', 'edgeEnd', 'switchBase', 'colorPrimary', 'colorSecondary', 'sizeSmall', 'sizeMedium', 'checked', 'disabled', 'input', 'thumb', 'track']);\nexport default switchClasses;","'use client';\n\n// @inheritedComponent IconButton\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"edge\", \"size\", \"sx\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha, darken, lighten } from '@mui/system/colorManipulator';\nimport capitalize from '../utils/capitalize';\nimport SwitchBase from '../internal/SwitchBase';\nimport { styled } from '../zero-styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport switchClasses, { getSwitchUtilityClass } from './switchClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n edge,\n size,\n color,\n checked,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', edge && `edge${capitalize(edge)}`, `size${capitalize(size)}`],\n switchBase: ['switchBase', `color${capitalize(color)}`, checked && 'checked', disabled && 'disabled'],\n thumb: ['thumb'],\n track: ['track'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getSwitchUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst SwitchRoot = styled('span', {\n name: 'MuiSwitch',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.edge && styles[`edge${capitalize(ownerState.edge)}`], styles[`size${capitalize(ownerState.size)}`]];\n }\n})({\n display: 'inline-flex',\n width: 34 + 12 * 2,\n height: 14 + 12 * 2,\n overflow: 'hidden',\n padding: 12,\n boxSizing: 'border-box',\n position: 'relative',\n flexShrink: 0,\n zIndex: 0,\n // Reset the stacking context.\n verticalAlign: 'middle',\n // For correct alignment with the text.\n '@media print': {\n colorAdjust: 'exact'\n },\n variants: [{\n props: {\n edge: 'start'\n },\n style: {\n marginLeft: -8\n }\n }, {\n props: {\n edge: 'end'\n },\n style: {\n marginRight: -8\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n width: 40,\n height: 24,\n padding: 7,\n [`& .${switchClasses.thumb}`]: {\n width: 16,\n height: 16\n },\n [`& .${switchClasses.switchBase}`]: {\n padding: 4,\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(16px)'\n }\n }\n }\n }]\n});\nconst SwitchSwitchBase = styled(SwitchBase, {\n name: 'MuiSwitch',\n slot: 'SwitchBase',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.switchBase, {\n [`& .${switchClasses.input}`]: styles.input\n }, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme\n}) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: 1,\n // Render above the focus ripple.\n color: theme.vars ? theme.vars.palette.Switch.defaultColor : `${theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.grey[300]}`,\n transition: theme.transitions.create(['left', 'transform'], {\n duration: theme.transitions.duration.shortest\n }),\n [`&.${switchClasses.checked}`]: {\n transform: 'translateX(20px)'\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.vars ? theme.vars.palette.Switch.defaultDisabledColor : `${theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[600]}`\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n opacity: 0.5\n },\n [`&.${switchClasses.disabled} + .${switchClasses.track}`]: {\n opacity: theme.vars ? theme.vars.opacity.switchTrackDisabled : `${theme.palette.mode === 'light' ? 0.12 : 0.2}`\n },\n [`& .${switchClasses.input}`]: {\n left: '-100%',\n width: '300%'\n }\n}), ({\n theme\n}) => ({\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n variants: [...Object.entries(theme.palette).filter(([, value]) => value.main && value.light) // check all the used fields in the style below\n .map(([color]) => ({\n props: {\n color\n },\n style: {\n [`&.${switchClasses.checked}`]: {\n color: (theme.vars || theme).palette[color].main,\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[color].main, theme.palette.action.hoverOpacity),\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${switchClasses.disabled}`]: {\n color: theme.vars ? theme.vars.palette.Switch[`${color}DisabledColor`] : `${theme.palette.mode === 'light' ? lighten(theme.palette[color].main, 0.62) : darken(theme.palette[color].main, 0.55)}`\n }\n },\n [`&.${switchClasses.checked} + .${switchClasses.track}`]: {\n backgroundColor: (theme.vars || theme).palette[color].main\n }\n }\n }))]\n}));\nconst SwitchTrack = styled('span', {\n name: 'MuiSwitch',\n slot: 'Track',\n overridesResolver: (props, styles) => styles.track\n})(({\n theme\n}) => ({\n height: '100%',\n width: '100%',\n borderRadius: 14 / 2,\n zIndex: -1,\n transition: theme.transitions.create(['opacity', 'background-color'], {\n duration: theme.transitions.duration.shortest\n }),\n backgroundColor: theme.vars ? theme.vars.palette.common.onBackground : `${theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white}`,\n opacity: theme.vars ? theme.vars.opacity.switchTrack : `${theme.palette.mode === 'light' ? 0.38 : 0.3}`\n}));\nconst SwitchThumb = styled('span', {\n name: 'MuiSwitch',\n slot: 'Thumb',\n overridesResolver: (props, styles) => styles.thumb\n})(({\n theme\n}) => ({\n boxShadow: (theme.vars || theme).shadows[1],\n backgroundColor: 'currentColor',\n width: 20,\n height: 20,\n borderRadius: '50%'\n}));\nconst Switch = /*#__PURE__*/React.forwardRef(function Switch(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSwitch'\n });\n const {\n className,\n color = 'primary',\n edge = false,\n size = 'medium',\n sx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n edge,\n size\n });\n const classes = useUtilityClasses(ownerState);\n const icon = /*#__PURE__*/_jsx(SwitchThumb, {\n className: classes.thumb,\n ownerState: ownerState\n });\n return /*#__PURE__*/_jsxs(SwitchRoot, {\n className: clsx(classes.root, className),\n sx: sx,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(SwitchSwitchBase, _extends({\n type: \"checkbox\",\n icon: icon,\n checkedIcon: icon,\n ref: ref,\n ownerState: ownerState\n }, other, {\n classes: _extends({}, classes, {\n root: classes.switchBase\n })\n })), /*#__PURE__*/_jsx(SwitchTrack, {\n className: classes.track,\n ownerState: ownerState\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Switch.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * `small` is equivalent to the dense switch styling.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Switch;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSwitchBaseUtilityClass(slot) {\n return generateUtilityClass('PrivateSwitchBase', slot);\n}\nconst switchBaseClasses = generateUtilityClasses('PrivateSwitchBase', ['root', 'checked', 'disabled', 'input', 'edgeStart', 'edgeEnd']);\nexport default switchBaseClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"checked\", \"checkedIcon\", \"className\", \"defaultChecked\", \"disabled\", \"disableFocusRipple\", \"edge\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useControlled from '../utils/useControlled';\nimport useFormControl from '../FormControl/useFormControl';\nimport ButtonBase from '../ButtonBase';\nimport { getSwitchBaseUtilityClass } from './switchBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n checked,\n disabled,\n edge\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', edge && `edge${capitalize(edge)}`],\n input: ['input']\n };\n return composeClasses(slots, getSwitchBaseUtilityClass, classes);\n};\nconst SwitchBaseRoot = styled(ButtonBase)(({\n ownerState\n}) => _extends({\n padding: 9,\n borderRadius: '50%'\n}, ownerState.edge === 'start' && {\n marginLeft: ownerState.size === 'small' ? -3 : -12\n}, ownerState.edge === 'end' && {\n marginRight: ownerState.size === 'small' ? -3 : -12\n}));\nconst SwitchBaseInput = styled('input', {\n shouldForwardProp: rootShouldForwardProp\n})({\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n});\n\n/**\n * @ignore - internal component.\n */\nconst SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n const {\n autoFocus,\n checked: checkedProp,\n checkedIcon,\n className,\n defaultChecked,\n disabled: disabledProp,\n disableFocusRipple = false,\n edge = false,\n icon,\n id,\n inputProps,\n inputRef,\n name,\n onBlur,\n onChange,\n onFocus,\n readOnly,\n required = false,\n tabIndex,\n type,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n });\n const muiFormControl = useFormControl();\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n const handleInputChange = event => {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n if (onChange) {\n // TODO v6: remove the second argument.\n onChange(event, newChecked);\n }\n };\n let disabled = disabledProp;\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n const hasLabelFor = type === 'checkbox' || type === 'radio';\n const ownerState = _extends({}, props, {\n checked,\n disabled,\n disableFocusRipple,\n edge\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SwitchBaseRoot, _extends({\n component: \"span\",\n className: clsx(classes.root, className),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SwitchBaseInput, _extends({\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor ? id : undefined,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n ownerState: ownerState,\n tabIndex: tabIndex,\n type: type\n }, type === 'checkbox' && value === undefined ? {} : {\n value\n }, inputProps)), checked ? checkedIcon : icon]\n }));\n});\n\n// NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /*\n * @ignore\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object,\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default SwitchBase;","import { rem } from '../../core';\n\nexport interface CheckboxIconProps extends React.ComponentPropsWithoutRef<'svg'> {\n indeterminate: boolean | undefined;\n}\n\nexport interface CheckIconProps extends React.ComponentPropsWithoutRef<'svg'> {\n size?: number | string;\n}\n\nexport function CheckIcon({ size, style, ...others }: CheckIconProps) {\n const _style = size !== undefined ? { width: rem(size), height: rem(size), ...style } : style;\n\n return (\n \n \n \n );\n}\n\nexport function CheckboxIcon({ indeterminate, ...others }: CheckboxIconProps) {\n if (indeterminate) {\n return (\n \n \n \n );\n }\n\n return ;\n}\n","import { createSafeContext, GetStylesApi, MantineSize } from '../../core';\nimport type { ComboboxFactory } from './Combobox';\nimport type { ComboboxOptionProps } from './ComboboxOption/ComboboxOption';\nimport type { ComboboxStore } from './use-combobox/use-combobox';\n\nexport interface ComboboxContextValue {\n getStyles: GetStylesApi;\n store: ComboboxStore;\n onOptionSubmit?: (value: string, optionProps: ComboboxOptionProps) => void;\n size: MantineSize | (string & {});\n resetSelectionOnOptionHover: boolean | undefined;\n readOnly: boolean | undefined;\n}\n\nexport const [ComboboxProvider, useComboboxContext] = createSafeContext(\n 'Combobox component was not found in tree'\n);\n","import {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n Factory,\n factory,\n getSize,\n MantineSize,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxChevronStylesNames = 'chevron';\nexport type ComboboxChevronCSSVariables = {\n chevron: '--combobox-chevron-size';\n};\n\nexport interface ComboboxChevronProps\n extends BoxProps,\n StylesApiProps,\n ElementProps<'svg', 'opacity' | 'display'> {\n size?: MantineSize | (string & {});\n error?: React.ReactNode;\n}\n\nexport type ComboboxChevronFactory = Factory<{\n props: ComboboxChevronProps;\n ref: SVGSVGElement;\n stylesNames: ComboboxChevronStylesNames;\n vars: ComboboxChevronCSSVariables;\n}>;\n\nconst defaultProps: Partial = {\n error: null,\n};\n\nconst varsResolver = createVarsResolver((_, { size }) => ({\n chevron: {\n '--combobox-chevron-size': getSize(size, 'combobox-chevron-size'),\n },\n}));\n\nexport const ComboboxChevron = factory((_props, ref) => {\n const props = useProps('ComboboxChevron', defaultProps, _props);\n const { size, error, style, className, classNames, styles, unstyled, vars, mod, ...others } =\n props;\n\n const getStyles = useStyles({\n name: 'ComboboxChevron',\n classes,\n props,\n style,\n className,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n rootSelector: 'chevron',\n });\n\n return (\n \n \n \n );\n});\n\nComboboxChevron.classes = classes;\nComboboxChevron.displayName = '@mantine/core/ComboboxChevron';\n","import { forwardRef } from 'react';\nimport { ElementProps, MantineSize } from '../../../core';\nimport { __CloseButtonProps, CloseButton } from '../../CloseButton';\n\nexport interface ComboboxClearButtonProps extends __CloseButtonProps, ElementProps<'button'> {\n size?: MantineSize | (string & {}) | number;\n onClear: () => void;\n}\n\nexport const ComboboxClearButton = forwardRef(\n ({ size, onMouseDown, onClick, onClear, ...others }, ref) => (\n {\n event.preventDefault();\n onMouseDown?.(event);\n }}\n onClick={(event) => {\n onClear();\n onClick?.(event);\n }}\n />\n )\n);\n\nComboboxClearButton.displayName = '@mantine/core/ComboboxClearButton';\n","import { factory, Factory, useProps } from '../../../core';\nimport { Popover, PopoverDropdownProps } from '../../Popover';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxDropdownStylesNames = 'dropdown';\n\nexport interface ComboboxDropdownProps extends PopoverDropdownProps {\n /** Determines whether the dropdown should be hidden, for example, when there are no options to display */\n hidden?: boolean;\n}\n\nexport type ComboboxDropdownFactory = Factory<{\n props: ComboboxDropdownProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxDropdownStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial = {};\n\nexport const ComboboxDropdown = factory((props, ref) => {\n const { classNames, styles, className, style, hidden, ...others } = useProps(\n 'ComboboxDropdown',\n defaultProps,\n props\n );\n\n const ctx = useComboboxContext();\n\n return (\n \n );\n});\n\nComboboxDropdown.classes = classes;\nComboboxDropdown.displayName = '@mantine/core/ComboboxDropdown';\n","import { factory, Factory, isElement, useProps } from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useComboboxContext } from '../Combobox.context';\n\nexport interface ComboboxDropdownTargetProps {\n /** Target element */\n children: React.ReactNode;\n\n /** Key of the prop that should be used to access element ref */\n refProp?: string;\n}\n\nconst defaultProps: Partial = {\n refProp: 'ref',\n};\n\nexport type ComboboxDropdownTargetFactory = Factory<{\n props: ComboboxDropdownTargetProps;\n ref: HTMLElement;\n compound: true;\n}>;\n\nexport const ComboboxDropdownTarget = factory((props, ref) => {\n const { children, refProp } = useProps('ComboboxDropdownTarget', defaultProps, props);\n useComboboxContext();\n\n if (!isElement(children)) {\n throw new Error(\n 'Combobox.DropdownTarget component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported'\n );\n }\n\n return (\n \n {children}\n \n );\n});\n\nComboboxDropdownTarget.displayName = '@mantine/core/ComboboxDropdownTarget';\n","import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxEmptyStylesNames = 'empty';\n\nexport interface ComboboxEmptyProps\n extends BoxProps,\n CompoundStylesApiProps,\n ElementProps<'div'> {}\n\nexport type ComboboxEmptyFactory = Factory<{\n props: ComboboxEmptyProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxEmptyStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial = {};\n\nexport const ComboboxEmpty = factory((props, ref) => {\n const { classNames, className, style, styles, vars, ...others } = useProps(\n 'ComboboxEmpty',\n defaultProps,\n props\n );\n\n const ctx = useComboboxContext();\n\n return (\n \n );\n});\n\nComboboxEmpty.classes = classes;\nComboboxEmpty.displayName = '@mantine/core/ComboboxEmpty';\n","import { useState } from 'react';\nimport { useComboboxContext } from '../Combobox.context';\n\ninterface UseComboboxTargetPropsInput {\n targetType: 'input' | 'button' | undefined;\n withAriaAttributes: boolean | undefined;\n withKeyboardNavigation: boolean | undefined;\n withExpandedAttribute: boolean | undefined;\n onKeyDown: React.KeyboardEventHandler | undefined;\n autoComplete: string | undefined;\n}\n\nexport function useComboboxTargetProps({\n onKeyDown,\n withKeyboardNavigation,\n withAriaAttributes,\n withExpandedAttribute,\n targetType,\n autoComplete,\n}: UseComboboxTargetPropsInput) {\n const ctx = useComboboxContext();\n const [selectedOptionId, setSelectedOptionId] = useState(null);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n onKeyDown?.(event);\n\n if (ctx.readOnly) {\n return;\n }\n\n if (withKeyboardNavigation) {\n // Ignore during composition in IME\n if (event.nativeEvent.isComposing) return;\n\n if (event.nativeEvent.code === 'ArrowDown') {\n event.preventDefault();\n\n if (!ctx.store.dropdownOpened) {\n ctx.store.openDropdown('keyboard');\n setSelectedOptionId(ctx.store.selectActiveOption());\n } else {\n setSelectedOptionId(ctx.store.selectNextOption());\n }\n }\n\n if (event.nativeEvent.code === 'ArrowUp') {\n event.preventDefault();\n\n if (!ctx.store.dropdownOpened) {\n ctx.store.openDropdown('keyboard');\n setSelectedOptionId(ctx.store.selectActiveOption());\n } else {\n setSelectedOptionId(ctx.store.selectPreviousOption());\n }\n }\n\n if (event.nativeEvent.code === 'Enter' || event.nativeEvent.code === 'NumpadEnter') {\n // This is a workaround for handling differences in behavior of isComposing property in Safari\n // See: https://dninomiya.github.io/form-guide/stop-enter-submit\n if (event.nativeEvent.keyCode === 229) return;\n\n const selectedOptionIndex = ctx.store.getSelectedOptionIndex();\n\n if (ctx.store.dropdownOpened && selectedOptionIndex !== -1) {\n event.preventDefault();\n ctx.store.clickSelectedOption();\n } else if (targetType === 'button') {\n event.preventDefault();\n ctx.store.openDropdown('keyboard');\n }\n }\n\n if (event.nativeEvent.code === 'Escape') {\n ctx.store.closeDropdown('keyboard');\n }\n\n if (event.nativeEvent.code === 'Space') {\n if (targetType === 'button') {\n event.preventDefault();\n ctx.store.toggleDropdown('keyboard');\n }\n }\n }\n };\n\n const ariaAttributes = withAriaAttributes\n ? {\n 'aria-haspopup': 'listbox',\n 'aria-expanded':\n (withExpandedAttribute && !!(ctx.store.listId && ctx.store.dropdownOpened)) || undefined,\n 'aria-controls': ctx.store.listId,\n 'aria-activedescendant': ctx.store.dropdownOpened\n ? selectedOptionId || undefined\n : undefined,\n autoComplete,\n 'data-expanded': ctx.store.dropdownOpened || undefined,\n 'data-mantine-stop-propagation': ctx.store.dropdownOpened || undefined,\n }\n : {};\n\n return {\n ...ariaAttributes,\n onKeyDown: handleKeyDown,\n };\n}\n","import { cloneElement } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { factory, Factory, isElement, useProps } from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport { useComboboxTargetProps } from '../use-combobox-target-props/use-combobox-target-props';\n\nexport interface ComboboxEventsTargetProps {\n /** Target element */\n children: React.ReactNode;\n\n /** Key of the prop that should be used to access element ref */\n refProp?: string;\n\n /** Determines whether component should respond to keyboard events, `true` by default */\n withKeyboardNavigation?: boolean;\n\n /** Determines whether the target should have `aria-` attributes, `true` by default */\n withAriaAttributes?: boolean;\n\n /** Determines whether the target should have `aria-expanded` attribute, `false` by default */\n withExpandedAttribute?: boolean;\n\n /** Determines which events should be handled by the target element.\n * `button` target type handles `Space` and `Enter` keys to toggle dropdown opened state.\n * `input` by default.\n * */\n targetType?: 'button' | 'input';\n\n /** Input autocomplete attribute */\n autoComplete?: string;\n}\n\nconst defaultProps: Partial = {\n refProp: 'ref',\n targetType: 'input',\n withKeyboardNavigation: true,\n withAriaAttributes: true,\n withExpandedAttribute: false,\n autoComplete: 'off',\n};\n\nexport type ComboboxEventsTargetFactory = Factory<{\n props: ComboboxEventsTargetProps;\n ref: HTMLElement;\n compound: true;\n}>;\n\nexport const ComboboxEventsTarget = factory((props, ref) => {\n const {\n children,\n refProp,\n withKeyboardNavigation,\n withAriaAttributes,\n withExpandedAttribute,\n targetType,\n autoComplete,\n ...others\n } = useProps('ComboboxEventsTarget', defaultProps, props);\n\n if (!isElement(children)) {\n throw new Error(\n 'Combobox.EventsTarget component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported'\n );\n }\n\n const ctx = useComboboxContext();\n const targetProps = useComboboxTargetProps({\n targetType,\n withAriaAttributes,\n withKeyboardNavigation,\n withExpandedAttribute,\n onKeyDown: children.props.onKeyDown,\n autoComplete,\n });\n\n return cloneElement(children, {\n ...targetProps,\n ...others,\n [refProp!]: useMergedRef(ref, ctx.store.targetRef, (children as any)?.ref),\n });\n});\n\nComboboxEventsTarget.displayName = '@mantine/core/ComboboxEventsTarget';\n","import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxFooterStylesNames = 'footer';\n\nexport interface ComboboxFooterProps\n extends BoxProps,\n CompoundStylesApiProps,\n ElementProps<'div'> {}\n\nexport type ComboboxFooterFactory = Factory<{\n props: ComboboxFooterProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxFooterStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial = {};\n\nexport const ComboboxFooter = factory((props, ref) => {\n const { classNames, className, style, styles, vars, ...others } = useProps(\n 'ComboboxFooter',\n defaultProps,\n props\n );\n\n const ctx = useComboboxContext();\n\n return (\n {\n event.preventDefault();\n }}\n />\n );\n});\n\nComboboxFooter.classes = classes;\nComboboxFooter.displayName = '@mantine/core/ComboboxFooter';\n","import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxGroupStylesNames = 'group' | 'groupLabel';\n\nexport interface ComboboxGroupProps\n extends BoxProps,\n CompoundStylesApiProps,\n ElementProps<'div'> {\n /** Group label */\n label?: React.ReactNode;\n}\n\nexport type ComboboxGroupFactory = Factory<{\n props: ComboboxGroupProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxGroupStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial = {};\n\nexport const ComboboxGroup = factory((props, ref) => {\n const { classNames, className, style, styles, vars, children, label, ...others } = useProps(\n 'ComboboxGroup',\n defaultProps,\n props\n );\n\n const ctx = useComboboxContext();\n\n return (\n \n {label &&
{label}
}\n {children}\n \n );\n});\n\nComboboxGroup.classes = classes;\nComboboxGroup.displayName = '@mantine/core/ComboboxGroup';\n","import {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxHeaderStylesNames = 'header';\n\nexport interface ComboboxHeaderProps\n extends BoxProps,\n CompoundStylesApiProps,\n ElementProps<'div'> {}\n\nexport type ComboboxHeaderFactory = Factory<{\n props: ComboboxHeaderProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxHeaderStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial = {};\n\nexport const ComboboxHeader = factory((props, ref) => {\n const { classNames, className, style, styles, vars, ...others } = useProps(\n 'ComboboxHeader',\n defaultProps,\n props\n );\n\n const ctx = useComboboxContext();\n\n return (\n {\n event.preventDefault();\n }}\n />\n );\n});\n\nComboboxHeader.classes = classes;\nComboboxHeader.displayName = '@mantine/core/ComboboxHeader';\n","export interface ComboboxHiddenInputProps\n extends Omit, 'value'> {\n /** Input value */\n value: string | string[] | null;\n\n /** Divider character that is used to transform array values to string, `','` by default */\n valuesDivider?: string;\n}\n\nexport function ComboboxHiddenInput({\n value,\n valuesDivider = ',',\n ...others\n}: ComboboxHiddenInputProps) {\n return (\n \n );\n}\n\nComboboxHiddenInput.displayName = '@mantine/core/ComboboxHiddenInput';\n","import { useId } from 'react';\nimport {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxOptionStylesNames = 'option';\n\nexport interface ComboboxOptionProps\n extends BoxProps,\n CompoundStylesApiProps,\n ElementProps<'div'> {\n /** Option value */\n value: string;\n\n /** Determines whether the option is selected */\n active?: boolean;\n\n /** Determines whether the option can be selected */\n disabled?: boolean;\n\n /** Determines whether item is selected, useful for virtualized comboboxes */\n selected?: boolean;\n}\n\nexport type ComboboxOptionFactory = Factory<{\n props: ComboboxOptionProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxOptionStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial = {};\n\nexport const ComboboxOption = factory((_props, ref) => {\n const props = useProps('ComboboxOption', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n vars,\n onClick,\n id,\n active,\n onMouseDown,\n onMouseOver,\n disabled,\n selected,\n mod,\n ...others\n } = props;\n\n const ctx = useComboboxContext();\n const uuid = useId();\n const _id = id || uuid;\n\n return (\n {\n if (!disabled) {\n ctx.onOptionSubmit?.(props.value, props);\n onClick?.(event);\n } else {\n event.preventDefault();\n }\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n onMouseDown?.(event);\n }}\n onMouseOver={(event) => {\n if (ctx.resetSelectionOnOptionHover) {\n ctx.store.resetSelectedOption();\n }\n onMouseOver?.(event);\n }}\n />\n );\n});\n\nComboboxOption.classes = classes;\nComboboxOption.displayName = '@mantine/core/ComboboxOption';\n","import { useEffect } from 'react';\nimport { useId } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n CompoundStylesApiProps,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { useComboboxContext } from '../Combobox.context';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxOptionsStylesNames = 'options';\n\nexport interface ComboboxOptionsProps\n extends BoxProps,\n CompoundStylesApiProps,\n ElementProps<'div'> {\n /** Id of the element that should label the options list */\n labelledBy?: string;\n}\n\nexport type ComboboxOptionsFactory = Factory<{\n props: ComboboxOptionsProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxOptionsStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial = {};\n\nexport const ComboboxOptions = factory((_props, ref) => {\n const props = useProps('ComboboxOptions', defaultProps, _props);\n const { classNames, className, style, styles, id, onMouseDown, labelledBy, ...others } = props;\n const ctx = useComboboxContext();\n const _id = useId(id);\n\n useEffect(() => {\n ctx.store.setListId(_id);\n }, [_id]);\n\n return (\n {\n event.preventDefault();\n onMouseDown?.(event);\n }}\n />\n );\n});\n\nComboboxOptions.classes = classes;\nComboboxOptions.displayName = '@mantine/core/ComboboxOptions';\n","import { useMergedRef } from '@mantine/hooks';\nimport { ElementProps, factory, Factory, useProps } from '../../../core';\nimport { Input, InputProps, InputStylesNames } from '../../Input/Input';\nimport { useComboboxContext } from '../Combobox.context';\nimport { useComboboxTargetProps } from '../use-combobox-target-props/use-combobox-target-props';\nimport classes from '../Combobox.module.css';\n\nexport type ComboboxSearchStylesNames = InputStylesNames;\n\nexport interface ComboboxSearchProps extends InputProps, ElementProps<'input', 'size'> {\n /** Determines whether the search input should have `aria-` attribute, `true` by default */\n withAriaAttributes?: boolean;\n\n /** Determines whether the search input should handle keyboard navigation, `true` by default */\n withKeyboardNavigation?: boolean;\n}\n\nexport type ComboboxSearchFactory = Factory<{\n props: ComboboxSearchProps;\n ref: HTMLInputElement;\n stylesNames: ComboboxSearchStylesNames;\n}>;\n\nconst defaultProps: Partial = {\n withAriaAttributes: true,\n withKeyboardNavigation: true,\n};\n\nexport const ComboboxSearch = factory((_props, ref) => {\n const props = useProps('ComboboxSearch', defaultProps, _props);\n const {\n classNames,\n styles,\n unstyled,\n vars,\n withAriaAttributes,\n onKeyDown,\n withKeyboardNavigation,\n size,\n ...others\n } = props;\n\n const ctx = useComboboxContext();\n const _styles = ctx.getStyles('search');\n\n const targetProps = useComboboxTargetProps({\n targetType: 'input',\n withAriaAttributes,\n withKeyboardNavigation,\n withExpandedAttribute: false,\n onKeyDown,\n autoComplete: 'off',\n });\n\n return (\n \n );\n});\n\nComboboxSearch.classes = classes;\nComboboxSearch.displayName = '@mantine/core/ComboboxSearch';\n","import { cloneElement } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { factory, Factory, isElement, useProps } from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useComboboxContext } from '../Combobox.context';\nimport { useComboboxTargetProps } from '../use-combobox-target-props/use-combobox-target-props';\n\nexport interface ComboboxTargetProps {\n /** Target element */\n children: React.ReactNode;\n\n /** Key of the prop that should be used to access element ref */\n refProp?: string;\n\n /** Determines whether component should respond to keyboard events, `true` by default */\n withKeyboardNavigation?: boolean;\n\n /** Determines whether the target should have `aria-` attributes, `true` by default */\n withAriaAttributes?: boolean;\n\n /** Determines whether the target should have `aria-expanded` attribute, `false` by default */\n withExpandedAttribute?: boolean;\n\n /** Determines which events should be handled by the target element.\n * `button` target type handles `Space` and `Enter` keys to toggle dropdown opened state.\n * `input` by default.\n * */\n targetType?: 'button' | 'input';\n\n /** Input autocomplete attribute */\n autoComplete?: string;\n}\n\nconst defaultProps: Partial = {\n refProp: 'ref',\n targetType: 'input',\n withKeyboardNavigation: true,\n withAriaAttributes: true,\n withExpandedAttribute: false,\n autoComplete: 'off',\n};\n\nexport type ComboboxTargetFactory = Factory<{\n props: ComboboxTargetProps;\n ref: HTMLElement;\n compound: true;\n}>;\n\nexport const ComboboxTarget = factory((props, ref) => {\n const {\n children,\n refProp,\n withKeyboardNavigation,\n withAriaAttributes,\n withExpandedAttribute,\n targetType,\n autoComplete,\n ...others\n } = useProps('ComboboxTarget', defaultProps, props);\n\n if (!isElement(children)) {\n throw new Error(\n 'Combobox.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported'\n );\n }\n\n const ctx = useComboboxContext();\n\n const targetProps = useComboboxTargetProps({\n targetType,\n withAriaAttributes,\n withKeyboardNavigation,\n withExpandedAttribute,\n onKeyDown: children.props.onKeyDown,\n autoComplete,\n });\n\n const clonedElement = cloneElement(children, {\n ...targetProps,\n ...others,\n });\n\n return (\n {clonedElement}\n );\n});\n\nComboboxTarget.displayName = '@mantine/core/ComboboxTarget';\n","import {\n createVarsResolver,\n ExtendComponent,\n Factory,\n getFontSize,\n getSize,\n MantineSize,\n MantineThemeComponent,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { __PopoverProps, Popover } from '../Popover';\nimport { ComboboxProvider } from './Combobox.context';\nimport { ComboboxChevron } from './ComboboxChevron/ComboboxChevron';\nimport { ComboboxClearButton } from './ComboboxClearButton/ComboboxClearButton';\nimport { ComboboxDropdown } from './ComboboxDropdown/ComboboxDropdown';\nimport { ComboboxDropdownTarget } from './ComboboxDropdownTarget/ComboboxDropdownTarget';\nimport { ComboboxEmpty } from './ComboboxEmpty/ComboboxEmpty';\nimport { ComboboxEventsTarget } from './ComboboxEventsTarget/ComboboxEventsTarget';\nimport { ComboboxFooter } from './ComboboxFooter/ComboboxFooter';\nimport { ComboboxGroup } from './ComboboxGroup/ComboboxGroup';\nimport { ComboboxHeader } from './ComboboxHeader/ComboboxHeader';\nimport { ComboboxHiddenInput } from './ComboboxHiddenInput/ComboboxHiddenInput';\nimport { ComboboxOption, ComboboxOptionProps } from './ComboboxOption/ComboboxOption';\nimport { ComboboxOptions } from './ComboboxOptions/ComboboxOptions';\nimport { ComboboxSearch } from './ComboboxSearch/ComboboxSearch';\nimport { ComboboxTarget } from './ComboboxTarget/ComboboxTarget';\nimport { ComboboxStore, useCombobox } from './use-combobox/use-combobox';\nimport classes from './Combobox.module.css';\n\nexport type ComboboxStylesNames =\n | 'options'\n | 'dropdown'\n | 'option'\n | 'search'\n | 'empty'\n | 'footer'\n | 'header'\n | 'group'\n | 'groupLabel';\n\nexport type ComboboxCSSVariables = {\n options: '--combobox-option-fz' | '--combobox-option-padding';\n dropdown: '--combobox-padding' | '--combobox-option-fz' | '--combobox-option-padding';\n};\n\nexport interface ComboboxProps extends __PopoverProps, StylesApiProps {\n __staticSelector?: string;\n\n /** Combobox content */\n children?: React.ReactNode;\n\n /** Combobox store, can be used to control combobox state */\n store?: ComboboxStore;\n\n /** Called when item is selected with `Enter` key or by clicking it */\n onOptionSubmit?: (value: string, optionProps: ComboboxOptionProps) => void;\n\n /** Controls items `font-size` and `padding`, `'sm'` by default */\n size?: MantineSize | (string & {});\n\n /** Controls `padding` of the dropdown, `4` by default */\n dropdownPadding?: React.CSSProperties['padding'];\n\n /** Determines whether selection should be reset when option is hovered, `false` by default */\n resetSelectionOnOptionHover?: boolean;\n\n /** Determines whether Combobox value can be changed */\n readOnly?: boolean;\n}\n\nexport type ComboboxFactory = Factory<{\n props: ComboboxProps;\n ref: HTMLDivElement;\n stylesNames: ComboboxStylesNames;\n vars: ComboboxCSSVariables;\n staticComponents: {\n Target: typeof ComboboxTarget;\n Dropdown: typeof ComboboxDropdown;\n Options: typeof ComboboxOptions;\n Option: typeof ComboboxOption;\n Search: typeof ComboboxSearch;\n Empty: typeof ComboboxEmpty;\n Chevron: typeof ComboboxChevron;\n Footer: typeof ComboboxFooter;\n Header: typeof ComboboxHeader;\n EventsTarget: typeof ComboboxEventsTarget;\n DropdownTarget: typeof ComboboxDropdownTarget;\n Group: typeof ComboboxGroup;\n ClearButton: typeof ComboboxClearButton;\n HiddenInput: typeof ComboboxHiddenInput;\n };\n}>;\n\nconst defaultProps: Partial = {\n keepMounted: true,\n withinPortal: true,\n resetSelectionOnOptionHover: false,\n width: 'target',\n transitionProps: { transition: 'fade', duration: 0 },\n};\n\nconst varsResolver = createVarsResolver((_, { size, dropdownPadding }) => ({\n options: {\n '--combobox-option-fz': getFontSize(size),\n '--combobox-option-padding': getSize(size, 'combobox-option-padding'),\n },\n\n dropdown: {\n '--combobox-padding': dropdownPadding === undefined ? undefined : rem(dropdownPadding),\n '--combobox-option-fz': getFontSize(size),\n '--combobox-option-padding': getSize(size, 'combobox-option-padding'),\n },\n}));\n\nexport function Combobox(_props: ComboboxProps) {\n const props = useProps('Combobox', defaultProps, _props);\n const {\n classNames,\n styles,\n unstyled,\n children,\n store: controlledStore,\n vars,\n onOptionSubmit,\n onClose,\n size,\n dropdownPadding,\n resetSelectionOnOptionHover,\n __staticSelector,\n readOnly,\n ...others\n } = props;\n\n const uncontrolledStore = useCombobox();\n const store = controlledStore || uncontrolledStore;\n\n const getStyles = useStyles({\n name: __staticSelector || 'Combobox',\n classes,\n props,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const onDropdownClose = () => {\n onClose?.();\n store.closeDropdown();\n };\n\n return (\n \n \n {children}\n \n \n );\n}\n\nconst extendCombobox = (c: ExtendComponent): MantineThemeComponent => c;\n\nCombobox.extend = extendCombobox;\nCombobox.classes = classes;\nCombobox.displayName = '@mantine/core/Combobox';\nCombobox.Target = ComboboxTarget;\nCombobox.Dropdown = ComboboxDropdown;\nCombobox.Options = ComboboxOptions;\nCombobox.Option = ComboboxOption;\nCombobox.Search = ComboboxSearch;\nCombobox.Empty = ComboboxEmpty;\nCombobox.Chevron = ComboboxChevron;\nCombobox.Footer = ComboboxFooter;\nCombobox.Header = ComboboxHeader;\nCombobox.EventsTarget = ComboboxEventsTarget;\nCombobox.DropdownTarget = ComboboxDropdownTarget;\nCombobox.Group = ComboboxGroup;\nCombobox.ClearButton = ComboboxClearButton;\nCombobox.HiddenInput = ComboboxHiddenInput;\n","import { createSafeContext } from '../../core';\n\nexport interface ScrollAreaContextValue {\n type: 'auto' | 'always' | 'scroll' | 'hover' | 'never';\n scrollHideDelay: number;\n scrollArea: HTMLDivElement | null;\n viewport: HTMLDivElement | null;\n onViewportChange: (viewport: HTMLDivElement | null) => void;\n content: HTMLDivElement | null;\n onContentChange: (content: HTMLDivElement) => void;\n scrollbarX: HTMLDivElement | null;\n onScrollbarXChange: (scrollbar: HTMLDivElement | null) => void;\n scrollbarXEnabled: boolean;\n onScrollbarXEnabledChange: (rendered: boolean) => void;\n scrollbarY: HTMLDivElement | null;\n onScrollbarYChange: (scrollbar: HTMLDivElement | null) => void;\n scrollbarYEnabled: boolean;\n onScrollbarYEnabledChange: (rendered: boolean) => void;\n onCornerWidthChange: (width: number) => void;\n onCornerHeightChange: (height: number) => void;\n}\n\nexport const [ScrollAreaProvider, useScrollAreaContext] = createSafeContext(\n 'ScrollArea.Root component was not found in tree'\n);\n","import { useEffect, useMemo, useRef } from 'react';\n\nexport function useCallbackRef any>(callback: T | undefined): T {\n const callbackRef = useRef(callback);\n\n useEffect(() => {\n callbackRef.current = callback;\n });\n\n return useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n","import { useCallbackRef, useIsomorphicEffect } from '@mantine/hooks';\n\nexport function useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n\n useIsomorphicEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n\n resizeObserver.observe(element);\n\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n\n return undefined;\n }, [element, handleResize]);\n}\n","import { forwardRef, useState } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useResizeObserver } from '../use-resize-observer';\n\ninterface ScrollAreaCornerProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nexport const Corner = forwardRef((props, ref) => {\n const { style, ...others } = props;\n const ctx = useScrollAreaContext();\n const [width, setWidth] = useState(0);\n const [height, setHeight] = useState(0);\n const hasSize = Boolean(width && height);\n\n useResizeObserver(ctx.scrollbarX, () => {\n const h = ctx.scrollbarX?.offsetHeight || 0;\n ctx.onCornerHeightChange(h);\n setHeight(h);\n });\n\n useResizeObserver(ctx.scrollbarY, () => {\n const w = ctx.scrollbarY?.offsetWidth || 0;\n ctx.onCornerWidthChange(w);\n setWidth(w);\n });\n\n return hasSize ?
: null;\n});\n\nexport const ScrollAreaCorner = forwardRef((props, ref) => {\n const ctx = useScrollAreaContext();\n const hasBothScrollbarsVisible = Boolean(ctx.scrollbarX && ctx.scrollbarY);\n const hasCorner = ctx.type !== 'scroll' && hasBothScrollbarsVisible;\n return hasCorner ? : null;\n});\n","import { forwardRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { Box, BoxProps, ElementProps, Factory, useProps } from '../../../core';\nimport { ScrollAreaProvider } from '../ScrollArea.context';\n\nexport type ScrollAreaRootStylesNames =\n | 'root'\n | 'viewport'\n | 'viewportInner'\n | 'scrollbar'\n | 'thumb'\n | 'corner';\n\nexport type ScrollAreaRootCssVariables = {\n root: '--sa-corner-width' | '--sa-corner-height';\n};\n\nexport interface ScrollAreaRootStylesCtx {\n cornerWidth: number;\n cornerHeight: number;\n}\n\nexport interface ScrollAreaRootProps extends BoxProps, ElementProps<'div'> {\n /**\n * Defines scrollbars behavior, `hover` by default\n * - `hover` – scrollbars are visible when mouse is over the scroll area\n * - `scroll` – scrollbars are visible when the scroll area is scrolled\n * - `always` – scrollbars are always visible\n * - `never` – scrollbars are always hidden\n * - `auto` – similar to `overflow: auto` – scrollbars are always visible when the content is overflowing\n * */\n type?: 'auto' | 'always' | 'scroll' | 'hover' | 'never';\n\n /** Axis at which scrollbars must be rendered, `'xy'` by default */\n scrollbars?: 'x' | 'y' | 'xy' | false;\n\n /** Scroll hide delay in ms, applicable only when type is set to `hover` or `scroll`, `1000` by default */\n scrollHideDelay?: number;\n}\n\nexport type ScrollAreaRootFactory = Factory<{\n props: ScrollAreaRootProps;\n ref: HTMLDivElement;\n stylesNames: ScrollAreaRootStylesNames;\n}>;\n\nconst defaultProps: Partial = {\n scrollHideDelay: 1000,\n type: 'hover',\n};\n\nexport const ScrollAreaRoot = forwardRef((_props, ref) => {\n const props = useProps('ScrollAreaRoot', defaultProps, _props);\n const { type, scrollHideDelay, scrollbars, ...others } = props;\n\n const [scrollArea, setScrollArea] = useState(null);\n const [viewport, setViewport] = useState(null);\n const [content, setContent] = useState(null);\n const [scrollbarX, setScrollbarX] = useState(null);\n const [scrollbarY, setScrollbarY] = useState(null);\n const [cornerWidth, setCornerWidth] = useState(0);\n const [cornerHeight, setCornerHeight] = useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = useState(false);\n const rootRef = useMergedRef(ref, (node) => setScrollArea(node));\n\n return (\n \n \n \n );\n});\n\nScrollAreaRoot.displayName = '@mantine/core/ScrollAreaRoot';\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useCallbackRef } from '../use-callback-ref/use-callback-ref';\n\nexport function useDebouncedCallback any>(\n callback: T,\n delay: number\n) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = useRef(0);\n useEffect(() => () => window.clearTimeout(debounceTimerRef.current), []);\n\n return useCallback(\n (...args: Parameters) => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(() => handleCallback(...args), delay);\n },\n [handleCallback, delay]\n );\n}\n","export function getThumbRatio(viewportSize: number, contentSize: number) {\n const ratio = viewportSize / contentSize;\n return Number.isNaN(ratio) ? 0 : ratio;\n}\n","import type { Sizes } from '../ScrollArea.types';\nimport { getThumbRatio } from './get-thumb-ratio';\n\nexport function getThumbSize(sizes: Sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\n","export function linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n","import type { Sizes } from '../ScrollArea.types';\nimport { getThumbSize } from './get-thumb-size';\nimport { linearScale } from './linear-scale';\n\nfunction clamp(value: number, [min, max]: [number, number]): number {\n return Math.min(max, Math.max(min, value));\n}\n\nexport function getThumbOffsetFromScroll(\n scrollPos: number,\n sizes: Sizes,\n dir: 'rtl' | 'ltr' = 'ltr'\n) {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange as [number, number]);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\n","export function isScrollingWithinScrollbarBounds(scrollPos: number, maxScrollPos: number) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n","export function toInt(value?: string) {\n return value ? parseInt(value, 10) : 0;\n}\n","export function composeEventHandlers(\n originalEventHandler?: (event: E) => void,\n ourEventHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) {\n return (event: E) => {\n originalEventHandler?.(event);\n\n if (checkForDefaultPrevented === false || !(event as unknown as Event).defaultPrevented) {\n ourEventHandler?.(event);\n }\n };\n}\n","import { createSafeContext } from '../../../core';\n\nexport interface ScrollbarContextValue {\n hasThumb: boolean;\n scrollbar: HTMLDivElement | null;\n onThumbChange: (thumb: HTMLDivElement | null) => void;\n onThumbPointerUp: () => void;\n onThumbPointerDown: (pointerPos: { x: number; y: number }) => void;\n onThumbPositionChange: () => void;\n}\n\nexport const [ScrollbarProvider, useScrollbarContext] = createSafeContext(\n 'ScrollAreaScrollbar was not found in tree'\n);\n","import { forwardRef, useEffect, useRef, useState } from 'react';\nimport { useCallbackRef, useDebouncedCallback, useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { Sizes } from '../ScrollArea.types';\nimport { useResizeObserver } from '../use-resize-observer';\nimport { composeEventHandlers } from '../utils';\nimport { ScrollbarContextValue, ScrollbarProvider } from './Scrollbar.context';\n\nexport interface ScrollbarPrivateProps {\n sizes: Sizes;\n hasThumb: boolean;\n onThumbChange: ScrollbarContextValue['onThumbChange'];\n onThumbPointerUp: ScrollbarContextValue['onThumbPointerUp'];\n onThumbPointerDown: ScrollbarContextValue['onThumbPointerDown'];\n onThumbPositionChange: ScrollbarContextValue['onThumbPositionChange'];\n onWheelScroll: (event: WheelEvent, maxScrollPos: number) => void;\n onDragScroll: (pointerPos: { x: number; y: number }) => void;\n onResize: () => void;\n}\n\ninterface ScrollbarProps\n extends ScrollbarPrivateProps,\n Omit, 'onResize'> {}\n\nexport const Scrollbar = forwardRef((props, forwardedRef) => {\n const {\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext();\n const [scrollbar, setScrollbar] = useState(null);\n const composeRefs = useMergedRef(forwardedRef, (node) => setScrollbar(node));\n const rectRef = useRef(null);\n const prevWebkitUserSelectRef = useRef('');\n const { viewport } = context;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebouncedCallback(onResize, 10);\n\n const handleDragScroll = (event: React.PointerEvent) => {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n };\n\n useEffect(() => {\n const handleWheel = (event: WheelEvent) => {\n const element = event.target as HTMLElement;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener('wheel', handleWheel, { passive: false });\n return () => document.removeEventListener('wheel', handleWheel, { passive: false } as any);\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n\n useEffect(handleThumbPositionChange, [sizes, handleThumbPositionChange]);\n\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n \n {\n event.preventDefault();\n\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target as HTMLElement;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar!.getBoundingClientRect();\n prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = 'none';\n handleDragScroll(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, handleDragScroll)}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n event.preventDefault();\n\n const element = event.target as HTMLElement;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;\n rectRef.current = null;\n })}\n />\n \n );\n});\n","import { forwardRef, useEffect, useRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAxisProps } from '../ScrollArea.types';\nimport { getThumbSize, isScrollingWithinScrollbarBounds, toInt } from '../utils';\nimport { Scrollbar } from './Scrollbar';\n\nexport const ScrollAreaScrollbarX = forwardRef(\n (props, forwardedRef) => {\n const { sizes, onSizesChange, style, ...others } = props;\n const ctx = useScrollAreaContext();\n const [computedStyle, setComputedStyle] = useState();\n const ref = useRef(null);\n const composeRefs = useMergedRef(forwardedRef, ref, ctx.onScrollbarXChange);\n\n useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n\n return (\n props.onThumbPointerDown(pointerPos.x)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.x)}\n onWheelScroll={(event, maxScrollPos) => {\n if (ctx.viewport) {\n const scrollPos = ctx.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && ctx.viewport && computedStyle) {\n onSizesChange({\n content: ctx.viewport.scrollWidth,\n viewport: ctx.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight),\n },\n });\n }\n }}\n />\n );\n }\n);\n","import { forwardRef, useEffect, useRef, useState } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAxisProps } from '../ScrollArea.types';\nimport { getThumbSize, isScrollingWithinScrollbarBounds, toInt } from '../utils';\nimport { Scrollbar } from './Scrollbar';\n\nexport const ScrollAreaScrollbarY = forwardRef(\n (props, forwardedRef) => {\n const { sizes, onSizesChange, style, ...others } = props;\n const context = useScrollAreaContext();\n const [computedStyle, setComputedStyle] = useState();\n const ref = useRef(null);\n const composeRefs = useMergedRef(forwardedRef, ref, context.onScrollbarYChange);\n\n useEffect(() => {\n if (ref.current) {\n setComputedStyle(window.getComputedStyle(ref.current));\n }\n }, []);\n\n return (\n props.onThumbPointerDown(pointerPos.y)}\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.y)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom),\n },\n });\n }\n }}\n />\n );\n }\n);\n","import { forwardRef, useRef, useState } from 'react';\nimport { useDirection } from '../../../core';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport {\n ScrollAreaScrollbarAxisPrivateProps,\n ScrollAreaScrollbarAxisProps,\n Sizes,\n} from '../ScrollArea.types';\nimport { getScrollPositionFromPointer, getThumbOffsetFromScroll, getThumbRatio } from '../utils';\nimport { ScrollAreaScrollbarX } from './ScrollbarX';\nimport { ScrollAreaScrollbarY } from './ScrollbarY';\n\nexport interface ScrollAreaScrollbarVisibleProps\n extends Omit {\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport const ScrollAreaScrollbarVisible = forwardRef<\n HTMLDivElement,\n ScrollAreaScrollbarVisibleProps\n>((props, forwardedRef) => {\n const { orientation = 'vertical', ...scrollbarProps } = props;\n const { dir } = useDirection();\n const context = useScrollAreaContext();\n const thumbRef = useRef(null);\n const pointerOffsetRef = useRef(0);\n const [sizes, setSizes] = useState({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n });\n\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n\n const commonProps: Omit<\n ScrollAreaScrollbarAxisPrivateProps,\n 'onThumbPositionChange' | 'onDragScroll' | 'onWheelScroll'\n > = {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => {\n thumbRef.current = thumb;\n },\n onThumbPointerUp: () => {\n pointerOffsetRef.current = 0;\n },\n onThumbPointerDown: (pointerPos) => {\n pointerOffsetRef.current = pointerPos;\n },\n };\n\n const getScrollPosition = (pointerPos: number, direction?: 'ltr' | 'rtl') =>\n getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, direction);\n\n if (orientation === 'horizontal') {\n return (\n {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes, dir);\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(pointerPos, dir);\n }\n }}\n />\n );\n }\n\n if (orientation === 'vertical') {\n return (\n {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n if (sizes.scrollbar.size === 0) {\n thumbRef.current.style.opacity = '0';\n } else {\n thumbRef.current.style.opacity = '1';\n }\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) context.viewport.scrollTop = getScrollPosition(pointerPos);\n }}\n />\n );\n }\n\n return null;\n});\n","import type { Sizes } from '../ScrollArea.types';\nimport { getThumbSize } from './get-thumb-size';\nimport { linearScale } from './linear-scale';\n\nexport function getScrollPositionFromPointer(\n pointerPos: number,\n pointerOffset: number,\n sizes: Sizes,\n dir: 'ltr' | 'rtl' = 'ltr'\n) {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === 'ltr' ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange as [number, number]);\n return interpolate(pointerPos);\n}\n","import { forwardRef, useState } from 'react';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useResizeObserver } from '../use-resize-observer';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\nexport interface ScrollAreaScrollbarAutoProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport const ScrollAreaScrollbarAuto = forwardRef(\n (props, ref) => {\n const context = useScrollAreaContext();\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = useState(false);\n const isHorizontal = props.orientation === 'horizontal';\n\n const handleResize = useDebouncedCallback(() => {\n if (context.viewport) {\n const isOverflowX = context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY = context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n\n if (forceMount || visible) {\n return (\n \n );\n }\n\n return null;\n }\n);\n","import { forwardRef, useEffect, useState } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAuto, ScrollAreaScrollbarAutoProps } from './ScrollAreaScrollbarAuto';\n\ninterface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {\n forceMount?: true;\n}\n\nexport const ScrollAreaScrollbarHover = forwardRef(\n (props, ref) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const [visible, setVisible] = useState(false);\n\n useEffect(() => {\n const { scrollArea } = context;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);\n };\n scrollArea.addEventListener('pointerenter', handlePointerEnter);\n scrollArea.addEventListener('pointerleave', handlePointerLeave);\n\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener('pointerenter', handlePointerEnter);\n scrollArea.removeEventListener('pointerleave', handlePointerLeave);\n };\n }\n\n return undefined;\n }, [context.scrollArea, context.scrollHideDelay]);\n\n if (forceMount || visible) {\n return (\n \n );\n }\n\n return null;\n }\n);\n","import { forwardRef, useEffect, useState } from 'react';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { composeEventHandlers } from '../utils';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\ninterface ScrollAreaScrollbarScrollProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport const ScrollAreaScrollbarScroll = forwardRef(\n (props, red) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const isHorizontal = props.orientation === 'horizontal';\n const [state, setState] = useState<'hidden' | 'idle' | 'interacting' | 'scrolling'>('hidden');\n const debounceScrollEnd = useDebouncedCallback(() => setState('idle'), 100);\n\n useEffect(() => {\n if (state === 'idle') {\n const hideTimer = window.setTimeout(() => setState('hidden'), context.scrollHideDelay);\n return () => window.clearTimeout(hideTimer);\n }\n\n return undefined;\n }, [state, context.scrollHideDelay]);\n\n useEffect(() => {\n const { viewport } = context;\n const scrollDirection = isHorizontal ? 'scrollLeft' : 'scrollTop';\n\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n setState('scrolling');\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n\n return undefined;\n }, [context.viewport, isHorizontal, debounceScrollEnd]);\n\n if (forceMount || state !== 'hidden') {\n return (\n setState('interacting'))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () => setState('idle'))}\n />\n );\n }\n\n return null;\n }\n);\n","import { forwardRef, useEffect } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { ScrollAreaScrollbarAuto } from './ScrollAreaScrollbarAuto';\nimport { ScrollAreaScrollbarHover } from './ScrollAreaScrollbarHover';\nimport { ScrollAreaScrollbarScroll } from './ScrollAreaScrollbarScroll';\nimport {\n ScrollAreaScrollbarVisible,\n ScrollAreaScrollbarVisibleProps,\n} from './ScrollAreaScrollbarVisible';\n\ninterface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nexport const ScrollAreaScrollbar = forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext();\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === 'horizontal';\n\n useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n\n return context.type === 'hover' ? (\n \n ) : context.type === 'scroll' ? (\n \n ) : context.type === 'auto' ? (\n \n ) : context.type === 'always' ? (\n \n ) : null;\n }\n);\n","import { forwardRef, useEffect, useRef } from 'react';\nimport { useDebouncedCallback, useMergedRef } from '@mantine/hooks';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useScrollbarContext } from '../ScrollAreaScrollbar/Scrollbar.context';\nimport { addUnlinkedScrollListener, composeEventHandlers } from '../utils';\n\ninterface ThumbProps extends React.ComponentPropsWithoutRef<'div'> {}\n\nexport const Thumb = forwardRef((props, forwardedRef) => {\n const { style, ...others } = props;\n const scrollAreaContext = useScrollAreaContext();\n const scrollbarContext = useScrollbarContext();\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useMergedRef(forwardedRef, (node) => scrollbarContext.onThumbChange(node));\n const removeUnlinkedScrollListenerRef = useRef<() => void>();\n const debounceScrollEnd = useDebouncedCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = undefined;\n }\n }, 100);\n\n useEffect(() => {\n const { viewport } = scrollAreaContext;\n if (viewport) {\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener('scroll', handleScroll);\n return () => viewport.removeEventListener('scroll', handleScroll);\n }\n\n return undefined;\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n\n return (\n {\n const thumb = event.target as HTMLElement;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)}\n />\n );\n});\n\ninterface ScrollAreaThumbProps extends ThumbProps {\n forceMount?: true;\n}\n\nexport const ScrollAreaThumb = forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext();\n\n if (forceMount || scrollbarContext.hasThumb) {\n return ;\n }\n\n return null;\n }\n);\n","export function addUnlinkedScrollListener(node: HTMLElement, handler = () => {}) {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n}\n","import { forwardRef } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport { Box, BoxProps, ElementProps } from '../../../core';\nimport { useScrollAreaContext } from '../ScrollArea.context';\n\nexport interface ScrollAreaViewportProps extends BoxProps, ElementProps<'div'> {}\n\nexport const ScrollAreaViewport = forwardRef(\n ({ children, style, ...others }, ref) => {\n const ctx = useScrollAreaContext();\n const rootRef = useMergedRef(ref, ctx.onViewportChange);\n\n return (\n \n
\n {children}\n
\n \n );\n }\n);\n\nScrollAreaViewport.displayName = '@mantine/core/ScrollAreaViewport';\n","import { useState } from 'react';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { ScrollAreaCorner } from './ScrollAreaCorner/ScrollAreaCorner';\nimport { ScrollAreaRoot } from './ScrollAreaRoot/ScrollAreaRoot';\nimport { ScrollAreaScrollbar } from './ScrollAreaScrollbar/ScrollAreaScrollbar';\nimport { ScrollAreaThumb } from './ScrollAreaThumb/ScrollAreaThumb';\nimport { ScrollAreaViewport } from './ScrollAreaViewport/ScrollAreaViewport';\nimport classes from './ScrollArea.module.css';\n\nexport type ScrollAreaStylesNames = 'root' | 'viewport' | 'scrollbar' | 'thumb' | 'corner';\nexport type ScrollAreaCssVariables = {\n root: '--scrollarea-scrollbar-size';\n};\n\nexport interface ScrollAreaProps\n extends BoxProps,\n StylesApiProps,\n ElementProps<'div'> {\n /** Scrollbar size, any valid CSS value for width/height, numbers are converted to rem, default value is 0.75rem */\n scrollbarSize?: number | string;\n\n /**\n * Defines scrollbars behavior, `hover` by default\n * - `hover` – scrollbars are visible when mouse is over the scroll area\n * - `scroll` – scrollbars are visible when the scroll area is scrolled\n * - `always` – scrollbars are always visible\n * - `never` – scrollbars are always hidden\n * - `auto` – similar to `overflow: auto` – scrollbars are always visible when the content is overflowing\n * */\n type?: 'auto' | 'always' | 'scroll' | 'hover' | 'never';\n\n /** Scroll hide delay in ms, applicable only when type is set to `hover` or `scroll`, `1000` by default */\n scrollHideDelay?: number;\n\n /** Axis at which scrollbars must be rendered, `'xy'` by default */\n scrollbars?: 'x' | 'y' | 'xy' | false;\n\n /** Determines whether scrollbars should be offset with padding on given axis, `false` by default */\n offsetScrollbars?: boolean | 'x' | 'y';\n\n /** Assigns viewport element (scrollable container) ref */\n viewportRef?: React.ForwardedRef;\n\n /** Props passed down to the viewport element */\n viewportProps?: React.ComponentPropsWithRef<'div'>;\n\n /** Called with current position (`x` and `y` coordinates) when viewport is scrolled */\n onScrollPositionChange?: (position: { x: number; y: number }) => void;\n\n /** Called when scrollarea is scrolled all the way to the bottom */\n onBottomReached?: () => void;\n\n /** Called when scrollarea is scrolled all the way to the top */\n onTopReached?: () => void;\n}\n\nexport interface ScrollAreaAutosizeProps extends ScrollAreaProps {}\n\nexport type ScrollAreaFactory = Factory<{\n props: ScrollAreaProps;\n ref: HTMLDivElement;\n stylesNames: ScrollAreaStylesNames;\n vars: ScrollAreaCssVariables;\n staticComponents: {\n Autosize: typeof ScrollAreaAutosize;\n };\n}>;\n\nconst defaultProps: Partial = {\n scrollHideDelay: 1000,\n type: 'hover',\n scrollbars: 'xy',\n};\n\nconst varsResolver = createVarsResolver((_, { scrollbarSize }) => ({\n root: {\n '--scrollarea-scrollbar-size': rem(scrollbarSize),\n },\n}));\n\nexport const ScrollArea = factory((_props, ref) => {\n const props = useProps('ScrollArea', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n scrollbarSize,\n vars,\n type,\n scrollHideDelay,\n viewportProps,\n viewportRef,\n onScrollPositionChange,\n children,\n offsetScrollbars,\n scrollbars,\n onBottomReached,\n onTopReached,\n ...others\n } = props;\n\n const [scrollbarHovered, setScrollbarHovered] = useState(false);\n\n const getStyles = useStyles({\n name: 'ScrollArea',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n return (\n \n {\n viewportProps?.onScroll?.(e);\n onScrollPositionChange?.({ x: e.currentTarget.scrollLeft, y: e.currentTarget.scrollTop });\n const { scrollTop, scrollHeight, clientHeight } = e.currentTarget;\n if (scrollTop - (scrollHeight - clientHeight) === 0) {\n onBottomReached?.();\n }\n if (scrollTop === 0) {\n onTopReached?.();\n }\n }}\n >\n {children}\n \n\n {(scrollbars === 'xy' || scrollbars === 'x') && (\n setScrollbarHovered(true)}\n onMouseLeave={() => setScrollbarHovered(false)}\n >\n \n \n )}\n\n {(scrollbars === 'xy' || scrollbars === 'y') && (\n setScrollbarHovered(true)}\n onMouseLeave={() => setScrollbarHovered(false)}\n >\n \n \n )}\n\n \n \n );\n});\n\nScrollArea.displayName = '@mantine/core/ScrollArea';\n\nexport const ScrollAreaAutosize = factory((props, ref) => {\n const {\n children,\n classNames,\n styles,\n scrollbarSize,\n scrollHideDelay,\n type,\n dir,\n offsetScrollbars,\n viewportRef,\n onScrollPositionChange,\n unstyled,\n variant,\n viewportProps,\n scrollbars,\n style,\n vars,\n onBottomReached,\n ...others\n } = useProps('ScrollAreaAutosize', defaultProps, props);\n\n return (\n \n \n \n {children}\n \n \n \n );\n});\n\nScrollArea.classes = classes;\nScrollAreaAutosize.displayName = '@mantine/core/ScrollAreaAutosize';\nScrollAreaAutosize.classes = classes;\nScrollArea.Autosize = ScrollAreaAutosize;\n","import { ComboboxItem, ComboboxParsedItem } from '../Combobox.types';\nimport { isOptionsGroup } from './is-options-group';\n\nexport interface FilterOptionsInput {\n options: ComboboxParsedItem[];\n search: string;\n limit: number;\n}\n\nexport function defaultOptionsFilter({\n options,\n search,\n limit,\n}: FilterOptionsInput): ComboboxParsedItem[] {\n const parsedSearch = search.trim().toLowerCase();\n const result: ComboboxParsedItem[] = [];\n\n for (let i = 0; i < options.length; i += 1) {\n const item = options[i];\n\n if (result.length === limit) {\n return result;\n }\n\n if (isOptionsGroup(item)) {\n result.push({\n group: item.group,\n items: defaultOptionsFilter({\n options: item.items,\n search,\n limit: limit - result.length,\n }) as ComboboxItem[],\n });\n }\n\n if (!isOptionsGroup(item)) {\n if (item.label.toLowerCase().includes(parsedSearch)) {\n result.push(item);\n }\n }\n }\n\n return result;\n}\n","import { isOptionsGroup } from './is-options-group';\n\nexport function validateOptions(options: any[], valuesSet = new Set()) {\n if (!Array.isArray(options)) {\n return;\n }\n\n for (const option of options) {\n if (isOptionsGroup(option)) {\n validateOptions(option.items, valuesSet);\n } else {\n if (typeof option.value === 'undefined') {\n throw new Error('[@mantine/core] Each option must have value property');\n }\n\n if (typeof option.value !== 'string') {\n throw new Error(\n `[@mantine/core] Option value must be a string, other data formats are not supported, got ${typeof option.value}`\n );\n }\n\n if (valuesSet.has(option.value)) {\n throw new Error(\n `[@mantine/core] Duplicate options are not supported. Option with value \"${option.value}\" was provided more than once`\n );\n }\n\n valuesSet.add(option.value);\n }\n }\n}\n","import cx from 'clsx';\nimport { CheckIcon } from '../../Checkbox';\nimport { ScrollArea, ScrollAreaProps } from '../../ScrollArea/ScrollArea';\nimport { Combobox } from '../Combobox';\nimport { ComboboxItem, ComboboxLikeRenderOptionInput, ComboboxParsedItem } from '../Combobox.types';\nimport { defaultOptionsFilter, FilterOptionsInput } from './default-options-filter';\nimport { isEmptyComboboxData } from './is-empty-combobox-data';\nimport { isOptionsGroup } from './is-options-group';\nimport { validateOptions } from './validate-options';\nimport classes from '../Combobox.module.css';\n\nexport type OptionsFilter = (input: FilterOptionsInput) => ComboboxParsedItem[];\n\nexport interface OptionsGroup {\n group: string;\n items: ComboboxItem[];\n}\n\nexport type OptionsData = (ComboboxItem | OptionsGroup)[];\n\ninterface OptionProps {\n data: ComboboxItem | OptionsGroup;\n withCheckIcon?: boolean;\n value?: string | string[] | null;\n checkIconPosition?: 'left' | 'right';\n unstyled: boolean | undefined;\n renderOption?: (input: ComboboxLikeRenderOptionInput) => React.ReactNode;\n}\n\nfunction isValueChecked(value: string | string[] | undefined | null, optionValue: string) {\n return Array.isArray(value) ? value.includes(optionValue) : value === optionValue;\n}\n\nfunction Option({\n data,\n withCheckIcon,\n value,\n checkIconPosition,\n unstyled,\n renderOption,\n}: OptionProps) {\n if (!isOptionsGroup(data)) {\n const checked = isValueChecked(value, data.value);\n const check = withCheckIcon && checked && (\n \n );\n\n const defaultContent = (\n <>\n {checkIconPosition === 'left' && check}\n {data.label}\n {checkIconPosition === 'right' && check}\n \n );\n\n return (\n \n {typeof renderOption === 'function'\n ? renderOption({ option: data, checked })\n : defaultContent}\n \n );\n }\n\n const options = data.items.map((item) => (\n \n ));\n\n return {options};\n}\n\nexport interface OptionsDropdownProps {\n data: OptionsData;\n filter: OptionsFilter | undefined;\n search: string | undefined;\n limit: number | undefined;\n withScrollArea: boolean | undefined;\n maxDropdownHeight: number | string | undefined;\n hidden?: boolean;\n hiddenWhenEmpty?: boolean;\n filterOptions?: boolean;\n withCheckIcon?: boolean;\n value?: string | string[] | null;\n checkIconPosition?: 'left' | 'right';\n nothingFoundMessage?: React.ReactNode;\n unstyled: boolean | undefined;\n labelId: string | undefined;\n 'aria-label': string | undefined;\n renderOption?: (input: ComboboxLikeRenderOptionInput) => React.ReactNode;\n scrollAreaProps: ScrollAreaProps | undefined;\n}\n\nexport function OptionsDropdown({\n data,\n hidden,\n hiddenWhenEmpty,\n filter,\n search,\n limit,\n maxDropdownHeight,\n withScrollArea = true,\n filterOptions = true,\n withCheckIcon = false,\n value,\n checkIconPosition,\n nothingFoundMessage,\n unstyled,\n labelId,\n renderOption,\n scrollAreaProps,\n 'aria-label': ariaLabel,\n}: OptionsDropdownProps) {\n validateOptions(data);\n\n const shouldFilter = typeof search === 'string';\n const filteredData = shouldFilter\n ? (filter || defaultOptionsFilter)({\n options: data,\n search: filterOptions ? search : '',\n limit: limit ?? Infinity,\n })\n : data;\n const isEmpty = isEmptyComboboxData(filteredData);\n\n const options = filteredData.map((item) => (\n \n ));\n\n return (\n \n );\n}\n","import { ComboboxParsedItem, ComboboxParsedItemGroup } from '../Combobox.types';\n\nexport function isEmptyComboboxData(data: ComboboxParsedItem[]) {\n if (data.length === 0) {\n return true;\n }\n\n for (const item of data) {\n if (!('group' in item)) {\n return false;\n }\n\n if ((item as ComboboxParsedItemGroup).items.length > 0) {\n return false;\n }\n }\n\n return true;\n}\n","import { ComboboxParsedItem, ComboboxParsedItemGroup } from '../Combobox.types';\n\nexport function isOptionsGroup(item: ComboboxParsedItem): item is ComboboxParsedItemGroup {\n return 'group' in item;\n}\n","import { ComboboxItem, ComboboxParsedItem } from '../Combobox.types';\n\nexport function getOptionsLockup(options: ComboboxParsedItem[]): Record {\n return options.reduce>((acc, item) => {\n if ('group' in item) {\n return { ...acc, ...getOptionsLockup(item.items) };\n }\n\n acc[(item as any).value] = item;\n\n return acc;\n }, {});\n}\n\nexport function getLabelsLockup(options: ComboboxParsedItem[]): Record {\n return options.reduce>((acc, item) => {\n if ('group' in item) {\n return { ...acc, ...getLabelsLockup(item.items) };\n }\n\n acc[(item as any).label] = item as any;\n\n return acc;\n }, {});\n}\n","import {\n ComboboxData,\n ComboboxItem,\n ComboboxItemGroup,\n ComboboxParsedItem,\n ComboboxParsedItemGroup,\n ComboboxStringData,\n ComboboxStringItem,\n} from '../Combobox.types';\n\nfunction parseItem(\n item: string | ComboboxItem | ComboboxStringItem | ComboboxItemGroup\n): ComboboxItem | ComboboxParsedItemGroup {\n if (typeof item === 'string') {\n return { value: item, label: item };\n }\n\n if ('value' in item && !('label' in item)) {\n return { value: item.value, label: item.value, disabled: item.disabled };\n }\n\n if (typeof item === 'number') {\n return { value: (item as number).toString(), label: (item as number).toString() };\n }\n\n if ('group' in item) {\n return {\n group: item.group,\n items: item.items.map((i) => parseItem(i) as ComboboxItem),\n };\n }\n\n return item;\n}\n\nexport function getParsedComboboxData(\n data: ComboboxData | ComboboxStringData | undefined\n): ComboboxParsedItem[] {\n if (!data) {\n return [];\n }\n\n return data.map((item) => parseItem(item as ComboboxItem));\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { getFirstIndex, getNextIndex, getPreviousIndex } from './get-index/get-index';\n\nexport type ComboboxDropdownEventSource = 'keyboard' | 'mouse' | 'unknown';\n\nexport interface ComboboxStore {\n /** Current dropdown opened state */\n dropdownOpened: boolean;\n\n /** Opens dropdown */\n openDropdown: (eventSource?: ComboboxDropdownEventSource) => void;\n\n /** Closes dropdown */\n closeDropdown: (eventSource?: ComboboxDropdownEventSource) => void;\n\n /** Toggles dropdown opened state */\n toggleDropdown: (eventSource?: ComboboxDropdownEventSource) => void;\n\n /** Selected option index ref */\n selectedOptionIndex: number;\n\n /** Returns currently selected option index or `-1` if none of the options is selected */\n getSelectedOptionIndex: () => number;\n\n /** Selects `Combobox.Option` by index */\n selectOption: (index: number) => void;\n\n /** Selects first `Combobox.Option` with `active` prop.\n * If there are no such options, the function does nothing.\n */\n selectActiveOption: () => string | null;\n\n /** Selects first `Combobox.Option` that is not disabled.\n * If there are no such options, the function does nothing.\n * */\n selectFirstOption: () => string | null;\n\n /** Selects next `Combobox.Option` that is not disabled.\n * If the current option is the last one, the function selects first option, if `loop` is true.\n */\n selectNextOption: () => string | null;\n\n /** Selects previous `Combobox.Option` that is not disabled.\n * If the current option is the first one, the function selects last option, if `loop` is true.\n * */\n selectPreviousOption: () => string | null;\n\n /** Resets selected option index to -1, removes `data-combobox-selected` from selected option */\n resetSelectedOption: () => void;\n\n /** Triggers `onClick` event of selected option.\n * If there is no selected option, the function does nothing.\n */\n clickSelectedOption: () => void;\n\n /** Updates selected option index to currently selected or active option.\n * The function is required to be used with searchable components to update selected option index\n * when options list changes based on search query.\n */\n updateSelectedOptionIndex: (\n target?: 'active' | 'selected',\n options?: { scrollIntoView?: boolean }\n ) => void;\n\n /** List id, used for `aria-*` attributes */\n listId: string | null;\n\n /** Sets list id */\n setListId: (id: string) => void;\n\n /** Ref of `Combobox.Search` input */\n searchRef: React.MutableRefObject;\n\n /** Moves focus to `Combobox.Search` input */\n focusSearchInput: () => void;\n\n /** Ref of the target element */\n targetRef: React.MutableRefObject;\n\n /** Moves focus to the target element */\n focusTarget: () => void;\n}\n\nexport interface UseComboboxOptions {\n /** Default value for `dropdownOpened`, `false` by default */\n defaultOpened?: boolean;\n\n /** Controlled `dropdownOpened` state */\n opened?: boolean;\n\n /** Called when `dropdownOpened` state changes */\n onOpenedChange?: (opened: boolean) => void;\n\n /** Called when dropdown closes with event source: keyboard, mouse or unknown */\n onDropdownClose?: (eventSource: ComboboxDropdownEventSource) => void;\n\n /** Called when dropdown opens with event source: keyboard, mouse or unknown */\n onDropdownOpen?: (eventSource: ComboboxDropdownEventSource) => void;\n\n /** Determines whether arrow key presses should loop though items (first to last and last to first), `true` by default */\n loop?: boolean;\n\n /** `behavior` passed down to `element.scrollIntoView`, `'instant'` by default */\n scrollBehavior?: ScrollBehavior;\n}\n\nexport function useCombobox({\n defaultOpened,\n opened,\n onOpenedChange,\n onDropdownClose,\n onDropdownOpen,\n loop = true,\n scrollBehavior = 'instant',\n}: UseComboboxOptions = {}): ComboboxStore {\n const [dropdownOpened, setDropdownOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const listId = useRef(null);\n const selectedOptionIndex = useRef(-1);\n const searchRef = useRef(null);\n const targetRef = useRef(null);\n const focusSearchTimeout = useRef(-1);\n const focusTargetTimeout = useRef(-1);\n const selectedIndexUpdateTimeout = useRef(-1);\n\n const openDropdown: ComboboxStore['openDropdown'] = useCallback(\n (eventSource = 'unknown') => {\n if (!dropdownOpened) {\n setDropdownOpened(true);\n onDropdownOpen?.(eventSource);\n }\n },\n [setDropdownOpened, onDropdownOpen, dropdownOpened]\n );\n\n const closeDropdown: ComboboxStore['closeDropdown'] = useCallback(\n (eventSource = 'unknown') => {\n if (dropdownOpened) {\n setDropdownOpened(false);\n onDropdownClose?.(eventSource);\n }\n },\n [setDropdownOpened, onDropdownClose, dropdownOpened]\n );\n\n const toggleDropdown: ComboboxStore['toggleDropdown'] = useCallback(\n (eventSource = 'unknown') => {\n if (dropdownOpened) {\n closeDropdown(eventSource);\n } else {\n openDropdown(eventSource);\n }\n },\n [closeDropdown, openDropdown, dropdownOpened]\n );\n\n const clearSelectedItem = useCallback(() => {\n const selected = document.querySelector(`#${listId.current} [data-combobox-selected]`);\n selected?.removeAttribute('data-combobox-selected');\n selected?.removeAttribute('aria-selected');\n }, []);\n\n const selectOption = useCallback(\n (index: number) => {\n const list = document.getElementById(listId.current!);\n const items = list?.querySelectorAll('[data-combobox-option]');\n\n if (!items) {\n return null;\n }\n\n const nextIndex = index >= items!.length ? 0 : index < 0 ? items!.length - 1 : index;\n selectedOptionIndex.current = nextIndex;\n\n if (items?.[nextIndex] && !items[nextIndex].hasAttribute('data-combobox-disabled')) {\n clearSelectedItem();\n items[nextIndex].setAttribute('data-combobox-selected', 'true');\n items[nextIndex].setAttribute('aria-selected', 'true');\n items[nextIndex].scrollIntoView({ block: 'nearest', behavior: scrollBehavior });\n return items[nextIndex].id;\n }\n\n return null;\n },\n [scrollBehavior, clearSelectedItem]\n );\n\n const selectActiveOption = useCallback(() => {\n const activeOption = document.querySelector(\n `#${listId.current} [data-combobox-active]`\n );\n\n if (activeOption) {\n const items = document.querySelectorAll(\n `#${listId.current} [data-combobox-option]`\n );\n const index = Array.from(items).findIndex((option) => option === activeOption);\n return selectOption(index);\n }\n\n return selectOption(0);\n }, [selectOption]);\n\n const selectNextOption = useCallback(\n () =>\n selectOption(\n getNextIndex(\n selectedOptionIndex.current,\n document.querySelectorAll(`#${listId.current} [data-combobox-option]`),\n loop\n )\n ),\n [selectOption, loop]\n );\n\n const selectPreviousOption = useCallback(\n () =>\n selectOption(\n getPreviousIndex(\n selectedOptionIndex.current,\n document.querySelectorAll(`#${listId.current} [data-combobox-option]`),\n loop\n )\n ),\n [selectOption, loop]\n );\n\n const selectFirstOption = useCallback(\n () =>\n selectOption(\n getFirstIndex(\n document.querySelectorAll(`#${listId.current} [data-combobox-option]`)\n )\n ),\n [selectOption]\n );\n\n const updateSelectedOptionIndex = useCallback(\n (target: 'active' | 'selected' = 'selected', options?: { scrollIntoView?: boolean }) => {\n selectedIndexUpdateTimeout.current = window.setTimeout(() => {\n const items = document.querySelectorAll(\n `#${listId.current} [data-combobox-option]`\n );\n const index = Array.from(items).findIndex((option) =>\n option.hasAttribute(`data-combobox-${target}`)\n );\n\n selectedOptionIndex.current = index;\n\n if (options?.scrollIntoView) {\n items[index]?.scrollIntoView({ block: 'nearest', behavior: scrollBehavior });\n }\n }, 0);\n },\n []\n );\n\n const resetSelectedOption = useCallback(() => {\n selectedOptionIndex.current = -1;\n clearSelectedItem();\n }, [clearSelectedItem]);\n\n const clickSelectedOption = useCallback(() => {\n const items = document.querySelectorAll(\n `#${listId.current} [data-combobox-option]`\n );\n const item = items?.[selectedOptionIndex.current];\n item?.click();\n }, []);\n\n const setListId = useCallback((id: string) => {\n listId.current = id;\n }, []);\n\n const focusSearchInput = useCallback(() => {\n focusSearchTimeout.current = window.setTimeout(() => searchRef.current!.focus(), 0);\n }, []);\n\n const focusTarget = useCallback(() => {\n focusTargetTimeout.current = window.setTimeout(() => targetRef.current!.focus(), 0);\n }, []);\n\n const getSelectedOptionIndex = useCallback(() => selectedOptionIndex.current, []);\n\n useEffect(\n () => () => {\n window.clearTimeout(focusSearchTimeout.current);\n window.clearTimeout(focusTargetTimeout.current);\n window.clearTimeout(selectedIndexUpdateTimeout.current);\n },\n []\n );\n\n return {\n dropdownOpened,\n openDropdown,\n closeDropdown,\n toggleDropdown,\n\n selectedOptionIndex: selectedOptionIndex.current,\n getSelectedOptionIndex,\n selectOption,\n selectFirstOption,\n selectActiveOption,\n selectNextOption,\n selectPreviousOption,\n resetSelectedOption,\n updateSelectedOptionIndex,\n\n listId: listId.current,\n setListId,\n clickSelectedOption,\n\n searchRef,\n focusSearchInput,\n\n targetRef,\n focusTarget,\n };\n}\n","export function getPreviousIndex(\n currentIndex: number,\n elements: NodeListOf | HTMLDivElement[],\n loop: boolean\n) {\n for (let i = currentIndex - 1; i >= 0; i -= 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n\n if (loop) {\n for (let i = elements.length - 1; i > -1; i -= 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n }\n\n return currentIndex;\n}\n\nexport function getNextIndex(\n currentIndex: number,\n elements: NodeListOf | HTMLDivElement[],\n loop: boolean\n) {\n for (let i = currentIndex + 1; i < elements.length; i += 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n\n if (loop) {\n for (let i = 0; i < elements.length; i += 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n }\n\n return currentIndex;\n}\n\nexport function getFirstIndex(elements: NodeListOf | HTMLDivElement[]) {\n for (let i = 0; i < elements.length; i += 1) {\n if (!elements[i].hasAttribute('data-combobox-disabled')) {\n return i;\n }\n }\n\n return -1;\n}\n","import {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getFontSize,\n MantineSize,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport { useInputWrapperContext } from '../InputWrapper.context';\nimport classes from '../Input.module.css';\n\nexport type InputDescriptionStylesNames = 'description';\nexport type InputDescriptionCssVariables = {\n description: '--input-description-size';\n};\n\nexport interface InputDescriptionProps\n extends BoxProps,\n StylesApiProps,\n ElementProps<'div'> {\n __staticSelector?: string;\n __inheritStyles?: boolean;\n\n /** Controls description `font-size`, `'sm'` by default */\n size?: MantineSize | (string & {});\n}\n\nexport type InputDescriptionFactory = Factory<{\n props: InputDescriptionProps;\n ref: HTMLParagraphElement;\n stylesNames: InputDescriptionStylesNames;\n vars: InputDescriptionCssVariables;\n}>;\n\nconst defaultProps: Partial = {};\n\nconst varsResolver = createVarsResolver((_, { size }) => ({\n description: {\n '--input-description-size':\n size === undefined ? undefined : `calc(${getFontSize(size)} - ${rem(2)})`,\n },\n}));\n\nexport const InputDescription = factory((_props, ref) => {\n const props = useProps('InputDescription', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n __staticSelector,\n __inheritStyles = true,\n variant,\n ...others\n } = useProps('InputDescription', defaultProps, props);\n const ctx = useInputWrapperContext();\n\n const _getStyles = useStyles({\n name: ['InputWrapper', __staticSelector],\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n rootSelector: 'description',\n vars,\n varsResolver,\n });\n\n const getStyles = (__inheritStyles && ctx?.getStyles) || _getStyles;\n\n return (\n \n );\n});\n\nInputDescription.classes = classes;\nInputDescription.displayName = '@mantine/core/InputDescription';\n","import {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getFontSize,\n MantineSize,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport { useInputWrapperContext } from '../InputWrapper.context';\nimport classes from '../Input.module.css';\n\nexport type InputErrorStylesNames = 'error';\nexport type InputErrorCssVariables = {\n error: '--input-error-size';\n};\n\nexport interface InputErrorProps\n extends BoxProps,\n StylesApiProps,\n ElementProps<'div'> {\n __staticSelector?: string;\n __inheritStyles?: boolean;\n\n /** Controls error `font-size`, `'sm'` by default */\n size?: MantineSize | (string & {});\n}\n\nexport type InputErrorFactory = Factory<{\n props: InputErrorProps;\n ref: HTMLParagraphElement;\n stylesNames: InputErrorStylesNames;\n vars: InputErrorCssVariables;\n}>;\n\nconst defaultProps: Partial = {};\n\nconst varsResolver = createVarsResolver((_, { size }) => ({\n error: {\n '--input-error-size': size === undefined ? undefined : `calc(${getFontSize(size)} - ${rem(2)})`,\n },\n}));\n\nexport const InputError = factory((_props, ref) => {\n const props = useProps('InputError', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n __staticSelector,\n __inheritStyles = true,\n variant,\n ...others\n } = props;\n\n const _getStyles = useStyles({\n name: ['InputWrapper', __staticSelector],\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n rootSelector: 'error',\n vars,\n varsResolver,\n });\n\n const ctx = useInputWrapperContext();\n const getStyles = (__inheritStyles && ctx?.getStyles) || _getStyles;\n\n return (\n \n );\n});\n\nInputError.classes = classes;\nInputError.displayName = '@mantine/core/InputError';\n","import {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getFontSize,\n MantineSize,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport { useInputWrapperContext } from '../InputWrapper.context';\nimport classes from '../Input.module.css';\n\nexport type InputLabelStylesNames = 'label' | 'required';\nexport type InputLabelCssVariables = {\n label: '--input-asterisk-color' | '--input-label-size';\n};\n\nexport interface InputLabelProps\n extends BoxProps,\n StylesApiProps,\n ElementProps<'label'> {\n __staticSelector?: string;\n\n /** Determines whether the required asterisk should be displayed */\n required?: boolean;\n\n /** Controls label `font-size`, `'sm'` by default */\n size?: MantineSize | (string & {});\n\n /** Root element of the label, `'label'` by default */\n labelElement?: 'label' | 'div';\n}\n\nexport type InputLabelFactory = Factory<{\n props: InputLabelProps;\n ref: HTMLLabelElement;\n stylesNames: InputLabelStylesNames;\n vars: InputLabelCssVariables;\n}>;\n\nconst defaultProps: Partial = {\n labelElement: 'label',\n};\n\nconst varsResolver = createVarsResolver((_, { size }) => ({\n label: {\n '--input-label-size': getFontSize(size),\n '--input-asterisk-color': undefined,\n },\n}));\n\nexport const InputLabel = factory((_props, ref) => {\n const props = useProps('InputLabel', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n labelElement,\n size,\n required,\n htmlFor,\n onMouseDown,\n children,\n __staticSelector,\n variant,\n mod,\n ...others\n } = useProps('InputLabel', defaultProps, props);\n\n const _getStyles = useStyles({\n name: ['InputWrapper', __staticSelector],\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n rootSelector: 'label',\n vars,\n varsResolver,\n });\n\n const ctx = useInputWrapperContext();\n const getStyles = ctx?.getStyles || _getStyles;\n\n return (\n {\n onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) {\n event.preventDefault();\n }\n }}\n {...others}\n >\n {children}\n {required && (\n \n {' *'}\n \n )}\n \n );\n});\n\nInputLabel.classes = classes;\nInputLabel.displayName = '@mantine/core/InputLabel';\n","import {\n Box,\n BoxProps,\n ElementProps,\n factory,\n Factory,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport classes from '../Input.module.css';\n\nexport type InputPlaceholderStylesNames = 'placeholder';\n\nexport interface InputPlaceholderProps\n extends BoxProps,\n StylesApiProps,\n ElementProps<'span'> {\n __staticSelector?: string;\n\n /** If set, the placeholder will have error styles, `false` by default */\n error?: React.ReactNode;\n}\n\nexport type InputPlaceholderFactory = Factory<{\n props: InputPlaceholderProps;\n ref: HTMLSpanElement;\n stylesNames: InputPlaceholderStylesNames;\n}>;\n\nconst defaultProps: Partial = {};\n\nexport const InputPlaceholder = factory((_props, ref) => {\n const props = useProps('InputPlaceholder', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n __staticSelector,\n variant,\n error,\n mod,\n ...others\n } = useProps('InputPlaceholder', defaultProps, props);\n\n const getStyles = useStyles({\n name: ['InputPlaceholder', __staticSelector],\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n rootSelector: 'placeholder',\n });\n\n return (\n \n );\n});\n\nInputPlaceholder.classes = classes;\nInputPlaceholder.displayName = '@mantine/core/InputPlaceholder';\n","export function getInputOffsets(\n inputWrapperOrder: ('label' | 'input' | 'description' | 'error')[],\n { hasDescription, hasError }: { hasDescription: boolean; hasError: boolean }\n) {\n const inputIndex = inputWrapperOrder.findIndex((part) => part === 'input');\n const aboveInput = inputWrapperOrder.slice(0, inputIndex);\n const belowInput = inputWrapperOrder.slice(inputIndex + 1);\n const offsetTop =\n (hasDescription && aboveInput.includes('description')) ||\n (hasError && aboveInput.includes('error'));\n const offsetBottom =\n (hasDescription && belowInput.includes('description')) ||\n (hasError && belowInput.includes('error'));\n return { offsetBottom, offsetTop };\n}\n","import { Fragment } from 'react';\nimport { useId } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n createVarsResolver,\n ElementProps,\n factory,\n Factory,\n getFontSize,\n MantineSize,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../../core';\nimport {\n InputDescription,\n InputDescriptionCssVariables,\n InputDescriptionStylesNames,\n} from '../InputDescription/InputDescription';\nimport {\n InputError,\n InputErrorCssVariables,\n InputErrorStylesNames,\n} from '../InputError/InputError';\nimport {\n InputLabel,\n InputLabelCssVariables,\n InputLabelStylesNames,\n} from '../InputLabel/InputLabel';\nimport { InputWrapperProvider } from '../InputWrapper.context';\nimport { getInputOffsets } from './get-input-offsets/get-input-offsets';\nimport classes from '../Input.module.css';\n\nexport type InputWrapperCssVariables = InputLabelCssVariables &\n InputErrorCssVariables &\n InputDescriptionCssVariables;\n\nexport type InputWrapperStylesNames =\n | 'root'\n | InputLabelStylesNames\n | InputDescriptionStylesNames\n | InputErrorStylesNames;\n\nexport interface __InputWrapperProps {\n /** Contents of `Input.Label` component. If not set, label is not rendered. */\n label?: React.ReactNode;\n\n /** Contents of `Input.Description` component. If not set, description is not rendered. */\n description?: React.ReactNode;\n\n /** Contents of `Input.Error` component. If not set, error is not rendered. */\n error?: React.ReactNode;\n\n /** Adds required attribute to the input and a red asterisk on the right side of label, `false` by default */\n required?: boolean;\n\n /** Determines whether the required asterisk should be displayed. Overrides `required` prop. Does not add required attribute to the input. `false` by default */\n withAsterisk?: boolean;\n\n /** Props passed down to the `Input.Label` component */\n labelProps?: Record;\n\n /** Props passed down to the `Input.Description` component */\n descriptionProps?: Record;\n\n /** Props passed down to the `Input.Error` component */\n errorProps?: Record;\n\n /** Input container component, `React.Fragment` by default */\n inputContainer?: (children: React.ReactNode) => React.ReactNode;\n\n /** Controls order of the elements, `['label', 'description', 'input', 'error']` by default */\n inputWrapperOrder?: ('label' | 'input' | 'description' | 'error')[];\n}\n\nexport interface InputWrapperProps\n extends __InputWrapperProps,\n BoxProps,\n StylesApiProps,\n ElementProps<'div'> {\n __staticSelector?: string;\n\n /** Props passed to Styles API context, replaces Input.Wrapper props */\n __stylesApiProps?: Record;\n\n /** Static id used as base to generate `aria-` attributes, by default generates random id */\n id?: string;\n\n /** Controls size of `Input.Label`, `Input.Description` and `Input.Error` components */\n size?: MantineSize | (string & {});\n\n /** `Input.Label` root element, `'label'` by default */\n labelElement?: 'label' | 'div';\n}\n\nexport type InputWrapperFactory = Factory<{\n props: InputWrapperProps;\n ref: HTMLDivElement;\n stylesNames: InputWrapperStylesNames;\n vars: InputWrapperCssVariables;\n}>;\n\nconst defaultProps: Partial = {\n labelElement: 'label',\n inputContainer: (children) => children,\n inputWrapperOrder: ['label', 'description', 'input', 'error'],\n};\n\nconst varsResolver = createVarsResolver((_, { size }) => ({\n label: {\n '--input-label-size': getFontSize(size),\n '--input-asterisk-color': undefined,\n },\n\n error: {\n '--input-error-size': size === undefined ? undefined : `calc(${getFontSize(size)} - ${rem(2)})`,\n },\n\n description: {\n '--input-description-size':\n size === undefined ? undefined : `calc(${getFontSize(size)} - ${rem(2)})`,\n },\n}));\n\nexport const InputWrapper = factory((_props, ref) => {\n const props = useProps('InputWrapper', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n size,\n variant,\n __staticSelector,\n inputContainer,\n inputWrapperOrder,\n label,\n error,\n description,\n labelProps,\n descriptionProps,\n errorProps,\n labelElement,\n children,\n withAsterisk,\n id,\n required,\n __stylesApiProps,\n mod,\n ...others\n } = props;\n\n const getStyles = useStyles({\n name: ['InputWrapper', __staticSelector],\n props: __stylesApiProps || props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const sharedProps = {\n size,\n variant,\n __staticSelector,\n };\n\n const idBase = useId(id);\n const isRequired = typeof withAsterisk === 'boolean' ? withAsterisk : required;\n const errorId = errorProps?.id || `${idBase}-error`;\n const descriptionId = descriptionProps?.id || `${idBase}-description`;\n const inputId = idBase;\n const hasError = !!error && typeof error !== 'boolean';\n const hasDescription = !!description;\n const _describedBy = `${hasError ? errorId : ''} ${hasDescription ? descriptionId : ''}`;\n const describedBy = _describedBy.trim().length > 0 ? _describedBy.trim() : undefined;\n const labelId = labelProps?.id || `${idBase}-label`;\n\n const _label = label && (\n \n {label}\n \n );\n\n const _description = hasDescription && (\n \n {description}\n \n );\n\n const _input = {inputContainer!(children)};\n\n const _error = hasError && (\n \n {error}\n \n );\n\n const content = inputWrapperOrder!.map((part) => {\n switch (part) {\n case 'label':\n return _label;\n case 'input':\n return _input;\n case 'description':\n return _description;\n case 'error':\n return _error;\n default:\n return null;\n }\n });\n\n return (\n \n \n {content}\n \n \n );\n});\n\nInputWrapper.classes = classes;\nInputWrapper.displayName = '@mantine/core/InputWrapper';\n","import {\n Box,\n BoxProps,\n createVarsResolver,\n extractStyleProps,\n getFontSize,\n getRadius,\n getSize,\n MantineRadius,\n MantineSize,\n polymorphicFactory,\n PolymorphicFactory,\n rem,\n StylesApiProps,\n useProps,\n useStyles,\n} from '../../core';\nimport { InputDescription } from './InputDescription/InputDescription';\nimport { InputError } from './InputError/InputError';\nimport { InputLabel } from './InputLabel/InputLabel';\nimport { InputPlaceholder } from './InputPlaceholder/InputPlaceholder';\nimport { useInputWrapperContext } from './InputWrapper.context';\nimport {\n __InputWrapperProps,\n InputWrapper,\n InputWrapperStylesNames,\n} from './InputWrapper/InputWrapper';\nimport classes from './Input.module.css';\n\nexport interface __BaseInputProps extends __InputWrapperProps, Omit<__InputProps, 'wrapperProps'> {\n /** Props passed down to the root element */\n wrapperProps?: Record;\n}\n\nexport type __InputStylesNames = InputStylesNames | InputWrapperStylesNames;\n\nexport type InputStylesNames = 'input' | 'wrapper' | 'section';\nexport type InputVariant = 'default' | 'filled' | 'unstyled';\nexport type InputCssVariables = {\n wrapper:\n | '--input-height'\n | '--input-fz'\n | '--input-radius'\n | '--input-left-section-width'\n | '--input-right-section-width'\n | '--input-left-section-pointer-events'\n | '--input-right-section-pointer-events'\n | '--input-padding-y'\n | '--input-margin-top'\n | '--input-margin-bottom';\n};\n\nexport interface InputStylesCtx {\n offsetTop: boolean | undefined;\n offsetBottom: boolean | undefined;\n}\n\nexport interface __InputProps {\n /** Content section rendered on the left side of the input */\n leftSection?: React.ReactNode;\n\n /** Left section width, used to set `width` of the section and input `padding-left`, by default equals to the input height */\n leftSectionWidth?: React.CSSProperties['width'];\n\n /** Props passed down to the `leftSection` element */\n leftSectionProps?: React.ComponentPropsWithoutRef<'div'>;\n\n /** Sets `pointer-events` styles on the `leftSection` element, `'none'` by default */\n leftSectionPointerEvents?: React.CSSProperties['pointerEvents'];\n\n /** Content section rendered on the right side of the input */\n rightSection?: React.ReactNode;\n\n /** Right section width, used to set `width` of the section and input `padding-right`, by default equals to the input height */\n rightSectionWidth?: React.CSSProperties['width'];\n\n /** Props passed down to the `rightSection` element */\n rightSectionProps?: React.ComponentPropsWithoutRef<'div'>;\n\n /** Sets `pointer-events` styles on the `rightSection` element, `'none'` by default */\n rightSectionPointerEvents?: React.CSSProperties['pointerEvents'];\n\n /** Props passed down to the root element of the `Input` component */\n wrapperProps?: Record;\n\n /** Sets `required` attribute on the `input` element */\n required?: boolean;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem, `theme.defaultRadius` by default */\n radius?: MantineRadius;\n\n /** Sets `disabled` attribute on the `input` element */\n disabled?: boolean;\n\n /** Controls input `height` and horizontal `padding`, `'sm'` by default */\n size?: MantineSize | (string & {});\n\n /** Determines whether the input should have `cursor: pointer` style, `false` by default */\n pointer?: boolean;\n\n /** Determines whether the input should have red border and red text color when the `error` prop is set, `true` by default */\n withErrorStyles?: boolean;\n\n /** `size` prop added to the input element */\n inputSize?: string;\n}\n\nexport interface InputProps extends BoxProps, __InputProps, StylesApiProps {\n __staticSelector?: string;\n\n /** Props passed to Styles API context, replaces `Input.Wrapper` props */\n __stylesApiProps?: Record;\n\n /** Determines whether the input should have error styles and `aria-invalid` attribute */\n error?: React.ReactNode;\n\n /** Determines whether the input can have multiple lines, for example when `component=\"textarea\"`, `false` by default */\n multiline?: boolean;\n\n /** Input element id */\n id?: string;\n\n /** Determines whether `aria-` and other accessibility attributes should be added to the input, `true` by default */\n withAria?: boolean;\n}\n\nexport type InputFactory = PolymorphicFactory<{\n props: InputProps;\n defaultRef: HTMLInputElement;\n defaultComponent: 'input';\n stylesNames: InputStylesNames;\n variant: InputVariant;\n vars: InputCssVariables;\n ctx: InputStylesCtx;\n staticComponents: {\n Label: typeof InputLabel;\n Error: typeof InputError;\n Description: typeof InputDescription;\n Placeholder: typeof InputPlaceholder;\n Wrapper: typeof InputWrapper;\n };\n}>;\n\nconst defaultProps: Partial = {\n variant: 'default',\n leftSectionPointerEvents: 'none',\n rightSectionPointerEvents: 'none',\n withAria: true,\n withErrorStyles: true,\n};\n\nconst varsResolver = createVarsResolver((_, props, ctx) => ({\n wrapper: {\n '--input-margin-top': ctx.offsetTop ? 'calc(var(--mantine-spacing-xs) / 2)' : undefined,\n '--input-margin-bottom': ctx.offsetBottom ? 'calc(var(--mantine-spacing-xs) / 2)' : undefined,\n '--input-height': getSize(props.size, 'input-height'),\n '--input-fz': getFontSize(props.size),\n '--input-radius': props.radius === undefined ? undefined : getRadius(props.radius),\n '--input-left-section-width':\n props.leftSectionWidth !== undefined ? rem(props.leftSectionWidth) : undefined,\n '--input-right-section-width':\n props.rightSectionWidth !== undefined ? rem(props.rightSectionWidth) : undefined,\n '--input-padding-y': props.multiline ? getSize(props.size, 'input-padding-y') : undefined,\n '--input-left-section-pointer-events': props.leftSectionPointerEvents,\n '--input-right-section-pointer-events': props.rightSectionPointerEvents,\n },\n}));\n\nexport const Input = polymorphicFactory((_props, ref) => {\n const props = useProps('Input', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n required,\n __staticSelector,\n __stylesApiProps,\n size,\n wrapperProps,\n error,\n disabled,\n leftSection,\n leftSectionProps,\n leftSectionWidth,\n rightSection,\n rightSectionProps,\n rightSectionWidth,\n rightSectionPointerEvents,\n leftSectionPointerEvents,\n variant,\n vars,\n pointer,\n multiline,\n radius,\n id,\n withAria,\n withErrorStyles,\n mod,\n inputSize,\n ...others\n } = props;\n\n const { styleProps, rest } = extractStyleProps(others);\n const ctx = useInputWrapperContext();\n const stylesCtx: InputStylesCtx = { offsetBottom: ctx?.offsetBottom, offsetTop: ctx?.offsetTop };\n\n const getStyles = useStyles({\n name: ['Input', __staticSelector],\n props: __stylesApiProps || props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n stylesCtx,\n rootSelector: 'wrapper',\n vars,\n varsResolver,\n });\n\n const ariaAttributes = withAria\n ? {\n required,\n disabled,\n 'aria-invalid': !!error,\n 'aria-describedby': ctx?.describedBy,\n id: ctx?.inputId || id,\n }\n : {};\n\n return (\n \n {leftSection && (\n \n {leftSection}\n
\n )}\n\n \n\n {rightSection && (\n \n {rightSection}\n \n )}\n \n );\n});\n\nInput.classes = classes;\nInput.Wrapper = InputWrapper;\nInput.Label = InputLabel;\nInput.Error = InputError;\nInput.Description = InputDescription;\nInput.Placeholder = InputPlaceholder;\nInput.displayName = '@mantine/core/Input';\n","import { createOptionalContext, GetStylesApi } from '../../core';\nimport type { InputWrapperFactory } from './InputWrapper/InputWrapper';\n\ninterface InputWrapperContextValue {\n offsetTop: boolean;\n offsetBottom: boolean;\n describedBy: string | undefined;\n inputId: string | undefined;\n labelId: string | undefined;\n getStyles: GetStylesApi | null;\n}\n\nexport const [InputWrapperProvider, useInputWrapperContext] =\n createOptionalContext({\n offsetBottom: false,\n offsetTop: false,\n describedBy: undefined,\n getStyles: null,\n inputId: undefined,\n labelId: undefined,\n });\n","import { BoxProps, polymorphicFactory, PolymorphicFactory, StylesApiProps } from '../../core';\nimport { __BaseInputProps, __InputStylesNames, Input, InputVariant, useInputProps } from '../Input';\n\nexport interface InputBaseProps\n extends BoxProps,\n __BaseInputProps,\n StylesApiProps {\n __staticSelector?: string;\n __stylesApiProps?: Record;\n\n /** Props passed down to the root element (`Input.Wrapper` component) */\n wrapperProps?: Record;\n\n /** Determines whether the input can have multiple lines, for example when `component=\"textarea\"`, `false` by default */\n multiline?: boolean;\n\n /** Determines whether `aria-` and other accessibility attributes should be added to the input, `true` by default */\n withAria?: boolean;\n}\n\nexport type InputBaseFactory = PolymorphicFactory<{\n props: InputBaseProps;\n defaultRef: HTMLInputElement;\n defaultComponent: 'input';\n stylesNames: __InputStylesNames;\n variant: InputVariant;\n}>;\n\nconst defaultProps: Partial = {\n __staticSelector: 'InputBase',\n withAria: true,\n};\n\nexport const InputBase = polymorphicFactory((props, ref) => {\n const { inputProps, wrapperProps, ...others } = useInputProps('InputBase', defaultProps, props);\n return (\n \n \n \n );\n});\n\nInputBase.classes = { ...Input.classes, ...Input.Wrapper.classes };\nInputBase.displayName = '@mantine/core/InputBase';\n","import { BoxProps, extractStyleProps, StylesApiProps, useProps } from '../../core';\nimport { __BaseInputProps } from './Input';\n\ninterface BaseProps\n extends __BaseInputProps,\n BoxProps,\n StylesApiProps<{ props: any; stylesNames: string }> {\n __staticSelector?: string;\n __stylesApiProps?: Record;\n id?: string;\n}\n\nexport function useInputProps>(\n component: string,\n defaultProps: U,\n _props: T\n) {\n const props = useProps(component, defaultProps, _props);\n const {\n label,\n description,\n error,\n required,\n classNames,\n styles,\n className,\n unstyled,\n __staticSelector,\n __stylesApiProps,\n errorProps,\n labelProps,\n descriptionProps,\n wrapperProps: _wrapperProps,\n id,\n size,\n style,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n variant,\n vars,\n mod,\n ...others\n } = props;\n\n const { styleProps, rest } = extractStyleProps(others);\n\n const wrapperProps = {\n label,\n description,\n error,\n required,\n classNames,\n className,\n __staticSelector,\n __stylesApiProps: __stylesApiProps || props,\n errorProps,\n labelProps,\n descriptionProps,\n unstyled,\n styles,\n size,\n style,\n inputContainer,\n inputWrapperOrder,\n withAsterisk,\n variant,\n id,\n mod,\n ..._wrapperProps,\n };\n\n return {\n ...rest,\n classNames,\n styles,\n unstyled,\n wrapperProps: { ...wrapperProps, ...styleProps } as typeof wrapperProps & BoxProps,\n inputProps: {\n required,\n classNames,\n styles,\n unstyled,\n size,\n __staticSelector,\n __stylesApiProps: __stylesApiProps || props,\n error,\n variant,\n id,\n },\n };\n}\n","import { useEffect, useMemo } from 'react';\nimport { useId, usePrevious, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n ElementProps,\n Factory,\n factory,\n StylesApiProps,\n useProps,\n useResolvedStylesApi,\n} from '../../core';\nimport { __CloseButtonProps } from '../CloseButton';\nimport {\n Combobox,\n ComboboxItem,\n ComboboxLikeProps,\n ComboboxLikeRenderOptionInput,\n ComboboxLikeStylesNames,\n getOptionsLockup,\n getParsedComboboxData,\n OptionsDropdown,\n useCombobox,\n} from '../Combobox';\nimport { __BaseInputProps, __InputStylesNames, InputVariant } from '../Input';\nimport { InputBase } from '../InputBase';\nimport { ScrollAreaProps } from '../ScrollArea';\n\nexport type SelectStylesNames = __InputStylesNames | ComboboxLikeStylesNames;\n\nexport interface SelectProps\n extends BoxProps,\n __BaseInputProps,\n ComboboxLikeProps,\n StylesApiProps,\n ElementProps<'input', 'onChange' | 'size' | 'value' | 'defaultValue'> {\n /** Controlled component value */\n value?: string | null;\n\n /** Uncontrolled component default value */\n defaultValue?: string | null;\n\n /** Called when value changes */\n onChange?: (value: string | null, option: ComboboxItem) => void;\n\n /** Called when the clear button is clicked */\n onClear?: () => void;\n\n /** Determines whether the select should be searchable, `false` by default */\n searchable?: boolean;\n\n /** Determines whether check icon should be displayed near the selected option label, `true` by default */\n withCheckIcon?: boolean;\n\n /** Position of the check icon relative to the option label, `'left'` by default */\n checkIconPosition?: 'left' | 'right';\n\n /** Message displayed when no option matches the current search query while the `searchable` prop is set or there is no data */\n nothingFoundMessage?: React.ReactNode;\n\n /** Controlled search value */\n searchValue?: string;\n\n /** Default search value */\n defaultSearchValue?: string;\n\n /** Called when search changes */\n onSearchChange?: (value: string) => void;\n\n /** Determines whether it should be possible to deselect value by clicking on the selected option, `true` by default */\n allowDeselect?: boolean;\n\n /** Determines whether the clear button should be displayed in the right section when the component has value, `false` by default */\n clearable?: boolean;\n\n /** Props passed down to the clear button */\n clearButtonProps?: __CloseButtonProps & ElementProps<'button'>;\n\n /** Props passed down to the hidden input */\n hiddenInputProps?: Omit, 'value'>;\n\n /** A function to render content of the option, replaces the default content of the option */\n renderOption?: (item: ComboboxLikeRenderOptionInput) => React.ReactNode;\n\n /** Props passed down to the underlying `ScrollArea` component in the dropdown */\n scrollAreaProps?: ScrollAreaProps;\n}\n\nexport type SelectFactory = Factory<{\n props: SelectProps;\n ref: HTMLInputElement;\n stylesNames: SelectStylesNames;\n variant: InputVariant;\n}>;\n\nconst defaultProps: Partial = {\n searchable: false,\n withCheckIcon: true,\n allowDeselect: true,\n checkIconPosition: 'left',\n};\n\nexport const Select = factory((_props, ref) => {\n const props = useProps('Select', defaultProps, _props);\n const {\n classNames,\n styles,\n unstyled,\n vars,\n dropdownOpened,\n defaultDropdownOpened,\n onDropdownClose,\n onDropdownOpen,\n onFocus,\n onBlur,\n onClick,\n onChange,\n data,\n value,\n defaultValue,\n selectFirstOptionOnChange,\n onOptionSubmit,\n comboboxProps,\n readOnly,\n disabled,\n filter,\n limit,\n withScrollArea,\n maxDropdownHeight,\n size,\n searchable,\n rightSection,\n checkIconPosition,\n withCheckIcon,\n nothingFoundMessage,\n name,\n form,\n searchValue,\n defaultSearchValue,\n onSearchChange,\n allowDeselect,\n error,\n rightSectionPointerEvents,\n id,\n clearable,\n clearButtonProps,\n hiddenInputProps,\n renderOption,\n onClear,\n autoComplete,\n scrollAreaProps,\n ...others\n } = props;\n\n const parsedData = useMemo(() => getParsedComboboxData(data), [data]);\n const optionsLockup = useMemo(() => getOptionsLockup(parsedData), [parsedData]);\n const _id = useId(id);\n\n const [_value, setValue, controlled] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n\n const selectedOption = typeof _value === 'string' ? optionsLockup[_value] : undefined;\n const previousSelectedOption = usePrevious(selectedOption);\n\n const [search, setSearch] = useUncontrolled({\n value: searchValue,\n defaultValue: defaultSearchValue,\n finalValue: selectedOption ? selectedOption.label : '',\n onChange: onSearchChange,\n });\n\n const combobox = useCombobox({\n opened: dropdownOpened,\n defaultOpened: defaultDropdownOpened,\n onDropdownOpen: () => {\n onDropdownOpen?.();\n combobox.updateSelectedOptionIndex('active', { scrollIntoView: true });\n },\n onDropdownClose: () => {\n onDropdownClose?.();\n combobox.resetSelectedOption();\n },\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi({\n props,\n styles,\n classNames,\n });\n\n useEffect(() => {\n if (selectFirstOptionOnChange) {\n combobox.selectFirstOption();\n }\n }, [selectFirstOptionOnChange, _value]);\n\n useEffect(() => {\n if (value === null) {\n setSearch('');\n }\n\n if (\n typeof value === 'string' &&\n selectedOption &&\n (previousSelectedOption?.value !== selectedOption.value ||\n previousSelectedOption?.label !== selectedOption.label)\n ) {\n setSearch(selectedOption.label);\n }\n }, [value, selectedOption]);\n\n const clearButton = clearable && !!_value && !disabled && !readOnly && (\n {\n setValue(null, null);\n setSearch('');\n onClear?.();\n }}\n />\n );\n\n return (\n <>\n {\n onOptionSubmit?.(val);\n const optionLockup = allowDeselect\n ? optionsLockup[val].value === _value\n ? null\n : optionsLockup[val]\n : optionsLockup[val];\n\n const nextValue = optionLockup ? optionLockup.value : null;\n\n nextValue !== _value && setValue(nextValue, optionLockup);\n !controlled && setSearch(typeof nextValue === 'string' ? optionLockup?.label || '' : '');\n combobox.closeDropdown();\n }}\n size={size}\n {...comboboxProps}\n >\n \n \n }\n rightSectionPointerEvents={rightSectionPointerEvents || (clearButton ? 'all' : 'none')}\n {...others}\n size={size}\n __staticSelector=\"Select\"\n disabled={disabled}\n readOnly={readOnly || !searchable}\n value={search}\n onChange={(event) => {\n setSearch(event.currentTarget.value);\n combobox.openDropdown();\n selectFirstOptionOnChange && combobox.selectFirstOption();\n }}\n onFocus={(event) => {\n searchable && combobox.openDropdown();\n onFocus?.(event);\n }}\n onBlur={(event) => {\n searchable && combobox.closeDropdown();\n setSearch(_value != null ? optionsLockup[_value]?.label || '' : '');\n onBlur?.(event);\n }}\n onClick={(event) => {\n searchable ? combobox.openDropdown() : combobox.toggleDropdown();\n onClick?.(event);\n }}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n pointer={!searchable}\n error={error}\n />\n \n