@schemavaults/ui 0.64.0 → 0.66.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/callout/callout.d.ts +1 -1
- package/dist/components/ui/collapsible/collapsible-variants.d.ts +16 -0
- package/dist/components/ui/collapsible/collapsible-variants.js +74 -0
- package/dist/components/ui/collapsible/collapsible-variants.js.map +1 -0
- package/dist/components/ui/collapsible/collapsible.d.ts +40 -0
- package/dist/components/ui/collapsible/collapsible.js +71 -0
- package/dist/components/ui/collapsible/collapsible.js.map +1 -0
- package/dist/components/ui/collapsible/index.d.ts +2 -0
- package/dist/components/ui/collapsible/index.js +2 -0
- package/dist/components/ui/collapsible/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/dist/components/ui/secret-reveal/index.d.ts +4 -0
- package/dist/components/ui/secret-reveal/index.js +3 -0
- package/dist/components/ui/secret-reveal/index.js.map +1 -0
- package/dist/components/ui/secret-reveal/secret-reveal-variants.d.ts +6 -0
- package/dist/components/ui/secret-reveal/secret-reveal-variants.js +18 -0
- package/dist/components/ui/secret-reveal/secret-reveal-variants.js.map +1 -0
- package/dist/components/ui/secret-reveal/secret-reveal.d.ts +52 -0
- package/dist/components/ui/secret-reveal/secret-reveal.js +142 -0
- package/dist/components/ui/secret-reveal/secret-reveal.js.map +1 -0
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ export declare const calloutAppearanceIds: readonly ["accent-bar", "subtle"];
|
|
|
6
6
|
export type CalloutAppearanceId = (typeof calloutAppearanceIds)[number];
|
|
7
7
|
declare const calloutVariants: (props?: ({
|
|
8
8
|
intent?: "note" | "warning" | "tip" | "important" | "caution" | null | undefined;
|
|
9
|
-
appearance?: "
|
|
9
|
+
appearance?: "subtle" | "accent-bar" | null | undefined;
|
|
10
10
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
11
|
export interface CalloutProps extends Omit<HTMLAttributes<HTMLDivElement>, "title">, VariantProps<typeof calloutVariants> {
|
|
12
12
|
/** Override the default icon for the intent. Pass `null` to hide. */
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const collapsibleVariantIds: readonly ["default", "outline", "ghost", "subtle", "primary"];
|
|
2
|
+
export type CollapsibleVariantId = (typeof collapsibleVariantIds)[number];
|
|
3
|
+
export declare const collapsibleSizeIds: readonly ["sm", "md", "lg"];
|
|
4
|
+
export type CollapsibleSizeId = (typeof collapsibleSizeIds)[number];
|
|
5
|
+
export declare const collapsibleRootVariants: (props?: ({
|
|
6
|
+
variant?: "default" | "primary" | "outline" | "ghost" | "subtle" | null | undefined;
|
|
7
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
|
+
export declare const collapsibleTriggerVariants: (props?: ({
|
|
10
|
+
variant?: "default" | "primary" | "outline" | "ghost" | "subtle" | null | undefined;
|
|
11
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
12
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
|
+
export declare const collapsibleContentInnerVariants: (props?: ({
|
|
14
|
+
variant?: "default" | "primary" | "outline" | "ghost" | "subtle" | null | undefined;
|
|
15
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
16
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
export const collapsibleVariantIds = [
|
|
3
|
+
"default",
|
|
4
|
+
"outline",
|
|
5
|
+
"ghost",
|
|
6
|
+
"subtle",
|
|
7
|
+
"primary",
|
|
8
|
+
];
|
|
9
|
+
export const collapsibleSizeIds = [
|
|
10
|
+
"sm",
|
|
11
|
+
"md",
|
|
12
|
+
"lg",
|
|
13
|
+
];
|
|
14
|
+
export const collapsibleRootVariants = cva("w-full overflow-hidden transition-colors", {
|
|
15
|
+
variants: {
|
|
16
|
+
variant: {
|
|
17
|
+
default: "bg-background",
|
|
18
|
+
outline: "rounded-lg border border-border bg-background",
|
|
19
|
+
ghost: "bg-transparent",
|
|
20
|
+
subtle: "rounded-lg bg-muted/50",
|
|
21
|
+
primary: "rounded-lg border border-primary/30 bg-primary/5 text-foreground",
|
|
22
|
+
},
|
|
23
|
+
size: {
|
|
24
|
+
sm: "text-xs",
|
|
25
|
+
md: "text-sm",
|
|
26
|
+
lg: "text-base",
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
variant: "default",
|
|
31
|
+
size: "md",
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
export const collapsibleTriggerVariants = cva("group/collapsible-trigger flex w-full items-center justify-between gap-2 font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&>svg]:shrink-0", {
|
|
35
|
+
variants: {
|
|
36
|
+
variant: {
|
|
37
|
+
default: "text-foreground hover:text-foreground/80",
|
|
38
|
+
outline: "rounded-t-lg text-foreground hover:bg-accent/40 data-[state=closed]:rounded-b-lg",
|
|
39
|
+
ghost: "text-foreground hover:text-foreground/80",
|
|
40
|
+
subtle: "rounded-t-lg text-foreground hover:bg-muted/80 data-[state=closed]:rounded-b-lg data-[state=closed]:rounded-lg",
|
|
41
|
+
primary: "rounded-t-lg text-primary hover:text-primary/90 data-[state=closed]:rounded-lg",
|
|
42
|
+
},
|
|
43
|
+
size: {
|
|
44
|
+
sm: "px-3 py-2 text-xs [&>svg]:size-3.5",
|
|
45
|
+
md: "px-4 py-3 text-sm [&>svg]:size-4",
|
|
46
|
+
lg: "px-5 py-4 text-base [&>svg]:size-5",
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
defaultVariants: {
|
|
50
|
+
variant: "default",
|
|
51
|
+
size: "md",
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
export const collapsibleContentInnerVariants = cva("text-foreground/90", {
|
|
55
|
+
variants: {
|
|
56
|
+
variant: {
|
|
57
|
+
default: "",
|
|
58
|
+
outline: "border-t border-border",
|
|
59
|
+
ghost: "",
|
|
60
|
+
subtle: "",
|
|
61
|
+
primary: "border-t border-primary/20",
|
|
62
|
+
},
|
|
63
|
+
size: {
|
|
64
|
+
sm: "px-3 py-2 text-xs",
|
|
65
|
+
md: "px-4 py-3 text-sm",
|
|
66
|
+
lg: "px-5 py-4 text-base",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
defaultVariants: {
|
|
70
|
+
variant: "default",
|
|
71
|
+
size: "md",
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=collapsible-variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible-variants.js","sourceRoot":"","sources":["../../../../src/components/ui/collapsible/collapsible-variants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,SAAS;CAC2B,CAAC;AAGvC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI;IACJ,IAAI;IACJ,IAAI;CACgC,CAAC;AAGvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CACxC,0CAA0C,EAC1C;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,+CAA+C;YACxD,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,wBAAwB;YAChC,OAAO,EACL,kEAAkE;SACtB;QAChD,IAAI,EAAE;YACJ,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,WAAW;SAC4B;KAC9C;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,IAAI;KACX;CACF,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAC3C,qSAAqS,EACrS;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,0CAA0C;YACnD,OAAO,EACL,kFAAkF;YACpF,KAAK,EAAE,0CAA0C;YACjD,MAAM,EACJ,gHAAgH;YAClH,OAAO,EACL,gFAAgF;SACpC;QAChD,IAAI,EAAE;YACJ,EAAE,EAAE,oCAAoC;YACxC,EAAE,EAAE,kCAAkC;YACtC,EAAE,EAAE,oCAAoC;SACG;KAC9C;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,IAAI;KACX;CACF,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC,oBAAoB,EAAE;IACvE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,wBAAwB;YACjC,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,4BAA4B;SACS;QAChD,IAAI,EAAE;YACJ,EAAE,EAAE,mBAAmB;YACvB,EAAE,EAAE,mBAAmB;YACvB,EAAE,EAAE,qBAAqB;SACkB;KAC9C;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,IAAI;KACX;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type HTMLAttributes, type ReactElement, type ReactNode, type Ref } from "react";
|
|
2
|
+
import type { VariantProps } from "class-variance-authority";
|
|
3
|
+
import { collapsibleContentInnerVariants, collapsibleRootVariants, collapsibleTriggerVariants } from "./collapsible-variants";
|
|
4
|
+
export interface CollapsibleProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange">, VariantProps<typeof collapsibleRootVariants> {
|
|
5
|
+
/** Controlled open state. */
|
|
6
|
+
open?: boolean;
|
|
7
|
+
/** Initial open state when uncontrolled. */
|
|
8
|
+
defaultOpen?: boolean;
|
|
9
|
+
/** Called when the open state changes. */
|
|
10
|
+
onOpenChange?: (open: boolean) => void;
|
|
11
|
+
/** Disable the trigger interaction. */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
ref?: Ref<HTMLDivElement>;
|
|
14
|
+
}
|
|
15
|
+
declare function Collapsible({ className, variant, size, open: openProp, defaultOpen, onOpenChange, disabled, children, ref, ...props }: CollapsibleProps): ReactElement;
|
|
16
|
+
declare namespace Collapsible {
|
|
17
|
+
var displayName: string;
|
|
18
|
+
}
|
|
19
|
+
export interface CollapsibleTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
20
|
+
/** Hide the chevron icon on the right. */
|
|
21
|
+
hideIcon?: boolean;
|
|
22
|
+
/** Replace the default chevron with a custom icon. */
|
|
23
|
+
icon?: ReactNode;
|
|
24
|
+
ref?: Ref<HTMLButtonElement>;
|
|
25
|
+
}
|
|
26
|
+
declare function CollapsibleTrigger({ className, children, hideIcon, icon, onClick, type, disabled: disabledProp, ref, ...props }: CollapsibleTriggerProps): ReactElement;
|
|
27
|
+
declare namespace CollapsibleTrigger {
|
|
28
|
+
var displayName: string;
|
|
29
|
+
}
|
|
30
|
+
export interface CollapsibleContentProps extends HTMLAttributes<HTMLDivElement> {
|
|
31
|
+
/** When true, content stays mounted while closed (useful for forms). */
|
|
32
|
+
forceMount?: boolean;
|
|
33
|
+
ref?: Ref<HTMLDivElement>;
|
|
34
|
+
}
|
|
35
|
+
declare function CollapsibleContent({ className, children, forceMount, ref, ...props }: CollapsibleContentProps): ReactElement;
|
|
36
|
+
declare namespace CollapsibleContent {
|
|
37
|
+
var displayName: string;
|
|
38
|
+
}
|
|
39
|
+
export { Collapsible, CollapsibleTrigger, CollapsibleContent, collapsibleRootVariants, collapsibleTriggerVariants, collapsibleContentInnerVariants, };
|
|
40
|
+
export { collapsibleVariantIds, collapsibleSizeIds, type CollapsibleVariantId, type CollapsibleSizeId, } from "./collapsible-variants";
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useCallback, useContext, useId, useMemo, useState, } from "react";
|
|
4
|
+
import { ChevronDown } from "lucide-react";
|
|
5
|
+
import { cn } from "../../../lib/utils";
|
|
6
|
+
import { AnimatePresence, m } from "../../../framer-motion";
|
|
7
|
+
import { collapsibleContentInnerVariants, collapsibleRootVariants, collapsibleTriggerVariants, } from "./collapsible-variants";
|
|
8
|
+
const CollapsibleContext = createContext(null);
|
|
9
|
+
function useCollapsibleContext(componentName) {
|
|
10
|
+
const ctx = useContext(CollapsibleContext);
|
|
11
|
+
if (ctx === null) {
|
|
12
|
+
throw new Error(`<${componentName}> must be rendered inside a <Collapsible> root.`);
|
|
13
|
+
}
|
|
14
|
+
return ctx;
|
|
15
|
+
}
|
|
16
|
+
function Collapsible({ className, variant, size, open: openProp, defaultOpen = false, onOpenChange, disabled = false, children, ref, ...props }) {
|
|
17
|
+
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
18
|
+
const isControlled = openProp !== undefined;
|
|
19
|
+
const open = isControlled ? openProp : internalOpen;
|
|
20
|
+
const reactId = useId();
|
|
21
|
+
const triggerId = `collapsible-trigger-${reactId}`;
|
|
22
|
+
const contentId = `collapsible-content-${reactId}`;
|
|
23
|
+
const resolvedVariant = variant ?? "default";
|
|
24
|
+
const resolvedSize = size ?? "md";
|
|
25
|
+
const toggle = useCallback(() => {
|
|
26
|
+
if (disabled)
|
|
27
|
+
return;
|
|
28
|
+
const next = !open;
|
|
29
|
+
if (!isControlled) {
|
|
30
|
+
setInternalOpen(next);
|
|
31
|
+
}
|
|
32
|
+
onOpenChange?.(next);
|
|
33
|
+
}, [disabled, open, isControlled, onOpenChange]);
|
|
34
|
+
const ctx = useMemo(() => ({
|
|
35
|
+
open,
|
|
36
|
+
disabled,
|
|
37
|
+
contentId,
|
|
38
|
+
triggerId,
|
|
39
|
+
variant: resolvedVariant,
|
|
40
|
+
size: resolvedSize,
|
|
41
|
+
toggle,
|
|
42
|
+
}), [open, disabled, contentId, triggerId, resolvedVariant, resolvedSize, toggle]);
|
|
43
|
+
return (_jsx(CollapsibleContext.Provider, { value: ctx, children: _jsx("div", { ref: ref, "data-slot": "collapsible", "data-state": open ? "open" : "closed", "data-disabled": disabled ? "" : undefined, className: cn(collapsibleRootVariants({ variant: resolvedVariant, size: resolvedSize }), className), ...props, children: children }) }));
|
|
44
|
+
}
|
|
45
|
+
Collapsible.displayName = "Collapsible";
|
|
46
|
+
function CollapsibleTrigger({ className, children, hideIcon = false, icon, onClick, type, disabled: disabledProp, ref, ...props }) {
|
|
47
|
+
const { open, toggle, disabled, contentId, triggerId, variant, size } = useCollapsibleContext("CollapsibleTrigger");
|
|
48
|
+
const handleClick = useCallback((event) => {
|
|
49
|
+
onClick?.(event);
|
|
50
|
+
if (event.defaultPrevented)
|
|
51
|
+
return;
|
|
52
|
+
toggle();
|
|
53
|
+
}, [onClick, toggle]);
|
|
54
|
+
const isDisabled = Boolean(disabledProp) || disabled;
|
|
55
|
+
return (_jsxs("button", { ref: ref, id: triggerId, type: type ?? "button", "data-slot": "collapsible-trigger", "data-state": open ? "open" : "closed", "aria-expanded": open, "aria-controls": contentId, disabled: isDisabled, onClick: handleClick, className: cn(collapsibleTriggerVariants({ variant, size }), className), ...props, children: [_jsx("span", { className: "flex-1 text-left", children: children }), hideIcon ? null : (_jsx("span", { "aria-hidden": true, className: cn("inline-flex shrink-0 transition-transform duration-200", open ? "rotate-180" : "rotate-0"), children: icon ?? _jsx(ChevronDown, {}) }))] }));
|
|
56
|
+
}
|
|
57
|
+
CollapsibleTrigger.displayName = "CollapsibleTrigger";
|
|
58
|
+
function CollapsibleContent({ className, children, forceMount = false, ref, ...props }) {
|
|
59
|
+
const { open, contentId, triggerId, variant, size } = useCollapsibleContext("CollapsibleContent");
|
|
60
|
+
if (forceMount) {
|
|
61
|
+
return (_jsx("div", { ref: ref, id: contentId, role: "region", "aria-labelledby": triggerId, hidden: !open, "data-slot": "collapsible-content", "data-state": open ? "open" : "closed", className: cn("overflow-hidden", className), ...props, children: _jsx("div", { className: cn(collapsibleContentInnerVariants({ variant, size })), children: children }) }));
|
|
62
|
+
}
|
|
63
|
+
return (_jsx(AnimatePresence, { initial: false, children: open ? (_jsx(m.div, { initial: { height: 0, opacity: 0 }, animate: { height: "auto", opacity: 1 }, exit: { height: 0, opacity: 0 }, transition: {
|
|
64
|
+
height: { duration: 0.22, ease: [0.4, 0, 0.2, 1] },
|
|
65
|
+
opacity: { duration: 0.18, ease: "easeOut" },
|
|
66
|
+
}, className: "overflow-hidden", children: _jsx("div", { ref: ref, id: contentId, role: "region", "aria-labelledby": triggerId, "data-slot": "collapsible-content", "data-state": "open", className: className, ...props, children: _jsx("div", { className: cn(collapsibleContentInnerVariants({ variant, size })), children: children }) }) }, "collapsible-content")) : null }));
|
|
67
|
+
}
|
|
68
|
+
CollapsibleContent.displayName = "CollapsibleContent";
|
|
69
|
+
export { Collapsible, CollapsibleTrigger, CollapsibleContent, collapsibleRootVariants, collapsibleTriggerVariants, collapsibleContentInnerVariants, };
|
|
70
|
+
export { collapsibleVariantIds, collapsibleSizeIds, } from "./collapsible-variants";
|
|
71
|
+
//# sourceMappingURL=collapsible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible.js","sourceRoot":"","sources":["../../../../src/components/ui/collapsible/collapsible.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/collapsible/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -4,6 +4,8 @@ export * from "./agent-chat-messages";
|
|
|
4
4
|
export type * from "./agent-chat-messages";
|
|
5
5
|
export * from "./accordion";
|
|
6
6
|
export type * from "./accordion";
|
|
7
|
+
export * from "./collapsible";
|
|
8
|
+
export type * from "./collapsible";
|
|
7
9
|
export * from "./alert";
|
|
8
10
|
export type * from "./alert";
|
|
9
11
|
export * from "./callout";
|
|
@@ -138,6 +140,8 @@ export * from "./number-input";
|
|
|
138
140
|
export type * from "./number-input";
|
|
139
141
|
export * from "./code-block";
|
|
140
142
|
export type * from "./code-block";
|
|
143
|
+
export * from "./secret-reveal";
|
|
144
|
+
export type * from "./secret-reveal";
|
|
141
145
|
export * from "./json-viewer";
|
|
142
146
|
export type * from "./json-viewer";
|
|
143
147
|
export * from "./segmented-control";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from "./avatar";
|
|
2
2
|
export * from "./agent-chat-messages";
|
|
3
3
|
export * from "./accordion";
|
|
4
|
+
export * from "./collapsible";
|
|
4
5
|
export * from "./alert";
|
|
5
6
|
export * from "./callout";
|
|
6
7
|
export * from "./blockquote";
|
|
@@ -68,6 +69,7 @@ export * from "./timeline";
|
|
|
68
69
|
export * from "./rating";
|
|
69
70
|
export * from "./number-input";
|
|
70
71
|
export * from "./code-block";
|
|
72
|
+
export * from "./secret-reveal";
|
|
71
73
|
export * from "./json-viewer";
|
|
72
74
|
export * from "./segmented-control";
|
|
73
75
|
export * from "./marquee";
|
|
@@ -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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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { SecretReveal, SecretReveal as default, secretRevealVariants, } from "./secret-reveal";
|
|
2
|
+
export type { SecretRevealProps } from "./secret-reveal";
|
|
3
|
+
export { secretRevealVariantIds, secretRevealSizeIds, secretRevealMaskStyleIds, } from "./secret-reveal-variants";
|
|
4
|
+
export type { SecretRevealVariant, SecretRevealSize, SecretRevealMaskStyle, } from "./secret-reveal-variants";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/secret-reveal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,IAAI,OAAO,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const secretRevealVariantIds: readonly ["default", "outline", "subtle", "terminal", "brand"];
|
|
2
|
+
export type SecretRevealVariant = (typeof secretRevealVariantIds)[number];
|
|
3
|
+
export declare const secretRevealSizeIds: readonly ["sm", "md", "lg"];
|
|
4
|
+
export type SecretRevealSize = (typeof secretRevealSizeIds)[number];
|
|
5
|
+
export declare const secretRevealMaskStyleIds: readonly ["dots", "asterisks", "blur"];
|
|
6
|
+
export type SecretRevealMaskStyle = (typeof secretRevealMaskStyleIds)[number];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const secretRevealVariantIds = [
|
|
2
|
+
"default",
|
|
3
|
+
"outline",
|
|
4
|
+
"subtle",
|
|
5
|
+
"terminal",
|
|
6
|
+
"brand",
|
|
7
|
+
];
|
|
8
|
+
export const secretRevealSizeIds = [
|
|
9
|
+
"sm",
|
|
10
|
+
"md",
|
|
11
|
+
"lg",
|
|
12
|
+
];
|
|
13
|
+
export const secretRevealMaskStyleIds = [
|
|
14
|
+
"dots",
|
|
15
|
+
"asterisks",
|
|
16
|
+
"blur",
|
|
17
|
+
];
|
|
18
|
+
//# sourceMappingURL=secret-reveal-variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-reveal-variants.js","sourceRoot":"","sources":["../../../../src/components/ui/secret-reveal/secret-reveal-variants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;IACV,OAAO;CAC6B,CAAC;AAGvC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI;IACJ,IAAI;IACJ,IAAI;CACgC,CAAC;AAGvC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,MAAM;IACN,WAAW;IACX,MAAM;CAC8B,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type VariantProps } from "class-variance-authority";
|
|
2
|
+
import { type HTMLAttributes, type ReactElement, type ReactNode, type Ref } from "react";
|
|
3
|
+
import { type SecretRevealMaskStyle, type SecretRevealSize, type SecretRevealVariant, secretRevealMaskStyleIds, secretRevealSizeIds, secretRevealVariantIds } from "./secret-reveal-variants";
|
|
4
|
+
declare const secretRevealVariants: (props?: ({
|
|
5
|
+
variant?: "default" | "outline" | "subtle" | "terminal" | "brand" | null | undefined;
|
|
6
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
export interface SecretRevealProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange">, VariantProps<typeof secretRevealVariants> {
|
|
9
|
+
/** The sensitive value to display. */
|
|
10
|
+
value: string;
|
|
11
|
+
/** Controlled revealed state. */
|
|
12
|
+
revealed?: boolean;
|
|
13
|
+
/** Initial revealed state when uncontrolled. */
|
|
14
|
+
defaultRevealed?: boolean;
|
|
15
|
+
/** Called when the revealed state changes. */
|
|
16
|
+
onRevealChange?: (revealed: boolean) => void;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the value should be re-masked automatically after revealing.
|
|
19
|
+
* When a number is provided, that's the timeout (in ms) before re-masking.
|
|
20
|
+
* Pass `false` (default) to disable.
|
|
21
|
+
*/
|
|
22
|
+
autoHideAfter?: number | false;
|
|
23
|
+
/** Mask character style. Defaults to "dots". */
|
|
24
|
+
maskStyle?: SecretRevealMaskStyle;
|
|
25
|
+
/**
|
|
26
|
+
* Controls how the mask is sized:
|
|
27
|
+
* - "match" (default): one mask character per real character — leaks length.
|
|
28
|
+
* - "fixed": always renders 8 mask characters — hides length.
|
|
29
|
+
* - A number: render that many mask characters.
|
|
30
|
+
*/
|
|
31
|
+
maskLength?: number | "match" | "fixed";
|
|
32
|
+
/** Whether to render the built-in copy button. Defaults to true. */
|
|
33
|
+
showCopyButton?: boolean;
|
|
34
|
+
/** Whether to render the reveal/hide toggle button. Defaults to true. */
|
|
35
|
+
showRevealToggle?: boolean;
|
|
36
|
+
/** Optional label rendered to the left of the value. */
|
|
37
|
+
label?: ReactNode;
|
|
38
|
+
/** Accessible label for the reveal toggle button when masked. */
|
|
39
|
+
revealAriaLabel?: string;
|
|
40
|
+
/** Accessible label for the reveal toggle button when revealed. */
|
|
41
|
+
hideAriaLabel?: string;
|
|
42
|
+
/** Optional node rendered before the action buttons (e.g. an indicator). */
|
|
43
|
+
trailing?: ReactNode;
|
|
44
|
+
ref?: Ref<HTMLDivElement>;
|
|
45
|
+
}
|
|
46
|
+
declare function SecretReveal({ value, variant, size, revealed: revealedProp, defaultRevealed, onRevealChange, autoHideAfter, maskStyle, maskLength, showCopyButton, showRevealToggle, label, revealAriaLabel, hideAriaLabel, trailing, className, ref, ...props }: SecretRevealProps): ReactElement;
|
|
47
|
+
declare namespace SecretReveal {
|
|
48
|
+
var displayName: string;
|
|
49
|
+
}
|
|
50
|
+
export { SecretReveal, secretRevealVariants, secretRevealSizeIds, secretRevealVariantIds, secretRevealMaskStyleIds, };
|
|
51
|
+
export type { SecretRevealSize, SecretRevealVariant, SecretRevealMaskStyle };
|
|
52
|
+
export default SecretReveal;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { Eye, EyeOff } from "lucide-react";
|
|
5
|
+
import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
|
|
6
|
+
import { cn } from "../../../lib/utils";
|
|
7
|
+
import { CopyButton } from "../../ui/copy-button";
|
|
8
|
+
import { secretRevealMaskStyleIds, secretRevealSizeIds, secretRevealVariantIds, } from "./secret-reveal-variants";
|
|
9
|
+
const secretRevealVariants = cva("group/secret-reveal inline-flex w-full items-center gap-1 rounded-md border font-mono transition-colors", {
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: "border-border bg-muted text-foreground",
|
|
13
|
+
outline: "border-input bg-background text-foreground",
|
|
14
|
+
subtle: "border-transparent bg-muted/60 text-muted-foreground hover:text-foreground",
|
|
15
|
+
terminal: "border-zinc-800 bg-zinc-950 text-zinc-100 dark:border-zinc-700",
|
|
16
|
+
brand: "border-schemavaults-brand-blue/30 bg-schemavaults-brand-blue/5 text-foreground",
|
|
17
|
+
},
|
|
18
|
+
size: {
|
|
19
|
+
sm: "h-8 px-2 text-xs gap-1",
|
|
20
|
+
md: "h-9 px-2.5 text-sm gap-1.5",
|
|
21
|
+
lg: "h-11 px-3 text-base gap-2",
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
defaultVariants: {
|
|
25
|
+
variant: "default",
|
|
26
|
+
size: "md",
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
const secretRevealValueVariants = cva("flex-1 truncate select-all tabular-nums", {
|
|
30
|
+
variants: {
|
|
31
|
+
masked: {
|
|
32
|
+
true: "select-none",
|
|
33
|
+
false: "",
|
|
34
|
+
},
|
|
35
|
+
maskStyle: {
|
|
36
|
+
dots: "",
|
|
37
|
+
asterisks: "",
|
|
38
|
+
blur: "",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
compoundVariants: [
|
|
42
|
+
{
|
|
43
|
+
masked: true,
|
|
44
|
+
maskStyle: "blur",
|
|
45
|
+
class: "blur-sm transition-[filter] duration-200",
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
defaultVariants: {
|
|
49
|
+
masked: true,
|
|
50
|
+
maskStyle: "dots",
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
const secretRevealActionVariants = cva("inline-flex shrink-0 items-center justify-center rounded-md text-muted-foreground ring-offset-background transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 disabled:pointer-events-none disabled:opacity-50", {
|
|
54
|
+
variants: {
|
|
55
|
+
size: {
|
|
56
|
+
sm: "h-6 w-6 [&_svg]:size-3.5",
|
|
57
|
+
md: "h-7 w-7 [&_svg]:size-4",
|
|
58
|
+
lg: "h-8 w-8 [&_svg]:size-[18px]",
|
|
59
|
+
},
|
|
60
|
+
variant: {
|
|
61
|
+
default: "hover:bg-background/60",
|
|
62
|
+
outline: "hover:bg-accent",
|
|
63
|
+
subtle: "hover:bg-muted",
|
|
64
|
+
terminal: "text-zinc-400 hover:bg-zinc-800 hover:text-zinc-100",
|
|
65
|
+
brand: "hover:bg-schemavaults-brand-blue/10 hover:text-schemavaults-brand-blue",
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
defaultVariants: {
|
|
69
|
+
size: "md",
|
|
70
|
+
variant: "default",
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
function buildMaskString(value, maskStyle, maskLength) {
|
|
74
|
+
if (maskStyle === "blur")
|
|
75
|
+
return value;
|
|
76
|
+
const char = maskStyle === "asterisks" ? "*" : "•";
|
|
77
|
+
if (maskLength === "match")
|
|
78
|
+
return char.repeat(value.length);
|
|
79
|
+
if (maskLength === "fixed")
|
|
80
|
+
return char.repeat(8);
|
|
81
|
+
return char.repeat(Math.max(0, maskLength));
|
|
82
|
+
}
|
|
83
|
+
function SecretReveal({ value, variant, size, revealed: revealedProp, defaultRevealed = false, onRevealChange, autoHideAfter = false, maskStyle = "dots", maskLength = "match", showCopyButton = true, showRevealToggle = true, label, revealAriaLabel = "Reveal secret", hideAriaLabel = "Hide secret", trailing, className, ref, ...props }) {
|
|
84
|
+
const isControlled = revealedProp !== undefined;
|
|
85
|
+
const [internalRevealed, setInternalRevealed] = useState(defaultRevealed);
|
|
86
|
+
const revealed = isControlled
|
|
87
|
+
? revealedProp
|
|
88
|
+
: internalRevealed;
|
|
89
|
+
const autoHideTimer = useRef(null);
|
|
90
|
+
const clearAutoHide = useCallback(() => {
|
|
91
|
+
if (autoHideTimer.current !== null) {
|
|
92
|
+
clearTimeout(autoHideTimer.current);
|
|
93
|
+
autoHideTimer.current = null;
|
|
94
|
+
}
|
|
95
|
+
}, []);
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
return () => {
|
|
98
|
+
clearAutoHide();
|
|
99
|
+
};
|
|
100
|
+
}, [clearAutoHide]);
|
|
101
|
+
const setRevealed = useCallback((next) => {
|
|
102
|
+
if (!isControlled)
|
|
103
|
+
setInternalRevealed(next);
|
|
104
|
+
onRevealChange?.(next);
|
|
105
|
+
}, [isControlled, onRevealChange]);
|
|
106
|
+
useEffect(() => {
|
|
107
|
+
clearAutoHide();
|
|
108
|
+
if (revealed &&
|
|
109
|
+
typeof autoHideAfter === "number" &&
|
|
110
|
+
autoHideAfter > 0) {
|
|
111
|
+
autoHideTimer.current = setTimeout(() => {
|
|
112
|
+
setRevealed(false);
|
|
113
|
+
autoHideTimer.current = null;
|
|
114
|
+
}, autoHideAfter);
|
|
115
|
+
}
|
|
116
|
+
}, [revealed, autoHideAfter, clearAutoHide, setRevealed]);
|
|
117
|
+
const handleToggle = useCallback(() => {
|
|
118
|
+
setRevealed(!revealed);
|
|
119
|
+
}, [revealed, setRevealed]);
|
|
120
|
+
const resolvedVariant = variant ?? "default";
|
|
121
|
+
const resolvedSize = size ?? "md";
|
|
122
|
+
const displayedValue = useMemo(() => {
|
|
123
|
+
if (revealed)
|
|
124
|
+
return value;
|
|
125
|
+
return buildMaskString(value, maskStyle, maskLength);
|
|
126
|
+
}, [revealed, value, maskStyle, maskLength]);
|
|
127
|
+
const ToggleIcon = revealed ? EyeOff : Eye;
|
|
128
|
+
const toggleAriaLabel = revealed ? hideAriaLabel : revealAriaLabel;
|
|
129
|
+
return (_jsxs("div", { ref: ref, "data-slot": "secret-reveal", "data-variant": resolvedVariant, "data-revealed": revealed ? "true" : "false", className: cn(secretRevealVariants({ variant, size }), className), ...props, children: [label !== undefined && label !== null ? (_jsx("span", { "data-slot": "secret-reveal-label", className: "shrink-0 select-none pr-1 font-sans font-medium opacity-80", children: label })) : null, _jsx("span", { "data-slot": "secret-reveal-value", "aria-live": "polite", "aria-label": revealed ? "Revealed secret value" : "Masked secret value", className: cn(secretRevealValueVariants({
|
|
130
|
+
masked: !revealed,
|
|
131
|
+
maskStyle,
|
|
132
|
+
})), children: displayedValue }), trailing, showRevealToggle ? (_jsx("button", { type: "button", "data-slot": "secret-reveal-toggle", "aria-pressed": revealed, "aria-label": toggleAriaLabel, onClick: handleToggle, className: cn(secretRevealActionVariants({
|
|
133
|
+
size: resolvedSize,
|
|
134
|
+
variant: resolvedVariant,
|
|
135
|
+
})), children: _jsx(ToggleIcon, { "aria-hidden": "true" }) })) : null, showCopyButton ? (_jsx(CopyButton, { value: value, variant: "ghost", size: resolvedSize === "lg" ? "icon-md" : "icon-sm", className: cn(resolvedVariant === "terminal" &&
|
|
136
|
+
"text-zinc-300 hover:bg-zinc-800 hover:text-zinc-100 data-[copied=true]:text-green-400", resolvedVariant === "brand" &&
|
|
137
|
+
"hover:text-schemavaults-brand-blue data-[copied=true]:text-schemavaults-brand-blue") })) : null] }));
|
|
138
|
+
}
|
|
139
|
+
SecretReveal.displayName = "SecretReveal";
|
|
140
|
+
export { SecretReveal, secretRevealVariants, secretRevealSizeIds, secretRevealVariantIds, secretRevealMaskStyleIds, };
|
|
141
|
+
export default SecretReveal;
|
|
142
|
+
//# sourceMappingURL=secret-reveal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-reveal.js","sourceRoot":"","sources":["../../../../src/components/ui/secret-reveal/secret-reveal.tsx"],"names":[],"mappings":"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"}
|