cal looks like the rest of Hanzo, and an empty field reads as empty

The app mounts <Hanzo> from @hanzo/ui with its stylesheet instead of a stock
gui config, so the Booker reads hanzo.ai's own tokens. @hanzo/ui 8.27.89
draws a placeholder at the ink's 45% and the value at the full ink, and
@hanzo/booker 8.3.7 carries no sample-data placeholders ("Your name",
"[email protected]"), a white pill Confirm (black on light) and a quiet Back.

The page follows the device's light or dark, as hanzo.ai and its checkout do,
painted in <head> before first paint. Grounds are the checkout's: #000 or #fff,
fields on #171717 / #ededed under the #2e2e2e / #d5d5d5 hairline. One layout,
the mark then one card, on every page: the landing's frame around the Booker's
own card is gone, the booking page is a single card with a white-pill Keep it,
and the popup embed draws the Booker bare inside its panel, which follows the
device too. An embedded document decides it is framed in <head>, so it is
see-through before React mounts.

Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
zooqueen
2026-10-16 01:09:01 -07:00
co-authored by Hanzo Dev
parent 6207e90927
commit 5d5a97f993
14 changed files with 677 additions and 377 deletions
+6 -2
View File
@@ -10,11 +10,15 @@
"preview": "vite preview --host --port 3000"
},
"dependencies": {
"@hanzo/booker": "^8.3.6",
"@hanzo/event": "^0.3.21",
"@hanzo/appearance": "0.2.7",
"@hanzo/booker": "^8.3.7",
"@hanzo/event": "^0.3.57",
"@hanzo/font": "^1.8.11",
"@hanzo/gui": "8.3.5",
"@hanzo/ui": "^8.27.89",
"@hanzogui/animations-css": "8.3.5",
"@hanzogui/config": "8.3.5",
"@hanzogui/telemetry": "8.3.5",
"react": "19.2.8",
"react-dom": "19.2.8",
"react-native-web": "^0.21.2",
+18
View File
@@ -0,0 +1,18 @@
import type { ReactNode } from "react";
// Every page cal.hanzo.ai serves at the top level: the mark, then one card.
// The card is the Booker's own (or the booking page's), never a second frame
// drawn around it.
export function Page({ children }: { children: ReactNode }) {
return (
<main className="page">
<header className="nav">
<a className="brand" href="https://hanzo.ai">
<img className="brand-mark" src="/logo.svg" alt="" width={22} height={22} />
Hanzo
</a>
</header>
{children}
</main>
);
}
+15 -9
View File
@@ -47,7 +47,6 @@ const PANEL: Style = {
"max-height": "760px",
"border-radius": "12px",
overflow: "hidden",
"background-color": "#0b0b0d",
};
const BAR: Style = {
display: "flex",
@@ -58,18 +57,14 @@ const BAR: Style = {
"font-family": "system-ui, -apple-system, sans-serif",
"font-size": "13px",
"line-height": "1.2",
color: "#f3f4f6",
"background-color": "#0b0b0d",
};
const LABEL: Style = {
"font-family": "system-ui, -apple-system, sans-serif",
"font-size": "13px",
color: "#9ca3af",
};
const DISMISS: Style = {
"font-family": "system-ui, -apple-system, sans-serif",
"font-size": "13px",
color: "#f3f4f6",
background: "transparent",
border: "0",
padding: "2px 6px",
@@ -134,19 +129,20 @@ export function mount(el: Element): void {
* overlay is cal.hanzo.ai's, not the page's. */
export function open(pk: string): void {
close();
const ink = scheme();
const root = document.createElement("div");
apply(root, SCRIM);
const panel = document.createElement("div");
apply(panel, PANEL);
apply(panel, { ...PANEL, "background-color": ink.ground });
const bar = document.createElement("div");
apply(bar, BAR);
apply(bar, { ...BAR, color: ink.text, "background-color": ink.ground });
const who = document.createElement("span");
apply(who, LABEL);
apply(who, { ...LABEL, color: ink.quiet });
who.textContent = new URL(origin).host;
const dismiss = document.createElement("button");
apply(dismiss, DISMISS);
apply(dismiss, { ...DISMISS, color: ink.text });
dismiss.textContent = "Close";
dismiss.addEventListener("click", () => close());
bar.append(who, dismiss);
@@ -162,6 +158,16 @@ export function open(pk: string): void {
scrim = root;
}
/** The popup's ground and ink. The booker inside the frame follows the
* device's light or dark, and this reads the same device, so the panel around
* it agrees with it: the checkout's black or white, and its two inks. */
function scheme(): { ground: string; text: string; quiet: string } {
const light = typeof matchMedia === "function" && matchMedia("(prefers-color-scheme: light)").matches;
return light
? { ground: "#ffffff", text: "#0a0a0a", quiet: "#525252" }
: { ground: "#000000", text: "#ededed", quiet: "#a3a3a3" };
}
/** close dismisses the popup. */
export function close(): void {
if (!scrim) return;
-7
View File
@@ -1,7 +0,0 @@
// The hanzogui (Tamagui) config the GuiProvider needs — same recipe the
// @hanzo/booker render harness proved. @hanzo/booker renders inside GuiProvider.
import { defaultConfig } from "@hanzogui/config/v4";
import { createGui } from "hanzogui";
export const config = createGui(defaultConfig);
export default config;
+12 -7
View File
@@ -1,16 +1,21 @@
import "@hanzo/font/css";
import "@hanzo/ui/styles.css";
import "./styles.css";
import { AnalyticsProvider } from "@hanzo/event/react";
import { GuiProvider } from "hanzogui";
import { Hanzo } from "@hanzo/ui";
import { createRoot } from "react-dom/client";
import { App } from "./App";
import { analytics } from "./analytics";
import { config } from "./gui";
import "./styles.css";
import { SCHEME } from "./scheme";
// No StrictMode: its double-invoke trips a Tamagui update-depth loop on the
// marketing page's embedded booker. The Booker itself is idempotent in prod.
// <Hanzo> is the root every Hanzo surface mounts: @hanzo/ui's gui config and
// tokens, so the Booker's fields, pills and placeholder read the same values as
// hanzo.ai's own forms. Its stylesheet is a real file (styles.css above).
//
// No StrictMode: its double-invoke trips a gui update-depth loop on the
// Booker. The Booker itself is idempotent in prod.
//
// autoPageview is off — it defaults ON, and @hanzo/event stamps `url` and `path`
// on every event it builds. One route here is /booking/<uid>, and that uid is the
@@ -19,8 +24,8 @@ import "./styles.css";
// name in analytics.ts, so the funnel loses nothing by not counting pages.
createRoot(document.getElementById("root")!).render(
<AnalyticsProvider client={analytics} autoPageview={false}>
<GuiProvider config={config} defaultTheme="dark">
<Hanzo appearance={{ install: SCHEME }}>
<App />
</GuiProvider>
</Hanzo>
</AnalyticsProvider>
);
+13 -10
View File
@@ -4,6 +4,7 @@ import { useNavigate, useParams } from "react-router-dom";
import { calendarApi } from "../api";
import { booked, useShown } from "../analytics";
import { Page } from "../Page";
/** The query names a link may fill the details step with, as a Cal.com link does. */
const PREFILL = ["name", "email", "notes"] as const;
@@ -36,15 +37,17 @@ export function Booking() {
useShown("page", target);
return (
<Booker
host={owner}
eventSlug={slug}
apiUrl={calendarApi}
prefill={prefill}
onBooked={(booking) => {
booked("page", target);
if (booking?.uid) navigate(`/booking/${booking.uid}`);
}}
/>
<Page>
<Booker
host={owner}
eventSlug={slug}
apiUrl={calendarApi}
prefill={prefill}
onBooked={(booking) => {
booked("page", target);
if (booking?.uid) navigate(`/booking/${booking.uid}`);
}}
/>
</Page>
);
}
+7 -6
View File
@@ -2,6 +2,7 @@ import { useEffect, useState } from "react";
import { useParams } from "react-router-dom";
import { calendarApi } from "../api";
import { Page } from "../Page";
type Booking = {
uid: string;
@@ -59,20 +60,20 @@ export function Confirmation() {
if (error) {
return (
<main className="shell">
<Page>
<div className="card">
<p className="muted">{error}</p>
</div>
</main>
</Page>
);
}
if (!booking) {
return (
<main className="shell">
<Page>
<div className="card">
<p className="muted">Loading…</p>
</div>
</main>
</Page>
);
}
@@ -81,7 +82,7 @@ export function Confirmation() {
const attendee = booking.attendees?.[0];
return (
<main className="shell">
<Page>
<div className="card">
<div className={`badge ${canceled ? "badge-off" : "badge-on"}`}>
{canceled ? "Canceled" : "Confirmed"}
@@ -122,6 +123,6 @@ export function Confirmation() {
</button>
)}
</div>
</main>
</Page>
);
}
+2 -10
View File
@@ -16,7 +16,6 @@ export function Embed() {
const target = resolve(pk);
const parent = loader(params.get("parent"));
useTransparentPage();
usePostedHeight(parent);
useEscapeToClose(parent);
useShown(surface, target);
@@ -31,25 +30,18 @@ export function Embed() {
return (
<main className="embed">
{/* The popup's panel is already the card, so the Booker draws none. */}
<Booker
host={target.host}
eventSlug={target.eventSlug}
apiUrl={calendarApi}
bare={surface === "popup"}
onBooked={() => booked(surface, target)}
/>
</main>
);
}
// An embedded document paints no background of its own, so the booker sits on
// whatever the host page already has.
function useTransparentPage() {
useEffect(() => {
document.documentElement.classList.add("framed");
return () => document.documentElement.classList.remove("framed");
}, []);
}
// The address of every message back to the page around us: embed.js names its
// own origin in ?parent=, and the browser delivers there or nowhere. A "*"
// targetOrigin is delivered to whatever the parent happens to be, and a frame
+12 -22
View File
@@ -3,6 +3,7 @@ import { useNavigate } from "react-router-dom";
import { calendarApi } from "../api";
import { booked, useShown } from "../analytics";
import { Page } from "../Page";
// The team calendar for booking time with Hanzo
const TEAM = { host: "hanzo", eventSlug: "intro" };
@@ -14,27 +15,16 @@ export function Home() {
useShown("page", TEAM);
return (
<main className="landing">
<header className="nav">
<span className="brand">
<img className="brand-mark" src="/logo.svg" alt="" width={22} height={22} />
Hanzo
</span>
</header>
<section className="booker-stage">
<div className="booker-frame">
<Booker
host={TEAM.host}
eventSlug={TEAM.eventSlug}
apiUrl={calendarApi}
onBooked={(booking) => {
booked("page", TEAM);
if (booking?.uid) navigate(`/booking/${booking.uid}`);
}}
/>
</div>
</section>
</main>
<Page>
<Booker
host={TEAM.host}
eventSlug={TEAM.eventSlug}
apiUrl={calendarApi}
onBooked={(booking) => {
booked("page", TEAM);
if (booking?.uid) navigate(`/booking/${booking.uid}`);
}}
/>
</Page>
);
}
+7
View File
@@ -0,0 +1,7 @@
import type { Preference } from "@hanzo/appearance";
// This surface's own default, under a choice the visitor made: it follows the
// device, light or dark, as hanzo.ai and its checkout do. The boot script in
// index.html paints it before first paint (vite.config.ts); <Hanzo> keeps
// following it after.
export const SCHEME: Preference = { theme: "system" };
+112 -278
View File
@@ -1,21 +1,18 @@
/* cal.hanzo.ai on @hanzo/ui's tokens (`@hanzo/ui/styles.css`, imported first in
main.tsx). Nothing here restates a colour design already publishes; it names
the page ground and lays out the one card.
The ground is the checkout's: black in dark, white in light. Design's own
ground is a rung off each (#0a0a0a, #f7f7f7), and hanzo.ai and its checkout
paint the pure ends, so this page does too. Fields sit on `--muted` (#171717 /
#ededed) under the `--border` hairline, which is #2e2e2e / #d5d5d5 over them. */
:root {
/* Dark monochrome. */
--bg: #0a0a0a;
--card: #141414;
--ink: #ededed;
--muted: #8a8a8a;
--line: #262626;
--accent: #ededed;
--on: #ededed;
--off: #8a8a8a;
--sans: 'Zen', -apple-system, BlinkMacSystemFont, "Segoe UI",
Roboto, Helvetica, Arial, sans-serif;
--mono: 'Zen Mono', ui-monospace, "SF Mono", Menlo,
Consolas, monospace;
--background: #000000;
}
* {
box-sizing: border-box;
:root.light,
:root.t_light {
--background: #ffffff;
}
html,
@@ -26,50 +23,85 @@ body,
}
body {
background: var(--bg);
color: var(--ink);
font-family: var(--sans);
background: var(--background);
color: var(--foreground);
font-family: var(--font-sans), sans-serif;
-webkit-font-smoothing: antialiased;
}
code,
.hero-note code,
.foot code {
font-family: var(--mono);
/* ── The page: the mark, then the one card ─────────────────────────────────── */
.page {
max-width: 908px;
margin: 0 auto;
padding: 16px 16px 48px;
}
/* The shell hosts our own light pages (landing, confirmation). The Booker itself
ships Cal's Tailwind styling and renders inside its own wrapper. */
.shell {
.nav {
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
padding: 24px;
padding: 8px 0 24px;
}
.brand {
display: inline-flex;
align-items: center;
gap: 9px;
font-weight: 600;
font-size: 17px;
letter-spacing: -0.01em;
color: var(--foreground);
text-decoration: none;
}
.brand-mark {
display: block;
}
/* The mark is drawn white; on the light ground it is drawn black. */
:root.light .brand-mark,
:root.t_light .brand-mark {
filter: invert(1);
}
@media (min-width: 640px) {
.page {
padding: 24px 24px 64px;
}
.nav {
padding: 12px 0 40px;
}
}
/* ── The booking page (/booking/:uid) ──────────────────────────────────────── */
.card {
background: var(--card);
border: 1px solid var(--line);
border-radius: 14px;
padding: 32px;
background: var(--background);
border: 1px solid var(--border);
border-radius: 12px;
padding: 24px;
max-width: 480px;
width: 100%;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.04);
margin: 0 auto;
}
@media (min-width: 640px) {
.card {
padding: 32px;
}
}
.card h1 {
font-size: 22px;
margin: 8px 0 6px;
font-size: 21px;
letter-spacing: -0.02em;
margin: 12px 0 6px;
}
.muted {
color: var(--muted);
color: var(--muted-foreground);
font-size: 14px;
margin: 0;
}
.when {
font-size: 16px;
font-size: 15px;
font-weight: 600;
margin: 4px 0;
}
@@ -80,51 +112,59 @@ code,
word-break: break-word;
}
code {
background: var(--card);
padding: 2px 6px;
border-radius: 6px;
font-size: 13px;
}
.badge {
display: inline-block;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
font-weight: 600;
padding: 4px 10px;
border-radius: 999px;
margin-bottom: 8px;
background: var(--muted);
border: 1px solid var(--border);
}
.badge-on {
background: var(--card);
border: 1px solid var(--line);
color: var(--on);
color: var(--foreground);
}
.badge-off {
background: var(--card);
border: 1px solid var(--line);
color: var(--off);
color: var(--muted-foreground);
}
/* Two kinds of control and no third: the one answer the page prefers is the
white pill (black in light), and everything else is quiet. */
.keep,
.cancel {
font: inherit;
font-size: 14px;
font-weight: 600;
border-radius: 999px;
padding: 10px 20px;
cursor: pointer;
}
.keep {
background: var(--primary);
color: var(--primary-foreground);
border: 1px solid var(--primary);
}
.keep:hover {
background: var(--primary-hover);
border-color: var(--primary-hover);
}
.cancel {
margin-top: 20px;
background: transparent;
color: var(--off);
border: 1px solid var(--line);
border-radius: 10px;
padding: 10px 16px;
font-size: 14px;
cursor: pointer;
color: var(--muted-foreground);
border: 1px solid var(--border);
}
.cancel:hover {
border-color: var(--off);
color: var(--foreground);
}
.keep:disabled,
.cancel:disabled {
opacity: 0.6;
cursor: default;
@@ -140,233 +180,27 @@ code {
/* Keeping the booking is the answer this page prefers, so it looks like one and
the destructive answer is the quiet one below it. */
.keep {
background: transparent;
color: var(--ink);
border: 1px solid var(--line);
border-radius: 10px;
padding: 10px 16px;
font-size: 14px;
cursor: pointer;
}
.keep:hover {
border-color: var(--ink);
}
.confirm .cancel {
margin-top: 0;
border: 0;
padding: 4px 8px;
padding: 6px 12px;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #0b0b0d;
--card: #151517;
--ink: #f3f4f6;
--muted: #9ca3af;
--line: #26262b;
}
code {
background: #26262b;
}
/* ── Framed in someone else's page ─────────────────────────────────────────── */
/* Paint no ground of our own; the booker's card carries its own. The scheme
script stamps `color-scheme` on <html>, and a frame whose color-scheme
differs from its host's is given an opaque backdrop by the browser, which
would paint a dark slab around the card on a light page. The frame keeps
the host's default, so it stays see-through. */
html.framed {
color-scheme: normal !important;
}
/* ── Hanzo Calendar marketing landing (cal.hanzo.ai/) ───────────────────── */
.landing {
max-width: 960px;
margin: 0 auto;
padding: 24px;
}
.nav {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px 4px 40px;
}
.brand {
font-weight: 700;
font-size: 18px;
letter-spacing: -0.01em;
display: inline-flex;
align-items: center;
gap: 9px;
}
.brand-mark {
display: block;
}
.nav-links {
display: inline-flex;
align-items: center;
gap: 14px;
}
.nav-link {
color: var(--muted);
text-decoration: none;
font-size: 14px;
font-weight: 600;
}
.nav-link:hover {
color: var(--ink);
}
.nav-cta {
color: #0a0a0a;
background: var(--accent);
text-decoration: none;
font-size: 14px;
font-weight: 600;
border: 1px solid var(--accent);
border-radius: 999px;
padding: 8px 16px;
}
.nav-cta:hover {
opacity: 0.9;
}
/* The product itself — the live Booker — framed as the hero centerpiece. */
.booker-stage {
display: flex;
justify-content: center;
padding: 8px 0 56px;
}
.booker-frame {
width: 100%;
max-width: 720px;
background: var(--card);
border: 1px solid var(--line);
border-radius: 16px;
padding: 12px;
overflow: hidden;
}
.hero {
text-align: center;
padding: 44px 0 24px;
}
.hero h1 {
font-size: clamp(32px, 6vw, 56px);
line-height: 1.05;
letter-spacing: -0.03em;
margin: 0 0 20px;
}
.lede {
font-size: 19px;
line-height: 1.55;
color: var(--muted);
max-width: 620px;
margin: 0 auto 32px;
}
.hero-actions {
display: flex;
gap: 12px;
justify-content: center;
flex-wrap: wrap;
}
.btn {
text-decoration: none;
font-weight: 600;
font-size: 15px;
border-radius: 10px;
padding: 13px 22px;
border: 1px solid transparent;
transition: transform 0.05s ease;
}
.btn:active {
transform: translateY(1px);
}
.btn-primary {
background: var(--accent);
color: #0a0a0a;
}
.btn-ghost {
background: transparent;
color: var(--ink);
border-color: var(--line);
}
.hero-note {
margin-top: 26px;
font-size: 13px;
color: var(--muted);
}
.hero-note code,
.foot code {
background: var(--card);
border: 1px solid var(--line);
border-radius: 6px;
padding: 2px 7px;
font-size: 12px;
}
.features {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
margin: 24px 0 56px;
}
@media (max-width: 640px) {
.features {
grid-template-columns: 1fr;
}
}
.feature {
background: var(--card);
border: 1px solid var(--line);
border-radius: 14px;
padding: 24px;
}
.feature h3 {
margin: 0 0 8px;
font-size: 17px;
letter-spacing: -0.01em;
}
.feature p {
margin: 0;
color: var(--muted);
font-size: 14.5px;
line-height: 1.55;
}
.foot {
display: flex;
align-items: center;
justify-content: space-between;
border-top: 1px solid var(--line);
padding: 24px 4px;
font-size: 13px;
flex-wrap: wrap;
gap: 8px;
}
/* The copy-paste embed snippet under the landing booker. */
.embed-hint {
margin: 0 0 56px;
text-align: center;
}
.embed-hint .muted {
margin: 0 0 12px;
font-size: 14px;
}
.snippet {
margin: 0;
background: var(--card);
border: 1px solid var(--line);
border-radius: 12px;
padding: 16px 18px;
overflow-x: auto;
text-align: left;
font-size: 12.5px;
line-height: 1.7;
color: var(--muted);
}
/* Framed in someone else's page: paint no background of our own, and give the
booker the whole document. */
html.framed,
html.framed body {
background: transparent;
}
.embed {
padding: 0;
}
/* FORCE GEIST — Tamagui/hanzogui set font-family inline, so override it. */
#root, #root * { font-family: var(--sans) !important; }
code, .hero-note code, .foot code { font-family: var(--mono) !important; }
-3
View File
@@ -6,9 +6,6 @@
"module": "ESNext",
"skipLibCheck": true,
"moduleResolution": "bundler",
// @hanzo/booker imports its peer under the name `hanzogui`, which the Vite
// build aliases to @hanzo/gui. Say the same thing to the type checker.
"paths": { "hanzogui": ["./node_modules/@hanzo/gui"] },
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
+31 -7
View File
@@ -1,18 +1,42 @@
import { bootScript } from "@hanzo/appearance/state";
import react from "@vitejs/plugin-react";
import { defineConfig } from "vite";
// Hanzo Calendar SPA — hosts the native universal Booker (@hanzo/booker, Tamagui)
// against the /v1/calendar backend. The one required piece for Tamagui on web is
// aliasing react-native -> react-native-web and deduping to a single copy each
// (the exact recipe the @hanzo/booker render harness proved). NODE_ENV is pinned
// so React + hanzogui take their production paths in the browser.
import { SCHEME } from "./src/scheme";
// Hanzo Calendar SPA — hosts the native universal Booker (@hanzo/booker, gui)
// inside <Hanzo> against the /v1/calendar backend. NODE_ENV is pinned so React
// and gui take their production paths in the browser.
//
// gui's substrate is react-native primitives, which on the web is
// react-native-web: the alias maps it, and `.web.*` outranks `.js` so
// react-native-svg (which @hanzo/ui draws icons with) reaches its web build
// rather than its native codegen. Same mapping as hanzo.ai's checkout.
//
// The scheme is painted in <head> before anything renders: a page that decides
// light or dark after React mounts flashes the wrong ground first. So is
// `framed`: an embedded document paints no ground of its own, and decided in an
// effect it showed an opaque slab in the host page until React mounted.
const FRAMED = `if(location.pathname==="/embed")document.documentElement.classList.add("framed")`;
export default defineConfig({
plugins: [react()],
plugins: [
react(),
{
name: "scheme",
transformIndexHtml: () => [
{ tag: "script", children: `${FRAMED};${bootScript({ base: SCHEME })}`, injectTo: "head-prepend" },
],
},
],
resolve: {
alias: [
{ find: /^react-native$/, replacement: "react-native-web" },
{ find: /^hanzogui$/, replacement: "@hanzo/gui" },
{
find: "@react-native/assets-registry/registry",
replacement: "react-native-web/dist/modules/AssetRegistry",
},
],
extensions: [".web.js", ".web.jsx", ".web.ts", ".web.tsx", ".mjs", ".js", ".mts", ".ts", ".jsx", ".tsx", ".json"],
dedupe: ["react", "react-dom", "react-native-web", "@hanzo/gui"],
},
define: {
+442 -16
View File
@@ -10,21 +10,33 @@ importers:
app:
dependencies:
'@hanzo/appearance':
specifier: 0.2.7
version: 0.2.7([email protected])
'@hanzo/booker':
specifier: ^8.3.6
version: 8.3.6(@hanzo/[email protected]([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])
specifier: ^8.3.7
version: 8.3.7(@hanzo/[email protected]([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])
'@hanzo/event':
specifier: ^0.3.21
version: 0.3.21([email protected])
specifier: ^0.3.57
version: 0.3.57([email protected])
'@hanzo/font':
specifier: ^1.8.11
version: 1.9.3([email protected](@babel/[email protected])(@types/[email protected])([email protected])([email protected]([email protected]))([email protected]))
'@hanzo/gui':
specifier: 8.3.5
version: 8.3.5([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])
'@hanzo/ui':
specifier: ^8.27.89
version: 8.27.89(bo3p4ypxyuvr73h5p2f6vyzt54)
'@hanzogui/animations-css':
specifier: 8.3.5
version: 8.3.5([email protected]([email protected]))([email protected])
'@hanzogui/config':
specifier: 8.3.5
version: 8.3.5([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected])
'@hanzogui/telemetry':
specifier: 8.3.5
version: 8.3.5([email protected])
react:
specifier: 19.2.8
version: 19.2.8
@@ -387,6 +399,24 @@ packages:
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'}
'@codemirror/[email protected]':
resolution: {integrity: sha512-O/4hG3SC1YwcmQ0d2UVNDs+AsaNWd1iHVxbTeEBuqH+6bExAiPK3iS/BvpY6rZGURALv4ZD3sIgcCmRvw3ehBg==}
'@codemirror/[email protected]':
resolution: {integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==}
'@codemirror/[email protected]':
resolution: {integrity: sha512-zfvU2r3TyylQLMj/te+5CnQ0rSqZi8B1oTCBbQkagcLW4Xc6imab6qN+pEJhsuNOLaJqiRyBXp9UhWA1DhVvDw==}
'@codemirror/[email protected]':
resolution: {integrity: sha512-kAz+AncRtKuIknedxT1bq4XwXv4UowhbkHU1myPrtVb/jZtImWuV5BXzv5vK6i3kYACsdiZiQKFQQ5Mq7elW8w==}
'@codemirror/[email protected]':
resolution: {integrity: sha512-JTFPF6xrfjt0mnfGPgzcLiMwYmvIyNaoizp8BYzv8FE8KrT6GBGDZ190rtt+O7Wke3gG/MFHyiY9YGNeimof4w==}
'@codemirror/[email protected]':
resolution: {integrity: sha512-hC45YnmJNR1rz42OF57BLoQNFMV12/13drnvibDsR2quNDmldcb4WvYVV81hFQg56i9lcqQMEDqilhX2QDcGQQ==}
'@emnapi/[email protected]':
resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==}
@@ -549,8 +579,13 @@ packages:
'@floating-ui/[email protected]':
resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==}
'@hanzo/[email protected]':
resolution: {integrity: sha512-zyS9+Jz06nWI/GZfRIPSa4g+keq3wkiMO43Um8yrhjC/qCM/+biKbQvHjpkWLzvYvmti6UgB8k+DUqFekzUECg==}
'@hanzo/[email protected]':
resolution: {integrity: sha512-kaZpk2kHzKDliFWIv8GOcJss2JlPdWJm24kxuIevLn1QgO1degPZWTftLOhFYnqVvvr6nvy/e+d57fIFJxvQbg==}
peerDependencies:
react: '>=19.2.8'
'@hanzo/[email protected]':
resolution: {integrity: sha512-y5m+n8uAtCnTfoa2LO2QRLvv1U/cGa/s3a2624+bWxKPL3b8Vnfp4psgMXp/jdVEDxHberPidKl3jWuzTO9lqg==}
peerDependencies:
'@hanzo/gui': '>=8.3.1'
react: '>=19.2.8'
@@ -559,14 +594,29 @@ packages:
react-native:
optional: true
'@hanzo/[email protected]':
resolution: {integrity: sha512-gUEql7ZteyNIkxdX9G44plCNYMNppdU3K9s9uc3IBtwdMjCS6iRM7Z7EP9aOtZm8LqPnAJU9l7IRYYFKhG9cRQ==}
'@hanzo/[email protected]':
resolution: {integrity: sha512-ezz3JEC+5QO4LywK02o24i0CuHZ+askwT4Dmvd+BrXZsJs/Eyw3Xu/EPEZLpZY0cZ5+8sIYO07jUOaWTU3nfAw==}
hasBin: true
peerDependencies:
react: ^18.0.0 || ^19.0.0
react: '>=18'
peerDependenciesMeta:
react:
optional: true
'@hanzo/[email protected]':
resolution: {integrity: sha512-Phqf4boBMsXpLiABIVGM9DR+xlr0QPkl1yLvuWd7VS0UALeCUUz+Ce2dkkKNsqe2EpLgbiYzaYEmtguY0Tk0Sw==}
peerDependencies:
'@hanzo/gui': '>=7.2.2'
react: '>=19'
'@hanzo/[email protected]':
resolution: {integrity: sha512-pp+XH+3FmNFP5daQmXTlwMvpJk7NcM3oUS15OlFvxTw7KkzA4+fWr+r7ytqblvU0XwT0QMdiBabIQkh7cc2z5Q==}
hasBin: true
'@hanzo/[email protected]':
resolution: {integrity: sha512-IODMkUcDy3G/lIbu4GyWoJF1dlWV33SVCTsIKXo21cKhmqSNZZGYXSdQotU5QDeA3NU2sAaB8j8/1Vj3iYFLaA==}
hasBin: true
'@hanzo/[email protected]':
resolution: {integrity: sha512-U3A2v3lbQbWFrzwb471FnaoFQVvbMWvPpdI2IipQpl3xyyza7bBbbNeDkREnd/ecixuaXpKZeP+FPSCk1fD8og==}
peerDependencies:
@@ -575,8 +625,8 @@ packages:
react:
optional: true
'@hanzo/[email protected].41':
resolution: {integrity: sha512-xchy5iI06LFJhOwV7VyhFmweyGp5D41DzJNJopP13qZX/jI7K914EZngceI+6cQIU0BPMEEeWFObkZWJDKtG+g==}
'@hanzo/[email protected].57':
resolution: {integrity: sha512-hAZeArXvH0C1MsRm7nbDDU58xAzEXBEDczAgh1IshTpvGNfsUcfEcU4dJUtYog2CtjU0nPZXJ+aB9PE1j2l+mA==}
peerDependencies:
react: '>=19.2.8'
peerDependenciesMeta:
@@ -586,6 +636,14 @@ packages:
'@hanzo/[email protected]':
resolution: {integrity: sha512-jF800OFibLfnuEqMJUpTyLIs4fmezzXFKGGUPAHjK40FrTWsiAb4j3j1N5sbqBLAv5Ty7FA56dOo67Y+kUSqyA==}
'@hanzo/[email protected]':
resolution: {integrity: sha512-eGK1MTi5tW/luXhddLwrcyK8fq+GE41u/80oIjEKzxHGCfUs8LATiDAGCZ3dYM4D5sxiUS7x8BG2hGuD2gnIUA==}
'@hanzo/[email protected]':
resolution: {integrity: sha512-CXKXhfRgAj9SnhRJtraS6jEToGz74hbrMSJm85Kp8y6uN64zOH+IvohpWT/Surh9Qn1KWIGXsIx216JMa++X6A==}
peerDependencies:
next: '>=13.2.0'
'@hanzo/[email protected]':
resolution: {integrity: sha512-PVCyIFMp/wBVfLsWczVWC3VVxbUzlTDwc/LBRgyT6Fizk09aACq8ByRmbJp0FGKVd1BbUDeekvfv0g1eoj4OvQ==}
peerDependencies:
@@ -597,6 +655,14 @@ packages:
peerDependencies:
react: '>=19.2.8'
'@hanzo/[email protected]':
resolution: {integrity: sha512-acPRsdTD/pfsDLUias989cDZCCg4Q9rCCrlOWVqlAzcN7xyoi3Vl4DjM7Z+feOL5SDPxWY1M0hJn9B1xqGjK4g==}
peerDependencies:
react: '>=16.8.0'
peerDependenciesMeta:
react:
optional: true
'@hanzo/[email protected]':
resolution: {integrity: sha512-PsCE+qaZdmXZVtkCJXFoDbTr5jJZuxctAEPOVk8LyvnRxfjPUVGW03Phu6N2OWyLDwyq0g4voySkO2h3tQzmYA==}
peerDependencies:
@@ -605,6 +671,68 @@ packages:
react:
optional: true
'@hanzo/[email protected]':
resolution: {integrity: sha512-Y03ewQNDZdr29HWZAvYLHoYenU0I5XzZZ/VTGObkmL39HWSGqwAxzslFDEH2ABOCLl9Pe2P/LsL8hzpWX9hYUw==}
peerDependencies:
'@hanzogui/lucide-icons-2': '>=7'
react: '>=18'
peerDependenciesMeta:
'@hanzogui/lucide-icons-2':
optional: true
react:
optional: true
'@hanzo/[email protected]':
resolution: {integrity: sha512-S5gxELV/Tp2pm81SQUD6YXTcyB+o7GufbJdsi5iVZjIHs+/KRwljR6cqaxd+pjTO99d+VeP7Yb2iPIJVbtE7Jg==}
peerDependencies:
'@hanzo/canvas': '>=0.2.3'
'@hanzo/cd': '>=0.1.2'
'@hanzo/dashboard': '>=0.2.0'
'@hanzo/data': '>=1.2.4'
'@hanzo/event': '>=0.3.52'
'@hanzo/gui': ^8.3.5
'@hanzo/iam': '>=0.21.26'
'@hanzo/pay': '>=0.1.1'
'@hanzo/plans': '>=1.8.1'
'@hanzo/usage': '>=0.1.13'
'@hanzogui/animations-css': ^8.3.5
'@hanzogui/config': ^8.3.5
'@hanzogui/lucide-icons-2': ^8.3.5
'@hanzogui/next-theme': ^8.3.5
'@hanzogui/shell': ^8.3.5
'@hanzogui/telemetry': ^8.3.5
'@hanzogui/toast': ^8.3.5
next: '>=16.3.3'
next-themes: '>=0'
react: '>=19.2.8'
react-dom: '>=19.2.8'
react-hook-form: '>=7'
peerDependenciesMeta:
'@hanzo/canvas':
optional: true
'@hanzo/cd':
optional: true
'@hanzo/dashboard':
optional: true
'@hanzo/event':
optional: true
'@hanzo/iam':
optional: true
'@hanzo/pay':
optional: true
'@hanzo/plans':
optional: true
'@hanzo/usage':
optional: true
'@hanzogui/next-theme':
optional: true
'@hanzogui/shell':
optional: true
next:
optional: true
next-themes:
optional: true
'@hanzogui/[email protected]':
resolution: {integrity: sha512-w1m3dGC8TYG9Nrile3ltON1smpa1B1MAB7aQY+UlX93OtMOl6BvaDXzK6VfFqvV7P+6qGfMqZOkvujCAomvREA==}
peerDependencies:
@@ -822,6 +950,11 @@ packages:
peerDependencies:
react: '>=19.2.8'
'@hanzogui/[email protected]':
resolution: {integrity: sha512-52oKf1kwbr5iVv7kC6/Mumm+VibX8Ak1N8DHPBFtl8TKj8Ky+dCWeOoM4kRbNhBMWII+PgPmr74f5gNC/Yc2yA==}
peerDependencies:
react: '>=19.2.8'
'@hanzogui/[email protected]':
resolution: {integrity: sha512-PtBkXCU/VwNg0D7hZYqa5ATfAnCfX4+DZJNRJheUnnTpxNaB0Ybl7YLK+iyzQjzJZRAQuWqX5rFFZuXZHogd3A==}
peerDependencies:
@@ -857,6 +990,12 @@ packages:
peerDependencies:
react: '>=19.2.8'
'@hanzogui/[email protected]':
resolution: {integrity: sha512-BExY/IGmdqDNxr1hhIKVvi7sX72GDygig6YizFAArxv5JbbWqAn7fqiR3TvQjwIRQnzBXBbxUj0wPUxEtX5ApQ==}
peerDependencies:
react: '>=19.2.8'
react-native-svg: '>=12'
'@hanzogui/[email protected]':
resolution: {integrity: sha512-md93k9pyNkB0yUPZOcgIsEOJNIcieYIIi7mw9/FO36XGoJgPERjgTN0B4t4xXPtqDKbXbUwolofOAATIbhyc7g==}
peerDependencies:
@@ -1132,6 +1271,11 @@ packages:
peerDependencies:
react: '>=19.2.8'
'@icons-pack/[email protected]':
resolution: {integrity: sha512-S35E7vJlJzMeoqjwwI7ZmQUJ2W+2KspnB6bc49KdoDGwp5mCgAy9L3sscfWMewQSMgBdPU8KWWwpSGq5DJyAFw==}
peerDependencies:
react: ^16.13 || ^17 || ^18 || ^19
'@img/[email protected]':
resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
engines: {node: '>=18'}
@@ -1309,6 +1453,21 @@ packages:
'@jridgewell/[email protected]':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
'@lezer/[email protected]':
resolution: {integrity: sha512-H0iErY4e43LpXbYDyBci5W4v/RwTgGV3YzYOlJPiGZ8RY8w51kVE+xLn1tg3Z6UmSfyETvtsUK3r7YsgDQEI7Q==}
'@lezer/[email protected]':
resolution: {integrity: sha512-O1GMVKgtf5YspFaRzpmqkVgMtIk2HG9uMAbH6wdAIdNh3TVzCsch/+cRi+6l2//UGDKe6NB9BW3cvuR5ezMQ0w==}
'@lezer/[email protected]':
resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==}
'@lezer/[email protected]':
resolution: {integrity: sha512-UwgZcl1R66H2hDzBrA7kWyYmX6s8p5TQ+e/t7CuvgCtBEPxbEPaHYHu+pJBvTvDotEJpuQkJjbXuHiw5Cixxgw==}
'@marijn/[email protected]':
resolution: {integrity: sha512-Wy0V7+SGUjnF9/TkiM1hKVDPj7jKXduPNboMVtHTA8dySMURWqfg/JZ9E2Sq8JgSJmkl7k7Qe9FLeMSrSraWmQ==}
'@next/[email protected]':
resolution: {integrity: sha512-x9Vblze1EbtltQYnNH38xCPWU3TVfBd1eXqA3+w9+BTpedkkdNpAaltXlGQ/nsc1+E0mVTNrtcbX3GoO09zeLQ==}
@@ -1694,6 +1853,9 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
[email protected]:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
[email protected]:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
@@ -1769,6 +1931,9 @@ packages:
[email protected]:
resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==}
[email protected]:
resolution: {integrity: sha512-aK6BbWfhf4U/wCcLHKPJl/xa6VkVstRaPywWtMKGwuOLc/wZTyQYuoxgvZnNsBvv7Kg3YTBQYYBCggcviQczuA==}
[email protected]:
resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==}
@@ -1779,6 +1944,17 @@ packages:
[email protected]:
resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==}
[email protected]:
resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==}
[email protected]:
resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
engines: {node: '>=8.0.0'}
[email protected]:
resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==}
engines: {node: '>= 6'}
[email protected]:
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
@@ -1811,6 +1987,19 @@ packages:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
[email protected]:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
[email protected]:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
[email protected]:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
engines: {node: '>= 4'}
[email protected]:
resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
[email protected]:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -1828,6 +2017,10 @@ packages:
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
engines: {node: '>= 0.8'}
[email protected]:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
[email protected]:
resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
@@ -2130,6 +2323,9 @@ packages:
[email protected]:
resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==}
[email protected]:
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
[email protected]:
resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
@@ -2288,6 +2484,9 @@ packages:
resolution: {integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==}
engines: {node: '>=18'}
[email protected]:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
[email protected]:
resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
@@ -2375,6 +2574,16 @@ packages:
peerDependencies:
react: '>=17.0.0'
[email protected]:
resolution: {integrity: sha512-+NdG0FLzCPhFOp2NNxaUYLF9fyZhNjx9FTBBSYWF71/l6BBlmIc/j6xlp3DbaHWLJbIG7Zd8oznA19xJClU97w==}
engines: {node: '>=18.0.0'}
peerDependencies:
'@types/react': '*'
react: ^16.8.0 || ^17 || ^18 || ^19
peerDependenciesMeta:
'@types/react':
optional: true
[email protected]:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
@@ -2391,6 +2600,12 @@ packages:
react-native: 0.83 - 0.86
react-native-worklets: 0.10.x - 0.11.x
[email protected]:
resolution: {integrity: sha512-uh8yktufYeRU3W9Omi8+SPyLF9BVN4JmLflSgc9oOcKkSKk/S5JUmmTjKZq/L8GHfQUtCvcu/W6X4xhEfBBAjQ==}
peerDependencies:
react: '*'
react-native: '*'
[email protected]:
resolution: {integrity: sha512-ozvZM0z8UWfduoKnYx03KUccM2LdHNaW8nNJu4Md0glyqWL+Ysa6dRZzMOO6Yp/hhTYT9yluwjknpd9l04uvDw==}
peerDependencies:
@@ -2564,6 +2779,9 @@ packages:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
[email protected]:
resolution: {integrity: sha512-XXWIQt633/EpAFx8aZDOTjBzrCaGmhvEQlQo6MVPfa2OzO2cWo+4hV9h+6UkHYlXGfy+ODXKUdP7Pthmcu5ATw==}
[email protected]:
resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines: {node: '>= 12.0.0'}
@@ -2701,6 +2919,9 @@ packages:
[email protected]:
resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==}
[email protected]:
resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
[email protected]:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
@@ -3179,6 +3400,41 @@ snapshots:
'@babel/helper-string-parser': 7.29.7
'@babel/helper-validator-identifier': 7.29.7
'@codemirror/[email protected]':
dependencies:
'@codemirror/language': 6.13.1
'@codemirror/state': 6.7.6
'@codemirror/view': 6.43.14
'@lezer/common': 1.5.3
'@codemirror/[email protected]':
dependencies:
'@codemirror/language': 6.13.1
'@lezer/json': 1.0.3
'@codemirror/[email protected]':
dependencies:
'@codemirror/state': 6.7.6
'@codemirror/streamparser': 6.0.0
'@codemirror/view': 6.43.14
'@lezer/common': 1.5.3
'@lezer/highlight': 1.2.5
'@lezer/lr': 1.4.11
style-mod: 4.1.4
'@codemirror/[email protected]':
dependencies:
'@marijn/find-cluster-break': 1.0.4
'@codemirror/[email protected]': {}
'@codemirror/[email protected]':
dependencies:
'@codemirror/state': 6.7.6
crelt: 1.0.7
style-mod: 4.1.4
w3c-keyname: 2.2.8
'@emnapi/[email protected]':
dependencies:
tslib: 2.8.1
@@ -3276,31 +3532,57 @@ snapshots:
'@floating-ui/[email protected]': {}
'@hanzo/[email protected](@hanzo/[email protected]([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])':
'@hanzo/[email protected]([email protected])':
dependencies:
'@hanzo/design': 0.5.33
react: 19.2.8
'@hanzo/[email protected](@hanzo/[email protected]([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])':
dependencies:
'@hanzo/gui': 8.3.5([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])
react: 19.2.8
optionalDependencies:
react-native: 0.86.0(@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected])
'@hanzo/[email protected]([email protected])':
'@hanzo/[email protected]([email protected])':
dependencies:
'@hanzo/logo': 1.0.26([email protected])
optionalDependencies:
react: 19.2.8
'@hanzo/[email protected](@hanzo/[email protected]([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected])':
dependencies:
'@hanzo/gui': 8.3.5([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])
'@hanzogui/lucide-icons-2': 8.3.5([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected])
react: 19.2.8
transitivePeerDependencies:
- react-dom
- react-native-svg
'@hanzo/[email protected]': {}
'@hanzo/[email protected]': {}
'@hanzo/[email protected]([email protected])':
dependencies:
'@hanzo/events': 0.2.2
optionalDependencies:
react: 19.2.8
'@hanzo/[email protected].41([email protected])':
'@hanzo/[email protected].57([email protected])':
dependencies:
'@hanzo/events': 0.2.2
'@hanzo/events': 0.3.1
optionalDependencies:
react: 19.2.8
'@hanzo/[email protected]': {}
'@hanzo/[email protected]': {}
'@hanzo/[email protected]([email protected](@babel/[email protected])(@types/[email protected])([email protected])([email protected]([email protected]))([email protected]))':
dependencies:
next: 16.3.6(@babel/[email protected])(@types/[email protected])([email protected])([email protected]([email protected]))([email protected])
'@hanzo/[email protected]([email protected](@babel/[email protected])(@types/[email protected])([email protected])([email protected]([email protected]))([email protected]))':
dependencies:
next: 16.3.6(@babel/[email protected])(@types/[email protected])([email protected])([email protected]([email protected]))([email protected])
@@ -3377,12 +3659,55 @@ snapshots:
- react-dom
- react-native
'@hanzo/[email protected]([email protected])':
optionalDependencies:
react: 19.2.8
'@hanzo/[email protected]([email protected])':
dependencies:
'@hanzo/event': 0.3.39([email protected])
optionalDependencies:
react: 19.2.8
'@hanzo/[email protected](@hanzogui/[email protected]([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected]))([email protected])':
optionalDependencies:
'@hanzogui/lucide-icons-2': 8.3.5([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected])
react: 19.2.8
'@hanzo/[email protected](bo3p4ypxyuvr73h5p2f6vyzt54)':
dependencies:
'@codemirror/commands': 6.11.1
'@codemirror/lang-json': 6.0.2
'@codemirror/language': 6.13.1
'@codemirror/state': 6.7.6
'@codemirror/view': 6.43.14
'@hanzo/appearance': 0.2.7([email protected])
'@hanzo/brand': 1.4.8([email protected])
'@hanzo/data': 1.2.4(@hanzo/[email protected]([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected])
'@hanzo/design': 0.5.35
'@hanzo/font': 1.9.2([email protected](@babel/[email protected])(@types/[email protected])([email protected])([email protected]([email protected]))([email protected]))
'@hanzo/gui': 8.3.5([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])
'@hanzo/logo': 1.0.26([email protected])
'@hanzo/products': 0.2.6(@hanzogui/[email protected]([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected]))([email protected])
'@hanzogui/animations-css': 8.3.5([email protected]([email protected]))([email protected])
'@hanzogui/config': 8.3.5([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected])
'@hanzogui/lucide-icons-2': 8.3.5([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected])
'@hanzogui/telemetry': 8.3.5([email protected])
'@hanzogui/toast': 8.3.5([email protected]([email protected]))([email protected])
'@icons-pack/react-simple-icons': 13.15.1([email protected])
'@lezer/highlight': 1.2.5
react: 19.2.8
react-dom: 19.2.8([email protected])
react-hook-form: 7.90.0(@types/[email protected])([email protected])
react-native-svg: 15.16.0([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])
react-native-web: 0.21.3([email protected]([email protected]))([email protected])
optionalDependencies:
'@hanzo/event': 0.3.57([email protected])
next: 16.3.6(@babel/[email protected])(@types/[email protected])([email protected])([email protected]([email protected]))([email protected])
transitivePeerDependencies:
- encoding
- react-native
'@hanzogui/[email protected]([email protected]([email protected]))([email protected])':
dependencies:
'@hanzogui/collapsible': 8.3.5([email protected]([email protected]))([email protected])
@@ -3862,6 +4187,14 @@ snapshots:
transitivePeerDependencies:
- react-dom
'@hanzogui/[email protected]([email protected]([email protected]))([email protected])':
dependencies:
'@hanzogui/core': 8.3.5([email protected]([email protected]))([email protected])
'@hanzogui/sizable-context': 8.3.5([email protected]([email protected]))([email protected])
react: 19.2.8
transitivePeerDependencies:
- react-dom
'@hanzogui/[email protected]([email protected])':
dependencies:
'@hanzogui/constants': 8.3.5([email protected])
@@ -3937,6 +4270,15 @@ snapshots:
transitivePeerDependencies:
- react-dom
'@hanzogui/[email protected]([email protected]([email protected]))([email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]))([email protected])':
dependencies:
'@hanzogui/core': 8.3.5([email protected]([email protected]))([email protected])
'@hanzogui/helpers-icon': 8.3.5([email protected]([email protected]))([email protected])
react: 19.2.8
react-native-svg: 15.16.0([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])
transitivePeerDependencies:
- react-dom
'@hanzogui/[email protected]([email protected]([email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])':
dependencies:
'@hanzogui/core': 8.3.5([email protected]([email protected]))([email protected])
@@ -4297,7 +4639,7 @@ snapshots:
'@hanzogui/[email protected]([email protected])':
dependencies:
'@hanzo/event': 0.3.41([email protected])
'@hanzo/event': 0.3.57([email protected])
'@hanzo/observe': 0.1.11([email protected])
react: 19.2.8
@@ -4501,6 +4843,10 @@ snapshots:
dependencies:
react: 19.2.8
'@icons-pack/[email protected]([email protected])':
dependencies:
react: 19.2.8
'@img/[email protected]':
optional: true
@@ -4647,6 +4993,24 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
'@lezer/[email protected]': {}
'@lezer/[email protected]':
dependencies:
'@lezer/common': 1.5.3
'@lezer/[email protected]':
dependencies:
'@lezer/common': 1.5.3
'@lezer/highlight': 1.2.5
'@lezer/lr': 1.4.11
'@lezer/[email protected]':
dependencies:
'@lezer/common': 1.5.3
'@marijn/[email protected]': {}
'@next/[email protected]': {}
'@next/[email protected]':
@@ -5029,6 +5393,8 @@ snapshots:
[email protected]: {}
[email protected]: {}
[email protected]:
dependencies:
fill-range: 7.1.1
@@ -5114,6 +5480,8 @@ snapshots:
dependencies:
browserslist: 4.28.7
[email protected]: {}
[email protected]:
dependencies:
node-fetch: 2.7.0
@@ -5130,6 +5498,21 @@ snapshots:
dependencies:
hyphenate-style-name: 1.1.0
[email protected]:
dependencies:
boolbase: 1.0.0
css-what: 6.2.2
domhandler: 5.0.3
domutils: 3.2.2
nth-check: 2.1.1
[email protected]:
dependencies:
mdn-data: 2.0.14
source-map: 0.6.1
[email protected]: {}
[email protected]: {}
[email protected]:
@@ -5147,6 +5530,24 @@ snapshots:
[email protected]:
optional: true
[email protected]:
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
entities: 4.5.0
[email protected]: {}
[email protected]:
dependencies:
domelementtype: 2.3.0
[email protected]:
dependencies:
dom-serializer: 2.0.0
domelementtype: 2.3.0
domhandler: 5.0.3
[email protected]: {}
[email protected]: {}
@@ -5157,6 +5558,8 @@ snapshots:
[email protected]: {}
[email protected]: {}
[email protected]:
dependencies:
stackframe: 1.3.4
@@ -5444,6 +5847,8 @@ snapshots:
[email protected]: {}
[email protected]: {}
[email protected]: {}
[email protected]: {}
@@ -5695,6 +6100,10 @@ snapshots:
[email protected]: {}
[email protected]:
dependencies:
boolbase: 1.0.0
[email protected]: {}
[email protected]:
@@ -5779,6 +6188,12 @@ snapshots:
dependencies:
react: 19.2.8
[email protected](@types/[email protected])([email protected]):
dependencies:
react: 19.2.8
optionalDependencies:
'@types/react': 19.3.0
[email protected]: {}
[email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]):
@@ -5794,6 +6209,13 @@ snapshots:
react-native-worklets: 0.10.2(@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected])
semver: 7.8.5
[email protected]([email protected](@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected]))([email protected]):
dependencies:
css-select: 5.2.2
css-tree: 1.1.3
react: 19.2.8
react-native: 0.86.0(@babel/[email protected])(@react-native/[email protected](@babel/[email protected]))(@types/[email protected])([email protected])
[email protected]([email protected]([email protected]))([email protected]):
dependencies:
'@babel/runtime': 7.29.7
@@ -6066,6 +6488,8 @@ snapshots:
dependencies:
ansi-regex: 5.0.1
[email protected]: {}
[email protected](@babel/[email protected])([email protected]):
dependencies:
client-only: 0.0.1
@@ -6153,6 +6577,8 @@ snapshots:
[email protected]: {}
[email protected]: {}
[email protected]:
dependencies:
makeerror: 1.0.12