@once-ui-system/core 2.0.0-alpha.1 → 2.0.0-alpha.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/ai/catalog.json +11 -4
- package/ai/components/Effect.json +1 -1
- package/ai/components/Feedback.json +1 -0
- package/ai/components/Form.json +15 -0
- package/ai/components/Input.json +3 -2
- package/ai/components/{Particle.json → ParticleFx.json} +1 -1
- package/ai/components/ScrollContainer.json +9 -1
- package/ai/components/Textarea.json +3 -2
- package/ai/components/ThemeSwitcher.json +2 -1
- package/ai/examples/blocks/Footer4.tsx +2 -2
- package/ai/examples/blocks/manifest.json +2 -2
- package/ai/gotchas.json +7 -0
- package/ai/manifest.json +2 -2
- package/ai/rules.md +1 -1
- package/ai/spec.json +35 -10
- package/dist/ai/catalog.json +11 -4
- package/dist/ai/components/Effect.json +1 -1
- package/dist/ai/components/Feedback.json +1 -0
- package/dist/ai/components/Form.json +15 -0
- package/dist/ai/components/Input.json +3 -2
- package/dist/ai/components/{Particle.json → ParticleFx.json} +1 -1
- package/dist/ai/components/ScrollContainer.json +9 -1
- package/dist/ai/components/Textarea.json +3 -2
- package/dist/ai/components/ThemeSwitcher.json +2 -1
- package/dist/ai/examples/blocks/manifest.json +2 -2
- package/dist/ai/gotchas.json +7 -0
- package/dist/ai/manifest.json +2 -2
- package/dist/ai/rules.md +1 -1
- package/dist/ai/spec.json +35 -10
- package/dist/components/Animation.d.ts +1 -2
- package/dist/components/Animation.d.ts.map +1 -1
- package/dist/components/Animation.js +1 -1
- package/dist/components/Animation.js.map +1 -1
- package/dist/components/ArrowNavigationContext.d.ts.map +1 -1
- package/dist/components/ArrowNavigationContext.js +12 -3
- package/dist/components/ArrowNavigationContext.js.map +1 -1
- package/dist/components/ContextMenu.d.ts +1 -1
- package/dist/components/ContextMenu.d.ts.map +1 -1
- package/dist/components/CursorCard.d.ts +1 -1
- package/dist/components/CursorCard.d.ts.map +1 -1
- package/dist/components/DatePicker.d.ts.map +1 -1
- package/dist/components/DatePicker.js +7 -0
- package/dist/components/DatePicker.js.map +1 -1
- package/dist/components/DropdownWrapper.d.ts +1 -1
- package/dist/components/DropdownWrapper.d.ts.map +1 -1
- package/dist/components/DropdownWrapper.js +178 -35
- package/dist/components/DropdownWrapper.js.map +1 -1
- package/dist/components/DropdownWrapper.module.scss +3 -1
- package/dist/components/Effect.d.ts +2 -2
- package/dist/components/Effect.d.ts.map +1 -1
- package/dist/components/Effect.js +2 -2
- package/dist/components/Effect.js.map +1 -1
- package/dist/components/Feedback.d.ts +4 -0
- package/dist/components/Feedback.d.ts.map +1 -1
- package/dist/components/Feedback.js +2 -2
- package/dist/components/Feedback.js.map +1 -1
- package/dist/components/FocusTrap.d.ts +3 -3
- package/dist/components/FocusTrap.d.ts.map +1 -1
- package/dist/components/FocusTrap.js +10 -0
- package/dist/components/FocusTrap.js.map +1 -1
- package/dist/components/Form.d.ts +48 -0
- package/dist/components/Form.d.ts.map +1 -0
- package/dist/components/Form.js +191 -0
- package/dist/components/Form.js.map +1 -0
- package/dist/components/Form.module.scss +160 -0
- package/dist/components/FormContext.d.ts +20 -0
- package/dist/components/FormContext.d.ts.map +1 -0
- package/dist/components/FormContext.js +12 -0
- package/dist/components/FormContext.js.map +1 -0
- package/dist/components/Input.d.ts +3 -0
- package/dist/components/Input.d.ts.map +1 -1
- package/dist/components/Input.js +13 -2
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Input.module.scss +27 -6
- package/dist/components/{Particle.d.ts → ParticleFx.d.ts} +9 -4
- package/dist/components/ParticleFx.d.ts.map +1 -0
- package/dist/components/{Particle.js → ParticleFx.js} +9 -4
- package/dist/components/ParticleFx.js.map +1 -0
- package/dist/components/ScrollContainer.d.ts +69 -2
- package/dist/components/ScrollContainer.d.ts.map +1 -1
- package/dist/components/ScrollContainer.js +377 -46
- package/dist/components/ScrollContainer.js.map +1 -1
- package/dist/components/ScrollContainer.module.scss +131 -0
- package/dist/components/Select.d.ts +1 -1
- package/dist/components/Select.d.ts.map +1 -1
- package/dist/components/Setting.d.ts.map +1 -1
- package/dist/components/Setting.js +6 -1
- package/dist/components/Setting.js.map +1 -1
- package/dist/components/Textarea.d.ts +3 -0
- package/dist/components/Textarea.d.ts.map +1 -1
- package/dist/components/Textarea.js +22 -6
- package/dist/components/Textarea.js.map +1 -1
- package/dist/components/ThemeSwitcher.d.ts +16 -0
- package/dist/components/ThemeSwitcher.d.ts.map +1 -1
- package/dist/components/ThemeSwitcher.js +48 -9
- package/dist/components/ThemeSwitcher.js.map +1 -1
- package/dist/components/ThemeSwitcher.module.scss +112 -0
- package/dist/components/UserMenu.d.ts +1 -1
- package/dist/components/UserMenu.d.ts.map +1 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/data/emoji-data.json +10 -0
- package/dist/hooks/useArrowNavigation.d.ts.map +1 -1
- package/dist/hooks/useArrowNavigation.js +52 -7
- package/dist/hooks/useArrowNavigation.js.map +1 -1
- package/dist/modules/navigation/MegaMenu.d.ts.map +1 -1
- package/dist/modules/navigation/MegaMenu.js +76 -10
- package/dist/modules/navigation/MegaMenu.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/components/Particle.d.ts.map +0 -1
- package/dist/components/Particle.js.map +0 -1
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import React, { useState, useRef, useEffect, forwardRef, useImperativeHandle, useCallback, } from "react";
|
|
4
4
|
import { createPortal } from "react-dom";
|
|
5
|
-
import { useFloating, shift, offset, flip, size, autoUpdate
|
|
5
|
+
import { useFloating, shift, offset, flip, size, autoUpdate } from "@floating-ui/react-dom";
|
|
6
6
|
import { Flex, Dropdown, Column, Row, FocusTrap, ArrowNavigation, ScrollLock } from ".";
|
|
7
7
|
import styles from "./DropdownWrapper.module.scss";
|
|
8
8
|
import { getLastOpenedDropdown, setLastOpenedDropdown, clearLastOpenedDropdown } from "../utils";
|
|
9
9
|
// Global state to track the last opened dropdown
|
|
10
10
|
let dropdownCounter = 0;
|
|
11
|
+
const isEnabledOption = (el) => !el.hasAttribute("disabled") && el.getAttribute("aria-disabled") !== "true";
|
|
11
12
|
const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dropdown, selectedOption, minHeight, onSelect, closeAfterClick = true, open: controlledIsOpen, handleArrowNavigation = true, onOpenChange, minWidth, maxWidth, fillWidth = false, placement = "bottom-start", className, style, nested = false, navigationLayout: propNavigationLayout, columns = 8, optionsCount: propOptionsCount, dropdownId: propDropdownId, disableTriggerClick = false, }, ref) => {
|
|
12
13
|
const [internalIsOpen, setInternalIsOpen] = useState(false);
|
|
13
14
|
const [mounted, setMounted] = useState(false);
|
|
@@ -17,6 +18,11 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
17
18
|
const wrapperRef = useRef(null);
|
|
18
19
|
const triggerRef = useRef(null);
|
|
19
20
|
const dropdownRef = useRef(null);
|
|
21
|
+
/** The portal's outermost element — FocusTrap's container. `dropdownRef`
|
|
22
|
+
* sits two levels below it (FocusTrap > ArrowNavigation > panel), and
|
|
23
|
+
* both of those levels are focusable and get focused by this component
|
|
24
|
+
* when the panel opens, so containment has to be tested from the top. */
|
|
25
|
+
const portalRef = useRef(null);
|
|
20
26
|
const isControlled = controlledIsOpen !== undefined;
|
|
21
27
|
const isOpen = isControlled ? controlledIsOpen : internalIsOpen;
|
|
22
28
|
const handleOpenChange = useCallback((newIsOpen) => {
|
|
@@ -59,7 +65,7 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
59
65
|
// Store the reference element's width for fillWidth calculation
|
|
60
66
|
const [referenceWidth, setReferenceWidth] = useState(null);
|
|
61
67
|
// We'll measure the width directly in the floating UI middleware
|
|
62
|
-
const { x, y, strategy, refs, update } = useFloating({
|
|
68
|
+
const { x, y, strategy, refs, update, isPositioned, placement: resolvedPlacement } = useFloating({
|
|
63
69
|
placement: placement,
|
|
64
70
|
open: isOpen,
|
|
65
71
|
middleware: [
|
|
@@ -90,6 +96,29 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
90
96
|
],
|
|
91
97
|
whileElementsMounted: autoUpdate,
|
|
92
98
|
});
|
|
99
|
+
/**
|
|
100
|
+
* Where the open animation grows from. The panel scales 0.9 -> 1, so the
|
|
101
|
+
* corner this names stays put while the opposite one travels by 10% of the
|
|
102
|
+
* panel's size. It has to be the edge anchored to the trigger, or the
|
|
103
|
+
* panel visibly slides as it opens: measured in a browser, a 480px panel
|
|
104
|
+
* on a "-start" placement drifted 48px sideways with this hardcoded to
|
|
105
|
+
* "top right" in the stylesheet.
|
|
106
|
+
*
|
|
107
|
+
* Derived from the RESOLVED placement, not the requested one, because
|
|
108
|
+
* `flip()` is in the middleware — a panel that flips above its trigger has
|
|
109
|
+
* to scale from its bottom edge instead.
|
|
110
|
+
*/
|
|
111
|
+
const transformOrigin = (() => {
|
|
112
|
+
const [side, align] = (resolvedPlacement || "bottom").split("-");
|
|
113
|
+
if (side === "top" || side === "bottom") {
|
|
114
|
+
const y = side === "bottom" ? "top" : "bottom";
|
|
115
|
+
const x = align === "start" ? "left" : align === "end" ? "right" : "center";
|
|
116
|
+
return `${x} ${y}`;
|
|
117
|
+
}
|
|
118
|
+
const x = side === "right" ? "left" : "right";
|
|
119
|
+
const y = align === "start" ? "top" : align === "end" ? "bottom" : "center";
|
|
120
|
+
return `${x} ${y}`;
|
|
121
|
+
})();
|
|
93
122
|
useImperativeHandle(ref, () => wrapperRef.current);
|
|
94
123
|
useEffect(() => {
|
|
95
124
|
if (wrapperRef.current) {
|
|
@@ -117,6 +146,60 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
117
146
|
return () => clearTimeout(timeoutId);
|
|
118
147
|
}
|
|
119
148
|
}, [isOpen, mounted, update]);
|
|
149
|
+
/**
|
|
150
|
+
* Which option the panel opens on: the selected one, else the first
|
|
151
|
+
* enabled one. Deliberately the same rule `useArrowNavigation` applies to
|
|
152
|
+
* its own `autoFocus` — see the long form there — so the two agree
|
|
153
|
+
* instead of fighting over where focus lands. Kept here rather than
|
|
154
|
+
* shared through `utils`, which is published: this is an internal detail
|
|
155
|
+
* of how a panel opens, not API.
|
|
156
|
+
*/
|
|
157
|
+
const resolveOpenIndex = useCallback((options) => {
|
|
158
|
+
const selected = options.findIndex((el) => el.getAttribute("aria-selected") === "true" && isEnabledOption(el));
|
|
159
|
+
if (selected >= 0)
|
|
160
|
+
return selected;
|
|
161
|
+
const first = options.findIndex(isEnabledOption);
|
|
162
|
+
return first >= 0 ? first : 0;
|
|
163
|
+
}, []);
|
|
164
|
+
/** The nearest scrollable ancestor of an option, no higher than the panel. */
|
|
165
|
+
const findScroller = useCallback((option) => {
|
|
166
|
+
const panel = dropdownRef.current;
|
|
167
|
+
if (!option || !panel)
|
|
168
|
+
return null;
|
|
169
|
+
for (let el = option.parentElement; el && panel.contains(el); el = el.parentElement) {
|
|
170
|
+
if (el.scrollHeight > el.clientHeight)
|
|
171
|
+
return el;
|
|
172
|
+
}
|
|
173
|
+
return null;
|
|
174
|
+
}, []);
|
|
175
|
+
/**
|
|
176
|
+
* Bring an option into view by scrolling the panel, never the page.
|
|
177
|
+
* `scrollIntoView` walks every scrollable ancestor, so opening a long
|
|
178
|
+
* list on its selection would drag the document with it; this moves only
|
|
179
|
+
* the nearest scroller inside the panel.
|
|
180
|
+
*
|
|
181
|
+
* Measured in layout pixels — `offsetTop` and `clientHeight` — rather than
|
|
182
|
+
* through `getBoundingClientRect`. The panel scales from 0.9 to 1 as it
|
|
183
|
+
* opens, so rects taken during that animation are up to a tenth short
|
|
184
|
+
* while `scrollTop` is always layout pixels: mixing the two left the
|
|
185
|
+
* selected row 35px below the scrollport, just off the bottom edge.
|
|
186
|
+
*/
|
|
187
|
+
const scrollOptionIntoView = useCallback((option) => {
|
|
188
|
+
const scroller = findScroller(option);
|
|
189
|
+
if (!scroller)
|
|
190
|
+
return;
|
|
191
|
+
let top = option.offsetTop;
|
|
192
|
+
for (let parent = option.offsetParent; parent && parent !== scroller && scroller.contains(parent); parent = parent.offsetParent) {
|
|
193
|
+
top += parent.offsetTop;
|
|
194
|
+
}
|
|
195
|
+
const bottom = top + option.offsetHeight;
|
|
196
|
+
if (bottom > scroller.scrollTop + scroller.clientHeight) {
|
|
197
|
+
scroller.scrollTop = bottom - scroller.clientHeight;
|
|
198
|
+
}
|
|
199
|
+
else if (top < scroller.scrollTop) {
|
|
200
|
+
scroller.scrollTop = top;
|
|
201
|
+
}
|
|
202
|
+
}, [findScroller]);
|
|
120
203
|
useEffect(() => {
|
|
121
204
|
if (isOpen && mounted) {
|
|
122
205
|
// Store the currently focused element before focusing the dropdown
|
|
@@ -127,17 +210,19 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
127
210
|
update();
|
|
128
211
|
// Reset focus index when opening
|
|
129
212
|
setFocusedIndex(-1);
|
|
130
|
-
const focusableElements = dropdownRef.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
213
|
+
const focusableElements = Array.from(dropdownRef.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'));
|
|
214
|
+
const optionElements = Array.from(dropdownRef.current.querySelectorAll('.option, [role="option"], [data-value]'));
|
|
215
|
+
const openIndex = resolveOpenIndex(optionElements);
|
|
216
|
+
// A panel that leads with something other than its list — a
|
|
217
|
+
// searchable Select's query field — still opens on that. Only a
|
|
218
|
+
// plain list opens on its selection.
|
|
219
|
+
const leadsWithOptions = focusableElements.length > 0 && optionElements.includes(focusableElements[0]);
|
|
220
|
+
const target = leadsWithOptions ? optionElements[openIndex] : focusableElements[0];
|
|
221
|
+
target?.focus({ preventScroll: true });
|
|
137
222
|
if (optionElements.length > 0) {
|
|
138
|
-
setFocusedIndex(
|
|
223
|
+
setFocusedIndex(openIndex);
|
|
139
224
|
optionElements.forEach((el, i) => {
|
|
140
|
-
if (i ===
|
|
225
|
+
if (i === openIndex) {
|
|
141
226
|
el.classList.add("highlighted");
|
|
142
227
|
}
|
|
143
228
|
else {
|
|
@@ -148,13 +233,20 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
148
233
|
}
|
|
149
234
|
});
|
|
150
235
|
}
|
|
151
|
-
else if (!isOpen
|
|
152
|
-
//
|
|
153
|
-
|
|
154
|
-
|
|
236
|
+
else if (!isOpen) {
|
|
237
|
+
// Forget where focus was. `focusedIndex` seeds ArrowNavigation's
|
|
238
|
+
// `initialFocusedIndex`, which is read once at mount — leaving the
|
|
239
|
+
// last session's index behind meant the next open started from it and
|
|
240
|
+
// never resolved the current selection at all.
|
|
241
|
+
setFocusedIndex(-1);
|
|
242
|
+
if (previouslyFocusedElement.current) {
|
|
243
|
+
// Only try to focus if the element is still in the document
|
|
244
|
+
if (document.contains(previouslyFocusedElement.current)) {
|
|
245
|
+
previouslyFocusedElement.current.focus({ preventScroll: true });
|
|
246
|
+
}
|
|
155
247
|
}
|
|
156
248
|
}
|
|
157
|
-
}, [isOpen, mounted, refs, update]);
|
|
249
|
+
}, [isOpen, mounted, refs, update, resolveOpenIndex]);
|
|
158
250
|
const handleClickOutside = useCallback((event) => {
|
|
159
251
|
const target = event.target;
|
|
160
252
|
// Check if the click is inside the dropdown or the wrapper
|
|
@@ -211,7 +303,16 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
211
303
|
// Check if focus moved to the dropdown or stayed in the wrapper. The
|
|
212
304
|
// dropdown is portalled, so it is not a descendant of the wrapper and
|
|
213
305
|
// both have to be checked.
|
|
214
|
-
|
|
306
|
+
//
|
|
307
|
+
// Tested from `portalRef`, not `dropdownRef`: the panel is wrapped by
|
|
308
|
+
// FocusTrap and ArrowNavigation, each of which renders a focusable
|
|
309
|
+
// container above it and focuses that container itself as the panel
|
|
310
|
+
// opens. Measured in Chromium, ArrowNavigation's autoFocus timer moved
|
|
311
|
+
// focus from the trigger to its container 20ms after a DatePicker's
|
|
312
|
+
// month selector opened; read against `dropdownRef` that container is
|
|
313
|
+
// "outside", so the panel closed itself before the user could aim at
|
|
314
|
+
// anything in it.
|
|
315
|
+
const isFocusInDropdown = portalRef.current && portalRef.current.contains(event.relatedTarget);
|
|
215
316
|
const isFocusInWrapper = wrapperRef.current && wrapperRef.current.contains(event.relatedTarget);
|
|
216
317
|
// Only close if focus moved outside both the dropdown and the wrapper
|
|
217
318
|
if (!isFocusInDropdown && !isFocusInWrapper) {
|
|
@@ -255,6 +356,46 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
255
356
|
return [];
|
|
256
357
|
return Array.from(dropdownRef.current.querySelectorAll('.option, [role="option"], [data-value]'));
|
|
257
358
|
}, []);
|
|
359
|
+
/**
|
|
360
|
+
* Keep the current option in view — on open, and as the arrow keys move.
|
|
361
|
+
*
|
|
362
|
+
* How far to scroll depends on how tall the scrollport is, and that is
|
|
363
|
+
* still settling: Floating UI's `size` middleware caps the panel's height
|
|
364
|
+
* from its own measurements, and `autoUpdate` can revise that again a
|
|
365
|
+
* frame later. Scrolling once, at any single moment, lands short by
|
|
366
|
+
* however much the panel shrinks afterwards — measured on a 51-row year
|
|
367
|
+
* list, the selected row ended up 90px below the scrollport, invisible.
|
|
368
|
+
*
|
|
369
|
+
* The rows move too: a web font swapping in grew each one by 3px, which
|
|
370
|
+
* over the 24 rows above the selection added up to 72px of drift after
|
|
371
|
+
* the scroll had already run.
|
|
372
|
+
*
|
|
373
|
+
* So the scroll is tied to the geometry it depends on rather than to a
|
|
374
|
+
* guess about when that stops changing: the scrollport for its height,
|
|
375
|
+
* the row for the content's. Either resizing re-runs it. It is
|
|
376
|
+
* idempotent, scrolls nothing once everything fits, and stops as soon as
|
|
377
|
+
* the panel closes.
|
|
378
|
+
*/
|
|
379
|
+
useEffect(() => {
|
|
380
|
+
if (!isOpen || !isPositioned)
|
|
381
|
+
return;
|
|
382
|
+
const bring = () => {
|
|
383
|
+
const options = getOptions();
|
|
384
|
+
if (focusedIndex >= 0 && focusedIndex < options.length) {
|
|
385
|
+
scrollOptionIntoView(options[focusedIndex]);
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
bring();
|
|
389
|
+
const option = getOptions()[focusedIndex];
|
|
390
|
+
const scroller = findScroller(option);
|
|
391
|
+
if (!scroller || typeof ResizeObserver === "undefined")
|
|
392
|
+
return;
|
|
393
|
+
const observer = new ResizeObserver(bring);
|
|
394
|
+
observer.observe(scroller);
|
|
395
|
+
if (option)
|
|
396
|
+
observer.observe(option);
|
|
397
|
+
return () => observer.disconnect();
|
|
398
|
+
}, [isOpen, isPositioned, focusedIndex, getOptions, scrollOptionIntoView, findScroller]);
|
|
258
399
|
// Track hover on options to sync with keyboard navigation
|
|
259
400
|
useEffect(() => {
|
|
260
401
|
if (!isOpen || !dropdownRef.current)
|
|
@@ -313,25 +454,12 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
313
454
|
}
|
|
314
455
|
}
|
|
315
456
|
}, [getOptions, closeAfterClick, handleOpenChange]);
|
|
316
|
-
// Handle focus change
|
|
457
|
+
// Handle focus change. Scrolling the new option into view is the effect
|
|
458
|
+
// above, which is tied to the scrollport's size; recording the index is
|
|
459
|
+
// all this has to do.
|
|
317
460
|
const handleFocusChange = useCallback((index) => {
|
|
318
461
|
setFocusedIndex(index);
|
|
319
|
-
|
|
320
|
-
if (index >= 0 && index < options.length && dropdownRef.current) {
|
|
321
|
-
// Scroll within the dropdown container only, not the page
|
|
322
|
-
const option = options[index];
|
|
323
|
-
const container = dropdownRef.current;
|
|
324
|
-
const optionRect = option.getBoundingClientRect();
|
|
325
|
-
const containerRect = container.getBoundingClientRect();
|
|
326
|
-
// Check if option is outside visible area of container
|
|
327
|
-
if (optionRect.bottom > containerRect.bottom) {
|
|
328
|
-
option.scrollIntoView({ block: "nearest", behavior: "auto" });
|
|
329
|
-
}
|
|
330
|
-
else if (optionRect.top < containerRect.top) {
|
|
331
|
-
option.scrollIntoView({ block: "nearest", behavior: "auto" });
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}, [getOptions]);
|
|
462
|
+
}, []);
|
|
335
463
|
// Handle keyboard navigation
|
|
336
464
|
const handleKeyDown = useCallback((e) => {
|
|
337
465
|
if (!isOpen) {
|
|
@@ -404,10 +532,21 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
404
532
|
}, role: "button", "data-is-dropdown": "true", "aria-haspopup": "true", "aria-expanded": isOpen, className: "dropdown-trigger", children: trigger }), isOpen &&
|
|
405
533
|
dropdown &&
|
|
406
534
|
isBrowser &&
|
|
407
|
-
createPortal(_jsx(FocusTrap, {
|
|
535
|
+
createPortal(_jsx(FocusTrap, { containerRef: portalRef,
|
|
536
|
+
// Not `isOpen`: the panel is `visibility: hidden` until Floating
|
|
537
|
+
// UI has measured it, and a hidden element cannot take focus, so
|
|
538
|
+
// autofocusing before then silently lands nowhere.
|
|
539
|
+
active: isOpen && isPositioned, onEscape: () => handleOpenChange(false), autoFocus: true, restoreFocus: true, children: handleArrowNavigation ? (_jsx(ArrowNavigation, { layout: navigationLayout, itemCount: optionsCount, columns: typeof columns === "string" ? parseInt(columns, 10) || 8 : columns, onSelect: handleOptionSelect, onFocusChange: handleFocusChange, wrap: true, autoFocus: isPositioned, initialFocusedIndex: focusedIndex, itemSelector: '.option, [role="option"], [data-value]', role: navigationLayout === "grid" ? "grid" : "listbox", "aria-label": "Dropdown options", disabled: getLastOpenedDropdown() !== dropdownId.current, children: _jsx(Flex, { zIndex: 9, className: `${styles.fadeIn} dropdown-portal`, minWidth: minWidth, ref: dropdownRef, style: {
|
|
408
540
|
position: strategy,
|
|
409
541
|
top: y ?? 0,
|
|
410
542
|
left: x ?? 0,
|
|
543
|
+
// Floating UI reports 0,0 until it has measured, so the
|
|
544
|
+
// panel would otherwise paint once at the edge of the
|
|
545
|
+
// positioning context before jumping to the trigger.
|
|
546
|
+
// Hidden rather than unmounted: it has to be in the DOM
|
|
547
|
+
// to be measured at all.
|
|
548
|
+
visibility: isPositioned ? "visible" : "hidden",
|
|
549
|
+
transformOrigin,
|
|
411
550
|
}, "data-role": "dropdown-portal", "data-is-dropdown": "true", "data-dropdown-id": dropdownId.current, "data-is-active": getLastOpenedDropdown() === dropdownId.current, onKeyDown: (e) => {
|
|
412
551
|
// If handleArrowNavigation is false, let all keyboard events pass through
|
|
413
552
|
if (!handleArrowNavigation) {
|
|
@@ -485,6 +624,10 @@ const DropdownWrapper = forwardRef(({ trigger, onFocusCapture, onBlurCapture, dr
|
|
|
485
624
|
position: strategy,
|
|
486
625
|
top: y ?? 0,
|
|
487
626
|
left: x ?? 0,
|
|
627
|
+
// See the portal above: hidden until Floating UI has
|
|
628
|
+
// measured, so it cannot paint at 0,0 first.
|
|
629
|
+
visibility: isPositioned ? "visible" : "hidden",
|
|
630
|
+
transformOrigin,
|
|
488
631
|
}, "data-role": "dropdown-portal", "data-is-dropdown": "true", "data-dropdown-id": dropdownId.current, "data-is-active": getLastOpenedDropdown() === dropdownId.current, onKeyDown: (e) => {
|
|
489
632
|
// If handleArrowNavigation is false, let all keyboard events pass through
|
|
490
633
|
if (!handleArrowNavigation) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownWrapper.js","sourceRoot":"","sources":["../../src/components/DropdownWrapper.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DropdownWrapper.js","sourceRoot":"","sources":["../../src/components/DropdownWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
.fadeIn {
|
|
13
|
-
transform-origin
|
|
13
|
+
/* transform-origin is set inline from the RESOLVED placement — see
|
|
14
|
+
DropdownWrapper.tsx. Hardcoding it to `top right` here made every
|
|
15
|
+
left-anchored panel slide sideways as it scaled open. */
|
|
14
16
|
animation: fadeIn var(--transition-duration-micro-medium) var(--transition-eased);
|
|
15
17
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { BlobFx, CelebrationFx, Flex, MatrixFx,
|
|
2
|
+
import { BlobFx, CelebrationFx, Flex, MatrixFx, ParticleFx, WeatherFx } from ".";
|
|
3
3
|
/**
|
|
4
4
|
* The ambient effects that are interchangeable with one another: each paints a
|
|
5
5
|
* full-bleed decorative layer behind its content and none of them owns any
|
|
@@ -31,7 +31,7 @@ interface EffectProps extends React.ComponentProps<typeof Flex> {
|
|
|
31
31
|
blob?: Omit<React.ComponentProps<typeof BlobFx>, "children">;
|
|
32
32
|
matrix?: Omit<React.ComponentProps<typeof MatrixFx>, "children">;
|
|
33
33
|
weather?: Omit<React.ComponentProps<typeof WeatherFx>, "children">;
|
|
34
|
-
particle?: Omit<React.ComponentProps<typeof
|
|
34
|
+
particle?: Omit<React.ComponentProps<typeof ParticleFx>, "children">;
|
|
35
35
|
celebration?: Omit<React.ComponentProps<typeof CelebrationFx>, "children">;
|
|
36
36
|
children?: React.ReactNode;
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../../src/components/Effect.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"Effect.d.ts","sourceRoot":"","sources":["../../src/components/Effect.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAEjF;;;;;GAKG;AACH,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAEtF,UAAU,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC;IAC7D;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC;;;;OAIG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;IACnE,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;IACrE,WAAW,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,MAAM,iGA8CX,CAAC;AAIF,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { forwardRef } from "react";
|
|
4
|
-
import { BlobFx, CelebrationFx, Flex, MatrixFx,
|
|
4
|
+
import { BlobFx, CelebrationFx, Flex, MatrixFx, ParticleFx, WeatherFx } from ".";
|
|
5
5
|
const Effect = forwardRef(({ type = "none", colors, speed, reducedMotion, blob, matrix, weather, particle, celebration, children, ...flex }, ref) => {
|
|
6
6
|
// Every layer is positioned identically and sits under the children, so
|
|
7
7
|
// switching `type` changes the look and nothing else.
|
|
@@ -18,7 +18,7 @@ const Effect = forwardRef(({ type = "none", colors, speed, reducedMotion, blob,
|
|
|
18
18
|
case "celebration":
|
|
19
19
|
return _jsx(CelebrationFx, { ...layer, ...shared, colors: colors, ...celebration });
|
|
20
20
|
case "particle":
|
|
21
|
-
return _jsx(
|
|
21
|
+
return _jsx(ParticleFx, { ...layer, ...shared, color: colors?.[0], ...particle });
|
|
22
22
|
default:
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/components/Effect.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"Effect.js","sourceRoot":"","sources":["../../src/components/Effect.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAuCjF,MAAM,MAAM,GAAG,UAAU,CACvB,CACE,EACE,IAAI,GAAG,MAAM,EACb,MAAM,EACN,KAAK,EACL,aAAa,EACb,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,GAAG,IAAI,EACR,EACD,GAAG,EACH,EAAE;IACF,wEAAwE;IACxE,sDAAsD;IACtD,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAW,CAAC;IACjF,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAExC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;QACnB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,OAAO,KAAC,MAAM,OAAK,KAAK,KAAM,IAAI,GAAI,CAAC;YACzC,KAAK,QAAQ;gBACX,OAAO,KAAC,QAAQ,OAAK,KAAK,KAAM,MAAM,EAAE,MAAM,EAAE,MAAM,KAAM,MAAM,GAAI,CAAC;YACzE,KAAK,SAAS;gBACZ,OAAO,KAAC,SAAS,OAAK,KAAK,KAAM,MAAM,EAAE,MAAM,EAAE,MAAM,KAAM,OAAO,GAAI,CAAC;YAC3E,KAAK,aAAa;gBAChB,OAAO,KAAC,aAAa,OAAK,KAAK,KAAM,MAAM,EAAE,MAAM,EAAE,MAAM,KAAM,WAAW,GAAI,CAAC;YACnF,KAAK,UAAU;gBACb,OAAO,KAAC,UAAU,OAAK,KAAK,KAAM,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,KAAM,QAAQ,GAAI,CAAC;YACjF;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,CACL,MAAC,IAAI,IAAC,GAAG,EAAE,GAAG,EAAE,IAAI,QAAC,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,KAAK,IAAI,aAChE,MAAM,EACN,QAAQ,IACJ,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React, { ReactNode } from "react";
|
|
2
2
|
import { Flex } from ".";
|
|
3
|
+
import type { IconName } from "../icons";
|
|
3
4
|
interface FeedbackProps extends Omit<React.ComponentProps<typeof Flex>, "title"> {
|
|
4
5
|
variant?: "info" | "danger" | "warning" | "success";
|
|
5
6
|
showIcon?: boolean;
|
|
7
|
+
/** Overrides the variant's icon. Custom names work once registered through
|
|
8
|
+
* the `IconLibraryOverrides` interface, which is what widens `IconName`. */
|
|
9
|
+
icon?: IconName;
|
|
6
10
|
title?: string;
|
|
7
11
|
description?: string;
|
|
8
12
|
showCloseButton?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feedback.d.ts","sourceRoot":"","sources":["../../src/components/Feedback.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAoB,IAAI,EAAgB,MAAM,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"Feedback.d.ts","sourceRoot":"","sources":["../../src/components/Feedback.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAoB,IAAI,EAAgB,MAAM,GAAG,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,OAAO,CAAC;IAC9E,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;iFAC6E;IAC7E,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAWD,QAAA,MAAM,QAAQ,mGAsFb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -8,8 +8,8 @@ const variantIconMap = {
|
|
|
8
8
|
warning: "warning",
|
|
9
9
|
success: "check",
|
|
10
10
|
};
|
|
11
|
-
const Feedback = forwardRef(({ variant = "info", showIcon = true, title, description, showCloseButton = false, onClose, className, style, children, ...rest }, ref) => {
|
|
12
|
-
return (_jsxs(Flex, { fillWidth: true, radius: "l", ref: ref, border: `${variant}-medium`, background: `${variant}-medium`, vertical: "start", role: "alert", "aria-live": "assertive", className: className, style: style, ...rest, children: [showIcon && (_jsx(Flex, { paddingY: "16", paddingLeft: "16", children: _jsx(Icon, { padding: "2", radius: "m", onBackground: `${variant}-medium`, name: variantIconMap[variant], "aria-hidden": "true" }) })), _jsxs(Column, { fillWidth: true, padding: "16", gap: "24", vertical: "center", children: [(title || description) && (_jsxs(Column, { fillWidth: true, gap: "2", children: [title && (_jsxs(Flex, { fillWidth: true, gap: "16", children: [_jsx(Flex, { fillWidth: true, paddingY: "4", children: _jsx(Text, { variant: "heading-strong-xs", onBackground: `${variant}-medium`, role: "heading", "aria-level": 2, children: title }) }), showCloseButton && (_jsx(IconButton, { onClick: onClose, icon: "close", size: "m", tooltip: "Hide", tooltipPosition: "top", variant: "ghost", "aria-label": "Close alert" }))] })), description && (_jsx(Text, { marginBottom: "2", variant: "body-default-s", onBackground: `${variant}-strong`, children: description }))] })), children] })] }));
|
|
11
|
+
const Feedback = forwardRef(({ variant = "info", showIcon = true, icon, title, description, showCloseButton = false, onClose, className, style, children, ...rest }, ref) => {
|
|
12
|
+
return (_jsxs(Flex, { fillWidth: true, radius: "l", ref: ref, border: `${variant}-medium`, background: `${variant}-medium`, vertical: title || children ? "start" : "center", role: "alert", "aria-live": "assertive", className: className, style: style, ...rest, children: [showIcon && (_jsx(Flex, { paddingY: "16", paddingLeft: "16", children: _jsx(Icon, { padding: "2", radius: "m", onBackground: `${variant}-medium`, name: icon ?? variantIconMap[variant], "aria-hidden": "true" }) })), _jsxs(Column, { fillWidth: true, padding: "16", gap: "24", vertical: "center", children: [(title || description) && (_jsxs(Column, { fillWidth: true, gap: "2", children: [title && (_jsxs(Flex, { fillWidth: true, gap: "16", children: [_jsx(Flex, { fillWidth: true, paddingY: "4", children: _jsx(Text, { variant: "heading-strong-xs", onBackground: `${variant}-medium`, role: "heading", "aria-level": 2, children: title }) }), showCloseButton && (_jsx(IconButton, { onClick: onClose, icon: "close", size: "m", tooltip: "Hide", tooltipPosition: "top", variant: "ghost", "aria-label": "Close alert" }))] })), description && (_jsx(Text, { marginBottom: "2", variant: "body-default-s", onBackground: `${variant}-strong`, children: description }))] })), children] })] }));
|
|
13
13
|
});
|
|
14
14
|
Feedback.displayName = "Feedback";
|
|
15
15
|
export { Feedback };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Feedback.js","sourceRoot":"","sources":["../../src/components/Feedback.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"Feedback.js","sourceRoot":"","sources":["../../src/components/Feedback.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;AAkBzD,MAAM,cAAc,GAEhB;IACF,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,QAAQ,GAAG,UAAU,CACzB,CACE,EACE,OAAO,GAAG,MAAM,EAChB,QAAQ,GAAG,IAAI,EACf,IAAI,EACJ,KAAK,EACL,WAAW,EACX,eAAe,GAAG,KAAK,EACvB,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACR,EACD,GAAG,EACH,EAAE;IACF,OAAO,CACL,MAAC,IAAI,IACH,SAAS,QACT,MAAM,EAAC,GAAG,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,GAAG,OAAO,SAAS,EAC3B,UAAU,EAAE,GAAG,OAAO,SAAS,EAC/B,QAAQ,EAAE,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAChD,IAAI,EAAC,OAAO,eACF,WAAW,EACrB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,KACR,IAAI,aAEP,QAAQ,IAAI,CACX,KAAC,IAAI,IAAC,QAAQ,EAAC,IAAI,EAAC,WAAW,EAAC,IAAI,YAClC,KAAC,IAAI,IACH,OAAO,EAAC,GAAG,EACX,MAAM,EAAC,GAAG,EACV,YAAY,EAAE,GAAG,OAAO,SAAS,EACjC,IAAI,EAAE,IAAI,IAAI,cAAc,CAAC,OAAO,CAAC,iBACzB,MAAM,GAClB,GACG,CACR,EACD,MAAC,MAAM,IAAC,SAAS,QAAC,OAAO,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,aACtD,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CACzB,MAAC,MAAM,IAAC,SAAS,QAAC,GAAG,EAAC,GAAG,aACtB,KAAK,IAAI,CACR,MAAC,IAAI,IAAC,SAAS,QAAC,GAAG,EAAC,IAAI,aACtB,KAAC,IAAI,IAAC,SAAS,QAAC,QAAQ,EAAC,GAAG,YAC1B,KAAC,IAAI,IACH,OAAO,EAAC,mBAAmB,EAC3B,YAAY,EAAE,GAAG,OAAO,SAAS,EACjC,IAAI,EAAC,SAAS,gBACF,CAAC,YAEZ,KAAK,GACD,GACF,EACN,eAAe,IAAI,CAClB,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,GAAG,EACR,OAAO,EAAC,MAAM,EACd,eAAe,EAAC,KAAK,EACrB,OAAO,EAAC,OAAO,gBACJ,aAAa,GACxB,CACH,IACI,CACR,EACA,WAAW,IAAI,CACd,KAAC,IAAI,IACH,YAAY,EAAC,GAAG,EAChB,OAAO,EAAC,gBAAgB,EACxB,YAAY,EAAE,GAAG,OAAO,SAAS,YAEhC,WAAW,GACP,CACR,IACM,CACV,EACA,QAAQ,IACF,IACJ,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -3,11 +3,11 @@ interface FocusTrapProps {
|
|
|
3
3
|
children: ReactNode;
|
|
4
4
|
active: boolean;
|
|
5
5
|
onEscape?: () => void;
|
|
6
|
-
containerRef?: RefObject<HTMLDivElement>;
|
|
6
|
+
containerRef?: RefObject<HTMLDivElement | null>;
|
|
7
7
|
className?: string;
|
|
8
8
|
style?: React.CSSProperties;
|
|
9
|
-
initialFocusRef?: RefObject<HTMLElement>;
|
|
10
|
-
returnFocusRef?: RefObject<HTMLElement>;
|
|
9
|
+
initialFocusRef?: RefObject<HTMLElement | null>;
|
|
10
|
+
returnFocusRef?: RefObject<HTMLElement | null>;
|
|
11
11
|
restoreFocus?: boolean;
|
|
12
12
|
autoFocus?: boolean;
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusTrap.d.ts","sourceRoot":"","sources":["../../src/components/FocusTrap.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAqB,SAAS,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAElG,UAAU,cAAc;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"FocusTrap.d.ts","sourceRoot":"","sources":["../../src/components/FocusTrap.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAqB,SAAS,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAElG,UAAU,cAAc;IACtB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,SAAS,uFA0Hb,CAAA;AAGF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -8,6 +8,16 @@ const FocusTrap = forwardRef(({ children, active, onEscape, containerRef: extern
|
|
|
8
8
|
// Store the previously focused element when the trap becomes active
|
|
9
9
|
useEffect(() => {
|
|
10
10
|
if (active) {
|
|
11
|
+
// Focus already inside means someone placed it there deliberately and
|
|
12
|
+
// more precisely than "the first focusable element" — DropdownWrapper
|
|
13
|
+
// opens a list on its selected option, not its first. This effect can
|
|
14
|
+
// run before or after that, depending on when the panel finishes
|
|
15
|
+
// positioning, so it defers instead of racing: a trap's job is to keep
|
|
16
|
+
// focus in, not to reset where it sits. The element outside is likewise
|
|
17
|
+
// only worth remembering when focus is actually coming from out there.
|
|
18
|
+
const alreadyInside = containerRef.current?.contains(document.activeElement) ?? false;
|
|
19
|
+
if (alreadyInside)
|
|
20
|
+
return;
|
|
11
21
|
previouslyFocusedElement.current = document.activeElement;
|
|
12
22
|
if (autoFocus) {
|
|
13
23
|
// Focus the specified initial element or the first focusable element
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusTrap.js","sourceRoot":"","sources":["../../src/components/FocusTrap.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FocusTrap.js","sourceRoot":"","sources":["../../src/components/FocusTrap.tsx"],"names":[],"mappings":"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"}
|