cursedbelt 5.104.0 → 5.104.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/dist/react/components/DataTable/DataTable.d.ts.map +1 -1
- package/dist/react/components/DataTable/DataTable.js +21 -6
- package/dist/react/components/DataTable/DataTable.js.map +1 -1
- package/dist/react/components/DataTable/RowActions.d.ts.map +1 -1
- package/dist/react/components/DataTable/RowActions.js +26 -3
- package/dist/react/components/DataTable/RowActions.js.map +1 -1
- package/dist/react/components/DataTable/lazyPart.d.ts +16 -1
- package/dist/react/components/DataTable/lazyPart.d.ts.map +1 -1
- package/dist/react/components/DataTable/lazyPart.js +21 -1
- package/dist/react/components/DataTable/lazyPart.js.map +1 -1
- package/dist/react/components/DropdownMenu.d.ts.map +1 -1
- package/dist/react/components/DropdownMenu.js +22 -3
- package/dist/react/components/DropdownMenu.js.map +1 -1
- package/dist/react/lib/fingerPress.d.ts +9 -0
- package/dist/react/lib/fingerPress.d.ts.map +1 -0
- package/dist/react/lib/fingerPress.js +9 -0
- package/dist/react/lib/fingerPress.js.map +1 -0
- package/dist/react/media/PlayerStrip.d.ts.map +1 -1
- package/dist/react/media/PlayerStrip.js +6 -6
- package/dist/react/media/PlayerStrip.js.map +1 -1
- package/dist/styles-areas/core.css +8 -8
- package/package.json +2 -2
- package/src/react/components/DataTable/DataTable.tsx +22 -5
- package/src/react/components/DataTable/RowActions.spec.tsx +191 -0
- package/src/react/components/DataTable/RowActions.tsx +32 -9
- package/src/react/components/DataTable/columnPriorityTiers.spec.tsx +41 -0
- package/src/react/components/DataTable/lazyPart.tsx +33 -1
- package/src/react/components/DataTable/rowMenuOpen.spec.tsx +79 -0
- package/src/react/components/DropdownMenu.spec.tsx +57 -0
- package/src/react/components/DropdownMenu.tsx +25 -3
- package/src/react/lib/fingerPress.ts +8 -0
- package/src/react/media/PlayerStrip.tsx +8 -7
- package/src/react/media/playerStrip.spec.tsx +26 -0
- package/src/styles-areas/core.css +8 -8
|
@@ -5,6 +5,7 @@ import { Check, ChevronRight } from 'lucide-react';
|
|
|
5
5
|
import { Fragment, useCallback, useMemo, useRef, useState } from 'react';
|
|
6
6
|
import { useOutsidePress } from '../hooks/useOutsidePress.js';
|
|
7
7
|
import { cn } from '../lib/cn.js';
|
|
8
|
+
import { isFingerPress } from '../lib/fingerPress.js';
|
|
8
9
|
import { useFloatingContainer } from '../lib/floatingContainer.js';
|
|
9
10
|
import { arrangeMenuItems } from '../lib/menuSections.js';
|
|
10
11
|
import { FLOATING_ANIMATION, FLOATING_COLLISION_PADDING, FLOATING_CONTENT_BASE, FLOATING_ITEM_BASE, } from '../lib/floatingStyles.js';
|
|
@@ -41,7 +42,22 @@ export function DropdownMenu({ trigger, items, align = 'start', side = 'bottom',
|
|
|
41
42
|
escape: false,
|
|
42
43
|
decideOn: 'pointerdown',
|
|
43
44
|
});
|
|
44
|
-
|
|
45
|
+
/*
|
|
46
|
+
* 🔴 Radix's Select makes this split and its menu does not: a menu opened by a finger's press
|
|
47
|
+
* lands under the finger, and the release picks what is there — one tap on a phone's row `⋯`
|
|
48
|
+
* pressed Remove (forge task 4184). `preventDefault` is how Radix is told to leave the press alone.
|
|
49
|
+
* A click whose press never reached the trigger is the tap that closed this modal menu: it stays closed.
|
|
50
|
+
*/
|
|
51
|
+
const fingerPressed = useRef(false);
|
|
52
|
+
return (_jsxs(RDrop.Root, { open: isOpen, onOpenChange: setOpen, children: [_jsx(RDrop.Trigger, { asChild: true, ref: triggerRef, onPointerDown: (event) => {
|
|
53
|
+
fingerPressed.current = isFingerPress(event);
|
|
54
|
+
if (fingerPressed.current)
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
}, onClick: () => {
|
|
57
|
+
if (fingerPressed.current)
|
|
58
|
+
setOpen(!isOpen);
|
|
59
|
+
fingerPressed.current = false;
|
|
60
|
+
}, children: trigger }), _jsx(RDrop.Portal, { container: container, children: _jsxs(RDrop.Content, { ...rest, align: align, side: side, sideOffset: 4, collisionPadding: FLOATING_COLLISION_PADDING, onClickCapture: pressInside.onClickCapture, onPointerDownCapture: pressInside.onPointerDownCapture, className: cn(FLOATING_CONTENT_BASE, FLOATING_ANIMATION, 'min-w-32 p-1', className), children: [_jsx(MenuSections, { items: items }), _jsx(RDrop.Arrow, { className: 'fill-border' })] }) })] }));
|
|
45
61
|
}
|
|
46
62
|
function MenuSections({ items }) {
|
|
47
63
|
const sections = useMemo(() => arrangeMenuItems(items), [items]);
|
|
@@ -56,9 +72,12 @@ function MenuSections({ items }) {
|
|
|
56
72
|
/** The label, with the disabled reason under it when there is one. */
|
|
57
73
|
function ItemLabel({ item }) {
|
|
58
74
|
// `min-w-0` + `anywhere`: inside the viewport-capped panel a long label wraps, never overflows.
|
|
75
|
+
// Beside a description that lets both shrink to a letter, and "Retry" came out as "Ret / ry" on
|
|
76
|
+
// a phone (forge task 4183): `break-word` keeps a word whole, so the description gives way.
|
|
77
|
+
const wrap = item.description ? 'wrap-break-word' : 'min-w-0 [overflow-wrap:anywhere]';
|
|
59
78
|
if (!item.disabledReason)
|
|
60
|
-
return _jsx("span", { className:
|
|
61
|
-
return (_jsxs("span", { className: 'flex
|
|
79
|
+
return _jsx("span", { className: wrap, children: item.label });
|
|
80
|
+
return (_jsxs("span", { className: cn(wrap, 'flex flex-col'), children: [_jsx("span", { children: item.label }), _jsx("span", { "data-cb-menu-reason": '', className: 'text-caption text-muted-foreground', children: item.disabledReason })] }));
|
|
62
81
|
}
|
|
63
82
|
/** The trailing column: a description, or the shortcut in the platform's notation. */
|
|
64
83
|
function ItemTrailing({ item }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.js","sourceRoot":"","sources":["../../../src/react/components/DropdownMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAkB,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AA4ElC;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,KAAK,GAAG,OAAO,EACf,IAAI,GAAG,QAAQ,EACf,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,GAAG,IAAI,EACW;IAClB,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;IACzC,gFAAgF;IAChF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,CAAC;IAC/B,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,IAAa,EAAE,EAAE;QAChB,IAAI,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACzC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,IAAI,EAAE,YAAY,CAAC,CACrB,CAAC;IACF;;;;;OAKG;IACH,MAAM,UAAU,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,eAAe,CAAC;QAClC,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,CAAC,UAAU,CAAC;QACpB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAC;IACH,OAAO,CACL,MAAC,KAAK,CAAC,IAAI,IAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,aAC7C,KAAC,KAAK,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"DropdownMenu.js","sourceRoot":"","sources":["../../../src/react/components/DropdownMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🔴 A finger or a pen, whose press must not open anything: what opens on the pointerdown is under
|
|
3
|
+
* the finger when it lifts, and the release presses it (forge task 4184). So these open on the
|
|
4
|
+
* `click`, which is also how a scroll that starts on a control is not a press.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isFingerPress(event: {
|
|
7
|
+
pointerType: string;
|
|
8
|
+
}): boolean;
|
|
9
|
+
//# sourceMappingURL=fingerPress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerPress.d.ts","sourceRoot":"","sources":["../../../src/react/lib/fingerPress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAErE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 🔴 A finger or a pen, whose press must not open anything: what opens on the pointerdown is under
|
|
3
|
+
* the finger when it lifts, and the release presses it (forge task 4184). So these open on the
|
|
4
|
+
* `click`, which is also how a scroll that starts on a control is not a press.
|
|
5
|
+
*/
|
|
6
|
+
export function isFingerPress(event) {
|
|
7
|
+
return event.pointerType === 'touch' || event.pointerType === 'pen';
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=fingerPress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerPress.js","sourceRoot":"","sources":["../../../src/react/lib/fingerPress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAA8B;IAC1D,OAAO,KAAK,CAAC,WAAW,KAAK,OAAO,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC;AACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerStrip.d.ts","sourceRoot":"","sources":["../../../src/react/media/PlayerStrip.tsx"],"names":[],"mappings":"AA4DA,OAAO,mBAAmB,CAAC;AAG3B,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtD;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAChC,0FAA0F;IAC1F,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAEnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC,yFAAyF;IACzF,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uFAAuF;IACvF,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAErC;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChC,mEAAmE;IACnE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"PlayerStrip.d.ts","sourceRoot":"","sources":["../../../src/react/media/PlayerStrip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
39
39
|
import { useEffect, useId, useState } from "react";
|
|
40
40
|
import { Info, MoreHorizontal, Pause, Play, Repeat, Repeat1, Shuffle, SkipBack, SkipForward, Volume1, Volume2, VolumeX, } from "lucide-react";
|
|
41
41
|
import { IconButton } from "../components/IconButton.js";
|
|
42
|
-
import { lazyPart } from "../components/DataTable/lazyPart.js";
|
|
42
|
+
import { lazyPart, standInPress } from "../components/DataTable/lazyPart.js";
|
|
43
43
|
import { Tooltip } from "../components/Tooltip.js";
|
|
44
44
|
import { cn } from "../lib/cn.js";
|
|
45
45
|
import { splitActions } from "./splitActions.js";
|
|
@@ -121,8 +121,8 @@ function OverflowMenu({ actions }) {
|
|
|
121
121
|
if (actions.length === 0)
|
|
122
122
|
return null;
|
|
123
123
|
const explained = actions.filter((action) => action.hint);
|
|
124
|
-
const trigger = (
|
|
125
|
-
return (_jsxs(_Fragment, { children: [_jsx(LazyMenu, { align: "end", fallback: trigger(() => setOpen(true)), onOpenChange: setOpen, open: open, items: [
|
|
124
|
+
const trigger = (press) => (_jsx(IconButton, { ...press, className: "cbps__icon", label: "More actions for this track", size: "lg", children: _jsx(MoreHorizontal, {}) }));
|
|
125
|
+
return (_jsxs(_Fragment, { children: [_jsx(LazyMenu, { align: "end", fallback: trigger(standInPress(() => setOpen(true))), onOpenChange: setOpen, open: open, items: [
|
|
126
126
|
...actions.map((action) => ({
|
|
127
127
|
key: action.key,
|
|
128
128
|
label: action.label,
|
|
@@ -137,10 +137,10 @@ function OverflowMenu({ actions }) {
|
|
|
137
137
|
: []),
|
|
138
138
|
], side: "top", trigger: trigger() }), help ? (_jsx(LazyActionsHelp, { listLabel: "Track actions explained", onClose: () => setHelp(false), open: true, rows: explained.map((action) => ({ key: action.key, icon: action.icon, label: action.label, hint: action.hint })) })) : null] }));
|
|
139
139
|
}
|
|
140
|
-
function ActionButton({ action,
|
|
140
|
+
function ActionButton({ action, ...press }) {
|
|
141
141
|
return (_jsx(IconButton
|
|
142
142
|
// A popover trigger is not a toggle: its state is the panel's, which Radix announces.
|
|
143
|
-
, { "aria-pressed": action.active === undefined || action.popover ? undefined : action.active, className: cn("cbps__icon", action.active ? "is-active" : "", action.danger ? "is-danger" : ""), disabled: action.disabled ?? false, label: action.label, onClick: onClick ?? action.onClick, size: "lg", tooltip: action.hint ?? action.label, children: action.icon }));
|
|
143
|
+
, { "aria-pressed": action.active === undefined || action.popover ? undefined : action.active, className: cn("cbps__icon", action.active ? "is-active" : "", action.danger ? "is-danger" : ""), disabled: action.disabled ?? false, label: action.label, onClick: press.onClick ?? action.onClick, onPointerDown: press.onPointerDown, size: "lg", tooltip: action.hint ?? action.label, children: action.icon }));
|
|
144
144
|
}
|
|
145
145
|
/**
|
|
146
146
|
* 🔴 Controlled, so a press that lands BEFORE the panel's chunk does is not lost: the fallback
|
|
@@ -148,7 +148,7 @@ function ActionButton({ action, onClick }) {
|
|
|
148
148
|
*/
|
|
149
149
|
function PopoverAction({ action }) {
|
|
150
150
|
const [open, setOpen] = useState(false);
|
|
151
|
-
return (_jsx(LazyPopover, { align: "center", fallback: _jsx(ActionButton, { action: action,
|
|
151
|
+
return (_jsx(LazyPopover, { align: "center", fallback: _jsx(ActionButton, { action: action, ...standInPress(() => setOpen(true)) }), onOpenChange: setOpen, open: open, side: "top", trigger: _jsx(ActionButton, { action: action }), children: action.popover }));
|
|
152
152
|
}
|
|
153
153
|
export function PlayerStrip({ art, title, subtitle, onReveal, revealLabel = "Show this track in the list", revealBusy = false, playing, positionMs, durationMs, onToggle, onSeek, onNext, onPrevious, shuffle, onShuffleChange, repeat, onRepeatChange, volume = 1, muted = false, onVolumeChange, onMutedChange, trackActions = [], inlineActions, utilityActions = [], seekLine = true, empty, error = null, errorTone = "danger", formatTime = defaultFormatTime, className, rootRef, ...rest }) {
|
|
154
154
|
const scrubberId = useId();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerStrip.js","sourceRoot":"","sources":["../../../src/react/media/PlayerStrip.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlayerStrip.js","sourceRoot":"","sources":["../../../src/react/media/PlayerStrip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* after an app's responsive variant (task 2124). An app that imports every area gets exactly
|
|
16
16
|
* what `cursedbelt/styles-utilities.css` emits — proved rule by rule in
|
|
17
17
|
* src/stylesAreas.spec.ts, which is also what fails when this file is stale.
|
|
18
|
-
*
|
|
18
|
+
* 947 candidate(s).
|
|
19
19
|
*
|
|
20
20
|
* Written by scripts/generateAreaStyles.ts (`bun run styles:areas`), which
|
|
21
21
|
* `bun run build` runs. The map of what is in which area, and why the areas are
|
|
@@ -67,13 +67,13 @@
|
|
|
67
67
|
@source inline("border-field-border border-l border-r border-rule border-success/30 border-success/40");
|
|
68
68
|
@source inline("border-success/50 border-t border-tone-sky-fg/30 border-tone-slate-fg/30 border-transparent");
|
|
69
69
|
@source inline("border-warning/30 border-warning/40 border-warning/50 border-x-4 border-x-transparent bot bottom");
|
|
70
|
-
@source inline("bottom-0 break break-all break-words c ca cap capitalize co col-span-full com contain
|
|
71
|
-
@source inline("content contents cursor cursor-col-resize cursor-default cursor-ew-resize
|
|
72
|
-
@source inline("cursor-pointer cursor-row-resize d dark dark:bg-card-overlay
|
|
73
|
-
@source inline("dark:bg-gray-800 data data-[disabled]:hover:bg-border
|
|
74
|
-
@source inline("data-[disabled]:
|
|
75
|
-
@source inline("data-[
|
|
76
|
-
@source inline("data-[interactive=true]:duration-[var(--duration-base)]");
|
|
70
|
+
@source inline("bottom-0 break break-all break-word break-words c ca cap capitalize co col-span-full com contain");
|
|
71
|
+
@source inline("container content contents cursor cursor-col-resize cursor-default cursor-ew-resize");
|
|
72
|
+
@source inline("cursor-not-allowed cursor-pointer cursor-row-resize d dark dark:bg-card-overlay");
|
|
73
|
+
@source inline("dark:bg-card-raised dark:bg-gray-800 data data-[disabled]:hover:bg-border");
|
|
74
|
+
@source inline("data-[disabled]:opacity-50 data-[disabled]:pointer-events-none data-[ending-style]:opacity-0");
|
|
75
|
+
@source inline("data-[ending-style]:scale-95 data-[highlighted]:bg-accent/10");
|
|
76
|
+
@source inline("data-[highlighted]:text-accent-strong data-[interactive=true]:duration-[var(--duration-base)]");
|
|
77
77
|
@source inline("data-[interactive=true]:ease-[var(--ease-out)] data-[interactive=true]:hover:-translate-y-0.5");
|
|
78
78
|
@source inline("data-[interactive=true]:hover:border-border-strong data-[interactive=true]:transition-all");
|
|
79
79
|
@source inline("data-[interactive=true]:transition-colors data-[placeholder]:text-muted-foreground");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cursedbelt",
|
|
3
|
-
"version": "5.104.
|
|
3
|
+
"version": "5.104.2",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "The React design system of the cursedbelt split — components, styles, theme. cursedbelt-core below it; server tier in cursedbelt-server.",
|
|
@@ -965,7 +965,7 @@
|
|
|
965
965
|
"@types/react-dom": "^19.2.3",
|
|
966
966
|
"@vidstack/react": "1.15.6",
|
|
967
967
|
"@vitejs/plugin-react": "^5.2.0",
|
|
968
|
-
"cursedbelt-server": "^4.
|
|
968
|
+
"cursedbelt-server": "^4.59.0",
|
|
969
969
|
"cursedops": "^0.23.0",
|
|
970
970
|
"diff": "^9.0.0",
|
|
971
971
|
"emoji-mart": "^5.6.0",
|
|
@@ -1693,7 +1693,21 @@ export function DataTable<TRow extends Record<string, unknown>>({
|
|
|
1693
1693
|
};
|
|
1694
1694
|
// DAT-5: right-click opens the SAME menu the row's `⋯` opens — a desktop accelerator, never
|
|
1695
1695
|
// the only way in. Held by row id so the menu stays anchored to that row's kebab.
|
|
1696
|
-
|
|
1696
|
+
/**
|
|
1697
|
+
* 🔴 The ONE row `⋯` open in this table, and in which tier (forge task 4180): a press that waits
|
|
1698
|
+
* on the menu's chunk moves here when a second row is pressed, so a table can never hold two modal
|
|
1699
|
+
* menus. The tier is part of it because a table that does not virtualize mounts all three tiers,
|
|
1700
|
+
* and a row id alone would open the row's menu in the two that `display: none` hides as well.
|
|
1701
|
+
*/
|
|
1702
|
+
const [openRowMenu, setOpenRowMenu] = useState<{ rowId: string; tier: TableTier } | null>(null);
|
|
1703
|
+
const rowMenuState = (rowId: string, tier: TableTier) => {
|
|
1704
|
+
const here = (open: { rowId: string; tier: TableTier } | null) => open?.rowId === rowId && open.tier === tier;
|
|
1705
|
+
return {
|
|
1706
|
+
menuOpen: here(openRowMenu),
|
|
1707
|
+
onMenuOpenChange: (open: boolean) =>
|
|
1708
|
+
setOpenRowMenu((current) => (open ? { rowId, tier } : here(current) ? null : current)),
|
|
1709
|
+
};
|
|
1710
|
+
};
|
|
1697
1711
|
|
|
1698
1712
|
// ── Row selection (see the `selectedIds` prop doc) ──────────────────────────
|
|
1699
1713
|
const canSelect = (row: TRow) => isRowSelectable?.(row) ?? true;
|
|
@@ -2013,6 +2027,7 @@ export function DataTable<TRow extends Record<string, unknown>>({
|
|
|
2013
2027
|
menu={rowMenu?.(row.original)}
|
|
2014
2028
|
menuLabel={rowMenuLabel?.(row.original)}
|
|
2015
2029
|
action={rowAction?.(row.original) ?? undefined}
|
|
2030
|
+
{...rowMenuState(row.id, 'cards')}
|
|
2016
2031
|
/>
|
|
2017
2032
|
) : null
|
|
2018
2033
|
}
|
|
@@ -2040,7 +2055,9 @@ export function DataTable<TRow extends Record<string, unknown>>({
|
|
|
2040
2055
|
{mobileCards && (
|
|
2041
2056
|
<div data-cb-table-list='' className='hidden @xl:block @3xl:hidden'>
|
|
2042
2057
|
{(() => {
|
|
2043
|
-
|
|
2058
|
+
// 🔴 `ColDef.priority` counts here too (forge task 4182): this tier's tracks add up the
|
|
2059
|
+
// same, and a row wider than the panel loses its trailing kebab off the edge.
|
|
2060
|
+
const [title, ...rest] = cardColumns.filter((c) => !droppedByWidth.has(c.key));
|
|
2044
2061
|
// ONE shared grid template for every row — parent and child rows
|
|
2045
2062
|
// lock into identical column slots, so the status/ports/actions
|
|
2046
2063
|
// lanes stay razor-straight regardless of row content ("ragged
|
|
@@ -2152,6 +2169,7 @@ export function DataTable<TRow extends Record<string, unknown>>({
|
|
|
2152
2169
|
menu={rowMenu?.(row.original)}
|
|
2153
2170
|
menuLabel={rowMenuLabel?.(row.original)}
|
|
2154
2171
|
action={rowAction?.(row.original) ?? undefined}
|
|
2172
|
+
{...rowMenuState(row.id, 'list')}
|
|
2155
2173
|
/>
|
|
2156
2174
|
) : null}
|
|
2157
2175
|
</div>
|
|
@@ -2414,7 +2432,7 @@ export function DataTable<TRow extends Record<string, unknown>>({
|
|
|
2414
2432
|
? (event: MouseEvent<HTMLElement>) => {
|
|
2415
2433
|
if (rowMenu(row.original).length === 0) return;
|
|
2416
2434
|
event.preventDefault();
|
|
2417
|
-
|
|
2435
|
+
setOpenRowMenu({ rowId: row.id, tier: 'grid' });
|
|
2418
2436
|
}
|
|
2419
2437
|
: undefined,
|
|
2420
2438
|
onKeyDown: onRowClick
|
|
@@ -2511,8 +2529,7 @@ export function DataTable<TRow extends Record<string, unknown>>({
|
|
|
2511
2529
|
menu={rowMenu?.(row.original)}
|
|
2512
2530
|
menuLabel={rowMenuLabel?.(row.original)}
|
|
2513
2531
|
action={rowAction?.(row.original) ?? undefined}
|
|
2514
|
-
|
|
2515
|
-
onMenuOpenChange={(open) => setContextMenuRowId(open ? row.id : null)}
|
|
2532
|
+
{...rowMenuState(row.id, 'grid')}
|
|
2516
2533
|
/>
|
|
2517
2534
|
</td>
|
|
2518
2535
|
) : null}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { afterEach, describe, expect, test } from 'bun:test';
|
|
2
|
+
import { act, cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import type * as RowActionsModule from './RowActions.js';
|
|
5
|
+
|
|
6
|
+
afterEach(cleanup);
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* A copy of `RowActions.tsx` with its OWN `MenuPart` — nothing has loaded its chunk, and nothing can
|
|
10
|
+
* until a test yields, because a dynamic import never settles inside the synchronous run after
|
|
11
|
+
* `render`. So what a test does before its first `await` happens BEFORE the chunk lands, every time.
|
|
12
|
+
*/
|
|
13
|
+
async function coldRowActions(): Promise<typeof RowActionsModule> {
|
|
14
|
+
return (await import(`./RowActions.tsx?cold=${Math.random()}`)) as typeof RowActionsModule;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const LABEL = 'More for Alien';
|
|
18
|
+
const MENU = [{ key: 'retry', label: 'Retry' }];
|
|
19
|
+
const kebab = () => screen.getByRole('button', { name: LABEL });
|
|
20
|
+
|
|
21
|
+
describe('RowActions — a press on the ⋯ before its menu chunk lands (forge task 4172)', () => {
|
|
22
|
+
test('🔴 a click is remembered: the menu opens when the chunk lands', async () => {
|
|
23
|
+
const { RowActions } = await coldRowActions();
|
|
24
|
+
render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
25
|
+
fireEvent.click(kebab());
|
|
26
|
+
expect(screen.queryByRole('menuitem')).toBeNull();
|
|
27
|
+
expect(await screen.findByRole('menuitem', { name: 'Retry' })).toBeTruthy();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test('🔴 a press still held as the chunk lands is not lost — its click goes to neither button', async () => {
|
|
31
|
+
const { RowActions } = await coldRowActions();
|
|
32
|
+
render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
33
|
+
fireEvent.pointerDown(kebab(), { button: 0 });
|
|
34
|
+
expect(await screen.findByRole('menuitem', { name: 'Retry' })).toBeTruthy();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test('🔴 a finger\'s press is not one: a menu landing under the finger would be pressed by its release (forge task 4184)', async () => {
|
|
38
|
+
const { RowActions, preloadRowMenu } = await coldRowActions();
|
|
39
|
+
render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
40
|
+
fireEvent.pointerDown(kebab(), { button: 0, pointerType: 'touch' });
|
|
41
|
+
await act(preloadRowMenu);
|
|
42
|
+
await waitFor(() => expect(kebab().getAttribute('aria-expanded')).toBe('false'));
|
|
43
|
+
expect(screen.queryByRole('menuitem')).toBeNull();
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('a finger\'s tap before the chunk still opens it, on the click', async () => {
|
|
47
|
+
const { RowActions } = await coldRowActions();
|
|
48
|
+
render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
49
|
+
fireEvent.pointerDown(kebab(), { button: 0, pointerType: 'touch' });
|
|
50
|
+
fireEvent.click(kebab());
|
|
51
|
+
expect(await screen.findByRole('menuitem', { name: 'Retry' })).toBeTruthy();
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
test('the kebab spins while the press waits, the only answer a slow link can give', async () => {
|
|
55
|
+
const { RowActions } = await coldRowActions();
|
|
56
|
+
render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
57
|
+
expect(kebab().getAttribute('aria-haspopup')).toBe('menu');
|
|
58
|
+
expect(kebab().hasAttribute('aria-busy')).toBe(false);
|
|
59
|
+
fireEvent.click(kebab());
|
|
60
|
+
expect(kebab().getAttribute('aria-busy')).toBe('true');
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('a second press, by someone who thinks the first was lost, does not cancel it', async () => {
|
|
64
|
+
const { RowActions } = await coldRowActions();
|
|
65
|
+
render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
66
|
+
fireEvent.click(kebab());
|
|
67
|
+
fireEvent.click(kebab());
|
|
68
|
+
expect(await screen.findByRole('menuitem', { name: 'Retry' })).toBeTruthy();
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test('a right button or a ctrl press is not a press on the menu', async () => {
|
|
72
|
+
const { RowActions, preloadRowMenu } = await coldRowActions();
|
|
73
|
+
render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
74
|
+
fireEvent.pointerDown(kebab(), { button: 2 });
|
|
75
|
+
fireEvent.pointerDown(kebab(), { button: 0, ctrlKey: true });
|
|
76
|
+
await act(preloadRowMenu);
|
|
77
|
+
await waitFor(() => expect(kebab().getAttribute('aria-expanded')).toBe('false'));
|
|
78
|
+
expect(screen.queryByRole('menuitem')).toBeNull();
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
test('a table that controls the menu hears the press, and its answer opens it', async () => {
|
|
82
|
+
const { RowActions } = await coldRowActions();
|
|
83
|
+
const heard: boolean[] = [];
|
|
84
|
+
function Controlled() {
|
|
85
|
+
const [open, setOpen] = useState(false);
|
|
86
|
+
return (
|
|
87
|
+
<RowActions
|
|
88
|
+
row={{}}
|
|
89
|
+
menu={MENU}
|
|
90
|
+
menuLabel={LABEL}
|
|
91
|
+
menuOpen={open}
|
|
92
|
+
onMenuOpenChange={(next) => {
|
|
93
|
+
heard.push(next);
|
|
94
|
+
setOpen(next);
|
|
95
|
+
}}
|
|
96
|
+
/>
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
render(<Controlled />);
|
|
100
|
+
fireEvent.click(kebab());
|
|
101
|
+
expect(await screen.findByRole('menuitem', { name: 'Retry' })).toBeTruthy();
|
|
102
|
+
expect(heard).toEqual([true]);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
test('the menu that mounted open still closes: a pick runs and takes it away', async () => {
|
|
106
|
+
const { RowActions } = await coldRowActions();
|
|
107
|
+
const picked: string[] = [];
|
|
108
|
+
render(
|
|
109
|
+
<RowActions row={{}} menu={[{ key: 'retry', label: 'Retry', onClick: () => picked.push('retry') }]} menuLabel={LABEL} />,
|
|
110
|
+
);
|
|
111
|
+
fireEvent.click(kebab());
|
|
112
|
+
fireEvent.click(await screen.findByRole('menuitem', { name: 'Retry' }));
|
|
113
|
+
expect(picked).toEqual(['retry']);
|
|
114
|
+
await waitFor(() => expect(screen.queryByRole('menuitem')).toBeNull());
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
test('after the chunk, the ⋯ is Radix\'s own: closed until it is pressed, open on the press', async () => {
|
|
118
|
+
const { RowActions, preloadRowMenu } = await coldRowActions();
|
|
119
|
+
await preloadRowMenu();
|
|
120
|
+
render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
121
|
+
expect(kebab().getAttribute('aria-expanded')).toBe('false');
|
|
122
|
+
fireEvent.pointerDown(kebab(), { button: 0 });
|
|
123
|
+
expect(await screen.findByRole('menuitem', { name: 'Retry' })).toBeTruthy();
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
describe('RowActions — the open state does not outlive the menu (forge task 4179)', () => {
|
|
128
|
+
function Controlled({ RowActions, menu }: { RowActions: typeof RowActionsModule.RowActions; menu: typeof MENU }) {
|
|
129
|
+
const [open, setOpen] = useState(false);
|
|
130
|
+
return <RowActions row={{}} menu={menu} menuLabel={LABEL} menuOpen={open} onMenuOpenChange={setOpen} />;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
test('🔴 its own state: a menu that empties while open does not come back open', async () => {
|
|
134
|
+
const { RowActions, preloadRowMenu } = await coldRowActions();
|
|
135
|
+
await preloadRowMenu();
|
|
136
|
+
const { rerender } = render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
137
|
+
fireEvent.pointerDown(kebab(), { button: 0 });
|
|
138
|
+
expect(await screen.findByRole('menuitem', { name: 'Retry' })).toBeTruthy();
|
|
139
|
+
rerender(<RowActions row={{}} menu={[]} menuLabel={LABEL} />);
|
|
140
|
+
rerender(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
141
|
+
await act(async () => {});
|
|
142
|
+
expect(screen.queryByRole('menuitem')).toBeNull();
|
|
143
|
+
expect(kebab().getAttribute('aria-expanded')).toBe('false');
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
test('🔴 a table\'s state: the same, and the table is told', async () => {
|
|
147
|
+
const { RowActions, preloadRowMenu } = await coldRowActions();
|
|
148
|
+
await preloadRowMenu();
|
|
149
|
+
const { rerender } = render(<Controlled RowActions={RowActions} menu={MENU} />);
|
|
150
|
+
fireEvent.pointerDown(kebab(), { button: 0 });
|
|
151
|
+
expect(await screen.findByRole('menuitem', { name: 'Retry' })).toBeTruthy();
|
|
152
|
+
rerender(<Controlled RowActions={RowActions} menu={[]} />);
|
|
153
|
+
rerender(<Controlled RowActions={RowActions} menu={MENU} />);
|
|
154
|
+
await act(async () => {});
|
|
155
|
+
expect(screen.queryByRole('menuitem')).toBeNull();
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
test('🔴 a press waiting on the chunk goes with the menu that emptied', async () => {
|
|
159
|
+
const { RowActions, preloadRowMenu } = await coldRowActions();
|
|
160
|
+
const { rerender } = render(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
161
|
+
fireEvent.click(kebab());
|
|
162
|
+
rerender(<RowActions row={{}} menu={[]} menuLabel={LABEL} />);
|
|
163
|
+
rerender(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
164
|
+
await act(preloadRowMenu);
|
|
165
|
+
await waitFor(() => expect(kebab().getAttribute('aria-expanded')).toBe('false'));
|
|
166
|
+
expect(screen.queryByRole('menuitem')).toBeNull();
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
test('🔴 a row that leaves while open tells the table, so it cannot come back open', async () => {
|
|
170
|
+
const { RowActions, preloadRowMenu } = await coldRowActions();
|
|
171
|
+
await preloadRowMenu();
|
|
172
|
+
const heard: boolean[] = [];
|
|
173
|
+
const row = (open: boolean) => (
|
|
174
|
+
<RowActions row={{}} menu={MENU} menuLabel={LABEL} menuOpen={open} onMenuOpenChange={(next) => heard.push(next)} />
|
|
175
|
+
);
|
|
176
|
+
const { rerender, unmount } = render(row(false));
|
|
177
|
+
rerender(row(true));
|
|
178
|
+
unmount();
|
|
179
|
+
expect(heard).toEqual([false]);
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
test('a menu that shrinks but stays is left open: a row changing under it is not a close', async () => {
|
|
183
|
+
const { RowActions, preloadRowMenu } = await coldRowActions();
|
|
184
|
+
await preloadRowMenu();
|
|
185
|
+
const { rerender } = render(<RowActions row={{}} menu={[...MENU, { key: 'open', label: 'Open' }]} menuLabel={LABEL} />);
|
|
186
|
+
fireEvent.pointerDown(kebab(), { button: 0 });
|
|
187
|
+
expect(await screen.findByRole('menuitem', { name: 'Open' })).toBeTruthy();
|
|
188
|
+
rerender(<RowActions row={{}} menu={MENU} menuLabel={LABEL} />);
|
|
189
|
+
expect(await screen.findByRole('menuitem', { name: 'Retry' })).toBeTruthy();
|
|
190
|
+
});
|
|
191
|
+
});
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { EllipsisVertical, Pencil, Trash2 } from 'lucide-react';
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
2
3
|
import { Button } from '../Button.js';
|
|
3
4
|
import type { DropdownMenuItem } from '../DropdownMenu.js';
|
|
4
|
-
import { IconButton } from '../IconButton.js';
|
|
5
|
+
import { IconButton, type IconButtonProps } from '../IconButton.js';
|
|
5
6
|
import type { DataTableRowAction } from './types.js';
|
|
6
|
-
import { lazyPart } from './lazyPart.js';
|
|
7
|
+
import { lazyPart, standInPress } from './lazyPart.js';
|
|
7
8
|
|
|
8
9
|
// The kebab's menu is Radix's Menu, and most tables never draw a kebab — so it loads
|
|
9
10
|
// with the first row that has one, not with the table (forge task 2309). Edit and
|
|
@@ -48,8 +49,24 @@ export function RowActions<TRow>({
|
|
|
48
49
|
onMenuOpenChange,
|
|
49
50
|
...rest
|
|
50
51
|
}: RowActionsProps<TRow>) {
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
// 🔴 Always controlled, so a press before the menu's chunk lands is not lost (forge task 4172).
|
|
53
|
+
const [ownOpen, setOwnOpen] = useState(false);
|
|
54
|
+
const open = onMenuOpenChange ? (menuOpen ?? false) : ownOpen;
|
|
55
|
+
const setOpen = onMenuOpenChange ?? setOwnOpen;
|
|
56
|
+
// 🔴 The open state outlives what it opened (forge task 4179): a row whose menu empties draws
|
|
57
|
+
// nothing and stays open, and its menu would mount open minutes later, with the reader elsewhere.
|
|
58
|
+
// So does a row that leaves while a press waits on the chunk, now that a table holds the state.
|
|
59
|
+
const hasMenu = (menu?.length ?? 0) > 0;
|
|
60
|
+
const closeIfOpen = useRef(() => {});
|
|
61
|
+
closeIfOpen.current = () => {
|
|
62
|
+
if (open) setOpen(false);
|
|
63
|
+
};
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (open && !hasMenu) setOpen(false);
|
|
66
|
+
}, [hasMenu, open, setOpen]);
|
|
67
|
+
useEffect(() => () => closeIfOpen.current(), []);
|
|
68
|
+
const kebab = (standIn?: Partial<IconButtonProps>) => (
|
|
69
|
+
<IconButton {...standIn} label={menuLabel} className='size-8 pointer-coarse:min-w-11 [&_svg]:size-4'>
|
|
53
70
|
<EllipsisVertical />
|
|
54
71
|
</IconButton>
|
|
55
72
|
);
|
|
@@ -119,15 +136,21 @@ export function RowActions<TRow>({
|
|
|
119
136
|
<Trash2 />
|
|
120
137
|
</IconButton>
|
|
121
138
|
) : null}
|
|
122
|
-
{menu &&
|
|
139
|
+
{menu && hasMenu ? (
|
|
123
140
|
// Until the menu arrives the kebab is already there, the same button in the same
|
|
124
|
-
// place — so nothing shifts and nothing flashes
|
|
141
|
+
// place — so nothing shifts and nothing flashes. A press in those moments spins the kebab,
|
|
142
|
+
// which on a slow link is the only answer it has, and the menu mounts open.
|
|
125
143
|
<MenuPart
|
|
126
144
|
align='end'
|
|
127
|
-
trigger={kebab}
|
|
145
|
+
trigger={kebab()}
|
|
128
146
|
items={menu}
|
|
129
|
-
fallback={kebab
|
|
130
|
-
|
|
147
|
+
fallback={kebab({
|
|
148
|
+
'aria-haspopup': 'menu',
|
|
149
|
+
loading: open,
|
|
150
|
+
...standInPress(() => setOpen(true)),
|
|
151
|
+
})}
|
|
152
|
+
open={open}
|
|
153
|
+
onOpenChange={setOpen}
|
|
131
154
|
/>
|
|
132
155
|
) : null}
|
|
133
156
|
</div>
|