@mantine/core 5.3.3 → 5.4.0

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.
Files changed (127) hide show
  1. package/cjs/ColorInput/ColorInput.js +10 -1
  2. package/cjs/ColorInput/ColorInput.js.map +1 -1
  3. package/cjs/ColorPicker/AlphaSlider/AlphaSlider.js +2 -1
  4. package/cjs/ColorPicker/AlphaSlider/AlphaSlider.js.map +1 -1
  5. package/cjs/ColorPicker/ColorPicker.js +14 -1
  6. package/cjs/ColorPicker/ColorPicker.js.map +1 -1
  7. package/cjs/ColorPicker/ColorSlider/ColorSlider.js +13 -1
  8. package/cjs/ColorPicker/ColorSlider/ColorSlider.js.map +1 -1
  9. package/cjs/ColorPicker/HueSlider/HueSlider.js +2 -1
  10. package/cjs/ColorPicker/HueSlider/HueSlider.js.map +1 -1
  11. package/cjs/ColorPicker/Saturation/Saturation.js +9 -0
  12. package/cjs/ColorPicker/Saturation/Saturation.js.map +1 -1
  13. package/cjs/ColorPicker/Swatches/Swatches.js +8 -3
  14. package/cjs/ColorPicker/Swatches/Swatches.js.map +1 -1
  15. package/cjs/Group/Group.js +1 -10
  16. package/cjs/Group/Group.js.map +1 -1
  17. package/cjs/Group/Group.styles.js +6 -6
  18. package/cjs/Group/Group.styles.js.map +1 -1
  19. package/cjs/List/ListItem/ListItem.js +1 -1
  20. package/cjs/List/ListItem/ListItem.js.map +1 -1
  21. package/cjs/MultiSelect/MultiSelect.js +15 -12
  22. package/cjs/MultiSelect/MultiSelect.js.map +1 -1
  23. package/cjs/Pagination/Pagination.js +14 -11
  24. package/cjs/Pagination/Pagination.js.map +1 -1
  25. package/cjs/PasswordInput/PasswordInput.js +22 -10
  26. package/cjs/PasswordInput/PasswordInput.js.map +1 -1
  27. package/cjs/Select/Select.js +8 -1
  28. package/cjs/Select/Select.js.map +1 -1
  29. package/cjs/SimpleGrid/SimpleGrid.js +2 -2
  30. package/cjs/SimpleGrid/SimpleGrid.js.map +1 -1
  31. package/cjs/SimpleGrid/SimpleGrid.styles.js +14 -4
  32. package/cjs/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  33. package/cjs/Slider/RangeSlider/RangeSlider.js +10 -7
  34. package/cjs/Slider/RangeSlider/RangeSlider.js.map +1 -1
  35. package/cjs/Slider/Slider/Slider.js +11 -7
  36. package/cjs/Slider/Slider/Slider.js.map +1 -1
  37. package/cjs/Switch/Switch.js +12 -3
  38. package/cjs/Switch/Switch.js.map +1 -1
  39. package/cjs/Switch/SwitchGroup/SwitchGroup.js +98 -0
  40. package/cjs/Switch/SwitchGroup/SwitchGroup.js.map +1 -0
  41. package/cjs/Switch/SwitchGroup.context.js +13 -0
  42. package/cjs/Switch/SwitchGroup.context.js.map +1 -0
  43. package/cjs/ThemeIcon/ThemeIcon.styles.js.map +1 -1
  44. package/esm/ColorInput/ColorInput.js +10 -1
  45. package/esm/ColorInput/ColorInput.js.map +1 -1
  46. package/esm/ColorPicker/AlphaSlider/AlphaSlider.js +2 -1
  47. package/esm/ColorPicker/AlphaSlider/AlphaSlider.js.map +1 -1
  48. package/esm/ColorPicker/ColorPicker.js +14 -1
  49. package/esm/ColorPicker/ColorPicker.js.map +1 -1
  50. package/esm/ColorPicker/ColorSlider/ColorSlider.js +14 -2
  51. package/esm/ColorPicker/ColorSlider/ColorSlider.js.map +1 -1
  52. package/esm/ColorPicker/HueSlider/HueSlider.js +2 -1
  53. package/esm/ColorPicker/HueSlider/HueSlider.js.map +1 -1
  54. package/esm/ColorPicker/Saturation/Saturation.js +10 -1
  55. package/esm/ColorPicker/Saturation/Saturation.js.map +1 -1
  56. package/esm/ColorPicker/Swatches/Swatches.js +8 -3
  57. package/esm/ColorPicker/Swatches/Swatches.js.map +1 -1
  58. package/esm/Group/Group.js +1 -10
  59. package/esm/Group/Group.js.map +1 -1
  60. package/esm/Group/Group.styles.js +6 -6
  61. package/esm/Group/Group.styles.js.map +1 -1
  62. package/esm/List/ListItem/ListItem.js +1 -1
  63. package/esm/List/ListItem/ListItem.js.map +1 -1
  64. package/esm/MultiSelect/MultiSelect.js +16 -13
  65. package/esm/MultiSelect/MultiSelect.js.map +1 -1
  66. package/esm/Pagination/Pagination.js +14 -11
  67. package/esm/Pagination/Pagination.js.map +1 -1
  68. package/esm/PasswordInput/PasswordInput.js +23 -11
  69. package/esm/PasswordInput/PasswordInput.js.map +1 -1
  70. package/esm/Select/Select.js +8 -1
  71. package/esm/Select/Select.js.map +1 -1
  72. package/esm/SimpleGrid/SimpleGrid.js +2 -2
  73. package/esm/SimpleGrid/SimpleGrid.js.map +1 -1
  74. package/esm/SimpleGrid/SimpleGrid.styles.js +14 -4
  75. package/esm/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  76. package/esm/Slider/RangeSlider/RangeSlider.js +10 -7
  77. package/esm/Slider/RangeSlider/RangeSlider.js.map +1 -1
  78. package/esm/Slider/Slider/Slider.js +11 -7
  79. package/esm/Slider/Slider/Slider.js.map +1 -1
  80. package/esm/Switch/Switch.js +12 -3
  81. package/esm/Switch/Switch.js.map +1 -1
  82. package/esm/Switch/SwitchGroup/SwitchGroup.js +90 -0
  83. package/esm/Switch/SwitchGroup/SwitchGroup.js.map +1 -0
  84. package/esm/Switch/SwitchGroup.context.js +8 -0
  85. package/esm/Switch/SwitchGroup.context.js.map +1 -0
  86. package/esm/ThemeIcon/ThemeIcon.styles.js.map +1 -1
  87. package/lib/ColorInput/ColorInput.d.ts.map +1 -1
  88. package/lib/ColorPicker/AlphaSlider/AlphaSlider.d.ts.map +1 -1
  89. package/lib/ColorPicker/ColorPicker.d.ts +2 -0
  90. package/lib/ColorPicker/ColorPicker.d.ts.map +1 -1
  91. package/lib/ColorPicker/ColorSlider/ColorSlider.d.ts +1 -0
  92. package/lib/ColorPicker/ColorSlider/ColorSlider.d.ts.map +1 -1
  93. package/lib/ColorPicker/HueSlider/HueSlider.d.ts.map +1 -1
  94. package/lib/ColorPicker/Saturation/Saturation.d.ts +2 -1
  95. package/lib/ColorPicker/Saturation/Saturation.d.ts.map +1 -1
  96. package/lib/ColorPicker/Swatches/Swatches.d.ts +2 -1
  97. package/lib/ColorPicker/Swatches/Swatches.d.ts.map +1 -1
  98. package/lib/Group/Group.d.ts.map +1 -1
  99. package/lib/Group/Group.styles.d.ts +2 -2
  100. package/lib/Group/Group.styles.d.ts.map +1 -1
  101. package/lib/MultiSelect/MultiSelect.d.ts +2 -0
  102. package/lib/MultiSelect/MultiSelect.d.ts.map +1 -1
  103. package/lib/Pagination/Pagination.d.ts +2 -0
  104. package/lib/Pagination/Pagination.d.ts.map +1 -1
  105. package/lib/PasswordInput/PasswordInput.d.ts +6 -0
  106. package/lib/PasswordInput/PasswordInput.d.ts.map +1 -1
  107. package/lib/Select/Select.d.ts +2 -0
  108. package/lib/Select/Select.d.ts.map +1 -1
  109. package/lib/SimpleGrid/SimpleGrid.d.ts +3 -1
  110. package/lib/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  111. package/lib/SimpleGrid/SimpleGrid.styles.d.ts +2 -0
  112. package/lib/SimpleGrid/SimpleGrid.styles.d.ts.map +1 -1
  113. package/lib/Slider/RangeSlider/RangeSlider.d.ts +2 -0
  114. package/lib/Slider/RangeSlider/RangeSlider.d.ts.map +1 -1
  115. package/lib/Slider/Slider/Slider.d.ts +2 -0
  116. package/lib/Slider/Slider/Slider.d.ts.map +1 -1
  117. package/lib/Switch/Switch.d.ts +7 -1
  118. package/lib/Switch/Switch.d.ts.map +1 -1
  119. package/lib/Switch/SwitchGroup/SwitchGroup.d.ts +26 -0
  120. package/lib/Switch/SwitchGroup/SwitchGroup.d.ts.map +1 -0
  121. package/lib/Switch/SwitchGroup.context.d.ts +11 -0
  122. package/lib/Switch/SwitchGroup.context.d.ts.map +1 -0
  123. package/lib/Switch/index.d.ts +1 -0
  124. package/lib/Switch/index.d.ts.map +1 -1
  125. package/lib/ThemeIcon/ThemeIcon.styles.d.ts +1 -1
  126. package/lib/ThemeIcon/ThemeIcon.styles.d.ts.map +1 -1
  127. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sources":["../../../src/Slider/Slider/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState, useCallback } from 'react';\nimport { useMergedRef, useMove, useUncontrolled, clamp } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineColor,\n MantineNumberSize,\n useComponentDefaultProps,\n useMantineTheme,\n} from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { getChangeValue } from '../utils/get-change-value/get-change-value';\nimport { Thumb, ThumbStylesNames } from '../Thumb/Thumb';\nimport { Track, TrackStylesNames } from '../Track/Track';\nimport { MarksStylesNames } from '../Marks/Marks';\nimport { SliderRoot, SliderRootStylesNames } from '../SliderRoot/SliderRoot';\n\nexport type SliderStylesNames =\n | SliderRootStylesNames\n | ThumbStylesNames\n | TrackStylesNames\n | MarksStylesNames;\n\nexport interface SliderProps\n extends DefaultProps<SliderStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {\n /** Color from theme.colors */\n color?: MantineColor;\n\n /** Track border-radius from theme or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Predefined track and thumb size, number to set sizes in px */\n size?: MantineNumberSize;\n\n /** Minimal possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Number by which value will be incremented/decremented with thumb drag and arrows */\n step?: number;\n\n /** Amount of digits after the decimal point */\n precision?: number;\n\n /** Current value for controlled slider */\n value?: number;\n\n /** Default value for uncontrolled slider */\n defaultValue?: number;\n\n /** Called each time value changes */\n onChange?(value: number): void;\n\n /** Called when user stops dragging slider or changes value with arrows */\n onChangeEnd?(value: number): void;\n\n /** Hidden input name, use with uncontrolled variant */\n name?: string;\n\n /** Marks which will be placed on the track */\n marks?: { value: number; label?: React.ReactNode }[];\n\n /** Function to generate label or any react node to render instead, set to null to disable label */\n label?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Label appear/disappear transition */\n labelTransition?: MantineTransition;\n\n /** Label appear/disappear transition duration in ms */\n labelTransitionDuration?: number;\n\n /** Label appear/disappear transition timing function, defaults to theme.transitionRimingFunction */\n labelTransitionTimingFunction?: string;\n\n /** If true label will be not be hidden when user stops dragging */\n labelAlwaysOn?: boolean;\n\n /** Thumb aria-label */\n thumbLabel?: string;\n\n /** If true slider label will appear on hover */\n showLabelOnHover?: boolean;\n\n /** Thumb children, can be used to add icon */\n thumbChildren?: React.ReactNode;\n\n /** Disables slider */\n disabled?: boolean;\n\n /** Thumb width and height in px */\n thumbSize?: number;\n}\n\nconst defaultProps: Partial<SliderProps> = {\n size: 'md',\n radius: 'xl',\n min: 0,\n max: 100,\n step: 1,\n marks: [],\n label: (f) => f,\n labelTransition: 'skew-down',\n labelTransitionDuration: 0,\n labelAlwaysOn: false,\n thumbLabel: '',\n showLabelOnHover: true,\n disabled: false,\n};\n\nexport const Slider = forwardRef<HTMLDivElement, SliderProps>((props, ref) => {\n const {\n classNames,\n styles,\n color,\n value,\n onChange,\n onChangeEnd,\n size,\n radius,\n min,\n max,\n step,\n precision,\n defaultValue,\n name,\n marks,\n label,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n thumbLabel,\n showLabelOnHover,\n thumbChildren,\n disabled,\n unstyled,\n thumbSize,\n ...others\n } = useComponentDefaultProps('Slider', defaultProps, props);\n\n const theme = useMantineTheme();\n const [hovered, setHovered] = useState(false);\n const [_value, setValue] = useUncontrolled({\n value: typeof value === 'number' ? clamp(value, min, max) : value,\n defaultValue: typeof defaultValue === 'number' ? clamp(defaultValue, min, max) : defaultValue,\n finalValue: clamp(0, min, max),\n onChange,\n });\n\n const valueRef = useRef(_value);\n const thumb = useRef<HTMLDivElement>();\n const position = getPosition({ value: _value, min, max });\n const _label = typeof label === 'function' ? label(_value) : label;\n\n const handleChange = useCallback(\n ({ x }: { x: number }) => {\n if (!disabled) {\n const nextValue = getChangeValue({ value: x, min, max, step, precision });\n setValue(nextValue);\n valueRef.current = nextValue;\n }\n },\n [disabled, min, max, step, precision]\n );\n\n const { ref: container, active } = useMove(\n handleChange,\n { onScrubEnd: () => onChangeEnd?.(valueRef.current) },\n theme.dir\n );\n\n const handleThumbMouseDown = (\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>\n ) => {\n event.stopPropagation();\n };\n\n const handleTrackKeydownCapture = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n switch (event.key) {\n case 'ArrowUp': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(Math.max(_value + step, min), max);\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(\n Math.max(theme.dir === 'rtl' ? _value - step : _value + step, min),\n max\n );\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(Math.max(_value - step, min), max);\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(\n Math.max(theme.dir === 'rtl' ? _value + step : _value - step, min),\n max\n );\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'Home': {\n event.preventDefault();\n thumb.current.focus();\n onChangeEnd?.(min);\n setValue(min);\n break;\n }\n\n case 'End': {\n event.preventDefault();\n thumb.current.focus();\n onChangeEnd?.(max);\n setValue(max);\n break;\n }\n\n default: {\n break;\n }\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 disabled={disabled}\n unstyled={unstyled}\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 disabled={disabled}\n unstyled={unstyled}\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 disabled={disabled}\n unstyled={unstyled}\n thumbSize={thumbSize}\n >\n {thumbChildren}\n </Thumb>\n </Track>\n\n <input type=\"hidden\" name={name} value={_value} />\n </SliderRoot>\n );\n});\n\nSlider.displayName = '@mantine/core/Slider';\n"],"names":["forwardRef","useComponentDefaultProps","styles","useMantineTheme","useState","useUncontrolled","clamp","useRef","getPosition","useCallback","getChangeValue","useMove","React","SliderRoot","useMergedRef","Track","Thumb"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.js","sources":["../../../src/Slider/Slider/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState, useCallback } from 'react';\nimport { useMergedRef, useMove, useUncontrolled, clamp } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineColor,\n MantineNumberSize,\n useComponentDefaultProps,\n useMantineTheme,\n} from '@mantine/styles';\nimport { MantineTransition } from '../../Transition';\nimport { getPosition } from '../utils/get-position/get-position';\nimport { getChangeValue } from '../utils/get-change-value/get-change-value';\nimport { Thumb, ThumbStylesNames } from '../Thumb/Thumb';\nimport { Track, TrackStylesNames } from '../Track/Track';\nimport { MarksStylesNames } from '../Marks/Marks';\nimport { SliderRoot, SliderRootStylesNames } from '../SliderRoot/SliderRoot';\n\nexport type SliderStylesNames =\n | SliderRootStylesNames\n | ThumbStylesNames\n | TrackStylesNames\n | MarksStylesNames;\n\nexport interface SliderProps\n extends DefaultProps<SliderStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {\n /** Color from theme.colors */\n color?: MantineColor;\n\n /** Track border-radius from theme or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Predefined track and thumb size, number to set sizes in px */\n size?: MantineNumberSize;\n\n /** Minimal possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Number by which value will be incremented/decremented with thumb drag and arrows */\n step?: number;\n\n /** Amount of digits after the decimal point */\n precision?: number;\n\n /** Current value for controlled slider */\n value?: number;\n\n /** Default value for uncontrolled slider */\n defaultValue?: number;\n\n /** Called each time value changes */\n onChange?(value: number): void;\n\n /** Called when user stops dragging slider or changes value with arrows */\n onChangeEnd?(value: number): void;\n\n /** Hidden input name, use with uncontrolled variant */\n name?: string;\n\n /** Marks which will be placed on the track */\n marks?: { value: number; label?: React.ReactNode }[];\n\n /** Function to generate label or any react node to render instead, set to null to disable label */\n label?: React.ReactNode | ((value: number) => React.ReactNode);\n\n /** Label appear/disappear transition */\n labelTransition?: MantineTransition;\n\n /** Label appear/disappear transition duration in ms */\n labelTransitionDuration?: number;\n\n /** Label appear/disappear transition timing function, defaults to theme.transitionRimingFunction */\n labelTransitionTimingFunction?: string;\n\n /** If true label will be not be hidden when user stops dragging */\n labelAlwaysOn?: boolean;\n\n /** Thumb aria-label */\n thumbLabel?: string;\n\n /** If true slider label will appear on hover */\n showLabelOnHover?: boolean;\n\n /** Thumb children, can be used to add icon */\n thumbChildren?: React.ReactNode;\n\n /** Disables slider */\n disabled?: boolean;\n\n /** Thumb width and height in px */\n thumbSize?: number;\n\n /** A transformation function, to change the scale of the slider */\n scale?: (value: number) => number;\n}\n\nconst defaultProps: Partial<SliderProps> = {\n size: 'md',\n radius: 'xl',\n min: 0,\n max: 100,\n step: 1,\n marks: [],\n label: (f) => f,\n labelTransition: 'skew-down',\n labelTransitionDuration: 0,\n labelAlwaysOn: false,\n thumbLabel: '',\n showLabelOnHover: true,\n disabled: false,\n scale: (v) => v,\n};\n\nexport const Slider = forwardRef<HTMLDivElement, SliderProps>((props, ref) => {\n const {\n classNames,\n styles,\n color,\n value,\n onChange,\n onChangeEnd,\n size,\n radius,\n min,\n max,\n step,\n precision,\n defaultValue,\n name,\n marks,\n label,\n labelTransition,\n labelTransitionDuration,\n labelTransitionTimingFunction,\n labelAlwaysOn,\n thumbLabel,\n showLabelOnHover,\n thumbChildren,\n disabled,\n unstyled,\n thumbSize,\n scale,\n ...others\n } = useComponentDefaultProps('Slider', defaultProps, props);\n\n const theme = useMantineTheme();\n const [hovered, setHovered] = useState(false);\n const [_value, setValue] = useUncontrolled({\n value: typeof value === 'number' ? clamp(value, min, max) : value,\n defaultValue: typeof defaultValue === 'number' ? clamp(defaultValue, min, max) : defaultValue,\n finalValue: clamp(0, min, max),\n onChange,\n });\n\n const valueRef = useRef(_value);\n const thumb = useRef<HTMLDivElement>();\n const position = getPosition({ value: _value, min, max });\n const scaledValue = scale(_value);\n const _label = typeof label === 'function' ? label(scaledValue) : label;\n\n const handleChange = useCallback(\n ({ x }: { x: number }) => {\n if (!disabled) {\n const nextValue = getChangeValue({ value: x, min, max, step, precision });\n setValue(nextValue);\n valueRef.current = nextValue;\n }\n },\n [disabled, min, max, step, precision]\n );\n\n const { ref: container, active } = useMove(\n handleChange,\n { onScrubEnd: () => onChangeEnd?.(valueRef.current) },\n theme.dir\n );\n\n const handleThumbMouseDown = (\n event: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>\n ) => {\n event.stopPropagation();\n };\n\n const handleTrackKeydownCapture = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n switch (event.key) {\n case 'ArrowUp': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(Math.max(_value + step, min), max);\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(\n Math.max(theme.dir === 'rtl' ? _value - step : _value + step, min),\n max\n );\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowDown': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(Math.max(_value - step, min), max);\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n thumb.current.focus();\n const nextValue = Math.min(\n Math.max(theme.dir === 'rtl' ? _value + step : _value - step, min),\n max\n );\n onChangeEnd?.(nextValue);\n setValue(nextValue);\n break;\n }\n\n case 'Home': {\n event.preventDefault();\n thumb.current.focus();\n onChangeEnd?.(min);\n setValue(min);\n break;\n }\n\n case 'End': {\n event.preventDefault();\n thumb.current.focus();\n onChangeEnd?.(max);\n setValue(max);\n break;\n }\n\n default: {\n break;\n }\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 disabled={disabled}\n unstyled={unstyled}\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={scaledValue}\n onChange={setValue}\n onMouseEnter={showLabelOnHover ? () => setHovered(true) : undefined}\n onMouseLeave={showLabelOnHover ? () => setHovered(false) : undefined}\n classNames={classNames}\n styles={styles}\n disabled={disabled}\n unstyled={unstyled}\n >\n <Thumb\n max={max}\n min={min}\n value={scaledValue}\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 disabled={disabled}\n unstyled={unstyled}\n thumbSize={thumbSize}\n >\n {thumbChildren}\n </Thumb>\n </Track>\n\n <input type=\"hidden\" name={name} value={scaledValue} />\n </SliderRoot>\n );\n});\n\nSlider.displayName = '@mantine/core/Slider';\n"],"names":["forwardRef","useComponentDefaultProps","styles","useMantineTheme","useState","useUncontrolled","clamp","useRef","getPosition","useCallback","getChangeValue","useMove","React","SliderRoot","useMergedRef","Track","Thumb"],"mappings":"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"}
@@ -6,6 +6,8 @@ var React = require('react');
6
6
  var hooks = require('@mantine/hooks');
7
7
  var styles = require('@mantine/styles');
8
8
  var Switch_styles = require('./Switch.styles.js');
9
+ var SwitchGroup = require('./SwitchGroup/SwitchGroup.js');
10
+ var SwitchGroup_context = require('./SwitchGroup.context.js');
9
11
  var Box = require('../Box/Box.js');
10
12
 
11
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
@@ -50,6 +52,7 @@ const defaultProps = {
50
52
  radius: "xl"
51
53
  };
52
54
  const Switch = React.forwardRef((props, ref) => {
55
+ var _b;
53
56
  const _a = styles.useComponentDefaultProps("Switch", defaultProps, props), {
54
57
  className,
55
58
  color,
@@ -91,11 +94,16 @@ const Switch = React.forwardRef((props, ref) => {
91
94
  "defaultChecked",
92
95
  "onChange"
93
96
  ]);
94
- const { classes, cx } = Switch_styles['default']({ size, color, radius }, { unstyled, styles: styles$1, classNames, name: "Switch" });
97
+ const ctx = SwitchGroup_context.useSwitchGroupContext();
98
+ const { classes, cx } = Switch_styles['default']({ size: (ctx == null ? void 0 : ctx.size) || size, color, radius }, { unstyled, styles: styles$1, classNames, name: "Switch" });
95
99
  const { systemStyles, rest } = styles.extractSystemStyles(others);
96
100
  const uuid = hooks.useId(id);
101
+ const contextProps = ctx ? {
102
+ checked: ctx.value.includes(rest.value),
103
+ onChange: ctx.onChange
104
+ } : {};
97
105
  const [_checked, handleChange] = hooks.useUncontrolled({
98
- value: checked,
106
+ value: (_b = contextProps.checked) != null ? _b : checked,
99
107
  defaultValue: defaultChecked,
100
108
  finalValue: false
101
109
  });
@@ -109,7 +117,7 @@ const Switch = React.forwardRef((props, ref) => {
109
117
  }, /* @__PURE__ */ React__default.createElement("input", __spreadProps(__spreadValues({}, rest), {
110
118
  checked: _checked,
111
119
  onChange: (event) => {
112
- onChange == null ? void 0 : onChange(event);
120
+ ctx ? contextProps.onChange(event) : onChange == null ? void 0 : onChange(event);
113
121
  handleChange(event.currentTarget.checked);
114
122
  },
115
123
  id: uuid,
@@ -128,6 +136,7 @@ const Switch = React.forwardRef((props, ref) => {
128
136
  }, label)));
129
137
  });
130
138
  Switch.displayName = "@mantine/core/Switch";
139
+ Switch.Group = SwitchGroup.SwitchGroup;
131
140
 
132
141
  exports.Switch = Switch;
133
142
  //# sourceMappingURL=Switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","sources":["../../src/Switch/Switch.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineSize,\n MantineColor,\n Selectors,\n extractSystemStyles,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { Box } from '../Box';\nimport useStyles, { SwitchStylesParams } from './Switch.styles';\n\nexport type SwitchStylesNames = Selectors<typeof useStyles>;\n\nexport interface SwitchProps\n extends DefaultProps<SwitchStylesNames, SwitchStylesParams>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'type' | 'size'> {\n /** Id is used to bind input and label, if not passed unique id will be generated for each input */\n id?: string;\n\n /** Switch label */\n label?: React.ReactNode;\n\n /** Inner label when Switch is in unchecked state */\n offLabel?: React.ReactNode;\n\n /** Inner label when Switch is in checked state */\n onLabel?: React.ReactNode;\n\n /** Switch checked state color from theme.colors, defaults to theme.primaryColor */\n color?: MantineColor;\n\n /** Predefined size value */\n size?: MantineSize;\n\n /** Radius from theme.radius or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Props spread to wrapper element */\n wrapperProps?: Record<string, any>;\n\n /** Icon inside the thumb of switch */\n thumbIcon?: React.ReactNode;\n}\n\nconst defaultProps: Partial<SwitchProps> = {\n offLabel: '',\n onLabel: '',\n size: 'sm',\n radius: 'xl',\n};\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>((props, ref) => {\n const {\n className,\n color,\n label,\n offLabel,\n onLabel,\n id,\n style,\n size,\n radius,\n wrapperProps,\n children,\n unstyled,\n styles,\n classNames,\n thumbIcon,\n sx,\n checked,\n defaultChecked,\n onChange,\n ...others\n } = useComponentDefaultProps('Switch', defaultProps, props);\n\n const { classes, cx } = useStyles(\n { size, color, radius },\n { unstyled, styles, classNames, name: 'Switch' }\n );\n\n const { systemStyles, rest } = extractSystemStyles(others);\n const uuid = useId(id);\n\n const [_checked, handleChange] = useUncontrolled({\n value: checked,\n defaultValue: defaultChecked,\n finalValue: false,\n });\n\n return (\n <Box\n className={cx(classes.root, className)}\n style={style}\n sx={sx}\n {...systemStyles}\n {...wrapperProps}\n >\n <label className={classes.body} htmlFor={uuid}>\n <input\n {...rest}\n checked={_checked}\n onChange={(event) => {\n onChange?.(event);\n handleChange(event.currentTarget.checked);\n }}\n id={uuid}\n ref={ref}\n type=\"checkbox\"\n className={classes.input}\n />\n\n <div className={classes.track}>\n <div className={classes.thumb}>{thumbIcon}</div>\n <div className={classes.trackLabel}>{_checked ? onLabel : offLabel}</div>\n </div>\n\n {label && (\n <div data-testid=\"label\" className={classes.label}>\n {label}\n </div>\n )}\n </label>\n </Box>\n );\n});\n\nSwitch.displayName = '@mantine/core/Switch';\n"],"names":["forwardRef","useComponentDefaultProps","styles","useStyles","extractSystemStyles","useId","useUncontrolled","React","Box"],"mappings":"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"}
1
+ {"version":3,"file":"Switch.js","sources":["../../src/Switch/Switch.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useId, useUncontrolled } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineSize,\n MantineColor,\n Selectors,\n extractSystemStyles,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { ForwardRefWithStaticComponents } from '@mantine/utils';\nimport { Box } from '../Box';\nimport useStyles, { SwitchStylesParams } from './Switch.styles';\nimport { SwitchGroup } from './SwitchGroup/SwitchGroup';\nimport { useSwitchGroupContext } from './SwitchGroup.context';\n\nexport type SwitchStylesNames = Selectors<typeof useStyles>;\n\nexport interface SwitchProps\n extends DefaultProps<SwitchStylesNames, SwitchStylesParams>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'type' | 'size'> {\n /** Id is used to bind input and label, if not passed unique id will be generated for each input */\n id?: string;\n\n /** Switch label */\n label?: React.ReactNode;\n\n /** Inner label when Switch is in unchecked state */\n offLabel?: React.ReactNode;\n\n /** Inner label when Switch is in checked state */\n onLabel?: React.ReactNode;\n\n /** Switch checked state color from theme.colors, defaults to theme.primaryColor */\n color?: MantineColor;\n\n /** Predefined size value */\n size?: MantineSize;\n\n /** Radius from theme.radius or number to set border-radius in px */\n radius?: MantineNumberSize;\n\n /** Props spread to wrapper element */\n wrapperProps?: Record<string, any>;\n\n /** Icon inside the thumb of switch */\n thumbIcon?: React.ReactNode;\n}\n\nconst defaultProps: Partial<SwitchProps> = {\n offLabel: '',\n onLabel: '',\n size: 'sm',\n radius: 'xl',\n};\n\ntype SwitchComponent = ForwardRefWithStaticComponents<SwitchProps, { Group: typeof SwitchGroup }>;\n\nexport const Switch: SwitchComponent = forwardRef<HTMLInputElement, SwitchProps>((props, ref) => {\n const {\n className,\n color,\n label,\n offLabel,\n onLabel,\n id,\n style,\n size,\n radius,\n wrapperProps,\n children,\n unstyled,\n styles,\n classNames,\n thumbIcon,\n sx,\n checked,\n defaultChecked,\n onChange,\n ...others\n } = useComponentDefaultProps('Switch', defaultProps, props);\n\n const ctx = useSwitchGroupContext();\n\n const { classes, cx } = useStyles(\n { size: ctx?.size || size, color, radius },\n { unstyled, styles, classNames, name: 'Switch' }\n );\n\n const { systemStyles, rest } = extractSystemStyles(others);\n const uuid = useId(id);\n\n const contextProps = ctx\n ? {\n checked: ctx.value.includes(rest.value as string),\n onChange: ctx.onChange,\n }\n : {};\n\n const [_checked, handleChange] = useUncontrolled({\n value: contextProps.checked ?? checked,\n defaultValue: defaultChecked,\n finalValue: false,\n });\n\n return (\n <Box\n className={cx(classes.root, className)}\n style={style}\n sx={sx}\n {...systemStyles}\n {...wrapperProps}\n >\n <label className={classes.body} htmlFor={uuid}>\n <input\n {...rest}\n checked={_checked}\n onChange={(event) => {\n ctx ? contextProps.onChange(event) : onChange?.(event);\n handleChange(event.currentTarget.checked);\n }}\n id={uuid}\n ref={ref}\n type=\"checkbox\"\n className={classes.input}\n />\n\n <div className={classes.track}>\n <div className={classes.thumb}>{thumbIcon}</div>\n <div className={classes.trackLabel}>{_checked ? onLabel : offLabel}</div>\n </div>\n\n {label && (\n <div data-testid=\"label\" className={classes.label}>\n {label}\n </div>\n )}\n </label>\n </Box>\n );\n}) as any;\n\nSwitch.displayName = '@mantine/core/Switch';\nSwitch.Group = SwitchGroup;\n"],"names":["forwardRef","useComponentDefaultProps","styles","useSwitchGroupContext","useStyles","extractSystemStyles","useId","useUncontrolled","React","Box","SwitchGroup"],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var hooks = require('@mantine/hooks');
7
+ var styles = require('@mantine/styles');
8
+ var InputsGroup = require('../../Checkbox/CheckboxGroup/InputsGroup.js');
9
+ var SwitchGroup_context = require('../SwitchGroup.context.js');
10
+ var Input = require('../../Input/Input.js');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
+
16
+ var __defProp = Object.defineProperty;
17
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
18
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
19
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
20
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
21
+ var __spreadValues = (a, b) => {
22
+ for (var prop in b || (b = {}))
23
+ if (__hasOwnProp.call(b, prop))
24
+ __defNormalProp(a, prop, b[prop]);
25
+ if (__getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(b)) {
27
+ if (__propIsEnum.call(b, prop))
28
+ __defNormalProp(a, prop, b[prop]);
29
+ }
30
+ return a;
31
+ };
32
+ var __objRest = (source, exclude) => {
33
+ var target = {};
34
+ for (var prop in source)
35
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
36
+ target[prop] = source[prop];
37
+ if (source != null && __getOwnPropSymbols)
38
+ for (var prop of __getOwnPropSymbols(source)) {
39
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
40
+ target[prop] = source[prop];
41
+ }
42
+ return target;
43
+ };
44
+ const defaultProps = {
45
+ orientation: "horizontal",
46
+ spacing: "lg",
47
+ size: "sm",
48
+ offset: "xs"
49
+ };
50
+ const SwitchGroup = React.forwardRef((props, ref) => {
51
+ const _a = styles.useComponentDefaultProps("SwitchGroup", defaultProps, props), {
52
+ children,
53
+ value,
54
+ defaultValue,
55
+ onChange,
56
+ orientation,
57
+ spacing,
58
+ size,
59
+ wrapperProps,
60
+ offset
61
+ } = _a, others = __objRest(_a, [
62
+ "children",
63
+ "value",
64
+ "defaultValue",
65
+ "onChange",
66
+ "orientation",
67
+ "spacing",
68
+ "size",
69
+ "wrapperProps",
70
+ "offset"
71
+ ]);
72
+ const [_value, setValue] = hooks.useUncontrolled({
73
+ value,
74
+ defaultValue,
75
+ finalValue: [],
76
+ onChange
77
+ });
78
+ const handleChange = (event) => {
79
+ const itemValue = event.currentTarget.value;
80
+ setValue(_value.includes(itemValue) ? _value.filter((item) => item !== itemValue) : [..._value, itemValue]);
81
+ };
82
+ return /* @__PURE__ */ React__default.createElement(SwitchGroup_context.SwitchGroupProvider, {
83
+ value: { value: _value, onChange: handleChange, size }
84
+ }, /* @__PURE__ */ React__default.createElement(Input.Input.Wrapper, __spreadValues(__spreadValues({
85
+ labelElement: "div",
86
+ size,
87
+ __staticSelector: "SwitchGroup",
88
+ ref
89
+ }, wrapperProps), others), /* @__PURE__ */ React__default.createElement(InputsGroup.InputsGroup, {
90
+ spacing,
91
+ orientation,
92
+ offset
93
+ }, children)));
94
+ });
95
+ SwitchGroup.displayName = "@mantine/core/SwitchGroup";
96
+
97
+ exports.SwitchGroup = SwitchGroup;
98
+ //# sourceMappingURL=SwitchGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchGroup.js","sources":["../../../src/Switch/SwitchGroup/SwitchGroup.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineSize,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { Input, InputWrapperBaseProps, InputWrapperStylesNames } from '../../Input';\nimport { InputsGroup } from '../../Checkbox/CheckboxGroup/InputsGroup';\nimport { SwitchGroupProvider } from '../SwitchGroup.context';\n\nexport type SwitchGroupStylesNames = InputWrapperStylesNames;\n\nexport interface SwitchGroupProps\n extends DefaultProps<SwitchGroupStylesNames>,\n InputWrapperBaseProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'> {\n /** <Checkbox /> components only */\n children: React.ReactNode;\n\n /** Value of currently selected checkbox */\n value?: string[];\n\n /** Initial value for uncontrolled component */\n defaultValue?: string[];\n\n /** Called when value changes */\n onChange?(value: string[]): void;\n\n /** Horizontal or vertical orientation */\n orientation?: 'horizontal' | 'vertical';\n\n /** Spacing between checkboxes in horizontal orientation */\n spacing?: MantineNumberSize;\n\n /** Space between label and inputs */\n offset?: MantineNumberSize;\n\n /** Predefined label fontSize, checkbox width, height and border-radius */\n size?: MantineSize;\n\n /** Props spread to InputWrapper */\n wrapperProps?: Record<string, any>;\n}\n\nconst defaultProps: Partial<SwitchGroupProps> = {\n orientation: 'horizontal',\n spacing: 'lg',\n size: 'sm',\n offset: 'xs',\n};\n\nexport const SwitchGroup = forwardRef<HTMLDivElement, SwitchGroupProps>(\n (props: SwitchGroupProps, ref) => {\n const {\n children,\n value,\n defaultValue,\n onChange,\n orientation,\n spacing,\n size,\n wrapperProps,\n offset,\n ...others\n } = useComponentDefaultProps('SwitchGroup', defaultProps, props);\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: [],\n onChange,\n });\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const itemValue = event.currentTarget.value;\n setValue(\n _value.includes(itemValue)\n ? _value.filter((item) => item !== itemValue)\n : [..._value, itemValue]\n );\n };\n\n return (\n <SwitchGroupProvider value={{ value: _value, onChange: handleChange, size }}>\n <Input.Wrapper\n labelElement=\"div\"\n size={size}\n __staticSelector=\"SwitchGroup\"\n ref={ref}\n {...wrapperProps}\n {...others}\n >\n <InputsGroup spacing={spacing} orientation={orientation} offset={offset}>\n {children}\n </InputsGroup>\n </Input.Wrapper>\n </SwitchGroupProvider>\n );\n }\n);\n\nSwitchGroup.displayName = '@mantine/core/SwitchGroup';\n"],"names":["forwardRef","useComponentDefaultProps","useUncontrolled","React","SwitchGroupProvider","Input","InputsGroup"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ const SwitchGroupContext = React.createContext(null);
8
+ const SwitchGroupProvider = SwitchGroupContext.Provider;
9
+ const useSwitchGroupContext = () => React.useContext(SwitchGroupContext);
10
+
11
+ exports.SwitchGroupProvider = SwitchGroupProvider;
12
+ exports.useSwitchGroupContext = useSwitchGroupContext;
13
+ //# sourceMappingURL=SwitchGroup.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwitchGroup.context.js","sources":["../../src/Switch/SwitchGroup.context.ts"],"sourcesContent":["import { MantineSize } from '@mantine/styles';\nimport { createContext, useContext } from 'react';\n\ninterface SwitchGroupContextValue {\n value: string[];\n onChange(event: React.ChangeEvent<HTMLInputElement>): void;\n size: MantineSize;\n}\n\nconst SwitchGroupContext = createContext<SwitchGroupContextValue>(null);\nexport const SwitchGroupProvider = SwitchGroupContext.Provider;\nexport const useSwitchGroupContext = () => useContext(SwitchGroupContext);\n"],"names":["createContext","useContext"],"mappings":";;;;;;AACA,MAAM,kBAAkB,GAAGA,mBAAa,CAAC,IAAI,CAAC,CAAC;AACnC,MAAC,mBAAmB,GAAG,kBAAkB,CAAC,SAAS;AACnD,MAAC,qBAAqB,GAAG,MAAMC,gBAAU,CAAC,kBAAkB;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeIcon.styles.js","sources":["../../src/ThemeIcon/ThemeIcon.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize, MantineColor, MantineGradient } from '@mantine/styles';\n\nexport type ThemeIconVariant = 'filled' | 'light' | 'gradient' | 'outline';\n\nexport interface ThemeIconStylesParams {\n color: MantineColor;\n size: MantineNumberSize;\n radius: MantineNumberSize;\n variant: ThemeIconVariant;\n gradient: MantineGradient;\n}\n\nconst sizes = {\n xs: 16,\n sm: 20,\n md: 26,\n lg: 32,\n xl: 40,\n};\n\nexport default createStyles(\n (theme, { color, size, radius, gradient, variant }: ThemeIconStylesParams) => {\n const colors = theme.fn.variant({\n variant,\n color: color || theme.primaryColor,\n gradient,\n primaryFallback: false,\n });\n\n const iconSize = theme.fn.size({ size, sizes });\n\n return {\n root: {\n ...theme.fn.fontStyles(),\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxSizing: 'border-box',\n width: iconSize,\n height: iconSize,\n minWidth: iconSize,\n minHeight: iconSize,\n borderRadius: theme.fn.radius(radius),\n backgroundColor: colors.background,\n color: colors.color,\n backgroundImage: variant === 'gradient' ? colors.background : undefined,\n border: `${variant === 'gradient' ? 0 : 1}px solid ${colors.border}`,\n },\n };\n }\n);\n"],"names":["createStyles"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeIcon.styles.js","sources":["../../src/ThemeIcon/ThemeIcon.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize, MantineColor, MantineGradient } from '@mantine/styles';\n\nexport type ThemeIconVariant = 'filled' | 'light' | 'gradient' | 'outline' | 'default';\n\nexport interface ThemeIconStylesParams {\n color: MantineColor;\n size: MantineNumberSize;\n radius: MantineNumberSize;\n variant: ThemeIconVariant;\n gradient: MantineGradient;\n}\n\nconst sizes = {\n xs: 16,\n sm: 20,\n md: 26,\n lg: 32,\n xl: 40,\n};\n\nexport default createStyles(\n (theme, { color, size, radius, gradient, variant }: ThemeIconStylesParams) => {\n const colors = theme.fn.variant({\n variant,\n color: color || theme.primaryColor,\n gradient,\n primaryFallback: false,\n });\n\n const iconSize = theme.fn.size({ size, sizes });\n\n return {\n root: {\n ...theme.fn.fontStyles(),\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxSizing: 'border-box',\n width: iconSize,\n height: iconSize,\n minWidth: iconSize,\n minHeight: iconSize,\n borderRadius: theme.fn.radius(radius),\n backgroundColor: colors.background,\n color: colors.color,\n backgroundImage: variant === 'gradient' ? colors.background : undefined,\n border: `${variant === 'gradient' ? 0 : 1}px solid ${colors.border}`,\n },\n };\n }\n);\n"],"names":["createStyles"],"mappings":"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"}
@@ -66,6 +66,7 @@ const ColorInput = forwardRef((props, ref) => {
66
66
  inputProps,
67
67
  format,
68
68
  onChange,
69
+ onChangeEnd,
69
70
  onFocus,
70
71
  onBlur,
71
72
  value,
@@ -91,6 +92,7 @@ const ColorInput = forwardRef((props, ref) => {
91
92
  "inputProps",
92
93
  "format",
93
94
  "onChange",
95
+ "onChangeEnd",
94
96
  "onFocus",
95
97
  "onBlur",
96
98
  "value",
@@ -162,7 +164,13 @@ const ColorInput = forwardRef((props, ref) => {
162
164
  onBlur: handleInputBlur,
163
165
  spellCheck: false,
164
166
  value: _value,
165
- onChange: (event) => setValue(event.currentTarget.value),
167
+ onChange: (event) => {
168
+ const inputValue = event.currentTarget.value;
169
+ setValue(inputValue);
170
+ if (isColorValid(inputValue)) {
171
+ onChangeEnd == null ? void 0 : onChangeEnd(convertHsvaTo(format, parseColor(inputValue)));
172
+ }
173
+ },
166
174
  autoComplete: "nope",
167
175
  icon: icon || (withPreview ? /* @__PURE__ */ React.createElement(ColorSwatch, {
168
176
  color: isColorValid(_value) ? _value : "#fff",
@@ -180,6 +188,7 @@ const ColorInput = forwardRef((props, ref) => {
180
188
  __staticSelector: "ColorInput",
181
189
  value: _value,
182
190
  onChange: setValue,
191
+ onChangeEnd,
183
192
  format,
184
193
  swatches,
185
194
  swatchesPerRow,
@@ -1 +1 @@
1
- {"version":3,"file":"ColorInput.js","sources":["../../src/ColorInput/ColorInput.tsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef } from 'react';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { DefaultProps, getDefaultZIndex, MantineShadow, useMantineTheme } from '@mantine/styles';\nimport {\n InputWrapperBaseProps,\n InputWrapperStylesNames,\n Input,\n InputSharedProps,\n InputStylesNames,\n useInputProps,\n} from '../Input';\nimport { ColorSwatch } from '../ColorSwatch';\nimport { Popover, PopoverStylesNames } from '../Popover';\nimport { MantineTransition } from '../Transition';\nimport {\n ColorPicker,\n ColorPickerBaseProps,\n ColorPickerStylesNames,\n} from '../ColorPicker/ColorPicker';\nimport { convertHsvaTo, isColorValid, parseColor } from '../ColorPicker/converters';\n\nexport type ColorInputStylesNames =\n | InputWrapperStylesNames\n | InputStylesNames\n | ColorPickerStylesNames\n | PopoverStylesNames;\n\nexport interface ColorInputProps\n extends InputWrapperBaseProps,\n InputSharedProps,\n ColorPickerBaseProps,\n DefaultProps<ColorInputStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'defaultValue' | 'value'> {\n /** Disallow free input */\n disallowInput?: boolean;\n\n /** call onChange with last valid value onBlur */\n fixOnBlur?: boolean;\n\n /** Dropdown element z-index */\n dropdownZIndex?: number;\n\n /** Display swatch with color preview on the left side of input */\n withPreview?: boolean;\n\n /** Dropdown transition name or object */\n transition?: MantineTransition;\n\n /** Dropdown appear/disappear transition duration in ms */\n transitionDuration?: number;\n\n /** Dropdown transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n\n /** Dropdown box-shadow, key of theme.shadows */\n shadow?: MantineShadow;\n}\n\nconst SWATCH_SIZES = {\n xs: 16,\n sm: 18,\n md: 22,\n lg: 28,\n xl: 36,\n};\n\nconst defaultProps: Partial<ColorInputProps> = {\n size: 'sm',\n format: 'hex',\n fixOnBlur: true,\n withPreview: true,\n swatchesPerRow: 10,\n withPicker: true,\n transition: 'pop-top-left',\n dropdownZIndex: getDefaultZIndex('popover'),\n transitionDuration: 0,\n withinPortal: true,\n shadow: 'md',\n};\n\nexport const ColorInput = forwardRef<HTMLInputElement, ColorInputProps>(\n (props: ColorInputProps, ref) => {\n const {\n wrapperProps,\n inputProps,\n format,\n onChange,\n onFocus,\n onBlur,\n value,\n defaultValue,\n disallowInput,\n fixOnBlur,\n withPreview,\n swatchesPerRow,\n withPicker,\n icon,\n transition,\n dropdownZIndex,\n transitionDuration,\n transitionTimingFunction,\n withinPortal,\n swatches,\n shadow,\n classNames,\n styles,\n unstyled,\n ...others\n } = useInputProps('ColorInput', defaultProps, props);\n\n const theme = useMantineTheme();\n const [dropdownOpened, setDropdownOpened] = useState(false);\n const [lastValidValue, setLastValidValue] = useState('');\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setDropdownOpened(true);\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setDropdownOpened(false);\n fixOnBlur && setValue(lastValidValue);\n };\n\n useEffect(() => {\n if (isColorValid(_value) || _value.trim() === '') {\n setLastValidValue(_value);\n }\n }, [_value]);\n\n useDidUpdate(() => {\n if (isColorValid(_value)) {\n setValue(convertHsvaTo(format, parseColor(_value)));\n }\n }, [format]);\n\n return (\n <Input.Wrapper {...wrapperProps} __staticSelector=\"ColorInput\">\n <Popover\n __staticSelector=\"ColorInput\"\n position=\"bottom-start\"\n offset={5}\n zIndex={dropdownZIndex}\n withinPortal={withinPortal}\n transitionDuration={transitionDuration}\n transition={transition}\n opened={dropdownOpened}\n shadow={shadow}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n >\n <Popover.Target>\n <div>\n <Input<'input'>\n {...others}\n {...inputProps}\n ref={ref}\n __staticSelector=\"ColorInput\"\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n spellCheck={false}\n value={_value}\n onChange={(event) => setValue(event.currentTarget.value)}\n autoComplete=\"nope\"\n icon={\n icon ||\n (withPreview ? (\n <ColorSwatch\n color={isColorValid(_value) ? _value : '#fff'}\n size={theme.fn.size({ size: inputProps.size, sizes: SWATCH_SIZES })}\n />\n ) : null)\n }\n readOnly={disallowInput}\n sx={{ cursor: disallowInput ? 'pointer' : undefined }}\n unstyled={unstyled}\n classNames={classNames}\n styles={styles}\n />\n </div>\n </Popover.Target>\n\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} p={inputProps.size}>\n <ColorPicker\n __staticSelector=\"ColorInput\"\n value={_value}\n onChange={setValue}\n format={format}\n swatches={swatches}\n swatchesPerRow={swatchesPerRow}\n withPicker={withPicker}\n size={inputProps.size}\n focusable={false}\n unstyled={unstyled}\n styles={styles}\n classNames={classNames}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n );\n }\n);\n\nColorInput.displayName = '@mantine/core/ColorInput';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColorInput.js","sources":["../../src/ColorInput/ColorInput.tsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef } from 'react';\nimport { useUncontrolled, useDidUpdate } from '@mantine/hooks';\nimport { DefaultProps, getDefaultZIndex, MantineShadow, useMantineTheme } from '@mantine/styles';\nimport {\n InputWrapperBaseProps,\n InputWrapperStylesNames,\n Input,\n InputSharedProps,\n InputStylesNames,\n useInputProps,\n} from '../Input';\nimport { ColorSwatch } from '../ColorSwatch';\nimport { Popover, PopoverStylesNames } from '../Popover';\nimport { MantineTransition } from '../Transition';\nimport {\n ColorPicker,\n ColorPickerBaseProps,\n ColorPickerStylesNames,\n} from '../ColorPicker/ColorPicker';\nimport { convertHsvaTo, isColorValid, parseColor } from '../ColorPicker/converters';\n\nexport type ColorInputStylesNames =\n | InputWrapperStylesNames\n | InputStylesNames\n | ColorPickerStylesNames\n | PopoverStylesNames;\n\nexport interface ColorInputProps\n extends InputWrapperBaseProps,\n InputSharedProps,\n ColorPickerBaseProps,\n DefaultProps<ColorInputStylesNames>,\n Omit<React.ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'defaultValue' | 'value'> {\n /** Disallow free input */\n disallowInput?: boolean;\n\n /** call onChange with last valid value onBlur */\n fixOnBlur?: boolean;\n\n /** Dropdown element z-index */\n dropdownZIndex?: number;\n\n /** Display swatch with color preview on the left side of input */\n withPreview?: boolean;\n\n /** Dropdown transition name or object */\n transition?: MantineTransition;\n\n /** Dropdown appear/disappear transition duration in ms */\n transitionDuration?: number;\n\n /** Dropdown transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n\n /** Dropdown box-shadow, key of theme.shadows */\n shadow?: MantineShadow;\n}\n\nconst SWATCH_SIZES = {\n xs: 16,\n sm: 18,\n md: 22,\n lg: 28,\n xl: 36,\n};\n\nconst defaultProps: Partial<ColorInputProps> = {\n size: 'sm',\n format: 'hex',\n fixOnBlur: true,\n withPreview: true,\n swatchesPerRow: 10,\n withPicker: true,\n transition: 'pop-top-left',\n dropdownZIndex: getDefaultZIndex('popover'),\n transitionDuration: 0,\n withinPortal: true,\n shadow: 'md',\n};\n\nexport const ColorInput = forwardRef<HTMLInputElement, ColorInputProps>(\n (props: ColorInputProps, ref) => {\n const {\n wrapperProps,\n inputProps,\n format,\n onChange,\n onChangeEnd,\n onFocus,\n onBlur,\n value,\n defaultValue,\n disallowInput,\n fixOnBlur,\n withPreview,\n swatchesPerRow,\n withPicker,\n icon,\n transition,\n dropdownZIndex,\n transitionDuration,\n transitionTimingFunction,\n withinPortal,\n swatches,\n shadow,\n classNames,\n styles,\n unstyled,\n ...others\n } = useInputProps('ColorInput', defaultProps, props);\n\n const theme = useMantineTheme();\n const [dropdownOpened, setDropdownOpened] = useState(false);\n const [lastValidValue, setLastValidValue] = useState('');\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setDropdownOpened(true);\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setDropdownOpened(false);\n fixOnBlur && setValue(lastValidValue);\n };\n\n useEffect(() => {\n if (isColorValid(_value) || _value.trim() === '') {\n setLastValidValue(_value);\n }\n }, [_value]);\n\n useDidUpdate(() => {\n if (isColorValid(_value)) {\n setValue(convertHsvaTo(format, parseColor(_value)));\n }\n }, [format]);\n\n return (\n <Input.Wrapper {...wrapperProps} __staticSelector=\"ColorInput\">\n <Popover\n __staticSelector=\"ColorInput\"\n position=\"bottom-start\"\n offset={5}\n zIndex={dropdownZIndex}\n withinPortal={withinPortal}\n transitionDuration={transitionDuration}\n transition={transition}\n opened={dropdownOpened}\n shadow={shadow}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n >\n <Popover.Target>\n <div>\n <Input<'input'>\n {...others}\n {...inputProps}\n ref={ref}\n __staticSelector=\"ColorInput\"\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n spellCheck={false}\n value={_value}\n onChange={(event) => {\n const inputValue = event.currentTarget.value;\n setValue(inputValue);\n if (isColorValid(inputValue)) {\n onChangeEnd?.(convertHsvaTo(format, parseColor(inputValue)));\n }\n }}\n autoComplete=\"nope\"\n icon={\n icon ||\n (withPreview ? (\n <ColorSwatch\n color={isColorValid(_value) ? _value : '#fff'}\n size={theme.fn.size({ size: inputProps.size, sizes: SWATCH_SIZES })}\n />\n ) : null)\n }\n readOnly={disallowInput}\n sx={{ cursor: disallowInput ? 'pointer' : undefined }}\n unstyled={unstyled}\n classNames={classNames}\n styles={styles}\n />\n </div>\n </Popover.Target>\n\n <Popover.Dropdown onMouseDown={(event) => event.preventDefault()} p={inputProps.size}>\n <ColorPicker\n __staticSelector=\"ColorInput\"\n value={_value}\n onChange={setValue}\n onChangeEnd={onChangeEnd}\n format={format}\n swatches={swatches}\n swatchesPerRow={swatchesPerRow}\n withPicker={withPicker}\n size={inputProps.size}\n focusable={false}\n unstyled={unstyled}\n styles={styles}\n classNames={classNames}\n />\n </Popover.Dropdown>\n </Popover>\n </Input.Wrapper>\n );\n }\n);\n\nColorInput.displayName = '@mantine/core/ColorInput';\n"],"names":[],"mappings":"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"}
@@ -35,13 +35,14 @@ var __objRest = (source, exclude) => {
35
35
  return target;
36
36
  };
37
37
  const AlphaSlider = forwardRef((_a, ref) => {
38
- var _b = _a, { value, onChange, color } = _b, others = __objRest(_b, ["value", "onChange", "color"]);
38
+ var _b = _a, { value, onChange, onChangeEnd, color } = _b, others = __objRest(_b, ["value", "onChange", "onChangeEnd", "color"]);
39
39
  const theme = useMantineTheme();
40
40
  const _color = theme.colorScheme === "dark" ? theme.colors.dark[4] : theme.colors.gray[3];
41
41
  return /* @__PURE__ */ React.createElement(ColorSlider, __spreadProps(__spreadValues({}, others), {
42
42
  ref,
43
43
  value,
44
44
  onChange: (val) => onChange(round(val, 2)),
45
+ onChangeEnd: (val) => onChangeEnd(round(val, 2)),
45
46
  maxValue: 1,
46
47
  round: false,
47
48
  overlays: [
@@ -1 +1 @@
1
- {"version":3,"file":"AlphaSlider.js","sources":["../../../src/ColorPicker/AlphaSlider/AlphaSlider.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useMantineTheme } from '@mantine/styles';\nimport { ColorSlider, BaseColorSliderProps } from '../ColorSlider/ColorSlider';\nimport { round } from '../converters/parsers';\n\nexport interface AlphaSliderProps extends BaseColorSliderProps {\n color: string;\n}\n\nexport const AlphaSlider = forwardRef<HTMLDivElement, AlphaSliderProps>(\n ({ value, onChange, color, ...others }: AlphaSliderProps, ref) => {\n const theme = useMantineTheme();\n const _color = theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3];\n\n return (\n <ColorSlider\n {...others}\n ref={ref}\n value={value}\n onChange={(val) => onChange(round(val, 2))}\n maxValue={1}\n round={false}\n overlays={[\n {\n backgroundImage: `linear-gradient(45deg, ${_color} 25%, transparent 25%), linear-gradient(-45deg, ${_color} 25%, transparent 25%), linear-gradient(45deg, transparent 75%, ${_color} 75%), linear-gradient(-45deg, ${\n theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white\n } 75%, ${_color} 75%)`,\n backgroundSize: '8px 8px',\n backgroundPosition: '0 0, 0 4px, 4px -4px, -4px 0px',\n },\n {\n backgroundImage: `linear-gradient(90deg, transparent, ${color})`,\n },\n {\n boxShadow:\n 'rgba(0, 0, 0, .1) 0px 0px 0px 1px inset, rgb(0, 0, 0, .15) 0px 0px 4px inset',\n },\n ]}\n />\n );\n }\n);\n\nAlphaSlider.displayName = '@mantine/core/AlphaSlider';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AlphaSlider.js","sources":["../../../src/ColorPicker/AlphaSlider/AlphaSlider.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { useMantineTheme } from '@mantine/styles';\nimport { ColorSlider, BaseColorSliderProps } from '../ColorSlider/ColorSlider';\nimport { round } from '../converters/parsers';\n\nexport interface AlphaSliderProps extends BaseColorSliderProps {\n color: string;\n}\n\nexport const AlphaSlider = forwardRef<HTMLDivElement, AlphaSliderProps>(\n ({ value, onChange, onChangeEnd, color, ...others }: AlphaSliderProps, ref) => {\n const theme = useMantineTheme();\n const _color = theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3];\n\n return (\n <ColorSlider\n {...others}\n ref={ref}\n value={value}\n onChange={(val) => onChange(round(val, 2))}\n onChangeEnd={(val) => onChangeEnd(round(val, 2))}\n maxValue={1}\n round={false}\n overlays={[\n {\n backgroundImage: `linear-gradient(45deg, ${_color} 25%, transparent 25%), linear-gradient(-45deg, ${_color} 25%, transparent 25%), linear-gradient(45deg, transparent 75%, ${_color} 75%), linear-gradient(-45deg, ${\n theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white\n } 75%, ${_color} 75%)`,\n backgroundSize: '8px 8px',\n backgroundPosition: '0 0, 0 4px, 4px -4px, -4px 0px',\n },\n {\n backgroundImage: `linear-gradient(90deg, transparent, ${color})`,\n },\n {\n boxShadow:\n 'rgba(0, 0, 0, .1) 0px 0px 0px 1px inset, rgb(0, 0, 0, .15) 0px 0px 4px inset',\n },\n ]}\n />\n );\n }\n);\n\nAlphaSlider.displayName = '@mantine/core/AlphaSlider';\n"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ import { convertHsvaTo } from './converters/converters.js';
12
12
  import { Box } from '../Box/Box.js';
13
13
 
14
14
  var __defProp = Object.defineProperty;
15
+ var __defProps = Object.defineProperties;
16
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
15
17
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
16
18
  var __hasOwnProp = Object.prototype.hasOwnProperty;
17
19
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -27,6 +29,7 @@ var __spreadValues = (a, b) => {
27
29
  }
28
30
  return a;
29
31
  };
32
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
30
33
  var __objRest = (source, exclude) => {
31
34
  var target = {};
32
35
  for (var prop in source)
@@ -58,6 +61,7 @@ const ColorPicker = forwardRef((props, ref) => {
58
61
  value,
59
62
  defaultValue,
60
63
  onChange,
64
+ onChangeEnd,
61
65
  format,
62
66
  swatches,
63
67
  swatchesPerRow,
@@ -77,6 +81,7 @@ const ColorPicker = forwardRef((props, ref) => {
77
81
  "value",
78
82
  "defaultValue",
79
83
  "onChange",
84
+ "onChangeEnd",
80
85
  "format",
81
86
  "swatches",
82
87
  "swatchesPerRow",
@@ -133,6 +138,7 @@ const ColorPicker = forwardRef((props, ref) => {
133
138
  }, others), withPicker && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Saturation, {
134
139
  value: parsed,
135
140
  onChange: handleChange,
141
+ onChangeEnd: ({ s, v }) => onChangeEnd == null ? void 0 : onChangeEnd(convertHsvaTo(formatRef.current, __spreadProps(__spreadValues({}, parsed), { s, v }))),
136
142
  color: _value,
137
143
  styles,
138
144
  classNames,
@@ -147,6 +153,7 @@ const ColorPicker = forwardRef((props, ref) => {
147
153
  }, /* @__PURE__ */ React.createElement(HueSlider, {
148
154
  value: parsed.h,
149
155
  onChange: (h) => handleChange({ h }),
156
+ onChangeEnd: (h) => onChangeEnd == null ? void 0 : onChangeEnd(convertHsvaTo(formatRef.current, __spreadProps(__spreadValues({}, parsed), { h }))),
150
157
  size,
151
158
  styles,
152
159
  classNames,
@@ -156,6 +163,9 @@ const ColorPicker = forwardRef((props, ref) => {
156
163
  }), withAlpha && /* @__PURE__ */ React.createElement(AlphaSlider, {
157
164
  value: parsed.a,
158
165
  onChange: (a) => handleChange({ a }),
166
+ onChangeEnd: (a) => {
167
+ onChangeEnd == null ? void 0 : onChangeEnd(convertHsvaTo(formatRef.current, __spreadProps(__spreadValues({}, parsed), { a })));
168
+ },
159
169
  size,
160
170
  color: convertHsvaTo("hex", parsed),
161
171
  style: { marginTop: 6 },
@@ -177,7 +187,10 @@ const ColorPicker = forwardRef((props, ref) => {
177
187
  classNames,
178
188
  styles,
179
189
  __staticSelector,
180
- setValue
190
+ setValue,
191
+ onChangeEnd: (color) => {
192
+ onChangeEnd == null ? void 0 : onChangeEnd(convertHsvaTo(format, parseColor(color)));
193
+ }
181
194
  }));
182
195
  });
183
196
  ColorPicker.displayName = "@mantine/core/ColorPicker";