@togo-framework/ui 0.1.2 → 0.1.4

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/index.js CHANGED
@@ -15891,6 +15891,381 @@ function CodeShowcase({ tabs, className }) {
15891
15891
  ] });
15892
15892
  }
15893
15893
  CodeShowcase.displayName = "CodeShowcase";
15894
+
15895
+ // src/components/marketing/Glass.tsx
15896
+ import * as React29 from "react";
15897
+ import { jsx as jsx98, jsxs as jsxs86 } from "react/jsx-runtime";
15898
+ var DISPLAY2 = { fontFamily: '"Sora", var(--togo-font-body, ui-sans-serif, system-ui, sans-serif)' };
15899
+ function AuroraBackground({ className, intensity = 1, style, ...rest }) {
15900
+ return /* @__PURE__ */ jsxs86("div", { "aria-hidden": true, className: cn("pointer-events-none absolute inset-0 -z-10 overflow-hidden", className), style, ...rest, children: [
15901
+ /* @__PURE__ */ jsx98("style", { children: `
15902
+ @keyframes tg-aurora-a { 0%,100%{transform:translate3d(-6%,-4%,0) scale(1)} 50%{transform:translate3d(8%,6%,0) scale(1.15)} }
15903
+ @keyframes tg-aurora-b { 0%,100%{transform:translate3d(6%,8%,0) scale(1.1)} 50%{transform:translate3d(-8%,-6%,0) scale(.95)} }
15904
+ @keyframes tg-aurora-c { 0%,100%{transform:translate3d(0,0,0) scale(1.05)} 50%{transform:translate3d(-10%,4%,0) scale(1.2)} }
15905
+ .tg-orb{position:absolute;border-radius:9999px;filter:blur(70px);opacity:${0.5 * intensity};mix-blend-mode:screen}
15906
+ @media (prefers-reduced-motion: reduce){ .tg-orb{animation:none!important} }
15907
+ ` }),
15908
+ /* @__PURE__ */ jsx98("div", { className: "tg-orb", style: { width: "46vw", height: "46vw", top: "-12%", left: "8%", background: "radial-gradient(circle, #1FC7DC, transparent 65%)", animation: "tg-aurora-a 22s ease-in-out infinite" } }),
15909
+ /* @__PURE__ */ jsx98("div", { className: "tg-orb", style: { width: "50vw", height: "50vw", top: "-18%", right: "2%", background: "radial-gradient(circle, #2D8CE6, transparent 65%)", animation: "tg-aurora-b 26s ease-in-out infinite" } }),
15910
+ /* @__PURE__ */ jsx98("div", { className: "tg-orb", style: { width: "42vw", height: "42vw", top: "20%", left: "30%", background: "radial-gradient(circle, #1659C8, transparent 68%)", animation: "tg-aurora-c 30s ease-in-out infinite" } }),
15911
+ /* @__PURE__ */ jsx98(
15912
+ "div",
15913
+ {
15914
+ className: "absolute inset-0 opacity-[0.35]",
15915
+ style: {
15916
+ backgroundImage: "linear-gradient(rgba(120,140,160,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(120,140,160,.10) 1px,transparent 1px)",
15917
+ backgroundSize: "56px 56px",
15918
+ maskImage: "radial-gradient(900px 600px at 50% 0%, #000, transparent 80%)",
15919
+ WebkitMaskImage: "radial-gradient(900px 600px at 50% 0%, #000, transparent 80%)"
15920
+ }
15921
+ }
15922
+ )
15923
+ ] });
15924
+ }
15925
+ AuroraBackground.displayName = "AuroraBackground";
15926
+ function GlassCard({ className, elevation = "raised", hover = false, children, ...rest }) {
15927
+ const shadow = elevation === "floating" ? "shadow-[0_30px_80px_-30px_rgba(0,0,0,.7)]" : elevation === "raised" ? "shadow-[0_16px_50px_-24px_rgba(0,0,0,.6)]" : "";
15928
+ return /* @__PURE__ */ jsx98(
15929
+ "div",
15930
+ {
15931
+ className: cn(
15932
+ "relative rounded-2xl border border-white/10 bg-white/[0.04] backdrop-blur-xl",
15933
+ "before:pointer-events-none before:absolute before:inset-0 before:rounded-2xl before:p-px",
15934
+ "before:[background:linear-gradient(140deg,rgba(255,255,255,.18),rgba(255,255,255,0)_40%)]",
15935
+ "before:[mask:linear-gradient(#000,#000)_content-box,linear-gradient(#000,#000)] before:[mask-composite:exclude]",
15936
+ shadow,
15937
+ hover && "transition-transform duration-300 hover:-translate-y-1",
15938
+ className
15939
+ ),
15940
+ ...rest,
15941
+ children
15942
+ }
15943
+ );
15944
+ }
15945
+ GlassCard.displayName = "GlassCard";
15946
+ function Reveal({ className, delayMs = 0, as: Tag = "div", children, style, ...rest }) {
15947
+ const ref = React29.useRef(null);
15948
+ const [state, setState] = React29.useState("static");
15949
+ React29.useEffect(() => {
15950
+ const el = ref.current;
15951
+ if (!el) return;
15952
+ const noMotion = typeof window !== "undefined" && (navigator.webdriver || window.matchMedia?.("(prefers-reduced-motion: reduce)").matches || !("IntersectionObserver" in window));
15953
+ if (noMotion) return;
15954
+ const rect = el.getBoundingClientRect();
15955
+ if (rect.top < window.innerHeight * 0.92 && rect.bottom > 0) {
15956
+ setState("shown");
15957
+ return;
15958
+ }
15959
+ setState("hidden");
15960
+ const io = new IntersectionObserver(
15961
+ (entries) => entries.forEach((e) => {
15962
+ if (e.isIntersecting) {
15963
+ setState("shown");
15964
+ io.disconnect();
15965
+ }
15966
+ }),
15967
+ { threshold: 0.12, rootMargin: "0px 0px -8% 0px" }
15968
+ );
15969
+ io.observe(el);
15970
+ return () => io.disconnect();
15971
+ }, []);
15972
+ const motion = state === "static" ? "" : state === "hidden" ? "opacity-0 translate-y-5" : "opacity-100 translate-y-0";
15973
+ return /* @__PURE__ */ jsx98(
15974
+ Tag,
15975
+ {
15976
+ ref,
15977
+ style: { transitionDelay: `${delayMs}ms`, ...style },
15978
+ className: cn("transition-all duration-[700ms] ease-out will-change-[opacity,transform]", motion, className),
15979
+ ...rest,
15980
+ children
15981
+ }
15982
+ );
15983
+ }
15984
+ Reveal.displayName = "Reveal";
15985
+ function MockupWindow({ className, title, children, ...rest }) {
15986
+ return /* @__PURE__ */ jsxs86(GlassCard, { elevation: "floating", className: cn("overflow-hidden", className), ...rest, children: [
15987
+ /* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-2 px-4 py-3 border-b border-white/10 bg-white/[0.03]", children: [
15988
+ /* @__PURE__ */ jsx98("span", { className: "h-3 w-3 rounded-full bg-[#ff5f57]" }),
15989
+ /* @__PURE__ */ jsx98("span", { className: "h-3 w-3 rounded-full bg-[#febc2e]" }),
15990
+ /* @__PURE__ */ jsx98("span", { className: "h-3 w-3 rounded-full bg-[#28c840]" }),
15991
+ title ? /* @__PURE__ */ jsx98("span", { className: "ms-2 font-mono text-xs text-muted-foreground truncate", children: title }) : null
15992
+ ] }),
15993
+ /* @__PURE__ */ jsx98("div", { className: "bg-[#080b0f]/80", children })
15994
+ ] });
15995
+ }
15996
+ MockupWindow.displayName = "MockupWindow";
15997
+ function PillButton({ className, variant = "flow", size = "lg", children, ...rest }) {
15998
+ const sz = size === "lg" ? "h-[52px] px-7 text-base" : "h-11 px-5 text-sm";
15999
+ const look = variant === "flow" ? "text-white shadow-[0_12px_34px_-10px_rgba(22,89,200,.7)] hover:-translate-y-0.5" : "text-foreground border border-white/15 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.1]";
16000
+ return /* @__PURE__ */ jsx98(
16001
+ "a",
16002
+ {
16003
+ style: variant === "flow" ? { backgroundImage: "linear-gradient(110deg,#1FC7DC,#2D8CE6 50%,#1659C8)", ...DISPLAY2 } : DISPLAY2,
16004
+ className: cn("inline-flex items-center justify-center gap-2 rounded-full font-semibold transition-all duration-200", sz, look, className),
16005
+ ...rest,
16006
+ children
16007
+ }
16008
+ );
16009
+ }
16010
+ PillButton.displayName = "PillButton";
16011
+
16012
+ // src/components/marketing/Marketplace.tsx
16013
+ import * as React30 from "react";
16014
+ import { Search as Search8, Star as Star2, Download as Download2 } from "lucide-react";
16015
+ import { jsx as jsx99, jsxs as jsxs87 } from "react/jsx-runtime";
16016
+ var DISPLAY3 = { fontFamily: '"Sora", var(--togo-font-body, ui-sans-serif, system-ui, sans-serif)' };
16017
+ function MarketplaceCard({
16018
+ name,
16019
+ href,
16020
+ category,
16021
+ categoryColor = "#2D8CE6",
16022
+ icon: Icon,
16023
+ description,
16024
+ author,
16025
+ stars,
16026
+ downloads,
16027
+ enabled,
16028
+ className
16029
+ }) {
16030
+ return /* @__PURE__ */ jsx99("a", { href, className: cn("group block h-full", className), children: /* @__PURE__ */ jsxs87(GlassCard, { hover: true, className: "overflow-hidden h-full flex flex-col p-0", children: [
16031
+ /* @__PURE__ */ jsxs87(
16032
+ "div",
16033
+ {
16034
+ className: "relative h-28 flex items-center justify-center overflow-hidden",
16035
+ style: { background: `radial-gradient(120% 140% at 0% 0%, ${categoryColor}55, transparent 62%), linear-gradient(135deg, ${categoryColor}26, #0b1016)` },
16036
+ children: [
16037
+ /* @__PURE__ */ jsx99("div", { className: "absolute inset-0 opacity-[0.14]", style: { backgroundImage: "radial-gradient(circle at 1px 1px, #fff 1px, transparent 0)", backgroundSize: "16px 16px" } }),
16038
+ Icon && /* @__PURE__ */ jsx99("div", { className: "relative grid place-items-center w-14 h-14 rounded-2xl bg-white/10 backdrop-blur-sm ring-1 ring-white/15 transition-transform duration-300 group-hover:scale-105", children: /* @__PURE__ */ jsx99(Icon, { size: 28, style: { color: "#fff" } }) }),
16039
+ enabled && /* @__PURE__ */ jsx99("span", { className: "absolute top-3 end-3 text-[10px] font-mono px-2 py-0.5 rounded-full bg-black/30 text-emerald-300 ring-1 ring-emerald-400/30", children: "enabled" })
16040
+ ]
16041
+ }
16042
+ ),
16043
+ /* @__PURE__ */ jsxs87("div", { className: "p-5 flex flex-col flex-1", children: [
16044
+ /* @__PURE__ */ jsxs87("div", { className: "flex items-center gap-2", children: [
16045
+ /* @__PURE__ */ jsx99("h3", { style: DISPLAY3, className: "text-[15px] font-bold truncate", children: name }),
16046
+ category && /* @__PURE__ */ jsx99("span", { className: "ms-auto shrink-0 text-[10px] font-mono uppercase tracking-wider px-2 py-0.5 rounded-full border border-white/12 text-muted-foreground", children: category })
16047
+ ] }),
16048
+ /* @__PURE__ */ jsx99("p", { className: "text-[13px] text-muted-foreground mt-1.5 line-clamp-2 flex-1", children: description || "A togo-framework plugin." }),
16049
+ /* @__PURE__ */ jsxs87("div", { className: "flex items-center gap-3 mt-3 text-[11px] text-muted-foreground font-mono", children: [
16050
+ author && /* @__PURE__ */ jsx99("span", { className: "truncate", children: author }),
16051
+ /* @__PURE__ */ jsxs87("span", { className: "ms-auto flex items-center gap-3 shrink-0", children: [
16052
+ typeof stars === "number" && stars > 0 && /* @__PURE__ */ jsxs87("span", { className: "flex items-center gap-1", children: [
16053
+ /* @__PURE__ */ jsx99(Star2, { size: 11 }),
16054
+ " ",
16055
+ stars
16056
+ ] }),
16057
+ typeof downloads === "number" && downloads > 0 && /* @__PURE__ */ jsxs87("span", { className: "flex items-center gap-1", children: [
16058
+ /* @__PURE__ */ jsx99(Download2, { size: 11 }),
16059
+ " ",
16060
+ downloads
16061
+ ] })
16062
+ ] })
16063
+ ] })
16064
+ ] })
16065
+ ] }) });
16066
+ }
16067
+ MarketplaceCard.displayName = "MarketplaceCard";
16068
+ function StatsRow({ stats, className }) {
16069
+ return /* @__PURE__ */ jsx99("div", { className: cn("grid grid-cols-3 gap-3 sm:gap-4", className), children: stats.map((s, i) => /* @__PURE__ */ jsxs87("div", { className: "rounded-2xl border border-white/10 bg-white/[0.04] backdrop-blur-md px-4 sm:px-5 py-4 text-center", children: [
16070
+ /* @__PURE__ */ jsx99("div", { className: "text-[10px] font-mono uppercase tracking-[0.16em] text-muted-foreground/70", children: s.label }),
16071
+ /* @__PURE__ */ jsx99("div", { style: DISPLAY3, className: "text-2xl sm:text-3xl font-bold mt-1", children: s.value })
16072
+ ] }, i)) });
16073
+ }
16074
+ StatsRow.displayName = "StatsRow";
16075
+ function FilterBar({ search, onSearch, chips, active, onChip, sort, searchPlaceholder = "Search plugins\u2026", className }) {
16076
+ return /* @__PURE__ */ jsxs87("div", { className: cn("flex flex-col gap-4", className), children: [
16077
+ /* @__PURE__ */ jsxs87("div", { className: "flex flex-col sm:flex-row gap-3 sm:items-center", children: [
16078
+ /* @__PURE__ */ jsxs87("div", { className: "relative flex-1 min-w-0", children: [
16079
+ /* @__PURE__ */ jsx99(Search8, { size: 15, className: "absolute start-3.5 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none" }),
16080
+ /* @__PURE__ */ jsx99(
16081
+ "input",
16082
+ {
16083
+ value: search,
16084
+ onChange: (e) => onSearch(e.target.value),
16085
+ placeholder: searchPlaceholder,
16086
+ className: "w-full h-11 ps-10 pe-4 rounded-full border border-white/12 bg-white/[0.05] backdrop-blur-md text-sm outline-none focus:border-[color:rgba(31,199,220,.5)] transition-colors"
16087
+ }
16088
+ )
16089
+ ] }),
16090
+ sort && /* @__PURE__ */ jsx99(
16091
+ "select",
16092
+ {
16093
+ value: sort.value,
16094
+ onChange: (e) => sort.onSort(e.target.value),
16095
+ className: "h-11 px-4 rounded-full border border-white/12 bg-white/[0.05] backdrop-blur-md text-sm outline-none cursor-pointer",
16096
+ children: sort.options.map((o) => /* @__PURE__ */ jsx99("option", { value: o.value, className: "bg-[#0b1016]", children: o.label }, o.value))
16097
+ }
16098
+ )
16099
+ ] }),
16100
+ /* @__PURE__ */ jsx99("div", { className: "flex flex-wrap gap-2", children: chips.map((c) => {
16101
+ const on = active === c.value;
16102
+ return /* @__PURE__ */ jsxs87(
16103
+ "button",
16104
+ {
16105
+ onClick: () => onChip(c.value),
16106
+ className: cn(
16107
+ "font-mono text-[12px] px-3.5 py-1.5 rounded-full border transition-colors",
16108
+ on ? "border-[color:rgba(31,199,220,.5)] text-[#5CDDEC] bg-[color:rgba(31,199,220,.08)]" : "border-white/12 text-muted-foreground hover:text-foreground hover:bg-white/[0.05]"
16109
+ ),
16110
+ children: [
16111
+ c.label,
16112
+ typeof c.count === "number" && /* @__PURE__ */ jsxs87("span", { className: "opacity-50", children: [
16113
+ " ",
16114
+ c.count
16115
+ ] })
16116
+ ]
16117
+ },
16118
+ c.value
16119
+ );
16120
+ }) })
16121
+ ] });
16122
+ }
16123
+ FilterBar.displayName = "FilterBar";
16124
+ function Pager({ page, pages, onPage, className }) {
16125
+ if (pages <= 1) return null;
16126
+ const nums = Array.from({ length: pages }, (_, i) => i + 1).filter((n) => n === 1 || n === pages || Math.abs(n - page) <= 1);
16127
+ const btn = "min-w-9 h-9 px-2 rounded-full border text-sm font-mono transition-colors";
16128
+ return /* @__PURE__ */ jsxs87("div", { className: cn("flex items-center justify-center gap-1.5", className), children: [
16129
+ /* @__PURE__ */ jsx99("button", { disabled: page <= 1, onClick: () => onPage(page - 1), className: cn(btn, "border-white/12 text-muted-foreground hover:text-foreground disabled:opacity-30"), children: "\u2039" }),
16130
+ nums.map((n, i) => /* @__PURE__ */ jsxs87(React30.Fragment, { children: [
16131
+ i > 0 && n - nums[i - 1] > 1 && /* @__PURE__ */ jsx99("span", { className: "text-muted-foreground/50 px-1", children: "\u2026" }),
16132
+ /* @__PURE__ */ jsx99("button", { onClick: () => onPage(n), className: cn(btn, n === page ? "border-[color:rgba(31,199,220,.5)] text-[#5CDDEC] bg-[color:rgba(31,199,220,.08)]" : "border-white/12 text-muted-foreground hover:text-foreground"), children: n })
16133
+ ] }, n)),
16134
+ /* @__PURE__ */ jsx99("button", { disabled: page >= pages, onClick: () => onPage(page + 1), className: cn(btn, "border-white/12 text-muted-foreground hover:text-foreground disabled:opacity-30"), children: "\u203A" })
16135
+ ] });
16136
+ }
16137
+ Pager.displayName = "Pager";
16138
+
16139
+ // src/components/marketing/Docs.tsx
16140
+ import * as React31 from "react";
16141
+ import { Info as Info3, AlertTriangle as AlertTriangle5, Lightbulb as Lightbulb2, Search as Search9, ChevronRight as ChevronRight9 } from "lucide-react";
16142
+ import { Fragment as Fragment25, jsx as jsx100, jsxs as jsxs88 } from "react/jsx-runtime";
16143
+ var DISPLAY4 = { fontFamily: '"Sora", var(--togo-font-body, ui-sans-serif, system-ui, sans-serif)' };
16144
+ function Callout({ kind = "info", title, children, className }) {
16145
+ const { Icon, c } = {
16146
+ info: { Icon: Info3, c: "#2D8CE6" },
16147
+ warn: { Icon: AlertTriangle5, c: "#f5a623" },
16148
+ tip: { Icon: Lightbulb2, c: "#1FC7DC" },
16149
+ note: { Icon: Info3, c: "#8b97a3" }
16150
+ }[kind];
16151
+ return /* @__PURE__ */ jsxs88("div", { className: cn("rounded-xl border p-4 flex gap-3 my-4", className), style: { borderColor: `${c}40`, background: `${c}12` }, children: [
16152
+ /* @__PURE__ */ jsx100(Icon, { size: 18, style: { color: c }, className: "shrink-0 mt-0.5" }),
16153
+ /* @__PURE__ */ jsxs88("div", { className: "text-sm text-foreground/90 [&>p]:m-0 [&>p]:leading-relaxed", children: [
16154
+ title && /* @__PURE__ */ jsx100("div", { className: "font-semibold mb-1", style: DISPLAY4, children: title }),
16155
+ children
16156
+ ] })
16157
+ ] });
16158
+ }
16159
+ Callout.displayName = "Callout";
16160
+ function DocsSidebar({ groups, activeHref, className, onNavigate }) {
16161
+ return /* @__PURE__ */ jsx100("nav", { className: cn("text-sm", className), children: groups.map((g) => {
16162
+ const hasActive = g.items.some((i) => i.href === activeHref);
16163
+ return /* @__PURE__ */ jsx100(DocsGroup, { group: g, activeHref, defaultOpen: hasActive, onNavigate }, g.label);
16164
+ }) });
16165
+ }
16166
+ function DocsGroup({ group, activeHref, defaultOpen, onNavigate }) {
16167
+ const [open, setOpen] = React31.useState(defaultOpen);
16168
+ return /* @__PURE__ */ jsxs88("div", { className: "mb-1", children: [
16169
+ /* @__PURE__ */ jsxs88("button", { onClick: () => setOpen((o) => !o), className: "w-full flex items-center gap-1.5 px-2 py-1.5 text-[11px] font-mono uppercase tracking-[0.14em] text-muted-foreground/70 hover:text-foreground", children: [
16170
+ /* @__PURE__ */ jsx100(ChevronRight9, { size: 12, className: cn("transition-transform", open && "rotate-90") }),
16171
+ group.label
16172
+ ] }),
16173
+ open && /* @__PURE__ */ jsx100("ul", { className: "mt-0.5 mb-2 ms-3 border-s border-white/10", children: group.items.map((i) => {
16174
+ const on = i.href === activeHref;
16175
+ return /* @__PURE__ */ jsx100("li", { children: /* @__PURE__ */ jsx100(
16176
+ "a",
16177
+ {
16178
+ href: i.href,
16179
+ onClick: onNavigate ? (e) => {
16180
+ e.preventDefault();
16181
+ onNavigate(i.href);
16182
+ } : void 0,
16183
+ className: cn("block ps-3 -ms-px border-s py-1.5 transition-colors", on ? "border-[#1FC7DC] text-[#5CDDEC]" : "border-transparent text-muted-foreground hover:text-foreground"),
16184
+ children: i.label
16185
+ }
16186
+ ) }, i.href);
16187
+ }) })
16188
+ ] });
16189
+ }
16190
+ DocsSidebar.displayName = "DocsSidebar";
16191
+ function DocsTOC({ items, className }) {
16192
+ const [active, setActive] = React31.useState("");
16193
+ React31.useEffect(() => {
16194
+ if (!items.length) return;
16195
+ const obs = new IntersectionObserver(
16196
+ (entries) => {
16197
+ const vis = entries.filter((e) => e.isIntersecting).sort((a, b) => a.boundingClientRect.top - b.boundingClientRect.top);
16198
+ if (vis[0]) setActive(vis[0].target.id);
16199
+ },
16200
+ { rootMargin: "-80px 0px -70% 0px" }
16201
+ );
16202
+ items.forEach((i) => {
16203
+ const el = document.getElementById(i.id);
16204
+ if (el) obs.observe(el);
16205
+ });
16206
+ return () => obs.disconnect();
16207
+ }, [items]);
16208
+ if (!items.length) return null;
16209
+ return /* @__PURE__ */ jsxs88("nav", { className: cn("text-sm", className), children: [
16210
+ /* @__PURE__ */ jsx100("div", { className: "text-[10px] font-mono uppercase tracking-[0.16em] text-muted-foreground/60 mb-3", children: "On this page" }),
16211
+ /* @__PURE__ */ jsx100("ul", { className: "border-s border-white/10", children: items.map((i) => /* @__PURE__ */ jsx100("li", { style: { paddingInlineStart: `${(Math.max(1, i.level) - 1) * 12}px` }, children: /* @__PURE__ */ jsx100("a", { href: `#${i.id}`, className: cn("block ps-3 -ms-px border-s py-1 transition-colors", active === i.id ? "border-[#1FC7DC] text-[#5CDDEC]" : "border-transparent text-muted-foreground hover:text-foreground"), children: i.text }) }, i.id)) })
16212
+ ] });
16213
+ }
16214
+ DocsTOC.displayName = "DocsTOC";
16215
+ function DocsLayout({ sidebar, toc, breadcrumb, topbar, children, className }) {
16216
+ return /* @__PURE__ */ jsxs88("div", { className: cn("mx-auto max-w-7xl px-4 sm:px-6", className), children: [
16217
+ topbar,
16218
+ /* @__PURE__ */ jsxs88("div", { className: "flex gap-8", children: [
16219
+ /* @__PURE__ */ jsx100("aside", { className: "hidden lg:block w-60 shrink-0 sticky top-20 self-start max-h-[calc(100vh-6rem)] overflow-y-auto py-8 pe-2", children: sidebar }),
16220
+ /* @__PURE__ */ jsxs88("main", { className: "min-w-0 flex-1 py-8 max-w-3xl", children: [
16221
+ breadcrumb && /* @__PURE__ */ jsx100("div", { className: "text-[12px] font-mono text-muted-foreground/70 mb-3", children: breadcrumb }),
16222
+ children
16223
+ ] }),
16224
+ toc && /* @__PURE__ */ jsx100("aside", { className: "hidden xl:block w-56 shrink-0 sticky top-20 self-start max-h-[calc(100vh-6rem)] overflow-y-auto py-8", children: toc })
16225
+ ] })
16226
+ ] });
16227
+ }
16228
+ DocsLayout.displayName = "DocsLayout";
16229
+ function CommandPalette({ items, placeholder = "Search docs & plugins\u2026", className }) {
16230
+ const [open, setOpen] = React31.useState(false);
16231
+ const [q, setQ] = React31.useState("");
16232
+ React31.useEffect(() => {
16233
+ const h = (e) => {
16234
+ if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "k") {
16235
+ e.preventDefault();
16236
+ setOpen((o) => !o);
16237
+ }
16238
+ if (e.key === "Escape") setOpen(false);
16239
+ };
16240
+ window.addEventListener("keydown", h);
16241
+ return () => window.removeEventListener("keydown", h);
16242
+ }, []);
16243
+ const results = q ? items.filter((i) => (i.label + " " + (i.sublabel || "")).toLowerCase().includes(q.toLowerCase())).slice(0, 40) : items.slice(0, 24);
16244
+ return /* @__PURE__ */ jsxs88(Fragment25, { children: [
16245
+ /* @__PURE__ */ jsxs88("button", { onClick: () => setOpen(true), className: cn("inline-flex items-center gap-2 h-9 px-3 rounded-full border border-white/12 bg-white/[0.05] text-sm text-muted-foreground hover:text-foreground transition-colors", className), children: [
16246
+ /* @__PURE__ */ jsx100(Search9, { size: 14 }),
16247
+ " ",
16248
+ /* @__PURE__ */ jsx100("span", { className: "hidden sm:inline", children: "Search" }),
16249
+ /* @__PURE__ */ jsx100("kbd", { className: "hidden sm:inline font-mono text-[10px] border border-white/15 rounded px-1 py-0.5", children: "\u2318K" })
16250
+ ] }),
16251
+ open && /* @__PURE__ */ jsx100("div", { className: "fixed inset-0 z-[100] flex items-start justify-center pt-[12vh] bg-black/60 backdrop-blur-sm", onClick: () => setOpen(false), children: /* @__PURE__ */ jsxs88("div", { className: "w-full max-w-xl mx-4 rounded-2xl border border-white/12 bg-[#0b1016]/95 backdrop-blur-xl shadow-[0_30px_80px_-20px_rgba(0,0,0,.8)] overflow-hidden", onClick: (e) => e.stopPropagation(), children: [
16252
+ /* @__PURE__ */ jsxs88("div", { className: "flex items-center gap-3 px-4 border-b border-white/10", children: [
16253
+ /* @__PURE__ */ jsx100(Search9, { size: 16, className: "text-muted-foreground" }),
16254
+ /* @__PURE__ */ jsx100("input", { autoFocus: true, value: q, onChange: (e) => setQ(e.target.value), placeholder, className: "flex-1 h-12 bg-transparent outline-none text-sm" }),
16255
+ /* @__PURE__ */ jsx100("kbd", { className: "font-mono text-[10px] text-muted-foreground border border-white/15 rounded px-1", children: "esc" })
16256
+ ] }),
16257
+ /* @__PURE__ */ jsxs88("ul", { className: "max-h-[50vh] overflow-auto p-2", children: [
16258
+ results.map((r, idx) => /* @__PURE__ */ jsx100("li", { children: /* @__PURE__ */ jsxs88("a", { href: r.href, className: "flex items-center gap-3 px-3 py-2.5 rounded-lg hover:bg-white/[0.06]", children: [
16259
+ /* @__PURE__ */ jsx100("span", { className: "text-sm truncate", children: r.label }),
16260
+ r.sublabel && /* @__PURE__ */ jsx100("span", { className: "text-xs text-muted-foreground truncate min-w-0", children: r.sublabel }),
16261
+ r.group && /* @__PURE__ */ jsx100("span", { className: "ms-auto shrink-0 text-[10px] font-mono uppercase text-muted-foreground/60", children: r.group })
16262
+ ] }) }, idx)),
16263
+ !results.length && /* @__PURE__ */ jsx100("li", { className: "px-3 py-6 text-center text-sm text-muted-foreground", children: "No results." })
16264
+ ] })
16265
+ ] }) })
16266
+ ] });
16267
+ }
16268
+ CommandPalette.displayName = "CommandPalette";
15894
16269
  export {
15895
16270
  Accordion,
15896
16271
  AccordionContent,
@@ -15928,6 +16303,7 @@ export {
15928
16303
  ArtifactTable,
15929
16304
  ArtifactViewer_default as ArtifactViewer,
15930
16305
  AspectRatio,
16306
+ AuroraBackground,
15931
16307
  AuthCard_default as AuthCard,
15932
16308
  AuthErrorAlert_default as AuthErrorAlert,
15933
16309
  AuthFlow_default as AuthFlow,
@@ -15946,6 +16322,7 @@ export {
15946
16322
  BreadcrumbSeparator,
15947
16323
  Button,
15948
16324
  Calendar,
16325
+ Callout,
15949
16326
  Card,
15950
16327
  CardContent,
15951
16328
  CardDescription,
@@ -15980,6 +16357,7 @@ export {
15980
16357
  CommandInputPrimitive,
15981
16358
  CommandItem,
15982
16359
  CommandList,
16360
+ CommandPalette,
15983
16361
  CommandSeparator,
15984
16362
  CommandShortcut,
15985
16363
  ContextMenu,
@@ -16017,6 +16395,9 @@ export {
16017
16395
  DialogTitle,
16018
16396
  DialogTrigger,
16019
16397
  DirectionalArrow,
16398
+ DocsLayout,
16399
+ DocsSidebar,
16400
+ DocsTOC,
16020
16401
  Drawer,
16021
16402
  DrawerClose,
16022
16403
  DrawerContent,
@@ -16053,6 +16434,7 @@ export {
16053
16434
  FeedbackButton,
16054
16435
  FeedbackHub,
16055
16436
  FeedbackWidget,
16437
+ FilterBar,
16056
16438
  ForgotForm_default as ForgotForm,
16057
16439
  Form,
16058
16440
  FormControl,
@@ -16061,6 +16443,7 @@ export {
16061
16443
  FormItem,
16062
16444
  FormLabel,
16063
16445
  FormMessage,
16446
+ GlassCard,
16064
16447
  HoverCard,
16065
16448
  HoverCardContent,
16066
16449
  HoverCardTrigger,
@@ -16090,6 +16473,7 @@ export {
16090
16473
  MarkdownEditor,
16091
16474
  MarkdownRenderer,
16092
16475
  MarkdownTable,
16476
+ MarketplaceCard,
16093
16477
  Menubar,
16094
16478
  MenubarCheckboxItem,
16095
16479
  MenubarContent,
@@ -16107,6 +16491,7 @@ export {
16107
16491
  MenubarSubTrigger,
16108
16492
  MenubarTrigger,
16109
16493
  MiniBarChart,
16494
+ MockupWindow,
16110
16495
  MotorFeedbackLauncher,
16111
16496
  NativeSelect,
16112
16497
  NavigationMenu,
@@ -16122,6 +16507,7 @@ export {
16122
16507
  OTPBoxGroup_default as OTPBoxGroup,
16123
16508
  PIPELINE_STAGES,
16124
16509
  PageHeader,
16510
+ Pager,
16125
16511
  Pagination,
16126
16512
  PaginationContent,
16127
16513
  PaginationEllipsis,
@@ -16132,6 +16518,7 @@ export {
16132
16518
  PasswordInput_default as PasswordInput,
16133
16519
  PasswordLockScreen_default as PasswordLockScreen,
16134
16520
  PasswordStrengthMeter_default as PasswordStrengthMeter,
16521
+ PillButton,
16135
16522
  PluginAppearanceSection,
16136
16523
  PluginCard,
16137
16524
  PluginDetailLayout,
@@ -16151,6 +16538,7 @@ export {
16151
16538
  ResizableHandle,
16152
16539
  ResizablePanel,
16153
16540
  ResizablePanelGroup,
16541
+ Reveal,
16154
16542
  RouteProgress,
16155
16543
  SENTRA_BRAND,
16156
16544
  STEP_FIELD_REGISTRY,
@@ -16212,6 +16600,7 @@ export {
16212
16600
  Slider,
16213
16601
  SourceBadge,
16214
16602
  StatCard,
16603
+ StatsRow,
16215
16604
  StatusBadge,
16216
16605
  StepOptionsDialog,
16217
16606
  StreamingMessage_default as StreamingMessage,