@nomos-ui/form 0.0.25 → 0.0.27
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/file-input.d.ts +4 -4
- package/dist/components/file-input.d.ts.map +1 -1
- package/dist/components/file-input.js +5 -3
- package/dist/components/file-input.js.map +1 -1
- package/dist/components/form-file-input.d.ts.map +1 -1
- package/dist/components/form-file-input.js +1 -1
- package/dist/components/form-file-input.js.map +1 -1
- package/dist/components/form-image-input.js +1 -1
- package/dist/components/form-image-input.js.map +1 -1
- package/dist/components/form-select.d.ts.map +1 -1
- package/dist/components/form-select.js +1 -1
- package/dist/components/form-select.js.map +1 -1
- package/dist/components/image-input.d.ts +3 -3
- package/dist/components/image-input.d.ts.map +1 -1
- package/dist/components/image-input.js +5 -3
- package/dist/components/image-input.js.map +1 -1
- package/dist/components/input.d.ts +3 -3
- package/dist/components/input.d.ts.map +1 -1
- package/dist/components/input.js +4 -2
- package/dist/components/input.js.map +1 -1
- package/dist/components/select.d.ts +7 -18
- package/dist/components/select.d.ts.map +1 -1
- package/dist/components/select.js +7 -4
- package/dist/components/select.js.map +1 -1
- package/dist/components/textarea.d.ts +3 -3
- package/dist/components/textarea.d.ts.map +1 -1
- package/dist/components/textarea.js +5 -2
- package/dist/components/textarea.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ type FileInputPropsBase = {
|
|
|
7
7
|
/** Label text rendered above the dropzone. */
|
|
8
8
|
label?: string;
|
|
9
9
|
/** Props forwarded to the label wrapper div. */
|
|
10
|
-
labelProps?: React.
|
|
10
|
+
labelProps?: React.ComponentProps<"label">;
|
|
11
11
|
/** Marks the field as required for native form validation. */
|
|
12
12
|
required?: boolean;
|
|
13
13
|
/**
|
|
@@ -48,7 +48,7 @@ type FileInputPropsBase = {
|
|
|
48
48
|
onError?: (message: string) => void;
|
|
49
49
|
/** Disables the dropzone click / drag and all per-file remove buttons. */
|
|
50
50
|
disabled?: boolean;
|
|
51
|
-
}
|
|
51
|
+
} & React.ComponentProps<"input">;
|
|
52
52
|
type FileInputPropsSingle = FileInputPropsBase & {
|
|
53
53
|
/**
|
|
54
54
|
* When `false` (default) `onChange` receives a single `File | null`.
|
|
@@ -79,7 +79,7 @@ type FileInputPropsMultiple = FileInputPropsBase & {
|
|
|
79
79
|
* @param files - The complete updated file list.
|
|
80
80
|
*/
|
|
81
81
|
onChange?: (files: File[]) => void;
|
|
82
|
-
}
|
|
82
|
+
} & React.ComponentProps<"input">;
|
|
83
83
|
/**
|
|
84
84
|
* A file-upload input that follows the shadcn component ideology.
|
|
85
85
|
*
|
|
@@ -121,6 +121,6 @@ type FileInputPropsMultiple = FileInputPropsBase & {
|
|
|
121
121
|
* ```
|
|
122
122
|
*/
|
|
123
123
|
export type FileInputProps = FileInputPropsSingle | FileInputPropsMultiple;
|
|
124
|
-
export default function FileInput({ className, dropzoneProps, label, labelProps, required, showRequiredSign, tip, error, accept, acceptLabel, maxSize, multiple, value, onChange, onError, disabled, }: FileInputProps): import("react/jsx-runtime").JSX.Element;
|
|
124
|
+
export default function FileInput({ className, dropzoneProps, label, labelProps, required, showRequiredSign, tip, error, accept, acceptLabel, maxSize, multiple, value, onChange, onError, disabled, ...props }: FileInputProps): import("react/jsx-runtime").JSX.Element;
|
|
125
125
|
export {};
|
|
126
126
|
//# sourceMappingURL=file-input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-input.d.ts","sourceRoot":"","sources":["../../src/components/file-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"file-input.d.ts","sourceRoot":"","sources":["../../src/components/file-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,KAAK,kBAAkB,GAAG;IACxB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,aAAa,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IACrD,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAElC,KAAK,oBAAoB,GAAG,kBAAkB,GAAG;IAC/C;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,yDAAyD;IACzD,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,KAAK,sBAAsB,GAAG,kBAAkB,GAAG;IACjD;;OAEG;IACH,QAAQ,EAAE,IAAI,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CACpC,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAQ3E,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,SAAS,EACT,aAAa,EACb,KAAK,EACL,UAAU,EACV,QAAgB,EAChB,gBAAwB,EACxB,GAAG,EACH,KAAK,EACL,MAAM,EACN,WAAW,EACX,OAAO,EACP,QAAgB,EAChB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,GAAG,KAAK,EACT,EAAE,cAAc,2CAgMhB"}
|
|
@@ -38,6 +38,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
38
38
|
const React = __importStar(require("react"));
|
|
39
39
|
const lucide_react_1 = require("lucide-react");
|
|
40
40
|
const utils_1 = require("../utils/shadcn-ui/utils");
|
|
41
|
+
const tailwind_merge_1 = require("tailwind-merge");
|
|
41
42
|
function formatBytes(bytes) {
|
|
42
43
|
if (bytes < 1024)
|
|
43
44
|
return `${bytes} B`;
|
|
@@ -45,7 +46,7 @@ function formatBytes(bytes) {
|
|
|
45
46
|
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
46
47
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
47
48
|
}
|
|
48
|
-
function FileInput({ className, dropzoneProps, label, labelProps, required = false, showRequiredSign = false, tip, error, accept, acceptLabel, maxSize, multiple = false, value, onChange, onError, disabled = false, }) {
|
|
49
|
+
function FileInput({ className, dropzoneProps, label, labelProps, required = false, showRequiredSign = false, tip, error, accept, acceptLabel, maxSize, multiple = false, value, onChange, onError, disabled = false, ...props }) {
|
|
49
50
|
const inputRef = React.useRef(null);
|
|
50
51
|
const [isDragging, setIsDragging] = React.useState(false);
|
|
51
52
|
const idMapRef = React.useRef(new WeakMap());
|
|
@@ -105,9 +106,10 @@ function FileInput({ className, dropzoneProps, label, labelProps, required = fal
|
|
|
105
106
|
processFiles(e.dataTransfer.files);
|
|
106
107
|
}
|
|
107
108
|
const { className: dropzoneClassName, ...restDropzoneProps } = dropzoneProps ?? {};
|
|
108
|
-
const { className: labelClassName, ...restLabelProps } = labelProps ?? {};
|
|
109
109
|
const hasFiles = fileList.length > 0;
|
|
110
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("w-full space-y-1.5", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", {
|
|
110
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("w-full space-y-1.5", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("flex items-center gap-1"), children: [(0, jsx_runtime_1.jsx)("label", { ...labelProps, ...((labelProps?.htmlFor || props?.id) && {
|
|
111
|
+
htmlFor: labelProps?.htmlFor || props?.id,
|
|
112
|
+
}), className: (0, tailwind_merge_1.twMerge)("text-sm font-bold text-foreground", labelProps?.className), children: label }), required && showRequiredSign && ((0, jsx_runtime_1.jsx)(lucide_react_1.AsteriskIcon, { className: "h-3 w-3 text-destructive" }))] })), (0, jsx_runtime_1.jsxs)("div", { ...restDropzoneProps, onDragOver: onDragOver, onDragLeave: onDragLeave, onDrop: onDrop, className: (0, utils_1.cn)("relative flex flex-col items-center justify-center gap-3 rounded-lg border-2 border-dashed px-6 py-8 text-center transition-colors", "border-input bg-transparent", !disabled && "hover:border-ring/50 hover:bg-accent/40", isDragging && "border-ring bg-accent/60", error && "border-destructive", disabled && "cursor-not-allowed opacity-50", dropzoneClassName), children: [(0, jsx_runtime_1.jsx)("input", { ...props, ref: inputRef, type: "file", accept: accept, multiple: multiple, disabled: disabled, className: "absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed", onChange: (e) => processFiles(e.target.files) }), (0, jsx_runtime_1.jsx)(lucide_react_1.CloudUploadIcon, { className: (0, utils_1.cn)("h-8 w-8 transition-colors", isDragging ? "text-ring" : "text-muted-foreground"), strokeWidth: 1.5 }), (0, jsx_runtime_1.jsxs)("div", { className: "pointer-events-none select-none space-y-1", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm font-medium text-foreground", children: "Choose a file or drag & drop it here" }), (acceptLabel || maxSize) && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: [acceptLabel, maxSize ? `up to ${formatBytes(maxSize)}` : null]
|
|
111
113
|
.filter(Boolean)
|
|
112
114
|
.join(", ") }))] }), (0, jsx_runtime_1.jsx)("span", { className: "pointer-events-none select-none inline-flex items-center rounded-md border border-input bg-background px-3 py-1.5 text-sm font-medium shadow-xs", children: "Browse File" })] }), hasFiles && ((0, jsx_runtime_1.jsx)("ul", { className: "space-y-2", children: fileList.map((file) => ((0, jsx_runtime_1.jsxs)("li", { className: "flex items-center gap-3 rounded-lg border border-input bg-background px-3 py-2.5 shadow-xs", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-input bg-muted", children: (0, jsx_runtime_1.jsx)(lucide_react_1.FileIcon, { className: "h-4 w-4 text-muted-foreground" }) }), (0, jsx_runtime_1.jsxs)("div", { className: "min-w-0 flex-1", children: [(0, jsx_runtime_1.jsx)("p", { className: "truncate text-sm font-medium text-foreground", children: file.name }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground", children: formatBytes(file.size) })] }), !disabled && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => removeFile(file), className: "shrink-0 rounded-full p-1 text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "aria-label": `Remove ${file.name}`, children: (0, jsx_runtime_1.jsx)(lucide_react_1.XIcon, { className: "h-4 w-4" }) }))] }, getFileId(file)))) })), tip && !error && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground tip-message", children: tip })), error && ((0, jsx_runtime_1.jsxs)("p", { className: "text-xs text-destructive error-message", children: ["*", error] }))] }));
|
|
113
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-input.js","sourceRoot":"","sources":["../../src/components/file-input.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"file-input.js","sourceRoot":"","sources":["../../src/components/file-input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-file-input.d.ts","sourceRoot":"","sources":["../../src/components/form-file-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,WAAW,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGzD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,CAAC,YAAY,SAAS,WAAW,IAAI,IAAI,CACrE,cAAc,EACd,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAC3C,GAAG;IACF,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,qEAAqE;IACrE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,YAAY,SAAS,WAAW,EAAE,EACtE,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"form-file-input.d.ts","sourceRoot":"","sources":["../../src/components/form-file-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,WAAW,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAkB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGzD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,CAAC,YAAY,SAAS,WAAW,IAAI,IAAI,CACrE,cAAc,EACd,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAC3C,GAAG;IACF,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,qEAAqE;IACrE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,YAAY,SAAS,WAAW,EAAE,EACtE,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,YAAY,CAAC,2CAyBlC"}
|
|
@@ -39,7 +39,7 @@ const form_helpers_1 = require("../utils/helpers/form.helpers");
|
|
|
39
39
|
function FormFileInput({ control, name, ...props }) {
|
|
40
40
|
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { control: control, name: name, rules: {
|
|
41
41
|
required: props.required ? "Required" : false,
|
|
42
|
-
}, render: ({ field: { onChange, value }, formState: { errors } }) => ((0, jsx_runtime_1.jsx)(file_input_1.default, { ...props, value: value, onChange: onChange, onError: (errorMessage) => {
|
|
42
|
+
}, render: ({ field: { onChange, value }, formState: { errors } }) => ((0, jsx_runtime_1.jsx)(file_input_1.default, { id: `form-input-${name}`, ...props, value: value, onChange: onChange, onError: (errorMessage) => {
|
|
43
43
|
control.setError(name, {
|
|
44
44
|
type: "manual",
|
|
45
45
|
message: errorMessage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-file-input.js","sourceRoot":"","sources":["../../src/components/form-file-input.tsx"],"names":[],"mappings":";;;;;AAgDA,
|
|
1
|
+
{"version":3,"file":"form-file-input.js","sourceRoot":"","sources":["../../src/components/form-file-input.tsx"],"names":[],"mappings":";;;;;AAgDA,gCA6BC;;AA7ED,qDAAyE;AACzE,8DAAyD;AACzD,gEAAsE;AAkBtE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,SAAwB,aAAa,CAAmC,EACtE,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EACyB;IACjC,OAAO,CACL,uBAAC,4BAAU,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK;SAC9C,EACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CACjE,uBAAC,oBAAS,IACR,EAAE,EAAE,cAAc,IAAI,EAAE,KACpB,KAAK,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,YAAiB,EAAE,EAAE;gBAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC,EACD,KAAK,EAAE,IAAA,oCAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,GAC1C,CACH,GACD,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -11,7 +11,7 @@ const form_helpers_1 = require("../utils/helpers/form.helpers");
|
|
|
11
11
|
function FormImageInput({ control, name, ...props }) {
|
|
12
12
|
return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { control: control, name: name, rules: {
|
|
13
13
|
required: props.required ? "Required" : false,
|
|
14
|
-
}, render: ({ field: { onChange, value }, formState: { errors } }) => ((0, jsx_runtime_1.jsx)(image_input_1.default, {
|
|
14
|
+
}, render: ({ field: { onChange, value }, formState: { errors } }) => ((0, jsx_runtime_1.jsx)(image_input_1.default, { id: `form-input-${name}`, ...props, value: value, onChange: onChange, onError: (errorMessage) => {
|
|
15
15
|
control.setError(name, {
|
|
16
16
|
type: "manual",
|
|
17
17
|
message: errorMessage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-image-input.js","sourceRoot":"","sources":["../../src/components/form-image-input.tsx"],"names":[],"mappings":";;;;;AAYA,iCA6BC;;AAzCD,qDAAyE;AACzE,gEAA4D;AAC5D,gEAAsE;AAUtE,SAAwB,cAAc,CAAmC,EACvE,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EAC0B;IAClC,OAAO,CACL,uBAAC,4BAAU,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK;SAC9C,EACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CACjE,uBAAC,qBAAU,
|
|
1
|
+
{"version":3,"file":"form-image-input.js","sourceRoot":"","sources":["../../src/components/form-image-input.tsx"],"names":[],"mappings":";;;;;AAYA,iCA6BC;;AAzCD,qDAAyE;AACzE,gEAA4D;AAC5D,gEAAsE;AAUtE,SAAwB,cAAc,CAAmC,EACvE,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EAC0B;IAClC,OAAO,CACL,uBAAC,4BAAU,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK;SAC9C,EACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CACjE,uBAAC,qBAAU,IACT,EAAE,EAAE,cAAc,IAAI,EAAE,KACpB,KAAK,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,YAAiB,EAAE,EAAE;gBAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACrB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAC;YACL,CAAC,EACD,KAAK,EAAE,IAAA,oCAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,GAC1C,CACH,GACD,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-select.d.ts","sourceRoot":"","sources":["../../src/components/form-select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,WAAW,EACX,IAAI,EACJ,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;GAEG;AACH,MAAM,MAAM,eAAe,CACzB,YAAY,SAAS,WAAW,EAChC,CAAC,SAAS,MAAM,GAAG,MAAM,IACvB;IACF,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,gEAAgE;IAChE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,qBAAqB;IACrB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CACN,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EACnC,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAC7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,YAAY,SAAS,WAAW,EAChC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,EACA,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAe,EACf,QAAgB,EAChB,OAAO,EACP,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"form-select.d.ts","sourceRoot":"","sources":["../../src/components/form-select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,WAAW,EACX,IAAI,EACJ,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;GAEG;AACH,MAAM,MAAM,eAAe,CACzB,YAAY,SAAS,WAAW,EAChC,CAAC,SAAS,MAAM,GAAG,MAAM,IACvB;IACF,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,gEAAgE;IAChE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3D,qBAAqB;IACrB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CACN,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EACnC,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAC7C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,YAAY,SAAS,WAAW,EAChC,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,EACA,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAe,EACf,QAAgB,EAChB,OAAO,EACP,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,2CAuBlC"}
|
|
@@ -45,6 +45,6 @@ const form_helpers_1 = require("../utils/helpers/form.helpers");
|
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
47
|
function FormSelect({ control, name, defaultValue, required = true, multiple = false, options, ...props }) {
|
|
48
|
-
return ((0, jsx_runtime_1.jsx)("div", { className: "w-full", children: (0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { control: control, name: name, defaultValue: defaultValue, rules: { required: required ? "Required" : false }, render: ({ field: { onChange, value }, formState: { errors } }) => ((0, jsx_runtime_1.jsx)(select_1.default, { value: value ?? (multiple ? [] : ""), onChange: onChange, required: required, multiple: multiple, options: options, error: (0, form_helpers_1.getNestedErrorMessage)(errors || {}, name), ...props })) }) }));
|
|
48
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "w-full", children: (0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { control: control, name: name, defaultValue: defaultValue, rules: { required: required ? "Required" : false }, render: ({ field: { onChange, value }, formState: { errors } }) => ((0, jsx_runtime_1.jsx)(select_1.default, { triggerProps: { id: `form-select-${name}` }, value: value ?? (multiple ? [] : ""), onChange: onChange, required: required, multiple: multiple, options: options, error: (0, form_helpers_1.getNestedErrorMessage)(errors || {}, name), ...props })) }) }));
|
|
49
49
|
}
|
|
50
50
|
//# sourceMappingURL=form-select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-select.js","sourceRoot":"","sources":["../../src/components/form-select.tsx"],"names":[],"mappings":";;;;;AAqEA,
|
|
1
|
+
{"version":3,"file":"form-select.js","sourceRoot":"","sources":["../../src/components/form-select.tsx"],"names":[],"mappings":";;;;;AAqEA,6BAkCC;;AAvGD,qDAMyB;AACzB,sDAAgD;AAEhD,gEAAsE;AAwBtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,SAAwB,UAAU,CAGhC,EACA,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,GAAG,KAAK,EACyB;IACjC,OAAO,CACL,gCAAK,SAAS,EAAC,QAAQ,YACrB,uBAAC,4BAAU,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAClD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CACjE,uBAAC,gBAAM,IACL,YAAY,EAAE,EAAE,EAAE,EAAE,eAAe,IAAI,EAAE,EAAE,EAC3C,KAAK,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAA,oCAAqB,EAAC,MAAM,IAAI,EAAE,EAAE,IAAI,CAAW,KACtD,KAAK,GACT,CACH,GACD,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -10,13 +10,13 @@ export type ImageInputProps = {
|
|
|
10
10
|
accept?: string;
|
|
11
11
|
maxSize?: number;
|
|
12
12
|
error?: string;
|
|
13
|
-
name: string;
|
|
14
13
|
label?: string;
|
|
14
|
+
labelProps?: React.ComponentProps<"label">;
|
|
15
15
|
required?: boolean;
|
|
16
16
|
showRequiredSign?: boolean;
|
|
17
17
|
tip?: string;
|
|
18
18
|
renderEmpty?: () => React.ReactNode;
|
|
19
19
|
renderPreview?: (url: string, onRemove: () => void) => React.ReactNode;
|
|
20
|
-
}
|
|
21
|
-
export default function ImageInput({ value, onChange, onError, className, dropzoneClassName, previewClassName, disabled, accept, maxSize, error,
|
|
20
|
+
} & React.ComponentProps<"input">;
|
|
21
|
+
export default function ImageInput({ value, onChange, labelProps, onError, className, dropzoneClassName, previewClassName, disabled, accept, maxSize, error, label, required, showRequiredSign, tip, renderEmpty, renderPreview, ...props }: ImageInputProps): import("react/jsx-runtime").JSX.Element;
|
|
22
22
|
//# sourceMappingURL=image-input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-input.d.ts","sourceRoot":"","sources":["../../src/components/image-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"image-input.d.ts","sourceRoot":"","sources":["../../src/components/image-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;CACxE,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAElC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,UAAU,EACV,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,QAAgB,EAChB,MAAkB,EAClB,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAgB,EAChB,gBAAwB,EACxB,GAAG,EACH,WAAW,EACX,aAAa,EACb,GAAG,KAAK,EACT,EAAE,eAAe,2CAqIjB"}
|
|
@@ -8,7 +8,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
9
|
const lucide_react_1 = require("lucide-react");
|
|
10
10
|
const tailwind_merge_1 = require("tailwind-merge");
|
|
11
|
-
function ImageInput({ value, onChange, onError, className, dropzoneClassName, previewClassName, disabled = false, accept = "image/*", maxSize, error,
|
|
11
|
+
function ImageInput({ value, onChange, labelProps, onError, className, dropzoneClassName, previewClassName, disabled = false, accept = "image/*", maxSize, error, label, required = false, showRequiredSign = false, tip, renderEmpty, renderPreview, ...props }) {
|
|
12
12
|
const [isDragging, setIsDragging] = react_1.default.useState(false);
|
|
13
13
|
const handleFile = (file) => {
|
|
14
14
|
if (file) {
|
|
@@ -32,7 +32,9 @@ function ImageInput({ value, onChange, onError, className, dropzoneClassName, pr
|
|
|
32
32
|
else if (typeof value === "string") {
|
|
33
33
|
previewUrl = value;
|
|
34
34
|
}
|
|
35
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, tailwind_merge_1.twMerge)("space-y-1.5 w-full", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1.5", children: [(0, jsx_runtime_1.jsx)("label", {
|
|
35
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, tailwind_merge_1.twMerge)("space-y-1.5 w-full", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1.5", children: [(0, jsx_runtime_1.jsx)("label", { ...((labelProps?.htmlFor || props?.id) && {
|
|
36
|
+
htmlFor: labelProps?.htmlFor || props?.id,
|
|
37
|
+
}), className: "text-sm font-bold text-foreground", children: label }), required && showRequiredSign && ((0, jsx_runtime_1.jsx)(lucide_react_1.AsteriskIcon, { className: "w-3 h-3 text-destructive" })), tip && ((0, jsx_runtime_1.jsxs)("div", { className: "ml-auto relative group", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.CircleHelpIcon, { className: "w-4 h-4 text-muted-foreground cursor-help" }), (0, jsx_runtime_1.jsx)("span", { className: "absolute left-1/2 -translate-x-1/2 top-6 w-max max-w-xs px-2 py-1 bg-popover text-popover-foreground text-xs rounded-md border border-input shadow-md opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-50", children: tip })] }))] })), (0, jsx_runtime_1.jsxs)("div", { className: "relative h-48 w-full", children: [(0, jsx_runtime_1.jsx)("input", { type: "file", accept: accept, disabled: disabled, onChange: (e) => handleFile(e.target.files?.[0] || null), className: "absolute inset-0 w-full h-full opacity-0 cursor-pointer z-10 disabled:cursor-not-allowed", onDragOver: (e) => {
|
|
36
38
|
e.preventDefault();
|
|
37
39
|
if (!disabled)
|
|
38
40
|
setIsDragging(true);
|
|
@@ -45,7 +47,7 @@ function ImageInput({ value, onChange, onError, className, dropzoneClassName, pr
|
|
|
45
47
|
if (!disabled && e.dataTransfer.files?.[0]) {
|
|
46
48
|
handleFile(e.dataTransfer.files[0]);
|
|
47
49
|
}
|
|
48
|
-
} }), (0, jsx_runtime_1.jsx)("div", { className: (0, tailwind_merge_1.twMerge)("w-full h-full border-2 border-input border-dashed rounded-lg flex items-center justify-center bg-transparent transition-colors", disabled && "opacity-50 cursor-not-allowed", isDragging && "border-primary bg-primary/5", !isDragging &&
|
|
50
|
+
}, ...props }), (0, jsx_runtime_1.jsx)("div", { className: (0, tailwind_merge_1.twMerge)("w-full h-full border-2 border-input border-dashed rounded-lg flex items-center justify-center bg-transparent transition-colors", disabled && "opacity-50 cursor-not-allowed", isDragging && "border-primary bg-primary/5", !isDragging &&
|
|
49
51
|
!previewUrl &&
|
|
50
52
|
"border-input hover:border-primary/50", dropzoneClassName), children: previewUrl ? (renderPreview ? (renderPreview(previewUrl, handleRemove)) : ((0, jsx_runtime_1.jsxs)("div", { className: (0, tailwind_merge_1.twMerge)("relative w-full h-full", previewClassName), children: [(0, jsx_runtime_1.jsx)("img", { src: previewUrl, alt: "Preview", className: "w-full h-full object-cover rounded-lg" }), !disabled && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: (e) => {
|
|
51
53
|
e.preventDefault();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-input.js","sourceRoot":"","sources":["../../src/components/image-input.tsx"],"names":[],"mappings":";;;;;AAwBA,
|
|
1
|
+
{"version":3,"file":"image-input.js","sourceRoot":"","sources":["../../src/components/image-input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ export type InputProps<TValue> = {
|
|
|
11
11
|
placeholder?: string;
|
|
12
12
|
/** Label text for the input */
|
|
13
13
|
label?: string;
|
|
14
|
-
/** Additional
|
|
15
|
-
|
|
14
|
+
/** Additional label name for the label */
|
|
15
|
+
labelProps?: React.ComponentProps<"label">;
|
|
16
16
|
/** Additional class name for the input container/wrapper */
|
|
17
17
|
inputContainerClassName?: string;
|
|
18
18
|
/** Input type (e.g., text, number, password) */
|
|
@@ -65,5 +65,5 @@ export type InputProps<TValue> = {
|
|
|
65
65
|
* />
|
|
66
66
|
* ```
|
|
67
67
|
*/
|
|
68
|
-
export default function Input<TValue extends string | number | null | undefined>({ inputClassName, className, placeholder, label,
|
|
68
|
+
export default function Input<TValue extends string | number | null | undefined>({ inputClassName, className, placeholder, label, labelProps, type, disabled, trim, value, onChange, required, showRequiredSign, tip, error, inputContainerClassName, ref, inputRef, showSearchIcon, ...props }: InputProps<TValue> & Omit<React.InputHTMLAttributes<HTMLInputElement>, keyof InputProps<TValue>>): import("react/jsx-runtime").JSX.Element;
|
|
69
69
|
//# sourceMappingURL=input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,IAAI;IAC/B,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,IAAI;IAC/B,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,4DAA4D;IAC5D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC5E,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,gCAAgC;IAChC,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,yEAAyE;IACzE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAC3B,MAAM,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACjD,EACA,cAAc,EACd,SAAS,EACT,WAAW,EACX,KAAK,EACL,UAAU,EACV,IAAa,EACb,QAAgB,EAChB,IAAY,EACZ,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,gBAAwB,EACxB,GAAG,EACH,KAAK,EACL,uBAAuB,EACvB,GAAG,EACH,QAAQ,EACR,cAAc,EACd,GAAG,KAAK,EACT,EAAE,UAAU,CAAC,MAAM,CAAC,GACnB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,2CA0I5E"}
|
package/dist/components/input.js
CHANGED
|
@@ -30,7 +30,7 @@ const utils_1 = require("../utils/shadcn-ui/utils");
|
|
|
30
30
|
* />
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
|
-
function Input({ inputClassName, className, placeholder, label,
|
|
33
|
+
function Input({ inputClassName, className, placeholder, label, labelProps, type = "text", disabled = false, trim = false, value, onChange, required = false, showRequiredSign = false, tip, error, inputContainerClassName, ref, inputRef, showSearchIcon, ...props }) {
|
|
34
34
|
const isPassword = type.includes("password");
|
|
35
35
|
const [showPassword, setShowPassword] = (0, react_1.useState)(!isPassword);
|
|
36
36
|
const [isFocused, setIsFocused] = (0, react_1.useState)(false);
|
|
@@ -51,7 +51,9 @@ function Input({ inputClassName, className, placeholder, label, labelClassName,
|
|
|
51
51
|
return value?.toString().split("T")[0];
|
|
52
52
|
return value;
|
|
53
53
|
}, [value, type]);
|
|
54
|
-
return ((0, jsx_runtime_1.jsxs)("div", { ref: ref, className: (0, utils_1.cn)("gap-1 grid w-full", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [(0, jsx_runtime_1.jsx)("label", { htmlFor
|
|
54
|
+
return ((0, jsx_runtime_1.jsxs)("div", { ref: ref, className: (0, utils_1.cn)("gap-1 grid w-full", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [(0, jsx_runtime_1.jsx)("label", { ...((labelProps?.htmlFor || props?.id) && {
|
|
55
|
+
htmlFor: labelProps?.htmlFor || props?.id,
|
|
56
|
+
}), className: (0, utils_1.cn)("text-sm font-bold text-foreground", labelProps?.className), children: label }), required && showRequiredSign && ((0, jsx_runtime_1.jsx)(lucide_react_1.AsteriskIcon, { size: 12, className: "text-destructive" }))] })), (0, jsx_runtime_1.jsxs)("div", { "data-focus": isFocused, className: (0, utils_1.cn)("flex w-full min-w-0 rounded-md border bg-transparent shadow-xs transition-[color,box-shadow,border-color]", "border-input file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground", "placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground",
|
|
55
57
|
// Focus styles
|
|
56
58
|
"focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-[3px]", "data-[focus=true]:border-ring data-[focus=true]:ring-ring/50 data-[focus=true]:ring-[3px]",
|
|
57
59
|
// Error/Invalid styles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":";;AAwEA,
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { SelectContentProps, SelectGroupProps, SelectItemProps, SelectTriggerProps, SelectValueProps } from "@radix-ui/react-select";
|
|
2
3
|
export type SelectOption<T = string> = {
|
|
3
4
|
value: T;
|
|
4
5
|
label: React.ReactNode;
|
|
@@ -13,24 +14,12 @@ export type SelectProps<T = string> = {
|
|
|
13
14
|
onChange?: (value: T | T[]) => void;
|
|
14
15
|
placeholder?: string;
|
|
15
16
|
multiple?: boolean;
|
|
16
|
-
labelProps?:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
contentProps?: {
|
|
23
|
-
className?: string;
|
|
24
|
-
};
|
|
25
|
-
valueProps?: {
|
|
26
|
-
className?: string;
|
|
27
|
-
};
|
|
28
|
-
groupProps?: {
|
|
29
|
-
className?: string;
|
|
30
|
-
};
|
|
31
|
-
itemProps?: {
|
|
32
|
-
className?: string;
|
|
33
|
-
};
|
|
17
|
+
labelProps?: React.ComponentProps<"label">;
|
|
18
|
+
triggerProps?: SelectTriggerProps;
|
|
19
|
+
contentProps?: SelectContentProps;
|
|
20
|
+
valueProps?: SelectValueProps;
|
|
21
|
+
groupProps?: SelectGroupProps;
|
|
22
|
+
itemProps?: SelectItemProps;
|
|
34
23
|
error?: string;
|
|
35
24
|
tip?: string;
|
|
36
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,MAAM,IAAI;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EACxD,SAAS,EACT,KAAK,EACL,QAAgB,EAChB,gBAAwB,EACxB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAW,EACX,QAAgB,EAChB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,SAAS,EACT,KAAK,EACL,GAAG,GACJ,EAAE,WAAW,CAAC,CAAC,CAAC,2CAuLhB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = Select;
|
|
4
|
+
const react_1 = require("react");
|
|
4
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
6
|
const select_1 = require("./shadcn-ui/select");
|
|
6
7
|
const tailwind_merge_1 = require("tailwind-merge");
|
|
@@ -44,14 +45,16 @@ function Select({ className, label, required = false, showRequiredSign = false,
|
|
|
44
45
|
};
|
|
45
46
|
if (multiple) {
|
|
46
47
|
const selectedLabels = getSelectedLabels();
|
|
47
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, tailwind_merge_1.twMerge)("gap-1 grid w-full", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [(0, jsx_runtime_1.jsx)("label", {
|
|
48
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, tailwind_merge_1.twMerge)("gap-1 grid w-full", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [(0, jsx_runtime_1.jsx)("label", { ...labelProps, ...((labelProps?.htmlFor || triggerProps?.id) && {
|
|
49
|
+
htmlFor: labelProps?.htmlFor || triggerProps?.id,
|
|
50
|
+
}), className: (0, tailwind_merge_1.twMerge)("font-bold", labelProps?.className), children: label }), required && showRequiredSign && ((0, jsx_runtime_1.jsx)(lucide_react_1.AsteriskIcon, { size: 12, color: "red" }))] })), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: "", onValueChange: handleValueChange, children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { ...triggerProps, className: (0, tailwind_merge_1.twMerge)("w-full", triggerProps?.className), children: (0, jsx_runtime_1.jsx)("div", { className: "flex flex-wrap gap-2 flex-1", children: selectedLabels && selectedLabels.length > 0 ? (selectedLabels.map((item) => ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1 px-1 py-1 text-sm bg-blue-100 text-blue-800 rounded-md", onClick: (e) => e.stopPropagation(), children: [item.label, (0, jsx_runtime_1.jsx)(lucide_react_1.X, { size: 14, className: "cursor-pointer hover:text-blue-600", onClick: (e) => {
|
|
48
51
|
e.stopPropagation();
|
|
49
52
|
handleRemoveTag(item.value);
|
|
50
|
-
} })] }, String(item.value))))) : ((0, jsx_runtime_1.jsx)("span", { className: (0, tailwind_merge_1.twMerge)("text-muted-foreground", valueProps?.className), children: placeholder !== undefined ? placeholder : `${label}...` })) }) }), (0, jsx_runtime_1.jsx)(select_1.SelectContent, { className: contentProps?.className, children: (0, jsx_runtime_1.jsx)(select_1.SelectGroup, { className: groupProps?.className, children: options.map((option) => {
|
|
53
|
+
} })] }, String(item.value))))) : ((0, jsx_runtime_1.jsx)("span", { ...valueProps, className: (0, tailwind_merge_1.twMerge)("text-muted-foreground", valueProps?.className), children: placeholder !== undefined ? placeholder : `${label}...` })) }) }), (0, jsx_runtime_1.jsx)(select_1.SelectContent, { ...contentProps, className: contentProps?.className, children: (0, jsx_runtime_1.jsx)(select_1.SelectGroup, { ...groupProps, className: groupProps?.className, children: options.map((option) => {
|
|
51
54
|
const isSelected = Array.isArray(value) && value.includes(option.value);
|
|
52
|
-
return ((0,
|
|
55
|
+
return ((0, react_1.createElement)(select_1.SelectItem, { ...itemProps, key: itemProps?.key || String(option.value), value: option.value, className: (0, tailwind_merge_1.twMerge)(isSelected && "bg-blue-50", itemProps?.className) }, option.label));
|
|
53
56
|
}) }) })] }), tip && !error && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground tip-message", children: tip })), error && ((0, jsx_runtime_1.jsxs)("p", { className: "text-xs text-destructive error-message", children: ["*", error] }))] }));
|
|
54
57
|
}
|
|
55
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, tailwind_merge_1.twMerge)("gap-1 grid w-full", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [(0, jsx_runtime_1.jsx)("label", { className: (0, tailwind_merge_1.twMerge)("font-bold", labelProps?.className), children: label }), required && showRequiredSign && ((0, jsx_runtime_1.jsx)(lucide_react_1.AsteriskIcon, { size: 12, color: "red" }))] })), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: value, onValueChange: onChange, children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { className: (0, tailwind_merge_1.twMerge)("w-full", triggerProps?.className), children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, { placeholder: placeholder !== undefined ? placeholder : `${label}...`, className: valueProps?.className }) }), (0, jsx_runtime_1.jsx)(select_1.SelectContent, { className: contentProps?.className, children: (0, jsx_runtime_1.jsx)(select_1.SelectGroup, { className: groupProps?.className, children: options.map((option) => ((0,
|
|
58
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, tailwind_merge_1.twMerge)("gap-1 grid w-full", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [(0, jsx_runtime_1.jsx)("label", { ...labelProps, className: (0, tailwind_merge_1.twMerge)("font-bold", labelProps?.className), children: label }), required && showRequiredSign && ((0, jsx_runtime_1.jsx)(lucide_react_1.AsteriskIcon, { size: 12, color: "red" }))] })), (0, jsx_runtime_1.jsxs)(select_1.Select, { value: value, onValueChange: onChange, children: [(0, jsx_runtime_1.jsx)(select_1.SelectTrigger, { ...triggerProps, className: (0, tailwind_merge_1.twMerge)("w-full", triggerProps?.className), children: (0, jsx_runtime_1.jsx)(select_1.SelectValue, { ...valueProps, placeholder: placeholder !== undefined ? placeholder : `${label}...`, className: valueProps?.className }) }), (0, jsx_runtime_1.jsx)(select_1.SelectContent, { ...contentProps, className: contentProps?.className, children: (0, jsx_runtime_1.jsx)(select_1.SelectGroup, { ...groupProps, className: groupProps?.className, children: options.map((option) => ((0, react_1.createElement)(select_1.SelectItem, { ...itemProps, key: itemProps?.key || String(option.value), value: option.value, className: itemProps?.className }, option.label))) }) })] }), tip && !error && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-muted-foreground tip-message", children: tip })), error && ((0, jsx_runtime_1.jsxs)("p", { className: "text-xs text-destructive error-message", children: ["*", error] }))] }));
|
|
56
59
|
}
|
|
57
60
|
//# sourceMappingURL=select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/components/select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,8 @@ export type TextareaProps<TValue extends string | null | undefined> = {
|
|
|
11
11
|
placeholder?: string;
|
|
12
12
|
/** Label text for the textarea */
|
|
13
13
|
label?: string;
|
|
14
|
-
/** Additional
|
|
15
|
-
|
|
14
|
+
/** Additional props name for the label */
|
|
15
|
+
labelProps?: React.ComponentProps<"label">;
|
|
16
16
|
/** Additional class name for the textarea container/wrapper */
|
|
17
17
|
textareaContainerClassName?: string;
|
|
18
18
|
/** Whether the textarea is disabled */
|
|
@@ -65,5 +65,5 @@ export type TextareaProps<TValue extends string | null | undefined> = {
|
|
|
65
65
|
* />
|
|
66
66
|
* ```
|
|
67
67
|
*/
|
|
68
|
-
export default function Textarea<TValue extends string | null | undefined>({ textareaClassName, className, placeholder, label,
|
|
68
|
+
export default function Textarea<TValue extends string | null | undefined>({ textareaClassName, className, placeholder, label, labelProps, disabled, trim, value, onChange, required, showRequiredSign, tip, error, textareaContainerClassName, ref, textareaRef, rows, maxLength, showCharCount, ...props }: TextareaProps<TValue> & Omit<React.ComponentProps<"textarea">, keyof TextareaProps<TValue>>): import("react/jsx-runtime").JSX.Element;
|
|
69
69
|
//# sourceMappingURL=textarea.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../src/components/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../src/components/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,IAAI;IACpE,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,+DAA+D;IAC/D,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,MAAM,EACb,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,KACvC,IAAI,CAAC;IACV,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,mCAAmC;IACnC,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAM,SAAS,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,EACzE,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,KAAK,EACL,UAAU,EACV,QAAgB,EAChB,IAAY,EACZ,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,gBAAwB,EACxB,GAAG,EACH,KAAK,EACL,0BAA0B,EAC1B,GAAG,EACH,WAAW,EACX,IAAQ,EACR,SAAS,EACT,aAAqB,EACrB,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,MAAM,CAAC,GACtB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,2CAuGpE"}
|
|
@@ -5,6 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const lucide_react_1 = require("lucide-react");
|
|
7
7
|
const utils_1 = require("../utils/shadcn-ui/utils");
|
|
8
|
+
const tailwind_merge_1 = require("tailwind-merge");
|
|
8
9
|
/**
|
|
9
10
|
* An enhanced textarea component with:
|
|
10
11
|
* - Label support with required indicators
|
|
@@ -28,7 +29,7 @@ const utils_1 = require("../utils/shadcn-ui/utils");
|
|
|
28
29
|
* />
|
|
29
30
|
* ```
|
|
30
31
|
*/
|
|
31
|
-
function Textarea({ textareaClassName, className, placeholder, label,
|
|
32
|
+
function Textarea({ textareaClassName, className, placeholder, label, labelProps, disabled = false, trim = false, value, onChange, required = false, showRequiredSign = false, tip, error, textareaContainerClassName, ref, textareaRef, rows = 4, maxLength, showCharCount = false, ...props }) {
|
|
32
33
|
const [isFocused, setIsFocused] = (0, react_1.useState)(false);
|
|
33
34
|
function handleOnChange(val, e) {
|
|
34
35
|
if (disabled || !onChange)
|
|
@@ -37,7 +38,9 @@ function Textarea({ textareaClassName, className, placeholder, label, labelClass
|
|
|
37
38
|
}
|
|
38
39
|
const currentValue = (0, react_1.useMemo)(() => value || "", [value]);
|
|
39
40
|
const charCount = currentValue.toString().length;
|
|
40
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("w-full space-y-1.5", className), ref: ref, children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("flex items-center gap-1"
|
|
41
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("w-full space-y-1.5", className), ref: ref, children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("flex items-center gap-1"), children: [(0, jsx_runtime_1.jsx)("label", { ...((labelProps?.htmlFor || props?.id) && {
|
|
42
|
+
htmlFor: labelProps?.htmlFor || props?.id,
|
|
43
|
+
}), className: (0, tailwind_merge_1.twMerge)("text-sm font-medium leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70", labelProps?.className), children: label }), required && showRequiredSign && ((0, jsx_runtime_1.jsx)(lucide_react_1.AsteriskIcon, { className: "h-3 w-3 text-destructive" }))] })), (0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)("relative flex w-full rounded-md border bg-transparent shadow-xs transition-[color,box-shadow]", isFocused && !error && "border-ring ring-[3px] ring-ring/50", error &&
|
|
41
44
|
"border-destructive ring-[3px] ring-destructive/20 dark:ring-destructive/40", !isFocused && !error && "border-textarea", disabled && "cursor-not-allowed opacity-50", textareaContainerClassName), children: (0, jsx_runtime_1.jsx)("textarea", { disabled: disabled, required: required, onBlur: (e) => {
|
|
42
45
|
props?.onBlur?.(e);
|
|
43
46
|
setIsFocused(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../src/components/textarea.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../src/components/textarea.tsx"],"names":[],"mappings":"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"}
|