react-tech-ui 1.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.
- package/LICENSE +82 -0
- package/README.en.md +36 -0
- package/README.md +412 -0
- package/dist/DataCard/index.cjs +1 -0
- package/dist/DataCard/index.js +5 -0
- package/dist/DataCard/style.css +1 -0
- package/dist/DataCard.d.ts +1 -0
- package/dist/DecorationLine/index.cjs +1 -0
- package/dist/DecorationLine/index.js +5 -0
- package/dist/DecorationLine/style.css +1 -0
- package/dist/DecorationLine.d.ts +1 -0
- package/dist/DigitalNumber/index.cjs +1 -0
- package/dist/DigitalNumber/index.js +5 -0
- package/dist/DigitalNumber/style.css +1 -0
- package/dist/DigitalNumber.d.ts +1 -0
- package/dist/Drawer/index.cjs +1 -0
- package/dist/Drawer/index.js +5 -0
- package/dist/Drawer/style.css +1 -0
- package/dist/Drawer.d.ts +1 -0
- package/dist/FloatingButton/index.cjs +1 -0
- package/dist/FloatingButton/index.js +5 -0
- package/dist/FloatingButton/style.css +1 -0
- package/dist/FloatingButton.d.ts +1 -0
- package/dist/FlowLight/index.cjs +1 -0
- package/dist/FlowLight/index.js +5 -0
- package/dist/FlowLight/style.css +1 -0
- package/dist/FlowLight.d.ts +1 -0
- package/dist/Icon/index.cjs +1 -0
- package/dist/Icon/index.js +6 -0
- package/dist/Icon/style.css +1 -0
- package/dist/Icon.d.ts +1 -0
- package/dist/Masonry/index.cjs +1 -0
- package/dist/Masonry/index.js +5 -0
- package/dist/Masonry/style.css +1 -0
- package/dist/Masonry.d.ts +1 -0
- package/dist/Modal/index.cjs +1 -0
- package/dist/Modal/index.js +5 -0
- package/dist/Modal/style.css +1 -0
- package/dist/Modal.d.ts +1 -0
- package/dist/Popconfirm/index.cjs +1 -0
- package/dist/Popconfirm/index.js +5 -0
- package/dist/Popconfirm/style.css +1 -0
- package/dist/Popconfirm.d.ts +1 -0
- package/dist/QRCode/index.cjs +1 -0
- package/dist/QRCode/index.js +5 -0
- package/dist/QRCode/style.css +1 -0
- package/dist/QRCode.d.ts +1 -0
- package/dist/ScreenAdapter/index.cjs +1 -0
- package/dist/ScreenAdapter/index.js +5 -0
- package/dist/ScreenAdapter/style.css +1 -0
- package/dist/ScreenAdapter.d.ts +1 -0
- package/dist/ScrollTable/index.cjs +1 -0
- package/dist/ScrollTable/index.js +5 -0
- package/dist/ScrollTable/style.css +1 -0
- package/dist/ScrollTable.d.ts +1 -0
- package/dist/Skeleton/index.cjs +1 -0
- package/dist/Skeleton/index.js +5 -0
- package/dist/Skeleton/style.css +1 -0
- package/dist/Skeleton.d.ts +1 -0
- package/dist/StatusIndicator/index.cjs +1 -0
- package/dist/StatusIndicator/index.js +5 -0
- package/dist/StatusIndicator/style.css +1 -0
- package/dist/StatusIndicator.d.ts +1 -0
- package/dist/TechBorder/index.cjs +1 -0
- package/dist/TechBorder/index.js +5 -0
- package/dist/TechBorder/style.css +1 -0
- package/dist/TechBorder.d.ts +1 -0
- package/dist/TechButton/index.cjs +1 -0
- package/dist/TechButton/index.js +5 -0
- package/dist/TechButton/style.css +1 -0
- package/dist/TechButton.d.ts +1 -0
- package/dist/TechTitle/index.cjs +1 -0
- package/dist/TechTitle/index.js +5 -0
- package/dist/TechTitle/style.css +1 -0
- package/dist/TechTitle.d.ts +1 -0
- package/dist/ThemeProvider/index.cjs +1 -0
- package/dist/ThemeProvider/index.js +8 -0
- package/dist/ThemeProvider/style.css +1 -0
- package/dist/ThemeProvider.d.ts +1 -0
- package/dist/Toast/index.cjs +1 -0
- package/dist/Toast/index.js +5 -0
- package/dist/Toast/style.css +1 -0
- package/dist/Toast.d.ts +1 -0
- package/dist/assets/jsx-runtime-B3A9vq2e.css +1 -0
- package/dist/chunks/DataCard-CY4njdg1.js +61 -0
- package/dist/chunks/DataCard-DjcUGxo9.cjs +1 -0
- package/dist/chunks/DecorationLine-Be4QQyry.cjs +1 -0
- package/dist/chunks/DecorationLine-CaZYIYl6.js +45 -0
- package/dist/chunks/DigitalNumber-BNklEz-G.js +60 -0
- package/dist/chunks/DigitalNumber-BWP5OjvN.cjs +1 -0
- package/dist/chunks/Drawer-CuoztnnD.cjs +1 -0
- package/dist/chunks/Drawer-u77zScbz.js +69 -0
- package/dist/chunks/FloatingButton-DcNfUVcB.js +109 -0
- package/dist/chunks/FloatingButton-nOl8ZHul.cjs +1 -0
- package/dist/chunks/FlowLight-Brrwyxcv.js +62 -0
- package/dist/chunks/FlowLight-DLBCaU07.cjs +1 -0
- package/dist/chunks/Icon-HxIzkEdE.js +147 -0
- package/dist/chunks/Icon-ISAK5vLx.cjs +1 -0
- package/dist/chunks/Masonry-CxVB3-w9.js +84 -0
- package/dist/chunks/Masonry-LPU0R1mE.cjs +1 -0
- package/dist/chunks/Modal-BfCALRKS.js +63 -0
- package/dist/chunks/Modal-DxqX4m57.cjs +1 -0
- package/dist/chunks/Popconfirm-C3npOXd6.js +112 -0
- package/dist/chunks/Popconfirm-CgPdSp84.cjs +1 -0
- package/dist/chunks/QRCode-B2Sdq1f6.cjs +8 -0
- package/dist/chunks/QRCode-BRcujxUT.js +1535 -0
- package/dist/chunks/ScreenAdapter-CugXUEoe.js +61 -0
- package/dist/chunks/ScreenAdapter-DpfmLRd5.cjs +1 -0
- package/dist/chunks/ScrollTable-B21j9zGn.cjs +1 -0
- package/dist/chunks/ScrollTable-NgSlPEKj.js +98 -0
- package/dist/chunks/Skeleton-CKvua4DB.cjs +1 -0
- package/dist/chunks/Skeleton-CQvCi-N8.js +76 -0
- package/dist/chunks/StatusIndicator-CliH19aT.js +40 -0
- package/dist/chunks/StatusIndicator-DhPwugAy.cjs +1 -0
- package/dist/chunks/TechBorder-Cu-JqkTf.js +45 -0
- package/dist/chunks/TechBorder-KTRXvzVv.cjs +1 -0
- package/dist/chunks/TechButton-CTrXjlsD.js +42 -0
- package/dist/chunks/TechButton-DYdIWO-l.cjs +1 -0
- package/dist/chunks/TechTitle-B3pkYIbI.cjs +1 -0
- package/dist/chunks/TechTitle-DfLwdrV5.js +41 -0
- package/dist/chunks/ThemeProvider-CGtZuVnU.cjs +1 -0
- package/dist/chunks/ThemeProvider-uEdKkbFn.js +206 -0
- package/dist/chunks/Toast-CedBaeZV.cjs +1 -0
- package/dist/chunks/Toast-DdlPSfu0.js +79 -0
- package/dist/chunks/index-CcykAxZN.js +6 -0
- package/dist/chunks/index-pCtiW2Id.cjs +1 -0
- package/dist/chunks/jsx-runtime-7asRZgsb.cjs +30 -0
- package/dist/chunks/jsx-runtime-C6iVud2f.js +630 -0
- package/dist/components/DataCard/DataCard.d.ts +18 -0
- package/dist/components/DataCard/entry.d.ts +3 -0
- package/dist/components/DataCard/index.d.ts +2 -0
- package/dist/components/DecorationLine/DecorationLine.d.ts +14 -0
- package/dist/components/DecorationLine/entry.d.ts +3 -0
- package/dist/components/DecorationLine/index.d.ts +2 -0
- package/dist/components/DigitalNumber/DigitalNumber.d.ts +17 -0
- package/dist/components/DigitalNumber/entry.d.ts +3 -0
- package/dist/components/DigitalNumber/index.d.ts +2 -0
- package/dist/components/Drawer/Drawer.d.ts +18 -0
- package/dist/components/Drawer/entry.d.ts +3 -0
- package/dist/components/Drawer/index.d.ts +2 -0
- package/dist/components/FloatingButton/FloatingButton.d.ts +24 -0
- package/dist/components/FloatingButton/entry.d.ts +3 -0
- package/dist/components/FloatingButton/index.d.ts +2 -0
- package/dist/components/FlowLight/FlowLight.d.ts +14 -0
- package/dist/components/FlowLight/entry.d.ts +3 -0
- package/dist/components/FlowLight/index.d.ts +2 -0
- package/dist/components/Icon/Icon.d.ts +16 -0
- package/dist/components/Icon/entry.d.ts +4 -0
- package/dist/components/Icon/index.d.ts +3 -0
- package/dist/components/Masonry/Masonry.d.ts +23 -0
- package/dist/components/Masonry/entry.d.ts +3 -0
- package/dist/components/Masonry/index.d.ts +2 -0
- package/dist/components/Modal/Modal.d.ts +18 -0
- package/dist/components/Modal/entry.d.ts +3 -0
- package/dist/components/Modal/index.d.ts +2 -0
- package/dist/components/Popconfirm/Popconfirm.d.ts +19 -0
- package/dist/components/Popconfirm/entry.d.ts +3 -0
- package/dist/components/Popconfirm/index.d.ts +2 -0
- package/dist/components/QRCode/QRCode.d.ts +19 -0
- package/dist/components/QRCode/entry.d.ts +3 -0
- package/dist/components/QRCode/index.d.ts +2 -0
- package/dist/components/ScreenAdapter/ScreenAdapter.d.ts +13 -0
- package/dist/components/ScreenAdapter/entry.d.ts +3 -0
- package/dist/components/ScreenAdapter/index.d.ts +2 -0
- package/dist/components/ScrollTable/ScrollTable.d.ts +23 -0
- package/dist/components/ScrollTable/entry.d.ts +3 -0
- package/dist/components/ScrollTable/index.d.ts +2 -0
- package/dist/components/Skeleton/Skeleton.d.ts +16 -0
- package/dist/components/Skeleton/entry.d.ts +3 -0
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/StatusIndicator/StatusIndicator.d.ts +14 -0
- package/dist/components/StatusIndicator/entry.d.ts +3 -0
- package/dist/components/StatusIndicator/index.d.ts +2 -0
- package/dist/components/TechBorder/TechBorder.d.ts +15 -0
- package/dist/components/TechBorder/entry.d.ts +3 -0
- package/dist/components/TechBorder/index.d.ts +2 -0
- package/dist/components/TechButton/TechButton.d.ts +15 -0
- package/dist/components/TechButton/entry.d.ts +3 -0
- package/dist/components/TechButton/index.d.ts +2 -0
- package/dist/components/TechTitle/TechTitle.d.ts +14 -0
- package/dist/components/TechTitle/entry.d.ts +3 -0
- package/dist/components/TechTitle/index.d.ts +2 -0
- package/dist/components/ThemeProvider/ThemeProvider.d.ts +42 -0
- package/dist/components/ThemeProvider/entry.d.ts +3 -0
- package/dist/components/ThemeProvider/index.d.ts +2 -0
- package/dist/components/Toast/Toast.d.ts +23 -0
- package/dist/components/Toast/entry.d.ts +3 -0
- package/dist/components/Toast/index.d.ts +2 -0
- package/dist/index/index.cjs +1 -0
- package/dist/index/index.js +49 -0
- package/dist/index/style.css +41 -0
- package/dist/index.d.ts +31 -0
- package/dist/jsx-runtime/style.css +1 -0
- package/dist/theme/index.cjs +1 -0
- package/dist/theme/index.d.ts +46 -0
- package/dist/theme/index.js +48 -0
- package/dist/theme.d.ts +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/package.json +165 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { j as u } from "./jsx-runtime-C6iVud2f.js";
|
|
2
|
+
import { useRef as O, useState as p, useCallback as R, useEffect as X } from "react";
|
|
3
|
+
const k = ({
|
|
4
|
+
width: e = 1920,
|
|
5
|
+
height: s = 1080,
|
|
6
|
+
children: m,
|
|
7
|
+
className: v,
|
|
8
|
+
style: w,
|
|
9
|
+
mode: n = "scale",
|
|
10
|
+
bgStyle: x = "dark"
|
|
11
|
+
}) => {
|
|
12
|
+
const $ = O(null), [r, c] = p(1), [S, o] = p(0), [b, a] = p(0), t = R(() => {
|
|
13
|
+
const i = window.innerWidth, l = window.innerHeight;
|
|
14
|
+
if (n === "full") {
|
|
15
|
+
c(1), o(0), a(0);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (n === "width-scale") {
|
|
19
|
+
const d = i / e;
|
|
20
|
+
c(d), o(0), a((l - s * d) / 2);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const j = i / e, E = l / s, f = Math.min(j, E);
|
|
24
|
+
c(f), o((i - e * f) / 2), a((l - s * f) / 2);
|
|
25
|
+
}, [e, s, n]);
|
|
26
|
+
X(() => (t(), window.addEventListener("resize", t), () => window.removeEventListener("resize", t)), [t]);
|
|
27
|
+
const h = `tech-screen-bg--${x}`;
|
|
28
|
+
return /* @__PURE__ */ u.jsx(
|
|
29
|
+
"div",
|
|
30
|
+
{
|
|
31
|
+
ref: $,
|
|
32
|
+
className: `tech-screen-adapter ${h} ${v || ""}`,
|
|
33
|
+
style: {
|
|
34
|
+
width: "100vw",
|
|
35
|
+
height: "100vh",
|
|
36
|
+
overflow: "hidden",
|
|
37
|
+
position: "relative",
|
|
38
|
+
...w
|
|
39
|
+
},
|
|
40
|
+
children: /* @__PURE__ */ u.jsx(
|
|
41
|
+
"div",
|
|
42
|
+
{
|
|
43
|
+
className: "tech-screen-adapter__content",
|
|
44
|
+
style: {
|
|
45
|
+
width: `${e}px`,
|
|
46
|
+
height: `${s}px`,
|
|
47
|
+
transform: `scale(${r}) translate(${S / r}px, ${b / r}px)`,
|
|
48
|
+
transformOrigin: "top left",
|
|
49
|
+
position: "absolute",
|
|
50
|
+
top: 0,
|
|
51
|
+
left: 0
|
|
52
|
+
},
|
|
53
|
+
children: m
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
k as S
|
|
61
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const p=require("./jsx-runtime-7asRZgsb.cjs"),e=require("react"),h=({width:t=1920,height:s=1080,children:x,className:$,style:v,mode:r="scale",bgStyle:w="dark"})=>{const m=e.useRef(null),[c,a]=e.useState(1),[S,o]=e.useState(0),[j,i]=e.useState(0),n=e.useCallback(()=>{const l=window.innerWidth,f=window.innerHeight;if(r==="full"){a(1),o(0),i(0);return}if(r==="width-scale"){const d=l/t;a(d),o(0),i((f-s*d)/2);return}const R=l/t,b=f/s,u=Math.min(R,b);a(u),o((l-t*u)/2),i((f-s*u)/2)},[t,s,r]);e.useEffect(()=>(n(),window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)),[n]);const E=`tech-screen-bg--${w}`;return p.jsxRuntimeExports.jsx("div",{ref:m,className:`tech-screen-adapter ${E} ${$||""}`,style:{width:"100vw",height:"100vh",overflow:"hidden",position:"relative",...v},children:p.jsxRuntimeExports.jsx("div",{className:"tech-screen-adapter__content",style:{width:`${t}px`,height:`${s}px`,transform:`scale(${c}) translate(${S/c}px, ${j/c}px)`,transformOrigin:"top left",position:"absolute",top:0,left:0},children:x})})};exports.ScreenAdapter=h;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const s=require("./jsx-runtime-7asRZgsb.cjs"),n=require("react"),f=require("./index-pCtiW2Id.cjs"),k=({columns:o,data:r,rowHeight:l=40,visibleRows:i=6,scrollSpeed:u=50,headerColor:j,rowHover:_=!0,animate:h=!0,className:b,style:y})=>{const R=n.useRef(null),[x,m]=n.useState(!1),[E,v]=n.useState(0),c=n.useRef(),N=[...r,...r];n.useEffect(()=>{if(!h||r.length<=i||x)return;let e=performance.now();const a=u/1e3*l,t=d=>{const q=(d-e)/16.67;e=d,v(S=>{const p=S+a*q,A=r.length*l;return p>=A?0:p}),c.current=requestAnimationFrame(t)};return c.current=requestAnimationFrame(t),()=>{c.current&&cancelAnimationFrame(c.current)}},[h,r.length,i,l,u,x]);const g={"--tech-table-row-height":`${l}px`,"--tech-table-header-color":j||"var(--tech-primary)"};return s.jsxRuntimeExports.jsxs("div",{className:f.clsx("tech-scroll-table",b),style:{...g,...y},children:[s.jsxRuntimeExports.jsx("div",{className:"tech-scroll-table__header",children:o.map(e=>s.jsxRuntimeExports.jsx("div",{className:"tech-scroll-table__header-cell",style:{width:e.width,textAlign:e.align||"left"},children:e.title},e.key))}),s.jsxRuntimeExports.jsx("div",{ref:R,className:"tech-scroll-table__body",style:{height:i*l},onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:s.jsxRuntimeExports.jsx("div",{className:"tech-scroll-table__scroll-wrapper",style:{transform:`translateY(${-E}px)`},children:N.map((e,a)=>s.jsxRuntimeExports.jsx("div",{className:f.clsx("tech-scroll-table__row",_&&"tech-scroll-table__row--hover"),children:o.map(t=>s.jsxRuntimeExports.jsx("div",{className:"tech-scroll-table__cell",style:{width:t.width,textAlign:t.align||"left"},children:t.render?t.render(e[t.key],e,a%r.length):e[t.key]},t.key))},a))})})]})};exports.ScrollTable=k;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { j as l } from "./jsx-runtime-C6iVud2f.js";
|
|
2
|
+
import { useRef as p, useState as x, useEffect as T } from "react";
|
|
3
|
+
import { c as _ } from "./index-CcykAxZN.js";
|
|
4
|
+
const R = ({
|
|
5
|
+
columns: o,
|
|
6
|
+
data: s,
|
|
7
|
+
rowHeight: r = 40,
|
|
8
|
+
visibleRows: c = 6,
|
|
9
|
+
scrollSpeed: i = 50,
|
|
10
|
+
headerColor: b,
|
|
11
|
+
rowHover: y = !0,
|
|
12
|
+
animate: h = !0,
|
|
13
|
+
className: j,
|
|
14
|
+
style: v
|
|
15
|
+
}) => {
|
|
16
|
+
const N = p(null), [m, u] = x(!1), [g, A] = x(0), a = p(), S = [...s, ...s];
|
|
17
|
+
T(() => {
|
|
18
|
+
if (!h || s.length <= c || m) return;
|
|
19
|
+
let e = performance.now();
|
|
20
|
+
const n = i / 1e3 * r, t = (d) => {
|
|
21
|
+
const w = (d - e) / 16.67;
|
|
22
|
+
e = d, A((E) => {
|
|
23
|
+
const f = E + n * w, F = s.length * r;
|
|
24
|
+
return f >= F ? 0 : f;
|
|
25
|
+
}), a.current = requestAnimationFrame(t);
|
|
26
|
+
};
|
|
27
|
+
return a.current = requestAnimationFrame(t), () => {
|
|
28
|
+
a.current && cancelAnimationFrame(a.current);
|
|
29
|
+
};
|
|
30
|
+
}, [h, s.length, c, r, i, m]);
|
|
31
|
+
const k = {
|
|
32
|
+
"--tech-table-row-height": `${r}px`,
|
|
33
|
+
"--tech-table-header-color": b || "var(--tech-primary)"
|
|
34
|
+
};
|
|
35
|
+
return /* @__PURE__ */ l.jsxs(
|
|
36
|
+
"div",
|
|
37
|
+
{
|
|
38
|
+
className: _("tech-scroll-table", j),
|
|
39
|
+
style: { ...k, ...v },
|
|
40
|
+
children: [
|
|
41
|
+
/* @__PURE__ */ l.jsx("div", { className: "tech-scroll-table__header", children: o.map((e) => /* @__PURE__ */ l.jsx(
|
|
42
|
+
"div",
|
|
43
|
+
{
|
|
44
|
+
className: "tech-scroll-table__header-cell",
|
|
45
|
+
style: {
|
|
46
|
+
width: e.width,
|
|
47
|
+
textAlign: e.align || "left"
|
|
48
|
+
},
|
|
49
|
+
children: e.title
|
|
50
|
+
},
|
|
51
|
+
e.key
|
|
52
|
+
)) }),
|
|
53
|
+
/* @__PURE__ */ l.jsx(
|
|
54
|
+
"div",
|
|
55
|
+
{
|
|
56
|
+
ref: N,
|
|
57
|
+
className: "tech-scroll-table__body",
|
|
58
|
+
style: { height: c * r },
|
|
59
|
+
onMouseEnter: () => u(!0),
|
|
60
|
+
onMouseLeave: () => u(!1),
|
|
61
|
+
children: /* @__PURE__ */ l.jsx(
|
|
62
|
+
"div",
|
|
63
|
+
{
|
|
64
|
+
className: "tech-scroll-table__scroll-wrapper",
|
|
65
|
+
style: { transform: `translateY(${-g}px)` },
|
|
66
|
+
children: S.map((e, n) => /* @__PURE__ */ l.jsx(
|
|
67
|
+
"div",
|
|
68
|
+
{
|
|
69
|
+
className: _(
|
|
70
|
+
"tech-scroll-table__row",
|
|
71
|
+
y && "tech-scroll-table__row--hover"
|
|
72
|
+
),
|
|
73
|
+
children: o.map((t) => /* @__PURE__ */ l.jsx(
|
|
74
|
+
"div",
|
|
75
|
+
{
|
|
76
|
+
className: "tech-scroll-table__cell",
|
|
77
|
+
style: {
|
|
78
|
+
width: t.width,
|
|
79
|
+
textAlign: t.align || "left"
|
|
80
|
+
},
|
|
81
|
+
children: t.render ? t.render(e[t.key], e, n % s.length) : e[t.key]
|
|
82
|
+
},
|
|
83
|
+
t.key
|
|
84
|
+
))
|
|
85
|
+
},
|
|
86
|
+
n
|
|
87
|
+
))
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
}
|
|
91
|
+
)
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
};
|
|
96
|
+
export {
|
|
97
|
+
R as S
|
|
98
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-7asRZgsb.cjs"),s=require("./index-pCtiW2Id.cjs"),u=({variant:t="text",width:h,height:m,rows:c=1,rowsGap:d=12,animate:x=!0,loading:o,className:i,style:l,children:n})=>{if(o===!1&&n)return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:n});if(o===!1)return null;if(n&&o===void 0)return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:n});if(t==="card")return e.jsxRuntimeExports.jsxs("div",{className:s.clsx("tech-skeleton-card",x&&"tech-skeleton--animate",i),style:l,children:[e.jsxRuntimeExports.jsxs("div",{className:"tech-skeleton-card__header",children:[e.jsxRuntimeExports.jsx("div",{className:"tech-skeleton tech-skeleton--circle",style:{width:40,height:40}}),e.jsxRuntimeExports.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:8},children:[e.jsxRuntimeExports.jsx("div",{className:"tech-skeleton tech-skeleton--text",style:{width:"40%",height:14}}),e.jsxRuntimeExports.jsx("div",{className:"tech-skeleton tech-skeleton--text",style:{width:"25%",height:10}})]})]}),e.jsxRuntimeExports.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8,marginTop:12},children:[e.jsxRuntimeExports.jsx("div",{className:"tech-skeleton tech-skeleton--text",style:{width:"100%",height:12}}),e.jsxRuntimeExports.jsx("div",{className:"tech-skeleton tech-skeleton--text",style:{width:"80%",height:12}})]}),e.jsxRuntimeExports.jsxs("div",{className:"tech-skeleton-card__footer",children:[e.jsxRuntimeExports.jsx("div",{className:"tech-skeleton tech-skeleton--rect",style:{width:64,height:24,borderRadius:2}}),e.jsxRuntimeExports.jsx("div",{className:"tech-skeleton tech-skeleton--rect",style:{width:64,height:24,borderRadius:2}})]})]});if(t==="circle"){const r=h||40;return e.jsxRuntimeExports.jsx("div",{className:s.clsx("tech-skeleton","tech-skeleton--circle",x&&"tech-skeleton--animate",i),style:{width:r,height:r,...l}})}return c>1?e.jsxRuntimeExports.jsx("div",{className:s.clsx("tech-skeleton-rows",i),style:{gap:d,...l},children:Array.from({length:c}).map((r,j)=>e.jsxRuntimeExports.jsx("div",{className:s.clsx("tech-skeleton",`tech-skeleton--${t}`,x&&"tech-skeleton--animate"),style:{width:j===c-1?"70%":"100%",height:m||(t==="text"?14:20)}},j))}):e.jsxRuntimeExports.jsx("div",{className:s.clsx("tech-skeleton",`tech-skeleton--${t}`,x&&"tech-skeleton--animate",i),style:{width:h,height:m,...l}})};exports.Skeleton=u;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { j as e } from "./jsx-runtime-C6iVud2f.js";
|
|
2
|
+
import { c as s } from "./index-CcykAxZN.js";
|
|
3
|
+
const f = ({
|
|
4
|
+
variant: t = "text",
|
|
5
|
+
width: d,
|
|
6
|
+
height: a,
|
|
7
|
+
rows: n = 1,
|
|
8
|
+
rowsGap: k = 12,
|
|
9
|
+
animate: l = !0,
|
|
10
|
+
loading: o,
|
|
11
|
+
className: c,
|
|
12
|
+
style: h,
|
|
13
|
+
children: i
|
|
14
|
+
}) => {
|
|
15
|
+
if (o === !1 && i)
|
|
16
|
+
return /* @__PURE__ */ e.jsx(e.Fragment, { children: i });
|
|
17
|
+
if (o === !1)
|
|
18
|
+
return null;
|
|
19
|
+
if (i && o === void 0)
|
|
20
|
+
return /* @__PURE__ */ e.jsx(e.Fragment, { children: i });
|
|
21
|
+
if (t === "card")
|
|
22
|
+
return /* @__PURE__ */ e.jsxs(
|
|
23
|
+
"div",
|
|
24
|
+
{
|
|
25
|
+
className: s("tech-skeleton-card", l && "tech-skeleton--animate", c),
|
|
26
|
+
style: h,
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ e.jsxs("div", { className: "tech-skeleton-card__header", children: [
|
|
29
|
+
/* @__PURE__ */ e.jsx("div", { className: "tech-skeleton tech-skeleton--circle", style: { width: 40, height: 40 } }),
|
|
30
|
+
/* @__PURE__ */ e.jsxs("div", { style: { flex: 1, display: "flex", flexDirection: "column", gap: 8 }, children: [
|
|
31
|
+
/* @__PURE__ */ e.jsx("div", { className: "tech-skeleton tech-skeleton--text", style: { width: "40%", height: 14 } }),
|
|
32
|
+
/* @__PURE__ */ e.jsx("div", { className: "tech-skeleton tech-skeleton--text", style: { width: "25%", height: 10 } })
|
|
33
|
+
] })
|
|
34
|
+
] }),
|
|
35
|
+
/* @__PURE__ */ e.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 8, marginTop: 12 }, children: [
|
|
36
|
+
/* @__PURE__ */ e.jsx("div", { className: "tech-skeleton tech-skeleton--text", style: { width: "100%", height: 12 } }),
|
|
37
|
+
/* @__PURE__ */ e.jsx("div", { className: "tech-skeleton tech-skeleton--text", style: { width: "80%", height: 12 } })
|
|
38
|
+
] }),
|
|
39
|
+
/* @__PURE__ */ e.jsxs("div", { className: "tech-skeleton-card__footer", children: [
|
|
40
|
+
/* @__PURE__ */ e.jsx("div", { className: "tech-skeleton tech-skeleton--rect", style: { width: 64, height: 24, borderRadius: 2 } }),
|
|
41
|
+
/* @__PURE__ */ e.jsx("div", { className: "tech-skeleton tech-skeleton--rect", style: { width: 64, height: 24, borderRadius: 2 } })
|
|
42
|
+
] })
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
if (t === "circle") {
|
|
47
|
+
const r = d || 40;
|
|
48
|
+
return /* @__PURE__ */ e.jsx(
|
|
49
|
+
"div",
|
|
50
|
+
{
|
|
51
|
+
className: s("tech-skeleton", "tech-skeleton--circle", l && "tech-skeleton--animate", c),
|
|
52
|
+
style: { width: r, height: r, ...h }
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
return n > 1 ? /* @__PURE__ */ e.jsx("div", { className: s("tech-skeleton-rows", c), style: { gap: k, ...h }, children: Array.from({ length: n }).map((r, x) => /* @__PURE__ */ e.jsx(
|
|
57
|
+
"div",
|
|
58
|
+
{
|
|
59
|
+
className: s("tech-skeleton", `tech-skeleton--${t}`, l && "tech-skeleton--animate"),
|
|
60
|
+
style: {
|
|
61
|
+
width: x === n - 1 ? "70%" : "100%",
|
|
62
|
+
height: a || (t === "text" ? 14 : 20)
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
x
|
|
66
|
+
)) }) : /* @__PURE__ */ e.jsx(
|
|
67
|
+
"div",
|
|
68
|
+
{
|
|
69
|
+
className: s("tech-skeleton", `tech-skeleton--${t}`, l && "tech-skeleton--animate", c),
|
|
70
|
+
style: { width: d, height: a, ...h }
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
export {
|
|
75
|
+
f as S
|
|
76
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { j as t } from "./jsx-runtime-C6iVud2f.js";
|
|
2
|
+
import { c as u } from "./index-CcykAxZN.js";
|
|
3
|
+
const x = ({
|
|
4
|
+
status: r = "online",
|
|
5
|
+
color: c,
|
|
6
|
+
label: s,
|
|
7
|
+
size: e = "medium",
|
|
8
|
+
animate: a = !0,
|
|
9
|
+
showDot: o = !0,
|
|
10
|
+
className: n,
|
|
11
|
+
style: i
|
|
12
|
+
}) => {
|
|
13
|
+
const l = {
|
|
14
|
+
"--tech-status-color": c || {
|
|
15
|
+
online: "var(--tech-success)",
|
|
16
|
+
offline: "var(--tech-text-muted)",
|
|
17
|
+
warning: "var(--tech-warning)",
|
|
18
|
+
error: "var(--tech-danger)"
|
|
19
|
+
}[r] || "var(--tech-primary)"
|
|
20
|
+
};
|
|
21
|
+
return /* @__PURE__ */ t.jsxs(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
className: u(
|
|
25
|
+
"tech-status-indicator",
|
|
26
|
+
`tech-status-indicator--${e}`,
|
|
27
|
+
a && "tech-status-indicator--animate",
|
|
28
|
+
n
|
|
29
|
+
),
|
|
30
|
+
style: { ...l, ...i },
|
|
31
|
+
children: [
|
|
32
|
+
o && /* @__PURE__ */ t.jsx("span", { className: "tech-status-indicator__dot", children: a && /* @__PURE__ */ t.jsx("span", { className: "tech-status-indicator__pulse" }) }),
|
|
33
|
+
s && /* @__PURE__ */ t.jsx("span", { className: "tech-status-indicator__label", children: s })
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
export {
|
|
39
|
+
x as S
|
|
40
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t=require("./jsx-runtime-7asRZgsb.cjs"),d=require("./index-pCtiW2Id.cjs"),l=({status:r="online",color:a,label:s,size:c="medium",animate:e=!0,showDot:n=!0,className:o,style:i})=>{const u={"--tech-status-color":a||{online:"var(--tech-success)",offline:"var(--tech-text-muted)",warning:"var(--tech-warning)",error:"var(--tech-danger)"}[r]||"var(--tech-primary)"};return t.jsxRuntimeExports.jsxs("div",{className:d.clsx("tech-status-indicator",`tech-status-indicator--${c}`,e&&"tech-status-indicator--animate",o),style:{...u,...i},children:[n&&t.jsxRuntimeExports.jsx("span",{className:"tech-status-indicator__dot",children:e&&t.jsxRuntimeExports.jsx("span",{className:"tech-status-indicator__pulse"})}),s&&t.jsxRuntimeExports.jsx("span",{className:"tech-status-indicator__label",children:s})]})};exports.StatusIndicator=l;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { j as r } from "./jsx-runtime-C6iVud2f.js";
|
|
2
|
+
import { c as b } from "./index-CcykAxZN.js";
|
|
3
|
+
const x = ({
|
|
4
|
+
variant: e = "corner",
|
|
5
|
+
color: c,
|
|
6
|
+
glowColor: s,
|
|
7
|
+
borderWidth: o = 1,
|
|
8
|
+
cornerSize: t = 16,
|
|
9
|
+
animate: a = !0,
|
|
10
|
+
children: n,
|
|
11
|
+
className: d,
|
|
12
|
+
style: h
|
|
13
|
+
}) => {
|
|
14
|
+
const _ = {
|
|
15
|
+
"--tech-border-color": c || "var(--tech-primary)",
|
|
16
|
+
"--tech-border-glow": s || "var(--tech-glow-primary)",
|
|
17
|
+
"--tech-border-width": `${o}px`,
|
|
18
|
+
"--tech-corner-size": `${t}px`
|
|
19
|
+
};
|
|
20
|
+
return /* @__PURE__ */ r.jsxs(
|
|
21
|
+
"div",
|
|
22
|
+
{
|
|
23
|
+
className: b(
|
|
24
|
+
"tech-border",
|
|
25
|
+
`tech-border--${e}`,
|
|
26
|
+
a && "tech-border--animate",
|
|
27
|
+
d
|
|
28
|
+
),
|
|
29
|
+
style: { ..._, ...h },
|
|
30
|
+
children: [
|
|
31
|
+
e === "corner" && /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
|
|
32
|
+
/* @__PURE__ */ r.jsx("span", { className: "tech-border__corner tech-border__corner--tl" }),
|
|
33
|
+
/* @__PURE__ */ r.jsx("span", { className: "tech-border__corner tech-border__corner--tr" }),
|
|
34
|
+
/* @__PURE__ */ r.jsx("span", { className: "tech-border__corner tech-border__corner--bl" }),
|
|
35
|
+
/* @__PURE__ */ r.jsx("span", { className: "tech-border__corner tech-border__corner--br" })
|
|
36
|
+
] }),
|
|
37
|
+
e === "scan" && /* @__PURE__ */ r.jsx("div", { className: "tech-border__scan-line" }),
|
|
38
|
+
/* @__PURE__ */ r.jsx("div", { className: "tech-border__content", children: n })
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
};
|
|
43
|
+
export {
|
|
44
|
+
x as T
|
|
45
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const r=require("./jsx-runtime-7asRZgsb.cjs"),i=require("./index-pCtiW2Id.cjs"),m=({variant:e="corner",color:s,glowColor:c,borderWidth:t=1,cornerSize:o=16,animate:n=!0,children:x,className:d,style:a})=>{const h={"--tech-border-color":s||"var(--tech-primary)","--tech-border-glow":c||"var(--tech-glow-primary)","--tech-border-width":`${t}px`,"--tech-corner-size":`${o}px`};return r.jsxRuntimeExports.jsxs("div",{className:i.clsx("tech-border",`tech-border--${e}`,n&&"tech-border--animate",d),style:{...h,...a},children:[e==="corner"&&r.jsxRuntimeExports.jsxs(r.jsxRuntimeExports.Fragment,{children:[r.jsxRuntimeExports.jsx("span",{className:"tech-border__corner tech-border__corner--tl"}),r.jsxRuntimeExports.jsx("span",{className:"tech-border__corner tech-border__corner--tr"}),r.jsxRuntimeExports.jsx("span",{className:"tech-border__corner tech-border__corner--bl"}),r.jsxRuntimeExports.jsx("span",{className:"tech-border__corner tech-border__corner--br"})]}),e==="scan"&&r.jsxRuntimeExports.jsx("div",{className:"tech-border__scan-line"}),r.jsxRuntimeExports.jsx("div",{className:"tech-border__content",children:x})]})};exports.TechBorder=m;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { j as t } from "./jsx-runtime-C6iVud2f.js";
|
|
2
|
+
import { c as p } from "./index-CcykAxZN.js";
|
|
3
|
+
const i = ({
|
|
4
|
+
variant: a = "primary",
|
|
5
|
+
size: o = "medium",
|
|
6
|
+
color: e,
|
|
7
|
+
glow: r = !1,
|
|
8
|
+
loading: s = !1,
|
|
9
|
+
icon: c,
|
|
10
|
+
children: n,
|
|
11
|
+
className: u,
|
|
12
|
+
disabled: b,
|
|
13
|
+
style: m,
|
|
14
|
+
...h
|
|
15
|
+
}) => {
|
|
16
|
+
const l = e ? { "--tech-btn-color": e } : {};
|
|
17
|
+
return /* @__PURE__ */ t.jsxs(
|
|
18
|
+
"button",
|
|
19
|
+
{
|
|
20
|
+
className: p(
|
|
21
|
+
"tech-button",
|
|
22
|
+
`tech-button--${a}`,
|
|
23
|
+
`tech-button--${o}`,
|
|
24
|
+
r && "tech-button--glow",
|
|
25
|
+
s && "tech-button--loading",
|
|
26
|
+
u
|
|
27
|
+
),
|
|
28
|
+
disabled: b || s,
|
|
29
|
+
style: { ...l, ...m },
|
|
30
|
+
...h,
|
|
31
|
+
children: [
|
|
32
|
+
/* @__PURE__ */ t.jsx("span", { className: "tech-button__border-effect" }),
|
|
33
|
+
s && /* @__PURE__ */ t.jsx("span", { className: "tech-button__spinner" }),
|
|
34
|
+
c && /* @__PURE__ */ t.jsx("span", { className: "tech-button__icon", children: c }),
|
|
35
|
+
n && /* @__PURE__ */ t.jsx("span", { className: "tech-button__text", children: n })
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
};
|
|
40
|
+
export {
|
|
41
|
+
i as T
|
|
42
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t=require("./jsx-runtime-7asRZgsb.cjs"),h=require("./index-pCtiW2Id.cjs"),j=({variant:u="primary",size:o="medium",color:e,glow:r=!1,loading:s=!1,icon:n,children:c,className:x,disabled:a,style:i,...m})=>{const b=e?{"--tech-btn-color":e}:{};return t.jsxRuntimeExports.jsxs("button",{className:h.clsx("tech-button",`tech-button--${u}`,`tech-button--${o}`,r&&"tech-button--glow",s&&"tech-button--loading",x),disabled:a||s,style:{...b,...i},...m,children:[t.jsxRuntimeExports.jsx("span",{className:"tech-button__border-effect"}),s&&t.jsxRuntimeExports.jsx("span",{className:"tech-button__spinner"}),n&&t.jsxRuntimeExports.jsx("span",{className:"tech-button__icon",children:n}),c&&t.jsxRuntimeExports.jsx("span",{className:"tech-button__text",children:c})]})};exports.TechButton=j;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t=require("./jsx-runtime-7asRZgsb.cjs"),u=require("./index-pCtiW2Id.cjs"),m=({children:i,variant:e="default",level:s=1,color:c,align:l="left",animate:n=!0,className:r,style:x})=>{const a=c?{"--tech-title-color":c}:{},h=`h${s}`;return t.jsxRuntimeExports.jsxs(h,{className:u.clsx("tech-title",`tech-title--${e}`,`tech-title--h${s}`,`tech-title--${l}`,n&&"tech-title--animate",r),style:{...a,...x},children:[e==="bracket"&&t.jsxRuntimeExports.jsx("span",{className:"tech-title__bracket tech-title__bracket--left",children:"【"}),t.jsxRuntimeExports.jsx("span",{className:"tech-title__text",children:i}),e==="bracket"&&t.jsxRuntimeExports.jsx("span",{className:"tech-title__bracket tech-title__bracket--right",children:"】"}),e==="underline"&&t.jsxRuntimeExports.jsxs("div",{className:"tech-title__underline",children:[t.jsxRuntimeExports.jsx("span",{className:"tech-title__underline-dot"}),t.jsxRuntimeExports.jsx("span",{className:"tech-title__underline-line"}),t.jsxRuntimeExports.jsx("span",{className:"tech-title__underline-dot"})]})]})};exports.TechTitle=m;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { j as e } from "./jsx-runtime-C6iVud2f.js";
|
|
2
|
+
import { c as m } from "./index-CcykAxZN.js";
|
|
3
|
+
const o = ({
|
|
4
|
+
children: l,
|
|
5
|
+
variant: t = "default",
|
|
6
|
+
level: s = 1,
|
|
7
|
+
color: c,
|
|
8
|
+
align: a = "left",
|
|
9
|
+
animate: i = !0,
|
|
10
|
+
className: n,
|
|
11
|
+
style: h
|
|
12
|
+
}) => {
|
|
13
|
+
const r = c ? { "--tech-title-color": c } : {}, _ = `h${s}`;
|
|
14
|
+
return /* @__PURE__ */ e.jsxs(
|
|
15
|
+
_,
|
|
16
|
+
{
|
|
17
|
+
className: m(
|
|
18
|
+
"tech-title",
|
|
19
|
+
`tech-title--${t}`,
|
|
20
|
+
`tech-title--h${s}`,
|
|
21
|
+
`tech-title--${a}`,
|
|
22
|
+
i && "tech-title--animate",
|
|
23
|
+
n
|
|
24
|
+
),
|
|
25
|
+
style: { ...r, ...h },
|
|
26
|
+
children: [
|
|
27
|
+
t === "bracket" && /* @__PURE__ */ e.jsx("span", { className: "tech-title__bracket tech-title__bracket--left", children: "【" }),
|
|
28
|
+
/* @__PURE__ */ e.jsx("span", { className: "tech-title__text", children: l }),
|
|
29
|
+
t === "bracket" && /* @__PURE__ */ e.jsx("span", { className: "tech-title__bracket tech-title__bracket--right", children: "】" }),
|
|
30
|
+
t === "underline" && /* @__PURE__ */ e.jsxs("div", { className: "tech-title__underline", children: [
|
|
31
|
+
/* @__PURE__ */ e.jsx("span", { className: "tech-title__underline-dot" }),
|
|
32
|
+
/* @__PURE__ */ e.jsx("span", { className: "tech-title__underline-line" }),
|
|
33
|
+
/* @__PURE__ */ e.jsx("span", { className: "tech-title__underline-dot" })
|
|
34
|
+
] })
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
o as T
|
|
41
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const m=require("./jsx-runtime-7asRZgsb.cjs"),t=require("react"),r={"cyber-blue":{"--tech-primary":"#00d4ff","--tech-primary-dark":"#0098d4","--tech-primary-light":"#33ddff","--tech-secondary":"#0affb0","--tech-secondary-dark":"#08c98a","--tech-accent":"#ff6b35","--tech-warning":"#ffd000","--tech-danger":"#ff4757","--tech-success":"#0affb0","--tech-bg-dark":"#0a0e27","--tech-bg-medium":"#0d1135","--tech-bg-light":"#131842","--tech-bg-card":"rgba(13, 17, 53, 0.85)","--tech-bg-card-hover":"rgba(19, 24, 66, 0.9)","--tech-border":"rgba(0, 212, 255, 0.3)","--tech-border-active":"rgba(0, 212, 255, 0.7)","--tech-text-primary":"#e8eaf6","--tech-text-secondary":"rgba(232, 234, 246, 0.65)","--tech-text-muted":"rgba(232, 234, 246, 0.35)","--tech-glow-primary":"rgba(0, 212, 255, 0.15)","--tech-glow-secondary":"rgba(10, 255, 176, 0.15)"},"neon-green":{"--tech-primary":"#0affb0","--tech-primary-dark":"#08c98a","--tech-primary-light":"#33ffc4","--tech-secondary":"#00d4ff","--tech-secondary-dark":"#0098d4","--tech-accent":"#ff6b35","--tech-warning":"#ffd000","--tech-danger":"#ff4757","--tech-success":"#0affb0","--tech-bg-dark":"#050f0a","--tech-bg-medium":"#081a10","--tech-bg-light":"#0e2518","--tech-bg-card":"rgba(8, 26, 16, 0.85)","--tech-bg-card-hover":"rgba(14, 37, 24, 0.9)","--tech-border":"rgba(10, 255, 176, 0.3)","--tech-border-active":"rgba(10, 255, 176, 0.7)","--tech-text-primary":"#e8f6ee","--tech-text-secondary":"rgba(232, 246, 238, 0.65)","--tech-text-muted":"rgba(232, 246, 238, 0.35)","--tech-glow-primary":"rgba(10, 255, 176, 0.15)","--tech-glow-secondary":"rgba(0, 212, 255, 0.15)"},"aurora-purple":{"--tech-primary":"#a855f7","--tech-primary-dark":"#7c3aed","--tech-primary-light":"#c084fc","--tech-secondary":"#06b6d4","--tech-secondary-dark":"#0891b2","--tech-accent":"#f472b6","--tech-warning":"#fbbf24","--tech-danger":"#ef4444","--tech-success":"#34d399","--tech-bg-dark":"#0c0515","--tech-bg-medium":"#120a20","--tech-bg-light":"#1a1030","--tech-bg-card":"rgba(18, 10, 32, 0.85)","--tech-bg-card-hover":"rgba(26, 16, 48, 0.9)","--tech-border":"rgba(168, 85, 247, 0.3)","--tech-border-active":"rgba(168, 85, 247, 0.7)","--tech-text-primary":"#f0e6f6","--tech-text-secondary":"rgba(240, 230, 246, 0.65)","--tech-text-muted":"rgba(240, 230, 246, 0.35)","--tech-glow-primary":"rgba(168, 85, 247, 0.15)","--tech-glow-secondary":"rgba(6, 182, 212, 0.15)"},"sunset-orange":{"--tech-primary":"#ff6b35","--tech-primary-dark":"#e55a2b","--tech-primary-light":"#ff8f66","--tech-secondary":"#ffd000","--tech-secondary-dark":"#d4ad00","--tech-accent":"#00d4ff","--tech-warning":"#ffd000","--tech-danger":"#ff4757","--tech-success":"#0affb0","--tech-bg-dark":"#120a05","--tech-bg-medium":"#1a0f08","--tech-bg-light":"#241810","--tech-bg-card":"rgba(26, 15, 8, 0.85)","--tech-bg-card-hover":"rgba(36, 24, 16, 0.9)","--tech-border":"rgba(255, 107, 53, 0.3)","--tech-border-active":"rgba(255, 107, 53, 0.7)","--tech-text-primary":"#f6ece6","--tech-text-secondary":"rgba(246, 236, 230, 0.65)","--tech-text-muted":"rgba(246, 236, 230, 0.35)","--tech-glow-primary":"rgba(255, 107, 53, 0.15)","--tech-glow-secondary":"rgba(255, 208, 0, 0.15)"},"crimson-red":{"--tech-primary":"#ff4757","--tech-primary-dark":"#dc2626","--tech-primary-light":"#ff6b7a","--tech-secondary":"#fbbf24","--tech-secondary-dark":"#d4a017","--tech-accent":"#00d4ff","--tech-warning":"#ffd000","--tech-danger":"#ff4757","--tech-success":"#34d399","--tech-bg-dark":"#0f0508","--tech-bg-medium":"#180810","--tech-bg-light":"#220c16","--tech-bg-card":"rgba(24, 8, 16, 0.85)","--tech-bg-card-hover":"rgba(34, 12, 22, 0.9)","--tech-border":"rgba(255, 71, 87, 0.3)","--tech-border-active":"rgba(255, 71, 87, 0.7)","--tech-text-primary":"#f6e6e8","--tech-text-secondary":"rgba(246, 230, 232, 0.65)","--tech-text-muted":"rgba(246, 230, 232, 0.35)","--tech-glow-primary":"rgba(255, 71, 87, 0.15)","--tech-glow-secondary":"rgba(251, 191, 36, 0.15)"},"gold-luxury":{"--tech-primary":"#fbbf24","--tech-primary-dark":"#d4a017","--tech-primary-light":"#fcd34d","--tech-secondary":"#a855f7","--tech-secondary-dark":"#7c3aed","--tech-accent":"#00d4ff","--tech-warning":"#fbbf24","--tech-danger":"#ef4444","--tech-success":"#34d399","--tech-bg-dark":"#0a0805","--tech-bg-medium":"#14100a","--tech-bg-light":"#1e1810","--tech-bg-card":"rgba(20, 16, 10, 0.85)","--tech-bg-card-hover":"rgba(30, 24, 16, 0.9)","--tech-border":"rgba(251, 191, 36, 0.3)","--tech-border-active":"rgba(251, 191, 36, 0.7)","--tech-text-primary":"#f6f0e6","--tech-text-secondary":"rgba(246, 240, 230, 0.65)","--tech-text-muted":"rgba(246, 240, 230, 0.35)","--tech-glow-primary":"rgba(251, 191, 36, 0.15)","--tech-glow-secondary":"rgba(168, 85, 247, 0.15)"},"dark-abyss":{"--tech-primary":"#64748b","--tech-primary-dark":"#475569","--tech-primary-light":"#94a3b8","--tech-secondary":"#a1a1aa","--tech-secondary-dark":"#71717a","--tech-accent":"#f87171","--tech-warning":"#fbbf24","--tech-danger":"#ef4444","--tech-success":"#6ee7b7","--tech-bg-dark":"#000000","--tech-bg-medium":"#09090b","--tech-bg-light":"#18181b","--tech-bg-card":"rgba(9, 9, 11, 0.92)","--tech-bg-card-hover":"rgba(24, 24, 27, 0.95)","--tech-border":"rgba(100, 116, 139, 0.25)","--tech-border-active":"rgba(100, 116, 139, 0.6)","--tech-text-primary":"#e4e4e7","--tech-text-secondary":"rgba(228, 228, 231, 0.55)","--tech-text-muted":"rgba(228, 228, 231, 0.25)","--tech-glow-primary":"rgba(100, 116, 139, 0.1)","--tech-glow-secondary":"rgba(161, 161, 170, 0.08)"}},d={"cyber-blue":"赛博蓝","neon-green":"霓虹绿","aurora-purple":"极光紫","sunset-orange":"落日橙","crimson-red":"赤焰红","gold-luxury":"鎏金","dark-abyss":"暗黑深渊"},o=t.createContext(null),y=({defaultTheme:c="cyber-blue",children:s})=>{const[n,b]=t.useState(c),[h,g]=t.useState(r[c]||r["cyber-blue"]),f=t.useCallback((e,a)=>{a?(b(e),g(a)):r[e]&&(b(e),g(r[e]))},[]);return t.useEffect(()=>{const e=document.documentElement;Object.entries(h).forEach(([a,i])=>{e.style.setProperty(a,i)})},[h]),m.jsxRuntimeExports.jsx(o.Provider,{value:{themeName:n,themeVars:h,setTheme:f,presetThemes:r,themeLabels:d},children:s})};function u(){const c=t.useContext(o);if(!c)throw new Error("useTheme must be used within a ThemeProvider");return c}exports.ThemeProvider=y;exports.presetThemes=r;exports.themeLabels=d;exports.useTheme=u;
|