funuicss 2.7.6 → 2.7.7
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 +21 -11
- package/index.d.ts +1 -0
- package/index.js +3 -1
- package/index.tsx +1 -0
- package/package.json +3 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/ui/ScrollInView/ScrollInView.d.ts +72 -0
- package/ui/ScrollInView/ScrollInView.js +70 -0
- package/ui/ScrollInView/ScrollInView.tsx +69 -0
- package/ui/accordion/Accordion.d.ts +1 -0
- package/ui/accordion/Accordion.js +12 -7
- package/ui/accordion/Accordion.tsx +16 -15
- package/ui/alert/Alert.js +1 -1
- package/ui/alert/Alert.tsx +2 -2
- package/ui/avatar/Avatar.d.ts +4 -2
- package/ui/avatar/Avatar.js +5 -5
- package/ui/avatar/Avatar.tsx +18 -6
- package/ui/specials/Circle.js +1 -1
- package/ui/specials/Circle.tsx +1 -1
- package/ui/theme/theme.d.ts +1 -1
- package/ui/theme/theme.js +1 -1
- package/ui/theme/theme.tsx +2 -2
- package/ui/theme/themes.d.ts +113 -0
- package/ui/theme/themes.js +48 -3
- package/ui/theme/themes.ts +75 -0
- package/ui/view/View.d.ts +44 -0
- package/ui/view/View.js +64 -0
- package/ui/view/View.tsx +157 -0
package/ui/theme/themes.js
CHANGED
|
@@ -45,8 +45,8 @@ exports.themes = {
|
|
|
45
45
|
'--page-bg': '#FFFFFF',
|
|
46
46
|
'--text-color': '#000000',
|
|
47
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),
|
|
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', '--borderRgb': '74, 74, 74', '--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', '--borderRgb': '30, 50, 73', '--lighter': '#1b2c3f', '--linkColor': '#56ccf2', '--accent': '#66d9ef', '--cardBg': '#0d1b2a', '--card': "4px 4px 6px #08121d, -4px -4px 6px #15273b" }, exports.darkerDefaults),
|
|
50
50
|
'light-gray': {
|
|
51
51
|
'--page-bg': '#e8e8e8',
|
|
52
52
|
'--text-color': '#2a2a2a',
|
|
@@ -54,10 +54,55 @@ exports.themes = {
|
|
|
54
54
|
'--raiseThemes': 'rgba(255, 255, 255, 0.6)',
|
|
55
55
|
'--raiseOpaque': 'rgba(255, 255, 255, 0.94)',
|
|
56
56
|
'--borderColor': '#d0d0d0',
|
|
57
|
+
'--borderRgb': '208, 208, 208',
|
|
57
58
|
'--lighter': '#f4f4f4',
|
|
58
59
|
'--linkColor': '#202020',
|
|
59
60
|
'--accent': '#4a90e2',
|
|
60
61
|
'--cardBg': '#e8e8e8',
|
|
61
62
|
'--card': "8px 8px 16px #c5c5c5, -8px -8px 16px #ffffff",
|
|
62
|
-
}
|
|
63
|
+
},
|
|
64
|
+
'pastel-green': {
|
|
65
|
+
'--page-bg': '#e6f5ea',
|
|
66
|
+
'--text-color': '#2f4f4f',
|
|
67
|
+
'--text-muted': '#5a7d7d',
|
|
68
|
+
'--raiseThemes': 'rgba(230, 245, 234, 0.6)',
|
|
69
|
+
'--raiseOpaque': 'rgba(230, 245, 234, 0.9)',
|
|
70
|
+
'--borderColor': '#b5d3c5',
|
|
71
|
+
'--borderRgb': '181, 211, 197',
|
|
72
|
+
'--lighter': '#f1faf3',
|
|
73
|
+
'--linkColor': '#4caf50',
|
|
74
|
+
'--accent': '#81c784',
|
|
75
|
+
'--cardBg': '#e6f5ea',
|
|
76
|
+
'--card': "6px 6px 12px #cde3d5, -6px -6px 12px #ffffff",
|
|
77
|
+
},
|
|
78
|
+
'warm-orange': {
|
|
79
|
+
'--page-bg': '#fff3e0',
|
|
80
|
+
'--text-color': '#4e342e',
|
|
81
|
+
'--text-muted': '#8d6e63',
|
|
82
|
+
'--raiseThemes': 'rgba(255, 243, 224, 0.6)',
|
|
83
|
+
'--raiseOpaque': 'rgba(255, 243, 224, 0.94)',
|
|
84
|
+
'--borderColor': '#ffccbc',
|
|
85
|
+
'--borderRgb': '255, 204, 188',
|
|
86
|
+
'--lighter': '#ffecb3',
|
|
87
|
+
'--linkColor': '#ff7043',
|
|
88
|
+
'--accent': '#ff8a65',
|
|
89
|
+
'--cardBg': '#fff3e0',
|
|
90
|
+
'--card': "6px 6px 14px #e0c7b3, -6px -6px 14px #ffffff",
|
|
91
|
+
},
|
|
92
|
+
'frosted-glass': {
|
|
93
|
+
'--page-bg': 'rgba(255, 255, 255, 0.75)',
|
|
94
|
+
'--text-color': '#111',
|
|
95
|
+
'--text-muted': '#666',
|
|
96
|
+
'--raiseThemes': 'rgba(255, 255, 255, 0.4)',
|
|
97
|
+
'--raiseOpaque': 'rgba(255, 255, 255, 0.9)',
|
|
98
|
+
'--borderColor': '#ccc',
|
|
99
|
+
'--borderRgb': '204, 204, 204',
|
|
100
|
+
'--lighter': '#fafafa',
|
|
101
|
+
'--linkColor': '#0099cc',
|
|
102
|
+
'--accent': '#00c2ff',
|
|
103
|
+
'--cardBg': 'rgba(255, 255, 255, 0.6)',
|
|
104
|
+
'--card': "4px 4px 10px rgba(0, 0, 0, 0.05), -4px -4px 10px rgba(255, 255, 255, 0.5)",
|
|
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),
|
|
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)
|
|
63
108
|
};
|
package/ui/theme/themes.ts
CHANGED
|
@@ -43,6 +43,7 @@ export const themes = {
|
|
|
43
43
|
'--raiseThemes': 'rgba(32, 32, 32, 0.5)',
|
|
44
44
|
'--raiseOpaque': 'rgba(32, 32, 32, 0.8)',
|
|
45
45
|
'--borderColor': '#4a4a4a',
|
|
46
|
+
'--borderRgb': '74, 74, 74',
|
|
46
47
|
'--lighter': '#2a2a2a',
|
|
47
48
|
'--linkColor': '#9ab',
|
|
48
49
|
'--cardBg': '#1e1e1e',
|
|
@@ -56,6 +57,7 @@ export const themes = {
|
|
|
56
57
|
'--raiseThemes': 'rgba(13, 27, 42, 0.5)',
|
|
57
58
|
'--raiseOpaque': 'rgba(13, 27, 42, 0.8)',
|
|
58
59
|
'--borderColor': '#1e3249',
|
|
60
|
+
'--borderRgb': '30, 50, 73',
|
|
59
61
|
'--lighter': '#1b2c3f',
|
|
60
62
|
'--linkColor': '#56ccf2',
|
|
61
63
|
'--accent': '#66d9ef',
|
|
@@ -70,10 +72,83 @@ export const themes = {
|
|
|
70
72
|
'--raiseThemes': 'rgba(255, 255, 255, 0.6)',
|
|
71
73
|
'--raiseOpaque': 'rgba(255, 255, 255, 0.94)',
|
|
72
74
|
'--borderColor': '#d0d0d0',
|
|
75
|
+
'--borderRgb': '208, 208, 208',
|
|
73
76
|
'--lighter': '#f4f4f4',
|
|
74
77
|
'--linkColor': '#202020',
|
|
75
78
|
'--accent': '#4a90e2',
|
|
76
79
|
'--cardBg': '#e8e8e8',
|
|
77
80
|
'--card': `8px 8px 16px #c5c5c5, -8px -8px 16px #ffffff`,
|
|
81
|
+
},
|
|
82
|
+
'pastel-green': {
|
|
83
|
+
'--page-bg': '#e6f5ea',
|
|
84
|
+
'--text-color': '#2f4f4f',
|
|
85
|
+
'--text-muted': '#5a7d7d',
|
|
86
|
+
'--raiseThemes': 'rgba(230, 245, 234, 0.6)',
|
|
87
|
+
'--raiseOpaque': 'rgba(230, 245, 234, 0.9)',
|
|
88
|
+
'--borderColor': '#b5d3c5',
|
|
89
|
+
'--borderRgb': '181, 211, 197',
|
|
90
|
+
'--lighter': '#f1faf3',
|
|
91
|
+
'--linkColor': '#4caf50',
|
|
92
|
+
'--accent': '#81c784',
|
|
93
|
+
'--cardBg': '#e6f5ea',
|
|
94
|
+
'--card': `6px 6px 12px #cde3d5, -6px -6px 12px #ffffff`,
|
|
95
|
+
},
|
|
96
|
+
'warm-orange': {
|
|
97
|
+
'--page-bg': '#fff3e0',
|
|
98
|
+
'--text-color': '#4e342e',
|
|
99
|
+
'--text-muted': '#8d6e63',
|
|
100
|
+
'--raiseThemes': 'rgba(255, 243, 224, 0.6)',
|
|
101
|
+
'--raiseOpaque': 'rgba(255, 243, 224, 0.94)',
|
|
102
|
+
'--borderColor': '#ffccbc',
|
|
103
|
+
'--borderRgb': '255, 204, 188',
|
|
104
|
+
'--lighter': '#ffecb3',
|
|
105
|
+
'--linkColor': '#ff7043',
|
|
106
|
+
'--accent': '#ff8a65',
|
|
107
|
+
'--cardBg': '#fff3e0',
|
|
108
|
+
'--card': `6px 6px 14px #e0c7b3, -6px -6px 14px #ffffff`,
|
|
109
|
+
},
|
|
110
|
+
'frosted-glass': {
|
|
111
|
+
'--page-bg': 'rgba(255, 255, 255, 0.75)',
|
|
112
|
+
'--text-color': '#111',
|
|
113
|
+
'--text-muted': '#666',
|
|
114
|
+
'--raiseThemes': 'rgba(255, 255, 255, 0.4)',
|
|
115
|
+
'--raiseOpaque': 'rgba(255, 255, 255, 0.9)',
|
|
116
|
+
'--borderColor': '#ccc',
|
|
117
|
+
'--borderRgb': '204, 204, 204',
|
|
118
|
+
'--lighter': '#fafafa',
|
|
119
|
+
'--linkColor': '#0099cc',
|
|
120
|
+
'--accent': '#00c2ff',
|
|
121
|
+
'--cardBg': 'rgba(255, 255, 255, 0.6)',
|
|
122
|
+
'--card': `4px 4px 10px rgba(0, 0, 0, 0.05), -4px -4px 10px rgba(255, 255, 255, 0.5)`,
|
|
123
|
+
},
|
|
124
|
+
'midnight-purple': {
|
|
125
|
+
'--page-bg': '#1a1333',
|
|
126
|
+
'--text-color': '#e0e0ff',
|
|
127
|
+
'--text-muted': '#b39ddb',
|
|
128
|
+
'--raiseThemes': 'rgba(26, 19, 51, 0.5)',
|
|
129
|
+
'--raiseOpaque': 'rgba(26, 19, 51, 0.85)',
|
|
130
|
+
'--borderColor': '#2e215c',
|
|
131
|
+
'--borderRgb': '46, 33, 92',
|
|
132
|
+
'--lighter': '#2f2258',
|
|
133
|
+
'--linkColor': '#d1c4e9',
|
|
134
|
+
'--accent': '#9575cd',
|
|
135
|
+
'--cardBg': '#1a1333',
|
|
136
|
+
'--card': `4px 4px 8px #120c26, -4px -4px 8px #221a40`,
|
|
137
|
+
...darkerDefaults,
|
|
138
|
+
},
|
|
139
|
+
'cyber-metal': {
|
|
140
|
+
'--page-bg': '#0f1115',
|
|
141
|
+
'--text-color': '#d0d0d0',
|
|
142
|
+
'--text-muted': '#888',
|
|
143
|
+
'--raiseThemes': 'rgba(15, 17, 21, 0.4)',
|
|
144
|
+
'--raiseOpaque': 'rgba(15, 17, 21, 0.85)',
|
|
145
|
+
'--borderColor': '#2a2a2a',
|
|
146
|
+
'--borderRgb': '42, 42, 42',
|
|
147
|
+
'--lighter': '#1a1a1a',
|
|
148
|
+
'--linkColor': '#00ffe0',
|
|
149
|
+
'--accent': '#39ff14',
|
|
150
|
+
'--cardBg': '#0f1115',
|
|
151
|
+
'--card': `6px 6px 12px #050607, -6px -6px 12px #1c1f25`,
|
|
152
|
+
...darkerDefaults,
|
|
78
153
|
}
|
|
79
154
|
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type ViewProps = {
|
|
3
|
+
children?: React.ReactNode;
|
|
4
|
+
content?: React.ReactNode;
|
|
5
|
+
funcss?: string;
|
|
6
|
+
customStyle?: React.CSSProperties;
|
|
7
|
+
height?: string;
|
|
8
|
+
width?: string;
|
|
9
|
+
minHeight?: string;
|
|
10
|
+
maxHeight?: string;
|
|
11
|
+
minWidth?: string;
|
|
12
|
+
maxWidth?: string;
|
|
13
|
+
padding?: string;
|
|
14
|
+
margin?: string;
|
|
15
|
+
gap?: string;
|
|
16
|
+
fit?: boolean;
|
|
17
|
+
display?: React.CSSProperties['display'];
|
|
18
|
+
flexDirection?: React.CSSProperties['flexDirection'];
|
|
19
|
+
justifyContent?: React.CSSProperties['justifyContent'];
|
|
20
|
+
alignItems?: React.CSSProperties['alignItems'];
|
|
21
|
+
background?: string;
|
|
22
|
+
color?: string;
|
|
23
|
+
border?: string;
|
|
24
|
+
borderRadius?: string;
|
|
25
|
+
boxShadow?: string;
|
|
26
|
+
position?: React.CSSProperties['position'];
|
|
27
|
+
top?: string;
|
|
28
|
+
left?: string;
|
|
29
|
+
right?: string;
|
|
30
|
+
bottom?: string;
|
|
31
|
+
zIndex?: number;
|
|
32
|
+
overflow?: React.CSSProperties['overflow'];
|
|
33
|
+
id?: string;
|
|
34
|
+
title?: string;
|
|
35
|
+
role?: string;
|
|
36
|
+
ariaLabel?: string;
|
|
37
|
+
onClick?: React.MouseEventHandler<HTMLDivElement>;
|
|
38
|
+
onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;
|
|
39
|
+
onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;
|
|
40
|
+
onFocus?: React.FocusEventHandler<HTMLDivElement>;
|
|
41
|
+
onBlur?: React.FocusEventHandler<HTMLDivElement>;
|
|
42
|
+
};
|
|
43
|
+
declare const View: ({ children, content, funcss, customStyle, height, width, minHeight, maxHeight, minWidth, maxWidth, padding, margin, gap, fit, display, flexDirection, justifyContent, alignItems, background, color, border, borderRadius, boxShadow, position, top, left, right, bottom, zIndex, overflow, id, title, role, ariaLabel, onClick, onMouseEnter, onMouseLeave, onFocus, onBlur, ...rest }: ViewProps) => React.JSX.Element;
|
|
44
|
+
export default View;
|
package/ui/view/View.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
48
|
+
var t = {};
|
|
49
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
50
|
+
t[p] = s[p];
|
|
51
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
52
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
53
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
54
|
+
t[p[i]] = s[p[i]];
|
|
55
|
+
}
|
|
56
|
+
return t;
|
|
57
|
+
};
|
|
58
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
+
var React = __importStar(require("react"));
|
|
60
|
+
var View = function (_a) {
|
|
61
|
+
var children = _a.children, content = _a.content, _b = _a.funcss, funcss = _b === void 0 ? '' : _b, _c = _a.customStyle, customStyle = _c === void 0 ? {} : _c, height = _a.height, width = _a.width, minHeight = _a.minHeight, maxHeight = _a.maxHeight, minWidth = _a.minWidth, maxWidth = _a.maxWidth, padding = _a.padding, margin = _a.margin, gap = _a.gap, fit = _a.fit, display = _a.display, flexDirection = _a.flexDirection, justifyContent = _a.justifyContent, alignItems = _a.alignItems, background = _a.background, color = _a.color, border = _a.border, borderRadius = _a.borderRadius, boxShadow = _a.boxShadow, position = _a.position, top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom, zIndex = _a.zIndex, overflow = _a.overflow, id = _a.id, title = _a.title, role = _a.role, ariaLabel = _a.ariaLabel, onClick = _a.onClick, onMouseEnter = _a.onMouseEnter, onMouseLeave = _a.onMouseLeave, onFocus = _a.onFocus, onBlur = _a.onBlur, rest = __rest(_a, ["children", "content", "funcss", "customStyle", "height", "width", "minHeight", "maxHeight", "minWidth", "maxWidth", "padding", "margin", "gap", "fit", "display", "flexDirection", "justifyContent", "alignItems", "background", "color", "border", "borderRadius", "boxShadow", "position", "top", "left", "right", "bottom", "zIndex", "overflow", "id", "title", "role", "ariaLabel", "onClick", "onMouseEnter", "onMouseLeave", "onFocus", "onBlur"]);
|
|
62
|
+
return (React.createElement("div", __assign({ id: id, title: title, role: role, "aria-label": ariaLabel, className: "".concat(fit ? 'width-100-p height-100-p' : '', " ").concat(funcss), style: __assign({ display: display, flexDirection: flexDirection, justifyContent: justifyContent, alignItems: alignItems, height: height, width: width, minHeight: minHeight, maxHeight: maxHeight, minWidth: minWidth, maxWidth: maxWidth, padding: padding, margin: margin, gap: gap, background: background, color: color, border: border, borderRadius: borderRadius, boxShadow: boxShadow, position: position, top: top, left: left, right: right, bottom: bottom, zIndex: zIndex, overflow: overflow }, customStyle), onClick: onClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onFocus: onFocus, onBlur: onBlur }, rest), content || children));
|
|
63
|
+
};
|
|
64
|
+
exports.default = View;
|
package/ui/view/View.tsx
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
type ViewProps = {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
content?: React.ReactNode;
|
|
7
|
+
funcss?: string;
|
|
8
|
+
customStyle?: React.CSSProperties;
|
|
9
|
+
|
|
10
|
+
// Dimensions
|
|
11
|
+
height?: string;
|
|
12
|
+
width?: string;
|
|
13
|
+
minHeight?: string;
|
|
14
|
+
maxHeight?: string;
|
|
15
|
+
minWidth?: string;
|
|
16
|
+
maxWidth?: string;
|
|
17
|
+
|
|
18
|
+
// Spacing
|
|
19
|
+
padding?: string;
|
|
20
|
+
margin?: string;
|
|
21
|
+
gap?: string;
|
|
22
|
+
|
|
23
|
+
// Layout & Display
|
|
24
|
+
fit?: boolean;
|
|
25
|
+
display?: React.CSSProperties['display'];
|
|
26
|
+
flexDirection?: React.CSSProperties['flexDirection'];
|
|
27
|
+
justifyContent?: React.CSSProperties['justifyContent'];
|
|
28
|
+
alignItems?: React.CSSProperties['alignItems'];
|
|
29
|
+
|
|
30
|
+
// Styling
|
|
31
|
+
background?: string;
|
|
32
|
+
color?: string;
|
|
33
|
+
border?: string;
|
|
34
|
+
borderRadius?: string;
|
|
35
|
+
boxShadow?: string;
|
|
36
|
+
|
|
37
|
+
// Positioning
|
|
38
|
+
position?: React.CSSProperties['position'];
|
|
39
|
+
top?: string;
|
|
40
|
+
left?: string;
|
|
41
|
+
right?: string;
|
|
42
|
+
bottom?: string;
|
|
43
|
+
zIndex?: number;
|
|
44
|
+
overflow?: React.CSSProperties['overflow'];
|
|
45
|
+
|
|
46
|
+
// Accessibility & IDs
|
|
47
|
+
id?: string;
|
|
48
|
+
title?: string;
|
|
49
|
+
role?: string;
|
|
50
|
+
ariaLabel?: string;
|
|
51
|
+
|
|
52
|
+
// Events
|
|
53
|
+
onClick?: React.MouseEventHandler<HTMLDivElement>;
|
|
54
|
+
onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;
|
|
55
|
+
onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;
|
|
56
|
+
onFocus?: React.FocusEventHandler<HTMLDivElement>;
|
|
57
|
+
onBlur?: React.FocusEventHandler<HTMLDivElement>;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const View = ({
|
|
61
|
+
children,
|
|
62
|
+
content,
|
|
63
|
+
funcss = '',
|
|
64
|
+
customStyle = {},
|
|
65
|
+
|
|
66
|
+
height,
|
|
67
|
+
width,
|
|
68
|
+
minHeight,
|
|
69
|
+
maxHeight,
|
|
70
|
+
minWidth,
|
|
71
|
+
maxWidth,
|
|
72
|
+
|
|
73
|
+
padding,
|
|
74
|
+
margin,
|
|
75
|
+
gap,
|
|
76
|
+
|
|
77
|
+
fit,
|
|
78
|
+
display,
|
|
79
|
+
flexDirection,
|
|
80
|
+
justifyContent,
|
|
81
|
+
alignItems,
|
|
82
|
+
|
|
83
|
+
background,
|
|
84
|
+
color,
|
|
85
|
+
border,
|
|
86
|
+
borderRadius,
|
|
87
|
+
boxShadow,
|
|
88
|
+
|
|
89
|
+
position,
|
|
90
|
+
top,
|
|
91
|
+
left,
|
|
92
|
+
right,
|
|
93
|
+
bottom,
|
|
94
|
+
zIndex,
|
|
95
|
+
overflow,
|
|
96
|
+
|
|
97
|
+
id,
|
|
98
|
+
title,
|
|
99
|
+
role,
|
|
100
|
+
ariaLabel,
|
|
101
|
+
|
|
102
|
+
onClick,
|
|
103
|
+
onMouseEnter,
|
|
104
|
+
onMouseLeave,
|
|
105
|
+
onFocus,
|
|
106
|
+
onBlur,
|
|
107
|
+
|
|
108
|
+
...rest
|
|
109
|
+
}: ViewProps) => {
|
|
110
|
+
return (
|
|
111
|
+
<div
|
|
112
|
+
id={id}
|
|
113
|
+
title={title}
|
|
114
|
+
role={role}
|
|
115
|
+
aria-label={ariaLabel}
|
|
116
|
+
className={`${fit ? 'width-100-p height-100-p' : ''} ${funcss}`}
|
|
117
|
+
style={{
|
|
118
|
+
display,
|
|
119
|
+
flexDirection,
|
|
120
|
+
justifyContent,
|
|
121
|
+
alignItems,
|
|
122
|
+
height,
|
|
123
|
+
width,
|
|
124
|
+
minHeight,
|
|
125
|
+
maxHeight,
|
|
126
|
+
minWidth,
|
|
127
|
+
maxWidth,
|
|
128
|
+
padding,
|
|
129
|
+
margin,
|
|
130
|
+
gap,
|
|
131
|
+
background,
|
|
132
|
+
color,
|
|
133
|
+
border,
|
|
134
|
+
borderRadius,
|
|
135
|
+
boxShadow,
|
|
136
|
+
position,
|
|
137
|
+
top,
|
|
138
|
+
left,
|
|
139
|
+
right,
|
|
140
|
+
bottom,
|
|
141
|
+
zIndex,
|
|
142
|
+
overflow,
|
|
143
|
+
...customStyle,
|
|
144
|
+
}}
|
|
145
|
+
onClick={onClick}
|
|
146
|
+
onMouseEnter={onMouseEnter}
|
|
147
|
+
onMouseLeave={onMouseLeave}
|
|
148
|
+
onFocus={onFocus}
|
|
149
|
+
onBlur={onBlur}
|
|
150
|
+
{...rest}
|
|
151
|
+
>
|
|
152
|
+
{content || children}
|
|
153
|
+
</div>
|
|
154
|
+
);
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
export default View;
|