@mantine/core 3.6.2 → 3.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/AppShell/Navbar/Navbar.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.js +1 -1
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Avatar/Avatar.js +9 -4
- package/cjs/components/Avatar/Avatar.js.map +1 -1
- package/cjs/components/ColorInput/ColorInput.js +1 -1
- package/cjs/components/ColorInput/ColorInput.js.map +1 -1
- package/cjs/components/Divider/Divider.js.map +1 -1
- package/cjs/components/Image/Image.js +6 -15
- package/cjs/components/Image/Image.js.map +1 -1
- package/cjs/components/Input/Input.js +1 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/JsonInput/JsonInput.js +1 -1
- package/cjs/components/JsonInput/JsonInput.js.map +1 -1
- package/cjs/components/Menu/Menu.js +8 -3
- package/cjs/components/Menu/Menu.js.map +1 -1
- package/cjs/components/Modal/Modal.js +1 -0
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.js +1 -0
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/MultiSelect/MultiSelect.js +3 -6
- package/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
- package/cjs/components/NumberInput/NumberInput.js +21 -13
- package/cjs/components/NumberInput/NumberInput.js.map +1 -1
- package/cjs/components/Progress/Progress.styles.js +2 -1
- package/cjs/components/Progress/Progress.styles.js.map +1 -1
- package/cjs/components/SegmentedControl/SegmentedControl.js +26 -7
- package/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/cjs/components/SegmentedControl/SegmentedControl.styles.js +17 -6
- package/cjs/components/SegmentedControl/SegmentedControl.styles.js.map +1 -1
- package/cjs/components/Select/Select.js +3 -6
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Slider/RangeSlider/RangeSlider.js +17 -5
- package/cjs/components/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/cjs/components/Slider/Slider/Slider.js +14 -4
- package/cjs/components/Slider/Slider/Slider.js.map +1 -1
- package/cjs/components/Tabs/Tabs.js +2 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Text/Text.js +3 -0
- package/cjs/components/Text/Text.js.map +1 -1
- package/cjs/components/Text/Text.styles.js +6 -5
- package/cjs/components/Text/Text.styles.js.map +1 -1
- package/cjs/components/TransferList/RenderList/RenderList.styles.js +0 -2
- package/cjs/components/TransferList/RenderList/RenderList.styles.js.map +1 -1
- package/esm/components/AppShell/Navbar/Navbar.js.map +1 -1
- package/esm/components/Autocomplete/Autocomplete.js +1 -1
- package/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/esm/components/Avatar/Avatar.js +9 -4
- package/esm/components/Avatar/Avatar.js.map +1 -1
- package/esm/components/ColorInput/ColorInput.js +1 -1
- package/esm/components/ColorInput/ColorInput.js.map +1 -1
- package/esm/components/Divider/Divider.js.map +1 -1
- package/esm/components/Image/Image.js +8 -17
- package/esm/components/Image/Image.js.map +1 -1
- package/esm/components/Input/Input.js +1 -1
- package/esm/components/Input/Input.js.map +1 -1
- package/esm/components/JsonInput/JsonInput.js +1 -1
- package/esm/components/JsonInput/JsonInput.js.map +1 -1
- package/esm/components/Menu/Menu.js +8 -3
- package/esm/components/Menu/Menu.js.map +1 -1
- package/esm/components/Modal/Modal.js +1 -0
- package/esm/components/Modal/Modal.js.map +1 -1
- package/esm/components/Modal/Modal.styles.js +1 -0
- package/esm/components/Modal/Modal.styles.js.map +1 -1
- package/esm/components/MultiSelect/MultiSelect.js +3 -6
- package/esm/components/MultiSelect/MultiSelect.js.map +1 -1
- package/esm/components/NumberInput/NumberInput.js +21 -13
- package/esm/components/NumberInput/NumberInput.js.map +1 -1
- package/esm/components/Progress/Progress.styles.js +2 -1
- package/esm/components/Progress/Progress.styles.js.map +1 -1
- package/esm/components/SegmentedControl/SegmentedControl.js +26 -7
- package/esm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/esm/components/SegmentedControl/SegmentedControl.styles.js +17 -6
- package/esm/components/SegmentedControl/SegmentedControl.styles.js.map +1 -1
- package/esm/components/Select/Select.js +3 -6
- package/esm/components/Select/Select.js.map +1 -1
- package/esm/components/Slider/RangeSlider/RangeSlider.js +17 -5
- package/esm/components/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/esm/components/Slider/Slider/Slider.js +14 -4
- package/esm/components/Slider/Slider/Slider.js.map +1 -1
- package/esm/components/Tabs/Tabs.js +2 -1
- package/esm/components/Tabs/Tabs.js.map +1 -1
- package/esm/components/Text/Text.js +3 -0
- package/esm/components/Text/Text.js.map +1 -1
- package/esm/components/Text/Text.styles.js +6 -5
- package/esm/components/Text/Text.styles.js.map +1 -1
- package/esm/components/TransferList/RenderList/RenderList.styles.js +0 -2
- package/esm/components/TransferList/RenderList/RenderList.styles.js.map +1 -1
- package/lib/components/AppShell/Navbar/Navbar.d.ts +1 -1
- package/lib/components/AppShell/Navbar/Navbar.d.ts.map +1 -1
- package/lib/components/Avatar/Avatar.d.ts +2 -0
- package/lib/components/Avatar/Avatar.d.ts.map +1 -1
- package/lib/components/Divider/Divider.d.ts +1 -1
- package/lib/components/Divider/Divider.d.ts.map +1 -1
- package/lib/components/Image/Image.d.ts.map +1 -1
- package/lib/components/Input/Input.d.ts +1 -1
- package/lib/components/Input/Input.d.ts.map +1 -1
- package/lib/components/Menu/Menu.d.ts +2 -0
- package/lib/components/Menu/Menu.d.ts.map +1 -1
- package/lib/components/Modal/Modal.d.ts.map +1 -1
- package/lib/components/Modal/Modal.styles.d.ts +2 -2
- package/lib/components/Modal/Modal.styles.d.ts.map +1 -1
- package/lib/components/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/lib/components/NumberInput/NumberInput.d.ts +8 -1
- package/lib/components/NumberInput/NumberInput.d.ts.map +1 -1
- package/lib/components/PasswordInput/index.d.ts +1 -1
- package/lib/components/PasswordInput/index.d.ts.map +1 -1
- package/lib/components/Progress/Progress.styles.d.ts.map +1 -1
- package/lib/components/SegmentedControl/SegmentedControl.d.ts +4 -0
- package/lib/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/lib/components/SegmentedControl/SegmentedControl.styles.d.ts +3 -2
- package/lib/components/SegmentedControl/SegmentedControl.styles.d.ts.map +1 -1
- package/lib/components/Select/Select.d.ts.map +1 -1
- package/lib/components/Slider/RangeSlider/RangeSlider.d.ts.map +1 -1
- package/lib/components/Slider/Slider/Slider.d.ts +1 -1
- package/lib/components/Slider/Slider/Slider.d.ts.map +1 -1
- package/lib/components/Text/Text.d.ts +3 -1
- package/lib/components/Text/Text.d.ts.map +1 -1
- package/lib/components/Text/Text.styles.d.ts +2 -1
- package/lib/components/Text/Text.styles.d.ts.map +1 -1
- package/lib/components/TransferList/RenderList/RenderList.styles.d.ts.map +1 -1
- package/lib/components/TransferList/index.d.ts +1 -1
- package/lib/components/TransferList/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/lib/components/Drawer/stories/_wrapper.d.ts +0 -4
- package/lib/components/Drawer/stories/_wrapper.d.ts.map +0 -1
- package/lib/components/Popover/stories/_wrapper.d.ts +0 -4
- package/lib/components/Popover/stories/_wrapper.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { useState, forwardRef, useRef } from 'react';\nimport { useUncontrolled, useDidUpdate, useMergedRef, useUuid } from '@mantine/hooks';\nimport { DefaultProps, ClassNames, extractMargins, getDefaultZIndex } from '@mantine/styles';\nimport { InputWrapper, InputWrapperBaseProps, InputWrapperStylesNames } from '../InputWrapper';\nimport { Input, InputBaseProps, InputStylesNames } from '../Input';\nimport { SelectDropdown, SelectDropdownStylesNames } from '../Select/SelectDropdown/SelectDropdown';\nimport { SelectItems } from '../Select/SelectItems/SelectItems';\nimport { DefaultItem } from '../Select/DefaultItem/DefaultItem';\nimport { filterData } from './filter-data/filter-data';\nimport useStyles from './Autocomplete.styles';\nimport { SelectSharedProps } from '../Select/Select';\n\nexport type AutocompleteStylesNames =\n | InputStylesNames\n | InputWrapperStylesNames\n | SelectDropdownStylesNames\n | ClassNames<typeof useStyles>;\n\nexport interface AutocompleteItem {\n value: string;\n [key: string]: any;\n}\n\nexport interface AutocompleteProps\n extends DefaultProps<AutocompleteStylesNames>,\n InputBaseProps,\n InputWrapperBaseProps,\n SelectSharedProps<AutocompleteItem, string>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'value' | 'defaultValue'> {\n /** Called when item from dropdown was selected */\n onItemSubmit?(item: AutocompleteItem): void;\n}\n\nexport function defaultFilter(value: string, item: AutocompleteItem) {\n return item.value.toLowerCase().trim().includes(value.toLowerCase().trim());\n}\n\nexport const Autocomplete = forwardRef<HTMLInputElement, AutocompleteProps>(\n (\n {\n className,\n style,\n sx,\n required = false,\n label,\n id,\n error,\n description,\n size = 'sm',\n shadow = 'sm',\n data,\n limit = 5,\n value,\n defaultValue,\n onChange,\n itemComponent = DefaultItem,\n onItemSubmit,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n transition = 'skew-up',\n transitionDuration = 0,\n initiallyOpened = false,\n transitionTimingFunction,\n wrapperProps,\n classNames,\n styles,\n filter = defaultFilter,\n nothingFound,\n onDropdownClose,\n onDropdownOpen,\n withinPortal,\n switchDirectionOnFlip = false,\n zIndex = getDefaultZIndex('popover'),\n dropdownPosition = 'bottom',\n ...others\n }: AutocompleteProps,\n ref\n ) => {\n const { classes } = useStyles({ size }, { classNames, styles, name: 'Autocomplete' });\n const { margins, rest } = extractMargins(others);\n const [dropdownOpened, _setDropdownOpened] = useState(initiallyOpened);\n const [hovered, setHovered] = useState(-1);\n const [direction, setDirection] = useState<React.CSSProperties['flexDirection']>('column');\n const inputRef = useRef<HTMLInputElement>(null);\n const uuid = useUuid(id);\n const [_value, handleChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n rule: (val) => typeof val === 'string',\n });\n\n const setDropdownOpened = (opened: boolean) => {\n _setDropdownOpened(opened);\n const handler = opened ? onDropdownOpen : onDropdownClose;\n typeof handler === 'function' && handler();\n };\n\n useDidUpdate(() => {\n setHovered(0);\n }, [_value]);\n\n const handleItemClick = (item: AutocompleteItem) => {\n handleChange(item.value);\n typeof onItemSubmit === 'function' && onItemSubmit(item);\n setDropdownOpened(false);\n };\n\n const formattedData = data.map((item) => (typeof item === 'string' ? { value: item } : item));\n const filteredData = filterData({ data: formattedData, value: _value, limit, filter });\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n\n const isColumn = direction === 'column';\n\n const handleNext = () => {\n setHovered((current) => (current < filteredData.length - 1 ? current + 1 : current));\n };\n\n const handlePrevious = () => {\n setHovered((current) => (current > 0 ? current - 1 : current));\n };\n\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n isColumn ? handlePrevious() : handleNext();\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n isColumn ? handleNext() : handlePrevious();\n break;\n }\n\n case 'Enter': {\n if (dropdownOpened) {\n event.preventDefault();\n }\n\n if (filteredData[hovered] && dropdownOpened) {\n handleChange(filteredData[hovered].value);\n typeof onItemSubmit === 'function' && onItemSubmit(filteredData[hovered]);\n setDropdownOpened(false);\n }\n break;\n }\n\n case 'Escape': {\n if (dropdownOpened) {\n event.preventDefault();\n setDropdownOpened(false);\n }\n }\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setDropdownOpened(true);\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setDropdownOpened(false);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n typeof onClick === 'function' && onClick(event);\n setDropdownOpened(true);\n };\n\n const shouldRenderDropdown =\n dropdownOpened && (filteredData.length > 0 || (filteredData.length === 0 && !!nothingFound));\n\n return (\n <InputWrapper\n required={required}\n id={uuid}\n label={label}\n error={error}\n description={description}\n size={size}\n className={className}\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Autocomplete\"\n sx={sx}\n style={style}\n {...margins}\n {...wrapperProps}\n >\n <div\n className={classes.wrapper}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={`${uuid}-items`}\n aria-controls={uuid}\n aria-expanded={shouldRenderDropdown}\n onMouseLeave={() => setHovered(-1)}\n tabIndex={-1}\n >\n <Input<'input'>\n {...rest}\n data-mantine-stop-propagation={dropdownOpened}\n required={required}\n ref={useMergedRef(ref, inputRef)}\n id={uuid}\n type=\"string\"\n invalid={!!error}\n size={size}\n onKeyDown={handleInputKeydown}\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Autocomplete\"\n value={_value}\n onChange={(event) => {\n handleChange(event.currentTarget.value);\n setDropdownOpened(true);\n }}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onClick={handleInputClick}\n autoComplete=\"off\"\n aria-autocomplete=\"list\"\n aria-controls={shouldRenderDropdown ? `${uuid}-items` : null}\n aria-activedescendant={hovered !== -1 ? `${uuid}-${hovered}` : null}\n />\n\n <SelectDropdown\n mounted={shouldRenderDropdown}\n transition={transition}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n uuid={uuid}\n shadow={shadow}\n maxDropdownHeight=\"auto\"\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Autocomplete\"\n direction={direction}\n onDirectionChange={setDirection}\n switchDirectionOnFlip={switchDirectionOnFlip}\n referenceElement={inputRef.current}\n withinPortal={withinPortal}\n zIndex={zIndex}\n dropdownPosition={dropdownPosition}\n >\n <SelectItems\n data={filteredData}\n hovered={hovered}\n classNames={classNames}\n styles={styles}\n uuid={uuid}\n __staticSelector=\"Autocomplete\"\n onItemHover={setHovered}\n onItemSelect={handleItemClick}\n itemComponent={itemComponent}\n size={size}\n nothingFound={nothingFound}\n />\n </SelectDropdown>\n </div>\n </InputWrapper>\n );\n }\n);\n\nAutocomplete.displayName = '@mantine/core/Autocomplete';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","sources":["../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, { useState, forwardRef, useRef } from 'react';\nimport { useUncontrolled, useDidUpdate, useMergedRef, useUuid } from '@mantine/hooks';\nimport { DefaultProps, ClassNames, extractMargins, getDefaultZIndex } from '@mantine/styles';\nimport { InputWrapper, InputWrapperBaseProps, InputWrapperStylesNames } from '../InputWrapper';\nimport { Input, InputBaseProps, InputStylesNames } from '../Input';\nimport { SelectDropdown, SelectDropdownStylesNames } from '../Select/SelectDropdown/SelectDropdown';\nimport { SelectItems } from '../Select/SelectItems/SelectItems';\nimport { DefaultItem } from '../Select/DefaultItem/DefaultItem';\nimport { filterData } from './filter-data/filter-data';\nimport useStyles from './Autocomplete.styles';\nimport { SelectSharedProps } from '../Select/Select';\n\nexport type AutocompleteStylesNames =\n | InputStylesNames\n | InputWrapperStylesNames\n | SelectDropdownStylesNames\n | ClassNames<typeof useStyles>;\n\nexport interface AutocompleteItem {\n value: string;\n [key: string]: any;\n}\n\nexport interface AutocompleteProps\n extends DefaultProps<AutocompleteStylesNames>,\n InputBaseProps,\n InputWrapperBaseProps,\n SelectSharedProps<AutocompleteItem, string>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'value' | 'defaultValue'> {\n /** Called when item from dropdown was selected */\n onItemSubmit?(item: AutocompleteItem): void;\n}\n\nexport function defaultFilter(value: string, item: AutocompleteItem) {\n return item.value.toLowerCase().trim().includes(value.toLowerCase().trim());\n}\n\nexport const Autocomplete = forwardRef<HTMLInputElement, AutocompleteProps>(\n (\n {\n className,\n style,\n sx,\n required = false,\n label,\n id,\n error,\n description,\n size = 'sm',\n shadow = 'sm',\n data,\n limit = 5,\n value,\n defaultValue,\n onChange,\n itemComponent = DefaultItem,\n onItemSubmit,\n onKeyDown,\n onFocus,\n onBlur,\n onClick,\n transition = 'skew-up',\n transitionDuration = 0,\n initiallyOpened = false,\n transitionTimingFunction,\n wrapperProps,\n classNames,\n styles,\n filter = defaultFilter,\n nothingFound,\n onDropdownClose,\n onDropdownOpen,\n withinPortal,\n switchDirectionOnFlip = false,\n zIndex = getDefaultZIndex('popover'),\n dropdownPosition = 'bottom',\n ...others\n }: AutocompleteProps,\n ref\n ) => {\n const { classes } = useStyles({ size }, { classNames, styles, name: 'Autocomplete' });\n const { margins, rest } = extractMargins(others);\n const [dropdownOpened, _setDropdownOpened] = useState(initiallyOpened);\n const [hovered, setHovered] = useState(-1);\n const [direction, setDirection] = useState<React.CSSProperties['flexDirection']>('column');\n const inputRef = useRef<HTMLInputElement>(null);\n const uuid = useUuid(id);\n const [_value, handleChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n rule: (val) => typeof val === 'string',\n });\n\n const setDropdownOpened = (opened: boolean) => {\n _setDropdownOpened(opened);\n const handler = opened ? onDropdownOpen : onDropdownClose;\n typeof handler === 'function' && handler();\n };\n\n useDidUpdate(() => {\n setHovered(0);\n }, [_value]);\n\n const handleItemClick = (item: AutocompleteItem) => {\n handleChange(item.value);\n typeof onItemSubmit === 'function' && onItemSubmit(item);\n setDropdownOpened(false);\n };\n\n const formattedData = data.map((item) => (typeof item === 'string' ? { value: item } : item));\n const filteredData = filterData({ data: formattedData, value: _value, limit, filter });\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n\n const isColumn = direction === 'column';\n\n const handleNext = () => {\n setHovered((current) => (current < filteredData.length - 1 ? current + 1 : current));\n };\n\n const handlePrevious = () => {\n setHovered((current) => (current > 0 ? current - 1 : current));\n };\n\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n isColumn ? handlePrevious() : handleNext();\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n isColumn ? handleNext() : handlePrevious();\n break;\n }\n\n case 'Enter': {\n if (dropdownOpened) {\n event.preventDefault();\n }\n\n if (filteredData[hovered] && dropdownOpened) {\n handleChange(filteredData[hovered].value);\n typeof onItemSubmit === 'function' && onItemSubmit(filteredData[hovered]);\n setDropdownOpened(false);\n }\n break;\n }\n\n case 'Escape': {\n if (dropdownOpened) {\n event.preventDefault();\n setDropdownOpened(false);\n }\n }\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setDropdownOpened(true);\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setDropdownOpened(false);\n };\n\n const handleInputClick = (event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n typeof onClick === 'function' && onClick(event);\n setDropdownOpened(true);\n };\n\n const shouldRenderDropdown =\n dropdownOpened && (filteredData.length > 0 || (filteredData.length === 0 && !!nothingFound));\n\n return (\n <InputWrapper\n required={required}\n id={uuid}\n label={label}\n error={error}\n description={description}\n size={size}\n className={className}\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Autocomplete\"\n sx={sx}\n style={style}\n {...margins}\n {...wrapperProps}\n >\n <div\n className={classes.wrapper}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={`${uuid}-items`}\n aria-controls={uuid}\n aria-expanded={shouldRenderDropdown}\n onMouseLeave={() => setHovered(-1)}\n tabIndex={-1}\n >\n <Input<'input'>\n {...rest}\n data-mantine-stop-propagation={dropdownOpened}\n required={required}\n ref={useMergedRef(ref, inputRef)}\n id={uuid}\n type=\"string\"\n invalid={!!error}\n size={size}\n onKeyDown={handleInputKeydown}\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Autocomplete\"\n value={_value}\n onChange={(event) => {\n handleChange(event.currentTarget.value);\n setDropdownOpened(true);\n }}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onClick={handleInputClick}\n autoComplete=\"nope\"\n aria-autocomplete=\"list\"\n aria-controls={shouldRenderDropdown ? `${uuid}-items` : null}\n aria-activedescendant={hovered !== -1 ? `${uuid}-${hovered}` : null}\n />\n\n <SelectDropdown\n mounted={shouldRenderDropdown}\n transition={transition}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n uuid={uuid}\n shadow={shadow}\n maxDropdownHeight=\"auto\"\n classNames={classNames}\n styles={styles}\n __staticSelector=\"Autocomplete\"\n direction={direction}\n onDirectionChange={setDirection}\n switchDirectionOnFlip={switchDirectionOnFlip}\n referenceElement={inputRef.current}\n withinPortal={withinPortal}\n zIndex={zIndex}\n dropdownPosition={dropdownPosition}\n >\n <SelectItems\n data={filteredData}\n hovered={hovered}\n classNames={classNames}\n styles={styles}\n uuid={uuid}\n __staticSelector=\"Autocomplete\"\n onItemHover={setHovered}\n onItemSelect={handleItemClick}\n itemComponent={itemComponent}\n size={size}\n nothingFound={nothingFound}\n />\n </SelectDropdown>\n </div>\n </InputWrapper>\n );\n }\n);\n\nAutocomplete.displayName = '@mantine/core/Autocomplete';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ import useStyles from './Avatar.styles.js';
|
|
|
4
4
|
import { Box } from '../Box/Box.js';
|
|
5
5
|
|
|
6
6
|
var __defProp = Object.defineProperty;
|
|
7
|
+
var __defProps = Object.defineProperties;
|
|
8
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7
9
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
10
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
11
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -19,6 +21,7 @@ var __spreadValues = (a, b) => {
|
|
|
19
21
|
}
|
|
20
22
|
return a;
|
|
21
23
|
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
22
25
|
var __objRest = (source, exclude) => {
|
|
23
26
|
var target = {};
|
|
24
27
|
for (var prop in source)
|
|
@@ -42,7 +45,8 @@ const Avatar = forwardRef((_a, ref) => {
|
|
|
42
45
|
children,
|
|
43
46
|
color = "gray",
|
|
44
47
|
classNames,
|
|
45
|
-
styles
|
|
48
|
+
styles,
|
|
49
|
+
imageProps
|
|
46
50
|
} = _b, others = __objRest(_b, [
|
|
47
51
|
"component",
|
|
48
52
|
"className",
|
|
@@ -53,7 +57,8 @@ const Avatar = forwardRef((_a, ref) => {
|
|
|
53
57
|
"children",
|
|
54
58
|
"color",
|
|
55
59
|
"classNames",
|
|
56
|
-
"styles"
|
|
60
|
+
"styles",
|
|
61
|
+
"imageProps"
|
|
57
62
|
]);
|
|
58
63
|
const { classes, cx } = useStyles({ color, radius, size }, { classNames, styles, name: "Avatar" });
|
|
59
64
|
const [error, setError] = useState(!src);
|
|
@@ -69,12 +74,12 @@ const Avatar = forwardRef((_a, ref) => {
|
|
|
69
74
|
title: alt
|
|
70
75
|
}, children || /* @__PURE__ */ React.createElement(AvatarPlaceholderIcon, {
|
|
71
76
|
className: classes.placeholderIcon
|
|
72
|
-
})) : /* @__PURE__ */ React.createElement("img", {
|
|
77
|
+
})) : /* @__PURE__ */ React.createElement("img", __spreadProps(__spreadValues({}, imageProps), {
|
|
73
78
|
className: classes.image,
|
|
74
79
|
src,
|
|
75
80
|
alt,
|
|
76
81
|
onError: () => setError(true)
|
|
77
|
-
}));
|
|
82
|
+
})));
|
|
78
83
|
});
|
|
79
84
|
Avatar.displayName = "@mantine/core/Avatar";
|
|
80
85
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sources":["../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { useEffect, useState, forwardRef } from 'react';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineColor,\n ClassNames,\n PolymorphicComponentProps,\n PolymorphicRef,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport { AvatarPlaceholderIcon } from './AvatarPlaceholderIcon';\nimport useStyles from './Avatar.styles';\n\nexport type AvatarStylesNames = ClassNames<typeof useStyles>;\n\ninterface _AvatarProps extends DefaultProps<AvatarStylesNames> {\n /** Image url */\n src?: string;\n\n /** Image alt text or title for placeholder variant */\n alt?: string;\n\n /** Avatar width and height */\n size?: MantineNumberSize;\n\n /** Value from theme.radius or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Color from theme.colors used for letter and icon placeholders */\n color?: MantineColor;\n}\n\nexport type AvatarProps<C extends React.ElementType> = PolymorphicComponentProps<C, _AvatarProps>;\n\ntype AvatarComponent = (<C extends React.ElementType = 'div'>(\n props: AvatarProps<C>\n) => React.ReactElement) & { displayName?: string };\n\nexport const Avatar: AvatarComponent = forwardRef(\n <C extends React.ElementType = 'div'>(\n {\n component,\n className,\n size = 'md',\n src,\n alt,\n radius = 'sm',\n children,\n color = 'gray',\n classNames,\n styles,\n ...others\n }: AvatarProps<C>,\n ref: PolymorphicRef<C>\n ) => {\n const { classes, cx } = useStyles(\n { color, radius, size },\n { classNames, styles, name: 'Avatar' }\n );\n const [error, setError] = useState(!src);\n\n useEffect(() => {\n !src ? setError(true) : setError(false);\n }, [src]);\n\n return (\n <Box<any>\n component={component || 'div'}\n className={cx(classes.root, className)}\n ref={ref}\n {...others}\n >\n {error ? (\n <div className={classes.placeholder} title={alt}>\n {children || <AvatarPlaceholderIcon className={classes.placeholderIcon} />}\n </div>\n ) : (\n <img
|
|
1
|
+
{"version":3,"file":"Avatar.js","sources":["../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import React, { useEffect, useState, forwardRef } from 'react';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineColor,\n ClassNames,\n PolymorphicComponentProps,\n PolymorphicRef,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport { AvatarPlaceholderIcon } from './AvatarPlaceholderIcon';\nimport useStyles from './Avatar.styles';\n\nexport type AvatarStylesNames = ClassNames<typeof useStyles>;\n\ninterface _AvatarProps extends DefaultProps<AvatarStylesNames> {\n /** Image url */\n src?: string;\n\n /** Image alt text or title for placeholder variant */\n alt?: string;\n\n /** Avatar width and height */\n size?: MantineNumberSize;\n\n /** Value from theme.radius or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Color from theme.colors used for letter and icon placeholders */\n color?: MantineColor;\n\n /** `img` element attributes */\n imageProps?: React.ComponentPropsWithoutRef<'img'>;\n}\n\nexport type AvatarProps<C extends React.ElementType> = PolymorphicComponentProps<C, _AvatarProps>;\n\ntype AvatarComponent = (<C extends React.ElementType = 'div'>(\n props: AvatarProps<C>\n) => React.ReactElement) & { displayName?: string };\n\nexport const Avatar: AvatarComponent = forwardRef(\n <C extends React.ElementType = 'div'>(\n {\n component,\n className,\n size = 'md',\n src,\n alt,\n radius = 'sm',\n children,\n color = 'gray',\n classNames,\n styles,\n imageProps,\n ...others\n }: AvatarProps<C>,\n ref: PolymorphicRef<C>\n ) => {\n const { classes, cx } = useStyles(\n { color, radius, size },\n { classNames, styles, name: 'Avatar' }\n );\n const [error, setError] = useState(!src);\n\n useEffect(() => {\n !src ? setError(true) : setError(false);\n }, [src]);\n\n return (\n <Box<any>\n component={component || 'div'}\n className={cx(classes.root, className)}\n ref={ref}\n {...others}\n >\n {error ? (\n <div className={classes.placeholder} title={alt}>\n {children || <AvatarPlaceholderIcon className={classes.placeholderIcon} />}\n </div>\n ) : (\n <img\n {...imageProps}\n className={classes.image}\n src={src}\n alt={alt}\n onError={() => setError(true)}\n />\n )}\n </Box>\n );\n }\n);\n\nAvatar.displayName = '@mantine/core/Avatar';\n"],"names":[],"mappings":"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"}
|
|
@@ -179,7 +179,7 @@ const ColorInput = forwardRef((_a, ref) => {
|
|
|
179
179
|
onChange: (event) => setValue(event.currentTarget.value),
|
|
180
180
|
invalid: !!error,
|
|
181
181
|
required,
|
|
182
|
-
autoComplete: "
|
|
182
|
+
autoComplete: "nope",
|
|
183
183
|
icon: icon || (withPreview ? /* @__PURE__ */ React.createElement(ColorSwatch, {
|
|
184
184
|
color: isColorValid(_value) ? _value : "#fff",
|
|
185
185
|
size: theme.fn.size({ size, sizes: SWATCH_SIZES })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorInput.js","sources":["../../../src/components/ColorInput/ColorInput.tsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef } from 'react';\nimport { useUncontrolled, useDidUpdate, useUuid } from '@mantine/hooks';\nimport { DefaultProps, ClassNames, extractMargins, getDefaultZIndex } from '@mantine/styles';\nimport { InputWrapper, InputWrapperBaseProps, InputWrapperStylesNames } from '../InputWrapper';\nimport { Input, InputBaseProps, InputStylesNames } from '../Input';\nimport { ColorSwatch } from '../ColorSwatch';\nimport { Popper } from '../Popper';\nimport { MantineTransition } from '../Transition';\nimport { Paper } from '../Paper';\nimport {\n ColorPicker,\n ColorPickerBaseProps,\n ColorPickerStylesNames,\n} from '../ColorPicker/ColorPicker';\nimport { convertHsvaTo, isColorValid, parseColor } from '../ColorPicker/converters';\nimport useStyles from './ColorInput.styles';\n\nexport type ColorInputStylesNames =\n | InputWrapperStylesNames\n | InputStylesNames\n | ColorPickerStylesNames\n | ClassNames<typeof useStyles>;\n\nexport interface ColorInputProps\n extends InputWrapperBaseProps,\n InputBaseProps,\n ColorPickerBaseProps,\n DefaultProps<ColorInputStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'defaultValue' | 'value'> {\n /** Disallow free input */\n disallowInput?: boolean;\n\n /** call onChange with last valid value onBlur */\n fixOnBlur?: boolean;\n\n /** Dropdown element z-index */\n dropdownZIndex?: number;\n\n /** Display swatch with color preview on the left side of input */\n withPreview?: boolean;\n\n /** Dropdown transition name or object */\n transition?: MantineTransition;\n\n /** Dropdown appear/disappear transition duration in ms */\n transitionDuration?: number;\n\n /** Dropdown transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n}\n\nconst SWATCH_SIZES = {\n xs: 16,\n sm: 18,\n md: 22,\n lg: 28,\n xl: 36,\n};\n\nconst ARROW_OFFSET = {\n xs: 12,\n sm: 15,\n md: 17,\n lg: 21,\n xl: 25,\n};\n\nexport const ColorInput = forwardRef<HTMLInputElement, ColorInputProps>(\n (\n {\n label,\n description,\n error,\n required,\n wrapperProps,\n size = 'sm',\n format = 'hex',\n onChange,\n onFocus,\n onBlur,\n value,\n defaultValue,\n classNames,\n styles,\n disallowInput = false,\n fixOnBlur = true,\n withPreview = true,\n swatchesPerRow = 10,\n withPicker = true,\n icon,\n transition = 'pop-top-left',\n id,\n dropdownZIndex = getDefaultZIndex('popover'),\n transitionDuration = 0,\n transitionTimingFunction,\n withinPortal = true,\n className,\n style,\n swatches,\n sx,\n ...others\n }: ColorInputProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { disallowInput },\n { classNames, styles, name: 'ColorInput' }\n );\n const { margins, rest } = extractMargins(others);\n const uuid = useUuid(id);\n const [referenceElement, setReferenceElement] = useState<HTMLDivElement>(null);\n const [dropdownOpened, setDropdownOpened] = useState(false);\n const [lastValidValue, setLastValidValue] = useState('');\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n rule: (val) => !!val && val.trim().length > 0,\n onChange,\n });\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setDropdownOpened(true);\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setDropdownOpened(false);\n fixOnBlur && setValue(lastValidValue);\n };\n\n useEffect(() => {\n if (isColorValid(_value)) {\n setLastValidValue(_value);\n }\n }, [_value]);\n\n useDidUpdate(() => {\n if (isColorValid(_value)) {\n setValue(convertHsvaTo(format, parseColor(_value)));\n }\n }, [format]);\n\n return (\n <InputWrapper\n label={label}\n description={description}\n error={error}\n required={required}\n classNames={classNames}\n styles={styles}\n size={size}\n id={uuid}\n className={className}\n style={style}\n __staticSelector=\"ColorInput\"\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <div ref={setReferenceElement}>\n <Input<'input'>\n {...rest}\n ref={ref}\n __staticSelector=\"ColorInput\"\n id={uuid}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n spellCheck={false}\n size={size}\n value={_value}\n onChange={(event) => setValue(event.currentTarget.value)}\n invalid={!!error}\n required={required}\n autoComplete=\"off\"\n icon={\n icon ||\n (withPreview ? (\n <ColorSwatch\n color={isColorValid(_value) ? _value : '#fff'}\n size={theme.fn.size({ size, sizes: SWATCH_SIZES })}\n />\n ) : null)\n }\n readOnly={disallowInput}\n classNames={{ ...classNames, input: cx(classes.input, classNames?.input) }}\n styles={styles}\n />\n </div>\n\n <Popper\n referenceElement={referenceElement}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n transition={transition}\n mounted={dropdownOpened}\n position=\"bottom\"\n placement=\"start\"\n gutter={5}\n arrowSize={3}\n zIndex={dropdownZIndex}\n arrowStyle={{ left: theme.fn.size({ size, sizes: ARROW_OFFSET }) }}\n withinPortal={withinPortal}\n >\n <div style={{ pointerEvents: 'all' }}>\n <Paper<'div'>\n shadow=\"sm\"\n padding={size}\n className={classes.dropdownBody}\n onMouseDown={(event) => event.preventDefault()}\n >\n <ColorPicker\n __staticSelector=\"ColorInput\"\n value={_value}\n onChange={setValue}\n format={format}\n swatches={swatches}\n swatchesPerRow={swatchesPerRow}\n withPicker={withPicker}\n size={size}\n focusable={false}\n styles={styles}\n classNames={classNames}\n />\n </Paper>\n </div>\n </Popper>\n </InputWrapper>\n );\n }\n);\n\nColorInput.displayName = '@mantine/core/ColorInput';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAcF,MAAM,YAAY,GAAG;AACrB,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,CAAC,CAAC;AACF,MAAM,YAAY,GAAG;AACrB,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,EAAE,EAAE,EAAE;AACR,CAAC,CAAC;AACU,MAAC,UAAU,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK;AAClD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,KAAK;AACT,IAAI,WAAW;AACf,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,IAAI,GAAG,IAAI;AACf,IAAI,MAAM,GAAG,KAAK;AAClB,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,aAAa,GAAG,KAAK;AACzB,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,WAAW,GAAG,IAAI;AACtB,IAAI,cAAc,GAAG,EAAE;AACvB,IAAI,UAAU,GAAG,IAAI;AACrB,IAAI,IAAI;AACR,IAAI,UAAU,GAAG,cAAc;AAC/B,IAAI,EAAE;AACN,IAAI,cAAc,GAAG,gBAAgB,CAAC,SAAS,CAAC;AAChD,IAAI,kBAAkB,GAAG,CAAC;AAC1B,IAAI,wBAAwB;AAC5B,IAAI,YAAY,GAAG,IAAI;AACvB,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,EAAE;AACN,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,OAAO;AACX,IAAI,aAAa;AACjB,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,eAAe;AACnB,IAAI,WAAW;AACf,IAAI,aAAa;AACjB,IAAI,gBAAgB;AACpB,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,IAAI,YAAY;AAChB,IAAI,IAAI;AACR,IAAI,gBAAgB;AACpB,IAAI,oBAAoB;AACxB,IAAI,0BAA0B;AAC9B,IAAI,cAAc;AAClB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,IAAI;AACR,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AAC1G,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AACnD,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAC3B,EAAE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjE,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9D,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC3D,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,eAAe,CAAC;AAC7C,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;AACjD,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACtC,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC5B,GAAG,CAAC;AACJ,EAAE,MAAM,eAAe,GAAG,CAAC,KAAK,KAAK;AACrC,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAClD,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC7B,IAAI,SAAS,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC1C,GAAG,CAAC;AACJ,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;AAC9B,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAChC,KAAK;AACL,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE;AAC9B,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,KAAK;AACL,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,cAAc,CAAC,cAAc,CAAC;AACzF,IAAI,KAAK;AACT,IAAI,WAAW;AACf,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,gBAAgB,EAAE,YAAY;AAClC,IAAI,EAAE;AACN,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACzE,IAAI,GAAG,EAAE,mBAAmB;AAC5B,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE;AACxF,IAAI,GAAG;AACP,IAAI,gBAAgB,EAAE,YAAY;AAClC,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,MAAM,EAAE,eAAe;AAC3B,IAAI,UAAU,EAAE,KAAK;AACrB,IAAI,IAAI;AACR,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,QAAQ,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AAC5D,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK;AACpB,IAAI,QAAQ;AACZ,IAAI,YAAY,EAAE,KAAK;AACvB,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,mBAAmB,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;AAClF,MAAM,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM;AACnD,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACxD,KAAK,CAAC,GAAG,IAAI,CAAC;AACd,IAAI,QAAQ,EAAE,aAAa;AAC3B,IAAI,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3I,IAAI,MAAM;AACV,GAAG,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACpD,IAAI,gBAAgB;AACpB,IAAI,kBAAkB;AACtB,IAAI,wBAAwB;AAC5B,IAAI,UAAU;AACd,IAAI,OAAO,EAAE,cAAc;AAC3B,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,MAAM,EAAE,cAAc;AAC1B,IAAI,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE;AACtE,IAAI,YAAY;AAChB,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAChD,IAAI,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;AACnC,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAChD,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,SAAS,EAAE,OAAO,CAAC,YAAY;AACnC,IAAI,WAAW,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE;AAClD,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE;AACtD,IAAI,gBAAgB,EAAE,YAAY;AAClC,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,IAAI,IAAI;AACR,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,MAAM;AACV,IAAI,UAAU;AACd,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,EAAE;AACH,UAAU,CAAC,WAAW,GAAG,0BAA0B;;;;"}
|
|
1
|
+
{"version":3,"file":"ColorInput.js","sources":["../../../src/components/ColorInput/ColorInput.tsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef } from 'react';\nimport { useUncontrolled, useDidUpdate, useUuid } from '@mantine/hooks';\nimport { DefaultProps, ClassNames, extractMargins, getDefaultZIndex } from '@mantine/styles';\nimport { InputWrapper, InputWrapperBaseProps, InputWrapperStylesNames } from '../InputWrapper';\nimport { Input, InputBaseProps, InputStylesNames } from '../Input';\nimport { ColorSwatch } from '../ColorSwatch';\nimport { Popper } from '../Popper';\nimport { MantineTransition } from '../Transition';\nimport { Paper } from '../Paper';\nimport {\n ColorPicker,\n ColorPickerBaseProps,\n ColorPickerStylesNames,\n} from '../ColorPicker/ColorPicker';\nimport { convertHsvaTo, isColorValid, parseColor } from '../ColorPicker/converters';\nimport useStyles from './ColorInput.styles';\n\nexport type ColorInputStylesNames =\n | InputWrapperStylesNames\n | InputStylesNames\n | ColorPickerStylesNames\n | ClassNames<typeof useStyles>;\n\nexport interface ColorInputProps\n extends InputWrapperBaseProps,\n InputBaseProps,\n ColorPickerBaseProps,\n DefaultProps<ColorInputStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'defaultValue' | 'value'> {\n /** Disallow free input */\n disallowInput?: boolean;\n\n /** call onChange with last valid value onBlur */\n fixOnBlur?: boolean;\n\n /** Dropdown element z-index */\n dropdownZIndex?: number;\n\n /** Display swatch with color preview on the left side of input */\n withPreview?: boolean;\n\n /** Dropdown transition name or object */\n transition?: MantineTransition;\n\n /** Dropdown appear/disappear transition duration in ms */\n transitionDuration?: number;\n\n /** Dropdown transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n}\n\nconst SWATCH_SIZES = {\n xs: 16,\n sm: 18,\n md: 22,\n lg: 28,\n xl: 36,\n};\n\nconst ARROW_OFFSET = {\n xs: 12,\n sm: 15,\n md: 17,\n lg: 21,\n xl: 25,\n};\n\nexport const ColorInput = forwardRef<HTMLInputElement, ColorInputProps>(\n (\n {\n label,\n description,\n error,\n required,\n wrapperProps,\n size = 'sm',\n format = 'hex',\n onChange,\n onFocus,\n onBlur,\n value,\n defaultValue,\n classNames,\n styles,\n disallowInput = false,\n fixOnBlur = true,\n withPreview = true,\n swatchesPerRow = 10,\n withPicker = true,\n icon,\n transition = 'pop-top-left',\n id,\n dropdownZIndex = getDefaultZIndex('popover'),\n transitionDuration = 0,\n transitionTimingFunction,\n withinPortal = true,\n className,\n style,\n swatches,\n sx,\n ...others\n }: ColorInputProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { disallowInput },\n { classNames, styles, name: 'ColorInput' }\n );\n const { margins, rest } = extractMargins(others);\n const uuid = useUuid(id);\n const [referenceElement, setReferenceElement] = useState<HTMLDivElement>(null);\n const [dropdownOpened, setDropdownOpened] = useState(false);\n const [lastValidValue, setLastValidValue] = useState('');\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n rule: (val) => !!val && val.trim().length > 0,\n onChange,\n });\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setDropdownOpened(true);\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setDropdownOpened(false);\n fixOnBlur && setValue(lastValidValue);\n };\n\n useEffect(() => {\n if (isColorValid(_value)) {\n setLastValidValue(_value);\n }\n }, [_value]);\n\n useDidUpdate(() => {\n if (isColorValid(_value)) {\n setValue(convertHsvaTo(format, parseColor(_value)));\n }\n }, [format]);\n\n return (\n <InputWrapper\n label={label}\n description={description}\n error={error}\n required={required}\n classNames={classNames}\n styles={styles}\n size={size}\n id={uuid}\n className={className}\n style={style}\n __staticSelector=\"ColorInput\"\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <div ref={setReferenceElement}>\n <Input<'input'>\n {...rest}\n ref={ref}\n __staticSelector=\"ColorInput\"\n id={uuid}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n spellCheck={false}\n size={size}\n value={_value}\n onChange={(event) => setValue(event.currentTarget.value)}\n invalid={!!error}\n required={required}\n autoComplete=\"nope\"\n icon={\n icon ||\n (withPreview ? (\n <ColorSwatch\n color={isColorValid(_value) ? _value : '#fff'}\n size={theme.fn.size({ size, sizes: SWATCH_SIZES })}\n />\n ) : null)\n }\n readOnly={disallowInput}\n classNames={{ ...classNames, input: cx(classes.input, classNames?.input) }}\n styles={styles}\n />\n </div>\n\n <Popper\n referenceElement={referenceElement}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n transition={transition}\n mounted={dropdownOpened}\n position=\"bottom\"\n placement=\"start\"\n gutter={5}\n arrowSize={3}\n zIndex={dropdownZIndex}\n arrowStyle={{ left: theme.fn.size({ size, sizes: ARROW_OFFSET }) }}\n withinPortal={withinPortal}\n >\n <div style={{ pointerEvents: 'all' }}>\n <Paper<'div'>\n shadow=\"sm\"\n padding={size}\n className={classes.dropdownBody}\n onMouseDown={(event) => event.preventDefault()}\n >\n <ColorPicker\n __staticSelector=\"ColorInput\"\n value={_value}\n onChange={setValue}\n format={format}\n swatches={swatches}\n swatchesPerRow={swatchesPerRow}\n withPicker={withPicker}\n size={size}\n focusable={false}\n styles={styles}\n classNames={classNames}\n />\n </Paper>\n </div>\n </Popper>\n </InputWrapper>\n );\n }\n);\n\nColorInput.displayName = '@mantine/core/ColorInput';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Divider.js","sources":["../../../src/components/Divider/Divider.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useMantineTheme, DefaultProps, MantineNumberSize, MantineColor } from '@mantine/styles';\nimport useStyles from './Divider.styles';\nimport { Text } from '../Text';\nimport { Box } from '../Box';\n\nexport type DividerStylesNames = 'label';\n\nexport interface DividerProps\n extends DefaultProps<DividerStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n /** Line color from theme, defaults to gray in light color scheme and to dark in dark color scheme */\n color?: MantineColor;\n\n /** Line orientation */\n orientation?: 'horizontal' | 'vertical';\n\n /** Sets height in horizontal orientation and
|
|
1
|
+
{"version":3,"file":"Divider.js","sources":["../../../src/components/Divider/Divider.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useMantineTheme, DefaultProps, MantineNumberSize, MantineColor } from '@mantine/styles';\nimport useStyles from './Divider.styles';\nimport { Text } from '../Text';\nimport { Box } from '../Box';\n\nexport type DividerStylesNames = 'label';\n\nexport interface DividerProps\n extends DefaultProps<DividerStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n /** Line color from theme, defaults to gray in light color scheme and to dark in dark color scheme */\n color?: MantineColor;\n\n /** Line orientation */\n orientation?: 'horizontal' | 'vertical';\n\n /** Sets height in horizontal orientation and width in vertical */\n size?: MantineNumberSize;\n\n /** Adds text after line in horizontal orientation */\n label?: React.ReactNode;\n\n /** Label position */\n labelPosition?: 'left' | 'center' | 'right';\n\n /** Props spread to Text component in label */\n labelProps?: Record<string, any>;\n\n /** Divider borderStyle */\n variant?: 'solid' | 'dashed' | 'dotted';\n}\n\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n (\n {\n className,\n color,\n orientation = 'horizontal',\n size = 'xs',\n label,\n labelPosition = 'left',\n labelProps,\n variant = 'solid',\n styles,\n classNames,\n ...others\n }: DividerProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const _color = color || (theme.colorScheme === 'dark' ? 'dark' : 'gray');\n const { classes, cx } = useStyles(\n { color: _color, size, variant },\n { classNames, styles, name: 'Divider' }\n );\n\n const vertical = orientation === 'vertical';\n const horizontal = !vertical;\n const withLabel = !!label && horizontal;\n\n return (\n <Box\n ref={ref}\n className={cx(\n {\n [classes.vertical]: vertical,\n [classes.horizontal]: horizontal,\n [classes.withLabel]: withLabel,\n },\n className\n )}\n {...others}\n >\n {!!label && horizontal && (\n <Text\n {...labelProps}\n color={_color}\n size={labelProps?.size || 'xs'}\n sx={{ marginTop: 2 }}\n className={cx(classes.label, classes[labelPosition])}\n >\n {label}\n </Text>\n )}\n </Box>\n );\n }\n);\n\nDivider.displayName = '@mantine/core/Divider';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import React, { forwardRef, useState
|
|
2
|
-
import {
|
|
1
|
+
import React, { forwardRef, useState } from 'react';
|
|
2
|
+
import { useDidUpdate } from '@mantine/hooks';
|
|
3
3
|
import { ImageIcon } from './ImageIcon.js';
|
|
4
4
|
import useStyles from './Image.styles.js';
|
|
5
5
|
import { Box } from '../Box/Box.js';
|
|
6
6
|
import { Text } from '../Text/Text.js';
|
|
7
7
|
|
|
8
8
|
var __defProp = Object.defineProperty;
|
|
9
|
-
var __defProps = Object.defineProperties;
|
|
10
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
11
9
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
12
10
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
11
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -23,7 +21,6 @@ var __spreadValues = (a, b) => {
|
|
|
23
21
|
}
|
|
24
22
|
return a;
|
|
25
23
|
};
|
|
26
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
27
24
|
var __objRest = (source, exclude) => {
|
|
28
25
|
var target = {};
|
|
29
26
|
for (var prop in source)
|
|
@@ -72,14 +69,9 @@ const Image = forwardRef((_a, ref) => {
|
|
|
72
69
|
const [loaded, setLoaded] = useState(false);
|
|
73
70
|
const [error, setError] = useState(!src);
|
|
74
71
|
const isPlaceholder = withPlaceholder && (!loaded || error);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const { current } = internalImgRef;
|
|
79
|
-
if (current == null ? void 0 : current.complete) {
|
|
80
|
-
setError(current.naturalHeight === 0);
|
|
81
|
-
setLoaded(current.naturalHeight !== 0);
|
|
82
|
-
}
|
|
72
|
+
useDidUpdate(() => {
|
|
73
|
+
setLoaded(false);
|
|
74
|
+
setError(false);
|
|
83
75
|
}, [src]);
|
|
84
76
|
return /* @__PURE__ */ React.createElement(Box, __spreadValues({
|
|
85
77
|
className: cx(classes.root, className),
|
|
@@ -88,13 +80,12 @@ const Image = forwardRef((_a, ref) => {
|
|
|
88
80
|
className: classes.figure
|
|
89
81
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
90
82
|
className: classes.imageWrapper
|
|
91
|
-
}, /* @__PURE__ */ React.createElement("img",
|
|
83
|
+
}, /* @__PURE__ */ React.createElement("img", __spreadValues({
|
|
92
84
|
className: classes.image,
|
|
93
85
|
src,
|
|
94
86
|
alt,
|
|
95
87
|
style: { objectFit: fit, width, height },
|
|
96
|
-
ref:
|
|
97
|
-
}, imageProps), {
|
|
88
|
+
ref: imageRef,
|
|
98
89
|
onLoad: (event) => {
|
|
99
90
|
setLoaded(true);
|
|
100
91
|
typeof (imageProps == null ? void 0 : imageProps.onLoad) === "function" && imageProps.onLoad(event);
|
|
@@ -103,7 +94,7 @@ const Image = forwardRef((_a, ref) => {
|
|
|
103
94
|
setError(true);
|
|
104
95
|
typeof (imageProps == null ? void 0 : imageProps.onError) === "function" && imageProps.onError(event);
|
|
105
96
|
}
|
|
106
|
-
})), isPlaceholder && /* @__PURE__ */ React.createElement("div", {
|
|
97
|
+
}, imageProps)), isPlaceholder && /* @__PURE__ */ React.createElement("div", {
|
|
107
98
|
className: classes.placeholder,
|
|
108
99
|
title: alt
|
|
109
100
|
}, placeholder || /* @__PURE__ */ React.createElement(ImageIcon, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","sources":["../../../src/components/Image/Image.tsx"],"sourcesContent":["import React, { useState, forwardRef
|
|
1
|
+
{"version":3,"file":"Image.js","sources":["../../../src/components/Image/Image.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport { DefaultProps, MantineNumberSize, ClassNames } from '@mantine/styles';\nimport { useDidUpdate } from '@mantine/hooks';\nimport { Text } from '../Text';\nimport { Box } from '../Box';\nimport { ImageIcon } from './ImageIcon';\nimport useStyles from './Image.styles';\n\nexport type ImageStylesNames = ClassNames<typeof useStyles>;\n\nexport interface ImageProps\n extends DefaultProps<ImageStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'placeholder'> {\n /** Image src */\n src?: string;\n\n /** Image alt text, used as title for placeholder if image was not loaded */\n alt?: string;\n\n /** Image object-fit property */\n fit?: 'contain' | 'cover';\n\n /** Image width, defaults to 100%, cannot exceed 100% */\n width?: number | string;\n\n /** Image height, defaults to original image height adjusted to given width */\n height?: number | string;\n\n /** Predefined border-radius value from theme.radius or number for border-radius in px */\n radius?: MantineNumberSize;\n\n /** Enable placeholder when image is loading and when image fails to load */\n withPlaceholder?: boolean;\n\n /** Customize placeholder content */\n placeholder?: React.ReactNode;\n\n /** Props spread to img element */\n imageProps?: React.ComponentPropsWithoutRef<'img'>;\n\n /** Get image element ref */\n imageRef?: React.ForwardedRef<HTMLImageElement>;\n\n /** Image figcaption, displayed bellow image */\n caption?: React.ReactNode;\n}\n\nexport const Image = forwardRef<HTMLDivElement, ImageProps>(\n (\n {\n className,\n alt,\n src,\n fit = 'cover',\n width = '100%',\n height = 'auto',\n radius = 0,\n imageProps,\n withPlaceholder = false,\n placeholder,\n imageRef,\n classNames,\n styles,\n caption,\n ...others\n }: ImageProps,\n ref\n ) => {\n const { classes, cx } = useStyles({ radius }, { classNames, styles, name: 'Image' });\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(!src);\n const isPlaceholder = withPlaceholder && (!loaded || error);\n\n useDidUpdate(() => {\n setLoaded(false);\n setError(false);\n }, [src]);\n\n return (\n <Box className={cx(classes.root, className)} ref={ref} {...others}>\n <figure className={classes.figure}>\n <div className={classes.imageWrapper}>\n <img\n className={classes.image}\n src={src}\n alt={alt}\n style={{ objectFit: fit, width, height }}\n ref={imageRef}\n onLoad={(event) => {\n setLoaded(true);\n typeof imageProps?.onLoad === 'function' && imageProps.onLoad(event);\n }}\n onError={(event) => {\n setError(true);\n typeof imageProps?.onError === 'function' && imageProps.onError(event);\n }}\n {...imageProps}\n />\n\n {isPlaceholder && (\n <div className={classes.placeholder} title={alt}>\n {placeholder || <ImageIcon style={{ width: 40, height: 40 }} />}\n </div>\n )}\n </div>\n\n {!!caption && (\n <Text component=\"figcaption\" size=\"sm\" align=\"center\" className={classes.caption}>\n {caption}\n </Text>\n )}\n </figure>\n </Box>\n );\n }\n);\n\nImage.displayName = '@mantine/core/Image';\n"],"names":[],"mappings":"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"}
|
|
@@ -100,7 +100,7 @@ const Input = forwardRef((_a, ref) => {
|
|
|
100
100
|
className: classes.icon
|
|
101
101
|
}, icon), /* @__PURE__ */ React.createElement(Element, __spreadProps(__spreadValues({}, rest), {
|
|
102
102
|
ref,
|
|
103
|
-
|
|
103
|
+
required,
|
|
104
104
|
"aria-invalid": invalid,
|
|
105
105
|
disabled,
|
|
106
106
|
className: cx(classes[`${_variant}Variant`], classes.input, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n useMantineTheme,\n DefaultProps,\n MantineNumberSize,\n MantineSize,\n ClassNames,\n PolymorphicComponentProps,\n PolymorphicRef,\n extractMargins,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport useStyles, { InputVariant } from './Input.styles';\n\nexport type InputStylesNames = ClassNames<typeof useStyles>;\n\nexport interface InputBaseProps {\n /** Sets border color to red and aria-invalid=true on input element */\n invalid?: boolean;\n\n /** Adds icon on the left side of input */\n icon?: React.ReactNode;\n\n /** Width of icon section in px */\n iconWidth?: number;\n\n /** Right section of input, similar to icon but on the right */\n rightSection?: React.ReactNode;\n\n /** Width of right section, is used to calculate input padding-right */\n rightSectionWidth?: number;\n\n /** Props spread to rightSection div element */\n rightSectionProps?: React.ComponentPropsWithoutRef<'div'>;\n\n /** Properties spread to root element */\n wrapperProps?: { [key: string]: any };\n\n /** Sets
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n useMantineTheme,\n DefaultProps,\n MantineNumberSize,\n MantineSize,\n ClassNames,\n PolymorphicComponentProps,\n PolymorphicRef,\n extractMargins,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport useStyles, { InputVariant } from './Input.styles';\n\nexport type InputStylesNames = ClassNames<typeof useStyles>;\n\nexport interface InputBaseProps {\n /** Sets border color to red and aria-invalid=true on input element */\n invalid?: boolean;\n\n /** Adds icon on the left side of input */\n icon?: React.ReactNode;\n\n /** Width of icon section in px */\n iconWidth?: number;\n\n /** Right section of input, similar to icon but on the right */\n rightSection?: React.ReactNode;\n\n /** Width of right section, is used to calculate input padding-right */\n rightSectionWidth?: number;\n\n /** Props spread to rightSection div element */\n rightSectionProps?: React.ComponentPropsWithoutRef<'div'>;\n\n /** Properties spread to root element */\n wrapperProps?: { [key: string]: any };\n\n /** Sets required on input element */\n required?: boolean;\n\n /** Input border-radius from theme or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Defines input appearance, defaults to default in light color scheme and filled in dark */\n variant?: InputVariant;\n\n /** Will input have multiple lines? */\n multiline?: boolean;\n\n /** Disabled input state */\n disabled?: boolean;\n\n /** Input size */\n size?: MantineSize;\n}\n\ninterface _InputProps extends InputBaseProps, DefaultProps<InputStylesNames> {\n /** Static css selector base */\n __staticSelector?: string;\n}\n\nexport type InputProps<C extends React.ElementType> = PolymorphicComponentProps<C, _InputProps>;\n\ntype InputComponent = (<C extends React.ElementType = 'input'>(\n props: InputProps<C>\n) => React.ReactElement) & { displayName?: string };\n\nexport const Input: InputComponent = forwardRef(\n <C extends React.ElementType = 'input'>(\n {\n component,\n className,\n invalid = false,\n required = false,\n disabled = false,\n variant,\n icon,\n style,\n rightSectionWidth = 36,\n iconWidth,\n rightSection,\n rightSectionProps = {},\n radius = 'sm',\n size = 'sm',\n wrapperProps,\n classNames,\n styles,\n __staticSelector = 'Input',\n multiline = false,\n sx,\n ...others\n }: InputProps<C>,\n ref: PolymorphicRef<C>\n ) => {\n const theme = useMantineTheme();\n const _variant = variant || (theme.colorScheme === 'dark' ? 'filled' : 'default');\n const { classes, cx } = useStyles(\n {\n radius,\n size,\n multiline,\n variant: _variant,\n invalid,\n rightSectionWidth,\n iconWidth,\n withRightSection: !!rightSection,\n },\n { classNames, styles, name: __staticSelector }\n );\n const { margins, rest } = extractMargins(others);\n const Element: any = component || 'input';\n\n return (\n <Box\n className={cx(classes.wrapper, className)}\n sx={sx}\n style={style}\n {...margins}\n {...wrapperProps}\n >\n {icon && <div className={classes.icon}>{icon}</div>}\n\n <Element\n {...rest}\n ref={ref}\n required={required}\n aria-invalid={invalid}\n disabled={disabled}\n className={cx(classes[`${_variant}Variant`], classes.input, {\n [classes.withIcon]: icon,\n [classes.invalid]: invalid,\n [classes.disabled]: disabled,\n })}\n />\n\n {rightSection && (\n <div {...rightSectionProps} className={classes.rightSection}>\n {rightSection}\n </div>\n )}\n </Box>\n );\n }\n);\n\nInput.displayName = '@mantine/core/Input';\n"],"names":[],"mappings":";;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAQU,MAAC,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK;AAC7C,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,iBAAiB,GAAG,EAAE;AAC1B,IAAI,SAAS;AACb,IAAI,YAAY;AAChB,IAAI,iBAAiB,GAAG,EAAE;AAC1B,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,IAAI,GAAG,IAAI;AACf,IAAI,YAAY;AAChB,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,gBAAgB,GAAG,OAAO;AAC9B,IAAI,SAAS,GAAG,KAAK;AACrB,IAAI,EAAE;AACN,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,mBAAmB;AACvB,IAAI,WAAW;AACf,IAAI,cAAc;AAClB,IAAI,mBAAmB;AACvB,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,kBAAkB;AACtB,IAAI,WAAW;AACf,IAAI,IAAI;AACR,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;AAClC,EAAE,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;AACpF,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;AACpC,IAAI,MAAM;AACV,IAAI,IAAI;AACR,IAAI,SAAS;AACb,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,OAAO;AACX,IAAI,iBAAiB;AACrB,IAAI,SAAS;AACb,IAAI,gBAAgB,EAAE,CAAC,CAAC,YAAY;AACpC,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACrD,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AACnD,EAAE,MAAM,OAAO,GAAG,SAAS,IAAI,OAAO,CAAC;AACvC,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,cAAc,CAAC;AAChF,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;AAC7C,IAAI,EAAE;AACN,IAAI,KAAK;AACT,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,EAAE,IAAI,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACjF,IAAI,SAAS,EAAE,OAAO,CAAC,IAAI;AAC3B,GAAG,EAAE,IAAI,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE;AACjG,IAAI,GAAG;AACP,IAAI,QAAQ;AACZ,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,QAAQ;AACZ,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE;AAChE,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI;AAC9B,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO;AAChC,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAClC,KAAK,CAAC;AACN,GAAG,CAAC,CAAC,EAAE,YAAY,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE;AACvH,IAAI,SAAS,EAAE,OAAO,CAAC,YAAY;AACnC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AACrB,CAAC,EAAE;AACH,KAAK,CAAC,WAAW,GAAG,qBAAqB;;;;"}
|
|
@@ -86,7 +86,7 @@ const JsonInput = forwardRef((_a, ref) => {
|
|
|
86
86
|
error: valid ? error : validationError || true,
|
|
87
87
|
__staticSelector: "JsonInput",
|
|
88
88
|
classNames: __spreadProps(__spreadValues({}, classNames), { input: cx(classes.input, classNames == null ? void 0 : classNames.input) }),
|
|
89
|
-
autoComplete: "
|
|
89
|
+
autoComplete: "nope",
|
|
90
90
|
ref
|
|
91
91
|
}, others));
|
|
92
92
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonInput.js","sources":["../../../src/components/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { forwardRef, useState } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { DefaultProps } from '@mantine/styles';\nimport { validateJson } from './validate-json/validate-json';\nimport { Textarea, TextareaProps } from '../Textarea';\nimport { TextInputStylesNames } from '../TextInput';\nimport useStyles from './JsonInput.styles';\n\nexport type JsonInputStylesNames = TextInputStylesNames;\n\nexport interface JsonInputProps\n extends DefaultProps<JsonInputStylesNames>,\n Omit<TextareaProps, 'onChange'> {\n /** Value for controlled input */\n value?: string;\n\n /** Default value for uncontrolled input */\n defaultValue?: string;\n\n /** onChange value for controlled input */\n onChange?(value: string): void;\n\n /** Format json on blur */\n formatOnBlur?: boolean;\n\n /** Error message shown when json is not valid */\n validationError?: React.ReactNode;\n}\n\nexport const JsonInput = forwardRef<HTMLTextAreaElement, JsonInputProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n error,\n formatOnBlur = false,\n size = 'sm',\n validationError,\n classNames,\n ...others\n }: JsonInputProps,\n ref\n ) => {\n const { classes, cx } = useStyles({ size }, { name: 'JsonInput' });\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n rule: (val) => typeof val === 'string',\n onChange,\n });\n\n const [valid, setValid] = useState(validateJson(_value));\n\n const handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setValid(true);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n const isValid = validateJson(event.currentTarget.value);\n formatOnBlur &&\n isValid &&\n event.currentTarget.value.trim() !== '' &&\n setValue(JSON.stringify(JSON.parse(event.currentTarget.value), null, 2));\n setValid(isValid);\n };\n\n return (\n <Textarea\n value={_value}\n onChange={(event) => setValue(event.currentTarget.value)}\n onFocus={handleFocus}\n onBlur={handleBlur}\n error={valid ? error : validationError || true}\n __staticSelector=\"JsonInput\"\n classNames={{ ...classNames, input: cx(classes.input, classNames?.input) }}\n autoComplete=\"
|
|
1
|
+
{"version":3,"file":"JsonInput.js","sources":["../../../src/components/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { forwardRef, useState } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { DefaultProps } from '@mantine/styles';\nimport { validateJson } from './validate-json/validate-json';\nimport { Textarea, TextareaProps } from '../Textarea';\nimport { TextInputStylesNames } from '../TextInput';\nimport useStyles from './JsonInput.styles';\n\nexport type JsonInputStylesNames = TextInputStylesNames;\n\nexport interface JsonInputProps\n extends DefaultProps<JsonInputStylesNames>,\n Omit<TextareaProps, 'onChange'> {\n /** Value for controlled input */\n value?: string;\n\n /** Default value for uncontrolled input */\n defaultValue?: string;\n\n /** onChange value for controlled input */\n onChange?(value: string): void;\n\n /** Format json on blur */\n formatOnBlur?: boolean;\n\n /** Error message shown when json is not valid */\n validationError?: React.ReactNode;\n}\n\nexport const JsonInput = forwardRef<HTMLTextAreaElement, JsonInputProps>(\n (\n {\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n error,\n formatOnBlur = false,\n size = 'sm',\n validationError,\n classNames,\n ...others\n }: JsonInputProps,\n ref\n ) => {\n const { classes, cx } = useStyles({ size }, { name: 'JsonInput' });\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n rule: (val) => typeof val === 'string',\n onChange,\n });\n\n const [valid, setValid] = useState(validateJson(_value));\n\n const handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setValid(true);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n const isValid = validateJson(event.currentTarget.value);\n formatOnBlur &&\n isValid &&\n event.currentTarget.value.trim() !== '' &&\n setValue(JSON.stringify(JSON.parse(event.currentTarget.value), null, 2));\n setValid(isValid);\n };\n\n return (\n <Textarea\n value={_value}\n onChange={(event) => setValue(event.currentTarget.value)}\n onFocus={handleFocus}\n onBlur={handleBlur}\n error={valid ? error : validationError || true}\n __staticSelector=\"JsonInput\"\n classNames={{ ...classNames, input: cx(classes.input, classNames?.input) }}\n autoComplete=\"nope\"\n ref={ref}\n {...others}\n />\n );\n }\n);\n\nJsonInput.displayName = '@mantine/core/JsonInput';\n"],"names":[],"mappings":"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"}
|
|
@@ -105,7 +105,8 @@ const Menu = forwardRef((_a, ref) => {
|
|
|
105
105
|
onMouseEnter,
|
|
106
106
|
onChange,
|
|
107
107
|
className,
|
|
108
|
-
sx
|
|
108
|
+
sx,
|
|
109
|
+
clickOutsideEvents = ["click", "touchstart"]
|
|
109
110
|
} = _b, others = __objRest(_b, [
|
|
110
111
|
"control",
|
|
111
112
|
"children",
|
|
@@ -138,7 +139,8 @@ const Menu = forwardRef((_a, ref) => {
|
|
|
138
139
|
"onMouseEnter",
|
|
139
140
|
"onChange",
|
|
140
141
|
"className",
|
|
141
|
-
"sx"
|
|
142
|
+
"sx",
|
|
143
|
+
"clickOutsideEvents"
|
|
142
144
|
]);
|
|
143
145
|
const [hovered, setHovered] = useState(-1);
|
|
144
146
|
const buttonsRefs = useRef({});
|
|
@@ -169,7 +171,10 @@ const Menu = forwardRef((_a, ref) => {
|
|
|
169
171
|
setOpened(true);
|
|
170
172
|
};
|
|
171
173
|
useWindowEvent("scroll", () => closeOnScroll && handleClose());
|
|
172
|
-
useClickOutside(() => _opened && handleClose(),
|
|
174
|
+
useClickOutside(() => _opened && handleClose(), clickOutsideEvents, [
|
|
175
|
+
dropdownElement,
|
|
176
|
+
wrapperElement
|
|
177
|
+
]);
|
|
173
178
|
const toggleMenu = () => {
|
|
174
179
|
_opened ? handleClose() : handleOpen();
|
|
175
180
|
};
|