@schemavaults/ui 0.72.3 → 0.74.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.
- package/dist/components/ui/browser-frame/browser-frame.d.ts +101 -0
- package/dist/components/ui/browser-frame/browser-frame.js +115 -0
- package/dist/components/ui/browser-frame/browser-frame.js.map +1 -0
- package/dist/components/ui/browser-frame/index.d.ts +2 -0
- package/dist/components/ui/browser-frame/index.js +2 -0
- package/dist/components/ui/browser-frame/index.js.map +1 -0
- package/dist/components/ui/http-method-badge/http-method-badge-variants.d.ts +6 -0
- package/dist/components/ui/http-method-badge/http-method-badge-variants.js +22 -0
- package/dist/components/ui/http-method-badge/http-method-badge-variants.js.map +1 -0
- package/dist/components/ui/http-method-badge/http-method-badge.d.ts +37 -0
- package/dist/components/ui/http-method-badge/http-method-badge.js +95 -0
- package/dist/components/ui/http-method-badge/http-method-badge.js.map +1 -0
- package/dist/components/ui/http-method-badge/index.d.ts +4 -0
- package/dist/components/ui/http-method-badge/index.js +3 -0
- package/dist/components/ui/http-method-badge/index.js.map +1 -0
- package/dist/components/ui/index.d.ts +4 -0
- package/dist/components/ui/index.js +2 -0
- package/dist/components/ui/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
import type { HTMLAttributes, InputHTMLAttributes, ReactElement, ReactNode, Ref } from "react";
|
|
3
|
+
export declare const browserFrameVariantIds: ["macos", "windows", "minimal"];
|
|
4
|
+
export type BrowserFrameVariantId = (typeof browserFrameVariantIds)[number];
|
|
5
|
+
export declare const browserFrameSizeIds: ["sm", "md", "lg"];
|
|
6
|
+
export type BrowserFrameSizeId = (typeof browserFrameSizeIds)[number];
|
|
7
|
+
declare const browserFrameVariants: (props?: ({
|
|
8
|
+
variant?: "minimal" | "macos" | "windows" | null | undefined;
|
|
9
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
export interface BrowserFrameProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof browserFrameVariants> {
|
|
12
|
+
ref?: Ref<HTMLDivElement>;
|
|
13
|
+
}
|
|
14
|
+
declare function BrowserFrame({ className, variant, size, ref, ...props }: BrowserFrameProps): ReactElement;
|
|
15
|
+
declare namespace BrowserFrame {
|
|
16
|
+
var displayName: string;
|
|
17
|
+
}
|
|
18
|
+
declare const browserFrameHeaderVariants: (props?: ({
|
|
19
|
+
variant?: "minimal" | "macos" | "windows" | null | undefined;
|
|
20
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
21
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
22
|
+
export interface BrowserFrameHeaderProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof browserFrameHeaderVariants> {
|
|
23
|
+
ref?: Ref<HTMLDivElement>;
|
|
24
|
+
}
|
|
25
|
+
declare function BrowserFrameHeader({ className, variant, size, ref, ...props }: BrowserFrameHeaderProps): ReactElement;
|
|
26
|
+
declare namespace BrowserFrameHeader {
|
|
27
|
+
var displayName: string;
|
|
28
|
+
}
|
|
29
|
+
export interface BrowserFrameControlsProps extends HTMLAttributes<HTMLDivElement> {
|
|
30
|
+
variant?: BrowserFrameVariantId;
|
|
31
|
+
/**
|
|
32
|
+
* Disable the visual difference between hover/idle dots. When true,
|
|
33
|
+
* the controls render as non-interactive decorations only.
|
|
34
|
+
*/
|
|
35
|
+
decorative?: boolean;
|
|
36
|
+
ref?: Ref<HTMLDivElement>;
|
|
37
|
+
}
|
|
38
|
+
declare function BrowserFrameControls({ className, variant, decorative, ref, ...props }: BrowserFrameControlsProps): ReactElement;
|
|
39
|
+
declare namespace BrowserFrameControls {
|
|
40
|
+
var displayName: string;
|
|
41
|
+
}
|
|
42
|
+
export interface BrowserFrameNavButtonsProps extends HTMLAttributes<HTMLDivElement> {
|
|
43
|
+
ref?: Ref<HTMLDivElement>;
|
|
44
|
+
}
|
|
45
|
+
declare function BrowserFrameNavButtons({ className, ref, ...props }: BrowserFrameNavButtonsProps): ReactElement;
|
|
46
|
+
declare namespace BrowserFrameNavButtons {
|
|
47
|
+
var displayName: string;
|
|
48
|
+
}
|
|
49
|
+
export interface BrowserFrameAddressBarProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
|
|
50
|
+
/**
|
|
51
|
+
* Optional icon (e.g. a lock/globe) rendered at the start of the bar.
|
|
52
|
+
* Defaults to a lock icon for HTTPS-looking URLs, globe otherwise.
|
|
53
|
+
*/
|
|
54
|
+
leadingIcon?: ReactNode;
|
|
55
|
+
/**
|
|
56
|
+
* Optional element rendered at the end (e.g. star, share).
|
|
57
|
+
*/
|
|
58
|
+
trailingIcon?: ReactNode;
|
|
59
|
+
/**
|
|
60
|
+
* When true, the bar is rendered as a static label rather than an input.
|
|
61
|
+
* This is the default — most usages are decorative.
|
|
62
|
+
*/
|
|
63
|
+
readOnly?: boolean;
|
|
64
|
+
ref?: Ref<HTMLInputElement>;
|
|
65
|
+
}
|
|
66
|
+
declare function BrowserFrameAddressBar({ className, value, defaultValue, leadingIcon, trailingIcon, readOnly, ref, ...props }: BrowserFrameAddressBarProps): ReactElement;
|
|
67
|
+
declare namespace BrowserFrameAddressBar {
|
|
68
|
+
var displayName: string;
|
|
69
|
+
}
|
|
70
|
+
export interface BrowserFrameTabsProps extends HTMLAttributes<HTMLDivElement> {
|
|
71
|
+
ref?: Ref<HTMLDivElement>;
|
|
72
|
+
}
|
|
73
|
+
declare function BrowserFrameTabs({ className, ref, ...props }: BrowserFrameTabsProps): ReactElement;
|
|
74
|
+
declare namespace BrowserFrameTabs {
|
|
75
|
+
var displayName: string;
|
|
76
|
+
}
|
|
77
|
+
export interface BrowserFrameTabProps extends HTMLAttributes<HTMLDivElement> {
|
|
78
|
+
active?: boolean;
|
|
79
|
+
/** Optional favicon node (image, emoji, or svg). */
|
|
80
|
+
favicon?: ReactNode;
|
|
81
|
+
/** When true, shows a close affordance on hover. */
|
|
82
|
+
closable?: boolean;
|
|
83
|
+
ref?: Ref<HTMLDivElement>;
|
|
84
|
+
}
|
|
85
|
+
declare function BrowserFrameTab({ className, active, favicon, closable, children, ref, ...props }: BrowserFrameTabProps): ReactElement;
|
|
86
|
+
declare namespace BrowserFrameTab {
|
|
87
|
+
var displayName: string;
|
|
88
|
+
}
|
|
89
|
+
export interface BrowserFrameContentProps extends HTMLAttributes<HTMLDivElement> {
|
|
90
|
+
/**
|
|
91
|
+
* When provided, the content area is rendered with a fixed aspect ratio,
|
|
92
|
+
* useful for screenshot embeds. Expressed as `width / height`.
|
|
93
|
+
*/
|
|
94
|
+
aspectRatio?: string;
|
|
95
|
+
ref?: Ref<HTMLDivElement>;
|
|
96
|
+
}
|
|
97
|
+
declare function BrowserFrameContent({ className, style, aspectRatio, ref, ...props }: BrowserFrameContentProps): ReactElement;
|
|
98
|
+
declare namespace BrowserFrameContent {
|
|
99
|
+
var displayName: string;
|
|
100
|
+
}
|
|
101
|
+
export { BrowserFrame, BrowserFrameHeader, BrowserFrameControls, BrowserFrameNavButtons, BrowserFrameAddressBar, BrowserFrameTabs, BrowserFrameTab, BrowserFrameContent, browserFrameVariants, browserFrameHeaderVariants, };
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../../../lib/utils";
|
|
5
|
+
export const browserFrameVariantIds = [
|
|
6
|
+
"macos",
|
|
7
|
+
"windows",
|
|
8
|
+
"minimal",
|
|
9
|
+
];
|
|
10
|
+
export const browserFrameSizeIds = [
|
|
11
|
+
"sm",
|
|
12
|
+
"md",
|
|
13
|
+
"lg",
|
|
14
|
+
];
|
|
15
|
+
const browserFrameVariants = cva("flex w-full flex-col overflow-hidden border bg-card text-card-foreground shadow-lg", {
|
|
16
|
+
variants: {
|
|
17
|
+
variant: {
|
|
18
|
+
macos: "rounded-xl border-border",
|
|
19
|
+
windows: "rounded-md border-border",
|
|
20
|
+
minimal: "rounded-lg border-border",
|
|
21
|
+
},
|
|
22
|
+
size: {
|
|
23
|
+
sm: "text-xs",
|
|
24
|
+
md: "text-sm",
|
|
25
|
+
lg: "text-base",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
variant: "macos",
|
|
30
|
+
size: "md",
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
function BrowserFrame({ className, variant, size, ref, ...props }) {
|
|
34
|
+
return (_jsx("div", { ref: ref, "data-slot": "browser-frame", "data-variant": variant ?? "macos", "data-size": size ?? "md", className: cn(browserFrameVariants({ variant, size }), className), ...props }));
|
|
35
|
+
}
|
|
36
|
+
BrowserFrame.displayName = "BrowserFrame";
|
|
37
|
+
const browserFrameHeaderVariants = cva("flex items-center gap-3 border-b bg-muted/60 backdrop-blur-sm", {
|
|
38
|
+
variants: {
|
|
39
|
+
variant: {
|
|
40
|
+
macos: "border-border px-3 py-2.5",
|
|
41
|
+
windows: "border-border px-2 py-1.5",
|
|
42
|
+
minimal: "border-border px-3 py-2",
|
|
43
|
+
},
|
|
44
|
+
size: {
|
|
45
|
+
sm: "min-h-8",
|
|
46
|
+
md: "min-h-10",
|
|
47
|
+
lg: "min-h-12",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
defaultVariants: {
|
|
51
|
+
variant: "macos",
|
|
52
|
+
size: "md",
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
function BrowserFrameHeader({ className, variant, size, ref, ...props }) {
|
|
56
|
+
return (_jsx("div", { ref: ref, "data-slot": "browser-frame-header", className: cn(browserFrameHeaderVariants({ variant, size }), className), ...props }));
|
|
57
|
+
}
|
|
58
|
+
BrowserFrameHeader.displayName = "BrowserFrameHeader";
|
|
59
|
+
const macosControlColors = [
|
|
60
|
+
{
|
|
61
|
+
label: "Close",
|
|
62
|
+
className: "bg-[#ff5f57] border-[#e0443e]",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
label: "Minimize",
|
|
66
|
+
className: "bg-[#febc2e] border-[#dea123]",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
label: "Maximize",
|
|
70
|
+
className: "bg-[#28c840] border-[#1aab29]",
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
function BrowserFrameControls({ className, variant = "macos", decorative = true, ref, ...props }) {
|
|
74
|
+
if (variant === "minimal") {
|
|
75
|
+
return (_jsx("div", { ref: ref, "data-slot": "browser-frame-controls", className: cn("flex items-center", className), "aria-hidden": decorative ? "true" : undefined, ...props }));
|
|
76
|
+
}
|
|
77
|
+
if (variant === "windows") {
|
|
78
|
+
return (_jsxs("div", { ref: ref, "data-slot": "browser-frame-controls", "data-variant": "windows", className: cn("ml-auto flex items-center gap-0 text-muted-foreground", className), "aria-hidden": decorative ? "true" : undefined, ...props, children: [_jsx("span", { className: "flex h-6 w-9 items-center justify-center hover:bg-muted", children: _jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M0 5h10", stroke: "currentColor", strokeWidth: "1" }) }) }), _jsx("span", { className: "flex h-6 w-9 items-center justify-center hover:bg-muted", children: _jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": "true", children: _jsx("rect", { x: "0.5", y: "0.5", width: "9", height: "9", stroke: "currentColor", strokeWidth: "1", fill: "none" }) }) }), _jsx("span", { className: "flex h-6 w-9 items-center justify-center hover:bg-destructive hover:text-white", children: _jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M0 0L10 10M10 0L0 10", stroke: "currentColor", strokeWidth: "1" }) }) })] }));
|
|
79
|
+
}
|
|
80
|
+
return (_jsx("div", { ref: ref, "data-slot": "browser-frame-controls", "data-variant": "macos", className: cn("flex items-center gap-1.5", className), "aria-hidden": decorative ? "true" : undefined, ...props, children: macosControlColors.map((control) => (_jsx("span", { "aria-label": decorative ? undefined : control.label, className: cn("block size-3 rounded-full border", control.className) }, control.label))) }));
|
|
81
|
+
}
|
|
82
|
+
BrowserFrameControls.displayName = "BrowserFrameControls";
|
|
83
|
+
function BrowserFrameNavButtons({ className, ref, ...props }) {
|
|
84
|
+
return (_jsxs("div", { ref: ref, "data-slot": "browser-frame-nav-buttons", className: cn("flex items-center gap-1 text-muted-foreground", className), "aria-hidden": "true", ...props, children: [_jsx("button", { type: "button", tabIndex: -1, disabled: true, className: "flex size-6 items-center justify-center rounded-md hover:bg-muted disabled:opacity-50", "aria-label": "Back", children: _jsx("svg", { viewBox: "0 0 16 16", className: "size-3.5", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M10 12L6 8L10 4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) }), _jsx("button", { type: "button", tabIndex: -1, disabled: true, className: "flex size-6 items-center justify-center rounded-md hover:bg-muted disabled:opacity-50", "aria-label": "Forward", children: _jsx("svg", { viewBox: "0 0 16 16", className: "size-3.5", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M6 4L10 8L6 12", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) }), _jsx("button", { type: "button", tabIndex: -1, className: "flex size-6 items-center justify-center rounded-md hover:bg-muted", "aria-label": "Reload", children: _jsx("svg", { viewBox: "0 0 16 16", className: "size-3.5", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M13 8a5 5 0 1 1-1.46-3.54M13 3v3h-3", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }) })] }));
|
|
85
|
+
}
|
|
86
|
+
BrowserFrameNavButtons.displayName = "BrowserFrameNavButtons";
|
|
87
|
+
function defaultLeadingIcon(value) {
|
|
88
|
+
const url = typeof value === "string" ? value : "";
|
|
89
|
+
const isSecure = url.startsWith("https://") || url === "";
|
|
90
|
+
if (isSecure) {
|
|
91
|
+
return (_jsxs("svg", { viewBox: "0 0 16 16", className: "size-3.5", fill: "none", "aria-hidden": "true", children: [_jsx("rect", { x: "3", y: "7", width: "10", height: "7", rx: "1", stroke: "currentColor", strokeWidth: "1.25" }), _jsx("path", { d: "M5 7V5a3 3 0 1 1 6 0v2", stroke: "currentColor", strokeWidth: "1.25", strokeLinecap: "round" })] }));
|
|
92
|
+
}
|
|
93
|
+
return (_jsxs("svg", { viewBox: "0 0 16 16", className: "size-3.5", fill: "none", "aria-hidden": "true", children: [_jsx("circle", { cx: "8", cy: "8", r: "5.5", stroke: "currentColor", strokeWidth: "1.25" }), _jsx("path", { d: "M2.5 8h11M8 2.5c1.5 1.5 2.5 3.5 2.5 5.5s-1 4-2.5 5.5M8 2.5C6.5 4 5.5 6 5.5 8s1 4 2.5 5.5", stroke: "currentColor", strokeWidth: "1.25" })] }));
|
|
94
|
+
}
|
|
95
|
+
function BrowserFrameAddressBar({ className, value, defaultValue, leadingIcon, trailingIcon, readOnly = true, ref, ...props }) {
|
|
96
|
+
const resolvedLeadingIcon = leadingIcon ?? defaultLeadingIcon(value ?? defaultValue);
|
|
97
|
+
return (_jsxs("div", { "data-slot": "browser-frame-address-bar", className: cn("flex min-w-0 flex-1 items-center gap-2 rounded-md border border-border/60 bg-background px-3 py-1 text-muted-foreground", "focus-within:border-ring focus-within:ring-2 focus-within:ring-ring/30", className), children: [resolvedLeadingIcon ? (_jsx("span", { className: "flex shrink-0 items-center", children: resolvedLeadingIcon })) : null, _jsx("input", { ref: ref, type: "text", value: value, defaultValue: defaultValue, readOnly: readOnly, className: cn("min-w-0 flex-1 truncate bg-transparent text-foreground/80 outline-none placeholder:text-muted-foreground", "selection:bg-primary/20", readOnly && "cursor-default"), ...props }), trailingIcon ? (_jsx("span", { className: "flex shrink-0 items-center", children: trailingIcon })) : null] }));
|
|
98
|
+
}
|
|
99
|
+
BrowserFrameAddressBar.displayName = "BrowserFrameAddressBar";
|
|
100
|
+
function BrowserFrameTabs({ className, ref, ...props }) {
|
|
101
|
+
return (_jsx("div", { ref: ref, role: "tablist", "data-slot": "browser-frame-tabs", className: cn("flex items-end gap-0.5 border-b border-border bg-muted/40 px-2 pt-1.5", className), ...props }));
|
|
102
|
+
}
|
|
103
|
+
BrowserFrameTabs.displayName = "BrowserFrameTabs";
|
|
104
|
+
function BrowserFrameTab({ className, active = false, favicon, closable = false, children, ref, ...props }) {
|
|
105
|
+
return (_jsxs("div", { ref: ref, role: "tab", "aria-selected": active, "data-active": active, "data-slot": "browser-frame-tab", className: cn("group flex max-w-[14rem] items-center gap-2 rounded-t-md border border-b-0 px-3 py-1.5 text-xs", active
|
|
106
|
+
? "border-border bg-background text-foreground"
|
|
107
|
+
: "border-transparent bg-transparent text-muted-foreground hover:bg-background/40", className), ...props, children: [favicon ? (_jsx("span", { className: "flex size-3.5 shrink-0 items-center justify-center", children: favicon })) : null, _jsx("span", { className: "min-w-0 flex-1 truncate", children: children }), closable ? (_jsx("button", { type: "button", tabIndex: -1, "aria-label": "Close tab", className: cn("flex size-4 shrink-0 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted", active ? "opacity-70" : "opacity-0 group-hover:opacity-70"), children: _jsx("svg", { viewBox: "0 0 10 10", className: "size-2.5", fill: "none", "aria-hidden": "true", children: _jsx("path", { d: "M1 1L9 9M9 1L1 9", stroke: "currentColor", strokeWidth: "1.25", strokeLinecap: "round" }) }) })) : null] }));
|
|
108
|
+
}
|
|
109
|
+
BrowserFrameTab.displayName = "BrowserFrameTab";
|
|
110
|
+
function BrowserFrameContent({ className, style, aspectRatio, ref, ...props }) {
|
|
111
|
+
return (_jsx("div", { ref: ref, "data-slot": "browser-frame-content", style: aspectRatio ? { aspectRatio, ...style } : style, className: cn("relative flex-1 overflow-hidden bg-background text-foreground", className), ...props }));
|
|
112
|
+
}
|
|
113
|
+
BrowserFrameContent.displayName = "BrowserFrameContent";
|
|
114
|
+
export { BrowserFrame, BrowserFrameHeader, BrowserFrameControls, BrowserFrameNavButtons, BrowserFrameAddressBar, BrowserFrameTabs, BrowserFrameTab, BrowserFrameContent, browserFrameVariants, browserFrameHeaderVariants, };
|
|
115
|
+
//# sourceMappingURL=browser-frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-frame.js","sourceRoot":"","sources":["../../../../src/components/ui/browser-frame/browser-frame.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/browser-frame/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const httpMethodIds: readonly ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD", "TRACE", "CONNECT"];
|
|
2
|
+
export type HttpMethod = (typeof httpMethodIds)[number];
|
|
3
|
+
export declare const httpMethodBadgeAppearanceIds: readonly ["solid", "soft", "outline"];
|
|
4
|
+
export type HttpMethodBadgeAppearance = (typeof httpMethodBadgeAppearanceIds)[number];
|
|
5
|
+
export declare const httpMethodBadgeSizeIds: readonly ["sm", "md", "lg"];
|
|
6
|
+
export type HttpMethodBadgeSize = (typeof httpMethodBadgeSizeIds)[number];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const httpMethodIds = [
|
|
2
|
+
"GET",
|
|
3
|
+
"POST",
|
|
4
|
+
"PUT",
|
|
5
|
+
"PATCH",
|
|
6
|
+
"DELETE",
|
|
7
|
+
"OPTIONS",
|
|
8
|
+
"HEAD",
|
|
9
|
+
"TRACE",
|
|
10
|
+
"CONNECT",
|
|
11
|
+
];
|
|
12
|
+
export const httpMethodBadgeAppearanceIds = [
|
|
13
|
+
"solid",
|
|
14
|
+
"soft",
|
|
15
|
+
"outline",
|
|
16
|
+
];
|
|
17
|
+
export const httpMethodBadgeSizeIds = [
|
|
18
|
+
"sm",
|
|
19
|
+
"md",
|
|
20
|
+
"lg",
|
|
21
|
+
];
|
|
22
|
+
//# sourceMappingURL=http-method-badge-variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-method-badge-variants.js","sourceRoot":"","sources":["../../../../src/components/ui/http-method-badge/http-method-badge-variants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,SAAS;IACT,MAAM;IACN,OAAO;IACP,SAAS;CAC2B,CAAC;AAGvC,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,OAAO;IACP,MAAM;IACN,SAAS;CAC2B,CAAC;AAIvC,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI;IACJ,IAAI;IACJ,IAAI;CACgC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
import type { ComponentProps, ReactElement, Ref } from "react";
|
|
3
|
+
import { httpMethodBadgeAppearanceIds, httpMethodBadgeSizeIds, httpMethodIds, type HttpMethod, type HttpMethodBadgeAppearance, type HttpMethodBadgeSize } from "./http-method-badge-variants";
|
|
4
|
+
/**
|
|
5
|
+
* Color palette per HTTP method. Each method maps to its own semantic colour
|
|
6
|
+
* across the three appearance modes (solid / soft / outline). Theme tokens
|
|
7
|
+
* (`primary`, `destructive`, `warning`, `muted`) are preferred where the
|
|
8
|
+
* semantics line up; the remaining methods use Tailwind colour primitives so
|
|
9
|
+
* they still adapt to light/dark mode.
|
|
10
|
+
*/
|
|
11
|
+
declare const httpMethodColors: Record<HttpMethod, Record<HttpMethodBadgeAppearance, string>>;
|
|
12
|
+
declare const httpMethodBadgeVariants: (props?: ({
|
|
13
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
14
|
+
width?: "auto" | "fixed" | null | undefined;
|
|
15
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
|
+
type CvaRootProps = VariantProps<typeof httpMethodBadgeVariants>;
|
|
17
|
+
export interface HttpMethodBadgeProps extends Omit<ComponentProps<"span">, "children">, Omit<CvaRootProps, "width"> {
|
|
18
|
+
/** HTTP method to render. Case-insensitive — always rendered upper-case. */
|
|
19
|
+
method: HttpMethod | Lowercase<HttpMethod>;
|
|
20
|
+
/** Colour intensity. `soft` (default) is best for dense lists; `solid` for emphasis. */
|
|
21
|
+
appearance?: HttpMethodBadgeAppearance;
|
|
22
|
+
/**
|
|
23
|
+
* When `fixed`, the badge takes a constant width so methods stack neatly
|
|
24
|
+
* in endpoint lists. Defaults to `auto`.
|
|
25
|
+
*/
|
|
26
|
+
width?: "auto" | "fixed";
|
|
27
|
+
/** Override the label rendered inside the badge. Defaults to the method name. */
|
|
28
|
+
label?: string;
|
|
29
|
+
ref?: Ref<HTMLSpanElement>;
|
|
30
|
+
}
|
|
31
|
+
declare function HttpMethodBadge({ className, method, appearance, size, width, label, ref, ...props }: HttpMethodBadgeProps): ReactElement;
|
|
32
|
+
declare namespace HttpMethodBadge {
|
|
33
|
+
var displayName: string;
|
|
34
|
+
}
|
|
35
|
+
export { HttpMethodBadge, httpMethodBadgeVariants, httpMethodColors, httpMethodIds, httpMethodBadgeAppearanceIds, httpMethodBadgeSizeIds, };
|
|
36
|
+
export type { HttpMethod, HttpMethodBadgeAppearance, HttpMethodBadgeSize };
|
|
37
|
+
export default HttpMethodBadge;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../../../lib/utils";
|
|
5
|
+
import { httpMethodBadgeAppearanceIds, httpMethodBadgeSizeIds, httpMethodIds, } from "./http-method-badge-variants";
|
|
6
|
+
/**
|
|
7
|
+
* Color palette per HTTP method. Each method maps to its own semantic colour
|
|
8
|
+
* across the three appearance modes (solid / soft / outline). Theme tokens
|
|
9
|
+
* (`primary`, `destructive`, `warning`, `muted`) are preferred where the
|
|
10
|
+
* semantics line up; the remaining methods use Tailwind colour primitives so
|
|
11
|
+
* they still adapt to light/dark mode.
|
|
12
|
+
*/
|
|
13
|
+
const httpMethodColors = {
|
|
14
|
+
GET: {
|
|
15
|
+
solid: "bg-sky-600 text-white border-sky-600 dark:bg-sky-500 dark:border-sky-500",
|
|
16
|
+
soft: "bg-sky-500/15 text-sky-700 border-sky-500/30 dark:text-sky-300 dark:bg-sky-500/20",
|
|
17
|
+
outline: "bg-transparent text-sky-700 border-sky-500/50 dark:text-sky-300 dark:border-sky-400/60",
|
|
18
|
+
},
|
|
19
|
+
POST: {
|
|
20
|
+
solid: "bg-emerald-600 text-white border-emerald-600 dark:bg-emerald-500 dark:border-emerald-500",
|
|
21
|
+
soft: "bg-emerald-500/15 text-emerald-700 border-emerald-500/30 dark:text-emerald-300 dark:bg-emerald-500/20",
|
|
22
|
+
outline: "bg-transparent text-emerald-700 border-emerald-500/50 dark:text-emerald-300 dark:border-emerald-400/60",
|
|
23
|
+
},
|
|
24
|
+
PUT: {
|
|
25
|
+
solid: "bg-warning text-warning-foreground border-warning",
|
|
26
|
+
soft: "bg-warning/15 text-warning-foreground border-warning/40 dark:bg-warning/20",
|
|
27
|
+
outline: "bg-transparent text-warning-foreground border-warning/50 dark:border-warning/70",
|
|
28
|
+
},
|
|
29
|
+
PATCH: {
|
|
30
|
+
solid: "bg-violet-600 text-white border-violet-600 dark:bg-violet-500 dark:border-violet-500",
|
|
31
|
+
soft: "bg-violet-500/15 text-violet-700 border-violet-500/30 dark:text-violet-300 dark:bg-violet-500/20",
|
|
32
|
+
outline: "bg-transparent text-violet-700 border-violet-500/50 dark:text-violet-300 dark:border-violet-400/60",
|
|
33
|
+
},
|
|
34
|
+
DELETE: {
|
|
35
|
+
solid: "bg-destructive text-white border-destructive",
|
|
36
|
+
soft: "bg-destructive/15 text-destructive border-destructive/30",
|
|
37
|
+
outline: "bg-transparent text-destructive border-destructive/50 dark:border-destructive/70",
|
|
38
|
+
},
|
|
39
|
+
OPTIONS: {
|
|
40
|
+
solid: "bg-foreground text-background border-foreground",
|
|
41
|
+
soft: "bg-muted text-muted-foreground border-border",
|
|
42
|
+
outline: "bg-transparent text-muted-foreground border-border",
|
|
43
|
+
},
|
|
44
|
+
HEAD: {
|
|
45
|
+
solid: "bg-slate-600 text-white border-slate-600 dark:bg-slate-500 dark:border-slate-500",
|
|
46
|
+
soft: "bg-slate-500/15 text-slate-700 border-slate-500/30 dark:text-slate-300 dark:bg-slate-500/20",
|
|
47
|
+
outline: "bg-transparent text-slate-700 border-slate-500/50 dark:text-slate-300 dark:border-slate-400/60",
|
|
48
|
+
},
|
|
49
|
+
TRACE: {
|
|
50
|
+
solid: "bg-zinc-600 text-white border-zinc-600 dark:bg-zinc-500 dark:border-zinc-500",
|
|
51
|
+
soft: "bg-zinc-500/15 text-zinc-700 border-zinc-500/30 dark:text-zinc-300 dark:bg-zinc-500/20",
|
|
52
|
+
outline: "bg-transparent text-zinc-700 border-zinc-500/50 dark:text-zinc-300 dark:border-zinc-400/60",
|
|
53
|
+
},
|
|
54
|
+
CONNECT: {
|
|
55
|
+
solid: "bg-stone-600 text-white border-stone-600 dark:bg-stone-500 dark:border-stone-500",
|
|
56
|
+
soft: "bg-stone-500/15 text-stone-700 border-stone-500/30 dark:text-stone-300 dark:bg-stone-500/20",
|
|
57
|
+
outline: "bg-transparent text-stone-700 border-stone-500/50 dark:text-stone-300 dark:border-stone-400/60",
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
const httpMethodBadgeVariants = cva("inline-flex items-center justify-center rounded-md border font-mono font-semibold uppercase tracking-wide whitespace-nowrap select-none align-middle transition-colors", {
|
|
61
|
+
variants: {
|
|
62
|
+
size: {
|
|
63
|
+
sm: "h-5 px-1.5 text-[10px] leading-none",
|
|
64
|
+
md: "h-6 px-2 text-xs leading-none",
|
|
65
|
+
lg: "h-7 px-2.5 text-sm leading-none",
|
|
66
|
+
},
|
|
67
|
+
width: {
|
|
68
|
+
auto: "",
|
|
69
|
+
// Fixed width keeps badges vertically aligned in endpoint lists. The
|
|
70
|
+
// widest method we render is "OPTIONS" / "CONNECT" (7 chars).
|
|
71
|
+
fixed: "",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
compoundVariants: [
|
|
75
|
+
{ size: "sm", width: "fixed", className: "w-[3.75rem]" },
|
|
76
|
+
{ size: "md", width: "fixed", className: "w-[4.25rem]" },
|
|
77
|
+
{ size: "lg", width: "fixed", className: "w-[5rem]" },
|
|
78
|
+
],
|
|
79
|
+
defaultVariants: {
|
|
80
|
+
size: "md",
|
|
81
|
+
width: "auto",
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
function normalizeMethod(method) {
|
|
85
|
+
return method.toUpperCase();
|
|
86
|
+
}
|
|
87
|
+
function HttpMethodBadge({ className, method, appearance = "soft", size, width = "auto", label, ref, ...props }) {
|
|
88
|
+
const normalized = normalizeMethod(method);
|
|
89
|
+
const palette = httpMethodColors[normalized];
|
|
90
|
+
return (_jsx("span", { ref: ref, "data-slot": "http-method-badge", "data-method": normalized, "data-appearance": appearance, className: cn(httpMethodBadgeVariants({ size, width }), palette[appearance], className), ...props, children: label ?? normalized }));
|
|
91
|
+
}
|
|
92
|
+
HttpMethodBadge.displayName = "HttpMethodBadge";
|
|
93
|
+
export { HttpMethodBadge, httpMethodBadgeVariants, httpMethodColors, httpMethodIds, httpMethodBadgeAppearanceIds, httpMethodBadgeSizeIds, };
|
|
94
|
+
export default HttpMethodBadge;
|
|
95
|
+
//# sourceMappingURL=http-method-badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-method-badge.js","sourceRoot":"","sources":["../../../../src/components/ui/http-method-badge/http-method-badge.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { HttpMethodBadge, HttpMethodBadge as default, httpMethodBadgeVariants, httpMethodColors, } from "./http-method-badge";
|
|
2
|
+
export type { HttpMethodBadgeProps } from "./http-method-badge";
|
|
3
|
+
export { httpMethodIds, httpMethodBadgeAppearanceIds, httpMethodBadgeSizeIds, } from "./http-method-badge-variants";
|
|
4
|
+
export type { HttpMethod, HttpMethodBadgeAppearance, HttpMethodBadgeSize, } from "./http-method-badge-variants";
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { HttpMethodBadge, HttpMethodBadge as default, httpMethodBadgeVariants, httpMethodColors, } from "./http-method-badge";
|
|
2
|
+
export { httpMethodIds, httpMethodBadgeAppearanceIds, httpMethodBadgeSizeIds, } from "./http-method-badge-variants";
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/http-method-badge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,IAAI,OAAO,EAC1B,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,8BAA8B,CAAC"}
|
|
@@ -196,3 +196,7 @@ export * from "./time-picker";
|
|
|
196
196
|
export type * from "./time-picker";
|
|
197
197
|
export * from "./mark";
|
|
198
198
|
export type * from "./mark";
|
|
199
|
+
export * from "./http-method-badge";
|
|
200
|
+
export type * from "./http-method-badge";
|
|
201
|
+
export * from "./browser-frame";
|
|
202
|
+
export type * from "./browser-frame";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
|