@grupor5/raya 0.2.1 → 0.2.3
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/README.md +68 -4
- package/dist/atoms/avatar/index.d.mts +12 -0
- package/dist/atoms/avatar/index.d.ts +12 -0
- package/dist/atoms/avatar/index.js +99 -0
- package/dist/atoms/avatar/index.mjs +76 -0
- package/dist/atoms/badge/index.d.mts +16 -0
- package/dist/atoms/badge/index.d.ts +16 -0
- package/dist/atoms/badge/index.js +149 -0
- package/dist/atoms/badge/index.mjs +146 -0
- package/dist/atoms/button/index.d.mts +11 -0
- package/dist/atoms/button/index.d.ts +11 -0
- package/dist/atoms/button/index.js +307 -0
- package/dist/atoms/button/index.mjs +301 -0
- package/dist/atoms/checkbox/index.d.mts +6 -0
- package/dist/atoms/checkbox/index.d.ts +6 -0
- package/dist/atoms/checkbox/index.js +98 -0
- package/dist/atoms/checkbox/index.mjs +75 -0
- package/dist/atoms/input/index.d.mts +12 -0
- package/dist/atoms/input/index.d.ts +12 -0
- package/dist/atoms/input/index.js +104 -0
- package/dist/atoms/input/index.mjs +82 -0
- package/dist/atoms/label/index.d.mts +8 -0
- package/dist/atoms/label/index.d.ts +8 -0
- package/dist/atoms/label/index.js +77 -0
- package/dist/atoms/label/index.mjs +54 -0
- package/dist/atoms/radio/index.d.mts +7 -0
- package/dist/atoms/radio/index.d.ts +7 -0
- package/dist/atoms/radio/index.js +97 -0
- package/dist/atoms/radio/index.mjs +73 -0
- package/dist/atoms/switch/index.d.mts +6 -0
- package/dist/atoms/switch/index.d.ts +6 -0
- package/dist/atoms/switch/index.js +97 -0
- package/dist/atoms/switch/index.mjs +74 -0
- package/dist/atoms/tag/index.d.mts +14 -0
- package/dist/atoms/tag/index.d.ts +14 -0
- package/dist/atoms/tag/index.js +128 -0
- package/dist/atoms/tag/index.mjs +122 -0
- package/dist/atoms/textarea/index.d.mts +11 -0
- package/dist/atoms/textarea/index.d.ts +11 -0
- package/dist/atoms/textarea/index.js +125 -0
- package/dist/atoms/textarea/index.mjs +103 -0
- package/dist/atoms/typography/index.d.mts +20 -0
- package/dist/atoms/typography/index.d.ts +20 -0
- package/dist/atoms/typography/index.js +140 -0
- package/dist/atoms/typography/index.mjs +115 -0
- package/dist/hooks/index.d.mts +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +17 -0
- package/dist/hooks/index.mjs +15 -0
- package/dist/hooks/use-pagination.d.mts +10 -0
- package/dist/hooks/use-pagination.d.ts +10 -0
- package/dist/hooks/use-pagination.js +54 -0
- package/dist/hooks/use-pagination.mjs +51 -0
- package/dist/hooks/use-toast.d.mts +2 -0
- package/dist/hooks/use-toast.d.ts +2 -0
- package/dist/hooks/use-toast.js +2 -0
- package/dist/hooks/use-toast.mjs +1 -0
- package/dist/hooks/useModal.d.mts +7 -0
- package/dist/hooks/useModal.d.ts +7 -0
- package/dist/hooks/useModal.js +17 -0
- package/dist/hooks/useModal.mjs +15 -0
- package/dist/index.d.mts +50 -1298
- package/dist/index.d.ts +50 -1298
- package/dist/molecules/accordion/index.d.mts +17 -0
- package/dist/molecules/accordion/index.d.ts +17 -0
- package/dist/molecules/accordion/index.js +154 -0
- package/dist/molecules/accordion/index.mjs +128 -0
- package/dist/molecules/alert/index.d.mts +14 -0
- package/dist/molecules/alert/index.d.ts +14 -0
- package/dist/molecules/alert/index.js +425 -0
- package/dist/molecules/alert/index.mjs +402 -0
- package/dist/molecules/card/index.d.mts +10 -0
- package/dist/molecules/card/index.d.ts +10 -0
- package/dist/molecules/card/index.js +128 -0
- package/dist/molecules/card/index.mjs +101 -0
- package/dist/molecules/chart/index.d.mts +80 -0
- package/dist/molecules/chart/index.d.ts +80 -0
- package/dist/molecules/chart/index.js +300 -0
- package/dist/molecules/chart/index.mjs +272 -0
- package/dist/molecules/data-table/index.d.mts +57 -0
- package/dist/molecules/data-table/index.d.ts +57 -0
- package/dist/molecules/data-table/index.js +1456 -0
- package/dist/molecules/data-table/index.mjs +1430 -0
- package/dist/molecules/date-picker/index.d.mts +12 -0
- package/dist/molecules/date-picker/index.d.ts +12 -0
- package/dist/molecules/date-picker/index.js +756 -0
- package/dist/molecules/date-picker/index.mjs +734 -0
- package/dist/molecules/dropdown/index.d.mts +21 -0
- package/dist/molecules/dropdown/index.d.ts +21 -0
- package/dist/molecules/dropdown/index.js +221 -0
- package/dist/molecules/dropdown/index.mjs +198 -0
- package/dist/molecules/form/index.d.mts +19 -0
- package/dist/molecules/form/index.d.ts +19 -0
- package/dist/molecules/form/index.js +139 -0
- package/dist/molecules/form/index.mjs +114 -0
- package/dist/molecules/pagination/index.d.mts +15 -0
- package/dist/molecules/pagination/index.d.ts +15 -0
- package/dist/molecules/pagination/index.js +605 -0
- package/dist/molecules/pagination/index.mjs +583 -0
- package/dist/molecules/progress-bar/index.d.mts +15 -0
- package/dist/molecules/progress-bar/index.d.ts +15 -0
- package/dist/molecules/progress-bar/index.js +166 -0
- package/dist/molecules/progress-bar/index.mjs +144 -0
- package/dist/molecules/select/index.d.mts +15 -0
- package/dist/molecules/select/index.d.ts +15 -0
- package/dist/molecules/select/index.js +201 -0
- package/dist/molecules/select/index.mjs +169 -0
- package/dist/molecules/stepper/index.d.mts +67 -0
- package/dist/molecules/stepper/index.d.ts +67 -0
- package/dist/molecules/stepper/index.js +287 -0
- package/dist/molecules/stepper/index.mjs +260 -0
- package/dist/molecules/tabs/index.d.mts +9 -0
- package/dist/molecules/tabs/index.d.ts +9 -0
- package/dist/molecules/tabs/index.js +112 -0
- package/dist/molecules/tabs/index.mjs +86 -0
- package/dist/tokens/badge.d.mts +39 -0
- package/dist/tokens/badge.d.ts +39 -0
- package/dist/tokens/badge.js +61 -0
- package/dist/tokens/badge.mjs +59 -0
- package/dist/tokens/buttons.d.mts +277 -0
- package/dist/tokens/buttons.d.ts +277 -0
- package/dist/tokens/buttons.js +191 -0
- package/dist/tokens/buttons.mjs +173 -0
- package/dist/tokens/colors.d.mts +65 -0
- package/dist/tokens/colors.d.ts +65 -0
- package/dist/tokens/colors.js +68 -0
- package/dist/tokens/colors.mjs +66 -0
- package/dist/tokens/effects.d.mts +124 -0
- package/dist/tokens/effects.d.ts +124 -0
- package/dist/tokens/effects.js +130 -0
- package/dist/tokens/effects.mjs +115 -0
- package/dist/tokens/grids.d.mts +331 -0
- package/dist/tokens/grids.d.ts +331 -0
- package/dist/tokens/grids.js +305 -0
- package/dist/tokens/grids.mjs +292 -0
- package/dist/tokens/icons.d.mts +134 -0
- package/dist/tokens/icons.d.ts +134 -0
- package/dist/tokens/icons.js +108 -0
- package/dist/tokens/icons.mjs +97 -0
- package/dist/tokens/index.d.mts +6 -0
- package/dist/tokens/index.d.ts +6 -0
- package/dist/tokens/index.js +775 -0
- package/dist/tokens/index.mjs +743 -0
- package/dist/tokens/progress-bar.d.mts +31 -0
- package/dist/tokens/progress-bar.d.ts +31 -0
- package/dist/tokens/progress-bar.js +70 -0
- package/dist/tokens/progress-bar.mjs +68 -0
- package/dist/tokens/spacing.d.mts +90 -0
- package/dist/tokens/spacing.d.ts +90 -0
- package/dist/tokens/spacing.js +120 -0
- package/dist/tokens/spacing.mjs +109 -0
- package/dist/tokens/stroke.d.mts +292 -0
- package/dist/tokens/stroke.d.ts +292 -0
- package/dist/tokens/stroke.js +202 -0
- package/dist/tokens/stroke.mjs +186 -0
- package/dist/tokens/tab.d.mts +31 -0
- package/dist/tokens/tab.d.ts +31 -0
- package/dist/tokens/tab.js +48 -0
- package/dist/tokens/tab.mjs +46 -0
- package/dist/tokens/tag.d.mts +53 -0
- package/dist/tokens/tag.d.ts +53 -0
- package/dist/tokens/tag.js +80 -0
- package/dist/tokens/tag.mjs +78 -0
- package/dist/tokens/typography.d.mts +394 -0
- package/dist/tokens/typography.d.ts +394 -0
- package/dist/tokens/typography.js +302 -0
- package/dist/tokens/typography.mjs +292 -0
- package/dist/utils/classNames.d.mts +3 -0
- package/dist/utils/classNames.d.ts +3 -0
- package/dist/utils/classNames.js +8 -0
- package/dist/utils/classNames.mjs +6 -0
- package/dist/utils/cn.d.mts +5 -0
- package/dist/utils/cn.d.ts +5 -0
- package/dist/utils/cn.js +11 -0
- package/dist/utils/cn.mjs +9 -0
- package/dist/utils/index.d.mts +3 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +15 -0
- package/dist/utils/index.mjs +12 -0
- package/package.json +34 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface DropdownOption {
|
|
4
|
+
value: string;
|
|
5
|
+
label: string;
|
|
6
|
+
}
|
|
7
|
+
interface DropdownProps {
|
|
8
|
+
name?: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
options: DropdownOption[];
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
value?: string;
|
|
13
|
+
onChange?: (value: string) => void;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
error?: string | boolean;
|
|
16
|
+
helperText?: string;
|
|
17
|
+
required?: boolean;
|
|
18
|
+
}
|
|
19
|
+
declare const Dropdown: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLInputElement>>;
|
|
20
|
+
|
|
21
|
+
export { Dropdown, type DropdownProps };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface DropdownOption {
|
|
4
|
+
value: string;
|
|
5
|
+
label: string;
|
|
6
|
+
}
|
|
7
|
+
interface DropdownProps {
|
|
8
|
+
name?: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
options: DropdownOption[];
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
value?: string;
|
|
13
|
+
onChange?: (value: string) => void;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
error?: string | boolean;
|
|
16
|
+
helperText?: string;
|
|
17
|
+
required?: boolean;
|
|
18
|
+
}
|
|
19
|
+
declare const Dropdown: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLInputElement>>;
|
|
20
|
+
|
|
21
|
+
export { Dropdown, type DropdownProps };
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React2 = require('react');
|
|
4
|
+
var lucideReact = require('lucide-react');
|
|
5
|
+
var cmdk = require('cmdk');
|
|
6
|
+
var clsx = require('clsx');
|
|
7
|
+
var tailwindMerge = require('tailwind-merge');
|
|
8
|
+
var LabelPrimitive = require('@radix-ui/react-label');
|
|
9
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
10
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
+
|
|
12
|
+
function _interopNamespace(e) {
|
|
13
|
+
if (e && e.__esModule) return e;
|
|
14
|
+
var n = Object.create(null);
|
|
15
|
+
if (e) {
|
|
16
|
+
Object.keys(e).forEach(function (k) {
|
|
17
|
+
if (k !== 'default') {
|
|
18
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
19
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return e[k]; }
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
n.default = e;
|
|
27
|
+
return Object.freeze(n);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
|
|
31
|
+
var LabelPrimitive__namespace = /*#__PURE__*/_interopNamespace(LabelPrimitive);
|
|
32
|
+
|
|
33
|
+
var __defProp = Object.defineProperty;
|
|
34
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
35
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
36
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
37
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
38
|
+
var __spreadValues = (a, b) => {
|
|
39
|
+
for (var prop in b || (b = {}))
|
|
40
|
+
if (__hasOwnProp.call(b, prop))
|
|
41
|
+
__defNormalProp(a, prop, b[prop]);
|
|
42
|
+
if (__getOwnPropSymbols)
|
|
43
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
44
|
+
if (__propIsEnum.call(b, prop))
|
|
45
|
+
__defNormalProp(a, prop, b[prop]);
|
|
46
|
+
}
|
|
47
|
+
return a;
|
|
48
|
+
};
|
|
49
|
+
var __objRest = (source, exclude) => {
|
|
50
|
+
var target = {};
|
|
51
|
+
for (var prop in source)
|
|
52
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
53
|
+
target[prop] = source[prop];
|
|
54
|
+
if (source != null && __getOwnPropSymbols)
|
|
55
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
56
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
57
|
+
target[prop] = source[prop];
|
|
58
|
+
}
|
|
59
|
+
return target;
|
|
60
|
+
};
|
|
61
|
+
function cn(...inputs) {
|
|
62
|
+
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
63
|
+
}
|
|
64
|
+
var labelVariants = classVarianceAuthority.cva(
|
|
65
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
66
|
+
);
|
|
67
|
+
var Label = React2__namespace.forwardRef((_a, ref) => {
|
|
68
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
69
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
70
|
+
LabelPrimitive__namespace.Root,
|
|
71
|
+
__spreadValues({
|
|
72
|
+
ref,
|
|
73
|
+
className: cn(labelVariants(), className)
|
|
74
|
+
}, props)
|
|
75
|
+
);
|
|
76
|
+
});
|
|
77
|
+
Label.displayName = LabelPrimitive__namespace.Root.displayName;
|
|
78
|
+
var Dropdown = React2__namespace.forwardRef(
|
|
79
|
+
({
|
|
80
|
+
label,
|
|
81
|
+
options,
|
|
82
|
+
placeholder,
|
|
83
|
+
value,
|
|
84
|
+
onChange,
|
|
85
|
+
disabled,
|
|
86
|
+
name,
|
|
87
|
+
error,
|
|
88
|
+
helperText,
|
|
89
|
+
required
|
|
90
|
+
}, ref) => {
|
|
91
|
+
const [open, setOpen] = React2__namespace.useState(false);
|
|
92
|
+
const [inputValue, setInputValue] = React2__namespace.useState("");
|
|
93
|
+
const inputId = name || `dropdown-${React2__namespace.useId()}`;
|
|
94
|
+
const popoverRef = React2__namespace.useRef(null);
|
|
95
|
+
const handleSelect = (currentValue) => {
|
|
96
|
+
if (onChange) {
|
|
97
|
+
onChange(currentValue);
|
|
98
|
+
}
|
|
99
|
+
const selectedOption = options.find((o) => o.value === currentValue);
|
|
100
|
+
setInputValue(selectedOption ? selectedOption.label : "");
|
|
101
|
+
setOpen(false);
|
|
102
|
+
};
|
|
103
|
+
React2__namespace.useEffect(() => {
|
|
104
|
+
const selectedOption = options.find((o) => o.value === value);
|
|
105
|
+
setInputValue(selectedOption ? selectedOption.label : "");
|
|
106
|
+
}, [value, options]);
|
|
107
|
+
React2__namespace.useEffect(() => {
|
|
108
|
+
const handleClickOutside = (event) => {
|
|
109
|
+
if (popoverRef.current && !popoverRef.current.contains(event.target)) {
|
|
110
|
+
setOpen(false);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
114
|
+
return () => {
|
|
115
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
116
|
+
};
|
|
117
|
+
}, [popoverRef]);
|
|
118
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
119
|
+
label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
120
|
+
Label,
|
|
121
|
+
{
|
|
122
|
+
htmlFor: inputId,
|
|
123
|
+
className: cn(
|
|
124
|
+
"font-sans font-normal",
|
|
125
|
+
required && "after:content-['*'] after:text-destructive after:ml-1"
|
|
126
|
+
),
|
|
127
|
+
children: label
|
|
128
|
+
}
|
|
129
|
+
),
|
|
130
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
131
|
+
cmdk.Command,
|
|
132
|
+
{
|
|
133
|
+
ref: popoverRef,
|
|
134
|
+
className: "relative",
|
|
135
|
+
onKeyDown: (e) => {
|
|
136
|
+
if (e.key === "Escape") {
|
|
137
|
+
e.preventDefault();
|
|
138
|
+
setOpen(false);
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
children: [
|
|
142
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
143
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
144
|
+
cmdk.CommandInput,
|
|
145
|
+
{
|
|
146
|
+
ref,
|
|
147
|
+
id: inputId,
|
|
148
|
+
value: inputValue,
|
|
149
|
+
onValueChange: (search) => {
|
|
150
|
+
setInputValue(search);
|
|
151
|
+
if (!search) {
|
|
152
|
+
setOpen(true);
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
onFocus: () => setOpen(true),
|
|
156
|
+
onBlur: () => {
|
|
157
|
+
const selectedOption = options.find((o) => o.value === value);
|
|
158
|
+
setInputValue(selectedOption ? selectedOption.label : "");
|
|
159
|
+
},
|
|
160
|
+
onKeyDown: (e) => {
|
|
161
|
+
if (e.key === "Enter" && !open) {
|
|
162
|
+
e.preventDefault();
|
|
163
|
+
setOpen(true);
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
disabled,
|
|
167
|
+
placeholder,
|
|
168
|
+
className: cn(
|
|
169
|
+
"flex h-11 w-full rounded-lg border border-neutral-300 bg-background py-2 pl-3 pr-10 text-base font-normal text-neutral-900 placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
170
|
+
"focus-visible:shadow-focus active:shadow-pressed",
|
|
171
|
+
error && "border-destructive focus-visible:shadow-destructive"
|
|
172
|
+
),
|
|
173
|
+
"aria-expanded": open,
|
|
174
|
+
"aria-invalid": error ? "true" : "false",
|
|
175
|
+
"aria-describedby": error ? `${inputId}-error` : helperText ? `${inputId}-helper` : void 0
|
|
176
|
+
}
|
|
177
|
+
),
|
|
178
|
+
open ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 cursor-pointer shrink-0 opacity-50" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 cursor-pointer shrink-0 opacity-50" })
|
|
179
|
+
] }),
|
|
180
|
+
open && /* @__PURE__ */ jsxRuntime.jsx(
|
|
181
|
+
"div",
|
|
182
|
+
{
|
|
183
|
+
className: "absolute top-full z-10 mt-1 w-full overflow-hidden rounded-md border border-neutral-200 bg-white shadow-lg",
|
|
184
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
185
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(cmdk.CommandList, { children: [
|
|
186
|
+
/* @__PURE__ */ jsxRuntime.jsx(cmdk.CommandEmpty, { children: "No se encontraron resultados." }),
|
|
187
|
+
/* @__PURE__ */ jsxRuntime.jsx(cmdk.CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
188
|
+
cmdk.CommandItem,
|
|
189
|
+
{
|
|
190
|
+
value: option.label,
|
|
191
|
+
onSelect: () => handleSelect(option.value),
|
|
192
|
+
className: "flex cursor-pointer items-center justify-between px-3 py-2 text-base text-neutral-900 hover:bg-neutral-100 data-[selected=true]:bg-neutral-100",
|
|
193
|
+
children: [
|
|
194
|
+
option.label,
|
|
195
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
196
|
+
lucideReact.Check,
|
|
197
|
+
{
|
|
198
|
+
className: cn(
|
|
199
|
+
"ml-2 h-4 w-4 text-secondary-600",
|
|
200
|
+
value === option.value ? "opacity-100" : "opacity-0"
|
|
201
|
+
)
|
|
202
|
+
}
|
|
203
|
+
)
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
option.value
|
|
207
|
+
)) })
|
|
208
|
+
] })
|
|
209
|
+
}
|
|
210
|
+
)
|
|
211
|
+
]
|
|
212
|
+
}
|
|
213
|
+
),
|
|
214
|
+
helperText && !error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: `${inputId}-helper`, className: "text-sm text-neutral-500", children: helperText }),
|
|
215
|
+
error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: `${inputId}-error`, className: "text-sm text-red-500", children: typeof error === "string" ? error : "Este campo tiene errores" })
|
|
216
|
+
] });
|
|
217
|
+
}
|
|
218
|
+
);
|
|
219
|
+
Dropdown.displayName = "Dropdown";
|
|
220
|
+
|
|
221
|
+
exports.Dropdown = Dropdown;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import * as React2 from 'react';
|
|
2
|
+
import { ChevronUp, ChevronDown, Check } from 'lucide-react';
|
|
3
|
+
import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from 'cmdk';
|
|
4
|
+
import { clsx } from 'clsx';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
6
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
7
|
+
import { cva } from 'class-variance-authority';
|
|
8
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
9
|
+
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
14
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
15
|
+
var __spreadValues = (a, b) => {
|
|
16
|
+
for (var prop in b || (b = {}))
|
|
17
|
+
if (__hasOwnProp.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
if (__getOwnPropSymbols)
|
|
20
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
21
|
+
if (__propIsEnum.call(b, prop))
|
|
22
|
+
__defNormalProp(a, prop, b[prop]);
|
|
23
|
+
}
|
|
24
|
+
return a;
|
|
25
|
+
};
|
|
26
|
+
var __objRest = (source, exclude) => {
|
|
27
|
+
var target = {};
|
|
28
|
+
for (var prop in source)
|
|
29
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
30
|
+
target[prop] = source[prop];
|
|
31
|
+
if (source != null && __getOwnPropSymbols)
|
|
32
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
33
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
34
|
+
target[prop] = source[prop];
|
|
35
|
+
}
|
|
36
|
+
return target;
|
|
37
|
+
};
|
|
38
|
+
function cn(...inputs) {
|
|
39
|
+
return twMerge(clsx(inputs));
|
|
40
|
+
}
|
|
41
|
+
var labelVariants = cva(
|
|
42
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
43
|
+
);
|
|
44
|
+
var Label = React2.forwardRef((_a, ref) => {
|
|
45
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
46
|
+
return /* @__PURE__ */ jsx(
|
|
47
|
+
LabelPrimitive.Root,
|
|
48
|
+
__spreadValues({
|
|
49
|
+
ref,
|
|
50
|
+
className: cn(labelVariants(), className)
|
|
51
|
+
}, props)
|
|
52
|
+
);
|
|
53
|
+
});
|
|
54
|
+
Label.displayName = LabelPrimitive.Root.displayName;
|
|
55
|
+
var Dropdown = React2.forwardRef(
|
|
56
|
+
({
|
|
57
|
+
label,
|
|
58
|
+
options,
|
|
59
|
+
placeholder,
|
|
60
|
+
value,
|
|
61
|
+
onChange,
|
|
62
|
+
disabled,
|
|
63
|
+
name,
|
|
64
|
+
error,
|
|
65
|
+
helperText,
|
|
66
|
+
required
|
|
67
|
+
}, ref) => {
|
|
68
|
+
const [open, setOpen] = React2.useState(false);
|
|
69
|
+
const [inputValue, setInputValue] = React2.useState("");
|
|
70
|
+
const inputId = name || `dropdown-${React2.useId()}`;
|
|
71
|
+
const popoverRef = React2.useRef(null);
|
|
72
|
+
const handleSelect = (currentValue) => {
|
|
73
|
+
if (onChange) {
|
|
74
|
+
onChange(currentValue);
|
|
75
|
+
}
|
|
76
|
+
const selectedOption = options.find((o) => o.value === currentValue);
|
|
77
|
+
setInputValue(selectedOption ? selectedOption.label : "");
|
|
78
|
+
setOpen(false);
|
|
79
|
+
};
|
|
80
|
+
React2.useEffect(() => {
|
|
81
|
+
const selectedOption = options.find((o) => o.value === value);
|
|
82
|
+
setInputValue(selectedOption ? selectedOption.label : "");
|
|
83
|
+
}, [value, options]);
|
|
84
|
+
React2.useEffect(() => {
|
|
85
|
+
const handleClickOutside = (event) => {
|
|
86
|
+
if (popoverRef.current && !popoverRef.current.contains(event.target)) {
|
|
87
|
+
setOpen(false);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
91
|
+
return () => {
|
|
92
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
93
|
+
};
|
|
94
|
+
}, [popoverRef]);
|
|
95
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
96
|
+
label && /* @__PURE__ */ jsx(
|
|
97
|
+
Label,
|
|
98
|
+
{
|
|
99
|
+
htmlFor: inputId,
|
|
100
|
+
className: cn(
|
|
101
|
+
"font-sans font-normal",
|
|
102
|
+
required && "after:content-['*'] after:text-destructive after:ml-1"
|
|
103
|
+
),
|
|
104
|
+
children: label
|
|
105
|
+
}
|
|
106
|
+
),
|
|
107
|
+
/* @__PURE__ */ jsxs(
|
|
108
|
+
Command,
|
|
109
|
+
{
|
|
110
|
+
ref: popoverRef,
|
|
111
|
+
className: "relative",
|
|
112
|
+
onKeyDown: (e) => {
|
|
113
|
+
if (e.key === "Escape") {
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
setOpen(false);
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
children: [
|
|
119
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
120
|
+
/* @__PURE__ */ jsx(
|
|
121
|
+
CommandInput,
|
|
122
|
+
{
|
|
123
|
+
ref,
|
|
124
|
+
id: inputId,
|
|
125
|
+
value: inputValue,
|
|
126
|
+
onValueChange: (search) => {
|
|
127
|
+
setInputValue(search);
|
|
128
|
+
if (!search) {
|
|
129
|
+
setOpen(true);
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
onFocus: () => setOpen(true),
|
|
133
|
+
onBlur: () => {
|
|
134
|
+
const selectedOption = options.find((o) => o.value === value);
|
|
135
|
+
setInputValue(selectedOption ? selectedOption.label : "");
|
|
136
|
+
},
|
|
137
|
+
onKeyDown: (e) => {
|
|
138
|
+
if (e.key === "Enter" && !open) {
|
|
139
|
+
e.preventDefault();
|
|
140
|
+
setOpen(true);
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
disabled,
|
|
144
|
+
placeholder,
|
|
145
|
+
className: cn(
|
|
146
|
+
"flex h-11 w-full rounded-lg border border-neutral-300 bg-background py-2 pl-3 pr-10 text-base font-normal text-neutral-900 placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
147
|
+
"focus-visible:shadow-focus active:shadow-pressed",
|
|
148
|
+
error && "border-destructive focus-visible:shadow-destructive"
|
|
149
|
+
),
|
|
150
|
+
"aria-expanded": open,
|
|
151
|
+
"aria-invalid": error ? "true" : "false",
|
|
152
|
+
"aria-describedby": error ? `${inputId}-error` : helperText ? `${inputId}-helper` : void 0
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
open ? /* @__PURE__ */ jsx(ChevronUp, { className: "absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 cursor-pointer shrink-0 opacity-50" }) : /* @__PURE__ */ jsx(ChevronDown, { className: "absolute right-3 top-1/2 h-4 w-4 -translate-y-1/2 cursor-pointer shrink-0 opacity-50" })
|
|
156
|
+
] }),
|
|
157
|
+
open && /* @__PURE__ */ jsx(
|
|
158
|
+
"div",
|
|
159
|
+
{
|
|
160
|
+
className: "absolute top-full z-10 mt-1 w-full overflow-hidden rounded-md border border-neutral-200 bg-white shadow-lg",
|
|
161
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
162
|
+
children: /* @__PURE__ */ jsxs(CommandList, { children: [
|
|
163
|
+
/* @__PURE__ */ jsx(CommandEmpty, { children: "No se encontraron resultados." }),
|
|
164
|
+
/* @__PURE__ */ jsx(CommandGroup, { children: options.map((option) => /* @__PURE__ */ jsxs(
|
|
165
|
+
CommandItem,
|
|
166
|
+
{
|
|
167
|
+
value: option.label,
|
|
168
|
+
onSelect: () => handleSelect(option.value),
|
|
169
|
+
className: "flex cursor-pointer items-center justify-between px-3 py-2 text-base text-neutral-900 hover:bg-neutral-100 data-[selected=true]:bg-neutral-100",
|
|
170
|
+
children: [
|
|
171
|
+
option.label,
|
|
172
|
+
/* @__PURE__ */ jsx(
|
|
173
|
+
Check,
|
|
174
|
+
{
|
|
175
|
+
className: cn(
|
|
176
|
+
"ml-2 h-4 w-4 text-secondary-600",
|
|
177
|
+
value === option.value ? "opacity-100" : "opacity-0"
|
|
178
|
+
)
|
|
179
|
+
}
|
|
180
|
+
)
|
|
181
|
+
]
|
|
182
|
+
},
|
|
183
|
+
option.value
|
|
184
|
+
)) })
|
|
185
|
+
] })
|
|
186
|
+
}
|
|
187
|
+
)
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
),
|
|
191
|
+
helperText && !error && /* @__PURE__ */ jsx("p", { id: `${inputId}-helper`, className: "text-sm text-neutral-500", children: helperText }),
|
|
192
|
+
error && /* @__PURE__ */ jsx("p", { id: `${inputId}-error`, className: "text-sm text-red-500", children: typeof error === "string" ? error : "Este campo tiene errores" })
|
|
193
|
+
] });
|
|
194
|
+
}
|
|
195
|
+
);
|
|
196
|
+
Dropdown.displayName = "Dropdown";
|
|
197
|
+
|
|
198
|
+
export { Dropdown };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {
|
|
4
|
+
}
|
|
5
|
+
declare const Form: React.ForwardRefExoticComponent<FormProps & React.RefAttributes<HTMLFormElement>>;
|
|
6
|
+
interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
error?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const FormField: React.ForwardRefExoticComponent<FormFieldProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
interface FormLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
|
|
11
|
+
required?: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare const FormLabel: React.ForwardRefExoticComponent<FormLabelProps & React.RefAttributes<HTMLLabelElement>>;
|
|
14
|
+
interface FormMessageProps extends React.HTMLAttributes<HTMLParagraphElement> {
|
|
15
|
+
type?: 'error' | 'helper' | 'success';
|
|
16
|
+
}
|
|
17
|
+
declare const FormMessage: React.ForwardRefExoticComponent<FormMessageProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
18
|
+
|
|
19
|
+
export { Form, FormField, type FormFieldProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, type FormProps };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface FormProps extends React.FormHTMLAttributes<HTMLFormElement> {
|
|
4
|
+
}
|
|
5
|
+
declare const Form: React.ForwardRefExoticComponent<FormProps & React.RefAttributes<HTMLFormElement>>;
|
|
6
|
+
interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
error?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const FormField: React.ForwardRefExoticComponent<FormFieldProps & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
interface FormLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
|
|
11
|
+
required?: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare const FormLabel: React.ForwardRefExoticComponent<FormLabelProps & React.RefAttributes<HTMLLabelElement>>;
|
|
14
|
+
interface FormMessageProps extends React.HTMLAttributes<HTMLParagraphElement> {
|
|
15
|
+
type?: 'error' | 'helper' | 'success';
|
|
16
|
+
}
|
|
17
|
+
declare const FormMessage: React.ForwardRefExoticComponent<FormMessageProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
18
|
+
|
|
19
|
+
export { Form, FormField, type FormFieldProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, type FormProps };
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var clsx = require('clsx');
|
|
5
|
+
var tailwindMerge = require('tailwind-merge');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
function _interopNamespace(e) {
|
|
9
|
+
if (e && e.__esModule) return e;
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
27
|
+
|
|
28
|
+
var __defProp = Object.defineProperty;
|
|
29
|
+
var __defProps = Object.defineProperties;
|
|
30
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
31
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
32
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
33
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
34
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
35
|
+
var __spreadValues = (a, b) => {
|
|
36
|
+
for (var prop in b || (b = {}))
|
|
37
|
+
if (__hasOwnProp.call(b, prop))
|
|
38
|
+
__defNormalProp(a, prop, b[prop]);
|
|
39
|
+
if (__getOwnPropSymbols)
|
|
40
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
41
|
+
if (__propIsEnum.call(b, prop))
|
|
42
|
+
__defNormalProp(a, prop, b[prop]);
|
|
43
|
+
}
|
|
44
|
+
return a;
|
|
45
|
+
};
|
|
46
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
47
|
+
var __objRest = (source, exclude) => {
|
|
48
|
+
var target = {};
|
|
49
|
+
for (var prop in source)
|
|
50
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
51
|
+
target[prop] = source[prop];
|
|
52
|
+
if (source != null && __getOwnPropSymbols)
|
|
53
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
54
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
55
|
+
target[prop] = source[prop];
|
|
56
|
+
}
|
|
57
|
+
return target;
|
|
58
|
+
};
|
|
59
|
+
function cn(...inputs) {
|
|
60
|
+
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
61
|
+
}
|
|
62
|
+
var Form = React__namespace.forwardRef(
|
|
63
|
+
(_a, ref) => {
|
|
64
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
65
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
66
|
+
"form",
|
|
67
|
+
__spreadValues({
|
|
68
|
+
ref,
|
|
69
|
+
className: cn("space-y-6", className)
|
|
70
|
+
}, props)
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
Form.displayName = "Form";
|
|
75
|
+
var FormField = React__namespace.forwardRef(
|
|
76
|
+
(_a, ref) => {
|
|
77
|
+
var _b = _a, { className, error } = _b, props = __objRest(_b, ["className", "error"]);
|
|
78
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
79
|
+
"div",
|
|
80
|
+
__spreadValues({
|
|
81
|
+
ref,
|
|
82
|
+
className: cn(
|
|
83
|
+
"space-y-2",
|
|
84
|
+
error && "space-y-1",
|
|
85
|
+
// Menos espacio cuando hay error
|
|
86
|
+
className
|
|
87
|
+
)
|
|
88
|
+
}, props)
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
FormField.displayName = "FormField";
|
|
93
|
+
var FormLabel = React__namespace.forwardRef(
|
|
94
|
+
(_a, ref) => {
|
|
95
|
+
var _b = _a, { className, required, children } = _b, props = __objRest(_b, ["className", "required", "children"]);
|
|
96
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
97
|
+
"label",
|
|
98
|
+
__spreadProps(__spreadValues({
|
|
99
|
+
ref,
|
|
100
|
+
className: cn(
|
|
101
|
+
"text-body-xs font-normal leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
|
|
102
|
+
className
|
|
103
|
+
)
|
|
104
|
+
}, props), {
|
|
105
|
+
children: [
|
|
106
|
+
children,
|
|
107
|
+
required && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-destructive ml-1", children: "*" })
|
|
108
|
+
]
|
|
109
|
+
})
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
);
|
|
113
|
+
FormLabel.displayName = "FormLabel";
|
|
114
|
+
var FormMessage = React__namespace.forwardRef(
|
|
115
|
+
(_a, ref) => {
|
|
116
|
+
var _b = _a, { className, type = "helper" } = _b, props = __objRest(_b, ["className", "type"]);
|
|
117
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
118
|
+
"p",
|
|
119
|
+
__spreadValues({
|
|
120
|
+
ref,
|
|
121
|
+
className: cn(
|
|
122
|
+
"text-body-xs",
|
|
123
|
+
{
|
|
124
|
+
"text-destructive": type === "error",
|
|
125
|
+
"text-muted-foreground": type === "helper",
|
|
126
|
+
"text-green-600": type === "success"
|
|
127
|
+
},
|
|
128
|
+
className
|
|
129
|
+
)
|
|
130
|
+
}, props)
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
FormMessage.displayName = "FormMessage";
|
|
135
|
+
|
|
136
|
+
exports.Form = Form;
|
|
137
|
+
exports.FormField = FormField;
|
|
138
|
+
exports.FormLabel = FormLabel;
|
|
139
|
+
exports.FormMessage = FormMessage;
|