framepexls-ui-lib 0.1.14 → 0.1.16
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/BadgeCluster.js +3 -3
- package/dist/BadgeCluster.mjs +1 -1
- package/dist/CheckboxPillsGroup.js +8 -8
- package/dist/CheckboxPillsGroup.mjs +8 -8
- package/dist/ColumnSelector.js +3 -3
- package/dist/ColumnSelector.mjs +1 -1
- package/dist/Dialog.js +4 -4
- package/dist/Dialog.mjs +1 -1
- package/dist/FiltersMultiSelect.d.mts +28 -0
- package/dist/FiltersMultiSelect.d.ts +28 -0
- package/dist/FiltersMultiSelect.js +136 -0
- package/dist/FiltersMultiSelect.mjs +106 -0
- package/dist/MediaSelector.js +1 -1
- package/dist/MediaSelector.mjs +1 -1
- package/dist/Sidebar.js +5 -5
- package/dist/Sidebar.mjs +1 -1
- package/dist/StatCard.js +4 -4
- package/dist/StatCard.mjs +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/index.mjs +74 -72
- package/package.json +11 -8
package/dist/BadgeCluster.js
CHANGED
|
@@ -35,7 +35,7 @@ module.exports = __toCommonJS(BadgeCluster_exports);
|
|
|
35
35
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
36
|
var import_react = require("react");
|
|
37
37
|
var import_react_dom = require("react-dom");
|
|
38
|
-
var
|
|
38
|
+
var import_framer_motion = require("framer-motion");
|
|
39
39
|
var import_Badge = __toESM(require("./Badge"));
|
|
40
40
|
var import_Button = __toESM(require("./Button"));
|
|
41
41
|
function BadgeCluster({
|
|
@@ -80,8 +80,8 @@ function BadgeCluster({
|
|
|
80
80
|
window.removeEventListener("resize", onResize);
|
|
81
81
|
};
|
|
82
82
|
}, [open, align]);
|
|
83
|
-
const Popover = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
84
|
-
|
|
83
|
+
const Popover = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { children: open && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
84
|
+
import_framer_motion.motion.div,
|
|
85
85
|
{
|
|
86
86
|
initial: { opacity: 0, y: 6, scale: 0.98 },
|
|
87
87
|
animate: { opacity: 1, y: 0, scale: 1 },
|
package/dist/BadgeCluster.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
4
4
|
import { createPortal } from "react-dom";
|
|
5
|
-
import { AnimatePresence, motion } from "motion
|
|
5
|
+
import { AnimatePresence, motion } from "framer-motion";
|
|
6
6
|
import Badge from "./Badge";
|
|
7
7
|
import Button from "./Button";
|
|
8
8
|
function BadgeCluster({
|
|
@@ -51,27 +51,27 @@ const SIZE = {
|
|
|
51
51
|
md: { text: "text-sm", padX: "px-3.5", padY: "py-2", height: "h-9", icon: "h-4 w-4" }
|
|
52
52
|
};
|
|
53
53
|
const ACTIVE_SOFT = {
|
|
54
|
-
rose: "border-
|
|
54
|
+
rose: "border-rose-300 bg-rose-50/80 text-rose-700 dark:border-rose-400/40 dark:bg-rose-500/10 dark:text-rose-200",
|
|
55
55
|
sky: "border-sky-300 bg-sky-50/80 text-sky-700 dark:border-sky-400/40 dark:bg-sky-500/10 dark:text-sky-200",
|
|
56
|
-
violet: "border-
|
|
56
|
+
violet: "border-violet-300 bg-violet-50/80 text-violet-700 dark:border-violet-400/40 dark:bg-violet-500/10 dark:text-violet-200",
|
|
57
57
|
emerald: "border-emerald-300 bg-emerald-50/80 text-emerald-700 dark:border-emerald-400/40 dark:bg-emerald-500/10 dark:text-emerald-200",
|
|
58
58
|
indigo: "border-indigo-300 bg-indigo-50/80 text-indigo-700 dark:border-indigo-400/40 dark:bg-indigo-500/10 dark:text-indigo-200",
|
|
59
59
|
amber: "border-amber-300 bg-amber-50/80 text-amber-700 dark:border-amber-400/40 dark:bg-amber-500/10 dark:text-amber-200",
|
|
60
60
|
slate: "border-slate-300 bg-slate-50/80 text-slate-700 dark:border-slate-400/40 dark:bg-slate-500/10 dark:text-slate-200"
|
|
61
61
|
};
|
|
62
62
|
const ACTIVE_OUTLINE = {
|
|
63
|
-
rose: "border-
|
|
63
|
+
rose: "border-rose-400 text-rose-700 dark:text-rose-200",
|
|
64
64
|
sky: "border-sky-400 text-sky-700 dark:text-sky-200",
|
|
65
|
-
violet: "border-
|
|
65
|
+
violet: "border-violet-400 text-violet-700 dark:text-violet-200",
|
|
66
66
|
emerald: "border-emerald-400 text-emerald-700 dark:text-emerald-200",
|
|
67
67
|
indigo: "border-indigo-400 text-indigo-700 dark:text-indigo-200",
|
|
68
68
|
amber: "border-amber-400 text-amber-700 dark:text-amber-200",
|
|
69
69
|
slate: "border-slate-400 text-slate-700 dark:text-slate-200"
|
|
70
70
|
};
|
|
71
71
|
const ACTIVE_GLASS = {
|
|
72
|
-
rose: "border-
|
|
72
|
+
rose: "border-rose-300 bg-gradient-to-br from-rose-50 to-rose-50/0 text-rose-700 dark:from-rose-400/10 dark:text-rose-200",
|
|
73
73
|
sky: "border-sky-300 bg-gradient-to-br from-sky-50 to-sky-50/0 text-sky-700 dark:from-sky-400/10 dark:text-sky-200",
|
|
74
|
-
violet: "border-
|
|
74
|
+
violet: "border-violet-300 bg-gradient-to-br from-violet-50 to-violet-50/0 text-violet-700 dark:from-violet-400/10 dark:text-violet-200",
|
|
75
75
|
emerald: "border-emerald-300 bg-gradient-to-br from-emerald-50 to-emerald-50/0 text-emerald-700 dark:from-emerald-400/10 dark:text-emerald-200",
|
|
76
76
|
indigo: "border-indigo-300 bg-gradient-to-br from-indigo-50 to-indigo-50/0 text-indigo-700 dark:from-indigo-400/10 dark:text-indigo-200",
|
|
77
77
|
amber: "border-amber-300 bg-gradient-to-br from-amber-50 to-amber-50/0 text-amber-700 dark:from-amber-400/10 dark:text-amber-200",
|
|
@@ -167,9 +167,9 @@ function CheckboxPillsGroup({
|
|
|
167
167
|
className: cx(
|
|
168
168
|
"grid place-items-center rounded-full",
|
|
169
169
|
{
|
|
170
|
-
rose: "bg-
|
|
170
|
+
rose: "bg-rose-500/10 text-rose-600",
|
|
171
171
|
sky: "bg-sky-500/10 text-sky-600",
|
|
172
|
-
violet: "bg-
|
|
172
|
+
violet: "bg-violet-500/10 text-violet-600",
|
|
173
173
|
emerald: "bg-emerald-500/10 text-emerald-600",
|
|
174
174
|
indigo: "bg-indigo-500/10 text-indigo-600",
|
|
175
175
|
amber: "bg-amber-500/10 text-amber-600",
|
|
@@ -18,27 +18,27 @@ const SIZE = {
|
|
|
18
18
|
md: { text: "text-sm", padX: "px-3.5", padY: "py-2", height: "h-9", icon: "h-4 w-4" }
|
|
19
19
|
};
|
|
20
20
|
const ACTIVE_SOFT = {
|
|
21
|
-
rose: "border-
|
|
21
|
+
rose: "border-rose-300 bg-rose-50/80 text-rose-700 dark:border-rose-400/40 dark:bg-rose-500/10 dark:text-rose-200",
|
|
22
22
|
sky: "border-sky-300 bg-sky-50/80 text-sky-700 dark:border-sky-400/40 dark:bg-sky-500/10 dark:text-sky-200",
|
|
23
|
-
violet: "border-
|
|
23
|
+
violet: "border-violet-300 bg-violet-50/80 text-violet-700 dark:border-violet-400/40 dark:bg-violet-500/10 dark:text-violet-200",
|
|
24
24
|
emerald: "border-emerald-300 bg-emerald-50/80 text-emerald-700 dark:border-emerald-400/40 dark:bg-emerald-500/10 dark:text-emerald-200",
|
|
25
25
|
indigo: "border-indigo-300 bg-indigo-50/80 text-indigo-700 dark:border-indigo-400/40 dark:bg-indigo-500/10 dark:text-indigo-200",
|
|
26
26
|
amber: "border-amber-300 bg-amber-50/80 text-amber-700 dark:border-amber-400/40 dark:bg-amber-500/10 dark:text-amber-200",
|
|
27
27
|
slate: "border-slate-300 bg-slate-50/80 text-slate-700 dark:border-slate-400/40 dark:bg-slate-500/10 dark:text-slate-200"
|
|
28
28
|
};
|
|
29
29
|
const ACTIVE_OUTLINE = {
|
|
30
|
-
rose: "border-
|
|
30
|
+
rose: "border-rose-400 text-rose-700 dark:text-rose-200",
|
|
31
31
|
sky: "border-sky-400 text-sky-700 dark:text-sky-200",
|
|
32
|
-
violet: "border-
|
|
32
|
+
violet: "border-violet-400 text-violet-700 dark:text-violet-200",
|
|
33
33
|
emerald: "border-emerald-400 text-emerald-700 dark:text-emerald-200",
|
|
34
34
|
indigo: "border-indigo-400 text-indigo-700 dark:text-indigo-200",
|
|
35
35
|
amber: "border-amber-400 text-amber-700 dark:text-amber-200",
|
|
36
36
|
slate: "border-slate-400 text-slate-700 dark:text-slate-200"
|
|
37
37
|
};
|
|
38
38
|
const ACTIVE_GLASS = {
|
|
39
|
-
rose: "border-
|
|
39
|
+
rose: "border-rose-300 bg-gradient-to-br from-rose-50 to-rose-50/0 text-rose-700 dark:from-rose-400/10 dark:text-rose-200",
|
|
40
40
|
sky: "border-sky-300 bg-gradient-to-br from-sky-50 to-sky-50/0 text-sky-700 dark:from-sky-400/10 dark:text-sky-200",
|
|
41
|
-
violet: "border-
|
|
41
|
+
violet: "border-violet-300 bg-gradient-to-br from-violet-50 to-violet-50/0 text-violet-700 dark:from-violet-400/10 dark:text-violet-200",
|
|
42
42
|
emerald: "border-emerald-300 bg-gradient-to-br from-emerald-50 to-emerald-50/0 text-emerald-700 dark:from-emerald-400/10 dark:text-emerald-200",
|
|
43
43
|
indigo: "border-indigo-300 bg-gradient-to-br from-indigo-50 to-indigo-50/0 text-indigo-700 dark:from-indigo-400/10 dark:text-indigo-200",
|
|
44
44
|
amber: "border-amber-300 bg-gradient-to-br from-amber-50 to-amber-50/0 text-amber-700 dark:from-amber-400/10 dark:text-amber-200",
|
|
@@ -134,9 +134,9 @@ function CheckboxPillsGroup({
|
|
|
134
134
|
className: cx(
|
|
135
135
|
"grid place-items-center rounded-full",
|
|
136
136
|
{
|
|
137
|
-
rose: "bg-
|
|
137
|
+
rose: "bg-rose-500/10 text-rose-600",
|
|
138
138
|
sky: "bg-sky-500/10 text-sky-600",
|
|
139
|
-
violet: "bg-
|
|
139
|
+
violet: "bg-violet-500/10 text-violet-600",
|
|
140
140
|
emerald: "bg-emerald-500/10 text-emerald-600",
|
|
141
141
|
indigo: "bg-indigo-500/10 text-indigo-600",
|
|
142
142
|
amber: "bg-amber-500/10 text-amber-600",
|
package/dist/ColumnSelector.js
CHANGED
|
@@ -32,7 +32,7 @@ __export(ColumnSelector_exports, {
|
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(ColumnSelector_exports);
|
|
34
34
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
-
var
|
|
35
|
+
var import_framer_motion = require("framer-motion");
|
|
36
36
|
var import_Button = __toESM(require("./Button"));
|
|
37
37
|
var import_Input = __toESM(require("./Input"));
|
|
38
38
|
function ColumnSelector({
|
|
@@ -55,8 +55,8 @@ function ColumnSelector({
|
|
|
55
55
|
children: "Columnas"
|
|
56
56
|
}
|
|
57
57
|
),
|
|
58
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
59
|
-
|
|
58
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { children: open && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
59
|
+
import_framer_motion.motion.div,
|
|
60
60
|
{
|
|
61
61
|
initial: { opacity: 0, y: 6 },
|
|
62
62
|
animate: { opacity: 1, y: 0 },
|
package/dist/ColumnSelector.mjs
CHANGED
package/dist/Dialog.js
CHANGED
|
@@ -41,7 +41,7 @@ __export(Dialog_exports, {
|
|
|
41
41
|
module.exports = __toCommonJS(Dialog_exports);
|
|
42
42
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
43
43
|
var import_react = __toESM(require("react"));
|
|
44
|
-
var
|
|
44
|
+
var import_framer_motion = require("framer-motion");
|
|
45
45
|
var import_ActionIconButton = __toESM(require("./ActionIconButton"));
|
|
46
46
|
var import_Button = __toESM(require("./Button"));
|
|
47
47
|
const sizeToMaxW = {
|
|
@@ -124,9 +124,9 @@ function DialogBase({
|
|
|
124
124
|
if (!dismissibleBackdrop) return;
|
|
125
125
|
if (e.target === e.currentTarget) onClose();
|
|
126
126
|
};
|
|
127
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { children: open && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
128
128
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
129
|
-
|
|
129
|
+
import_framer_motion.motion.div,
|
|
130
130
|
{
|
|
131
131
|
className: "fixed inset-0 z-[100] bg-black/45 backdrop-blur-sm",
|
|
132
132
|
initial: { opacity: 0 },
|
|
@@ -135,7 +135,7 @@ function DialogBase({
|
|
|
135
135
|
}
|
|
136
136
|
),
|
|
137
137
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
138
|
-
|
|
138
|
+
import_framer_motion.motion.div,
|
|
139
139
|
{
|
|
140
140
|
role: "dialog",
|
|
141
141
|
"aria-modal": "true",
|
package/dist/Dialog.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import React, { useEffect, useRef } from "react";
|
|
4
|
-
import { motion, AnimatePresence } from "motion
|
|
4
|
+
import { motion, AnimatePresence } from "framer-motion";
|
|
5
5
|
import ActionIconButton from "./ActionIconButton";
|
|
6
6
|
import Button from "./Button";
|
|
7
7
|
const sizeToMaxW = {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { PillsOption, CheckboxPillsGroupProps } from './CheckboxPillsGroup.mjs';
|
|
4
|
+
|
|
5
|
+
type FilterGroup = {
|
|
6
|
+
key: string;
|
|
7
|
+
label?: React__default.ReactNode;
|
|
8
|
+
options: PillsOption[];
|
|
9
|
+
value: string[];
|
|
10
|
+
multiple?: boolean;
|
|
11
|
+
pillsProps?: Omit<CheckboxPillsGroupProps, "options" | "value" | "onChange" | "multiple" | "label">;
|
|
12
|
+
onChange?: (next: string[]) => void;
|
|
13
|
+
};
|
|
14
|
+
type FiltersMultiSelectProps = {
|
|
15
|
+
groups: FilterGroup[];
|
|
16
|
+
onChange?: (nextByKey: Record<string, string[]>, changedKey: string) => void;
|
|
17
|
+
className?: string;
|
|
18
|
+
gap?: number | string;
|
|
19
|
+
color?: "rose" | "sky" | "violet" | "emerald" | "indigo" | "amber" | "slate";
|
|
20
|
+
open?: boolean;
|
|
21
|
+
onToggleOpen?: React__default.Dispatch<React__default.SetStateAction<boolean>>;
|
|
22
|
+
triggerLabel?: React__default.ReactNode;
|
|
23
|
+
showActiveCount?: boolean;
|
|
24
|
+
align?: "start" | "end";
|
|
25
|
+
};
|
|
26
|
+
declare function FiltersMultiSelect({ groups, onChange, className, gap, color, open: controlledOpen, onToggleOpen, triggerLabel, showActiveCount, align, }: FiltersMultiSelectProps): react_jsx_runtime.JSX.Element;
|
|
27
|
+
|
|
28
|
+
export { type FilterGroup, type FiltersMultiSelectProps, FiltersMultiSelect as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { PillsOption, CheckboxPillsGroupProps } from './CheckboxPillsGroup.js';
|
|
4
|
+
|
|
5
|
+
type FilterGroup = {
|
|
6
|
+
key: string;
|
|
7
|
+
label?: React__default.ReactNode;
|
|
8
|
+
options: PillsOption[];
|
|
9
|
+
value: string[];
|
|
10
|
+
multiple?: boolean;
|
|
11
|
+
pillsProps?: Omit<CheckboxPillsGroupProps, "options" | "value" | "onChange" | "multiple" | "label">;
|
|
12
|
+
onChange?: (next: string[]) => void;
|
|
13
|
+
};
|
|
14
|
+
type FiltersMultiSelectProps = {
|
|
15
|
+
groups: FilterGroup[];
|
|
16
|
+
onChange?: (nextByKey: Record<string, string[]>, changedKey: string) => void;
|
|
17
|
+
className?: string;
|
|
18
|
+
gap?: number | string;
|
|
19
|
+
color?: "rose" | "sky" | "violet" | "emerald" | "indigo" | "amber" | "slate";
|
|
20
|
+
open?: boolean;
|
|
21
|
+
onToggleOpen?: React__default.Dispatch<React__default.SetStateAction<boolean>>;
|
|
22
|
+
triggerLabel?: React__default.ReactNode;
|
|
23
|
+
showActiveCount?: boolean;
|
|
24
|
+
align?: "start" | "end";
|
|
25
|
+
};
|
|
26
|
+
declare function FiltersMultiSelect({ groups, onChange, className, gap, color, open: controlledOpen, onToggleOpen, triggerLabel, showActiveCount, align, }: FiltersMultiSelectProps): react_jsx_runtime.JSX.Element;
|
|
27
|
+
|
|
28
|
+
export { type FilterGroup, type FiltersMultiSelectProps, FiltersMultiSelect as default };
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
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
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var FiltersMultiSelect_exports = {};
|
|
31
|
+
__export(FiltersMultiSelect_exports, {
|
|
32
|
+
default: () => FiltersMultiSelect
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(FiltersMultiSelect_exports);
|
|
35
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
+
var import_react = __toESM(require("react"));
|
|
37
|
+
var import_framer_motion = require("framer-motion");
|
|
38
|
+
var import_CheckboxPillsGroup = __toESM(require("./CheckboxPillsGroup"));
|
|
39
|
+
var import_Button = __toESM(require("./Button"));
|
|
40
|
+
const clsx = (...a) => a.filter(Boolean).join(" ");
|
|
41
|
+
function FiltersMultiSelect({
|
|
42
|
+
groups,
|
|
43
|
+
onChange,
|
|
44
|
+
className,
|
|
45
|
+
gap = 12,
|
|
46
|
+
color,
|
|
47
|
+
open: controlledOpen,
|
|
48
|
+
onToggleOpen,
|
|
49
|
+
triggerLabel = "Filtros",
|
|
50
|
+
showActiveCount = true,
|
|
51
|
+
align = "start"
|
|
52
|
+
}) {
|
|
53
|
+
const currentMap = import_react.default.useMemo(() => {
|
|
54
|
+
const m = {};
|
|
55
|
+
for (const g of groups) m[g.key] = Array.isArray(g.value) ? g.value : [];
|
|
56
|
+
return m;
|
|
57
|
+
}, [groups]);
|
|
58
|
+
const [uncontrolledOpen, setUncontrolledOpen] = import_react.default.useState(false);
|
|
59
|
+
const isControlled = typeof controlledOpen === "boolean" && typeof onToggleOpen === "function";
|
|
60
|
+
const open = isControlled ? controlledOpen : uncontrolledOpen;
|
|
61
|
+
const setOpen = isControlled ? onToggleOpen : setUncontrolledOpen;
|
|
62
|
+
const rootRef = import_react.default.useRef(null);
|
|
63
|
+
import_react.default.useEffect(() => {
|
|
64
|
+
const onDocClick = (e) => {
|
|
65
|
+
if (!open) return;
|
|
66
|
+
if (!rootRef.current) return;
|
|
67
|
+
if (!rootRef.current.contains(e.target)) setOpen(false);
|
|
68
|
+
};
|
|
69
|
+
window.addEventListener("click", onDocClick);
|
|
70
|
+
return () => window.removeEventListener("click", onDocClick);
|
|
71
|
+
}, [open, setOpen]);
|
|
72
|
+
const onGroupChange = (key, next, cb) => {
|
|
73
|
+
cb == null ? void 0 : cb(next);
|
|
74
|
+
if (onChange) {
|
|
75
|
+
const m = { ...currentMap, [key]: next };
|
|
76
|
+
onChange(m, key);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const activeCount = import_react.default.useMemo(
|
|
80
|
+
() => Object.values(currentMap).reduce((acc, arr) => acc + (Array.isArray(arr) ? arr.length : 0), 0),
|
|
81
|
+
[currentMap]
|
|
82
|
+
);
|
|
83
|
+
const panelStyle = typeof gap === "number" ? { gap } : { gap: void 0 };
|
|
84
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ref: rootRef, className: clsx("relative inline-block", className), children: [
|
|
85
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
86
|
+
import_Button.default,
|
|
87
|
+
{
|
|
88
|
+
unstyled: true,
|
|
89
|
+
onClick: (e) => {
|
|
90
|
+
e.stopPropagation();
|
|
91
|
+
setOpen((v) => !v);
|
|
92
|
+
},
|
|
93
|
+
className: clsx(
|
|
94
|
+
"relative inline-flex items-center gap-2 min-h-[44px] rounded-2xl border border-slate-200 bg-white px-3 pr-9 text-sm text-slate-900 shadow-sm outline-none transition",
|
|
95
|
+
"hover:bg-white focus:ring-4 focus:ring-slate-900/5 focus:border-slate-300",
|
|
96
|
+
"dark:border-white/10 dark:bg-white/10 dark:text-slate-100 dark:focus:ring-white/10"
|
|
97
|
+
),
|
|
98
|
+
children: [
|
|
99
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: triggerLabel }),
|
|
100
|
+
showActiveCount && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "rounded-full bg-slate-100 px-2 py-0.5 text-xs text-slate-700 dark:bg-white/10 dark:text-slate-200", children: activeCount }),
|
|
101
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 inline-flex h-7 w-7 items-center justify-center rounded-lg border border-slate-200 bg-white text-slate-600 dark:border-white/10 dark:bg-white/5", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { viewBox: "0 0 24 24", className: clsx("h-4 w-4 transition", open && "rotate-180"), fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "m6 9 6 6 6-6" }) }) })
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
),
|
|
105
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { children: open && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
106
|
+
import_framer_motion.motion.div,
|
|
107
|
+
{
|
|
108
|
+
initial: { opacity: 0, y: 6 },
|
|
109
|
+
animate: { opacity: 1, y: 0 },
|
|
110
|
+
exit: { opacity: 0, y: -6 },
|
|
111
|
+
className: clsx(
|
|
112
|
+
"absolute z-20 mt-2 w-[min(96vw,720px)] overflow-hidden rounded-2xl border border-slate-200 bg-white p-3 shadow-xl dark:border-white/10 dark:bg-[#0e0d0e]",
|
|
113
|
+
align === "end" ? "right-0" : "left-0"
|
|
114
|
+
),
|
|
115
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex flex-wrap", style: panelStyle, children: groups.map((g) => {
|
|
116
|
+
var _a, _b, _c;
|
|
117
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
118
|
+
import_CheckboxPillsGroup.default,
|
|
119
|
+
{
|
|
120
|
+
size: "sm",
|
|
121
|
+
options: g.options,
|
|
122
|
+
value: g.value,
|
|
123
|
+
onChange: (next) => onGroupChange(g.key, next, g.onChange),
|
|
124
|
+
multiple: (_a = g.multiple) != null ? _a : true,
|
|
125
|
+
label: g.label,
|
|
126
|
+
...{
|
|
127
|
+
...g.pillsProps,
|
|
128
|
+
color: (_c = (_b = g.pillsProps) == null ? void 0 : _b.color) != null ? _c : color
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
) }, g.key);
|
|
132
|
+
}) })
|
|
133
|
+
}
|
|
134
|
+
) })
|
|
135
|
+
] });
|
|
136
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { AnimatePresence, motion } from "framer-motion";
|
|
5
|
+
import CheckboxPillsGroup from "./CheckboxPillsGroup";
|
|
6
|
+
import Button from "./Button";
|
|
7
|
+
const clsx = (...a) => a.filter(Boolean).join(" ");
|
|
8
|
+
function FiltersMultiSelect({
|
|
9
|
+
groups,
|
|
10
|
+
onChange,
|
|
11
|
+
className,
|
|
12
|
+
gap = 12,
|
|
13
|
+
color,
|
|
14
|
+
open: controlledOpen,
|
|
15
|
+
onToggleOpen,
|
|
16
|
+
triggerLabel = "Filtros",
|
|
17
|
+
showActiveCount = true,
|
|
18
|
+
align = "start"
|
|
19
|
+
}) {
|
|
20
|
+
const currentMap = React.useMemo(() => {
|
|
21
|
+
const m = {};
|
|
22
|
+
for (const g of groups) m[g.key] = Array.isArray(g.value) ? g.value : [];
|
|
23
|
+
return m;
|
|
24
|
+
}, [groups]);
|
|
25
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);
|
|
26
|
+
const isControlled = typeof controlledOpen === "boolean" && typeof onToggleOpen === "function";
|
|
27
|
+
const open = isControlled ? controlledOpen : uncontrolledOpen;
|
|
28
|
+
const setOpen = isControlled ? onToggleOpen : setUncontrolledOpen;
|
|
29
|
+
const rootRef = React.useRef(null);
|
|
30
|
+
React.useEffect(() => {
|
|
31
|
+
const onDocClick = (e) => {
|
|
32
|
+
if (!open) return;
|
|
33
|
+
if (!rootRef.current) return;
|
|
34
|
+
if (!rootRef.current.contains(e.target)) setOpen(false);
|
|
35
|
+
};
|
|
36
|
+
window.addEventListener("click", onDocClick);
|
|
37
|
+
return () => window.removeEventListener("click", onDocClick);
|
|
38
|
+
}, [open, setOpen]);
|
|
39
|
+
const onGroupChange = (key, next, cb) => {
|
|
40
|
+
cb == null ? void 0 : cb(next);
|
|
41
|
+
if (onChange) {
|
|
42
|
+
const m = { ...currentMap, [key]: next };
|
|
43
|
+
onChange(m, key);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const activeCount = React.useMemo(
|
|
47
|
+
() => Object.values(currentMap).reduce((acc, arr) => acc + (Array.isArray(arr) ? arr.length : 0), 0),
|
|
48
|
+
[currentMap]
|
|
49
|
+
);
|
|
50
|
+
const panelStyle = typeof gap === "number" ? { gap } : { gap: void 0 };
|
|
51
|
+
return /* @__PURE__ */ jsxs("div", { ref: rootRef, className: clsx("relative inline-block", className), children: [
|
|
52
|
+
/* @__PURE__ */ jsxs(
|
|
53
|
+
Button,
|
|
54
|
+
{
|
|
55
|
+
unstyled: true,
|
|
56
|
+
onClick: (e) => {
|
|
57
|
+
e.stopPropagation();
|
|
58
|
+
setOpen((v) => !v);
|
|
59
|
+
},
|
|
60
|
+
className: clsx(
|
|
61
|
+
"relative inline-flex items-center gap-2 min-h-[44px] rounded-2xl border border-slate-200 bg-white px-3 pr-9 text-sm text-slate-900 shadow-sm outline-none transition",
|
|
62
|
+
"hover:bg-white focus:ring-4 focus:ring-slate-900/5 focus:border-slate-300",
|
|
63
|
+
"dark:border-white/10 dark:bg-white/10 dark:text-slate-100 dark:focus:ring-white/10"
|
|
64
|
+
),
|
|
65
|
+
children: [
|
|
66
|
+
/* @__PURE__ */ jsx("span", { children: triggerLabel }),
|
|
67
|
+
showActiveCount && /* @__PURE__ */ jsx("span", { className: "rounded-full bg-slate-100 px-2 py-0.5 text-xs text-slate-700 dark:bg-white/10 dark:text-slate-200", children: activeCount }),
|
|
68
|
+
/* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 inline-flex h-7 w-7 items-center justify-center rounded-lg border border-slate-200 bg-white text-slate-600 dark:border-white/10 dark:bg-white/5", children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", className: clsx("h-4 w-4 transition", open && "rotate-180"), fill: "none", stroke: "currentColor", strokeWidth: 2, children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" }) }) })
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
),
|
|
72
|
+
/* @__PURE__ */ jsx(AnimatePresence, { children: open && /* @__PURE__ */ jsx(
|
|
73
|
+
motion.div,
|
|
74
|
+
{
|
|
75
|
+
initial: { opacity: 0, y: 6 },
|
|
76
|
+
animate: { opacity: 1, y: 0 },
|
|
77
|
+
exit: { opacity: 0, y: -6 },
|
|
78
|
+
className: clsx(
|
|
79
|
+
"absolute z-20 mt-2 w-[min(96vw,720px)] overflow-hidden rounded-2xl border border-slate-200 bg-white p-3 shadow-xl dark:border-white/10 dark:bg-[#0e0d0e]",
|
|
80
|
+
align === "end" ? "right-0" : "left-0"
|
|
81
|
+
),
|
|
82
|
+
children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap", style: panelStyle, children: groups.map((g) => {
|
|
83
|
+
var _a, _b, _c;
|
|
84
|
+
return /* @__PURE__ */ jsx("div", { className: "w-full", children: /* @__PURE__ */ jsx(
|
|
85
|
+
CheckboxPillsGroup,
|
|
86
|
+
{
|
|
87
|
+
size: "sm",
|
|
88
|
+
options: g.options,
|
|
89
|
+
value: g.value,
|
|
90
|
+
onChange: (next) => onGroupChange(g.key, next, g.onChange),
|
|
91
|
+
multiple: (_a = g.multiple) != null ? _a : true,
|
|
92
|
+
label: g.label,
|
|
93
|
+
...{
|
|
94
|
+
...g.pillsProps,
|
|
95
|
+
color: (_c = (_b = g.pillsProps) == null ? void 0 : _b.color) != null ? _c : color
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
) }, g.key);
|
|
99
|
+
}) })
|
|
100
|
+
}
|
|
101
|
+
) })
|
|
102
|
+
] });
|
|
103
|
+
}
|
|
104
|
+
export {
|
|
105
|
+
FiltersMultiSelect as default
|
|
106
|
+
};
|
package/dist/MediaSelector.js
CHANGED
|
@@ -98,7 +98,7 @@ function MediaSelector({
|
|
|
98
98
|
setOpenPicker(false);
|
|
99
99
|
onClose == null ? void 0 : onClose();
|
|
100
100
|
} }),
|
|
101
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Dialog.default.Body, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-
|
|
101
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Dialog.default.Body, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-2", children: [
|
|
102
102
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ChartCard.default, { className: "lg:col-span-1", title: "Subir imagen", subtitle: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "Arrastra una imagen o selecci\xF3nala" }), right: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
103
103
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Input.default, { unstyled: true, ref: inputRef, type: "file", accept, className: "hidden", onChange: (e) => onFiles(e.target.files) }),
|
|
104
104
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_Button.default, { onClick: () => {
|
package/dist/MediaSelector.mjs
CHANGED
|
@@ -65,7 +65,7 @@ function MediaSelector({
|
|
|
65
65
|
setOpenPicker(false);
|
|
66
66
|
onClose == null ? void 0 : onClose();
|
|
67
67
|
} }),
|
|
68
|
-
/* @__PURE__ */ jsx(Dialog.Body, { children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-
|
|
68
|
+
/* @__PURE__ */ jsx(Dialog.Body, { children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-2", children: [
|
|
69
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
70
|
/* @__PURE__ */ jsx(Input, { unstyled: true, ref: inputRef, type: "file", accept, className: "hidden", onChange: (e) => onFiles(e.target.files) }),
|
|
71
71
|
/* @__PURE__ */ jsx(Button, { onClick: () => {
|
package/dist/Sidebar.js
CHANGED
|
@@ -33,7 +33,7 @@ __export(Sidebar_exports, {
|
|
|
33
33
|
module.exports = __toCommonJS(Sidebar_exports);
|
|
34
34
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
35
|
var import_react = require("react");
|
|
36
|
-
var
|
|
36
|
+
var import_framer_motion = require("framer-motion");
|
|
37
37
|
var import_Button = __toESM(require("./Button"));
|
|
38
38
|
var import_AvatarSquare = __toESM(require("./AvatarSquare"));
|
|
39
39
|
var import_iconos = require("./iconos");
|
|
@@ -248,10 +248,10 @@ function Sidebar({
|
|
|
248
248
|
}
|
|
249
249
|
),
|
|
250
250
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: ["hidden xl:block", "transition-[width] duration-200", collapsed ? "xl:w-20" : "xl:w-72"].join(" ") }),
|
|
251
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
251
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { children: drawerOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_framer_motion.motion.div, { className: "fixed inset-0 z-40 xl:hidden", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, children: [
|
|
252
252
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute inset-0 bg-black/40" }),
|
|
253
253
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
254
|
-
|
|
254
|
+
import_framer_motion.motion.div,
|
|
255
255
|
{
|
|
256
256
|
role: "dialog",
|
|
257
257
|
"aria-modal": "true",
|
|
@@ -455,8 +455,8 @@ function RenderItem({
|
|
|
455
455
|
]
|
|
456
456
|
}
|
|
457
457
|
),
|
|
458
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
459
|
-
|
|
458
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { initial: false, children: open && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
459
|
+
import_framer_motion.motion.div,
|
|
460
460
|
{
|
|
461
461
|
initial: { height: 0, opacity: 0, y: -4 },
|
|
462
462
|
animate: { height: "auto", opacity: 1, y: 0 },
|
package/dist/Sidebar.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useMemo, useState } from "react";
|
|
3
|
-
import { AnimatePresence, motion } from "motion
|
|
3
|
+
import { AnimatePresence, motion } from "framer-motion";
|
|
4
4
|
import Button from "./Button";
|
|
5
5
|
import AvatarSquare from "./AvatarSquare";
|
|
6
6
|
import { CloseIcon, ChevronLeftRightIcon, MenuIcon } from "./iconos";
|
package/dist/StatCard.js
CHANGED
|
@@ -23,14 +23,14 @@ __export(StatCard_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(StatCard_exports);
|
|
25
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
|
-
var
|
|
27
|
-
var
|
|
26
|
+
var import_framer_motion = require("framer-motion");
|
|
27
|
+
var import_react = require("react");
|
|
28
28
|
var import_recharts = require("recharts");
|
|
29
29
|
function StatCard({ title, value, hint, spark }) {
|
|
30
30
|
var _a;
|
|
31
|
-
const gid = (0,
|
|
31
|
+
const gid = (0, import_react.useId)();
|
|
32
32
|
const color = (_a = spark == null ? void 0 : spark.color) != null ? _a : "#10b981";
|
|
33
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
33
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.motion.div, { initial: { opacity: 0, y: 8 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.25 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "h-full group relative overflow-hidden rounded-2xl border border-slate-200 bg-white/80 p-4 shadow-sm ring-1 ring-black/5 backdrop-blur transition hover:shadow-md dark:border-white/10 dark:bg-white/5", children: [
|
|
34
34
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative z-10", children: [
|
|
35
35
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-xs font-medium text-slate-500", children: title }),
|
|
36
36
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-1 text-2xl font-semibold tracking-tight", children: value }),
|
package/dist/StatCard.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { motion } from "motion
|
|
3
|
+
import { motion } from "framer-motion";
|
|
4
4
|
import { useId } from "react";
|
|
5
5
|
import { Area, AreaChart, ResponsiveContainer } from "recharts";
|
|
6
6
|
function StatCard({ title, value, hint, spark }) {
|
package/dist/index.d.mts
CHANGED
|
@@ -2,6 +2,7 @@ export { default as Button } from './Button.mjs';
|
|
|
2
2
|
export { default as ActionIconButton } from './ActionIconButton.mjs';
|
|
3
3
|
export { default as Input, InputProps } from './Input.mjs';
|
|
4
4
|
export { default as CheckboxPillsGroup, CheckboxPillsGroupProps, PillsOption } from './CheckboxPillsGroup.mjs';
|
|
5
|
+
export { FilterGroup, default as FiltersMultiSelect, FiltersMultiSelectProps } from './FiltersMultiSelect.mjs';
|
|
5
6
|
export { default as Select } from './Select.mjs';
|
|
6
7
|
export { ComboOption, ComboSection, default as ComboSelect, ComboSelectProps } from './ComboSelect.mjs';
|
|
7
8
|
export { ColumnItem, default as ColumnSelector } from './ColumnSelector.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { default as Button } from './Button.js';
|
|
|
2
2
|
export { default as ActionIconButton } from './ActionIconButton.js';
|
|
3
3
|
export { default as Input, InputProps } from './Input.js';
|
|
4
4
|
export { default as CheckboxPillsGroup, CheckboxPillsGroupProps, PillsOption } from './CheckboxPillsGroup.js';
|
|
5
|
+
export { FilterGroup, default as FiltersMultiSelect, FiltersMultiSelectProps } from './FiltersMultiSelect.js';
|
|
5
6
|
export { default as Select } from './Select.js';
|
|
6
7
|
export { ComboOption, ComboSection, default as ComboSelect, ComboSelectProps } from './ComboSelect.js';
|
|
7
8
|
export { ColumnItem, default as ColumnSelector } from './ColumnSelector.js';
|
package/dist/index.js
CHANGED
|
@@ -48,6 +48,7 @@ __export(index_exports, {
|
|
|
48
48
|
Drawer: () => import_Drawer.default,
|
|
49
49
|
Dropdown: () => import_Dropdown.default,
|
|
50
50
|
EmptyState: () => import_EmptyState.default,
|
|
51
|
+
FiltersMultiSelect: () => import_FiltersMultiSelect.default,
|
|
51
52
|
InfoGrid: () => import_InfoGrid.default,
|
|
52
53
|
Input: () => import_Input.default,
|
|
53
54
|
Link: () => import_Link.default,
|
|
@@ -84,6 +85,7 @@ var import_Button = __toESM(require("./Button"));
|
|
|
84
85
|
var import_ActionIconButton = __toESM(require("./ActionIconButton"));
|
|
85
86
|
var import_Input = __toESM(require("./Input"));
|
|
86
87
|
var import_CheckboxPillsGroup = __toESM(require("./CheckboxPillsGroup"));
|
|
88
|
+
var import_FiltersMultiSelect = __toESM(require("./FiltersMultiSelect"));
|
|
87
89
|
var import_Select = __toESM(require("./Select"));
|
|
88
90
|
var import_ComboSelect = __toESM(require("./ComboSelect"));
|
|
89
91
|
var import_ColumnSelector = __toESM(require("./ColumnSelector"));
|
|
@@ -149,6 +151,7 @@ __reExport(index_exports, require("./iconos"), module.exports);
|
|
|
149
151
|
Drawer,
|
|
150
152
|
Dropdown,
|
|
151
153
|
EmptyState,
|
|
154
|
+
FiltersMultiSelect,
|
|
152
155
|
InfoGrid,
|
|
153
156
|
Input,
|
|
154
157
|
Link,
|
package/dist/index.mjs
CHANGED
|
@@ -2,98 +2,100 @@ import { default as default2 } from "./Button";
|
|
|
2
2
|
import { default as default3 } from "./ActionIconButton";
|
|
3
3
|
import { default as default4 } from "./Input";
|
|
4
4
|
import { default as default5 } from "./CheckboxPillsGroup";
|
|
5
|
-
import { default as default6 } from "./
|
|
6
|
-
import { default as default7 } from "./
|
|
7
|
-
import { default as default8 } from "./
|
|
8
|
-
import { default as default9 } from "./
|
|
9
|
-
import { default as default10 } from "./
|
|
5
|
+
import { default as default6 } from "./FiltersMultiSelect";
|
|
6
|
+
import { default as default7 } from "./Select";
|
|
7
|
+
import { default as default8 } from "./ComboSelect";
|
|
8
|
+
import { default as default9 } from "./ColumnSelector";
|
|
9
|
+
import { default as default10 } from "./DateTimeField";
|
|
10
|
+
import { default as default11 } from "./Dialog";
|
|
10
11
|
export * from "./Dialog";
|
|
11
|
-
import { default as
|
|
12
|
+
import { default as default12 } from "./Dropdown";
|
|
12
13
|
export * from "./Dropdown";
|
|
13
14
|
import { Th, SortTh, Td } from "./Table";
|
|
14
|
-
import { default as
|
|
15
|
-
import { default as
|
|
16
|
-
import { default as
|
|
17
|
-
import { default as
|
|
18
|
-
import { default as
|
|
19
|
-
import { default as
|
|
20
|
-
import { default as
|
|
21
|
-
import { default as
|
|
22
|
-
import { default as
|
|
23
|
-
import { default as
|
|
24
|
-
import { default as
|
|
25
|
-
import { default as
|
|
26
|
-
import { default as
|
|
27
|
-
import { default as
|
|
28
|
-
import { default as
|
|
29
|
-
import { default as
|
|
30
|
-
import { default as
|
|
31
|
-
import { default as
|
|
32
|
-
import { default as
|
|
15
|
+
import { default as default13 } from "./Pagination";
|
|
16
|
+
import { default as default14 } from "./InfoGrid";
|
|
17
|
+
import { default as default15 } from "./ChartCard";
|
|
18
|
+
import { default as default16 } from "./UploadCard";
|
|
19
|
+
import { default as default17 } from "./MediaCard";
|
|
20
|
+
import { default as default18 } from "./MediaSelector";
|
|
21
|
+
import { default as default19 } from "./StatCard";
|
|
22
|
+
import { default as default20 } from "./Badge";
|
|
23
|
+
import { default as default21 } from "./BadgeCluster";
|
|
24
|
+
import { default as default22 } from "./Breadcrumb";
|
|
25
|
+
import { default as default23 } from "./EmptyState";
|
|
26
|
+
import { default as default24 } from "./Money";
|
|
27
|
+
import { default as default25 } from "./TimeAgo";
|
|
28
|
+
import { default as default26 } from "./AvatarSquare";
|
|
29
|
+
import { default as default27 } from "./AvatarGroup";
|
|
30
|
+
import { default as default28 } from "./AppTopbar";
|
|
31
|
+
import { default as default29 } from "./OrderButton";
|
|
32
|
+
import { default as default30 } from "./SearchInput";
|
|
33
|
+
import { default as default31 } from "./ReviewHistory";
|
|
33
34
|
import { ReviewHistoryDialog } from "./ReviewHistory";
|
|
34
|
-
import { default as
|
|
35
|
-
import { default as
|
|
36
|
-
import { default as
|
|
37
|
-
import { default as
|
|
38
|
-
import { default as
|
|
39
|
-
import { default as
|
|
35
|
+
import { default as default32 } from "./MultiComboSelect";
|
|
36
|
+
import { default as default33 } from "./Sidebar";
|
|
37
|
+
import { default as default34 } from "./Card";
|
|
38
|
+
import { default as default35 } from "./Drawer";
|
|
39
|
+
import { default as default36 } from "./Tooltip";
|
|
40
|
+
import { default as default37 } from "./Link";
|
|
40
41
|
import { ToastProvider, useToast } from "./Toast";
|
|
41
|
-
import { default as
|
|
42
|
-
import { default as
|
|
42
|
+
import { default as default38 } from "./CalendarPanel";
|
|
43
|
+
import { default as default39 } from "./TimePopover";
|
|
43
44
|
import { WeekPopover, MonthPopover } from "./TimePopover";
|
|
44
|
-
import { default as
|
|
45
|
-
import { default as
|
|
46
|
-
import { default as
|
|
45
|
+
import { default as default40 } from "./TimePanel";
|
|
46
|
+
import { default as default41 } from "./TimeRangeField";
|
|
47
|
+
import { default as default42 } from "./Steps";
|
|
47
48
|
import { StepsNav } from "./Steps";
|
|
48
49
|
export * from "./iconos";
|
|
49
50
|
export {
|
|
50
51
|
default3 as ActionIconButton,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
default28 as AppTopbar,
|
|
53
|
+
default27 as AvatarGroup,
|
|
54
|
+
default26 as AvatarSquare,
|
|
55
|
+
default20 as Badge,
|
|
56
|
+
default21 as BadgeCluster,
|
|
57
|
+
default22 as Breadcrumb,
|
|
57
58
|
default2 as Button,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
default38 as CalendarPanel,
|
|
60
|
+
default34 as Card,
|
|
61
|
+
default15 as ChartCard,
|
|
61
62
|
default5 as CheckboxPillsGroup,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
default9 as ColumnSelector,
|
|
64
|
+
default8 as ComboSelect,
|
|
65
|
+
default10 as DateTimeField,
|
|
66
|
+
default11 as Dialog,
|
|
67
|
+
default35 as Drawer,
|
|
68
|
+
default12 as Dropdown,
|
|
69
|
+
default23 as EmptyState,
|
|
70
|
+
default6 as FiltersMultiSelect,
|
|
71
|
+
default14 as InfoGrid,
|
|
70
72
|
default4 as Input,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
default37 as Link,
|
|
74
|
+
default17 as MediaCard,
|
|
75
|
+
default18 as MediaSelector,
|
|
76
|
+
default24 as Money,
|
|
75
77
|
MonthPopover,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
default32 as MultiComboSelect,
|
|
79
|
+
default29 as OrderButton,
|
|
80
|
+
default13 as Pagination,
|
|
81
|
+
default31 as ReviewHistory,
|
|
80
82
|
ReviewHistoryDialog,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
default30 as SearchInput,
|
|
84
|
+
default7 as Select,
|
|
85
|
+
default33 as Sidebar,
|
|
84
86
|
SortTh,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
default19 as StatCard,
|
|
88
|
+
default42 as Steps,
|
|
87
89
|
StepsNav,
|
|
88
90
|
Td,
|
|
89
91
|
Th,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
default25 as TimeAgo,
|
|
93
|
+
default40 as TimePanel,
|
|
94
|
+
default39 as TimePopover,
|
|
95
|
+
default41 as TimeRangeField,
|
|
94
96
|
ToastProvider,
|
|
95
|
-
|
|
96
|
-
|
|
97
|
+
default36 as Tooltip,
|
|
98
|
+
default16 as UploadCard,
|
|
97
99
|
WeekPopover,
|
|
98
100
|
useToast
|
|
99
101
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "framepexls-ui-lib",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Componentes UI de Framepexls para React/Next.",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"access": "public"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"react": ">=18",
|
|
31
|
-
"react-dom": ">=18",
|
|
32
|
-
"next": "
|
|
33
|
-
"motion": "^12.23.
|
|
34
|
-
"recharts": "
|
|
30
|
+
"react": ">=18.2.0 || ^19",
|
|
31
|
+
"react-dom": ">=18.2.0 || ^19",
|
|
32
|
+
"next": "^15.0.0",
|
|
33
|
+
"framer-motion": "^12.23.0",
|
|
34
|
+
"recharts": ">=3.1.0 <4"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"typescript": "^5.6.3",
|
|
@@ -40,9 +40,12 @@
|
|
|
40
40
|
"@types/react-dom": "^19",
|
|
41
41
|
"tailwindcss": "^4.1.13",
|
|
42
42
|
"@tailwindcss/postcss": "^4.1.13",
|
|
43
|
-
"motion": "^12.23.
|
|
43
|
+
"framer-motion": "^12.23.20",
|
|
44
44
|
"recharts": "^3.2.1",
|
|
45
|
-
"next": "15.
|
|
45
|
+
"next": "15.4.3",
|
|
46
|
+
"react": "19.1.0",
|
|
47
|
+
"react-dom": "19.1.0",
|
|
48
|
+
"react-is": "^19.0.0"
|
|
46
49
|
},
|
|
47
50
|
"scripts": {
|
|
48
51
|
"build": "tsup",
|