frey-ui 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/Calendar/calendar.css +216 -0
- package/dist/cjs/Calendar/calendar.module.css.cjs +10 -0
- package/dist/cjs/Calendar/calendar.module.css.cjs.map +1 -0
- package/dist/cjs/Calendar/calendarInteractions.cjs +34 -0
- package/dist/cjs/Calendar/calendarInteractions.cjs.map +1 -0
- package/dist/cjs/Calendar/calendarModel.cjs +232 -0
- package/dist/cjs/Calendar/calendarModel.cjs.map +1 -0
- package/dist/cjs/Calendar/index.cjs +204 -0
- package/dist/cjs/Calendar/index.cjs.map +1 -0
- package/dist/cjs/DateField/DateFieldSegments.cjs +71 -0
- package/dist/cjs/DateField/DateFieldSegments.cjs.map +1 -0
- package/dist/cjs/DateField/DateSegmentInput.cjs +17 -0
- package/dist/cjs/DateField/DateSegmentInput.cjs.map +1 -0
- package/dist/cjs/DateField/dateFieldInteractions.cjs +205 -0
- package/dist/cjs/DateField/dateFieldInteractions.cjs.map +1 -0
- package/dist/cjs/DateField/dateFieldState.cjs +127 -0
- package/dist/cjs/DateField/dateFieldState.cjs.map +1 -0
- package/dist/cjs/DateField/datefield.css +134 -0
- package/dist/cjs/DateField/datefield.module.css.cjs +10 -0
- package/dist/cjs/DateField/datefield.module.css.cjs.map +1 -0
- package/dist/cjs/DateField/index.cjs +203 -0
- package/dist/cjs/DateField/index.cjs.map +1 -0
- package/dist/cjs/DatePicker/datepicker.css +24 -0
- package/dist/cjs/DatePicker/datepicker.module.css.cjs +10 -0
- package/dist/cjs/DatePicker/datepicker.module.css.cjs.map +1 -0
- package/dist/cjs/DatePicker/index.cjs +98 -0
- package/dist/cjs/DatePicker/index.cjs.map +1 -0
- package/dist/cjs/DropdownMenu/index.cjs +28 -55
- package/dist/cjs/DropdownMenu/index.cjs.map +1 -1
- package/dist/cjs/Icons/CalendarIcon.cjs +12 -0
- package/dist/cjs/Icons/CalendarIcon.cjs.map +1 -0
- package/dist/cjs/Popover/index.cjs +29 -52
- package/dist/cjs/Popover/index.cjs.map +1 -1
- package/dist/cjs/Tooltip/index.cjs +29 -34
- package/dist/cjs/Tooltip/index.cjs.map +1 -1
- package/dist/cjs/date/dateEngine.cjs +591 -0
- package/dist/cjs/date/dateEngine.cjs.map +1 -0
- package/dist/cjs/date/dateLocale.cjs +239 -0
- package/dist/cjs/date/dateLocale.cjs.map +1 -0
- package/dist/cjs/date/japaneseEraData.cjs +252 -0
- package/dist/cjs/date/japaneseEraData.cjs.map +1 -0
- package/dist/cjs/date/useDateLocale.cjs +24 -0
- package/dist/cjs/date/useDateLocale.cjs.map +1 -0
- package/dist/cjs/floating/FocusScope.cjs +195 -0
- package/dist/cjs/floating/FocusScope.cjs.map +1 -0
- package/dist/cjs/floating/autoUpdate.cjs +205 -0
- package/dist/cjs/floating/autoUpdate.cjs.map +1 -0
- package/dist/cjs/floating/dismissibleLayer.cjs +116 -0
- package/dist/cjs/floating/dismissibleLayer.cjs.map +1 -0
- package/dist/cjs/floating/geometry.cjs +160 -0
- package/dist/cjs/floating/geometry.cjs.map +1 -0
- package/dist/cjs/floating/platform.cjs +15 -0
- package/dist/cjs/floating/platform.cjs.map +1 -0
- package/dist/cjs/floating/pointerEvent.cjs +92 -0
- package/dist/cjs/floating/pointerEvent.cjs.map +1 -0
- package/dist/cjs/floating/tabbable.cjs +101 -0
- package/dist/cjs/floating/tabbable.cjs.map +1 -0
- package/dist/cjs/floating/useFloatingPosition.cjs +119 -0
- package/dist/cjs/floating/useFloatingPosition.cjs.map +1 -0
- package/dist/cjs/floating/useTooltipInteractions.cjs +136 -0
- package/dist/cjs/floating/useTooltipInteractions.cjs.map +1 -0
- package/dist/cjs/index.cjs +68 -60
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/theme.css +14 -0
- package/dist/esm/Calendar/calendar.css +216 -0
- package/dist/esm/Calendar/calendar.module.css.mjs +6 -0
- package/dist/esm/Calendar/calendar.module.css.mjs.map +1 -0
- package/dist/esm/Calendar/calendarInteractions.mjs +32 -0
- package/dist/esm/Calendar/calendarInteractions.mjs.map +1 -0
- package/dist/esm/Calendar/calendarModel.mjs +224 -0
- package/dist/esm/Calendar/calendarModel.mjs.map +1 -0
- package/dist/esm/Calendar/index.mjs +200 -0
- package/dist/esm/Calendar/index.mjs.map +1 -0
- package/dist/esm/DateField/DateFieldSegments.mjs +69 -0
- package/dist/esm/DateField/DateFieldSegments.mjs.map +1 -0
- package/dist/esm/DateField/DateSegmentInput.mjs +15 -0
- package/dist/esm/DateField/DateSegmentInput.mjs.map +1 -0
- package/dist/esm/DateField/dateFieldInteractions.mjs +198 -0
- package/dist/esm/DateField/dateFieldInteractions.mjs.map +1 -0
- package/dist/esm/DateField/dateFieldState.mjs +119 -0
- package/dist/esm/DateField/dateFieldState.mjs.map +1 -0
- package/dist/esm/DateField/datefield.css +134 -0
- package/dist/esm/DateField/datefield.module.css.mjs +6 -0
- package/dist/esm/DateField/datefield.module.css.mjs.map +1 -0
- package/dist/esm/DateField/index.mjs +198 -0
- package/dist/esm/DateField/index.mjs.map +1 -0
- package/dist/esm/DatePicker/datepicker.css +24 -0
- package/dist/esm/DatePicker/datepicker.module.css.mjs +6 -0
- package/dist/esm/DatePicker/datepicker.module.css.mjs.map +1 -0
- package/dist/esm/DatePicker/index.mjs +94 -0
- package/dist/esm/DatePicker/index.mjs.map +1 -0
- package/dist/esm/DropdownMenu/index.mjs +29 -56
- package/dist/esm/DropdownMenu/index.mjs.map +1 -1
- package/dist/esm/Icons/CalendarIcon.mjs +10 -0
- package/dist/esm/Icons/CalendarIcon.mjs.map +1 -0
- package/dist/esm/Popover/index.mjs +30 -53
- package/dist/esm/Popover/index.mjs.map +1 -1
- package/dist/esm/Tooltip/index.mjs +29 -34
- package/dist/esm/Tooltip/index.mjs.map +1 -1
- package/dist/esm/date/dateEngine.mjs +573 -0
- package/dist/esm/date/dateEngine.mjs.map +1 -0
- package/dist/esm/date/dateLocale.mjs +226 -0
- package/dist/esm/date/dateLocale.mjs.map +1 -0
- package/dist/esm/date/japaneseEraData.mjs +250 -0
- package/dist/esm/date/japaneseEraData.mjs.map +1 -0
- package/dist/esm/date/useDateLocale.mjs +22 -0
- package/dist/esm/date/useDateLocale.mjs.map +1 -0
- package/dist/esm/floating/FocusScope.mjs +193 -0
- package/dist/esm/floating/FocusScope.mjs.map +1 -0
- package/dist/esm/floating/autoUpdate.mjs +202 -0
- package/dist/esm/floating/autoUpdate.mjs.map +1 -0
- package/dist/esm/floating/dismissibleLayer.mjs +114 -0
- package/dist/esm/floating/dismissibleLayer.mjs.map +1 -0
- package/dist/esm/floating/geometry.mjs +158 -0
- package/dist/esm/floating/geometry.mjs.map +1 -0
- package/dist/esm/floating/platform.mjs +12 -0
- package/dist/esm/floating/platform.mjs.map +1 -0
- package/dist/esm/floating/pointerEvent.mjs +89 -0
- package/dist/esm/floating/pointerEvent.mjs.map +1 -0
- package/dist/esm/floating/tabbable.mjs +99 -0
- package/dist/esm/floating/tabbable.mjs.map +1 -0
- package/dist/esm/floating/useFloatingPosition.mjs +117 -0
- package/dist/esm/floating/useFloatingPosition.mjs.map +1 -0
- package/dist/esm/floating/useTooltipInteractions.mjs +134 -0
- package/dist/esm/floating/useTooltipInteractions.mjs.map +1 -0
- package/dist/esm/index.mjs +4 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/theme.css +14 -0
- package/dist/index.d.ts +80 -3
- package/dist/types/src/Calendar/calendarInteractions.d.ts +9 -0
- package/dist/types/src/Calendar/calendarInteractions.d.ts.map +1 -0
- package/dist/types/src/Calendar/calendarModel.d.ts +81 -0
- package/dist/types/src/Calendar/calendarModel.d.ts.map +1 -0
- package/dist/types/src/Calendar/index.d.ts +26 -0
- package/dist/types/src/Calendar/index.d.ts.map +1 -0
- package/dist/types/src/DateField/DateFieldSegments.d.ts +28 -0
- package/dist/types/src/DateField/DateFieldSegments.d.ts.map +1 -0
- package/dist/types/src/DateField/DateSegmentInput.d.ts +23 -0
- package/dist/types/src/DateField/DateSegmentInput.d.ts.map +1 -0
- package/dist/types/src/DateField/dateFieldInteractions.d.ts +66 -0
- package/dist/types/src/DateField/dateFieldInteractions.d.ts.map +1 -0
- package/dist/types/src/DateField/dateFieldState.d.ts +32 -0
- package/dist/types/src/DateField/dateFieldState.d.ts.map +1 -0
- package/dist/types/src/DateField/index.d.ts +42 -0
- package/dist/types/src/DateField/index.d.ts.map +1 -0
- package/dist/types/src/DatePicker/index.d.ts +19 -0
- package/dist/types/src/DatePicker/index.d.ts.map +1 -0
- package/dist/types/src/DropdownMenu/index.d.ts.map +1 -1
- package/dist/types/src/Icons/CalendarIcon.d.ts +4 -0
- package/dist/types/src/Icons/CalendarIcon.d.ts.map +1 -0
- package/dist/types/src/Icons/index.d.ts +1 -0
- package/dist/types/src/Icons/index.d.ts.map +1 -1
- package/dist/types/src/Popover/index.d.ts +3 -1
- package/dist/types/src/Popover/index.d.ts.map +1 -1
- package/dist/types/src/Tooltip/index.d.ts.map +1 -1
- package/dist/types/src/date/dateEngine.d.ts +22 -0
- package/dist/types/src/date/dateEngine.d.ts.map +1 -0
- package/dist/types/src/date/dateLocale.d.ts +30 -0
- package/dist/types/src/date/dateLocale.d.ts.map +1 -0
- package/dist/types/src/date/japaneseEraData.d.ts +7 -0
- package/dist/types/src/date/japaneseEraData.d.ts.map +1 -0
- package/dist/types/src/date/types.d.ts +23 -0
- package/dist/types/src/date/types.d.ts.map +1 -0
- package/dist/types/src/date/useDateLocale.d.ts +2 -0
- package/dist/types/src/date/useDateLocale.d.ts.map +1 -0
- package/dist/types/src/floating/FocusScope.d.ts +11 -0
- package/dist/types/src/floating/FocusScope.d.ts.map +1 -0
- package/dist/types/src/floating/autoUpdate.d.ts +5 -0
- package/dist/types/src/floating/autoUpdate.d.ts.map +1 -0
- package/dist/types/src/floating/dismissibleLayer.d.ts +12 -0
- package/dist/types/src/floating/dismissibleLayer.d.ts.map +1 -0
- package/dist/types/src/floating/geometry.d.ts +27 -0
- package/dist/types/src/floating/geometry.d.ts.map +1 -0
- package/dist/types/src/floating/platform.d.ts +3 -0
- package/dist/types/src/floating/platform.d.ts.map +1 -0
- package/dist/types/src/floating/pointerEvent.d.ts +3 -0
- package/dist/types/src/floating/pointerEvent.d.ts.map +1 -0
- package/dist/types/src/floating/tabbable.d.ts +2 -0
- package/dist/types/src/floating/tabbable.d.ts.map +1 -0
- package/dist/types/src/floating/useFloatingPosition.d.ts +18 -0
- package/dist/types/src/floating/useFloatingPosition.d.ts.map +1 -0
- package/dist/types/src/floating/useTooltipInteractions.d.ts +9 -0
- package/dist/types/src/floating/useTooltipInteractions.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +8 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/package.json +1 -2
- package/dist/cjs/hooks/floatingConfig.cjs +0 -24
- package/dist/cjs/hooks/floatingConfig.cjs.map +0 -1
- package/dist/esm/hooks/floatingConfig.mjs +0 -20
- package/dist/esm/hooks/floatingConfig.mjs.map +0 -1
- package/dist/types/src/hooks/floatingConfig.d.ts +0 -6
- package/dist/types/src/hooks/floatingConfig.d.ts.map +0 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { FloatingFocusManager, useFloatingRootContext, useFloating, autoUpdate, useDismiss, useInteractions } from '@floating-ui/react';
|
|
4
3
|
import clsx from 'clsx';
|
|
5
|
-
import React, { useId
|
|
6
|
-
import {
|
|
4
|
+
import React, { useId } from 'react';
|
|
5
|
+
import { useDismissibleLayer } from '../floating/dismissibleLayer.mjs';
|
|
6
|
+
import { FocusScope } from '../floating/FocusScope.mjs';
|
|
7
|
+
import { useFloatingPosition } from '../floating/useFloatingPosition.mjs';
|
|
7
8
|
import { useControllableValue } from '../hooks/useControllableState.mjs';
|
|
8
9
|
import { mergeRefs } from '../utils/mergeRefs.mjs';
|
|
9
10
|
import Portal from '../utils/Portal.mjs';
|
|
@@ -20,73 +21,50 @@ function usePopoverContext() {
|
|
|
20
21
|
}
|
|
21
22
|
const PopoverRoot = function Popover({ open, defaultOpen = false, onOpenChange, placement = 'bottom', offset = 8, closeOnEscape = true, closeOnOutsideClick = true, children, }) {
|
|
22
23
|
const idPrefix = useId();
|
|
23
|
-
const triggerRef = useRef(null);
|
|
24
|
-
const [referenceElement, setReferenceElement] = useState(null);
|
|
25
|
-
const [floatingElement, setFloatingElement] = useState(null);
|
|
26
24
|
const [currentOpen, handleOpenChange] = useControllableValue(open, defaultOpen, onOpenChange);
|
|
27
|
-
const
|
|
28
|
-
handleOpenChange(nextOpen);
|
|
29
|
-
if (!nextOpen && reason === 'escape-key') {
|
|
30
|
-
triggerRef.current?.focus();
|
|
31
|
-
}
|
|
32
|
-
}, [handleOpenChange]);
|
|
33
|
-
const floatingRootContext = useFloatingRootContext({
|
|
25
|
+
const { referenceRef: triggerRef, floatingRef, setReference, setFloating, floatingStyles, } = useFloatingPosition({
|
|
34
26
|
open: currentOpen,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
floating: floatingElement,
|
|
39
|
-
},
|
|
27
|
+
side: placement,
|
|
28
|
+
alignment: 'center',
|
|
29
|
+
offset,
|
|
40
30
|
});
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
31
|
+
const handleDismiss = React.useCallback((reason) => {
|
|
32
|
+
handleOpenChange(false);
|
|
33
|
+
if (reason === 'escape')
|
|
34
|
+
triggerRef.current?.focus();
|
|
35
|
+
}, [handleOpenChange, triggerRef]);
|
|
36
|
+
useDismissibleLayer({
|
|
37
|
+
open: currentOpen,
|
|
38
|
+
referenceRef: triggerRef,
|
|
39
|
+
floatingRef,
|
|
40
|
+
closeOnEscape,
|
|
41
|
+
closeOnOutsidePointerDown: closeOnOutsideClick,
|
|
42
|
+
onDismiss: handleDismiss,
|
|
53
43
|
});
|
|
54
|
-
const { getReferenceProps, getFloatingProps } = useInteractions([dismiss]);
|
|
55
|
-
const setReference = React.useCallback((node) => {
|
|
56
|
-
refs.setReference(node);
|
|
57
|
-
setReferenceElement(node);
|
|
58
|
-
}, [refs]);
|
|
59
|
-
const setFloating = React.useCallback((node) => {
|
|
60
|
-
refs.setFloating(node);
|
|
61
|
-
setFloatingElement(node);
|
|
62
|
-
}, [refs]);
|
|
63
44
|
const contextValue = React.useMemo(() => ({
|
|
64
45
|
open: currentOpen,
|
|
65
46
|
onOpenChange: handleOpenChange,
|
|
66
47
|
idPrefix,
|
|
67
48
|
triggerRef,
|
|
49
|
+
floatingRef,
|
|
68
50
|
setReference,
|
|
69
51
|
setFloating,
|
|
70
52
|
floatingStyles,
|
|
71
|
-
floatingContext,
|
|
72
|
-
getReferenceProps,
|
|
73
|
-
getFloatingProps,
|
|
74
53
|
}), [
|
|
75
54
|
currentOpen,
|
|
76
55
|
handleOpenChange,
|
|
77
56
|
idPrefix,
|
|
57
|
+
triggerRef,
|
|
58
|
+
floatingRef,
|
|
78
59
|
setReference,
|
|
79
60
|
setFloating,
|
|
80
61
|
floatingStyles,
|
|
81
|
-
floatingContext,
|
|
82
|
-
getReferenceProps,
|
|
83
|
-
getFloatingProps,
|
|
84
62
|
]);
|
|
85
63
|
return (jsx(PopoverContext.Provider, { value: contextValue, children: children }));
|
|
86
64
|
};
|
|
87
65
|
PopoverRoot.displayName = 'Popover';
|
|
88
66
|
const PopoverTrigger = React.forwardRef(function PopoverTrigger({ children, asChild = false, onClick, type, ...triggerProps }, ref) {
|
|
89
|
-
const { open, onOpenChange, idPrefix, triggerRef, setReference
|
|
67
|
+
const { open, onOpenChange, idPrefix, triggerRef, setReference } = usePopoverContext();
|
|
90
68
|
const mergedRef = mergeRefs(ref, triggerRef, setReference);
|
|
91
69
|
const handleClick = (event) => {
|
|
92
70
|
onClick?.(event);
|
|
@@ -94,13 +72,13 @@ const PopoverTrigger = React.forwardRef(function PopoverTrigger({ children, asCh
|
|
|
94
72
|
onOpenChange(!open);
|
|
95
73
|
}
|
|
96
74
|
};
|
|
97
|
-
const referenceProps =
|
|
75
|
+
const referenceProps = {
|
|
98
76
|
...triggerProps,
|
|
99
77
|
onClick: handleClick,
|
|
100
78
|
'aria-haspopup': 'dialog',
|
|
101
79
|
'aria-expanded': open,
|
|
102
80
|
'aria-controls': `${idPrefix}-content`,
|
|
103
|
-
}
|
|
81
|
+
};
|
|
104
82
|
if (asChild) {
|
|
105
83
|
if (!React.isValidElement(children)) {
|
|
106
84
|
throw new Error('Popover.Trigger with asChild expects a single valid React element child.');
|
|
@@ -110,15 +88,14 @@ const PopoverTrigger = React.forwardRef(function PopoverTrigger({ children, asCh
|
|
|
110
88
|
return (jsx("button", { ref: mergedRef, type: type ?? 'button', ...referenceProps, children: children }));
|
|
111
89
|
});
|
|
112
90
|
PopoverTrigger.displayName = 'Popover.Trigger';
|
|
113
|
-
const PopoverContent = React.forwardRef(function PopoverContent({ className, style, children, ...props }, ref) {
|
|
114
|
-
const { open, idPrefix,
|
|
115
|
-
const floatingProps = getFloatingProps(props);
|
|
91
|
+
const PopoverContent = React.forwardRef(function PopoverContent({ className, style, children, initialFocusRef, ...props }, ref) {
|
|
92
|
+
const { open, idPrefix, triggerRef, floatingRef, setFloating, floatingStyles, } = usePopoverContext();
|
|
116
93
|
if (!open)
|
|
117
94
|
return null;
|
|
118
|
-
return (jsx(Portal, { children: jsx(
|
|
95
|
+
return (jsx(Portal, { children: jsx(FocusScope, { contentRef: floatingRef, triggerRef: triggerRef, initialFocusRef: initialFocusRef, children: jsx("div", { id: `${idPrefix}-content`, ref: mergeRefs(ref, setFloating), className: clsx(styles.popover_content, className), style: {
|
|
119
96
|
...floatingStyles,
|
|
120
97
|
...style,
|
|
121
|
-
}, ...
|
|
98
|
+
}, tabIndex: -1, ...props, children: children }) }) }));
|
|
122
99
|
});
|
|
123
100
|
PopoverContent.displayName = 'Popover.Content';
|
|
124
101
|
const Popover = Object.assign(PopoverRoot, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/Popover/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/Popover/index.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
-
import { useFloating, autoUpdate, useHover, useFocus, useDismiss, useInteractions } from '@floating-ui/react';
|
|
4
3
|
import clsx from 'clsx';
|
|
5
4
|
import React from 'react';
|
|
6
|
-
import {
|
|
5
|
+
import { useDismissibleLayer } from '../floating/dismissibleLayer.mjs';
|
|
6
|
+
import { useFloatingPosition } from '../floating/useFloatingPosition.mjs';
|
|
7
|
+
import { useTooltipInteractions } from '../floating/useTooltipInteractions.mjs';
|
|
7
8
|
import { useControllableValue } from '../hooks/useControllableState.mjs';
|
|
8
9
|
import Portal from '../utils/Portal.mjs';
|
|
9
10
|
import { Slot } from '../utils/slot.mjs';
|
|
@@ -13,56 +14,50 @@ function Tooltip({ children, asChild = false, content, open, defaultOpen = false
|
|
|
13
14
|
const generatedId = React.useId();
|
|
14
15
|
const tooltipId = id ?? `${generatedId}-tooltip`;
|
|
15
16
|
const [isOpen, setOpen] = useControllableValue(open, defaultOpen, onOpenChange);
|
|
16
|
-
const {
|
|
17
|
+
const { referenceRef, floatingRef, setReference, setFloating, floatingStyles, } = useFloatingPosition({
|
|
17
18
|
open: isOpen,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
strategy: 'fixed',
|
|
22
|
-
transform: false,
|
|
23
|
-
whileElementsMounted: autoUpdate,
|
|
19
|
+
side: placement,
|
|
20
|
+
alignment: 'center',
|
|
21
|
+
offset,
|
|
24
22
|
});
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
move: false,
|
|
23
|
+
const interactionProps = useTooltipInteractions({
|
|
24
|
+
open: isOpen,
|
|
25
|
+
delay,
|
|
26
|
+
reference: referenceRef.current,
|
|
27
|
+
onOpenChange: setOpen,
|
|
31
28
|
});
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
const handleDismiss = React.useCallback(() => {
|
|
30
|
+
setOpen(false);
|
|
31
|
+
}, [setOpen]);
|
|
32
|
+
useDismissibleLayer({
|
|
33
|
+
open: isOpen,
|
|
34
|
+
referenceRef,
|
|
35
|
+
floatingRef,
|
|
36
|
+
closeOnEscape: true,
|
|
37
|
+
closeOnOutsidePointerDown: false,
|
|
38
|
+
onDismiss: handleDismiss,
|
|
36
39
|
});
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
focus,
|
|
40
|
-
dismiss,
|
|
41
|
-
]);
|
|
42
|
-
const referenceProps = getReferenceProps({
|
|
40
|
+
const referenceProps = {
|
|
41
|
+
...interactionProps,
|
|
43
42
|
'aria-describedby': isOpen ? tooltipId : undefined,
|
|
44
|
-
}
|
|
43
|
+
};
|
|
45
44
|
let triggerElement;
|
|
46
45
|
if (asChild) {
|
|
47
46
|
if (!React.isValidElement(children)) {
|
|
48
47
|
throw new Error('Tooltip with asChild expects a single valid React element child.');
|
|
49
48
|
}
|
|
50
|
-
triggerElement = (jsx(Slot, { ref:
|
|
49
|
+
triggerElement = (jsx(Slot, { ref: setReference, ...referenceProps, children: children }));
|
|
51
50
|
}
|
|
52
51
|
else {
|
|
53
|
-
triggerElement = (jsx("button", { ref:
|
|
52
|
+
triggerElement = (jsx("button", { ref: setReference, type: 'button', ...referenceProps, children: children }));
|
|
54
53
|
}
|
|
55
54
|
if (typeof document === 'undefined') {
|
|
56
55
|
return triggerElement;
|
|
57
56
|
}
|
|
58
|
-
|
|
59
|
-
id: tooltipId,
|
|
60
|
-
role: 'tooltip',
|
|
61
|
-
});
|
|
62
|
-
return (jsxs(Fragment, { children: [triggerElement, isOpen && (jsx(Portal, { children: jsx("div", { ref: refs.setFloating, className: clsx(styles.tooltip, className), style: {
|
|
57
|
+
return (jsxs(Fragment, { children: [triggerElement, isOpen && (jsx(Portal, { children: jsx("div", { ref: setFloating, className: clsx(styles.tooltip, className), style: {
|
|
63
58
|
...floatingStyles,
|
|
64
59
|
...style,
|
|
65
|
-
},
|
|
60
|
+
}, id: tooltipId, role: 'tooltip', children: content }) }))] }));
|
|
66
61
|
}
|
|
67
62
|
|
|
68
63
|
export { Tooltip as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../src/Tooltip/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../src/Tooltip/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":";;;;;;;;;;;;AA2BA,SAAS,OAAO,CAAC,EACf,QAAQ,EACR,OAAO,GAAG,KAAK,EACf,OAAO,EACP,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,SAAS,GAAG,KAAK,EACjB,MAAM,GAAG,CAAC,EACV,KAAK,GAAG,GAAG,EACX,EAAE,EACF,SAAS,EACT,KAAK,GACkB,EAAA;AACvB,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE;AACjC,IAAA,MAAM,SAAS,GAAG,EAAE,IAAI,CAAA,EAAG,WAAW,UAAU;AAChD,IAAA,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAC5C,IAAI,EACJ,WAAW,EACX,YAAY,CACb;AAED,IAAA,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,GACf,GAAG,mBAAmB,CAAC;AACtB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE,QAAQ;QACnB,MAAM;AACP,KAAA,CAAC;IAEF,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,IAAI,EAAE,MAAM;QACZ,KAAK;QACL,SAAS,EAAE,YAAY,CAAC,OAAO;AAC/B,QAAA,YAAY,EAAE,OAAO;AACtB,KAAA,CAAC;AAEF,IAAA,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,MAAK;QAC3C,OAAO,CAAC,KAAK,CAAC;AAChB,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,mBAAmB,CAAC;AAClB,QAAA,IAAI,EAAE,MAAM;QACZ,YAAY;QACZ,WAAW;AACX,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,yBAAyB,EAAE,KAAK;AAChC,QAAA,SAAS,EAAE,aAAa;AACzB,KAAA,CAAC;AAEF,IAAA,MAAM,cAAc,GAAsC;AACxD,QAAA,GAAG,gBAAgB;QACnB,kBAAkB,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;KACnD;AAED,IAAA,IAAI,cAAkC;IAEtC,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE;QACH;AAEA,QAAA,cAAc,IACZA,GAAA,CAAC,IAAI,IACH,GAAG,EAAE,YAA8C,EAAA,GAC/C,cAAc,EAAA,QAAA,EAEjB,QAAQ,EAAA,CACJ,CACR;IACH;SAAO;AACL,QAAA,cAAc,IACZA,GAAA,CAAA,QAAA,EAAA,EACE,GAAG,EAAE,YAA4C,EACjD,IAAI,EAAC,QAAQ,KACR,cAAgE,EAAA,QAAA,EAEpE,QAAQ,EAAA,CACF,CACV;IACH;AAEA,IAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACnC,QAAA,OAAO,cAAc;IACvB;IAEA,QACEC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACG,cAAc,EAEd,MAAM,KACLF,GAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EACLA,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,WAAwC,EAC7C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAC1C,KAAK,EAAE;AACL,wBAAA,GAAG,cAAc;AACjB,wBAAA,GAAG,KAAK;AACT,qBAAA,EACD,EAAE,EAAE,SAAS,EACb,IAAI,EAAC,SAAS,EAAA,QAAA,EAEb,OAAO,EAAA,CACJ,EAAA,CACC,CACV,CAAA,EAAA,CACA;AAEP;;;;"}
|