framepexls-ui-lib 2.2.1 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,23 @@
1
+ import React__default from 'react';
2
+ import { FontSizeControllerProps } from './theme/FontSizeController.mjs';
3
+ import { ThemeToggleProps } from './theme/ThemeToggle.mjs';
4
+
5
+ type AccessibilityFabLabels = {
6
+ title?: string;
7
+ description?: string;
8
+ close?: string;
9
+ open?: string;
10
+ appearanceTitle?: string;
11
+ appearanceDescription?: string;
12
+ fontSizeTitle?: string;
13
+ fontSizeDescription?: string;
14
+ };
15
+ type AccessibilityFabProps = {
16
+ className?: string;
17
+ labels?: AccessibilityFabLabels;
18
+ themeToggleProps?: Omit<ThemeToggleProps, "className">;
19
+ fontSizeProps?: Omit<FontSizeControllerProps, "className">;
20
+ };
21
+ declare function AccessibilityFab({ className, labels, themeToggleProps, fontSizeProps, }: AccessibilityFabProps): React__default.JSX.Element;
22
+
23
+ export { type AccessibilityFabLabels, type AccessibilityFabProps, AccessibilityFab as default };
@@ -0,0 +1,23 @@
1
+ import React__default from 'react';
2
+ import { FontSizeControllerProps } from './theme/FontSizeController.js';
3
+ import { ThemeToggleProps } from './theme/ThemeToggle.js';
4
+
5
+ type AccessibilityFabLabels = {
6
+ title?: string;
7
+ description?: string;
8
+ close?: string;
9
+ open?: string;
10
+ appearanceTitle?: string;
11
+ appearanceDescription?: string;
12
+ fontSizeTitle?: string;
13
+ fontSizeDescription?: string;
14
+ };
15
+ type AccessibilityFabProps = {
16
+ className?: string;
17
+ labels?: AccessibilityFabLabels;
18
+ themeToggleProps?: Omit<ThemeToggleProps, "className">;
19
+ fontSizeProps?: Omit<FontSizeControllerProps, "className">;
20
+ };
21
+ declare function AccessibilityFab({ className, labels, themeToggleProps, fontSizeProps, }: AccessibilityFabProps): React__default.JSX.Element;
22
+
23
+ export { type AccessibilityFabLabels, type AccessibilityFabProps, AccessibilityFab as default };
@@ -0,0 +1,147 @@
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 AccessibilityFab_exports = {};
31
+ __export(AccessibilityFab_exports, {
32
+ default: () => AccessibilityFab
33
+ });
34
+ module.exports = __toCommonJS(AccessibilityFab_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_Button = __toESM(require("./Button"));
39
+ var import_FontSizeController = __toESM(require("./theme/FontSizeController"));
40
+ var import_ThemeToggle = __toESM(require("./theme/ThemeToggle"));
41
+ var import_iconos = require("./iconos");
42
+ function AccessibilityFab({
43
+ className,
44
+ labels,
45
+ themeToggleProps,
46
+ fontSizeProps
47
+ }) {
48
+ var _a, _b, _c, _d, _e, _f, _g, _h;
49
+ const [open, setOpen] = import_react.default.useState(false);
50
+ const reduceMotion = (0, import_framer_motion.useReducedMotion)();
51
+ const btnRef = import_react.default.useRef(null);
52
+ const popRef = import_react.default.useRef(null);
53
+ const text = {
54
+ title: (_a = labels == null ? void 0 : labels.title) != null ? _a : "Accesibilidad",
55
+ description: (_b = labels == null ? void 0 : labels.description) != null ? _b : "Ajusta el modo visual y el tama\xF1o del texto",
56
+ close: (_c = labels == null ? void 0 : labels.close) != null ? _c : "Cerrar accesibilidad",
57
+ open: (_d = labels == null ? void 0 : labels.open) != null ? _d : "Abrir accesibilidad",
58
+ appearanceTitle: (_e = labels == null ? void 0 : labels.appearanceTitle) != null ? _e : "Apariencia",
59
+ appearanceDescription: (_f = labels == null ? void 0 : labels.appearanceDescription) != null ? _f : "Alterna entre modo claro y oscuro",
60
+ fontSizeTitle: (_g = labels == null ? void 0 : labels.fontSizeTitle) != null ? _g : "Tama\xF1o del texto",
61
+ fontSizeDescription: (_h = labels == null ? void 0 : labels.fontSizeDescription) != null ? _h : "Mejora la lectura con un ajuste r\xE1pido"
62
+ };
63
+ import_react.default.useEffect(() => {
64
+ if (!open) return;
65
+ const onKeyDown = (event) => {
66
+ var _a2;
67
+ if (event.key === "Escape") {
68
+ setOpen(false);
69
+ (_a2 = btnRef.current) == null ? void 0 : _a2.focus();
70
+ }
71
+ };
72
+ const onPointerDown = (event) => {
73
+ const path = typeof event.composedPath === "function" ? event.composedPath() : [];
74
+ if (popRef.current && path.includes(popRef.current)) return;
75
+ if (btnRef.current && path.includes(btnRef.current)) return;
76
+ setOpen(false);
77
+ };
78
+ window.addEventListener("keydown", onKeyDown);
79
+ window.addEventListener("pointerdown", onPointerDown, true);
80
+ return () => {
81
+ window.removeEventListener("keydown", onKeyDown);
82
+ window.removeEventListener("pointerdown", onPointerDown, true);
83
+ };
84
+ }, [open]);
85
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: ["fixed bottom-5 right-5 z-[70] flex items-end gap-3", className != null ? className : ""].join(" "), children: [
86
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.LazyMotion, { features: import_framer_motion.domAnimation, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { children: open ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
87
+ import_framer_motion.m.div,
88
+ {
89
+ ref: popRef,
90
+ initial: reduceMotion ? { opacity: 1 } : { opacity: 0, y: 10, scale: 0.98 },
91
+ animate: reduceMotion ? { opacity: 1 } : { opacity: 1, y: 0, scale: 1 },
92
+ exit: reduceMotion ? { opacity: 0 } : { opacity: 0, y: 10, scale: 0.98 },
93
+ transition: reduceMotion ? { duration: 0 } : { duration: 0.18, ease: "easeOut" },
94
+ className: "w-[min(360px,calc(100vw-1.5rem))] overflow-hidden rounded-[1.75rem] border border-[color-mix(in_oklab,var(--border)_72%,transparent)] bg-[color-mix(in_oklab,var(--surface)_84%,transparent)] shadow-[0_30px_90px_rgba(2,12,27,0.24)] backdrop-blur-xl",
95
+ children: [
96
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between gap-3 border-b border-[color-mix(in_oklab,var(--border)_70%,transparent)] px-4 py-3", children: [
97
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
98
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-sm font-semibold text-[var(--foreground)]", children: text.title }),
99
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-xs text-[var(--muted)]", children: text.description })
100
+ ] }),
101
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
102
+ import_Button.default,
103
+ {
104
+ unstyled: true,
105
+ type: "button",
106
+ onClick: () => setOpen(false),
107
+ className: "grid size-9 place-items-center rounded-2xl border border-[color-mix(in_oklab,var(--border)_70%,transparent)] bg-[color-mix(in_oklab,var(--card)_55%,transparent)] text-[var(--foreground)] transition hover:bg-[color-mix(in_oklab,var(--card)_65%,transparent)]",
108
+ "aria-label": text.close,
109
+ title: text.close,
110
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconos.CloseIcon, { className: "size-4", "aria-hidden": true })
111
+ }
112
+ )
113
+ ] }),
114
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-3 p-4", children: [
115
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between gap-3 rounded-2xl border border-[color-mix(in_oklab,var(--border)_70%,transparent)] bg-[color-mix(in_oklab,var(--card)_55%,transparent)] p-3", children: [
116
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "min-w-0", children: [
117
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-sm font-semibold text-[var(--foreground)]", children: text.appearanceTitle }),
118
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-0.5 text-xs text-[var(--muted)]", children: text.appearanceDescription })
119
+ ] }),
120
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ThemeToggle.default, { cycle: ["light", "dark"], ...themeToggleProps })
121
+ ] }),
122
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between gap-3 rounded-2xl border border-[color-mix(in_oklab,var(--border)_70%,transparent)] bg-[color-mix(in_oklab,var(--card)_55%,transparent)] p-3", children: [
123
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "min-w-0", children: [
124
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "text-sm font-semibold text-[var(--foreground)]", children: text.fontSizeTitle }),
125
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-0.5 text-xs text-[var(--muted)]", children: text.fontSizeDescription })
126
+ ] }),
127
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_FontSizeController.default, { ...fontSizeProps })
128
+ ] })
129
+ ] })
130
+ ]
131
+ }
132
+ ) : null }) }),
133
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
134
+ import_Button.default,
135
+ {
136
+ unstyled: true,
137
+ ref: btnRef,
138
+ type: "button",
139
+ onClick: () => setOpen((value) => !value),
140
+ className: "group grid size-12 place-items-center rounded-2xl border border-[color-mix(in_oklab,var(--border)_70%,transparent)] bg-[color-mix(in_oklab,var(--surface)_84%,transparent)] text-[var(--foreground)] shadow-[0_24px_60px_rgba(15,23,42,0.22)] backdrop-blur-xl transition hover:scale-[1.02] hover:bg-[color-mix(in_oklab,var(--surface)_92%,transparent)]",
141
+ "aria-label": open ? text.close : text.open,
142
+ title: open ? text.close : text.title,
143
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconos.TextAaIcon, { className: "size-5 opacity-90 transition group-hover:opacity-100", "aria-hidden": true })
144
+ }
145
+ )
146
+ ] });
147
+ }
@@ -0,0 +1,123 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import {
5
+ AnimatePresence,
6
+ LazyMotion,
7
+ domAnimation,
8
+ m,
9
+ useReducedMotion
10
+ } from "framer-motion";
11
+ import Button from "./Button.mjs";
12
+ import FontSizeController from "./theme/FontSizeController.mjs";
13
+ import ThemeToggle from "./theme/ThemeToggle.mjs";
14
+ import { CloseIcon, TextAaIcon } from "./iconos/index.mjs";
15
+ function AccessibilityFab({
16
+ className,
17
+ labels,
18
+ themeToggleProps,
19
+ fontSizeProps
20
+ }) {
21
+ var _a, _b, _c, _d, _e, _f, _g, _h;
22
+ const [open, setOpen] = React.useState(false);
23
+ const reduceMotion = useReducedMotion();
24
+ const btnRef = React.useRef(null);
25
+ const popRef = React.useRef(null);
26
+ const text = {
27
+ title: (_a = labels == null ? void 0 : labels.title) != null ? _a : "Accesibilidad",
28
+ description: (_b = labels == null ? void 0 : labels.description) != null ? _b : "Ajusta el modo visual y el tama\xF1o del texto",
29
+ close: (_c = labels == null ? void 0 : labels.close) != null ? _c : "Cerrar accesibilidad",
30
+ open: (_d = labels == null ? void 0 : labels.open) != null ? _d : "Abrir accesibilidad",
31
+ appearanceTitle: (_e = labels == null ? void 0 : labels.appearanceTitle) != null ? _e : "Apariencia",
32
+ appearanceDescription: (_f = labels == null ? void 0 : labels.appearanceDescription) != null ? _f : "Alterna entre modo claro y oscuro",
33
+ fontSizeTitle: (_g = labels == null ? void 0 : labels.fontSizeTitle) != null ? _g : "Tama\xF1o del texto",
34
+ fontSizeDescription: (_h = labels == null ? void 0 : labels.fontSizeDescription) != null ? _h : "Mejora la lectura con un ajuste r\xE1pido"
35
+ };
36
+ React.useEffect(() => {
37
+ if (!open) return;
38
+ const onKeyDown = (event) => {
39
+ var _a2;
40
+ if (event.key === "Escape") {
41
+ setOpen(false);
42
+ (_a2 = btnRef.current) == null ? void 0 : _a2.focus();
43
+ }
44
+ };
45
+ const onPointerDown = (event) => {
46
+ const path = typeof event.composedPath === "function" ? event.composedPath() : [];
47
+ if (popRef.current && path.includes(popRef.current)) return;
48
+ if (btnRef.current && path.includes(btnRef.current)) return;
49
+ setOpen(false);
50
+ };
51
+ window.addEventListener("keydown", onKeyDown);
52
+ window.addEventListener("pointerdown", onPointerDown, true);
53
+ return () => {
54
+ window.removeEventListener("keydown", onKeyDown);
55
+ window.removeEventListener("pointerdown", onPointerDown, true);
56
+ };
57
+ }, [open]);
58
+ return /* @__PURE__ */ jsxs("div", { className: ["fixed bottom-5 right-5 z-[70] flex items-end gap-3", className != null ? className : ""].join(" "), children: [
59
+ /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsx(AnimatePresence, { children: open ? /* @__PURE__ */ jsxs(
60
+ m.div,
61
+ {
62
+ ref: popRef,
63
+ initial: reduceMotion ? { opacity: 1 } : { opacity: 0, y: 10, scale: 0.98 },
64
+ animate: reduceMotion ? { opacity: 1 } : { opacity: 1, y: 0, scale: 1 },
65
+ exit: reduceMotion ? { opacity: 0 } : { opacity: 0, y: 10, scale: 0.98 },
66
+ transition: reduceMotion ? { duration: 0 } : { duration: 0.18, ease: "easeOut" },
67
+ className: "w-[min(360px,calc(100vw-1.5rem))] overflow-hidden rounded-[1.75rem] border border-[color-mix(in_oklab,var(--border)_72%,transparent)] bg-[color-mix(in_oklab,var(--surface)_84%,transparent)] shadow-[0_30px_90px_rgba(2,12,27,0.24)] backdrop-blur-xl",
68
+ children: [
69
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 border-b border-[color-mix(in_oklab,var(--border)_70%,transparent)] px-4 py-3", children: [
70
+ /* @__PURE__ */ jsxs("div", { children: [
71
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-semibold text-[var(--foreground)]", children: text.title }),
72
+ /* @__PURE__ */ jsx("div", { className: "text-xs text-[var(--muted)]", children: text.description })
73
+ ] }),
74
+ /* @__PURE__ */ jsx(
75
+ Button,
76
+ {
77
+ unstyled: true,
78
+ type: "button",
79
+ onClick: () => setOpen(false),
80
+ className: "grid size-9 place-items-center rounded-2xl border border-[color-mix(in_oklab,var(--border)_70%,transparent)] bg-[color-mix(in_oklab,var(--card)_55%,transparent)] text-[var(--foreground)] transition hover:bg-[color-mix(in_oklab,var(--card)_65%,transparent)]",
81
+ "aria-label": text.close,
82
+ title: text.close,
83
+ children: /* @__PURE__ */ jsx(CloseIcon, { className: "size-4", "aria-hidden": true })
84
+ }
85
+ )
86
+ ] }),
87
+ /* @__PURE__ */ jsxs("div", { className: "space-y-3 p-4", children: [
88
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 rounded-2xl border border-[color-mix(in_oklab,var(--border)_70%,transparent)] bg-[color-mix(in_oklab,var(--card)_55%,transparent)] p-3", children: [
89
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
90
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-semibold text-[var(--foreground)]", children: text.appearanceTitle }),
91
+ /* @__PURE__ */ jsx("div", { className: "mt-0.5 text-xs text-[var(--muted)]", children: text.appearanceDescription })
92
+ ] }),
93
+ /* @__PURE__ */ jsx(ThemeToggle, { cycle: ["light", "dark"], ...themeToggleProps })
94
+ ] }),
95
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 rounded-2xl border border-[color-mix(in_oklab,var(--border)_70%,transparent)] bg-[color-mix(in_oklab,var(--card)_55%,transparent)] p-3", children: [
96
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
97
+ /* @__PURE__ */ jsx("div", { className: "text-sm font-semibold text-[var(--foreground)]", children: text.fontSizeTitle }),
98
+ /* @__PURE__ */ jsx("div", { className: "mt-0.5 text-xs text-[var(--muted)]", children: text.fontSizeDescription })
99
+ ] }),
100
+ /* @__PURE__ */ jsx(FontSizeController, { ...fontSizeProps })
101
+ ] })
102
+ ] })
103
+ ]
104
+ }
105
+ ) : null }) }),
106
+ /* @__PURE__ */ jsx(
107
+ Button,
108
+ {
109
+ unstyled: true,
110
+ ref: btnRef,
111
+ type: "button",
112
+ onClick: () => setOpen((value) => !value),
113
+ className: "group grid size-12 place-items-center rounded-2xl border border-[color-mix(in_oklab,var(--border)_70%,transparent)] bg-[color-mix(in_oklab,var(--surface)_84%,transparent)] text-[var(--foreground)] shadow-[0_24px_60px_rgba(15,23,42,0.22)] backdrop-blur-xl transition hover:scale-[1.02] hover:bg-[color-mix(in_oklab,var(--surface)_92%,transparent)]",
114
+ "aria-label": open ? text.close : text.open,
115
+ title: open ? text.close : text.title,
116
+ children: /* @__PURE__ */ jsx(TextAaIcon, { className: "size-5 opacity-90 transition group-hover:opacity-100", "aria-hidden": true })
117
+ }
118
+ )
119
+ ] });
120
+ }
121
+ export {
122
+ AccessibilityFab as default
123
+ };
@@ -5,7 +5,8 @@ type HeliipLoaderProps = {
5
5
  subtitle?: string;
6
6
  className?: string;
7
7
  compact?: boolean;
8
+ size?: "sm" | "md" | "lg";
8
9
  };
9
- declare function HeliipLoader({ title, subtitle, className, compact, }: HeliipLoaderProps): React__default.JSX.Element;
10
+ declare function HeliipLoader({ title, subtitle, className, compact, size, }: HeliipLoaderProps): React__default.JSX.Element;
10
11
 
11
12
  export { type HeliipLoaderProps, HeliipLoader as default };
@@ -5,7 +5,8 @@ type HeliipLoaderProps = {
5
5
  subtitle?: string;
6
6
  className?: string;
7
7
  compact?: boolean;
8
+ size?: "sm" | "md" | "lg";
8
9
  };
9
- declare function HeliipLoader({ title, subtitle, className, compact, }: HeliipLoaderProps): React__default.JSX.Element;
10
+ declare function HeliipLoader({ title, subtitle, className, compact, size, }: HeliipLoaderProps): React__default.JSX.Element;
10
11
 
11
12
  export { type HeliipLoaderProps, HeliipLoader as default };
@@ -24,80 +24,26 @@ __export(HeliipLoader_exports, {
24
24
  module.exports = __toCommonJS(HeliipLoader_exports);
25
25
  var import_jsx_runtime = require("react/jsx-runtime");
26
26
  var import_framer_motion = require("framer-motion");
27
- var import_animations = require("./animations");
27
+ var import_iconos = require("./iconos");
28
28
  const cx = (...a) => a.filter(Boolean).join(" ");
29
29
  function HeliipLoader({
30
30
  title = "Heliip",
31
31
  subtitle = "Cargando\u2026",
32
32
  className,
33
- compact = false
33
+ compact = false,
34
+ size
34
35
  }) {
36
+ const resolvedSize = size != null ? size : compact ? "sm" : "md";
37
+ const iconSize = resolvedSize === "lg" ? "h-10 w-10" : resolvedSize === "sm" ? "h-5 w-5" : "h-7 w-7";
35
38
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
36
39
  "div",
37
40
  {
38
- className: cx(
39
- "w-full",
40
- "rounded-3xl border border-[var(--border)] bg-[color-mix(in_oklab,var(--card)_92%,transparent)]",
41
- "shadow-2xl ring-1 ring-black/5",
42
- compact ? "p-4" : "p-5",
43
- className
44
- ),
41
+ "aria-label": subtitle || title,
42
+ className: cx("inline-flex items-center justify-center text-[var(--primary)]", className),
43
+ role: "status",
45
44
  children: [
46
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-3", children: [
47
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
48
- "div",
49
- {
50
- className: [
51
- "relative grid place-items-center",
52
- compact ? "h-10 w-10 rounded-2xl" : "h-12 w-12 rounded-2xl",
53
- "bg-[color-mix(in_oklab,var(--primary)_14%,transparent)]",
54
- "ring-1 ring-[color-mix(in_oklab,var(--primary)_24%,transparent)]"
55
- ].join(" "),
56
- "aria-hidden": true,
57
- children: [
58
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
59
- import_framer_motion.motion.div,
60
- {
61
- className: "absolute inset-1 rounded-xl border border-[color-mix(in_oklab,var(--primary)_55%,transparent)]",
62
- animate: { rotate: 360 },
63
- transition: { repeat: Infinity, duration: 1.2, ease: "linear" }
64
- }
65
- ),
66
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
67
- import_framer_motion.motion.div,
68
- {
69
- className: "h-4 w-4 rounded-full bg-[var(--primary)]",
70
- animate: { scale: [1, 1.08, 1] },
71
- transition: { repeat: Infinity, duration: 0.9, ease: "easeInOut" }
72
- }
73
- )
74
- ]
75
- }
76
- ),
77
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "min-w-0 flex-1", children: [
78
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cx("truncate font-semibold tracking-tight", compact ? "text-base" : "text-lg"), children: title }),
79
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cx("mt-0.5 truncate text-[var(--muted)]", compact ? "text-xs" : "text-sm"), children: subtitle })
80
- ] })
81
- ] }),
82
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cx("mt-4 overflow-hidden rounded-full bg-[color-mix(in_oklab,var(--border)_65%,transparent)]", compact ? "h-1.5" : "h-2"), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
83
- import_framer_motion.motion.div,
84
- {
85
- className: cx("h-full rounded-full bg-[var(--primary)]", compact ? "w-1/3" : "w-2/5"),
86
- initial: { x: "-60%" },
87
- animate: { x: "160%" },
88
- transition: { repeat: Infinity, duration: 1.1, ease: "easeInOut" }
89
- }
90
- ) }),
91
- !compact ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
- import_framer_motion.motion.div,
93
- {
94
- className: "mt-3 text-xs text-[var(--muted)]",
95
- initial: { opacity: 0 },
96
- animate: { opacity: 1 },
97
- transition: import_animations.microTransition,
98
- children: "Esto normalmente toma menos de un segundo."
99
- }
100
- ) : null
45
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.motion.span, { animate: { rotate: 360 }, "aria-hidden": true, className: "inline-flex", transition: { duration: 0.8, ease: "linear", repeat: Infinity }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconos.SpinnerGapIcon, { className: iconSize }) }),
46
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "sr-only", children: subtitle || title })
101
47
  ]
102
48
  }
103
49
  );
@@ -1,80 +1,26 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { motion } from "framer-motion";
4
- import { microTransition } from "./animations.mjs";
4
+ import { SpinnerGapIcon } from "./iconos/index.mjs";
5
5
  const cx = (...a) => a.filter(Boolean).join(" ");
6
6
  function HeliipLoader({
7
7
  title = "Heliip",
8
8
  subtitle = "Cargando\u2026",
9
9
  className,
10
- compact = false
10
+ compact = false,
11
+ size
11
12
  }) {
13
+ const resolvedSize = size != null ? size : compact ? "sm" : "md";
14
+ const iconSize = resolvedSize === "lg" ? "h-10 w-10" : resolvedSize === "sm" ? "h-5 w-5" : "h-7 w-7";
12
15
  return /* @__PURE__ */ jsxs(
13
16
  "div",
14
17
  {
15
- className: cx(
16
- "w-full",
17
- "rounded-3xl border border-[var(--border)] bg-[color-mix(in_oklab,var(--card)_92%,transparent)]",
18
- "shadow-2xl ring-1 ring-black/5",
19
- compact ? "p-4" : "p-5",
20
- className
21
- ),
18
+ "aria-label": subtitle || title,
19
+ className: cx("inline-flex items-center justify-center text-[var(--primary)]", className),
20
+ role: "status",
22
21
  children: [
23
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
24
- /* @__PURE__ */ jsxs(
25
- "div",
26
- {
27
- className: [
28
- "relative grid place-items-center",
29
- compact ? "h-10 w-10 rounded-2xl" : "h-12 w-12 rounded-2xl",
30
- "bg-[color-mix(in_oklab,var(--primary)_14%,transparent)]",
31
- "ring-1 ring-[color-mix(in_oklab,var(--primary)_24%,transparent)]"
32
- ].join(" "),
33
- "aria-hidden": true,
34
- children: [
35
- /* @__PURE__ */ jsx(
36
- motion.div,
37
- {
38
- className: "absolute inset-1 rounded-xl border border-[color-mix(in_oklab,var(--primary)_55%,transparent)]",
39
- animate: { rotate: 360 },
40
- transition: { repeat: Infinity, duration: 1.2, ease: "linear" }
41
- }
42
- ),
43
- /* @__PURE__ */ jsx(
44
- motion.div,
45
- {
46
- className: "h-4 w-4 rounded-full bg-[var(--primary)]",
47
- animate: { scale: [1, 1.08, 1] },
48
- transition: { repeat: Infinity, duration: 0.9, ease: "easeInOut" }
49
- }
50
- )
51
- ]
52
- }
53
- ),
54
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
55
- /* @__PURE__ */ jsx("div", { className: cx("truncate font-semibold tracking-tight", compact ? "text-base" : "text-lg"), children: title }),
56
- /* @__PURE__ */ jsx("div", { className: cx("mt-0.5 truncate text-[var(--muted)]", compact ? "text-xs" : "text-sm"), children: subtitle })
57
- ] })
58
- ] }),
59
- /* @__PURE__ */ jsx("div", { className: cx("mt-4 overflow-hidden rounded-full bg-[color-mix(in_oklab,var(--border)_65%,transparent)]", compact ? "h-1.5" : "h-2"), children: /* @__PURE__ */ jsx(
60
- motion.div,
61
- {
62
- className: cx("h-full rounded-full bg-[var(--primary)]", compact ? "w-1/3" : "w-2/5"),
63
- initial: { x: "-60%" },
64
- animate: { x: "160%" },
65
- transition: { repeat: Infinity, duration: 1.1, ease: "easeInOut" }
66
- }
67
- ) }),
68
- !compact ? /* @__PURE__ */ jsx(
69
- motion.div,
70
- {
71
- className: "mt-3 text-xs text-[var(--muted)]",
72
- initial: { opacity: 0 },
73
- animate: { opacity: 1 },
74
- transition: microTransition,
75
- children: "Esto normalmente toma menos de un segundo."
76
- }
77
- ) : null
22
+ /* @__PURE__ */ jsx(motion.span, { animate: { rotate: 360 }, "aria-hidden": true, className: "inline-flex", transition: { duration: 0.8, ease: "linear", repeat: Infinity }, children: /* @__PURE__ */ jsx(SpinnerGapIcon, { className: iconSize }) }),
23
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: subtitle || title })
78
24
  ]
79
25
  }
80
26
  );
package/dist/index.d.mts CHANGED
@@ -18,7 +18,7 @@ export { AnimatedBody, SortTh, default as Table, Td, Th } from './Table.mjs';
18
18
  export { default as DataTable, DataTableColumn, DataTableEditorArgs, DataTableSort } from './DataTable.mjs';
19
19
  export { default as DataTableCard, DataTableCardProps } from './DataTableCard.mjs';
20
20
  export { default as DataTableCardFooter, DataTableCardFooterProps } from './DataTableCardFooter.mjs';
21
- export { DataPageKpiTickerItem, DataPageKpiTickerRow, default as DataPageLayout, DataPageLayoutProps, DataPagePaginationProps } from './DataPageLayout.mjs';
21
+ export { default as DataLayout, DataPageKpiTickerItem, DataPageKpiTickerRow, default as DataPageLayout, DataPageLayoutProps, DataPagePaginationProps } from './DataPageLayout.mjs';
22
22
  export { default as TableRecordButton } from './TableRecordButton.mjs';
23
23
  export { default as Pagination, PaginationProps } from './Pagination.mjs';
24
24
  export { default as InfoGrid, InfoItem } from './InfoGrid.mjs';
@@ -100,6 +100,7 @@ export { DocumentBlock, DocumentModelV1, DocumentModelV2, createEmptyDocument, d
100
100
  export { default as WordEditor, WordEditorLabels, WordEditorProps, WordPreview } from './WordEditor.mjs';
101
101
  export { default as ThemeController, ThemeControllerProps } from './theme/ThemeController.mjs';
102
102
  export { default as FontSizeController, FontSizeControllerProps } from './theme/FontSizeController.mjs';
103
+ export { default as AccessibilityFab, AccessibilityFabLabels, AccessibilityFabProps } from './AccessibilityFab.mjs';
103
104
  export { default as Login, LoginMedia, LoginProps, LoginVariant } from './Login.mjs';
104
105
  export { LoginHelpItem, default as LoginTools, LoginToolsProps } from './LoginTools.mjs';
105
106
  export { default as Carousel, CarouselApi, CarouselProps, CarouselSlide, useCarousel } from './Carousel.mjs';
package/dist/index.d.ts CHANGED
@@ -18,7 +18,7 @@ export { AnimatedBody, SortTh, default as Table, Td, Th } from './Table.js';
18
18
  export { default as DataTable, DataTableColumn, DataTableEditorArgs, DataTableSort } from './DataTable.js';
19
19
  export { default as DataTableCard, DataTableCardProps } from './DataTableCard.js';
20
20
  export { default as DataTableCardFooter, DataTableCardFooterProps } from './DataTableCardFooter.js';
21
- export { DataPageKpiTickerItem, DataPageKpiTickerRow, default as DataPageLayout, DataPageLayoutProps, DataPagePaginationProps } from './DataPageLayout.js';
21
+ export { default as DataLayout, DataPageKpiTickerItem, DataPageKpiTickerRow, default as DataPageLayout, DataPageLayoutProps, DataPagePaginationProps } from './DataPageLayout.js';
22
22
  export { default as TableRecordButton } from './TableRecordButton.js';
23
23
  export { default as Pagination, PaginationProps } from './Pagination.js';
24
24
  export { default as InfoGrid, InfoItem } from './InfoGrid.js';
@@ -100,6 +100,7 @@ export { DocumentBlock, DocumentModelV1, DocumentModelV2, createEmptyDocument, d
100
100
  export { default as WordEditor, WordEditorLabels, WordEditorProps, WordPreview } from './WordEditor.js';
101
101
  export { default as ThemeController, ThemeControllerProps } from './theme/ThemeController.js';
102
102
  export { default as FontSizeController, FontSizeControllerProps } from './theme/FontSizeController.js';
103
+ export { default as AccessibilityFab, AccessibilityFabLabels, AccessibilityFabProps } from './AccessibilityFab.js';
103
104
  export { default as Login, LoginMedia, LoginProps, LoginVariant } from './Login.js';
104
105
  export { LoginHelpItem, default as LoginTools, LoginToolsProps } from './LoginTools.js';
105
106
  export { default as Carousel, CarouselApi, CarouselProps, CarouselSlide, useCarousel } from './Carousel.js';
package/dist/index.js CHANGED
@@ -29,6 +29,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
30
  var index_exports = {};
31
31
  __export(index_exports, {
32
+ AccessibilityFab: () => import_AccessibilityFab.default,
32
33
  ActionIconButton: () => import_ActionIconButton.default,
33
34
  AnimatedBody: () => import_Table.AnimatedBody,
34
35
  Animations: () => Animations,
@@ -57,6 +58,7 @@ __export(index_exports, {
57
58
  ColumnSelector: () => import_ColumnSelector.default,
58
59
  ComboSelect: () => import_ComboSelect.default,
59
60
  CtrHorizontalBar: () => import_AnalyticsCharts.CtrHorizontalBar,
61
+ DataLayout: () => import_DataPageLayout.default,
60
62
  DataPageKpiTickerRow: () => import_DataPageLayout.DataPageKpiTickerRow,
61
63
  DataPageLayout: () => import_DataPageLayout.default,
62
64
  DataTable: () => import_DataTable.default,
@@ -281,6 +283,7 @@ __reExport(index_exports, require("./document"), module.exports);
281
283
  var import_WordEditor = __toESM(require("./WordEditor"));
282
284
  var import_ThemeController = __toESM(require("./theme/ThemeController"));
283
285
  var import_FontSizeController = __toESM(require("./theme/FontSizeController"));
286
+ var import_AccessibilityFab = __toESM(require("./AccessibilityFab"));
284
287
  var import_Login = __toESM(require("./Login"));
285
288
  var import_LoginTools = __toESM(require("./LoginTools"));
286
289
  var import_Carousel = __toESM(require("./Carousel"));
@@ -288,6 +291,7 @@ var import_LoginCarousel = __toESM(require("./LoginCarousel"));
288
291
  var import_LoginGallery = __toESM(require("./LoginGallery"));
289
292
  // Annotate the CommonJS export names for ESM import in node:
290
293
  0 && (module.exports = {
294
+ AccessibilityFab,
291
295
  ActionIconButton,
292
296
  AnimatedBody,
293
297
  Animations,
@@ -316,6 +320,7 @@ var import_LoginGallery = __toESM(require("./LoginGallery"));
316
320
  ColumnSelector,
317
321
  ComboSelect,
318
322
  CtrHorizontalBar,
323
+ DataLayout,
319
324
  DataPageKpiTickerRow,
320
325
  DataPageLayout,
321
326
  DataTable,
package/dist/index.mjs CHANGED
@@ -21,80 +21,80 @@ import { default as default17, Th, SortTh, Td, AnimatedBody } from "./Table.mjs"
21
21
  import { default as default18 } from "./DataTable.mjs";
22
22
  import { default as default19 } from "./DataTableCard.mjs";
23
23
  import { default as default20 } from "./DataTableCardFooter.mjs";
24
- import { default as default21, DataPageKpiTickerRow } from "./DataPageLayout.mjs";
25
- import { default as default22 } from "./TableRecordButton.mjs";
26
- import { default as default23 } from "./Pagination.mjs";
27
- import { default as default24 } from "./InfoGrid.mjs";
28
- import { default as default25 } from "./ChartCard.mjs";
29
- import { default as default26 } from "./StatCard.mjs";
30
- import { default as default27 } from "./AssetTickerRow.mjs";
31
- import { default as default28 } from "./QuickActionsDock.mjs";
32
- import { default as default29 } from "./AssetPerformanceCard.mjs";
33
- import { default as default30 } from "./UploadCard.mjs";
24
+ import { default as default21, default as default22, DataPageKpiTickerRow } from "./DataPageLayout.mjs";
25
+ import { default as default23 } from "./TableRecordButton.mjs";
26
+ import { default as default24 } from "./Pagination.mjs";
27
+ import { default as default25 } from "./InfoGrid.mjs";
28
+ import { default as default26 } from "./ChartCard.mjs";
29
+ import { default as default27 } from "./StatCard.mjs";
30
+ import { default as default28 } from "./AssetTickerRow.mjs";
31
+ import { default as default29 } from "./QuickActionsDock.mjs";
32
+ import { default as default30 } from "./AssetPerformanceCard.mjs";
33
+ import { default as default31 } from "./UploadCard.mjs";
34
34
  import { TopImpresionesBar, CtrHorizontalBar, DestinoDonut } from "./AnalyticsCharts.mjs";
35
- import { default as default31 } from "./MediaCard.mjs";
36
- import { default as default32 } from "./MediaLibraryLayout.mjs";
37
- import { default as default33 } from "./MediaTile.mjs";
38
- import { default as default34 } from "./MediaSelector.mjs";
39
- import { default as default35 } from "./KpiCard.mjs";
40
- import { default as default36 } from "./Badge.mjs";
41
- import { default as default37 } from "./BadgeCluster.mjs";
42
- import { default as default38 } from "./Breadcrumb.mjs";
43
- import { default as default39 } from "./EmptyState.mjs";
44
- import { default as default40 } from "./Money.mjs";
45
- import { default as default41, formatCurrencyValue, formatNumericValue, formatPercentValue } from "./Numeric.mjs";
46
- import { default as default42 } from "./TimeAgo.mjs";
47
- import { default as default43 } from "./AvatarSquare.mjs";
48
- import { default as default44 } from "./AvatarGroup.mjs";
49
- import { default as default45 } from "./AppTopbar.mjs";
50
- import { default as default46 } from "./AuthTopbar.mjs";
51
- import { default as default47 } from "./OrderButton.mjs";
52
- import { default as default48 } from "./SearchInput.mjs";
53
- import { default as default49 } from "./PasswordField.mjs";
35
+ import { default as default32 } from "./MediaCard.mjs";
36
+ import { default as default33 } from "./MediaLibraryLayout.mjs";
37
+ import { default as default34 } from "./MediaTile.mjs";
38
+ import { default as default35 } from "./MediaSelector.mjs";
39
+ import { default as default36 } from "./KpiCard.mjs";
40
+ import { default as default37 } from "./Badge.mjs";
41
+ import { default as default38 } from "./BadgeCluster.mjs";
42
+ import { default as default39 } from "./Breadcrumb.mjs";
43
+ import { default as default40 } from "./EmptyState.mjs";
44
+ import { default as default41 } from "./Money.mjs";
45
+ import { default as default42, formatCurrencyValue, formatNumericValue, formatPercentValue } from "./Numeric.mjs";
46
+ import { default as default43 } from "./TimeAgo.mjs";
47
+ import { default as default44 } from "./AvatarSquare.mjs";
48
+ import { default as default45 } from "./AvatarGroup.mjs";
49
+ import { default as default46 } from "./AppTopbar.mjs";
50
+ import { default as default47 } from "./AuthTopbar.mjs";
51
+ import { default as default48 } from "./OrderButton.mjs";
52
+ import { default as default49 } from "./SearchInput.mjs";
53
+ import { default as default50 } from "./PasswordField.mjs";
54
54
  import { validatePassword, generatePassword } from "./PasswordField.mjs";
55
- import { default as default50 } from "./WorkflowDiagram.mjs";
56
- import { default as default51 } from "./LicenseStatus.mjs";
57
- import { default as default52 } from "./ReviewHistory.mjs";
55
+ import { default as default51 } from "./WorkflowDiagram.mjs";
56
+ import { default as default52 } from "./LicenseStatus.mjs";
57
+ import { default as default53 } from "./ReviewHistory.mjs";
58
58
  import { ReviewHistoryDialog } from "./ReviewHistory.mjs";
59
- import { default as default53 } from "./ChangeHistory.mjs";
60
- import { default as default54 } from "./Reviews.mjs";
61
- import { default as default55 } from "./ProductCatalog.mjs";
62
- import { default as default56 } from "./PromotionsCatalog.mjs";
63
- import { default as default57 } from "./MultiComboSelect.mjs";
64
- import { default as default58 } from "./Sidebar.mjs";
65
- import { default as default59 } from "./Card.mjs";
66
- import { default as default60 } from "./Drawer.mjs";
67
- import { default as default61 } from "./Tooltip.mjs";
68
- import { default as default62 } from "./NotificationsCenter.mjs";
69
- import { default as default63 } from "./ChatCenter.mjs";
70
- import { default as default64 } from "./ChatbotCenter.mjs";
71
- import { default as default65 } from "./SupportChatWidget.mjs";
72
- import { default as default66 } from "./Link.mjs";
59
+ import { default as default54 } from "./ChangeHistory.mjs";
60
+ import { default as default55 } from "./Reviews.mjs";
61
+ import { default as default56 } from "./ProductCatalog.mjs";
62
+ import { default as default57 } from "./PromotionsCatalog.mjs";
63
+ import { default as default58 } from "./MultiComboSelect.mjs";
64
+ import { default as default59 } from "./Sidebar.mjs";
65
+ import { default as default60 } from "./Card.mjs";
66
+ import { default as default61 } from "./Drawer.mjs";
67
+ import { default as default62 } from "./Tooltip.mjs";
68
+ import { default as default63 } from "./NotificationsCenter.mjs";
69
+ import { default as default64 } from "./ChatCenter.mjs";
70
+ import { default as default65 } from "./ChatbotCenter.mjs";
71
+ import { default as default66 } from "./SupportChatWidget.mjs";
72
+ import { default as default67 } from "./Link.mjs";
73
73
  import { ToastProvider, useToast } from "./Toast.mjs";
74
- import { default as default67 } from "./StorageUsage.mjs";
75
- import { default as default68 } from "./FileButton.mjs";
76
- import { default as default69 } from "./SegmentedTabs.mjs";
77
- import { default as default70 } from "./OmniSearch.mjs";
74
+ import { default as default68 } from "./StorageUsage.mjs";
75
+ import { default as default69 } from "./FileButton.mjs";
76
+ import { default as default70 } from "./SegmentedTabs.mjs";
77
+ import { default as default71 } from "./OmniSearch.mjs";
78
78
  import { OmniSearchRegistryProvider, useOmniSearchRegistry, useRegisterOmniSearchItems } from "./OmniSearch.mjs";
79
- import { default as default71 } from "./LiveCursors.mjs";
79
+ import { default as default72 } from "./LiveCursors.mjs";
80
80
  import * as Animations from "./animations.mjs";
81
- import { default as default72 } from "./MotionProvider.mjs";
82
- import { default as default73 } from "./LanguageSwitcher.mjs";
83
- import { default as default74 } from "./ImpersonationSwitcher.mjs";
84
- import { default as default75 } from "./ImpersonationDialog.mjs";
85
- import { default as default76 } from "./Tour.mjs";
86
- import { default as default77 } from "./QrCode.mjs";
87
- import { default as default78 } from "./ShareAccess.mjs";
88
- import { default as default79 } from "./KnowledgeBase.mjs";
89
- import { default as default80 } from "./CalendarPanel.mjs";
90
- import { default as default81 } from "./TimePopover.mjs";
81
+ import { default as default73 } from "./MotionProvider.mjs";
82
+ import { default as default74 } from "./LanguageSwitcher.mjs";
83
+ import { default as default75 } from "./ImpersonationSwitcher.mjs";
84
+ import { default as default76 } from "./ImpersonationDialog.mjs";
85
+ import { default as default77 } from "./Tour.mjs";
86
+ import { default as default78 } from "./QrCode.mjs";
87
+ import { default as default79 } from "./ShareAccess.mjs";
88
+ import { default as default80 } from "./KnowledgeBase.mjs";
89
+ import { default as default81 } from "./CalendarPanel.mjs";
90
+ import { default as default82 } from "./TimePopover.mjs";
91
91
  import { WeekPopover, MonthPopover } from "./TimePopover.mjs";
92
- import { default as default82 } from "./TimePanel.mjs";
93
- import { default as default83 } from "./TimeRangeField.mjs";
94
- import { default as default84 } from "./Steps.mjs";
92
+ import { default as default83 } from "./TimePanel.mjs";
93
+ import { default as default84 } from "./TimeRangeField.mjs";
94
+ import { default as default85 } from "./Steps.mjs";
95
95
  import { StepsNav } from "./Steps.mjs";
96
- import { default as default85 } from "./PageTransition.mjs";
97
- import { default as default86 } from "./HeliipLoader.mjs";
96
+ import { default as default86 } from "./PageTransition.mjs";
97
+ import { default as default87 } from "./HeliipLoader.mjs";
98
98
  import {
99
99
  BookOpenIcon,
100
100
  CoinsIcon,
@@ -108,151 +108,154 @@ import {
108
108
  WrenchIcon
109
109
  } from "./iconos/index.mjs";
110
110
  export * from "./iconos/index.mjs";
111
- import { default as default87 } from "./ColorPicker.mjs";
112
- import { default as default88, useTheme } from "./theme/ThemeProvider.mjs";
113
- import { default as default89 } from "./theme/ThemeScript.mjs";
114
- import { default as default90 } from "./theme/ThemeToggle.mjs";
115
- import { default as default91 } from "./MarkdownEditor.mjs";
116
- import { default as default92 } from "./QuoteEditor.mjs";
111
+ import { default as default88 } from "./ColorPicker.mjs";
112
+ import { default as default89, useTheme } from "./theme/ThemeProvider.mjs";
113
+ import { default as default90 } from "./theme/ThemeScript.mjs";
114
+ import { default as default91 } from "./theme/ThemeToggle.mjs";
115
+ import { default as default92 } from "./MarkdownEditor.mjs";
116
+ import { default as default93 } from "./QuoteEditor.mjs";
117
117
  export * from "./quote.mjs";
118
- import { default as default93, DocumentPreview } from "./DocumentEditor.mjs";
118
+ import { default as default94, DocumentPreview } from "./DocumentEditor.mjs";
119
119
  export * from "./document.mjs";
120
- import { default as default94, WordPreview } from "./WordEditor.mjs";
121
- import { default as default95 } from "./theme/ThemeController.mjs";
122
- import { default as default96 } from "./theme/FontSizeController.mjs";
123
- import { default as default97 } from "./Login.mjs";
124
- import { default as default98 } from "./LoginTools.mjs";
125
- import { default as default99, useCarousel } from "./Carousel.mjs";
126
- import { default as default100 } from "./LoginCarousel.mjs";
127
- import { default as default101 } from "./LoginGallery.mjs";
120
+ import { default as default95, WordPreview } from "./WordEditor.mjs";
121
+ import { default as default96 } from "./theme/ThemeController.mjs";
122
+ import { default as default97 } from "./theme/FontSizeController.mjs";
123
+ import { default as default98 } from "./AccessibilityFab.mjs";
124
+ import { default as default99 } from "./Login.mjs";
125
+ import { default as default100 } from "./LoginTools.mjs";
126
+ import { default as default101, useCarousel } from "./Carousel.mjs";
127
+ import { default as default102 } from "./LoginCarousel.mjs";
128
+ import { default as default103 } from "./LoginGallery.mjs";
128
129
  export {
130
+ default98 as AccessibilityFab,
129
131
  default3 as ActionIconButton,
130
132
  AnimatedBody,
131
133
  Animations,
132
- default45 as AppTopbar,
133
- default29 as AssetPerformanceCard,
134
- default27 as AssetTickerRow,
135
- default46 as AuthTopbar,
136
- default44 as AvatarGroup,
137
- default43 as AvatarSquare,
138
- default36 as Badge,
139
- default37 as BadgeCluster,
134
+ default46 as AppTopbar,
135
+ default30 as AssetPerformanceCard,
136
+ default28 as AssetTickerRow,
137
+ default47 as AuthTopbar,
138
+ default45 as AvatarGroup,
139
+ default44 as AvatarSquare,
140
+ default37 as Badge,
141
+ default38 as BadgeCluster,
140
142
  BookOpenIcon,
141
- default38 as Breadcrumb,
143
+ default39 as Breadcrumb,
142
144
  default2 as Button,
143
- default80 as CalendarPanel,
144
- default59 as Card,
145
- default99 as Carousel,
146
- default53 as ChangeHistory,
147
- default25 as ChartCard,
148
- default63 as ChatCenter,
149
- default64 as ChatbotCenter,
145
+ default81 as CalendarPanel,
146
+ default60 as Card,
147
+ default101 as Carousel,
148
+ default54 as ChangeHistory,
149
+ default26 as ChartCard,
150
+ default64 as ChatCenter,
151
+ default65 as ChatbotCenter,
150
152
  default7 as Checkbox,
151
153
  default8 as CheckboxPillsGroup,
152
154
  CoinsIcon,
153
- default87 as ColorPicker,
155
+ default88 as ColorPicker,
154
156
  default13 as ColumnSelector,
155
157
  default12 as ComboSelect,
156
158
  CtrHorizontalBar,
159
+ default21 as DataLayout,
157
160
  DataPageKpiTickerRow,
158
- default21 as DataPageLayout,
161
+ default22 as DataPageLayout,
159
162
  default18 as DataTable,
160
163
  default19 as DataTableCard,
161
164
  default20 as DataTableCardFooter,
162
165
  default14 as DateTimeField,
163
166
  DestinoDonut,
164
167
  default15 as Dialog,
165
- default93 as DocumentEditor,
168
+ default94 as DocumentEditor,
166
169
  DocumentPreview,
167
- default60 as Drawer,
170
+ default61 as Drawer,
168
171
  default16 as Dropdown,
169
- default39 as EmptyState,
172
+ default40 as EmptyState,
170
173
  EnvelopeSimpleIcon,
171
- default68 as FileButton,
174
+ default69 as FileButton,
172
175
  FileTextIcon,
173
176
  default9 as FiltersMultiSelect,
174
- default96 as FontSizeController,
177
+ default97 as FontSizeController,
175
178
  FunnelSimpleIcon,
176
179
  GraduationCapIcon,
177
- default86 as HeliipLoader,
180
+ default87 as HeliipLoader,
178
181
  I18nProvider,
179
- default75 as ImpersonationDialog,
180
- default74 as ImpersonationSwitcher,
181
- default24 as InfoGrid,
182
+ default76 as ImpersonationDialog,
183
+ default75 as ImpersonationSwitcher,
184
+ default25 as InfoGrid,
182
185
  default5 as Input,
183
186
  KanbanIcon,
184
- default79 as KnowledgeBase,
185
- default35 as KpiCard,
186
- default73 as LanguageSwitcher,
187
- default51 as LicenseStatus,
188
- default66 as Link,
189
- default71 as LiveCursors,
190
- default97 as Login,
191
- default100 as LoginCarousel,
192
- default101 as LoginGallery,
193
- default98 as LoginTools,
187
+ default80 as KnowledgeBase,
188
+ default36 as KpiCard,
189
+ default74 as LanguageSwitcher,
190
+ default52 as LicenseStatus,
191
+ default67 as Link,
192
+ default72 as LiveCursors,
193
+ default99 as Login,
194
+ default102 as LoginCarousel,
195
+ default103 as LoginGallery,
196
+ default100 as LoginTools,
194
197
  default4 as Map,
195
- default91 as MarkdownEditor,
196
- default31 as MediaCard,
197
- default32 as MediaLibraryLayout,
198
- default34 as MediaSelector,
199
- default33 as MediaTile,
200
- default40 as Money,
198
+ default92 as MarkdownEditor,
199
+ default32 as MediaCard,
200
+ default33 as MediaLibraryLayout,
201
+ default35 as MediaSelector,
202
+ default34 as MediaTile,
203
+ default41 as Money,
201
204
  MonitorIcon,
202
205
  MonthPopover,
203
- default72 as MotionProvider,
204
- default57 as MultiComboSelect,
205
- default62 as NotificationsCenter,
206
- default41 as Numeric,
207
- default70 as OmniSearch,
206
+ default73 as MotionProvider,
207
+ default58 as MultiComboSelect,
208
+ default63 as NotificationsCenter,
209
+ default42 as Numeric,
210
+ default71 as OmniSearch,
208
211
  OmniSearchRegistryProvider,
209
- default47 as OrderButton,
212
+ default48 as OrderButton,
210
213
  default10 as PageScaffold,
211
- default85 as PageTransition,
212
- default23 as Pagination,
213
- default49 as PasswordField,
214
- default55 as ProductCatalog,
215
- default56 as PromotionsCatalog,
216
- default77 as QrCode,
217
- default28 as QuickActionsDock,
218
- default92 as QuoteEditor,
219
- default52 as ReviewHistory,
214
+ default86 as PageTransition,
215
+ default24 as Pagination,
216
+ default50 as PasswordField,
217
+ default56 as ProductCatalog,
218
+ default57 as PromotionsCatalog,
219
+ default78 as QrCode,
220
+ default29 as QuickActionsDock,
221
+ default93 as QuoteEditor,
222
+ default53 as ReviewHistory,
220
223
  ReviewHistoryDialog,
221
- default54 as Reviews,
222
- default48 as SearchInput,
223
- default69 as SegmentedTabs,
224
+ default55 as Reviews,
225
+ default49 as SearchInput,
226
+ default70 as SegmentedTabs,
224
227
  default11 as Select,
225
- default78 as ShareAccess,
226
- default58 as Sidebar,
228
+ default79 as ShareAccess,
229
+ default59 as Sidebar,
227
230
  SortTh,
228
- default26 as StatCard,
229
- default84 as Steps,
231
+ default27 as StatCard,
232
+ default85 as Steps,
230
233
  StepsNav,
231
- default67 as StorageUsage,
234
+ default68 as StorageUsage,
232
235
  SuitcaseIcon,
233
- default65 as SupportChatWidget,
236
+ default66 as SupportChatWidget,
234
237
  default17 as Table,
235
- default22 as TableRecordButton,
238
+ default23 as TableRecordButton,
236
239
  Td,
237
240
  default6 as Textarea,
238
241
  Th,
239
- default95 as ThemeController,
240
- default88 as ThemeProvider,
241
- default89 as ThemeScript,
242
- default90 as ThemeToggle,
243
- default42 as TimeAgo,
244
- default82 as TimePanel,
245
- default81 as TimePopover,
246
- default83 as TimeRangeField,
242
+ default96 as ThemeController,
243
+ default89 as ThemeProvider,
244
+ default90 as ThemeScript,
245
+ default91 as ThemeToggle,
246
+ default43 as TimeAgo,
247
+ default83 as TimePanel,
248
+ default82 as TimePopover,
249
+ default84 as TimeRangeField,
247
250
  ToastProvider,
248
- default61 as Tooltip,
251
+ default62 as Tooltip,
249
252
  TopImpresionesBar,
250
- default76 as Tour,
251
- default30 as UploadCard,
253
+ default77 as Tour,
254
+ default31 as UploadCard,
252
255
  WeekPopover,
253
- default94 as WordEditor,
256
+ default95 as WordEditor,
254
257
  WordPreview,
255
- default50 as WorkflowDiagram,
258
+ default51 as WorkflowDiagram,
256
259
  WrenchIcon,
257
260
  formatCurrencyValue,
258
261
  formatNumericValue,
package/dist/theme.css CHANGED
@@ -1,4 +1,4 @@
1
- @source "./dist/**/*.{js,mjs,jsx,ts,tsx}";
1
+ @source "./**/*.{js,mjs,jsx,ts,tsx}";
2
2
  @custom-variant dark (&:where(.dark, .dark *));
3
3
 
4
4
  @layer base {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "framepexls-ui-lib",
3
- "version": "2.2.1",
3
+ "version": "2.2.3",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "Componentes UI de Framepexls para React/Next.",
@@ -27,7 +27,9 @@
27
27
  "README.md",
28
28
  "LICENSE"
29
29
  ],
30
- "sideEffects": false,
30
+ "sideEffects": [
31
+ "**/*.css"
32
+ ],
31
33
  "engines": {
32
34
  "node": ">=18"
33
35
  },