@mantine/core 4.0.5 → 4.0.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/Grid/Col/Col.js +2 -7
- package/cjs/components/Grid/Col/Col.js.map +1 -1
- package/cjs/components/Grid/Grid.context.js +11 -0
- package/cjs/components/Grid/Grid.context.js.map +1 -0
- package/cjs/components/Grid/Grid.js +5 -2
- package/cjs/components/Grid/Grid.js.map +1 -1
- package/cjs/components/Menu/Menu.context.js +3 -10
- package/cjs/components/Menu/Menu.context.js.map +1 -1
- package/cjs/components/Menu/Menu.js +1 -1
- package/cjs/components/Menu/Menu.js.map +1 -1
- package/cjs/components/Menu/MenuItem/MenuItem.js +1 -1
- package/cjs/components/Menu/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Menu/MenuLabel/MenuLabel.js +1 -1
- package/cjs/components/Menu/MenuLabel/MenuLabel.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +3 -3
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Slider/RangeSlider/RangeSlider.js +3 -1
- package/cjs/components/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/cjs/components/Slider/Slider/Slider.js +3 -1
- package/cjs/components/Slider/Slider/Slider.js.map +1 -1
- package/cjs/components/Slider/utils/get-change-value/get-change-value.js +13 -2
- package/cjs/components/Slider/utils/get-change-value/get-change-value.js.map +1 -1
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/utils/create-use-context/create-use-context.js +21 -0
- package/cjs/utils/create-use-context/create-use-context.js.map +1 -0
- package/esm/components/Grid/Col/Col.js +3 -7
- package/esm/components/Grid/Col/Col.js.map +1 -1
- package/esm/components/Grid/Grid.context.js +6 -0
- package/esm/components/Grid/Grid.context.js.map +1 -0
- package/esm/components/Grid/Grid.js +5 -2
- package/esm/components/Grid/Grid.js.map +1 -1
- package/esm/components/Menu/Menu.context.js +3 -10
- package/esm/components/Menu/Menu.context.js.map +1 -1
- package/esm/components/Menu/Menu.js +2 -2
- package/esm/components/Menu/Menu.js.map +1 -1
- package/esm/components/Menu/MenuItem/MenuItem.js +1 -1
- package/esm/components/Menu/MenuItem/MenuItem.js.map +1 -1
- package/esm/components/Menu/MenuLabel/MenuLabel.js +1 -1
- package/esm/components/Menu/MenuLabel/MenuLabel.js.map +1 -1
- package/esm/components/PasswordInput/PasswordInput.js +3 -3
- package/esm/components/PasswordInput/PasswordInput.js.map +1 -1
- package/esm/components/Slider/RangeSlider/RangeSlider.js +3 -1
- package/esm/components/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/esm/components/Slider/Slider/Slider.js +3 -1
- package/esm/components/Slider/Slider/Slider.js.map +1 -1
- package/esm/components/Slider/utils/get-change-value/get-change-value.js +13 -2
- package/esm/components/Slider/utils/get-change-value/get-change-value.js.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/utils/create-use-context/create-use-context.js +17 -0
- package/esm/utils/create-use-context/create-use-context.js.map +1 -0
- package/lib/components/ActionIcon/CloseButton/CloseButton.d.ts +1 -1
- package/lib/components/ColorSwatch/ColorSwatch.styles.d.ts +2 -2
- package/lib/components/Grid/Col/Col.d.ts +2 -10
- package/lib/components/Grid/Col/Col.d.ts.map +1 -1
- package/lib/components/Grid/Grid.context.d.ts +10 -0
- package/lib/components/Grid/Grid.context.d.ts.map +1 -0
- package/lib/components/Grid/Grid.d.ts.map +1 -1
- package/lib/components/Menu/Menu.context.d.ts +1 -2
- package/lib/components/Menu/Menu.context.d.ts.map +1 -1
- package/lib/components/PasswordInput/PasswordInput.d.ts.map +1 -1
- package/lib/components/Slider/RangeSlider/RangeSlider.d.ts +2 -0
- package/lib/components/Slider/RangeSlider/RangeSlider.d.ts.map +1 -1
- package/lib/components/Slider/Slider/Slider.d.ts +2 -0
- package/lib/components/Slider/Slider/Slider.d.ts.map +1 -1
- package/lib/components/Slider/utils/get-change-value/get-change-value.d.ts +2 -1
- package/lib/components/Slider/utils/get-change-value/get-change-value.d.ts.map +1 -1
- package/lib/components/Tabs/TabControl/TabControl.d.ts +1 -1
- package/lib/utils/create-use-context/create-use-context.d.ts +3 -0
- package/lib/utils/create-use-context/create-use-context.d.ts.map +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sources":["../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, { useState, useRef, cloneElement, forwardRef } from 'react';\nimport {\n useClickOutside,\n useMergedRef,\n useWindowEvent,\n useUncontrolled,\n useUuid,\n} from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineShadow,\n ClassNames,\n getDefaultZIndex,\n ForwardRefWithStaticComponents,\n useMantineDefaultProps,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport { Paper } from '../Paper';\nimport { ActionIcon } from '../ActionIcon';\nimport { Popper, SharedPopperProps } from '../Popper';\nimport { MenuIcon } from './MenuIcon';\nimport { MenuItem, MenuItemStylesNames } from './MenuItem/MenuItem';\nimport { MenuLabel, MenuLabelStylesNames } from './MenuLabel/MenuLabel';\nimport { MenuContext } from './Menu.context';\nimport useStyles from './Menu.styles';\n\nexport type MenuStylesNames =\n | ClassNames<typeof useStyles>\n | MenuItemStylesNames\n | MenuLabelStylesNames;\n\nexport interface MenuProps\n extends DefaultProps<MenuStylesNames>,\n SharedPopperProps,\n React.ComponentPropsWithRef<'div'> {\n /** <MenuItem /> and <Divider /> components only, children are passed to MenuBody component */\n children: React.ReactNode;\n\n /** React element that will be used as menu control */\n control?: React.ReactElement;\n\n /** Use opened and onClose props to setup controlled menu */\n opened?: boolean;\n\n /** Called every time menu is closed */\n onClose?(): void;\n\n /** Called every time menu is opened */\n onOpen?(): void;\n\n /** Menu button aria-label and title props */\n menuButtonLabel?: string;\n\n /** Predefined menu width or number for width in px */\n size?: MantineNumberSize | 'auto';\n\n /** Predefined shadow from theme or box-shadow value */\n shadow?: MantineShadow;\n\n /** Should menu close on item click */\n closeOnItemClick?: boolean;\n\n /** Id attribute of menu */\n menuId?: string;\n\n /** Control prop to get element ref */\n controlRefProp?: string;\n\n /** Menu body z-index */\n zIndex?: number;\n\n /** Event which should open menu */\n trigger?: 'click' | 'hover';\n\n /** Close delay for hover trigger */\n delay?: number;\n\n /** Menu body and items border-radius */\n radius?: MantineNumberSize;\n\n /** Close menu on scroll */\n closeOnScroll?: boolean;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n\n /** Should focus be trapped when menu is opened */\n trapFocus?: boolean;\n\n /** Events that should trigger outside clicks */\n clickOutsideEvents?: string[];\n}\n\nconst defaultControl = (\n <ActionIcon>\n <MenuIcon />\n </ActionIcon>\n);\n\ntype MenuComponent = ForwardRefWithStaticComponents<\n MenuProps,\n { Item: typeof MenuItem; Label: typeof MenuLabel }\n>;\n\nfunction getNextItem(active: number, items: HTMLButtonElement[]) {\n for (let i = active + 1; i < items.length; i += 1) {\n if (!items[i].disabled) {\n return i;\n }\n }\n\n return active;\n}\n\nfunction findInitialItem(items: HTMLButtonElement[]) {\n for (let i = 0; i < items.length; i += 1) {\n if (!items[i].disabled) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction getPreviousItem(active: number, items: HTMLButtonElement[]) {\n for (let i = active - 1; i >= 0; i -= 1) {\n if (!items[i].disabled) {\n return i;\n }\n }\n\n if (!items[active]) {\n return findInitialItem(items);\n }\n\n return active;\n}\n\nconst defaultProps: Partial<MenuProps> = {\n control: defaultControl,\n closeOnItemClick: true,\n transitionDuration: 150,\n size: 'md',\n shadow: 'md',\n position: 'bottom',\n placement: 'start',\n gutter: 5,\n withArrow: false,\n transition: 'pop-top-left',\n controlRefProp: 'ref',\n trigger: 'click',\n radius: 'sm',\n delay: 100,\n zIndex: getDefaultZIndex('popover'),\n withinPortal: true,\n trapFocus: true,\n closeOnScroll: false,\n clickOutsideEvents: ['mousedown', 'touchstart'],\n};\n\nexport const Menu: MenuComponent = forwardRef<HTMLButtonElement, MenuProps>(\n (props: MenuProps, ref) => {\n const {\n control,\n children,\n onClose,\n onOpen,\n opened,\n menuId,\n closeOnItemClick,\n transitionDuration,\n size,\n shadow,\n position,\n placement,\n gutter,\n withArrow,\n transition,\n transitionTimingFunction,\n menuButtonLabel,\n controlRefProp,\n trigger,\n radius,\n delay,\n zIndex,\n withinPortal,\n trapFocus,\n classNames,\n styles,\n closeOnScroll,\n onMouseLeave,\n onMouseEnter,\n onChange,\n className,\n sx,\n clickOutsideEvents,\n ...others\n } = useMantineDefaultProps('Menu', defaultProps, props);\n const [hovered, setHovered] = useState(-1);\n const { classes, cx } = useStyles({ size }, { classNames, styles, name: 'Menu' });\n const delayTimeout = useRef<number>();\n const [referenceElement, setReferenceElement] = useState<HTMLButtonElement>(null);\n const [wrapperElement, setWrapperElement] = useState<HTMLDivElement>(null);\n const [dropdownElement, setDropdownElement] = useState<HTMLDivElement>(null);\n const uuid = useUuid(menuId);\n\n const focusReference = () => window.setTimeout(() => referenceElement?.focus(), 0);\n\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: false,\n finalValue: false,\n rule: (val) => typeof val === 'boolean',\n onChange: (value) =>\n value\n ? typeof onOpen === 'function' && onOpen()\n : typeof onClose === 'function' && onClose(),\n });\n\n const openedRef = useRef(_opened);\n\n const handleClose = () => {\n if (openedRef.current) {\n openedRef.current = false;\n setOpened(false);\n }\n };\n\n const handleOpen = () => {\n openedRef.current = true;\n setOpened(true);\n };\n\n useWindowEvent('scroll', () => closeOnScroll && handleClose());\n\n useClickOutside(() => _opened && handleClose(), clickOutsideEvents, [\n dropdownElement,\n wrapperElement,\n ]);\n\n const toggleMenu = () => {\n _opened ? handleClose() : handleOpen();\n };\n\n const controlEventHandlers =\n trigger === 'click'\n ? { onClick: toggleMenu }\n : { onMouseEnter: handleOpen, onClick: toggleMenu };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n typeof onMouseLeave === 'function' && onMouseLeave(event);\n\n if (trigger === 'hover') {\n if (delay > 0) {\n delayTimeout.current = window.setTimeout(() => handleClose(), delay);\n } else {\n handleClose();\n }\n }\n };\n\n const handleMouseEnter = (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n typeof onMouseEnter === 'function' && onMouseEnter(event);\n window.clearTimeout(delayTimeout.current);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (_opened) {\n const elements = Array.from(\n dropdownElement.querySelectorAll<HTMLButtonElement>('.mantine-Menu-item')\n );\n\n if (event.nativeEvent.code === 'Tab' && trapFocus) {\n event.preventDefault();\n }\n\n if (event.nativeEvent.code === 'ArrowDown') {\n event.preventDefault();\n const prevIndex = getNextItem(hovered, elements);\n setHovered(prevIndex);\n elements[prevIndex].focus();\n }\n\n if (event.nativeEvent.code === 'ArrowUp') {\n event.preventDefault();\n const prevIndex = getPreviousItem(hovered, elements);\n setHovered(prevIndex);\n elements[prevIndex].focus();\n }\n\n if (event.nativeEvent.code === 'Escape') {\n handleClose();\n focusReference();\n }\n }\n };\n\n const menuControl = cloneElement(control, {\n ...controlEventHandlers,\n onClick: (event: React.MouseEvent<any>) => {\n controlEventHandlers.onClick();\n typeof control.props.onClick === 'function' && control.props.onClick(event);\n },\n role: 'button',\n 'aria-haspopup': 'menu',\n 'aria-expanded': _opened,\n 'aria-controls': uuid,\n 'aria-label': menuButtonLabel,\n title: menuButtonLabel,\n [controlRefProp]: useMergedRef(setReferenceElement, ref),\n onKeyDown: handleKeyDown,\n });\n\n const handleItemClick = () => {\n if (closeOnItemClick) {\n handleClose();\n trigger === 'click' && focusReference();\n }\n };\n\n return (\n <MenuContext.Provider\n value={{\n hovered,\n radius,\n styles,\n classNames,\n onItemHover: setHovered,\n onItemKeyDown: handleKeyDown,\n onItemClick: handleItemClick,\n }}\n >\n <Box\n ref={setWrapperElement}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n className={cx(classes.root, className)}\n sx={sx}\n {...others}\n >\n {menuControl}\n\n <Popper\n referenceElement={referenceElement}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n transition={transition}\n mounted={_opened}\n position={position}\n placement={placement}\n gutter={gutter}\n withArrow={withArrow}\n arrowSize={3}\n zIndex={zIndex}\n arrowClassName={classes.arrow}\n withinPortal={withinPortal}\n >\n <Paper\n shadow={shadow}\n className={classes.body}\n role=\"menu\"\n aria-orientation=\"vertical\"\n radius={radius}\n onMouseLeave={() => setHovered(-1)}\n ref={setDropdownElement}\n id={uuid}\n {...others}\n >\n {children}\n </Paper>\n </Popper>\n </Box>\n </MenuContext.Provider>\n );\n }\n) as any;\n\nMenu.Item = MenuItem;\nMenu.Label = MenuLabel;\n\nMenu.displayName = '@mantine/core/Menu';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, { useState, useRef, cloneElement, forwardRef } from 'react';\nimport {\n useClickOutside,\n useMergedRef,\n useWindowEvent,\n useUncontrolled,\n useUuid,\n} from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineShadow,\n ClassNames,\n getDefaultZIndex,\n ForwardRefWithStaticComponents,\n useMantineDefaultProps,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport { Paper } from '../Paper';\nimport { ActionIcon } from '../ActionIcon';\nimport { Popper, SharedPopperProps } from '../Popper';\nimport { MenuIcon } from './MenuIcon';\nimport { MenuItem, MenuItemStylesNames } from './MenuItem/MenuItem';\nimport { MenuLabel, MenuLabelStylesNames } from './MenuLabel/MenuLabel';\nimport { MenuProvider } from './Menu.context';\nimport useStyles from './Menu.styles';\n\nexport type MenuStylesNames =\n | ClassNames<typeof useStyles>\n | MenuItemStylesNames\n | MenuLabelStylesNames;\n\nexport interface MenuProps\n extends DefaultProps<MenuStylesNames>,\n SharedPopperProps,\n React.ComponentPropsWithRef<'div'> {\n /** <MenuItem /> and <Divider /> components only, children are passed to MenuBody component */\n children: React.ReactNode;\n\n /** React element that will be used as menu control */\n control?: React.ReactElement;\n\n /** Use opened and onClose props to setup controlled menu */\n opened?: boolean;\n\n /** Called every time menu is closed */\n onClose?(): void;\n\n /** Called every time menu is opened */\n onOpen?(): void;\n\n /** Menu button aria-label and title props */\n menuButtonLabel?: string;\n\n /** Predefined menu width or number for width in px */\n size?: MantineNumberSize | 'auto';\n\n /** Predefined shadow from theme or box-shadow value */\n shadow?: MantineShadow;\n\n /** Should menu close on item click */\n closeOnItemClick?: boolean;\n\n /** Id attribute of menu */\n menuId?: string;\n\n /** Control prop to get element ref */\n controlRefProp?: string;\n\n /** Menu body z-index */\n zIndex?: number;\n\n /** Event which should open menu */\n trigger?: 'click' | 'hover';\n\n /** Close delay for hover trigger */\n delay?: number;\n\n /** Menu body and items border-radius */\n radius?: MantineNumberSize;\n\n /** Close menu on scroll */\n closeOnScroll?: boolean;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n\n /** Should focus be trapped when menu is opened */\n trapFocus?: boolean;\n\n /** Events that should trigger outside clicks */\n clickOutsideEvents?: string[];\n}\n\nconst defaultControl = (\n <ActionIcon>\n <MenuIcon />\n </ActionIcon>\n);\n\ntype MenuComponent = ForwardRefWithStaticComponents<\n MenuProps,\n { Item: typeof MenuItem; Label: typeof MenuLabel }\n>;\n\nfunction getNextItem(active: number, items: HTMLButtonElement[]) {\n for (let i = active + 1; i < items.length; i += 1) {\n if (!items[i].disabled) {\n return i;\n }\n }\n\n return active;\n}\n\nfunction findInitialItem(items: HTMLButtonElement[]) {\n for (let i = 0; i < items.length; i += 1) {\n if (!items[i].disabled) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction getPreviousItem(active: number, items: HTMLButtonElement[]) {\n for (let i = active - 1; i >= 0; i -= 1) {\n if (!items[i].disabled) {\n return i;\n }\n }\n\n if (!items[active]) {\n return findInitialItem(items);\n }\n\n return active;\n}\n\nconst defaultProps: Partial<MenuProps> = {\n control: defaultControl,\n closeOnItemClick: true,\n transitionDuration: 150,\n size: 'md',\n shadow: 'md',\n position: 'bottom',\n placement: 'start',\n gutter: 5,\n withArrow: false,\n transition: 'pop-top-left',\n controlRefProp: 'ref',\n trigger: 'click',\n radius: 'sm',\n delay: 100,\n zIndex: getDefaultZIndex('popover'),\n withinPortal: true,\n trapFocus: true,\n closeOnScroll: false,\n clickOutsideEvents: ['mousedown', 'touchstart'],\n};\n\nexport const Menu: MenuComponent = forwardRef<HTMLButtonElement, MenuProps>(\n (props: MenuProps, ref) => {\n const {\n control,\n children,\n onClose,\n onOpen,\n opened,\n menuId,\n closeOnItemClick,\n transitionDuration,\n size,\n shadow,\n position,\n placement,\n gutter,\n withArrow,\n transition,\n transitionTimingFunction,\n menuButtonLabel,\n controlRefProp,\n trigger,\n radius,\n delay,\n zIndex,\n withinPortal,\n trapFocus,\n classNames,\n styles,\n closeOnScroll,\n onMouseLeave,\n onMouseEnter,\n onChange,\n className,\n sx,\n clickOutsideEvents,\n ...others\n } = useMantineDefaultProps('Menu', defaultProps, props);\n const [hovered, setHovered] = useState(-1);\n const { classes, cx } = useStyles({ size }, { classNames, styles, name: 'Menu' });\n const delayTimeout = useRef<number>();\n const [referenceElement, setReferenceElement] = useState<HTMLButtonElement>(null);\n const [wrapperElement, setWrapperElement] = useState<HTMLDivElement>(null);\n const [dropdownElement, setDropdownElement] = useState<HTMLDivElement>(null);\n const uuid = useUuid(menuId);\n\n const focusReference = () => window.setTimeout(() => referenceElement?.focus(), 0);\n\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: false,\n finalValue: false,\n rule: (val) => typeof val === 'boolean',\n onChange: (value) =>\n value\n ? typeof onOpen === 'function' && onOpen()\n : typeof onClose === 'function' && onClose(),\n });\n\n const openedRef = useRef(_opened);\n\n const handleClose = () => {\n if (openedRef.current) {\n openedRef.current = false;\n setOpened(false);\n }\n };\n\n const handleOpen = () => {\n openedRef.current = true;\n setOpened(true);\n };\n\n useWindowEvent('scroll', () => closeOnScroll && handleClose());\n\n useClickOutside(() => _opened && handleClose(), clickOutsideEvents, [\n dropdownElement,\n wrapperElement,\n ]);\n\n const toggleMenu = () => {\n _opened ? handleClose() : handleOpen();\n };\n\n const controlEventHandlers =\n trigger === 'click'\n ? { onClick: toggleMenu }\n : { onMouseEnter: handleOpen, onClick: toggleMenu };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n typeof onMouseLeave === 'function' && onMouseLeave(event);\n\n if (trigger === 'hover') {\n if (delay > 0) {\n delayTimeout.current = window.setTimeout(() => handleClose(), delay);\n } else {\n handleClose();\n }\n }\n };\n\n const handleMouseEnter = (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n typeof onMouseEnter === 'function' && onMouseEnter(event);\n window.clearTimeout(delayTimeout.current);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n if (_opened) {\n const elements = Array.from(\n dropdownElement.querySelectorAll<HTMLButtonElement>('.mantine-Menu-item')\n );\n\n if (event.nativeEvent.code === 'Tab' && trapFocus) {\n event.preventDefault();\n }\n\n if (event.nativeEvent.code === 'ArrowDown') {\n event.preventDefault();\n const prevIndex = getNextItem(hovered, elements);\n setHovered(prevIndex);\n elements[prevIndex].focus();\n }\n\n if (event.nativeEvent.code === 'ArrowUp') {\n event.preventDefault();\n const prevIndex = getPreviousItem(hovered, elements);\n setHovered(prevIndex);\n elements[prevIndex].focus();\n }\n\n if (event.nativeEvent.code === 'Escape') {\n handleClose();\n focusReference();\n }\n }\n };\n\n const menuControl = cloneElement(control, {\n ...controlEventHandlers,\n onClick: (event: React.MouseEvent<any>) => {\n controlEventHandlers.onClick();\n typeof control.props.onClick === 'function' && control.props.onClick(event);\n },\n role: 'button',\n 'aria-haspopup': 'menu',\n 'aria-expanded': _opened,\n 'aria-controls': uuid,\n 'aria-label': menuButtonLabel,\n title: menuButtonLabel,\n [controlRefProp]: useMergedRef(setReferenceElement, ref),\n onKeyDown: handleKeyDown,\n });\n\n const handleItemClick = () => {\n if (closeOnItemClick) {\n handleClose();\n trigger === 'click' && focusReference();\n }\n };\n\n return (\n <MenuProvider\n value={{\n hovered,\n radius,\n styles,\n classNames,\n onItemHover: setHovered,\n onItemKeyDown: handleKeyDown,\n onItemClick: handleItemClick,\n }}\n >\n <Box\n ref={setWrapperElement}\n onMouseLeave={handleMouseLeave}\n onMouseEnter={handleMouseEnter}\n className={cx(classes.root, className)}\n sx={sx}\n {...others}\n >\n {menuControl}\n\n <Popper\n referenceElement={referenceElement}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n transition={transition}\n mounted={_opened}\n position={position}\n placement={placement}\n gutter={gutter}\n withArrow={withArrow}\n arrowSize={3}\n zIndex={zIndex}\n arrowClassName={classes.arrow}\n withinPortal={withinPortal}\n >\n <Paper\n shadow={shadow}\n className={classes.body}\n role=\"menu\"\n aria-orientation=\"vertical\"\n radius={radius}\n onMouseLeave={() => setHovered(-1)}\n ref={setDropdownElement}\n id={uuid}\n {...others}\n >\n {children}\n </Paper>\n </Popper>\n </Box>\n </MenuProvider>\n );\n }\n) as any;\n\nMenu.Item = MenuItem;\nMenu.Label = MenuLabel;\n\nMenu.displayName = '@mantine/core/Menu';\n"],"names":[],"mappings":"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"}
|
|
@@ -54,7 +54,7 @@ const _MenuItem = forwardRef((_a, ref) => {
|
|
|
54
54
|
"onClick"
|
|
55
55
|
]);
|
|
56
56
|
const itemRef = useRef();
|
|
57
|
-
const { hovered, onItemHover, radius, onItemKeyDown, classNames, styles, onItemClick } = useMenuContext();
|
|
57
|
+
const { hovered, onItemHover, radius, onItemKeyDown, classNames, styles, onItemClick } = useMenuContext("Menu.Item");
|
|
58
58
|
const { classes, cx } = useStyles({ color, radius }, { classNames, styles, name: "Menu" });
|
|
59
59
|
const itemIndex = getContextItemIndex({ elementSelector: ".mantine-Menu-item", parentClassName: "mantine-Menu-body" }, itemRef.current);
|
|
60
60
|
return /* @__PURE__ */ React.createElement(Box, __spreadValues({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.js","sources":["../../../../src/components/Menu/MenuItem/MenuItem.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { ClassNames, PolymorphicComponentProps, DefaultProps, MantineColor } from '@mantine/styles';\nimport { mergeRefs } from '@mantine/hooks';\nimport { Box } from '../../Box';\nimport { useMenuContext } from '../Menu.context';\nimport { getContextItemIndex } from '../../../utils';\nimport useStyles from './MenuItem.styles';\n\nexport type MenuItemStylesNames = ClassNames<typeof useStyles>;\n\nexport interface SharedMenuItemProps extends DefaultProps {\n /** Item label */\n children: React.ReactNode;\n\n /** Icon rendered on the left side of label */\n icon?: React.ReactNode;\n\n /** Any color from theme.colors */\n color?: MantineColor;\n\n /** Any react node to render on the right side of item, for example, keyboard shortcut or badge */\n rightSection?: React.ReactNode;\n\n /** Is item disabled */\n disabled?: boolean;\n}\n\ninterface _MenuItemProps\n extends SharedMenuItemProps,\n Omit<React.ComponentPropsWithoutRef<'button'>, keyof SharedMenuItemProps> {\n component: any;\n}\n\nexport const _MenuItem = forwardRef(\n (\n {\n className,\n children,\n icon,\n color,\n disabled,\n rightSection,\n component,\n onClick,\n ...others\n }: _MenuItemProps,\n ref: React.ForwardedRef<HTMLButtonElement>\n ) => {\n const itemRef = useRef<HTMLButtonElement>();\n const { hovered, onItemHover, radius, onItemKeyDown, classNames, styles, onItemClick } =\n useMenuContext();\n const { classes, cx } = useStyles({ color, radius }, { classNames, styles, name: 'Menu' });\n const itemIndex = getContextItemIndex(\n { elementSelector: '.mantine-Menu-item', parentClassName: 'mantine-Menu-body' },\n itemRef.current\n );\n\n return (\n <Box\n component={component || 'button'}\n type=\"button\"\n role=\"menuitem\"\n className={cx(classes.item, { [classes.itemHovered]: hovered === itemIndex }, className)}\n onMouseEnter={() => !disabled && onItemHover(itemIndex)}\n onMouseLeave={() => onItemHover(-1)}\n onKeyDown={onItemKeyDown}\n ref={mergeRefs(ref, itemRef)}\n disabled={disabled}\n onClick={(event: React.MouseEvent<any, MouseEvent>) => {\n typeof onClick === 'function' && onClick(event);\n onItemClick();\n }}\n {...others}\n >\n <div className={classes.itemInner}>\n {icon && <div className={classes.itemIcon}>{icon}</div>}\n\n <div className={classes.itemBody}>\n <div className={classes.itemLabel}>{children}</div>\n {rightSection}\n </div>\n </div>\n </Box>\n );\n }\n);\n\nexport type MenuItemProps<C> = PolymorphicComponentProps<C, SharedMenuItemProps>;\ntype MenuItemComponent = <C = 'button'>(props: MenuItemProps<C>) => React.ReactElement;\n\nexport const MenuItem: MenuItemComponent & { displayName?: string } = _MenuItem as any;\n\nMenuItem.displayName = '@mantine/core/MenuItem';\n"],"names":[],"mappings":";;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,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,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;AAOU,MAAC,SAAS,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK;AACjD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,SAAS;AACb,IAAI,OAAO;AACX,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,WAAW;AACf,IAAI,SAAS;AACb,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAC3B,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"MenuItem.js","sources":["../../../../src/components/Menu/MenuItem/MenuItem.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { ClassNames, PolymorphicComponentProps, DefaultProps, MantineColor } from '@mantine/styles';\nimport { mergeRefs } from '@mantine/hooks';\nimport { Box } from '../../Box';\nimport { useMenuContext } from '../Menu.context';\nimport { getContextItemIndex } from '../../../utils';\nimport useStyles from './MenuItem.styles';\n\nexport type MenuItemStylesNames = ClassNames<typeof useStyles>;\n\nexport interface SharedMenuItemProps extends DefaultProps {\n /** Item label */\n children: React.ReactNode;\n\n /** Icon rendered on the left side of label */\n icon?: React.ReactNode;\n\n /** Any color from theme.colors */\n color?: MantineColor;\n\n /** Any react node to render on the right side of item, for example, keyboard shortcut or badge */\n rightSection?: React.ReactNode;\n\n /** Is item disabled */\n disabled?: boolean;\n}\n\ninterface _MenuItemProps\n extends SharedMenuItemProps,\n Omit<React.ComponentPropsWithoutRef<'button'>, keyof SharedMenuItemProps> {\n component: any;\n}\n\nexport const _MenuItem = forwardRef(\n (\n {\n className,\n children,\n icon,\n color,\n disabled,\n rightSection,\n component,\n onClick,\n ...others\n }: _MenuItemProps,\n ref: React.ForwardedRef<HTMLButtonElement>\n ) => {\n const itemRef = useRef<HTMLButtonElement>();\n const { hovered, onItemHover, radius, onItemKeyDown, classNames, styles, onItemClick } =\n useMenuContext('Menu.Item');\n const { classes, cx } = useStyles({ color, radius }, { classNames, styles, name: 'Menu' });\n const itemIndex = getContextItemIndex(\n { elementSelector: '.mantine-Menu-item', parentClassName: 'mantine-Menu-body' },\n itemRef.current\n );\n\n return (\n <Box\n component={component || 'button'}\n type=\"button\"\n role=\"menuitem\"\n className={cx(classes.item, { [classes.itemHovered]: hovered === itemIndex }, className)}\n onMouseEnter={() => !disabled && onItemHover(itemIndex)}\n onMouseLeave={() => onItemHover(-1)}\n onKeyDown={onItemKeyDown}\n ref={mergeRefs(ref, itemRef)}\n disabled={disabled}\n onClick={(event: React.MouseEvent<any, MouseEvent>) => {\n typeof onClick === 'function' && onClick(event);\n onItemClick();\n }}\n {...others}\n >\n <div className={classes.itemInner}>\n {icon && <div className={classes.itemIcon}>{icon}</div>}\n\n <div className={classes.itemBody}>\n <div className={classes.itemLabel}>{children}</div>\n {rightSection}\n </div>\n </div>\n </Box>\n );\n }\n);\n\nexport type MenuItemProps<C> = PolymorphicComponentProps<C, SharedMenuItemProps>;\ntype MenuItemComponent = <C = 'button'>(props: MenuItemProps<C>) => React.ReactElement;\n\nexport const MenuItem: MenuItemComponent & { displayName?: string } = _MenuItem as any;\n\nMenuItem.displayName = '@mantine/core/MenuItem';\n"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ var __spreadValues = (a, b) => {
|
|
|
20
20
|
return a;
|
|
21
21
|
};
|
|
22
22
|
function MenuLabel(props) {
|
|
23
|
-
const { classNames, styles } = useMenuContext("Label");
|
|
23
|
+
const { classNames, styles } = useMenuContext("Menu.Label");
|
|
24
24
|
const { classes } = useStyles(null, { name: "Menu", classNames, styles });
|
|
25
25
|
return /* @__PURE__ */ React.createElement(Text, __spreadValues({
|
|
26
26
|
className: classes.label
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuLabel.js","sources":["../../../../src/components/Menu/MenuLabel/MenuLabel.tsx"],"sourcesContent":["import React from 'react';\nimport { ClassNames, DefaultProps } from '@mantine/styles';\nimport { SharedTextProps, Text } from '../../Text/Text';\nimport { useMenuContext } from '../Menu.context';\nimport useStyles from './MenuLabel.styles';\n\nexport type MenuLabelStylesNames = ClassNames<typeof useStyles>;\n\nexport interface MenuLabelProps\n extends DefaultProps,\n SharedTextProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'color'> {\n /** Label content */\n children: React.ReactNode;\n}\n\nexport interface MenuLabelType {\n type: any;\n props: MenuLabelProps;\n ref?: React.RefObject<HTMLButtonElement> | ((instance: HTMLButtonElement) => void);\n}\n\nexport function MenuLabel(props: MenuLabelProps) {\n const { classNames, styles } = useMenuContext('Label');\n const { classes } = useStyles(null, { name: 'Menu', classNames, styles });\n return <Text className={classes.label} {...props} />;\n}\n\nMenuLabel.displayName = '@mantine/core/MenuLabel';\n"],"names":[],"mappings":";;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,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;AAKK,SAAS,SAAS,CAAC,KAAK,EAAE;AACjC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"MenuLabel.js","sources":["../../../../src/components/Menu/MenuLabel/MenuLabel.tsx"],"sourcesContent":["import React from 'react';\nimport { ClassNames, DefaultProps } from '@mantine/styles';\nimport { SharedTextProps, Text } from '../../Text/Text';\nimport { useMenuContext } from '../Menu.context';\nimport useStyles from './MenuLabel.styles';\n\nexport type MenuLabelStylesNames = ClassNames<typeof useStyles>;\n\nexport interface MenuLabelProps\n extends DefaultProps,\n SharedTextProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'color'> {\n /** Label content */\n children: React.ReactNode;\n}\n\nexport interface MenuLabelType {\n type: any;\n props: MenuLabelProps;\n ref?: React.RefObject<HTMLButtonElement> | ((instance: HTMLButtonElement) => void);\n}\n\nexport function MenuLabel(props: MenuLabelProps) {\n const { classNames, styles } = useMenuContext('Menu.Label');\n const { classes } = useStyles(null, { name: 'Menu', classNames, styles });\n return <Text className={classes.label} {...props} />;\n}\n\nMenuLabel.displayName = '@mantine/core/MenuLabel';\n"],"names":[],"mappings":";;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,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;AAKK,SAAS,SAAS,CAAC,KAAK,EAAE;AACjC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AAC9D,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5E,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC;AAClE,IAAI,SAAS,EAAE,OAAO,CAAC,KAAK;AAC5B,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACb,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,yBAAyB;;;;"}
|
|
@@ -116,7 +116,7 @@ const PasswordInput = forwardRef((props, ref) => {
|
|
|
116
116
|
]);
|
|
117
117
|
const theme = useMantineTheme();
|
|
118
118
|
const rightSectionWidth = theme.fn.size({ size, sizes: rightSectionSizes });
|
|
119
|
-
const { classes, cx } = useStyles({ size, rightSectionWidth }, { name: "PasswordInput" });
|
|
119
|
+
const { classes, cx } = useStyles({ size, rightSectionWidth }, { name: "PasswordInput", classNames, styles });
|
|
120
120
|
const uuid = useUuid(id);
|
|
121
121
|
const { systemStyles, rest } = extractSystemStyles(others);
|
|
122
122
|
const [reveal, toggle] = useBooleanToggle(false);
|
|
@@ -158,7 +158,7 @@ const PasswordInput = forwardRef((props, ref) => {
|
|
|
158
158
|
invalid: !!error,
|
|
159
159
|
icon,
|
|
160
160
|
size,
|
|
161
|
-
classNames: __spreadProps(__spreadValues({}, classNames), { input:
|
|
161
|
+
classNames: __spreadProps(__spreadValues({}, classNames), { input: classes.input }),
|
|
162
162
|
styles,
|
|
163
163
|
radius,
|
|
164
164
|
disabled,
|
|
@@ -169,7 +169,7 @@ const PasswordInput = forwardRef((props, ref) => {
|
|
|
169
169
|
}, /* @__PURE__ */ React.createElement("input", __spreadValues({
|
|
170
170
|
type: reveal ? "text" : "password",
|
|
171
171
|
required,
|
|
172
|
-
className: cx(classes.innerInput,
|
|
172
|
+
className: cx(classes.innerInput, {
|
|
173
173
|
[classes.withIcon]: icon,
|
|
174
174
|
[classes.invalid]: !!error
|
|
175
175
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasswordInput.js","sources":["../../../src/components/PasswordInput/PasswordInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useBooleanToggle, useUuid } from '@mantine/hooks';\nimport {\n ClassNames,\n DefaultProps,\n extractSystemStyles,\n useMantineTheme,\n useMantineDefaultProps,\n} from '@mantine/styles';\nimport { ActionIcon } from '../ActionIcon';\nimport { TextInputProps, TextInputStylesNames } from '../TextInput';\nimport { Input } from '../Input';\nimport { InputWrapper } from '../InputWrapper';\nimport { PasswordToggleIcon } from './PasswordToggleIcon';\nimport useStyles from './PasswordInput.styles';\n\nexport type PasswordInputStylesNames = ClassNames<typeof useStyles> | TextInputStylesNames;\n\nexport interface PasswordInputProps\n extends DefaultProps<PasswordInputStylesNames>,\n Omit<TextInputProps, 'classNames' | 'styles'> {\n /** Toggle button tabIndex, set to 0 to make button focusable with tab key */\n toggleTabIndex?: -1 | 0;\n\n /** Provide your own visibility toggle icon */\n visibilityToggleIcon?: React.FC<{ reveal: boolean; size: number }>;\n}\n\nconst buttonSizes = {\n xs: 22,\n sm: 28,\n md: 26,\n lg: 32,\n xl: 40,\n};\n\nconst iconSizes = {\n xs: 12,\n sm: 15,\n md: 17,\n lg: 19,\n xl: 21,\n};\n\nconst rightSectionSizes = {\n xs: 28,\n sm: 34,\n md: 34,\n lg: 44,\n xl: 54,\n};\n\nconst defaultProps: Partial<PasswordInputProps> = {\n radius: 'sm',\n size: 'sm',\n toggleTabIndex: -1,\n visibilityToggleIcon: PasswordToggleIcon,\n __staticSelector: 'PasswordInput',\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (props: PasswordInputProps, ref) => {\n const {\n radius,\n disabled,\n size,\n toggleTabIndex,\n className,\n id,\n label,\n error,\n required,\n style,\n icon,\n description,\n wrapperProps,\n classNames,\n styles,\n variant,\n visibilityToggleIcon: VisibilityToggleIcon,\n __staticSelector,\n rightSection: _rightSection,\n rightSectionWidth: _rightSectionWidth,\n rightSectionProps: _rightSectionProps,\n sx,\n ...others\n } = useMantineDefaultProps('PasswordInput', defaultProps, props);\n\n const theme = useMantineTheme();\n const rightSectionWidth = theme.fn.size({ size, sizes: rightSectionSizes });\n const { classes, cx } = useStyles({ size, rightSectionWidth }, { name: 'PasswordInput' });\n const uuid = useUuid(id);\n const { systemStyles, rest } = extractSystemStyles(others);\n const [reveal, toggle] = useBooleanToggle(false);\n\n const rightSection = (\n <ActionIcon<'button'>\n className={classes.visibilityToggle}\n tabIndex={toggleTabIndex}\n radius={radius}\n size={theme.fn.size({ size, sizes: buttonSizes })}\n aria-hidden\n onMouseDown={(event) => {\n event.preventDefault();\n toggle();\n }}\n onKeyDown={(event) => {\n if (event.nativeEvent.code === 'Space') {\n event.preventDefault();\n toggle();\n }\n }}\n >\n <VisibilityToggleIcon reveal={reveal} size={theme.fn.size({ size, sizes: iconSizes })} />\n </ActionIcon>\n );\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 style={style}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n sx={sx}\n {...systemStyles}\n {...wrapperProps}\n >\n <Input<'div'>\n component=\"div\"\n invalid={!!error}\n icon={icon}\n size={size}\n classNames={{ ...classNames, input: cx(classes.input, classNames?.input) }}\n styles={styles}\n radius={radius}\n disabled={disabled}\n __staticSelector={__staticSelector}\n rightSectionWidth={rightSectionWidth}\n rightSection={!disabled && rightSection}\n variant={variant}\n >\n <input\n type={reveal ? 'text' : 'password'}\n required={required}\n className={cx(classes.innerInput, classNames?.innerInput, {\n [classes.withIcon]: icon,\n [classes.invalid]: !!error,\n })}\n disabled={disabled}\n id={uuid}\n ref={ref}\n {...rest}\n />\n </Input>\n </InputWrapper>\n );\n }\n);\n\nPasswordInput.displayName = '@mantine/core/PasswordInput';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PasswordInput.js","sources":["../../../src/components/PasswordInput/PasswordInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useBooleanToggle, useUuid } from '@mantine/hooks';\nimport {\n ClassNames,\n DefaultProps,\n extractSystemStyles,\n useMantineTheme,\n useMantineDefaultProps,\n} from '@mantine/styles';\nimport { ActionIcon } from '../ActionIcon';\nimport { TextInputProps, TextInputStylesNames } from '../TextInput';\nimport { Input } from '../Input';\nimport { InputWrapper } from '../InputWrapper';\nimport { PasswordToggleIcon } from './PasswordToggleIcon';\nimport useStyles from './PasswordInput.styles';\n\nexport type PasswordInputStylesNames = ClassNames<typeof useStyles> | TextInputStylesNames;\n\nexport interface PasswordInputProps\n extends DefaultProps<PasswordInputStylesNames>,\n Omit<TextInputProps, 'classNames' | 'styles'> {\n /** Toggle button tabIndex, set to 0 to make button focusable with tab key */\n toggleTabIndex?: -1 | 0;\n\n /** Provide your own visibility toggle icon */\n visibilityToggleIcon?: React.FC<{ reveal: boolean; size: number }>;\n}\n\nconst buttonSizes = {\n xs: 22,\n sm: 28,\n md: 26,\n lg: 32,\n xl: 40,\n};\n\nconst iconSizes = {\n xs: 12,\n sm: 15,\n md: 17,\n lg: 19,\n xl: 21,\n};\n\nconst rightSectionSizes = {\n xs: 28,\n sm: 34,\n md: 34,\n lg: 44,\n xl: 54,\n};\n\nconst defaultProps: Partial<PasswordInputProps> = {\n radius: 'sm',\n size: 'sm',\n toggleTabIndex: -1,\n visibilityToggleIcon: PasswordToggleIcon,\n __staticSelector: 'PasswordInput',\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (props: PasswordInputProps, ref) => {\n const {\n radius,\n disabled,\n size,\n toggleTabIndex,\n className,\n id,\n label,\n error,\n required,\n style,\n icon,\n description,\n wrapperProps,\n classNames,\n styles,\n variant,\n visibilityToggleIcon: VisibilityToggleIcon,\n __staticSelector,\n rightSection: _rightSection,\n rightSectionWidth: _rightSectionWidth,\n rightSectionProps: _rightSectionProps,\n sx,\n ...others\n } = useMantineDefaultProps('PasswordInput', defaultProps, props);\n\n const theme = useMantineTheme();\n const rightSectionWidth = theme.fn.size({ size, sizes: rightSectionSizes });\n const { classes, cx } = useStyles(\n { size, rightSectionWidth },\n { name: 'PasswordInput', classNames, styles }\n );\n const uuid = useUuid(id);\n const { systemStyles, rest } = extractSystemStyles(others);\n const [reveal, toggle] = useBooleanToggle(false);\n\n const rightSection = (\n <ActionIcon<'button'>\n className={classes.visibilityToggle}\n tabIndex={toggleTabIndex}\n radius={radius}\n size={theme.fn.size({ size, sizes: buttonSizes })}\n aria-hidden\n onMouseDown={(event) => {\n event.preventDefault();\n toggle();\n }}\n onKeyDown={(event) => {\n if (event.nativeEvent.code === 'Space') {\n event.preventDefault();\n toggle();\n }\n }}\n >\n <VisibilityToggleIcon reveal={reveal} size={theme.fn.size({ size, sizes: iconSizes })} />\n </ActionIcon>\n );\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 style={style}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n sx={sx}\n {...systemStyles}\n {...wrapperProps}\n >\n <Input<'div'>\n component=\"div\"\n invalid={!!error}\n icon={icon}\n size={size}\n classNames={{ ...classNames, input: classes.input }}\n styles={styles}\n radius={radius}\n disabled={disabled}\n __staticSelector={__staticSelector}\n rightSectionWidth={rightSectionWidth}\n rightSection={!disabled && rightSection}\n variant={variant}\n >\n <input\n type={reveal ? 'text' : 'password'}\n required={required}\n className={cx(classes.innerInput, {\n [classes.withIcon]: icon,\n [classes.invalid]: !!error,\n })}\n disabled={disabled}\n id={uuid}\n ref={ref}\n {...rest}\n />\n </Input>\n </InputWrapper>\n );\n }\n);\n\nPasswordInput.displayName = '@mantine/core/PasswordInput';\n"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,7 @@ const RangeSlider = forwardRef((props, ref) => {
|
|
|
69
69
|
max,
|
|
70
70
|
minRange,
|
|
71
71
|
step,
|
|
72
|
+
precision,
|
|
72
73
|
defaultValue,
|
|
73
74
|
name,
|
|
74
75
|
marks,
|
|
@@ -94,6 +95,7 @@ const RangeSlider = forwardRef((props, ref) => {
|
|
|
94
95
|
"max",
|
|
95
96
|
"minRange",
|
|
96
97
|
"step",
|
|
98
|
+
"precision",
|
|
97
99
|
"defaultValue",
|
|
98
100
|
"name",
|
|
99
101
|
"marks",
|
|
@@ -158,7 +160,7 @@ const RangeSlider = forwardRef((props, ref) => {
|
|
|
158
160
|
}
|
|
159
161
|
};
|
|
160
162
|
const handleChange = (val) => {
|
|
161
|
-
const nextValue = getChangeValue({ value: val, min, max, step });
|
|
163
|
+
const nextValue = getChangeValue({ value: val, min, max, step, precision });
|
|
162
164
|
setRangedValue(nextValue, thumbIndex.current, false);
|
|
163
165
|
};
|
|
164
166
|
const { ref: container, active } = useMove(({ x }) => handleChange(x), { onScrubEnd: () => onChangeEnd == null ? void 0 : onChangeEnd(valueRef.current) }, theme.dir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSlider.js","sources":["../../../../src/components/Slider/RangeSlider/RangeSlider.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef, useEffect } from 'react';\nimport { useMove, useUncontrolled, useMergedRef } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineColor,\n useMantineTheme,\n useMantineDefaultProps,\n} from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { getClientPosition } from '../utils/get-client-position/get-client-position';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { getChangeValue } from '../utils/get-change-value/get-change-value';\nimport { Thumb, ThumbStylesNames } from '../Thumb/Thumb';\nimport { Track, TrackStylesNames } from '../Track/Track';\nimport { MarksStylesNames } from '../Marks/Marks';\nimport { SliderRoot, SliderRootStylesNames } from '../SliderRoot/SliderRoot';\n\nexport type RangeSliderStylesNames =\n | SliderRootStylesNames\n | ThumbStylesNames\n | TrackStylesNames\n | MarksStylesNames;\n\ntype Value = [number, number];\n\nexport interface RangeSliderProps\n extends DefaultProps<RangeSliderStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange' | 'defaultValue'> {\n /** Color from theme.colors */\n color?: MantineColor;\n\n /** Track border-radius from theme or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Predefined track and thumb size, number to set sizes in px */\n size?: MantineNumberSize;\n\n /** Minimal possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Minimal range interval */\n minRange?: number;\n\n /** Number by which value will be incremented/decremented with thumb drag and arrows */\n step?: number;\n\n /** Current value for controlled slider */\n value?: Value;\n\n /** Default value for uncontrolled slider */\n defaultValue?: Value;\n\n /** Called each time value changes */\n onChange?(value: Value): void;\n\n /** Called when user stops dragging slider or changes value with arrows */\n onChangeEnd?(value: Value): void;\n\n /** Hidden input name, use with uncontrolled variant */\n name?: string;\n\n /** Marks which will be placed on the track */\n marks?: { value: number; label?: React.ReactNode }[];\n\n /** Function to generate label or any react node to render instead, set to null to disable label */\n label?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Label appear/disappear transition */\n labelTransition?: MantineTransition;\n\n /** Label appear/disappear transition duration in ms */\n labelTransitionDuration?: number;\n\n /** Label appear/disappear transition timing function, defaults to theme.transitionRimingFunction */\n labelTransitionTimingFunction?: string;\n\n /** If true label will be not be hidden when user stops dragging */\n labelAlwaysOn?: boolean;\n\n /** First thumb aria-label */\n thumbFromLabel?: string;\n\n /** Second thumb aria-label */\n thumbToLabel?: string;\n\n /**If true slider label will appear on hover */\n showLabelOnHover?: boolean;\n\n /** Thumbs children, can be used to add icons */\n thumbChildren?: React.ReactNode;\n}\n\nconst defaultProps: Partial<RangeSliderProps> = {\n size: 'md',\n radius: 'xl',\n min: 0,\n max: 100,\n minRange: 10,\n step: 1,\n marks: [],\n label: (f) => f,\n labelTransition: 'skew-down',\n labelTransitionDuration: 0,\n labelAlwaysOn: false,\n thumbFromLabel: '',\n thumbToLabel: '',\n showLabelOnHover: true,\n};\n\nexport const RangeSlider = forwardRef<HTMLDivElement, RangeSliderProps>(\n (props: RangeSliderProps, ref) => {\n const {\n classNames,\n styles,\n color,\n value,\n onChange,\n onChangeEnd,\n size,\n radius,\n min,\n max,\n minRange,\n step,\n defaultValue,\n name,\n marks,\n label,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n thumbFromLabel,\n thumbToLabel,\n showLabelOnHover,\n thumbChildren,\n ...others\n } = useMantineDefaultProps('RangeSlider', defaultProps, props);\n\n const theme = useMantineTheme();\n const [focused, setFocused] = useState(-1);\n const [hovered, setHovered] = useState(false);\n const [_value, setValue] = useUncontrolled<Value>({\n value,\n defaultValue,\n finalValue: [min, max],\n rule: (val) => Array.isArray(val),\n onChange,\n });\n const valueRef = useRef(_value);\n const thumbs = useRef<HTMLDivElement[]>([]);\n const thumbIndex = useRef<number>(undefined);\n const positions = [\n getPosition({ value: _value[0], min, max }),\n getPosition({ value: _value[1], min, max }),\n ];\n\n const _setValue = (val: Value) => {\n setValue(val);\n valueRef.current = val;\n };\n\n useEffect(\n () => {\n if (Array.isArray(value)) {\n valueRef.current = value;\n }\n },\n Array.isArray(value) ? [value[0], value[1]] : [null, null]\n );\n\n const setRangedValue = (val: number, index: number, triggerChangeEnd: boolean) => {\n const clone: Value = [...valueRef.current];\n clone[index] = val;\n\n if (index === 0) {\n if (val > clone[1] - minRange) {\n clone[1] = Math.min(val + minRange, max);\n }\n\n if (val > (max - minRange || min)) {\n clone[index] = valueRef.current[index];\n }\n }\n\n if (index === 1) {\n if (val < clone[0] + minRange) {\n clone[0] = Math.max(val - minRange, min);\n }\n\n if (val < (minRange || min)) {\n clone[index] = valueRef.current[index];\n }\n }\n _setValue(clone);\n\n if (triggerChangeEnd) {\n onChangeEnd?.(valueRef.current);\n }\n };\n\n const handleChange = (val: number) => {\n const nextValue = getChangeValue({ value: val, min, max, step });\n setRangedValue(nextValue, thumbIndex.current, false);\n };\n\n const { ref: container, active } = useMove(\n ({ x }) => handleChange(x),\n { onScrubEnd: () => onChangeEnd?.(valueRef.current) },\n theme.dir\n );\n\n function handleThumbMouseDown(\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,\n index: number\n ) {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n thumbIndex.current = index;\n }\n\n const handleTrackMouseDownCapture = (\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>\n ) => {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n container.current.focus();\n const rect = container.current.getBoundingClientRect();\n const changePosition = getClientPosition(event.nativeEvent);\n const changeValue = getChangeValue({\n value: changePosition - rect.left,\n max,\n min,\n step,\n containerWidth: rect.width,\n });\n\n const nearestHandle =\n Math.abs(_value[0] - changeValue) > Math.abs(_value[1] - changeValue) ? 1 : 0;\n const _nearestHandle = theme.dir === 'ltr' ? nearestHandle : nearestHandle === 1 ? 0 : 1;\n\n thumbIndex.current = _nearestHandle;\n };\n\n const getFocusedThumbIndex = () => {\n if (focused !== 1 && focused !== 0) {\n setFocused(0);\n return 0;\n }\n\n return focused;\n };\n\n const handleTrackKeydownCapture = (event: React.KeyboardEvent<HTMLDivElement>) => {\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(Math.max(valueRef.current[focusedIndex] + step, min), max),\n focusedIndex,\n true\n );\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(\n Math.max(\n theme.dir === 'rtl'\n ? valueRef.current[focusedIndex] - step\n : valueRef.current[focusedIndex] + step,\n min\n ),\n max\n ),\n focusedIndex,\n true\n );\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(Math.max(valueRef.current[focusedIndex] - step, min), max),\n focusedIndex,\n true\n );\n break;\n }\n case 'ArrowLeft': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(\n Math.max(\n theme.dir === 'rtl'\n ? valueRef.current[focusedIndex] + step\n : valueRef.current[focusedIndex] - step,\n min\n ),\n max\n ),\n focusedIndex,\n true\n );\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n const sharedThumbProps = {\n max,\n min,\n color,\n size,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n onBlur: () => setFocused(-1),\n classNames,\n styles,\n };\n\n const hasArrayThumbChildren = Array.isArray(thumbChildren);\n\n return (\n <SliderRoot\n {...others}\n size={size}\n ref={useMergedRef(container, ref)}\n onTouchStartCapture={handleTrackMouseDownCapture}\n onTouchEndCapture={() => {\n thumbIndex.current = -1;\n }}\n onMouseDownCapture={handleTrackMouseDownCapture}\n onMouseUpCapture={() => {\n thumbIndex.current = -1;\n }}\n onKeyDownCapture={handleTrackKeydownCapture}\n styles={styles}\n classNames={classNames}\n >\n <Track\n offset={positions[0]}\n filled={positions[1] - positions[0]}\n marks={marks}\n size={size}\n radius={radius}\n color={color}\n min={min}\n max={max}\n value={_value[1]}\n styles={styles}\n classNames={classNames}\n onMouseEnter={showLabelOnHover ? () => setHovered(true) : undefined}\n onMouseLeave={showLabelOnHover ? () => setHovered(false) : undefined}\n onChange={(val) => {\n const nearestValue = Math.abs(_value[0] - val) > Math.abs(_value[1] - val) ? 1 : 0;\n const clone: Value = [..._value];\n clone[nearestValue] = val;\n _setValue(clone);\n }}\n >\n <Thumb\n {...sharedThumbProps}\n value={_value[0]}\n position={positions[0]}\n dragging={active}\n label={typeof label === 'function' ? label(_value[0]) : label}\n ref={(node) => {\n thumbs.current[0] = node;\n }}\n thumbLabel={thumbFromLabel}\n onMouseDown={(event) => handleThumbMouseDown(event, 0)}\n onFocus={() => setFocused(0)}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {hasArrayThumbChildren ? thumbChildren[0] : thumbChildren}\n </Thumb>\n\n <Thumb\n {...sharedThumbProps}\n thumbLabel={thumbToLabel}\n value={_value[1]}\n position={positions[1]}\n dragging={active}\n label={typeof label === 'function' ? label(_value[1]) : label}\n ref={(node) => {\n thumbs.current[1] = node;\n }}\n onMouseDown={(event) => handleThumbMouseDown(event, 1)}\n onFocus={() => setFocused(1)}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {hasArrayThumbChildren ? thumbChildren[1] : thumbChildren}\n </Thumb>\n </Track>\n\n <input type=\"hidden\" name={`${name}_from`} value={_value[0]} />\n <input type=\"hidden\" name={`${name}_to`} value={_value[1]} />\n </SliderRoot>\n );\n }\n);\n\nRangeSlider.displayName = '@mantine/core/RangeSlider';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RangeSlider.js","sources":["../../../../src/components/Slider/RangeSlider/RangeSlider.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef, useEffect } from 'react';\nimport { useMove, useUncontrolled, useMergedRef } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineColor,\n useMantineTheme,\n useMantineDefaultProps,\n} from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { getClientPosition } from '../utils/get-client-position/get-client-position';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { getChangeValue } from '../utils/get-change-value/get-change-value';\nimport { Thumb, ThumbStylesNames } from '../Thumb/Thumb';\nimport { Track, TrackStylesNames } from '../Track/Track';\nimport { MarksStylesNames } from '../Marks/Marks';\nimport { SliderRoot, SliderRootStylesNames } from '../SliderRoot/SliderRoot';\n\nexport type RangeSliderStylesNames =\n | SliderRootStylesNames\n | ThumbStylesNames\n | TrackStylesNames\n | MarksStylesNames;\n\ntype Value = [number, number];\n\nexport interface RangeSliderProps\n extends DefaultProps<RangeSliderStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange' | 'defaultValue'> {\n /** Color from theme.colors */\n color?: MantineColor;\n\n /** Track border-radius from theme or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Predefined track and thumb size, number to set sizes in px */\n size?: MantineNumberSize;\n\n /** Minimal possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Minimal range interval */\n minRange?: number;\n\n /** Number by which value will be incremented/decremented with thumb drag and arrows */\n step?: number;\n\n /** Amount of digits after the decimal point */\n precision?: number;\n\n /** Current value for controlled slider */\n value?: Value;\n\n /** Default value for uncontrolled slider */\n defaultValue?: Value;\n\n /** Called each time value changes */\n onChange?(value: Value): void;\n\n /** Called when user stops dragging slider or changes value with arrows */\n onChangeEnd?(value: Value): void;\n\n /** Hidden input name, use with uncontrolled variant */\n name?: string;\n\n /** Marks which will be placed on the track */\n marks?: { value: number; label?: React.ReactNode }[];\n\n /** Function to generate label or any react node to render instead, set to null to disable label */\n label?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Label appear/disappear transition */\n labelTransition?: MantineTransition;\n\n /** Label appear/disappear transition duration in ms */\n labelTransitionDuration?: number;\n\n /** Label appear/disappear transition timing function, defaults to theme.transitionRimingFunction */\n labelTransitionTimingFunction?: string;\n\n /** If true label will be not be hidden when user stops dragging */\n labelAlwaysOn?: boolean;\n\n /** First thumb aria-label */\n thumbFromLabel?: string;\n\n /** Second thumb aria-label */\n thumbToLabel?: string;\n\n /**If true slider label will appear on hover */\n showLabelOnHover?: boolean;\n\n /** Thumbs children, can be used to add icons */\n thumbChildren?: React.ReactNode;\n}\n\nconst defaultProps: Partial<RangeSliderProps> = {\n size: 'md',\n radius: 'xl',\n min: 0,\n max: 100,\n minRange: 10,\n step: 1,\n marks: [],\n label: (f) => f,\n labelTransition: 'skew-down',\n labelTransitionDuration: 0,\n labelAlwaysOn: false,\n thumbFromLabel: '',\n thumbToLabel: '',\n showLabelOnHover: true,\n};\n\nexport const RangeSlider = forwardRef<HTMLDivElement, RangeSliderProps>(\n (props: RangeSliderProps, ref) => {\n const {\n classNames,\n styles,\n color,\n value,\n onChange,\n onChangeEnd,\n size,\n radius,\n min,\n max,\n minRange,\n step,\n precision,\n defaultValue,\n name,\n marks,\n label,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n thumbFromLabel,\n thumbToLabel,\n showLabelOnHover,\n thumbChildren,\n ...others\n } = useMantineDefaultProps('RangeSlider', defaultProps, props);\n\n const theme = useMantineTheme();\n const [focused, setFocused] = useState(-1);\n const [hovered, setHovered] = useState(false);\n const [_value, setValue] = useUncontrolled<Value>({\n value,\n defaultValue,\n finalValue: [min, max],\n rule: (val) => Array.isArray(val),\n onChange,\n });\n const valueRef = useRef(_value);\n const thumbs = useRef<HTMLDivElement[]>([]);\n const thumbIndex = useRef<number>(undefined);\n const positions = [\n getPosition({ value: _value[0], min, max }),\n getPosition({ value: _value[1], min, max }),\n ];\n\n const _setValue = (val: Value) => {\n setValue(val);\n valueRef.current = val;\n };\n\n useEffect(\n () => {\n if (Array.isArray(value)) {\n valueRef.current = value;\n }\n },\n Array.isArray(value) ? [value[0], value[1]] : [null, null]\n );\n\n const setRangedValue = (val: number, index: number, triggerChangeEnd: boolean) => {\n const clone: Value = [...valueRef.current];\n clone[index] = val;\n\n if (index === 0) {\n if (val > clone[1] - minRange) {\n clone[1] = Math.min(val + minRange, max);\n }\n\n if (val > (max - minRange || min)) {\n clone[index] = valueRef.current[index];\n }\n }\n\n if (index === 1) {\n if (val < clone[0] + minRange) {\n clone[0] = Math.max(val - minRange, min);\n }\n\n if (val < (minRange || min)) {\n clone[index] = valueRef.current[index];\n }\n }\n _setValue(clone);\n\n if (triggerChangeEnd) {\n onChangeEnd?.(valueRef.current);\n }\n };\n\n const handleChange = (val: number) => {\n const nextValue = getChangeValue({ value: val, min, max, step, precision });\n setRangedValue(nextValue, thumbIndex.current, false);\n };\n\n const { ref: container, active } = useMove(\n ({ x }) => handleChange(x),\n { onScrubEnd: () => onChangeEnd?.(valueRef.current) },\n theme.dir\n );\n\n function handleThumbMouseDown(\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,\n index: number\n ) {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n thumbIndex.current = index;\n }\n\n const handleTrackMouseDownCapture = (\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>\n ) => {\n if (event.cancelable) {\n event.preventDefault();\n }\n\n container.current.focus();\n const rect = container.current.getBoundingClientRect();\n const changePosition = getClientPosition(event.nativeEvent);\n const changeValue = getChangeValue({\n value: changePosition - rect.left,\n max,\n min,\n step,\n containerWidth: rect.width,\n });\n\n const nearestHandle =\n Math.abs(_value[0] - changeValue) > Math.abs(_value[1] - changeValue) ? 1 : 0;\n const _nearestHandle = theme.dir === 'ltr' ? nearestHandle : nearestHandle === 1 ? 0 : 1;\n\n thumbIndex.current = _nearestHandle;\n };\n\n const getFocusedThumbIndex = () => {\n if (focused !== 1 && focused !== 0) {\n setFocused(0);\n return 0;\n }\n\n return focused;\n };\n\n const handleTrackKeydownCapture = (event: React.KeyboardEvent<HTMLDivElement>) => {\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(Math.max(valueRef.current[focusedIndex] + step, min), max),\n focusedIndex,\n true\n );\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(\n Math.max(\n theme.dir === 'rtl'\n ? valueRef.current[focusedIndex] - step\n : valueRef.current[focusedIndex] + step,\n min\n ),\n max\n ),\n focusedIndex,\n true\n );\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(Math.max(valueRef.current[focusedIndex] - step, min), max),\n focusedIndex,\n true\n );\n break;\n }\n case 'ArrowLeft': {\n event.preventDefault();\n const focusedIndex = getFocusedThumbIndex();\n thumbs.current[focusedIndex].focus();\n setRangedValue(\n Math.min(\n Math.max(\n theme.dir === 'rtl'\n ? valueRef.current[focusedIndex] + step\n : valueRef.current[focusedIndex] - step,\n min\n ),\n max\n ),\n focusedIndex,\n true\n );\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n const sharedThumbProps = {\n max,\n min,\n color,\n size,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n onBlur: () => setFocused(-1),\n classNames,\n styles,\n };\n\n const hasArrayThumbChildren = Array.isArray(thumbChildren);\n\n return (\n <SliderRoot\n {...others}\n size={size}\n ref={useMergedRef(container, ref)}\n onTouchStartCapture={handleTrackMouseDownCapture}\n onTouchEndCapture={() => {\n thumbIndex.current = -1;\n }}\n onMouseDownCapture={handleTrackMouseDownCapture}\n onMouseUpCapture={() => {\n thumbIndex.current = -1;\n }}\n onKeyDownCapture={handleTrackKeydownCapture}\n styles={styles}\n classNames={classNames}\n >\n <Track\n offset={positions[0]}\n filled={positions[1] - positions[0]}\n marks={marks}\n size={size}\n radius={radius}\n color={color}\n min={min}\n max={max}\n value={_value[1]}\n styles={styles}\n classNames={classNames}\n onMouseEnter={showLabelOnHover ? () => setHovered(true) : undefined}\n onMouseLeave={showLabelOnHover ? () => setHovered(false) : undefined}\n onChange={(val) => {\n const nearestValue = Math.abs(_value[0] - val) > Math.abs(_value[1] - val) ? 1 : 0;\n const clone: Value = [..._value];\n clone[nearestValue] = val;\n _setValue(clone);\n }}\n >\n <Thumb\n {...sharedThumbProps}\n value={_value[0]}\n position={positions[0]}\n dragging={active}\n label={typeof label === 'function' ? label(_value[0]) : label}\n ref={(node) => {\n thumbs.current[0] = node;\n }}\n thumbLabel={thumbFromLabel}\n onMouseDown={(event) => handleThumbMouseDown(event, 0)}\n onFocus={() => setFocused(0)}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {hasArrayThumbChildren ? thumbChildren[0] : thumbChildren}\n </Thumb>\n\n <Thumb\n {...sharedThumbProps}\n thumbLabel={thumbToLabel}\n value={_value[1]}\n position={positions[1]}\n dragging={active}\n label={typeof label === 'function' ? label(_value[1]) : label}\n ref={(node) => {\n thumbs.current[1] = node;\n }}\n onMouseDown={(event) => handleThumbMouseDown(event, 1)}\n onFocus={() => setFocused(1)}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {hasArrayThumbChildren ? thumbChildren[1] : thumbChildren}\n </Thumb>\n </Track>\n\n <input type=\"hidden\" name={`${name}_from`} value={_value[0]} />\n <input type=\"hidden\" name={`${name}_to`} value={_value[1]} />\n </SliderRoot>\n );\n }\n);\n\nRangeSlider.displayName = '@mantine/core/RangeSlider';\n"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,7 @@ const Slider = forwardRef((props, ref) => {
|
|
|
65
65
|
min,
|
|
66
66
|
max,
|
|
67
67
|
step,
|
|
68
|
+
precision,
|
|
68
69
|
defaultValue,
|
|
69
70
|
name,
|
|
70
71
|
marks,
|
|
@@ -88,6 +89,7 @@ const Slider = forwardRef((props, ref) => {
|
|
|
88
89
|
"min",
|
|
89
90
|
"max",
|
|
90
91
|
"step",
|
|
92
|
+
"precision",
|
|
91
93
|
"defaultValue",
|
|
92
94
|
"name",
|
|
93
95
|
"marks",
|
|
@@ -114,7 +116,7 @@ const Slider = forwardRef((props, ref) => {
|
|
|
114
116
|
const position = getPosition({ value: _value, min, max });
|
|
115
117
|
const _label = typeof label === "function" ? label(_value) : label;
|
|
116
118
|
const handleChange = (val) => {
|
|
117
|
-
const nextValue = getChangeValue({ value: val, min, max, step });
|
|
119
|
+
const nextValue = getChangeValue({ value: val, min, max, step, precision });
|
|
118
120
|
setValue(nextValue);
|
|
119
121
|
valueRef.current = nextValue;
|
|
120
122
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState } from 'react';\nimport { clamp, useMergedRef, useMove, useUncontrolled } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineColor,\n MantineNumberSize,\n useMantineDefaultProps,\n useMantineTheme,\n} from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { getChangeValue } from '../utils/get-change-value/get-change-value';\nimport { Thumb, ThumbStylesNames } from '../Thumb/Thumb';\nimport { Track, TrackStylesNames } from '../Track/Track';\nimport { MarksStylesNames } from '../Marks/Marks';\nimport { SliderRoot, SliderRootStylesNames } from '../SliderRoot/SliderRoot';\n\nexport type SliderStylesNames =\n | SliderRootStylesNames\n | ThumbStylesNames\n | TrackStylesNames\n | MarksStylesNames;\n\nexport interface SliderProps\n extends DefaultProps<SliderStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {\n /** Color from theme.colors */\n color?: MantineColor;\n\n /** Track border-radius from theme or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Predefined track and thumb size, number to set sizes in px */\n size?: MantineNumberSize;\n\n /** Minimal possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Number by which value will be incremented/decremented with thumb drag and arrows */\n step?: number;\n\n /** Current value for controlled slider */\n value?: number;\n\n /** Default value for uncontrolled slider */\n defaultValue?: number;\n\n /** Called each time value changes */\n onChange?(value: number): void;\n\n /** Called when user stops dragging slider or changes value with arrows */\n onChangeEnd?(value: number): void;\n\n /** Hidden input name, use with uncontrolled variant */\n name?: string;\n\n /** Marks which will be placed on the track */\n marks?: { value: number; label?: React.ReactNode }[];\n\n /** Function to generate label or any react node to render instead, set to null to disable label */\n label?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Label appear/disappear transition */\n labelTransition?: MantineTransition;\n\n /** Label appear/disappear transition duration in ms */\n labelTransitionDuration?: number;\n\n /** Label appear/disappear transition timing function, defaults to theme.transitionRimingFunction */\n labelTransitionTimingFunction?: string;\n\n /** If true label will be not be hidden when user stops dragging */\n labelAlwaysOn?: boolean;\n\n /** Thumb aria-label */\n thumbLabel?: string;\n\n /** If true slider label will appear on hover */\n showLabelOnHover?: boolean;\n\n /** Thumb children, can be used to add icon */\n thumbChildren?: React.ReactNode;\n}\n\nconst defaultProps: Partial<SliderProps> = {\n size: 'md',\n radius: 'xl',\n min: 0,\n max: 100,\n step: 1,\n marks: [],\n label: (f) => f,\n labelTransition: 'skew-down',\n labelTransitionDuration: 0,\n labelAlwaysOn: false,\n thumbLabel: '',\n showLabelOnHover: true,\n};\n\nexport const Slider = forwardRef<HTMLDivElement, SliderProps>((props: SliderProps, ref) => {\n const {\n classNames,\n styles,\n color,\n value,\n onChange,\n onChangeEnd,\n size,\n radius,\n min,\n max,\n step,\n defaultValue,\n name,\n marks,\n label,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n thumbLabel,\n showLabelOnHover,\n thumbChildren,\n ...others\n } = useMantineDefaultProps('Slider', defaultProps, props);\n\n const theme = useMantineTheme();\n const [hovered, setHovered] = useState(false);\n const [_value, setValue] = useUncontrolled({\n value: typeof value === 'number' ? clamp({ value, min, max }) : value,\n defaultValue:\n typeof defaultValue === 'number' ? clamp({ value: defaultValue, min, max }) : defaultValue,\n finalValue: clamp({ value: 0, min, max }),\n rule: (val) => typeof val === 'number',\n onChange,\n });\n\n const valueRef = useRef(_value);\n const thumb = useRef<HTMLDivElement>();\n const position = getPosition({ value: _value, min, max });\n const _label = typeof label === 'function' ? label(_value) : label;\n\n const handleChange = (val: number) => {\n const nextValue = getChangeValue({ value: val, min, max, step });\n setValue(nextValue);\n valueRef.current = nextValue;\n };\n\n const { ref: container, active } = useMove(\n ({ x }) => handleChange(x),\n { onScrubEnd: () => onChangeEnd?.(valueRef.current) },\n theme.dir\n );\n\n function handleThumbMouseDown(\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>\n ) {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n const handleTrackKeydownCapture = (event: React.KeyboardEvent<HTMLDivElement>) => {\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(Math.max(_value + step, min), max);\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(\n Math.max(theme.dir === 'rtl' ? _value - step : _value + step, min),\n max\n );\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(Math.max(_value - step, min), max);\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(\n Math.max(theme.dir === 'rtl' ? _value + step : _value - step, min),\n max\n );\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return (\n <SliderRoot\n {...others}\n size={size}\n ref={useMergedRef(container, ref)}\n onKeyDownCapture={handleTrackKeydownCapture}\n onMouseDownCapture={() => container.current?.focus()}\n classNames={classNames}\n styles={styles}\n >\n <Track\n offset={0}\n filled={position}\n marks={marks}\n size={size}\n radius={radius}\n color={color}\n min={min}\n max={max}\n value={_value}\n onChange={setValue}\n onMouseEnter={showLabelOnHover ? () => setHovered(true) : undefined}\n onMouseLeave={showLabelOnHover ? () => setHovered(false) : undefined}\n classNames={classNames}\n styles={styles}\n >\n <Thumb\n max={max}\n min={min}\n value={_value}\n position={position}\n dragging={active}\n color={color}\n size={size}\n label={_label}\n ref={thumb}\n onMouseDown={handleThumbMouseDown}\n labelTransition={labelTransition}\n labelTransitionDuration={labelTransitionDuration}\n labelTransitionTimingFunction={labelTransitionTimingFunction}\n labelAlwaysOn={labelAlwaysOn}\n classNames={classNames}\n styles={styles}\n thumbLabel={thumbLabel}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {thumbChildren}\n </Thumb>\n </Track>\n\n <input type=\"hidden\" name={name} value={_value} />\n </SliderRoot>\n );\n});\n\nSlider.displayName = '@mantine/core/Slider';\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;AAYF,MAAM,YAAY,GAAG;AACrB,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,GAAG,EAAE,GAAG;AACV,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;AACjB,EAAE,eAAe,EAAE,WAAW;AAC9B,EAAE,uBAAuB,EAAE,CAAC;AAC5B,EAAE,aAAa,EAAE,KAAK;AACtB,EAAE,UAAU,EAAE,EAAE;AAChB,EAAE,gBAAgB,EAAE,IAAI;AACxB,CAAC,CAAC;AACU,MAAC,MAAM,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACjD,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;AACpE,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,IAAI;AACR,IAAI,YAAY;AAChB,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,eAAe;AACnB,IAAI,uBAAuB;AAC3B,IAAI,6BAA6B;AACjC,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,IAAI,gBAAgB;AACpB,IAAI,aAAa;AACjB,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,aAAa;AACjB,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,cAAc;AAClB,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,iBAAiB;AACrB,IAAI,yBAAyB;AAC7B,IAAI,+BAA+B;AACnC,IAAI,eAAe;AACnB,IAAI,YAAY;AAChB,IAAI,kBAAkB;AACtB,IAAI,eAAe;AACnB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;AAClC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,eAAe,CAAC;AAC7C,IAAI,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK;AACzE,IAAI,YAAY,EAAE,OAAO,YAAY,KAAK,QAAQ,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,YAAY;AAC5G,IAAI,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC7C,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ;AAC1C,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,EAAE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;AACzB,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5D,EAAE,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AACrE,EAAE,MAAM,YAAY,GAAG,CAAC,GAAG,KAAK;AAChC,IAAI,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACrE,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxB,IAAI,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;AACjC,GAAG,CAAC;AACJ,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AACxK,EAAE,SAAS,oBAAoB,CAAC,KAAK,EAAE;AACvC,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;AAC7B,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;AAC9B,KAAK;AACL,GAAG;AACH,EAAE,MAAM,yBAAyB,GAAG,CAAC,KAAK,KAAK;AAC/C,IAAI,QAAQ,KAAK,CAAC,WAAW,CAAC,IAAI;AAClC,MAAM,KAAK,SAAS,EAAE;AACtB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC9B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACtE,QAAQ,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9D,QAAQ,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5B,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,YAAY,EAAE;AACzB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC9B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5G,QAAQ,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9D,QAAQ,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5B,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,WAAW,EAAE;AACxB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC9B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACtE,QAAQ,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9D,QAAQ,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5B,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,WAAW,EAAE;AACxB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC9B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5G,QAAQ,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;AAC9D,QAAQ,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5B,QAAQ,MAAM;AACd,OAAO;AAIP,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE;AACnG,IAAI,IAAI;AACR,IAAI,GAAG,EAAE,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC;AACrC,IAAI,gBAAgB,EAAE,yBAAyB;AAC/C,IAAI,kBAAkB,EAAE,MAAM;AAC9B,MAAM,IAAI,GAAG,CAAC;AACd,MAAM,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;AACtE,KAAK;AACL,IAAI,UAAU;AACd,IAAI,MAAM;AACV,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACjD,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,YAAY,EAAE,gBAAgB,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACpE,IAAI,YAAY,EAAE,gBAAgB,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACrE,IAAI,UAAU;AACd,IAAI,MAAM;AACV,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAChD,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,QAAQ;AACZ,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,GAAG,EAAE,KAAK;AACd,IAAI,WAAW,EAAE,oBAAoB;AACrC,IAAI,eAAe;AACnB,IAAI,uBAAuB;AAC3B,IAAI,6BAA6B;AACjC,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,gBAAgB,EAAE,gBAAgB,IAAI,OAAO;AACjD,GAAG,EAAE,aAAa,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AACnE,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI;AACR,IAAI,KAAK,EAAE,MAAM;AACjB,GAAG,CAAC,CAAC,CAAC;AACN,CAAC,EAAE;AACH,MAAM,CAAC,WAAW,GAAG,sBAAsB;;;;"}
|
|
1
|
+
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState } from 'react';\nimport { clamp, useMergedRef, useMove, useUncontrolled } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineColor,\n MantineNumberSize,\n useMantineDefaultProps,\n useMantineTheme,\n} from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { getChangeValue } from '../utils/get-change-value/get-change-value';\nimport { Thumb, ThumbStylesNames } from '../Thumb/Thumb';\nimport { Track, TrackStylesNames } from '../Track/Track';\nimport { MarksStylesNames } from '../Marks/Marks';\nimport { SliderRoot, SliderRootStylesNames } from '../SliderRoot/SliderRoot';\n\nexport type SliderStylesNames =\n | SliderRootStylesNames\n | ThumbStylesNames\n | TrackStylesNames\n | MarksStylesNames;\n\nexport interface SliderProps\n extends DefaultProps<SliderStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {\n /** Color from theme.colors */\n color?: MantineColor;\n\n /** Track border-radius from theme or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Predefined track and thumb size, number to set sizes in px */\n size?: MantineNumberSize;\n\n /** Minimal possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Number by which value will be incremented/decremented with thumb drag and arrows */\n step?: number;\n\n /** Amount of digits after the decimal point */\n precision?: number;\n\n /** Current value for controlled slider */\n value?: number;\n\n /** Default value for uncontrolled slider */\n defaultValue?: number;\n\n /** Called each time value changes */\n onChange?(value: number): void;\n\n /** Called when user stops dragging slider or changes value with arrows */\n onChangeEnd?(value: number): void;\n\n /** Hidden input name, use with uncontrolled variant */\n name?: string;\n\n /** Marks which will be placed on the track */\n marks?: { value: number; label?: React.ReactNode }[];\n\n /** Function to generate label or any react node to render instead, set to null to disable label */\n label?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Label appear/disappear transition */\n labelTransition?: MantineTransition;\n\n /** Label appear/disappear transition duration in ms */\n labelTransitionDuration?: number;\n\n /** Label appear/disappear transition timing function, defaults to theme.transitionRimingFunction */\n labelTransitionTimingFunction?: string;\n\n /** If true label will be not be hidden when user stops dragging */\n labelAlwaysOn?: boolean;\n\n /** Thumb aria-label */\n thumbLabel?: string;\n\n /** If true slider label will appear on hover */\n showLabelOnHover?: boolean;\n\n /** Thumb children, can be used to add icon */\n thumbChildren?: React.ReactNode;\n}\n\nconst defaultProps: Partial<SliderProps> = {\n size: 'md',\n radius: 'xl',\n min: 0,\n max: 100,\n step: 1,\n marks: [],\n label: (f) => f,\n labelTransition: 'skew-down',\n labelTransitionDuration: 0,\n labelAlwaysOn: false,\n thumbLabel: '',\n showLabelOnHover: true,\n};\n\nexport const Slider = forwardRef<HTMLDivElement, SliderProps>((props: SliderProps, ref) => {\n const {\n classNames,\n styles,\n color,\n value,\n onChange,\n onChangeEnd,\n size,\n radius,\n min,\n max,\n step,\n precision,\n defaultValue,\n name,\n marks,\n label,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n thumbLabel,\n showLabelOnHover,\n thumbChildren,\n ...others\n } = useMantineDefaultProps('Slider', defaultProps, props);\n\n const theme = useMantineTheme();\n const [hovered, setHovered] = useState(false);\n const [_value, setValue] = useUncontrolled({\n value: typeof value === 'number' ? clamp({ value, min, max }) : value,\n defaultValue:\n typeof defaultValue === 'number' ? clamp({ value: defaultValue, min, max }) : defaultValue,\n finalValue: clamp({ value: 0, min, max }),\n rule: (val) => typeof val === 'number',\n onChange,\n });\n\n const valueRef = useRef(_value);\n const thumb = useRef<HTMLDivElement>();\n const position = getPosition({ value: _value, min, max });\n const _label = typeof label === 'function' ? label(_value) : label;\n\n const handleChange = (val: number) => {\n const nextValue = getChangeValue({ value: val, min, max, step, precision });\n setValue(nextValue);\n valueRef.current = nextValue;\n };\n\n const { ref: container, active } = useMove(\n ({ x }) => handleChange(x),\n { onScrubEnd: () => onChangeEnd?.(valueRef.current) },\n theme.dir\n );\n\n function handleThumbMouseDown(\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>\n ) {\n if (event.cancelable) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n const handleTrackKeydownCapture = (event: React.KeyboardEvent<HTMLDivElement>) => {\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(Math.max(_value + step, min), max);\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(\n Math.max(theme.dir === 'rtl' ? _value - step : _value + step, min),\n max\n );\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(Math.max(_value - step, min), max);\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(\n Math.max(theme.dir === 'rtl' ? _value + step : _value - step, min),\n max\n );\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n default: {\n break;\n }\n }\n };\n\n return (\n <SliderRoot\n {...others}\n size={size}\n ref={useMergedRef(container, ref)}\n onKeyDownCapture={handleTrackKeydownCapture}\n onMouseDownCapture={() => container.current?.focus()}\n classNames={classNames}\n styles={styles}\n >\n <Track\n offset={0}\n filled={position}\n marks={marks}\n size={size}\n radius={radius}\n color={color}\n min={min}\n max={max}\n value={_value}\n onChange={setValue}\n onMouseEnter={showLabelOnHover ? () => setHovered(true) : undefined}\n onMouseLeave={showLabelOnHover ? () => setHovered(false) : undefined}\n classNames={classNames}\n styles={styles}\n >\n <Thumb\n max={max}\n min={min}\n value={_value}\n position={position}\n dragging={active}\n color={color}\n size={size}\n label={_label}\n ref={thumb}\n onMouseDown={handleThumbMouseDown}\n labelTransition={labelTransition}\n labelTransitionDuration={labelTransitionDuration}\n labelTransitionTimingFunction={labelTransitionTimingFunction}\n labelAlwaysOn={labelAlwaysOn}\n classNames={classNames}\n styles={styles}\n thumbLabel={thumbLabel}\n showLabelOnHover={showLabelOnHover && hovered}\n >\n {thumbChildren}\n </Thumb>\n </Track>\n\n <input type=\"hidden\" name={name} value={_value} />\n </SliderRoot>\n );\n});\n\nSlider.displayName = '@mantine/core/Slider';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
|
-
function getChangeValue({
|
|
1
|
+
function getChangeValue({
|
|
2
|
+
value,
|
|
3
|
+
containerWidth,
|
|
4
|
+
min,
|
|
5
|
+
max,
|
|
6
|
+
step,
|
|
7
|
+
precision
|
|
8
|
+
}) {
|
|
2
9
|
const left = !containerWidth ? value : Math.min(Math.max(value, 0), containerWidth) / containerWidth;
|
|
3
10
|
const dx = left * (max - min);
|
|
4
|
-
|
|
11
|
+
const nextValue = (dx !== 0 ? Math.round(dx / step) * step : 0) + min;
|
|
12
|
+
if (precision !== void 0) {
|
|
13
|
+
return Number(nextValue.toFixed(precision));
|
|
14
|
+
}
|
|
15
|
+
return nextValue;
|
|
5
16
|
}
|
|
6
17
|
|
|
7
18
|
export { getChangeValue };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-change-value.js","sources":["../../../../../src/components/Slider/utils/get-change-value/get-change-value.ts"],"sourcesContent":["interface GetChangeValue {\n value: number;\n containerWidth?: number;\n min: number;\n max: number;\n step: number;\n}\n\nexport function getChangeValue({
|
|
1
|
+
{"version":3,"file":"get-change-value.js","sources":["../../../../../src/components/Slider/utils/get-change-value/get-change-value.ts"],"sourcesContent":["interface GetChangeValue {\n value: number;\n containerWidth?: number;\n min: number;\n max: number;\n step: number;\n precision?: number;\n}\n\nexport function getChangeValue({\n value,\n containerWidth,\n min,\n max,\n step,\n precision,\n}: GetChangeValue) {\n const left = !containerWidth\n ? value\n : Math.min(Math.max(value, 0), containerWidth) / containerWidth;\n const dx = left * (max - min);\n const nextValue = (dx !== 0 ? Math.round(dx / step) * step : 0) + min;\n\n if (precision !== undefined) {\n return Number(nextValue.toFixed(precision));\n }\n\n return nextValue;\n}\n"],"names":[],"mappings":"AAAO,SAAS,cAAc,CAAC;AAC/B,EAAE,KAAK;AACP,EAAE,cAAc;AAChB,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE,IAAI;AACN,EAAE,SAAS;AACX,CAAC,EAAE;AACH,EAAE,MAAM,IAAI,GAAG,CAAC,cAAc,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,cAAc,CAAC;AACvG,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;AAChC,EAAE,MAAM,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC;AACxE,EAAE,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE;AAC5B,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AAChD,GAAG;AACH,EAAE,OAAO,SAAS,CAAC;AACnB;;;;"}
|
package/esm/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { findChildByType } from './utils/find-child-by-type/find-child-by-type.j
|
|
|
5
5
|
export { filterFalsyChildren } from './utils/filter-falsy-children/filter-falsy-children.js';
|
|
6
6
|
export { getGroupedOptions, groupOptions } from './utils/group-options/group-options.js';
|
|
7
7
|
export { getContextItemIndex } from './utils/get-context-item-index/get-context-item-index.js';
|
|
8
|
+
export { createUseContext } from './utils/create-use-context/create-use-context.js';
|
|
8
9
|
export { createAccordionState, useAccordionState } from './components/Accordion/use-accordion-state/use-accordion-state.js';
|
|
9
10
|
export { Accordion } from './components/Accordion/Accordion.js';
|
|
10
11
|
export { AccordionItem } from './components/Accordion/AccordionItem/AccordionItem.js';
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
|
|
3
|
+
function createUseContext(defaultValue) {
|
|
4
|
+
const Context = createContext(defaultValue);
|
|
5
|
+
function useContextConsumer(component) {
|
|
6
|
+
const ctx = useContext(Context);
|
|
7
|
+
const [parentName] = component.split(".");
|
|
8
|
+
if (!ctx) {
|
|
9
|
+
throw new Error(`${component} component was rendered outside of ${parentName} component context`);
|
|
10
|
+
}
|
|
11
|
+
return ctx;
|
|
12
|
+
}
|
|
13
|
+
return [Context.Provider, useContextConsumer];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { createUseContext };
|
|
17
|
+
//# sourceMappingURL=create-use-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-use-context.js","sources":["../../../src/utils/create-use-context/create-use-context.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport function createUseContext<T>(defaultValue: T) {\n const Context = createContext<T>(defaultValue);\n\n function useContextConsumer(component: `${string}.${string}`) {\n const ctx = useContext(Context);\n const [parentName] = component.split('.');\n\n if (!ctx) {\n throw new Error(\n `${component} component was rendered outside of ${parentName} component context`\n );\n }\n\n return ctx;\n }\n\n return [Context.Provider, useContextConsumer] as const;\n}\n"],"names":[],"mappings":";;AACO,SAAS,gBAAgB,CAAC,YAAY,EAAE;AAC/C,EAAE,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AAC9C,EAAE,SAAS,kBAAkB,CAAC,SAAS,EAAE;AACzC,IAAI,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;AACpC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,MAAM,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,mCAAmC,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACxG,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AAChD;;;;"}
|