@tangle-network/blueprint-ui 0.1.2 → 0.3.0

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.
@@ -1,327 +0,0 @@
1
- // src/host/resolver.ts
2
- var EXPERIENCE_TIER_LABELS = {
3
- generic: "Protocol fallback",
4
- declarative: "Declarative blueprint UI",
5
- "curated-module": "Curated app module",
6
- "external-app": "External app handoff"
7
- };
8
- var SLUG_POLICY_LABELS = {
9
- reserved: "Reserved slug",
10
- "publisher-scoped": "Publisher-scoped slug",
11
- "public-requested": "Public requested slug"
12
- };
13
- var SURFACE_LABELS = {
14
- "generic-overview": "Generic overview",
15
- "service-explorer": "Service explorer",
16
- "service-console": "Service console",
17
- "actions-panel": "Actions panel",
18
- resources: "Resources",
19
- chat: "Chat",
20
- vaults: "Vaults",
21
- metrics: "Metrics",
22
- permissions: "Permissions"
23
- };
24
- var PUBLISHER_VERIFICATION_LABELS = {
25
- "first-party": "First-party publisher",
26
- verified: "Verified publisher",
27
- unverified: "Unverified publisher"
28
- };
29
- var EXTERNAL_APP_TRUST_LABELS = {
30
- trusted: "Trusted external app",
31
- restricted: "Restricted external app"
32
- };
33
- function buildCanonicalBlueprintSlug(entry) {
34
- if (entry.canonicalSlug) {
35
- return entry.canonicalSlug;
36
- }
37
- if (entry.slugPolicy === "reserved" || !entry.publisher.namespace) {
38
- return entry.slug;
39
- }
40
- return `@${entry.publisher.namespace}/${entry.slug}`;
41
- }
42
- function resolveBlueprintAppView(entry) {
43
- return {
44
- slug: entry.slug,
45
- canonicalSlug: buildCanonicalBlueprintSlug(entry),
46
- blueprintId: entry.blueprintId,
47
- publisher: entry.publisher,
48
- tier: entry.tier,
49
- slugPolicy: entry.slugPolicy,
50
- manifest: entry.manifest,
51
- module: entry.module,
52
- fallbackEnabled: true
53
- };
54
- }
55
- function toBlueprintAppEntry(view) {
56
- return {
57
- slug: view.slug,
58
- canonicalSlug: view.canonicalSlug,
59
- blueprintId: view.blueprintId,
60
- publisher: view.publisher,
61
- tier: view.tier,
62
- slugPolicy: view.slugPolicy,
63
- manifest: view.manifest,
64
- module: view.module
65
- };
66
- }
67
- function getBlueprintExperienceTierLabel(tier) {
68
- return EXPERIENCE_TIER_LABELS[tier];
69
- }
70
- function getBlueprintSlugPolicyLabel(policy) {
71
- return SLUG_POLICY_LABELS[policy];
72
- }
73
- function getBlueprintSurfaceLabel(surface) {
74
- return SURFACE_LABELS[surface];
75
- }
76
- function getBlueprintPublisherVerificationLabel(verification) {
77
- return PUBLISHER_VERIFICATION_LABELS[verification];
78
- }
79
- function getExternalAppTrustLabel(trust) {
80
- return EXTERNAL_APP_TRUST_LABELS[trust];
81
- }
82
- function isVerifiedBlueprintPublisher(publisher) {
83
- return publisher.verification === "first-party" || publisher.verification === "verified";
84
- }
85
- function canPublisherClaimSlug(slug, publisher, reservedSlugs = /* @__PURE__ */ new Set()) {
86
- if (reservedSlugs.has(slug)) {
87
- return false;
88
- }
89
- return publisher?.namespace !== void 0 && publisher.namespace.trim().length > 0 && (publisher.verification === "verified" || publisher.verification === "first-party");
90
- }
91
- function isTrustedExternalAppHost(host, trustedHosts = []) {
92
- const normalizedHost = host.trim().toLowerCase();
93
- return trustedHosts.some(
94
- (trustedHost) => normalizedHost === trustedHost || normalizedHost.endsWith(`.${trustedHost}`)
95
- );
96
- }
97
- function getBlueprintPath(view) {
98
- if (view.tier === "curated-module" || view.tier === "external-app") {
99
- return `/blueprints/${view.canonicalSlug}`;
100
- }
101
- if (view.blueprintId !== void 0) {
102
- return `/blueprints/${view.blueprintId.toString()}`;
103
- }
104
- return `/blueprints/${view.slug}`;
105
- }
106
- function getBlueprintServicePath(view, serviceId) {
107
- if (view.tier === "curated-module" || view.tier === "external-app") {
108
- return `${getBlueprintPath(view)}/${serviceId}`;
109
- }
110
- return `${getBlueprintPath(view)}/services/${serviceId}`;
111
- }
112
- function sanitizeBlueprintSlugPart(value) {
113
- return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").replace(/-{2,}/g, "-");
114
- }
115
- function deriveBlueprintRequestedSlug(blueprint) {
116
- const fromName = sanitizeBlueprintSlugPart(blueprint.name);
117
- if (fromName.length > 0) {
118
- return fromName;
119
- }
120
- const fromAuthor = sanitizeBlueprintSlugPart(blueprint.author);
121
- if (fromAuthor.length > 0) {
122
- return `${fromAuthor}-${blueprint.id.toString()}`;
123
- }
124
- return `blueprint-${blueprint.id.toString()}`;
125
- }
126
-
127
- // src/utils.ts
128
- import { clsx } from "clsx";
129
- import { twMerge } from "tailwind-merge";
130
- function cn(...inputs) {
131
- return twMerge(clsx(inputs));
132
- }
133
-
134
- // src/components/ui/card.tsx
135
- import { jsx } from "react/jsx-runtime";
136
- function Card({ className, ...props }) {
137
- return /* @__PURE__ */ jsx(
138
- "div",
139
- {
140
- "data-slot": "card",
141
- className: cn("glass-card rounded-xl text-bp-elements-textPrimary", className),
142
- ...props
143
- }
144
- );
145
- }
146
- function CardHeader({ className, ...props }) {
147
- return /* @__PURE__ */ jsx("div", { "data-slot": "card-header", className: cn("flex flex-col gap-1.5 p-6", className), ...props });
148
- }
149
- function CardTitle({ className, ...props }) {
150
- return /* @__PURE__ */ jsx("div", { "data-slot": "card-title", className: cn("leading-none font-semibold font-display", className), ...props });
151
- }
152
- function CardDescription({ className, ...props }) {
153
- return /* @__PURE__ */ jsx("div", { "data-slot": "card-description", className: cn("text-bp-elements-textSecondary text-sm", className), ...props });
154
- }
155
- function CardContent({ className, ...props }) {
156
- return /* @__PURE__ */ jsx("div", { "data-slot": "card-content", className: cn("px-6 pb-6", className), ...props });
157
- }
158
- function CardFooter({ className, ...props }) {
159
- return /* @__PURE__ */ jsx("div", { "data-slot": "card-footer", className: cn("flex items-center px-6 pb-6", className), ...props });
160
- }
161
-
162
- // src/components/ui/badge.tsx
163
- import { Slot } from "@radix-ui/react-slot";
164
- import { cva } from "class-variance-authority";
165
- import { jsx as jsx2 } from "react/jsx-runtime";
166
- var badgeVariants = cva(
167
- "inline-flex items-center justify-center rounded-md border px-2.5 py-0.5 text-xs font-semibold font-data uppercase tracking-wider w-fit whitespace-nowrap shrink-0 gap-1 transition-colors",
168
- {
169
- variants: {
170
- variant: {
171
- default: "border-bp-elements-borderColor bg-bp-elements-background-depth-3 text-bp-elements-textPrimary",
172
- secondary: "border-bp-elements-dividerColor bg-bp-elements-background-depth-2 text-bp-elements-textSecondary",
173
- destructive: "border-crimson-500/20 bg-crimson-500/10 text-bp-elements-icon-error",
174
- success: "border-teal-500/20 bg-teal-500/10 text-bp-elements-icon-success",
175
- outline: "text-bp-elements-textPrimary border-bp-elements-borderColor bg-transparent",
176
- accent: "border-violet-500/20 bg-violet-500/10 text-violet-700 dark:text-violet-400",
177
- amber: "border-amber-500/20 bg-amber-500/10 text-amber-700 dark:text-amber-400",
178
- running: "border-teal-500/20 bg-teal-500/10 text-teal-600 dark:text-teal-400",
179
- stopped: "border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400",
180
- cold: "border-blue-500/20 bg-blue-500/10 text-blue-600 dark:text-blue-400"
181
- }
182
- },
183
- defaultVariants: { variant: "default" }
184
- }
185
- );
186
- function Badge({
187
- className,
188
- variant,
189
- asChild = false,
190
- ...props
191
- }) {
192
- const Comp = asChild ? Slot : "span";
193
- return /* @__PURE__ */ jsx2(Comp, { "data-slot": "badge", className: cn(badgeVariants({ variant }), className), ...props });
194
- }
195
-
196
- // src/components/ui/button.tsx
197
- import { Slot as Slot2 } from "@radix-ui/react-slot";
198
- import { cva as cva2 } from "class-variance-authority";
199
- import { jsx as jsx3 } from "react/jsx-runtime";
200
- var buttonVariants = cva2(
201
- 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium font-display transition-all duration-200 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-violet-400/50 focus-visible:ring-offset-2 focus-visible:ring-offset-bp-elements-background-depth-1',
202
- {
203
- variants: {
204
- variant: {
205
- default: "bg-violet-600 text-white font-semibold hover:bg-violet-500 shadow-[0_0_20px_rgba(142,89,255,0.25)] hover:shadow-[0_0_30px_rgba(142,89,255,0.35)]",
206
- destructive: "bg-crimson-500/15 text-crimson-400 border border-crimson-500/20 hover:bg-crimson-500/25 hover:border-crimson-500/30",
207
- outline: "glass glass-hover text-bp-elements-textPrimary",
208
- secondary: "bg-bp-elements-background-depth-3 text-bp-elements-textSecondary border border-bp-elements-borderColor hover:bg-bp-elements-background-depth-4 hover:text-bp-elements-textPrimary",
209
- ghost: "text-bp-elements-textSecondary hover:text-bp-elements-textPrimary hover:bg-bp-elements-item-backgroundHover",
210
- link: "text-violet-700 dark:text-violet-400 underline-offset-4 hover:underline",
211
- success: "bg-teal-600/15 text-teal-400 border border-teal-500/20 hover:bg-teal-600/25"
212
- },
213
- size: {
214
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
215
- sm: "h-8 rounded-md gap-1.5 px-3 text-xs has-[>svg]:px-2.5",
216
- lg: "h-11 rounded-xl px-7 text-base has-[>svg]:px-5",
217
- icon: "size-9",
218
- "icon-sm": "size-8"
219
- }
220
- },
221
- defaultVariants: {
222
- variant: "default",
223
- size: "default"
224
- }
225
- }
226
- );
227
- function Button({
228
- className,
229
- variant = "default",
230
- size = "default",
231
- asChild = false,
232
- ...props
233
- }) {
234
- const Comp = asChild ? Slot2 : "button";
235
- return /* @__PURE__ */ jsx3(
236
- Comp,
237
- {
238
- "data-slot": "button",
239
- className: cn(buttonVariants({ variant, size, className })),
240
- ...props
241
- }
242
- );
243
- }
244
-
245
- // src/host/components/BlueprintHostHero.tsx
246
- import { jsx as jsx4, jsxs } from "react/jsx-runtime";
247
- function BlueprintHostHero({
248
- title,
249
- tagline,
250
- description,
251
- badges = [],
252
- actions = [],
253
- children,
254
- className
255
- }) {
256
- return /* @__PURE__ */ jsxs(Card, { className: cn("rounded-3xl border-bp-elements-borderColor/70 bg-bp-elements-background-depth-2", className), children: [
257
- /* @__PURE__ */ jsxs(CardHeader, { className: "space-y-4", children: [
258
- badges.length > 0 ? /* @__PURE__ */ jsx4("div", { className: "flex flex-wrap gap-2", children: badges.map((badge) => /* @__PURE__ */ jsx4(Badge, { variant: "secondary", children: badge }, badge)) }) : null,
259
- /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
260
- /* @__PURE__ */ jsx4(CardTitle, { className: "text-3xl", children: title }),
261
- tagline ? /* @__PURE__ */ jsx4(CardDescription, { className: "text-base text-bp-elements-textPrimary/80", children: tagline }) : null
262
- ] }),
263
- description ? /* @__PURE__ */ jsx4("p", { className: "max-w-3xl text-sm leading-6 text-bp-elements-textSecondary", children: description }) : null
264
- ] }),
265
- (actions.length > 0 || children) && /* @__PURE__ */ jsxs(CardContent, { className: "space-y-4", children: [
266
- actions.length > 0 ? /* @__PURE__ */ jsx4("div", { className: "flex flex-wrap gap-3", children: actions.map((action) => {
267
- const button = /* @__PURE__ */ jsx4(
268
- Button,
269
- {
270
- variant: action.variant ?? "default",
271
- onClick: action.onClick,
272
- disabled: action.disabled,
273
- children: action.label
274
- },
275
- action.label
276
- );
277
- return action.href ? /* @__PURE__ */ jsx4("a", { href: action.href, children: button }, action.label) : button;
278
- }) }) : null,
279
- children
280
- ] })
281
- ] });
282
- }
283
-
284
- // src/host/components/BlueprintHostPanel.tsx
285
- import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
286
- function BlueprintHostPanel({
287
- title,
288
- children,
289
- className
290
- }) {
291
- return /* @__PURE__ */ jsxs2(Card, { className: cn("rounded-3xl border-bp-elements-borderColor/70 bg-bp-elements-background-depth-2", className), children: [
292
- /* @__PURE__ */ jsx5(CardHeader, { children: /* @__PURE__ */ jsx5(CardTitle, { className: "text-xl", children: title }) }),
293
- /* @__PURE__ */ jsx5(CardContent, { children })
294
- ] });
295
- }
296
-
297
- export {
298
- cn,
299
- buildCanonicalBlueprintSlug,
300
- resolveBlueprintAppView,
301
- toBlueprintAppEntry,
302
- getBlueprintExperienceTierLabel,
303
- getBlueprintSlugPolicyLabel,
304
- getBlueprintSurfaceLabel,
305
- getBlueprintPublisherVerificationLabel,
306
- getExternalAppTrustLabel,
307
- isVerifiedBlueprintPublisher,
308
- canPublisherClaimSlug,
309
- isTrustedExternalAppHost,
310
- getBlueprintPath,
311
- getBlueprintServicePath,
312
- sanitizeBlueprintSlugPart,
313
- deriveBlueprintRequestedSlug,
314
- Card,
315
- CardHeader,
316
- CardTitle,
317
- CardDescription,
318
- CardContent,
319
- CardFooter,
320
- badgeVariants,
321
- Badge,
322
- buttonVariants,
323
- Button,
324
- BlueprintHostHero,
325
- BlueprintHostPanel
326
- };
327
- //# sourceMappingURL=chunk-GD3AZEJL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/host/resolver.ts","../src/utils.ts","../src/components/ui/card.tsx","../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/host/components/BlueprintHostHero.tsx","../src/host/components/BlueprintHostPanel.tsx"],"sourcesContent":["import type {\n BlueprintAppEntry,\n BlueprintAppResolvedView,\n BlueprintExperienceTier,\n BlueprintExternalAppTrust,\n BlueprintPublisher,\n BlueprintPublisherVerification,\n BlueprintSlugPolicy,\n BlueprintUiSurface,\n} from './types';\n\nconst EXPERIENCE_TIER_LABELS: Record<BlueprintExperienceTier, string> = {\n generic: 'Protocol fallback',\n declarative: 'Declarative blueprint UI',\n 'curated-module': 'Curated app module',\n 'external-app': 'External app handoff',\n};\n\nconst SLUG_POLICY_LABELS: Record<BlueprintSlugPolicy, string> = {\n reserved: 'Reserved slug',\n 'publisher-scoped': 'Publisher-scoped slug',\n 'public-requested': 'Public requested slug',\n};\n\nconst SURFACE_LABELS: Record<BlueprintUiSurface, string> = {\n 'generic-overview': 'Generic overview',\n 'service-explorer': 'Service explorer',\n 'service-console': 'Service console',\n 'actions-panel': 'Actions panel',\n resources: 'Resources',\n chat: 'Chat',\n vaults: 'Vaults',\n metrics: 'Metrics',\n permissions: 'Permissions',\n};\n\nconst PUBLISHER_VERIFICATION_LABELS: Record<\n BlueprintPublisherVerification,\n string\n> = {\n 'first-party': 'First-party publisher',\n verified: 'Verified publisher',\n unverified: 'Unverified publisher',\n};\n\nconst EXTERNAL_APP_TRUST_LABELS: Record<BlueprintExternalAppTrust, string> = {\n trusted: 'Trusted external app',\n restricted: 'Restricted external app',\n};\n\nexport function buildCanonicalBlueprintSlug(entry: BlueprintAppEntry): string {\n if (entry.canonicalSlug) {\n return entry.canonicalSlug;\n }\n\n if (entry.slugPolicy === 'reserved' || !entry.publisher.namespace) {\n return entry.slug;\n }\n\n return `@${entry.publisher.namespace}/${entry.slug}`;\n}\n\nexport function resolveBlueprintAppView(\n entry: BlueprintAppEntry,\n): BlueprintAppResolvedView {\n return {\n slug: entry.slug,\n canonicalSlug: buildCanonicalBlueprintSlug(entry),\n blueprintId: entry.blueprintId,\n publisher: entry.publisher,\n tier: entry.tier,\n slugPolicy: entry.slugPolicy,\n manifest: entry.manifest,\n module: entry.module,\n fallbackEnabled: true,\n };\n}\n\nexport function toBlueprintAppEntry(\n view: BlueprintAppResolvedView,\n): BlueprintAppEntry {\n return {\n slug: view.slug,\n canonicalSlug: view.canonicalSlug,\n blueprintId: view.blueprintId,\n publisher: view.publisher,\n tier: view.tier,\n slugPolicy: view.slugPolicy,\n manifest: view.manifest,\n module: view.module,\n };\n}\n\nexport function getBlueprintExperienceTierLabel(\n tier: BlueprintExperienceTier,\n): string {\n return EXPERIENCE_TIER_LABELS[tier];\n}\n\nexport function getBlueprintSlugPolicyLabel(policy: BlueprintSlugPolicy): string {\n return SLUG_POLICY_LABELS[policy];\n}\n\nexport function getBlueprintSurfaceLabel(surface: BlueprintUiSurface): string {\n return SURFACE_LABELS[surface];\n}\n\nexport function getBlueprintPublisherVerificationLabel(\n verification: BlueprintPublisherVerification,\n): string {\n return PUBLISHER_VERIFICATION_LABELS[verification];\n}\n\nexport function getExternalAppTrustLabel(\n trust: BlueprintExternalAppTrust,\n): string {\n return EXTERNAL_APP_TRUST_LABELS[trust];\n}\n\nexport function isVerifiedBlueprintPublisher(\n publisher: BlueprintPublisher,\n): boolean {\n return (\n publisher.verification === 'first-party' ||\n publisher.verification === 'verified'\n );\n}\n\nexport function canPublisherClaimSlug(\n slug: string,\n publisher?: Pick<BlueprintPublisher, 'namespace' | 'verification'>,\n reservedSlugs: Set<string> = new Set(),\n): boolean {\n if (reservedSlugs.has(slug)) {\n return false;\n }\n\n return (\n publisher?.namespace !== undefined &&\n publisher.namespace.trim().length > 0 &&\n (publisher.verification === 'verified' ||\n publisher.verification === 'first-party')\n );\n}\n\nexport function isTrustedExternalAppHost(\n host: string,\n trustedHosts: readonly string[] = [],\n): boolean {\n const normalizedHost = host.trim().toLowerCase();\n\n return trustedHosts.some(\n (trustedHost) =>\n normalizedHost === trustedHost || normalizedHost.endsWith(`.${trustedHost}`),\n );\n}\n\nexport function getBlueprintPath(view: BlueprintAppResolvedView): string {\n if (view.tier === 'curated-module' || view.tier === 'external-app') {\n return `/blueprints/${view.canonicalSlug}`;\n }\n\n if (view.blueprintId !== undefined) {\n return `/blueprints/${view.blueprintId.toString()}`;\n }\n\n return `/blueprints/${view.slug}`;\n}\n\nexport function getBlueprintServicePath(\n view: BlueprintAppResolvedView,\n serviceId: string,\n): string {\n if (view.tier === 'curated-module' || view.tier === 'external-app') {\n return `${getBlueprintPath(view)}/${serviceId}`;\n }\n\n return `${getBlueprintPath(view)}/services/${serviceId}`;\n}\n\nexport function sanitizeBlueprintSlugPart(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .replace(/-{2,}/g, '-');\n}\n\nexport function deriveBlueprintRequestedSlug(\n blueprint: Pick<{ name: string; author: string; id: bigint }, 'name' | 'author' | 'id'>,\n): string {\n const fromName = sanitizeBlueprintSlugPart(blueprint.name);\n if (fromName.length > 0) {\n return fromName;\n }\n\n const fromAuthor = sanitizeBlueprintSlugPart(blueprint.author);\n if (fromAuthor.length > 0) {\n return `${fromAuthor}-${blueprint.id.toString()}`;\n }\n\n return `blueprint-${blueprint.id.toString()}`;\n}\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from 'react';\nimport { cn } from '../../utils';\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card\"\n className={cn('glass-card rounded-xl text-bp-elements-textPrimary', className)}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-header\" className={cn('flex flex-col gap-1.5 p-6', className)} {...props} />;\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-title\" className={cn('leading-none font-semibold font-display', className)} {...props} />;\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-description\" className={cn('text-bp-elements-textSecondary text-sm', className)} {...props} />;\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-content\" className={cn('px-6 pb-6', className)} {...props} />;\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-footer\" className={cn('flex items-center px-6 pb-6', className)} {...props} />;\n}\n\nexport { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter };\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-md border px-2.5 py-0.5 text-xs font-semibold font-data uppercase tracking-wider w-fit whitespace-nowrap shrink-0 gap-1 transition-colors',\n {\n variants: {\n variant: {\n default: 'border-bp-elements-borderColor bg-bp-elements-background-depth-3 text-bp-elements-textPrimary',\n secondary: 'border-bp-elements-dividerColor bg-bp-elements-background-depth-2 text-bp-elements-textSecondary',\n destructive: 'border-crimson-500/20 bg-crimson-500/10 text-bp-elements-icon-error',\n success: 'border-teal-500/20 bg-teal-500/10 text-bp-elements-icon-success',\n outline: 'text-bp-elements-textPrimary border-bp-elements-borderColor bg-transparent',\n accent: 'border-violet-500/20 bg-violet-500/10 text-violet-700 dark:text-violet-400',\n amber: 'border-amber-500/20 bg-amber-500/10 text-amber-700 dark:text-amber-400',\n running: 'border-teal-500/20 bg-teal-500/10 text-teal-600 dark:text-teal-400',\n stopped: 'border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400',\n cold: 'border-blue-500/20 bg-blue-500/10 text-blue-600 dark:text-blue-400',\n },\n },\n defaultVariants: { variant: 'default' },\n },\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<'span'> & VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'span';\n return <Comp data-slot=\"badge\" className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium font-display transition-all duration-200 disabled:pointer-events-none disabled:opacity-40 [&_svg]:pointer-events-none [&_svg:not([class*=\"size-\"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-violet-400/50 focus-visible:ring-offset-2 focus-visible:ring-offset-bp-elements-background-depth-1',\n {\n variants: {\n variant: {\n default:\n 'bg-violet-600 text-white font-semibold hover:bg-violet-500 shadow-[0_0_20px_rgba(142,89,255,0.25)] hover:shadow-[0_0_30px_rgba(142,89,255,0.35)]',\n destructive:\n 'bg-crimson-500/15 text-crimson-400 border border-crimson-500/20 hover:bg-crimson-500/25 hover:border-crimson-500/30',\n outline:\n 'glass glass-hover text-bp-elements-textPrimary',\n secondary:\n 'bg-bp-elements-background-depth-3 text-bp-elements-textSecondary border border-bp-elements-borderColor hover:bg-bp-elements-background-depth-4 hover:text-bp-elements-textPrimary',\n ghost:\n 'text-bp-elements-textSecondary hover:text-bp-elements-textPrimary hover:bg-bp-elements-item-backgroundHover',\n link:\n 'text-violet-700 dark:text-violet-400 underline-offset-4 hover:underline',\n success:\n 'bg-teal-600/15 text-teal-400 border border-teal-500/20 hover:bg-teal-600/25',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 text-xs has-[>svg]:px-2.5',\n lg: 'h-11 rounded-xl px-7 text-base has-[>svg]:px-5',\n icon: 'size-9',\n 'icon-sm': 'size-8',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import * as React from 'react';\nimport { Card, CardContent, CardHeader, CardTitle, CardDescription } from '../../components/ui/card';\nimport { Badge } from '../../components/ui/badge';\nimport { Button } from '../../components/ui/button';\nimport { cn } from '../../utils';\n\ntype Action = {\n label: string;\n href?: string;\n onClick?: () => void;\n variant?: React.ComponentProps<typeof Button>['variant'];\n disabled?: boolean;\n};\n\nexport type BlueprintHostHeroProps = {\n title: string;\n tagline?: string;\n description?: string;\n badges?: string[];\n actions?: Action[];\n children?: React.ReactNode;\n className?: string;\n};\n\nexport function BlueprintHostHero({\n title,\n tagline,\n description,\n badges = [],\n actions = [],\n children,\n className,\n}: BlueprintHostHeroProps) {\n return (\n <Card className={cn('rounded-3xl border-bp-elements-borderColor/70 bg-bp-elements-background-depth-2', className)}>\n <CardHeader className=\"space-y-4\">\n {badges.length > 0 ? (\n <div className=\"flex flex-wrap gap-2\">\n {badges.map((badge) => (\n <Badge key={badge} variant=\"secondary\">\n {badge}\n </Badge>\n ))}\n </div>\n ) : null}\n <div className=\"space-y-2\">\n <CardTitle className=\"text-3xl\">{title}</CardTitle>\n {tagline ? (\n <CardDescription className=\"text-base text-bp-elements-textPrimary/80\">\n {tagline}\n </CardDescription>\n ) : null}\n </div>\n {description ? (\n <p className=\"max-w-3xl text-sm leading-6 text-bp-elements-textSecondary\">\n {description}\n </p>\n ) : null}\n </CardHeader>\n {(actions.length > 0 || children) && (\n <CardContent className=\"space-y-4\">\n {actions.length > 0 ? (\n <div className=\"flex flex-wrap gap-3\">\n {actions.map((action) => {\n const button = (\n <Button\n key={action.label}\n variant={action.variant ?? 'default'}\n onClick={action.onClick}\n disabled={action.disabled}\n >\n {action.label}\n </Button>\n );\n\n return action.href ? (\n <a key={action.label} href={action.href}>\n {button}\n </a>\n ) : (\n button\n );\n })}\n </div>\n ) : null}\n {children}\n </CardContent>\n )}\n </Card>\n );\n}\n","import * as React from 'react';\nimport { Card, CardContent, CardHeader, CardTitle } from '../../components/ui/card';\nimport { cn } from '../../utils';\n\nexport type BlueprintHostPanelProps = {\n title: string;\n children: React.ReactNode;\n className?: string;\n};\n\nexport function BlueprintHostPanel({\n title,\n children,\n className,\n}: BlueprintHostPanelProps) {\n return (\n <Card className={cn('rounded-3xl border-bp-elements-borderColor/70 bg-bp-elements-background-depth-2', className)}>\n <CardHeader>\n <CardTitle className=\"text-xl\">{title}</CardTitle>\n </CardHeader>\n <CardContent>{children}</CardContent>\n </Card>\n );\n}\n"],"mappings":"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","names":["jsx","Slot","cva","jsx","cva","Slot","jsx","jsx","jsxs"]}
package/dist/host.d.ts DELETED
@@ -1,96 +0,0 @@
1
- export { B as BlueprintHostHero, a as BlueprintHostHeroProps, b as BlueprintHostPanel, c as BlueprintHostPanelProps } from './BlueprintHostPanel-6iVEh-f1.js';
2
- import 'react/jsx-runtime';
3
- import 'react';
4
- import 'class-variance-authority/types';
5
- import 'class-variance-authority';
6
-
7
- type BlueprintAppVisibility = 'first-party' | 'third-party';
8
- type BlueprintPublisherVerification = 'first-party' | 'verified' | 'unverified';
9
- type BlueprintExperienceTier = 'generic' | 'declarative' | 'curated-module' | 'external-app';
10
- type BlueprintSlugPolicy = 'reserved' | 'publisher-scoped' | 'public-requested';
11
- type BlueprintUiSurface = 'generic-overview' | 'service-explorer' | 'service-console' | 'actions-panel' | 'resources' | 'chat' | 'vaults' | 'metrics' | 'permissions';
12
- type BlueprintResourceRoute = 'bots' | 'agents' | 'runs' | 'vault' | 'chat' | 'custom';
13
- type BlueprintPermissionScope = 'blueprint' | 'service' | 'resource';
14
- type BlueprintExternalAppMode = 'link' | 'iframe';
15
- type BlueprintExternalAppTrust = 'trusted' | 'restricted';
16
- type BlueprintPublisher = {
17
- label: string;
18
- namespace?: string;
19
- visibility: BlueprintAppVisibility;
20
- verification: BlueprintPublisherVerification;
21
- };
22
- type BlueprintResourceModel = {
23
- serviceNoun: string;
24
- resourceNoun: string;
25
- resourceRoute?: BlueprintResourceRoute;
26
- };
27
- type BlueprintPermissionDescriptor = {
28
- key: string;
29
- label: string;
30
- scope: BlueprintPermissionScope;
31
- description?: string;
32
- };
33
- type BlueprintExternalAppConfig = {
34
- url: string;
35
- mode: BlueprintExternalAppMode;
36
- label?: string;
37
- host: string;
38
- trust: BlueprintExternalAppTrust;
39
- reason?: string;
40
- };
41
- type BlueprintUiManifest = {
42
- displayName: string;
43
- tagline: string;
44
- description: string;
45
- surfaces: BlueprintUiSurface[];
46
- resources: BlueprintResourceModel;
47
- permissions?: BlueprintPermissionDescriptor[];
48
- externalApp?: BlueprintExternalAppConfig;
49
- };
50
- type BlueprintAppModuleBinding = {
51
- moduleId: string;
52
- status: 'active' | 'planned';
53
- };
54
- type BlueprintAppEntry = {
55
- slug: string;
56
- canonicalSlug?: string;
57
- blueprintId?: bigint;
58
- publisher: BlueprintPublisher;
59
- tier: BlueprintExperienceTier;
60
- slugPolicy: BlueprintSlugPolicy;
61
- manifest: BlueprintUiManifest;
62
- module?: BlueprintAppModuleBinding;
63
- };
64
- type BlueprintAppResolvedView = {
65
- slug: string;
66
- canonicalSlug: string;
67
- blueprintId?: bigint;
68
- publisher: BlueprintPublisher;
69
- tier: BlueprintExperienceTier;
70
- slugPolicy: BlueprintSlugPolicy;
71
- manifest: BlueprintUiManifest;
72
- module?: BlueprintAppModuleBinding;
73
- fallbackEnabled: boolean;
74
- };
75
-
76
- declare function buildCanonicalBlueprintSlug(entry: BlueprintAppEntry): string;
77
- declare function resolveBlueprintAppView(entry: BlueprintAppEntry): BlueprintAppResolvedView;
78
- declare function toBlueprintAppEntry(view: BlueprintAppResolvedView): BlueprintAppEntry;
79
- declare function getBlueprintExperienceTierLabel(tier: BlueprintExperienceTier): string;
80
- declare function getBlueprintSlugPolicyLabel(policy: BlueprintSlugPolicy): string;
81
- declare function getBlueprintSurfaceLabel(surface: BlueprintUiSurface): string;
82
- declare function getBlueprintPublisherVerificationLabel(verification: BlueprintPublisherVerification): string;
83
- declare function getExternalAppTrustLabel(trust: BlueprintExternalAppTrust): string;
84
- declare function isVerifiedBlueprintPublisher(publisher: BlueprintPublisher): boolean;
85
- declare function canPublisherClaimSlug(slug: string, publisher?: Pick<BlueprintPublisher, 'namespace' | 'verification'>, reservedSlugs?: Set<string>): boolean;
86
- declare function isTrustedExternalAppHost(host: string, trustedHosts?: readonly string[]): boolean;
87
- declare function getBlueprintPath(view: BlueprintAppResolvedView): string;
88
- declare function getBlueprintServicePath(view: BlueprintAppResolvedView, serviceId: string): string;
89
- declare function sanitizeBlueprintSlugPart(value: string): string;
90
- declare function deriveBlueprintRequestedSlug(blueprint: Pick<{
91
- name: string;
92
- author: string;
93
- id: bigint;
94
- }, 'name' | 'author' | 'id'>): string;
95
-
96
- export { type BlueprintAppEntry, type BlueprintAppModuleBinding, type BlueprintAppResolvedView, type BlueprintAppVisibility, type BlueprintExperienceTier, type BlueprintExternalAppConfig, type BlueprintExternalAppMode, type BlueprintExternalAppTrust, type BlueprintPermissionDescriptor, type BlueprintPermissionScope, type BlueprintPublisher, type BlueprintPublisherVerification, type BlueprintResourceModel, type BlueprintResourceRoute, type BlueprintSlugPolicy, type BlueprintUiManifest, type BlueprintUiSurface, buildCanonicalBlueprintSlug, canPublisherClaimSlug, deriveBlueprintRequestedSlug, getBlueprintExperienceTierLabel, getBlueprintPath, getBlueprintPublisherVerificationLabel, getBlueprintServicePath, getBlueprintSlugPolicyLabel, getBlueprintSurfaceLabel, getExternalAppTrustLabel, isTrustedExternalAppHost, isVerifiedBlueprintPublisher, resolveBlueprintAppView, sanitizeBlueprintSlugPart, toBlueprintAppEntry };
package/dist/host.js DELETED
@@ -1,39 +0,0 @@
1
- import {
2
- BlueprintHostHero,
3
- BlueprintHostPanel,
4
- buildCanonicalBlueprintSlug,
5
- canPublisherClaimSlug,
6
- deriveBlueprintRequestedSlug,
7
- getBlueprintExperienceTierLabel,
8
- getBlueprintPath,
9
- getBlueprintPublisherVerificationLabel,
10
- getBlueprintServicePath,
11
- getBlueprintSlugPolicyLabel,
12
- getBlueprintSurfaceLabel,
13
- getExternalAppTrustLabel,
14
- isTrustedExternalAppHost,
15
- isVerifiedBlueprintPublisher,
16
- resolveBlueprintAppView,
17
- sanitizeBlueprintSlugPart,
18
- toBlueprintAppEntry
19
- } from "./chunk-GD3AZEJL.js";
20
- export {
21
- BlueprintHostHero,
22
- BlueprintHostPanel,
23
- buildCanonicalBlueprintSlug,
24
- canPublisherClaimSlug,
25
- deriveBlueprintRequestedSlug,
26
- getBlueprintExperienceTierLabel,
27
- getBlueprintPath,
28
- getBlueprintPublisherVerificationLabel,
29
- getBlueprintServicePath,
30
- getBlueprintSlugPolicyLabel,
31
- getBlueprintSurfaceLabel,
32
- getExternalAppTrustLabel,
33
- isTrustedExternalAppHost,
34
- isVerifiedBlueprintPublisher,
35
- resolveBlueprintAppView,
36
- sanitizeBlueprintSlugPart,
37
- toBlueprintAppEntry
38
- };
39
- //# sourceMappingURL=host.js.map
package/dist/host.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}