prometeo-design-system 1.6.7 → 1.6.9

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,207 @@
1
+ import { j as e } from "./jsx-runtime-ByW6EXIE.js";
2
+ import { motion as n, AnimatePresence as L } from "framer-motion";
3
+ import { useRef as B, useState as C } from "react";
4
+ import b from "./Avatar.es.js";
5
+ const I = {
6
+ sm: "w-16 h-16",
7
+ md: "w-24 h-24",
8
+ lg: "w-32 h-32",
9
+ xl: "w-40 h-40"
10
+ }, M = {
11
+ sm: "w-4 h-4",
12
+ md: "w-5 h-5",
13
+ lg: "w-6 h-6",
14
+ xl: "w-8 h-8"
15
+ }, N = {
16
+ sm: "w-6 h-6",
17
+ md: "w-7 h-7",
18
+ lg: "w-8 h-8",
19
+ xl: "w-10 h-10"
20
+ }, P = {
21
+ sm: "-bottom-1 -right-0.5",
22
+ md: "-bottom-0.5 -right-0.5",
23
+ lg: "bottom-1 right-1",
24
+ xl: "bottom-3 right-2"
25
+ }, d = {
26
+ sm: "w-4 h-4",
27
+ md: "w-5 h-5",
28
+ lg: "w-6 h-6",
29
+ xl: "w-7 h-7"
30
+ }, S = {
31
+ sm: "-top-0.5 -right-0.5",
32
+ md: "-top-1 -right-1",
33
+ lg: "-top-1 -right-0",
34
+ xl: "top-1 right-1"
35
+ };
36
+ function A({
37
+ imageUrl: s,
38
+ fallbackText: f = "S L",
39
+ onFileSelect: p,
40
+ onEditClick: l,
41
+ onRemoveClick: g,
42
+ size: o = "lg",
43
+ className: x,
44
+ disabled: t = !1,
45
+ showRemoveButton: w = !0,
46
+ acceptedTypes: v = "image/*",
47
+ maxFileSize: c = 5 * 1024 * 1024,
48
+ onError: u
49
+ }) {
50
+ const h = B(null), [i, m] = C(!1), j = (r) => r.type.startsWith("image/") ? r.size > c ? (u?.(`La imagen debe ser menor a ${Math.round(c / 1024 / 1024)}MB`), !1) : !0 : (u?.("Por favor selecciona un archivo de imagen válido"), !1), y = (r) => {
51
+ const a = r.target.files?.[0];
52
+ a && (j(a) && p?.(a), r.target.value = "");
53
+ }, k = () => {
54
+ t || (l ? l() : h.current?.click());
55
+ }, $ = (r) => {
56
+ r.stopPropagation(), !t && g?.();
57
+ };
58
+ return /* @__PURE__ */ e.jsxs(
59
+ "div",
60
+ {
61
+ onMouseEnter: () => m(!0),
62
+ onMouseLeave: () => m(!1),
63
+ className: `relative inline-block border-inherit ${x || ""}`,
64
+ children: [
65
+ /* @__PURE__ */ e.jsx(
66
+ "input",
67
+ {
68
+ ref: h,
69
+ type: "file",
70
+ accept: v,
71
+ onChange: y,
72
+ className: "hidden",
73
+ disabled: t
74
+ }
75
+ ),
76
+ /* @__PURE__ */ e.jsx(
77
+ n.div,
78
+ {
79
+ className: `
80
+ ${I[o]}
81
+ rounded-full
82
+ overflow-hidden
83
+ flex items-center justify-center
84
+ relative
85
+ ${t ? "opacity-50 cursor-not-allowed" : ""}
86
+ `,
87
+ children: /* @__PURE__ */ e.jsx(
88
+ b,
89
+ {
90
+ urlImage: s,
91
+ fallbackText: f,
92
+ sizeImage: o,
93
+ sizeFallback: o
94
+ }
95
+ )
96
+ }
97
+ ),
98
+ /* @__PURE__ */ e.jsx(
99
+ n.button,
100
+ {
101
+ className: `
102
+ absolute
103
+ ${P[o]}
104
+ border-3
105
+ border-inherit
106
+ ${N[o]}
107
+ rounded-lg
108
+ bg-primary-default-default
109
+ hover:bg-primary-default-hover
110
+ transition-all duration-300
111
+ flex
112
+ items-center
113
+ justify-center
114
+ cursor-pointer
115
+ ${t ? "opacity-50 cursor-not-allowed" : ""}
116
+ `,
117
+ onClick: k,
118
+ disabled: t,
119
+ whileTap: t ? {} : { scale: 0.95, transition: { duration: 0.2, ease: "easeInOut" } },
120
+ initial: { scale: 0, rotate: -180 },
121
+ animate: { scale: 1, rotate: 0 },
122
+ children: /* @__PURE__ */ e.jsx(
123
+ n.svg,
124
+ {
125
+ className: `${M[o]} text-white`,
126
+ fill: "none",
127
+ stroke: "currentColor",
128
+ viewBox: "0 0 24 24",
129
+ animate: i && !t ? {
130
+ x: [0, -1, 0, 1, -1, 0, 1],
131
+ y: [0, 1, 0, 1, 0, 1, 1],
132
+ rotate: [0, 5, -3, 8, -5, 3, 1],
133
+ transition: {
134
+ duration: 2,
135
+ ease: "easeInOut"
136
+ }
137
+ } : { x: 0, y: 0, rotate: 0 },
138
+ transition: {
139
+ duration: 1.2,
140
+ repeat: 0,
141
+ ease: "easeInOut"
142
+ },
143
+ children: /* @__PURE__ */ e.jsx(
144
+ "path",
145
+ {
146
+ strokeLinecap: "round",
147
+ strokeLinejoin: "round",
148
+ strokeWidth: 2,
149
+ d: "M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z"
150
+ }
151
+ )
152
+ }
153
+ )
154
+ }
155
+ ),
156
+ /* @__PURE__ */ e.jsx(L, { children: s && w && !t && /* @__PURE__ */ e.jsx(
157
+ n.button,
158
+ {
159
+ className: `
160
+ absolute
161
+ ${S[o]}
162
+ ${d[o]}
163
+ rounded-full
164
+ shadow-lg
165
+ bg-error-light
166
+ flex
167
+ cursor-pointer
168
+ items-center
169
+ justify-center
170
+ ${t ? "opacity-50 cursor-not-allowed" : ""}
171
+ `,
172
+ disabled: t,
173
+ onClick: $,
174
+ initial: { scale: 0, opacity: 0, rotate: -90 },
175
+ animate: {
176
+ scale: i ? 1 : 0.8,
177
+ opacity: i ? 1 : 0,
178
+ rotate: 0
179
+ },
180
+ exit: { scale: 0, opacity: 0, rotate: 90 },
181
+ whileTap: { scale: 0.9 },
182
+ transition: {
183
+ type: "spring",
184
+ stiffness: 300,
185
+ damping: 25
186
+ },
187
+ children: /* @__PURE__ */ e.jsx(
188
+ n.svg,
189
+ {
190
+ className: `${d[o]} text-white p-1`,
191
+ fill: "none",
192
+ stroke: "currentColor",
193
+ viewBox: "0 0 24 24",
194
+ whileHover: { rotate: 90 },
195
+ transition: { duration: 0.2 },
196
+ children: /* @__PURE__ */ e.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })
197
+ }
198
+ )
199
+ }
200
+ ) })
201
+ ]
202
+ }
203
+ );
204
+ }
205
+ export {
206
+ A as ProfilePictureUpload
207
+ };
@@ -0,0 +1,2 @@
1
+ export * from './exports/Steps'
2
+ export {}
@@ -0,0 +1,189 @@
1
+ import { j as e } from "./jsx-runtime-ByW6EXIE.js";
2
+ import { c as j } from "./cn-B6yFEsav.js";
3
+ import { motion as r } from "framer-motion";
4
+ import { Icons as y } from "./Icons.es.js";
5
+ const b = ({
6
+ index: l,
7
+ isHorizontal: s,
8
+ currentStep: d
9
+ }) => {
10
+ const i = l < d, n = l === d - 1;
11
+ return /* @__PURE__ */ e.jsxs("div", { className: `relative ${s ? "w-20 h-1" : "w-0.5 h-8"}`, children: [
12
+ /* @__PURE__ */ e.jsx(
13
+ "div",
14
+ {
15
+ className: "absolute inset-0 rounded-full bg-neutral-medium-default"
16
+ }
17
+ ),
18
+ /* @__PURE__ */ e.jsx(
19
+ r.div,
20
+ {
21
+ className: "absolute inset-0 rounded-full bg-primary-default-default",
22
+ initial: {
23
+ scaleX: s ? 0 : 1,
24
+ scaleY: s ? 1 : 0,
25
+ opacity: 0
26
+ },
27
+ animate: {
28
+ scaleX: i ? 1 : s ? 0 : 1,
29
+ scaleY: i || s ? 1 : 0,
30
+ opacity: i ? 1 : 0
31
+ },
32
+ transition: {
33
+ duration: 0.2,
34
+ ease: "easeInOut",
35
+ delay: l * 0.1
36
+ },
37
+ style: {
38
+ originX: s ? 0 : 0.5,
39
+ originY: s ? 0.5 : 0
40
+ }
41
+ }
42
+ ),
43
+ n && /* @__PURE__ */ e.jsx(
44
+ r.div,
45
+ {
46
+ className: "absolute inset-0 rounded-full bg-primary-default-default",
47
+ initial: {
48
+ scaleX: s ? 0 : 1,
49
+ scaleY: s ? 1 : 0,
50
+ opacity: 0
51
+ },
52
+ animate: {
53
+ scaleX: 1,
54
+ scaleY: 1,
55
+ opacity: [0, 0.3, 0]
56
+ },
57
+ transition: {
58
+ duration: 1.5,
59
+ repeat: 1 / 0,
60
+ ease: "easeInOut"
61
+ },
62
+ style: {
63
+ originX: s ? 0 : 0.5,
64
+ originY: s ? 0.5 : 0,
65
+ filter: "blur(4px)"
66
+ }
67
+ }
68
+ )
69
+ ] });
70
+ }, I = ({
71
+ steps: l,
72
+ currentStep: s,
73
+ orientation: d = "horizontal",
74
+ variant: i = "default",
75
+ size: n = "md",
76
+ className: f = "",
77
+ onStepClick: x,
78
+ allowClickableSteps: p = !1
79
+ }) => {
80
+ const c = d === "horizontal", v = (t) => ({
81
+ sm: { right: "-40px", top: "16px" },
82
+ md: { right: "-40px", top: "20px" },
83
+ lg: { right: "-40px", top: "24px" }
84
+ })[t], m = {
85
+ sm: {
86
+ circle: "w-8 h-8 text-xs",
87
+ title: "text-sm",
88
+ description: "text-xs",
89
+ spacing: c ? "gap-4" : "gap-1"
90
+ },
91
+ md: {
92
+ circle: "w-10 h-10 text-sm",
93
+ title: "text-base",
94
+ description: "text-sm",
95
+ spacing: c ? "gap-3" : "gap-2"
96
+ },
97
+ lg: {
98
+ circle: "w-12 h-12 text-base",
99
+ title: "text-lg",
100
+ description: "text-base",
101
+ spacing: c ? "gap-4" : "gap-3"
102
+ }
103
+ }, N = (t) => t < s ? "completed" : t === s ? "current" : "upcoming", g = (t) => {
104
+ const a = `${m[n].circle} rounded-full flex items-center justify-center font-medium`;
105
+ switch (t) {
106
+ case "completed":
107
+ return `${a} bg-primary-default-default text-neutral-strong-default shadow-lg`;
108
+ case "current":
109
+ return `${a} border-3 border-primary text-neutral-strong-default shadow-lg duration-900`;
110
+ default:
111
+ return `${a} bg-neutral-medium-default text-neutral-medium-default`;
112
+ }
113
+ }, h = (t) => {
114
+ p && x && x(t);
115
+ }, w = c ? `flex items-center ${f}` : `space-y-0 ${f}`;
116
+ return /* @__PURE__ */ e.jsx("div", { className: w, children: l.map((t, a) => {
117
+ const o = N(a), u = p && x;
118
+ return /* @__PURE__ */ e.jsx("div", { className: "flex items-center", children: c ? /* @__PURE__ */ e.jsx("div", { className: "flex", children: /* @__PURE__ */ e.jsxs("div", { className: "w-40 flex flex-col items-center relative", children: [
119
+ /* @__PURE__ */ e.jsx(
120
+ r.div,
121
+ {
122
+ className: `${g(o)} ${u ? "cursor-pointer" : ""} relative z-10`,
123
+ initial: { scale: 0.8, opacity: 0 },
124
+ animate: { scale: 1, opacity: 1 },
125
+ transition: { duration: 0.3, delay: a * 0.1 },
126
+ whileTap: u ? { scale: 0.95 } : {},
127
+ onClick: () => h(a),
128
+ children: i === "numbered" || !t.icon ? o === "completed" ? /* @__PURE__ */ e.jsx(r.div, { initial: { scale: 0 }, animate: { scale: 1 }, transition: { duration: 0.2 }, children: /* @__PURE__ */ e.jsx(y.Check, { size: 24, className: "text-neutral-strong-default" }) }) : /* @__PURE__ */ e.jsx("span", { children: a + 1 }) : t.icon
129
+ }
130
+ ),
131
+ a < l.length - 1 && /* @__PURE__ */ e.jsx(
132
+ "div",
133
+ {
134
+ className: "absolute",
135
+ style: v(n),
136
+ children: /* @__PURE__ */ e.jsx(
137
+ b,
138
+ {
139
+ index: a,
140
+ isHorizontal: c,
141
+ currentStep: s
142
+ }
143
+ )
144
+ }
145
+ ),
146
+ i !== "minimal" && t.description && /* @__PURE__ */ e.jsx("p", { className: j(
147
+ m[n].description,
148
+ "text-gray-400 mt-2 text-center max-w-full",
149
+ o === "current" ? "text-neutral-strong-default font-semibold text-sm" : "text-neutral-medium-default"
150
+ ), children: t.description })
151
+ ] }) }) : /* @__PURE__ */ e.jsxs("div", { className: "relative flex w-36", children: [
152
+ /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col items-center w-full", children: [
153
+ /* @__PURE__ */ e.jsx(
154
+ r.div,
155
+ {
156
+ className: `${g(o)} ${u ? "cursor-pointer" : ""}`,
157
+ initial: { scale: 0.8, opacity: 0 },
158
+ animate: { scale: 1, opacity: 1 },
159
+ transition: { duration: 0.3, delay: a * 0.1 },
160
+ whileTap: u ? { scale: 0.95 } : {},
161
+ onClick: () => h(a),
162
+ children: i === "numbered" || !t.icon ? o === "completed" ? /* @__PURE__ */ e.jsx(r.div, { initial: { scale: 0 }, animate: { scale: 1 }, transition: { duration: 0.2 }, children: /* @__PURE__ */ e.jsx(y.Check, { size: 24, className: "text-neutral-strong-default" }) }) : /* @__PURE__ */ e.jsx("span", { children: a + 1 }) : t.icon
163
+ }
164
+ ),
165
+ a < l.length - 1 && /* @__PURE__ */ e.jsx(
166
+ b,
167
+ {
168
+ index: a,
169
+ isHorizontal: c,
170
+ currentStep: s
171
+ }
172
+ )
173
+ ] }),
174
+ i !== "minimal" && /* @__PURE__ */ e.jsx(
175
+ r.div,
176
+ {
177
+ className: `absolute -right-30 ml-4 top-3 gap-3 flex flex-col w-full ${m[n].spacing} flex h-full`,
178
+ initial: { opacity: 0, x: -10 },
179
+ animate: { opacity: 1, x: 0 },
180
+ transition: { duration: 0.3, delay: a * 0.1 + 0.1 },
181
+ children: t.description && /* @__PURE__ */ e.jsx("p", { className: j(m[n].description, "text-gray-400", o === "current" ? "text-neutral-strong-default font-semibold text-sm" : "text-neutral-medium-default"), children: t.description })
182
+ }
183
+ )
184
+ ] }) }, t.id);
185
+ }) });
186
+ };
187
+ export {
188
+ I as Steps
189
+ };
@@ -22,6 +22,7 @@ export interface ButtonProps extends VariantProps<typeof buttonVariants> {
22
22
  className?: string;
23
23
  disabled?: boolean;
24
24
  variant?: "filled" | "outline" | "text";
25
+ form?: string;
25
26
  }
26
- export default function Button({ label, onClick, icon, contentClassName, loadingText, animate, animateIcon, isLoading, disabled, type, variant, color, size, children, Spinner, className, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
27
+ export default function Button({ label, onClick, icon, contentClassName, loadingText, animate, animateIcon, isLoading, disabled, type, variant, color, size, children, Spinner, className, form, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
27
28
  export {};
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
+ export type LabelVariant = "default" | "static";
2
3
  export interface IInputFormik {
3
4
  label: string;
4
5
  icon?: ReactNode;
@@ -8,6 +9,8 @@ export interface IInputFormik {
8
9
  id?: string;
9
10
  type?: string;
10
11
  name: string;
12
+ labelVariant?: LabelVariant;
13
+ placeholder?: string;
11
14
  onBlur?: () => void;
12
15
  onFocus?: () => void;
13
16
  disabled?: boolean;
@@ -15,5 +18,5 @@ export interface IInputFormik {
15
18
  onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
16
19
  onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
17
20
  }
18
- declare const InputFormik: ({ icon, iconPosition, label, className, containerClassName, id, type, disabled, ...props }: IInputFormik) => import("react/jsx-runtime").JSX.Element;
21
+ declare const InputFormik: ({ icon, iconPosition, label, className, containerClassName, id, type, labelVariant, placeholder, disabled, ...props }: IInputFormik) => import("react/jsx-runtime").JSX.Element;
19
22
  export default InputFormik;
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- interface InputMultipleProps {
2
+ export interface InputMultipleProps {
3
3
  label: string;
4
4
  name: string;
5
5
  onChange: (value: string[]) => void;
@@ -1,4 +1,4 @@
1
- interface ProfilePictureUploadProps {
1
+ export interface ProfilePictureUploadProps {
2
2
  imageUrl?: string;
3
3
  fallbackText?: string;
4
4
  onFileSelect?: (file: File) => void;
@@ -13,4 +13,3 @@ interface ProfilePictureUploadProps {
13
13
  onError?: (error: string) => void;
14
14
  }
15
15
  export declare function ProfilePictureUpload({ imageUrl, fallbackText, onFileSelect, onEditClick, onRemoveClick, size, className, disabled, showRemoveButton, acceptedTypes, maxFileSize, onError, }: ProfilePictureUploadProps): import("react/jsx-runtime").JSX.Element;
16
- export {};
@@ -0,0 +1 @@
1
+ export { default as InputMultiple } from '../components/InputMultiple/InputMultiple';
@@ -0,0 +1,2 @@
1
+ export { ProfilePictureUpload } from '../components/ProfilePictureUpload/ProfilePictureUpload';
2
+ export type { ProfilePictureUploadProps } from '../components/ProfilePictureUpload/ProfilePictureUpload';
@@ -0,0 +1,2 @@
1
+ export { default as Steps } from '../components/Steps/Steps';
2
+ export type { Step, StepsProps } from '../components/Steps/Steps';
package/dist/index.d.ts CHANGED
@@ -12,16 +12,19 @@ export { default as InputFormik } from './components/InputFormik/InputFormik';
12
12
  export { default as Logo } from './components/Logo/Logo';
13
13
  export { Menu } from './components/Menu/MenuComposable';
14
14
  export { default as Pagination } from './components/Pagination/Pagination';
15
+ export { ProfilePictureUpload } from './components/ProfilePictureUpload/ProfilePictureUpload';
15
16
  export { default as ProgressBar } from './components/ProgressBar/ProgressBar';
16
17
  export { default as Select } from './components/Select/Select';
17
18
  export { default as SelectFormik } from './components/SelectFormik/SelectFormik';
18
19
  export { default as ChangueAccount } from './components/Sidebar/components/changue-account';
19
20
  export { default as Spinner } from './components/Spinner/Spinner';
21
+ export { default as Steps } from './components/Steps/Steps';
20
22
  export { default as SwipeContainer } from './components/SwipeContainer/SwipeContainer';
21
23
  export { default as TabLinks } from './components/TabLinks/TabLinks';
22
24
  export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from './components/Table/Table';
23
25
  export { default as TextArea } from './components/TextArea/TextArea';
24
26
  export { default as Tooltip } from './components/Tooltip/Tootip';
27
+ export { default as InputMultiple } from './components/InputMultiple/InputMultiple';
25
28
  export { default as LayoutGeneric } from './components/Layout/LayoutGeneric';
26
29
  export * from './components/Sidebar';
27
30
  export { SecondaryBar } from './components/Sidebar/SecondaryBar/SecondaryBar';
@@ -56,6 +59,8 @@ export type { INavAction, INavLink, Role, RoleLevels, } from './components/Sideb
56
59
  export type { SidebarContextValue } from './components/Sidebar/hooks/useSidebarHook';
57
60
  export type { SpinnerProps, SpinnerSize, SpinnerVariant, } from './components/Spinner/Spinner';
58
61
  export type { PaginationProps } from './components/Pagination/Pagination';
62
+ export type { ProfilePictureUploadProps } from './components/ProfilePictureUpload/ProfilePictureUpload';
63
+ export type { Step, StepsProps } from './components/Steps/Steps';
59
64
  export type { SelectOptionRendererProps, SelectProps, SelectionDisplayProps, } from './components/Select/Select';
60
65
  export type { ISelectFormik, ISelectFormikOption, } from './components/SelectFormik/SelectFormik';
61
66
  export type { DialogHandle } from './components/Dialog/Dialog';
@@ -64,4 +69,5 @@ export type { ToasterPrometeo } from './components/Toaster/Toaster';
64
69
  export type { LayoutGenericProps } from './components/Layout/LayoutGeneric';
65
70
  export type { CountdownProgressProps } from './components/ProgressBar/ProgressBar';
66
71
  export type { IToolTipProps } from './components/Tooltip/Tootip';
72
+ export type { InputMultipleProps } from './components/InputMultiple/InputMultiple';
67
73
  export { Icons } from './Icons/Icons';