@mantine/core 3.5.5 → 3.6.1
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/README.md +0 -1
- package/cjs/components/Accordion/Accordion.js +4 -1
- package/cjs/components/Accordion/Accordion.js.map +1 -1
- package/cjs/components/Accordion/AccordionItem/AccordionItem.js +5 -1
- package/cjs/components/Accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/cjs/components/ActionIcon/ActionIcon.js +2 -5
- package/cjs/components/ActionIcon/ActionIcon.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.js +1 -1
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +1 -0
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Button/UnstyledButton/UnstyledButton.styles.js +2 -1
- package/cjs/components/Button/UnstyledButton/UnstyledButton.styles.js.map +1 -1
- package/cjs/components/Code/Code.js +3 -1
- package/cjs/components/Code/Code.js.map +1 -1
- package/cjs/components/ColorInput/ColorInput.js +0 -2
- package/cjs/components/ColorInput/ColorInput.js.map +1 -1
- package/cjs/components/ColorInput/ColorInput.styles.js +0 -4
- package/cjs/components/ColorInput/ColorInput.styles.js.map +1 -1
- package/cjs/components/Drawer/Drawer.js +7 -1
- package/cjs/components/Drawer/Drawer.js.map +1 -1
- package/cjs/components/Grid/Col/Col.js.map +1 -1
- package/cjs/components/Grid/Grid.js +7 -1
- package/cjs/components/Grid/Grid.js.map +1 -1
- package/cjs/components/Group/Group.js +1 -1
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Input/Input.js +3 -0
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.js +11 -2
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Menu/Menu.js.map +1 -1
- package/cjs/components/Menu/Menu.styles.js +1 -0
- package/cjs/components/Menu/Menu.styles.js.map +1 -1
- package/cjs/components/MultiSelect/MultiSelect.js +26 -23
- package/cjs/components/MultiSelect/MultiSelect.js.map +1 -1
- package/cjs/components/Pagination/DefaultItem/DefaultItem.js +10 -1
- package/cjs/components/Pagination/DefaultItem/DefaultItem.js.map +1 -1
- package/cjs/components/Popover/Popover.js +8 -3
- package/cjs/components/Popover/Popover.js.map +1 -1
- package/cjs/components/Popper/Popper.js +30 -2
- package/cjs/components/Popper/Popper.js.map +1 -1
- package/cjs/components/Popper/Popper.styles.js +20 -12
- package/cjs/components/Popper/Popper.styles.js.map +1 -1
- package/cjs/components/Portal/Portal.js +3 -0
- package/cjs/components/Portal/Portal.js.map +1 -1
- package/cjs/components/Progress/Progress.js +3 -3
- package/cjs/components/Progress/Progress.js.map +1 -1
- package/cjs/components/Progress/Progress.styles.js +1 -1
- package/cjs/components/Progress/Progress.styles.js.map +1 -1
- package/cjs/components/RadioGroup/Radio/Radio.js +1 -1
- package/cjs/components/RadioGroup/Radio/Radio.js.map +1 -1
- package/cjs/components/ScrollArea/ScrollArea.js +15 -7
- package/cjs/components/ScrollArea/ScrollArea.js.map +1 -1
- package/cjs/components/ScrollArea/ScrollArea.styles.js +2 -3
- package/cjs/components/ScrollArea/ScrollArea.styles.js.map +1 -1
- package/cjs/components/SegmentedControl/SegmentedControl.js +17 -15
- package/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/cjs/components/SegmentedControl/SegmentedControl.styles.js +37 -36
- package/cjs/components/SegmentedControl/SegmentedControl.styles.js.map +1 -1
- package/cjs/components/Select/Select.js +14 -8
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/SelectDropdown/SelectDropdown.js +1 -0
- package/cjs/components/Select/SelectDropdown/SelectDropdown.js.map +1 -1
- package/cjs/components/Slider/Marks/Marks.js +3 -2
- package/cjs/components/Slider/Marks/Marks.js.map +1 -1
- package/cjs/components/Slider/Marks/Marks.styles.js +2 -2
- package/cjs/components/Slider/Marks/Marks.styles.js.map +1 -1
- package/cjs/components/Slider/RangeSlider/RangeSlider.js +14 -6
- package/cjs/components/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/cjs/components/Slider/Slider/Slider.js +11 -9
- package/cjs/components/Slider/Slider/Slider.js.map +1 -1
- package/cjs/components/Slider/Thumb/Thumb.js +3 -2
- package/cjs/components/Slider/Thumb/Thumb.js.map +1 -1
- package/cjs/components/Slider/Thumb/Thumb.styles.js +1 -1
- package/cjs/components/Slider/Thumb/Thumb.styles.js.map +1 -1
- package/cjs/components/Slider/Track/Track.js +7 -2
- package/cjs/components/Slider/Track/Track.js.map +1 -1
- package/cjs/components/Slider/Track/Track.styles.js +14 -3
- package/cjs/components/Slider/Track/Track.styles.js.map +1 -1
- package/cjs/components/Space/Space.js +1 -1
- package/cjs/components/Space/Space.js.map +1 -1
- package/cjs/components/Stepper/Step/Step.js +2 -0
- package/cjs/components/Stepper/Step/Step.js.map +1 -1
- package/cjs/components/Stepper/Stepper.js +3 -2
- package/cjs/components/Stepper/Stepper.js.map +1 -1
- package/cjs/components/Switch/Switch.js.map +1 -1
- package/cjs/components/Table/Table.js +7 -3
- package/cjs/components/Table/Table.js.map +1 -1
- package/cjs/components/Table/Table.styles.js +9 -3
- package/cjs/components/Table/Table.styles.js.map +1 -1
- package/cjs/components/Tabs/TabControl/TabControl.js +2 -0
- package/cjs/components/Tabs/TabControl/TabControl.js.map +1 -1
- package/cjs/components/Tabs/Tabs.js +8 -4
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Text/Text.styles.js +1 -1
- package/cjs/components/Text/Text.styles.js.map +1 -1
- package/cjs/components/Textarea/Textarea.js +16 -23
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Timeline/Timeline.js +12 -10
- package/cjs/components/Timeline/Timeline.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.js +24 -14
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TransferList/RenderList/RenderList.js +54 -37
- package/cjs/components/TransferList/RenderList/RenderList.js.map +1 -1
- package/cjs/components/TransferList/RenderList/RenderList.styles.js +3 -1
- package/cjs/components/TransferList/RenderList/RenderList.styles.js.map +1 -1
- package/cjs/components/TransferList/TransferList.js +23 -24
- package/cjs/components/TransferList/TransferList.js.map +1 -1
- package/cjs/components/Transition/GroupedTransition.js +2 -0
- package/cjs/components/Transition/GroupedTransition.js.map +1 -1
- package/cjs/components/Transition/Transition.js +2 -0
- package/cjs/components/Transition/Transition.js.map +1 -1
- package/cjs/components/Transition/use-transition.js +6 -3
- package/cjs/components/Transition/use-transition.js.map +1 -1
- package/cjs/utils/{group-sort-data/group-sort-data.js → group-options/group-options.js} +6 -6
- package/cjs/utils/group-options/group-options.js.map +1 -0
- package/esm/components/Accordion/Accordion.js +4 -1
- package/esm/components/Accordion/Accordion.js.map +1 -1
- package/esm/components/Accordion/AccordionItem/AccordionItem.js +5 -1
- package/esm/components/Accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/esm/components/ActionIcon/ActionIcon.js +2 -5
- package/esm/components/ActionIcon/ActionIcon.js.map +1 -1
- package/esm/components/Autocomplete/Autocomplete.js +1 -1
- package/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/esm/components/Button/Button.styles.js +1 -0
- package/esm/components/Button/Button.styles.js.map +1 -1
- package/esm/components/Button/UnstyledButton/UnstyledButton.styles.js +2 -1
- package/esm/components/Button/UnstyledButton/UnstyledButton.styles.js.map +1 -1
- package/esm/components/Code/Code.js +3 -1
- package/esm/components/Code/Code.js.map +1 -1
- package/esm/components/ColorInput/ColorInput.js +0 -2
- package/esm/components/ColorInput/ColorInput.js.map +1 -1
- package/esm/components/ColorInput/ColorInput.styles.js +0 -4
- package/esm/components/ColorInput/ColorInput.styles.js.map +1 -1
- package/esm/components/Drawer/Drawer.js +7 -1
- package/esm/components/Drawer/Drawer.js.map +1 -1
- package/esm/components/Grid/Col/Col.js.map +1 -1
- package/esm/components/Grid/Grid.js +7 -1
- package/esm/components/Grid/Grid.js.map +1 -1
- package/esm/components/Group/Group.js +1 -1
- package/esm/components/Group/Group.js.map +1 -1
- package/esm/components/Input/Input.js +3 -0
- package/esm/components/Input/Input.js.map +1 -1
- package/esm/components/Input/Input.styles.js +11 -2
- package/esm/components/Input/Input.styles.js.map +1 -1
- package/esm/components/Menu/Menu.js.map +1 -1
- package/esm/components/Menu/Menu.styles.js +1 -0
- package/esm/components/Menu/Menu.styles.js.map +1 -1
- package/esm/components/MultiSelect/MultiSelect.js +26 -23
- package/esm/components/MultiSelect/MultiSelect.js.map +1 -1
- package/esm/components/Pagination/DefaultItem/DefaultItem.js +10 -1
- package/esm/components/Pagination/DefaultItem/DefaultItem.js.map +1 -1
- package/esm/components/Popover/Popover.js +8 -3
- package/esm/components/Popover/Popover.js.map +1 -1
- package/esm/components/Popper/Popper.js +30 -2
- package/esm/components/Popper/Popper.js.map +1 -1
- package/esm/components/Popper/Popper.styles.js +20 -12
- package/esm/components/Popper/Popper.styles.js.map +1 -1
- package/esm/components/Portal/Portal.js +3 -0
- package/esm/components/Portal/Portal.js.map +1 -1
- package/esm/components/Progress/Progress.js +3 -3
- package/esm/components/Progress/Progress.js.map +1 -1
- package/esm/components/Progress/Progress.styles.js +1 -1
- package/esm/components/Progress/Progress.styles.js.map +1 -1
- package/esm/components/RadioGroup/Radio/Radio.js +1 -1
- package/esm/components/RadioGroup/Radio/Radio.js.map +1 -1
- package/esm/components/ScrollArea/ScrollArea.js +14 -6
- package/esm/components/ScrollArea/ScrollArea.js.map +1 -1
- package/esm/components/ScrollArea/ScrollArea.styles.js +2 -3
- package/esm/components/ScrollArea/ScrollArea.styles.js.map +1 -1
- package/esm/components/SegmentedControl/SegmentedControl.js +19 -17
- package/esm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/esm/components/SegmentedControl/SegmentedControl.styles.js +37 -36
- package/esm/components/SegmentedControl/SegmentedControl.styles.js.map +1 -1
- package/esm/components/Select/Select.js +14 -8
- package/esm/components/Select/Select.js.map +1 -1
- package/esm/components/Select/SelectDropdown/SelectDropdown.js +1 -0
- package/esm/components/Select/SelectDropdown/SelectDropdown.js.map +1 -1
- package/esm/components/Slider/Marks/Marks.js +3 -2
- package/esm/components/Slider/Marks/Marks.js.map +1 -1
- package/esm/components/Slider/Marks/Marks.styles.js +2 -2
- package/esm/components/Slider/Marks/Marks.styles.js.map +1 -1
- package/esm/components/Slider/RangeSlider/RangeSlider.js +11 -3
- package/esm/components/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/esm/components/Slider/Slider/Slider.js +8 -6
- package/esm/components/Slider/Slider/Slider.js.map +1 -1
- package/esm/components/Slider/Thumb/Thumb.js +3 -2
- package/esm/components/Slider/Thumb/Thumb.js.map +1 -1
- package/esm/components/Slider/Thumb/Thumb.styles.js +1 -1
- package/esm/components/Slider/Thumb/Thumb.styles.js.map +1 -1
- package/esm/components/Slider/Track/Track.js +7 -2
- package/esm/components/Slider/Track/Track.js.map +1 -1
- package/esm/components/Slider/Track/Track.styles.js +14 -3
- package/esm/components/Slider/Track/Track.styles.js.map +1 -1
- package/esm/components/Space/Space.js +1 -1
- package/esm/components/Space/Space.js.map +1 -1
- package/esm/components/Stepper/Step/Step.js +2 -0
- package/esm/components/Stepper/Step/Step.js.map +1 -1
- package/esm/components/Stepper/Stepper.js +3 -2
- package/esm/components/Stepper/Stepper.js.map +1 -1
- package/esm/components/Switch/Switch.js.map +1 -1
- package/esm/components/Table/Table.js +7 -3
- package/esm/components/Table/Table.js.map +1 -1
- package/esm/components/Table/Table.styles.js +9 -3
- package/esm/components/Table/Table.styles.js.map +1 -1
- package/esm/components/Tabs/TabControl/TabControl.js +2 -0
- package/esm/components/Tabs/TabControl/TabControl.js.map +1 -1
- package/esm/components/Tabs/Tabs.js +8 -4
- package/esm/components/Tabs/Tabs.js.map +1 -1
- package/esm/components/Text/Text.styles.js +1 -1
- package/esm/components/Text/Text.styles.js.map +1 -1
- package/esm/components/Textarea/Textarea.js +16 -23
- package/esm/components/Textarea/Textarea.js.map +1 -1
- package/esm/components/Timeline/Timeline.js +12 -10
- package/esm/components/Timeline/Timeline.js.map +1 -1
- package/esm/components/Tooltip/Tooltip.js +25 -15
- package/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/esm/components/TransferList/RenderList/RenderList.js +54 -37
- package/esm/components/TransferList/RenderList/RenderList.js.map +1 -1
- package/esm/components/TransferList/RenderList/RenderList.styles.js +3 -1
- package/esm/components/TransferList/RenderList/RenderList.styles.js.map +1 -1
- package/esm/components/TransferList/TransferList.js +23 -24
- package/esm/components/TransferList/TransferList.js.map +1 -1
- package/esm/components/Transition/GroupedTransition.js +2 -0
- package/esm/components/Transition/GroupedTransition.js.map +1 -1
- package/esm/components/Transition/Transition.js +2 -0
- package/esm/components/Transition/Transition.js.map +1 -1
- package/esm/components/Transition/use-transition.js +6 -3
- package/esm/components/Transition/use-transition.js.map +1 -1
- package/esm/utils/{group-sort-data/group-sort-data.js → group-options/group-options.js} +6 -6
- package/esm/utils/group-options/group-options.js.map +1 -0
- package/lib/components/Accordion/Accordion.d.ts +2 -0
- package/lib/components/Accordion/Accordion.d.ts.map +1 -1
- package/lib/components/Accordion/AccordionItem/AccordionItem.d.ts +2 -1
- package/lib/components/Accordion/AccordionItem/AccordionItem.d.ts.map +1 -1
- package/lib/components/Button/Button.styles.d.ts +3 -3
- package/lib/components/Button/Button.styles.d.ts.map +1 -1
- package/lib/components/Button/UnstyledButton/UnstyledButton.styles.d.ts.map +1 -1
- package/lib/components/Code/Code.d.ts.map +1 -1
- package/lib/components/ColorInput/ColorInput.d.ts.map +1 -1
- package/lib/components/ColorInput/ColorInput.styles.d.ts +2 -2
- package/lib/components/ColorInput/ColorInput.styles.d.ts.map +1 -1
- package/lib/components/Drawer/Drawer.d.ts.map +1 -1
- package/lib/components/Grid/Col/Col.d.ts +1 -1
- package/lib/components/Grid/Col/Col.d.ts.map +1 -1
- package/lib/components/Grid/Grid.d.ts.map +1 -1
- package/lib/components/Input/Input.d.ts +2 -0
- package/lib/components/Input/Input.d.ts.map +1 -1
- package/lib/components/Input/Input.styles.d.ts +1 -0
- package/lib/components/Input/Input.styles.d.ts.map +1 -1
- package/lib/components/Menu/Menu.d.ts +1 -1
- package/lib/components/Menu/Menu.d.ts.map +1 -1
- package/lib/components/Menu/Menu.styles.d.ts +1 -1
- package/lib/components/Menu/Menu.styles.d.ts.map +1 -1
- package/lib/components/MultiSelect/MultiSelect.d.ts +2 -0
- package/lib/components/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/lib/components/Pagination/DefaultItem/DefaultItem.d.ts.map +1 -1
- package/lib/components/Popover/Popover.d.ts +3 -1
- package/lib/components/Popover/Popover.d.ts.map +1 -1
- package/lib/components/Popper/Popper.d.ts +4 -2
- package/lib/components/Popper/Popper.d.ts.map +1 -1
- package/lib/components/Popper/Popper.styles.d.ts +2 -1
- package/lib/components/Popper/Popper.styles.d.ts.map +1 -1
- package/lib/components/Portal/Portal.d.ts.map +1 -1
- package/lib/components/RadioGroup/Radio/Radio.d.ts +1 -1
- package/lib/components/RadioGroup/Radio/Radio.d.ts.map +1 -1
- package/lib/components/ScrollArea/ScrollArea.d.ts +5 -0
- package/lib/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/lib/components/ScrollArea/ScrollArea.styles.d.ts +0 -1
- package/lib/components/ScrollArea/ScrollArea.styles.d.ts.map +1 -1
- package/lib/components/SegmentedControl/SegmentedControl.d.ts +7 -10
- package/lib/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/lib/components/SegmentedControl/SegmentedControl.styles.d.ts.map +1 -1
- package/lib/components/Select/Select.d.ts +2 -0
- package/lib/components/Select/Select.d.ts.map +1 -1
- package/lib/components/Select/SelectDropdown/SelectDropdown.d.ts.map +1 -1
- package/lib/components/Slider/Marks/Marks.d.ts.map +1 -1
- package/lib/components/Slider/RangeSlider/RangeSlider.d.ts.map +1 -1
- package/lib/components/Slider/Slider/Slider.d.ts.map +1 -1
- package/lib/components/Slider/Thumb/Thumb.d.ts.map +1 -1
- package/lib/components/Slider/Track/Track.d.ts.map +1 -1
- package/lib/components/Slider/Track/Track.styles.d.ts.map +1 -1
- package/lib/components/Stepper/Step/Step.d.ts +2 -0
- package/lib/components/Stepper/Step/Step.d.ts.map +1 -1
- package/lib/components/Stepper/Stepper.d.ts.map +1 -1
- package/lib/components/Switch/Switch.d.ts +3 -3
- package/lib/components/Switch/Switch.d.ts.map +1 -1
- package/lib/components/Table/Table.d.ts +5 -1
- package/lib/components/Table/Table.d.ts.map +1 -1
- package/lib/components/Table/Table.styles.d.ts +3 -0
- package/lib/components/Table/Table.styles.d.ts.map +1 -1
- package/lib/components/Tabs/TabControl/TabControl.d.ts +2 -1
- package/lib/components/Tabs/TabControl/TabControl.d.ts.map +1 -1
- package/lib/components/Tabs/Tabs.d.ts +1 -1
- package/lib/components/Tabs/Tabs.d.ts.map +1 -1
- package/lib/components/Textarea/Textarea.d.ts.map +1 -1
- package/lib/components/Timeline/Timeline.d.ts +2 -0
- package/lib/components/Timeline/Timeline.d.ts.map +1 -1
- package/lib/components/Tooltip/Tooltip.d.ts +1 -4
- package/lib/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/lib/components/TransferList/RenderList/RenderList.d.ts +3 -3
- package/lib/components/TransferList/RenderList/RenderList.d.ts.map +1 -1
- package/lib/components/TransferList/RenderList/RenderList.styles.d.ts.map +1 -1
- package/lib/components/TransferList/TransferList.d.ts +2 -0
- package/lib/components/TransferList/TransferList.d.ts.map +1 -1
- package/lib/components/Transition/GroupedTransition.d.ts +4 -2
- package/lib/components/Transition/GroupedTransition.d.ts.map +1 -1
- package/lib/components/Transition/Transition.d.ts +3 -1
- package/lib/components/Transition/Transition.d.ts.map +1 -1
- package/lib/components/Transition/use-transition.d.ts +2 -1
- package/lib/components/Transition/use-transition.d.ts.map +1 -1
- package/lib/utils/group-options/group-options.d.ts +8 -0
- package/lib/utils/group-options/group-options.d.ts.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/cjs/utils/group-sort-data/group-sort-data.js.map +0 -1
- package/esm/utils/group-sort-data/group-sort-data.js.map +0 -1
- package/lib/utils/group-sort-data/group-sort-data.d.ts +0 -9
- package/lib/utils/group-sort-data/group-sort-data.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\nimport {\n useUncontrolled,\n useMergedRef,\n useDidUpdate,\n useScrollIntoView,\n useUuid,\n} from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineSize,\n MantineShadow,\n extractMargins,\n getDefaultZIndex,\n} from '@mantine/styles';\nimport { SelectScrollArea } from './SelectScrollArea/SelectScrollArea';\nimport { InputWrapper } from '../InputWrapper';\nimport { Input } from '../Input';\nimport { MantineTransition } from '../Transition';\nimport { DefaultItem } from './DefaultItem/DefaultItem';\nimport { getSelectRightSectionProps } from './SelectRightSection/get-select-right-section-props';\nimport { SelectItems } from './SelectItems/SelectItems';\nimport { SelectDropdown } from './SelectDropdown/SelectDropdown';\nimport { SelectItem, BaseSelectStylesNames, BaseSelectProps } from './types';\nimport { filterData } from './filter-data/filter-data';\nimport { groupSortData } from '../../utils/group-sort-data/group-sort-data';\nimport useStyles from './Select.styles';\n\nexport interface SelectSharedProps<Item, Value> {\n /** Select data used to renderer items in dropdown */\n data: (string | Item)[];\n\n /** Controlled input value */\n value?: Value;\n\n /** Uncontrolled input defaultValue */\n defaultValue?: Value;\n\n /** Controlled input onChange handler */\n onChange?(value: Value): void;\n\n /** Function based on which items in dropdown are filtered */\n filter?(value: string, item: Item): boolean;\n\n /** Input size */\n size?: MantineSize;\n\n /** Dropdown body appear/disappear transition */\n transition?: MantineTransition;\n\n /** Dropdown body transition duration */\n transitionDuration?: number;\n\n /** Dropdown body transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Dropdown shadow from theme or any value to set box-shadow */\n shadow?: MantineShadow;\n\n /** Initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Change item renderer */\n itemComponent?: React.FC<any>;\n\n /** Called when dropdown is opened */\n onDropdownOpen?(): void;\n\n /** Called when dropdown is closed */\n onDropdownClose?(): void;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n\n /** Limit amount of items displayed at a time for searchable select */\n limit?: number;\n\n /** Nothing found label */\n nothingFound?: React.ReactNode;\n\n /** Dropdown z-index */\n zIndex?: number;\n\n /** Dropdown positioning behavior */\n dropdownPosition?: 'bottom' | 'top' | 'flip';\n\n /** Whether to switch item order and keyboard navigation on dropdown position flip */\n switchDirectionOnFlip?: boolean;\n}\n\nexport interface SelectProps\n extends DefaultProps<BaseSelectStylesNames>,\n BaseSelectProps,\n SelectSharedProps<SelectItem, string | null> {\n /** Maximum dropdown height in px */\n maxDropdownHeight?: number;\n\n /** Set to true to enable search */\n searchable?: boolean;\n\n /** Allow to clear item */\n clearable?: boolean;\n\n /** aria-label for clear button */\n clearButtonLabel?: string;\n\n /** Called each time search value changes */\n onSearchChange?(query: string): void;\n\n /** Allow creatable option */\n creatable?: boolean;\n\n /** Function to get create Label */\n getCreateLabel?: (query: string) => React.ReactNode;\n\n /** Function to determine if create label should be displayed */\n shouldCreate?: (query: string, data: SelectItem[]) => boolean;\n\n /** Called when create option is selected */\n onCreate?: (query: string) => void;\n\n /** Change dropdown component, can be used to add native scrollbars */\n dropdownComponent?: any;\n\n /** Allow deselecting items on click */\n allowDeselect?: boolean;\n}\n\nexport function defaultFilter(value: string, item: SelectItem) {\n return item.label.toLowerCase().trim().includes(value.toLowerCase().trim());\n}\n\nexport function defaultShouldCreate(query: string, data: SelectItem[]) {\n return !!query && !data.some((item) => item.value.toLowerCase() === query.toLowerCase());\n}\n\nexport const Select = forwardRef<HTMLInputElement, SelectProps>(\n (\n {\n className,\n style,\n required = false,\n label,\n id,\n error,\n description,\n size = 'sm',\n shadow = 'sm',\n data,\n value,\n defaultValue,\n onChange,\n itemComponent = DefaultItem,\n onKeyDown,\n onBlur,\n onFocus,\n transition = 'fade',\n transitionDuration = 0,\n initiallyOpened = false,\n transitionTimingFunction,\n wrapperProps,\n classNames,\n styles,\n filter = defaultFilter,\n maxDropdownHeight = 220,\n searchable = false,\n clearable = false,\n nothingFound,\n clearButtonLabel,\n limit = Infinity,\n disabled = false,\n onSearchChange,\n rightSection,\n rightSectionWidth,\n creatable = false,\n getCreateLabel,\n shouldCreate = defaultShouldCreate,\n onCreate,\n sx,\n dropdownComponent,\n onDropdownClose,\n onDropdownOpen,\n withinPortal,\n switchDirectionOnFlip = false,\n zIndex = getDefaultZIndex('popover'),\n name,\n dropdownPosition,\n allowDeselect,\n ...others\n }: SelectProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles();\n const { margins, rest } = extractMargins(others);\n const [dropdownOpened, _setDropdownOpened] = useState(initiallyOpened);\n const [hovered, setHovered] = useState(-1);\n const inputRef = useRef<HTMLInputElement>();\n const dropdownRef = useRef<HTMLDivElement>();\n const itemsRefs = useRef<Record<string, HTMLDivElement>>({});\n const [direction, setDirection] = useState<React.CSSProperties['flexDirection']>('column');\n const isColumn = direction === 'column';\n const uuid = useUuid(id);\n const { scrollIntoView, targetRef, scrollableRef } = useScrollIntoView({\n duration: 0,\n offset: 5,\n cancelable: false,\n isList: true,\n });\n\n const isDeselectable = allowDeselect === undefined ? clearable : allowDeselect;\n\n const setDropdownOpened = (opened: boolean) => {\n _setDropdownOpened(opened);\n const handler = opened ? onDropdownOpen : onDropdownClose;\n typeof handler === 'function' && handler();\n };\n\n const isCreatable = creatable && typeof getCreateLabel === 'function';\n let createLabel = null;\n\n const formattedData = data.map((item) =>\n typeof item === 'string' ? { label: item, value: item } : item\n );\n\n const sortedData = groupSortData({ data: formattedData });\n\n const [_value, handleChange, inputMode] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n rule: (val) => typeof val === 'string' || val === null,\n });\n\n const selectedValue = sortedData.find((item) => item.value === _value);\n const [inputValue, setInputValue] = useState(selectedValue?.label || '');\n\n const handleSearchChange = (val: string) => {\n setInputValue(val);\n if (searchable && typeof onSearchChange === 'function') {\n onSearchChange(val);\n }\n };\n\n const handleClear = () => {\n handleChange(null);\n if (inputMode === 'uncontrolled') {\n handleSearchChange('');\n }\n inputRef.current?.focus();\n };\n\n useEffect(() => {\n const newSelectedValue = sortedData.find((item) => item.value === _value);\n\n if (newSelectedValue) {\n handleSearchChange(newSelectedValue.label);\n } else if (!isCreatable || !_value) {\n handleSearchChange('');\n }\n }, [_value]);\n\n useEffect(() => {\n if (selectedValue && (!searchable || !dropdownOpened)) {\n handleSearchChange(selectedValue.label);\n }\n }, [selectedValue?.label]);\n\n const handleItemSelect = (item: SelectItem) => {\n if (isDeselectable && selectedValue?.value === item.value) {\n handleChange(null);\n setDropdownOpened(false);\n } else {\n handleChange(item.value);\n\n if (item.creatable) {\n typeof onCreate === 'function' && onCreate(item.value);\n }\n\n if (inputMode === 'uncontrolled') {\n handleSearchChange(item.label);\n }\n setHovered(-1);\n setTimeout(() => setDropdownOpened(false));\n inputRef.current.focus();\n }\n };\n\n const filteredData = filterData({\n data: sortedData,\n searchable,\n limit,\n searchValue: inputValue,\n filter,\n });\n\n if (isCreatable && shouldCreate(inputValue, filteredData)) {\n createLabel = getCreateLabel(inputValue);\n filteredData.push({ label: inputValue, value: inputValue, creatable: true });\n }\n\n const getNextIndex = (\n index: number,\n nextItem: (index: number) => number,\n compareFn: (index: number) => boolean\n ) => {\n let i = index;\n while (compareFn(i)) {\n i = nextItem(i);\n if (!filteredData[i].disabled) return i;\n }\n return index;\n };\n\n useDidUpdate(() => {\n setHovered(\n getNextIndex(\n -1,\n (index) => index + 1,\n (index) => index < filteredData.length - 1\n )\n );\n }, [inputValue]);\n\n const selectedItemIndex = _value ? filteredData.findIndex((el) => el.value === _value) : 0;\n\n const handlePrevious = () => {\n setHovered((current) => {\n const nextIndex = getNextIndex(\n current,\n (index) => index - 1,\n (index) => index > 0\n );\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'start' : 'end' });\n return nextIndex;\n });\n };\n\n const handleNext = () => {\n setHovered((current) => {\n const nextIndex = getNextIndex(\n current,\n (index) => index + 1,\n (index) => index < filteredData.length - 1\n );\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'end' : 'start' });\n return nextIndex;\n });\n };\n\n const scrollSelectedItemIntoView = () =>\n window.setTimeout(() => {\n targetRef.current = itemsRefs.current[filteredData[selectedItemIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'end' : 'start' });\n }, 0);\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n\n if (!dropdownOpened) {\n setHovered(selectedItemIndex);\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n } else {\n isColumn ? handlePrevious() : handleNext();\n }\n\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n\n if (!dropdownOpened) {\n setHovered(selectedItemIndex);\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n } else {\n isColumn ? handleNext() : handlePrevious();\n }\n\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n setDropdownOpened(false);\n setHovered(-1);\n break;\n }\n\n case 'Space': {\n if (!searchable) {\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleItemSelect(filteredData[hovered]);\n } else {\n setDropdownOpened(!dropdownOpened);\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n }\n\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleItemSelect(filteredData[hovered]);\n } else {\n setDropdownOpened(true);\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n const selected = sortedData.find((item) => item.value === _value);\n handleSearchChange(selected?.label || '');\n setDropdownOpened(false);\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n if (searchable) {\n setDropdownOpened(true);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n handleSearchChange(event.currentTarget.value);\n\n if (clearable && event.currentTarget.value === '') {\n handleChange(null);\n }\n\n setHovered(0);\n setDropdownOpened(true);\n };\n\n const handleInputClick = () => {\n if (!searchable) {\n setDropdownOpened(!dropdownOpened);\n } else {\n setDropdownOpened(true);\n }\n\n if (_value && !dropdownOpened) {\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n };\n\n const shouldShowDropdown =\n dropdownOpened &&\n (searchable && !creatable ? filteredData.length > 0 || !!nothingFound : dropdownOpened);\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=\"Select\"\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <div\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={`${uuid}-items`}\n aria-controls={uuid}\n aria-expanded={shouldShowDropdown}\n onMouseLeave={() => setHovered(-1)}\n tabIndex={-1}\n >\n <Input<'input'>\n {...rest}\n type=\"text\"\n required={required}\n ref={useMergedRef(ref, inputRef)}\n id={uuid}\n invalid={!!error}\n size={size}\n onKeyDown={handleInputKeydown}\n __staticSelector=\"Select\"\n value={inputValue}\n onChange={handleInputChange}\n aria-autocomplete=\"list\"\n aria-controls={shouldShowDropdown ? `${uuid}-items` : null}\n aria-activedescendant={hovered !== -1 ? `${uuid}-${hovered}` : null}\n onClick={handleInputClick}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n readOnly={!searchable}\n disabled={disabled}\n data-mantine-stop-propagation={shouldShowDropdown}\n autoComplete=\"off\"\n classNames={{\n ...classNames,\n input: cx({ [classes.input]: !searchable }, classNames?.input),\n }}\n {...getSelectRightSectionProps({\n theme,\n rightSection,\n rightSectionWidth,\n styles,\n size,\n shouldClear: clearable && !!selectedValue,\n clearButtonLabel,\n onClear: handleClear,\n error,\n })}\n />\n\n <SelectDropdown\n referenceElement={inputRef.current}\n mounted={shouldShowDropdown}\n transition={transition}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n uuid={uuid}\n shadow={shadow}\n maxDropdownHeight={maxDropdownHeight}\n classNames={classNames}\n styles={styles}\n ref={useMergedRef(dropdownRef, scrollableRef)}\n __staticSelector=\"Select\"\n dropdownComponent={dropdownComponent || SelectScrollArea}\n direction={direction}\n onDirectionChange={setDirection}\n switchDirectionOnFlip={switchDirectionOnFlip}\n withinPortal={withinPortal}\n zIndex={zIndex}\n dropdownPosition={dropdownPosition}\n >\n <SelectItems\n data={filteredData}\n hovered={hovered}\n classNames={classNames}\n styles={styles}\n isItemSelected={(val) => val === _value}\n uuid={uuid}\n __staticSelector=\"Select\"\n onItemHover={setHovered}\n onItemSelect={handleItemSelect}\n itemsRefs={itemsRefs}\n itemComponent={itemComponent}\n size={size}\n nothingFound={nothingFound}\n creatable={isCreatable && !!createLabel}\n createLabel={createLabel}\n />\n </SelectDropdown>\n </div>\n\n {name && <input type=\"hidden\" name={name} value={_value || ''} />}\n </InputWrapper>\n );\n }\n);\n\nSelect.displayName = '@mantine/core/Select';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, forwardRef } from 'react';\nimport {\n useUncontrolled,\n useMergedRef,\n useDidUpdate,\n useScrollIntoView,\n useUuid,\n} from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineSize,\n MantineShadow,\n extractMargins,\n getDefaultZIndex,\n} from '@mantine/styles';\nimport { SelectScrollArea } from './SelectScrollArea/SelectScrollArea';\nimport { InputWrapper } from '../InputWrapper';\nimport { Input } from '../Input';\nimport { MantineTransition } from '../Transition';\nimport { DefaultItem } from './DefaultItem/DefaultItem';\nimport { getSelectRightSectionProps } from './SelectRightSection/get-select-right-section-props';\nimport { SelectItems } from './SelectItems/SelectItems';\nimport { SelectDropdown } from './SelectDropdown/SelectDropdown';\nimport { SelectItem, BaseSelectStylesNames, BaseSelectProps } from './types';\nimport { filterData } from './filter-data/filter-data';\nimport { groupOptions } from '../../utils';\nimport useStyles from './Select.styles';\n\nexport interface SelectSharedProps<Item, Value> {\n /** Select data used to renderer items in dropdown */\n data: (string | Item)[];\n\n /** Controlled input value */\n value?: Value;\n\n /** Uncontrolled input defaultValue */\n defaultValue?: Value;\n\n /** Controlled input onChange handler */\n onChange?(value: Value): void;\n\n /** Function based on which items in dropdown are filtered */\n filter?(value: string, item: Item): boolean;\n\n /** Input size */\n size?: MantineSize;\n\n /** Dropdown body appear/disappear transition */\n transition?: MantineTransition;\n\n /** Dropdown body transition duration */\n transitionDuration?: number;\n\n /** Dropdown body transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Dropdown shadow from theme or any value to set box-shadow */\n shadow?: MantineShadow;\n\n /** Initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Change item renderer */\n itemComponent?: React.FC<any>;\n\n /** Called when dropdown is opened */\n onDropdownOpen?(): void;\n\n /** Called when dropdown is closed */\n onDropdownClose?(): void;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n\n /** Limit amount of items displayed at a time for searchable select */\n limit?: number;\n\n /** Nothing found label */\n nothingFound?: React.ReactNode;\n\n /** Dropdown z-index */\n zIndex?: number;\n\n /** Dropdown positioning behavior */\n dropdownPosition?: 'bottom' | 'top' | 'flip';\n\n /** Whether to switch item order and keyboard navigation on dropdown position flip */\n switchDirectionOnFlip?: boolean;\n}\n\nexport interface SelectProps\n extends DefaultProps<BaseSelectStylesNames>,\n BaseSelectProps,\n SelectSharedProps<SelectItem, string | null> {\n /** Maximum dropdown height in px */\n maxDropdownHeight?: number;\n\n /** Set to true to enable search */\n searchable?: boolean;\n\n /** Allow to clear item */\n clearable?: boolean;\n\n /** aria-label for clear button */\n clearButtonLabel?: string;\n\n /** Called each time search value changes */\n onSearchChange?(query: string): void;\n\n /** Allow creatable option */\n creatable?: boolean;\n\n /** Function to get create Label */\n getCreateLabel?: (query: string) => React.ReactNode;\n\n /** Function to determine if create label should be displayed */\n shouldCreate?: (query: string, data: SelectItem[]) => boolean;\n\n /** Called when create option is selected */\n onCreate?: (query: string) => void;\n\n /** Change dropdown component, can be used to add native scrollbars */\n dropdownComponent?: any;\n\n /** Select highlighted item on blur */\n selectOnBlur?: boolean;\n\n /** Allow deselecting items on click */\n allowDeselect?: boolean;\n}\n\nexport function defaultFilter(value: string, item: SelectItem) {\n return item.label.toLowerCase().trim().includes(value.toLowerCase().trim());\n}\n\nexport function defaultShouldCreate(query: string, data: SelectItem[]) {\n return !!query && !data.some((item) => item.label.toLowerCase() === query.toLowerCase());\n}\n\nexport const Select = forwardRef<HTMLInputElement, SelectProps>(\n (\n {\n className,\n style,\n required = false,\n label,\n id,\n error,\n description,\n size = 'sm',\n shadow = 'sm',\n data,\n value,\n defaultValue,\n onChange,\n itemComponent = DefaultItem,\n onKeyDown,\n onBlur,\n onFocus,\n transition = 'fade',\n transitionDuration = 0,\n initiallyOpened = false,\n transitionTimingFunction,\n wrapperProps,\n classNames,\n styles,\n filter = defaultFilter,\n maxDropdownHeight = 220,\n searchable = false,\n clearable = false,\n nothingFound,\n clearButtonLabel,\n limit = Infinity,\n disabled = false,\n onSearchChange,\n rightSection,\n rightSectionWidth,\n creatable = false,\n getCreateLabel,\n shouldCreate = defaultShouldCreate,\n selectOnBlur = false,\n onCreate,\n sx,\n dropdownComponent,\n onDropdownClose,\n onDropdownOpen,\n withinPortal,\n switchDirectionOnFlip = false,\n zIndex = getDefaultZIndex('popover'),\n name,\n dropdownPosition,\n allowDeselect,\n ...others\n }: SelectProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles();\n const { margins, rest } = extractMargins(others);\n const [dropdownOpened, _setDropdownOpened] = useState(initiallyOpened);\n const [hovered, setHovered] = useState(-1);\n const inputRef = useRef<HTMLInputElement>();\n const dropdownRef = useRef<HTMLDivElement>();\n const itemsRefs = useRef<Record<string, HTMLDivElement>>({});\n const [direction, setDirection] = useState<React.CSSProperties['flexDirection']>('column');\n const isColumn = direction === 'column';\n const uuid = useUuid(id);\n const { scrollIntoView, targetRef, scrollableRef } = useScrollIntoView({\n duration: 0,\n offset: 5,\n cancelable: false,\n isList: true,\n });\n\n const isDeselectable = allowDeselect === undefined ? clearable : allowDeselect;\n\n const setDropdownOpened = (opened: boolean) => {\n _setDropdownOpened(opened);\n const handler = opened ? onDropdownOpen : onDropdownClose;\n typeof handler === 'function' && handler();\n };\n\n const isCreatable = creatable && typeof getCreateLabel === 'function';\n let createLabel = null;\n\n const formattedData = data.map((item) =>\n typeof item === 'string' ? { label: item, value: item } : item\n );\n\n const sortedData = groupOptions({ data: formattedData });\n\n const [_value, handleChange, inputMode] = useUncontrolled({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n rule: (val) => typeof val === 'string' || val === null,\n });\n\n const selectedValue = sortedData.find((item) => item.value === _value);\n const [inputValue, setInputValue] = useState(selectedValue?.label || '');\n\n const handleSearchChange = (val: string) => {\n setInputValue(val);\n if (searchable && typeof onSearchChange === 'function') {\n onSearchChange(val);\n }\n };\n\n const handleClear = () => {\n handleChange(null);\n if (inputMode === 'uncontrolled') {\n handleSearchChange('');\n }\n inputRef.current?.focus();\n };\n\n useEffect(() => {\n const newSelectedValue = sortedData.find((item) => item.value === _value);\n\n if (newSelectedValue) {\n handleSearchChange(newSelectedValue.label);\n } else if (!isCreatable || !_value) {\n handleSearchChange('');\n }\n }, [_value]);\n\n useEffect(() => {\n if (selectedValue && (!searchable || !dropdownOpened)) {\n handleSearchChange(selectedValue.label);\n }\n }, [selectedValue?.label]);\n\n const handleItemSelect = (item: SelectItem) => {\n if (isDeselectable && selectedValue?.value === item.value) {\n handleChange(null);\n setDropdownOpened(false);\n } else {\n handleChange(item.value);\n\n if (item.creatable) {\n typeof onCreate === 'function' && onCreate(item.value);\n }\n\n if (inputMode === 'uncontrolled') {\n handleSearchChange(item.label);\n }\n setHovered(-1);\n setDropdownOpened(false);\n inputRef.current.focus();\n }\n };\n\n const filteredData = filterData({\n data: sortedData,\n searchable,\n limit,\n searchValue: inputValue,\n filter,\n });\n\n if (isCreatable && shouldCreate(inputValue, filteredData)) {\n createLabel = getCreateLabel(inputValue);\n filteredData.push({ label: inputValue, value: inputValue, creatable: true });\n }\n\n const getNextIndex = (\n index: number,\n nextItem: (index: number) => number,\n compareFn: (index: number) => boolean\n ) => {\n let i = index;\n while (compareFn(i)) {\n i = nextItem(i);\n if (!filteredData[i].disabled) return i;\n }\n return index;\n };\n\n useDidUpdate(() => {\n setHovered(\n getNextIndex(\n -1,\n (index) => index + 1,\n (index) => index < filteredData.length - 1\n )\n );\n }, [inputValue]);\n\n const selectedItemIndex = _value ? filteredData.findIndex((el) => el.value === _value) : 0;\n\n const handlePrevious = () => {\n setHovered((current) => {\n const nextIndex = getNextIndex(\n current,\n (index) => index - 1,\n (index) => index > 0\n );\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'start' : 'end' });\n return nextIndex;\n });\n };\n\n const handleNext = () => {\n setHovered((current) => {\n const nextIndex = getNextIndex(\n current,\n (index) => index + 1,\n (index) => index < filteredData.length - 1\n );\n\n targetRef.current = itemsRefs.current[filteredData[nextIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'end' : 'start' });\n return nextIndex;\n });\n };\n\n const scrollSelectedItemIntoView = () =>\n window.setTimeout(() => {\n targetRef.current = itemsRefs.current[filteredData[selectedItemIndex]?.value];\n scrollIntoView({ alignment: isColumn ? 'end' : 'start' });\n }, 0);\n\n const handleInputKeydown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n\n switch (event.nativeEvent.code) {\n case 'ArrowUp': {\n event.preventDefault();\n\n if (!dropdownOpened) {\n setHovered(selectedItemIndex);\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n } else {\n isColumn ? handlePrevious() : handleNext();\n }\n\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n\n if (!dropdownOpened) {\n setHovered(selectedItemIndex);\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n } else {\n isColumn ? handleNext() : handlePrevious();\n }\n\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n setDropdownOpened(false);\n setHovered(-1);\n break;\n }\n\n case 'Space': {\n if (!searchable) {\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleItemSelect(filteredData[hovered]);\n } else {\n setDropdownOpened(!dropdownOpened);\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n }\n\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n\n if (filteredData[hovered] && dropdownOpened) {\n event.preventDefault();\n handleItemSelect(filteredData[hovered]);\n } else {\n setDropdownOpened(true);\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n }\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n const selected = sortedData.find((item) => item.value === _value);\n if (selectOnBlur && filteredData[hovered] && dropdownOpened) {\n handleItemSelect(filteredData[hovered]);\n }\n handleSearchChange(selected?.label || '');\n setDropdownOpened(false);\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n if (searchable) {\n setDropdownOpened(true);\n scrollSelectedItemIntoView();\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n handleSearchChange(event.currentTarget.value);\n\n if (clearable && event.currentTarget.value === '') {\n handleChange(null);\n }\n\n setHovered(0);\n setDropdownOpened(true);\n };\n\n const handleInputClick = () => {\n let dropdownOpen = true;\n\n if (!searchable) {\n dropdownOpen = !dropdownOpened;\n }\n\n setDropdownOpened(dropdownOpen);\n\n if (_value && dropdownOpen) {\n setHovered(selectedItemIndex);\n scrollSelectedItemIntoView();\n }\n };\n\n const shouldShowDropdown =\n dropdownOpened &&\n (searchable && !creatable ? filteredData.length > 0 || !!nothingFound : dropdownOpened);\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=\"Select\"\n sx={sx}\n {...margins}\n {...wrapperProps}\n >\n <div\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-owns={`${uuid}-items`}\n aria-controls={uuid}\n aria-expanded={shouldShowDropdown}\n onMouseLeave={() => setHovered(-1)}\n tabIndex={-1}\n >\n <Input<'input'>\n {...rest}\n type=\"text\"\n required={required}\n ref={useMergedRef(ref, inputRef)}\n id={uuid}\n invalid={!!error}\n size={size}\n onKeyDown={handleInputKeydown}\n __staticSelector=\"Select\"\n value={inputValue}\n onChange={handleInputChange}\n aria-autocomplete=\"list\"\n aria-controls={shouldShowDropdown ? `${uuid}-items` : null}\n aria-activedescendant={hovered !== -1 ? `${uuid}-${hovered}` : null}\n onClick={handleInputClick}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n readOnly={!searchable}\n disabled={disabled}\n data-mantine-stop-propagation={shouldShowDropdown}\n autoComplete=\"off\"\n classNames={{\n ...classNames,\n input: cx({ [classes.input]: !searchable }, classNames?.input),\n }}\n {...getSelectRightSectionProps({\n theme,\n rightSection,\n rightSectionWidth,\n styles,\n size,\n shouldClear: clearable && !!selectedValue,\n clearButtonLabel,\n onClear: handleClear,\n error,\n })}\n />\n\n <SelectDropdown\n referenceElement={inputRef.current}\n mounted={shouldShowDropdown}\n transition={transition}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n uuid={uuid}\n shadow={shadow}\n maxDropdownHeight={maxDropdownHeight}\n classNames={classNames}\n styles={styles}\n ref={useMergedRef(dropdownRef, scrollableRef)}\n __staticSelector=\"Select\"\n dropdownComponent={dropdownComponent || SelectScrollArea}\n direction={direction}\n onDirectionChange={setDirection}\n switchDirectionOnFlip={switchDirectionOnFlip}\n withinPortal={withinPortal}\n zIndex={zIndex}\n dropdownPosition={dropdownPosition}\n >\n <SelectItems\n data={filteredData}\n hovered={hovered}\n classNames={classNames}\n styles={styles}\n isItemSelected={(val) => val === _value}\n uuid={uuid}\n __staticSelector=\"Select\"\n onItemHover={setHovered}\n onItemSelect={handleItemSelect}\n itemsRefs={itemsRefs}\n itemComponent={itemComponent}\n size={size}\n nothingFound={nothingFound}\n creatable={isCreatable && !!createLabel}\n createLabel={createLabel}\n />\n </SelectDropdown>\n </div>\n\n {name && <input type=\"hidden\" name={name} value={_value || ''} />}\n </InputWrapper>\n );\n }\n);\n\nSelect.displayName = '@mantine/core/Select';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectDropdown.js","sources":["../../../../src/components/Select/SelectDropdown/SelectDropdown.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, MantineShadow, ClassNames, getDefaultZIndex } from '@mantine/styles';\nimport type { Placement } from '@popperjs/core';\nimport { SelectScrollArea } from '../SelectScrollArea/SelectScrollArea';\nimport { MantineTransition } from '../../Transition';\nimport { Paper } from '../../Paper';\nimport useStyles from './SelectDropdown.styles';\nimport { Popper } from '../../Popper';\n\nexport type SelectDropdownStylesNames = ClassNames<typeof useStyles>;\n\ninterface SelectDropdownProps extends DefaultProps<SelectDropdownStylesNames> {\n mounted: boolean;\n transition: MantineTransition;\n transitionDuration: number;\n transitionTimingFunction: string;\n uuid: string;\n shadow: MantineShadow;\n maxDropdownHeight?: number | string;\n withinPortal?: boolean;\n children: React.ReactNode;\n __staticSelector: string;\n dropdownComponent?: React.FC<any>;\n referenceElement?: HTMLElement;\n direction?: React.CSSProperties['flexDirection'];\n onDirectionChange?: (direction: React.CSSProperties['flexDirection']) => void;\n switchDirectionOnFlip?: boolean;\n zIndex?: number;\n dropdownPosition?: 'bottom' | 'top' | 'flip';\n}\n\nexport const SelectDropdown = forwardRef<HTMLDivElement, SelectDropdownProps>(\n (\n {\n mounted,\n transition,\n transitionDuration,\n transitionTimingFunction,\n uuid,\n shadow,\n maxDropdownHeight,\n withinPortal = true,\n children,\n classNames,\n styles,\n dropdownComponent,\n referenceElement,\n direction = 'column',\n onDirectionChange,\n switchDirectionOnFlip = false,\n zIndex = getDefaultZIndex('popover'),\n dropdownPosition = 'flip',\n __staticSelector,\n }: SelectDropdownProps,\n ref\n ) => {\n const { classes } = useStyles(\n { native: dropdownComponent !== SelectScrollArea },\n { classNames, styles, name: __staticSelector }\n );\n\n const previousPlacement = useRef<Placement>('bottom');\n\n return (\n <Popper\n referenceElement={referenceElement}\n mounted={mounted}\n transition={transition}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n position={dropdownPosition === 'flip' ? 'bottom' : dropdownPosition}\n withinPortal={withinPortal}\n zIndex={zIndex}\n modifiers={[\n {\n name: 'preventOverflow',\n enabled: false,\n },\n {\n name: 'flip',\n enabled: dropdownPosition === 'flip',\n },\n {\n // @ts-ignore\n name: 'sameWidth',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: ({ state }) => {\n // eslint-disable-next-line no-param-reassign\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n // eslint-disable-next-line no-param-reassign\n state.elements.popper.style.width = `${state.elements.reference.offsetWidth}px`;\n },\n },\n {\n // @ts-ignore\n name: 'directionControl',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n if (previousPlacement.current !== state.placement) {\n previousPlacement.current = state.placement;\n\n const nextDirection = state.placement === 'top' ? 'column-reverse' : 'column';\n\n if (direction !== nextDirection && switchDirectionOnFlip) {\n onDirectionChange && onDirectionChange(nextDirection);\n }\n }\n },\n },\n ]}\n >\n <div style={{ maxHeight: maxDropdownHeight, display: 'flex' }}>\n <Paper<'div'>\n component={(dropdownComponent || 'div') as any}\n id={`${uuid}-items`}\n aria-labelledby={`${uuid}-label`}\n role=\"listbox\"\n className={classes.dropdown}\n shadow={shadow}\n ref={ref}\n onMouseDown={(event) => event.preventDefault()}\n >\n <div style={{ display: 'flex', flexDirection: direction, width: '100%' }}>\n {children}\n </div>\n </Paper>\n </div>\n </Popper>\n );\n }\n);\n\nSelectDropdown.displayName = '@mantine/core/SelectDropdown';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectDropdown.js","sources":["../../../../src/components/Select/SelectDropdown/SelectDropdown.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, MantineShadow, ClassNames, getDefaultZIndex } from '@mantine/styles';\nimport type { Placement } from '@popperjs/core';\nimport { SelectScrollArea } from '../SelectScrollArea/SelectScrollArea';\nimport { MantineTransition } from '../../Transition';\nimport { Paper } from '../../Paper';\nimport useStyles from './SelectDropdown.styles';\nimport { Popper } from '../../Popper';\n\nexport type SelectDropdownStylesNames = ClassNames<typeof useStyles>;\n\ninterface SelectDropdownProps extends DefaultProps<SelectDropdownStylesNames> {\n mounted: boolean;\n transition: MantineTransition;\n transitionDuration: number;\n transitionTimingFunction: string;\n uuid: string;\n shadow: MantineShadow;\n maxDropdownHeight?: number | string;\n withinPortal?: boolean;\n children: React.ReactNode;\n __staticSelector: string;\n dropdownComponent?: React.FC<any>;\n referenceElement?: HTMLElement;\n direction?: React.CSSProperties['flexDirection'];\n onDirectionChange?: (direction: React.CSSProperties['flexDirection']) => void;\n switchDirectionOnFlip?: boolean;\n zIndex?: number;\n dropdownPosition?: 'bottom' | 'top' | 'flip';\n}\n\nexport const SelectDropdown = forwardRef<HTMLDivElement, SelectDropdownProps>(\n (\n {\n mounted,\n transition,\n transitionDuration,\n transitionTimingFunction,\n uuid,\n shadow,\n maxDropdownHeight,\n withinPortal = true,\n children,\n classNames,\n styles,\n dropdownComponent,\n referenceElement,\n direction = 'column',\n onDirectionChange,\n switchDirectionOnFlip = false,\n zIndex = getDefaultZIndex('popover'),\n dropdownPosition = 'flip',\n __staticSelector,\n }: SelectDropdownProps,\n ref\n ) => {\n const { classes } = useStyles(\n { native: dropdownComponent !== SelectScrollArea },\n { classNames, styles, name: __staticSelector }\n );\n\n const previousPlacement = useRef<Placement>('bottom');\n\n return (\n <Popper\n referenceElement={referenceElement}\n mounted={mounted}\n transition={transition}\n transitionDuration={transitionDuration}\n exitTransitionDuration={0}\n transitionTimingFunction={transitionTimingFunction}\n position={dropdownPosition === 'flip' ? 'bottom' : dropdownPosition}\n withinPortal={withinPortal}\n zIndex={zIndex}\n modifiers={[\n {\n name: 'preventOverflow',\n enabled: false,\n },\n {\n name: 'flip',\n enabled: dropdownPosition === 'flip',\n },\n {\n // @ts-ignore\n name: 'sameWidth',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: ({ state }) => {\n // eslint-disable-next-line no-param-reassign\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n // eslint-disable-next-line no-param-reassign\n state.elements.popper.style.width = `${state.elements.reference.offsetWidth}px`;\n },\n },\n {\n // @ts-ignore\n name: 'directionControl',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n if (previousPlacement.current !== state.placement) {\n previousPlacement.current = state.placement;\n\n const nextDirection = state.placement === 'top' ? 'column-reverse' : 'column';\n\n if (direction !== nextDirection && switchDirectionOnFlip) {\n onDirectionChange && onDirectionChange(nextDirection);\n }\n }\n },\n },\n ]}\n >\n <div style={{ maxHeight: maxDropdownHeight, display: 'flex' }}>\n <Paper<'div'>\n component={(dropdownComponent || 'div') as any}\n id={`${uuid}-items`}\n aria-labelledby={`${uuid}-label`}\n role=\"listbox\"\n className={classes.dropdown}\n shadow={shadow}\n ref={ref}\n onMouseDown={(event) => event.preventDefault()}\n >\n <div style={{ display: 'flex', flexDirection: direction, width: '100%' }}>\n {children}\n </div>\n </Paper>\n </div>\n </Popper>\n );\n }\n);\n\nSelectDropdown.displayName = '@mantine/core/SelectDropdown';\n"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { getPosition } from '../utils/get-position/get-position.js';
|
|
3
3
|
import { isMarkFilled } from './is-mark-filled.js';
|
|
4
4
|
import useStyles from './Marks.styles.js';
|
|
5
|
+
import { Box } from '../../Box/Box.js';
|
|
5
6
|
|
|
6
7
|
function Marks({
|
|
7
8
|
marks,
|
|
@@ -16,9 +17,9 @@ function Marks({
|
|
|
16
17
|
onChange
|
|
17
18
|
}) {
|
|
18
19
|
const { classes, cx } = useStyles({ size, color }, { classNames, styles, name: "Slider" });
|
|
19
|
-
const items = marks.map((mark, index) => /* @__PURE__ */ React.createElement(
|
|
20
|
+
const items = marks.map((mark, index) => /* @__PURE__ */ React.createElement(Box, {
|
|
20
21
|
className: classes.markWrapper,
|
|
21
|
-
|
|
22
|
+
sx: { left: `${getPosition({ value: mark.value, min, max })}%` },
|
|
22
23
|
key: index
|
|
23
24
|
}, /* @__PURE__ */ React.createElement("div", {
|
|
24
25
|
className: cx(classes.mark, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Marks.js","sources":["../../../../src/components/Slider/Marks/Marks.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, MantineNumberSize, MantineColor, ClassNames } from '@mantine/styles';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { isMarkFilled } from './is-mark-filled';\nimport useStyles from './Marks.styles';\n\nexport type MarksStylesNames = ClassNames<typeof useStyles>;\n\nexport interface MarksProps extends DefaultProps<MarksStylesNames> {\n marks: { value: number; label?: React.ReactNode }[];\n size: MantineNumberSize;\n color: MantineColor;\n min: number;\n max: number;\n value: number;\n onChange(value: number): void;\n offset?: number;\n}\n\nexport function Marks({\n marks,\n color,\n size,\n min,\n max,\n value,\n classNames,\n styles,\n offset,\n onChange,\n}: MarksProps) {\n const { classes, cx } = useStyles({ size, color }, { classNames, styles, name: 'Slider' });\n\n const items = marks.map((mark, index) => (\n <
|
|
1
|
+
{"version":3,"file":"Marks.js","sources":["../../../../src/components/Slider/Marks/Marks.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, MantineNumberSize, MantineColor, ClassNames } from '@mantine/styles';\nimport { Box } from '../../Box';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { isMarkFilled } from './is-mark-filled';\nimport useStyles from './Marks.styles';\n\nexport type MarksStylesNames = ClassNames<typeof useStyles>;\n\nexport interface MarksProps extends DefaultProps<MarksStylesNames> {\n marks: { value: number; label?: React.ReactNode }[];\n size: MantineNumberSize;\n color: MantineColor;\n min: number;\n max: number;\n value: number;\n onChange(value: number): void;\n offset?: number;\n}\n\nexport function Marks({\n marks,\n color,\n size,\n min,\n max,\n value,\n classNames,\n styles,\n offset,\n onChange,\n}: MarksProps) {\n const { classes, cx } = useStyles({ size, color }, { classNames, styles, name: 'Slider' });\n\n const items = marks.map((mark, index) => (\n <Box\n className={classes.markWrapper}\n sx={{ left: `${getPosition({ value: mark.value, min, max })}%` }}\n key={index}\n >\n <div\n className={cx(classes.mark, {\n [classes.markFilled]: isMarkFilled({ mark, value, offset }),\n })}\n />\n {mark.label && (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n className={classes.markLabel}\n onMouseDown={(event) => {\n event.stopPropagation();\n onChange(mark.value);\n }}\n onTouchStart={(event) => {\n event.stopPropagation();\n onChange(mark.value);\n }}\n >\n {mark.label}\n </div>\n )}\n </Box>\n ));\n\n return <div>{items}</div>;\n}\n\nMarks.displayName = '@mantine/core/SliderMarks';\n"],"names":[],"mappings":";;;;;;AAKO,SAAS,KAAK,CAAC;AACtB,EAAE,KAAK;AACP,EAAE,KAAK;AACP,EAAE,IAAI;AACN,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE,KAAK;AACP,EAAE,UAAU;AACZ,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,CAAC,EAAE;AACH,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC7F,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AACpF,IAAI,SAAS,EAAE,OAAO,CAAC,WAAW;AAClC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACpE,IAAI,GAAG,EAAE,KAAK;AACd,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAChD,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;AAChC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACjE,KAAK,CAAC;AACN,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AAC/D,IAAI,SAAS,EAAE,OAAO,CAAC,SAAS;AAChC,IAAI,WAAW,EAAE,CAAC,KAAK,KAAK;AAC5B,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;AAC9B,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAK;AACL,IAAI,YAAY,EAAE,CAAC,KAAK,KAAK;AAC7B,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;AAC9B,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,KAAK;AACL,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AACD,KAAK,CAAC,WAAW,GAAG,2BAA2B;;;;"}
|
|
@@ -4,12 +4,12 @@ import { sizes } from '../SliderRoot/SliderRoot.styles.js';
|
|
|
4
4
|
var useStyles = createStyles((theme, { size, color }) => ({
|
|
5
5
|
markWrapper: {
|
|
6
6
|
position: "absolute",
|
|
7
|
-
top: 0
|
|
7
|
+
top: 0,
|
|
8
|
+
zIndex: 2
|
|
8
9
|
},
|
|
9
10
|
mark: {
|
|
10
11
|
boxSizing: "border-box",
|
|
11
12
|
border: `${theme.fn.size({ size, sizes }) >= 8 ? "2px" : "1px"} solid ${theme.colorScheme === "dark" ? theme.colors.dark[4] : theme.colors.gray[2]}`,
|
|
12
|
-
zIndex: 1,
|
|
13
13
|
height: theme.fn.size({ sizes, size }),
|
|
14
14
|
width: theme.fn.size({ sizes, size }),
|
|
15
15
|
borderRadius: 1e3,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Marks.styles.js","sources":["../../../../src/components/Slider/Marks/Marks.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize, MantineColor } from '@mantine/styles';\nimport { sizes } from '../SliderRoot/SliderRoot.styles';\n\ninterface MarksStyles {\n color: MantineColor;\n size: MantineNumberSize;\n}\n\nexport default createStyles((theme, { size, color }: MarksStyles) => ({\n markWrapper: {\n position: 'absolute',\n top: 0,\n },\n\n mark: {\n boxSizing: 'border-box',\n border: `${theme.fn.size({ size, sizes }) >= 8 ? '2px' : '1px'} solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2]\n }`,\n
|
|
1
|
+
{"version":3,"file":"Marks.styles.js","sources":["../../../../src/components/Slider/Marks/Marks.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize, MantineColor } from '@mantine/styles';\nimport { sizes } from '../SliderRoot/SliderRoot.styles';\n\ninterface MarksStyles {\n color: MantineColor;\n size: MantineNumberSize;\n}\n\nexport default createStyles((theme, { size, color }: MarksStyles) => ({\n markWrapper: {\n position: 'absolute',\n top: 0,\n zIndex: 2,\n },\n\n mark: {\n boxSizing: 'border-box',\n border: `${theme.fn.size({ size, sizes }) >= 8 ? '2px' : '1px'} solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2]\n }`,\n height: theme.fn.size({ sizes, size }),\n width: theme.fn.size({ sizes, size }),\n borderRadius: 1000,\n transform: `translateX(-${theme.fn.size({ sizes, size }) / 2}px)`,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.white,\n },\n\n markFilled: {\n borderColor: theme.fn.themeColor(color, 6),\n },\n\n markLabel: {\n transform: 'translate(-50%, 0)',\n fontSize: theme.fontSizes.sm,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[6],\n marginTop: theme.spacing.xs / 2,\n },\n}));\n"],"names":[],"mappings":";;;AAEA,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;AACzD,EAAE,WAAW,EAAE;AACf,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,GAAG,EAAE,CAAC;AACV,IAAI,MAAM,EAAE,CAAC;AACb,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxJ,IAAI,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC1C,IAAI,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzC,IAAI,YAAY,EAAE,GAAG;AACrB,IAAI,SAAS,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACrE,IAAI,eAAe,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK;AACtF,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9C,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,SAAS,EAAE,oBAAoB;AACnC,IAAI,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE;AAChC,IAAI,KAAK,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,IAAI,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;AACnC,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import React, { forwardRef, useState, useRef } from 'react';
|
|
1
|
+
import React, { forwardRef, useState, useRef, useEffect } from 'react';
|
|
2
2
|
import { useUncontrolled, useMove, useMergedRef } from '@mantine/hooks';
|
|
3
|
+
import { useMantineTheme } from '@mantine/styles';
|
|
3
4
|
import { getClientPosition } from '../utils/get-client-position/get-client-position.js';
|
|
4
5
|
import { getPosition } from '../utils/get-position/get-position.js';
|
|
5
6
|
import { getChangeValue } from '../utils/get-change-value/get-change-value.js';
|
|
@@ -88,6 +89,7 @@ const RangeSlider = forwardRef((_a, ref) => {
|
|
|
88
89
|
"showLabelOnHover",
|
|
89
90
|
"thumbChildren"
|
|
90
91
|
]);
|
|
92
|
+
const theme = useMantineTheme();
|
|
91
93
|
const [focused, setFocused] = useState(-1);
|
|
92
94
|
const [hovered, setHovered] = useState(false);
|
|
93
95
|
const [_value, setValue] = useUncontrolled({
|
|
@@ -108,6 +110,11 @@ const RangeSlider = forwardRef((_a, ref) => {
|
|
|
108
110
|
setValue(val);
|
|
109
111
|
_valueRef.current = val;
|
|
110
112
|
};
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
if (Array.isArray(value)) {
|
|
115
|
+
_valueRef.current = value;
|
|
116
|
+
}
|
|
117
|
+
}, Array.isArray(value) ? [value[0], value[1]] : [null, null]);
|
|
111
118
|
const setRangedValue = (val, index) => {
|
|
112
119
|
const clone = [..._valueRef.current];
|
|
113
120
|
clone[index] = val;
|
|
@@ -133,7 +140,7 @@ const RangeSlider = forwardRef((_a, ref) => {
|
|
|
133
140
|
const nextValue = getChangeValue({ value: val, min, max, step });
|
|
134
141
|
setRangedValue(nextValue, thumbIndex.current);
|
|
135
142
|
};
|
|
136
|
-
const { ref: container, active } = useMove(({ x }) => handleChange(x));
|
|
143
|
+
const { ref: container, active } = useMove(({ x }) => handleChange(x), void 0, theme.dir);
|
|
137
144
|
function handleThumbMouseDown(event, index) {
|
|
138
145
|
if (event.cancelable) {
|
|
139
146
|
event.preventDefault();
|
|
@@ -156,7 +163,8 @@ const RangeSlider = forwardRef((_a, ref) => {
|
|
|
156
163
|
containerWidth: rect.width
|
|
157
164
|
});
|
|
158
165
|
const nearestHandle = Math.abs(_value[0] - changeValue) > Math.abs(_value[1] - changeValue) ? 1 : 0;
|
|
159
|
-
|
|
166
|
+
const _nearestHandle = theme.dir === "ltr" ? nearestHandle : nearestHandle === 1 ? 0 : 1;
|
|
167
|
+
thumbIndex.current = _nearestHandle;
|
|
160
168
|
};
|
|
161
169
|
const getFocusedThumbIndex = () => {
|
|
162
170
|
if (focused !== 1 && focused !== 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeSlider.js","sources":["../../../../src/components/Slider/RangeSlider/RangeSlider.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useMove, useUncontrolled, useMergedRef } from '@mantine/hooks';\nimport { DefaultProps, MantineNumberSize, MantineColor } 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 /** 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\nexport const RangeSlider = forwardRef<HTMLDivElement, RangeSliderProps>(\n (\n {\n classNames,\n styles,\n color,\n value,\n onChange,\n size = 'md',\n radius = 'xl',\n min = 0,\n max = 100,\n minRange = 10,\n step = 1,\n defaultValue,\n name,\n marks = [],\n label = (f) => f,\n labelTransition = 'skew-down',\n labelTransitionDuration = 150,\n labelTransitionTimingFunction,\n labelAlwaysOn = false,\n thumbFromLabel = '',\n thumbToLabel = '',\n showLabelOnHover = true,\n thumbChildren,\n ...others\n }: RangeSliderProps,\n ref\n ) => {\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 const setRangedValue = (val: number, index: number) => {\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\n const handleChange = (val: number) => {\n const nextValue = getChangeValue({ value: val, min, max, step });\n setRangedValue(nextValue, thumbIndex.current);\n };\n\n const { ref: container, active } = useMove(({ x }) => handleChange(x));\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\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 case 'ArrowRight': {\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 );\n break;\n }\n\n case 'ArrowDown':\n case 'ArrowLeft': {\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 );\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 { DefaultProps, MantineNumberSize, MantineColor, useMantineTheme } 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 /** 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\nexport const RangeSlider = forwardRef<HTMLDivElement, RangeSliderProps>(\n (\n {\n classNames,\n styles,\n color,\n value,\n onChange,\n size = 'md',\n radius = 'xl',\n min = 0,\n max = 100,\n minRange = 10,\n step = 1,\n defaultValue,\n name,\n marks = [],\n label = (f) => f,\n labelTransition = 'skew-down',\n labelTransitionDuration = 150,\n labelTransitionTimingFunction,\n labelAlwaysOn = false,\n thumbFromLabel = '',\n thumbToLabel = '',\n showLabelOnHover = true,\n thumbChildren,\n ...others\n }: RangeSliderProps,\n ref\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) => {\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\n const handleChange = (val: number) => {\n const nextValue = getChangeValue({ value: val, min, max, step });\n setRangedValue(nextValue, thumbIndex.current);\n };\n\n const { ref: container, active } = useMove(({ x }) => handleChange(x), undefined, theme.dir);\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 case 'ArrowRight': {\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 );\n break;\n }\n\n case 'ArrowDown':\n case 'ArrowLeft': {\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 );\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":";;;;;;;;;;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;AAUU,MAAC,WAAW,GAAG,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK;AACnD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,IAAI,GAAG,IAAI;AACf,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,GAAG,GAAG,CAAC;AACX,IAAI,GAAG,GAAG,GAAG;AACb,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,YAAY;AAChB,IAAI,IAAI;AACR,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AACpB,IAAI,eAAe,GAAG,WAAW;AACjC,IAAI,uBAAuB,GAAG,GAAG;AACjC,IAAI,6BAA6B;AACjC,IAAI,aAAa,GAAG,KAAK;AACzB,IAAI,cAAc,GAAG,EAAE;AACvB,IAAI,YAAY,GAAG,EAAE;AACrB,IAAI,gBAAgB,GAAG,IAAI;AAC3B,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,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,UAAU;AACd,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,gBAAgB;AACpB,IAAI,cAAc;AAClB,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,CAAC,CAAC,CAAC,CAAC;AAC7C,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;AACT,IAAI,YAAY;AAChB,IAAI,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1B,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AACrC,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AACnC,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5B,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACpC,EAAE,MAAM,SAAS,GAAG;AACpB,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/C,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC/C,GAAG,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK;AAC7B,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClB,IAAI,SAAS,CAAC,OAAO,GAAG,GAAG,CAAC;AAC5B,GAAG,CAAC;AACJ,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,MAAM,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;AAChC,KAAK;AACL,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACjE,EAAE,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;AACzC,IAAI,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AACzC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACvB,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE;AACrC,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,OAAO;AACP,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,QAAQ,IAAI,GAAG,CAAC,EAAE;AACzC,QAAQ,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE;AACrC,QAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,OAAO;AACP,MAAM,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,EAAE;AACnC,QAAQ,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChD,OAAO;AACP,KAAK;AACL,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AACrB,GAAG,CAAC;AACJ,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,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AAClD,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,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5F,EAAE,SAAS,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE;AAC9C,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;AAC7B,MAAM,KAAK,CAAC,eAAe,EAAE,CAAC;AAC9B,KAAK;AACL,IAAI,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,MAAM,2BAA2B,GAAG,CAAC,KAAK,KAAK;AACjD,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;AAC7B,KAAK;AACL,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC9B,IAAI,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAC3D,IAAI,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAChE,IAAI,MAAM,WAAW,GAAG,cAAc,CAAC;AACvC,MAAM,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC,IAAI;AACvC,MAAM,GAAG;AACT,MAAM,GAAG;AACT,MAAM,IAAI;AACV,MAAM,cAAc,EAAE,IAAI,CAAC,KAAK;AAChC,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxG,IAAI,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,KAAK,KAAK,GAAG,aAAa,GAAG,aAAa,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7F,IAAI,UAAU,CAAC,OAAO,GAAG,cAAc,CAAC;AACxC,GAAG,CAAC;AACJ,EAAE,MAAM,oBAAoB,GAAG,MAAM;AACrC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE;AACxC,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;AACpB,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG,CAAC;AACJ,EAAE,MAAM,yBAAyB,GAAG,CAAC,KAAK,KAAK;AAC/C,IAAI,QAAQ,KAAK,CAAC,WAAW,CAAC,IAAI;AAClC,MAAM,KAAK,SAAS,CAAC;AACrB,MAAM,KAAK,YAAY,EAAE;AACzB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;AACpD,QAAQ,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7C,QAAQ,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;AAC3G,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,WAAW,CAAC;AACvB,MAAM,KAAK,WAAW,EAAE;AACxB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;AACpD,QAAQ,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7C,QAAQ,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;AAC3G,QAAQ,MAAM;AACd,OAAO;AAIP,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,gBAAgB,GAAG;AAC3B,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,eAAe;AACnB,IAAI,uBAAuB;AAC3B,IAAI,6BAA6B;AACjC,IAAI,aAAa;AACjB,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;AAChC,IAAI,UAAU;AACd,IAAI,MAAM;AACV,GAAG,CAAC;AACJ,EAAE,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC7D,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,mBAAmB,EAAE,2BAA2B;AACpD,IAAI,iBAAiB,EAAE,MAAM;AAC7B,MAAM,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,kBAAkB,EAAE,2BAA2B;AACnD,IAAI,gBAAgB,EAAE,MAAM;AAC5B,MAAM,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,gBAAgB,EAAE,yBAAyB;AAC/C,IAAI,MAAM;AACV,IAAI,UAAU;AACd,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACjD,IAAI,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AACxB,IAAI,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AACvC,IAAI,KAAK;AACT,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,GAAG;AACP,IAAI,GAAG;AACP,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,IAAI,MAAM;AACV,IAAI,UAAU;AACd,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,QAAQ,EAAE,CAAC,GAAG,KAAK;AACvB,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzF,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAChC,MAAM,KAAK,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;AAChC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;AACvB,KAAK;AACL,GAAG,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE;AACpG,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,IAAI,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC1B,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,KAAK,EAAE,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;AACjE,IAAI,GAAG,EAAE,CAAC,IAAI,KAAK;AACnB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/B,KAAK;AACL,IAAI,UAAU,EAAE,cAAc;AAC9B,IAAI,WAAW,EAAE,CAAC,KAAK,KAAK,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1D,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC;AAChC,IAAI,gBAAgB,EAAE,gBAAgB,IAAI,OAAO;AACjD,GAAG,CAAC,EAAE,qBAAqB,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE;AAChK,IAAI,UAAU,EAAE,YAAY;AAC5B,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,IAAI,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC1B,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,KAAK,EAAE,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;AACjE,IAAI,GAAG,EAAE,CAAC,IAAI,KAAK;AACnB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAC/B,KAAK;AACL,IAAI,WAAW,EAAE,CAAC,KAAK,KAAK,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1D,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC;AAChC,IAAI,gBAAgB,EAAE,gBAAgB,IAAI,OAAO;AACjD,GAAG,CAAC,EAAE,qBAAqB,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AAC/G,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;AACxB,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,GAAG,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE;AACnD,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AACtB,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,GAAG,CAAC,CAAC,CAAC;AACN,CAAC,EAAE;AACH,WAAW,CAAC,WAAW,GAAG,2BAA2B;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { forwardRef, useState, useRef } from 'react';
|
|
2
|
-
import { useUncontrolled, useMove, useMergedRef } from '@mantine/hooks';
|
|
2
|
+
import { useUncontrolled, clamp, useMove, useMergedRef } from '@mantine/hooks';
|
|
3
|
+
import { useMantineTheme } from '@mantine/styles';
|
|
3
4
|
import { getPosition } from '../utils/get-position/get-position.js';
|
|
4
5
|
import { getChangeValue } from '../utils/get-change-value/get-change-value.js';
|
|
5
6
|
import { Thumb } from '../Thumb/Thumb.js';
|
|
@@ -54,7 +55,7 @@ const Slider = forwardRef((_a, ref) => {
|
|
|
54
55
|
marks = [],
|
|
55
56
|
label = (f) => f,
|
|
56
57
|
labelTransition = "skew-down",
|
|
57
|
-
labelTransitionDuration =
|
|
58
|
+
labelTransitionDuration = 0,
|
|
58
59
|
labelTransitionTimingFunction,
|
|
59
60
|
labelAlwaysOn = false,
|
|
60
61
|
thumbLabel = "",
|
|
@@ -83,11 +84,12 @@ const Slider = forwardRef((_a, ref) => {
|
|
|
83
84
|
"showLabelOnHover",
|
|
84
85
|
"thumbChildren"
|
|
85
86
|
]);
|
|
87
|
+
const theme = useMantineTheme();
|
|
86
88
|
const [hovered, setHovered] = useState(false);
|
|
87
89
|
const [_value, setValue] = useUncontrolled({
|
|
88
|
-
value,
|
|
89
|
-
defaultValue,
|
|
90
|
-
finalValue: 0,
|
|
90
|
+
value: typeof value === "number" ? clamp({ value, min, max }) : value,
|
|
91
|
+
defaultValue: typeof defaultValue === "number" ? clamp({ value: defaultValue, min, max }) : defaultValue,
|
|
92
|
+
finalValue: clamp({ value: 0, min, max }),
|
|
91
93
|
rule: (val) => typeof val === "number",
|
|
92
94
|
onChange
|
|
93
95
|
});
|
|
@@ -98,7 +100,7 @@ const Slider = forwardRef((_a, ref) => {
|
|
|
98
100
|
const nextValue = getChangeValue({ value: val, min, max, step });
|
|
99
101
|
setValue(nextValue);
|
|
100
102
|
};
|
|
101
|
-
const { ref: container, active } = useMove(({ x }) => handleChange(x));
|
|
103
|
+
const { ref: container, active } = useMove(({ x }) => handleChange(x), void 0, theme.dir);
|
|
102
104
|
function handleThumbMouseDown(event) {
|
|
103
105
|
if (event.cancelable) {
|
|
104
106
|
event.preventDefault();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider/Slider.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled, useMove, useMergedRef } from '@mantine/hooks';\nimport { DefaultProps, MantineNumberSize, MantineColor } 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 /** 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\nexport const Slider = forwardRef<HTMLDivElement, SliderProps>(\n (\n {\n classNames,\n styles,\n color,\n value,\n onChange,\n size = 'md',\n radius = 'xl',\n min = 0,\n max = 100,\n step = 1,\n defaultValue,\n name,\n marks = [],\n label = (f) => f,\n labelTransition = 'skew-down',\n labelTransitionDuration = 150,\n labelTransitionTimingFunction,\n labelAlwaysOn = false,\n thumbLabel = '',\n showLabelOnHover = true,\n thumbChildren,\n ...others\n }: SliderProps,\n ref\n ) => {\n const [hovered, setHovered] = useState(false);\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: 0,\n rule: (val) => typeof val === 'number',\n onChange,\n });\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 };\n\n const { ref: container, active } = useMove(({ x }) => handleChange(x));\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 case 'ArrowRight': {\n event.preventDefault();\n thumb.current.focus();\n setValue(Math.min(Math.max(_value + step, min), max));\n break;\n }\n\n case 'ArrowDown':\n case 'ArrowLeft': {\n event.preventDefault();\n thumb.current.focus();\n setValue(Math.min(Math.max(_value - step, min), max));\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);\n\nSlider.displayName = '@mantine/core/Slider';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider/Slider/Slider.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled, useMove, useMergedRef, clamp } from '@mantine/hooks';\nimport { DefaultProps, MantineNumberSize, MantineColor, useMantineTheme } 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 /** 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\nexport const Slider = forwardRef<HTMLDivElement, SliderProps>(\n (\n {\n classNames,\n styles,\n color,\n value,\n onChange,\n size = 'md',\n radius = 'xl',\n min = 0,\n max = 100,\n step = 1,\n defaultValue,\n name,\n marks = [],\n label = (f) => f,\n labelTransition = 'skew-down',\n labelTransitionDuration = 0,\n labelTransitionTimingFunction,\n labelAlwaysOn = false,\n thumbLabel = '',\n showLabelOnHover = true,\n thumbChildren,\n ...others\n }: SliderProps,\n ref\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 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 };\n\n const { ref: container, active } = useMove(({ x }) => handleChange(x), undefined, theme.dir);\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 case 'ArrowRight': {\n event.preventDefault();\n thumb.current.focus();\n setValue(Math.min(Math.max(_value + step, min), max));\n break;\n }\n\n case 'ArrowDown':\n case 'ArrowLeft': {\n event.preventDefault();\n thumb.current.focus();\n setValue(Math.min(Math.max(_value - step, min), max));\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);\n\nSlider.displayName = '@mantine/core/Slider';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React, { forwardRef, useState } from 'react';
|
|
2
2
|
import useStyles from './Thumb.styles.js';
|
|
3
|
+
import { Box } from '../../Box/Box.js';
|
|
3
4
|
import { Transition } from '../../Transition/Transition.js';
|
|
4
5
|
|
|
5
6
|
const Thumb = forwardRef(({
|
|
@@ -27,7 +28,7 @@ const Thumb = forwardRef(({
|
|
|
27
28
|
const { classes, cx, theme } = useStyles({ color, size }, { classNames, styles, name: "Slider" });
|
|
28
29
|
const [focused, setFocused] = useState(false);
|
|
29
30
|
const isVisible = labelAlwaysOn || dragging || focused || showLabelOnHover;
|
|
30
|
-
return /* @__PURE__ */ React.createElement(
|
|
31
|
+
return /* @__PURE__ */ React.createElement(Box, {
|
|
31
32
|
tabIndex: 0,
|
|
32
33
|
role: "slider",
|
|
33
34
|
"aria-label": thumbLabel,
|
|
@@ -47,7 +48,7 @@ const Thumb = forwardRef(({
|
|
|
47
48
|
onTouchStart: onMouseDown,
|
|
48
49
|
onMouseDown,
|
|
49
50
|
onClick: (event) => event.stopPropagation(),
|
|
50
|
-
|
|
51
|
+
sx: { left: `${position}%` }
|
|
51
52
|
}, children, /* @__PURE__ */ React.createElement(Transition, {
|
|
52
53
|
mounted: label != null && isVisible,
|
|
53
54
|
duration: labelTransitionDuration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thumb.js","sources":["../../../../src/components/Slider/Thumb/Thumb.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport { DefaultProps, MantineNumberSize, MantineColor, ClassNames } from '@mantine/styles';\nimport { Transition, MantineTransition } from '../../Transition';\nimport useStyles from './Thumb.styles';\n\nexport type ThumbStylesNames = ClassNames<typeof useStyles>;\n\nexport interface ThumbProps extends DefaultProps<ThumbStylesNames> {\n max: number;\n min: number;\n value: number;\n position: number;\n dragging: boolean;\n color: MantineColor;\n size: MantineNumberSize;\n label: React.ReactNode;\n onMouseDown(event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>): void;\n labelTransition?: MantineTransition;\n labelTransitionDuration?: number;\n labelTransitionTimingFunction?: string;\n labelAlwaysOn: boolean;\n thumbLabel: string;\n onFocus?(): void;\n onBlur?(): void;\n showLabelOnHover?: boolean;\n children?: React.ReactNode;\n}\n\nexport const Thumb = forwardRef<HTMLDivElement, ThumbProps>(\n (\n {\n max,\n min,\n value,\n position,\n label,\n dragging,\n onMouseDown,\n color,\n classNames,\n styles,\n size,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n thumbLabel,\n onFocus,\n onBlur,\n showLabelOnHover,\n children = null,\n }: ThumbProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { color, size },\n { classNames, styles, name: 'Slider' }\n );\n const [focused, setFocused] = useState(false);\n const isVisible = labelAlwaysOn || dragging || focused || showLabelOnHover;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <
|
|
1
|
+
{"version":3,"file":"Thumb.js","sources":["../../../../src/components/Slider/Thumb/Thumb.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport { DefaultProps, MantineNumberSize, MantineColor, ClassNames } from '@mantine/styles';\nimport { Box } from '../../Box';\nimport { Transition, MantineTransition } from '../../Transition';\nimport useStyles from './Thumb.styles';\n\nexport type ThumbStylesNames = ClassNames<typeof useStyles>;\n\nexport interface ThumbProps extends DefaultProps<ThumbStylesNames> {\n max: number;\n min: number;\n value: number;\n position: number;\n dragging: boolean;\n color: MantineColor;\n size: MantineNumberSize;\n label: React.ReactNode;\n onMouseDown(event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>): void;\n labelTransition?: MantineTransition;\n labelTransitionDuration?: number;\n labelTransitionTimingFunction?: string;\n labelAlwaysOn: boolean;\n thumbLabel: string;\n onFocus?(): void;\n onBlur?(): void;\n showLabelOnHover?: boolean;\n children?: React.ReactNode;\n}\n\nexport const Thumb = forwardRef<HTMLDivElement, ThumbProps>(\n (\n {\n max,\n min,\n value,\n position,\n label,\n dragging,\n onMouseDown,\n color,\n classNames,\n styles,\n size,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n thumbLabel,\n onFocus,\n onBlur,\n showLabelOnHover,\n children = null,\n }: ThumbProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { color, size },\n { classNames, styles, name: 'Slider' }\n );\n const [focused, setFocused] = useState(false);\n const isVisible = labelAlwaysOn || dragging || focused || showLabelOnHover;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <Box\n tabIndex={0}\n role=\"slider\"\n aria-label={thumbLabel}\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={value}\n ref={ref}\n className={cx(classes.thumb, { [classes.dragging]: dragging })}\n onFocus={() => {\n setFocused(true);\n typeof onFocus === 'function' && onFocus();\n }}\n onBlur={() => {\n setFocused(false);\n typeof onBlur === 'function' && onBlur();\n }}\n onTouchStart={onMouseDown}\n onMouseDown={onMouseDown}\n onClick={(event) => event.stopPropagation()}\n sx={{ left: `${position}%` }}\n >\n {children}\n <Transition\n mounted={label != null && isVisible}\n duration={labelTransitionDuration}\n transition={labelTransition}\n timingFunction={labelTransitionTimingFunction || theme.transitionTimingFunction}\n >\n {(transitionStyles) => (\n <div style={transitionStyles} className={classes.label}>\n {label}\n </div>\n )}\n </Transition>\n </Box>\n );\n }\n);\n\nThumb.displayName = '@mantine/core/SliderThumb';\n"],"names":[],"mappings":";;;;;AAIY,MAAC,KAAK,GAAG,UAAU,CAAC,CAAC;AACjC,EAAE,GAAG;AACL,EAAE,GAAG;AACL,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,EAAE,QAAQ;AACV,EAAE,WAAW;AACb,EAAE,KAAK;AACP,EAAE,UAAU;AACZ,EAAE,MAAM;AACR,EAAE,IAAI;AACN,EAAE,eAAe;AACjB,EAAE,uBAAuB;AACzB,EAAE,6BAA6B;AAC/B,EAAE,aAAa;AACf,EAAE,UAAU;AACZ,EAAE,OAAO;AACT,EAAE,MAAM;AACR,EAAE,gBAAgB;AAClB,EAAE,QAAQ,GAAG,IAAI;AACjB,CAAC,EAAE,GAAG,KAAK;AACX,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACpG,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,EAAE,MAAM,SAAS,GAAG,aAAa,IAAI,QAAQ,IAAI,OAAO,IAAI,gBAAgB,CAAC;AAC7E,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE;AAClD,IAAI,QAAQ,EAAE,CAAC;AACf,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,YAAY,EAAE,UAAU;AAC5B,IAAI,eAAe,EAAE,GAAG;AACxB,IAAI,eAAe,EAAE,GAAG;AACxB,IAAI,eAAe,EAAE,KAAK;AAC1B,IAAI,GAAG;AACP,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;AAClE,IAAI,OAAO,EAAE,MAAM;AACnB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;AACvB,MAAM,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,EAAE,CAAC;AACjD,KAAK;AACL,IAAI,MAAM,EAAE,MAAM;AAClB,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,EAAE,CAAC;AAC/C,KAAK;AACL,IAAI,YAAY,EAAE,WAAW;AAC7B,IAAI,WAAW;AACf,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,eAAe,EAAE;AAC/C,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;AAChC,GAAG,EAAE,QAAQ,kBAAkB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;AAC/D,IAAI,OAAO,EAAE,KAAK,IAAI,IAAI,IAAI,SAAS;AACvC,IAAI,QAAQ,EAAE,uBAAuB;AACrC,IAAI,UAAU,EAAE,eAAe;AAC/B,IAAI,cAAc,EAAE,6BAA6B,IAAI,KAAK,CAAC,wBAAwB;AACnF,GAAG,EAAE,CAAC,gBAAgB,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE;AACtE,IAAI,KAAK,EAAE,gBAAgB;AAC3B,IAAI,SAAS,EAAE,OAAO,CAAC,KAAK;AAC5B,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACd,CAAC,EAAE;AACH,KAAK,CAAC,WAAW,GAAG,2BAA2B;;;;"}
|