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.
Files changed (115) hide show
  1. package/css/fun.css +6663 -6653
  2. package/index.d.ts +2 -0
  3. package/index.js +5 -1
  4. package/js/google/AnalyticsHandler.d.ts +10 -0
  5. package/js/google/AnalyticsHandler.js +20 -0
  6. package/js/google/analytics.d.ts +6 -0
  7. package/js/google/analytics.js +53 -0
  8. package/package.json +1 -1
  9. package/tsconfig.tsbuildinfo +1 -1
  10. package/ui/flex/Flex.d.ts +3 -3
  11. package/ui/flex/Flex.js +2 -2
  12. package/ui/notification/Notification.d.ts +7 -3
  13. package/ui/notification/Notification.js +18 -14
  14. package/ui/scrolltotop/ScrollToTop.d.ts +3 -0
  15. package/ui/scrolltotop/ScrollToTop.js +61 -0
  16. package/ui/view/View.d.ts +27 -38
  17. package/ui/view/View.js +10 -38
  18. package/ui/vista/Vista.d.ts +6 -1
  19. package/ui/vista/Vista.js +33 -4
  20. package/assets/colors/colors.d.ts +0 -347
  21. package/assets/colors/colors.js +0 -348
  22. package/assets/colors/colors.tsx +0 -697
  23. package/hooks/useHls.tsx +0 -69
  24. package/index.tsx +0 -58
  25. package/js/Cookie.tsx +0 -91
  26. package/js/Fun.jsx +0 -225
  27. package/js/Fun.tsx +0 -239
  28. package/tsconfig.json +0 -20
  29. package/types/react-easy-export.d.ts +0 -4
  30. package/ui/ScrollInView/ScrollInView.tsx +0 -69
  31. package/ui/accordion/Accordion.tsx +0 -125
  32. package/ui/alert/Alert.tsx +0 -106
  33. package/ui/aos/AOS.tsx +0 -24
  34. package/ui/appbar/AppBar.tsx +0 -115
  35. package/ui/appbar/Hamburger.tsx +0 -30
  36. package/ui/avatar/Avatar.tsx +0 -52
  37. package/ui/blob/Blob.tsx +0 -34
  38. package/ui/breadcrumb/BreadCrumb.tsx +0 -48
  39. package/ui/button/Button.tsx +0 -153
  40. package/ui/calendar/ActivityCard.tsx +0 -27
  41. package/ui/calendar/Calendar.tsx +0 -343
  42. package/ui/card/Card.tsx +0 -117
  43. package/ui/card/CardBody.tsx +0 -14
  44. package/ui/card/CardFab.tsx +0 -16
  45. package/ui/card/CardFooter.tsx +0 -14
  46. package/ui/card/CardHeader.tsx +0 -14
  47. package/ui/carousel/Carousel.tsx +0 -148
  48. package/ui/chart/Bar.tsx +0 -121
  49. package/ui/chart/Line.tsx +0 -186
  50. package/ui/chart/Pie.tsx +0 -127
  51. package/ui/container/Container.tsx +0 -38
  52. package/ui/datepicker/DatePicker.tsx +0 -148
  53. package/ui/div/Div.tsx +0 -61
  54. package/ui/drop/Action.tsx +0 -16
  55. package/ui/drop/Down.tsx +0 -18
  56. package/ui/drop/Dropdown.tsx +0 -117
  57. package/ui/drop/Item.tsx +0 -15
  58. package/ui/drop/Menu.tsx +0 -40
  59. package/ui/drop/Up.tsx +0 -18
  60. package/ui/flex/Flex.tsx +0 -97
  61. package/ui/flex/FlexItem.tsx +0 -64
  62. package/ui/grid/Col.tsx +0 -43
  63. package/ui/grid/Grid.tsx +0 -37
  64. package/ui/input/Iconic.tsx +0 -43
  65. package/ui/input/Input.tsx +0 -409
  66. package/ui/list/Item.tsx +0 -18
  67. package/ui/list/List.tsx +0 -45
  68. package/ui/loader/Loader.tsx +0 -47
  69. package/ui/modal/Action.tsx +0 -14
  70. package/ui/modal/Close.tsx +0 -14
  71. package/ui/modal/Content.tsx +0 -15
  72. package/ui/modal/Header.tsx +0 -19
  73. package/ui/modal/Modal.tsx +0 -140
  74. package/ui/notification/Content.tsx +0 -14
  75. package/ui/notification/Footer.tsx +0 -14
  76. package/ui/notification/Header.tsx +0 -14
  77. package/ui/notification/Notification.tsx +0 -62
  78. package/ui/page/NotFound.tsx +0 -67
  79. package/ui/page/UnAuthorized.tsx +0 -64
  80. package/ui/progress/Bar.tsx +0 -114
  81. package/ui/richtext/RichText.tsx +0 -156
  82. package/ui/sidebar/SideBar.tsx +0 -202
  83. package/ui/sidebar/SideContent.tsx +0 -16
  84. package/ui/slider/Slider.tsx +0 -75
  85. package/ui/snackbar/SnackBar.tsx +0 -56
  86. package/ui/specials/Circle.tsx +0 -49
  87. package/ui/specials/CircleGroup.tsx +0 -49
  88. package/ui/specials/FullCenteredPage.tsx +0 -25
  89. package/ui/specials/Hr.tsx +0 -16
  90. package/ui/specials/RowFlex.tsx +0 -56
  91. package/ui/specials/Section.tsx +0 -18
  92. package/ui/step/Container.tsx +0 -27
  93. package/ui/step/Header.tsx +0 -16
  94. package/ui/step/Line.tsx +0 -17
  95. package/ui/step/Step.tsx +0 -17
  96. package/ui/table/Body.tsx +0 -10
  97. package/ui/table/Data.tsx +0 -15
  98. package/ui/table/Head.tsx +0 -10
  99. package/ui/table/Row.tsx +0 -16
  100. package/ui/table/Table.tsx +0 -372
  101. package/ui/text/Text.tsx +0 -179
  102. package/ui/theme/dark.tsx +0 -45
  103. package/ui/theme/darkenUtils.ts +0 -15
  104. package/ui/theme/theme.tsx +0 -48
  105. package/ui/theme/themes.ts +0 -154
  106. package/ui/tooltip/Tip.tsx +0 -34
  107. package/ui/tooltip/ToolTip.tsx +0 -20
  108. package/ui/video/Video.tsx +0 -348
  109. package/ui/video/videoFunctions.tsx +0 -19
  110. package/ui/video/videoShortcuts.ts +0 -13
  111. package/ui/view/View.tsx +0 -157
  112. package/ui/vista/Vista.tsx +0 -165
  113. package/utils/Emojis.tsx +0 -59
  114. package/utils/Functions.tsx +0 -9
  115. package/utils/getCssVariable.tsx +0 -9
@@ -1,4 +0,0 @@
1
- declare module 'react-easy-export' {
2
- export function exportToCSV(data: any, filename?: string): void;
3
- // add more exports here if needed, or use `any` as fallback
4
- }
@@ -1,69 +0,0 @@
1
- 'use client';
2
-
3
- import React, { ReactNode, useEffect } from 'react';
4
- import { motion, useAnimation } from 'framer-motion';
5
- import { useInView } from 'react-intersection-observer';
6
-
7
- const animationVariants = {
8
- 'fade-up': { hidden: { opacity: 0, y: 20 }, visible: { opacity: 1, y: 0 } },
9
- 'fade-down': { hidden: { opacity: 0, y: -20 }, visible: { opacity: 1, y: 0 } },
10
- 'fade-in': { hidden: { opacity: 0 }, visible: { opacity: 1 } },
11
- 'zoom-in': { hidden: { scale: 0.95, opacity: 0 }, visible: { scale: 1, opacity: 1 } },
12
- 'slide-left': { hidden: { x: 20, opacity: 0 }, visible: { x: 0, opacity: 1 } },
13
- 'slide-right': { hidden: { x: -20, opacity: 0 }, visible: { x: 0, opacity: 1 } },
14
- };
15
-
16
- interface ScrollInViewProps {
17
- children: ReactNode;
18
- animationType?: keyof typeof animationVariants;
19
- delay?: number;
20
- duration?: number;
21
- threshold?: number;
22
- once?: boolean;
23
- className?: string;
24
- }
25
-
26
- const ScrollInView: React.FC<ScrollInViewProps> = ({
27
- children,
28
- animationType = 'fade-up',
29
- delay = 0,
30
- duration = 0.6,
31
- threshold = 0.2,
32
- once = true,
33
- className = '',
34
- }) => {
35
- const controls = useAnimation();
36
- const [ref, inView] = useInView({
37
- threshold,
38
- triggerOnce: once,
39
- });
40
-
41
- useEffect(() => {
42
- if (inView) {
43
- controls.start('visible');
44
- } else if (!once) {
45
- controls.start('hidden');
46
- }
47
- }, [inView, once, controls]);
48
-
49
- const variants = animationVariants[animationType] || animationVariants['fade-up'];
50
-
51
- return (
52
- <motion.div
53
- ref={ref}
54
- variants={variants}
55
- initial="hidden"
56
- animate={controls}
57
- transition={{
58
- delay,
59
- duration,
60
- ease: 'linear', // SMOOTH and STRAIGHT
61
- }}
62
- className={className}
63
- >
64
- {children}
65
- </motion.div>
66
- );
67
- };
68
-
69
- export default ScrollInView;
@@ -1,125 +0,0 @@
1
- 'use client';
2
- import React, { useState } from 'react';
3
- import { PiCaretDown } from 'react-icons/pi';
4
- import RowFlex from '../specials/RowFlex';
5
-
6
- export type AccordionItemProps = {
7
- title: string;
8
- content: React.ReactNode;
9
- isOpen?: boolean;
10
- onToggle?: () => void;
11
- index?: number;
12
- icon?: React.ReactNode;
13
-
14
- // Customization
15
- itemClass?: string;
16
- titleClass?: string;
17
- iconClass?: string;
18
- contentClass?: string;
19
- activeClass?: string;
20
- };
21
-
22
- export const AccordionItem: React.FC<AccordionItemProps> = ({
23
- icon,
24
- title,
25
- content,
26
- isOpen,
27
- onToggle,
28
- itemClass = '',
29
- titleClass = '',
30
- iconClass = '',
31
- contentClass = '',
32
- activeClass = '',
33
- }) => {
34
- return (
35
- <div className={`accordion-item ${itemClass} ${isOpen ? activeClass : ''}`}>
36
- <div
37
- className={`accordion-header ${titleClass}`}
38
- onClick={onToggle}
39
- role="button"
40
- aria-expanded={isOpen}
41
- >
42
- <RowFlex alignItems="center" gap={0.6}>
43
- {icon && <div style={{ lineHeight: 0 }}>{icon}</div>}
44
- <div className="col fit">{title}</div>
45
- </RowFlex>
46
- <div
47
- style={{ lineHeight: 0 }}
48
- className={`${iconClass} ${isOpen ? 'accordion-rotated' : ''}`}
49
- >
50
- <PiCaretDown />
51
- </div>
52
- </div>
53
- <div className={`accordion-content ${contentClass} ${isOpen ? 'open' : ''}`}>
54
- <div className="accordion-inner">{content}</div>
55
- </div>
56
- </div>
57
- );
58
- };
59
-
60
- export type AccordionProps = {
61
- items: {
62
- title: string;
63
- content: React.ReactNode;
64
- icon?: React.ReactNode;
65
- }[];
66
- allowMultiple?: boolean;
67
- defaultOpenIndexes?: number[];
68
-
69
- // Custom styles
70
- itemClass?: string;
71
- titleClass?: string;
72
- iconClass?: string;
73
- contentClass?: string;
74
- activeClass?: string;
75
- };
76
-
77
- const Accordion: React.FC<AccordionProps> = ({
78
- items,
79
- allowMultiple = false,
80
- defaultOpenIndexes = [],
81
- itemClass,
82
- titleClass,
83
- iconClass,
84
- contentClass,
85
- activeClass,
86
- }) => {
87
- const [openIndexes, setOpenIndexes] = useState<number[]>(
88
- allowMultiple ? defaultOpenIndexes : [defaultOpenIndexes[0] ?? -1]
89
- );
90
-
91
- const toggleIndex = (index: number) => {
92
- if (allowMultiple) {
93
- if (openIndexes.includes(index)) {
94
- setOpenIndexes(openIndexes.filter((i) => i !== index));
95
- } else {
96
- setOpenIndexes([...openIndexes, index]);
97
- }
98
- } else {
99
- setOpenIndexes(openIndexes.includes(index) ? [] : [index]);
100
- }
101
- };
102
-
103
- return (
104
- <div className="accordion">
105
- {items.map((item, index) => (
106
- <AccordionItem
107
- key={index}
108
- index={index}
109
- icon={item.icon}
110
- title={item.title}
111
- content={item.content}
112
- isOpen={openIndexes.includes(index)}
113
- onToggle={() => toggleIndex(index)}
114
- itemClass={itemClass}
115
- titleClass={titleClass}
116
- iconClass={iconClass}
117
- contentClass={contentClass}
118
- activeClass={activeClass}
119
- />
120
- ))}
121
- </div>
122
- );
123
- };
124
-
125
- export default Accordion;
@@ -1,106 +0,0 @@
1
- 'use client';
2
- import { PiInfo , PiCheckCircleDuotone , PiWarning , PiX , PiSpinner } from "react-icons/pi";
3
- import React, { ReactNode, useEffect, useState } from 'react';
4
-
5
- interface AlertProps {
6
- message?: string;
7
- funcss?: string;
8
- type?: 'success' | 'info' | 'warning' | 'error';
9
- outlined?: boolean;
10
- fixed?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'top-middle' | 'bottom-middle' | 'middle';
11
- fullWidth?: boolean;
12
- isLoading?: boolean;
13
- children?: ReactNode;
14
- animation?: string;
15
- duration?: string;
16
- raised?: boolean;
17
- card?: boolean;
18
- variant?: string;
19
- flat?: boolean;
20
- standard?: boolean;
21
- style?: React.CSSProperties;
22
- autoHide?: boolean;
23
- autoHideDuration?: number;
24
- onClose?: () => void;
25
- }
26
-
27
- export default function Alert({
28
- message,
29
- funcss,
30
- type,
31
- outlined,
32
- fixed,
33
- raised,
34
- fullWidth,
35
- isLoading,
36
- children,
37
- animation,
38
- duration,
39
- variant,
40
- flat,
41
- standard,
42
- card,
43
- style,
44
- autoHide = false,
45
- autoHideDuration = 3000,
46
- onClose,
47
- ...rest
48
- }: AlertProps) {
49
- const [visible, setVisible] = useState(true);
50
-
51
- useEffect(() => {
52
- let timeout: NodeJS.Timeout;
53
- if (autoHide) {
54
- timeout = setTimeout(() => {
55
- setVisible(false);
56
- onClose?.();
57
- }, autoHideDuration);
58
- }
59
- return () => clearTimeout(timeout);
60
- }, [autoHide, autoHideDuration, onClose]);
61
-
62
- if (!visible) return null;
63
-
64
- return (
65
- <div
66
- className={`${
67
- fixed ? 'alert-container ' : ''
68
- } ${fixed === 'top-left' ? 'top-left' : ''}
69
- ${fixed === 'top-right' ? 'top-right' : ''}
70
- ${fixed === 'bottom-left' ? 'bottom-left' : ''}
71
- ${fixed === 'bottom-right' ? 'bottom-right' : ''}
72
- ${fixed === 'middle' ? 'middle-alert' : ''}
73
- ${fixed === 'top-middle' ? 'top-middle' : ''}
74
- ${fixed === 'bottom-middle' ? 'bottom-middle' : ''}`}
75
- >
76
- <div
77
- style={{
78
- animation: `${duration || '0.3'}s ${animation || 'ScaleUp'}`,
79
- ...style,
80
- }}
81
- className={`text-${type}800 alert ${card ? 'card' : ''} ${flat ? 'flat' : ''} ${raised ? 'raised' : ''} ${
82
- outlined
83
- ? `outline-${type}500`
84
- : `${variant || (standard ? `top-${type}` : `${type}200` + ` outline-${type}300 `)}`
85
- } ${funcss || ''} ${fullWidth ? 'width-100-p' : ''}`}
86
- {...rest}
87
- >
88
- <div className="alert-icon">
89
- {!isLoading ? (
90
- <div className={`text-${type}900`} style={{lineHeight:"0"}}>
91
- {type === 'success' && <PiCheckCircleDuotone />}
92
- {type === 'info' && <PiInfo />}
93
- {type === 'warning' && <PiWarning />}
94
- {type === 'error' && <PiX />}
95
- </div>
96
- ) : (
97
- <div className="rotate" style={{lineHeight:"0"}}>
98
- <PiSpinner />
99
- </div>
100
- )}
101
- </div>
102
- <div className="alert-text">{message || children}</div>
103
- </div>
104
- </div>
105
- );
106
- }
package/ui/aos/AOS.tsx DELETED
@@ -1,24 +0,0 @@
1
- import * as React from 'react';
2
- interface ListItemProps {
3
- children?: React.ReactNode;
4
- funcss?: string;
5
- animation?: string
6
- anchorPlacement? : string
7
- }
8
-
9
-
10
- export default function Animation({
11
- children,
12
- funcss,
13
- animation ,
14
- anchorPlacement,
15
- ...rest
16
- }: ListItemProps) {
17
-
18
- return (
19
- <div data-aos-anchor-placement={anchorPlacement || ""} className={`list ${funcss ? funcss : ''}`} {...rest} data-aos={animation ? animation : "fade-up"}>
20
- {children}
21
- </div>
22
- )
23
-
24
- }
@@ -1,115 +0,0 @@
1
- 'use client';
2
- import * as React from 'react';
3
- import { useState, useEffect } from 'react';
4
- import { usePathname } from 'next/navigation'; // <-- Updated import
5
- import Hamburger from './Hamburger';
6
-
7
- interface NavbarProps {
8
- fixedTop?: boolean;
9
- funcss?: string;
10
- padding?: string;
11
- fixedBottom?: boolean;
12
- justify?: string;
13
- children?: React.ReactNode;
14
- left?: React.ReactNode;
15
- center?: React.ReactNode;
16
- right?: React.ReactNode;
17
- sidebarTrigger?: React.ReactNode;
18
- transparent?: boolean;
19
- sideBar?: number;
20
- hasSidebar?: boolean;
21
- sidebarOpen?: boolean;
22
- openSidebar?: () => void;
23
- }
24
-
25
- export default function AppBar({
26
- fixedTop,
27
- funcss,
28
- padding,
29
- fixedBottom,
30
- justify,
31
- left,
32
- center,
33
- right,
34
- sideBar,
35
- sidebarTrigger,
36
- transparent,
37
- hasSidebar,
38
- openSidebar,
39
- sidebarOpen = false
40
- }: NavbarProps) {
41
- const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
42
- const [isMobileScreen, setIsMobileScreen] = useState(false);
43
- const pathname = usePathname(); // <-- New hook to detect path changes
44
-
45
- const toggleMenu = () => setIsMobileMenuOpen((prev) => !prev);
46
- const closeMenu = () => setIsMobileMenuOpen(false);
47
-
48
- useEffect(() => {
49
- const handleResize = () => {
50
- const isMobile = window.innerWidth < 992;
51
- setIsMobileScreen(isMobile);
52
- if (!isMobile) {
53
- closeMenu(); // close on larger screens
54
- }
55
- };
56
-
57
- handleResize(); // initial check
58
- window.addEventListener('resize', handleResize);
59
- return () => window.removeEventListener('resize', handleResize);
60
- }, []);
61
-
62
- // Automatically close menu on route (pathname) change
63
- useEffect(() => {
64
- closeMenu();
65
- }, [pathname]);
66
-
67
- const Trigger = ({ isOpen }: { isOpen: boolean }) => {
68
- return <Hamburger isOpen={isOpen} />;
69
- };
70
-
71
- return (
72
- <nav
73
- // the id will be used to get the height for the sidebar in the sidebar file
74
- id='appBar'
75
- className={`navigation-bar
76
- ${isMobileMenuOpen ? 'navbar-mobile-open' : ''}
77
- ${funcss || ''}
78
- ${fixedTop ? 'fixed_top_navbar' : ''}
79
- ${sideBar ? 'there_is_sidebar' : ''}
80
- ${transparent ? 'transparent' : ''}
81
- ${fixedBottom ? 'fixedBottom' : ''}
82
- `}
83
- style={{
84
- padding: `${padding || ''}`,
85
- justifyContent: `${justify || ''}`,
86
- }}
87
- >
88
- <div className="logoWrapper">
89
- {left}
90
- {isMobileScreen && isMobileMenuOpen && (
91
- <div className="hover-text-error pointer _closeNav" onClick={closeMenu}>
92
- <Trigger isOpen={isMobileMenuOpen} />
93
- </div>
94
- )}
95
- </div>
96
-
97
- <div className="linkWrapper">{center}</div>
98
- <div className="linkWrapper">{right}</div>
99
-
100
- {isMobileScreen && !isMobileMenuOpen && (
101
- <>
102
- {
103
- hasSidebar ?
104
- <span className="sidebar-trigger pointer hover-text-primary" onClick={openSidebar}>
105
- {sidebarTrigger || <Trigger isOpen={sidebarOpen} />}
106
- </span>
107
- : <span className="sidebar-trigger pointer hover-text-primary" onClick={toggleMenu}>
108
- {sidebarTrigger || <Trigger isOpen={isMobileMenuOpen} />}
109
- </span>
110
- }
111
- </>
112
- )}
113
- </nav>
114
- );
115
- }
@@ -1,30 +0,0 @@
1
- 'use client';
2
- import React, { useState } from 'react';
3
-
4
- interface HamburgerProps {
5
- isOpen?: boolean;
6
- toggle?: () => void;
7
- }
8
-
9
- const Hamburger: React.FC<HamburgerProps> = ({ isOpen: controlledOpen, toggle }) => {
10
- const [internalOpen, setInternalOpen] = useState(false);
11
- const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen;
12
-
13
- const handleClick = () => {
14
- if (toggle) {
15
- toggle();
16
- } else {
17
- setInternalOpen(!isOpen);
18
- }
19
- };
20
-
21
- return (
22
- <div className={`navhamburger ${isOpen ? 'navopen' : ''}`} onClick={handleClick}>
23
- <span className="navline navtop"></span>
24
- <span className="navline navmiddle"></span>
25
- <span className="navline navbottom"></span>
26
- </div>
27
- );
28
- };
29
-
30
- export default Hamburger;
@@ -1,52 +0,0 @@
1
- 'use client';
2
-
3
- import { ReactNode, MouseEventHandler } from 'react';
4
- import * as React from 'react';
5
-
6
- interface AvatarProps {
7
- funcss?: string;
8
- children?: ReactNode;
9
- size?: number;
10
- bg?: string;
11
- bordered?: boolean;
12
- color?: string;
13
- content?: ReactNode;
14
- onClick?: MouseEventHandler<HTMLDivElement>;
15
- }
16
-
17
- export default function Avatar({
18
- funcss,
19
- children,
20
- size = 2,
21
- bordered = true,
22
- bg,
23
- content,
24
- color,
25
- onClick,
26
- ...rest
27
- }: AvatarProps) {
28
- return (
29
- <div>
30
- <div
31
- className={`
32
- animated
33
- pointer
34
- fade-in
35
- avatar
36
- ${funcss || ''}
37
- ${bg || 'lighter'}
38
- ${bordered ? 'border' : ''}
39
- ${color ? `text-${color}` : ''}
40
- `}
41
- style={{
42
- width: `${size}rem`,
43
- height: `${size}rem`,
44
- }}
45
- onClick={onClick}
46
- {...rest}
47
- >
48
- {content || children}
49
- </div>
50
- </div>
51
- );
52
- }
package/ui/blob/Blob.tsx DELETED
@@ -1,34 +0,0 @@
1
- import * as React from 'react';
2
-
3
- interface BlobProps {
4
- height?: string;
5
- width?: string;
6
- background?: string;
7
- funcss?: string;
8
- shape?: string;
9
- }
10
-
11
- const Blob: React.FC<BlobProps> = ({
12
- height = '',
13
- width = '',
14
- background = '',
15
- funcss = '',
16
- shape = '',
17
- }) => {
18
- return (
19
- <div
20
- className={`${funcss}`}
21
- style={{
22
- height,
23
- width,
24
- background: background ? `url(${background})` : '',
25
- backgroundSize: 'cover',
26
- backgroundRepeat: 'no-repeat',
27
- borderRadius: shape,
28
- transition: '0.3s linear',
29
- }}
30
- ></div>
31
- );
32
- };
33
-
34
- export default Blob;
@@ -1,48 +0,0 @@
1
- 'use client';
2
- import * as React from 'react';
3
- import { PiCaretLeft, PiCaretRight } from 'react-icons/pi';
4
- interface BreadCrumbProps {
5
- type?: 'slash' | 'greater' | 'less' | 'straight';
6
- funcss?: string;
7
- color?: string;
8
- }
9
-
10
- export default function BreadCrumb({ type, funcss, color }: BreadCrumbProps) {
11
- return (
12
- <span >
13
- {type === 'slash' && (
14
- <span
15
- style={{lineHeight:"0"}}
16
- className={` ${funcss ? funcss : ''} ${color ? 'text-' + color : ''}`}
17
- >
18
- {' / '}
19
- </span>
20
- )}
21
- {type === 'greater' && (
22
- <span
23
- className={` ${funcss ? funcss : ''} ${color ? 'text-' + color : ''}`}
24
- >
25
- <span style={{lineHeight:"0"}} className={`${color ? `text-${color}` : ''}`}>
26
- <PiCaretRight />
27
- </span>
28
- </span>
29
- )}
30
- {type === 'less' && (
31
- <span
32
- className={` ${funcss ? funcss : ''} ${color ? 'text-' + color : ''}`}
33
- > <span style={{lineHeight:"0"}} className={`${color ? `text-${color}` : ''}`}>
34
- <PiCaretLeft />
35
- </span>
36
- </span>
37
- )}
38
- {type === 'straight' && (
39
- <span
40
- style={{lineHeight:"0"}}
41
- className={` ${funcss ? funcss : ''} ${color ? 'text-' + color : ''}`}
42
- >
43
- {' | '}
44
- </span>
45
- )}
46
- </span>
47
- );
48
- }