funuicss 2.7.16 → 3.0.0
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/css/fun.css +6663 -6653
- package/index.d.ts +2 -0
- package/index.js +5 -1
- package/js/google/AnalyticsHandler.d.ts +10 -0
- package/js/google/AnalyticsHandler.js +20 -0
- package/js/google/analytics.d.ts +6 -0
- package/js/google/analytics.js +53 -0
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/ui/flex/Flex.d.ts +3 -3
- package/ui/flex/Flex.js +2 -2
- package/ui/notification/Notification.d.ts +7 -3
- package/ui/notification/Notification.js +18 -14
- package/ui/scrolltotop/ScrollToTop.d.ts +3 -0
- package/ui/scrolltotop/ScrollToTop.js +61 -0
- package/ui/view/View.d.ts +27 -38
- package/ui/view/View.js +10 -38
- package/ui/vista/Vista.d.ts +6 -1
- package/ui/vista/Vista.js +33 -4
- package/assets/colors/colors.d.ts +0 -347
- package/assets/colors/colors.js +0 -348
- package/assets/colors/colors.tsx +0 -697
- package/hooks/useHls.tsx +0 -69
- package/index.tsx +0 -58
- package/js/Cookie.tsx +0 -91
- package/js/Fun.jsx +0 -225
- package/js/Fun.tsx +0 -239
- package/tsconfig.json +0 -20
- package/types/react-easy-export.d.ts +0 -4
- package/ui/ScrollInView/ScrollInView.tsx +0 -69
- package/ui/accordion/Accordion.tsx +0 -125
- package/ui/alert/Alert.tsx +0 -106
- package/ui/aos/AOS.tsx +0 -24
- package/ui/appbar/AppBar.tsx +0 -115
- package/ui/appbar/Hamburger.tsx +0 -30
- package/ui/avatar/Avatar.tsx +0 -52
- package/ui/blob/Blob.tsx +0 -34
- package/ui/breadcrumb/BreadCrumb.tsx +0 -48
- package/ui/button/Button.tsx +0 -153
- package/ui/calendar/ActivityCard.tsx +0 -27
- package/ui/calendar/Calendar.tsx +0 -343
- package/ui/card/Card.tsx +0 -117
- package/ui/card/CardBody.tsx +0 -14
- package/ui/card/CardFab.tsx +0 -16
- package/ui/card/CardFooter.tsx +0 -14
- package/ui/card/CardHeader.tsx +0 -14
- package/ui/carousel/Carousel.tsx +0 -148
- package/ui/chart/Bar.tsx +0 -121
- package/ui/chart/Line.tsx +0 -186
- package/ui/chart/Pie.tsx +0 -127
- package/ui/container/Container.tsx +0 -38
- package/ui/datepicker/DatePicker.tsx +0 -148
- package/ui/div/Div.tsx +0 -61
- package/ui/drop/Action.tsx +0 -16
- package/ui/drop/Down.tsx +0 -18
- package/ui/drop/Dropdown.tsx +0 -117
- package/ui/drop/Item.tsx +0 -15
- package/ui/drop/Menu.tsx +0 -40
- package/ui/drop/Up.tsx +0 -18
- package/ui/flex/Flex.tsx +0 -97
- package/ui/flex/FlexItem.tsx +0 -64
- package/ui/grid/Col.tsx +0 -43
- package/ui/grid/Grid.tsx +0 -37
- package/ui/input/Iconic.tsx +0 -43
- package/ui/input/Input.tsx +0 -409
- package/ui/list/Item.tsx +0 -18
- package/ui/list/List.tsx +0 -45
- package/ui/loader/Loader.tsx +0 -47
- package/ui/modal/Action.tsx +0 -14
- package/ui/modal/Close.tsx +0 -14
- package/ui/modal/Content.tsx +0 -15
- package/ui/modal/Header.tsx +0 -19
- package/ui/modal/Modal.tsx +0 -140
- package/ui/notification/Content.tsx +0 -14
- package/ui/notification/Footer.tsx +0 -14
- package/ui/notification/Header.tsx +0 -14
- package/ui/notification/Notification.tsx +0 -62
- package/ui/page/NotFound.tsx +0 -67
- package/ui/page/UnAuthorized.tsx +0 -64
- package/ui/progress/Bar.tsx +0 -114
- package/ui/richtext/RichText.tsx +0 -156
- package/ui/sidebar/SideBar.tsx +0 -202
- package/ui/sidebar/SideContent.tsx +0 -16
- package/ui/slider/Slider.tsx +0 -75
- package/ui/snackbar/SnackBar.tsx +0 -56
- package/ui/specials/Circle.tsx +0 -49
- package/ui/specials/CircleGroup.tsx +0 -49
- package/ui/specials/FullCenteredPage.tsx +0 -25
- package/ui/specials/Hr.tsx +0 -16
- package/ui/specials/RowFlex.tsx +0 -56
- package/ui/specials/Section.tsx +0 -18
- package/ui/step/Container.tsx +0 -27
- package/ui/step/Header.tsx +0 -16
- package/ui/step/Line.tsx +0 -17
- package/ui/step/Step.tsx +0 -17
- package/ui/table/Body.tsx +0 -10
- package/ui/table/Data.tsx +0 -15
- package/ui/table/Head.tsx +0 -10
- package/ui/table/Row.tsx +0 -16
- package/ui/table/Table.tsx +0 -372
- package/ui/text/Text.tsx +0 -179
- package/ui/theme/dark.tsx +0 -45
- package/ui/theme/darkenUtils.ts +0 -15
- package/ui/theme/theme.tsx +0 -48
- package/ui/theme/themes.ts +0 -154
- package/ui/tooltip/Tip.tsx +0 -34
- package/ui/tooltip/ToolTip.tsx +0 -20
- package/ui/video/Video.tsx +0 -348
- package/ui/video/videoFunctions.tsx +0 -19
- package/ui/video/videoShortcuts.ts +0 -13
- package/ui/view/View.tsx +0 -157
- package/ui/vista/Vista.tsx +0 -165
- package/utils/Emojis.tsx +0 -59
- package/utils/Functions.tsx +0 -9
- package/utils/getCssVariable.tsx +0 -9
package/ui/sidebar/SideBar.tsx
DELETED
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React, {
|
|
3
|
-
useEffect,
|
|
4
|
-
useRef,
|
|
5
|
-
useState,
|
|
6
|
-
ReactNode,
|
|
7
|
-
useCallback,
|
|
8
|
-
} from 'react';
|
|
9
|
-
import RowFlex from '../specials/RowFlex';
|
|
10
|
-
import Text from '../text/Text';
|
|
11
|
-
import { usePathname } from 'next/navigation';
|
|
12
|
-
import { PiX } from 'react-icons/pi';
|
|
13
|
-
import Link from 'next/link';
|
|
14
|
-
|
|
15
|
-
interface SideBarLink {
|
|
16
|
-
uri: string;
|
|
17
|
-
icon: React.ReactNode;
|
|
18
|
-
text: string;
|
|
19
|
-
section: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
interface SideBarProps {
|
|
23
|
-
funcss?: string;
|
|
24
|
-
position?: 'left' | 'right';
|
|
25
|
-
open?: boolean;
|
|
26
|
-
header?: ReactNode;
|
|
27
|
-
content?: ReactNode;
|
|
28
|
-
footer?: ReactNode;
|
|
29
|
-
top?: number;
|
|
30
|
-
sidebarWidth?: number;
|
|
31
|
-
sidebarCss?: string;
|
|
32
|
-
activeCss?: string;
|
|
33
|
-
iconCSS?: string;
|
|
34
|
-
bodyCss?: string;
|
|
35
|
-
popIcon?:boolean;
|
|
36
|
-
dividers?:boolean;
|
|
37
|
-
links?: SideBarLink[];
|
|
38
|
-
children?: ReactNode;
|
|
39
|
-
onClose?: () => void;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export default function SideBar({
|
|
43
|
-
funcss = '',
|
|
44
|
-
position = 'left',
|
|
45
|
-
open = false,
|
|
46
|
-
header,
|
|
47
|
-
content,
|
|
48
|
-
footer,
|
|
49
|
-
top = 0,
|
|
50
|
-
sidebarWidth = 250,
|
|
51
|
-
iconCSS = '',
|
|
52
|
-
sidebarCss = '',
|
|
53
|
-
activeCss,
|
|
54
|
-
bodyCss = '',
|
|
55
|
-
popIcon = false,
|
|
56
|
-
dividers = false,
|
|
57
|
-
links = [],
|
|
58
|
-
children,
|
|
59
|
-
onClose,
|
|
60
|
-
}: SideBarProps) {
|
|
61
|
-
const [isMobile, setIsMobile] = useState(false);
|
|
62
|
-
const [internalOpen, setInternalOpen] = useState(open);
|
|
63
|
-
const [appBarHeight, setAppBarHeight] = useState('0px');
|
|
64
|
-
const pathname = usePathname();
|
|
65
|
-
const sidebarRef = useRef<HTMLDivElement>(null);
|
|
66
|
-
|
|
67
|
-
const updateIsMobile = useCallback(() => {
|
|
68
|
-
setIsMobile(window.innerWidth <= 992);
|
|
69
|
-
|
|
70
|
-
}, []);
|
|
71
|
-
|
|
72
|
-
useEffect(() => {
|
|
73
|
-
updateIsMobile();
|
|
74
|
-
window.addEventListener('resize', updateIsMobile);
|
|
75
|
-
return () => window.removeEventListener('resize', updateIsMobile);
|
|
76
|
-
}, [updateIsMobile]);
|
|
77
|
-
|
|
78
|
-
// Sync internal state with prop changes
|
|
79
|
-
useEffect(() => {
|
|
80
|
-
setInternalOpen(open);
|
|
81
|
-
}, [open]);
|
|
82
|
-
|
|
83
|
-
useEffect(() => {
|
|
84
|
-
const appBar = document.querySelector('#appBar') as HTMLElement;
|
|
85
|
-
if (appBar) {
|
|
86
|
-
setAppBarHeight(`${appBar.offsetHeight}px`);
|
|
87
|
-
}
|
|
88
|
-
}, []);
|
|
89
|
-
|
|
90
|
-
useEffect(() => {
|
|
91
|
-
if (!isMobile || !internalOpen) return;
|
|
92
|
-
|
|
93
|
-
const handleOutsideClick = (e: MouseEvent | TouchEvent) => {
|
|
94
|
-
if (sidebarRef.current && !sidebarRef.current.contains(e.target as Node)) {
|
|
95
|
-
handleClose();
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
document.addEventListener('mousedown', handleOutsideClick);
|
|
100
|
-
document.addEventListener('touchstart', handleOutsideClick);
|
|
101
|
-
|
|
102
|
-
return () => {
|
|
103
|
-
document.removeEventListener('mousedown', handleOutsideClick);
|
|
104
|
-
document.removeEventListener('touchstart', handleOutsideClick);
|
|
105
|
-
};
|
|
106
|
-
}, [isMobile, internalOpen]);
|
|
107
|
-
|
|
108
|
-
const handleClose = () => {
|
|
109
|
-
setInternalOpen(false);
|
|
110
|
-
onClose?.();
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
const groupedLinks = links.reduce<Record<string, SideBarLink[]>>((acc, link) => {
|
|
114
|
-
acc[link.section] = acc[link.section] || [];
|
|
115
|
-
acc[link.section].push(link);
|
|
116
|
-
return acc;
|
|
117
|
-
}, {});
|
|
118
|
-
|
|
119
|
-
const isOverlay = isMobile;
|
|
120
|
-
|
|
121
|
-
return (
|
|
122
|
-
<div className={`sidebar-container ${isOverlay ? '' : 'with-content'}`}>
|
|
123
|
-
{internalOpen && (
|
|
124
|
-
<aside
|
|
125
|
-
role="complementary"
|
|
126
|
-
ref={sidebarRef}
|
|
127
|
-
className={`sidebar ${funcss} ${sidebarCss} ${isOverlay ? 'nav_overlay' : ''}`}
|
|
128
|
-
style={{
|
|
129
|
-
width: isOverlay ? '100%' : `${sidebarWidth}px`,
|
|
130
|
-
height: `calc(100vh - ${appBarHeight || top || '0px'})`,
|
|
131
|
-
position: 'fixed',
|
|
132
|
-
top: appBarHeight || top,
|
|
133
|
-
[position]: 0,
|
|
134
|
-
padding: '1rem',
|
|
135
|
-
}}
|
|
136
|
-
>
|
|
137
|
-
{/* {isMobile && (
|
|
138
|
-
<div
|
|
139
|
-
className="hover-text-error pointer"
|
|
140
|
-
onClick={handleClose}
|
|
141
|
-
style={{ cursor: 'pointer' }}
|
|
142
|
-
>
|
|
143
|
-
{close || <PiX size={25}/>}
|
|
144
|
-
</div>
|
|
145
|
-
)} */}
|
|
146
|
-
|
|
147
|
-
<RowFlex justify="space-between" funcss="pl-2 pr-2">
|
|
148
|
-
{header && <div>{header}</div>}
|
|
149
|
-
|
|
150
|
-
</RowFlex>
|
|
151
|
-
|
|
152
|
-
<section className="sidebar-body mt-3">
|
|
153
|
-
{links.length > 0 && (
|
|
154
|
-
<nav className="sidebar-links">
|
|
155
|
-
{Object.entries(groupedLinks).map(([section, sectionLinks]) => (
|
|
156
|
-
<div key={section} className={`sidebar-section ${dividers ? "bt" : ""} pt-2 pb-2`}>
|
|
157
|
-
<Text size="sm" funcss="opacity-6 p-1 pl-2 pr-2">{section}</Text>
|
|
158
|
-
{sectionLinks.map(link => {
|
|
159
|
-
const isActive = pathname === link.uri;
|
|
160
|
-
return (
|
|
161
|
-
<Link onClick={() => {
|
|
162
|
-
if(isMobile){
|
|
163
|
-
handleClose()
|
|
164
|
-
}
|
|
165
|
-
}} key={link.uri} href={link.uri}>
|
|
166
|
-
<div className={`p-1 pl-2 pr-2 sidebar-link ${
|
|
167
|
-
isActive ? `primary50 outline-primary200 ${activeCss || ''}` : 'hoverable'
|
|
168
|
-
}`}>
|
|
169
|
-
<span className={`${iconCSS || '' } ${popIcon ? `p-1 border lighter central` : ""}`} style={{ lineHeight: 0 , borderRadius:"0.4rem"}}>{link.icon}</span>
|
|
170
|
-
<Text text={link.text} size="sm" weight={400} />
|
|
171
|
-
</div>
|
|
172
|
-
</Link>
|
|
173
|
-
);
|
|
174
|
-
})}
|
|
175
|
-
</div>
|
|
176
|
-
))}
|
|
177
|
-
</nav>
|
|
178
|
-
)}
|
|
179
|
-
{content}
|
|
180
|
-
</section>
|
|
181
|
-
|
|
182
|
-
{footer && <footer className="sidebar-footer mt-2">{footer}</footer>}
|
|
183
|
-
</aside>
|
|
184
|
-
)}
|
|
185
|
-
|
|
186
|
-
<main
|
|
187
|
-
className={`main-content ${bodyCss}`}
|
|
188
|
-
style={{
|
|
189
|
-
flex: 1,
|
|
190
|
-
marginLeft: position === 'left' && !isOverlay && internalOpen ? `${sidebarWidth}px` : 0,
|
|
191
|
-
marginRight: position === 'right' && !isOverlay && internalOpen ? `${sidebarWidth}px` : 0,
|
|
192
|
-
overflowY: 'auto',
|
|
193
|
-
height: '100vh',
|
|
194
|
-
paddingTop: appBarHeight || top,
|
|
195
|
-
transition: 'margin 0.3s ease',
|
|
196
|
-
}}
|
|
197
|
-
>
|
|
198
|
-
{children}
|
|
199
|
-
</main>
|
|
200
|
-
</div>
|
|
201
|
-
);
|
|
202
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
interface NotFoundProps {
|
|
3
|
-
content?:React.ReactNode
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export default function SideContent(
|
|
7
|
-
{
|
|
8
|
-
content ,
|
|
9
|
-
}:NotFoundProps
|
|
10
|
-
) {
|
|
11
|
-
return (
|
|
12
|
-
<main className="fun_main_content">
|
|
13
|
-
{content && <div>{content}</div>}
|
|
14
|
-
</main>
|
|
15
|
-
);
|
|
16
|
-
}
|
package/ui/slider/Slider.tsx
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React, { useState, useRef } from 'react';
|
|
3
|
-
import { getCssVariableValue } from '../../utils/getCssVariable';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
type RangeSliderProps = {
|
|
7
|
-
min?: number;
|
|
8
|
-
max?: number;
|
|
9
|
-
step?: number;
|
|
10
|
-
value: number;
|
|
11
|
-
height?: number;
|
|
12
|
-
onChange: (value: number) => void;
|
|
13
|
-
label?: string;
|
|
14
|
-
showTooltip?: boolean;
|
|
15
|
-
funcss?: string;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const Slider: React.FC<RangeSliderProps> = ({
|
|
19
|
-
min = 0,
|
|
20
|
-
max = 100,
|
|
21
|
-
step = 1,
|
|
22
|
-
value,
|
|
23
|
-
onChange,
|
|
24
|
-
height = 6,
|
|
25
|
-
label,
|
|
26
|
-
showTooltip = true,
|
|
27
|
-
funcss = '',
|
|
28
|
-
}) => {
|
|
29
|
-
const [isDragging, setIsDragging] = useState(false);
|
|
30
|
-
|
|
31
|
-
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
32
|
-
onChange(Number(e.target.value));
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const percent = ((value - min) / (max - min)) * 100;
|
|
36
|
-
let pColor = getCssVariableValue("primary")
|
|
37
|
-
|
|
38
|
-
return (
|
|
39
|
-
<div className={`range-slider-container ${funcss}`}>
|
|
40
|
-
|
|
41
|
-
<div className="range-wrapper">
|
|
42
|
-
{showTooltip && (
|
|
43
|
-
<div
|
|
44
|
-
className={`range-tooltip ${isDragging ? 'visible' : ''}`}
|
|
45
|
-
style={{ left: `calc(${percent}% - 20px)` }}
|
|
46
|
-
>
|
|
47
|
-
{value}%
|
|
48
|
-
</div>
|
|
49
|
-
)}
|
|
50
|
-
|
|
51
|
-
<input
|
|
52
|
-
type="range"
|
|
53
|
-
min={min}
|
|
54
|
-
max={max}
|
|
55
|
-
step={step}
|
|
56
|
-
value={value}
|
|
57
|
-
onChange={handleChange}
|
|
58
|
-
onMouseDown={() => setIsDragging(true)}
|
|
59
|
-
onMouseUp={() => setIsDragging(false)}
|
|
60
|
-
onTouchStart={() => setIsDragging(true)}
|
|
61
|
-
onTouchEnd={() => setIsDragging(false)}
|
|
62
|
-
className="range-slider"
|
|
63
|
-
style={{
|
|
64
|
-
background: `linear-gradient(to right, ${pColor} 0%, ${pColor} ${percent}%, var(--lighter) ${percent}%, var(--lighter) 100%)`,
|
|
65
|
-
height: `${height}px`,
|
|
66
|
-
}}
|
|
67
|
-
/>
|
|
68
|
-
|
|
69
|
-
</div>
|
|
70
|
-
|
|
71
|
-
</div>
|
|
72
|
-
);
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
export default Slider;
|
package/ui/snackbar/SnackBar.tsx
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
|
|
4
|
-
interface SnackbarProps {
|
|
5
|
-
message: string;
|
|
6
|
-
close?: React.ReactNode;
|
|
7
|
-
open: boolean;
|
|
8
|
-
setOpen: (val: boolean) => void;
|
|
9
|
-
position: string;
|
|
10
|
-
funcss?: string;
|
|
11
|
-
animation?: string;
|
|
12
|
-
duration?: number; // animation duration (in seconds)
|
|
13
|
-
autoHide?: boolean; // 👈 NEW
|
|
14
|
-
autoHideDuration?: number; // 👈 NEW in milliseconds
|
|
15
|
-
flat?: boolean;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const SnackBar: React.FC<SnackbarProps> = ({
|
|
19
|
-
message,
|
|
20
|
-
close,
|
|
21
|
-
open,
|
|
22
|
-
setOpen,
|
|
23
|
-
position,
|
|
24
|
-
funcss,
|
|
25
|
-
animation,
|
|
26
|
-
duration = 0.3,
|
|
27
|
-
autoHide = false,
|
|
28
|
-
autoHideDuration = 3000,
|
|
29
|
-
flat,
|
|
30
|
-
}) => {
|
|
31
|
-
React.useEffect(() => {
|
|
32
|
-
if (open && autoHide) {
|
|
33
|
-
const timer = setTimeout(() => {
|
|
34
|
-
setOpen(false);
|
|
35
|
-
}, autoHideDuration);
|
|
36
|
-
return () => clearTimeout(timer);
|
|
37
|
-
}
|
|
38
|
-
}, [open, autoHide, autoHideDuration, setOpen]);
|
|
39
|
-
|
|
40
|
-
if (!open) return null;
|
|
41
|
-
|
|
42
|
-
return (
|
|
43
|
-
<div className={`snackbar ${position} ${funcss || ''} ${flat ? 'flat' : ''}`} style={{ animation: `${duration}s ${animation || 'SlideUp'}` }}>
|
|
44
|
-
<div className="snackbar-content">
|
|
45
|
-
<div className="snackbar-body">{message}</div>
|
|
46
|
-
{close && (
|
|
47
|
-
<div className="close-snackbar pointer" onClick={() =>setOpen ? setOpen(false) : null}>
|
|
48
|
-
{close}
|
|
49
|
-
</div>
|
|
50
|
-
)}
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
);
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export default SnackBar;
|
package/ui/specials/Circle.tsx
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
import { ReactNode, HTMLProps } from 'react';
|
|
3
|
-
import * as React from 'react'
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
interface Circle_Props extends HTMLProps<HTMLDivElement> {
|
|
7
|
-
size?: number;
|
|
8
|
-
funcss?: string;
|
|
9
|
-
bg?: string;
|
|
10
|
-
color?: string;
|
|
11
|
-
children?: ReactNode;
|
|
12
|
-
hoverable?: boolean;
|
|
13
|
-
raised?:boolean
|
|
14
|
-
bordered?:boolean
|
|
15
|
-
key?:React.Key
|
|
16
|
-
onClick?: ()=> void
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export default function Circle({
|
|
21
|
-
size = 2,
|
|
22
|
-
funcss,
|
|
23
|
-
bg,
|
|
24
|
-
color,
|
|
25
|
-
children,
|
|
26
|
-
hoverable,
|
|
27
|
-
raised ,
|
|
28
|
-
key ,
|
|
29
|
-
onClick ,
|
|
30
|
-
bordered,
|
|
31
|
-
...rest
|
|
32
|
-
}: Circle_Props) {
|
|
33
|
-
return (
|
|
34
|
-
<div
|
|
35
|
-
className={` animated fade-in ${bordered ? "border" : ""} pointer avatar ${funcss || ''} ${`text-` + color?.trim() || ''} ${raised ? "raised" : ''} ${bg || 'lighter'} ${
|
|
36
|
-
hoverable ? 'hoverable' : ''
|
|
37
|
-
}`}
|
|
38
|
-
style={{
|
|
39
|
-
width: `${size + "rem" || '2.3rem'}`,
|
|
40
|
-
height: `${size + "rem" || '2.3rem'}`,
|
|
41
|
-
}}
|
|
42
|
-
key={key}
|
|
43
|
-
onClick={onClick}
|
|
44
|
-
{...rest}
|
|
45
|
-
>
|
|
46
|
-
<>{ children}</>
|
|
47
|
-
</div>
|
|
48
|
-
);
|
|
49
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
|
|
4
|
-
interface AvatarGroupProps {
|
|
5
|
-
avatars: React.ReactElement[]; // Or you can accept props data instead
|
|
6
|
-
size?: number;
|
|
7
|
-
overlap?: number; // how much they overlap in rem
|
|
8
|
-
maxVisible?: number; // optional limit
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export default function CircleGroup({
|
|
12
|
-
avatars,
|
|
13
|
-
size = 2,
|
|
14
|
-
overlap = 0.8,
|
|
15
|
-
maxVisible = avatars.length,
|
|
16
|
-
}: AvatarGroupProps) {
|
|
17
|
-
const displayed = avatars.slice(0, maxVisible);
|
|
18
|
-
const extra = avatars.length - maxVisible;
|
|
19
|
-
|
|
20
|
-
return (
|
|
21
|
-
<div className="flex" style={{ direction: 'ltr' }}>
|
|
22
|
-
{displayed.map((avatar, i) => (
|
|
23
|
-
<div
|
|
24
|
-
key={i}
|
|
25
|
-
style={{
|
|
26
|
-
marginLeft: i === 0 ? '0' : `-${overlap}rem`,
|
|
27
|
-
zIndex: avatars.length - i,
|
|
28
|
-
}}
|
|
29
|
-
>
|
|
30
|
-
{React.cloneElement(avatar, { size })}
|
|
31
|
-
</div>
|
|
32
|
-
))}
|
|
33
|
-
{extra > 0 && (
|
|
34
|
-
<div
|
|
35
|
-
className="avatar lighter text-small flex "
|
|
36
|
-
style={{
|
|
37
|
-
width: `${size}rem`,
|
|
38
|
-
height: `${size}rem`,
|
|
39
|
-
marginLeft: `-${overlap}rem`,
|
|
40
|
-
zIndex: 0,
|
|
41
|
-
|
|
42
|
-
}}
|
|
43
|
-
>
|
|
44
|
-
+{extra}
|
|
45
|
-
</div>
|
|
46
|
-
)}
|
|
47
|
-
</div>
|
|
48
|
-
);
|
|
49
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
type HrProps = {
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
funcss?: string;
|
|
6
|
-
style?: object
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const FullCenteredPage = ({ children, funcss , style , ...rest }: HrProps) => {
|
|
10
|
-
return (
|
|
11
|
-
<div className={`flex central ${funcss}`} style={{
|
|
12
|
-
minHeight:"100vh" ,
|
|
13
|
-
minWidth:"100%" ,
|
|
14
|
-
maxWidth:"100%",
|
|
15
|
-
overflow:"auto",
|
|
16
|
-
...style
|
|
17
|
-
}}
|
|
18
|
-
{...rest}
|
|
19
|
-
>
|
|
20
|
-
{children}
|
|
21
|
-
</div>
|
|
22
|
-
);
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export default FullCenteredPage;
|
package/ui/specials/Hr.tsx
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
type HrProps = {
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
funcss?: string;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
const Hr = ({ children, funcss }: HrProps) => {
|
|
9
|
-
return (
|
|
10
|
-
<div className={`hr ${funcss}`}>
|
|
11
|
-
{children}
|
|
12
|
-
</div>
|
|
13
|
-
);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export default Hr;
|
package/ui/specials/RowFlex.tsx
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
interface RowFlexProps {
|
|
4
|
-
className?: string;
|
|
5
|
-
funcss?: string;
|
|
6
|
-
content?: React.ReactNode;
|
|
7
|
-
justify?: string;
|
|
8
|
-
wrap?: 'wrap' | 'nowrap' | 'wrap-reverse';
|
|
9
|
-
gap?: number;
|
|
10
|
-
alignItems?: string;
|
|
11
|
-
align?: string;
|
|
12
|
-
responsiveSmall?: boolean;
|
|
13
|
-
responsiveMedium?: boolean;
|
|
14
|
-
id?: string;
|
|
15
|
-
children?: React.ReactNode;
|
|
16
|
-
style?: React.CSSProperties;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export default function RowFlex({
|
|
20
|
-
className,
|
|
21
|
-
funcss,
|
|
22
|
-
content,
|
|
23
|
-
justify,
|
|
24
|
-
gap,
|
|
25
|
-
alignItems,
|
|
26
|
-
align,
|
|
27
|
-
responsiveSmall,
|
|
28
|
-
responsiveMedium,
|
|
29
|
-
wrap = 'wrap',
|
|
30
|
-
id,
|
|
31
|
-
children,
|
|
32
|
-
style,
|
|
33
|
-
...rest
|
|
34
|
-
}: RowFlexProps) {
|
|
35
|
-
return (
|
|
36
|
-
<div
|
|
37
|
-
id={id ? id : ''}
|
|
38
|
-
className={`
|
|
39
|
-
row-flex ${className ? className : ''}
|
|
40
|
-
${funcss ? funcss : ''}
|
|
41
|
-
${responsiveSmall ? 'responsiveSmall' : responsiveMedium ? 'responsiveMedium' : ''}
|
|
42
|
-
`}
|
|
43
|
-
style={{
|
|
44
|
-
justifyContent: justify ? justify : '',
|
|
45
|
-
gap: gap ? gap + "rem": '',
|
|
46
|
-
alignItems: alignItems ? alignItems : '',
|
|
47
|
-
flexWrap: wrap,
|
|
48
|
-
...style,
|
|
49
|
-
}}
|
|
50
|
-
{...rest}
|
|
51
|
-
>
|
|
52
|
-
{children} {content}
|
|
53
|
-
</div>
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
package/ui/specials/Section.tsx
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
type SectionProps = {
|
|
4
|
-
children?: React.ReactNode;
|
|
5
|
-
funcss?: string;
|
|
6
|
-
gap?: number
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const Section = ({ children, funcss , gap , ...rest}: SectionProps) => {
|
|
10
|
-
return (
|
|
11
|
-
<div className={`${funcss}`}
|
|
12
|
-
style={{marginTop:gap ? gap + "rem" : "0.5rem" , marginBottom:gap ? gap + "rem" : "0.5rem" }} {...rest}>
|
|
13
|
-
{children}
|
|
14
|
-
</div>
|
|
15
|
-
);
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export default Section;
|
package/ui/step/Container.tsx
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
interface StepContainerProps {
|
|
4
|
-
children?: ReactNode;
|
|
5
|
-
funcss?: string;
|
|
6
|
-
responsiveMedium?: boolean;
|
|
7
|
-
responsiveSmall?: boolean;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const StepContainer: React.FC<StepContainerProps> = ({
|
|
11
|
-
children,
|
|
12
|
-
funcss,
|
|
13
|
-
responsiveMedium,
|
|
14
|
-
responsiveSmall,
|
|
15
|
-
}) => {
|
|
16
|
-
return (
|
|
17
|
-
<div
|
|
18
|
-
className={`${
|
|
19
|
-
funcss ? funcss : ''
|
|
20
|
-
} stepContainer ${responsiveMedium ? 'stepResponsiveMedium' : responsiveSmall ? 'stepResponsiveSmall' : ''}`}
|
|
21
|
-
>
|
|
22
|
-
{children}
|
|
23
|
-
</div>
|
|
24
|
-
);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export default StepContainer;
|
package/ui/step/Header.tsx
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react';
|
|
2
|
-
|
|
3
|
-
interface StepTitleProps {
|
|
4
|
-
children?: ReactNode;
|
|
5
|
-
funcss?: string;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const StepTitle: React.FC<StepTitleProps> = ({ children, funcss }) => {
|
|
9
|
-
return (
|
|
10
|
-
<div className={`stepHeader ${funcss ? funcss : ''}`}>
|
|
11
|
-
{children}
|
|
12
|
-
</div>
|
|
13
|
-
);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export default StepTitle;
|
package/ui/step/Line.tsx
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React, { ReactNode } from 'react';
|
|
3
|
-
|
|
4
|
-
interface StepLinedProps {
|
|
5
|
-
children?: ReactNode;
|
|
6
|
-
funcss?: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const StepLine: React.FC<StepLinedProps> = ({ children, funcss }) => {
|
|
10
|
-
return (
|
|
11
|
-
<div className={`stepLined ${funcss ? funcss : ''}`}>
|
|
12
|
-
{children}
|
|
13
|
-
</div>
|
|
14
|
-
);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export default StepLine;
|
package/ui/step/Step.tsx
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import React, { ReactNode } from 'react';
|
|
3
|
-
|
|
4
|
-
interface StepProps {
|
|
5
|
-
children?: ReactNode;
|
|
6
|
-
funcss?: string;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const Step: React.FC<StepProps> = ({ children, funcss }) => {
|
|
10
|
-
return (
|
|
11
|
-
<div className={`step ${funcss ? funcss : ''}`}>
|
|
12
|
-
{children}
|
|
13
|
-
</div>
|
|
14
|
-
);
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export default Step;
|
package/ui/table/Body.tsx
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
type TableBodyProps = {
|
|
4
|
-
children?: React.ReactNode;
|
|
5
|
-
funcss?: string;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export default function TableBody({ children, funcss }: TableBodyProps) {
|
|
9
|
-
return <tbody className={`${funcss ? funcss : ''}`}>{children ? children : ''}</tbody>;
|
|
10
|
-
}
|
package/ui/table/Data.tsx
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
interface TableDataProps {
|
|
4
|
-
children?: React.ReactNode;
|
|
5
|
-
funcss?: string;
|
|
6
|
-
key?: any;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export default function TableData({ children, funcss, key }: TableDataProps) {
|
|
10
|
-
return (
|
|
11
|
-
<td className={`${funcss}`} key={key}>
|
|
12
|
-
{children}
|
|
13
|
-
</td>
|
|
14
|
-
);
|
|
15
|
-
}
|
package/ui/table/Head.tsx
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
type TableHeadProps = {
|
|
4
|
-
children?: React.ReactNode;
|
|
5
|
-
funcss?: string;
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export default function TableHead({ children, funcss }: TableHeadProps) {
|
|
9
|
-
return <thead className={`${funcss ? funcss : ''}`}>{children}</thead>;
|
|
10
|
-
}
|