@dreamtree-org/twreact-ui 1.3.11 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -6
- package/ai-skills/dreamtree-ui.md +47 -9
- package/codemods/v2.cjs +198 -0
- package/dist/ai-schema.json +609 -33
- package/dist/components/blocks/AppShell.d.ts.map +1 -1
- package/dist/components/blocks/BottomActionBar.d.ts +6 -0
- package/dist/components/blocks/BottomActionBar.d.ts.map +1 -0
- package/dist/components/blocks/ConfirmDialog.d.ts.map +1 -1
- package/dist/components/blocks/PageHeader.d.ts.map +1 -1
- package/dist/components/core/Checkbox.d.ts.map +1 -1
- package/dist/components/core/DatePicker.d.ts.map +1 -1
- package/dist/components/core/DateRangePicker.d.ts.map +1 -1
- package/dist/components/core/Form.d.ts.map +1 -1
- package/dist/components/core/Input.d.ts.map +1 -1
- package/dist/components/core/Popover.d.ts.map +1 -1
- package/dist/components/core/ProgressBar.d.ts.map +1 -1
- package/dist/components/core/Rate.d.ts.map +1 -1
- package/dist/components/core/SearchField.d.ts +9 -0
- package/dist/components/core/SearchField.d.ts.map +1 -0
- package/dist/components/core/SegmentedControl.d.ts +8 -0
- package/dist/components/core/SegmentedControl.d.ts.map +1 -0
- package/dist/components/core/Select.d.ts.map +1 -1
- package/dist/components/core/SwipeableListItem.d.ts +4 -0
- package/dist/components/core/SwipeableListItem.d.ts.map +1 -0
- package/dist/components/core/SwipeableListItemGesture.d.ts +58 -0
- package/dist/components/core/SwipeableListItemGesture.d.ts.map +1 -0
- package/dist/components/core/Switch.d.ts.map +1 -1
- package/dist/components/core/Table/ActionMenu.d.ts +10 -3
- package/dist/components/core/Table/ActionMenu.d.ts.map +1 -1
- package/dist/components/core/Table/MobileCard.d.ts +10 -1
- package/dist/components/core/Table/MobileCard.d.ts.map +1 -1
- package/dist/components/core/Table/MobileFilters.d.ts +8 -2
- package/dist/components/core/Table/MobileFilters.d.ts.map +1 -1
- package/dist/components/core/Table/Table.d.ts.map +1 -1
- package/dist/components/core/Table/TableRow.d.ts +2 -1
- package/dist/components/core/Table/TableRow.d.ts.map +1 -1
- package/dist/components/core/Tabs.d.ts +3 -3
- package/dist/components/core/Tabs.d.ts.map +1 -1
- package/dist/components/core/ThreeDotPopover.d.ts +10 -22
- package/dist/components/core/ThreeDotPopover.d.ts.map +1 -1
- package/dist/components/core/Tooltip.d.ts +2 -1
- package/dist/components/core/Tooltip.d.ts.map +1 -1
- package/dist/components/core/internal/Calendar.d.ts +77 -0
- package/dist/components/core/internal/Calendar.d.ts.map +1 -0
- package/dist/components/core/menu/ActionMenuSurface.d.ts +42 -0
- package/dist/components/core/menu/ActionMenuSurface.d.ts.map +1 -0
- package/dist/components/core/menu/ActionSheetMenu.d.ts +17 -0
- package/dist/components/core/menu/ActionSheetMenu.d.ts.map +1 -0
- package/dist/components/core/menu/MenuPopover.d.ts +21 -0
- package/dist/components/core/menu/MenuPopover.d.ts.map +1 -0
- package/dist/components/core/menu/menuItems.d.ts +21 -0
- package/dist/components/core/menu/menuItems.d.ts.map +1 -0
- package/dist/components/core/menu/menuKeyboard.d.ts +16 -0
- package/dist/components/core/menu/menuKeyboard.d.ts.map +1 -0
- package/dist/components/feedback/ActionSheet.d.ts +4 -0
- package/dist/components/feedback/ActionSheet.d.ts.map +1 -0
- package/dist/components/feedback/Alert.d.ts.map +1 -1
- package/dist/components/feedback/Dialog.d.ts.map +1 -1
- package/dist/components/feedback/Drawer.d.ts.map +1 -1
- package/dist/components/feedback/Sheet.d.ts +4 -0
- package/dist/components/feedback/Sheet.d.ts.map +1 -0
- package/dist/components/feedback/Toast.d.ts +4 -3
- package/dist/components/feedback/Toast.d.ts.map +1 -1
- package/dist/components/feedback/ToastItem.d.ts +47 -0
- package/dist/components/feedback/ToastItem.d.ts.map +1 -0
- package/dist/components/feedback/ToastStack.d.ts +20 -0
- package/dist/components/feedback/ToastStack.d.ts.map +1 -0
- package/dist/components/feedback/ToastSwipe.d.ts +22 -0
- package/dist/components/feedback/ToastSwipe.d.ts.map +1 -0
- package/dist/components/feedback/Tour.d.ts.map +1 -1
- package/dist/components/feedback/sheetCore.d.ts +30 -0
- package/dist/components/feedback/sheetCore.d.ts.map +1 -0
- package/dist/components/navigation/Navbar.d.ts.map +1 -1
- package/dist/components/navigation/Sidebar.d.ts +6 -0
- package/dist/components/navigation/Sidebar.d.ts.map +1 -1
- package/dist/components/rich-text/RichTextEditor.d.ts.map +1 -1
- package/dist/components/rich-text/RichTextToolbar.d.ts +6 -2
- package/dist/components/rich-text/RichTextToolbar.d.ts.map +1 -1
- package/dist/components/utility/PullToRefresh.d.ts +5 -0
- package/dist/components/utility/PullToRefresh.d.ts.map +1 -0
- package/dist/esm/components/blocks/AppShell.js +97 -90
- package/dist/esm/components/blocks/BottomActionBar.js +132 -0
- package/dist/esm/components/blocks/ConfirmDialog.js +40 -4
- package/dist/esm/components/blocks/PageHeader.js +16 -3
- package/dist/esm/components/core/Checkbox.js +13 -24
- package/dist/esm/components/core/DatePicker.js +117 -304
- package/dist/esm/components/core/DateRangePicker.js +260 -308
- package/dist/esm/components/core/Form.js +11 -2
- package/dist/esm/components/core/Input.js +13 -18
- package/dist/esm/components/core/Popover.js +59 -48
- package/dist/esm/components/core/ProgressBar.js +36 -64
- package/dist/esm/components/core/Rate.js +5 -10
- package/dist/esm/components/core/SearchField.js +311 -0
- package/dist/esm/components/core/SegmentedControl.js +189 -0
- package/dist/esm/components/core/Select.js +185 -190
- package/dist/esm/components/core/SwipeableListItem.js +286 -0
- package/dist/esm/components/core/SwipeableListItemGesture.js +219 -0
- package/dist/esm/components/core/Switch.js +11 -13
- package/dist/esm/components/core/Table/ActionMenu.js +45 -231
- package/dist/esm/components/core/Table/ColumnMenu.js +1 -1
- package/dist/esm/components/core/Table/MobileCard.js +66 -16
- package/dist/esm/components/core/Table/MobileFilters.js +181 -10
- package/dist/esm/components/core/Table/Table.js +149 -102
- package/dist/esm/components/core/Table/TableRow.js +10 -2
- package/dist/esm/components/core/Tabs.js +7 -7
- package/dist/esm/components/core/ThreeDotPopover.js +93 -99
- package/dist/esm/components/core/Tooltip.js +138 -145
- package/dist/esm/components/core/internal/Calendar.js +381 -0
- package/dist/esm/components/core/menu/ActionMenuSurface.js +110 -0
- package/dist/esm/components/core/menu/ActionSheetMenu.js +140 -0
- package/dist/esm/components/core/menu/MenuPopover.js +177 -0
- package/dist/esm/components/core/menu/menuItems.js +61 -0
- package/dist/esm/components/core/menu/menuKeyboard.js +54 -0
- package/dist/esm/components/feedback/ActionSheet.js +55 -0
- package/dist/esm/components/feedback/Alert.js +63 -53
- package/dist/esm/components/feedback/Dialog.js +141 -53
- package/dist/esm/components/feedback/Drawer.js +130 -132
- package/dist/esm/components/feedback/Sheet.js +125 -0
- package/dist/esm/components/feedback/Toast.js +21 -291
- package/dist/esm/components/feedback/ToastItem.js +348 -0
- package/dist/esm/components/feedback/ToastStack.js +130 -0
- package/dist/esm/components/feedback/ToastSwipe.js +52 -0
- package/dist/esm/components/feedback/Tour.js +107 -30
- package/dist/esm/components/feedback/sheetCore.js +494 -0
- package/dist/esm/components/navigation/Dropdown.js +1 -1
- package/dist/esm/components/navigation/Navbar.js +172 -37
- package/dist/esm/components/navigation/Sidebar.js +263 -111
- package/dist/esm/components/rich-text/RichTextEditor.js +9 -3
- package/dist/esm/components/rich-text/RichTextToolbar.js +29 -9
- package/dist/esm/components/utility/Portal.js +31 -0
- package/dist/esm/components/utility/PullToRefresh.js +229 -0
- package/dist/esm/hooks/useFloatingPosition.js +82 -0
- package/dist/esm/hooks/useHaptics.js +65 -0
- package/dist/esm/hooks/usePresence.js +58 -0
- package/dist/esm/hooks/usePresentation.js +21 -0
- package/dist/esm/hooks/useSheetDrag.js +220 -0
- package/dist/esm/index.js +13 -2
- package/dist/esm/utils/position.js +10 -63
- package/dist/hooks/useFloatingPosition.d.ts +8 -4
- package/dist/hooks/useFloatingPosition.d.ts.map +1 -1
- package/dist/hooks/useHaptics.d.ts +19 -0
- package/dist/hooks/useHaptics.d.ts.map +1 -0
- package/dist/hooks/useSheetDrag.d.ts +31 -0
- package/dist/hooks/useSheetDrag.d.ts.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +8851 -3198
- package/dist/index.js +8856 -3195
- package/dist/rich-text/index.js +41 -11
- package/dist/types/blocks.d.ts +32 -2
- package/dist/types/blocks.d.ts.map +1 -1
- package/dist/types/index.d.ts +353 -19
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/rich-text.d.ts +5 -0
- package/dist/types/rich-text.d.ts.map +1 -1
- package/dist/utils/position.d.ts +0 -15
- package/dist/utils/position.d.ts.map +1 -1
- package/doc/README.md +15 -0
- package/mcp/catalog.snapshot.json +1398 -464
- package/package.json +7 -2
- package/dist/esm/hooks/useSwipeToClose.js +0 -66
- package/dist/hooks/useSwipeToClose.d.ts +0 -24
- package/dist/hooks/useSwipeToClose.d.ts.map +0 -1
|
@@ -6,14 +6,23 @@ import { createPortal } from 'react-dom';
|
|
|
6
6
|
import { X } from 'lucide-react';
|
|
7
7
|
import Button from '../core/Button.js';
|
|
8
8
|
import { cn } from '../../utils/cn.js';
|
|
9
|
-
import {
|
|
9
|
+
import { setRefs, parsePlacement } from '../../utils/position.js';
|
|
10
|
+
import { TOUCH_TARGET } from '../../utils/touchTarget.js';
|
|
10
11
|
import { useFocusTrap } from '../../hooks/useFocusTrap.js';
|
|
11
12
|
import { useScrollLock } from '../../hooks/useScrollLock.js';
|
|
12
13
|
import { useTourTarget } from '../../hooks/useTourTarget.js';
|
|
14
|
+
import { useFloatingPosition } from '../../hooks/useFloatingPosition.js';
|
|
15
|
+
import { usePresentation } from '../../hooks/usePresentation.js';
|
|
13
16
|
import TourSpotlight from './TourSpotlight.js';
|
|
14
17
|
|
|
15
|
-
var _excluded = ["open", "steps", "onClose", "onFinish", "step", "defaultStep", "onStepChange", "labels", "targetTimeout", "spotlightPadding", "className"];
|
|
18
|
+
var _excluded = ["open", "steps", "onClose", "onFinish", "step", "defaultStep", "onStepChange", "labels", "targetTimeout", "spotlightPadding", "presentation", "className", "style", "onPointerDown", "onPointerUp", "onPointerCancel", "onClickCapture"];
|
|
16
19
|
var useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
|
|
20
|
+
// Docked (phone) card: a horizontal swipe at least this long (px), and clearly
|
|
21
|
+
// more horizontal than vertical, goes to the next / previous step.
|
|
22
|
+
var SWIPE_DISTANCE = 50;
|
|
23
|
+
var SWIPE_RATIO = 1.5;
|
|
24
|
+
// The click a swipe may produce arrives right after pointerup.
|
|
25
|
+
var SWIPE_CLICK_MS = 400;
|
|
17
26
|
var DEFAULT_LABELS = {
|
|
18
27
|
next: "Next",
|
|
19
28
|
back: "Back",
|
|
@@ -24,6 +33,17 @@ var DEFAULT_LABELS = {
|
|
|
24
33
|
return "Step ".concat(current, " of ").concat(total);
|
|
25
34
|
}
|
|
26
35
|
};
|
|
36
|
+
// Tour placements ("top", "bottom-start", …) as floating-ui placements.
|
|
37
|
+
var toFloatingPlacement = function toFloatingPlacement(placement) {
|
|
38
|
+
var _parsePlacement = parsePlacement(placement || "bottom"),
|
|
39
|
+
side = _parsePlacement.side,
|
|
40
|
+
align = _parsePlacement.align;
|
|
41
|
+
return align === "start" || align === "end" ? "".concat(side, "-").concat(align) : side;
|
|
42
|
+
};
|
|
43
|
+
var isTextEntry = function isTextEntry(el) {
|
|
44
|
+
var _el$closest;
|
|
45
|
+
return !!(el !== null && el !== void 0 && (_el$closest = el.closest) !== null && _el$closest !== void 0 && _el$closest.call(el, "input, textarea, select, [contenteditable='true']"));
|
|
46
|
+
};
|
|
27
47
|
var Tour = /*#__PURE__*/forwardRef(function (_ref, _ref2) {
|
|
28
48
|
var _ref$open = _ref.open,
|
|
29
49
|
open = _ref$open === void 0 ? false : _ref$open,
|
|
@@ -40,11 +60,25 @@ var Tour = /*#__PURE__*/forwardRef(function (_ref, _ref2) {
|
|
|
40
60
|
targetTimeout = _ref$targetTimeout === void 0 ? 3000 : _ref$targetTimeout,
|
|
41
61
|
_ref$spotlightPadding = _ref.spotlightPadding,
|
|
42
62
|
spotlightPadding = _ref$spotlightPadding === void 0 ? 6 : _ref$spotlightPadding,
|
|
63
|
+
_ref$presentation = _ref.presentation,
|
|
64
|
+
presentation = _ref$presentation === void 0 ? "auto" : _ref$presentation,
|
|
43
65
|
className = _ref.className,
|
|
66
|
+
style = _ref.style,
|
|
67
|
+
_onPointerDown = _ref.onPointerDown,
|
|
68
|
+
_onPointerUp = _ref.onPointerUp,
|
|
69
|
+
_onPointerCancel = _ref.onPointerCancel,
|
|
70
|
+
_onClickCapture = _ref.onClickCapture,
|
|
44
71
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
45
72
|
var cardRef = useRef(null);
|
|
73
|
+
var swipeRef = useRef({
|
|
74
|
+
x: 0,
|
|
75
|
+
y: 0,
|
|
76
|
+
tracking: false,
|
|
77
|
+
swipedAt: -Infinity
|
|
78
|
+
});
|
|
46
79
|
var baseId = useId();
|
|
47
80
|
var text = _objectSpread2(_objectSpread2({}, DEFAULT_LABELS), labels);
|
|
81
|
+
var docked = usePresentation(presentation) === "sheet";
|
|
48
82
|
// Each opening is a new session: the uncontrolled step restarts and stale
|
|
49
83
|
// target measurements from the previous run are ignored.
|
|
50
84
|
var _useState = useState({
|
|
@@ -74,6 +108,25 @@ var Tour = /*#__PURE__*/forwardRef(function (_ref, _ref2) {
|
|
|
74
108
|
}),
|
|
75
109
|
rect = _useTourTarget.rect,
|
|
76
110
|
ready = _useTourTarget.ready;
|
|
111
|
+
var anchored = Boolean(rect) && !docked;
|
|
112
|
+
var _useFloatingPosition = useFloatingPosition({
|
|
113
|
+
placement: toFloatingPlacement(current === null || current === void 0 ? void 0 : current.placement),
|
|
114
|
+
offset: spotlightPadding + 10,
|
|
115
|
+
open: active && anchored
|
|
116
|
+
}),
|
|
117
|
+
refs = _useFloatingPosition.refs,
|
|
118
|
+
floatingStyles = _useFloatingPosition.floatingStyles;
|
|
119
|
+
var setReference = refs.setReference,
|
|
120
|
+
setFloating = refs.setFloating;
|
|
121
|
+
// The target's measured box is the (virtual) reference; useTourTarget
|
|
122
|
+
// re-measures it on scroll/resize.
|
|
123
|
+
useIsomorphicLayoutEffect(function () {
|
|
124
|
+
setReference(anchored ? {
|
|
125
|
+
getBoundingClientRect: function getBoundingClientRect() {
|
|
126
|
+
return rect;
|
|
127
|
+
}
|
|
128
|
+
} : null);
|
|
129
|
+
}, [anchored, rect, setReference]);
|
|
77
130
|
var goTo = function goTo(next) {
|
|
78
131
|
if (next < 0 || next >= total || next === index) return;
|
|
79
132
|
if (stepProp === undefined) setSession(function (s) {
|
|
@@ -99,44 +152,66 @@ var Tour = /*#__PURE__*/forwardRef(function (_ref, _ref2) {
|
|
|
99
152
|
return close("escape");
|
|
100
153
|
}
|
|
101
154
|
});
|
|
102
|
-
useIsomorphicLayoutEffect(function () {
|
|
103
|
-
var card = cardRef.current;
|
|
104
|
-
if (!card) return;
|
|
105
|
-
if (!rect) {
|
|
106
|
-
card.style.top = "";
|
|
107
|
-
card.style.left = "";
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
var size = {
|
|
111
|
-
width: card.offsetWidth,
|
|
112
|
-
height: card.offsetHeight
|
|
113
|
-
};
|
|
114
|
-
var pos = computePosition(rect, size, {
|
|
115
|
-
placement: (current === null || current === void 0 ? void 0 : current.placement) || "bottom",
|
|
116
|
-
offset: spotlightPadding + 10
|
|
117
|
-
});
|
|
118
|
-
card.style.top = "".concat(pos.top, "px");
|
|
119
|
-
card.style.left = "".concat(pos.left, "px");
|
|
120
|
-
}, [rect, ready, index, current === null || current === void 0 ? void 0 : current.placement, spotlightPadding]);
|
|
121
155
|
if (!active || typeof document === "undefined") return null;
|
|
122
156
|
var isFirst = index === 0;
|
|
123
157
|
var isLast = index === total - 1;
|
|
124
158
|
var titleId = "tour-title-".concat(baseId);
|
|
125
159
|
var bodyId = "tour-body-".concat(baseId);
|
|
126
160
|
var handleKeyDown = function handleKeyDown(e) {
|
|
127
|
-
|
|
128
|
-
if ((_e$target$closest = (_e$target = e.target).closest) !== null && _e$target$closest !== void 0 && _e$target$closest.call(_e$target, "input, textarea, select, [contenteditable='true']")) return;
|
|
161
|
+
if (isTextEntry(e.target)) return;
|
|
129
162
|
if (e.key === "ArrowRight") goTo(index + 1);else if (e.key === "ArrowLeft") goTo(index - 1);
|
|
130
163
|
};
|
|
164
|
+
// Swipe on the docked card: left = next, right = back.
|
|
165
|
+
var swipeHandlers = docked ? {
|
|
166
|
+
onPointerDown: function onPointerDown(e) {
|
|
167
|
+
_onPointerDown === null || _onPointerDown === void 0 || _onPointerDown(e);
|
|
168
|
+
var swipe = swipeRef.current;
|
|
169
|
+
swipe.swipedAt = -Infinity;
|
|
170
|
+
swipe.tracking = e.isPrimary !== false && !isTextEntry(e.target);
|
|
171
|
+
swipe.x = e.clientX;
|
|
172
|
+
swipe.y = e.clientY;
|
|
173
|
+
},
|
|
174
|
+
onPointerUp: function onPointerUp(e) {
|
|
175
|
+
_onPointerUp === null || _onPointerUp === void 0 || _onPointerUp(e);
|
|
176
|
+
var swipe = swipeRef.current;
|
|
177
|
+
if (!swipe.tracking) return;
|
|
178
|
+
swipe.tracking = false;
|
|
179
|
+
var dx = e.clientX - swipe.x;
|
|
180
|
+
var dy = e.clientY - swipe.y;
|
|
181
|
+
if (Math.abs(dx) < SWIPE_DISTANCE || Math.abs(dx) < Math.abs(dy) * SWIPE_RATIO) return;
|
|
182
|
+
swipe.swipedAt = Date.now();
|
|
183
|
+
goTo(dx < 0 ? index + 1 : index - 1);
|
|
184
|
+
},
|
|
185
|
+
onPointerCancel: function onPointerCancel(e) {
|
|
186
|
+
_onPointerCancel === null || _onPointerCancel === void 0 || _onPointerCancel(e);
|
|
187
|
+
swipeRef.current.tracking = false;
|
|
188
|
+
},
|
|
189
|
+
// A swipe that ends on a button must not also press it.
|
|
190
|
+
onClickCapture: function onClickCapture(e) {
|
|
191
|
+
_onClickCapture === null || _onClickCapture === void 0 || _onClickCapture(e);
|
|
192
|
+
var swipe = swipeRef.current;
|
|
193
|
+
if (Date.now() - swipe.swipedAt > SWIPE_CLICK_MS) return;
|
|
194
|
+
swipe.swipedAt = -Infinity;
|
|
195
|
+
e.preventDefault();
|
|
196
|
+
e.stopPropagation();
|
|
197
|
+
}
|
|
198
|
+
} : {
|
|
199
|
+
onPointerDown: _onPointerDown,
|
|
200
|
+
onPointerUp: _onPointerUp,
|
|
201
|
+
onPointerCancel: _onPointerCancel,
|
|
202
|
+
onClickCapture: _onClickCapture
|
|
203
|
+
};
|
|
204
|
+
var placementAttr = "center";
|
|
205
|
+
if (docked) placementAttr = "docked";else if (rect) placementAttr = current.placement || "bottom";
|
|
131
206
|
return /*#__PURE__*/createPortal(jsxs("div", {
|
|
132
|
-
className: "fixed inset-0 z-
|
|
207
|
+
className: "fixed inset-0 z-modal",
|
|
133
208
|
"data-testid": "tour-overlay",
|
|
134
209
|
children: [jsx(TourSpotlight, {
|
|
135
210
|
rect: ready ? rect : null,
|
|
136
211
|
padding: spotlightPadding
|
|
137
|
-
}), jsxs("div", _objectSpread2(_objectSpread2({
|
|
212
|
+
}), jsxs("div", _objectSpread2(_objectSpread2(_objectSpread2({
|
|
138
213
|
ref: function ref(node) {
|
|
139
|
-
return setRefs(node, cardRef, _ref2);
|
|
214
|
+
return setRefs(node, cardRef, _ref2, setFloating);
|
|
140
215
|
},
|
|
141
216
|
role: "dialog",
|
|
142
217
|
"aria-modal": "true",
|
|
@@ -144,9 +219,11 @@ var Tour = /*#__PURE__*/forwardRef(function (_ref, _ref2) {
|
|
|
144
219
|
"aria-describedby": current.content ? bodyId : undefined,
|
|
145
220
|
tabIndex: -1,
|
|
146
221
|
onKeyDown: handleKeyDown,
|
|
147
|
-
"data-placement":
|
|
148
|
-
|
|
149
|
-
|
|
222
|
+
"data-placement": placementAttr,
|
|
223
|
+
"data-presentation": docked ? "sheet" : "popover",
|
|
224
|
+
className: cn("fixed overflow-y-auto overscroll-contain rounded-lg border border-gray-200 bg-white text-gray-900 shadow-xl focus:outline-none", "dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100", "transition-opacity duration-200 motion-reduce:transition-none", docked ? "inset-x-4 bottom-4 max-h-[60dvh] pb-safe touch-pan-y" : "w-[min(22rem,calc(100vw-2rem))] max-h-[calc(100dvh-2rem)]", !docked && !rect && "left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2", ready ? "opacity-100" : "pointer-events-none opacity-0", className),
|
|
225
|
+
style: anchored ? _objectSpread2(_objectSpread2({}, floatingStyles), style) : style
|
|
226
|
+
}, swipeHandlers), rest), {}, {
|
|
150
227
|
children: [jsxs("div", {
|
|
151
228
|
className: "flex items-start justify-between gap-3 px-4 pt-4",
|
|
152
229
|
children: [jsxs("div", {
|
|
@@ -165,7 +242,7 @@ var Tour = /*#__PURE__*/forwardRef(function (_ref, _ref2) {
|
|
|
165
242
|
return close("close");
|
|
166
243
|
},
|
|
167
244
|
"aria-label": text.close,
|
|
168
|
-
className: "rounded-md p-1 text-gray-500 hover:bg-gray-100 hover:text-gray-700 focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-gray-400 dark:hover:bg-gray-800",
|
|
245
|
+
className: cn("-mr-1 -mt-1 inline-flex shrink-0 items-center justify-center rounded-md p-1 text-gray-500 hover:bg-gray-100 hover:text-gray-700 focus:outline-none focus:ring-2 focus:ring-primary-500 dark:text-gray-400 dark:hover:bg-gray-800", TOUCH_TARGET),
|
|
169
246
|
children: jsx(X, {
|
|
170
247
|
className: "h-4 w-4",
|
|
171
248
|
"aria-hidden": "true"
|