@nomos-ui/form 0.0.10 → 0.0.12

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,8 @@
1
+ import { Control, FieldValues, Path } from "react-hook-form";
2
+ import { ImageInputProps } from "./image-input";
3
+ export type FormImageInputProps<TFieldValues extends FieldValues> = Omit<ImageInputProps, "value" | "onChange" | "onError" | "error"> & {
4
+ control: Control<TFieldValues>;
5
+ name: Path<TFieldValues>;
6
+ };
7
+ export default function FormImageInput<TFieldValues extends FieldValues>({ control, name, ...props }: FormImageInputProps<TFieldValues>): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=form-image-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-image-input.d.ts","sourceRoot":"","sources":["../../src/components/form-image-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,WAAW,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAmB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAG5D,MAAM,MAAM,mBAAmB,CAAC,YAAY,SAAS,WAAW,IAAI,IAAI,CACtE,eAAe,EACf,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAC3C,GAAG;IACF,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,YAAY,SAAS,WAAW,EAAE,EACvE,OAAO,EACP,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,mBAAmB,CAAC,YAAY,CAAC,2CAyBnC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = FormImageInput;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_hook_form_1 = require("react-hook-form");
9
+ const image_input_1 = __importDefault(require("./image-input"));
10
+ const form_helpers_1 = require("../utils/helpers/form.helpers");
11
+ function FormImageInput({ control, name, ...props }) {
12
+ return ((0, jsx_runtime_1.jsx)(react_hook_form_1.Controller, { control: control, name: name, rules: {
13
+ required: props.required ? "Required" : false,
14
+ }, render: ({ field: { onChange, value }, formState: { errors } }) => ((0, jsx_runtime_1.jsx)(image_input_1.default, { ...props, name: name, value: value, onChange: onChange, onError: (errorMessage) => {
15
+ control.setError(name, {
16
+ type: "manual",
17
+ message: errorMessage,
18
+ });
19
+ }, error: (0, form_helpers_1.getNestedErrorMessage)(errors, name) })) }));
20
+ }
21
+ //# sourceMappingURL=form-image-input.js.map
@@ -0,0 +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,OACL,KAAK,EACT,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,YAAoB,EAAE,EAAE;gBAChC,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"}
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ export type ImageInputProps = {
3
+ value?: File | string | null;
4
+ onChange?: (file: File | null) => void;
5
+ onError?: (error: string) => void;
6
+ className?: string;
7
+ dropzoneClassName?: string;
8
+ previewClassName?: string;
9
+ disabled?: boolean;
10
+ accept?: string;
11
+ maxSize?: number;
12
+ error?: string;
13
+ name: string;
14
+ label?: string;
15
+ required?: boolean;
16
+ showRequiredSign?: boolean;
17
+ tip?: string;
18
+ renderEmpty?: () => React.ReactNode;
19
+ renderPreview?: (url: string, onRemove: () => void) => React.ReactNode;
20
+ };
21
+ export default function ImageInput({ value, onChange, onError, className, dropzoneClassName, previewClassName, disabled, accept, maxSize, error, name, label, required, showRequiredSign, tip, renderEmpty, renderPreview, }: ImageInputProps): import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=image-input.d.ts.map
@@ -0,0 +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,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,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,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,QAAgB,EAChB,MAAkB,EAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAgB,EAChB,gBAAwB,EACxB,GAAG,EACH,WAAW,EACX,aAAa,GACd,EAAE,eAAe,2CAoIjB"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = ImageInput;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = __importDefault(require("react"));
9
+ const lucide_react_1 = require("lucide-react");
10
+ const tailwind_merge_1 = require("tailwind-merge");
11
+ function ImageInput({ value, onChange, onError, className, dropzoneClassName, previewClassName, disabled = false, accept = "image/*", maxSize, error, name, label, required = false, showRequiredSign = false, tip, renderEmpty, renderPreview, }) {
12
+ const [isDragging, setIsDragging] = react_1.default.useState(false);
13
+ const handleFile = (file) => {
14
+ if (file) {
15
+ if (maxSize && file.size > maxSize) {
16
+ onError?.(`Max size: ${Math.round(maxSize / (1024 * 1024))}MB`);
17
+ return;
18
+ }
19
+ onChange?.(file);
20
+ }
21
+ else {
22
+ onChange?.(null);
23
+ }
24
+ };
25
+ const handleRemove = () => {
26
+ handleFile(null);
27
+ };
28
+ let previewUrl = null;
29
+ if (value instanceof File) {
30
+ previewUrl = URL.createObjectURL(value);
31
+ }
32
+ else if (typeof value === "string") {
33
+ previewUrl = value;
34
+ }
35
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, tailwind_merge_1.twMerge)("space-y-1.5", className), children: [label && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1.5", children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: `input-${name}`, 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", id: `input-${name}`, name: `input-${name}`, 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
+ e.preventDefault();
37
+ if (!disabled)
38
+ setIsDragging(true);
39
+ }, onDragLeave: (e) => {
40
+ e.preventDefault();
41
+ setIsDragging(false);
42
+ }, onDrop: (e) => {
43
+ e.preventDefault();
44
+ setIsDragging(false);
45
+ if (!disabled && e.dataTransfer.files?.[0]) {
46
+ handleFile(e.dataTransfer.files[0]);
47
+ }
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 &&
49
+ !previewUrl &&
50
+ "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
+ e.preventDefault();
52
+ e.stopPropagation();
53
+ handleRemove();
54
+ }, className: "absolute -top-2 -right-2 p-1 bg-destructive text-destructive-foreground rounded-full hover:bg-destructive/90 transition-colors z-20 shadow-sm", children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: "w-3.5 h-3.5" }) }))] }))) : renderEmpty ? (renderEmpty()) : ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center gap-2 text-muted-foreground px-4", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ImageIcon, { className: "w-8 h-8" }), (0, jsx_runtime_1.jsx)("p", { className: "text-sm text-center", children: disabled
55
+ ? "Upload desabilitado"
56
+ : "Arraste uma imagem ou clique para selecionar" })] })) })] }), error && (0, jsx_runtime_1.jsx)("p", { className: "text-sm text-destructive", children: error })] }));
57
+ }
58
+ //# sourceMappingURL=image-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-input.js","sourceRoot":"","sources":["../../src/components/image-input.tsx"],"names":[],"mappings":";;;;;AAwBA,6BAsJC;;AA9KD,kDAA0B;AAC1B,+CAA0E;AAC1E,mDAAyC;AAsBzC,SAAwB,UAAU,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,SAAS,EAClB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,gBAAgB,GAAG,KAAK,EACxB,GAAG,EACH,WAAW,EACX,aAAa,GACG;IAChB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,CAAC,IAAiB,EAAE,EAAE;QACvC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;gBACnC,OAAO,EAAE,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,OAAO,CACL,iCAAK,SAAS,EAAE,IAAA,wBAAO,EAAC,aAAa,EAAE,SAAS,CAAC,aAC9C,KAAK,IAAI,CACR,iCAAK,SAAS,EAAC,2BAA2B,aACxC,kCACE,OAAO,EAAE,SAAS,IAAI,EAAE,EACxB,SAAS,EAAC,mCAAmC,YAE5C,KAAK,GACA,EACP,QAAQ,IAAI,gBAAgB,IAAI,CAC/B,uBAAC,2BAAY,IAAC,SAAS,EAAC,0BAA0B,GAAG,CACtD,EACA,GAAG,IAAI,CACN,iCAAK,SAAS,EAAC,wBAAwB,aACrC,uBAAC,6BAAc,IAAC,SAAS,EAAC,2CAA2C,GAAG,EACxE,iCAAM,SAAS,EAAC,qOAAqO,YAClP,GAAG,GACC,IACH,CACP,IACG,CACP,EAED,iCAAK,SAAS,EAAC,sBAAsB,aACnC,kCACE,IAAI,EAAC,MAAM,EACX,EAAE,EAAE,SAAS,IAAI,EAAE,EACnB,IAAI,EAAE,SAAS,IAAI,EAAE,EACrB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EACxD,SAAS,EAAC,0FAA0F,EACpG,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;4BAChB,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,IAAI,CAAC,QAAQ;gCAAE,aAAa,CAAC,IAAI,CAAC,CAAC;wBACrC,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;4BACjB,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,aAAa,CAAC,KAAK,CAAC,CAAC;wBACvB,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;4BACZ,CAAC,CAAC,cAAc,EAAE,CAAC;4BACnB,aAAa,CAAC,KAAK,CAAC,CAAC;4BACrB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCAC3C,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BACtC,CAAC;wBACH,CAAC,GACD,EAEF,gCACE,SAAS,EAAE,IAAA,wBAAO,EAChB,gIAAgI,EAChI,QAAQ,IAAI,+BAA+B,EAC3C,UAAU,IAAI,6BAA6B,EAC3C,CAAC,UAAU;4BACT,CAAC,UAAU;4BACX,sCAAsC,EACxC,iBAAiB,CAClB,YAEA,UAAU,CAAC,CAAC,CAAC,CACZ,aAAa,CAAC,CAAC,CAAC,CACd,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CACxC,CAAC,CAAC,CAAC,CACF,iCACE,SAAS,EAAE,IAAA,wBAAO,EAAC,wBAAwB,EAAE,gBAAgB,CAAC,aAE9D,gCACE,GAAG,EAAE,UAAU,EACf,GAAG,EAAC,SAAS,EACb,SAAS,EAAC,uCAAuC,GACjD,EACD,CAAC,QAAQ,IAAI,CACZ,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;wCACb,CAAC,CAAC,cAAc,EAAE,CAAC;wCACnB,CAAC,CAAC,eAAe,EAAE,CAAC;wCACpB,YAAY,EAAE,CAAC;oCACjB,CAAC,EACD,SAAS,EAAC,+IAA+I,YAEzJ,uBAAC,gBAAC,IAAC,SAAS,EAAC,aAAa,GAAG,GACtB,CACV,IACG,CACP,CACF,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAChB,WAAW,EAAE,CACd,CAAC,CAAC,CAAC,CACF,iCAAK,SAAS,EAAC,6DAA6D,aAC1E,uBAAC,wBAAS,IAAC,SAAS,EAAC,SAAS,GAAG,EACjC,8BAAG,SAAS,EAAC,qBAAqB,YAC/B,QAAQ;wCACP,CAAC,CAAC,qBAAqB;wCACvB,CAAC,CAAC,8CAA8C,GAChD,IACA,CACP,GACG,IACF,EAEL,KAAK,IAAI,8BAAG,SAAS,EAAC,0BAA0B,YAAE,KAAK,GAAK,IACzD,CACP,CAAC;AACJ,CAAC"}
@@ -57,7 +57,7 @@ function SelectValue({ ...props }) {
57
57
  return (0, jsx_runtime_1.jsx)(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
58
58
  }
59
59
  function SelectTrigger({ className, size = "default", children, ...props }) {
60
- return ((0, jsx_runtime_1.jsxs)(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, className: (0, utils_1.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, (0, jsx_runtime_1.jsx)(SelectPrimitive.Icon, { asChild: true, children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDownIcon, { className: "size-4 opacity-50" }) })] }));
60
+ return ((0, jsx_runtime_1.jsxs)(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, className: (0, utils_1.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-8 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, (0, jsx_runtime_1.jsx)(SelectPrimitive.Icon, { asChild: true, children: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDownIcon, { className: "size-4 opacity-50" }) })] }));
61
61
  }
62
62
  function SelectContent({ className, children, position = "popper", align = "center", ...props }) {
63
63
  return ((0, jsx_runtime_1.jsx)(SelectPrimitive.Portal, { children: (0, jsx_runtime_1.jsxs)(SelectPrimitive.Content, { "data-slot": "select-content", className: (0, utils_1.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md", position === "popper" &&
@@ -5,7 +5,9 @@ import Select, { SelectOption, SelectProps } from "../components/select";
5
5
  import FormSelect, { FormSelectProps } from "../components/form-select";
6
6
  import Textarea from "../components/textarea";
7
7
  import FormTextarea from "../components/form-textarea";
8
- export { Button, FormInput, Input, Select, FormSelect, Textarea, FormTextarea };
8
+ import FormImageInput from "../components/form-image-input";
9
+ import ImageInput from "../components/image-input";
10
+ export { Button, FormInput, Input, Select, FormSelect, Textarea, FormTextarea, ImageInput, FormImageInput, };
9
11
  export type { SelectOption, SelectProps, FormSelectProps };
10
12
  export * from "../components/input";
11
13
  export * from "../components/form-input";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAChF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAC3D,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAC;AAC1C,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,cAAc,MAAM,gCAAgC,CAAC;AAC5D,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAEnD,OAAO,EACL,MAAM,EACN,SAAS,EACT,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,cAAc,GACf,CAAC;AACF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AAC3D,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC"}
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.FormTextarea = exports.Textarea = exports.FormSelect = exports.Select = exports.Input = exports.FormInput = exports.Button = void 0;
20
+ exports.FormImageInput = exports.ImageInput = exports.FormTextarea = exports.Textarea = exports.FormSelect = exports.Select = exports.Input = exports.FormInput = exports.Button = void 0;
21
21
  const button_1 = __importDefault(require("../components/button"));
22
22
  exports.Button = button_1.default;
23
23
  const form_input_1 = __importDefault(require("../components/form-input"));
@@ -32,6 +32,10 @@ const textarea_1 = __importDefault(require("../components/textarea"));
32
32
  exports.Textarea = textarea_1.default;
33
33
  const form_textarea_1 = __importDefault(require("../components/form-textarea"));
34
34
  exports.FormTextarea = form_textarea_1.default;
35
+ const form_image_input_1 = __importDefault(require("../components/form-image-input"));
36
+ exports.FormImageInput = form_image_input_1.default;
37
+ const image_input_1 = __importDefault(require("../components/image-input"));
38
+ exports.ImageInput = image_input_1.default;
35
39
  __exportStar(require("../components/input"), exports);
36
40
  __exportStar(require("../components/form-input"), exports);
37
41
  __exportStar(require("../components/button"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kEAA0C;AAQjC,iBARF,gBAAM,CAQE;AAPf,0EAAiD;AAOhC,oBAPV,oBAAS,CAOU;AAN1B,gEAAwC;AAMZ,gBANrB,eAAK,CAMqB;AALjC,kEAAyE;AAKtC,iBAL5B,gBAAM,CAK4B;AAJzC,4EAAwE;AAI7B,qBAJpC,qBAAU,CAIoC;AAHrD,sEAA8C;AAGS,mBAHhD,kBAAQ,CAGgD;AAF/D,gFAAuD;AAEU,uBAF1D,uBAAY,CAE0D;AAE7E,sDAAoC;AACpC,2DAAyC;AACzC,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kEAA0C;AAWxC,iBAXK,gBAAM,CAWL;AAVR,0EAAiD;AAW/C,oBAXK,oBAAS,CAWL;AAVX,gEAAwC;AAWtC,gBAXK,eAAK,CAWL;AAVP,kEAAyE;AAWvE,iBAXK,gBAAM,CAWL;AAVR,4EAAwE;AAWtE,qBAXK,qBAAU,CAWL;AAVZ,sEAA8C;AAW5C,mBAXK,kBAAQ,CAWL;AAVV,gFAAuD;AAWrD,uBAXK,uBAAY,CAWL;AAVd,sFAA4D;AAY1D,yBAZK,0BAAc,CAYL;AAXhB,4EAAmD;AAUjD,qBAVK,qBAAU,CAUL;AAIZ,sDAAoC;AACpC,2DAAyC;AACzC,uDAAqC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nomos-ui/form",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "description": "The Shadcn library for building robust React forms",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/exports/index.js",
@@ -8,19 +8,28 @@
8
8
  "exports": {
9
9
  ".": {
10
10
  "types": "./dist/exports/index.d.ts",
11
- "import": "./dist/exports/index.js"
11
+ "import": "./dist/exports/index.js",
12
+ "require": "./dist/exports/index.js"
12
13
  },
13
14
  "./hooks": {
14
15
  "types": "./dist/hooks/index.d.ts",
15
- "import": "./dist/hooks/index.js"
16
+ "import": "./dist/hooks/index.js",
17
+ "require": "./dist/hooks/index.js"
18
+ },
19
+ "./modals": {
20
+ "types": "./dist/exports/modals.d.ts",
21
+ "import": "./dist/exports/modals.js",
22
+ "require": "./dist/exports/modals.js"
16
23
  },
17
24
  "./utils": {
18
- "types": "./dist/exports/utils/index.d.ts",
19
- "import": "./dist/exports/utils/index.js"
25
+ "types": "./dist/utils/index.d.ts",
26
+ "import": "./dist/utils/index.js",
27
+ "require": "./dist/utils/index.js"
20
28
  },
21
29
  "./types": {
22
30
  "types": "./dist/types/index.d.ts",
23
- "import": "./dist/types/index.js"
31
+ "import": "./dist/types/index.js",
32
+ "require": "./dist/types/index.js"
24
33
  }
25
34
  },
26
35
  "typesVersions": {