@hanzo/ui 8.29.7 → 8.29.8
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/gallery/frames.cjs +2 -4
- package/dist/gallery/frames.d.ts.map +1 -1
- package/dist/gallery/frames.js +3 -5
- package/dist/gallery/frames.js.map +1 -1
- package/dist/gallery.html +8 -3
- package/dist/product/CommandMenu.cjs +55 -50
- package/dist/product/CommandMenu.d.ts +40 -29
- package/dist/product/CommandMenu.d.ts.map +1 -1
- package/dist/product/CommandMenu.js +57 -52
- package/dist/product/CommandMenu.js.map +1 -1
- package/dist/product/index.cjs +1 -1
- package/dist/product/index.js +1 -1
- package/dist/product/index.js.map +1 -1
- package/dist/styles.css +5 -0
- package/package.json +1 -1
|
@@ -5,41 +5,53 @@ exports.COMMAND = void 0;
|
|
|
5
5
|
exports.CommandMenu = CommandMenu;
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
/**
|
|
8
|
-
* CommandMenu — the palette
|
|
9
|
-
* frame, MIT, NOTICE): the search field IS the top bar, and the commands are
|
|
10
|
-
* grouped rows under it.
|
|
8
|
+
* CommandMenu — the palette: a field over grouped rows, on ONE surface.
|
|
11
9
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* <DialogContent p={0} showCloseButton={false}>
|
|
11
|
+
* <CommandMenu groups={groups} onClose={close} />
|
|
12
|
+
* </DialogContent>
|
|
14
13
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* that matches nothing says so in a 64px status line.
|
|
14
|
+
* It paints no ground of its own, so the field and the list stand on whatever
|
|
15
|
+
* holds them, a dialog or a pane, and one hairline parts them. The field has
|
|
16
|
+
* no box and no ring: the surface is the focus context and the caret is the
|
|
17
|
+
* focus. At its end a quiet `esc` says how to leave and closes on a press (a
|
|
18
|
+
* phone, with no Escape key, reads Cancel).
|
|
21
19
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
20
|
+
* One grid, so the eye reads straight down: the field's glyph and every row's
|
|
21
|
+
* icon stand in one 16px column, and the field's text, every group's heading
|
|
22
|
+
* and every row's label start on one edge after it (`COMMAND.text`). Icons are
|
|
23
|
+
* bare and muted; the active row is a subtle fill; a row's shortcut is keycaps
|
|
24
|
+
* (not on a phone, which has no keys) and a row that opens a page ends in a
|
|
25
|
+
* chevron. Rows are 36 high, 44 on a
|
|
26
|
+
* phone. The list is as tall as its rows, so a short answer is a short palette,
|
|
27
|
+
* up to whatever bounds the holder, and scrolls past that.
|
|
28
|
+
*
|
|
29
|
+
* The decisions are the palette's own (`command.logic`): `score` keeps a row
|
|
30
|
+
* against the query, `step` moves the cursor. It is drawn as the ARIA combobox
|
|
31
|
+
* it is — the field owns focus and names the active option, the rows are
|
|
32
|
+
* options in grouped listboxes — so a screen reader hears the row the arrows
|
|
33
|
+
* land on while the caret stays in the field.
|
|
27
34
|
*
|
|
28
35
|
* Keys, from the field: ArrowDown/ArrowUp move (wrapping), Enter runs the
|
|
29
|
-
* active row, Escape
|
|
30
|
-
*
|
|
36
|
+
* active row, Escape closes (in a pane the pane closes itself), Backspace on an
|
|
37
|
+
* empty query goes back a page.
|
|
31
38
|
*/
|
|
32
39
|
const react_1 = require("react");
|
|
33
40
|
const gui_1 = require("@hanzo/gui");
|
|
41
|
+
const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
|
|
34
42
|
const command_logic_1 = require("../backends/gui/command.logic.cjs");
|
|
43
|
+
const kbd_1 = require("../backends/gui/kbd.cjs");
|
|
35
44
|
const shortcut_1 = require("../backends/gui/shortcut.cjs");
|
|
36
45
|
const slot_1 = require("../backends/gui/slot.cjs");
|
|
37
|
-
const gesture_1 = require("../backends/gui/gesture.cjs");
|
|
38
|
-
const MenuRow_1 = require("./MenuRow.cjs");
|
|
39
46
|
const DetailPane_1 = require("./DetailPane.cjs");
|
|
40
|
-
/**
|
|
41
|
-
|
|
42
|
-
|
|
47
|
+
/**
|
|
48
|
+
* The grid. `pad` is the list's inset, `inset` a row's own; the icon column
|
|
49
|
+
* sits at `pad + inset` from the edge and the text at `text`, the field's and
|
|
50
|
+
* the headings' as much as the rows'.
|
|
51
|
+
*/
|
|
52
|
+
exports.COMMAND = { bar: 52, pad: 8, inset: 8, icon: 16, gap: 12, header: 28, row: 36, phone: 44, empty: 64 };
|
|
53
|
+
const TEXT = exports.COMMAND.inset + exports.COMMAND.icon + exports.COMMAND.gap;
|
|
54
|
+
function CommandMenu({ groups, placeholder = 'Search or jump to…', empty = 'No results found', label = 'Commands', query: controlled, onQueryChange, onBack, onClose, autoFocus = true, }) {
|
|
43
55
|
const pane = (0, DetailPane_1.usePane)();
|
|
44
56
|
const base = (0, react_1.useId)();
|
|
45
57
|
const [own, setOwn] = (0, react_1.useState)('');
|
|
@@ -49,6 +61,7 @@ function CommandMenu({ groups, placeholder = 'Type anything…', empty = 'No res
|
|
|
49
61
|
setOwn(q);
|
|
50
62
|
onQueryChange?.(q);
|
|
51
63
|
};
|
|
64
|
+
const close = pane ? pane.close : onClose;
|
|
52
65
|
// The rows that survive the query, grouped, in source order.
|
|
53
66
|
const shown = (0, react_1.useMemo)(() => groups
|
|
54
67
|
.map((g) => ({
|
|
@@ -62,14 +75,13 @@ function CommandMenu({ groups, placeholder = 'Type anything…', empty = 'No res
|
|
|
62
75
|
const optionId = (id) => `${base}-option-${id}`;
|
|
63
76
|
const listId = `${base}-list`;
|
|
64
77
|
// A cursor the arrows moved is brought into view; the first row of a group
|
|
65
|
-
// carries a scroll margin, so its
|
|
78
|
+
// carries a scroll margin, so its heading comes with it.
|
|
66
79
|
const moved = (0, react_1.useRef)(false);
|
|
67
80
|
(0, react_1.useEffect)(() => {
|
|
68
81
|
if (!moved.current || !current || typeof document === 'undefined')
|
|
69
82
|
return;
|
|
70
83
|
moved.current = false;
|
|
71
|
-
|
|
72
|
-
el?.scrollIntoView?.({ block: 'nearest' });
|
|
84
|
+
document.getElementById(optionId(current.id))?.scrollIntoView?.({ block: 'nearest' });
|
|
73
85
|
});
|
|
74
86
|
const field = (0, react_1.useRef)(null);
|
|
75
87
|
(0, react_1.useEffect)(() => {
|
|
@@ -95,13 +107,7 @@ function CommandMenu({ groups, placeholder = 'Type anything…', empty = 'No res
|
|
|
95
107
|
current.onSelect();
|
|
96
108
|
}
|
|
97
109
|
else if (e.key === 'Escape') {
|
|
98
|
-
if (
|
|
99
|
-
// Clearing the query is this key's whole job: it must not reach the pane.
|
|
100
|
-
e.preventDefault();
|
|
101
|
-
e.stopPropagation();
|
|
102
|
-
setQuery('');
|
|
103
|
-
}
|
|
104
|
-
else if (!pane && onClose) {
|
|
110
|
+
if (!pane && onClose) {
|
|
105
111
|
e.preventDefault();
|
|
106
112
|
onClose();
|
|
107
113
|
}
|
|
@@ -114,24 +120,23 @@ function CommandMenu({ groups, placeholder = 'Type anything…', empty = 'No res
|
|
|
114
120
|
}
|
|
115
121
|
}
|
|
116
122
|
};
|
|
117
|
-
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('command-menu'),
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
style: { outlineStyle: 'none' } }) }), (0, jsx_runtime_1.jsx)(DetailPane_1.PaneBody, { padded: false, children: (0, jsx_runtime_1.jsxs)(gui_1.YStack, { id: listId, ...(0, slot_1.slot)('command-menu-list'), px: "$2", pt: "$2", pb: "$2", gap: exports.COMMAND.groups, children: [shown.map((g) => {
|
|
123
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('command-menu'), shrink: 1, minH: 0, children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('command-menu-bar'), height: exports.COMMAND.bar, shrink: 0, items: "center", gap: exports.COMMAND.gap, px: exports.COMMAND.pad + exports.COMMAND.inset, borderBottomWidth: 1, borderColor: "$borderColor", children: [(0, jsx_runtime_1.jsx)(lucide_icons_2_1.Search, { size: exports.COMMAND.icon, color: "$hint", "aria-hidden": true }), (0, jsx_runtime_1.jsx)(gui_1.Input, { ref: field, ...(0, slot_1.slot)('command-menu-input'), ...{
|
|
124
|
+
role: 'combobox',
|
|
125
|
+
'aria-expanded': true,
|
|
126
|
+
'aria-controls': listId,
|
|
127
|
+
'aria-autocomplete': 'list',
|
|
128
|
+
'aria-activedescendant': current ? optionId(current.id) : undefined,
|
|
129
|
+
'aria-label': label,
|
|
130
|
+
}, flex: 1, minW: 0, height: exports.COMMAND.bar - 2, px: 0, borderWidth: 0, rounded: 0, bg: "transparent",
|
|
131
|
+
// The surface is the focus context: no ring, no edge, no hover fill.
|
|
132
|
+
outlineWidth: 0, hoverStyle: { bg: 'transparent' }, focusStyle: { outlineWidth: 0 }, focusVisibleStyle: { outlineWidth: 0 }, color: "$ink", fontSize: "$4", "$max-md": { fontSize: 16 }, placeholder: placeholder, placeholderTextColor: "$hint", value: query, onChangeText: (t) => {
|
|
133
|
+
setQuery(t);
|
|
134
|
+
setActive(undefined);
|
|
135
|
+
}, onKeyDown: onKey }), close ? ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { render: "button", "aria-label": "Close", onPress: close, shrink: 0, items: "center", justify: "center", cursor: "pointer", opacity: 0.7, hoverStyle: { opacity: 1 }, children: [(0, jsx_runtime_1.jsx)(gui_1.XStack, { "$max-md": { display: 'none' }, children: (0, jsx_runtime_1.jsx)(kbd_1.Kbd, { children: "esc" }) }), (0, jsx_runtime_1.jsx)(gui_1.Text, { display: "none", "$max-md": { display: 'flex' }, fontSize: "$4", color: "$ink", children: "Cancel" })] })) : null] }), (0, jsx_runtime_1.jsx)(gui_1.ScrollView, { ...(0, slot_1.slot)('command-menu-scroll'), shrink: 1, minH: 0, style: { overscrollBehavior: 'contain' }, children: (0, jsx_runtime_1.jsxs)(gui_1.YStack, { id: listId, ...(0, slot_1.slot)('command-menu-list'), p: exports.COMMAND.pad, gap: exports.COMMAND.pad, children: [shown.map((g) => {
|
|
131
136
|
const head = `${base}-group-${g.id}`;
|
|
132
|
-
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('command-menu-group'),
|
|
137
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('command-menu-group'), children: [(0, jsx_runtime_1.jsx)(gui_1.XStack, { id: head, ...(0, slot_1.slot)('command-menu-heading'), height: exports.COMMAND.header, items: "center", pl: TEXT, children: (0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$1", fontWeight: "500", color: "$hint", numberOfLines: 1, children: g.label }) }), (0, jsx_runtime_1.jsx)(gui_1.YStack, { role: "listbox", "aria-labelledby": head, children: g.items.map((it, i) => {
|
|
133
138
|
const on = current?.id === it.id;
|
|
134
|
-
return ((0, jsx_runtime_1.
|
|
139
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { id: optionId(it.id), ...(0, slot_1.slot)('command-menu-item'), ...{ role: 'option', 'aria-selected': on, 'aria-disabled': it.disabled || undefined }, "data-active": on ? '' : undefined, items: "center", gap: exports.COMMAND.gap, px: exports.COMMAND.inset, minH: exports.COMMAND.row, "$max-md": { minH: exports.COMMAND.phone }, rounded: "$3", cursor: it.disabled ? 'default' : 'pointer', opacity: it.disabled ? 0.5 : 1, bg: on ? '$hover' : 'transparent', onHoverIn: it.disabled ? undefined : () => setActive(it.id), onPress: it.disabled ? undefined : it.onSelect, style: i === 0 ? { scrollMarginTop: exports.COMMAND.header + exports.COMMAND.pad } : undefined, children: [(0, jsx_runtime_1.jsx)(gui_1.XStack, { width: exports.COMMAND.icon, shrink: 0, items: "center", justify: "center", opacity: 0.6, "aria-hidden": true, children: it.icon }), (0, jsx_runtime_1.jsxs)(gui_1.Text, { flex: 1, minW: 0, fontSize: "$3", color: "$ink", numberOfLines: 1, children: [it.label, it.contextual ? ((0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$3", color: "$hint", pl: 8, children: it.contextual })) : null] }), it.shortcut ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { "$max-md": { display: 'none' }, children: (0, jsx_runtime_1.jsx)(shortcut_1.Shortcut, { keys: it.shortcut }) })) : null, it.submenu ? (0, jsx_runtime_1.jsx)(lucide_icons_2_1.ChevronRight, { size: 14, color: "$hint" }) : null] }, it.id));
|
|
135
140
|
}) })] }, g.id));
|
|
136
|
-
}), shown.length === 0 ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('command-menu-empty'), role: "status", "aria-live": "polite", height: exports.COMMAND.empty, items: "center", justify: "center", children: typeof empty === 'string' ? ((0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$
|
|
141
|
+
}), shown.length === 0 ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('command-menu-empty'), role: "status", "aria-live": "polite", height: exports.COMMAND.empty, items: "center", justify: "center", children: typeof empty === 'string' ? ((0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$3", color: "$hint", children: empty })) : (empty) })) : null] }) })] }));
|
|
137
142
|
}
|
|
@@ -1,27 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CommandMenu — the palette
|
|
3
|
-
* frame, MIT, NOTICE): the search field IS the top bar, and the commands are
|
|
4
|
-
* grouped rows under it.
|
|
2
|
+
* CommandMenu — the palette: a field over grouped rows, on ONE surface.
|
|
5
3
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* <DialogContent p={0} showCloseButton={false}>
|
|
5
|
+
* <CommandMenu groups={groups} onClose={close} />
|
|
6
|
+
* </DialogContent>
|
|
8
7
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* that matches nothing says so in a 64px status line.
|
|
8
|
+
* It paints no ground of its own, so the field and the list stand on whatever
|
|
9
|
+
* holds them, a dialog or a pane, and one hairline parts them. The field has
|
|
10
|
+
* no box and no ring: the surface is the focus context and the caret is the
|
|
11
|
+
* focus. At its end a quiet `esc` says how to leave and closes on a press (a
|
|
12
|
+
* phone, with no Escape key, reads Cancel).
|
|
15
13
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
14
|
+
* One grid, so the eye reads straight down: the field's glyph and every row's
|
|
15
|
+
* icon stand in one 16px column, and the field's text, every group's heading
|
|
16
|
+
* and every row's label start on one edge after it (`COMMAND.text`). Icons are
|
|
17
|
+
* bare and muted; the active row is a subtle fill; a row's shortcut is keycaps
|
|
18
|
+
* (not on a phone, which has no keys) and a row that opens a page ends in a
|
|
19
|
+
* chevron. Rows are 36 high, 44 on a
|
|
20
|
+
* phone. The list is as tall as its rows, so a short answer is a short palette,
|
|
21
|
+
* up to whatever bounds the holder, and scrolls past that.
|
|
22
|
+
*
|
|
23
|
+
* The decisions are the palette's own (`command.logic`): `score` keeps a row
|
|
24
|
+
* against the query, `step` moves the cursor. It is drawn as the ARIA combobox
|
|
25
|
+
* it is — the field owns focus and names the active option, the rows are
|
|
26
|
+
* options in grouped listboxes — so a screen reader hears the row the arrows
|
|
27
|
+
* land on while the caret stays in the field.
|
|
21
28
|
*
|
|
22
29
|
* Keys, from the field: ArrowDown/ArrowUp move (wrapping), Enter runs the
|
|
23
|
-
* active row, Escape
|
|
24
|
-
*
|
|
30
|
+
* active row, Escape closes (in a pane the pane closes itself), Backspace on an
|
|
31
|
+
* empty query goes back a page.
|
|
25
32
|
*/
|
|
26
33
|
import { type ReactNode } from 'react';
|
|
27
34
|
import { type ShortcutKeys } from '../backends/gui/shortcut.js';
|
|
@@ -29,7 +36,7 @@ export type CommandMenuItem = {
|
|
|
29
36
|
id: string;
|
|
30
37
|
label: string;
|
|
31
38
|
icon?: ReactNode;
|
|
32
|
-
/** Dimmed text after the label:
|
|
39
|
+
/** Dimmed text after the label: where it lives, a count. */
|
|
33
40
|
contextual?: string;
|
|
34
41
|
/** More words the query matches it by. */
|
|
35
42
|
keywords?: string[];
|
|
@@ -43,7 +50,6 @@ export type CommandMenuItem = {
|
|
|
43
50
|
export type CommandMenuGroup = {
|
|
44
51
|
id: string;
|
|
45
52
|
label: string;
|
|
46
|
-
icon?: ReactNode;
|
|
47
53
|
items: CommandMenuItem[];
|
|
48
54
|
};
|
|
49
55
|
export type CommandMenuProps = {
|
|
@@ -58,20 +64,25 @@ export type CommandMenuProps = {
|
|
|
58
64
|
onQueryChange?: (query: string) => void;
|
|
59
65
|
/** Backspace on an empty query. Default: the pane's `back`, when there is a page under this one. */
|
|
60
66
|
onBack?: () => void;
|
|
61
|
-
/** Escape
|
|
67
|
+
/** Escape, or a press on `esc`, outside a pane (inside one, the pane closes itself). */
|
|
62
68
|
onClose?: () => void;
|
|
63
69
|
autoFocus?: boolean;
|
|
64
70
|
};
|
|
65
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* The grid. `pad` is the list's inset, `inset` a row's own; the icon column
|
|
73
|
+
* sits at `pad + inset` from the edge and the text at `text`, the field's and
|
|
74
|
+
* the headings' as much as the rows'.
|
|
75
|
+
*/
|
|
66
76
|
export declare const COMMAND: {
|
|
67
|
-
readonly
|
|
68
|
-
readonly
|
|
69
|
-
readonly
|
|
70
|
-
readonly
|
|
71
|
-
readonly
|
|
72
|
-
readonly
|
|
77
|
+
readonly bar: 52;
|
|
78
|
+
readonly pad: 8;
|
|
79
|
+
readonly inset: 8;
|
|
80
|
+
readonly icon: 16;
|
|
81
|
+
readonly gap: 12;
|
|
82
|
+
readonly header: 28;
|
|
83
|
+
readonly row: 36;
|
|
84
|
+
readonly phone: 44;
|
|
73
85
|
readonly empty: 64;
|
|
74
|
-
readonly margin: 48;
|
|
75
86
|
};
|
|
76
87
|
export declare function CommandMenu({ groups, placeholder, empty, label, query: controlled, onQueryChange, onBack, onClose, autoFocus, }: CommandMenuProps): import("react").JSX.Element;
|
|
77
88
|
//# sourceMappingURL=CommandMenu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandMenu.d.ts","sourceRoot":"","sources":["../../src/product/CommandMenu.tsx"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"CommandMenu.d.ts","sourceRoot":"","sources":["../../src/product/CommandMenu.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAA+C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAMnF,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAItE,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,iHAAiH;IACjH,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,eAAe,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO;aAAK,GAAG,EAAE,EAAE;aAAE,GAAG,EAAE,CAAC;aAAE,KAAK,EAAE,CAAC;aAAE,IAAI,EAAE,EAAE;aAAE,GAAG,EAAE,EAAE;aAAE,MAAM,EAAE,EAAE;aAAE,GAAG,EAAE,EAAE;aAAE,KAAK,EAAE,EAAE;aAAE,KAAK,EAAE,EAAE;CAAW,CAAA;AAK3H,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,WAAkC,EAClC,KAA0B,EAC1B,KAAkB,EAClB,KAAK,EAAE,UAAU,EACjB,aAAa,EACb,MAAM,EACN,OAAO,EACP,SAAgB,GACjB,EAAE,gBAAgB,+BA+MlB"}
|
|
@@ -1,41 +1,53 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
/**
|
|
4
|
-
* CommandMenu — the palette
|
|
5
|
-
* frame, MIT, NOTICE): the search field IS the top bar, and the commands are
|
|
6
|
-
* grouped rows under it.
|
|
4
|
+
* CommandMenu — the palette: a field over grouped rows, on ONE surface.
|
|
7
5
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* <DialogContent p={0} showCloseButton={false}>
|
|
7
|
+
* <CommandMenu groups={groups} onClose={close} />
|
|
8
|
+
* </DialogContent>
|
|
10
9
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* that matches nothing says so in a 64px status line.
|
|
10
|
+
* It paints no ground of its own, so the field and the list stand on whatever
|
|
11
|
+
* holds them, a dialog or a pane, and one hairline parts them. The field has
|
|
12
|
+
* no box and no ring: the surface is the focus context and the caret is the
|
|
13
|
+
* focus. At its end a quiet `esc` says how to leave and closes on a press (a
|
|
14
|
+
* phone, with no Escape key, reads Cancel).
|
|
17
15
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
16
|
+
* One grid, so the eye reads straight down: the field's glyph and every row's
|
|
17
|
+
* icon stand in one 16px column, and the field's text, every group's heading
|
|
18
|
+
* and every row's label start on one edge after it (`COMMAND.text`). Icons are
|
|
19
|
+
* bare and muted; the active row is a subtle fill; a row's shortcut is keycaps
|
|
20
|
+
* (not on a phone, which has no keys) and a row that opens a page ends in a
|
|
21
|
+
* chevron. Rows are 36 high, 44 on a
|
|
22
|
+
* phone. The list is as tall as its rows, so a short answer is a short palette,
|
|
23
|
+
* up to whatever bounds the holder, and scrolls past that.
|
|
24
|
+
*
|
|
25
|
+
* The decisions are the palette's own (`command.logic`): `score` keeps a row
|
|
26
|
+
* against the query, `step` moves the cursor. It is drawn as the ARIA combobox
|
|
27
|
+
* it is — the field owns focus and names the active option, the rows are
|
|
28
|
+
* options in grouped listboxes — so a screen reader hears the row the arrows
|
|
29
|
+
* land on while the caret stays in the field.
|
|
23
30
|
*
|
|
24
31
|
* Keys, from the field: ArrowDown/ArrowUp move (wrapping), Enter runs the
|
|
25
|
-
* active row, Escape
|
|
26
|
-
*
|
|
32
|
+
* active row, Escape closes (in a pane the pane closes itself), Backspace on an
|
|
33
|
+
* empty query goes back a page.
|
|
27
34
|
*/
|
|
28
35
|
import { useEffect, useId, useMemo, useRef, useState } from 'react';
|
|
29
|
-
import { Input, Text, XStack, YStack } from '@hanzo/gui';
|
|
36
|
+
import { Input, ScrollView, Text, XStack, YStack } from '@hanzo/gui';
|
|
37
|
+
import { ChevronRight, Search } from '@hanzogui/lucide-icons-2';
|
|
30
38
|
import { score, step } from '../backends/gui/command.logic.js';
|
|
39
|
+
import { Kbd } from '../backends/gui/kbd.js';
|
|
31
40
|
import { Shortcut } from '../backends/gui/shortcut.js';
|
|
32
41
|
import { slot } from '../backends/gui/slot.js';
|
|
33
|
-
import {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
import { usePane } from './DetailPane.js';
|
|
43
|
+
/**
|
|
44
|
+
* The grid. `pad` is the list's inset, `inset` a row's own; the icon column
|
|
45
|
+
* sits at `pad + inset` from the edge and the text at `text`, the field's and
|
|
46
|
+
* the headings' as much as the rows'.
|
|
47
|
+
*/
|
|
48
|
+
export const COMMAND = { bar: 52, pad: 8, inset: 8, icon: 16, gap: 12, header: 28, row: 36, phone: 44, empty: 64 };
|
|
49
|
+
const TEXT = COMMAND.inset + COMMAND.icon + COMMAND.gap;
|
|
50
|
+
export function CommandMenu({ groups, placeholder = 'Search or jump to…', empty = 'No results found', label = 'Commands', query: controlled, onQueryChange, onBack, onClose, autoFocus = true, }) {
|
|
39
51
|
const pane = usePane();
|
|
40
52
|
const base = useId();
|
|
41
53
|
const [own, setOwn] = useState('');
|
|
@@ -45,6 +57,7 @@ export function CommandMenu({ groups, placeholder = 'Type anything…', empty =
|
|
|
45
57
|
setOwn(q);
|
|
46
58
|
onQueryChange?.(q);
|
|
47
59
|
};
|
|
60
|
+
const close = pane ? pane.close : onClose;
|
|
48
61
|
// The rows that survive the query, grouped, in source order.
|
|
49
62
|
const shown = useMemo(() => groups
|
|
50
63
|
.map((g) => ({
|
|
@@ -58,14 +71,13 @@ export function CommandMenu({ groups, placeholder = 'Type anything…', empty =
|
|
|
58
71
|
const optionId = (id) => `${base}-option-${id}`;
|
|
59
72
|
const listId = `${base}-list`;
|
|
60
73
|
// A cursor the arrows moved is brought into view; the first row of a group
|
|
61
|
-
// carries a scroll margin, so its
|
|
74
|
+
// carries a scroll margin, so its heading comes with it.
|
|
62
75
|
const moved = useRef(false);
|
|
63
76
|
useEffect(() => {
|
|
64
77
|
if (!moved.current || !current || typeof document === 'undefined')
|
|
65
78
|
return;
|
|
66
79
|
moved.current = false;
|
|
67
|
-
|
|
68
|
-
el?.scrollIntoView?.({ block: 'nearest' });
|
|
80
|
+
document.getElementById(optionId(current.id))?.scrollIntoView?.({ block: 'nearest' });
|
|
69
81
|
});
|
|
70
82
|
const field = useRef(null);
|
|
71
83
|
useEffect(() => {
|
|
@@ -91,13 +103,7 @@ export function CommandMenu({ groups, placeholder = 'Type anything…', empty =
|
|
|
91
103
|
current.onSelect();
|
|
92
104
|
}
|
|
93
105
|
else if (e.key === 'Escape') {
|
|
94
|
-
if (
|
|
95
|
-
// Clearing the query is this key's whole job: it must not reach the pane.
|
|
96
|
-
e.preventDefault();
|
|
97
|
-
e.stopPropagation();
|
|
98
|
-
setQuery('');
|
|
99
|
-
}
|
|
100
|
-
else if (!pane && onClose) {
|
|
106
|
+
if (!pane && onClose) {
|
|
101
107
|
e.preventDefault();
|
|
102
108
|
onClose();
|
|
103
109
|
}
|
|
@@ -110,25 +116,24 @@ export function CommandMenu({ groups, placeholder = 'Type anything…', empty =
|
|
|
110
116
|
}
|
|
111
117
|
}
|
|
112
118
|
};
|
|
113
|
-
return (_jsxs(YStack, { ...slot('command-menu'),
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
style: { outlineStyle: 'none' } }) }), _jsx(PaneBody, { padded: false, children: _jsxs(YStack, { id: listId, ...slot('command-menu-list'), px: "$2", pt: "$2", pb: "$2", gap: COMMAND.groups, children: [shown.map((g) => {
|
|
119
|
+
return (_jsxs(YStack, { ...slot('command-menu'), shrink: 1, minH: 0, children: [_jsxs(XStack, { ...slot('command-menu-bar'), height: COMMAND.bar, shrink: 0, items: "center", gap: COMMAND.gap, px: COMMAND.pad + COMMAND.inset, borderBottomWidth: 1, borderColor: "$borderColor", children: [_jsx(Search, { size: COMMAND.icon, color: "$hint", "aria-hidden": true }), _jsx(Input, { ref: field, ...slot('command-menu-input'), ...{
|
|
120
|
+
role: 'combobox',
|
|
121
|
+
'aria-expanded': true,
|
|
122
|
+
'aria-controls': listId,
|
|
123
|
+
'aria-autocomplete': 'list',
|
|
124
|
+
'aria-activedescendant': current ? optionId(current.id) : undefined,
|
|
125
|
+
'aria-label': label,
|
|
126
|
+
}, flex: 1, minW: 0, height: COMMAND.bar - 2, px: 0, borderWidth: 0, rounded: 0, bg: "transparent",
|
|
127
|
+
// The surface is the focus context: no ring, no edge, no hover fill.
|
|
128
|
+
outlineWidth: 0, hoverStyle: { bg: 'transparent' }, focusStyle: { outlineWidth: 0 }, focusVisibleStyle: { outlineWidth: 0 }, color: "$ink", fontSize: "$4", "$max-md": { fontSize: 16 }, placeholder: placeholder, placeholderTextColor: "$hint", value: query, onChangeText: (t) => {
|
|
129
|
+
setQuery(t);
|
|
130
|
+
setActive(undefined);
|
|
131
|
+
}, onKeyDown: onKey }), close ? (_jsxs(XStack, { render: "button", "aria-label": "Close", onPress: close, shrink: 0, items: "center", justify: "center", cursor: "pointer", opacity: 0.7, hoverStyle: { opacity: 1 }, children: [_jsx(XStack, { "$max-md": { display: 'none' }, children: _jsx(Kbd, { children: "esc" }) }), _jsx(Text, { display: "none", "$max-md": { display: 'flex' }, fontSize: "$4", color: "$ink", children: "Cancel" })] })) : null] }), _jsx(ScrollView, { ...slot('command-menu-scroll'), shrink: 1, minH: 0, style: { overscrollBehavior: 'contain' }, children: _jsxs(YStack, { id: listId, ...slot('command-menu-list'), p: COMMAND.pad, gap: COMMAND.pad, children: [shown.map((g) => {
|
|
127
132
|
const head = `${base}-group-${g.id}`;
|
|
128
|
-
return (_jsxs(YStack, { ...slot('command-menu-group'),
|
|
133
|
+
return (_jsxs(YStack, { ...slot('command-menu-group'), children: [_jsx(XStack, { id: head, ...slot('command-menu-heading'), height: COMMAND.header, items: "center", pl: TEXT, children: _jsx(Text, { fontSize: "$1", fontWeight: "500", color: "$hint", numberOfLines: 1, children: g.label }) }), _jsx(YStack, { role: "listbox", "aria-labelledby": head, children: g.items.map((it, i) => {
|
|
129
134
|
const on = current?.id === it.id;
|
|
130
|
-
return (
|
|
135
|
+
return (_jsxs(XStack, { id: optionId(it.id), ...slot('command-menu-item'), ...{ role: 'option', 'aria-selected': on, 'aria-disabled': it.disabled || undefined }, "data-active": on ? '' : undefined, items: "center", gap: COMMAND.gap, px: COMMAND.inset, minH: COMMAND.row, "$max-md": { minH: COMMAND.phone }, rounded: "$3", cursor: it.disabled ? 'default' : 'pointer', opacity: it.disabled ? 0.5 : 1, bg: on ? '$hover' : 'transparent', onHoverIn: it.disabled ? undefined : () => setActive(it.id), onPress: it.disabled ? undefined : it.onSelect, style: i === 0 ? { scrollMarginTop: COMMAND.header + COMMAND.pad } : undefined, children: [_jsx(XStack, { width: COMMAND.icon, shrink: 0, items: "center", justify: "center", opacity: 0.6, "aria-hidden": true, children: it.icon }), _jsxs(Text, { flex: 1, minW: 0, fontSize: "$3", color: "$ink", numberOfLines: 1, children: [it.label, it.contextual ? (_jsx(Text, { fontSize: "$3", color: "$hint", pl: 8, children: it.contextual })) : null] }), it.shortcut ? (_jsx(XStack, { "$max-md": { display: 'none' }, children: _jsx(Shortcut, { keys: it.shortcut }) })) : null, it.submenu ? _jsx(ChevronRight, { size: 14, color: "$hint" }) : null] }, it.id));
|
|
131
136
|
}) })] }, g.id));
|
|
132
|
-
}), shown.length === 0 ? (_jsx(YStack, { ...slot('command-menu-empty'), role: "status", "aria-live": "polite", height: COMMAND.empty, items: "center", justify: "center", children: typeof empty === 'string' ? (_jsx(Text, { fontSize: "$
|
|
137
|
+
}), shown.length === 0 ? (_jsx(YStack, { ...slot('command-menu-empty'), role: "status", "aria-live": "polite", height: COMMAND.empty, items: "center", justify: "center", children: typeof empty === 'string' ? (_jsx(Text, { fontSize: "$3", color: "$hint", children: empty })) : (empty) })) : null] }) })] }));
|
|
133
138
|
}
|
|
134
139
|
//# sourceMappingURL=CommandMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandMenu.js","sourceRoot":"","sources":["../../src/product/CommandMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ
|
|
1
|
+
{"version":3,"file":"CommandMenu.js","sourceRoot":"","sources":["../../src/product/CommandMenu.tsx"],"names":[],"mappings":"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"}
|
package/dist/product/index.cjs
CHANGED
|
@@ -158,7 +158,7 @@ __exportStar(require("./SlideOver.cjs"), exports);
|
|
|
158
158
|
// `DetailPane` is the one mount point over `SlideOver` for a descriptor-driven
|
|
159
159
|
// item view: a caller writes `{ title, content, footer? }`, never a drawer.
|
|
160
160
|
__exportStar(require("./DetailPane.cjs"), exports);
|
|
161
|
-
// `CommandMenu` is the palette
|
|
161
|
+
// `CommandMenu` is the palette: a field over grouped rows, on the surface that holds it.
|
|
162
162
|
__exportStar(require("./CommandMenu.cjs"), exports);
|
|
163
163
|
__exportStar(require("./StatusTag.cjs"), exports);
|
|
164
164
|
__exportStar(require("./Split.cjs"), exports);
|
package/dist/product/index.js
CHANGED
|
@@ -114,7 +114,7 @@ export * from './SlideOver.js';
|
|
|
114
114
|
// `DetailPane` is the one mount point over `SlideOver` for a descriptor-driven
|
|
115
115
|
// item view: a caller writes `{ title, content, footer? }`, never a drawer.
|
|
116
116
|
export * from './DetailPane.js';
|
|
117
|
-
// `CommandMenu` is the palette
|
|
117
|
+
// `CommandMenu` is the palette: a field over grouped rows, on the surface that holds it.
|
|
118
118
|
export * from './CommandMenu.js';
|
|
119
119
|
export * from './StatusTag.js';
|
|
120
120
|
export * from './Split.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -4398,6 +4398,7 @@ a svg,
|
|
|
4398
4398
|
:root ._fd-row{flex-direction:row;}
|
|
4399
4399
|
:root ._ff-f-family{font-family:var(--f-family);}
|
|
4400
4400
|
:root ._fontVariant-tabular-num115{font-variant:tabular-nums;}
|
|
4401
|
+
@media (max-width: 767.98px){:root:root:root:root:root:root:root ._fs-_maxmd_16px{font-size:16px;}}
|
|
4401
4402
|
:root ._fs-f-size-1{font-size:var(--f-size-1);}
|
|
4402
4403
|
:root ._fs-f-size-10{font-size:var(--f-size-10);}
|
|
4403
4404
|
:root ._fs-f-size-11{font-size:var(--f-size-11);}
|
|
@@ -4491,6 +4492,8 @@ a svg,
|
|
|
4491
4492
|
:root ._height-44px{height:44px;}
|
|
4492
4493
|
:root ._height-48px{height:48px;}
|
|
4493
4494
|
:root ._height-4px{height:4px;}
|
|
4495
|
+
:root ._height-50px{height:50px;}
|
|
4496
|
+
:root ._height-52px{height:52px;}
|
|
4494
4497
|
:root ._height-5px{height:5px;}
|
|
4495
4498
|
:root ._height-64px{height:64px;}
|
|
4496
4499
|
:root ._height-66px{height:66px;}
|
|
@@ -4628,6 +4631,7 @@ a svg,
|
|
|
4628
4631
|
:root ._minH-560px{min-height:560px;}
|
|
4629
4632
|
:root ._minH-56px{min-height:56px;}
|
|
4630
4633
|
:root ._minH-64px{min-height:64px;}
|
|
4634
|
+
@media (max-width: 767.98px){:root:root:root:root:root:root:root ._minH-_maxmd_44px{min-height:44px;}}
|
|
4631
4635
|
@media (pointer: coarse){:root:root ._minH-_touchable_44px{min-height:44px;}}
|
|
4632
4636
|
:root ._minH-auto{min-height:auto;}
|
|
4633
4637
|
:root ._minH-c-size-1{min-height:var(--c-size-1);}
|
|
@@ -4746,6 +4750,7 @@ a svg,
|
|
|
4746
4750
|
:root ._pl-24px{padding-left:24px;}
|
|
4747
4751
|
:root ._pl-2px{padding-left:2px;}
|
|
4748
4752
|
:root ._pl-32px{padding-left:32px;}
|
|
4753
|
+
:root ._pl-36px{padding-left:36px;}
|
|
4749
4754
|
:root ._pl-3px{padding-left:3px;}
|
|
4750
4755
|
:root ._pl-4px{padding-left:4px;}
|
|
4751
4756
|
:root ._pl-64px{padding-left:64px;}
|