@schemavaults/ui 0.24.0 → 0.27.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.
@@ -0,0 +1,4 @@
1
+ export declare const codeBlockVariantIds: readonly ["default", "terminal", "subtle", "contrast"];
2
+ export type CodeBlockVariant = (typeof codeBlockVariantIds)[number];
3
+ export declare const codeBlockSizeIds: readonly ["sm", "md", "lg"];
4
+ export type CodeBlockSize = (typeof codeBlockSizeIds)[number];
@@ -0,0 +1,8 @@
1
+ export const codeBlockVariantIds = [
2
+ "default",
3
+ "terminal",
4
+ "subtle",
5
+ "contrast",
6
+ ];
7
+ export const codeBlockSizeIds = ["sm", "md", "lg"];
8
+ //# sourceMappingURL=code-block-variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block-variants.js","sourceRoot":"","sources":["../../../../src/components/ui/code-block/code-block-variants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,SAAS;IACT,UAAU;IACV,QAAQ;IACR,UAAU;CAC0B,CAAC;AAGvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAsC,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type HTMLAttributes, type ReactElement, type ReactNode, type Ref } from "react";
3
+ import { type CodeBlockSize, type CodeBlockVariant, codeBlockSizeIds, codeBlockVariantIds } from "./code-block-variants";
4
+ declare const codeBlockVariants: (props?: ({
5
+ variant?: "default" | "terminal" | "subtle" | "contrast" | null | undefined;
6
+ size?: "sm" | "lg" | "md" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export interface CodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "title">, VariantProps<typeof codeBlockVariants> {
9
+ /** The code/text content to render inside the block. */
10
+ value: string;
11
+ /**
12
+ * Optional language label (e.g. "ts", "json", "bash") rendered in the
13
+ * header. When provided, the header is shown.
14
+ */
15
+ language?: string;
16
+ /**
17
+ * Optional title (e.g. a file path) rendered in the header. When provided,
18
+ * the header is shown.
19
+ */
20
+ title?: ReactNode;
21
+ /** When true, displays line numbers in the gutter. Defaults to false. */
22
+ showLineNumbers?: boolean;
23
+ /**
24
+ * When true, includes a copy-to-clipboard button in the header. Defaults
25
+ * to true.
26
+ */
27
+ showCopyButton?: boolean;
28
+ /**
29
+ * When true, long lines wrap rather than scroll horizontally. Defaults to
30
+ * false.
31
+ */
32
+ wrap?: boolean;
33
+ /**
34
+ * Optional max-height applied to the scroll container, e.g. "20rem".
35
+ */
36
+ maxHeight?: string;
37
+ /**
38
+ * Optional render function that returns highlighted nodes for a piece of
39
+ * code. When omitted, code is rendered as plain text. When `showLineNumbers`
40
+ * is enabled this is invoked once per line (with the line's text); when
41
+ * disabled it is invoked once with the full `value`. The `language` prop is
42
+ * passed through unchanged so consumers can dispatch on it.
43
+ *
44
+ * Example using a third-party highlighter:
45
+ *
46
+ * <CodeBlock
47
+ * value={code}
48
+ * language="ts"
49
+ * highlight={(code, lang) => <SyntaxHighlighter language={lang}>{code}</SyntaxHighlighter>}
50
+ * />
51
+ */
52
+ highlight?: (value: string, language?: string) => ReactNode;
53
+ /**
54
+ * Optional ref to the outermost wrapper element.
55
+ */
56
+ ref?: Ref<HTMLDivElement>;
57
+ }
58
+ declare function CodeBlock({ value, language, title, variant, size, showLineNumbers, showCopyButton, wrap, maxHeight, highlight, className, ref, ...props }: CodeBlockProps): ReactElement;
59
+ declare namespace CodeBlock {
60
+ var displayName: string;
61
+ }
62
+ export { CodeBlock, codeBlockVariants, codeBlockSizeIds, codeBlockVariantIds, };
63
+ export type { CodeBlockSize, CodeBlockVariant };
64
+ export default CodeBlock;
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ import { useMemo, } from "react";
5
+ import { cn } from "../../../lib/utils";
6
+ import { CopyButton } from "../../ui/copy-button";
7
+ import { codeBlockSizeIds, codeBlockVariantIds, } from "./code-block-variants";
8
+ const codeBlockVariants = cva("relative overflow-hidden rounded-md border font-mono", {
9
+ variants: {
10
+ variant: {
11
+ default: "border-border bg-muted text-foreground",
12
+ terminal: "border-zinc-800 bg-zinc-950 text-zinc-100 dark:border-zinc-700",
13
+ subtle: "border-transparent bg-muted/60 text-muted-foreground",
14
+ contrast: "border-foreground/10 bg-foreground text-background",
15
+ },
16
+ size: {
17
+ sm: "text-xs",
18
+ md: "text-sm",
19
+ lg: "text-base",
20
+ },
21
+ },
22
+ defaultVariants: {
23
+ variant: "default",
24
+ size: "md",
25
+ },
26
+ });
27
+ const codeBlockHeaderVariants = cva("flex items-center justify-between gap-2 border-b px-3 py-2", {
28
+ variants: {
29
+ variant: {
30
+ default: "border-border/60 bg-background/40",
31
+ terminal: "border-zinc-800 bg-zinc-900/60",
32
+ subtle: "border-transparent bg-transparent",
33
+ contrast: "border-background/15 bg-foreground/95",
34
+ },
35
+ size: {
36
+ sm: "text-[11px]",
37
+ md: "text-xs",
38
+ lg: "text-sm",
39
+ },
40
+ },
41
+ defaultVariants: {
42
+ variant: "default",
43
+ size: "md",
44
+ },
45
+ });
46
+ const codeBlockBodyVariants = cva("overflow-auto", {
47
+ variants: {
48
+ size: {
49
+ sm: "p-3 leading-5",
50
+ md: "p-4 leading-6",
51
+ lg: "p-5 leading-7",
52
+ },
53
+ wrap: {
54
+ true: "whitespace-pre-wrap break-words",
55
+ false: "whitespace-pre",
56
+ },
57
+ },
58
+ defaultVariants: {
59
+ size: "md",
60
+ wrap: false,
61
+ },
62
+ });
63
+ const lineNumberVariants = cva("select-none pr-4 text-right tabular-nums", {
64
+ variants: {
65
+ variant: {
66
+ default: "text-muted-foreground/60",
67
+ terminal: "text-zinc-500",
68
+ subtle: "text-muted-foreground/50",
69
+ contrast: "text-background/50",
70
+ },
71
+ },
72
+ defaultVariants: {
73
+ variant: "default",
74
+ },
75
+ });
76
+ function CodeBlock({ value, language, title, variant, size, showLineNumbers = false, showCopyButton = true, wrap = false, maxHeight, highlight, className, ref, ...props }) {
77
+ const lines = useMemo(() => value.split("\n"), [value]);
78
+ const hasHeader = language !== undefined || title !== undefined || showCopyButton;
79
+ const resolvedVariant = variant ?? "default";
80
+ return (_jsxs("div", { ref: ref, "data-slot": "code-block", "data-variant": resolvedVariant, className: cn(codeBlockVariants({ variant, size }), className), ...props, children: [hasHeader && (_jsxs("div", { "data-slot": "code-block-header", className: cn(codeBlockHeaderVariants({ variant, size })), children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [language !== undefined && (_jsx("span", { "data-slot": "code-block-language", className: "rounded bg-foreground/10 px-1.5 py-0.5 font-mono text-[0.7em] font-semibold uppercase tracking-wide", children: language })), title !== undefined && (_jsx("span", { "data-slot": "code-block-title", className: "truncate font-sans text-[0.95em] font-medium opacity-90", children: title }))] }), showCopyButton && (_jsx(CopyButton, { value: value, size: "icon-sm", variant: resolvedVariant === "terminal" ? "ghost" : "ghost", className: cn(resolvedVariant === "terminal" &&
81
+ "text-zinc-300 hover:bg-zinc-800 hover:text-zinc-100 data-[copied=true]:text-green-400", resolvedVariant === "contrast" &&
82
+ "text-background hover:bg-background/10 hover:text-background data-[copied=true]:text-background") }))] })), _jsx("div", { "data-slot": "code-block-body", className: cn(codeBlockBodyVariants({ size, wrap })), style: maxHeight !== undefined ? { maxHeight } : undefined, children: _jsx("pre", { className: "m-0 min-w-full", children: showLineNumbers ? (_jsx("code", { className: "grid grid-cols-[auto_1fr]", children: lines.map((line, idx) => (_jsx(LineRow, { number: idx + 1, content: highlight ? highlight(line, language) : line, empty: line.length === 0, variant: resolvedVariant }, idx))) })) : (_jsx("code", { children: highlight ? highlight(value, language) : value })) }) })] }));
83
+ }
84
+ CodeBlock.displayName = "CodeBlock";
85
+ function LineRow({ number, content, empty, variant, }) {
86
+ return (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", "data-slot": "code-block-line-number", className: cn(lineNumberVariants({ variant })), children: number }), _jsx("span", { "data-slot": "code-block-line", children: empty ? "​" : content })] }));
87
+ }
88
+ export { CodeBlock, codeBlockVariants, codeBlockSizeIds, codeBlockVariantIds, };
89
+ export default CodeBlock;
90
+ //# sourceMappingURL=code-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../../../src/components/ui/code-block/code-block.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { CodeBlock, CodeBlock as default, codeBlockVariants, } from "./code-block";
2
+ export type { CodeBlockProps } from "./code-block";
3
+ export { codeBlockVariantIds, codeBlockSizeIds, } from "./code-block-variants";
4
+ export type { CodeBlockVariant, CodeBlockSize } from "./code-block-variants";
@@ -0,0 +1,3 @@
1
+ export { CodeBlock, CodeBlock as default, codeBlockVariants, } from "./code-block";
2
+ export { codeBlockVariantIds, codeBlockSizeIds, } from "./code-block-variants";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/code-block/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,IAAI,OAAO,EACpB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC"}
@@ -118,3 +118,7 @@ export * from "./timeline";
118
118
  export type * from "./timeline";
119
119
  export * from "./rating";
120
120
  export type * from "./rating";
121
+ export * from "./number-input";
122
+ export type * from "./number-input";
123
+ export * from "./code-block";
124
+ export type * from "./code-block";
@@ -58,4 +58,6 @@ export * from "./empty-state";
58
58
  export * from "./stat-card";
59
59
  export * from "./timeline";
60
60
  export * from "./rating";
61
+ export * from "./number-input";
62
+ export * from "./code-block";
61
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAGxB,cAAc,mBAAmB,CAAC;AAGlC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC;AAGxB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,kCAAkC,CAAC;AAGjD,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAExB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,aAAa,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,WAAW,CAAC;AAG1B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,2BAA2B,CAAC;AAG1C,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,OAAO,CAAC;AAGtB,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAGxB,cAAc,mBAAmB,CAAC;AAGlC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,UAAU,CAAC;AAGzB,cAAc,SAAS,CAAC;AAGxB,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,kCAAkC,CAAC;AAGjD,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,SAAS,CAAC;AAExB,cAAc,WAAW,CAAC;AAG1B,cAAc,YAAY,CAAC;AAG3B,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,aAAa,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,WAAW,CAAC;AAG1B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,UAAU,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,cAAc,CAAC;AAG7B,cAAc,eAAe,CAAC;AAG9B,cAAc,YAAY,CAAC;AAG3B,cAAc,2BAA2B,CAAC;AAG1C,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,QAAQ,CAAC;AAGvB,cAAc,QAAQ,CAAC;AAGvB,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,OAAO,CAAC;AAGtB,cAAc,eAAe,CAAC;AAG9B,cAAc,WAAW,CAAC;AAG1B,cAAc,UAAU,CAAC;AAGzB,cAAc,eAAe,CAAC;AAG9B,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,UAAU,CAAC;AAGzB,cAAc,gBAAgB,CAAC;AAG/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { NumberInput, NumberInput as default, numberInputContainerVariants, } from "./number-input";
2
+ export type { NumberInputProps } from "./number-input";
3
+ export { numberInputSizeIds, numberInputVariantIds, numberInputStepperLayoutIds, } from "./number-input-variants";
4
+ export type { NumberInputSize, NumberInputVariant, NumberInputStepperLayout, } from "./number-input-variants";
@@ -0,0 +1,3 @@
1
+ export { NumberInput, NumberInput as default, numberInputContainerVariants, } from "./number-input";
2
+ export { numberInputSizeIds, numberInputVariantIds, numberInputStepperLayoutIds, } from "./number-input-variants";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ui/number-input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,WAAW,IAAI,OAAO,EACtB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const numberInputSizeIds: readonly ["sm", "md", "lg"];
2
+ export type NumberInputSize = (typeof numberInputSizeIds)[number];
3
+ export declare const numberInputVariantIds: readonly ["default", "outline", "ghost"];
4
+ export type NumberInputVariant = (typeof numberInputVariantIds)[number];
5
+ export declare const numberInputStepperLayoutIds: readonly ["split", "stacked"];
6
+ export type NumberInputStepperLayout = (typeof numberInputStepperLayoutIds)[number];
@@ -0,0 +1,15 @@
1
+ export const numberInputSizeIds = [
2
+ "sm",
3
+ "md",
4
+ "lg",
5
+ ];
6
+ export const numberInputVariantIds = [
7
+ "default",
8
+ "outline",
9
+ "ghost",
10
+ ];
11
+ export const numberInputStepperLayoutIds = [
12
+ "split",
13
+ "stacked",
14
+ ];
15
+ //# sourceMappingURL=number-input-variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-input-variants.js","sourceRoot":"","sources":["../../../../src/components/ui/number-input/number-input-variants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI;IACJ,IAAI;IACJ,IAAI;CACgC,CAAC;AAGvC,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS;IACT,SAAS;IACT,OAAO;CAC6B,CAAC;AAGvC,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,OAAO;IACP,SAAS;CAC2B,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type ChangeEvent, type InputHTMLAttributes, type ReactElement, type ReactNode, type Ref } from "react";
3
+ import { type NumberInputStepperLayout } from "./number-input-variants";
4
+ declare const numberInputContainerVariants: (props?: ({
5
+ variant?: "default" | "ghost" | "outline" | null | undefined;
6
+ size?: "sm" | "lg" | "md" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export interface NumberInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "onChange" | "size" | "type" | "prefix">, VariantProps<typeof numberInputContainerVariants> {
9
+ /** Controlled numeric value. Use `null` to represent an empty input. */
10
+ value?: number | null;
11
+ /** Default uncontrolled value. */
12
+ defaultValue?: number | null;
13
+ /** Minimum allowed value. */
14
+ min?: number;
15
+ /** Maximum allowed value. */
16
+ max?: number;
17
+ /** Increment / decrement step. Defaults to 1. */
18
+ step?: number;
19
+ /** Number of decimal places to display & enforce. */
20
+ precision?: number;
21
+ /** Layout of the stepper buttons. */
22
+ stepperLayout?: NumberInputStepperLayout;
23
+ /** Hide the stepper buttons entirely. */
24
+ hideSteppers?: boolean;
25
+ /** Optional prefix shown inside the input (e.g. "$"). */
26
+ prefix?: ReactNode;
27
+ /** Optional suffix shown inside the input (e.g. "%"). */
28
+ suffix?: ReactNode;
29
+ /** Marks the input as invalid (sets aria-invalid and shows the destructive ring). */
30
+ invalid?: boolean;
31
+ /** Callback invoked with the parsed numeric value (or `null` when empty). */
32
+ onValueChange?: (value: number | null) => void;
33
+ /** Native onChange forwarded for compatibility. */
34
+ onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
35
+ /** Optional ref to the inner input element. */
36
+ inputRef?: Ref<HTMLInputElement>;
37
+ /** Optional class for the outer container. */
38
+ containerClassName?: string;
39
+ }
40
+ export declare function NumberInput({ value, defaultValue, min, max, step, precision, size, variant, stepperLayout, hideSteppers, prefix, suffix, invalid, disabled, readOnly, onValueChange, onChange, onBlur, onKeyDown, className, containerClassName, inputRef, id, name, placeholder, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, ...rest }: NumberInputProps): ReactElement;
41
+ export declare namespace NumberInput {
42
+ var displayName: string;
43
+ }
44
+ export { numberInputContainerVariants };
45
+ export default NumberInput;
@@ -0,0 +1,173 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Minus, Plus, ChevronUp, ChevronDown } from "lucide-react";
4
+ import { cva } from "class-variance-authority";
5
+ import { useCallback, useEffect, useRef, useState, } from "react";
6
+ import { cn } from "../../../lib/utils";
7
+ const numberInputContainerVariants = cva("relative inline-flex items-stretch w-full rounded-md transition-colors focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 ring-offset-background aria-invalid:ring-destructive/40 aria-invalid:focus-within:ring-destructive overflow-hidden", {
8
+ variants: {
9
+ variant: {
10
+ default: "border border-input bg-background",
11
+ outline: "border border-primary/40 bg-background",
12
+ ghost: "border border-transparent bg-muted/40",
13
+ },
14
+ size: {
15
+ sm: "h-8 text-xs",
16
+ md: "h-10 text-sm",
17
+ lg: "h-12 text-base",
18
+ },
19
+ },
20
+ defaultVariants: {
21
+ variant: "default",
22
+ size: "md",
23
+ },
24
+ });
25
+ const stepperButtonSizeClasses = {
26
+ sm: "h-full w-7",
27
+ md: "h-full w-9",
28
+ lg: "h-full w-11",
29
+ };
30
+ const stackedStepperButtonSizeClasses = {
31
+ sm: "h-1/2 w-7",
32
+ md: "h-1/2 w-9",
33
+ lg: "h-1/2 w-11",
34
+ };
35
+ const stepperIconSizeClasses = {
36
+ sm: "h-3 w-3",
37
+ md: "h-4 w-4",
38
+ lg: "h-5 w-5",
39
+ };
40
+ const adornmentPaddingClasses = {
41
+ sm: "px-2 text-muted-foreground",
42
+ md: "px-3 text-muted-foreground",
43
+ lg: "px-3.5 text-muted-foreground",
44
+ };
45
+ const inputPaddingClasses = {
46
+ sm: "px-2 py-1",
47
+ md: "px-3 py-2",
48
+ lg: "px-4 py-2",
49
+ };
50
+ function clamp(value, min, max) {
51
+ let next = value;
52
+ if (typeof min === "number" && next < min)
53
+ next = min;
54
+ if (typeof max === "number" && next > max)
55
+ next = max;
56
+ return next;
57
+ }
58
+ function formatValue(value, precision) {
59
+ if (typeof precision === "number" && precision >= 0) {
60
+ return value.toFixed(precision);
61
+ }
62
+ return String(value);
63
+ }
64
+ export function NumberInput({ value, defaultValue, min, max, step = 1, precision, size, variant, stepperLayout = "split", hideSteppers = false, prefix, suffix, invalid = false, disabled = false, readOnly = false, onValueChange, onChange, onBlur, onKeyDown, className, containerClassName, inputRef, id, name, placeholder, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, ...rest }) {
65
+ const isControlled = value !== undefined;
66
+ const resolvedSize = size ?? "md";
67
+ const [internal, setInternal] = useState(defaultValue ?? null);
68
+ const [text, setText] = useState(() => {
69
+ const seed = isControlled ? value ?? null : defaultValue ?? null;
70
+ return seed === null || seed === undefined ? "" : formatValue(seed, precision);
71
+ });
72
+ const lastEmittedRef = useRef(undefined);
73
+ const current = isControlled ? value ?? null : internal;
74
+ useEffect(() => {
75
+ if (!isControlled)
76
+ return;
77
+ const next = value ?? null;
78
+ setText(next === null ? "" : formatValue(next, precision));
79
+ }, [isControlled, value, precision]);
80
+ const emit = useCallback((next) => {
81
+ if (lastEmittedRef.current === next)
82
+ return;
83
+ lastEmittedRef.current = next;
84
+ if (!isControlled)
85
+ setInternal(next);
86
+ onValueChange?.(next);
87
+ }, [isControlled, onValueChange]);
88
+ const applyDelta = useCallback((direction) => {
89
+ if (disabled || readOnly)
90
+ return;
91
+ const base = typeof current === "number" ? current : (min ?? 0);
92
+ const candidate = base + direction * step;
93
+ const clamped = clamp(candidate, min, max);
94
+ const rounded = typeof precision === "number"
95
+ ? Number(clamped.toFixed(precision))
96
+ : clamped;
97
+ setText(formatValue(rounded, precision));
98
+ emit(rounded);
99
+ }, [current, disabled, readOnly, min, max, step, precision, emit]);
100
+ const handleInputChange = useCallback((event) => {
101
+ const raw = event.target.value;
102
+ setText(raw);
103
+ onChange?.(event);
104
+ if (raw === "" || raw === "-") {
105
+ emit(null);
106
+ return;
107
+ }
108
+ const parsed = Number(raw);
109
+ if (!Number.isFinite(parsed))
110
+ return;
111
+ emit(parsed);
112
+ }, [emit, onChange]);
113
+ const handleBlur = useCallback((event) => {
114
+ onBlur?.(event);
115
+ if (text === "" || text === "-") {
116
+ emit(null);
117
+ setText("");
118
+ return;
119
+ }
120
+ const parsed = Number(text);
121
+ if (!Number.isFinite(parsed)) {
122
+ setText(current === null ? "" : formatValue(current, precision));
123
+ return;
124
+ }
125
+ const clamped = clamp(parsed, min, max);
126
+ const rounded = typeof precision === "number"
127
+ ? Number(clamped.toFixed(precision))
128
+ : clamped;
129
+ setText(formatValue(rounded, precision));
130
+ emit(rounded);
131
+ }, [text, onBlur, emit, min, max, precision, current]);
132
+ const handleKeyDown = useCallback((event) => {
133
+ onKeyDown?.(event);
134
+ if (event.defaultPrevented)
135
+ return;
136
+ if (event.key === "ArrowUp") {
137
+ event.preventDefault();
138
+ applyDelta(1);
139
+ }
140
+ else if (event.key === "ArrowDown") {
141
+ event.preventDefault();
142
+ applyDelta(-1);
143
+ }
144
+ }, [applyDelta, onKeyDown]);
145
+ const isAtMin = typeof min === "number" && typeof current === "number" && current <= min;
146
+ const isAtMax = typeof max === "number" && typeof current === "number" && current >= max;
147
+ const stepperDisabled = disabled || readOnly;
148
+ const renderStepperButton = (direction, layout) => {
149
+ const sizeClass = layout === "stacked"
150
+ ? stackedStepperButtonSizeClasses[resolvedSize]
151
+ : stepperButtonSizeClasses[resolvedSize];
152
+ const ariaLabel = direction === 1 ? "Increase value" : "Decrease value";
153
+ const Icon = layout === "stacked"
154
+ ? direction === 1
155
+ ? ChevronUp
156
+ : ChevronDown
157
+ : direction === 1
158
+ ? Plus
159
+ : Minus;
160
+ const disabledForDirection = stepperDisabled || (direction === 1 ? isAtMax : isAtMin);
161
+ return (_jsx("button", { type: "button", tabIndex: -1, "aria-label": ariaLabel, disabled: disabledForDirection, onClick: () => applyDelta(direction), "data-slot": "number-input-stepper", "data-direction": direction === 1 ? "up" : "down", className: cn("inline-flex items-center justify-center select-none shrink-0", "text-muted-foreground hover:text-foreground hover:bg-accent", "transition-colors", "disabled:opacity-40 disabled:pointer-events-none", "focus-visible:outline-none focus-visible:bg-accent focus-visible:text-accent-foreground", sizeClass), children: _jsx(Icon, { className: cn(layout === "stacked"
162
+ ? "h-3 w-3"
163
+ : stepperIconSizeClasses[resolvedSize]), "aria-hidden": "true" }) }));
164
+ };
165
+ const stepperDecrement = !hideSteppers ? renderStepperButton(-1, "split") : null;
166
+ const stepperIncrement = !hideSteppers ? renderStepperButton(1, "split") : null;
167
+ const stackedSteppers = !hideSteppers ? (_jsxs("div", { className: "flex flex-col items-stretch shrink-0 border-l border-input", "data-slot": "number-input-stepper-group", children: [renderStepperButton(1, "stacked"), _jsx("div", { className: "border-t border-input", "aria-hidden": "true" }), renderStepperButton(-1, "stacked")] })) : null;
168
+ return (_jsxs("div", { "data-slot": "number-input", "data-disabled": disabled || undefined, "data-readonly": readOnly || undefined, "aria-invalid": invalid || undefined, className: cn(numberInputContainerVariants({ variant, size: resolvedSize }), disabled && "opacity-50 cursor-not-allowed", containerClassName), children: [stepperLayout === "split" && stepperDecrement ? (_jsx("div", { className: "flex items-stretch border-r border-input", children: stepperDecrement })) : null, prefix !== undefined && prefix !== null ? (_jsx("span", { "data-slot": "number-input-prefix", className: cn("inline-flex items-center justify-center", adornmentPaddingClasses[resolvedSize]), children: prefix })) : null, _jsx("input", { ...rest, ref: inputRef, id: id, name: name, type: "text", inputMode: "decimal", role: "spinbutton", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": current ?? undefined, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, "aria-invalid": invalid || undefined, disabled: disabled, readOnly: readOnly, placeholder: placeholder, value: text, onChange: handleInputChange, onBlur: handleBlur, onKeyDown: handleKeyDown, className: cn("flex-1 min-w-0 bg-transparent text-center tabular-nums", "placeholder:text-muted-foreground", "focus:outline-none", "disabled:cursor-not-allowed", inputPaddingClasses[resolvedSize], className) }), suffix !== undefined && suffix !== null ? (_jsx("span", { "data-slot": "number-input-suffix", className: cn("inline-flex items-center justify-center", adornmentPaddingClasses[resolvedSize]), children: suffix })) : null, stepperLayout === "split" && stepperIncrement ? (_jsx("div", { className: "flex items-stretch border-l border-input", children: stepperIncrement })) : null, stepperLayout === "stacked" ? stackedSteppers : null] }));
169
+ }
170
+ NumberInput.displayName = "NumberInput";
171
+ export { numberInputContainerVariants };
172
+ export default NumberInput;
173
+ //# sourceMappingURL=number-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-input.js","sourceRoot":"","sources":["../../../../src/components/ui/number-input/number-input.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schemavaults/ui",
3
- "version": "0.24.0",
3
+ "version": "0.27.0",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "description": "React.js UI components for SchemaVaults frontend applications",