funuicss 2.6.1 → 2.6.3

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/ui/alert/Alert.js CHANGED
@@ -78,11 +78,11 @@ function Alert(_a) {
78
78
  react_1.default.createElement("div", __assign({ style: __assign({ animation: "".concat(duration || '0.3', "s ").concat(animation || 'ScaleUp') }, style), className: "text-".concat(type, "800 alert ").concat(card ? 'card' : '', " ").concat(flat ? 'flat' : '', " ").concat(raised ? 'raised' : '', " ").concat(outlined
79
79
  ? "outline-".concat(type, "500")
80
80
  : "".concat(variant || (standard ? "top-".concat(type) : "".concat(type, "200") + " outline-".concat(type, "300 "))), " ").concat(funcss || '', " ").concat(fullWidth ? 'width-100-p' : '') }, rest),
81
- react_1.default.createElement("div", { className: "alert-icon" }, !isLoading ? (react_1.default.createElement("div", { className: "text-".concat(type), style: { lineHeight: "0" } },
81
+ react_1.default.createElement("div", { className: "alert-icon" }, !isLoading ? (react_1.default.createElement("div", { className: "text-".concat(type, "900"), style: { lineHeight: "0" } },
82
82
  type === 'success' && react_1.default.createElement(pi_1.PiCheckCircleDuotone, null),
83
83
  type === 'info' && react_1.default.createElement(pi_1.PiInfo, null),
84
84
  type === 'warning' && react_1.default.createElement(pi_1.PiWarning, null),
85
- type === 'error' && react_1.default.createElement(pi_1.PiX, null))) : (react_1.default.createElement("span", { className: "rotate" },
85
+ type === 'error' && react_1.default.createElement(pi_1.PiX, null))) : (react_1.default.createElement("span", { className: "rotate", style: { lineHeight: "0" } },
86
86
  react_1.default.createElement(pi_1.PiSpinner, null)))),
87
87
  react_1.default.createElement("div", { className: "alert-text" }, message || children))));
88
88
  }
@@ -87,14 +87,14 @@ export default function Alert({
87
87
  >
88
88
  <div className="alert-icon">
89
89
  {!isLoading ? (
90
- <div className={`text-${type}`} style={{lineHeight:"0"}}>
90
+ <div className={`text-${type}900`} style={{lineHeight:"0"}}>
91
91
  {type === 'success' && <PiCheckCircleDuotone />}
92
92
  {type === 'info' && <PiInfo />}
93
93
  {type === 'warning' && <PiWarning />}
94
94
  {type === 'error' && <PiX />}
95
95
  </div>
96
96
  ) : (
97
- <span className="rotate">
97
+ <span className="rotate" style={{lineHeight:"0"}}>
98
98
  <PiSpinner />
99
99
  </span>
100
100
  )}
@@ -13,6 +13,12 @@ interface DropdownProps {
13
13
  hoverable?: boolean;
14
14
  openOnHover?: boolean;
15
15
  className?: string;
16
+ width?: string;
17
+ minWidth?: string;
18
+ maxWidth?: string;
19
+ height?: string;
20
+ minHeight?: string;
21
+ maxHeight?: string;
16
22
  }
17
23
  declare const Dropdown: React.FC<DropdownProps>;
18
24
  export default Dropdown;
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  var react_1 = __importStar(require("react"));
38
38
  var Dropdown = function (_a) {
39
- var _b = _a.direction, direction = _b === void 0 ? 'dropdown' : _b, _c = _a.position, position = _c === void 0 ? 'left' : _c, button = _a.button, items = _a.items, _d = _a.hoverable, hoverable = _d === void 0 ? true : _d, _e = _a.openOnHover, openOnHover = _e === void 0 ? true : _e, _f = _a.className, className = _f === void 0 ? '' : _f;
39
+ var _b = _a.direction, direction = _b === void 0 ? 'dropdown' : _b, _c = _a.position, position = _c === void 0 ? 'left' : _c, button = _a.button, items = _a.items, _d = _a.hoverable, hoverable = _d === void 0 ? true : _d, _e = _a.openOnHover, openOnHover = _e === void 0 ? true : _e, _f = _a.className, className = _f === void 0 ? '' : _f, width = _a.width, minWidth = _a.minWidth, maxWidth = _a.maxWidth, height = _a.height, minHeight = _a.minHeight, maxHeight = _a.maxHeight;
40
40
  var containerRef = (0, react_1.useRef)(null);
41
41
  var _g = (0, react_1.useState)(false), open = _g[0], setOpen = _g[1];
42
42
  var containerClass = "".concat(direction, " ").concat(position, " ").concat(className).trim();
@@ -55,7 +55,15 @@ var Dropdown = function (_a) {
55
55
  var showMenu = openOnHover || open;
56
56
  return (react_1.default.createElement("div", { ref: containerRef, className: containerClass, onMouseEnter: function () { return openOnHover && setOpen(true); }, onMouseLeave: function () { return openOnHover && setOpen(false); } },
57
57
  react_1.default.createElement("div", { className: "drop-button", onClick: function () { return !openOnHover && setOpen(!open); }, style: { cursor: !openOnHover ? 'pointer' : undefined } }, button),
58
- react_1.default.createElement("div", { className: menuClass, style: { display: showMenu ? 'block' : 'none' } }, items.map(function (item, index) { return (react_1.default.createElement("div", { key: index, className: "drop-item", onClick: function () {
58
+ react_1.default.createElement("div", { className: menuClass, style: {
59
+ display: showMenu ? 'block' : 'none',
60
+ width: width,
61
+ minWidth: minWidth,
62
+ maxWidth: maxWidth,
63
+ height: height,
64
+ minHeight: minHeight,
65
+ maxHeight: maxHeight,
66
+ } }, items.map(function (item, index) { return (react_1.default.createElement("div", { key: index, className: "drop-item hoverable", onClick: function () {
59
67
  var _a;
60
68
  (_a = item.onClick) === null || _a === void 0 ? void 0 : _a.call(item);
61
69
  if (!openOnHover)
@@ -17,6 +17,12 @@ interface DropdownProps {
17
17
  hoverable?: boolean;
18
18
  openOnHover?: boolean;
19
19
  className?: string;
20
+ width?: string;
21
+ minWidth?: string;
22
+ maxWidth?: string;
23
+ height?: string;
24
+ minHeight?: string;
25
+ maxHeight?: string;
20
26
  }
21
27
 
22
28
  const Dropdown: React.FC<DropdownProps> = ({
@@ -27,6 +33,12 @@ const Dropdown: React.FC<DropdownProps> = ({
27
33
  hoverable = true,
28
34
  openOnHover = true,
29
35
  className = '',
36
+ width,
37
+ minWidth,
38
+ maxWidth,
39
+ height,
40
+ minHeight,
41
+ maxHeight,
30
42
  }) => {
31
43
  const containerRef = useRef<HTMLDivElement>(null);
32
44
  const [open, setOpen] = useState(false);
@@ -66,12 +78,20 @@ const Dropdown: React.FC<DropdownProps> = ({
66
78
 
67
79
  <div
68
80
  className={menuClass}
69
- style={{ display: showMenu ? 'block' : 'none' }}
81
+ style={{
82
+ display: showMenu ? 'block' : 'none',
83
+ width,
84
+ minWidth,
85
+ maxWidth,
86
+ height,
87
+ minHeight,
88
+ maxHeight,
89
+ }}
70
90
  >
71
91
  {items.map((item, index) => (
72
92
  <div
73
93
  key={index}
74
- className="drop-item"
94
+ className="drop-item hoverable"
75
95
  onClick={() => {
76
96
  item.onClick?.();
77
97
  if (!openOnHover) setOpen(false);
@@ -86,3 +106,4 @@ const Dropdown: React.FC<DropdownProps> = ({
86
106
  };
87
107
 
88
108
  export default Dropdown;
109
+
@@ -59,8 +59,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
59
59
  exports.default = Circle;
60
60
  var React = __importStar(require("react"));
61
61
  function Circle(_a) {
62
- var _b = _a.size, size = _b === void 0 ? 2 : _b, funcss = _a.funcss, _c = _a.bg, bg = _c === void 0 ? 'lighter' : _c, color = _a.color, children = _a.children, hoverable = _a.hoverable, raised = _a.raised, key = _a.key, onClick = _a.onClick, bordered = _a.bordered, rest = __rest(_a, ["size", "funcss", "bg", "color", "children", "hoverable", "raised", "key", "onClick", "bordered"]);
63
- return (React.createElement("div", __assign({ className: " ".concat(bordered ? "border" : "", "pointer avatar ").concat(funcss || '', " ").concat("text-" + (color === null || color === void 0 ? void 0 : color.trim()) || '', " ").concat(raised ? "raised" : '', " ").concat(bg || 'lighter', " ").concat(hoverable ? 'hoverable' : ''), style: {
62
+ var _b = _a.size, size = _b === void 0 ? 2 : _b, funcss = _a.funcss, bg = _a.bg, color = _a.color, children = _a.children, hoverable = _a.hoverable, raised = _a.raised, key = _a.key, onClick = _a.onClick, bordered = _a.bordered, rest = __rest(_a, ["size", "funcss", "bg", "color", "children", "hoverable", "raised", "key", "onClick", "bordered"]);
63
+ return (React.createElement("div", __assign({ className: " animated fade-in ".concat(bordered ? "border" : "", " pointer avatar ").concat(funcss || '', " ").concat("text-" + (color === null || color === void 0 ? void 0 : color.trim()) || '', " ").concat(raised ? "raised" : '', " ").concat(bg || '', " ").concat(hoverable ? 'hoverable' : ''), style: {
64
64
  width: "".concat(size + "rem" || '2.3rem'),
65
65
  height: "".concat(size + "rem" || '2.3rem'),
66
66
  }, key: key, onClick: onClick }, rest),
@@ -20,7 +20,7 @@ interface Circle_Props extends HTMLProps<HTMLDivElement> {
20
20
  export default function Circle({
21
21
  size = 2,
22
22
  funcss,
23
- bg = 'lighter',
23
+ bg,
24
24
  color,
25
25
  children,
26
26
  hoverable,
@@ -32,7 +32,7 @@ export default function Circle({
32
32
  }: Circle_Props) {
33
33
  return (
34
34
  <div
35
- className={` ${bordered ? "border" : ""}pointer avatar ${funcss || ''} ${`text-` + color?.trim() || ''} ${raised ? "raised" : ''} ${bg || 'lighter'} ${
35
+ className={` animated fade-in ${bordered ? "border" : ""} pointer avatar ${funcss || ''} ${`text-` + color?.trim() || ''} ${raised ? "raised" : ''} ${bg || ''} ${
36
36
  hoverable ? 'hoverable' : ''
37
37
  }`}
38
38
  style={{
@@ -0,0 +1,2 @@
1
+ export declare const getDarkenAmount: (variable: string) => number;
2
+ export declare const darkenToRgba: (hex: string, darkenAmount: number, alpha?: number) => string;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.darkenToRgba = exports.getDarkenAmount = void 0;
7
+ var tinycolor2_1 = __importDefault(require("tinycolor2"));
8
+ var getDarkenAmount = function (variable) {
9
+ if (variable.includes('50'))
10
+ return 5;
11
+ if (variable.includes('100'))
12
+ return 10;
13
+ if (variable.includes('200'))
14
+ return 15;
15
+ if (variable.includes('300'))
16
+ return 20;
17
+ if (variable.includes('400'))
18
+ return 25;
19
+ return 20;
20
+ };
21
+ exports.getDarkenAmount = getDarkenAmount;
22
+ var darkenToRgba = function (hex, darkenAmount, alpha) {
23
+ if (alpha === void 0) { alpha = 1; }
24
+ var color = (0, tinycolor2_1.default)(hex).darken(darkenAmount).toRgb();
25
+ return "rgba(".concat(color.r, ", ").concat(color.g, ", ").concat(color.b, ", ").concat(alpha, ")");
26
+ };
27
+ exports.darkenToRgba = darkenToRgba;
@@ -0,0 +1,15 @@
1
+ import tinycolor from 'tinycolor2';
2
+
3
+ export const getDarkenAmount = (variable: string): number => {
4
+ if (variable.includes('50')) return 5;
5
+ if (variable.includes('100')) return 10;
6
+ if (variable.includes('200')) return 15;
7
+ if (variable.includes('300')) return 20;
8
+ if (variable.includes('400')) return 25;
9
+ return 20;
10
+ };
11
+
12
+ export const darkenToRgba = (hex: string, darkenAmount: number, alpha = 1): string => {
13
+ const color = tinycolor(hex).darken(darkenAmount).toRgb();
14
+ return `rgba(${color.r}, ${color.g}, ${color.b}, ${alpha})`;
15
+ };
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  interface ThemeProviderProps {
3
- theme: 'light' | 'dark';
3
+ theme: 'light' | 'dark' | 'dark-blue' | 'light-gray';
4
4
  children: React.ReactNode;
5
5
  }
6
6
  declare const ThemeProvider: React.FC<ThemeProviderProps>;
package/ui/theme/theme.js CHANGED
@@ -35,27 +35,29 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  var react_1 = __importStar(require("react"));
38
+ var themes_1 = require("./themes");
39
+ var darkenUtils_1 = require("./darkenUtils");
38
40
  var ThemeProvider = function (_a) {
39
41
  var theme = _a.theme, children = _a.children;
40
42
  (0, react_1.useEffect)(function () {
41
43
  var root = document.documentElement;
42
- var lightTheme = {
43
- '--page-bg': '#FFFFFF',
44
- '--text-color': '#000000',
45
- };
46
- var darkTheme = {
47
- '--page-bg': '#121212',
48
- '--text-color': '#FFFFFF',
49
- '--raiseThemes': 'rgba(32, 32, 32, 0.8)',
50
- '--raiseOpaque': 'rgba(32, 32, 32, 0.94)',
51
- '--borderColor': '#333333',
52
- '--lighter': '#101010',
53
- };
54
- var selectedTheme = theme === 'dark' ? darkTheme : lightTheme;
44
+ var selectedTheme = themes_1.themes[theme] || themes_1.themes.light;
45
+ // Apply selected theme variables
55
46
  Object.entries(selectedTheme).forEach(function (_a) {
56
47
  var key = _a[0], value = _a[1];
57
48
  root.style.setProperty(key, value);
58
49
  });
50
+ // Apply darkened RGBA versions (for dark themes only)
51
+ if (theme === 'dark' || theme === 'dark-blue') {
52
+ themes_1.colorVarsToDarken.forEach(function (varName) {
53
+ var original = getComputedStyle(root).getPropertyValue(varName).trim();
54
+ if (original) {
55
+ var darkAmount = (0, darkenUtils_1.getDarkenAmount)(varName);
56
+ var rgba = (0, darkenUtils_1.darkenToRgba)(original, darkAmount, 0.9);
57
+ root.style.setProperty(varName, rgba);
58
+ }
59
+ });
60
+ }
59
61
  }, [theme]);
60
62
  return (react_1.default.createElement("div", { className: "theme-".concat(theme), style: {
61
63
  backgroundColor: 'var(--page-bg)',
@@ -1,34 +1,34 @@
1
1
  'use client';
2
2
  import React, { useEffect } from 'react';
3
+ import { colorVarsToDarken, themes } from './themes';
4
+ import { getDarkenAmount, darkenToRgba } from './darkenUtils';
3
5
 
4
6
  interface ThemeProviderProps {
5
- theme: 'light' | 'dark';
7
+ theme: 'light' | 'dark' | 'dark-blue' | 'light-gray';
6
8
  children: React.ReactNode;
7
9
  }
8
10
 
9
11
  const ThemeProvider: React.FC<ThemeProviderProps> = ({ theme, children }) => {
10
12
  useEffect(() => {
11
13
  const root = document.documentElement;
14
+ const selectedTheme = themes[theme] || themes.light;
12
15
 
13
- const lightTheme = {
14
- '--page-bg': '#FFFFFF',
15
- '--text-color': '#000000',
16
- };
17
-
18
- const darkTheme = {
19
- '--page-bg': '#121212',
20
- '--text-color': '#FFFFFF',
21
- '--raiseThemes': 'rgba(32, 32, 32, 0.8)',
22
- '--raiseOpaque': 'rgba(32, 32, 32, 0.94)',
23
- '--borderColor': '#333333',
24
- '--lighter': '#101010',
25
- };
26
-
27
- const selectedTheme = theme === 'dark' ? darkTheme : lightTheme;
28
-
16
+ // Apply selected theme variables
29
17
  Object.entries(selectedTheme).forEach(([key, value]) => {
30
18
  root.style.setProperty(key, value);
31
19
  });
20
+
21
+ // Apply darkened RGBA versions (for dark themes only)
22
+ if (theme === 'dark' || theme === 'dark-blue') {
23
+ colorVarsToDarken.forEach((varName) => {
24
+ const original = getComputedStyle(root).getPropertyValue(varName).trim();
25
+ if (original) {
26
+ const darkAmount = getDarkenAmount(varName);
27
+ const rgba = darkenToRgba(original, darkAmount, 0.9);
28
+ root.style.setProperty(varName, rgba);
29
+ }
30
+ });
31
+ }
32
32
  }, [theme]);
33
33
 
34
34
  return (
@@ -0,0 +1,106 @@
1
+ export declare const colorVarsToDarken: string[];
2
+ export declare const darkerDefaults: {
3
+ '--success50': string;
4
+ '--success100': string;
5
+ '--success200': string;
6
+ '--success300': string;
7
+ '--success400': string;
8
+ '--warning50': string;
9
+ '--warning100': string;
10
+ '--warning200': string;
11
+ '--warning300': string;
12
+ '--warning400': string;
13
+ '--info50': string;
14
+ '--info100': string;
15
+ '--info200': string;
16
+ '--info300': string;
17
+ '--info400': string;
18
+ '--error50': string;
19
+ '--error100': string;
20
+ '--error200': string;
21
+ '--error300': string;
22
+ '--error400': string;
23
+ };
24
+ export declare const themes: {
25
+ light: {
26
+ '--page-bg': string;
27
+ '--text-color': string;
28
+ };
29
+ dark: {
30
+ '--success50': string;
31
+ '--success100': string;
32
+ '--success200': string;
33
+ '--success300': string;
34
+ '--success400': string;
35
+ '--warning50': string;
36
+ '--warning100': string;
37
+ '--warning200': string;
38
+ '--warning300': string;
39
+ '--warning400': string;
40
+ '--info50': string;
41
+ '--info100': string;
42
+ '--info200': string;
43
+ '--info300': string;
44
+ '--info400': string;
45
+ '--error50': string;
46
+ '--error100': string;
47
+ '--error200': string;
48
+ '--error300': string;
49
+ '--error400': string;
50
+ '--page-bg': string;
51
+ '--text-color': string;
52
+ '--raiseThemes': string;
53
+ '--raiseOpaque': string;
54
+ '--borderColor': string;
55
+ '--lighter': string;
56
+ '--linkColor': string;
57
+ '--cardBg': string;
58
+ '--card': string;
59
+ };
60
+ 'dark-blue': {
61
+ '--success50': string;
62
+ '--success100': string;
63
+ '--success200': string;
64
+ '--success300': string;
65
+ '--success400': string;
66
+ '--warning50': string;
67
+ '--warning100': string;
68
+ '--warning200': string;
69
+ '--warning300': string;
70
+ '--warning400': string;
71
+ '--info50': string;
72
+ '--info100': string;
73
+ '--info200': string;
74
+ '--info300': string;
75
+ '--info400': string;
76
+ '--error50': string;
77
+ '--error100': string;
78
+ '--error200': string;
79
+ '--error300': string;
80
+ '--error400': string;
81
+ '--page-bg': string;
82
+ '--text-color': string;
83
+ '--text-muted': string;
84
+ '--raiseThemes': string;
85
+ '--raiseOpaque': string;
86
+ '--borderColor': string;
87
+ '--lighter': string;
88
+ '--linkColor': string;
89
+ '--accent': string;
90
+ '--cardBg': string;
91
+ '--card': string;
92
+ };
93
+ 'light-gray': {
94
+ '--page-bg': string;
95
+ '--text-color': string;
96
+ '--text-muted': string;
97
+ '--raiseThemes': string;
98
+ '--raiseOpaque': string;
99
+ '--borderColor': string;
100
+ '--lighter': string;
101
+ '--linkColor': string;
102
+ '--accent': string;
103
+ '--cardBg': string;
104
+ '--card': string;
105
+ };
106
+ };
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ // components/ThemeProvider/themes.ts
3
+ var __assign = (this && this.__assign) || function () {
4
+ __assign = Object.assign || function(t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
+ t[p] = s[p];
9
+ }
10
+ return t;
11
+ };
12
+ return __assign.apply(this, arguments);
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.themes = exports.darkerDefaults = exports.colorVarsToDarken = void 0;
16
+ exports.colorVarsToDarken = [
17
+ '--primary50', '--primary100', '--primary200', '--primary300', '--primary400',
18
+ '--secondary50', '--secondary100', '--secondary200', '--secondary300', '--secondary400',
19
+ '--accent50', '--accent100', '--accent200', '--accent300', '--accent400',
20
+ ];
21
+ exports.darkerDefaults = {
22
+ '--success50': '#c1dbc7',
23
+ '--success100': '#b0d1b3',
24
+ '--success200': '#92bb97',
25
+ '--success300': '#6aa375',
26
+ '--success400': '#3f864e',
27
+ '--warning50': '#e6dcd4',
28
+ '--warning100': '#e6d1bb',
29
+ '--warning200': '#e2b783',
30
+ '--warning300': '#e09b59',
31
+ '--warning400': '#d57627',
32
+ '--info50': '#c1d3e6',
33
+ '--info100': '#b3c8e0',
34
+ '--info200': '#91b3d4',
35
+ '--info300': '#5a9bcb',
36
+ '--info400': '#2f85c3',
37
+ '--error50': '#e6cfcf',
38
+ '--error100': '#e6bebe',
39
+ '--error200': '#e29e9e',
40
+ '--error300': '#da7373',
41
+ '--error400': '#cc4646',
42
+ };
43
+ exports.themes = {
44
+ light: {
45
+ '--page-bg': '#FFFFFF',
46
+ '--text-color': '#000000',
47
+ },
48
+ dark: __assign({ '--page-bg': '#1E1E1E', '--text-color': '#FFFFFF', '--raiseThemes': 'rgba(32, 32, 32, 0.5)', '--raiseOpaque': 'rgba(32, 32, 32, 0.8)', '--borderColor': '#4a4a4a', '--lighter': '#2a2a2a', '--linkColor': '#9ab', '--cardBg': '#1e1e1e', '--card': "4px 4px 6px #141414, -4px -4px 6px #272727" }, exports.darkerDefaults),
49
+ 'dark-blue': __assign({ '--page-bg': '#0d1b2a', '--text-color': '#f0f4f8', '--text-muted': '#a9bcd0', '--raiseThemes': 'rgba(13, 27, 42, 0.5)', '--raiseOpaque': 'rgba(13, 27, 42, 0.8)', '--borderColor': '#1e3249', '--lighter': '#1b2c3f', '--linkColor': '#56ccf2', '--accent': '#66d9ef', '--cardBg': '#0d1b2a', '--card': "4px 4px 6px #08121d, -4px -4px 6px #15273b" }, exports.darkerDefaults),
50
+ 'light-gray': {
51
+ '--page-bg': '#e8e8e8',
52
+ '--text-color': '#2a2a2a',
53
+ '--text-muted': '#777777',
54
+ '--raiseThemes': 'rgba(255, 255, 255, 0.6)',
55
+ '--raiseOpaque': 'rgba(255, 255, 255, 0.94)',
56
+ '--borderColor': '#d0d0d0',
57
+ '--lighter': '#f4f4f4',
58
+ '--linkColor': '#202020',
59
+ '--accent': '#4a90e2',
60
+ '--cardBg': '#e8e8e8',
61
+ '--card': "8px 8px 16px #c5c5c5, -8px -8px 16px #ffffff",
62
+ }
63
+ };
@@ -0,0 +1,79 @@
1
+ // components/ThemeProvider/themes.ts
2
+
3
+ export const colorVarsToDarken = [
4
+ '--primary50', '--primary100', '--primary200', '--primary300', '--primary400',
5
+ '--secondary50', '--secondary100', '--secondary200', '--secondary300', '--secondary400',
6
+ '--accent50', '--accent100', '--accent200', '--accent300', '--accent400',
7
+ ];
8
+
9
+ export const darkerDefaults = {
10
+ '--success50': '#c1dbc7',
11
+ '--success100': '#b0d1b3',
12
+ '--success200': '#92bb97',
13
+ '--success300': '#6aa375',
14
+ '--success400': '#3f864e',
15
+
16
+ '--warning50': '#e6dcd4',
17
+ '--warning100': '#e6d1bb',
18
+ '--warning200': '#e2b783',
19
+ '--warning300': '#e09b59',
20
+ '--warning400': '#d57627',
21
+
22
+ '--info50': '#c1d3e6',
23
+ '--info100': '#b3c8e0',
24
+ '--info200': '#91b3d4',
25
+ '--info300': '#5a9bcb',
26
+ '--info400': '#2f85c3',
27
+
28
+ '--error50': '#e6cfcf',
29
+ '--error100': '#e6bebe',
30
+ '--error200': '#e29e9e',
31
+ '--error300': '#da7373',
32
+ '--error400': '#cc4646',
33
+ };
34
+
35
+ export const themes = {
36
+ light: {
37
+ '--page-bg': '#FFFFFF',
38
+ '--text-color': '#000000',
39
+ },
40
+ dark: {
41
+ '--page-bg': '#1E1E1E',
42
+ '--text-color': '#FFFFFF',
43
+ '--raiseThemes': 'rgba(32, 32, 32, 0.5)',
44
+ '--raiseOpaque': 'rgba(32, 32, 32, 0.8)',
45
+ '--borderColor': '#4a4a4a',
46
+ '--lighter': '#2a2a2a',
47
+ '--linkColor': '#9ab',
48
+ '--cardBg': '#1e1e1e',
49
+ '--card': `4px 4px 6px #141414, -4px -4px 6px #272727`,
50
+ ...darkerDefaults,
51
+ },
52
+ 'dark-blue': {
53
+ '--page-bg': '#0d1b2a',
54
+ '--text-color': '#f0f4f8',
55
+ '--text-muted': '#a9bcd0',
56
+ '--raiseThemes': 'rgba(13, 27, 42, 0.5)',
57
+ '--raiseOpaque': 'rgba(13, 27, 42, 0.8)',
58
+ '--borderColor': '#1e3249',
59
+ '--lighter': '#1b2c3f',
60
+ '--linkColor': '#56ccf2',
61
+ '--accent': '#66d9ef',
62
+ '--cardBg': '#0d1b2a',
63
+ '--card': `4px 4px 6px #08121d, -4px -4px 6px #15273b`,
64
+ ...darkerDefaults,
65
+ },
66
+ 'light-gray': {
67
+ '--page-bg': '#e8e8e8',
68
+ '--text-color': '#2a2a2a',
69
+ '--text-muted': '#777777',
70
+ '--raiseThemes': 'rgba(255, 255, 255, 0.6)',
71
+ '--raiseOpaque': 'rgba(255, 255, 255, 0.94)',
72
+ '--borderColor': '#d0d0d0',
73
+ '--lighter': '#f4f4f4',
74
+ '--linkColor': '#202020',
75
+ '--accent': '#4a90e2',
76
+ '--cardBg': '#e8e8e8',
77
+ '--card': `8px 8px 16px #c5c5c5, -8px -8px 16px #ffffff`,
78
+ }
79
+ };
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ interface VideoProps {
3
+ src: string;
4
+ poster?: string;
5
+ onDuration?: (duration: number) => void;
6
+ isPause?: boolean;
7
+ className?: string;
8
+ autoPlay?: boolean;
9
+ }
10
+ export default function Video({ src, poster, onDuration, isPause, className, autoPlay, ...rest }: VideoProps): React.JSX.Element;
11
+ export {};