@mantine/core 6.0.0 → 6.0.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/Affix/Affix.js +3 -3
- package/cjs/Affix/Affix.js.map +1 -1
- package/cjs/Alert/Alert.js +5 -5
- package/cjs/Alert/Alert.js.map +1 -1
- package/cjs/Alert/Alert.styles.js +3 -5
- package/cjs/Alert/Alert.styles.js.map +1 -1
- package/cjs/Anchor/Anchor.js +5 -3
- package/cjs/Anchor/Anchor.js.map +1 -1
- package/cjs/Anchor/Anchor.styles.js +9 -3
- package/cjs/Anchor/Anchor.styles.js.map +1 -1
- package/cjs/AppShell/AppShell.styles.js +4 -4
- package/cjs/AppShell/AppShell.styles.js.map +1 -1
- package/cjs/Button/ButtonGroup/ButtonGroup.styles.js +2 -2
- package/cjs/Button/ButtonGroup/ButtonGroup.styles.js.map +1 -1
- package/cjs/ColorInput/ColorInput.js +3 -0
- package/cjs/ColorInput/ColorInput.js.map +1 -1
- package/cjs/Drawer/DrawerRoot/DrawerRoot.js +1 -1
- package/cjs/Drawer/DrawerRoot/DrawerRoot.js.map +1 -1
- package/cjs/Floating/FloatingArrow/FloatingArrow.js +0 -3
- package/cjs/Floating/FloatingArrow/FloatingArrow.js.map +1 -1
- package/cjs/Floating/FloatingArrow/get-arrow-position-styles.js +9 -10
- package/cjs/Floating/FloatingArrow/get-arrow-position-styles.js.map +1 -1
- package/cjs/Floating/use-floating-auto-update.js +13 -2
- package/cjs/Floating/use-floating-auto-update.js.map +1 -1
- package/cjs/HoverCard/HoverCard.errors.js +1 -1
- package/cjs/HoverCard/HoverCard.errors.js.map +1 -1
- package/cjs/InlineInput/InlineInput.js +4 -3
- package/cjs/InlineInput/InlineInput.js.map +1 -1
- package/cjs/JsonInput/JsonInput.js +2 -2
- package/cjs/JsonInput/JsonInput.js.map +1 -1
- package/cjs/Menu/Menu.errors.js +1 -1
- package/cjs/Menu/Menu.errors.js.map +1 -1
- package/cjs/ModalBase/ModalBase.js +4 -2
- package/cjs/ModalBase/ModalBase.js.map +1 -1
- package/cjs/PinInput/PinInput.js +6 -6
- package/cjs/PinInput/PinInput.js.map +1 -1
- package/cjs/Popover/Popover.context.js.map +1 -1
- package/cjs/Popover/Popover.errors.js +1 -1
- package/cjs/Popover/Popover.errors.js.map +1 -1
- package/cjs/Popover/Popover.js +3 -0
- package/cjs/Popover/Popover.js.map +1 -1
- package/cjs/Popover/PopoverDropdown/PopoverDropdown.js +2 -4
- package/cjs/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
- package/cjs/Popover/use-popover.js +9 -0
- package/cjs/Popover/use-popover.js.map +1 -1
- package/cjs/Portal/Portal.js +36 -3
- package/cjs/Portal/Portal.js.map +1 -1
- package/cjs/ScrollArea/ScrollArea.js +6 -3
- package/cjs/ScrollArea/ScrollArea.js.map +1 -1
- package/cjs/SegmentedControl/SegmentedControl.styles.js +1 -2
- package/cjs/SegmentedControl/SegmentedControl.styles.js.map +1 -1
- package/cjs/Select/Select.js +3 -0
- package/cjs/Select/Select.js.map +1 -1
- package/cjs/Select/SelectPopover/SelectPopover.js +3 -0
- package/cjs/Select/SelectPopover/SelectPopover.js.map +1 -1
- package/cjs/Select/SelectScrollArea/SelectScrollArea.js +1 -0
- package/cjs/Select/SelectScrollArea/SelectScrollArea.js.map +1 -1
- package/cjs/Slider/RangeSlider/RangeSlider.js +4 -2
- package/cjs/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/cjs/Slider/Slider/Slider.js +2 -1
- package/cjs/Slider/Slider/Slider.js.map +1 -1
- package/cjs/Slider/Thumb/Thumb.js +5 -1
- package/cjs/Slider/Thumb/Thumb.js.map +1 -1
- package/cjs/Switch/Switch.js +2 -2
- package/cjs/Switch/Switch.js.map +1 -1
- package/cjs/Switch/Switch.styles.js +3 -0
- package/cjs/Switch/Switch.styles.js.map +1 -1
- package/cjs/Title/Title.js +1 -0
- package/cjs/Title/Title.js.map +1 -1
- package/cjs/Tooltip/Tooltip.js +0 -1
- package/cjs/Tooltip/Tooltip.js.map +1 -1
- package/cjs/Tooltip/use-tooltip.js +1 -0
- package/cjs/Tooltip/use-tooltip.js.map +1 -1
- package/cjs/Transition/use-transition.js +5 -4
- package/cjs/Transition/use-transition.js.map +1 -1
- package/esm/Affix/Affix.js +3 -3
- package/esm/Affix/Affix.js.map +1 -1
- package/esm/Alert/Alert.js +5 -5
- package/esm/Alert/Alert.js.map +1 -1
- package/esm/Alert/Alert.styles.js +3 -5
- package/esm/Alert/Alert.styles.js.map +1 -1
- package/esm/Anchor/Anchor.js +5 -3
- package/esm/Anchor/Anchor.js.map +1 -1
- package/esm/Anchor/Anchor.styles.js +9 -3
- package/esm/Anchor/Anchor.styles.js.map +1 -1
- package/esm/AppShell/AppShell.styles.js +4 -4
- package/esm/AppShell/AppShell.styles.js.map +1 -1
- package/esm/Button/ButtonGroup/ButtonGroup.styles.js +2 -2
- package/esm/Button/ButtonGroup/ButtonGroup.styles.js.map +1 -1
- package/esm/ColorInput/ColorInput.js +3 -0
- package/esm/ColorInput/ColorInput.js.map +1 -1
- package/esm/Drawer/DrawerRoot/DrawerRoot.js +1 -1
- package/esm/Drawer/DrawerRoot/DrawerRoot.js.map +1 -1
- package/esm/Floating/FloatingArrow/FloatingArrow.js +0 -3
- package/esm/Floating/FloatingArrow/FloatingArrow.js.map +1 -1
- package/esm/Floating/FloatingArrow/get-arrow-position-styles.js +9 -10
- package/esm/Floating/FloatingArrow/get-arrow-position-styles.js.map +1 -1
- package/esm/Floating/use-floating-auto-update.js +13 -2
- package/esm/Floating/use-floating-auto-update.js.map +1 -1
- package/esm/HoverCard/HoverCard.errors.js +1 -1
- package/esm/HoverCard/HoverCard.errors.js.map +1 -1
- package/esm/InlineInput/InlineInput.js +5 -4
- package/esm/InlineInput/InlineInput.js.map +1 -1
- package/esm/JsonInput/JsonInput.js +2 -2
- package/esm/JsonInput/JsonInput.js.map +1 -1
- package/esm/Menu/Menu.errors.js +1 -1
- package/esm/Menu/Menu.errors.js.map +1 -1
- package/esm/ModalBase/ModalBase.js +4 -2
- package/esm/ModalBase/ModalBase.js.map +1 -1
- package/esm/PinInput/PinInput.js +7 -7
- package/esm/PinInput/PinInput.js.map +1 -1
- package/esm/Popover/Popover.context.js.map +1 -1
- package/esm/Popover/Popover.errors.js +1 -1
- package/esm/Popover/Popover.errors.js.map +1 -1
- package/esm/Popover/Popover.js +3 -0
- package/esm/Popover/Popover.js.map +1 -1
- package/esm/Popover/PopoverDropdown/PopoverDropdown.js +2 -4
- package/esm/Popover/PopoverDropdown/PopoverDropdown.js.map +1 -1
- package/esm/Popover/use-popover.js +9 -0
- package/esm/Popover/use-popover.js.map +1 -1
- package/esm/Portal/Portal.js +36 -3
- package/esm/Portal/Portal.js.map +1 -1
- package/esm/ScrollArea/ScrollArea.js +6 -3
- package/esm/ScrollArea/ScrollArea.js.map +1 -1
- package/esm/SegmentedControl/SegmentedControl.styles.js +1 -2
- package/esm/SegmentedControl/SegmentedControl.styles.js.map +1 -1
- package/esm/Select/Select.js +3 -0
- package/esm/Select/Select.js.map +1 -1
- package/esm/Select/SelectPopover/SelectPopover.js +3 -0
- package/esm/Select/SelectPopover/SelectPopover.js.map +1 -1
- package/esm/Select/SelectScrollArea/SelectScrollArea.js +1 -0
- package/esm/Select/SelectScrollArea/SelectScrollArea.js.map +1 -1
- package/esm/Slider/RangeSlider/RangeSlider.js +4 -2
- package/esm/Slider/RangeSlider/RangeSlider.js.map +1 -1
- package/esm/Slider/Slider/Slider.js +2 -1
- package/esm/Slider/Slider/Slider.js.map +1 -1
- package/esm/Slider/Thumb/Thumb.js +5 -1
- package/esm/Slider/Thumb/Thumb.js.map +1 -1
- package/esm/Switch/Switch.js +2 -2
- package/esm/Switch/Switch.js.map +1 -1
- package/esm/Switch/Switch.styles.js +3 -0
- package/esm/Switch/Switch.styles.js.map +1 -1
- package/esm/Title/Title.js +1 -0
- package/esm/Title/Title.js.map +1 -1
- package/esm/Tooltip/Tooltip.js +0 -1
- package/esm/Tooltip/Tooltip.js.map +1 -1
- package/esm/Tooltip/use-tooltip.js +1 -0
- package/esm/Tooltip/use-tooltip.js.map +1 -1
- package/esm/Transition/use-transition.js +5 -4
- package/esm/Transition/use-transition.js.map +1 -1
- package/lib/Affix/Affix.d.ts +3 -0
- package/lib/Affix/Affix.d.ts.map +1 -1
- package/lib/Alert/Alert.styles.d.ts.map +1 -1
- package/lib/Anchor/Anchor.d.ts.map +1 -1
- package/lib/Anchor/Anchor.styles.d.ts +3 -2
- package/lib/Anchor/Anchor.styles.d.ts.map +1 -1
- package/lib/ColorInput/ColorInput.d.ts +3 -0
- package/lib/ColorInput/ColorInput.d.ts.map +1 -1
- package/lib/Floating/FloatingArrow/FloatingArrow.d.ts +0 -1
- package/lib/Floating/FloatingArrow/FloatingArrow.d.ts.map +1 -1
- package/lib/Floating/FloatingArrow/get-arrow-position-styles.d.ts +1 -2
- package/lib/Floating/FloatingArrow/get-arrow-position-styles.d.ts.map +1 -1
- package/lib/Floating/use-floating-auto-update.d.ts +3 -1
- package/lib/Floating/use-floating-auto-update.d.ts.map +1 -1
- package/lib/InlineInput/InlineInput.d.ts +1 -4
- package/lib/InlineInput/InlineInput.d.ts.map +1 -1
- package/lib/JsonInput/JsonInput.d.ts +5 -5
- package/lib/JsonInput/JsonInput.d.ts.map +1 -1
- package/lib/ModalBase/ModalBase.d.ts +3 -0
- package/lib/ModalBase/ModalBase.d.ts.map +1 -1
- package/lib/PinInput/PinInput.d.ts.map +1 -1
- package/lib/Popover/Popover.context.d.ts +2 -0
- package/lib/Popover/Popover.context.d.ts.map +1 -1
- package/lib/Popover/Popover.d.ts +3 -0
- package/lib/Popover/Popover.d.ts.map +1 -1
- package/lib/Popover/PopoverDropdown/PopoverDropdown.d.ts.map +1 -1
- package/lib/Popover/use-popover.d.ts.map +1 -1
- package/lib/Portal/Portal.d.ts +3 -1
- package/lib/Portal/Portal.d.ts.map +1 -1
- package/lib/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/lib/SegmentedControl/SegmentedControl.styles.d.ts.map +1 -1
- package/lib/Select/Select.d.ts +3 -0
- package/lib/Select/Select.d.ts.map +1 -1
- package/lib/Select/SelectPopover/SelectPopover.d.ts +3 -1
- package/lib/Select/SelectPopover/SelectPopover.d.ts.map +1 -1
- package/lib/Select/SelectScrollArea/SelectScrollArea.d.ts.map +1 -1
- package/lib/Slider/RangeSlider/RangeSlider.d.ts.map +1 -1
- package/lib/Slider/Slider/Slider.d.ts.map +1 -1
- package/lib/Slider/Thumb/Thumb.d.ts +1 -0
- package/lib/Slider/Thumb/Thumb.d.ts.map +1 -1
- package/lib/Switch/Switch.styles.d.ts +1 -0
- package/lib/Switch/Switch.styles.d.ts.map +1 -1
- package/lib/Title/Title.d.ts.map +1 -1
- package/lib/Tooltip/Tooltip.d.ts.map +1 -1
- package/lib/Tooltip/use-tooltip.d.ts.map +1 -1
- package/lib/Transition/use-transition.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-arrow-position-styles.js","sources":["../../../src/Floating/FloatingArrow/get-arrow-position-styles.ts"],"sourcesContent":["import { CSSObject, rem } from '@mantine/styles';\nimport type { FloatingPosition, FloatingSide, FloatingPlacement, ArrowPosition } from '../types';\n\nfunction horizontalSide(\n placement: FloatingPlacement | 'center',\n arrowY: number,\n arrowOffset: number,\n arrowPosition: ArrowPosition\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { top: arrowY };\n }\n\n if (placement === 'end') {\n return { bottom: arrowOffset };\n }\n\n if (placement === 'start') {\n return { top: arrowOffset };\n }\n\n return {};\n}\n\nfunction verticalSide(\n placement: FloatingPlacement | 'center',\n arrowX: number,\n arrowOffset: number,\n arrowPosition: ArrowPosition,\n dir: 'rtl' | 'ltr'\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { left: arrowX };\n }\n\n if (placement === 'end') {\n return { [dir === 'ltr' ? 'right' : 'left']: arrowOffset };\n }\n\n if (placement === 'start') {\n return { [dir === 'ltr' ? 'left' : 'right']: arrowOffset };\n }\n\n return {};\n}\n\nconst radiusByFloatingSide: Record<\n FloatingSide,\n keyof Pick<\n CSSObject,\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n >\n> = {\n bottom: 'borderTopLeftRadius',\n left: 'borderTopRightRadius',\n right: 'borderBottomLeftRadius',\n top: 'borderBottomRightRadius',\n};\n\nexport function getArrowPositionStyles({\n position,\n
|
|
1
|
+
{"version":3,"file":"get-arrow-position-styles.js","sources":["../../../src/Floating/FloatingArrow/get-arrow-position-styles.ts"],"sourcesContent":["import { CSSObject, rem } from '@mantine/styles';\nimport type { FloatingPosition, FloatingSide, FloatingPlacement, ArrowPosition } from '../types';\n\nfunction horizontalSide(\n placement: FloatingPlacement | 'center',\n arrowY: number,\n arrowOffset: number,\n arrowPosition: ArrowPosition\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { top: arrowY };\n }\n\n if (placement === 'end') {\n return { bottom: arrowOffset };\n }\n\n if (placement === 'start') {\n return { top: arrowOffset };\n }\n\n return {};\n}\n\nfunction verticalSide(\n placement: FloatingPlacement | 'center',\n arrowX: number,\n arrowOffset: number,\n arrowPosition: ArrowPosition,\n dir: 'rtl' | 'ltr'\n) {\n if (placement === 'center' || arrowPosition === 'center') {\n return { left: arrowX };\n }\n\n if (placement === 'end') {\n return { [dir === 'ltr' ? 'right' : 'left']: arrowOffset };\n }\n\n if (placement === 'start') {\n return { [dir === 'ltr' ? 'left' : 'right']: arrowOffset };\n }\n\n return {};\n}\n\nconst radiusByFloatingSide: Record<\n FloatingSide,\n keyof Pick<\n CSSObject,\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n >\n> = {\n bottom: 'borderTopLeftRadius',\n left: 'borderTopRightRadius',\n right: 'borderBottomLeftRadius',\n top: 'borderBottomRightRadius',\n};\n\nexport function getArrowPositionStyles({\n position,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n arrowX,\n arrowY,\n dir,\n}: {\n position: FloatingPosition;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n arrowX: number;\n arrowY: number;\n dir: 'rtl' | 'ltr';\n}) {\n const [side, placement = 'center'] = position.split('-') as [FloatingSide, FloatingPlacement];\n const baseStyles = {\n width: rem(arrowSize),\n height: rem(arrowSize),\n transform: 'rotate(45deg)',\n position: 'absolute',\n [radiusByFloatingSide[side]]: rem(arrowRadius),\n };\n\n const arrowPlacement = rem(-arrowSize / 2);\n\n if (side === 'left') {\n return {\n ...baseStyles,\n ...horizontalSide(placement, arrowY, arrowOffset, arrowPosition),\n right: arrowPlacement,\n borderLeftColor: 'transparent',\n borderBottomColor: 'transparent',\n };\n }\n\n if (side === 'right') {\n return {\n ...baseStyles,\n ...horizontalSide(placement, arrowY, arrowOffset, arrowPosition),\n left: arrowPlacement,\n borderRightColor: 'transparent',\n borderTopColor: 'transparent',\n };\n }\n\n if (side === 'top') {\n return {\n ...baseStyles,\n ...verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir),\n bottom: arrowPlacement,\n borderTopColor: 'transparent',\n borderLeftColor: 'transparent',\n };\n }\n\n if (side === 'bottom') {\n return {\n ...baseStyles,\n ...verticalSide(placement, arrowX, arrowOffset, arrowPosition, dir),\n top: arrowPlacement,\n borderBottomColor: 'transparent',\n borderRightColor: 'transparent',\n };\n }\n\n return {};\n}\n"],"names":["rem"],"mappings":"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"}
|
|
@@ -6,14 +6,25 @@ var React = require('react');
|
|
|
6
6
|
var react = require('@floating-ui/react');
|
|
7
7
|
var hooks = require('@mantine/hooks');
|
|
8
8
|
|
|
9
|
-
function useFloatingAutoUpdate({
|
|
9
|
+
function useFloatingAutoUpdate({
|
|
10
|
+
opened,
|
|
11
|
+
floating,
|
|
12
|
+
position,
|
|
13
|
+
positionDependencies
|
|
14
|
+
}) {
|
|
10
15
|
const [delayedUpdate, setDelayedUpdate] = React.useState(0);
|
|
11
16
|
React.useEffect(() => {
|
|
12
17
|
if (floating.refs.reference.current && floating.refs.floating.current) {
|
|
13
18
|
return react.autoUpdate(floating.refs.reference.current, floating.refs.floating.current, floating.update);
|
|
14
19
|
}
|
|
15
20
|
return void 0;
|
|
16
|
-
}, [
|
|
21
|
+
}, [
|
|
22
|
+
floating.refs.reference.current,
|
|
23
|
+
floating.refs.floating.current,
|
|
24
|
+
opened,
|
|
25
|
+
delayedUpdate,
|
|
26
|
+
position
|
|
27
|
+
]);
|
|
17
28
|
hooks.useDidUpdate(() => {
|
|
18
29
|
floating.update();
|
|
19
30
|
}, positionDependencies);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-floating-auto-update.js","sources":["../../src/Floating/use-floating-auto-update.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { autoUpdate } from '@floating-ui/react';\nimport { useDidUpdate } from '@mantine/hooks';\n\ninterface Payload {\n opened: boolean;\n floating: {\n update(): void;\n refs: {\n floating: React.MutableRefObject<any>;\n reference: React.MutableRefObject<any>;\n };\n };\n positionDependencies: any[];\n}\n\nexport function useFloatingAutoUpdate({
|
|
1
|
+
{"version":3,"file":"use-floating-auto-update.js","sources":["../../src/Floating/use-floating-auto-update.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { autoUpdate } from '@floating-ui/react';\nimport { useDidUpdate } from '@mantine/hooks';\nimport { FloatingPosition } from './types';\n\ninterface Payload {\n opened: boolean;\n floating: {\n update(): void;\n refs: {\n floating: React.MutableRefObject<any>;\n reference: React.MutableRefObject<any>;\n };\n };\n positionDependencies: any[];\n position: FloatingPosition;\n}\n\nexport function useFloatingAutoUpdate({\n opened,\n floating,\n position,\n positionDependencies,\n}: Payload) {\n const [delayedUpdate, setDelayedUpdate] = useState(0);\n\n useEffect(() => {\n if (floating.refs.reference.current && floating.refs.floating.current) {\n return autoUpdate(\n floating.refs.reference.current,\n floating.refs.floating.current,\n floating.update\n );\n }\n\n return undefined;\n }, [\n floating.refs.reference.current,\n floating.refs.floating.current,\n opened,\n delayedUpdate,\n position,\n ]);\n\n useDidUpdate(() => {\n floating.update();\n }, positionDependencies);\n\n useDidUpdate(() => {\n setDelayedUpdate((c) => c + 1);\n }, [opened]);\n}\n"],"names":["useState","useEffect","autoUpdate","useDidUpdate"],"mappings":";;;;;;;;AAGO,SAAS,qBAAqB,CAAC;AACtC,EAAE,MAAM;AACR,EAAE,QAAQ;AACV,EAAE,QAAQ;AACV,EAAE,oBAAoB;AACtB,CAAC,EAAE;AACH,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAAC,CAAC,CAAC,CAAC;AACxD,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC3E,MAAM,OAAOC,gBAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1G,KAAK;AACL,IAAI,OAAO,KAAK,CAAC,CAAC;AAClB,GAAG,EAAE;AACL,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;AACnC,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;AAClC,IAAI,MAAM;AACV,IAAI,aAAa;AACjB,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC;AACL,EAAEC,kBAAY,CAAC,MAAM;AACrB,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;AACtB,GAAG,EAAE,oBAAoB,CAAC,CAAC;AAC3B,EAAEA,kBAAY,CAAC,MAAM;AACrB,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf;;;;"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const HOVER_CARD_ERRORS = {
|
|
6
6
|
context: "HoverCard component was not found in the tree",
|
|
7
|
-
children: "HoverCard.Target component children should be an element or a component that accepts ref
|
|
7
|
+
children: "HoverCard.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported"
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
exports.HOVER_CARD_ERRORS = HOVER_CARD_ERRORS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HoverCard.errors.js","sources":["../../src/HoverCard/HoverCard.errors.ts"],"sourcesContent":["export const HOVER_CARD_ERRORS = {\n context: 'HoverCard component was not found in the tree',\n children:\n 'HoverCard.Target component children should be an element or a component that accepts ref
|
|
1
|
+
{"version":3,"file":"HoverCard.errors.js","sources":["../../src/HoverCard/HoverCard.errors.ts"],"sourcesContent":["export const HOVER_CARD_ERRORS = {\n context: 'HoverCard component was not found in the tree',\n children:\n 'HoverCard.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported',\n};\n"],"names":[],"mappings":";;;;AAAY,MAAC,iBAAiB,GAAG;AACjC,EAAE,OAAO,EAAE,+CAA+C;AAC1D,EAAE,QAAQ,EAAE,oKAAoK;AAChL;;;;"}
|
|
@@ -39,7 +39,7 @@ var __objRest = (source, exclude) => {
|
|
|
39
39
|
}
|
|
40
40
|
return target;
|
|
41
41
|
};
|
|
42
|
-
|
|
42
|
+
const InlineInput = React.forwardRef((_a, ref) => {
|
|
43
43
|
var _b = _a, {
|
|
44
44
|
__staticSelector,
|
|
45
45
|
className,
|
|
@@ -73,7 +73,8 @@ function InlineInput(_a) {
|
|
|
73
73
|
]);
|
|
74
74
|
const { classes, cx } = InlineInput_styles['default']({ labelPosition }, { name: __staticSelector, styles, classNames, unstyled, variant, size });
|
|
75
75
|
return /* @__PURE__ */ React__default.createElement(Box.Box, __spreadValues({
|
|
76
|
-
className: cx(classes.root, className)
|
|
76
|
+
className: cx(classes.root, className),
|
|
77
|
+
ref
|
|
77
78
|
}, others), /* @__PURE__ */ React__default.createElement("div", {
|
|
78
79
|
className: cx(classes.body)
|
|
79
80
|
}, children, /* @__PURE__ */ React__default.createElement("div", {
|
|
@@ -87,7 +88,7 @@ function InlineInput(_a) {
|
|
|
87
88
|
}, description), error && error !== "boolean" && /* @__PURE__ */ React__default.createElement(Input.Input.Error, {
|
|
88
89
|
className: classes.error
|
|
89
90
|
}, error))));
|
|
90
|
-
}
|
|
91
|
+
});
|
|
91
92
|
InlineInput.displayName = "@mantine/core/InlineInput";
|
|
92
93
|
|
|
93
94
|
exports.InlineInput = InlineInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineInput.js","sources":["../../src/InlineInput/InlineInput.tsx"],"sourcesContent":["import React from 'react';\nimport { DefaultProps, MantineNumberSize, Selectors } from '@mantine/styles';\nimport { Box } from '../Box';\nimport { Input } from '../Input';\nimport useStyles from './InlineInput.styles';\n\nexport type InlineInputStylesNames = Selectors<typeof useStyles>;\n\nexport interface InlineInputProps\n extends DefaultProps<InlineInputStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector: string;\n label: React.ReactNode;\n description: React.ReactNode;\n id: string;\n disabled: boolean;\n error: React.ReactNode;\n size: MantineNumberSize;\n labelPosition: 'left' | 'right';\n}\n\nexport
|
|
1
|
+
{"version":3,"file":"InlineInput.js","sources":["../../src/InlineInput/InlineInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, MantineNumberSize, Selectors } from '@mantine/styles';\nimport { Box } from '../Box';\nimport { Input } from '../Input';\nimport useStyles from './InlineInput.styles';\n\nexport type InlineInputStylesNames = Selectors<typeof useStyles>;\n\nexport interface InlineInputProps\n extends DefaultProps<InlineInputStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector: string;\n label: React.ReactNode;\n description: React.ReactNode;\n id: string;\n disabled: boolean;\n error: React.ReactNode;\n size: MantineNumberSize;\n labelPosition: 'left' | 'right';\n}\n\nexport const InlineInput = forwardRef<HTMLDivElement, InlineInputProps>(\n (\n {\n __staticSelector,\n className,\n classNames,\n styles,\n unstyled,\n children,\n label,\n description,\n id,\n disabled,\n error,\n size,\n labelPosition,\n variant,\n ...others\n },\n ref\n ) => {\n const { classes, cx } = useStyles(\n { labelPosition },\n { name: __staticSelector, styles, classNames, unstyled, variant, size }\n );\n\n return (\n <Box className={cx(classes.root, className)} ref={ref} {...others}>\n <div className={cx(classes.body)}>\n {children}\n\n <div className={classes.labelWrapper}>\n {label && (\n <label className={classes.label} data-disabled={disabled || undefined} htmlFor={id}>\n {label}\n </label>\n )}\n\n {description && (\n <Input.Description className={classes.description}>{description}</Input.Description>\n )}\n\n {error && error !== 'boolean' && (\n <Input.Error className={classes.error}>{error}</Input.Error>\n )}\n </div>\n </div>\n </Box>\n );\n }\n);\n\nInlineInput.displayName = '@mantine/core/InlineInput';\n"],"names":["forwardRef","useStyles","React","Box","Input"],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ const defaultProps = {
|
|
|
48
48
|
formatOnBlur: false,
|
|
49
49
|
size: "sm",
|
|
50
50
|
serialize: JSON.stringify,
|
|
51
|
-
deserialize: JSON.
|
|
51
|
+
deserialize: JSON.parse
|
|
52
52
|
};
|
|
53
53
|
const JsonInput = React.forwardRef((props, ref) => {
|
|
54
54
|
const _a = styles.useComponentDefaultProps("JsonInput", defaultProps, props), {
|
|
@@ -99,7 +99,7 @@ const JsonInput = React.forwardRef((props, ref) => {
|
|
|
99
99
|
const handleBlur = (event) => {
|
|
100
100
|
typeof onBlur === "function" && onBlur(event);
|
|
101
101
|
const isValid = validateJson.validateJson(event.currentTarget.value, deserialize);
|
|
102
|
-
isValid && event.currentTarget.value.trim() !== "" && setValue(serialize(deserialize(event.currentTarget.value), null, 2));
|
|
102
|
+
formatOnBlur && !readOnly && isValid && event.currentTarget.value.trim() !== "" && setValue(serialize(deserialize(event.currentTarget.value), null, 2));
|
|
103
103
|
setValid(isValid);
|
|
104
104
|
};
|
|
105
105
|
return /* @__PURE__ */ React__default.createElement(Textarea.Textarea, __spreadValues({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonInput.js","sources":["../../src/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { forwardRef, useState } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { DefaultProps, useComponentDefaultProps } from '@mantine/styles';\nimport { validateJson } from './validate-json/validate-json';\nimport { Textarea, TextareaProps } from '../Textarea';\nimport { TextInputStylesNames } from '../TextInput';\nimport useStyles from './JsonInput.styles';\n\nexport type JsonInputStylesNames = TextInputStylesNames;\n\nexport interface JsonInputProps\n extends DefaultProps<JsonInputStylesNames>,\n Omit<TextareaProps, 'onChange'> {\n /** Value for controlled input */\n value?: string;\n\n /** Default value for uncontrolled input */\n defaultValue?: string;\n\n /**
|
|
1
|
+
{"version":3,"file":"JsonInput.js","sources":["../../src/JsonInput/JsonInput.tsx"],"sourcesContent":["import React, { forwardRef, useState } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { DefaultProps, useComponentDefaultProps } from '@mantine/styles';\nimport { validateJson } from './validate-json/validate-json';\nimport { Textarea, TextareaProps } from '../Textarea';\nimport { TextInputStylesNames } from '../TextInput';\nimport useStyles from './JsonInput.styles';\n\nexport type JsonInputStylesNames = TextInputStylesNames;\n\nexport interface JsonInputProps\n extends DefaultProps<JsonInputStylesNames>,\n Omit<TextareaProps, 'onChange'> {\n /** Value for controlled input */\n value?: string;\n\n /** Default value for uncontrolled input */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?(value: string): void;\n\n /** Format JSON on blur */\n formatOnBlur?: boolean;\n\n /** Error message shown when JSON is not valid */\n validationError?: React.ReactNode;\n\n /** Function to serialize value into a string, used for value formatting, JSON.stringify by default */\n serialize?: typeof JSON.stringify;\n\n /** Function to deserialize string value, used for value formatting and input JSON validation, must throw error if string cannot be processed, JSON.parse by default */\n deserialize?: typeof JSON.parse;\n}\n\nconst defaultProps: Partial<JsonInputProps> = {\n formatOnBlur: false,\n size: 'sm',\n serialize: JSON.stringify,\n deserialize: JSON.parse,\n};\n\nexport const JsonInput = forwardRef<HTMLTextAreaElement, JsonInputProps>((props, ref) => {\n const {\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n error,\n formatOnBlur,\n size,\n validationError,\n classNames,\n unstyled,\n readOnly,\n variant,\n serialize,\n deserialize,\n ...others\n } = useComponentDefaultProps('JsonInput', defaultProps, props);\n\n const { classes, cx } = useStyles(null, { name: 'JsonInput', unstyled, size, variant });\n const [_value, setValue] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const [valid, setValid] = useState(validateJson(_value, deserialize));\n\n const handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setValid(true);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n const isValid = validateJson(event.currentTarget.value, deserialize);\n formatOnBlur &&\n !readOnly &&\n isValid &&\n event.currentTarget.value.trim() !== '' &&\n setValue(serialize(deserialize(event.currentTarget.value), null, 2));\n setValid(isValid);\n };\n\n return (\n <Textarea\n value={_value}\n onChange={(event) => setValue(event.currentTarget.value)}\n onFocus={handleFocus}\n onBlur={handleBlur}\n error={valid ? error : validationError || true}\n __staticSelector=\"JsonInput\"\n classNames={{ ...classNames, input: cx(classes.input, classNames?.input) }}\n autoComplete=\"nope\"\n ref={ref}\n unstyled={unstyled}\n readOnly={readOnly}\n size={size}\n variant={variant}\n {...others}\n />\n );\n});\n\nJsonInput.displayName = '@mantine/core/JsonInput';\n"],"names":["forwardRef","useComponentDefaultProps","useStyles","useUncontrolled","useState","validateJson","React","Textarea"],"mappings":"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"}
|
package/cjs/Menu/Menu.errors.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const MENU_ERRORS = {
|
|
6
6
|
context: "Menu component was not found in the tree",
|
|
7
|
-
children: "Menu.Target component children should be an element or a component that accepts ref
|
|
7
|
+
children: "Menu.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported"
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
exports.MENU_ERRORS = MENU_ERRORS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.errors.js","sources":["../../src/Menu/Menu.errors.ts"],"sourcesContent":["export const MENU_ERRORS = {\n context: 'Menu component was not found in the tree',\n children:\n 'Menu.Target component children should be an element or a component that accepts ref
|
|
1
|
+
{"version":3,"file":"Menu.errors.js","sources":["../../src/Menu/Menu.errors.ts"],"sourcesContent":["export const MENU_ERRORS = {\n context: 'Menu component was not found in the tree',\n children:\n 'Menu.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported',\n};\n"],"names":[],"mappings":";;;;AAAY,MAAC,WAAW,GAAG;AAC3B,EAAE,OAAO,EAAE,0CAA0C;AACrD,EAAE,QAAQ,EAAE,+JAA+J;AAC3K;;;;"}
|
|
@@ -75,6 +75,7 @@ function ModalBase(props) {
|
|
|
75
75
|
__staticSelector,
|
|
76
76
|
transitionProps,
|
|
77
77
|
withinPortal,
|
|
78
|
+
portalProps,
|
|
78
79
|
keepMounted,
|
|
79
80
|
target,
|
|
80
81
|
zIndex,
|
|
@@ -99,6 +100,7 @@ function ModalBase(props) {
|
|
|
99
100
|
"__staticSelector",
|
|
100
101
|
"transitionProps",
|
|
101
102
|
"withinPortal",
|
|
103
|
+
"portalProps",
|
|
102
104
|
"keepMounted",
|
|
103
105
|
"target",
|
|
104
106
|
"zIndex",
|
|
@@ -135,10 +137,10 @@ function ModalBase(props) {
|
|
|
135
137
|
}
|
|
136
138
|
});
|
|
137
139
|
hooks.useFocusReturn({ opened, shouldReturnFocus: trapFocus && returnFocus });
|
|
138
|
-
return /* @__PURE__ */ React__default.createElement(OptionalPortal.OptionalPortal, {
|
|
140
|
+
return /* @__PURE__ */ React__default.createElement(OptionalPortal.OptionalPortal, __spreadValues({
|
|
139
141
|
withinPortal,
|
|
140
142
|
target
|
|
141
|
-
}, /* @__PURE__ */ React__default.createElement(ModalBase_context.ModalBaseProvider, {
|
|
143
|
+
}, portalProps), /* @__PURE__ */ React__default.createElement(ModalBase_context.ModalBaseProvider, {
|
|
142
144
|
value: {
|
|
143
145
|
__staticSelector,
|
|
144
146
|
opened,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalBase.js","sources":["../../src/ModalBase/ModalBase.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { useState } from 'react';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { useId, useWindowEvent, useFocusReturn } from '@mantine/hooks';\nimport {\n getDefaultZIndex,\n MantineNumberSize,\n useComponentDefaultProps,\n ClassNames,\n Styles,\n MantineShadow,\n Selectors,\n} from '@mantine/styles';\nimport { OptionalPortal } from '../Portal';\nimport { TransitionOverride } from '../Transition';\nimport { ModalBaseProvider } from './ModalBase.context';\nimport {\n ModalBaseCloseButton,\n ModalBaseCloseButtonStylesNames,\n} from './ModalBaseCloseButton/ModalBaseCloseButton';\nimport { ModalBaseOverlay, ModalBaseOverlayStylesNames } from './ModalBaseOverlay/ModalBaseOverlay';\nimport { ModalBaseContent, ModalBaseContentStylesNames } from './ModalBaseContent/ModalBaseContent';\nimport { ModalBaseHeader, ModalBaseHeaderStylesNames } from './ModalBaseHeader/ModalBaseHeader';\nimport { ModalBaseTitle, ModalBaseTitleStylesNames } from './ModalBaseTitle/ModalBaseTitle';\nimport { ModalBaseBody, ModalBaseBodyStylesNames } from './ModalBaseBody/ModalBaseBody';\nimport { NativeScrollArea } from './NativeScrollArea/NativeScrollArea';\nimport { useLockScroll } from './use-lock-scroll';\nimport useStyles from './ModalBase.styles';\n\nexport type ModalBaseStylesNames =\n | Selectors<typeof useStyles>\n | ModalBaseCloseButtonStylesNames\n | ModalBaseOverlayStylesNames\n | ModalBaseContentStylesNames\n | ModalBaseHeaderStylesNames\n | ModalBaseTitleStylesNames\n | ModalBaseBodyStylesNames;\n\nexport interface ModalBaseSettings extends React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n classNames?: ClassNames<ModalBaseStylesNames>;\n styles?: Styles<ModalBaseStylesNames>;\n unstyled?: boolean;\n\n /** If set modal/drawer will not be unmounted from the DOM when it is hidden, display: none styles will be added instead */\n keepMounted?: boolean;\n\n /** Determines whether modal/drawer is opened */\n opened: boolean;\n\n /** Called when modal/drawer is closed */\n onClose(): void;\n\n /** Child component */\n children?: React.ReactNode;\n\n /** Determines whether the modal/drawer should be closed when user clicks on the overlay, true by default */\n closeOnClickOutside?: boolean;\n\n /** Props added to Transition component that used to animate overlay and body, use to configure duration and animation type, { duration: 200, transition: 'pop' } by default */\n transitionProps?: TransitionOverride;\n\n /** Determines whether component should be rendered inside Portal, true by default */\n withinPortal?: boolean;\n\n /** Target element or selector where Portal should be rendered, by default new element is created and appended to the document.body */\n target?: HTMLElement | string;\n\n /** Determines whether scroll should be locked when opened={true}, defaults to true */\n lockScroll?: boolean;\n\n /** Determines whether focus should be trapped, true by default */\n trapFocus?: boolean;\n\n /** z-index CSS property of root element, 200 by default */\n zIndex?: number;\n\n /** Key of theme.spacing or any valid CSS value to set content, header and footer padding, 'md' by default */\n padding?: MantineNumberSize;\n\n /** Id used to connect modal/drawer with body and title */\n id?: string;\n\n /** Determines whether focus should be returned to the last active element onClose is called, true by default */\n returnFocus?: boolean;\n\n /** Determines whether onClose should be called when user presses escape key, true by default */\n closeOnEscape?: boolean;\n\n /** Controls content width, 'md' by default */\n size?: MantineNumberSize;\n\n /** Key of theme.shadows or any valid css box-shadow value, 'xl' by default */\n shadow?: MantineShadow;\n}\n\nexport interface ModalBaseProps extends ModalBaseSettings {\n /** Base component name for styles and components default props */\n __staticSelector: string;\n}\n\nexport const ModalBaseDefaultProps: Partial<ModalBaseProps> = {\n closeOnClickOutside: true,\n withinPortal: true,\n lockScroll: true,\n trapFocus: true,\n returnFocus: true,\n closeOnEscape: true,\n keepMounted: false,\n zIndex: getDefaultZIndex('modal'),\n padding: 'md',\n size: 'md',\n shadow: 'xl',\n};\n\nexport function ModalBase(props: ModalBaseProps) {\n const {\n opened,\n onClose,\n children,\n closeOnClickOutside,\n __staticSelector,\n transitionProps,\n withinPortal,\n keepMounted,\n target,\n zIndex,\n lockScroll,\n trapFocus,\n closeOnEscape,\n returnFocus,\n padding,\n shadow,\n id,\n size,\n variant,\n classNames,\n unstyled,\n styles,\n className,\n ...others\n } = useComponentDefaultProps(props.__staticSelector, ModalBaseDefaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const _id = useId(id);\n const [titleMounted, setTitleMounted] = useState(false);\n const [bodyMounted, setBodyMounted] = useState(false);\n\n const transitionDuration =\n typeof transitionProps?.duration === 'number' ? transitionProps?.duration : 200;\n\n const shouldLockScroll = useLockScroll({ opened, transitionDuration });\n\n useWindowEvent('keydown', (event) => {\n if (!trapFocus && event.key === 'Escape' && closeOnEscape) {\n onClose();\n }\n });\n\n useFocusReturn({ opened, shouldReturnFocus: trapFocus && returnFocus });\n\n return (\n <OptionalPortal withinPortal={withinPortal} target={target}>\n <ModalBaseProvider\n value={{\n __staticSelector,\n opened,\n onClose,\n closeOnClickOutside,\n transitionProps: { ...transitionProps, duration: transitionDuration, keepMounted },\n zIndex,\n padding,\n id: _id,\n getTitleId: () => `${_id}-title`,\n getBodyId: () => `${_id}-body`,\n titleMounted,\n bodyMounted,\n setTitleMounted,\n setBodyMounted,\n trapFocus,\n closeOnEscape,\n shadow,\n stylesApi: {\n name: __staticSelector,\n size,\n variant,\n classNames,\n styles,\n unstyled,\n },\n }}\n >\n <RemoveScroll enabled={shouldLockScroll && lockScroll}>\n <div className={cx(classes.root, className)} {...others}>\n {children}\n </div>\n </RemoveScroll>\n </ModalBaseProvider>\n </OptionalPortal>\n );\n}\n\nModalBase.CloseButton = ModalBaseCloseButton;\nModalBase.Overlay = ModalBaseOverlay;\nModalBase.Content = ModalBaseContent;\nModalBase.Header = ModalBaseHeader;\nModalBase.Title = ModalBaseTitle;\nModalBase.Body = ModalBaseBody;\nModalBase.NativeScrollArea = NativeScrollArea;\n"],"names":["getDefaultZIndex","useComponentDefaultProps","styles","useStyles","useId","useState","useLockScroll","useWindowEvent","useFocusReturn","React","OptionalPortal","ModalBaseProvider","RemoveScroll","ModalBaseCloseButton","ModalBaseOverlay","ModalBaseContent","ModalBaseHeader","ModalBaseTitle","ModalBaseBody","NativeScrollArea"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ModalBase.js","sources":["../../src/ModalBase/ModalBase.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport React, { useState } from 'react';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { useId, useWindowEvent, useFocusReturn } from '@mantine/hooks';\nimport {\n getDefaultZIndex,\n MantineNumberSize,\n useComponentDefaultProps,\n ClassNames,\n Styles,\n MantineShadow,\n Selectors,\n} from '@mantine/styles';\nimport { OptionalPortal, PortalProps } from '../Portal';\nimport { TransitionOverride } from '../Transition';\nimport { ModalBaseProvider } from './ModalBase.context';\nimport {\n ModalBaseCloseButton,\n ModalBaseCloseButtonStylesNames,\n} from './ModalBaseCloseButton/ModalBaseCloseButton';\nimport { ModalBaseOverlay, ModalBaseOverlayStylesNames } from './ModalBaseOverlay/ModalBaseOverlay';\nimport { ModalBaseContent, ModalBaseContentStylesNames } from './ModalBaseContent/ModalBaseContent';\nimport { ModalBaseHeader, ModalBaseHeaderStylesNames } from './ModalBaseHeader/ModalBaseHeader';\nimport { ModalBaseTitle, ModalBaseTitleStylesNames } from './ModalBaseTitle/ModalBaseTitle';\nimport { ModalBaseBody, ModalBaseBodyStylesNames } from './ModalBaseBody/ModalBaseBody';\nimport { NativeScrollArea } from './NativeScrollArea/NativeScrollArea';\nimport { useLockScroll } from './use-lock-scroll';\nimport useStyles from './ModalBase.styles';\n\nexport type ModalBaseStylesNames =\n | Selectors<typeof useStyles>\n | ModalBaseCloseButtonStylesNames\n | ModalBaseOverlayStylesNames\n | ModalBaseContentStylesNames\n | ModalBaseHeaderStylesNames\n | ModalBaseTitleStylesNames\n | ModalBaseBodyStylesNames;\n\nexport interface ModalBaseSettings extends React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n classNames?: ClassNames<ModalBaseStylesNames>;\n styles?: Styles<ModalBaseStylesNames>;\n unstyled?: boolean;\n\n /** If set modal/drawer will not be unmounted from the DOM when it is hidden, display: none styles will be added instead */\n keepMounted?: boolean;\n\n /** Determines whether modal/drawer is opened */\n opened: boolean;\n\n /** Called when modal/drawer is closed */\n onClose(): void;\n\n /** Child component */\n children?: React.ReactNode;\n\n /** Determines whether the modal/drawer should be closed when user clicks on the overlay, true by default */\n closeOnClickOutside?: boolean;\n\n /** Props added to Transition component that used to animate overlay and body, use to configure duration and animation type, { duration: 200, transition: 'pop' } by default */\n transitionProps?: TransitionOverride;\n\n /** Determines whether component should be rendered inside Portal, true by default */\n withinPortal?: boolean;\n\n /** Props to pass down to the portal when withinPortal is true */\n portalProps?: Omit<PortalProps, 'target'>;\n\n /** Target element or selector where Portal should be rendered, by default new element is created and appended to the document.body */\n target?: HTMLElement | string;\n\n /** Determines whether scroll should be locked when opened={true}, defaults to true */\n lockScroll?: boolean;\n\n /** Determines whether focus should be trapped, true by default */\n trapFocus?: boolean;\n\n /** z-index CSS property of root element, 200 by default */\n zIndex?: number;\n\n /** Key of theme.spacing or any valid CSS value to set content, header and footer padding, 'md' by default */\n padding?: MantineNumberSize;\n\n /** Id used to connect modal/drawer with body and title */\n id?: string;\n\n /** Determines whether focus should be returned to the last active element onClose is called, true by default */\n returnFocus?: boolean;\n\n /** Determines whether onClose should be called when user presses escape key, true by default */\n closeOnEscape?: boolean;\n\n /** Controls content width, 'md' by default */\n size?: MantineNumberSize;\n\n /** Key of theme.shadows or any valid css box-shadow value, 'xl' by default */\n shadow?: MantineShadow;\n}\n\nexport interface ModalBaseProps extends ModalBaseSettings {\n /** Base component name for styles and components default props */\n __staticSelector: string;\n}\n\nexport const ModalBaseDefaultProps: Partial<ModalBaseProps> = {\n closeOnClickOutside: true,\n withinPortal: true,\n lockScroll: true,\n trapFocus: true,\n returnFocus: true,\n closeOnEscape: true,\n keepMounted: false,\n zIndex: getDefaultZIndex('modal'),\n padding: 'md',\n size: 'md',\n shadow: 'xl',\n};\n\nexport function ModalBase(props: ModalBaseProps) {\n const {\n opened,\n onClose,\n children,\n closeOnClickOutside,\n __staticSelector,\n transitionProps,\n withinPortal,\n portalProps,\n keepMounted,\n target,\n zIndex,\n lockScroll,\n trapFocus,\n closeOnEscape,\n returnFocus,\n padding,\n shadow,\n id,\n size,\n variant,\n classNames,\n unstyled,\n styles,\n className,\n ...others\n } = useComponentDefaultProps(props.__staticSelector, ModalBaseDefaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const _id = useId(id);\n const [titleMounted, setTitleMounted] = useState(false);\n const [bodyMounted, setBodyMounted] = useState(false);\n\n const transitionDuration =\n typeof transitionProps?.duration === 'number' ? transitionProps?.duration : 200;\n\n const shouldLockScroll = useLockScroll({ opened, transitionDuration });\n\n useWindowEvent('keydown', (event) => {\n if (!trapFocus && event.key === 'Escape' && closeOnEscape) {\n onClose();\n }\n });\n\n useFocusReturn({ opened, shouldReturnFocus: trapFocus && returnFocus });\n\n return (\n <OptionalPortal withinPortal={withinPortal} target={target} {...portalProps}>\n <ModalBaseProvider\n value={{\n __staticSelector,\n opened,\n onClose,\n closeOnClickOutside,\n transitionProps: { ...transitionProps, duration: transitionDuration, keepMounted },\n zIndex,\n padding,\n id: _id,\n getTitleId: () => `${_id}-title`,\n getBodyId: () => `${_id}-body`,\n titleMounted,\n bodyMounted,\n setTitleMounted,\n setBodyMounted,\n trapFocus,\n closeOnEscape,\n shadow,\n stylesApi: {\n name: __staticSelector,\n size,\n variant,\n classNames,\n styles,\n unstyled,\n },\n }}\n >\n <RemoveScroll enabled={shouldLockScroll && lockScroll}>\n <div className={cx(classes.root, className)} {...others}>\n {children}\n </div>\n </RemoveScroll>\n </ModalBaseProvider>\n </OptionalPortal>\n );\n}\n\nModalBase.CloseButton = ModalBaseCloseButton;\nModalBase.Overlay = ModalBaseOverlay;\nModalBase.Content = ModalBaseContent;\nModalBase.Header = ModalBaseHeader;\nModalBase.Title = ModalBaseTitle;\nModalBase.Body = ModalBaseBody;\nModalBase.NativeScrollArea = NativeScrollArea;\n"],"names":["getDefaultZIndex","useComponentDefaultProps","styles","useStyles","useId","useState","useLockScroll","useWindowEvent","useFocusReturn","React","OptionalPortal","ModalBaseProvider","RemoveScroll","ModalBaseCloseButton","ModalBaseOverlay","ModalBaseContent","ModalBaseHeader","ModalBaseTitle","ModalBaseBody","NativeScrollArea"],"mappings":"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"}
|
package/cjs/PinInput/PinInput.js
CHANGED
|
@@ -161,12 +161,7 @@ const PinInput = React.forwardRef((props, ref) => {
|
|
|
161
161
|
const isValid = validate(nextChar);
|
|
162
162
|
if (isValid) {
|
|
163
163
|
setFieldValue(nextChar, index);
|
|
164
|
-
|
|
165
|
-
if (isComplete) {
|
|
166
|
-
onComplete == null ? void 0 : onComplete(_value);
|
|
167
|
-
} else {
|
|
168
|
-
focusInputField("next", index);
|
|
169
|
-
}
|
|
164
|
+
focusInputField("next", index);
|
|
170
165
|
} else {
|
|
171
166
|
setFieldValue("", index);
|
|
172
167
|
}
|
|
@@ -195,6 +190,11 @@ const PinInput = React.forwardRef((props, ref) => {
|
|
|
195
190
|
setValues(copyValue);
|
|
196
191
|
}
|
|
197
192
|
};
|
|
193
|
+
React.useEffect(() => {
|
|
194
|
+
if (_value.length !== length)
|
|
195
|
+
return;
|
|
196
|
+
onComplete == null ? void 0 : onComplete(_value);
|
|
197
|
+
}, [_value]);
|
|
198
198
|
return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(Group.Group, __spreadValues({
|
|
199
199
|
role: "group",
|
|
200
200
|
spacing,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinInput.js","sources":["../../src/PinInput/PinInput.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState } from 'react';\nimport { useUncontrolled, useId } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineSize,\n useComponentDefaultProps,\n Selectors,\n} from '@mantine/styles';\nimport { Group } from '../Group';\nimport { Input, InputSharedProps, InputStylesNames } from '../Input';\nimport { createPinArray } from './create-pin-array/create-pin-array';\nimport useStyles from './PinInput.styles';\n\nconst regex = {\n number: /^[0-9]+$/,\n alphanumeric: /^[a-zA-Z0-9]+$/i,\n};\n\nexport type PinInputStylesNames = Selectors<typeof useStyles> | InputStylesNames;\n\nexport interface PinInputProps\n extends DefaultProps<PinInputStylesNames>,\n InputSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'> {\n /** Hidden input name attribute */\n name?: string;\n\n /** Hidden input form attribute */\n form?: string;\n\n /** Key of theme.spacing or any valid CSS value to set spacing between inputs */\n spacing?: MantineNumberSize;\n\n /** Key of theme.radius or any valid CSS value to set border-radius, theme.defaultRadius by default */\n radius?: MantineNumberSize;\n\n /** Input width and height */\n size?: MantineSize;\n\n /** If set, first input is focused when component is mounted */\n autoFocus?: boolean;\n\n /** Value for controlled component */\n value?: string;\n\n /** Default value for uncontrolled component */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?: (value: string) => void;\n\n /** Called when user enters value to all inputs */\n onComplete?(value: string): void;\n\n /** Placeholder for every input field */\n placeholder?: string;\n\n /** Determines whether focus should be moved automatically to the next input once filled */\n manageFocus?: boolean;\n\n /** Determines whether autocomplete=\"one-time-code\" attribute should be set on all inputs */\n oneTimeCode?: boolean;\n\n /** The top-level id that is used as a base in all input fields */\n id?: string;\n\n /** Sets inputs disabled attribute */\n disabled?: boolean;\n\n /** Adds error styles to all inputs */\n error?: boolean;\n\n /** The type of allowed values */\n type?: 'alphanumeric' | 'number' | RegExp;\n\n /** Changes input type to \"password\" */\n mask?: boolean;\n\n /** Number of input boxes */\n length?: number;\n\n /** Determines whether the user can edit input content */\n readOnly?: boolean;\n\n /** Inputs type attribute, inferred from type prop if not specified */\n inputType?: React.HTMLInputTypeAttribute;\n\n /** inputmode attr, inferred from type prop if not specified */\n inputMode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search'\n | undefined;\n}\n\nconst defaultProps: Partial<PinInputProps> = {\n spacing: 'sm',\n size: 'sm',\n length: 4,\n manageFocus: true,\n placeholder: '○',\n type: 'alphanumeric',\n};\n\nexport const PinInput = forwardRef<HTMLDivElement, PinInputProps>((props, ref) => {\n const {\n name,\n form,\n className,\n value,\n defaultValue,\n variant,\n spacing,\n size,\n classNames,\n styles,\n unstyled,\n sx,\n length,\n onChange,\n onComplete,\n manageFocus,\n autoFocus,\n error,\n radius,\n disabled,\n oneTimeCode,\n placeholder,\n type,\n mask,\n 'aria-label': ariaLabel,\n readOnly,\n inputType,\n inputMode,\n ...others\n } = useComponentDefaultProps('PinInput', defaultProps, props);\n\n const uuid = useId(name);\n const { classes, cx } = useStyles(null, {\n name: 'PinInput',\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const [focusedIndex, setFocusedIndex] = useState(-1);\n\n const [_value, setValues] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const inputsRef = useRef<Array<HTMLInputElement>>([]);\n\n const validate = (code: string) => {\n const re = type instanceof RegExp ? type : type in regex ? regex[type] : null;\n return re?.test(code);\n };\n\n const focusInputField = (dir: 'next' | 'prev', index: number) => {\n if (!manageFocus) return;\n\n if (dir === 'next') {\n const nextIndex = index + 1;\n inputsRef.current[nextIndex < length ? nextIndex : index].focus();\n }\n\n if (dir === 'prev') {\n const nextIndex = index - 1;\n\n inputsRef.current[nextIndex > -1 ? nextIndex : index].focus();\n }\n };\n\n const setFieldValue = (val: string, index: number) => {\n const values = [...createPinArray(length, _value)];\n values[index] = val;\n setValues(values.join(''));\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>, index: number) => {\n const inputValue = event.target.value;\n const nextChar =\n inputValue.length > 1 ? inputValue.split('')[inputValue.length - 1] : inputValue;\n\n const isValid = validate(nextChar);\n\n if (isValid) {\n setFieldValue(nextChar, index);\n const isComplete = _value.length === length;\n\n if (isComplete) {\n onComplete?.(_value);\n } else {\n focusInputField('next', index);\n }\n } else {\n setFieldValue('', index);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>, index: number) => {\n if (event.key === 'Backspace') {\n if ((event.target as HTMLInputElement).value !== '') {\n setFieldValue('', index);\n } else {\n focusInputField('prev', index);\n }\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>, index: number) => {\n event.target.select();\n setFocusedIndex(index);\n };\n\n const handleBlur = () => {\n setFocusedIndex(-1);\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n event.preventDefault();\n const copyValue = event.clipboardData.getData('Text');\n const isValid = validate(copyValue);\n\n if (isValid) {\n setValues(copyValue);\n }\n };\n\n return (\n <>\n <Group\n role=\"group\"\n spacing={spacing}\n ref={ref}\n className={cx(classes.root, className)}\n sx={sx}\n unstyled={unstyled}\n id={uuid}\n noWrap\n {...others}\n >\n {createPinArray(length, _value).map((char, index) => (\n <Input<'input'>\n __staticSelector=\"PinInput\"\n id={`${uuid}-${index + 1}`}\n key={`${uuid}-${index}`}\n inputMode={inputMode || (type === 'number' ? 'numeric' : 'text')}\n onChange={(event) => handleChange(event, index)}\n onKeyDown={(event) => handleKeyDown(event, index)}\n onFocus={(event) => handleFocus(event, index)}\n onBlur={handleBlur}\n onPaste={handlePaste}\n type={inputType || (mask ? 'password' : type === 'number' ? 'tel' : 'text')}\n radius={radius}\n error={error}\n variant={variant}\n size={size}\n disabled={disabled}\n ref={(node) => {\n inputsRef.current[index] = node;\n }}\n autoComplete={oneTimeCode ? 'one-time-code' : 'off'}\n placeholder={focusedIndex === index ? '' : placeholder}\n value={char}\n autoFocus={autoFocus && index === 0}\n classNames={{\n ...classNames,\n input: cx(classes.input, classNames?.input),\n }}\n styles={styles}\n unstyled={unstyled}\n aria-label={ariaLabel}\n readOnly={readOnly}\n />\n ))}\n </Group>\n <input type=\"hidden\" name={name} form={form} value={_value} />\n </>\n );\n});\n\nPinInput.displayName = '@mantine/core/PinInput';\n"],"names":["forwardRef","useComponentDefaultProps","styles","useId","useStyles","useState","useUncontrolled","useRef","createPinArray","React","Group","Input"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PinInput.js","sources":["../../src/PinInput/PinInput.tsx"],"sourcesContent":["import React, { forwardRef, useRef, useState, useEffect } from 'react';\nimport { useUncontrolled, useId } from '@mantine/hooks';\nimport {\n DefaultProps,\n MantineNumberSize,\n MantineSize,\n useComponentDefaultProps,\n Selectors,\n} from '@mantine/styles';\nimport { Group } from '../Group';\nimport { Input, InputSharedProps, InputStylesNames } from '../Input';\nimport { createPinArray } from './create-pin-array/create-pin-array';\nimport useStyles from './PinInput.styles';\n\nconst regex = {\n number: /^[0-9]+$/,\n alphanumeric: /^[a-zA-Z0-9]+$/i,\n};\n\nexport type PinInputStylesNames = Selectors<typeof useStyles> | InputStylesNames;\n\nexport interface PinInputProps\n extends DefaultProps<PinInputStylesNames>,\n InputSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange'> {\n /** Hidden input name attribute */\n name?: string;\n\n /** Hidden input form attribute */\n form?: string;\n\n /** Key of theme.spacing or any valid CSS value to set spacing between inputs */\n spacing?: MantineNumberSize;\n\n /** Key of theme.radius or any valid CSS value to set border-radius, theme.defaultRadius by default */\n radius?: MantineNumberSize;\n\n /** Input width and height */\n size?: MantineSize;\n\n /** If set, first input is focused when component is mounted */\n autoFocus?: boolean;\n\n /** Value for controlled component */\n value?: string;\n\n /** Default value for uncontrolled component */\n defaultValue?: string;\n\n /** Called when value changes */\n onChange?: (value: string) => void;\n\n /** Called when user enters value to all inputs */\n onComplete?(value: string): void;\n\n /** Placeholder for every input field */\n placeholder?: string;\n\n /** Determines whether focus should be moved automatically to the next input once filled */\n manageFocus?: boolean;\n\n /** Determines whether autocomplete=\"one-time-code\" attribute should be set on all inputs */\n oneTimeCode?: boolean;\n\n /** The top-level id that is used as a base in all input fields */\n id?: string;\n\n /** Sets inputs disabled attribute */\n disabled?: boolean;\n\n /** Adds error styles to all inputs */\n error?: boolean;\n\n /** The type of allowed values */\n type?: 'alphanumeric' | 'number' | RegExp;\n\n /** Changes input type to \"password\" */\n mask?: boolean;\n\n /** Number of input boxes */\n length?: number;\n\n /** Determines whether the user can edit input content */\n readOnly?: boolean;\n\n /** Inputs type attribute, inferred from type prop if not specified */\n inputType?: React.HTMLInputTypeAttribute;\n\n /** inputmode attr, inferred from type prop if not specified */\n inputMode?:\n | 'none'\n | 'text'\n | 'tel'\n | 'url'\n | 'email'\n | 'numeric'\n | 'decimal'\n | 'search'\n | undefined;\n}\n\nconst defaultProps: Partial<PinInputProps> = {\n spacing: 'sm',\n size: 'sm',\n length: 4,\n manageFocus: true,\n placeholder: '○',\n type: 'alphanumeric',\n};\n\nexport const PinInput = forwardRef<HTMLDivElement, PinInputProps>((props, ref) => {\n const {\n name,\n form,\n className,\n value,\n defaultValue,\n variant,\n spacing,\n size,\n classNames,\n styles,\n unstyled,\n sx,\n length,\n onChange,\n onComplete,\n manageFocus,\n autoFocus,\n error,\n radius,\n disabled,\n oneTimeCode,\n placeholder,\n type,\n mask,\n 'aria-label': ariaLabel,\n readOnly,\n inputType,\n inputMode,\n ...others\n } = useComponentDefaultProps('PinInput', defaultProps, props);\n\n const uuid = useId(name);\n const { classes, cx } = useStyles(null, {\n name: 'PinInput',\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const [focusedIndex, setFocusedIndex] = useState(-1);\n\n const [_value, setValues] = useUncontrolled({\n value,\n defaultValue,\n finalValue: '',\n onChange,\n });\n\n const inputsRef = useRef<Array<HTMLInputElement>>([]);\n\n const validate = (code: string) => {\n const re = type instanceof RegExp ? type : type in regex ? regex[type] : null;\n return re?.test(code);\n };\n\n const focusInputField = (dir: 'next' | 'prev', index: number) => {\n if (!manageFocus) return;\n\n if (dir === 'next') {\n const nextIndex = index + 1;\n inputsRef.current[nextIndex < length ? nextIndex : index].focus();\n }\n\n if (dir === 'prev') {\n const nextIndex = index - 1;\n\n inputsRef.current[nextIndex > -1 ? nextIndex : index].focus();\n }\n };\n\n const setFieldValue = (val: string, index: number) => {\n const values = [...createPinArray(length, _value)];\n values[index] = val;\n setValues(values.join(''));\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>, index: number) => {\n const inputValue = event.target.value;\n const nextChar =\n inputValue.length > 1 ? inputValue.split('')[inputValue.length - 1] : inputValue;\n\n const isValid = validate(nextChar);\n\n if (isValid) {\n setFieldValue(nextChar, index);\n focusInputField('next', index);\n } else {\n setFieldValue('', index);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>, index: number) => {\n if (event.key === 'Backspace') {\n if ((event.target as HTMLInputElement).value !== '') {\n setFieldValue('', index);\n } else {\n focusInputField('prev', index);\n }\n }\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>, index: number) => {\n event.target.select();\n setFocusedIndex(index);\n };\n\n const handleBlur = () => {\n setFocusedIndex(-1);\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n event.preventDefault();\n const copyValue = event.clipboardData.getData('Text');\n const isValid = validate(copyValue);\n\n if (isValid) {\n setValues(copyValue);\n }\n };\n\n useEffect(() => {\n if (_value.length !== length) return;\n\n onComplete?.(_value);\n }, [_value]);\n\n return (\n <>\n <Group\n role=\"group\"\n spacing={spacing}\n ref={ref}\n className={cx(classes.root, className)}\n sx={sx}\n unstyled={unstyled}\n id={uuid}\n noWrap\n {...others}\n >\n {createPinArray(length, _value).map((char, index) => (\n <Input<'input'>\n __staticSelector=\"PinInput\"\n id={`${uuid}-${index + 1}`}\n key={`${uuid}-${index}`}\n inputMode={inputMode || (type === 'number' ? 'numeric' : 'text')}\n onChange={(event) => handleChange(event, index)}\n onKeyDown={(event) => handleKeyDown(event, index)}\n onFocus={(event) => handleFocus(event, index)}\n onBlur={handleBlur}\n onPaste={handlePaste}\n type={inputType || (mask ? 'password' : type === 'number' ? 'tel' : 'text')}\n radius={radius}\n error={error}\n variant={variant}\n size={size}\n disabled={disabled}\n ref={(node) => {\n inputsRef.current[index] = node;\n }}\n autoComplete={oneTimeCode ? 'one-time-code' : 'off'}\n placeholder={focusedIndex === index ? '' : placeholder}\n value={char}\n autoFocus={autoFocus && index === 0}\n classNames={{\n ...classNames,\n input: cx(classes.input, classNames?.input),\n }}\n styles={styles}\n unstyled={unstyled}\n aria-label={ariaLabel}\n readOnly={readOnly}\n />\n ))}\n </Group>\n <input type=\"hidden\" name={name} form={form} value={_value} />\n </>\n );\n});\n\nPinInput.displayName = '@mantine/core/PinInput';\n"],"names":["forwardRef","useComponentDefaultProps","styles","useId","useStyles","useState","useUncontrolled","useRef","createPinArray","useEffect","React","Group","Input"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.context.js","sources":["../../src/Popover/Popover.context.ts"],"sourcesContent":["import { ReferenceType } from '@floating-ui/react';\nimport { createSafeContext } from '@mantine/utils';\nimport { MantineNumberSize, MantineShadow, ClassNames, Styles } from '@mantine/styles';\nimport { FloatingPosition, ArrowPosition } from '../Floating';\nimport { TransitionOverride } from '../Transition';\nimport { POPOVER_ERRORS } from './Popover.errors';\nimport { PopoverWidth, PopoverStylesNames, PopoverStylesParams } from './Popover.types';\n\ninterface PopoverContext {\n x: number;\n y: number;\n arrowX: number;\n arrowY: number;\n arrowRef: React.RefObject<HTMLDivElement>;\n opened: boolean;\n transitionProps?: TransitionOverride;\n reference: (node: ReferenceType) => void;\n floating: (node: HTMLElement) => void;\n width?: PopoverWidth;\n withArrow: boolean;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n trapFocus: boolean;\n placement: FloatingPosition;\n withinPortal: boolean;\n closeOnEscape: boolean;\n zIndex: React.CSSProperties['zIndex'];\n radius?: MantineNumberSize;\n shadow?: MantineShadow;\n onClose?(): void;\n getDropdownId(): string;\n getTargetId(): string;\n controlled: boolean;\n onToggle(): void;\n withRoles: boolean;\n targetProps: Record<string, any>;\n disabled: boolean;\n returnFocus: boolean;\n classNames: ClassNames<PopoverStylesNames>;\n styles: Styles<PopoverStylesNames, PopoverStylesParams>;\n unstyled: boolean;\n __staticSelector: string;\n variant: string;\n keepMounted: boolean;\n}\n\nexport const [PopoverContextProvider, usePopoverContext] = createSafeContext<PopoverContext>(\n POPOVER_ERRORS.context\n);\n"],"names":["createSafeContext","POPOVER_ERRORS"],"mappings":";;;;;;;AAEY,MAAC,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,GAAGA,uBAAiB,CAACC,6BAAc,CAAC,OAAO;;;;;"}
|
|
1
|
+
{"version":3,"file":"Popover.context.js","sources":["../../src/Popover/Popover.context.ts"],"sourcesContent":["import { ReferenceType } from '@floating-ui/react';\nimport { createSafeContext } from '@mantine/utils';\nimport { MantineNumberSize, MantineShadow, ClassNames, Styles } from '@mantine/styles';\nimport { FloatingPosition, ArrowPosition } from '../Floating';\nimport { TransitionOverride } from '../Transition';\nimport { PortalProps } from '../Portal';\nimport { POPOVER_ERRORS } from './Popover.errors';\nimport { PopoverWidth, PopoverStylesNames, PopoverStylesParams } from './Popover.types';\n\ninterface PopoverContext {\n x: number;\n y: number;\n arrowX: number;\n arrowY: number;\n arrowRef: React.RefObject<HTMLDivElement>;\n opened: boolean;\n transitionProps?: TransitionOverride;\n reference: (node: ReferenceType) => void;\n floating: (node: HTMLElement) => void;\n width?: PopoverWidth;\n withArrow: boolean;\n arrowSize: number;\n arrowOffset: number;\n arrowRadius: number;\n arrowPosition: ArrowPosition;\n trapFocus: boolean;\n placement: FloatingPosition;\n withinPortal: boolean;\n portalProps?: PortalProps;\n closeOnEscape: boolean;\n zIndex: React.CSSProperties['zIndex'];\n radius?: MantineNumberSize;\n shadow?: MantineShadow;\n onClose?(): void;\n getDropdownId(): string;\n getTargetId(): string;\n controlled: boolean;\n onToggle(): void;\n withRoles: boolean;\n targetProps: Record<string, any>;\n disabled: boolean;\n returnFocus: boolean;\n classNames: ClassNames<PopoverStylesNames>;\n styles: Styles<PopoverStylesNames, PopoverStylesParams>;\n unstyled: boolean;\n __staticSelector: string;\n variant: string;\n keepMounted: boolean;\n}\n\nexport const [PopoverContextProvider, usePopoverContext] = createSafeContext<PopoverContext>(\n POPOVER_ERRORS.context\n);\n"],"names":["createSafeContext","POPOVER_ERRORS"],"mappings":";;;;;;;AAEY,MAAC,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,GAAGA,uBAAiB,CAACC,6BAAc,CAAC,OAAO;;;;;"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const POPOVER_ERRORS = {
|
|
6
6
|
context: "Popover component was not found in the tree",
|
|
7
|
-
children: "Popover.Target component children should be an element or a component that accepts ref
|
|
7
|
+
children: "Popover.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported"
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
exports.POPOVER_ERRORS = POPOVER_ERRORS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.errors.js","sources":["../../src/Popover/Popover.errors.ts"],"sourcesContent":["export const POPOVER_ERRORS = {\n context: 'Popover component was not found in the tree',\n children:\n 'Popover.Target component children should be an element or a component that accepts ref
|
|
1
|
+
{"version":3,"file":"Popover.errors.js","sources":["../../src/Popover/Popover.errors.ts"],"sourcesContent":["export const POPOVER_ERRORS = {\n context: 'Popover component was not found in the tree',\n children:\n 'Popover.Target component children should be an element or a component that accepts ref. Fragments, strings, numbers and other primitive values are not supported',\n};\n"],"names":[],"mappings":";;;;AAAY,MAAC,cAAc,GAAG;AAC9B,EAAE,OAAO,EAAE,6CAA6C;AACxD,EAAE,QAAQ,EAAE,kKAAkK;AAC9K;;;;"}
|
package/cjs/Popover/Popover.js
CHANGED
|
@@ -74,6 +74,7 @@ function Popover(props) {
|
|
|
74
74
|
styles: styles$1,
|
|
75
75
|
closeOnClickOutside,
|
|
76
76
|
withinPortal,
|
|
77
|
+
portalProps,
|
|
77
78
|
closeOnEscape,
|
|
78
79
|
clickOutsideEvents,
|
|
79
80
|
trapFocus,
|
|
@@ -111,6 +112,7 @@ function Popover(props) {
|
|
|
111
112
|
"styles",
|
|
112
113
|
"closeOnClickOutside",
|
|
113
114
|
"withinPortal",
|
|
115
|
+
"portalProps",
|
|
114
116
|
"closeOnEscape",
|
|
115
117
|
"clickOutsideEvents",
|
|
116
118
|
"trapFocus",
|
|
@@ -183,6 +185,7 @@ function Popover(props) {
|
|
|
183
185
|
placement: popover.floating.placement,
|
|
184
186
|
trapFocus,
|
|
185
187
|
withinPortal,
|
|
188
|
+
portalProps,
|
|
186
189
|
zIndex,
|
|
187
190
|
radius,
|
|
188
191
|
shadow,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","sources":["../../src/Popover/Popover.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n\nimport React, { useRef, useState, useCallback } from 'react';\nimport { useId, useClickOutside } from '@mantine/hooks';\nimport {\n useMantineTheme,\n ClassNames,\n Styles,\n MantineNumberSize,\n MantineShadow,\n getDefaultZIndex,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { TransitionOverride } from '../Transition';\nimport { getFloatingPosition, FloatingPosition, ArrowPosition } from '../Floating';\nimport { usePopover } from './use-popover';\nimport { PopoverContextProvider } from './Popover.context';\nimport {\n PopoverWidth,\n PopoverMiddlewares,\n PopoverStylesNames,\n PopoverStylesParams,\n} from './Popover.types';\nimport { PopoverTarget } from './PopoverTarget/PopoverTarget';\nimport { PopoverDropdown } from './PopoverDropdown/PopoverDropdown';\n\nexport interface PopoverBaseProps {\n /** Dropdown position relative to target */\n position?: FloatingPosition;\n\n /** Space between target element and dropdown */\n offset?: number;\n\n /** Called when dropdown position changes */\n onPositionChange?(position: FloatingPosition): void;\n\n /** useEffect dependencies to force update dropdown position */\n positionDependencies?: any[];\n\n /** Called when dropdown closes */\n onClose?(): void;\n\n /** Called when dropdown opens */\n onOpen?(): void;\n\n /** If set dropdown will not be unmounted from the DOM when it is hidden, display: none styles will be added instead */\n keepMounted?: boolean;\n\n /** Props added to Transition component that used to animate dropdown presence, use to configure duration and animation type, { duration: 150, transition: 'fade' } by default */\n transitionProps?: TransitionOverride;\n\n /** Dropdown width, or 'target' to make dropdown width the same as target element */\n width?: PopoverWidth;\n\n /** Floating ui middlewares to configure position handling */\n middlewares?: PopoverMiddlewares;\n\n /** Determines whether component should have an arrow */\n withArrow?: boolean;\n\n /** Arrow size */\n arrowSize?: number;\n\n /** Arrow offset */\n arrowOffset?: number;\n\n /** Arrow border-radius */\n arrowRadius?: number;\n\n /** Arrow position **/\n arrowPosition?: ArrowPosition;\n\n /** Determines whether dropdown should be rendered within Portal, defaults to false */\n withinPortal?: boolean;\n\n /** Dropdown z-index */\n zIndex?: React.CSSProperties['zIndex'];\n\n /** Key of theme.radius or any valid CSS value to set border-radius, theme.defaultRadius by default */\n radius?: MantineNumberSize;\n\n /** Key of theme.shadow or any other valid css box-shadow value */\n shadow?: MantineShadow;\n\n /** If set, popover dropdown will not render */\n disabled?: boolean;\n\n /** Determines whether focus should be automatically returned to control when dropdown closes, false by default */\n returnFocus?: boolean;\n}\n\nexport interface PopoverProps extends PopoverBaseProps {\n /** Popover.Target and Popover.Dropdown components */\n children: React.ReactNode;\n\n /** Initial opened state for uncontrolled component */\n defaultOpened?: boolean;\n\n /** Controls dropdown opened state */\n opened?: boolean;\n\n /** Called with current state when dropdown opens or closes */\n onChange?(opened: boolean): void;\n\n /** Determines whether dropdown should be closed on outside clicks, default to true */\n closeOnClickOutside?: boolean;\n\n /** Events that trigger outside clicks */\n clickOutsideEvents?: string[];\n\n /** Determines whether focus should be trapped within dropdown, default to false */\n trapFocus?: boolean;\n\n /** Determines whether dropdown should be closed when Escape key is pressed, defaults to true */\n closeOnEscape?: boolean;\n\n /** id base to create accessibility connections */\n id?: string;\n\n /** Determines whether dropdown and target element should have accessible roles, defaults to true */\n withRoles?: boolean;\n\n variant?: string;\n unstyled?: boolean;\n classNames?: ClassNames<PopoverStylesNames>;\n styles?: Styles<PopoverStylesNames, PopoverStylesParams>;\n __staticSelector?: string;\n}\n\nconst defaultProps: Partial<PopoverProps> = {\n position: 'bottom',\n offset: 8,\n positionDependencies: [],\n transitionProps: { transition: 'fade', duration: 150 },\n middlewares: { flip: true, shift: true, inline: false },\n arrowSize: 7,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: 'side',\n closeOnClickOutside: true,\n withinPortal: false,\n closeOnEscape: true,\n trapFocus: false,\n withRoles: true,\n returnFocus: false,\n clickOutsideEvents: ['mousedown', 'touchstart'],\n zIndex: getDefaultZIndex('popover'),\n __staticSelector: 'Popover',\n width: 'max-content',\n};\n\nexport function Popover(props: PopoverProps) {\n const arrowRef = useRef<HTMLDivElement | null>(null);\n const {\n children,\n position,\n offset,\n onPositionChange,\n positionDependencies,\n opened,\n transitionProps,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus,\n variant,\n keepMounted,\n ...others\n } = useComponentDefaultProps('Popover', defaultProps, props);\n\n const [targetNode, setTargetNode] = useState<HTMLElement>(null);\n const [dropdownNode, setDropdownNode] = useState<HTMLElement>(null);\n\n const uid = useId(id);\n const theme = useMantineTheme();\n const popover = usePopover({\n middlewares,\n width,\n position: getFloatingPosition(theme.dir, position),\n offset: offset + (withArrow ? arrowSize / 2 : 0),\n arrowRef,\n arrowOffset,\n onPositionChange,\n positionDependencies,\n opened,\n defaultOpened,\n onChange,\n onOpen,\n onClose,\n });\n\n useClickOutside(() => closeOnClickOutside && popover.onClose(), clickOutsideEvents, [\n targetNode,\n dropdownNode,\n ]);\n\n const reference = useCallback(\n (node: HTMLElement) => {\n setTargetNode(node);\n popover.floating.reference(node);\n },\n [popover.floating.reference]\n );\n\n const floating = useCallback(\n (node: HTMLElement) => {\n setDropdownNode(node);\n popover.floating.floating(node);\n },\n [popover.floating.floating]\n );\n\n return (\n <PopoverContextProvider\n value={{\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: popover.floating?.middlewareData?.arrow?.x,\n arrowY: popover.floating?.middlewareData?.arrow?.y,\n opened: popover.opened,\n arrowRef,\n transitionProps,\n width,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => `${uid}-target`,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n keepMounted,\n }}\n >\n {children}\n </PopoverContextProvider>\n );\n}\n\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.displayName = '@mantine/core/Popover';\n"],"names":["getDefaultZIndex","useRef","useComponentDefaultProps","styles","useState","useId","useMantineTheme","usePopover","getFloatingPosition","useClickOutside","useCallback","React","PopoverContextProvider","PopoverTarget","PopoverDropdown"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Popover.js","sources":["../../src/Popover/Popover.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\n\nimport React, { useRef, useState, useCallback } from 'react';\nimport { useId, useClickOutside } from '@mantine/hooks';\nimport {\n useMantineTheme,\n ClassNames,\n Styles,\n MantineNumberSize,\n MantineShadow,\n getDefaultZIndex,\n useComponentDefaultProps,\n} from '@mantine/styles';\nimport { TransitionOverride } from '../Transition';\nimport { getFloatingPosition, FloatingPosition, ArrowPosition } from '../Floating';\nimport { PortalProps } from '../Portal';\nimport { usePopover } from './use-popover';\nimport { PopoverContextProvider } from './Popover.context';\nimport {\n PopoverWidth,\n PopoverMiddlewares,\n PopoverStylesNames,\n PopoverStylesParams,\n} from './Popover.types';\nimport { PopoverTarget } from './PopoverTarget/PopoverTarget';\nimport { PopoverDropdown } from './PopoverDropdown/PopoverDropdown';\n\nexport interface PopoverBaseProps {\n /** Dropdown position relative to target */\n position?: FloatingPosition;\n\n /** Space between target element and dropdown */\n offset?: number;\n\n /** Called when dropdown position changes */\n onPositionChange?(position: FloatingPosition): void;\n\n /** useEffect dependencies to force update dropdown position */\n positionDependencies?: any[];\n\n /** Called when dropdown closes */\n onClose?(): void;\n\n /** Called when dropdown opens */\n onOpen?(): void;\n\n /** If set dropdown will not be unmounted from the DOM when it is hidden, display: none styles will be added instead */\n keepMounted?: boolean;\n\n /** Props added to Transition component that used to animate dropdown presence, use to configure duration and animation type, { duration: 150, transition: 'fade' } by default */\n transitionProps?: TransitionOverride;\n\n /** Dropdown width, or 'target' to make dropdown width the same as target element */\n width?: PopoverWidth;\n\n /** Floating ui middlewares to configure position handling */\n middlewares?: PopoverMiddlewares;\n\n /** Determines whether component should have an arrow */\n withArrow?: boolean;\n\n /** Arrow size */\n arrowSize?: number;\n\n /** Arrow offset */\n arrowOffset?: number;\n\n /** Arrow border-radius */\n arrowRadius?: number;\n\n /** Arrow position **/\n arrowPosition?: ArrowPosition;\n\n /** Determines whether dropdown should be rendered within Portal, defaults to false */\n withinPortal?: boolean;\n\n /** Props to pass down to the portal when withinPortal is true */\n portalProps?: PortalProps;\n\n /** Dropdown z-index */\n zIndex?: React.CSSProperties['zIndex'];\n\n /** Key of theme.radius or any valid CSS value to set border-radius, theme.defaultRadius by default */\n radius?: MantineNumberSize;\n\n /** Key of theme.shadow or any other valid css box-shadow value */\n shadow?: MantineShadow;\n\n /** If set, popover dropdown will not render */\n disabled?: boolean;\n\n /** Determines whether focus should be automatically returned to control when dropdown closes, false by default */\n returnFocus?: boolean;\n}\n\nexport interface PopoverProps extends PopoverBaseProps {\n /** Popover.Target and Popover.Dropdown components */\n children: React.ReactNode;\n\n /** Initial opened state for uncontrolled component */\n defaultOpened?: boolean;\n\n /** Controls dropdown opened state */\n opened?: boolean;\n\n /** Called with current state when dropdown opens or closes */\n onChange?(opened: boolean): void;\n\n /** Determines whether dropdown should be closed on outside clicks, default to true */\n closeOnClickOutside?: boolean;\n\n /** Events that trigger outside clicks */\n clickOutsideEvents?: string[];\n\n /** Determines whether focus should be trapped within dropdown, default to false */\n trapFocus?: boolean;\n\n /** Determines whether dropdown should be closed when Escape key is pressed, defaults to true */\n closeOnEscape?: boolean;\n\n /** id base to create accessibility connections */\n id?: string;\n\n /** Determines whether dropdown and target element should have accessible roles, defaults to true */\n withRoles?: boolean;\n\n variant?: string;\n unstyled?: boolean;\n classNames?: ClassNames<PopoverStylesNames>;\n styles?: Styles<PopoverStylesNames, PopoverStylesParams>;\n __staticSelector?: string;\n}\n\nconst defaultProps: Partial<PopoverProps> = {\n position: 'bottom',\n offset: 8,\n positionDependencies: [],\n transitionProps: { transition: 'fade', duration: 150 },\n middlewares: { flip: true, shift: true, inline: false },\n arrowSize: 7,\n arrowOffset: 5,\n arrowRadius: 0,\n arrowPosition: 'side',\n closeOnClickOutside: true,\n withinPortal: false,\n closeOnEscape: true,\n trapFocus: false,\n withRoles: true,\n returnFocus: false,\n clickOutsideEvents: ['mousedown', 'touchstart'],\n zIndex: getDefaultZIndex('popover'),\n __staticSelector: 'Popover',\n width: 'max-content',\n};\n\nexport function Popover(props: PopoverProps) {\n const arrowRef = useRef<HTMLDivElement | null>(null);\n const {\n children,\n position,\n offset,\n onPositionChange,\n positionDependencies,\n opened,\n transitionProps,\n width,\n middlewares,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n unstyled,\n classNames,\n styles,\n closeOnClickOutside,\n withinPortal,\n portalProps,\n closeOnEscape,\n clickOutsideEvents,\n trapFocus,\n onClose,\n onOpen,\n onChange,\n zIndex,\n radius,\n shadow,\n id,\n defaultOpened,\n __staticSelector,\n withRoles,\n disabled,\n returnFocus,\n variant,\n keepMounted,\n ...others\n } = useComponentDefaultProps('Popover', defaultProps, props);\n\n const [targetNode, setTargetNode] = useState<HTMLElement>(null);\n const [dropdownNode, setDropdownNode] = useState<HTMLElement>(null);\n\n const uid = useId(id);\n const theme = useMantineTheme();\n const popover = usePopover({\n middlewares,\n width,\n position: getFloatingPosition(theme.dir, position),\n offset: offset + (withArrow ? arrowSize / 2 : 0),\n arrowRef,\n arrowOffset,\n onPositionChange,\n positionDependencies,\n opened,\n defaultOpened,\n onChange,\n onOpen,\n onClose,\n });\n\n useClickOutside(() => closeOnClickOutside && popover.onClose(), clickOutsideEvents, [\n targetNode,\n dropdownNode,\n ]);\n\n const reference = useCallback(\n (node: HTMLElement) => {\n setTargetNode(node);\n popover.floating.reference(node);\n },\n [popover.floating.reference]\n );\n\n const floating = useCallback(\n (node: HTMLElement) => {\n setDropdownNode(node);\n popover.floating.floating(node);\n },\n [popover.floating.floating]\n );\n\n return (\n <PopoverContextProvider\n value={{\n returnFocus,\n disabled,\n controlled: popover.controlled,\n reference,\n floating,\n x: popover.floating.x,\n y: popover.floating.y,\n arrowX: popover.floating?.middlewareData?.arrow?.x,\n arrowY: popover.floating?.middlewareData?.arrow?.y,\n opened: popover.opened,\n arrowRef,\n transitionProps,\n width,\n withArrow,\n arrowSize,\n arrowOffset,\n arrowRadius,\n arrowPosition,\n placement: popover.floating.placement,\n trapFocus,\n withinPortal,\n portalProps,\n zIndex,\n radius,\n shadow,\n closeOnEscape,\n onClose: popover.onClose,\n onToggle: popover.onToggle,\n getTargetId: () => `${uid}-target`,\n getDropdownId: () => `${uid}-dropdown`,\n withRoles,\n targetProps: others,\n __staticSelector,\n classNames,\n styles,\n unstyled,\n variant,\n keepMounted,\n }}\n >\n {children}\n </PopoverContextProvider>\n );\n}\n\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\nPopover.displayName = '@mantine/core/Popover';\n"],"names":["getDefaultZIndex","useRef","useComponentDefaultProps","styles","useState","useId","useMantineTheme","usePopover","getFloatingPosition","useClickOutside","useCallback","React","PopoverContextProvider","PopoverTarget","PopoverDropdown"],"mappings":"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"}
|
|
@@ -73,9 +73,9 @@ function PopoverDropdown(props) {
|
|
|
73
73
|
if (ctx.disabled) {
|
|
74
74
|
return null;
|
|
75
75
|
}
|
|
76
|
-
return /* @__PURE__ */ React__default.createElement(OptionalPortal.OptionalPortal, {
|
|
76
|
+
return /* @__PURE__ */ React__default.createElement(OptionalPortal.OptionalPortal, __spreadValues({
|
|
77
77
|
withinPortal: ctx.withinPortal
|
|
78
|
-
}, /* @__PURE__ */ React__default.createElement(Transition.Transition, __spreadProps(__spreadValues({
|
|
78
|
+
}, ctx.portalProps), /* @__PURE__ */ React__default.createElement(Transition.Transition, __spreadProps(__spreadValues({
|
|
79
79
|
mounted: ctx.opened
|
|
80
80
|
}, ctx.transitionProps), {
|
|
81
81
|
transition: ctx.transitionProps.transition || "fade",
|
|
@@ -88,7 +88,6 @@ function PopoverDropdown(props) {
|
|
|
88
88
|
active: ctx.trapFocus
|
|
89
89
|
}, /* @__PURE__ */ React__default.createElement(Box.Box, __spreadValues(__spreadProps(__spreadValues({}, accessibleProps), {
|
|
90
90
|
tabIndex: -1,
|
|
91
|
-
key: ctx.placement,
|
|
92
91
|
ref: ctx.floating,
|
|
93
92
|
style: __spreadProps(__spreadValues(__spreadValues({}, style), transitionStyles), {
|
|
94
93
|
zIndex: ctx.zIndex,
|
|
@@ -108,7 +107,6 @@ function PopoverDropdown(props) {
|
|
|
108
107
|
arrowX: ctx.arrowX,
|
|
109
108
|
arrowY: ctx.arrowY,
|
|
110
109
|
visible: ctx.withArrow,
|
|
111
|
-
withBorder: true,
|
|
112
110
|
position: ctx.placement,
|
|
113
111
|
arrowSize: ctx.arrowSize,
|
|
114
112
|
arrowRadius: ctx.arrowRadius,
|