@hanzo/ui 8.27.59 → 8.27.61
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/backends/gui/code-editor.cjs +39 -18
- package/dist/backends/gui/code-editor.d.ts.map +1 -1
- package/dist/backends/gui/code-editor.js +39 -18
- package/dist/backends/gui/code-editor.js.map +1 -1
- package/dist/backends/gui/json-tree.cjs +4 -2
- package/dist/backends/gui/json-tree.d.ts.map +1 -1
- package/dist/backends/gui/json-tree.js +4 -2
- package/dist/backends/gui/json-tree.js.map +1 -1
- package/dist/backends/gui/json.cjs +68 -66
- package/dist/backends/gui/json.d.ts +3 -2
- package/dist/backends/gui/json.d.ts.map +1 -1
- package/dist/backends/gui/json.js +68 -66
- package/dist/backends/gui/json.js.map +1 -1
- package/dist/chat/Composer.cjs +1 -1
- package/dist/chat/Composer.d.ts +1 -1
- package/dist/chat/Composer.js +1 -1
- package/dist/gallery.cjs +4 -4
- package/dist/gallery.d.ts.map +1 -1
- package/dist/gallery.html +4 -5
- package/dist/gallery.js +5 -5
- package/dist/gallery.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.node.cjs +1 -1
- package/dist/index.node.js +1 -1
- package/dist/models/ModelPicker.cjs +191 -0
- package/dist/models/ModelPicker.d.ts +27 -0
- package/dist/models/ModelPicker.d.ts.map +1 -0
- package/dist/models/ModelPicker.js +189 -0
- package/dist/models/ModelPicker.js.map +1 -0
- package/dist/models/catalog.cjs +313 -184
- package/dist/models/catalog.d.ts +101 -38
- package/dist/models/catalog.d.ts.map +1 -1
- package/dist/models/catalog.js +295 -179
- package/dist/models/catalog.js.map +1 -1
- package/dist/models/index.cjs +33 -12
- package/dist/models/index.d.ts +7 -4
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +7 -6
- package/dist/models/index.js.map +1 -1
- package/dist/models/picker.logic.cjs +83 -0
- package/dist/models/picker.logic.d.ts +51 -0
- package/dist/models/picker.logic.d.ts.map +1 -0
- package/dist/models/picker.logic.js +74 -0
- package/dist/models/picker.logic.js.map +1 -0
- package/dist/product/limits.cjs +14 -13
- package/dist/product/limits.d.ts +9 -10
- package/dist/product/limits.d.ts.map +1 -1
- package/dist/product/limits.js +14 -12
- package/dist/product/limits.js.map +1 -1
- package/dist/styles.css +1 -2
- package/package.json +1 -1
- package/dist/models/ModelSelector.cjs +0 -80
- package/dist/models/ModelSelector.d.ts +0 -44
- package/dist/models/ModelSelector.d.ts.map +0 -1
- package/dist/models/ModelSelector.js +0 -78
- package/dist/models/ModelSelector.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSelector.d.ts","sourceRoot":"","sources":["../../src/models/ModelSelector.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAmD,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAenG,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,iBAAiB,EAAE,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAA;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,IAAW,EACX,WAA4B,EAC5B,QAAe,EACf,SAAS,EACT,IAAI,EAAE,QAAQ,EACd,YAAY,EACZ,MAAM,GACP,EAAE,kBAAkB,+BA2IpB;eAEc,aAAa"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useMemo, useState } from 'react';
|
|
4
|
-
import { sx } from '../sx.js';
|
|
5
|
-
import { Check, ChevronsUpDown } from '@hanzogui/lucide-icons-2';
|
|
6
|
-
import { SizableText, XStack } from '@hanzo/gui';
|
|
7
|
-
import { Anchor, Button, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, Popover, PopoverContent, PopoverTrigger, } from '../backends/gui/index.js';
|
|
8
|
-
import { familyOf, filterChatModels, groupModelsByFamily } from './catalog.js';
|
|
9
|
-
/** Show the search input once a catalog gets this large. */
|
|
10
|
-
const SEARCH_THRESHOLD = 12;
|
|
11
|
-
/** Panel floor when the trigger has not reported its width yet. */
|
|
12
|
-
const MIN_W = 224;
|
|
13
|
-
const MAX_H = 288;
|
|
14
|
-
function fmtContext(ctx) {
|
|
15
|
-
if (!ctx)
|
|
16
|
-
return '';
|
|
17
|
-
if (ctx >= 1_000_000)
|
|
18
|
-
return `${(ctx / 1_000_000).toFixed(ctx % 1_000_000 === 0 ? 0 : 1)}M`;
|
|
19
|
-
if (ctx >= 1000)
|
|
20
|
-
return `${Math.round(ctx / 1000)}K`;
|
|
21
|
-
return `${ctx}`;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* ModelSelector — the one unified model picker for every Hanzo app.
|
|
25
|
-
*
|
|
26
|
-
* Family-grouped picker in a Popover + Command combobox: grouped sections with
|
|
27
|
-
* family headers, premium markers, context suffixes, keyboard navigation, and
|
|
28
|
-
* type-to-filter search for large catalogs.
|
|
29
|
-
*
|
|
30
|
-
* A model `paused` names is listed and chosen like any other, with a quiet
|
|
31
|
-
* "Paused" where its context size would sit.
|
|
32
|
-
*
|
|
33
|
-
* A model with `access` is listed and never chosen: its row is disabled, says
|
|
34
|
-
* why, and links to where a person asks for access. The link sits inside a
|
|
35
|
-
* list item rather than an option, so it is a control of its own and not one
|
|
36
|
-
* nested in another; it keeps Enter to itself, which the list would otherwise
|
|
37
|
-
* take as a pick.
|
|
38
|
-
*
|
|
39
|
-
* Styling is gui style props and tokens throughout — no class strings. The panel
|
|
40
|
-
* matches the trigger's MEASURED width (`onLayout`, which gui implements on web
|
|
41
|
-
* too), never a Radix `--radix-popover-trigger-width` custom property: nothing
|
|
42
|
-
* defines that variable now that Radix is gone.
|
|
43
|
-
*/
|
|
44
|
-
export function ModelSelector({ models, value, onChange, disabled = false, size = 'md', placeholder = 'Select model', chatOnly = true, className, open: openProp, onOpenChange, paused, }) {
|
|
45
|
-
const [own, setOwn] = useState(false);
|
|
46
|
-
const open = openProp ?? own;
|
|
47
|
-
const setOpen = (next) => {
|
|
48
|
-
if (openProp === undefined)
|
|
49
|
-
setOwn(next);
|
|
50
|
-
onOpenChange?.(next);
|
|
51
|
-
};
|
|
52
|
-
const [triggerW, setTriggerW] = useState(0);
|
|
53
|
-
const visible = useMemo(() => (chatOnly ? filterChatModels(models) : models), [models, chatOnly]);
|
|
54
|
-
const groups = useMemo(() => groupModelsByFamily(visible), [visible]);
|
|
55
|
-
const showSearch = visible.length > SEARCH_THRESHOLD;
|
|
56
|
-
// Resolve the selected label from the FULL list so a current pick still shows
|
|
57
|
-
// even when chatOnly would otherwise hide it.
|
|
58
|
-
const selected = value ? models.find((m) => m.id === value) : undefined;
|
|
59
|
-
const selectedLabel = selected ? (selected.label ?? selected.id) : placeholder;
|
|
60
|
-
const selectedFamily = selected ? familyOf(selected) : undefined;
|
|
61
|
-
const isSm = size === 'sm';
|
|
62
|
-
return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(XStack, { onLayout: (e) => setTriggerW(e.nativeEvent.layout.width), children: _jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: "outline", size: isSm ? 'sm' : 'default', role: "combobox", "aria-expanded": open, disabled: disabled, justify: "flex-start", ...sx(className), children: [_jsx(SizableText, { numberOfLines: 1, size: isSm ? '$1' : '$2', color: "$color12", children: selectedLabel }), selectedFamily && (_jsx(SizableText, { numberOfLines: 1, size: isSm ? '$1' : '$2', color: "$color11", children: selectedFamily })), _jsx(ChevronsUpDown, { size: isSm ? 12 : 14, ml: "auto", shrink: 0, opacity: 0.5 })] }) }) }), _jsx(PopoverContent, { align: "start", p: 0, width: Math.max(triggerW, MIN_W), children: _jsxs(Command, { children: [showSearch && _jsx(CommandInput, { placeholder: "Search models\u2026" }), _jsxs(CommandList, { maxH: MAX_H, children: [_jsx(CommandEmpty, { children: "No models found." }), groups.map((group) => (_jsx(CommandGroup, { heading: group.family, children: group.models.map((m) => {
|
|
63
|
-
const label = m.label ?? m.id;
|
|
64
|
-
const ctx = fmtContext(m.context_window);
|
|
65
|
-
const locked = m.access === 'research';
|
|
66
|
-
const resting = !locked && (paused?.(m) ?? false);
|
|
67
|
-
return (_jsxs(CommandItem, { value: `${group.family} ${label} ${m.id}`, disabled: locked, "aria-disabled": locked ? false : undefined, "data-access": m.access, "data-paused": resting || undefined,
|
|
68
|
-
// The name is muted, not the row: its link has to read as a link.
|
|
69
|
-
opacity: 1, onSelect: () => {
|
|
70
|
-
onChange(m.id);
|
|
71
|
-
setOpen(false);
|
|
72
|
-
}, children: [_jsxs(XStack, { flex: 1, minW: 0, items: "center", gap: "$2", "aria-disabled": locked || undefined, opacity: locked ? 0.5 : 1, children: [_jsx(Check, { size: 14, shrink: 0, opacity: m.id === value ? 1 : 0 }), _jsx(SizableText, { numberOfLines: 1, size: "$2", children: label }), m.premium && (_jsx(SizableText, { size: "$2", color: "$color11", "aria-label": "Premium", children: "\u2726" })), locked ? (_jsx(SizableText, { ml: "auto", shrink: 0, pl: "$2", size: "$1", color: "$color11", children: "Research preview" })) : resting ? (_jsx(SizableText, { ml: "auto", shrink: 0, pl: "$2", size: "$1", color: "$color11", children: "Paused" })) : ctx && (_jsx(XStack, { ml: "auto", shrink: 0, pl: "$2", children: _jsx(SizableText, { size: "$1", color: "$color11", fontVariant: ['tabular-nums'], children: ctx }) }))] }), locked && m.request && (_jsx(Anchor, { href: m.request, target: "_blank", rel: "noopener noreferrer", shrink: 0, size: "$1", color: "$color12", textDecorationLine: "underline",
|
|
73
|
-
// The row takes no pointer while disabled; its link does.
|
|
74
|
-
pointerEvents: "auto", onKeyDown: (e) => e.stopPropagation(), children: "Request access" }))] }, m.id));
|
|
75
|
-
}) }, group.family)))] })] }) })] }));
|
|
76
|
-
}
|
|
77
|
-
export default ModelSelector;
|
|
78
|
-
//# sourceMappingURL=ModelSelector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ModelSelector.js","sourceRoot":"","sources":["../../src/models/ModelSelector.tsx"],"names":[],"mappings":"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"}
|