lecom-ui 5.2.12 → 5.2.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/badge.js +26 -0
- package/dist/button-dropdown.js +117 -0
- package/dist/button.js +104 -0
- package/dist/calendar.js +62 -0
- package/dist/card.js +56 -0
- package/dist/checkbox.js +55 -0
- package/dist/collapse.js +60 -0
- package/dist/collapsible.js +7 -0
- package/dist/command.js +107 -0
- package/dist/data-table/data-table.js +490 -0
- package/dist/date-picker.js +92 -0
- package/dist/dialog.js +95 -0
- package/dist/dropdown-menu.js +138 -0
- package/dist/fonts/Montserrat-Bold.otf +0 -0
- package/dist/fonts/Montserrat-Medium.otf +0 -0
- package/dist/fonts/Montserrat-Regular.otf +0 -0
- package/dist/fonts/Roboto-Bold.otf +0 -0
- package/dist/fonts/Roboto-Light.otf +0 -0
- package/dist/fonts/Roboto-Medium.otf +0 -0
- package/dist/fonts/Roboto-Regular.otf +0 -0
- package/dist/form.js +102 -0
- package/dist/header.js +90 -0
- package/dist/hook/useDebounce.js +16 -0
- package/dist/icon-handler.js +72 -0
- package/dist/icons/brandModules.js +27 -0
- package/dist/icons/companyLogo.js +61 -0
- package/dist/icons/createUseAuxiliary.js +107 -0
- package/dist/icons/footerInfo.js +25 -0
- package/dist/icons/logo_lecom.svg.js +3 -0
- package/dist/icons/newUpdate.js +23 -0
- package/dist/icons/robertyRPA.js +30 -0
- package/dist/ilustrations/access_denied.js +252 -0
- package/dist/ilustrations/page_not_found.js +188 -0
- package/dist/input.js +42 -0
- package/dist/label.js +20 -0
- package/dist/modal.js +27 -0
- package/dist/pagination.js +474 -0
- package/dist/plugin/extend.js +78 -78
- package/dist/plugin/extend.ts +78 -0
- package/dist/plugin/fontFaces.js +172 -172
- package/dist/plugin/fontFaces.ts +172 -0
- package/dist/plugin/general.js +12 -12
- package/dist/plugin/general.ts +12 -0
- package/dist/plugin/pluginDev.cjs +5 -5
- package/dist/plugin/pluginDev.js +5 -0
- package/dist/plugin/pluginNext.cjs +5 -5
- package/dist/plugin/pluginNext.js +5 -0
- package/dist/plugin/pluginNextTurbo.cjs +5 -5
- package/dist/plugin/pluginVite.cjs +5 -5
- package/dist/plugin/pluginVite.js +5 -0
- package/dist/plugin/template.js +31 -31
- package/dist/plugin/template.ts +31 -0
- package/dist/plugin/typographies.js +152 -152
- package/dist/plugin/typographies.ts +152 -0
- package/dist/plugin/varsTheme.js +79 -79
- package/dist/plugin/varsTheme.ts +79 -0
- package/dist/plugin.cjs +298 -0
- package/dist/popover.js +24 -0
- package/dist/radio-group.js +74 -0
- package/dist/range-picker.js +99 -0
- package/dist/scroll-area.js +37 -0
- package/dist/search-bar.js +151 -0
- package/dist/select.js +156 -0
- package/dist/separator.js +24 -0
- package/dist/sheet.js +106 -0
- package/dist/sidebar.js +188 -0
- package/dist/skeleton.js +17 -0
- package/dist/slider.js +23 -0
- package/dist/status-screen.js +71 -0
- package/dist/switch.js +27 -0
- package/dist/table.js +83 -0
- package/dist/tabs.js +44 -0
- package/dist/tag.js +33 -0
- package/dist/textarea.js +22 -0
- package/dist/toast.js +105 -0
- package/dist/toaster.js +23 -0
- package/dist/tooltip.js +133 -0
- package/dist/use-toast.js +121 -0
- package/package.json +2 -2
package/dist/tooltip.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
4
|
+
import { cn } from './lib/utils.js';
|
|
5
|
+
|
|
6
|
+
const TooltipProvider = TooltipPrimitive.Provider;
|
|
7
|
+
const TooltipRoot = TooltipPrimitive.Root;
|
|
8
|
+
const TooltipTrigger = TooltipPrimitive.Trigger;
|
|
9
|
+
const TooltipArrow = React.forwardRef(
|
|
10
|
+
({ className, style, color, ...props }, ref) => {
|
|
11
|
+
return /* @__PURE__ */ jsx(
|
|
12
|
+
TooltipPrimitive.Arrow,
|
|
13
|
+
{
|
|
14
|
+
width: 12,
|
|
15
|
+
height: 7,
|
|
16
|
+
ref,
|
|
17
|
+
className: cn(
|
|
18
|
+
"fill-current text-primary",
|
|
19
|
+
className
|
|
20
|
+
),
|
|
21
|
+
style: { ...style, color },
|
|
22
|
+
...props
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
|
|
28
|
+
const TooltipContent = React.forwardRef(({ className, style, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
29
|
+
TooltipPrimitive.Content,
|
|
30
|
+
{
|
|
31
|
+
ref,
|
|
32
|
+
className: cn(
|
|
33
|
+
`z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=delayed-open]:data-[side=bottom]:animate-slideUpAndFade data-[state=delayed-open]:data-[side=left]:animate-slideRightAndFade data-[state=delayed-open]:data-[side=right]:animate-slideLeftAndFade data-[state=delayed-open]:data-[side=top]:animate-slideDownAndFade`,
|
|
34
|
+
className
|
|
35
|
+
),
|
|
36
|
+
style,
|
|
37
|
+
...props,
|
|
38
|
+
children
|
|
39
|
+
}
|
|
40
|
+
));
|
|
41
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
42
|
+
const Tooltip = ({
|
|
43
|
+
title,
|
|
44
|
+
side = "top",
|
|
45
|
+
align = "center",
|
|
46
|
+
arrow = false,
|
|
47
|
+
color,
|
|
48
|
+
defaultOpen = false,
|
|
49
|
+
mouseEnterDelay = 0.3,
|
|
50
|
+
mouseLeaveDelay = 0.3,
|
|
51
|
+
overlayStyle,
|
|
52
|
+
overlayInnerStyle,
|
|
53
|
+
trigger = "hover",
|
|
54
|
+
open,
|
|
55
|
+
zIndex,
|
|
56
|
+
onOpenChange,
|
|
57
|
+
sideOffset = 2,
|
|
58
|
+
alignOffset = 2,
|
|
59
|
+
ariaLabel = "",
|
|
60
|
+
asChild = false,
|
|
61
|
+
className = "",
|
|
62
|
+
children
|
|
63
|
+
}) => {
|
|
64
|
+
const [isOpen, setIsOpen] = React.useState(defaultOpen);
|
|
65
|
+
const [isTouchDevice, setIsTouchDevice] = React.useState(false);
|
|
66
|
+
const elementRef = React.useRef(null);
|
|
67
|
+
React.useEffect(() => {
|
|
68
|
+
const checkIfTouchDevice = () => {
|
|
69
|
+
setIsTouchDevice(
|
|
70
|
+
"ontouchstart" in window || navigator.maxTouchPoints > 0 || window.matchMedia("(pointer: coarse)").matches
|
|
71
|
+
);
|
|
72
|
+
};
|
|
73
|
+
checkIfTouchDevice();
|
|
74
|
+
window.addEventListener("resize", checkIfTouchDevice);
|
|
75
|
+
return () => {
|
|
76
|
+
window.removeEventListener("resize", checkIfTouchDevice);
|
|
77
|
+
};
|
|
78
|
+
}, []);
|
|
79
|
+
const handleOpenChange = (isOpen2) => {
|
|
80
|
+
if (!isTouchDevice) {
|
|
81
|
+
if (onOpenChange) {
|
|
82
|
+
onOpenChange(isOpen2);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const handleClick = (event) => {
|
|
87
|
+
if (isTouchDevice) {
|
|
88
|
+
event.preventDefault();
|
|
89
|
+
setIsOpen((prev) => !prev);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
const triggerProps = {
|
|
93
|
+
onMouseEnter: trigger === "hover" && !isTouchDevice ? () => setTimeout(() => setIsOpen(true), mouseEnterDelay * 1e3) : void 0,
|
|
94
|
+
onMouseLeave: trigger === "hover" && !isTouchDevice ? () => setTimeout(() => setIsOpen(false), mouseLeaveDelay * 1e3) : void 0,
|
|
95
|
+
onFocus: trigger === "focus" ? () => setIsOpen(true) : void 0,
|
|
96
|
+
onBlur: trigger === "focus" ? () => setIsOpen(false) : void 0,
|
|
97
|
+
onClick: isTouchDevice || trigger === "click" ? handleClick : void 0
|
|
98
|
+
};
|
|
99
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: mouseEnterDelay * 1e3, children: /* @__PURE__ */ jsxs(
|
|
100
|
+
TooltipRoot,
|
|
101
|
+
{
|
|
102
|
+
open: open !== void 0 ? open : isOpen,
|
|
103
|
+
onOpenChange: handleOpenChange,
|
|
104
|
+
children: [
|
|
105
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { className: "relative", asChild, ...triggerProps, ref: elementRef, children: /* @__PURE__ */ jsx("span", { children }) }),
|
|
106
|
+
/* @__PURE__ */ jsxs(
|
|
107
|
+
TooltipContent,
|
|
108
|
+
{
|
|
109
|
+
className: cn("bg-slate-900 text-white", className),
|
|
110
|
+
side,
|
|
111
|
+
align,
|
|
112
|
+
"aria-label": ariaLabel,
|
|
113
|
+
sideOffset,
|
|
114
|
+
alignOffset,
|
|
115
|
+
style: { ...overlayStyle, zIndex, backgroundColor: color },
|
|
116
|
+
children: [
|
|
117
|
+
/* @__PURE__ */ jsx("div", { style: overlayInnerStyle, children: title }),
|
|
118
|
+
arrow && /* @__PURE__ */ jsx(
|
|
119
|
+
TooltipArrow,
|
|
120
|
+
{
|
|
121
|
+
className: cn("text-slate-900"),
|
|
122
|
+
style: { color }
|
|
123
|
+
}
|
|
124
|
+
)
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
)
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
) });
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
const TOAST_LIMIT = 1;
|
|
4
|
+
const TOAST_REMOVE_DELAY = 1e6;
|
|
5
|
+
let count = 0;
|
|
6
|
+
function genId() {
|
|
7
|
+
count = (count + 1) % Number.MAX_SAFE_INTEGER;
|
|
8
|
+
return count.toString();
|
|
9
|
+
}
|
|
10
|
+
const toastTimeouts = /* @__PURE__ */ new Map();
|
|
11
|
+
const addToRemoveQueue = (toastId) => {
|
|
12
|
+
if (toastTimeouts.has(toastId)) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const timeout = setTimeout(() => {
|
|
16
|
+
toastTimeouts.delete(toastId);
|
|
17
|
+
dispatch({
|
|
18
|
+
type: "REMOVE_TOAST",
|
|
19
|
+
toastId
|
|
20
|
+
});
|
|
21
|
+
}, TOAST_REMOVE_DELAY);
|
|
22
|
+
toastTimeouts.set(toastId, timeout);
|
|
23
|
+
};
|
|
24
|
+
const reducer = (state, action) => {
|
|
25
|
+
switch (action.type) {
|
|
26
|
+
case "ADD_TOAST":
|
|
27
|
+
return {
|
|
28
|
+
...state,
|
|
29
|
+
toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)
|
|
30
|
+
};
|
|
31
|
+
case "UPDATE_TOAST":
|
|
32
|
+
return {
|
|
33
|
+
...state,
|
|
34
|
+
toasts: state.toasts.map(
|
|
35
|
+
(t) => t.id === action.toast.id ? { ...t, ...action.toast } : t
|
|
36
|
+
)
|
|
37
|
+
};
|
|
38
|
+
case "DISMISS_TOAST": {
|
|
39
|
+
const { toastId } = action;
|
|
40
|
+
if (toastId) {
|
|
41
|
+
addToRemoveQueue(toastId);
|
|
42
|
+
} else {
|
|
43
|
+
state.toasts.forEach((toast2) => {
|
|
44
|
+
addToRemoveQueue(toast2.id);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
...state,
|
|
49
|
+
toasts: state.toasts.map(
|
|
50
|
+
(t) => t.id === toastId || toastId === void 0 ? {
|
|
51
|
+
...t,
|
|
52
|
+
open: false
|
|
53
|
+
} : t
|
|
54
|
+
)
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
case "REMOVE_TOAST":
|
|
58
|
+
if (action.toastId === void 0) {
|
|
59
|
+
return {
|
|
60
|
+
...state,
|
|
61
|
+
toasts: []
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
...state,
|
|
66
|
+
toasts: state.toasts.filter((t) => t.id !== action.toastId)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const listeners = [];
|
|
71
|
+
let memoryState = { toasts: [] };
|
|
72
|
+
function dispatch(action) {
|
|
73
|
+
memoryState = reducer(memoryState, action);
|
|
74
|
+
listeners.forEach((listener) => {
|
|
75
|
+
listener(memoryState);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function toast({ ...props }) {
|
|
79
|
+
const id = genId();
|
|
80
|
+
const update = (props2) => dispatch({
|
|
81
|
+
type: "UPDATE_TOAST",
|
|
82
|
+
toast: { ...props2, id }
|
|
83
|
+
});
|
|
84
|
+
const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
|
|
85
|
+
dispatch({
|
|
86
|
+
type: "ADD_TOAST",
|
|
87
|
+
toast: {
|
|
88
|
+
...props,
|
|
89
|
+
id,
|
|
90
|
+
open: true,
|
|
91
|
+
onOpenChange: (open) => {
|
|
92
|
+
if (!open)
|
|
93
|
+
dismiss();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
id,
|
|
99
|
+
dismiss,
|
|
100
|
+
update
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function useToast() {
|
|
104
|
+
const [state, setState] = React.useState(memoryState);
|
|
105
|
+
React.useEffect(() => {
|
|
106
|
+
listeners.push(setState);
|
|
107
|
+
return () => {
|
|
108
|
+
const index = listeners.indexOf(setState);
|
|
109
|
+
if (index > -1) {
|
|
110
|
+
listeners.splice(index, 1);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
}, [state]);
|
|
114
|
+
return {
|
|
115
|
+
...state,
|
|
116
|
+
toast,
|
|
117
|
+
dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export { reducer, toast, useToast };
|
package/package.json
CHANGED