framepexls-ui-lib 2.2.8 → 2.2.11
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/AvatarSquare.d.mts +4 -1
- package/dist/AvatarSquare.d.ts +4 -1
- package/dist/AvatarSquare.js +7 -1
- package/dist/AvatarSquare.mjs +7 -1
- package/dist/Checkbox.d.mts +1 -1
- package/dist/Checkbox.d.ts +1 -1
- package/dist/Checkbox.js +2 -2
- package/dist/Checkbox.mjs +2 -2
- package/dist/DateTimeField.js +1 -1
- package/dist/DateTimeField.mjs +1 -1
- package/dist/HeliipLoader.js +77 -5
- package/dist/HeliipLoader.mjs +77 -5
- package/dist/MarkdownEditor.d.mts +71 -3
- package/dist/MarkdownEditor.d.ts +71 -3
- package/dist/MarkdownEditor.js +2370 -65
- package/dist/MarkdownEditor.mjs +2388 -66
- package/dist/MediaSelector.d.mts +4 -1
- package/dist/MediaSelector.d.ts +4 -1
- package/dist/MediaSelector.js +134 -23
- package/dist/MediaSelector.mjs +135 -24
- package/dist/Sidebar.d.mts +2 -1
- package/dist/Sidebar.d.ts +2 -1
- package/dist/Sidebar.js +82 -19
- package/dist/Sidebar.mjs +82 -19
- package/dist/SupportChatWidget.js +88 -42
- package/dist/SupportChatWidget.mjs +89 -42
- package/dist/UploadCard.js +7 -7
- package/dist/UploadCard.mjs +7 -7
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -0
- package/dist/index.mjs +3 -1
- package/dist/theme.css +47 -0
- package/package.json +8 -8
package/dist/AvatarSquare.d.mts
CHANGED
|
@@ -6,10 +6,13 @@ type Props = {
|
|
|
6
6
|
alt?: string;
|
|
7
7
|
initials?: string | null;
|
|
8
8
|
imageFit?: "cover" | "contain";
|
|
9
|
+
imageFetchPriority?: "auto" | "high" | "low";
|
|
10
|
+
imageLoading?: "eager" | "lazy";
|
|
11
|
+
imagePreload?: boolean;
|
|
9
12
|
className?: string;
|
|
10
13
|
radiusClass?: string;
|
|
11
14
|
color?: "accent" | "slate" | "gray" | "zinc" | "neutral" | "stone" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose";
|
|
12
15
|
};
|
|
13
|
-
declare function AvatarSquare({ size, src, alt, initials, imageFit, className, radiusClass, color, }: Props): React__default.JSX.Element;
|
|
16
|
+
declare function AvatarSquare({ size, src, alt, initials, imageFit, imageFetchPriority, imageLoading, imagePreload, className, radiusClass, color, }: Props): React__default.JSX.Element;
|
|
14
17
|
|
|
15
18
|
export { AvatarSquare as default };
|
package/dist/AvatarSquare.d.ts
CHANGED
|
@@ -6,10 +6,13 @@ type Props = {
|
|
|
6
6
|
alt?: string;
|
|
7
7
|
initials?: string | null;
|
|
8
8
|
imageFit?: "cover" | "contain";
|
|
9
|
+
imageFetchPriority?: "auto" | "high" | "low";
|
|
10
|
+
imageLoading?: "eager" | "lazy";
|
|
11
|
+
imagePreload?: boolean;
|
|
9
12
|
className?: string;
|
|
10
13
|
radiusClass?: string;
|
|
11
14
|
color?: "accent" | "slate" | "gray" | "zinc" | "neutral" | "stone" | "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose";
|
|
12
15
|
};
|
|
13
|
-
declare function AvatarSquare({ size, src, alt, initials, imageFit, className, radiusClass, color, }: Props): React__default.JSX.Element;
|
|
16
|
+
declare function AvatarSquare({ size, src, alt, initials, imageFit, imageFetchPriority, imageLoading, imagePreload, className, radiusClass, color, }: Props): React__default.JSX.Element;
|
|
14
17
|
|
|
15
18
|
export { AvatarSquare as default };
|
package/dist/AvatarSquare.js
CHANGED
|
@@ -42,12 +42,16 @@ function AvatarSquare({
|
|
|
42
42
|
alt = "",
|
|
43
43
|
initials = null,
|
|
44
44
|
imageFit = "cover",
|
|
45
|
+
imageFetchPriority,
|
|
46
|
+
imageLoading = "lazy",
|
|
47
|
+
imagePreload = false,
|
|
45
48
|
className = "",
|
|
46
49
|
radiusClass = "rounded-xl",
|
|
47
50
|
color = "accent"
|
|
48
51
|
}) {
|
|
49
52
|
const [error, setError] = import_react.default.useState(false);
|
|
50
53
|
const showImg = !!src && !error;
|
|
54
|
+
const resolvedImageLoading = imagePreload && imageLoading === "lazy" ? "eager" : imageLoading;
|
|
51
55
|
const boxStyle = { width: size, height: size };
|
|
52
56
|
const RING = {
|
|
53
57
|
accent: "ring-[color-mix(in_oklab,var(--ring)_30%,transparent)] dark:ring-[color-mix(in_oklab,var(--ring)_22%,transparent)]",
|
|
@@ -118,7 +122,9 @@ function AvatarSquare({
|
|
|
118
122
|
fill: true,
|
|
119
123
|
className: imageFit === "contain" ? "object-contain" : "object-cover",
|
|
120
124
|
sizes: `${size}px`,
|
|
121
|
-
|
|
125
|
+
fetchPriority: imageFetchPriority,
|
|
126
|
+
loading: resolvedImageLoading,
|
|
127
|
+
preload: imagePreload,
|
|
122
128
|
onError: () => setError(true),
|
|
123
129
|
draggable: false
|
|
124
130
|
}
|
package/dist/AvatarSquare.mjs
CHANGED
|
@@ -9,12 +9,16 @@ function AvatarSquare({
|
|
|
9
9
|
alt = "",
|
|
10
10
|
initials = null,
|
|
11
11
|
imageFit = "cover",
|
|
12
|
+
imageFetchPriority,
|
|
13
|
+
imageLoading = "lazy",
|
|
14
|
+
imagePreload = false,
|
|
12
15
|
className = "",
|
|
13
16
|
radiusClass = "rounded-xl",
|
|
14
17
|
color = "accent"
|
|
15
18
|
}) {
|
|
16
19
|
const [error, setError] = React.useState(false);
|
|
17
20
|
const showImg = !!src && !error;
|
|
21
|
+
const resolvedImageLoading = imagePreload && imageLoading === "lazy" ? "eager" : imageLoading;
|
|
18
22
|
const boxStyle = { width: size, height: size };
|
|
19
23
|
const RING = {
|
|
20
24
|
accent: "ring-[color-mix(in_oklab,var(--ring)_30%,transparent)] dark:ring-[color-mix(in_oklab,var(--ring)_22%,transparent)]",
|
|
@@ -85,7 +89,9 @@ function AvatarSquare({
|
|
|
85
89
|
fill: true,
|
|
86
90
|
className: imageFit === "contain" ? "object-contain" : "object-cover",
|
|
87
91
|
sizes: `${size}px`,
|
|
88
|
-
|
|
92
|
+
fetchPriority: imageFetchPriority,
|
|
93
|
+
loading: resolvedImageLoading,
|
|
94
|
+
preload: imagePreload,
|
|
89
95
|
onError: () => setError(true),
|
|
90
96
|
draggable: false
|
|
91
97
|
}
|
package/dist/Checkbox.d.mts
CHANGED
|
@@ -11,7 +11,7 @@ type CheckboxProps = Omit<React__default.InputHTMLAttributes<HTMLInputElement>,
|
|
|
11
11
|
className?: string;
|
|
12
12
|
inputClassName?: string;
|
|
13
13
|
};
|
|
14
|
-
declare const Checkbox: React__default.ForwardRefExoticComponent<Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "
|
|
14
|
+
declare const Checkbox: React__default.ForwardRefExoticComponent<Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "type" | "size"> & {
|
|
15
15
|
label?: React__default.ReactNode;
|
|
16
16
|
description?: React__default.ReactNode;
|
|
17
17
|
error?: boolean;
|
package/dist/Checkbox.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ type CheckboxProps = Omit<React__default.InputHTMLAttributes<HTMLInputElement>,
|
|
|
11
11
|
className?: string;
|
|
12
12
|
inputClassName?: string;
|
|
13
13
|
};
|
|
14
|
-
declare const Checkbox: React__default.ForwardRefExoticComponent<Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "
|
|
14
|
+
declare const Checkbox: React__default.ForwardRefExoticComponent<Omit<React__default.InputHTMLAttributes<HTMLInputElement>, "type" | "size"> & {
|
|
15
15
|
label?: React__default.ReactNode;
|
|
16
16
|
description?: React__default.ReactNode;
|
|
17
17
|
error?: boolean;
|
package/dist/Checkbox.js
CHANGED
|
@@ -39,7 +39,7 @@ var import_Input = __toESM(require("./Input"));
|
|
|
39
39
|
function cx(...a) {
|
|
40
40
|
return a.filter(Boolean).join(" ");
|
|
41
41
|
}
|
|
42
|
-
const baseInput = "appearance-none grid place-items-center rounded border border-slate-300 bg-white shadow-sm outline-none
|
|
42
|
+
const baseInput = "appearance-none grid place-items-center rounded border border-slate-300 bg-white shadow-sm outline-none transition-colors checked:border-[var(--primary)] checked:bg-[var(--primary)] checked:shadow-none disabled:cursor-not-allowed disabled:opacity-60 dark:border-white/10 dark:bg-[var(--fx-surface)]";
|
|
43
43
|
const sizeMap = {
|
|
44
44
|
sm: "h-4 w-4",
|
|
45
45
|
md: "h-5 w-5",
|
|
@@ -101,7 +101,7 @@ const Checkbox = import_react.default.forwardRef(
|
|
|
101
101
|
className: cx(
|
|
102
102
|
baseInput,
|
|
103
103
|
sizeMap[size],
|
|
104
|
-
(error || tone === "danger") && "border-[color-mix(in_oklab,var(--danger)_40%,transparent)]
|
|
104
|
+
(error || tone === "danger") && "border-[color-mix(in_oklab,var(--danger)_40%,transparent)] checked:border-[var(--danger)] checked:bg-[var(--danger)]",
|
|
105
105
|
inputClassName
|
|
106
106
|
),
|
|
107
107
|
onChange: (e) => {
|
package/dist/Checkbox.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import Input from "./Input.mjs";
|
|
|
6
6
|
function cx(...a) {
|
|
7
7
|
return a.filter(Boolean).join(" ");
|
|
8
8
|
}
|
|
9
|
-
const baseInput = "appearance-none grid place-items-center rounded border border-slate-300 bg-white shadow-sm outline-none
|
|
9
|
+
const baseInput = "appearance-none grid place-items-center rounded border border-slate-300 bg-white shadow-sm outline-none transition-colors checked:border-[var(--primary)] checked:bg-[var(--primary)] checked:shadow-none disabled:cursor-not-allowed disabled:opacity-60 dark:border-white/10 dark:bg-[var(--fx-surface)]";
|
|
10
10
|
const sizeMap = {
|
|
11
11
|
sm: "h-4 w-4",
|
|
12
12
|
md: "h-5 w-5",
|
|
@@ -68,7 +68,7 @@ const Checkbox = React.forwardRef(
|
|
|
68
68
|
className: cx(
|
|
69
69
|
baseInput,
|
|
70
70
|
sizeMap[size],
|
|
71
|
-
(error || tone === "danger") && "border-[color-mix(in_oklab,var(--danger)_40%,transparent)]
|
|
71
|
+
(error || tone === "danger") && "border-[color-mix(in_oklab,var(--danger)_40%,transparent)] checked:border-[var(--danger)] checked:bg-[var(--danger)]",
|
|
72
72
|
inputClassName
|
|
73
73
|
),
|
|
74
74
|
onChange: (e) => {
|
package/dist/DateTimeField.js
CHANGED
|
@@ -391,7 +391,7 @@ function DateTimeField({
|
|
|
391
391
|
{
|
|
392
392
|
unstyled: true,
|
|
393
393
|
type: "button",
|
|
394
|
-
className: "pointer-events-auto inline-flex h-7 w-7 items-center justify-center rounded-lg border border-
|
|
394
|
+
className: "pointer-events-auto inline-flex h-7 w-7 items-center justify-center rounded-lg border border-[var(--border)] bg-[var(--card)] text-[var(--muted)] transition hover:border-[color-mix(in_oklab,var(--primary)_36%,var(--border))] hover:bg-[color-mix(in_oklab,var(--primary)_8%,var(--card))] hover:text-[var(--foreground)] focus:outline-none focus-visible:ring-1 focus-visible:ring-[var(--primary)] active:scale-95",
|
|
395
395
|
onClick: (e) => {
|
|
396
396
|
e.preventDefault();
|
|
397
397
|
openPopover();
|
package/dist/DateTimeField.mjs
CHANGED
|
@@ -358,7 +358,7 @@ function DateTimeField({
|
|
|
358
358
|
{
|
|
359
359
|
unstyled: true,
|
|
360
360
|
type: "button",
|
|
361
|
-
className: "pointer-events-auto inline-flex h-7 w-7 items-center justify-center rounded-lg border border-
|
|
361
|
+
className: "pointer-events-auto inline-flex h-7 w-7 items-center justify-center rounded-lg border border-[var(--border)] bg-[var(--card)] text-[var(--muted)] transition hover:border-[color-mix(in_oklab,var(--primary)_36%,var(--border))] hover:bg-[color-mix(in_oklab,var(--primary)_8%,var(--card))] hover:text-[var(--foreground)] focus:outline-none focus-visible:ring-1 focus-visible:ring-[var(--primary)] active:scale-95",
|
|
362
362
|
onClick: (e) => {
|
|
363
363
|
e.preventDefault();
|
|
364
364
|
openPopover();
|
package/dist/HeliipLoader.js
CHANGED
|
@@ -23,18 +23,89 @@ __export(HeliipLoader_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(HeliipLoader_exports);
|
|
25
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
|
-
var import_framer_motion = require("framer-motion");
|
|
27
|
-
var import_iconos = require("./iconos");
|
|
28
26
|
const cx = (...a) => a.filter(Boolean).join(" ");
|
|
27
|
+
const loaderStyles = `
|
|
28
|
+
@keyframes fx-loader-multi-shadow-spin {
|
|
29
|
+
0% {
|
|
30
|
+
box-shadow:
|
|
31
|
+
0 -0.83em 0 -0.4em,
|
|
32
|
+
0 -0.83em 0 -0.42em,
|
|
33
|
+
0 -0.83em 0 -0.44em,
|
|
34
|
+
0 -0.83em 0 -0.46em,
|
|
35
|
+
0 -0.83em 0 -0.477em;
|
|
36
|
+
}
|
|
37
|
+
5%,
|
|
38
|
+
95% {
|
|
39
|
+
box-shadow:
|
|
40
|
+
0 -0.83em 0 -0.4em,
|
|
41
|
+
0 -0.83em 0 -0.42em,
|
|
42
|
+
0 -0.83em 0 -0.44em,
|
|
43
|
+
0 -0.83em 0 -0.46em,
|
|
44
|
+
0 -0.83em 0 -0.477em;
|
|
45
|
+
}
|
|
46
|
+
10%,
|
|
47
|
+
59% {
|
|
48
|
+
box-shadow:
|
|
49
|
+
0 -0.83em 0 -0.4em,
|
|
50
|
+
-0.087em -0.825em 0 -0.42em,
|
|
51
|
+
-0.173em -0.812em 0 -0.44em,
|
|
52
|
+
-0.256em -0.789em 0 -0.46em,
|
|
53
|
+
-0.297em -0.775em 0 -0.477em;
|
|
54
|
+
}
|
|
55
|
+
20% {
|
|
56
|
+
box-shadow:
|
|
57
|
+
0 -0.83em 0 -0.4em,
|
|
58
|
+
-0.338em -0.758em 0 -0.42em,
|
|
59
|
+
-0.555em -0.617em 0 -0.44em,
|
|
60
|
+
-0.671em -0.488em 0 -0.46em,
|
|
61
|
+
-0.749em -0.34em 0 -0.477em;
|
|
62
|
+
}
|
|
63
|
+
38% {
|
|
64
|
+
box-shadow:
|
|
65
|
+
0 -0.83em 0 -0.4em,
|
|
66
|
+
-0.377em -0.74em 0 -0.42em,
|
|
67
|
+
-0.645em -0.522em 0 -0.44em,
|
|
68
|
+
-0.775em -0.297em 0 -0.46em,
|
|
69
|
+
-0.82em -0.09em 0 -0.477em;
|
|
70
|
+
}
|
|
71
|
+
100% {
|
|
72
|
+
box-shadow:
|
|
73
|
+
0 -0.83em 0 -0.4em,
|
|
74
|
+
0 -0.83em 0 -0.42em,
|
|
75
|
+
0 -0.83em 0 -0.44em,
|
|
76
|
+
0 -0.83em 0 -0.46em,
|
|
77
|
+
0 -0.83em 0 -0.477em;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@keyframes fx-loader-round {
|
|
82
|
+
0% { transform: rotate(0deg); }
|
|
83
|
+
100% { transform: rotate(360deg); }
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.fx-loader-multi-shadow {
|
|
87
|
+
width: 1em;
|
|
88
|
+
height: 1em;
|
|
89
|
+
overflow: hidden;
|
|
90
|
+
border-radius: 50%;
|
|
91
|
+
color: currentColor;
|
|
92
|
+
position: relative;
|
|
93
|
+
text-indent: -9999em;
|
|
94
|
+
transform: translateZ(0);
|
|
95
|
+
animation:
|
|
96
|
+
fx-loader-multi-shadow-spin 1.7s infinite ease,
|
|
97
|
+
fx-loader-round 1.7s infinite ease;
|
|
98
|
+
}
|
|
99
|
+
`;
|
|
29
100
|
function HeliipLoader({
|
|
30
101
|
title = "Heliip",
|
|
31
|
-
subtitle = "Cargando
|
|
102
|
+
subtitle = "Cargando...",
|
|
32
103
|
className,
|
|
33
104
|
compact = false,
|
|
34
105
|
size
|
|
35
106
|
}) {
|
|
36
107
|
const resolvedSize = size != null ? size : compact ? "sm" : "md";
|
|
37
|
-
const
|
|
108
|
+
const loaderSize = resolvedSize === "lg" ? "text-[45px]" : resolvedSize === "sm" ? "text-[22px]" : "text-[32px]";
|
|
38
109
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
39
110
|
"div",
|
|
40
111
|
{
|
|
@@ -42,7 +113,8 @@ function HeliipLoader({
|
|
|
42
113
|
className: cx("inline-flex items-center justify-center text-[var(--primary)]", className),
|
|
43
114
|
role: "status",
|
|
44
115
|
children: [
|
|
45
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
116
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("style", { dangerouslySetInnerHTML: { __html: loaderStyles } }),
|
|
117
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": true, className: cx("fx-loader-multi-shadow", loaderSize) }),
|
|
46
118
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "sr-only", children: subtitle || title })
|
|
47
119
|
]
|
|
48
120
|
}
|
package/dist/HeliipLoader.mjs
CHANGED
|
@@ -1,17 +1,88 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { motion } from "framer-motion";
|
|
4
|
-
import { SpinnerGapIcon } from "./iconos/index.mjs";
|
|
5
3
|
const cx = (...a) => a.filter(Boolean).join(" ");
|
|
4
|
+
const loaderStyles = `
|
|
5
|
+
@keyframes fx-loader-multi-shadow-spin {
|
|
6
|
+
0% {
|
|
7
|
+
box-shadow:
|
|
8
|
+
0 -0.83em 0 -0.4em,
|
|
9
|
+
0 -0.83em 0 -0.42em,
|
|
10
|
+
0 -0.83em 0 -0.44em,
|
|
11
|
+
0 -0.83em 0 -0.46em,
|
|
12
|
+
0 -0.83em 0 -0.477em;
|
|
13
|
+
}
|
|
14
|
+
5%,
|
|
15
|
+
95% {
|
|
16
|
+
box-shadow:
|
|
17
|
+
0 -0.83em 0 -0.4em,
|
|
18
|
+
0 -0.83em 0 -0.42em,
|
|
19
|
+
0 -0.83em 0 -0.44em,
|
|
20
|
+
0 -0.83em 0 -0.46em,
|
|
21
|
+
0 -0.83em 0 -0.477em;
|
|
22
|
+
}
|
|
23
|
+
10%,
|
|
24
|
+
59% {
|
|
25
|
+
box-shadow:
|
|
26
|
+
0 -0.83em 0 -0.4em,
|
|
27
|
+
-0.087em -0.825em 0 -0.42em,
|
|
28
|
+
-0.173em -0.812em 0 -0.44em,
|
|
29
|
+
-0.256em -0.789em 0 -0.46em,
|
|
30
|
+
-0.297em -0.775em 0 -0.477em;
|
|
31
|
+
}
|
|
32
|
+
20% {
|
|
33
|
+
box-shadow:
|
|
34
|
+
0 -0.83em 0 -0.4em,
|
|
35
|
+
-0.338em -0.758em 0 -0.42em,
|
|
36
|
+
-0.555em -0.617em 0 -0.44em,
|
|
37
|
+
-0.671em -0.488em 0 -0.46em,
|
|
38
|
+
-0.749em -0.34em 0 -0.477em;
|
|
39
|
+
}
|
|
40
|
+
38% {
|
|
41
|
+
box-shadow:
|
|
42
|
+
0 -0.83em 0 -0.4em,
|
|
43
|
+
-0.377em -0.74em 0 -0.42em,
|
|
44
|
+
-0.645em -0.522em 0 -0.44em,
|
|
45
|
+
-0.775em -0.297em 0 -0.46em,
|
|
46
|
+
-0.82em -0.09em 0 -0.477em;
|
|
47
|
+
}
|
|
48
|
+
100% {
|
|
49
|
+
box-shadow:
|
|
50
|
+
0 -0.83em 0 -0.4em,
|
|
51
|
+
0 -0.83em 0 -0.42em,
|
|
52
|
+
0 -0.83em 0 -0.44em,
|
|
53
|
+
0 -0.83em 0 -0.46em,
|
|
54
|
+
0 -0.83em 0 -0.477em;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@keyframes fx-loader-round {
|
|
59
|
+
0% { transform: rotate(0deg); }
|
|
60
|
+
100% { transform: rotate(360deg); }
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.fx-loader-multi-shadow {
|
|
64
|
+
width: 1em;
|
|
65
|
+
height: 1em;
|
|
66
|
+
overflow: hidden;
|
|
67
|
+
border-radius: 50%;
|
|
68
|
+
color: currentColor;
|
|
69
|
+
position: relative;
|
|
70
|
+
text-indent: -9999em;
|
|
71
|
+
transform: translateZ(0);
|
|
72
|
+
animation:
|
|
73
|
+
fx-loader-multi-shadow-spin 1.7s infinite ease,
|
|
74
|
+
fx-loader-round 1.7s infinite ease;
|
|
75
|
+
}
|
|
76
|
+
`;
|
|
6
77
|
function HeliipLoader({
|
|
7
78
|
title = "Heliip",
|
|
8
|
-
subtitle = "Cargando
|
|
79
|
+
subtitle = "Cargando...",
|
|
9
80
|
className,
|
|
10
81
|
compact = false,
|
|
11
82
|
size
|
|
12
83
|
}) {
|
|
13
84
|
const resolvedSize = size != null ? size : compact ? "sm" : "md";
|
|
14
|
-
const
|
|
85
|
+
const loaderSize = resolvedSize === "lg" ? "text-[45px]" : resolvedSize === "sm" ? "text-[22px]" : "text-[32px]";
|
|
15
86
|
return /* @__PURE__ */ jsxs(
|
|
16
87
|
"div",
|
|
17
88
|
{
|
|
@@ -19,7 +90,8 @@ function HeliipLoader({
|
|
|
19
90
|
className: cx("inline-flex items-center justify-center text-[var(--primary)]", className),
|
|
20
91
|
role: "status",
|
|
21
92
|
children: [
|
|
22
|
-
/* @__PURE__ */ jsx(
|
|
93
|
+
/* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: loaderStyles } }),
|
|
94
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: cx("fx-loader-multi-shadow", loaderSize) }),
|
|
23
95
|
/* @__PURE__ */ jsx("span", { className: "sr-only", children: subtitle || title })
|
|
24
96
|
]
|
|
25
97
|
}
|
|
@@ -4,16 +4,84 @@ type Template = {
|
|
|
4
4
|
label: string;
|
|
5
5
|
content: string;
|
|
6
6
|
};
|
|
7
|
+
type MarkdownRange = {
|
|
8
|
+
start: number;
|
|
9
|
+
end: number;
|
|
10
|
+
kind?: string;
|
|
11
|
+
activeOffset?: number;
|
|
12
|
+
};
|
|
13
|
+
type MarkdownRenderOptions = {
|
|
14
|
+
includeRanges?: boolean;
|
|
15
|
+
selectedRange?: MarkdownRange | null;
|
|
16
|
+
};
|
|
17
|
+
declare function renderMarkdown(value: string, options?: MarkdownRenderOptions): string;
|
|
7
18
|
type MarkdownEditorProps = {
|
|
8
19
|
value: string;
|
|
9
20
|
onChange: (next: string) => void;
|
|
10
21
|
placeholder?: string;
|
|
11
22
|
rows?: number;
|
|
12
|
-
height?: number;
|
|
23
|
+
height?: number | string;
|
|
24
|
+
fullscreenHeight?: number | string;
|
|
13
25
|
className?: string;
|
|
14
26
|
templates?: Template[];
|
|
15
27
|
disabled?: boolean;
|
|
28
|
+
showPreview?: boolean;
|
|
29
|
+
enablePreview?: boolean;
|
|
30
|
+
enableFullscreen?: boolean;
|
|
31
|
+
enableDiagrams?: boolean;
|
|
32
|
+
maxImageBytes?: number;
|
|
33
|
+
maxVideoBytes?: number;
|
|
34
|
+
labels?: Partial<{
|
|
35
|
+
editor: string;
|
|
36
|
+
preview: string;
|
|
37
|
+
emptyPreview: string;
|
|
38
|
+
headings: string;
|
|
39
|
+
paragraph: string;
|
|
40
|
+
h1: string;
|
|
41
|
+
h2: string;
|
|
42
|
+
h3: string;
|
|
43
|
+
quote: string;
|
|
44
|
+
undo: string;
|
|
45
|
+
redo: string;
|
|
46
|
+
bold: string;
|
|
47
|
+
italic: string;
|
|
48
|
+
code: string;
|
|
49
|
+
bullets: string;
|
|
50
|
+
numbers: string;
|
|
51
|
+
link: string;
|
|
52
|
+
color: string;
|
|
53
|
+
insert: string;
|
|
54
|
+
imageUrl: string;
|
|
55
|
+
imageUpload: string;
|
|
56
|
+
videoUrl: string;
|
|
57
|
+
videoUpload: string;
|
|
58
|
+
table: string;
|
|
59
|
+
lineBreak: string;
|
|
60
|
+
diagram: string;
|
|
61
|
+
umlClass: string;
|
|
62
|
+
umlSequence: string;
|
|
63
|
+
divider: string;
|
|
64
|
+
blocksView: string;
|
|
65
|
+
markdownView: string;
|
|
66
|
+
previewView: string;
|
|
67
|
+
sampleButton: string;
|
|
68
|
+
showPreview: string;
|
|
69
|
+
hidePreview: string;
|
|
70
|
+
fullscreen: string;
|
|
71
|
+
exitFullscreen: string;
|
|
72
|
+
}>;
|
|
16
73
|
};
|
|
17
|
-
declare function
|
|
74
|
+
declare function MarkdownPreview({ value, className, emptyLabel, selectable, selectedRange, onSelectRange, onOpenSelectionMenu, showBlockControls, onOpenBlockMenu, }: {
|
|
75
|
+
value: string | null | undefined;
|
|
76
|
+
className?: string;
|
|
77
|
+
emptyLabel?: string;
|
|
78
|
+
selectable?: boolean;
|
|
79
|
+
selectedRange?: MarkdownRange | null;
|
|
80
|
+
onSelectRange?: (range: MarkdownRange) => void;
|
|
81
|
+
onOpenSelectionMenu?: (event: React__default.MouseEvent, range: MarkdownRange) => void;
|
|
82
|
+
showBlockControls?: boolean;
|
|
83
|
+
onOpenBlockMenu?: (event: React__default.MouseEvent, range: MarkdownRange) => void;
|
|
84
|
+
}): React__default.JSX.Element;
|
|
85
|
+
declare function MarkdownEditor({ value, onChange, placeholder, rows, height, className, templates, disabled, fullscreenHeight, showPreview, enablePreview, enableFullscreen, enableDiagrams, labels, maxImageBytes, maxVideoBytes, }: MarkdownEditorProps): React__default.JSX.Element;
|
|
18
86
|
|
|
19
|
-
export { type MarkdownEditorProps, MarkdownEditor as default };
|
|
87
|
+
export { type MarkdownEditorProps, MarkdownPreview, MarkdownEditor as default, renderMarkdown };
|
package/dist/MarkdownEditor.d.ts
CHANGED
|
@@ -4,16 +4,84 @@ type Template = {
|
|
|
4
4
|
label: string;
|
|
5
5
|
content: string;
|
|
6
6
|
};
|
|
7
|
+
type MarkdownRange = {
|
|
8
|
+
start: number;
|
|
9
|
+
end: number;
|
|
10
|
+
kind?: string;
|
|
11
|
+
activeOffset?: number;
|
|
12
|
+
};
|
|
13
|
+
type MarkdownRenderOptions = {
|
|
14
|
+
includeRanges?: boolean;
|
|
15
|
+
selectedRange?: MarkdownRange | null;
|
|
16
|
+
};
|
|
17
|
+
declare function renderMarkdown(value: string, options?: MarkdownRenderOptions): string;
|
|
7
18
|
type MarkdownEditorProps = {
|
|
8
19
|
value: string;
|
|
9
20
|
onChange: (next: string) => void;
|
|
10
21
|
placeholder?: string;
|
|
11
22
|
rows?: number;
|
|
12
|
-
height?: number;
|
|
23
|
+
height?: number | string;
|
|
24
|
+
fullscreenHeight?: number | string;
|
|
13
25
|
className?: string;
|
|
14
26
|
templates?: Template[];
|
|
15
27
|
disabled?: boolean;
|
|
28
|
+
showPreview?: boolean;
|
|
29
|
+
enablePreview?: boolean;
|
|
30
|
+
enableFullscreen?: boolean;
|
|
31
|
+
enableDiagrams?: boolean;
|
|
32
|
+
maxImageBytes?: number;
|
|
33
|
+
maxVideoBytes?: number;
|
|
34
|
+
labels?: Partial<{
|
|
35
|
+
editor: string;
|
|
36
|
+
preview: string;
|
|
37
|
+
emptyPreview: string;
|
|
38
|
+
headings: string;
|
|
39
|
+
paragraph: string;
|
|
40
|
+
h1: string;
|
|
41
|
+
h2: string;
|
|
42
|
+
h3: string;
|
|
43
|
+
quote: string;
|
|
44
|
+
undo: string;
|
|
45
|
+
redo: string;
|
|
46
|
+
bold: string;
|
|
47
|
+
italic: string;
|
|
48
|
+
code: string;
|
|
49
|
+
bullets: string;
|
|
50
|
+
numbers: string;
|
|
51
|
+
link: string;
|
|
52
|
+
color: string;
|
|
53
|
+
insert: string;
|
|
54
|
+
imageUrl: string;
|
|
55
|
+
imageUpload: string;
|
|
56
|
+
videoUrl: string;
|
|
57
|
+
videoUpload: string;
|
|
58
|
+
table: string;
|
|
59
|
+
lineBreak: string;
|
|
60
|
+
diagram: string;
|
|
61
|
+
umlClass: string;
|
|
62
|
+
umlSequence: string;
|
|
63
|
+
divider: string;
|
|
64
|
+
blocksView: string;
|
|
65
|
+
markdownView: string;
|
|
66
|
+
previewView: string;
|
|
67
|
+
sampleButton: string;
|
|
68
|
+
showPreview: string;
|
|
69
|
+
hidePreview: string;
|
|
70
|
+
fullscreen: string;
|
|
71
|
+
exitFullscreen: string;
|
|
72
|
+
}>;
|
|
16
73
|
};
|
|
17
|
-
declare function
|
|
74
|
+
declare function MarkdownPreview({ value, className, emptyLabel, selectable, selectedRange, onSelectRange, onOpenSelectionMenu, showBlockControls, onOpenBlockMenu, }: {
|
|
75
|
+
value: string | null | undefined;
|
|
76
|
+
className?: string;
|
|
77
|
+
emptyLabel?: string;
|
|
78
|
+
selectable?: boolean;
|
|
79
|
+
selectedRange?: MarkdownRange | null;
|
|
80
|
+
onSelectRange?: (range: MarkdownRange) => void;
|
|
81
|
+
onOpenSelectionMenu?: (event: React__default.MouseEvent, range: MarkdownRange) => void;
|
|
82
|
+
showBlockControls?: boolean;
|
|
83
|
+
onOpenBlockMenu?: (event: React__default.MouseEvent, range: MarkdownRange) => void;
|
|
84
|
+
}): React__default.JSX.Element;
|
|
85
|
+
declare function MarkdownEditor({ value, onChange, placeholder, rows, height, className, templates, disabled, fullscreenHeight, showPreview, enablePreview, enableFullscreen, enableDiagrams, labels, maxImageBytes, maxVideoBytes, }: MarkdownEditorProps): React__default.JSX.Element;
|
|
18
86
|
|
|
19
|
-
export { type MarkdownEditorProps, MarkdownEditor as default };
|
|
87
|
+
export { type MarkdownEditorProps, MarkdownPreview, MarkdownEditor as default, renderMarkdown };
|