framepexls-ui-lib 0.1.12 → 0.1.14
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/ActionIconButton.d.mts +1 -0
- package/dist/ActionIconButton.d.ts +1 -0
- package/dist/ActionIconButton.js +12 -9
- package/dist/ActionIconButton.mjs +13 -10
- package/dist/AppTopbar.d.mts +8 -9
- package/dist/AppTopbar.d.ts +8 -9
- package/dist/AppTopbar.js +31 -5
- package/dist/AppTopbar.mjs +21 -5
- package/dist/AvatarGroup.d.mts +14 -0
- package/dist/AvatarGroup.d.ts +14 -0
- package/dist/AvatarGroup.js +77 -0
- package/dist/AvatarGroup.mjs +47 -0
- package/dist/AvatarSquare.d.mts +2 -5
- package/dist/AvatarSquare.d.ts +2 -5
- package/dist/AvatarSquare.js +52 -3
- package/dist/AvatarSquare.mjs +52 -3
- package/dist/Badge.d.mts +2 -1
- package/dist/Badge.d.ts +2 -1
- package/dist/Badge.js +3 -1
- package/dist/Badge.mjs +3 -1
- package/dist/BadgeCluster.js +3 -3
- package/dist/BadgeCluster.mjs +3 -3
- package/dist/Button.d.mts +3 -4
- package/dist/Button.d.ts +3 -4
- package/dist/Button.js +97 -9
- package/dist/Button.mjs +87 -9
- package/dist/CalendarPanel.js +20 -3
- package/dist/CalendarPanel.mjs +10 -3
- package/dist/Card.d.mts +6 -0
- package/dist/Card.d.ts +6 -0
- package/dist/Card.js +52 -0
- package/dist/Card.mjs +22 -0
- package/dist/CheckboxPillsGroup.d.mts +2 -1
- package/dist/CheckboxPillsGroup.d.ts +2 -1
- package/dist/CheckboxPillsGroup.js +8 -4
- package/dist/CheckboxPillsGroup.mjs +8 -4
- package/dist/ColumnSelector.js +16 -2
- package/dist/ColumnSelector.mjs +6 -2
- package/dist/ComboSelect.d.mts +0 -2
- package/dist/ComboSelect.d.ts +0 -2
- package/dist/ComboSelect.js +8 -4
- package/dist/ComboSelect.mjs +8 -4
- package/dist/DateTimeField.d.mts +0 -5
- package/dist/DateTimeField.d.ts +0 -5
- package/dist/DateTimeField.js +17 -8
- package/dist/DateTimeField.mjs +17 -8
- package/dist/Dialog.d.mts +2 -5
- package/dist/Dialog.d.ts +2 -5
- package/dist/Dialog.js +21 -22
- package/dist/Dialog.mjs +21 -22
- package/dist/Drawer.d.mts +38 -0
- package/dist/Drawer.d.ts +38 -0
- package/dist/Drawer.js +139 -0
- package/dist/Drawer.mjs +102 -0
- package/dist/Dropdown.d.mts +0 -3
- package/dist/Dropdown.d.ts +0 -3
- package/dist/Dropdown.js +61 -42
- package/dist/Dropdown.mjs +51 -42
- package/dist/Input.d.mts +2 -0
- package/dist/Input.d.ts +2 -0
- package/dist/Input.js +20 -5
- package/dist/Input.mjs +20 -5
- package/dist/Link.d.mts +15 -0
- package/dist/Link.d.ts +15 -0
- package/dist/Link.js +93 -0
- package/dist/Link.mjs +63 -0
- package/dist/MediaCard.d.mts +15 -0
- package/dist/MediaCard.d.ts +15 -0
- package/dist/MediaCard.js +153 -0
- package/dist/MediaCard.mjs +123 -0
- package/dist/MediaSelector.d.mts +48 -0
- package/dist/MediaSelector.d.ts +48 -0
- package/dist/MediaSelector.js +225 -0
- package/dist/MediaSelector.mjs +195 -0
- package/dist/Money.d.mts +2 -1
- package/dist/Money.d.ts +2 -1
- package/dist/Money.js +26 -2
- package/dist/Money.mjs +26 -2
- package/dist/MultiComboSelect.js +6 -11
- package/dist/MultiComboSelect.mjs +6 -11
- package/dist/OrderButton.js +13 -1
- package/dist/OrderButton.mjs +3 -1
- package/dist/Pagination.d.mts +2 -1
- package/dist/Pagination.d.ts +2 -1
- package/dist/Pagination.js +40 -3
- package/dist/Pagination.mjs +30 -3
- package/dist/ReviewHistory.js +3 -9
- package/dist/ReviewHistory.mjs +3 -9
- package/dist/SearchInput.js +17 -42
- package/dist/SearchInput.mjs +17 -42
- package/dist/Select.js +5 -2
- package/dist/Select.mjs +5 -2
- package/dist/Sidebar.d.mts +2 -3
- package/dist/Sidebar.d.ts +2 -3
- package/dist/Sidebar.js +132 -24
- package/dist/Sidebar.mjs +132 -24
- package/dist/Steps.d.mts +0 -2
- package/dist/Steps.d.ts +0 -2
- package/dist/Steps.js +19 -6
- package/dist/Steps.mjs +9 -6
- package/dist/Table.js +3 -1
- package/dist/Table.mjs +3 -1
- package/dist/TimePanel.js +21 -7
- package/dist/TimePanel.mjs +11 -7
- package/dist/TimePopover.js +32 -15
- package/dist/TimePopover.mjs +32 -15
- package/dist/TimeRangeField.js +13 -6
- package/dist/TimeRangeField.mjs +13 -6
- package/dist/Toast.d.mts +53 -0
- package/dist/Toast.d.ts +53 -0
- package/dist/Toast.js +273 -0
- package/dist/Toast.mjs +238 -0
- package/dist/Tooltip.d.mts +15 -0
- package/dist/Tooltip.d.ts +15 -0
- package/dist/Tooltip.js +135 -0
- package/dist/Tooltip.mjs +105 -0
- package/dist/UploadCard.d.mts +27 -0
- package/dist/UploadCard.d.ts +27 -0
- package/dist/UploadCard.js +143 -0
- package/dist/UploadCard.mjs +113 -0
- package/dist/index.d.mts +10 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.js +30 -1
- package/dist/index.mjs +58 -39
- package/package.json +1 -1
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import ChartCard from "./ChartCard";
|
|
5
|
+
import Button from "./Button";
|
|
6
|
+
import Input from "./Input";
|
|
7
|
+
import Dialog from "./Dialog";
|
|
8
|
+
import Pagination from "./Pagination";
|
|
9
|
+
function MediaSelector({
|
|
10
|
+
value,
|
|
11
|
+
onChange,
|
|
12
|
+
medios,
|
|
13
|
+
accept = "image/png,image/jpeg,image/jpg,image/webp,image/gif",
|
|
14
|
+
autoOpen,
|
|
15
|
+
dialogOnly,
|
|
16
|
+
onClose
|
|
17
|
+
}) {
|
|
18
|
+
const { obtenerMedios, items, page, lastPage, setPage, subirMedio } = medios;
|
|
19
|
+
const [openPicker, setOpenPicker] = useState(false);
|
|
20
|
+
const [uploading, setUploading] = useState(false);
|
|
21
|
+
const [progress, setProgress] = useState(0);
|
|
22
|
+
const inputRef = useRef(null);
|
|
23
|
+
const [linkValue, setLinkValue] = useState(value != null ? value : "");
|
|
24
|
+
const [linkLoading, setLinkLoading] = useState(false);
|
|
25
|
+
const [linkError, setLinkError] = useState(null);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (openPicker) obtenerMedios({ page: page || 1 });
|
|
28
|
+
}, [openPicker, page, obtenerMedios]);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (autoOpen) setOpenPicker(true);
|
|
31
|
+
}, [autoOpen]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (openPicker) setLinkValue(value != null ? value : "");
|
|
34
|
+
}, [openPicker, value]);
|
|
35
|
+
const onFiles = async (files) => {
|
|
36
|
+
var _a, _b, _c, _d;
|
|
37
|
+
if (!(files == null ? void 0 : files.length)) return;
|
|
38
|
+
const file = files[0];
|
|
39
|
+
setUploading(true);
|
|
40
|
+
setProgress(0);
|
|
41
|
+
const res = await subirMedio(file, { onProgress: (p) => setProgress(p.porcentaje) });
|
|
42
|
+
setUploading(false);
|
|
43
|
+
if (res.ok) {
|
|
44
|
+
const url = (_d = (_c = (_a = res.data) == null ? void 0 : _a.url) != null ? _c : (_b = res.data) == null ? void 0 : _b.url) != null ? _d : null;
|
|
45
|
+
onChange(url, res.data);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const handleDrop = (e) => {
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
onFiles(e.dataTransfer.files);
|
|
51
|
+
};
|
|
52
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
53
|
+
!dialogOnly && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
54
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
55
|
+
/* @__PURE__ */ jsx(Input, { value: value != null ? value : "", onChange: (e) => onChange(e.target.value || null), placeholder: "URL de imagen", clearable: true, onClear: () => onChange(null) }),
|
|
56
|
+
/* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => setOpenPicker(true), children: "Elegir" })
|
|
57
|
+
] }),
|
|
58
|
+
value && /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-2xl border border-slate-200 bg-white/60 p-2 dark:border-white/10 dark:bg-white/5", children: /* @__PURE__ */ jsx("div", { className: "aspect-video w-full overflow-hidden rounded-xl bg-slate-100", children: /* @__PURE__ */ jsx("img", { src: value, alt: "preview", className: "h-full w-full object-cover" }) }) })
|
|
59
|
+
] }),
|
|
60
|
+
/* @__PURE__ */ jsxs(Dialog, { open: openPicker, onClose: () => {
|
|
61
|
+
setOpenPicker(false);
|
|
62
|
+
onClose == null ? void 0 : onClose();
|
|
63
|
+
}, size: "full", children: [
|
|
64
|
+
/* @__PURE__ */ jsx(Dialog.Header, { title: "Biblioteca de medios", description: "Selecciona una imagen o sube una nueva", onClose: () => {
|
|
65
|
+
setOpenPicker(false);
|
|
66
|
+
onClose == null ? void 0 : onClose();
|
|
67
|
+
} }),
|
|
68
|
+
/* @__PURE__ */ jsx(Dialog.Body, { children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-3", children: [
|
|
69
|
+
/* @__PURE__ */ jsx(ChartCard, { className: "lg:col-span-1", title: "Subir imagen", subtitle: /* @__PURE__ */ jsx("span", { children: "Arrastra una imagen o selecci\xF3nala" }), right: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
70
|
+
/* @__PURE__ */ jsx(Input, { unstyled: true, ref: inputRef, type: "file", accept, className: "hidden", onChange: (e) => onFiles(e.target.files) }),
|
|
71
|
+
/* @__PURE__ */ jsx(Button, { onClick: () => {
|
|
72
|
+
var _a;
|
|
73
|
+
return (_a = inputRef.current) == null ? void 0 : _a.click();
|
|
74
|
+
}, disabled: uploading, children: "Seleccionar" })
|
|
75
|
+
] }), children: /* @__PURE__ */ jsxs(
|
|
76
|
+
"div",
|
|
77
|
+
{
|
|
78
|
+
onDragOver: (e) => {
|
|
79
|
+
e.preventDefault();
|
|
80
|
+
e.dataTransfer.dropEffect = "copy";
|
|
81
|
+
},
|
|
82
|
+
onDrop: handleDrop,
|
|
83
|
+
onClick: () => {
|
|
84
|
+
var _a;
|
|
85
|
+
return (_a = inputRef.current) == null ? void 0 : _a.click();
|
|
86
|
+
},
|
|
87
|
+
className: "flex cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl border border-dashed border-slate-300 bg-gradient-to-b from-white/90 to-white/60 p-8 text-center transition hover:border-slate-400 hover:bg-white/80 dark:border-white/10 dark:from-white/10 dark:to-white/5",
|
|
88
|
+
children: [
|
|
89
|
+
/* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: "h-8 w-8 text-slate-400", fill: "none", stroke: "currentColor", strokeWidth: "1.6", children: /* @__PURE__ */ jsx("path", { d: "M12 16V4M7 9l5-5 5 5M20 16v3a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-3" }) }),
|
|
90
|
+
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium", children: "Soltar imagen aqu\xED" }),
|
|
91
|
+
uploading && /* @__PURE__ */ jsxs("div", { className: "mt-3 w-full", children: [
|
|
92
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-1 text-xs text-slate-500", children: [
|
|
93
|
+
progress,
|
|
94
|
+
"%"
|
|
95
|
+
] }),
|
|
96
|
+
/* @__PURE__ */ jsx("div", { className: "h-2 overflow-hidden rounded-full bg-slate-100 dark:bg-white/10", children: /* @__PURE__ */ jsx("div", { className: "h-full bg-gradient-to-r from-emerald-500/70 to-emerald-500/20", style: { width: `${progress}%` } }) })
|
|
97
|
+
] })
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
) }),
|
|
101
|
+
/* @__PURE__ */ jsxs(ChartCard, { className: "lg:col-span-1", title: "Desde enlace", subtitle: /* @__PURE__ */ jsx("span", { children: "Pega una URL http(s) v\xE1lida" }), compact: true, children: [
|
|
102
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
103
|
+
/* @__PURE__ */ jsx(
|
|
104
|
+
Input,
|
|
105
|
+
{
|
|
106
|
+
type: "url",
|
|
107
|
+
placeholder: "https://\u2026",
|
|
108
|
+
value: linkValue,
|
|
109
|
+
onChange: (e) => {
|
|
110
|
+
setLinkValue(e.target.value);
|
|
111
|
+
setLinkError(null);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
),
|
|
115
|
+
/* @__PURE__ */ jsx(
|
|
116
|
+
Button,
|
|
117
|
+
{
|
|
118
|
+
onClick: async () => {
|
|
119
|
+
var _a, _b, _c, _d;
|
|
120
|
+
if (!linkValue) return;
|
|
121
|
+
setLinkError(null);
|
|
122
|
+
const isHttp = /^https?:\/\//i.test(linkValue);
|
|
123
|
+
if (!isHttp) {
|
|
124
|
+
setLinkError("Ingresa un enlace v\xE1lido (http/https)");
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const importer = (_a = medios.importFromUrl) != null ? _a : medios.importarMedioDesdeUrl;
|
|
128
|
+
if (importer) {
|
|
129
|
+
setLinkLoading(true);
|
|
130
|
+
const res = await importer(linkValue);
|
|
131
|
+
setLinkLoading(false);
|
|
132
|
+
if (res && res.ok) {
|
|
133
|
+
const d = (_b = res.data) != null ? _b : res;
|
|
134
|
+
onChange((_c = d == null ? void 0 : d.url) != null ? _c : null, d != null ? d : null);
|
|
135
|
+
setOpenPicker(false);
|
|
136
|
+
onClose == null ? void 0 : onClose();
|
|
137
|
+
} else {
|
|
138
|
+
setLinkError(String((_d = res == null ? void 0 : res.error) != null ? _d : "No se pudo importar el enlace"));
|
|
139
|
+
}
|
|
140
|
+
} else {
|
|
141
|
+
onChange(linkValue || null, null);
|
|
142
|
+
setOpenPicker(false);
|
|
143
|
+
onClose == null ? void 0 : onClose();
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
disabled: !linkValue || linkLoading,
|
|
147
|
+
children: linkLoading ? "Importando\u2026" : "Usar"
|
|
148
|
+
}
|
|
149
|
+
)
|
|
150
|
+
] }),
|
|
151
|
+
linkError && /* @__PURE__ */ jsx("div", { className: "mt-2 rounded-xl border border-rose-300/70 bg-rose-50 px-3 py-2 text-rose-900 text-xs", children: linkError })
|
|
152
|
+
] }),
|
|
153
|
+
/* @__PURE__ */ jsxs("div", { className: "lg:col-span-2 space-y-3", children: [
|
|
154
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3", children: [
|
|
155
|
+
/* @__PURE__ */ jsxs("div", { className: "text-sm text-slate-500", children: [
|
|
156
|
+
"P\xE1gina ",
|
|
157
|
+
page,
|
|
158
|
+
" de ",
|
|
159
|
+
Math.max(1, lastPage)
|
|
160
|
+
] }),
|
|
161
|
+
lastPage > 1 && /* @__PURE__ */ jsx(Pagination, { page, totalPages: lastPage, onPageChange: setPage })
|
|
162
|
+
] }),
|
|
163
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4", children: items.map((m) => {
|
|
164
|
+
var _a;
|
|
165
|
+
return /* @__PURE__ */ jsxs(
|
|
166
|
+
Button,
|
|
167
|
+
{
|
|
168
|
+
unstyled: true,
|
|
169
|
+
className: "group overflow-hidden rounded-2xl border border-slate-200 bg-white/70 p-1 text-left transition hover:shadow-md focus:outline-none focus:ring-2 focus:ring-slate-300 dark:border-white/10 dark:bg-white/5",
|
|
170
|
+
onClick: () => {
|
|
171
|
+
var _a2;
|
|
172
|
+
onChange((_a2 = m.url) != null ? _a2 : null, m);
|
|
173
|
+
setOpenPicker(false);
|
|
174
|
+
onClose == null ? void 0 : onClose();
|
|
175
|
+
},
|
|
176
|
+
children: [
|
|
177
|
+
/* @__PURE__ */ jsx("div", { className: "aspect-square w-full overflow-hidden rounded-xl bg-slate-100", children: /* @__PURE__ */ jsx("img", { src: (_a = m.url) != null ? _a : "", alt: m.nombre, className: "h-full w-full object-cover transition group-hover:scale-[1.01]" }) }),
|
|
178
|
+
/* @__PURE__ */ jsx("div", { className: "truncate p-1 text-xs", children: m.nombre })
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
m.id
|
|
182
|
+
);
|
|
183
|
+
}) })
|
|
184
|
+
] })
|
|
185
|
+
] }) }),
|
|
186
|
+
/* @__PURE__ */ jsx(Dialog.Footer, { align: "end", children: /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => {
|
|
187
|
+
setOpenPicker(false);
|
|
188
|
+
onClose == null ? void 0 : onClose();
|
|
189
|
+
}, children: "Cerrar" }) })
|
|
190
|
+
] })
|
|
191
|
+
] });
|
|
192
|
+
}
|
|
193
|
+
export {
|
|
194
|
+
MediaSelector as default
|
|
195
|
+
};
|
package/dist/Money.d.mts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
|
|
3
|
-
declare function Money({ amount, currency }: {
|
|
3
|
+
declare function Money({ amount, currency, color }: {
|
|
4
4
|
amount: number;
|
|
5
5
|
currency?: string;
|
|
6
|
+
color?: "slate" | "gray" | "zinc" | "neutral" | "stone" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose";
|
|
6
7
|
}): react_jsx_runtime.JSX.Element;
|
|
7
8
|
|
|
8
9
|
export { Money as default };
|
package/dist/Money.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
|
|
3
|
-
declare function Money({ amount, currency }: {
|
|
3
|
+
declare function Money({ amount, currency, color }: {
|
|
4
4
|
amount: number;
|
|
5
5
|
currency?: string;
|
|
6
|
+
color?: "slate" | "gray" | "zinc" | "neutral" | "stone" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose";
|
|
6
7
|
}): react_jsx_runtime.JSX.Element;
|
|
7
8
|
|
|
8
9
|
export { Money as default };
|
package/dist/Money.js
CHANGED
|
@@ -23,8 +23,32 @@ __export(Money_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(Money_exports);
|
|
25
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
|
-
function Money({ amount, currency = "MXN" }) {
|
|
26
|
+
function Money({ amount, currency = "MXN", color = "blue" }) {
|
|
27
27
|
const s = amount.toLocaleString("es-MX", { style: "currency", currency });
|
|
28
|
-
const
|
|
28
|
+
const POS = {
|
|
29
|
+
slate: "font-semibold text-slate-600 dark:text-slate-400",
|
|
30
|
+
gray: "font-semibold text-gray-600 dark:text-gray-400",
|
|
31
|
+
zinc: "font-semibold text-zinc-600 dark:text-zinc-400",
|
|
32
|
+
neutral: "font-semibold text-neutral-600 dark:text-neutral-400",
|
|
33
|
+
stone: "font-semibold text-stone-600 dark:text-stone-400",
|
|
34
|
+
red: "font-semibold text-red-600 dark:text-red-400",
|
|
35
|
+
orange: "font-semibold text-orange-600 dark:text-orange-400",
|
|
36
|
+
amber: "font-semibold text-amber-600 dark:text-amber-400",
|
|
37
|
+
yellow: "font-semibold text-yellow-600 dark:text-yellow-400",
|
|
38
|
+
lime: "font-semibold text-lime-600 dark:text-lime-400",
|
|
39
|
+
green: "font-semibold text-green-600 dark:text-green-400",
|
|
40
|
+
emerald: "font-semibold text-emerald-600 dark:text-emerald-400",
|
|
41
|
+
teal: "font-semibold text-teal-600 dark:text-teal-400",
|
|
42
|
+
cyan: "font-semibold text-cyan-600 dark:text-cyan-400",
|
|
43
|
+
sky: "font-semibold text-sky-600 dark:text-sky-400",
|
|
44
|
+
blue: "font-semibold text-blue-600 dark:text-blue-400",
|
|
45
|
+
indigo: "font-semibold text-indigo-600 dark:text-indigo-400",
|
|
46
|
+
violet: "font-semibold text-violet-600 dark:text-violet-400",
|
|
47
|
+
purple: "font-semibold text-purple-600 dark:text-purple-400",
|
|
48
|
+
fuchsia: "font-semibold text-fuchsia-600 dark:text-fuchsia-400",
|
|
49
|
+
pink: "font-semibold text-pink-600 dark:text-pink-400",
|
|
50
|
+
rose: "font-semibold text-rose-600 dark:text-rose-400"
|
|
51
|
+
};
|
|
52
|
+
const cls = amount > 0 ? POS[color] : "text-slate-600";
|
|
29
53
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: cls, children: s });
|
|
30
54
|
}
|
package/dist/Money.mjs
CHANGED
|
@@ -1,8 +1,32 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
function Money({ amount, currency = "MXN" }) {
|
|
3
|
+
function Money({ amount, currency = "MXN", color = "blue" }) {
|
|
4
4
|
const s = amount.toLocaleString("es-MX", { style: "currency", currency });
|
|
5
|
-
const
|
|
5
|
+
const POS = {
|
|
6
|
+
slate: "font-semibold text-slate-600 dark:text-slate-400",
|
|
7
|
+
gray: "font-semibold text-gray-600 dark:text-gray-400",
|
|
8
|
+
zinc: "font-semibold text-zinc-600 dark:text-zinc-400",
|
|
9
|
+
neutral: "font-semibold text-neutral-600 dark:text-neutral-400",
|
|
10
|
+
stone: "font-semibold text-stone-600 dark:text-stone-400",
|
|
11
|
+
red: "font-semibold text-red-600 dark:text-red-400",
|
|
12
|
+
orange: "font-semibold text-orange-600 dark:text-orange-400",
|
|
13
|
+
amber: "font-semibold text-amber-600 dark:text-amber-400",
|
|
14
|
+
yellow: "font-semibold text-yellow-600 dark:text-yellow-400",
|
|
15
|
+
lime: "font-semibold text-lime-600 dark:text-lime-400",
|
|
16
|
+
green: "font-semibold text-green-600 dark:text-green-400",
|
|
17
|
+
emerald: "font-semibold text-emerald-600 dark:text-emerald-400",
|
|
18
|
+
teal: "font-semibold text-teal-600 dark:text-teal-400",
|
|
19
|
+
cyan: "font-semibold text-cyan-600 dark:text-cyan-400",
|
|
20
|
+
sky: "font-semibold text-sky-600 dark:text-sky-400",
|
|
21
|
+
blue: "font-semibold text-blue-600 dark:text-blue-400",
|
|
22
|
+
indigo: "font-semibold text-indigo-600 dark:text-indigo-400",
|
|
23
|
+
violet: "font-semibold text-violet-600 dark:text-violet-400",
|
|
24
|
+
purple: "font-semibold text-purple-600 dark:text-purple-400",
|
|
25
|
+
fuchsia: "font-semibold text-fuchsia-600 dark:text-fuchsia-400",
|
|
26
|
+
pink: "font-semibold text-pink-600 dark:text-pink-400",
|
|
27
|
+
rose: "font-semibold text-rose-600 dark:text-rose-400"
|
|
28
|
+
};
|
|
29
|
+
const cls = amount > 0 ? POS[color] : "text-slate-600";
|
|
6
30
|
return /* @__PURE__ */ jsx("span", { className: cls, children: s });
|
|
7
31
|
}
|
|
8
32
|
export {
|
package/dist/MultiComboSelect.js
CHANGED
|
@@ -36,6 +36,7 @@ var import_jsx_runtime = require("react/jsx-runtime");
|
|
|
36
36
|
var import_react = __toESM(require("react"));
|
|
37
37
|
var import_ComboSelect = __toESM(require("./ComboSelect"));
|
|
38
38
|
var import_Dialog = __toESM(require("./Dialog"));
|
|
39
|
+
var import_Button = __toESM(require("./Button"));
|
|
39
40
|
var import_Badge = __toESM(require("./Badge"));
|
|
40
41
|
function MultiComboSelect({
|
|
41
42
|
options,
|
|
@@ -99,8 +100,9 @@ function MultiComboSelect({
|
|
|
99
100
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Badge.default, { tone: "slate", size: "sm", onClick: () => toggle(v), title: "Quitar", children: opt.label }, v);
|
|
100
101
|
}),
|
|
101
102
|
enableDialog && value.length > maxVisibleTags && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
102
|
-
|
|
103
|
+
import_Button.default,
|
|
103
104
|
{
|
|
105
|
+
unstyled: true,
|
|
104
106
|
type: "button",
|
|
105
107
|
className: "inline-flex items-center gap-1 rounded-full border border-slate-200 bg-white px-2 py-0.5 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/10 dark:text-slate-200",
|
|
106
108
|
onClick: () => setDialogOpen(true),
|
|
@@ -127,8 +129,9 @@ function MultiComboSelect({
|
|
|
127
129
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "truncate", children: opt.label })
|
|
128
130
|
] }),
|
|
129
131
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
130
|
-
|
|
132
|
+
import_Button.default,
|
|
131
133
|
{
|
|
134
|
+
unstyled: true,
|
|
132
135
|
type: "button",
|
|
133
136
|
className: "inline-flex h-8 items-center justify-center rounded-lg border border-slate-300/80 bg-white px-2 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:bg-white/10",
|
|
134
137
|
onClick: () => toggle(v),
|
|
@@ -138,15 +141,7 @@ function MultiComboSelect({
|
|
|
138
141
|
] }, v);
|
|
139
142
|
})
|
|
140
143
|
] }) }),
|
|
141
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Dialog.default.Footer, { align: "end", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
142
|
-
"button",
|
|
143
|
-
{
|
|
144
|
-
type: "button",
|
|
145
|
-
className: "inline-flex h-10 items-center gap-2 rounded-xl border border-slate-300/80 bg-white px-4 text-sm font-medium text-slate-700 shadow-sm hover:bg-slate-50 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:bg-white/10",
|
|
146
|
-
onClick: () => setDialogOpen(false),
|
|
147
|
-
children: "Cerrar"
|
|
148
|
-
}
|
|
149
|
-
) })
|
|
144
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Dialog.default.Footer, { align: "end", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Button.default, { variant: "secondary", size: "md", className: "shadow-sm", onClick: () => setDialogOpen(false), children: "Cerrar" }) })
|
|
150
145
|
] })
|
|
151
146
|
] });
|
|
152
147
|
}
|
|
@@ -3,6 +3,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import React from "react";
|
|
4
4
|
import ComboSelect from "./ComboSelect";
|
|
5
5
|
import Dialog from "./Dialog";
|
|
6
|
+
import Button from "./Button";
|
|
6
7
|
import Badge from "./Badge";
|
|
7
8
|
function MultiComboSelect({
|
|
8
9
|
options,
|
|
@@ -66,8 +67,9 @@ function MultiComboSelect({
|
|
|
66
67
|
return /* @__PURE__ */ jsx(Badge, { tone: "slate", size: "sm", onClick: () => toggle(v), title: "Quitar", children: opt.label }, v);
|
|
67
68
|
}),
|
|
68
69
|
enableDialog && value.length > maxVisibleTags && /* @__PURE__ */ jsxs(
|
|
69
|
-
|
|
70
|
+
Button,
|
|
70
71
|
{
|
|
72
|
+
unstyled: true,
|
|
71
73
|
type: "button",
|
|
72
74
|
className: "inline-flex items-center gap-1 rounded-full border border-slate-200 bg-white px-2 py-0.5 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/10 dark:text-slate-200",
|
|
73
75
|
onClick: () => setDialogOpen(true),
|
|
@@ -94,8 +96,9 @@ function MultiComboSelect({
|
|
|
94
96
|
/* @__PURE__ */ jsx("span", { className: "truncate", children: opt.label })
|
|
95
97
|
] }),
|
|
96
98
|
/* @__PURE__ */ jsx(
|
|
97
|
-
|
|
99
|
+
Button,
|
|
98
100
|
{
|
|
101
|
+
unstyled: true,
|
|
99
102
|
type: "button",
|
|
100
103
|
className: "inline-flex h-8 items-center justify-center rounded-lg border border-slate-300/80 bg-white px-2 text-xs text-slate-700 hover:bg-slate-50 active:scale-95 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:bg-white/10",
|
|
101
104
|
onClick: () => toggle(v),
|
|
@@ -105,15 +108,7 @@ function MultiComboSelect({
|
|
|
105
108
|
] }, v);
|
|
106
109
|
})
|
|
107
110
|
] }) }),
|
|
108
|
-
/* @__PURE__ */ jsx(Dialog.Footer, { align: "end", children: /* @__PURE__ */ jsx(
|
|
109
|
-
"button",
|
|
110
|
-
{
|
|
111
|
-
type: "button",
|
|
112
|
-
className: "inline-flex h-10 items-center gap-2 rounded-xl border border-slate-300/80 bg-white px-4 text-sm font-medium text-slate-700 shadow-sm hover:bg-slate-50 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:bg-white/10",
|
|
113
|
-
onClick: () => setDialogOpen(false),
|
|
114
|
-
children: "Cerrar"
|
|
115
|
-
}
|
|
116
|
-
) })
|
|
111
|
+
/* @__PURE__ */ jsx(Dialog.Footer, { align: "end", children: /* @__PURE__ */ jsx(Button, { variant: "secondary", size: "md", className: "shadow-sm", onClick: () => setDialogOpen(false), children: "Cerrar" }) })
|
|
117
112
|
] })
|
|
118
113
|
] });
|
|
119
114
|
}
|
package/dist/OrderButton.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
3
4
|
var __defProp = Object.defineProperty;
|
|
4
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
9
|
var __export = (target, all) => {
|
|
8
10
|
for (var name in all)
|
|
@@ -16,6 +18,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
18
|
}
|
|
17
19
|
return to;
|
|
18
20
|
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
19
29
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
30
|
var OrderButton_exports = {};
|
|
21
31
|
__export(OrderButton_exports, {
|
|
@@ -23,10 +33,12 @@ __export(OrderButton_exports, {
|
|
|
23
33
|
});
|
|
24
34
|
module.exports = __toCommonJS(OrderButton_exports);
|
|
25
35
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
+
var import_Button = __toESM(require("./Button"));
|
|
26
37
|
function OrderButton({ label, active, asc, onClick }) {
|
|
27
38
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
28
|
-
|
|
39
|
+
import_Button.default,
|
|
29
40
|
{
|
|
41
|
+
unstyled: true,
|
|
30
42
|
onClick,
|
|
31
43
|
className: "rounded-xl border border-slate-200 px-3 py-2 text-sm hover:bg-slate-50 dark:border-white/10 dark:hover:bg-white/5",
|
|
32
44
|
children: [
|
package/dist/OrderButton.mjs
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs } from "react/jsx-runtime";
|
|
3
|
+
import Button from "./Button";
|
|
3
4
|
function OrderButton({ label, active, asc, onClick }) {
|
|
4
5
|
return /* @__PURE__ */ jsxs(
|
|
5
|
-
|
|
6
|
+
Button,
|
|
6
7
|
{
|
|
8
|
+
unstyled: true,
|
|
7
9
|
onClick,
|
|
8
10
|
className: "rounded-xl border border-slate-200 px-3 py-2 text-sm hover:bg-slate-50 dark:border-white/10 dark:hover:bg-white/5",
|
|
9
11
|
children: [
|
package/dist/Pagination.d.mts
CHANGED
|
@@ -6,7 +6,8 @@ type PaginationProps = {
|
|
|
6
6
|
onPageChange: (p: number) => void;
|
|
7
7
|
maxButtons?: number;
|
|
8
8
|
className?: string;
|
|
9
|
+
color?: "slate" | "gray" | "zinc" | "neutral" | "stone" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose";
|
|
9
10
|
};
|
|
10
|
-
declare function Pagination({ page, totalPages, onPageChange, maxButtons, className, }: PaginationProps): react_jsx_runtime.JSX.Element;
|
|
11
|
+
declare function Pagination({ page, totalPages, onPageChange, maxButtons, className, color, }: PaginationProps): react_jsx_runtime.JSX.Element;
|
|
11
12
|
|
|
12
13
|
export { type PaginationProps, Pagination as default };
|
package/dist/Pagination.d.ts
CHANGED
|
@@ -6,7 +6,8 @@ type PaginationProps = {
|
|
|
6
6
|
onPageChange: (p: number) => void;
|
|
7
7
|
maxButtons?: number;
|
|
8
8
|
className?: string;
|
|
9
|
+
color?: "slate" | "gray" | "zinc" | "neutral" | "stone" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose";
|
|
9
10
|
};
|
|
10
|
-
declare function Pagination({ page, totalPages, onPageChange, maxButtons, className, }: PaginationProps): react_jsx_runtime.JSX.Element;
|
|
11
|
+
declare function Pagination({ page, totalPages, onPageChange, maxButtons, className, color, }: PaginationProps): react_jsx_runtime.JSX.Element;
|
|
11
12
|
|
|
12
13
|
export { type PaginationProps, Pagination as default };
|
package/dist/Pagination.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
3
4
|
var __defProp = Object.defineProperty;
|
|
4
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
9
|
var __export = (target, all) => {
|
|
8
10
|
for (var name in all)
|
|
@@ -16,6 +18,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
18
|
}
|
|
17
19
|
return to;
|
|
18
20
|
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
19
29
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
30
|
var Pagination_exports = {};
|
|
21
31
|
__export(Pagination_exports, {
|
|
@@ -23,12 +33,14 @@ __export(Pagination_exports, {
|
|
|
23
33
|
});
|
|
24
34
|
module.exports = __toCommonJS(Pagination_exports);
|
|
25
35
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
+
var import_Button = __toESM(require("./Button"));
|
|
26
37
|
function Pagination({
|
|
27
38
|
page,
|
|
28
39
|
totalPages,
|
|
29
40
|
onPageChange,
|
|
30
41
|
maxButtons = 7,
|
|
31
|
-
className = ""
|
|
42
|
+
className = "",
|
|
43
|
+
color = "blue"
|
|
32
44
|
}) {
|
|
33
45
|
const getRange = () => {
|
|
34
46
|
if (totalPages <= maxButtons)
|
|
@@ -44,18 +56,43 @@ function Pagination({
|
|
|
44
56
|
return range2;
|
|
45
57
|
};
|
|
46
58
|
const range = getRange();
|
|
59
|
+
const ACTIVE = {
|
|
60
|
+
slate: "bg-slate-600 text-white",
|
|
61
|
+
gray: "bg-gray-600 text-white",
|
|
62
|
+
zinc: "bg-zinc-600 text-white",
|
|
63
|
+
neutral: "bg-neutral-600 text-white",
|
|
64
|
+
stone: "bg-stone-600 text-white",
|
|
65
|
+
red: "bg-red-600 text-white",
|
|
66
|
+
orange: "bg-orange-600 text-white",
|
|
67
|
+
amber: "bg-amber-600 text-white",
|
|
68
|
+
yellow: "bg-yellow-500 text-slate-900",
|
|
69
|
+
lime: "bg-lime-600 text-white",
|
|
70
|
+
green: "bg-green-600 text-white",
|
|
71
|
+
emerald: "bg-emerald-600 text-white",
|
|
72
|
+
teal: "bg-teal-600 text-white",
|
|
73
|
+
cyan: "bg-cyan-600 text-white",
|
|
74
|
+
sky: "bg-sky-600 text-white",
|
|
75
|
+
blue: "bg-blue-600 text-white",
|
|
76
|
+
indigo: "bg-indigo-600 text-white",
|
|
77
|
+
violet: "bg-violet-600 text-white",
|
|
78
|
+
purple: "bg-purple-600 text-white",
|
|
79
|
+
fuchsia: "bg-fuchsia-600 text-white",
|
|
80
|
+
pink: "bg-pink-600 text-white",
|
|
81
|
+
rose: "bg-rose-600 text-white"
|
|
82
|
+
};
|
|
47
83
|
const Btn = ({
|
|
48
84
|
children,
|
|
49
85
|
active,
|
|
50
86
|
disabled,
|
|
51
87
|
onClick
|
|
52
88
|
}) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
53
|
-
|
|
89
|
+
import_Button.default,
|
|
54
90
|
{
|
|
91
|
+
unstyled: true,
|
|
55
92
|
disabled,
|
|
56
93
|
onClick,
|
|
57
94
|
className: `h-10 min-w-10 px-3 inline-flex items-center justify-center text-[15px] font-medium transition
|
|
58
|
-
${active ?
|
|
95
|
+
${active ? `${ACTIVE[color]} rounded-2xl shadow-sm` : "rounded-none text-slate-900 hover:bg-white/60"}
|
|
59
96
|
${disabled ? "opacity-40 cursor-not-allowed" : ""}`,
|
|
60
97
|
"aria-current": active ? "page" : void 0,
|
|
61
98
|
children
|
package/dist/Pagination.mjs
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import Button from "./Button";
|
|
3
4
|
function Pagination({
|
|
4
5
|
page,
|
|
5
6
|
totalPages,
|
|
6
7
|
onPageChange,
|
|
7
8
|
maxButtons = 7,
|
|
8
|
-
className = ""
|
|
9
|
+
className = "",
|
|
10
|
+
color = "blue"
|
|
9
11
|
}) {
|
|
10
12
|
const getRange = () => {
|
|
11
13
|
if (totalPages <= maxButtons)
|
|
@@ -21,18 +23,43 @@ function Pagination({
|
|
|
21
23
|
return range2;
|
|
22
24
|
};
|
|
23
25
|
const range = getRange();
|
|
26
|
+
const ACTIVE = {
|
|
27
|
+
slate: "bg-slate-600 text-white",
|
|
28
|
+
gray: "bg-gray-600 text-white",
|
|
29
|
+
zinc: "bg-zinc-600 text-white",
|
|
30
|
+
neutral: "bg-neutral-600 text-white",
|
|
31
|
+
stone: "bg-stone-600 text-white",
|
|
32
|
+
red: "bg-red-600 text-white",
|
|
33
|
+
orange: "bg-orange-600 text-white",
|
|
34
|
+
amber: "bg-amber-600 text-white",
|
|
35
|
+
yellow: "bg-yellow-500 text-slate-900",
|
|
36
|
+
lime: "bg-lime-600 text-white",
|
|
37
|
+
green: "bg-green-600 text-white",
|
|
38
|
+
emerald: "bg-emerald-600 text-white",
|
|
39
|
+
teal: "bg-teal-600 text-white",
|
|
40
|
+
cyan: "bg-cyan-600 text-white",
|
|
41
|
+
sky: "bg-sky-600 text-white",
|
|
42
|
+
blue: "bg-blue-600 text-white",
|
|
43
|
+
indigo: "bg-indigo-600 text-white",
|
|
44
|
+
violet: "bg-violet-600 text-white",
|
|
45
|
+
purple: "bg-purple-600 text-white",
|
|
46
|
+
fuchsia: "bg-fuchsia-600 text-white",
|
|
47
|
+
pink: "bg-pink-600 text-white",
|
|
48
|
+
rose: "bg-rose-600 text-white"
|
|
49
|
+
};
|
|
24
50
|
const Btn = ({
|
|
25
51
|
children,
|
|
26
52
|
active,
|
|
27
53
|
disabled,
|
|
28
54
|
onClick
|
|
29
55
|
}) => /* @__PURE__ */ jsx(
|
|
30
|
-
|
|
56
|
+
Button,
|
|
31
57
|
{
|
|
58
|
+
unstyled: true,
|
|
32
59
|
disabled,
|
|
33
60
|
onClick,
|
|
34
61
|
className: `h-10 min-w-10 px-3 inline-flex items-center justify-center text-[15px] font-medium transition
|
|
35
|
-
${active ?
|
|
62
|
+
${active ? `${ACTIVE[color]} rounded-2xl shadow-sm` : "rounded-none text-slate-900 hover:bg-white/60"}
|
|
36
63
|
${disabled ? "opacity-40 cursor-not-allowed" : ""}`,
|
|
37
64
|
"aria-current": active ? "page" : void 0,
|
|
38
65
|
children
|
package/dist/ReviewHistory.js
CHANGED
|
@@ -35,6 +35,7 @@ __export(ReviewHistory_exports, {
|
|
|
35
35
|
module.exports = __toCommonJS(ReviewHistory_exports);
|
|
36
36
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
37
37
|
var import_Dialog = __toESM(require("./Dialog"));
|
|
38
|
+
var import_Button = __toESM(require("./Button"));
|
|
38
39
|
var import_Badge = __toESM(require("./Badge"));
|
|
39
40
|
function ReviewHistory({
|
|
40
41
|
items,
|
|
@@ -59,7 +60,7 @@ function ReviewHistory({
|
|
|
59
60
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-1 text-xs text-muted", children: r.by_name || r.by_email ? `${(_a = r.by_name) != null ? _a : ""} ${r.by_email ? `\xB7 ${r.by_email}` : ""}` : r.user_id ? "Usuario interno" : "Invitado" })
|
|
60
61
|
] }, r.id);
|
|
61
62
|
}) }),
|
|
62
|
-
items.length > 3 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "pt-1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
63
|
+
items.length > 3 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "pt-1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Button.default, { unstyled: true, className: "text-sm text-blue-600 hover:underline dark:text-blue-400", onClick: onViewAll, children: "Ver todos" }) })
|
|
63
64
|
] });
|
|
64
65
|
}
|
|
65
66
|
function ReviewHistoryDialog({
|
|
@@ -83,14 +84,7 @@ function ReviewHistoryDialog({
|
|
|
83
84
|
] }, r.id);
|
|
84
85
|
})
|
|
85
86
|
] }) }),
|
|
86
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Dialog.default.Footer, { align: "end", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
87
|
-
"button",
|
|
88
|
-
{
|
|
89
|
-
className: "inline-flex h-10 items-center gap-2 rounded-xl border border-slate-300/80 bg-white px-4 text-sm font-medium text-slate-700 shadow-sm hover:bg-slate-50 dark:border-white/10 dark:bg-white/5 dark:text-slate-200 dark:hover:bg-white/10",
|
|
90
|
-
onClick: onClose,
|
|
91
|
-
children: "Cerrar"
|
|
92
|
-
}
|
|
93
|
-
) })
|
|
87
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Dialog.default.Footer, { align: "end", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Button.default, { variant: "secondary", size: "md", className: "shadow-sm", onClick: onClose, children: "Cerrar" }) })
|
|
94
88
|
] });
|
|
95
89
|
}
|
|
96
90
|
function formatDateTime(value) {
|