@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.
- package/cjs/components/HoverCard/HoverCard.js.map +1 -1
- package/cjs/components/NumberInput/NumberInput.js +8 -5
- package/cjs/components/NumberInput/NumberInput.js.map +1 -1
- package/cjs/components/Radio/Radio.js +1 -0
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RingProgress/Curve/Curve.js.map +1 -1
- package/cjs/components/RingProgress/Curve/get-curve-props.js +1 -1
- package/cjs/components/RingProgress/Curve/get-curve-props.js.map +1 -1
- package/cjs/components/RingProgress/RingProgress.js +6 -2
- package/cjs/components/RingProgress/RingProgress.js.map +1 -1
- package/cjs/components/SegmentedControl/SegmentedControl.js +7 -4
- package/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/cjs/components/SegmentedControl/get-root-padding.js +21 -0
- package/cjs/components/SegmentedControl/get-root-padding.js.map +1 -0
- package/cjs/components/Select/Select.js +2 -2
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/index.css +1 -1
- package/esm/components/HoverCard/HoverCard.mjs.map +1 -1
- package/esm/components/NumberInput/NumberInput.mjs +8 -5
- package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
- package/esm/components/Radio/Radio.mjs +1 -0
- package/esm/components/Radio/Radio.mjs.map +1 -1
- package/esm/components/RingProgress/Curve/Curve.mjs.map +1 -1
- package/esm/components/RingProgress/Curve/get-curve-props.mjs +1 -1
- package/esm/components/RingProgress/Curve/get-curve-props.mjs.map +1 -1
- package/esm/components/RingProgress/RingProgress.mjs +6 -2
- package/esm/components/RingProgress/RingProgress.mjs.map +1 -1
- package/esm/components/SegmentedControl/SegmentedControl.mjs +7 -4
- package/esm/components/SegmentedControl/SegmentedControl.mjs.map +1 -1
- package/esm/components/SegmentedControl/get-root-padding.mjs +17 -0
- package/esm/components/SegmentedControl/get-root-padding.mjs.map +1 -0
- package/esm/components/Select/Select.mjs +2 -2
- package/esm/components/Select/Select.mjs.map +1 -1
- package/esm/index.css +1 -1
- package/esm/index.layer.css +1 -1
- package/esm/styles/Blockquote.css +1 -1
- package/esm/styles/Blockquote.layer.css +1 -1
- package/esm/styles/Chip.css +1 -1
- package/esm/styles/Chip.layer.css +1 -1
- package/esm/styles/Table.css +1 -1
- package/esm/styles/Table.layer.css +1 -1
- package/lib/components/HoverCard/HoverCard.d.ts +1 -1
- package/lib/components/Radio/Radio.d.ts +1 -1
- package/lib/components/SegmentedControl/get-root-padding.d.ts +6 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HoverCard.mjs","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":[],"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;AASF,MAAM,YAAY,GAAG;AACrB,EAAE,SAAS,EAAE,CAAC;AACd,EAAE,UAAU,EAAE,GAAG;AACjB,EAAE,eAAe,EAAE,KAAK;AACxB,CAAC,CAAC;AACK,SAAS,SAAS,CAAC,KAAK,EAAE;AACjC,EAAE,MAAM,EAAE,GAAG,QAAQ;AACrB,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,KAAK;AACT,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACzL,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACxF,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;AAClG,EAAE,uBAAuB,KAAK,CAAC,aAAa,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjQ,CAAC;AACD,SAAS,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAClD,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;AACnC,SAAS,CAAC,QAAQ,GAAG,iBAAiB,CAAC;AACvC,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK;;"}
|
|
1
|
+
{"version":3,"file":"HoverCard.mjs","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":[],"mappings":"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"}
|
|
@@ -46,7 +46,7 @@ var __objRest = (source, exclude) => {
|
|
|
46
46
|
return target;
|
|
47
47
|
};
|
|
48
48
|
function isValidNumber(value) {
|
|
49
|
-
return typeof value === "number" && !Number.isNaN(value);
|
|
49
|
+
return (typeof value === "number" || !Number.isNaN(Number(value))) && !Number.isNaN(value);
|
|
50
50
|
}
|
|
51
51
|
function getDecrementedValue({ value, min, step = 1, allowNegative }) {
|
|
52
52
|
const nextValue = value - step;
|
|
@@ -163,9 +163,9 @@ const NumberInput = factory((_props, ref) => {
|
|
|
163
163
|
onChange
|
|
164
164
|
});
|
|
165
165
|
const handleValueChange = (payload, event) => {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
166
|
+
if (event.source === "event") {
|
|
167
|
+
setValue(isValidNumber(payload.floatValue) ? payload.floatValue : payload.value);
|
|
168
|
+
}
|
|
169
169
|
onValueChange == null ? void 0 : onValueChange(payload, event);
|
|
170
170
|
};
|
|
171
171
|
const increment = () => {
|
|
@@ -247,7 +247,10 @@ const NumberInput = factory((_props, ref) => {
|
|
|
247
247
|
onBlur: (event) => {
|
|
248
248
|
onBlur == null ? void 0 : onBlur(event);
|
|
249
249
|
if (clampBehavior === "blur" && typeof _value === "number") {
|
|
250
|
-
|
|
250
|
+
const clampedValue = clamp(_value, min, max);
|
|
251
|
+
if (clampedValue !== _value) {
|
|
252
|
+
setValue(clamp(_value, min, max));
|
|
253
|
+
}
|
|
251
254
|
}
|
|
252
255
|
},
|
|
253
256
|
isAllowed: (val) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberInput.mjs","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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberInput.mjs","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":[],"mappings":"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"}
|
|
@@ -53,6 +53,7 @@ const varsResolver = createVarsResolver(
|
|
|
53
53
|
(theme, { size, radius, color, iconColor }) => ({
|
|
54
54
|
root: {
|
|
55
55
|
"--radio-size": getSize(size, "radio-size"),
|
|
56
|
+
"--radio-icon-size": getSize(size, "radio-icon-size"),
|
|
56
57
|
"--radio-radius": radius === void 0 ? void 0 : getRadius(radius),
|
|
57
58
|
"--radio-color": color ? getThemeColor(color, theme) : void 0,
|
|
58
59
|
"--radio-icon-color": iconColor ? getThemeColor(iconColor, theme) : void 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.mjs","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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Radio.mjs","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":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Curve.mjs","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
|
|
1
|
+
{"version":3,"file":"Curve.mjs","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":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ function getCurveProps({ size, thickness, sum, value, root, offset }) {
|
|
|
4
4
|
const deg = Math.PI * radius * 2 / 100;
|
|
5
5
|
const strokeDasharray = root || value === void 0 ? `${(100 - sum) * deg}, ${sum * deg}` : `${value * deg}, ${(100 - value) * deg}`;
|
|
6
6
|
return {
|
|
7
|
-
strokeWidth: thickness,
|
|
7
|
+
strokeWidth: Number.isNaN(thickness) ? 12 : thickness,
|
|
8
8
|
cx: size / 2 || 0,
|
|
9
9
|
cy: size / 2 || 0,
|
|
10
10
|
r: radius || 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-curve-props.mjs","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;
|
|
1
|
+
{"version":3,"file":"get-curve-props.mjs","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;;"}
|
|
@@ -41,6 +41,9 @@ var __objRest = (source, exclude) => {
|
|
|
41
41
|
}
|
|
42
42
|
return target;
|
|
43
43
|
};
|
|
44
|
+
function getClampedThickness(thickness, size) {
|
|
45
|
+
return Math.min(thickness || 12, (size || 120) / 4);
|
|
46
|
+
}
|
|
44
47
|
const defaultProps = {
|
|
45
48
|
size: 120,
|
|
46
49
|
thickness: 12
|
|
@@ -92,9 +95,10 @@ const RingProgress = factory((_props, ref) => {
|
|
|
92
95
|
vars,
|
|
93
96
|
varsResolver
|
|
94
97
|
});
|
|
98
|
+
const clampedThickness = getClampedThickness(thickness, size);
|
|
95
99
|
const curves = getCurves({
|
|
96
100
|
size,
|
|
97
|
-
thickness,
|
|
101
|
+
thickness: clampedThickness,
|
|
98
102
|
sections,
|
|
99
103
|
renderRoundedLineCaps: roundCaps,
|
|
100
104
|
rootColor
|
|
@@ -103,7 +107,7 @@ const RingProgress = factory((_props, ref) => {
|
|
|
103
107
|
__spreadProps(__spreadValues({}, data), {
|
|
104
108
|
key: index,
|
|
105
109
|
size,
|
|
106
|
-
thickness,
|
|
110
|
+
thickness: clampedThickness,
|
|
107
111
|
sum,
|
|
108
112
|
offset,
|
|
109
113
|
color: data == null ? void 0 : data.color,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RingProgress.mjs","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:
|
|
1
|
+
{"version":3,"file":"RingProgress.mjs","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":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import React, { useState, useRef, useEffect } from 'react';
|
|
3
3
|
import { useUncontrolled, useId, useResizeObserver, useMergedRef } from '@mantine/hooks';
|
|
4
|
+
import { getRootPadding } from './get-root-padding.mjs';
|
|
4
5
|
import classes from './SegmentedControl.module.mjs';
|
|
5
6
|
import { factory } from '../../core/factory/factory.mjs';
|
|
6
7
|
import { useProps } from '../../core/MantineProvider/use-props/use-props.mjs';
|
|
@@ -136,23 +137,25 @@ const SegmentedControl = factory((_props, ref) => {
|
|
|
136
137
|
});
|
|
137
138
|
const uuid = useId(name);
|
|
138
139
|
const refs = useRef({});
|
|
140
|
+
const rootRef = useRef(null);
|
|
139
141
|
const [observerRef, containerRect] = useResizeObserver();
|
|
140
142
|
useEffect(() => {
|
|
141
143
|
if (_value in refs.current && observerRef.current) {
|
|
142
144
|
const element = refs.current[_value];
|
|
143
145
|
if (element) {
|
|
146
|
+
const rootPadding = getRootPadding(rootRef.current, WRAPPER_PADDING);
|
|
144
147
|
const elementRect = element.getBoundingClientRect();
|
|
145
148
|
const scaledValue = element.offsetWidth / elementRect.width;
|
|
146
149
|
const width = element.clientWidth * scaledValue || 0;
|
|
147
150
|
const height = element.clientHeight * scaledValue || 0;
|
|
148
|
-
const offsetRight = containerRect.width - element.parentElement.offsetLeft +
|
|
149
|
-
const offsetLeft = element.parentElement.offsetLeft -
|
|
151
|
+
const offsetRight = containerRect.width - element.parentElement.offsetLeft + (dir === "rtl" ? rootPadding.left : rootPadding.right) - width;
|
|
152
|
+
const offsetLeft = element.parentElement.offsetLeft - (dir === "rtl" ? rootPadding.right : rootPadding.left);
|
|
150
153
|
setActivePosition({
|
|
151
154
|
width,
|
|
152
155
|
height,
|
|
153
156
|
translate: [
|
|
154
157
|
dir === "rtl" ? offsetRight * -1 : offsetLeft,
|
|
155
|
-
element.parentElement.offsetTop -
|
|
158
|
+
element.parentElement.offsetTop - rootPadding.top
|
|
156
159
|
]
|
|
157
160
|
});
|
|
158
161
|
} else {
|
|
@@ -199,7 +202,7 @@ const SegmentedControl = factory((_props, ref) => {
|
|
|
199
202
|
item.label
|
|
200
203
|
)
|
|
201
204
|
));
|
|
202
|
-
const mergedRef = useMergedRef(observerRef, ref);
|
|
205
|
+
const mergedRef = useMergedRef(observerRef, rootRef, ref);
|
|
203
206
|
if (data.length === 0) {
|
|
204
207
|
return null;
|
|
205
208
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.mjs","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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SegmentedControl.mjs","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":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
function getPaddingValue(value, defaultPaddingValue) {
|
|
3
|
+
const val = parseFloat(value.replace("px", ""));
|
|
4
|
+
return Number.isNaN(val) ? defaultPaddingValue : val;
|
|
5
|
+
}
|
|
6
|
+
function getRootPadding(root, defaultPaddingValue) {
|
|
7
|
+
const computedStyle = window.getComputedStyle(root);
|
|
8
|
+
return {
|
|
9
|
+
top: getPaddingValue(computedStyle.getPropertyValue("padding-top"), defaultPaddingValue),
|
|
10
|
+
right: getPaddingValue(computedStyle.getPropertyValue("padding-right"), defaultPaddingValue),
|
|
11
|
+
bottom: getPaddingValue(computedStyle.getPropertyValue("padding-bottom"), defaultPaddingValue),
|
|
12
|
+
left: getPaddingValue(computedStyle.getPropertyValue("padding-left"), defaultPaddingValue)
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { getRootPadding };
|
|
17
|
+
//# sourceMappingURL=get-root-padding.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-root-padding.mjs","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;;"}
|
|
@@ -204,7 +204,7 @@ const Select = factory((_props, ref) => {
|
|
|
204
204
|
onOptionSubmit == null ? void 0 : onOptionSubmit(val);
|
|
205
205
|
const nextValue = allowDeselect ? optionsLockup[val].value === _value ? null : optionsLockup[val].value : optionsLockup[val].value;
|
|
206
206
|
setValue(nextValue);
|
|
207
|
-
setSearch(nextValue ? optionsLockup[val].label : "");
|
|
207
|
+
setSearch(typeof nextValue === "string" ? optionsLockup[val].label : "");
|
|
208
208
|
combobox.closeDropdown();
|
|
209
209
|
},
|
|
210
210
|
size
|
|
@@ -234,7 +234,7 @@ const Select = factory((_props, ref) => {
|
|
|
234
234
|
onBlur: (event) => {
|
|
235
235
|
var _a2;
|
|
236
236
|
searchable && combobox.closeDropdown();
|
|
237
|
-
setSearch(_value ? ((_a2 = optionsLockup[_value]) == null ? void 0 : _a2.label) || "" : "");
|
|
237
|
+
setSearch(_value != null ? ((_a2 = optionsLockup[_value]) == null ? void 0 : _a2.label) || "" : "");
|
|
238
238
|
onBlur == null ? void 0 : onBlur(event);
|
|
239
239
|
},
|
|
240
240
|
onClick: (event) => {
|