@hanzo/ui 8.29.0 → 8.29.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.
@@ -0,0 +1,348 @@
1
+ 'use client';
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Fragment, useCallback, useEffect, useRef, useState } from 'react';
4
+ import { Anchor, Text, View, XStack, YStack } from '@hanzo/gui';
5
+ import { HanzoCommandPalette, HanzoIdentity, HanzoWordmark, MARKS } from '@hanzogui/shell';
6
+ import { ACCOUNT, COMPANY, DOCS, LOGIN, MENUS, OPEN, TRY, at, leaves } from './nav.js';
7
+ /** A menu stays open this long after the pointer leaves, so a diagonal path to a row keeps it. */
8
+ const GRACE = 160;
9
+ /** And opens after the pointer rests this long, so crossing the bar opens nothing. */
10
+ const REST = 70;
11
+ /** The bar's height, under the notch. */
12
+ export const HEADER = 60;
13
+ /** The bar's two inks over the page: a wash for a lit pill, and its hairline. */
14
+ const WASH = '$ink/6';
15
+ const RING = 'inset 0 0 0 1px color-mix(in srgb, var(--foreground) 10%, transparent)';
16
+ /** A pill lit: under the pointer, or holding its menu open. */
17
+ const LIT = { color: 'var(--foreground)', bg: WASH, boxShadow: RING };
18
+ /** Where what hangs from the bar begins: under the bar and the notch above it. */
19
+ const UNDER = `calc(${HEADER}px + env(safe-area-inset-top))`;
20
+ /** The open bar, the planes, the log-in card and the sheet stand on one opaque ground. */
21
+ const PANEL = 'var(--chrome-panel)';
22
+ /** The drop under what hangs from the bar. */
23
+ const DROP = '0 24px 60px -16px color-mix(in srgb, var(--pure-black) 75%, transparent)';
24
+ /** The bar's glass, once the page moves under it. */
25
+ const GLASS = '$background/72';
26
+ /** The highest z-index there is. The search palette stands in a fixed layer at
27
+ * it, so nothing fixed to the window draws over an open palette. */
28
+ const TOP = 2147483647;
29
+ /**
30
+ * The shell's account menu paints with `var(--white-92…)`, and @hanzo/design
31
+ * keeps those rungs white in both themes. The bar follows the theme, so inside
32
+ * it the four flip to black: `light-dark()` reads the `color-scheme` @hanzo/design
33
+ * sets with the theme. The dimmest is PUSHED rather than mirrored — .45 black on
34
+ * white is 3.35:1, .56 is 4.5:1 on the bar and on the panel.
35
+ */
36
+ const ink = (dark, light) => `light-dark(color-mix(in srgb, var(--pure-black) ${light}%, transparent), color-mix(in srgb, var(--pure-white) ${dark}%, transparent))`;
37
+ const INK = {
38
+ '--white-92': ink(92, 92),
39
+ '--white-60': ink(60, 60),
40
+ '--white-45': ink(45, 56),
41
+ '--white-10': 'var(--border)',
42
+ };
43
+ /** The bar: a sticky row under the notch, on the page's gutter. Its height is
44
+ * published as `--header`, which @hanzo/design's scroll padding reads. */
45
+ const BAR = {
46
+ position: 'sticky',
47
+ t: 0,
48
+ z: 'var(--z-header)',
49
+ items: 'center',
50
+ gap: 12,
51
+ boxSizing: 'content-box',
52
+ height: HEADER,
53
+ pt: 'calc(0px + env(safe-area-inset-top))',
54
+ pb: 0,
55
+ px: 'var(--page-gutter)',
56
+ };
57
+ /** The name of the place, lit under the pointer and while the company menu is open. */
58
+ const BRAND = { items: 'center', shrink: 0, height: 34, ml: -4, rounded: 999, hoverStyle: { bg: WASH, boxShadow: RING } };
59
+ /** The wordmark: home, and never dim. */
60
+ const NAME = { display: 'flex', items: 'center', height: '100%', pl: 12, pr: 12, color: 'var(--foreground)', whiteSpace: 'nowrap', textDecorationLine: 'none' };
61
+ /** A pill in the bar: dim at rest, lit under the pointer. A button's own padding is the browser's, so it is stated. */
62
+ const PILL = {
63
+ display: 'flex',
64
+ items: 'center',
65
+ shrink: 0,
66
+ height: 34,
67
+ p: 0,
68
+ borderWidth: 0,
69
+ rounded: 999,
70
+ bg: 'transparent',
71
+ color: 'var(--muted-foreground)',
72
+ cursor: 'pointer',
73
+ hoverStyle: LIT,
74
+ };
75
+ /** A pill that opens a menu: its label, then a chevron. */
76
+ const TRIGGER = { ...PILL, gap: 6, px: 12, fontSize: '$2', lineHeight: 20, fontWeight: '500', whiteSpace: 'nowrap' };
77
+ /** The one filled control, in the bar and in the sheet. */
78
+ const ACT = {
79
+ display: 'flex',
80
+ items: 'center',
81
+ justify: 'center',
82
+ gap: 2,
83
+ height: 34,
84
+ px: 14,
85
+ rounded: 999,
86
+ bg: 'var(--foreground)',
87
+ color: 'var(--background)',
88
+ fontSize: '$2',
89
+ lineHeight: 20,
90
+ fontWeight: '600',
91
+ whiteSpace: 'nowrap',
92
+ hoverStyle: { opacity: 0.88 },
93
+ };
94
+ /** What hangs from the bar arrives: up 4px, faded in. */
95
+ const ARRIVE = { enterStyle: { opacity: 0, y: -4 }, transition: 'quickest' };
96
+ /**
97
+ * A row in a plane. As wide as its words, so a keyboard ring hugs the words it
98
+ * names rather than the column; its padding steps out of the column, so the
99
+ * words stand on the column's edge.
100
+ */
101
+ const ROW = {
102
+ display: 'flex',
103
+ items: 'center',
104
+ self: 'flex-start',
105
+ mx: -8,
106
+ px: 8,
107
+ rounded: 8,
108
+ whiteSpace: 'nowrap',
109
+ hoverStyle: { color: 'var(--foreground)' },
110
+ focusVisibleStyle: { color: 'var(--foreground)' },
111
+ };
112
+ /** The destinations someone arrives wanting, in display type. */
113
+ const LEAD = { ...ROW, py: 2, fontSize: '$8', lineHeight: 33.28, fontWeight: '400', letterSpacing: -0.26, color: 'var(--foreground)' };
114
+ const PLAIN = { ...ROW, py: 5, fontSize: '$2', lineHeight: 20, fontWeight: '500', color: 'var(--muted-foreground)' };
115
+ /** A row in the sheet: a thumb's height, the column's width. */
116
+ const LINE = {
117
+ display: 'flex',
118
+ items: 'center',
119
+ justify: 'flex-start',
120
+ minH: 44,
121
+ rounded: 8,
122
+ fontWeight: '400',
123
+ color: 'var(--muted-foreground)',
124
+ hoverStyle: { color: 'var(--foreground)' },
125
+ focusVisibleStyle: { color: 'var(--foreground)' },
126
+ };
127
+ /** The sheet's doors: Log in's rows, or the reader's own page. */
128
+ const DOOR = { display: 'flex', items: 'center', justify: 'flex-start', minH: 44, fontSize: '$4', lineHeight: 20, fontWeight: '400', color: 'var(--foreground)' };
129
+ /** A menu's mark. In the bar it waits for `$xl`; in the sheet it always shows. */
130
+ function Mark({ name, bar = false }) {
131
+ const Glyph = MARKS[name];
132
+ return (_jsx(View, { render: "span", "data-slot": "mark", "aria-hidden": true, display: bar ? 'none' : 'flex', $xl: bar ? { display: 'flex' } : undefined, opacity: 0.9, children: _jsx(Glyph, { size: 16 }) }));
133
+ }
134
+ /** ▾, turned over while what it opens is open. */
135
+ function Chevron({ turned, end = false }) {
136
+ return (_jsx(View, { render: "span", "aria-hidden": true, display: "flex", shrink: 0, ml: end ? 'auto' : 0, rotate: turned ? '180deg' : '0deg', transition: "quickest", children: _jsx("svg", { width: 12, height: 12, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.2, strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M6 9l6 6 6-6" }) }) }));
137
+ }
138
+ /** ↗ — the shell's outbound arrow, riding the label's size and ink. */
139
+ function Out() {
140
+ return (_jsx(View, { render: "span", "aria-hidden": true, display: "flex", ml: "calc(0.28em)", opacity: 0.7, children: _jsx("svg", { width: "0.75em", height: "0.75em", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M7 17 17 7M9 7h8v8" }) }) }));
141
+ }
142
+ /** A row: the label, and ↗ with a new tab when it leaves. */
143
+ function Row({ link, place, onClick, ...style }) {
144
+ const out = leaves(link.href, place.here);
145
+ return (_jsxs(Anchor, { href: at(link.href, place.origin, place.here), target: out ? '_blank' : undefined, rel: out ? 'noreferrer' : undefined, onClick: onClick, textDecorationLine: "none", ...style, children: [link.label, out ? _jsx(Out, {}) : null] }));
146
+ }
147
+ /** A column's title. In the sheet it is the quiet label over a section's rows. */
148
+ function Title({ sheet = false, children }) {
149
+ return (_jsx(Text, { render: "p", mt: sheet ? 4 : 0, mb: sheet ? 2 : 10, mx: 0, fontSize: sheet ? '$1' : '$2', lineHeight: 20, fontWeight: "600", color: sheet ? 'var(--text-tertiary)' : 'var(--foreground)', children: children }));
150
+ }
151
+ /**
152
+ * A menu's columns, laid out from the wordmark's column: the lead column in
153
+ * display type, the rest as lists. The column under the pointer is the one
154
+ * being read; the others step back to 45%.
155
+ */
156
+ function Columns({ menu, place, onPick }) {
157
+ const [hot, setHot] = useState(null);
158
+ return (_jsx(View, { display: "grid", gridAutoFlow: "column", gridAutoColumns: "max-content", justify: "flex-start", gap: "max(24px, min(3vw, 64px))", pt: 36, pb: 48, px: "calc(var(--page-gutter) + 8px)", children: menu.groups.map((group, i) => (_jsxs(YStack, { gap: 2, minW: 0, opacity: hot === null || hot === i ? 1 : 0.45, transition: "quickest", onPointerEnter: () => setHot(i), onPointerLeave: () => setHot(null), children: [_jsx(Title, { children: group.title }), group.links.map((link) => (_jsx(Row, { link: link, place: place, onClick: onPick, ...(group.lead ? LEAD : PLAIN) }, link.label)))] }, group.title))) }));
159
+ }
160
+ /** The DOM node a gui element stands for, on the web. */
161
+ const node = (el) => (el instanceof HTMLElement ? el : null);
162
+ /** Publish the bar's content height to `--header` on the document for as long as it is mounted. */
163
+ function measure(el) {
164
+ if (!el || typeof ResizeObserver === 'undefined')
165
+ return;
166
+ const root = document.documentElement.style;
167
+ const size = new ResizeObserver(([entry]) => root.setProperty('--header', `${entry.contentRect.height}px`));
168
+ size.observe(el);
169
+ return () => {
170
+ size.disconnect();
171
+ root.removeProperty('--header');
172
+ };
173
+ }
174
+ /** The bar's rows as ⌘K entries: what a reader can reach from here, they can find. */
175
+ function entries(company, menus, login, place) {
176
+ return [company, ...menus]
177
+ .flatMap((menu) => menu.groups.flatMap((group) => group.links.map((link) => ({ menu, link }))))
178
+ .concat(login.map((link) => ({ menu: company, link })))
179
+ .filter(({ link }) => !link.href.startsWith(`${DOCS}/`))
180
+ .map(({ menu, link }) => ({
181
+ id: `nav/${menu.id}/${link.label}`,
182
+ title: link.label,
183
+ href: at(link.href, place.origin, place.here),
184
+ group: menu.label,
185
+ external: leaves(link.href, place.here),
186
+ }));
187
+ }
188
+ export function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '', tree = {}, person, onSignOut, commands = [], onAsk, askHref, bare = false, }) {
189
+ const company = tree.company ?? COMPANY;
190
+ const menus = tree.menus ?? MENUS;
191
+ const login = tree.login ?? LOGIN;
192
+ const account = tree.account ?? ACCOUNT;
193
+ const act = person ? (tree.open ?? OPEN) : (tree.try ?? TRY);
194
+ const place = { origin, here };
195
+ const homeHref = at(home, origin, here);
196
+ const [open, setOpen] = useState(null);
197
+ const [sheet, setSheet] = useState(false);
198
+ const [search, setSearch] = useState(false);
199
+ const [grounded, setGrounded] = useState(false);
200
+ const timer = useRef(undefined);
201
+ const pinned = useRef(false);
202
+ const bar = useRef(null);
203
+ const toggle = useRef(null);
204
+ /** The bar's element, held for the menus and measured for `--header`. */
205
+ const masthead = useCallback((el) => {
206
+ bar.current = el;
207
+ return measure(node(el));
208
+ }, []);
209
+ const close = useCallback(() => {
210
+ clearTimeout(timer.current);
211
+ pinned.current = false;
212
+ setOpen(null);
213
+ }, []);
214
+ // The bar is clear over the top of the page and takes the glass once the page
215
+ // moves under it.
216
+ useEffect(() => {
217
+ const read = () => setGrounded(window.scrollY > 4);
218
+ read();
219
+ window.addEventListener('scroll', read, { passive: true });
220
+ return () => window.removeEventListener('scroll', read);
221
+ }, []);
222
+ // Escape closes whatever is open and hands focus back to what opened it.
223
+ useEffect(() => {
224
+ if (!open && !sheet)
225
+ return;
226
+ const key = (e) => {
227
+ if (e.key !== 'Escape')
228
+ return;
229
+ if (open) {
230
+ node(bar.current)?.querySelector(`[aria-controls="menu-${open}"]`)?.focus();
231
+ close();
232
+ }
233
+ if (sheet) {
234
+ setSheet(false);
235
+ node(toggle.current)?.focus();
236
+ }
237
+ };
238
+ document.addEventListener('keydown', key);
239
+ return () => document.removeEventListener('keydown', key);
240
+ }, [open, sheet, close]);
241
+ // A press anywhere outside the bar closes an open menu.
242
+ useEffect(() => {
243
+ if (!open)
244
+ return;
245
+ const outside = (e) => {
246
+ if (!node(bar.current)?.contains(e.target))
247
+ close();
248
+ };
249
+ document.addEventListener('pointerdown', outside);
250
+ return () => document.removeEventListener('pointerdown', outside);
251
+ }, [open, close]);
252
+ // The sheet holds the screen: the page under it does not scroll, and it goes
253
+ // away when the window grows into the bar.
254
+ useEffect(() => {
255
+ if (!sheet)
256
+ return;
257
+ const root = document.documentElement;
258
+ root.style.overflow = 'hidden';
259
+ const wide = matchMedia('(min-width: 1024px)');
260
+ const grow = () => wide.matches && setSheet(false);
261
+ wide.addEventListener('change', grow);
262
+ return () => {
263
+ root.style.overflow = '';
264
+ wide.removeEventListener('change', grow);
265
+ };
266
+ }, [sheet]);
267
+ const rest = (id) => (e) => {
268
+ if (e.pointerType !== 'mouse')
269
+ return;
270
+ clearTimeout(timer.current);
271
+ if (open === id)
272
+ return;
273
+ if (open) {
274
+ pinned.current = false;
275
+ setOpen(id);
276
+ }
277
+ else
278
+ timer.current = setTimeout(() => setOpen(id), REST);
279
+ };
280
+ const leave = (e) => {
281
+ if (e.pointerType !== 'mouse' || pinned.current)
282
+ return;
283
+ clearTimeout(timer.current);
284
+ timer.current = setTimeout(() => setOpen(null), GRACE);
285
+ };
286
+ const press = (id) => () => {
287
+ clearTimeout(timer.current);
288
+ // A click on a menu the pointer already opened keeps it open; a second one closes it.
289
+ if (open === id && pinned.current)
290
+ return close();
291
+ pinned.current = true;
292
+ setOpen(id);
293
+ };
294
+ const step = (id) => (e) => {
295
+ if (e.key !== 'ArrowDown')
296
+ return;
297
+ e.preventDefault();
298
+ pinned.current = true;
299
+ setOpen(id);
300
+ requestAnimationFrame(() => document.querySelector(`#menu-${id} a`)?.focus());
301
+ };
302
+ // Focus that leaves a menu closes it.
303
+ const blur = (e) => {
304
+ if (!e.currentTarget.contains(e.relatedTarget))
305
+ close();
306
+ };
307
+ const find = () => {
308
+ close();
309
+ setSheet(false);
310
+ setSearch(true);
311
+ };
312
+ /** What a pill wears while its menu is open. */
313
+ const lit = (id) => (open === id ? LIT : {});
314
+ const menu = (item, trigger) => (_jsxs(XStack, { position: "relative", onPointerEnter: rest(item.id), onPointerLeave: leave, onBlur: blur, children: [trigger, open === item.id ? (_jsx(YStack, { id: `menu-${item.id}`, role: "group", "aria-label": item.label, position: "fixed", t: UNDER, l: 0, r: 0, z: "var(--z-raised)", maxH: `calc(100dvh - ${HEADER}px)`, overflowY: "auto", bg: PANEL, boxShadow: DROP, ...ARRIVE, children: _jsx(Columns, { menu: item, place: place, onPick: close }) })) : null] }));
315
+ const trigger = (item) => (_jsxs(Text, { render: "button", ...TRIGGER, ...lit(item.id), "aria-expanded": open === item.id, "aria-controls": `menu-${item.id}`, onClick: press(item.id), onKeyDown: step(item.id), children: [_jsx(Mark, { name: item.glyph, bar: true }), item.label, _jsx(Chevron, { turned: open === item.id })] }));
316
+ // On the way in and on the way to pay, the name alone. The two bars are
317
+ // different elements (`key`), so moving between them mounts the other bar
318
+ // rather than re-rendering one with and without its `transition`, which
319
+ // changes the hooks @hanzo/gui calls for it.
320
+ if (bare) {
321
+ return (_jsx(XStack, { ref: masthead, render: "header", "data-slot": "masthead", ...BAR, children: _jsx(XStack, { render: "span", ...BRAND, children: _jsx(Anchor, { href: homeHref, "aria-label": `${label} home`, ...NAME, children: _jsx(HanzoWordmark, { label: label, size: 22 }) }) }) }, "bare"));
322
+ }
323
+ const lifted = open !== null || sheet;
324
+ return (_jsxs(_Fragment, { children: [_jsxs(XStack, { ref: masthead, render: "header", "data-slot": "masthead", ...BAR, bg: lifted ? PANEL : grounded ? GLASS : 'transparent',
325
+ // The chrome's own blur, by name: @hanzo/design's one radius, the glass every bar wears.
326
+ backdropFilter: !lifted && grounded ? 'var(--chrome-blur)' : 'none', transition: "quickest",
327
+ // inline-style: custom properties @hanzogui/shell's account menu reads; no prop sets a variable.
328
+ style: INK, children: [menu(company, _jsxs(XStack, { render: "span", ...BRAND, ...(open === company.id ? { bg: WASH, boxShadow: RING } : {}), children: [_jsx(Anchor, { href: homeHref, "aria-label": `${label} home`, ...NAME, $lg: { pr: 0 }, children: _jsx(HanzoWordmark, { label: label, size: 22 }) }), _jsx(Text, { render: "button", "aria-label": company.label, "aria-expanded": open === company.id, "aria-controls": `menu-${company.id}`, onClick: press(company.id), onKeyDown: step(company.id), display: "none", $lg: { display: 'grid' }, placeItems: "center", width: 30, height: "100%", p: 0, pr: 6, borderWidth: 0, borderTopRightRadius: 999, borderBottomRightRadius: 999, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: _jsx(Chevron, { turned: open === company.id }) })] })), _jsx(XStack, { render: "nav", "aria-label": "Main", display: "none", $lg: { display: 'flex' }, items: "center", gap: 2, children: menus.map((item) => (_jsx(Fragment, { children: menu(item, trigger(item)) }, item.id))) }), open && open !== 'login' ? (_jsx(View, { "aria-hidden": true, onPress: close, position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-base)", bg: "$black/40", backdropFilter: "var(--chrome-blur)" })) : null, _jsx(Text, { render: "button", "aria-label": "Search Hanzo or ask AI", onClick: find, ...PILL, justify: "center", width: 44, height: 44, ml: "auto", $lg: { width: 34, height: 34, ml: 0 }, children: _jsx(MARKS.search, { size: 16 }) }), _jsxs(XStack, { items: "center", gap: 8, $lg: { ml: 'auto' }, children: [person ? (_jsx(HanzoIdentity, { auth: { user: person, onSignOut, items: [{ id: 'account', label: account.label, href: at(account.href, origin, here) }] } })) : (_jsxs(XStack, { position: "relative", display: "none", $lg: { display: 'flex' }, onPointerEnter: rest('login'), onPointerLeave: leave, onBlur: blur, children: [_jsxs(Text, { render: "button", ...TRIGGER, ...lit('login'), "aria-expanded": open === 'login', "aria-controls": "menu-login", onClick: press('login'), onKeyDown: step('login'), children: ["Log in", _jsx(Chevron, { turned: open === 'login' })] }), open === 'login' ? (_jsx(YStack, { id: "menu-login", role: "group", "aria-label": "Log in", position: "absolute", t: "calc(100% + 8px)", r: 0, display: "grid", gap: 2, minW: 240, p: 6, borderWidth: 1, borderColor: "var(--border)", rounded: 12, bg: PANEL, boxShadow: DROP, ...ARRIVE, children: login.map((link) => (_jsxs(Anchor, { href: at(link.href, origin, here), target: "_blank", rel: "noreferrer", onClick: close, display: "grid", gap: 2, py: 8, px: 10, rounded: 8, color: "var(--foreground)", fontSize: "$2", lineHeight: 20, fontWeight: "600", textDecorationLine: "none", hoverStyle: { bg: WASH }, focusVisibleStyle: { bg: WASH }, children: [link.label, _jsx(Text, { render: "small", fontSize: "$1", lineHeight: 20, fontWeight: "400", color: "var(--muted-foreground)", children: link.hint })] }, link.label))) })) : null] })), _jsx(Row, { link: act, place: place, ...ACT, display: "none", $lg: { display: 'flex' } }), _jsx(Text, { ref: toggle, render: "button", "aria-label": sheet ? 'Close menu' : 'Open menu', "aria-expanded": sheet, "aria-controls": "sheet", onClick: () => {
329
+ close();
330
+ setSheet((s) => !s);
331
+ }, display: "grid", $lg: { display: 'none' }, placeItems: "center", width: 44, height: 44, p: 0, mr: -10, borderWidth: 0, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: _jsx("svg", { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", "aria-hidden": "true", children: _jsx("path", { d: sheet ? 'M6 6l12 12M18 6L6 18' : 'M3 9h18M3 15h18' }) }) })] })] }, "full"), sheet ? (_jsx(Sheet, { company: company, menus: menus, login: login, door: person ? account : null, act: act, place: place, onClose: () => setSheet(false) })) : null, _jsx(View, { position: "fixed", z: TOP, children: _jsx(HanzoCommandPalette, { commands: [...commands, ...entries(company, menus, login, place).filter((e) => !commands.some((c) => c.href === e.href))], open: search, onOpenChange: setSearch, onAsk: onAsk, askHref: askHref }) })] }));
332
+ }
333
+ /**
334
+ * The phone's menu: the whole tree, one section open at a time, then the two
335
+ * doors. A `<details>` per section, so the browser keeps which one is open and
336
+ * closes the rest (`name`); the chevron reads it back. It stands under the bar
337
+ * and carries the bottom inset, as the bar carries the top one.
338
+ */
339
+ function Sheet({ company, menus, login, door, act, place, onClose, }) {
340
+ const first = useRef(null);
341
+ const [section, setSection] = useState(null);
342
+ useEffect(() => node(first.current)?.focus(), []);
343
+ return (_jsxs(View, { id: "sheet", role: "dialog", "aria-modal": true, "aria-label": "Menu", display: "block", position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-overlay)", overflowY: "auto", "$platform-web": { overscrollBehaviorX: 'contain', overscrollBehaviorY: 'contain' }, pt: 4, px: "var(--page-gutter)", pb: "calc(24px + env(safe-area-inset-bottom))", bg: PANEL, ...ARRIVE, children: [_jsx(View, { render: "nav", "aria-label": "Main", display: "block", children: [company, ...menus].map((item, i) => (_jsxs(View, { render: _jsx("details", { name: "sheet", onToggle: (e) => {
344
+ const now = e.currentTarget.open;
345
+ setSection((s) => (now ? item.id : s === item.id ? null : s));
346
+ } }), display: "block", borderBottomWidth: 1, borderColor: "var(--border)", children: [_jsxs(Text, { ref: i === 0 ? first : undefined, render: "summary", display: "flex", items: "center", gap: 10, minH: 56, fontSize: "$6", lineHeight: 20, fontWeight: "500", color: "var(--foreground)", cursor: "pointer", children: [_jsx(Mark, { name: item.glyph }), item.label, _jsx(Chevron, { turned: section === item.id, end: true })] }), item.groups.map((group) => (_jsxs(YStack, { gap: 2, minW: 0, pb: 16, children: [_jsx(Title, { sheet: true, children: group.title }), group.links.map((link) => (_jsx(Row, { link: link, place: place, onClick: onClose, ...LINE, fontSize: group.lead ? '$6' : '$4', lineHeight: group.lead ? 20.4 : 18 }, link.label)))] }, group.title)))] }, item.id))) }), _jsxs(View, { display: "grid", gap: 4, pt: 20, children: [door ? (_jsx(Row, { link: door, place: place, onClick: onClose, ...DOOR })) : (_jsxs(_Fragment, { children: [_jsx(Title, { sheet: true, children: "Log in" }), login.map((link) => (_jsx(Row, { link: link, place: place, onClick: onClose, ...DOOR }, link.label)))] })), _jsx(Row, { link: act, place: place, onClick: onClose, ...ACT, height: 48, mt: 12, fontSize: "$3" })] })] }));
347
+ }
348
+ //# sourceMappingURL=Masthead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Masthead.js","sourceRoot":"","sources":["../../src/masthead/Masthead.tsx"],"names":[],"mappings":"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"}
@@ -14,9 +14,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Masthead = exports.HEADER = void 0;
17
18
  /**
18
- * hanzo.ai's nav tree: the company menu under the wordmark, the menus in the
19
- * bar, Log in, and the one filled control. Data only, so a server component can
20
- * import it; a header draws it with gui components of its own.
19
+ * hanzo.ai's header for every site that wears it: `Masthead` draws the nav tree
20
+ * in `./nav` — the company under the wordmark, the five menus, search, Log in
21
+ * and Try Hanzo — and `footer()` hands `@hanzo/ui/marketing`'s `Footer` the
22
+ * same tree's six doors. A server component that needs only the tree imports
23
+ * `@hanzo/ui/masthead/nav`, which is data.
21
24
  */
25
+ var Masthead_1 = require("./Masthead.cjs");
26
+ Object.defineProperty(exports, "HEADER", { enumerable: true, get: function () { return Masthead_1.HEADER; } });
27
+ Object.defineProperty(exports, "Masthead", { enumerable: true, get: function () { return Masthead_1.Masthead; } });
22
28
  __exportStar(require("./nav.cjs"), exports);
@@ -1,7 +1,10 @@
1
1
  /**
2
- * hanzo.ai's nav tree: the company menu under the wordmark, the menus in the
3
- * bar, Log in, and the one filled control. Data only, so a server component can
4
- * import it; a header draws it with gui components of its own.
2
+ * hanzo.ai's header for every site that wears it: `Masthead` draws the nav tree
3
+ * in `./nav` — the company under the wordmark, the five menus, search, Log in
4
+ * and Try Hanzo — and `footer()` hands `@hanzo/ui/marketing`'s `Footer` the
5
+ * same tree's six doors. A server component that needs only the tree imports
6
+ * `@hanzo/ui/masthead/nav`, which is data.
5
7
  */
8
+ export { HEADER, Masthead, type MastheadProps, type Person, type Tree } from './Masthead.js';
6
9
  export * from './nav.js';
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/masthead/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/masthead/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AACzF,cAAc,OAAO,CAAA"}
@@ -1,7 +1,10 @@
1
1
  /**
2
- * hanzo.ai's nav tree: the company menu under the wordmark, the menus in the
3
- * bar, Log in, and the one filled control. Data only, so a server component can
4
- * import it; a header draws it with gui components of its own.
2
+ * hanzo.ai's header for every site that wears it: `Masthead` draws the nav tree
3
+ * in `./nav` — the company under the wordmark, the five menus, search, Log in
4
+ * and Try Hanzo — and `footer()` hands `@hanzo/ui/marketing`'s `Footer` the
5
+ * same tree's six doors. A server component that needs only the tree imports
6
+ * `@hanzo/ui/masthead/nav`, which is data.
5
7
  */
8
+ export { HEADER, Masthead } from './Masthead.js';
6
9
  export * from './nav.js';
7
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/masthead/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,OAAO,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/masthead/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAA8C,MAAM,YAAY,CAAA;AACzF,cAAc,OAAO,CAAA"}