@mantine/core 7.2.1 → 7.2.2

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 (45) hide show
  1. package/cjs/components/HoverCard/HoverCard.js.map +1 -1
  2. package/cjs/components/NumberInput/NumberInput.js +8 -5
  3. package/cjs/components/NumberInput/NumberInput.js.map +1 -1
  4. package/cjs/components/Radio/Radio.js +1 -0
  5. package/cjs/components/Radio/Radio.js.map +1 -1
  6. package/cjs/components/RingProgress/Curve/Curve.js.map +1 -1
  7. package/cjs/components/RingProgress/Curve/get-curve-props.js +1 -1
  8. package/cjs/components/RingProgress/Curve/get-curve-props.js.map +1 -1
  9. package/cjs/components/RingProgress/RingProgress.js +6 -2
  10. package/cjs/components/RingProgress/RingProgress.js.map +1 -1
  11. package/cjs/components/SegmentedControl/SegmentedControl.js +7 -4
  12. package/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  13. package/cjs/components/SegmentedControl/get-root-padding.js +21 -0
  14. package/cjs/components/SegmentedControl/get-root-padding.js.map +1 -0
  15. package/cjs/components/Select/Select.js +2 -2
  16. package/cjs/components/Select/Select.js.map +1 -1
  17. package/cjs/index.css +1 -1
  18. package/esm/components/HoverCard/HoverCard.mjs.map +1 -1
  19. package/esm/components/NumberInput/NumberInput.mjs +8 -5
  20. package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
  21. package/esm/components/Radio/Radio.mjs +1 -0
  22. package/esm/components/Radio/Radio.mjs.map +1 -1
  23. package/esm/components/RingProgress/Curve/Curve.mjs.map +1 -1
  24. package/esm/components/RingProgress/Curve/get-curve-props.mjs +1 -1
  25. package/esm/components/RingProgress/Curve/get-curve-props.mjs.map +1 -1
  26. package/esm/components/RingProgress/RingProgress.mjs +6 -2
  27. package/esm/components/RingProgress/RingProgress.mjs.map +1 -1
  28. package/esm/components/SegmentedControl/SegmentedControl.mjs +7 -4
  29. package/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
  30. package/esm/components/SegmentedControl/get-root-padding.mjs +17 -0
  31. package/esm/components/SegmentedControl/get-root-padding.mjs.map +1 -0
  32. package/esm/components/Select/Select.mjs +2 -2
  33. package/esm/components/Select/Select.mjs.map +1 -1
  34. package/esm/index.css +1 -1
  35. package/esm/index.layer.css +1 -1
  36. package/esm/styles/Blockquote.css +1 -1
  37. package/esm/styles/Blockquote.layer.css +1 -1
  38. package/esm/styles/Chip.css +1 -1
  39. package/esm/styles/Chip.layer.css +1 -1
  40. package/esm/styles/Table.css +1 -1
  41. package/esm/styles/Table.layer.css +1 -1
  42. package/lib/components/HoverCard/HoverCard.d.ts +1 -1
  43. package/lib/components/Radio/Radio.d.ts +1 -1
  44. package/lib/components/SegmentedControl/get-root-padding.d.ts +6 -0
  45. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"HoverCard.js","sources":["../../../src/components/HoverCard/HoverCard.tsx"],"sourcesContent":["import React from 'react';\nimport { useDisclosure } from '@mantine/hooks';\nimport { ExtendComponent, useProps, Factory } from '../../core';\nimport { useDelayedHover } from '../Floating';\nimport { Popover, PopoverProps, PopoverStylesNames } from '../Popover';\nimport { HoverCardContextProvider } from './HoverCard.context';\nimport { HoverCardDropdown } from './HoverCardDropdown/HoverCardDropdown';\nimport { HoverCardTarget } from './HoverCardTarget/HoverCardTarget';\nimport { PopoverCssVariables } from '../Popover/Popover';\n\nexport interface HoverCardProps extends PopoverProps {\n variant?: string;\n\n /** Initial opened state */\n initiallyOpened?: boolean;\n\n /** Called when dropdown is opened */\n onOpen?: () => void;\n\n /** Called when dropdown is closed */\n onClose?: () => void;\n\n /** Open delay in ms */\n openDelay?: number;\n\n /** Close delay in ms */\n closeDelay?: number;\n}\n\nexport type HoverCardFactory = Factory<{\n props: HoverCardProps;\n stylesNames: PopoverStylesNames;\n vars: PopoverCssVariables;\n}>;\n\nconst defaultProps: Partial<HoverCardProps> = {\n openDelay: 0,\n closeDelay: 150,\n initiallyOpened: false,\n};\n\nexport function HoverCard(props: HoverCardProps) {\n const { children, onOpen, onClose, openDelay, closeDelay, initiallyOpened, ...others } = useProps(\n 'HoverCard',\n defaultProps,\n props\n );\n const [opened, { open, close }] = useDisclosure(initiallyOpened, { onClose, onOpen });\n const { openDropdown, closeDropdown } = useDelayedHover({ open, close, openDelay, closeDelay });\n\n return (\n <HoverCardContextProvider value={{ openDropdown, closeDropdown }}>\n <Popover {...others} opened={opened} __staticSelector=\"HoverCard\">\n {children}\n </Popover>\n </HoverCardContextProvider>\n );\n}\n\nHoverCard.displayName = '@mantine/core/HoverCard';\nHoverCard.Target = HoverCardTarget;\nHoverCard.Dropdown = HoverCardDropdown;\nHoverCard.extend = (input: ExtendComponent<HoverCardFactory>) => input;\n"],"names":["useProps","useDisclosure","useDelayedHover","React","HoverCardContextProvider","Popover","HoverCardTarget","HoverCardDropdown"],"mappings":"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"}
1
+ {"version":3,"file":"HoverCard.js","sources":["../../../src/components/HoverCard/HoverCard.tsx"],"sourcesContent":["import React from 'react';\nimport { useDisclosure } from '@mantine/hooks';\nimport { ExtendComponent, useProps, Factory } from '../../core';\nimport { useDelayedHover } from '../Floating';\nimport { Popover, PopoverProps, PopoverStylesNames } from '../Popover';\nimport { HoverCardContextProvider } from './HoverCard.context';\nimport { HoverCardDropdown } from './HoverCardDropdown/HoverCardDropdown';\nimport { HoverCardTarget } from './HoverCardTarget/HoverCardTarget';\nimport { PopoverCssVariables } from '../Popover/Popover';\n\nexport interface HoverCardProps extends Omit<PopoverProps, 'opened' | 'onChange'> {\n variant?: string;\n\n /** Initial opened state */\n initiallyOpened?: boolean;\n\n /** Called when dropdown is opened */\n onOpen?: () => void;\n\n /** Called when dropdown is closed */\n onClose?: () => void;\n\n /** Open delay in ms */\n openDelay?: number;\n\n /** Close delay in ms */\n closeDelay?: number;\n}\n\nexport type HoverCardFactory = Factory<{\n props: HoverCardProps;\n stylesNames: PopoverStylesNames;\n vars: PopoverCssVariables;\n}>;\n\nconst defaultProps: Partial<HoverCardProps> = {\n openDelay: 0,\n closeDelay: 150,\n initiallyOpened: false,\n};\n\nexport function HoverCard(props: HoverCardProps) {\n const { children, onOpen, onClose, openDelay, closeDelay, initiallyOpened, ...others } = useProps(\n 'HoverCard',\n defaultProps,\n props\n );\n const [opened, { open, close }] = useDisclosure(initiallyOpened, { onClose, onOpen });\n const { openDropdown, closeDropdown } = useDelayedHover({ open, close, openDelay, closeDelay });\n\n return (\n <HoverCardContextProvider value={{ openDropdown, closeDropdown }}>\n <Popover {...others} opened={opened} __staticSelector=\"HoverCard\">\n {children}\n </Popover>\n </HoverCardContextProvider>\n );\n}\n\nHoverCard.displayName = '@mantine/core/HoverCard';\nHoverCard.Target = HoverCardTarget;\nHoverCard.Dropdown = HoverCardDropdown;\nHoverCard.extend = (input: ExtendComponent<HoverCardFactory>) => input;\n"],"names":["useProps","useDisclosure","useDelayedHover","React","HoverCardContextProvider","Popover","HoverCardTarget","HoverCardDropdown"],"mappings":"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"}
@@ -55,7 +55,7 @@ var __objRest = (source, exclude) => {
55
55
  return target;
56
56
  };
57
57
  function isValidNumber(value) {
58
- return typeof value === "number" && !Number.isNaN(value);
58
+ return (typeof value === "number" || !Number.isNaN(Number(value))) && !Number.isNaN(value);
59
59
  }
60
60
  function getDecrementedValue({ value, min, step = 1, allowNegative }) {
61
61
  const nextValue = value - step;
@@ -172,9 +172,9 @@ const NumberInput = factory.factory((_props, ref) => {
172
172
  onChange
173
173
  });
174
174
  const handleValueChange = (payload, event) => {
175
- setValue(
176
- typeof _value === "number" && isValidNumber(payload.floatValue) ? payload.floatValue : payload.value
177
- );
175
+ if (event.source === "event") {
176
+ setValue(isValidNumber(payload.floatValue) ? payload.floatValue : payload.value);
177
+ }
178
178
  onValueChange == null ? void 0 : onValueChange(payload, event);
179
179
  };
180
180
  const increment = () => {
@@ -256,7 +256,10 @@ const NumberInput = factory.factory((_props, ref) => {
256
256
  onBlur: (event) => {
257
257
  onBlur == null ? void 0 : onBlur(event);
258
258
  if (clampBehavior === "blur" && typeof _value === "number") {
259
- setValue(hooks.clamp(_value, min, max));
259
+ const clampedValue = hooks.clamp(_value, min, max);
260
+ if (clampedValue !== _value) {
261
+ setValue(hooks.clamp(_value, min, max));
262
+ }
260
263
  }
261
264
  },
262
265
  isAllowed: (val) => {
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'clsx';\nimport { NumericFormat, OnValueChange, NumberFormatValues } from 'react-number-format';\nimport { assignRef, clamp, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n getSize,\n useResolvedStylesApi,\n} from '../../core';\nimport { UnstyledButton } from '../UnstyledButton';\nimport { InputBase } from '../InputBase';\nimport { __BaseInputProps, __InputStylesNames, InputVariant } from '../Input';\nimport { NumberInputChevron } from './NumberInputChevron';\nimport classes from './NumberInput.module.css';\n\nexport interface NumberInputHandlers {\n increment: () => void;\n decrement: () => void;\n}\n\nfunction isValidNumber(value: number | undefined): value is number {\n return typeof value === 'number' && !Number.isNaN(value);\n}\n\ninterface GetDecrementedValueInput {\n value: number;\n min: number | undefined;\n step: number | undefined;\n allowNegative: boolean | undefined;\n}\n\nfunction getDecrementedValue({ value, min, step = 1, allowNegative }: GetDecrementedValueInput) {\n const nextValue = value - step;\n\n if (min !== undefined && nextValue < min) {\n return min;\n }\n\n if (!allowNegative && nextValue < 0 && min === undefined) {\n return value;\n }\n\n if (min !== undefined && min >= 0 && nextValue <= min) {\n return nextValue;\n }\n\n return nextValue;\n}\n\nfunction isInRange(value: number | undefined, min: number | undefined, max: number | undefined) {\n if (value === undefined) {\n return true;\n }\n\n const minValid = min === undefined || value >= min;\n const maxValid = max === undefined || value <= max;\n\n return minValid && maxValid;\n}\n\nexport type NumberInputStylesNames = 'controls' | 'control' | __InputStylesNames;\nexport type NumberInputCssVariables = {\n controls: '--ni-chevron-size';\n};\n\nexport interface NumberInputProps\n extends BoxProps,\n __BaseInputProps,\n StylesApiProps<NumberInputFactory>,\n ElementProps<'input', 'size' | 'type' | 'onChange'> {\n /** Controlled component value */\n value?: number | string;\n\n /** Uncontrolled component default value */\n defaultValue?: number | string;\n\n /** Called when value changes */\n onChange?: (value: number | string) => void;\n\n /** Called when value changes with `react-number-format` payload */\n onValueChange?: OnValueChange;\n\n /** Determines whether leading zeros are allowed. If not set, leading zeros are removed when the input is blurred. `false` by default */\n allowLeadingZeros?: boolean;\n\n /** Determines whether negative values are allowed, `true` by default */\n allowNegative?: boolean;\n\n /** Characters which when pressed result in a decimal separator, `['.']` by default */\n allowedDecimalSeparators?: string[];\n\n /** Limits the number of digits that can be entered after the decimal point */\n decimalScale?: number;\n\n /** Character used as a decimal separator, `'.'` by default */\n decimalSeparator?: string;\n\n /** If set, 0s are added after `decimalSeparator` to match given `decimalScale`. `false` by default */\n fixedDecimalScale?: boolean;\n\n /** Prefix added before the input value */\n prefix?: string;\n\n /** Suffix added after the input value */\n suffix?: string;\n\n /** Defines the thousand grouping style. */\n thousandsGroupStyle?: 'thousand' | 'lakh' | 'wan' | 'none';\n\n /** A function to validate the input value. If this function returns `false`, the `onChange` will not be called and the input value will not change. */\n isAllowed?: (values: NumberFormatValues) => boolean;\n\n /** If value is passed as string representation of numbers (unformatted) and number is used in any format props like in prefix or suffix in numeric format and format prop in pattern format then this should be passed as `true`. `false` by default. */\n valueIsNumericString?: boolean;\n\n /** Controls input `type` attribute, `'text'` by default */\n type?: 'text' | 'tel' | 'password';\n\n /** A character used to separate thousands */\n thousandSeparator?: string | boolean;\n\n /** Minimum possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Number by which value will be incremented/decremented with up/down controls and keyboard arrows, `1` by default */\n step?: number;\n\n /** Determines whether the up/down controls should be hidden, `false` by default */\n hideControls?: boolean;\n\n /** Controls how value is clamped, `strict` – user is not allowed to enter values that are not in `[min, max]` range, `blur` – user is allowed to enter any values, but the value is clamped when the input loses focus (default behavior), `none` – lifts all restrictions, `[min, max]` range is applied only for controls and up/down keys */\n clampBehavior?: 'strict' | 'blur' | 'none';\n\n /** Determines whether decimal values are allowed, `true` by default */\n allowDecimal?: boolean;\n\n /** Increment/decrement handlers */\n handlersRef?: React.ForwardedRef<NumberInputHandlers | undefined>;\n\n /** Value set to the input when increment/decrement buttons are clicked or up/down arrows pressed if the input is empty, `0` by default */\n startValue?: number;\n}\n\nexport type NumberInputFactory = Factory<{\n props: NumberInputProps;\n ref: HTMLDivElement;\n stylesNames: NumberInputStylesNames;\n vars: NumberInputCssVariables;\n variant: InputVariant;\n}>;\n\nconst defaultProps: Partial<NumberInputProps> = {\n step: 1,\n clampBehavior: 'blur',\n allowDecimal: true,\n allowNegative: true,\n startValue: 0,\n};\n\nconst varsResolver = createVarsResolver<NumberInputFactory>((_, { size }) => ({\n controls: {\n '--ni-chevron-size': getSize(size, 'ni-chevron-size'),\n },\n}));\n\nexport const NumberInput = factory<NumberInputFactory>((_props, ref) => {\n const props = useProps('NumberInput', defaultProps, _props);\n const {\n className,\n classNames,\n styles,\n unstyled,\n vars,\n onChange,\n onValueChange,\n value,\n defaultValue,\n max,\n min,\n step,\n hideControls,\n rightSection,\n isAllowed,\n clampBehavior,\n onBlur,\n allowDecimal,\n decimalScale,\n onKeyDown,\n handlersRef,\n startValue,\n disabled,\n rightSectionPointerEvents,\n allowNegative,\n readOnly,\n size,\n rightSectionWidth,\n ...others\n } = props;\n\n const getStyles = useStyles<NumberInputFactory>({\n name: 'NumberInput',\n classes,\n props,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<NumberInputFactory>({\n classNames,\n styles,\n props,\n });\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n onChange,\n });\n\n const handleValueChange: OnValueChange = (payload, event) => {\n setValue(\n typeof _value === 'number' && isValidNumber(payload.floatValue)\n ? payload.floatValue\n : payload.value\n );\n onValueChange?.(payload, event);\n };\n\n const increment = () => {\n if (typeof _value !== 'number' || Number.isNaN(_value)) {\n setValue(min ?? clamp(startValue!, min, max));\n } else if (max !== undefined) {\n setValue(_value + step! <= max ? _value + step! : max);\n } else {\n setValue(_value + step!);\n }\n };\n\n const decrement = () => {\n if (typeof _value !== 'number' || Number.isNaN(_value)) {\n setValue(max ?? clamp(startValue!, min, max));\n } else {\n setValue(getDecrementedValue({ value: _value, min, step, allowNegative }));\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (readOnly) {\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n increment();\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n decrement();\n }\n };\n\n assignRef(handlersRef, { increment, decrement });\n\n const controls = (\n <div {...getStyles('controls')}>\n <UnstyledButton\n {...getStyles('control')}\n tabIndex={-1}\n aria-hidden\n disabled={disabled || (typeof _value === 'number' && max !== undefined && _value >= max)}\n mod={{ direction: 'up' }}\n onMouseDown={(event) => event.preventDefault()}\n onPointerDown={increment}\n >\n <NumberInputChevron direction=\"up\" />\n </UnstyledButton>\n <UnstyledButton\n {...getStyles('control')}\n tabIndex={-1}\n aria-hidden\n disabled={disabled || (typeof _value === 'number' && min !== undefined && _value <= min)}\n mod={{ direction: 'down' }}\n onMouseDown={(event) => event.preventDefault()}\n onPointerDown={decrement}\n >\n <NumberInputChevron direction=\"down\" />\n </UnstyledButton>\n </div>\n );\n\n return (\n <InputBase\n component={NumericFormat}\n allowNegative={allowNegative}\n className={cx(classes.root, className)}\n size={size}\n {...others}\n readOnly={readOnly}\n disabled={disabled}\n value={_value}\n getInputRef={ref}\n onValueChange={handleValueChange}\n rightSection={hideControls || readOnly ? rightSection : rightSection || controls}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n __staticSelector=\"NumberInput\"\n decimalScale={allowDecimal ? decimalScale : 0}\n onKeyDown={handleKeyDown}\n rightSectionPointerEvents={rightSectionPointerEvents ?? disabled ? 'none' : undefined}\n rightSectionWidth={rightSectionWidth ?? `var(--ni-right-section-width-${size || 'sm'})`}\n onBlur={(event) => {\n onBlur?.(event);\n if (clampBehavior === 'blur' && typeof _value === 'number') {\n setValue(clamp(_value, min, max));\n }\n }}\n isAllowed={(val) => {\n if (clampBehavior === 'strict') {\n if (isAllowed) {\n return isAllowed(val) && isInRange(val.floatValue, min, max);\n }\n\n return isInRange(val.floatValue, min, max);\n }\n\n return isAllowed ? isAllowed(val) : true;\n }}\n />\n );\n});\n\nNumberInput.classes = { ...InputBase.classes, ...classes };\nNumberInput.displayName = '@mantine/core/NumberInput';\n"],"names":["createVarsResolver","getSize","factory","useProps","useStyles","classes","useResolvedStylesApi","useUncontrolled","clamp","assignRef","React","UnstyledButton","NumberInputChevron","InputBase","NumericFormat","cx"],"mappings":"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"}
1
+ {"version":3,"file":"NumberInput.js","sources":["../../../src/components/NumberInput/NumberInput.tsx"],"sourcesContent":["import React from 'react';\nimport cx from 'clsx';\nimport { NumericFormat, OnValueChange, NumberFormatValues } from 'react-number-format';\nimport { assignRef, clamp, useUncontrolled } from '@mantine/hooks';\nimport {\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n getSize,\n useResolvedStylesApi,\n} from '../../core';\nimport { UnstyledButton } from '../UnstyledButton';\nimport { InputBase } from '../InputBase';\nimport { __BaseInputProps, __InputStylesNames, InputVariant } from '../Input';\nimport { NumberInputChevron } from './NumberInputChevron';\nimport classes from './NumberInput.module.css';\n\nexport interface NumberInputHandlers {\n increment: () => void;\n decrement: () => void;\n}\n\nfunction isValidNumber(value: number | string | undefined): value is number {\n return (typeof value === 'number' || !Number.isNaN(Number(value))) && !Number.isNaN(value);\n}\n\ninterface GetDecrementedValueInput {\n value: number;\n min: number | undefined;\n step: number | undefined;\n allowNegative: boolean | undefined;\n}\n\nfunction getDecrementedValue({ value, min, step = 1, allowNegative }: GetDecrementedValueInput) {\n const nextValue = value - step;\n\n if (min !== undefined && nextValue < min) {\n return min;\n }\n\n if (!allowNegative && nextValue < 0 && min === undefined) {\n return value;\n }\n\n if (min !== undefined && min >= 0 && nextValue <= min) {\n return nextValue;\n }\n\n return nextValue;\n}\n\nfunction isInRange(value: number | undefined, min: number | undefined, max: number | undefined) {\n if (value === undefined) {\n return true;\n }\n\n const minValid = min === undefined || value >= min;\n const maxValid = max === undefined || value <= max;\n\n return minValid && maxValid;\n}\n\nexport type NumberInputStylesNames = 'controls' | 'control' | __InputStylesNames;\nexport type NumberInputCssVariables = {\n controls: '--ni-chevron-size';\n};\n\nexport interface NumberInputProps\n extends BoxProps,\n __BaseInputProps,\n StylesApiProps<NumberInputFactory>,\n ElementProps<'input', 'size' | 'type' | 'onChange'> {\n /** Controlled component value */\n value?: number | string;\n\n /** Uncontrolled component default value */\n defaultValue?: number | string;\n\n /** Called when value changes */\n onChange?: (value: number | string) => void;\n\n /** Called when value changes with `react-number-format` payload */\n onValueChange?: OnValueChange;\n\n /** Determines whether leading zeros are allowed. If not set, leading zeros are removed when the input is blurred. `false` by default */\n allowLeadingZeros?: boolean;\n\n /** Determines whether negative values are allowed, `true` by default */\n allowNegative?: boolean;\n\n /** Characters which when pressed result in a decimal separator, `['.']` by default */\n allowedDecimalSeparators?: string[];\n\n /** Limits the number of digits that can be entered after the decimal point */\n decimalScale?: number;\n\n /** Character used as a decimal separator, `'.'` by default */\n decimalSeparator?: string;\n\n /** If set, 0s are added after `decimalSeparator` to match given `decimalScale`. `false` by default */\n fixedDecimalScale?: boolean;\n\n /** Prefix added before the input value */\n prefix?: string;\n\n /** Suffix added after the input value */\n suffix?: string;\n\n /** Defines the thousand grouping style. */\n thousandsGroupStyle?: 'thousand' | 'lakh' | 'wan' | 'none';\n\n /** A function to validate the input value. If this function returns `false`, the `onChange` will not be called and the input value will not change. */\n isAllowed?: (values: NumberFormatValues) => boolean;\n\n /** If value is passed as string representation of numbers (unformatted) and number is used in any format props like in prefix or suffix in numeric format and format prop in pattern format then this should be passed as `true`. `false` by default. */\n valueIsNumericString?: boolean;\n\n /** Controls input `type` attribute, `'text'` by default */\n type?: 'text' | 'tel' | 'password';\n\n /** A character used to separate thousands */\n thousandSeparator?: string | boolean;\n\n /** Minimum possible value */\n min?: number;\n\n /** Maximum possible value */\n max?: number;\n\n /** Number by which value will be incremented/decremented with up/down controls and keyboard arrows, `1` by default */\n step?: number;\n\n /** Determines whether the up/down controls should be hidden, `false` by default */\n hideControls?: boolean;\n\n /** Controls how value is clamped, `strict` – user is not allowed to enter values that are not in `[min, max]` range, `blur` – user is allowed to enter any values, but the value is clamped when the input loses focus (default behavior), `none` – lifts all restrictions, `[min, max]` range is applied only for controls and up/down keys */\n clampBehavior?: 'strict' | 'blur' | 'none';\n\n /** Determines whether decimal values are allowed, `true` by default */\n allowDecimal?: boolean;\n\n /** Increment/decrement handlers */\n handlersRef?: React.ForwardedRef<NumberInputHandlers | undefined>;\n\n /** Value set to the input when increment/decrement buttons are clicked or up/down arrows pressed if the input is empty, `0` by default */\n startValue?: number;\n}\n\nexport type NumberInputFactory = Factory<{\n props: NumberInputProps;\n ref: HTMLDivElement;\n stylesNames: NumberInputStylesNames;\n vars: NumberInputCssVariables;\n variant: InputVariant;\n}>;\n\nconst defaultProps: Partial<NumberInputProps> = {\n step: 1,\n clampBehavior: 'blur',\n allowDecimal: true,\n allowNegative: true,\n startValue: 0,\n};\n\nconst varsResolver = createVarsResolver<NumberInputFactory>((_, { size }) => ({\n controls: {\n '--ni-chevron-size': getSize(size, 'ni-chevron-size'),\n },\n}));\n\nexport const NumberInput = factory<NumberInputFactory>((_props, ref) => {\n const props = useProps('NumberInput', defaultProps, _props);\n const {\n className,\n classNames,\n styles,\n unstyled,\n vars,\n onChange,\n onValueChange,\n value,\n defaultValue,\n max,\n min,\n step,\n hideControls,\n rightSection,\n isAllowed,\n clampBehavior,\n onBlur,\n allowDecimal,\n decimalScale,\n onKeyDown,\n handlersRef,\n startValue,\n disabled,\n rightSectionPointerEvents,\n allowNegative,\n readOnly,\n size,\n rightSectionWidth,\n ...others\n } = props;\n\n const getStyles = useStyles<NumberInputFactory>({\n name: 'NumberInput',\n classes,\n props,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const { resolvedClassNames, resolvedStyles } = useResolvedStylesApi<NumberInputFactory>({\n classNames,\n styles,\n props,\n });\n\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n onChange,\n });\n\n const handleValueChange: OnValueChange = (payload, event) => {\n if (event.source === 'event') {\n setValue(isValidNumber(payload.floatValue) ? payload.floatValue : payload.value);\n }\n onValueChange?.(payload, event);\n };\n\n const increment = () => {\n if (typeof _value !== 'number' || Number.isNaN(_value)) {\n setValue(min ?? clamp(startValue!, min, max));\n } else if (max !== undefined) {\n setValue(_value + step! <= max ? _value + step! : max);\n } else {\n setValue(_value + step!);\n }\n };\n\n const decrement = () => {\n if (typeof _value !== 'number' || Number.isNaN(_value)) {\n setValue(max ?? clamp(startValue!, min, max));\n } else {\n setValue(getDecrementedValue({ value: _value, min, step, allowNegative }));\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n\n if (readOnly) {\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n increment();\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n decrement();\n }\n };\n\n assignRef(handlersRef, { increment, decrement });\n\n const controls = (\n <div {...getStyles('controls')}>\n <UnstyledButton\n {...getStyles('control')}\n tabIndex={-1}\n aria-hidden\n disabled={disabled || (typeof _value === 'number' && max !== undefined && _value >= max)}\n mod={{ direction: 'up' }}\n onMouseDown={(event) => event.preventDefault()}\n onPointerDown={increment}\n >\n <NumberInputChevron direction=\"up\" />\n </UnstyledButton>\n <UnstyledButton\n {...getStyles('control')}\n tabIndex={-1}\n aria-hidden\n disabled={disabled || (typeof _value === 'number' && min !== undefined && _value <= min)}\n mod={{ direction: 'down' }}\n onMouseDown={(event) => event.preventDefault()}\n onPointerDown={decrement}\n >\n <NumberInputChevron direction=\"down\" />\n </UnstyledButton>\n </div>\n );\n\n return (\n <InputBase\n component={NumericFormat}\n allowNegative={allowNegative}\n className={cx(classes.root, className)}\n size={size}\n {...others}\n readOnly={readOnly}\n disabled={disabled}\n value={_value}\n getInputRef={ref}\n onValueChange={handleValueChange}\n rightSection={hideControls || readOnly ? rightSection : rightSection || controls}\n classNames={resolvedClassNames}\n styles={resolvedStyles}\n unstyled={unstyled}\n __staticSelector=\"NumberInput\"\n decimalScale={allowDecimal ? decimalScale : 0}\n onKeyDown={handleKeyDown}\n rightSectionPointerEvents={rightSectionPointerEvents ?? disabled ? 'none' : undefined}\n rightSectionWidth={rightSectionWidth ?? `var(--ni-right-section-width-${size || 'sm'})`}\n onBlur={(event) => {\n onBlur?.(event);\n if (clampBehavior === 'blur' && typeof _value === 'number') {\n const clampedValue = clamp(_value, min, max);\n if (clampedValue !== _value) {\n setValue(clamp(_value, min, max));\n }\n }\n }}\n isAllowed={(val) => {\n if (clampBehavior === 'strict') {\n if (isAllowed) {\n return isAllowed(val) && isInRange(val.floatValue, min, max);\n }\n\n return isInRange(val.floatValue, min, max);\n }\n\n return isAllowed ? isAllowed(val) : true;\n }}\n />\n );\n});\n\nNumberInput.classes = { ...InputBase.classes, ...classes };\nNumberInput.displayName = '@mantine/core/NumberInput';\n"],"names":["createVarsResolver","getSize","factory","useProps","useStyles","classes","useResolvedStylesApi","useUncontrolled","clamp","assignRef","React","UnstyledButton","NumberInputChevron","InputBase","NumericFormat","cx"],"mappings":"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"}
@@ -61,6 +61,7 @@ const varsResolver = createVarsResolver.createVarsResolver(
61
61
  (theme, { size, radius, color, iconColor }) => ({
62
62
  root: {
63
63
  "--radio-size": getSize.getSize(size, "radio-size"),
64
+ "--radio-icon-size": getSize.getSize(size, "radio-icon-size"),
64
65
  "--radio-radius": radius === void 0 ? void 0 : getSize.getRadius(radius),
65
66
  "--radio-color": color ? getThemeColor.getThemeColor(color, theme) : void 0,
66
67
  "--radio-icon-color": iconColor ? getThemeColor.getThemeColor(iconColor, theme) : void 0
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","sources":["../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import React from 'react';\nimport { useId } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n getSize,\n getRadius,\n getThemeColor,\n MantineColor,\n MantineSize,\n MantineRadius,\n extractStyleProps,\n} from '../../core';\nimport { InlineInput, InlineInputStylesNames } from '../InlineInput';\nimport { RadioIcon, RadioIconProps } from './RadioIcon';\nimport { RadioGroup } from './RadioGroup/RadioGroup';\nimport { useRadioGroupContext } from './RadioGroup.context';\nimport classes from './Radio.module.css';\n\nexport type RadioStylesNames = InlineInputStylesNames | 'inner' | 'radio' | 'icon';\nexport type RadioCssVariables = {\n root: '--radio-size' | '--radio-radius' | '--radio-color' | '--radio-icon-color';\n};\n\nexport interface RadioProps\n extends BoxProps,\n StylesApiProps<RadioFactory>,\n ElementProps<'input', 'size'> {\n /** Radio label */\n label?: React.ReactNode;\n\n /** Key of `theme.colors` or any valid CSS color to set input color in checked state, `theme.primaryColor` by default */\n color?: MantineColor;\n\n /** Controls size of all elements, `'sm'` by default */\n size?: MantineSize;\n\n /** Custom checked icon component, by default a circle is displayed in checked state */\n icon?: React.FC<RadioIconProps>;\n\n /** Props passed down to the root element */\n wrapperProps?: Record<string, any>;\n\n /** Position of the label relative to the input, `'right'` by default */\n labelPosition?: 'left' | 'right';\n\n /** Description displayed below the label */\n description?: React.ReactNode;\n\n /** Error displayed below the label */\n error?: React.ReactNode;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius,` \"xl\" by default */\n radius?: MantineRadius;\n\n /** Assigns ref of the root element, can be used with `Tooltip` and other similar components */\n rootRef?: React.ForwardedRef<HTMLDivElement>;\n\n /** Key of `theme.colors` or any valid CSS color to set icon color, `theme.white` by default */\n iconColor?: MantineColor;\n}\n\nexport type RadioFactory = Factory<{\n props: RadioProps;\n ref: HTMLInputElement;\n stylesNames: RadioStylesNames;\n vars: RadioCssVariables;\n staticComponents: {\n Group: typeof RadioGroup;\n };\n}>;\n\nconst defaultProps: Partial<RadioProps> = {\n labelPosition: 'right',\n};\n\nconst varsResolver = createVarsResolver<RadioFactory>(\n (theme, { size, radius, color, iconColor }) => ({\n root: {\n '--radio-size': getSize(size, 'radio-size'),\n '--radio-radius': radius === undefined ? undefined : getRadius(radius),\n '--radio-color': color ? getThemeColor(color, theme) : undefined,\n '--radio-icon-color': iconColor ? getThemeColor(iconColor, theme) : undefined,\n },\n })\n);\n\nexport const Radio = factory<RadioFactory>((_props, ref) => {\n const props = useProps('Radio', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n id,\n size,\n label,\n labelPosition,\n description,\n error,\n radius,\n color,\n variant,\n disabled,\n wrapperProps,\n icon: Icon = RadioIcon,\n rootRef,\n iconColor,\n ...others\n } = props;\n\n const getStyles = useStyles<RadioFactory>({\n name: 'Radio',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const ctx = useRadioGroupContext();\n\n const contextSize = ctx?.size ?? size;\n const componentSize = props.size ? size : contextSize;\n\n const { styleProps, rest } = extractStyleProps(others);\n const uuid = useId(id);\n\n const contextProps = ctx\n ? {\n checked: ctx.value === rest.value,\n name: rest.name ?? ctx.name,\n onChange: ctx.onChange,\n }\n : {};\n\n return (\n <InlineInput\n {...getStyles('root')}\n __staticSelector=\"Radio\"\n __stylesApiProps={props}\n id={uuid}\n size={componentSize}\n labelPosition={labelPosition}\n label={label}\n description={description}\n error={error}\n disabled={disabled}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n data-checked={contextProps.checked || undefined}\n variant={variant}\n ref={rootRef}\n {...styleProps}\n {...wrapperProps}\n >\n <Box {...getStyles('inner')} mod={{ 'label-position': labelPosition }}>\n <Box\n {...getStyles('radio', { focusable: true })}\n {...rest}\n {...contextProps}\n component=\"input\"\n mod={{ error: !!error }}\n ref={ref}\n id={uuid}\n disabled={disabled}\n type=\"radio\"\n />\n <Icon {...getStyles('icon')} aria-hidden />\n </Box>\n </InlineInput>\n );\n});\n\nRadio.classes = classes;\nRadio.displayName = '@mantine/core/Radio';\nRadio.Group = RadioGroup;\n"],"names":["createVarsResolver","getSize","getRadius","getThemeColor","factory","useProps","RadioIcon","useStyles","classes","useRadioGroupContext","extractStyleProps","useId","React","InlineInput","Box","RadioGroup"],"mappings":"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"}
1
+ {"version":3,"file":"Radio.js","sources":["../../../src/components/Radio/Radio.tsx"],"sourcesContent":["import React from 'react';\nimport { useId } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n getSize,\n getRadius,\n getThemeColor,\n MantineColor,\n MantineSize,\n MantineRadius,\n extractStyleProps,\n} from '../../core';\nimport { InlineInput, InlineInputStylesNames } from '../InlineInput';\nimport { RadioIcon, RadioIconProps } from './RadioIcon';\nimport { RadioGroup } from './RadioGroup/RadioGroup';\nimport { useRadioGroupContext } from './RadioGroup.context';\nimport classes from './Radio.module.css';\n\nexport type RadioStylesNames = InlineInputStylesNames | 'inner' | 'radio' | 'icon';\nexport type RadioCssVariables = {\n root:\n | '--radio-size'\n | '--radio-radius'\n | '--radio-color'\n | '--radio-icon-color'\n | '--radio-icon-size';\n};\n\nexport interface RadioProps\n extends BoxProps,\n StylesApiProps<RadioFactory>,\n ElementProps<'input', 'size'> {\n /** Radio label */\n label?: React.ReactNode;\n\n /** Key of `theme.colors` or any valid CSS color to set input color in checked state, `theme.primaryColor` by default */\n color?: MantineColor;\n\n /** Controls size of all elements, `'sm'` by default */\n size?: MantineSize;\n\n /** Custom checked icon component, by default a circle is displayed in checked state */\n icon?: React.FC<RadioIconProps>;\n\n /** Props passed down to the root element */\n wrapperProps?: Record<string, any>;\n\n /** Position of the label relative to the input, `'right'` by default */\n labelPosition?: 'left' | 'right';\n\n /** Description displayed below the label */\n description?: React.ReactNode;\n\n /** Error displayed below the label */\n error?: React.ReactNode;\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius,` \"xl\" by default */\n radius?: MantineRadius;\n\n /** Assigns ref of the root element, can be used with `Tooltip` and other similar components */\n rootRef?: React.ForwardedRef<HTMLDivElement>;\n\n /** Key of `theme.colors` or any valid CSS color to set icon color, `theme.white` by default */\n iconColor?: MantineColor;\n}\n\nexport type RadioFactory = Factory<{\n props: RadioProps;\n ref: HTMLInputElement;\n stylesNames: RadioStylesNames;\n vars: RadioCssVariables;\n staticComponents: {\n Group: typeof RadioGroup;\n };\n}>;\n\nconst defaultProps: Partial<RadioProps> = {\n labelPosition: 'right',\n};\n\nconst varsResolver = createVarsResolver<RadioFactory>(\n (theme, { size, radius, color, iconColor }) => ({\n root: {\n '--radio-size': getSize(size, 'radio-size'),\n '--radio-icon-size': getSize(size, 'radio-icon-size'),\n '--radio-radius': radius === undefined ? undefined : getRadius(radius),\n '--radio-color': color ? getThemeColor(color, theme) : undefined,\n '--radio-icon-color': iconColor ? getThemeColor(iconColor, theme) : undefined,\n },\n })\n);\n\nexport const Radio = factory<RadioFactory>((_props, ref) => {\n const props = useProps('Radio', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n id,\n size,\n label,\n labelPosition,\n description,\n error,\n radius,\n color,\n variant,\n disabled,\n wrapperProps,\n icon: Icon = RadioIcon,\n rootRef,\n iconColor,\n ...others\n } = props;\n\n const getStyles = useStyles<RadioFactory>({\n name: 'Radio',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const ctx = useRadioGroupContext();\n\n const contextSize = ctx?.size ?? size;\n const componentSize = props.size ? size : contextSize;\n\n const { styleProps, rest } = extractStyleProps(others);\n const uuid = useId(id);\n\n const contextProps = ctx\n ? {\n checked: ctx.value === rest.value,\n name: rest.name ?? ctx.name,\n onChange: ctx.onChange,\n }\n : {};\n\n return (\n <InlineInput\n {...getStyles('root')}\n __staticSelector=\"Radio\"\n __stylesApiProps={props}\n id={uuid}\n size={componentSize}\n labelPosition={labelPosition}\n label={label}\n description={description}\n error={error}\n disabled={disabled}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n data-checked={contextProps.checked || undefined}\n variant={variant}\n ref={rootRef}\n {...styleProps}\n {...wrapperProps}\n >\n <Box {...getStyles('inner')} mod={{ 'label-position': labelPosition }}>\n <Box\n {...getStyles('radio', { focusable: true })}\n {...rest}\n {...contextProps}\n component=\"input\"\n mod={{ error: !!error }}\n ref={ref}\n id={uuid}\n disabled={disabled}\n type=\"radio\"\n />\n <Icon {...getStyles('icon')} aria-hidden />\n </Box>\n </InlineInput>\n );\n});\n\nRadio.classes = classes;\nRadio.displayName = '@mantine/core/Radio';\nRadio.Group = RadioGroup;\n"],"names":["createVarsResolver","getSize","getRadius","getThemeColor","factory","useProps","RadioIcon","useStyles","classes","useRadioGroupContext","extractStyleProps","useId","React","InlineInput","Box","RadioGroup"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Curve.js","sources":["../../../../src/components/RingProgress/Curve/Curve.tsx"],"sourcesContent":["import React from 'react';\nimport { useMantineTheme, MantineColor, getThemeColor, GetStylesApi, Box } from '../../../core';\nimport { Tooltip } from '../../Tooltip';\nimport { getCurveProps } from './get-curve-props';\nimport type { RingProgressFactory } from '../RingProgress';\n\ninterface CurveProps extends React.ComponentPropsWithRef<'circle'> {\n value?: number;\n size: number;\n offset: number;\n sum: number;\n thickness: number;\n lineRoundCaps: boolean | undefined;\n root?: boolean;\n color?: MantineColor;\n tooltip?: React.ReactNode;\n getStyles: GetStylesApi<RingProgressFactory>;\n}\n\nexport function Curve({\n size,\n value,\n offset,\n sum,\n thickness,\n root,\n color,\n lineRoundCaps,\n tooltip,\n getStyles,\n display,\n ...others\n}: CurveProps) {\n const theme = useMantineTheme();\n // const stroke = theme.fn.themeColor(\n // color || (theme.colorScheme === 'dark' ? 'dark' : 'gray'),\n // color ? theme.fn.primaryShade() : theme.colorScheme === 'dark' ? 4 : 1,\n // false\n // );\n\n return (\n <Tooltip.Floating disabled={!tooltip} label={tooltip}>\n <Box\n component=\"circle\"\n {...others}\n {...getStyles('curve')}\n __vars={{ '--curve-color': color ? getThemeColor(color, theme) : undefined }}\n fill=\"none\"\n strokeLinecap={lineRoundCaps ? 'round' : 'butt'}\n // stroke={color ? getThemeColor(color, theme) : undefined}\n {...getCurveProps({ sum, size, thickness, value, offset, root })}\n />\n </Tooltip.Floating>\n );\n}\n\nCurve.displayName = '@mantine/core/Curve';\n"],"names":["useMantineTheme","React","Tooltip","Box","getThemeColor","getCurveProps"],"mappings":"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"}
1
+ {"version":3,"file":"Curve.js","sources":["../../../../src/components/RingProgress/Curve/Curve.tsx"],"sourcesContent":["import React from 'react';\nimport { useMantineTheme, MantineColor, getThemeColor, GetStylesApi, Box } from '../../../core';\nimport { Tooltip } from '../../Tooltip';\nimport { getCurveProps } from './get-curve-props';\nimport type { RingProgressFactory } from '../RingProgress';\n\ninterface CurveProps extends React.ComponentPropsWithRef<'circle'> {\n value?: number;\n size: number;\n offset: number;\n sum: number;\n thickness: number;\n lineRoundCaps: boolean | undefined;\n root?: boolean;\n color?: MantineColor;\n tooltip?: React.ReactNode;\n getStyles: GetStylesApi<RingProgressFactory>;\n}\n\nexport function Curve({\n size,\n value,\n offset,\n sum,\n thickness,\n root,\n color,\n lineRoundCaps,\n tooltip,\n getStyles,\n display,\n ...others\n}: CurveProps) {\n const theme = useMantineTheme();\n\n return (\n <Tooltip.Floating disabled={!tooltip} label={tooltip}>\n <Box\n component=\"circle\"\n {...others}\n {...getStyles('curve')}\n __vars={{ '--curve-color': color ? getThemeColor(color, theme) : undefined }}\n fill=\"none\"\n strokeLinecap={lineRoundCaps ? 'round' : 'butt'}\n {...getCurveProps({ sum, size, thickness, value, offset, root })}\n />\n </Tooltip.Floating>\n );\n}\n\nCurve.displayName = '@mantine/core/Curve';\n"],"names":["useMantineTheme","React","Tooltip","Box","getThemeColor","getCurveProps"],"mappings":"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"}
@@ -8,7 +8,7 @@ function getCurveProps({ size, thickness, sum, value, root, offset }) {
8
8
  const deg = Math.PI * radius * 2 / 100;
9
9
  const strokeDasharray = root || value === void 0 ? `${(100 - sum) * deg}, ${sum * deg}` : `${value * deg}, ${(100 - value) * deg}`;
10
10
  return {
11
- strokeWidth: thickness,
11
+ strokeWidth: Number.isNaN(thickness) ? 12 : thickness,
12
12
  cx: size / 2 || 0,
13
13
  cy: size / 2 || 0,
14
14
  r: radius || 0,
@@ -1 +1 @@
1
- {"version":3,"file":"get-curve-props.js","sources":["../../../../src/components/RingProgress/Curve/get-curve-props.ts"],"sourcesContent":["interface GetCurveProps {\n size: number;\n thickness: number;\n sum: number;\n value: number | undefined;\n root: boolean | undefined;\n offset: number;\n}\n\nexport function getCurveProps({ size, thickness, sum, value, root, offset }: GetCurveProps) {\n const radius = (size * 0.9 - thickness * 2) / 2;\n const deg = (Math.PI * radius * 2) / 100;\n\n const strokeDasharray =\n root || value === undefined\n ? `${(100 - sum) * deg}, ${sum * deg}`\n : `${value * deg}, ${(100 - value) * deg}`;\n\n return {\n strokeWidth: thickness,\n cx: size / 2 || 0,\n cy: size / 2 || 0,\n r: radius || 0,\n transform: root ? `scale(1, -1) translate(0, -${size})` : undefined,\n strokeDasharray,\n strokeDashoffset: root ? 0 : offset || 0,\n };\n}\n"],"names":[],"mappings":";;;;;AAAO,SAAS,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;AAC7E,EAAE,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC;AAClD,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;AACzC,EAAE,MAAM,eAAe,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AACrI,EAAE,OAAO;AACT,IAAI,WAAW,EAAE,SAAS;AAC1B,IAAI,EAAE,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC;AACrB,IAAI,EAAE,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC;AACrB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;AAClB,IAAI,SAAS,EAAE,IAAI,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACpE,IAAI,eAAe;AACnB,IAAI,gBAAgB,EAAE,IAAI,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC;AAC5C,GAAG,CAAC;AACJ;;"}
1
+ {"version":3,"file":"get-curve-props.js","sources":["../../../../src/components/RingProgress/Curve/get-curve-props.ts"],"sourcesContent":["interface GetCurveProps {\n size: number;\n thickness: number;\n sum: number;\n value: number | undefined;\n root: boolean | undefined;\n offset: number;\n}\n\nexport function getCurveProps({ size, thickness, sum, value, root, offset }: GetCurveProps) {\n const radius = (size * 0.9 - thickness * 2) / 2;\n const deg = (Math.PI * radius * 2) / 100;\n\n const strokeDasharray =\n root || value === undefined\n ? `${(100 - sum) * deg}, ${sum * deg}`\n : `${value * deg}, ${(100 - value) * deg}`;\n\n return {\n strokeWidth: Number.isNaN(thickness) ? 12 : thickness,\n cx: size / 2 || 0,\n cy: size / 2 || 0,\n r: radius || 0,\n transform: root ? `scale(1, -1) translate(0, -${size})` : undefined,\n strokeDasharray,\n strokeDashoffset: root ? 0 : offset || 0,\n };\n}\n"],"names":[],"mappings":";;;;;AAAO,SAAS,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;AAC7E,EAAE,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC;AAClD,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;AACzC,EAAE,MAAM,eAAe,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AACrI,EAAE,OAAO;AACT,IAAI,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,SAAS;AACzD,IAAI,EAAE,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC;AACrB,IAAI,EAAE,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC;AACrB,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;AAClB,IAAI,SAAS,EAAE,IAAI,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACpE,IAAI,eAAe;AACnB,IAAI,gBAAgB,EAAE,IAAI,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC;AAC5C,GAAG,CAAC;AACJ;;"}
@@ -49,6 +49,9 @@ var __objRest = (source, exclude) => {
49
49
  }
50
50
  return target;
51
51
  };
52
+ function getClampedThickness(thickness, size) {
53
+ return Math.min(thickness || 12, (size || 120) / 4);
54
+ }
52
55
  const defaultProps = {
53
56
  size: 120,
54
57
  thickness: 12
@@ -100,9 +103,10 @@ const RingProgress = factory.factory((_props, ref) => {
100
103
  vars,
101
104
  varsResolver
102
105
  });
106
+ const clampedThickness = getClampedThickness(thickness, size);
103
107
  const curves = getCurves.getCurves({
104
108
  size,
105
- thickness,
109
+ thickness: clampedThickness,
106
110
  sections,
107
111
  renderRoundedLineCaps: roundCaps,
108
112
  rootColor
@@ -111,7 +115,7 @@ const RingProgress = factory.factory((_props, ref) => {
111
115
  __spreadProps(__spreadValues({}, data), {
112
116
  key: index,
113
117
  size,
114
- thickness,
118
+ thickness: clampedThickness,
115
119
  sum,
116
120
  offset,
117
121
  color: data == null ? void 0 : data.color,
@@ -1 +1 @@
1
- {"version":3,"file":"RingProgress.js","sources":["../../../src/components/RingProgress/RingProgress.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n MantineColor,\n rem,\n} from '../../core';\nimport classes from './RingProgress.module.css';\nimport { getCurves } from './get-curves/get-curves';\nimport { Curve } from './Curve/Curve';\n\ninterface RingProgressSection extends React.ComponentPropsWithRef<'circle'> {\n value: number;\n color: MantineColor;\n tooltip?: React.ReactNode;\n}\n\nexport type RingProgressStylesNames = 'root' | 'svg' | 'label' | 'curve';\nexport type RingProgressCssVariables = {\n root: '--rp-size' | '--rp-label-offset';\n};\n\nexport interface RingProgressProps\n extends BoxProps,\n StylesApiProps<RingProgressFactory>,\n ElementProps<'div'> {\n /** Label displayed in the center of the ring */\n label?: React.ReactNode;\n\n /** Ring thickness */\n thickness?: number;\n\n /** Width and height of the progress ring */\n size?: number;\n\n /** Sets whether the edges of the progress circle are rounded */\n roundCaps?: boolean;\n\n /** Ring sections */\n sections: RingProgressSection[];\n\n /** Color of the root section, key of theme.colors or CSS color value */\n rootColor?: MantineColor;\n}\n\nexport type RingProgressFactory = Factory<{\n props: RingProgressProps;\n ref: HTMLDivElement;\n stylesNames: RingProgressStylesNames;\n vars: RingProgressCssVariables;\n}>;\n\nconst defaultProps: Partial<RingProgressProps> = {\n size: 120,\n thickness: 12,\n};\n\nconst varsResolver = createVarsResolver<RingProgressFactory>((_, { size, thickness }) => ({\n root: {\n '--rp-size': rem(size),\n '--rp-label-offset': rem(thickness! * 2),\n },\n}));\n\nexport const RingProgress = factory<RingProgressFactory>((_props, ref) => {\n const props = useProps('RingProgress', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n label,\n sections,\n size,\n thickness,\n roundCaps,\n rootColor,\n ...others\n } = props;\n\n const getStyles = useStyles<RingProgressFactory>({\n name: 'RingProgress',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const curves = getCurves({\n size: size!,\n thickness: thickness!,\n sections,\n renderRoundedLineCaps: roundCaps,\n rootColor,\n }).map(({ data, sum, root, lineRoundCaps, offset }, index) => (\n <Curve\n {...data}\n key={index}\n size={size!}\n thickness={thickness!}\n sum={sum}\n offset={offset}\n color={data?.color}\n root={root}\n lineRoundCaps={lineRoundCaps}\n getStyles={getStyles}\n />\n ));\n\n return (\n <Box {...getStyles('root')} size={size} ref={ref} {...others}>\n <svg {...getStyles('svg')}>{curves}</svg>\n {label && <div {...getStyles('label')}>{label}</div>}\n </Box>\n );\n});\n\nRingProgress.classes = classes;\nRingProgress.displayName = '@mantine/core/RingProgress';\n"],"names":["createVarsResolver","rem","factory","useProps","useStyles","classes","getCurves","React","Curve","Box"],"mappings":"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"}
1
+ {"version":3,"file":"RingProgress.js","sources":["../../../src/components/RingProgress/RingProgress.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n createVarsResolver,\n Factory,\n MantineColor,\n rem,\n} from '../../core';\nimport classes from './RingProgress.module.css';\nimport { getCurves } from './get-curves/get-curves';\nimport { Curve } from './Curve/Curve';\n\nfunction getClampedThickness(thickness: number, size: number) {\n return Math.min(thickness || 12, (size || 120) / 4);\n}\n\ninterface RingProgressSection extends React.ComponentPropsWithRef<'circle'> {\n value: number;\n color: MantineColor;\n tooltip?: React.ReactNode;\n}\n\nexport type RingProgressStylesNames = 'root' | 'svg' | 'label' | 'curve';\nexport type RingProgressCssVariables = {\n root: '--rp-size' | '--rp-label-offset';\n};\n\nexport interface RingProgressProps\n extends BoxProps,\n StylesApiProps<RingProgressFactory>,\n ElementProps<'div'> {\n /** Label displayed in the center of the ring */\n label?: React.ReactNode;\n\n /** Ring thickness */\n thickness?: number;\n\n /** Width and height of the progress ring */\n size?: number;\n\n /** Sets whether the edges of the progress circle are rounded */\n roundCaps?: boolean;\n\n /** Ring sections */\n sections: RingProgressSection[];\n\n /** Color of the root section, key of theme.colors or CSS color value */\n rootColor?: MantineColor;\n}\n\nexport type RingProgressFactory = Factory<{\n props: RingProgressProps;\n ref: HTMLDivElement;\n stylesNames: RingProgressStylesNames;\n vars: RingProgressCssVariables;\n}>;\n\nconst defaultProps: Partial<RingProgressProps> = {\n size: 120,\n thickness: 12,\n};\n\nconst varsResolver = createVarsResolver<RingProgressFactory>((_, { size, thickness }) => ({\n root: {\n '--rp-size': rem(size),\n '--rp-label-offset': rem(thickness! * 2),\n },\n}));\n\nexport const RingProgress = factory<RingProgressFactory>((_props, ref) => {\n const props = useProps('RingProgress', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n label,\n sections,\n size,\n thickness,\n roundCaps,\n rootColor,\n ...others\n } = props;\n\n const getStyles = useStyles<RingProgressFactory>({\n name: 'RingProgress',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const clampedThickness = getClampedThickness(thickness!, size!);\n\n const curves = getCurves({\n size: size!,\n thickness: clampedThickness,\n sections,\n renderRoundedLineCaps: roundCaps,\n rootColor,\n }).map(({ data, sum, root, lineRoundCaps, offset }, index) => (\n <Curve\n {...data}\n key={index}\n size={size!}\n thickness={clampedThickness}\n sum={sum}\n offset={offset}\n color={data?.color}\n root={root}\n lineRoundCaps={lineRoundCaps}\n getStyles={getStyles}\n />\n ));\n\n return (\n <Box {...getStyles('root')} size={size} ref={ref} {...others}>\n <svg {...getStyles('svg')}>{curves}</svg>\n {label && <div {...getStyles('label')}>{label}</div>}\n </Box>\n );\n});\n\nRingProgress.classes = classes;\nRingProgress.displayName = '@mantine/core/RingProgress';\n"],"names":["createVarsResolver","rem","factory","useProps","useStyles","classes","getCurves","React","Curve","Box"],"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;AAaF,SAAS,mBAAmB,CAAC,SAAS,EAAE,IAAI,EAAE;AAC9C,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AACD,MAAM,YAAY,GAAG;AACrB,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,SAAS,EAAE,EAAE;AACf,CAAC,CAAC;AACF,MAAM,YAAY,GAAGA,qCAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM;AACrE,EAAE,IAAI,EAAE;AACR,IAAI,WAAW,EAAEC,OAAG,CAAC,IAAI,CAAC;AAC1B,IAAI,mBAAmB,EAAEA,OAAG,CAAC,SAAS,GAAG,CAAC,CAAC;AAC3C,GAAG;AACH,CAAC,CAAC,CAAC,CAAC;AACQ,MAAC,YAAY,GAAGC,eAAO,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AACrD,EAAE,MAAM,KAAK,GAAGC,iBAAQ,CAAC,cAAc,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AAC/D,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;AACpB,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,SAAS;AACb,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,WAAW;AACf,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,SAAS,GAAGC,mBAAS,CAAC;AAC9B,IAAI,IAAI,EAAE,cAAc;AACxB,aAAIC,8BAAO;AACX,IAAI,KAAK;AACT,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,YAAY;AAChB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAChE,EAAE,MAAM,MAAM,GAAGC,mBAAS,CAAC;AAC3B,IAAI,IAAI;AACR,IAAI,SAAS,EAAE,gBAAgB;AAC/B,IAAI,QAAQ;AACZ,IAAI,qBAAqB,EAAE,SAAS;AACpC,IAAI,SAAS;AACb,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,qBAAqBC,cAAK,CAAC,aAAa;AACnG,IAAIC,WAAK;AACT,IAAI,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE;AAC5C,MAAM,GAAG,EAAE,KAAK;AAChB,MAAM,IAAI;AACV,MAAM,SAAS,EAAE,gBAAgB;AACjC,MAAM,GAAG;AACT,MAAM,MAAM;AACZ,MAAM,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK;AAC/C,MAAM,IAAI;AACV,MAAM,aAAa;AACnB,MAAM,SAAS;AACf,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL,EAAE,uBAAuBD,cAAK,CAAC,aAAa,CAACE,OAAG,EAAE,cAAc,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,kBAAkBF,cAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,oBAAoBA,cAAK,CAAC,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7U,CAAC,EAAE;AACH,YAAY,CAAC,OAAO,GAAGF,8BAAO,CAAC;AAC/B,YAAY,CAAC,WAAW,GAAG,4BAA4B;;"}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var React = require('react');
7
7
  var hooks = require('@mantine/hooks');
8
+ var getRootPadding = require('./get-root-padding.js');
8
9
  var SegmentedControl_module = require('./SegmentedControl.module.css.js');
9
10
  var factory = require('../../core/factory/factory.js');
10
11
  var useProps = require('../../core/MantineProvider/use-props/use-props.js');
@@ -144,23 +145,25 @@ const SegmentedControl = factory.factory((_props, ref) => {
144
145
  });
145
146
  const uuid = hooks.useId(name);
146
147
  const refs = React.useRef({});
148
+ const rootRef = React.useRef(null);
147
149
  const [observerRef, containerRect] = hooks.useResizeObserver();
148
150
  React.useEffect(() => {
149
151
  if (_value in refs.current && observerRef.current) {
150
152
  const element = refs.current[_value];
151
153
  if (element) {
154
+ const rootPadding = getRootPadding.getRootPadding(rootRef.current, WRAPPER_PADDING);
152
155
  const elementRect = element.getBoundingClientRect();
153
156
  const scaledValue = element.offsetWidth / elementRect.width;
154
157
  const width = element.clientWidth * scaledValue || 0;
155
158
  const height = element.clientHeight * scaledValue || 0;
156
- const offsetRight = containerRect.width - element.parentElement.offsetLeft + WRAPPER_PADDING - width;
157
- const offsetLeft = element.parentElement.offsetLeft - WRAPPER_PADDING;
159
+ const offsetRight = containerRect.width - element.parentElement.offsetLeft + (dir === "rtl" ? rootPadding.left : rootPadding.right) - width;
160
+ const offsetLeft = element.parentElement.offsetLeft - (dir === "rtl" ? rootPadding.right : rootPadding.left);
158
161
  setActivePosition({
159
162
  width,
160
163
  height,
161
164
  translate: [
162
165
  dir === "rtl" ? offsetRight * -1 : offsetLeft,
163
- element.parentElement.offsetTop - WRAPPER_PADDING
166
+ element.parentElement.offsetTop - rootPadding.top
164
167
  ]
165
168
  });
166
169
  } else {
@@ -207,7 +210,7 @@ const SegmentedControl = factory.factory((_props, ref) => {
207
210
  item.label
208
211
  )
209
212
  ));
210
- const mergedRef = hooks.useMergedRef(observerRef, ref);
213
+ const mergedRef = hooks.useMergedRef(observerRef, rootRef, ref);
211
214
  if (data.length === 0) {
212
215
  return null;
213
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.js","sources":["../../../src/components/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { useId, useMergedRef, useResizeObserver, useUncontrolled } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n MantineColor,\n MantineSize,\n MantineRadius,\n useMantineTheme,\n getRadius,\n getThemeColor,\n getSize,\n getFontSize,\n useDirection,\n createVarsResolver,\n Factory,\n} from '../../core';\nimport classes from './SegmentedControl.module.css';\n\nconst WRAPPER_PADDING = 4;\n\nexport type SegmentedControlStylesNames = 'root' | 'input' | 'label' | 'control' | 'indicator';\nexport type SegmentedControlCssVariables = {\n root:\n | '--sc-radius'\n | '--sc-color'\n | '--sc-font-size'\n | '--sc-padding'\n | '--sc-shadow'\n | '--sc-transition-duration'\n | '--sc-transition-timing-function';\n};\n\nexport interface SegmentedControlItem {\n value: string;\n label: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface SegmentedControlProps\n extends BoxProps,\n StylesApiProps<SegmentedControlFactory>,\n ElementProps<'div', 'onChange'> {\n /** Data based on which controls are rendered */\n data: (string | SegmentedControlItem)[];\n\n /** Controlled component value */\n value?: string;\n\n /** Uncontrolled component default value */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?: (value: string) => void;\n\n /** Determines whether the component is disabled */\n disabled?: boolean;\n\n /** Name of the radio group, by default random name is generated */\n name?: string;\n\n /** Determines whether the component should take 100% width of its parent, `false` by default */\n fullWidth?: boolean;\n\n /** Key of `theme.colors` or any valid CSS color, changes color of indicator, by default color is based on current color scheme */\n color?: MantineColor;\n\n /** Controls `font-size`, `padding` and `height` properties, `'sm'` by default */\n size?: MantineSize | (string & {});\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem, `theme.defaultRadius` by default */\n radius?: MantineRadius;\n\n /** Indicator `transition-duration` in ms, set `0` to turn off transitions, `200` by default */\n transitionDuration?: number;\n\n /** Indicator `transition-timing-function` property, `ease` by default */\n transitionTimingFunction?: string;\n\n /** Determines in which orientation component id displayed, `'horizontal'` by default */\n orientation?: 'vertical' | 'horizontal';\n\n /** Determines whether the value can be changed */\n readOnly?: boolean;\n}\n\nexport type SegmentedControlFactory = Factory<{\n props: SegmentedControlProps;\n ref: HTMLDivElement;\n stylesNames: SegmentedControlStylesNames;\n vars: SegmentedControlCssVariables;\n}>;\n\nconst defaultProps: Partial<SegmentedControlProps> = {};\n\nconst varsResolver = createVarsResolver<SegmentedControlFactory>(\n (theme, { radius, color, transitionDuration, size, transitionTimingFunction }) => ({\n root: {\n '--sc-radius': radius === undefined ? undefined : getRadius(radius),\n '--sc-color': color ? getThemeColor(color, theme) : undefined,\n '--sc-shadow': color ? undefined : 'var(--mantine-shadow-xs)',\n '--sc-transition-duration':\n transitionDuration === undefined ? undefined : `${transitionDuration}ms`,\n '--sc-transition-timing-function': transitionTimingFunction,\n '--sc-padding': getSize(size, 'sc-padding'),\n '--sc-font-size': getFontSize(size),\n },\n })\n);\n\nexport const SegmentedControl = factory<SegmentedControlFactory>((_props, ref) => {\n const props = useProps('SegmentedControl', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n data,\n value,\n defaultValue,\n onChange,\n size,\n name,\n disabled,\n readOnly,\n fullWidth,\n orientation,\n radius,\n color,\n transitionDuration,\n transitionTimingFunction,\n variant,\n ...others\n } = props;\n\n const getStyles = useStyles<SegmentedControlFactory>({\n name: 'SegmentedControl',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const { dir } = useDirection();\n const theme = useMantineTheme();\n\n const _data = data.map((item) =>\n typeof item === 'string' ? { label: item, value: item } : item\n );\n\n const [_value, handleValueChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: Array.isArray(data)\n ? _data.find((item) => !item.disabled)?.value ?? (data[0] as any)?.value ?? null\n : null,\n onChange,\n });\n\n const [activePosition, setActivePosition] = useState({\n width: 0,\n height: 0,\n translate: [0, 0],\n });\n const uuid = useId(name);\n const refs = useRef<Record<string, HTMLLabelElement>>({});\n const [observerRef, containerRect] = useResizeObserver();\n\n useEffect(() => {\n if (_value in refs.current && observerRef.current) {\n const element = refs.current[_value];\n if (element) {\n const elementRect = element.getBoundingClientRect();\n const scaledValue = element.offsetWidth / elementRect.width;\n const width = element.clientWidth * scaledValue || 0;\n const height = element.clientHeight * scaledValue || 0;\n\n const offsetRight =\n containerRect.width - element.parentElement!.offsetLeft + WRAPPER_PADDING - width;\n const offsetLeft = element.parentElement!.offsetLeft - WRAPPER_PADDING;\n\n setActivePosition({\n width,\n height,\n translate: [\n dir === 'rtl' ? offsetRight * -1 : offsetLeft,\n element.parentElement!.offsetTop - WRAPPER_PADDING,\n ],\n });\n } else {\n setActivePosition({ width: 0, height: 0, translate: [0, 0] });\n }\n }\n }, [_value, containerRect, dir]);\n\n const controls = _data.map((item) => (\n <Box\n {...getStyles('control')}\n mod={{ active: _value === item.value, orientation }}\n key={item.value}\n >\n <input\n {...getStyles('input')}\n disabled={disabled || item.disabled}\n type=\"radio\"\n name={uuid}\n value={item.value}\n id={`${uuid}-${item.value}`}\n checked={_value === item.value}\n onChange={() => !readOnly && handleValueChange(item.value)}\n data-focus-ring={theme.focusRing}\n />\n\n <Box\n component=\"label\"\n {...getStyles('label')}\n mod={{\n active: _value === item.value && !(disabled || item.disabled),\n disabled: disabled || item.disabled,\n }}\n htmlFor={`${uuid}-${item.value}`}\n ref={(node) => {\n refs.current[item.value] = node!;\n }}\n __vars={{\n '--sc-label-color': color !== undefined ? 'var(--mantine-color-white)' : undefined,\n }}\n >\n {item.label}\n </Box>\n </Box>\n ));\n\n const mergedRef = useMergedRef(observerRef, ref);\n\n if (data.length === 0) {\n return null;\n }\n\n return (\n <Box\n {...getStyles('root')}\n variant={variant}\n size={size}\n ref={mergedRef}\n mod={{ 'full-width': fullWidth, orientation }}\n {...others}\n role=\"radiogroup\"\n >\n {typeof _value === 'string' && (\n <Box\n component=\"span\"\n {...getStyles('indicator')}\n __vars={{\n '--sc-indicator-width': `${activePosition.width}px`,\n '--sc-indicator-height': `${activePosition.height}px`,\n '--sc-indicator-transform': `translate(${activePosition.translate[0]}px, ${activePosition.translate[1]}px)`,\n }}\n />\n )}\n\n {controls}\n </Box>\n );\n});\n\nSegmentedControl.classes = classes;\nSegmentedControl.displayName = '@mantine/core/SegmentedControl';\n"],"names":["createVarsResolver","getRadius","getThemeColor","getSize","getFontSize","factory","useProps","useStyles","classes","useDirection","useMantineTheme","useUncontrolled","useState","useId","useRef","useResizeObserver","useEffect","React","Box","useMergedRef"],"mappings":"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"}
1
+ {"version":3,"file":"SegmentedControl.js","sources":["../../../src/components/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { useId, useMergedRef, useResizeObserver, useUncontrolled } from '@mantine/hooks';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n useStyles,\n MantineColor,\n MantineSize,\n MantineRadius,\n useMantineTheme,\n getRadius,\n getThemeColor,\n getSize,\n getFontSize,\n useDirection,\n createVarsResolver,\n Factory,\n} from '../../core';\nimport { getRootPadding } from './get-root-padding';\nimport classes from './SegmentedControl.module.css';\n\nconst WRAPPER_PADDING = 4;\n\nexport type SegmentedControlStylesNames = 'root' | 'input' | 'label' | 'control' | 'indicator';\nexport type SegmentedControlCssVariables = {\n root:\n | '--sc-radius'\n | '--sc-color'\n | '--sc-font-size'\n | '--sc-padding'\n | '--sc-shadow'\n | '--sc-transition-duration'\n | '--sc-transition-timing-function';\n};\n\nexport interface SegmentedControlItem {\n value: string;\n label: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface SegmentedControlProps\n extends BoxProps,\n StylesApiProps<SegmentedControlFactory>,\n ElementProps<'div', 'onChange'> {\n /** Data based on which controls are rendered */\n data: (string | SegmentedControlItem)[];\n\n /** Controlled component value */\n value?: string;\n\n /** Uncontrolled component default value */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?: (value: string) => void;\n\n /** Determines whether the component is disabled */\n disabled?: boolean;\n\n /** Name of the radio group, by default random name is generated */\n name?: string;\n\n /** Determines whether the component should take 100% width of its parent, `false` by default */\n fullWidth?: boolean;\n\n /** Key of `theme.colors` or any valid CSS color, changes color of indicator, by default color is based on current color scheme */\n color?: MantineColor;\n\n /** Controls `font-size`, `padding` and `height` properties, `'sm'` by default */\n size?: MantineSize | (string & {});\n\n /** Key of `theme.radius` or any valid CSS value to set `border-radius`, numbers are converted to rem, `theme.defaultRadius` by default */\n radius?: MantineRadius;\n\n /** Indicator `transition-duration` in ms, set `0` to turn off transitions, `200` by default */\n transitionDuration?: number;\n\n /** Indicator `transition-timing-function` property, `ease` by default */\n transitionTimingFunction?: string;\n\n /** Determines in which orientation component id displayed, `'horizontal'` by default */\n orientation?: 'vertical' | 'horizontal';\n\n /** Determines whether the value can be changed */\n readOnly?: boolean;\n}\n\nexport type SegmentedControlFactory = Factory<{\n props: SegmentedControlProps;\n ref: HTMLDivElement;\n stylesNames: SegmentedControlStylesNames;\n vars: SegmentedControlCssVariables;\n}>;\n\nconst defaultProps: Partial<SegmentedControlProps> = {};\n\nconst varsResolver = createVarsResolver<SegmentedControlFactory>(\n (theme, { radius, color, transitionDuration, size, transitionTimingFunction }) => ({\n root: {\n '--sc-radius': radius === undefined ? undefined : getRadius(radius),\n '--sc-color': color ? getThemeColor(color, theme) : undefined,\n '--sc-shadow': color ? undefined : 'var(--mantine-shadow-xs)',\n '--sc-transition-duration':\n transitionDuration === undefined ? undefined : `${transitionDuration}ms`,\n '--sc-transition-timing-function': transitionTimingFunction,\n '--sc-padding': getSize(size, 'sc-padding'),\n '--sc-font-size': getFontSize(size),\n },\n })\n);\n\nexport const SegmentedControl = factory<SegmentedControlFactory>((_props, ref) => {\n const props = useProps('SegmentedControl', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n data,\n value,\n defaultValue,\n onChange,\n size,\n name,\n disabled,\n readOnly,\n fullWidth,\n orientation,\n radius,\n color,\n transitionDuration,\n transitionTimingFunction,\n variant,\n ...others\n } = props;\n\n const getStyles = useStyles<SegmentedControlFactory>({\n name: 'SegmentedControl',\n props,\n classes,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n varsResolver,\n });\n\n const { dir } = useDirection();\n const theme = useMantineTheme();\n\n const _data = data.map((item) =>\n typeof item === 'string' ? { label: item, value: item } : item\n );\n\n const [_value, handleValueChange] = useUncontrolled({\n value,\n defaultValue,\n finalValue: Array.isArray(data)\n ? _data.find((item) => !item.disabled)?.value ?? (data[0] as any)?.value ?? null\n : null,\n onChange,\n });\n\n const [activePosition, setActivePosition] = useState({\n width: 0,\n height: 0,\n translate: [0, 0],\n });\n const uuid = useId(name);\n const refs = useRef<Record<string, HTMLLabelElement>>({});\n const rootRef = useRef<HTMLDivElement>(null);\n const [observerRef, containerRect] = useResizeObserver();\n\n useEffect(() => {\n if (_value in refs.current && observerRef.current) {\n const element = refs.current[_value];\n if (element) {\n const rootPadding = getRootPadding(rootRef.current!, WRAPPER_PADDING);\n const elementRect = element.getBoundingClientRect();\n const scaledValue = element.offsetWidth / elementRect.width;\n const width = element.clientWidth * scaledValue || 0;\n const height = element.clientHeight * scaledValue || 0;\n\n const offsetRight =\n containerRect.width -\n element.parentElement!.offsetLeft +\n (dir === 'rtl' ? rootPadding.left : rootPadding.right) -\n width;\n const offsetLeft =\n element.parentElement!.offsetLeft -\n (dir === 'rtl' ? rootPadding.right : rootPadding.left);\n\n setActivePosition({\n width,\n height,\n translate: [\n dir === 'rtl' ? offsetRight * -1 : offsetLeft,\n element.parentElement!.offsetTop - rootPadding.top,\n ],\n });\n } else {\n setActivePosition({ width: 0, height: 0, translate: [0, 0] });\n }\n }\n }, [_value, containerRect, dir]);\n\n const controls = _data.map((item) => (\n <Box\n {...getStyles('control')}\n mod={{ active: _value === item.value, orientation }}\n key={item.value}\n >\n <input\n {...getStyles('input')}\n disabled={disabled || item.disabled}\n type=\"radio\"\n name={uuid}\n value={item.value}\n id={`${uuid}-${item.value}`}\n checked={_value === item.value}\n onChange={() => !readOnly && handleValueChange(item.value)}\n data-focus-ring={theme.focusRing}\n />\n\n <Box\n component=\"label\"\n {...getStyles('label')}\n mod={{\n active: _value === item.value && !(disabled || item.disabled),\n disabled: disabled || item.disabled,\n }}\n htmlFor={`${uuid}-${item.value}`}\n ref={(node) => {\n refs.current[item.value] = node!;\n }}\n __vars={{\n '--sc-label-color': color !== undefined ? 'var(--mantine-color-white)' : undefined,\n }}\n >\n {item.label}\n </Box>\n </Box>\n ));\n\n const mergedRef = useMergedRef(observerRef, rootRef, ref);\n\n if (data.length === 0) {\n return null;\n }\n\n return (\n <Box\n {...getStyles('root')}\n variant={variant}\n size={size}\n ref={mergedRef}\n mod={{ 'full-width': fullWidth, orientation }}\n {...others}\n role=\"radiogroup\"\n >\n {typeof _value === 'string' && (\n <Box\n component=\"span\"\n {...getStyles('indicator')}\n __vars={{\n '--sc-indicator-width': `${activePosition.width}px`,\n '--sc-indicator-height': `${activePosition.height}px`,\n '--sc-indicator-transform': `translate(${activePosition.translate[0]}px, ${activePosition.translate[1]}px)`,\n }}\n />\n )}\n\n {controls}\n </Box>\n );\n});\n\nSegmentedControl.classes = classes;\nSegmentedControl.displayName = '@mantine/core/SegmentedControl';\n"],"names":["createVarsResolver","getRadius","getThemeColor","getSize","getFontSize","factory","useProps","useStyles","classes","useDirection","useMantineTheme","useUncontrolled","useState","useId","useRef","useResizeObserver","useEffect","getRootPadding","React","Box","useMergedRef"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ function getPaddingValue(value, defaultPaddingValue) {
7
+ const val = parseFloat(value.replace("px", ""));
8
+ return Number.isNaN(val) ? defaultPaddingValue : val;
9
+ }
10
+ function getRootPadding(root, defaultPaddingValue) {
11
+ const computedStyle = window.getComputedStyle(root);
12
+ return {
13
+ top: getPaddingValue(computedStyle.getPropertyValue("padding-top"), defaultPaddingValue),
14
+ right: getPaddingValue(computedStyle.getPropertyValue("padding-right"), defaultPaddingValue),
15
+ bottom: getPaddingValue(computedStyle.getPropertyValue("padding-bottom"), defaultPaddingValue),
16
+ left: getPaddingValue(computedStyle.getPropertyValue("padding-left"), defaultPaddingValue)
17
+ };
18
+ }
19
+
20
+ exports.getRootPadding = getRootPadding;
21
+ //# sourceMappingURL=get-root-padding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-root-padding.js","sources":["../../../src/components/SegmentedControl/get-root-padding.ts"],"sourcesContent":["function getPaddingValue(value: string, defaultPaddingValue: number) {\n const val = parseFloat(value.replace('px', ''));\n return Number.isNaN(val) ? defaultPaddingValue : val;\n}\n\nexport function getRootPadding(root: HTMLDivElement, defaultPaddingValue: number) {\n const computedStyle = window.getComputedStyle(root);\n return {\n top: getPaddingValue(computedStyle.getPropertyValue('padding-top'), defaultPaddingValue),\n right: getPaddingValue(computedStyle.getPropertyValue('padding-right'), defaultPaddingValue),\n bottom: getPaddingValue(computedStyle.getPropertyValue('padding-bottom'), defaultPaddingValue),\n left: getPaddingValue(computedStyle.getPropertyValue('padding-left'), defaultPaddingValue),\n };\n}\n"],"names":[],"mappings":";;;;;AAAA,SAAS,eAAe,CAAC,KAAK,EAAE,mBAAmB,EAAE;AACrD,EAAE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAClD,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,mBAAmB,GAAG,GAAG,CAAC;AACvD,CAAC;AACM,SAAS,cAAc,CAAC,IAAI,EAAE,mBAAmB,EAAE;AAC1D,EAAE,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACtD,EAAE,OAAO;AACT,IAAI,GAAG,EAAE,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC;AAC5F,IAAI,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,mBAAmB,CAAC;AAChG,IAAI,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;AAClG,IAAI,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;AAC9F,GAAG,CAAC;AACJ;;"}
@@ -212,7 +212,7 @@ const Select = factory.factory((_props, ref) => {
212
212
  onOptionSubmit == null ? void 0 : onOptionSubmit(val);
213
213
  const nextValue = allowDeselect ? optionsLockup[val].value === _value ? null : optionsLockup[val].value : optionsLockup[val].value;
214
214
  setValue(nextValue);
215
- setSearch(nextValue ? optionsLockup[val].label : "");
215
+ setSearch(typeof nextValue === "string" ? optionsLockup[val].label : "");
216
216
  combobox.closeDropdown();
217
217
  },
218
218
  size
@@ -242,7 +242,7 @@ const Select = factory.factory((_props, ref) => {
242
242
  onBlur: (event) => {
243
243
  var _a2;
244
244
  searchable && combobox.closeDropdown();
245
- setSearch(_value ? ((_a2 = optionsLockup[_value]) == null ? void 0 : _a2.label) || "" : "");
245
+ setSearch(_value != null ? ((_a2 = optionsLockup[_value]) == null ? void 0 : _a2.label) || "" : "");
246
246
  onBlur == null ? void 0 : onBlur(event);
247
247
  },
248
248
  onClick: (event) => {