funuicss 2.7.15 → 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 (120) hide show
  1. package/css/fun.css +6663 -6653
  2. package/index.d.ts +3 -0
  3. package/index.js +7 -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 -8
  11. package/ui/flex/Flex.js +15 -9
  12. package/ui/flex/FlexItem.d.ts +17 -0
  13. package/ui/flex/FlexItem.js +39 -0
  14. package/ui/notification/Notification.d.ts +7 -3
  15. package/ui/notification/Notification.js +18 -14
  16. package/ui/scrolltotop/ScrollToTop.d.ts +3 -0
  17. package/ui/scrolltotop/ScrollToTop.js +61 -0
  18. package/ui/video/Video.d.ts +2 -1
  19. package/ui/video/Video.js +10 -10
  20. package/ui/video/videoShortcuts.d.ts +1 -1
  21. package/ui/video/videoShortcuts.js +2 -2
  22. package/ui/view/View.d.ts +27 -38
  23. package/ui/view/View.js +10 -38
  24. package/ui/vista/Vista.d.ts +6 -1
  25. package/ui/vista/Vista.js +33 -4
  26. package/assets/colors/colors.d.ts +0 -347
  27. package/assets/colors/colors.js +0 -348
  28. package/assets/colors/colors.tsx +0 -697
  29. package/hooks/useHls.tsx +0 -69
  30. package/index.tsx +0 -57
  31. package/js/Cookie.tsx +0 -91
  32. package/js/Fun.jsx +0 -225
  33. package/js/Fun.tsx +0 -239
  34. package/tsconfig.json +0 -20
  35. package/types/react-easy-export.d.ts +0 -4
  36. package/ui/ScrollInView/ScrollInView.tsx +0 -69
  37. package/ui/accordion/Accordion.tsx +0 -125
  38. package/ui/alert/Alert.tsx +0 -106
  39. package/ui/aos/AOS.tsx +0 -24
  40. package/ui/appbar/AppBar.tsx +0 -115
  41. package/ui/appbar/Hamburger.tsx +0 -30
  42. package/ui/avatar/Avatar.tsx +0 -52
  43. package/ui/blob/Blob.tsx +0 -34
  44. package/ui/breadcrumb/BreadCrumb.tsx +0 -48
  45. package/ui/button/Button.tsx +0 -153
  46. package/ui/calendar/ActivityCard.tsx +0 -27
  47. package/ui/calendar/Calendar.tsx +0 -343
  48. package/ui/card/Card.tsx +0 -117
  49. package/ui/card/CardBody.tsx +0 -14
  50. package/ui/card/CardFab.tsx +0 -16
  51. package/ui/card/CardFooter.tsx +0 -14
  52. package/ui/card/CardHeader.tsx +0 -14
  53. package/ui/carousel/Carousel.tsx +0 -148
  54. package/ui/chart/Bar.tsx +0 -121
  55. package/ui/chart/Line.tsx +0 -186
  56. package/ui/chart/Pie.tsx +0 -127
  57. package/ui/container/Container.tsx +0 -38
  58. package/ui/datepicker/DatePicker.tsx +0 -148
  59. package/ui/div/Div.tsx +0 -61
  60. package/ui/drop/Action.tsx +0 -16
  61. package/ui/drop/Down.tsx +0 -18
  62. package/ui/drop/Dropdown.tsx +0 -117
  63. package/ui/drop/Item.tsx +0 -15
  64. package/ui/drop/Menu.tsx +0 -40
  65. package/ui/drop/Up.tsx +0 -18
  66. package/ui/flex/Flex.tsx +0 -115
  67. package/ui/grid/Col.tsx +0 -43
  68. package/ui/grid/Grid.tsx +0 -37
  69. package/ui/input/Iconic.tsx +0 -43
  70. package/ui/input/Input.tsx +0 -409
  71. package/ui/list/Item.tsx +0 -18
  72. package/ui/list/List.tsx +0 -45
  73. package/ui/loader/Loader.tsx +0 -47
  74. package/ui/modal/Action.tsx +0 -14
  75. package/ui/modal/Close.tsx +0 -14
  76. package/ui/modal/Content.tsx +0 -15
  77. package/ui/modal/Header.tsx +0 -19
  78. package/ui/modal/Modal.tsx +0 -140
  79. package/ui/notification/Content.tsx +0 -14
  80. package/ui/notification/Footer.tsx +0 -14
  81. package/ui/notification/Header.tsx +0 -14
  82. package/ui/notification/Notification.tsx +0 -62
  83. package/ui/page/NotFound.tsx +0 -67
  84. package/ui/page/UnAuthorized.tsx +0 -64
  85. package/ui/progress/Bar.tsx +0 -114
  86. package/ui/richtext/RichText.tsx +0 -156
  87. package/ui/sidebar/SideBar.tsx +0 -202
  88. package/ui/sidebar/SideContent.tsx +0 -16
  89. package/ui/slider/Slider.tsx +0 -75
  90. package/ui/snackbar/SnackBar.tsx +0 -56
  91. package/ui/specials/Circle.tsx +0 -49
  92. package/ui/specials/CircleGroup.tsx +0 -49
  93. package/ui/specials/FullCenteredPage.tsx +0 -25
  94. package/ui/specials/Hr.tsx +0 -16
  95. package/ui/specials/RowFlex.tsx +0 -56
  96. package/ui/specials/Section.tsx +0 -18
  97. package/ui/step/Container.tsx +0 -27
  98. package/ui/step/Header.tsx +0 -16
  99. package/ui/step/Line.tsx +0 -17
  100. package/ui/step/Step.tsx +0 -17
  101. package/ui/table/Body.tsx +0 -10
  102. package/ui/table/Data.tsx +0 -15
  103. package/ui/table/Head.tsx +0 -10
  104. package/ui/table/Row.tsx +0 -16
  105. package/ui/table/Table.tsx +0 -372
  106. package/ui/text/Text.tsx +0 -179
  107. package/ui/theme/dark.tsx +0 -45
  108. package/ui/theme/darkenUtils.ts +0 -15
  109. package/ui/theme/theme.tsx +0 -48
  110. package/ui/theme/themes.ts +0 -154
  111. package/ui/tooltip/Tip.tsx +0 -34
  112. package/ui/tooltip/ToolTip.tsx +0 -20
  113. package/ui/video/Video.tsx +0 -347
  114. package/ui/video/videoFunctions.tsx +0 -19
  115. package/ui/video/videoShortcuts.ts +0 -12
  116. package/ui/view/View.tsx +0 -157
  117. package/ui/vista/Vista.tsx +0 -165
  118. package/utils/Emojis.tsx +0 -59
  119. package/utils/Functions.tsx +0 -9
  120. 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
- }