@hanzo/ui 8.0.73 → 8.0.75

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.
@@ -21,11 +21,12 @@ const jsx_runtime_1 = require("react/jsx-runtime");
21
21
  * Radix's own defaults (700 / 300) are kept.
22
22
  * 2. `side` + `align` + `sideOffset` (Content) -> ONE `placement` and one
23
23
  * `offset` on the ROOT. Content still ACCEPTS all three and publishes them
24
- * up through a context — the same idiom `popover.tsx` uses for `sideOffset`
25
- * — so `<HoverCardContent side="left" align="start">` lands as
26
- * `placement="left-start"` instead of being silently dropped, which is what
27
- * `PopoverContent` does with `align` today. gui's popper and Radix agree on
28
- * the default here (`bottom`/`center`), so nothing has to be written out.
24
+ * up through a context — the same idiom `popover.tsx` uses so
25
+ * `<HoverCardContent side="left" align="start">` lands as
26
+ * `placement="left-start"`. The rejoining rule itself is `place()`, shared
27
+ * with `popover.tsx` rather than spelled here: it was written in both, and
28
+ * the two copies had already diverged. gui's popper and Radix agree on the
29
+ * default (`bottom`/`center`), so nothing has to be written out.
29
30
  *
30
31
  * One deliberate a11y deviation from Radix, in the safer direction. Radix's hover
31
32
  * card is sighted-user-only: its Content carries no role and its Trigger no aria
@@ -45,6 +46,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
45
46
  const gui_1 = require("@hanzo/gui");
46
47
  const react_1 = require("react");
47
48
  const ink_1 = require("./ink.cjs");
49
+ const place_1 = require("./place.cjs");
48
50
  const slot_1 = require("./slot.cjs");
49
51
  const portal_theme_1 = require("../../product/menu/portal-theme.cjs");
50
52
  /** Radix's defaults, kept so a migrated call site behaves identically. */
@@ -70,7 +72,7 @@ exports.HoverCardTrigger = HoverCardTrigger;
70
72
  const HoverCardContent = ({ side = 'bottom', align = 'center', sideOffset = DEFAULT_OFFSET, children, ...props }) => {
71
73
  const themeName = (0, portal_theme_1.useThemeName)();
72
74
  const publish = (0, react_1.useContext)(FloatContext);
73
- (0, react_1.useEffect)(() => publish?.(align === 'center' ? side : `${side}-${align}`, sideOffset), [publish, side, align, sideOffset]);
75
+ (0, react_1.useEffect)(() => publish?.((0, place_1.place)(side, align), sideOffset), [publish, side, align, sideOffset]);
74
76
  return ((0, jsx_runtime_1.jsx)(portal_theme_1.PortalTheme, { name: themeName, children: (0, jsx_runtime_1.jsx)(gui_1.Popover.Content, { ...(0, slot_1.slot)('hover-card-content'), bg: "$color2", borderWidth: 1, borderColor: "$borderColor", rounded: "$4", p: "$4", width: WIDTH, ...props, children: (0, ink_1.ink)(children, undefined, { size: '$2' }) }) }));
75
77
  };
76
78
  exports.HoverCardContent = HoverCardContent;
@@ -15,11 +15,12 @@
15
15
  * Radix's own defaults (700 / 300) are kept.
16
16
  * 2. `side` + `align` + `sideOffset` (Content) -> ONE `placement` and one
17
17
  * `offset` on the ROOT. Content still ACCEPTS all three and publishes them
18
- * up through a context — the same idiom `popover.tsx` uses for `sideOffset`
19
- * — so `<HoverCardContent side="left" align="start">` lands as
20
- * `placement="left-start"` instead of being silently dropped, which is what
21
- * `PopoverContent` does with `align` today. gui's popper and Radix agree on
22
- * the default here (`bottom`/`center`), so nothing has to be written out.
18
+ * up through a context — the same idiom `popover.tsx` uses so
19
+ * `<HoverCardContent side="left" align="start">` lands as
20
+ * `placement="left-start"`. The rejoining rule itself is `place()`, shared
21
+ * with `popover.tsx` rather than spelled here: it was written in both, and
22
+ * the two copies had already diverged. gui's popper and Radix agree on the
23
+ * default (`bottom`/`center`), so nothing has to be written out.
23
24
  *
24
25
  * One deliberate a11y deviation from Radix, in the safer direction. Radix's hover
25
26
  * card is sighted-user-only: its Content carries no role and its Trigger no aria
@@ -38,8 +39,7 @@
38
39
  */
39
40
  import { Popover as GuiPopover } from '@hanzo/gui';
40
41
  import { type ComponentProps } from 'react';
41
- type Side = 'top' | 'right' | 'bottom' | 'left';
42
- type Align = 'start' | 'center' | 'end';
42
+ import { type Align, type Side } from './place.js';
43
43
  export type HoverCardProps = Omit<ComponentProps<typeof GuiPopover>, 'hoverable' | 'placement' | 'offset'> & {
44
44
  openDelay?: number;
45
45
  closeDelay?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/hover-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,OAAO,CAAA;AAcd,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;AAC/C,KAAK,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;AAOvC,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,cAAc,CAAC,OAAO,UAAU,CAAC,EACjC,WAAW,GAAG,WAAW,GAAG,QAAQ,CACrC,GAAG;IACF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,iBAAS,SAAS,CAAC,EACjB,SAAsB,EACtB,UAAwB,EACxB,GAAG,KAAK,EACT,EAAE,cAAc,2CAsBhB;AAED,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;AAE7E,QAAA,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,4CAErD,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;IAC9E,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,QAAA,MAAM,gBAAgB,GAAI,iDAMvB,qBAAqB,4CAuBvB,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"hover-card.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/hover-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,OAAO,CAAA;AAGd,OAAO,EAAS,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAA;AAkBtD,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,cAAc,CAAC,OAAO,UAAU,CAAC,EACjC,WAAW,GAAG,WAAW,GAAG,QAAQ,CACrC,GAAG;IACF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,iBAAS,SAAS,CAAC,EACjB,SAAsB,EACtB,UAAwB,EACxB,GAAG,KAAK,EACT,EAAE,cAAc,2CAsBhB;AAED,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;AAE7E,QAAA,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,4CAErD,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;IAC9E,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,QAAA,MAAM,gBAAgB,GAAI,iDAMvB,qBAAqB,4CAuBvB,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -17,11 +17,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
17
17
  * Radix's own defaults (700 / 300) are kept.
18
18
  * 2. `side` + `align` + `sideOffset` (Content) -> ONE `placement` and one
19
19
  * `offset` on the ROOT. Content still ACCEPTS all three and publishes them
20
- * up through a context — the same idiom `popover.tsx` uses for `sideOffset`
21
- * — so `<HoverCardContent side="left" align="start">` lands as
22
- * `placement="left-start"` instead of being silently dropped, which is what
23
- * `PopoverContent` does with `align` today. gui's popper and Radix agree on
24
- * the default here (`bottom`/`center`), so nothing has to be written out.
20
+ * up through a context — the same idiom `popover.tsx` uses so
21
+ * `<HoverCardContent side="left" align="start">` lands as
22
+ * `placement="left-start"`. The rejoining rule itself is `place()`, shared
23
+ * with `popover.tsx` rather than spelled here: it was written in both, and
24
+ * the two copies had already diverged. gui's popper and Radix agree on the
25
+ * default (`bottom`/`center`), so nothing has to be written out.
25
26
  *
26
27
  * One deliberate a11y deviation from Radix, in the safer direction. Radix's hover
27
28
  * card is sighted-user-only: its Content carries no role and its Trigger no aria
@@ -41,6 +42,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
41
42
  import { Popover as GuiPopover } from '@hanzo/gui';
42
43
  import { createContext, useCallback, useContext, useEffect, useState, } from 'react';
43
44
  import { ink } from './ink.js';
45
+ import { place } from './place.js';
44
46
  import { slot } from './slot.js';
45
47
  import { PortalTheme, useThemeName } from '../../product/menu/portal-theme.js';
46
48
  /** Radix's defaults, kept so a migrated call site behaves identically. */
@@ -65,7 +67,7 @@ const HoverCardTrigger = (props) => (_jsx(GuiPopover.Trigger, { ...slot('hover-c
65
67
  const HoverCardContent = ({ side = 'bottom', align = 'center', sideOffset = DEFAULT_OFFSET, children, ...props }) => {
66
68
  const themeName = useThemeName();
67
69
  const publish = useContext(FloatContext);
68
- useEffect(() => publish?.(align === 'center' ? side : `${side}-${align}`, sideOffset), [publish, side, align, sideOffset]);
70
+ useEffect(() => publish?.(place(side, align), sideOffset), [publish, side, align, sideOffset]);
69
71
  return (_jsx(PortalTheme, { name: themeName, children: _jsx(GuiPopover.Content, { ...slot('hover-card-content'), bg: "$color2", borderWidth: 1, borderColor: "$borderColor", rounded: "$4", p: "$4", width: WIDTH, ...props, children: ink(children, undefined, { size: '$2' }) }) }));
70
72
  };
71
73
  export { HoverCard, HoverCardTrigger, HoverCardContent };
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.js","sourceRoot":"","sources":["../../../src/backends/gui/hover-card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hover-card.js","sourceRoot":"","sources":["../../../src/backends/gui/hover-card.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ 'use client';"use strict";
2
+ /**
3
+ * PLACE — one floating panel, two vocabularies.
4
+ *
5
+ * gui speaks floating-ui's single placement string (`bottom`, `bottom-start`),
6
+ * and it keeps that string on the popper ROOT. The compound API every call site
7
+ * is written against splits the same fact in two and puts it on the CONTENT: a
8
+ * `side` and an `align`. Rejoining them is the whole of the translation, and it
9
+ * belongs in one place because two components need it — `popover` and
10
+ * `hover-card`, which is a popover in hover mode.
11
+ *
12
+ * It lives in its own leaf rather than in either component so that neither has
13
+ * to import the other for it. It was written twice before that was true, and the
14
+ * two copies had already diverged: one of them could not re-align a side that
15
+ * already carried a suffix.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.place = void 0;
19
+ /**
20
+ * The placement a side and an align name together.
21
+ *
22
+ * `center` is the ABSENCE of a suffix rather than a suffix of its own, and a
23
+ * side that already carries one is RE-aligned rather than appended to — so the
24
+ * result is always a legal placement and applying it twice changes nothing.
25
+ *
26
+ * place('bottom') === 'bottom'
27
+ * place('bottom', 'start') === 'bottom-start'
28
+ * place('bottom-end', 'start') === 'bottom-start'
29
+ */
30
+ const place = (side, align = 'center') => {
31
+ const base = side.split('-')[0];
32
+ return align === 'center' ? base : `${base}-${align}`;
33
+ };
34
+ exports.place = place;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * PLACE — one floating panel, two vocabularies.
3
+ *
4
+ * gui speaks floating-ui's single placement string (`bottom`, `bottom-start`),
5
+ * and it keeps that string on the popper ROOT. The compound API every call site
6
+ * is written against splits the same fact in two and puts it on the CONTENT: a
7
+ * `side` and an `align`. Rejoining them is the whole of the translation, and it
8
+ * belongs in one place because two components need it — `popover` and
9
+ * `hover-card`, which is a popover in hover mode.
10
+ *
11
+ * It lives in its own leaf rather than in either component so that neither has
12
+ * to import the other for it. It was written twice before that was true, and the
13
+ * two copies had already diverged: one of them could not re-align a side that
14
+ * already carried a suffix.
15
+ */
16
+ /** Where the panel sits relative to its trigger. */
17
+ export type Side = 'top' | 'right' | 'bottom' | 'left';
18
+ /** Where the panel lines up along that side. */
19
+ export type Align = 'start' | 'center' | 'end';
20
+ /**
21
+ * The placement a side and an align name together.
22
+ *
23
+ * `center` is the ABSENCE of a suffix rather than a suffix of its own, and a
24
+ * side that already carries one is RE-aligned rather than appended to — so the
25
+ * result is always a legal placement and applying it twice changes nothing.
26
+ *
27
+ * place('bottom') === 'bottom'
28
+ * place('bottom', 'start') === 'bottom-start'
29
+ * place('bottom-end', 'start') === 'bottom-start'
30
+ */
31
+ export declare const place: (side: string, align?: Align) => string;
32
+ //# sourceMappingURL=place.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/place.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,oDAAoD;AACpD,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEtD,gDAAgD;AAChD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,EAAE,QAAO,KAAgB,KAAG,MAG7D,CAAA"}
@@ -0,0 +1,31 @@
1
+ 'use client';/**
2
+ * PLACE — one floating panel, two vocabularies.
3
+ *
4
+ * gui speaks floating-ui's single placement string (`bottom`, `bottom-start`),
5
+ * and it keeps that string on the popper ROOT. The compound API every call site
6
+ * is written against splits the same fact in two and puts it on the CONTENT: a
7
+ * `side` and an `align`. Rejoining them is the whole of the translation, and it
8
+ * belongs in one place because two components need it — `popover` and
9
+ * `hover-card`, which is a popover in hover mode.
10
+ *
11
+ * It lives in its own leaf rather than in either component so that neither has
12
+ * to import the other for it. It was written twice before that was true, and the
13
+ * two copies had already diverged: one of them could not re-align a side that
14
+ * already carried a suffix.
15
+ */
16
+ /**
17
+ * The placement a side and an align name together.
18
+ *
19
+ * `center` is the ABSENCE of a suffix rather than a suffix of its own, and a
20
+ * side that already carries one is RE-aligned rather than appended to — so the
21
+ * result is always a legal placement and applying it twice changes nothing.
22
+ *
23
+ * place('bottom') === 'bottom'
24
+ * place('bottom', 'start') === 'bottom-start'
25
+ * place('bottom-end', 'start') === 'bottom-start'
26
+ */
27
+ export const place = (side, align = 'center') => {
28
+ const base = side.split('-')[0];
29
+ return align === 'center' ? base : `${base}-${align}`;
30
+ };
31
+ //# sourceMappingURL=place.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place.js","sourceRoot":"","sources":["../../../src/backends/gui/place.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,QAAe,QAAQ,EAAU,EAAE;IACrE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAA;AACvD,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';"use strict";
2
2
  'use client';
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.PopoverClose = exports.PopoverAnchor = exports.PopoverContent = exports.PopoverTrigger = exports.place = void 0;
4
+ exports.PopoverClose = exports.PopoverAnchor = exports.PopoverContent = exports.PopoverTrigger = void 0;
5
5
  exports.Popover = Popover;
6
6
  const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  /**
@@ -18,27 +18,15 @@ const jsx_runtime_1 = require("react/jsx-runtime");
18
18
  const gui_1 = require("@hanzo/gui");
19
19
  const react_1 = require("react");
20
20
  const portal_theme_1 = require("../../product/menu/portal-theme.cjs");
21
+ const place_1 = require("./place.cjs");
21
22
  const slot_1 = require("./slot.cjs");
22
23
  const DEFAULT_OFFSET = 4;
23
24
  const DEFAULT_SIDE = 'bottom';
24
- /**
25
- * The placement a SIDE and an ALIGN name together. gui speaks floating-ui's
26
- * one string; the compound API splits the same fact in two, so this rejoins
27
- * them. `center` is the ABSENCE of a suffix rather than a suffix of its own,
28
- * and a side that already carries one is re-aligned rather than appended to.
29
- *
30
- * Example: place('bottom', 'start') === 'bottom-start'
31
- */
32
- const place = (side, align = 'center') => {
33
- const base = side.split('-')[0];
34
- return align === 'center' ? base : `${base}-${align}`;
35
- };
36
- exports.place = place;
37
25
  const Publish = /* @__PURE__ */ (0, react_1.createContext)(null);
38
26
  function Popover({ offset = DEFAULT_OFFSET, placement, ...props }) {
39
27
  const [placed, setPlaced] = (0, react_1.useState)({});
40
28
  const publish = (0, react_1.useCallback)((p) => setPlaced((prev) => ({ ...prev, ...p })), []);
41
- return ((0, jsx_runtime_1.jsx)(Publish.Provider, { value: publish, children: (0, jsx_runtime_1.jsx)(gui_1.Popover, { offset: placed.offset ?? offset, placement: (0, exports.place)(placement ?? DEFAULT_SIDE, placed.align), ...props }) }));
29
+ return ((0, jsx_runtime_1.jsx)(Publish.Provider, { value: publish, children: (0, jsx_runtime_1.jsx)(gui_1.Popover, { offset: placed.offset ?? offset, placement: (0, place_1.place)(placement ?? DEFAULT_SIDE, placed.align), ...props }) }));
42
30
  }
43
31
  const PopoverTrigger = gui_1.Popover.Trigger;
44
32
  exports.PopoverTrigger = PopoverTrigger;
@@ -11,16 +11,8 @@
11
11
  */
12
12
  import { Popover as GuiPopover } from '@hanzo/gui';
13
13
  import { type ComponentProps } from 'react';
14
- export type Align = 'start' | 'center' | 'end';
15
- /**
16
- * The placement a SIDE and an ALIGN name together. gui speaks floating-ui's
17
- * one string; the compound API splits the same fact in two, so this rejoins
18
- * them. `center` is the ABSENCE of a suffix rather than a suffix of its own,
19
- * and a side that already carries one is re-aligned rather than appended to.
20
- *
21
- * Example: place('bottom', 'start') === 'bottom-start'
22
- */
23
- export declare const place: (side: string, align?: Align) => string;
14
+ import { type Align } from './place.js';
15
+ export type { Align };
24
16
  export type PopoverProps = Omit<ComponentProps<typeof GuiPopover>, 'offset'> & {
25
17
  offset?: number;
26
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/popover.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,OAAO,CAAA;AAOd,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,EAAE,QAAO,KAAgB,KAAG,MAG7D,CAAA;AAOD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAElG,iBAAS,OAAO,CAAC,EAAE,MAAuB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAY9E;AAED,QAAA,MAAM,cAAc,EAAE,OAAO,UAAU,CAAC,OAA4B,CAAA;AACpE,QAAA,MAAM,aAAa,EAAE,OAAO,UAAU,CAAC,MAA0B,CAAA;AACjE,QAAA,MAAM,YAAY,EAAE,OAAO,UAAU,CAAC,KAAwB,CAAA;AAE9D,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,QAAA,MAAM,cAAc,GAAI,iCAAkD,mBAAmB,4CAkB5F,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/popover.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,OAAO,CAAA;AAEd,OAAO,EAAS,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAM3C,YAAY,EAAE,KAAK,EAAE,CAAA;AAOrB,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAElG,iBAAS,OAAO,CAAC,EAAE,MAAuB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAY9E;AAED,QAAA,MAAM,cAAc,EAAE,OAAO,UAAU,CAAC,OAA4B,CAAA;AACpE,QAAA,MAAM,aAAa,EAAE,OAAO,UAAU,CAAC,MAA0B,CAAA;AACjE,QAAA,MAAM,YAAY,EAAE,OAAO,UAAU,CAAC,KAAwB,CAAA;AAE9D,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,QAAA,MAAM,cAAc,GAAI,iCAAkD,mBAAmB,4CAkB5F,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
@@ -14,21 +14,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
14
14
  import { Popover as GuiPopover } from '@hanzo/gui';
15
15
  import { createContext, useCallback, useContext, useEffect, useState, } from 'react';
16
16
  import { PortalTheme, useThemeName } from '../../product/menu/portal-theme.js';
17
+ import { place } from './place.js';
17
18
  import { slot } from './slot.js';
18
19
  const DEFAULT_OFFSET = 4;
19
20
  const DEFAULT_SIDE = 'bottom';
20
- /**
21
- * The placement a SIDE and an ALIGN name together. gui speaks floating-ui's
22
- * one string; the compound API splits the same fact in two, so this rejoins
23
- * them. `center` is the ABSENCE of a suffix rather than a suffix of its own,
24
- * and a side that already carries one is re-aligned rather than appended to.
25
- *
26
- * Example: place('bottom', 'start') === 'bottom-start'
27
- */
28
- export const place = (side, align = 'center') => {
29
- const base = side.split('-')[0];
30
- return align === 'center' ? base : `${base}-${align}`;
31
- };
32
21
  const Publish = /* @__PURE__ */ createContext(null);
33
22
  function Popover({ offset = DEFAULT_OFFSET, placement, ...props }) {
34
23
  const [placed, setPlaced] = useState({});
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../src/backends/gui/popover.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,GAET,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,MAAM,cAAc,GAAG,CAAC,CAAA;AACxB,MAAM,YAAY,GAAG,QAAQ,CAAA;AAI7B;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,QAAe,QAAQ,EAAU,EAAE;IACrE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAA;AACvD,CAAC,CAAA;AAKD,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,CAA+B,IAAI,CAAC,CAAA;AAIjF,SAAS,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgB;IAC7E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACxF,OAAO,CACL,KAAC,OAAO,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,YAC9B,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,EAC/B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAY,EAAE,MAAM,CAAC,KAAK,CAAqB,KACzE,KAAK,GACT,GACe,CACpB,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAA8B,UAAU,CAAC,OAAO,CAAA;AACpE,MAAM,aAAa,GAA6B,UAAU,CAAC,MAAM,CAAA;AACjE,MAAM,YAAY,GAA4B,UAAU,CAAC,KAAK,CAAA;AAO9D,MAAM,cAAc,GAAG,CAAC,EAAE,UAAU,GAAG,cAAc,EAAE,KAAK,EAAE,GAAG,KAAK,EAAuB,EAAE,EAAE;IAC/F,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;IACvF,OAAO,CACL,KAAC,WAAW,IAAC,IAAI,EAAE,SAAS,YAC1B,KAAC,UAAU,CAAC,OAAO,OACb,IAAI,CAAC,iBAAiB,CAAC,EAC3B,EAAE,EAAC,SAAS,EACZ,WAAW,EAAE,CAAC,EACd,WAAW,EAAC,cAAc,EAC1B,OAAO,EAAC,IAAI,EACZ,CAAC,EAAC,IAAI,EACN,KAAK,EAAE,GAAG,KACN,KAAK,GACT,GACU,CACf,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../src/backends/gui/popover.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,GAET,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,EAAE,KAAK,EAAc,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,MAAM,cAAc,GAAG,CAAC,CAAA;AACxB,MAAM,YAAY,GAAG,QAAQ,CAAA;AAO7B,MAAM,OAAO,GAAG,eAAe,CAAC,aAAa,CAA+B,IAAI,CAAC,CAAA;AAIjF,SAAS,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgB;IAC7E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACxF,OAAO,CACL,KAAC,OAAO,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,YAC9B,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,EAC/B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,YAAY,EAAE,MAAM,CAAC,KAAK,CAAqB,KACzE,KAAK,GACT,GACe,CACpB,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAA8B,UAAU,CAAC,OAAO,CAAA;AACpE,MAAM,aAAa,GAA6B,UAAU,CAAC,MAAM,CAAA;AACjE,MAAM,YAAY,GAA4B,UAAU,CAAC,KAAK,CAAA;AAO9D,MAAM,cAAc,GAAG,CAAC,EAAE,UAAU,GAAG,cAAc,EAAE,KAAK,EAAE,GAAG,KAAK,EAAuB,EAAE,EAAE;IAC/F,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;IACvF,OAAO,CACL,KAAC,WAAW,IAAC,IAAI,EAAE,SAAS,YAC1B,KAAC,UAAU,CAAC,OAAO,OACb,IAAI,CAAC,iBAAiB,CAAC,EAC3B,EAAE,EAAC,SAAS,EACZ,WAAW,EAAE,CAAC,EACd,WAAW,EAAC,cAAc,EAC1B,OAAO,EAAC,IAAI,EACZ,CAAC,EAAC,IAAI,EACN,KAAK,EAAE,GAAG,KACN,KAAK,GACT,GACU,CACf,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
@@ -15,9 +15,19 @@ exports.groupModelsByFamily = groupModelsByFamily;
15
15
  exports.isChatModel = isChatModel;
16
16
  exports.filterChatModels = filterChatModels;
17
17
  exports.fetchModelCatalog = fetchModelCatalog;
18
- /** owned_by → display family. */
18
+ /**
19
+ * owned_by → display family.
20
+ *
21
+ * There is no `hanzo` entry, and its absence is the point. It used to say
22
+ * `hanzo: 'Zen'`, which was wrong twice: Zoo Labs Foundation makes Zen, and the
23
+ * gateway does not report Zen that way — it answers `owned_by: 'zenlm'`. What
24
+ * `owned_by: 'hanzo'` actually names is the dozen models Hanzo serves under its
25
+ * own namespace, so that entry filed Whisper, Kokoro, GLM, Kimi, Qwen3.5 and
26
+ * MiniMax under "Zen" as well. Without it each falls to its id prefix and lands
27
+ * where it belongs, and what is genuinely Hanzo's capitalizes to "Hanzo".
28
+ */
19
29
  const OWNER_FAMILY = {
20
- hanzo: 'Zen',
30
+ zenlm: 'Zen',
21
31
  anthropic: 'Anthropic',
22
32
  openai: 'OpenAI',
23
33
  deepseek: 'DeepSeek',
@@ -30,7 +40,7 @@ const OWNER_FAMILY = {
30
40
  nvidia: 'NVIDIA',
31
41
  moonshot: 'Kimi',
32
42
  };
33
- /** House then marquee; everything else sorts alphabetically after these. */
43
+ /** What the picker leads with; everything else sorts alphabetically after these. */
34
44
  const FAMILY_ORDER = ['Enso', 'Zen', 'Anthropic', 'OpenAI'];
35
45
  function capitalize(s) {
36
46
  return s ? s.charAt(0).toUpperCase() + s.slice(1) : s;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AA4CD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAmBrD;AAaD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,iBAAiB,EAAE,GAC1B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAAE,EAAE,CAWnD;AAkBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAMzD;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAEjF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA6B9B"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,iBAAiB;IAChC,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAsDD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAmBrD;AAaD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,iBAAiB,EAAE,GAC1B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAAE,EAAE,CAWnD;AAkBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAMzD;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAEjF;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA6B9B"}
@@ -8,9 +8,19 @@
8
8
  * returned by `${baseUrl}/models`. It is intentionally distinct from the
9
9
  * registry-shaped ZenModelLike in ./types (which drives the marketing cards).
10
10
  */
11
- /** owned_by → display family. */
11
+ /**
12
+ * owned_by → display family.
13
+ *
14
+ * There is no `hanzo` entry, and its absence is the point. It used to say
15
+ * `hanzo: 'Zen'`, which was wrong twice: Zoo Labs Foundation makes Zen, and the
16
+ * gateway does not report Zen that way — it answers `owned_by: 'zenlm'`. What
17
+ * `owned_by: 'hanzo'` actually names is the dozen models Hanzo serves under its
18
+ * own namespace, so that entry filed Whisper, Kokoro, GLM, Kimi, Qwen3.5 and
19
+ * MiniMax under "Zen" as well. Without it each falls to its id prefix and lands
20
+ * where it belongs, and what is genuinely Hanzo's capitalizes to "Hanzo".
21
+ */
12
22
  const OWNER_FAMILY = {
13
- hanzo: 'Zen',
23
+ zenlm: 'Zen',
14
24
  anthropic: 'Anthropic',
15
25
  openai: 'OpenAI',
16
26
  deepseek: 'DeepSeek',
@@ -23,7 +33,7 @@ const OWNER_FAMILY = {
23
33
  nvidia: 'NVIDIA',
24
34
  moonshot: 'Kimi',
25
35
  };
26
- /** House then marquee; everything else sorts alphabetically after these. */
36
+ /** What the picker leads with; everything else sorts alphabetically after these. */
27
37
  const FAMILY_ORDER = ['Enso', 'Zen', 'Anthropic', 'OpenAI'];
28
38
  function capitalize(s) {
29
39
  return s ? s.charAt(0).toUpperCase() + s.slice(1) : s;
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/models/catalog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzo/ui",
3
- "version": "8.0.73",
3
+ "version": "8.0.75",
4
4
  "type": "module",
5
5
  "description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
6
6
  "exports": {