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.
@@ -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;
@@ -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': '#2e215c', '--borderRgb': '46, 33, 92', '--lighter': '#2f2258', '--linkColor': '#d1c4e9', '--accent': '#9575cd', '--cardBg': '#1a1333', '--card': "4px 4px 8px #120c26, -4px -4px 8px #221a40" }, exports.darkerDefaults),
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
  };
@@ -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': '#2e215c',
131
- '--borderRgb': '46, 33, 92',
132
- '--lighter': '#2f2258',
130
+ '--borderColor': '#443a66',
131
+ '--borderRgb': '68, 58, 102',
132
+ '--lighter': '#241b3f',
133
133
  '--linkColor': '#d1c4e9',
134
134
  '--accent': '#9575cd',
135
135
  '--cardBg': '#1a1333',
@@ -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, _j = _a.sectionClass, sectionClass = _j === void 0 ? '' : _j, _k = _a.containerClass, containerClass = _k === void 0 ? '' : _k, _l = _a.textWrapperClass, textWrapperClass = _l === void 0 ? '' : _l, _m = _a.imageWrapperClass, imageWrapperClass = _m === void 0 ? '' : _m, children = _a.children,
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
- _o = _a.showGradient,
24
+ _q = _a.showGradient,
25
25
  // Gradient Props
26
- showGradient = _o === void 0 ? false : _o, _p = _a.gradientPosition, gradientPosition = _p === void 0 ? 'bottom-right' : _p, _q = _a.gradientSize, gradientSize = _q === void 0 ? '300px' : _q, _r = _a.blurry, blurry = _r === void 0 ? 100 : _r, _s = _a.opacity, opacity = _s === void 0 ? 0.4 : _s, gradientColors = _a.gradientColors;
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(background, " ").concat(padding, " ").concat(layoutClass, " ").concat(sectionClass, " ").concat(funcss), style: { position: 'relative', overflow: 'hidden' } },
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,
@@ -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 ${background} ${padding} ${layoutClass} ${sectionClass} ${funcss}`}
117
- style={{ position: 'relative', overflow: 'hidden' }}
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 }}>