funuicss 2.7.13 → 2.7.15
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 +115 -3
- package/index.d.ts +1 -0
- package/index.js +3 -1
- package/index.tsx +1 -0
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/ui/carousel/Carousel.d.ts +1 -0
- package/ui/carousel/Carousel.js +70 -16
- package/ui/carousel/Carousel.tsx +116 -41
- package/ui/richtext/RichText.d.ts +8 -6
- package/ui/richtext/RichText.js +31 -27
- package/ui/richtext/RichText.tsx +66 -55
- package/ui/slider/Slider.d.ts +14 -0
- package/ui/slider/Slider.js +57 -0
- package/ui/slider/Slider.tsx +75 -0
- package/ui/theme/themes.js +1 -1
- package/ui/theme/themes.ts +3 -3
- package/ui/vista/Vista.d.ts +2 -0
- package/ui/vista/Vista.js +17 -4
- package/ui/vista/Vista.tsx +22 -2
|
@@ -0,0 +1,75 @@
|
|
|
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/theme/themes.js
CHANGED
|
@@ -103,6 +103,6 @@ exports.themes = {
|
|
|
103
103
|
'--cardBg': 'rgba(255, 255, 255, 0.6)',
|
|
104
104
|
'--card': "4px 4px 10px rgba(0, 0, 0, 0.05), -4px -4px 10px rgba(255, 255, 255, 0.5)",
|
|
105
105
|
},
|
|
106
|
-
'midnight-purple': __assign({ '--page-bg': '#1a1333', '--text-color': '#e0e0ff', '--text-muted': '#b39ddb', '--raiseThemes': 'rgba(26, 19, 51, 0.5)', '--raiseOpaque': 'rgba(26, 19, 51, 0.85)', '--borderColor': '#
|
|
106
|
+
'midnight-purple': __assign({ '--page-bg': '#1a1333', '--text-color': '#e0e0ff', '--text-muted': '#b39ddb', '--raiseThemes': 'rgba(26, 19, 51, 0.5)', '--raiseOpaque': 'rgba(26, 19, 51, 0.85)', '--borderColor': '#443a66', '--borderRgb': '68, 58, 102', '--lighter': '#241b3f', '--linkColor': '#d1c4e9', '--accent': '#9575cd', '--cardBg': '#1a1333', '--card': "4px 4px 8px #120c26, -4px -4px 8px #221a40" }, exports.darkerDefaults),
|
|
107
107
|
'cyber-metal': __assign({ '--page-bg': '#0f1115', '--text-color': '#d0d0d0', '--text-muted': '#888', '--raiseThemes': 'rgba(15, 17, 21, 0.4)', '--raiseOpaque': 'rgba(15, 17, 21, 0.85)', '--borderColor': '#2a2a2a', '--borderRgb': '42, 42, 42', '--lighter': '#1a1a1a', '--linkColor': '#00ffe0', '--accent': '#39ff14', '--cardBg': '#0f1115', '--card': "6px 6px 12px #050607, -6px -6px 12px #1c1f25" }, exports.darkerDefaults)
|
|
108
108
|
};
|
package/ui/theme/themes.ts
CHANGED
|
@@ -127,9 +127,9 @@ export const themes = {
|
|
|
127
127
|
'--text-muted': '#b39ddb',
|
|
128
128
|
'--raiseThemes': 'rgba(26, 19, 51, 0.5)',
|
|
129
129
|
'--raiseOpaque': 'rgba(26, 19, 51, 0.85)',
|
|
130
|
-
'--borderColor': '#
|
|
131
|
-
'--borderRgb': '
|
|
132
|
-
'--lighter': '#
|
|
130
|
+
'--borderColor': '#443a66',
|
|
131
|
+
'--borderRgb': '68, 58, 102',
|
|
132
|
+
'--lighter': '#241b3f',
|
|
133
133
|
'--linkColor': '#d1c4e9',
|
|
134
134
|
'--accent': '#9575cd',
|
|
135
135
|
'--cardBg': '#1a1333',
|
package/ui/vista/Vista.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
type VistaProps = {
|
|
3
3
|
layout?: 'centered' | 'imageLeft' | 'imageRight' | 'stacked';
|
|
4
|
+
pattern?: 'grid' | 'dots' | 'diagonal' | 'checkerboard' | 'horizontal' | 'vertical';
|
|
5
|
+
patternOpacity?: number;
|
|
4
6
|
reverse?: boolean;
|
|
5
7
|
background?: string;
|
|
6
8
|
padding?: string;
|
package/ui/vista/Vista.js
CHANGED
|
@@ -19,11 +19,11 @@ var react_1 = __importDefault(require("react"));
|
|
|
19
19
|
var ScrollInView_1 = __importDefault(require("../ScrollInView/ScrollInView"));
|
|
20
20
|
var getCssVariable_1 = require("../../utils/getCssVariable");
|
|
21
21
|
var Vista = function (_a) {
|
|
22
|
-
var _b = _a.layout, layout = _b === void 0 ? 'imageRight' : _b, _c = _a.reverse, reverse = _c === void 0 ? false : _c, _d = _a.background, background = _d === void 0 ? '' : _d, _e = _a.padding, padding = _e === void 0 ? 'padding-lg' : _e, _f = _a.textAlign, textAlign = _f === void 0 ? 'left' : _f, _g = _a.imgPosition, imgPosition = _g === void 0 ? 'top' : _g, _h = _a.funcss, funcss = _h === void 0 ? '' : _h, heading = _a.heading, subheading = _a.subheading, content = _a.content, image = _a.image, cta = _a.cta,
|
|
22
|
+
var _b = _a.layout, layout = _b === void 0 ? 'imageRight' : _b, _c = _a.reverse, reverse = _c === void 0 ? false : _c, _d = _a.background, background = _d === void 0 ? '' : _d, _e = _a.padding, padding = _e === void 0 ? 'padding-lg' : _e, _f = _a.textAlign, textAlign = _f === void 0 ? 'left' : _f, _g = _a.imgPosition, imgPosition = _g === void 0 ? 'top' : _g, _h = _a.funcss, funcss = _h === void 0 ? '' : _h, _j = _a.pattern, pattern = _j === void 0 ? '' : _j, _k = _a.patternOpacity, patternOpacity = _k === void 0 ? pattern === 'grid' ? 0.15 : pattern === 'dots' ? 0.4 : pattern === 'diagonal' ? 0.2 : pattern === 'checkerboard' ? 0.2 : pattern === 'horizontal' ? 0.2 : pattern === 'vertical' ? 0.2 : 0.1 : _k, heading = _a.heading, subheading = _a.subheading, content = _a.content, image = _a.image, cta = _a.cta, _l = _a.sectionClass, sectionClass = _l === void 0 ? '' : _l, _m = _a.containerClass, containerClass = _m === void 0 ? '' : _m, _o = _a.textWrapperClass, textWrapperClass = _o === void 0 ? '' : _o, _p = _a.imageWrapperClass, imageWrapperClass = _p === void 0 ? '' : _p, children = _a.children,
|
|
23
23
|
// Gradient Props
|
|
24
|
-
|
|
24
|
+
_q = _a.showGradient,
|
|
25
25
|
// Gradient Props
|
|
26
|
-
showGradient =
|
|
26
|
+
showGradient = _q === void 0 ? false : _q, _r = _a.gradientPosition, gradientPosition = _r === void 0 ? 'bottom-right' : _r, _s = _a.gradientSize, gradientSize = _s === void 0 ? '300px' : _s, _t = _a.blurry, blurry = _t === void 0 ? 100 : _t, _u = _a.opacity, opacity = _u === void 0 ? 0.4 : _u, gradientColors = _a.gradientColors;
|
|
27
27
|
var layoutClass = [
|
|
28
28
|
layout,
|
|
29
29
|
reverse ? 'reverse' : '',
|
|
@@ -51,7 +51,20 @@ var Vista = function (_a) {
|
|
|
51
51
|
var secondaryColor = (0, getCssVariable_1.getCssVariableValue)('secondary');
|
|
52
52
|
var gradientStyle = __assign({ position: 'absolute', width: gradientSize, height: gradientSize, background: gradientColors || "radial-gradient(circle, ".concat(primaryColor, ", ").concat(secondaryColor, ")"), opacity: opacity, filter: "blur(".concat(blurry, "px)"), pointerEvents: 'none', zIndex: 0 }, positionStyles[gradientPosition]);
|
|
53
53
|
return (react_1.default.createElement(ScrollInView_1.default, null,
|
|
54
|
-
react_1.default.createElement("div", { className: "vista ".concat(
|
|
54
|
+
react_1.default.createElement("div", { className: "vista \n ".concat(pattern === 'grid' ? 'grid-bg' :
|
|
55
|
+
pattern === 'dots' ? 'bg-pattern-dots' :
|
|
56
|
+
pattern === 'diagonal' ? 'bg-pattern-diagonal' :
|
|
57
|
+
pattern === 'checkerboard' ? 'bg-pattern-checkerboard' :
|
|
58
|
+
pattern === 'horizontal' ? 'bg-pattern-horizontal' :
|
|
59
|
+
pattern === 'vertical' ? 'bg-pattern-vertical' : '', " \n ").concat(background, " ").concat(padding, " ").concat(layoutClass, " ").concat(sectionClass, " ").concat(funcss), style: { position: 'relative',
|
|
60
|
+
overflow: 'hidden',
|
|
61
|
+
backgroundImage: pattern === 'grid' ? "linear-gradient(to right, rgba(var(--borderRgb), ".concat(patternOpacity, ") 1px, transparent 1px),\n linear-gradient(to bottom, rgba(var(--borderRgb), ").concat(patternOpacity, ") 1px, transparent 1px)") :
|
|
62
|
+
pattern === 'dots' ? "radial-gradient(rgba(var(--borderRgb), ".concat(patternOpacity, ") 1px, transparent 1px)") :
|
|
63
|
+
pattern === 'diagonal' ? "repeating-linear-gradient(45deg, rgba(var(--borderRgb), ".concat(patternOpacity, "), rgba(var(--borderRgb), ").concat(patternOpacity, ") 1px, transparent 1px, transparent 10px)") :
|
|
64
|
+
pattern === 'checkerboard' ? "linear-gradient(45deg, rgba(var(--borderRgb), ".concat(patternOpacity, ") 25%, transparent 25%), linear-gradient(-45deg, rgba(var(--borderRgb), ").concat(patternOpacity, ") 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(var(--borderRgb), ").concat(patternOpacity, ") 75%), linear-gradient(-45deg, transparent 75%, rgba(var(--borderRgb), ").concat(patternOpacity, ") 75%)") :
|
|
65
|
+
pattern === 'horizontal' ? "linear-gradient(to bottom, rgba(var(--borderRgb), ".concat(patternOpacity, ") 1px, transparent 1px)") :
|
|
66
|
+
pattern === 'vertical' ? "linear-gradient(to right, rgba(var(--borderRgb), ".concat(patternOpacity, ") 1px, transparent 1px)") : ''
|
|
67
|
+
} },
|
|
55
68
|
showGradient && react_1.default.createElement("div", { style: gradientStyle }),
|
|
56
69
|
react_1.default.createElement("div", { className: "vista-container ".concat(containerClass), style: { position: 'relative', zIndex: 1 } }, isCentered || isStacked ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
57
70
|
(imgPosition === 'top') && ImageContent,
|
package/ui/vista/Vista.tsx
CHANGED
|
@@ -5,6 +5,8 @@ import { getCssVariableValue } from '../../utils/getCssVariable';
|
|
|
5
5
|
|
|
6
6
|
type VistaProps = {
|
|
7
7
|
layout?: 'centered' | 'imageLeft' | 'imageRight' | 'stacked';
|
|
8
|
+
pattern?: 'grid' | 'dots' | 'diagonal' | 'checkerboard' | 'horizontal' | 'vertical';
|
|
9
|
+
patternOpacity?: number;
|
|
8
10
|
reverse?: boolean;
|
|
9
11
|
background?: string;
|
|
10
12
|
padding?: string;
|
|
@@ -41,6 +43,8 @@ const Vista: React.FC<VistaProps> = ({
|
|
|
41
43
|
textAlign = 'left',
|
|
42
44
|
imgPosition = 'top',
|
|
43
45
|
funcss = '',
|
|
46
|
+
pattern = '',
|
|
47
|
+
patternOpacity = pattern === 'grid' ? 0.15 : pattern === 'dots' ? 0.4 : pattern === 'diagonal' ? 0.2 : pattern === 'checkerboard' ? 0.2 : pattern === 'horizontal' ? 0.2 : pattern === 'vertical' ? 0.2 : 0.1,
|
|
44
48
|
|
|
45
49
|
heading,
|
|
46
50
|
subheading,
|
|
@@ -113,8 +117,24 @@ const Vista: React.FC<VistaProps> = ({
|
|
|
113
117
|
return (
|
|
114
118
|
<ScrollInView>
|
|
115
119
|
<div
|
|
116
|
-
className={`vista
|
|
117
|
-
|
|
120
|
+
className={`vista
|
|
121
|
+
${pattern === 'grid' ? 'grid-bg' :
|
|
122
|
+
pattern === 'dots' ? 'bg-pattern-dots' :
|
|
123
|
+
pattern === 'diagonal' ? 'bg-pattern-diagonal' :
|
|
124
|
+
pattern === 'checkerboard' ? 'bg-pattern-checkerboard' :
|
|
125
|
+
pattern === 'horizontal' ? 'bg-pattern-horizontal' :
|
|
126
|
+
pattern === 'vertical' ? 'bg-pattern-vertical' : ''}
|
|
127
|
+
${background} ${padding} ${layoutClass} ${sectionClass} ${funcss}`}
|
|
128
|
+
style={{ position: 'relative',
|
|
129
|
+
overflow: 'hidden' ,
|
|
130
|
+
backgroundImage: pattern === 'grid' ? `linear-gradient(to right, rgba(var(--borderRgb), ${patternOpacity}) 1px, transparent 1px),
|
|
131
|
+
linear-gradient(to bottom, rgba(var(--borderRgb), ${patternOpacity}) 1px, transparent 1px)` :
|
|
132
|
+
pattern === 'dots' ? `radial-gradient(rgba(var(--borderRgb), ${patternOpacity}) 1px, transparent 1px)` :
|
|
133
|
+
pattern === 'diagonal' ? `repeating-linear-gradient(45deg, rgba(var(--borderRgb), ${patternOpacity}), rgba(var(--borderRgb), ${patternOpacity}) 1px, transparent 1px, transparent 10px)` :
|
|
134
|
+
pattern === 'checkerboard' ? `linear-gradient(45deg, rgba(var(--borderRgb), ${patternOpacity}) 25%, transparent 25%), linear-gradient(-45deg, rgba(var(--borderRgb), ${patternOpacity}) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(var(--borderRgb), ${patternOpacity}) 75%), linear-gradient(-45deg, transparent 75%, rgba(var(--borderRgb), ${patternOpacity}) 75%)` :
|
|
135
|
+
pattern === 'horizontal' ? `linear-gradient(to bottom, rgba(var(--borderRgb), ${patternOpacity}) 1px, transparent 1px)` :
|
|
136
|
+
pattern === 'vertical' ? `linear-gradient(to right, rgba(var(--borderRgb), ${patternOpacity}) 1px, transparent 1px)` : ''
|
|
137
|
+
}}
|
|
118
138
|
>
|
|
119
139
|
{showGradient && <div style={gradientStyle} />}
|
|
120
140
|
<div className={`vista-container ${containerClass}`} style={{ position: 'relative', zIndex: 1 }}>
|