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.
Files changed (199) hide show
  1. package/LICENSE +82 -0
  2. package/README.en.md +36 -0
  3. package/README.md +412 -0
  4. package/dist/DataCard/index.cjs +1 -0
  5. package/dist/DataCard/index.js +5 -0
  6. package/dist/DataCard/style.css +1 -0
  7. package/dist/DataCard.d.ts +1 -0
  8. package/dist/DecorationLine/index.cjs +1 -0
  9. package/dist/DecorationLine/index.js +5 -0
  10. package/dist/DecorationLine/style.css +1 -0
  11. package/dist/DecorationLine.d.ts +1 -0
  12. package/dist/DigitalNumber/index.cjs +1 -0
  13. package/dist/DigitalNumber/index.js +5 -0
  14. package/dist/DigitalNumber/style.css +1 -0
  15. package/dist/DigitalNumber.d.ts +1 -0
  16. package/dist/Drawer/index.cjs +1 -0
  17. package/dist/Drawer/index.js +5 -0
  18. package/dist/Drawer/style.css +1 -0
  19. package/dist/Drawer.d.ts +1 -0
  20. package/dist/FloatingButton/index.cjs +1 -0
  21. package/dist/FloatingButton/index.js +5 -0
  22. package/dist/FloatingButton/style.css +1 -0
  23. package/dist/FloatingButton.d.ts +1 -0
  24. package/dist/FlowLight/index.cjs +1 -0
  25. package/dist/FlowLight/index.js +5 -0
  26. package/dist/FlowLight/style.css +1 -0
  27. package/dist/FlowLight.d.ts +1 -0
  28. package/dist/Icon/index.cjs +1 -0
  29. package/dist/Icon/index.js +6 -0
  30. package/dist/Icon/style.css +1 -0
  31. package/dist/Icon.d.ts +1 -0
  32. package/dist/Masonry/index.cjs +1 -0
  33. package/dist/Masonry/index.js +5 -0
  34. package/dist/Masonry/style.css +1 -0
  35. package/dist/Masonry.d.ts +1 -0
  36. package/dist/Modal/index.cjs +1 -0
  37. package/dist/Modal/index.js +5 -0
  38. package/dist/Modal/style.css +1 -0
  39. package/dist/Modal.d.ts +1 -0
  40. package/dist/Popconfirm/index.cjs +1 -0
  41. package/dist/Popconfirm/index.js +5 -0
  42. package/dist/Popconfirm/style.css +1 -0
  43. package/dist/Popconfirm.d.ts +1 -0
  44. package/dist/QRCode/index.cjs +1 -0
  45. package/dist/QRCode/index.js +5 -0
  46. package/dist/QRCode/style.css +1 -0
  47. package/dist/QRCode.d.ts +1 -0
  48. package/dist/ScreenAdapter/index.cjs +1 -0
  49. package/dist/ScreenAdapter/index.js +5 -0
  50. package/dist/ScreenAdapter/style.css +1 -0
  51. package/dist/ScreenAdapter.d.ts +1 -0
  52. package/dist/ScrollTable/index.cjs +1 -0
  53. package/dist/ScrollTable/index.js +5 -0
  54. package/dist/ScrollTable/style.css +1 -0
  55. package/dist/ScrollTable.d.ts +1 -0
  56. package/dist/Skeleton/index.cjs +1 -0
  57. package/dist/Skeleton/index.js +5 -0
  58. package/dist/Skeleton/style.css +1 -0
  59. package/dist/Skeleton.d.ts +1 -0
  60. package/dist/StatusIndicator/index.cjs +1 -0
  61. package/dist/StatusIndicator/index.js +5 -0
  62. package/dist/StatusIndicator/style.css +1 -0
  63. package/dist/StatusIndicator.d.ts +1 -0
  64. package/dist/TechBorder/index.cjs +1 -0
  65. package/dist/TechBorder/index.js +5 -0
  66. package/dist/TechBorder/style.css +1 -0
  67. package/dist/TechBorder.d.ts +1 -0
  68. package/dist/TechButton/index.cjs +1 -0
  69. package/dist/TechButton/index.js +5 -0
  70. package/dist/TechButton/style.css +1 -0
  71. package/dist/TechButton.d.ts +1 -0
  72. package/dist/TechTitle/index.cjs +1 -0
  73. package/dist/TechTitle/index.js +5 -0
  74. package/dist/TechTitle/style.css +1 -0
  75. package/dist/TechTitle.d.ts +1 -0
  76. package/dist/ThemeProvider/index.cjs +1 -0
  77. package/dist/ThemeProvider/index.js +8 -0
  78. package/dist/ThemeProvider/style.css +1 -0
  79. package/dist/ThemeProvider.d.ts +1 -0
  80. package/dist/Toast/index.cjs +1 -0
  81. package/dist/Toast/index.js +5 -0
  82. package/dist/Toast/style.css +1 -0
  83. package/dist/Toast.d.ts +1 -0
  84. package/dist/assets/jsx-runtime-B3A9vq2e.css +1 -0
  85. package/dist/chunks/DataCard-CY4njdg1.js +61 -0
  86. package/dist/chunks/DataCard-DjcUGxo9.cjs +1 -0
  87. package/dist/chunks/DecorationLine-Be4QQyry.cjs +1 -0
  88. package/dist/chunks/DecorationLine-CaZYIYl6.js +45 -0
  89. package/dist/chunks/DigitalNumber-BNklEz-G.js +60 -0
  90. package/dist/chunks/DigitalNumber-BWP5OjvN.cjs +1 -0
  91. package/dist/chunks/Drawer-CuoztnnD.cjs +1 -0
  92. package/dist/chunks/Drawer-u77zScbz.js +69 -0
  93. package/dist/chunks/FloatingButton-DcNfUVcB.js +109 -0
  94. package/dist/chunks/FloatingButton-nOl8ZHul.cjs +1 -0
  95. package/dist/chunks/FlowLight-Brrwyxcv.js +62 -0
  96. package/dist/chunks/FlowLight-DLBCaU07.cjs +1 -0
  97. package/dist/chunks/Icon-HxIzkEdE.js +147 -0
  98. package/dist/chunks/Icon-ISAK5vLx.cjs +1 -0
  99. package/dist/chunks/Masonry-CxVB3-w9.js +84 -0
  100. package/dist/chunks/Masonry-LPU0R1mE.cjs +1 -0
  101. package/dist/chunks/Modal-BfCALRKS.js +63 -0
  102. package/dist/chunks/Modal-DxqX4m57.cjs +1 -0
  103. package/dist/chunks/Popconfirm-C3npOXd6.js +112 -0
  104. package/dist/chunks/Popconfirm-CgPdSp84.cjs +1 -0
  105. package/dist/chunks/QRCode-B2Sdq1f6.cjs +8 -0
  106. package/dist/chunks/QRCode-BRcujxUT.js +1535 -0
  107. package/dist/chunks/ScreenAdapter-CugXUEoe.js +61 -0
  108. package/dist/chunks/ScreenAdapter-DpfmLRd5.cjs +1 -0
  109. package/dist/chunks/ScrollTable-B21j9zGn.cjs +1 -0
  110. package/dist/chunks/ScrollTable-NgSlPEKj.js +98 -0
  111. package/dist/chunks/Skeleton-CKvua4DB.cjs +1 -0
  112. package/dist/chunks/Skeleton-CQvCi-N8.js +76 -0
  113. package/dist/chunks/StatusIndicator-CliH19aT.js +40 -0
  114. package/dist/chunks/StatusIndicator-DhPwugAy.cjs +1 -0
  115. package/dist/chunks/TechBorder-Cu-JqkTf.js +45 -0
  116. package/dist/chunks/TechBorder-KTRXvzVv.cjs +1 -0
  117. package/dist/chunks/TechButton-CTrXjlsD.js +42 -0
  118. package/dist/chunks/TechButton-DYdIWO-l.cjs +1 -0
  119. package/dist/chunks/TechTitle-B3pkYIbI.cjs +1 -0
  120. package/dist/chunks/TechTitle-DfLwdrV5.js +41 -0
  121. package/dist/chunks/ThemeProvider-CGtZuVnU.cjs +1 -0
  122. package/dist/chunks/ThemeProvider-uEdKkbFn.js +206 -0
  123. package/dist/chunks/Toast-CedBaeZV.cjs +1 -0
  124. package/dist/chunks/Toast-DdlPSfu0.js +79 -0
  125. package/dist/chunks/index-CcykAxZN.js +6 -0
  126. package/dist/chunks/index-pCtiW2Id.cjs +1 -0
  127. package/dist/chunks/jsx-runtime-7asRZgsb.cjs +30 -0
  128. package/dist/chunks/jsx-runtime-C6iVud2f.js +630 -0
  129. package/dist/components/DataCard/DataCard.d.ts +18 -0
  130. package/dist/components/DataCard/entry.d.ts +3 -0
  131. package/dist/components/DataCard/index.d.ts +2 -0
  132. package/dist/components/DecorationLine/DecorationLine.d.ts +14 -0
  133. package/dist/components/DecorationLine/entry.d.ts +3 -0
  134. package/dist/components/DecorationLine/index.d.ts +2 -0
  135. package/dist/components/DigitalNumber/DigitalNumber.d.ts +17 -0
  136. package/dist/components/DigitalNumber/entry.d.ts +3 -0
  137. package/dist/components/DigitalNumber/index.d.ts +2 -0
  138. package/dist/components/Drawer/Drawer.d.ts +18 -0
  139. package/dist/components/Drawer/entry.d.ts +3 -0
  140. package/dist/components/Drawer/index.d.ts +2 -0
  141. package/dist/components/FloatingButton/FloatingButton.d.ts +24 -0
  142. package/dist/components/FloatingButton/entry.d.ts +3 -0
  143. package/dist/components/FloatingButton/index.d.ts +2 -0
  144. package/dist/components/FlowLight/FlowLight.d.ts +14 -0
  145. package/dist/components/FlowLight/entry.d.ts +3 -0
  146. package/dist/components/FlowLight/index.d.ts +2 -0
  147. package/dist/components/Icon/Icon.d.ts +16 -0
  148. package/dist/components/Icon/entry.d.ts +4 -0
  149. package/dist/components/Icon/index.d.ts +3 -0
  150. package/dist/components/Masonry/Masonry.d.ts +23 -0
  151. package/dist/components/Masonry/entry.d.ts +3 -0
  152. package/dist/components/Masonry/index.d.ts +2 -0
  153. package/dist/components/Modal/Modal.d.ts +18 -0
  154. package/dist/components/Modal/entry.d.ts +3 -0
  155. package/dist/components/Modal/index.d.ts +2 -0
  156. package/dist/components/Popconfirm/Popconfirm.d.ts +19 -0
  157. package/dist/components/Popconfirm/entry.d.ts +3 -0
  158. package/dist/components/Popconfirm/index.d.ts +2 -0
  159. package/dist/components/QRCode/QRCode.d.ts +19 -0
  160. package/dist/components/QRCode/entry.d.ts +3 -0
  161. package/dist/components/QRCode/index.d.ts +2 -0
  162. package/dist/components/ScreenAdapter/ScreenAdapter.d.ts +13 -0
  163. package/dist/components/ScreenAdapter/entry.d.ts +3 -0
  164. package/dist/components/ScreenAdapter/index.d.ts +2 -0
  165. package/dist/components/ScrollTable/ScrollTable.d.ts +23 -0
  166. package/dist/components/ScrollTable/entry.d.ts +3 -0
  167. package/dist/components/ScrollTable/index.d.ts +2 -0
  168. package/dist/components/Skeleton/Skeleton.d.ts +16 -0
  169. package/dist/components/Skeleton/entry.d.ts +3 -0
  170. package/dist/components/Skeleton/index.d.ts +2 -0
  171. package/dist/components/StatusIndicator/StatusIndicator.d.ts +14 -0
  172. package/dist/components/StatusIndicator/entry.d.ts +3 -0
  173. package/dist/components/StatusIndicator/index.d.ts +2 -0
  174. package/dist/components/TechBorder/TechBorder.d.ts +15 -0
  175. package/dist/components/TechBorder/entry.d.ts +3 -0
  176. package/dist/components/TechBorder/index.d.ts +2 -0
  177. package/dist/components/TechButton/TechButton.d.ts +15 -0
  178. package/dist/components/TechButton/entry.d.ts +3 -0
  179. package/dist/components/TechButton/index.d.ts +2 -0
  180. package/dist/components/TechTitle/TechTitle.d.ts +14 -0
  181. package/dist/components/TechTitle/entry.d.ts +3 -0
  182. package/dist/components/TechTitle/index.d.ts +2 -0
  183. package/dist/components/ThemeProvider/ThemeProvider.d.ts +42 -0
  184. package/dist/components/ThemeProvider/entry.d.ts +3 -0
  185. package/dist/components/ThemeProvider/index.d.ts +2 -0
  186. package/dist/components/Toast/Toast.d.ts +23 -0
  187. package/dist/components/Toast/entry.d.ts +3 -0
  188. package/dist/components/Toast/index.d.ts +2 -0
  189. package/dist/index/index.cjs +1 -0
  190. package/dist/index/index.js +49 -0
  191. package/dist/index/style.css +41 -0
  192. package/dist/index.d.ts +31 -0
  193. package/dist/jsx-runtime/style.css +1 -0
  194. package/dist/theme/index.cjs +1 -0
  195. package/dist/theme/index.d.ts +46 -0
  196. package/dist/theme/index.js +48 -0
  197. package/dist/theme.d.ts +1 -0
  198. package/dist/utils/index.d.ts +8 -0
  199. package/package.json +165 -0
@@ -0,0 +1,109 @@
1
+ import { j as s } from "./jsx-runtime-C6iVud2f.js";
2
+ import { useRef as R, useState as _, useCallback as m, useEffect as G, useMemo as J } from "react";
3
+ import { createPortal as K } from "react-dom";
4
+ import { c as O } from "./index-CcykAxZN.js";
5
+ import { u as P } from "./ThemeProvider-uEdKkbFn.js";
6
+ const Q = ({
7
+ icon: w,
8
+ children: M,
9
+ variant: W = "default",
10
+ size: t = 48,
11
+ draggable: c = !1,
12
+ initialPosition: f,
13
+ edgeSnap: u = !0,
14
+ snapThreshold: v = 60,
15
+ onClick: i,
16
+ onDragEnd: o,
17
+ className: Y,
18
+ style: F
19
+ }) => {
20
+ const { themeVars: a } = P(), H = R(null), [n, y] = _(() => ({
21
+ x: (f == null ? void 0 : f.x) ?? window.innerWidth - t - 24,
22
+ y: (f == null ? void 0 : f.y) ?? window.innerHeight - t - 80
23
+ })), [b, j] = _(!1), [d, N] = _(!1), x = R({ mx: 0, my: 0, bx: 0, by: 0 }), [L, X] = _(!1), l = m((e, r) => {
24
+ const h = window.innerWidth - t, p = window.innerHeight - t;
25
+ return {
26
+ x: Math.max(0, Math.min(e, h)),
27
+ y: Math.max(0, Math.min(r, p))
28
+ };
29
+ }, [t]), I = m((e, r) => {
30
+ if (!u) return { x: e, y: r };
31
+ const h = window.innerWidth / 2;
32
+ return { x: e + t / 2 < h ? v : window.innerWidth - t - v, y: r };
33
+ }, [u, t, v]), B = m((e) => {
34
+ c && (e.preventDefault(), j(!0), N(!1), x.current = {
35
+ mx: e.clientX,
36
+ my: e.clientY,
37
+ bx: n.x,
38
+ by: n.y
39
+ }, e.target.setPointerCapture(e.pointerId));
40
+ }, [c, n]), U = m((e) => {
41
+ if (!b) return;
42
+ const r = e.clientX - x.current.mx, h = e.clientY - x.current.my;
43
+ (Math.abs(r) > 3 || Math.abs(h) > 3) && N(!0);
44
+ const p = x.current.bx + r, A = x.current.by + h;
45
+ y(l(p, A));
46
+ }, [b, l]), $ = m(() => {
47
+ if (b)
48
+ if (j(!1), d && u) {
49
+ const e = I(n.x, n.y);
50
+ y(e), o == null || o(e);
51
+ } else d && (o == null || o(n));
52
+ }, [b, d, u, I, n, o]), S = m((e) => {
53
+ d || i == null || i(e);
54
+ }, [d, i]);
55
+ G(() => {
56
+ if (!c) return;
57
+ const e = () => {
58
+ y((r) => l(r.x, r.y));
59
+ };
60
+ return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
61
+ }, [c, l]);
62
+ const T = J(() => ({
63
+ "--tech-fab-primary": a["--tech-primary"],
64
+ "--tech-fab-glow": a["--tech-glow-primary"],
65
+ "--tech-fab-border": a["--tech-border"],
66
+ "--tech-fab-border-active": a["--tech-border-active"],
67
+ "--tech-fab-bg-card": a["--tech-bg-card"],
68
+ "--tech-fab-text-primary": a["--tech-text-primary"],
69
+ "--tech-fab-size": `${t}px`
70
+ }), [a, t]), V = c ? { position: "fixed", left: n.x, top: n.y, zIndex: 9999 } : { position: "fixed", right: 24, bottom: 80, zIndex: 9999 }, q = /* @__PURE__ */ s.jsxs(
71
+ "div",
72
+ {
73
+ ref: H,
74
+ className: O(
75
+ "tech-fab",
76
+ `tech-fab--${W}`,
77
+ b && "tech-fab--dragging",
78
+ L && "tech-fab--hovered",
79
+ c && "tech-fab--draggable",
80
+ Y
81
+ ),
82
+ style: { ...T, ...V, ...F },
83
+ onPointerDown: c ? B : void 0,
84
+ onPointerMove: c ? U : void 0,
85
+ onPointerUp: c ? $ : void 0,
86
+ onClick: S,
87
+ onMouseEnter: () => X(!0),
88
+ onMouseLeave: () => X(!1),
89
+ role: "button",
90
+ tabIndex: 0,
91
+ children: [
92
+ /* @__PURE__ */ s.jsx("div", { className: "tech-fab__corner tech-fab__corner--tl" }),
93
+ /* @__PURE__ */ s.jsx("div", { className: "tech-fab__corner tech-fab__corner--tr" }),
94
+ /* @__PURE__ */ s.jsx("div", { className: "tech-fab__corner tech-fab__corner--bl" }),
95
+ /* @__PURE__ */ s.jsx("div", { className: "tech-fab__corner tech-fab__corner--br" }),
96
+ /* @__PURE__ */ s.jsx("div", { className: "tech-fab__pulse" }),
97
+ /* @__PURE__ */ s.jsxs("div", { className: "tech-fab__content", children: [
98
+ w && /* @__PURE__ */ s.jsx("span", { className: "tech-fab__icon", children: w }),
99
+ M && /* @__PURE__ */ s.jsx("span", { className: "tech-fab__label", children: M })
100
+ ] })
101
+ ]
102
+ }
103
+ );
104
+ return K(q, document.body);
105
+ };
106
+ Q.displayName = "TechFloatingButton";
107
+ export {
108
+ Q as F
109
+ };
@@ -0,0 +1 @@
1
+ "use strict";const o=require("./jsx-runtime-7asRZgsb.cjs"),t=require("react"),T=require("react-dom"),U=require("./index-pCtiW2Id.cjs"),P=require("./ThemeProvider-CGtZuVnU.cjs"),X=({icon:y,children:w,variant:q="default",size:r=48,draggable:c=!1,initialPosition:x,edgeSnap:b=!0,snapThreshold:v=60,onClick:d,onDragEnd:a,className:C,style:E})=>{const{themeVars:u}=P.useTheme(),I=t.useRef(null),[n,_]=t.useState(()=>({x:(x==null?void 0:x.x)??window.innerWidth-r-24,y:(x==null?void 0:x.y)??window.innerHeight-r-80})),[f,j]=t.useState(!1),[m,R]=t.useState(!1),i=t.useRef({mx:0,my:0,bx:0,by:0}),[S,M]=t.useState(!1),l=t.useCallback((e,s)=>{const h=window.innerWidth-r,p=window.innerHeight-r;return{x:Math.max(0,Math.min(e,h)),y:Math.max(0,Math.min(s,p))}},[r]),N=t.useCallback((e,s)=>{if(!b)return{x:e,y:s};const h=window.innerWidth/2;return{x:e+r/2<h?v:window.innerWidth-r-v,y:s}},[b,r,v]),W=t.useCallback(e=>{c&&(e.preventDefault(),j(!0),R(!1),i.current={mx:e.clientX,my:e.clientY,bx:n.x,by:n.y},e.target.setPointerCapture(e.pointerId))},[c,n]),Y=t.useCallback(e=>{if(!f)return;const s=e.clientX-i.current.mx,h=e.clientY-i.current.my;(Math.abs(s)>3||Math.abs(h)>3)&&R(!0);const p=i.current.bx+s,L=i.current.by+h;_(l(p,L))},[f,l]),$=t.useCallback(()=>{if(f)if(j(!1),m&&b){const e=N(n.x,n.y);_(e),a==null||a(e)}else m&&(a==null||a(n))},[f,m,b,N,n,a]),k=t.useCallback(e=>{m||d==null||d(e)},[m,d]);t.useEffect(()=>{if(!c)return;const e=()=>{_(s=>l(s.x,s.y))};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[c,l]);const B=t.useMemo(()=>({"--tech-fab-primary":u["--tech-primary"],"--tech-fab-glow":u["--tech-glow-primary"],"--tech-fab-border":u["--tech-border"],"--tech-fab-border-active":u["--tech-border-active"],"--tech-fab-bg-card":u["--tech-bg-card"],"--tech-fab-text-primary":u["--tech-text-primary"],"--tech-fab-size":`${r}px`}),[u,r]),F=c?{position:"fixed",left:n.x,top:n.y,zIndex:9999}:{position:"fixed",right:24,bottom:80,zIndex:9999},H=o.jsxRuntimeExports.jsxs("div",{ref:I,className:U.clsx("tech-fab",`tech-fab--${q}`,f&&"tech-fab--dragging",S&&"tech-fab--hovered",c&&"tech-fab--draggable",C),style:{...B,...F,...E},onPointerDown:c?W:void 0,onPointerMove:c?Y:void 0,onPointerUp:c?$:void 0,onClick:k,onMouseEnter:()=>M(!0),onMouseLeave:()=>M(!1),role:"button",tabIndex:0,children:[o.jsxRuntimeExports.jsx("div",{className:"tech-fab__corner tech-fab__corner--tl"}),o.jsxRuntimeExports.jsx("div",{className:"tech-fab__corner tech-fab__corner--tr"}),o.jsxRuntimeExports.jsx("div",{className:"tech-fab__corner tech-fab__corner--bl"}),o.jsxRuntimeExports.jsx("div",{className:"tech-fab__corner tech-fab__corner--br"}),o.jsxRuntimeExports.jsx("div",{className:"tech-fab__pulse"}),o.jsxRuntimeExports.jsxs("div",{className:"tech-fab__content",children:[y&&o.jsxRuntimeExports.jsx("span",{className:"tech-fab__icon",children:y}),w&&o.jsxRuntimeExports.jsx("span",{className:"tech-fab__label",children:w})]})]});return T.createPortal(H,document.body)};X.displayName="TechFloatingButton";exports.FloatingButton=X;
@@ -0,0 +1,62 @@
1
+ import { j as l } from "./jsx-runtime-C6iVud2f.js";
2
+ import { c as _ } from "./index-CcykAxZN.js";
3
+ const g = ({
4
+ variant: t = "aurora",
5
+ color: a,
6
+ speed: s = 1,
7
+ opacity: h = 0.6,
8
+ intensity: c = "medium",
9
+ children: e,
10
+ className: o,
11
+ style: i
12
+ }) => {
13
+ const r = {
14
+ "--tech-flow-color": a || void 0,
15
+ "--tech-flow-speed": `${s}s`,
16
+ "--tech-flow-opacity": h
17
+ };
18
+ return /* @__PURE__ */ l.jsxs(
19
+ "div",
20
+ {
21
+ className: _(
22
+ "tech-flow-light",
23
+ `tech-flow-light--${t}`,
24
+ `tech-flow-light--${c}`,
25
+ o
26
+ ),
27
+ style: { ...r, ...i },
28
+ children: [
29
+ /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__layer" }),
30
+ t === "aurora" && /* @__PURE__ */ l.jsxs(l.Fragment, { children: [
31
+ /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__aurora tech-flow-light__aurora--1" }),
32
+ /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__aurora tech-flow-light__aurora--2" }),
33
+ /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__aurora tech-flow-light__aurora--3" })
34
+ ] }),
35
+ t === "grid" && /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__grid-canvas" }),
36
+ t === "particle" && /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__particles", children: Array.from({ length: 20 }, (f, w) => /* @__PURE__ */ l.jsx(
37
+ "div",
38
+ {
39
+ className: "tech-flow-light__particle",
40
+ style: {
41
+ "--tech-flow-px": `${Math.random() * 100}%`,
42
+ "--tech-flow-py": `${Math.random() * 100}%`,
43
+ "--tech-flow-pd": `${2 + Math.random() * 4}s`,
44
+ "--tech-flow-ps": `${1 + Math.random() * 3}s`,
45
+ "--tech-flow-pr": `${1 + Math.random() * 3}px`
46
+ }
47
+ },
48
+ w
49
+ )) }),
50
+ t === "wave" && /* @__PURE__ */ l.jsxs("div", { className: "tech-flow-light__waves", children: [
51
+ /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__wave tech-flow-light__wave--1" }),
52
+ /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__wave tech-flow-light__wave--2" }),
53
+ /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__wave tech-flow-light__wave--3" })
54
+ ] }),
55
+ e && /* @__PURE__ */ l.jsx("div", { className: "tech-flow-light__content", children: e })
56
+ ]
57
+ }
58
+ );
59
+ };
60
+ export {
61
+ g as F
62
+ };
@@ -0,0 +1 @@
1
+ "use strict";const t=require("./jsx-runtime-7asRZgsb.cjs"),w=require("./index-pCtiW2Id.cjs"),m=({variant:s="aurora",color:l,speed:o=1,opacity:i=.6,intensity:a="medium",children:e,className:h,style:c})=>{const r={"--tech-flow-color":l||void 0,"--tech-flow-speed":`${o}s`,"--tech-flow-opacity":i};return t.jsxRuntimeExports.jsxs("div",{className:w.clsx("tech-flow-light",`tech-flow-light--${s}`,`tech-flow-light--${a}`,h),style:{...r,...c},children:[t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__layer"}),s==="aurora"&&t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__aurora tech-flow-light__aurora--1"}),t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__aurora tech-flow-light__aurora--2"}),t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__aurora tech-flow-light__aurora--3"})]}),s==="grid"&&t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__grid-canvas"}),s==="particle"&&t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__particles",children:Array.from({length:20},(_,x)=>t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__particle",style:{"--tech-flow-px":`${Math.random()*100}%`,"--tech-flow-py":`${Math.random()*100}%`,"--tech-flow-pd":`${2+Math.random()*4}s`,"--tech-flow-ps":`${1+Math.random()*3}s`,"--tech-flow-pr":`${1+Math.random()*3}px`}},x))}),s==="wave"&&t.jsxRuntimeExports.jsxs("div",{className:"tech-flow-light__waves",children:[t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__wave tech-flow-light__wave--1"}),t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__wave tech-flow-light__wave--2"}),t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__wave tech-flow-light__wave--3"})]}),e&&t.jsxRuntimeExports.jsx("div",{className:"tech-flow-light__content",children:e})]})};exports.FlowLight=m;
@@ -0,0 +1,147 @@
1
+ import { j as l } from "./jsx-runtime-C6iVud2f.js";
2
+ import { useMemo as n } from "react";
3
+ import { c as z } from "./index-CcykAxZN.js";
4
+ import { u as i } from "./ThemeProvider-uEdKkbFn.js";
5
+ const h = {
6
+ home: "M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-4 0a1 1 0 01-1-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 01-1 1",
7
+ setting: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z",
8
+ user: "M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z",
9
+ team: "M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z",
10
+ lock: "M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z",
11
+ unlock: "M8 11V7a4 4 0 118 0m-4 8v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2z",
12
+ search: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z",
13
+ filter: "M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z",
14
+ sort: "M3 4h13M3 8h9M3 12h5M3 16h13M17 8l4 4m0 0l4-4m-4 4V3",
15
+ refresh: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15",
16
+ sync: "M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182",
17
+ swap: "M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4",
18
+ add: "M12 4v16m8-8H4",
19
+ minus: "M20 12H4",
20
+ close: "M6 18L18 6M6 6l12 12",
21
+ check: "M5 13l4 4L19 7",
22
+ info: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",
23
+ question: "M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",
24
+ warning: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4.5c-.77-.833-2.694-.833-3.464 0L3.34 16.5c-.77.833.192 2.5 1.732 2.5z",
25
+ error: "M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z",
26
+ success: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z",
27
+ loading: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15",
28
+ eye: "M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z",
29
+ "eye-off": "M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21",
30
+ copy: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z",
31
+ paste: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2",
32
+ delete: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16",
33
+ edit: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z",
34
+ download: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4",
35
+ upload: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12",
36
+ export: "M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",
37
+ import: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12",
38
+ share: "M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z",
39
+ link: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1",
40
+ fullscreen: "M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4",
41
+ "fullscreen-exit": "M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25",
42
+ expand: "M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4",
43
+ collapse: "M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25",
44
+ "arrow-up": "M5 10l7-7m0 0l7 7m-7-7v18",
45
+ "arrow-down": "M19 14l-7 7m0 0l-7-7m7 7V3",
46
+ "arrow-left": "M10 19l-7-7m0 0l7-7m-7 7h18",
47
+ "arrow-right": "M14 5l7 7m0 0l-7 7m7-7H3",
48
+ "chevron-up": "M5 15l7-7 7 7",
49
+ "chevron-down": "M19 9l-7 7-7-7",
50
+ "chevron-left": "M15 19l-7-7 7-7",
51
+ "chevron-right": "M9 5l7 7-7 7",
52
+ menu: "M4 6h16M4 12h16M4 18h16",
53
+ more: "M5 12h.01M12 12h.01M19 12h.01M6 12a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0z",
54
+ ellipsis: "M5 12h.01M12 12h.01M19 12h.01M6 12a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0z",
55
+ drag: "M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4",
56
+ notification: "M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9",
57
+ message: "M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z",
58
+ email: "M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z",
59
+ phone: "M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z",
60
+ calendar: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z",
61
+ clock: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z",
62
+ timer: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z",
63
+ history: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z M3 5v5h5",
64
+ chart: "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z",
65
+ dashboard: "M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z",
66
+ data: "M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4",
67
+ database: "M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4",
68
+ server: "M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01",
69
+ cloud: "M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z",
70
+ network: "M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9",
71
+ shield: "M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",
72
+ terminal: "M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z",
73
+ code: "M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4",
74
+ bug: "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a3 3 0 016 0v10m0 0v-6a2 2 0 012-2h2a2 2 0 012 2v6a2 2 0 01-2 2h-2a2 2 0 01-2-2z",
75
+ api: "M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4",
76
+ sun: "M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z",
77
+ moon: "M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z",
78
+ star: "M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z",
79
+ flash: "M13 10V3L4 14h7v7l9-11h-7z",
80
+ location: "M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z M15 11a3 3 0 11-6 0 3 3 0 016 0z",
81
+ compass: "M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7",
82
+ target: "M12 8a4 4 0 100 8 4 4 0 000-8zm0 0V3m0 18v-5m9-4h-5M5 12H3",
83
+ scan: "M1 4V1h3M20 1h3v3M1 20v3h3M20 23h3v-3",
84
+ camera: "M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2V9z M15 13a3 3 0 11-6 0 3 3 0 016 0z",
85
+ image: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z",
86
+ file: "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",
87
+ folder: "M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",
88
+ power: "M5.636 5.636a9 9 0 1012.728 0M12 3v9",
89
+ signal: "M5.636 18.364a9 9 0 010-12.728m12.728 0a9 9 0 010 12.728m-9.9-2.829a5 5 0 010-7.07m7.072 0a5 5 0 010 7.07M13 12a1 1 0 11-2 0 1 1 0 012 0z",
90
+ wifi: "M8.111 16.404a5.5 5.5 0 017.778 0M12 20h.01m-7.08-7.071c3.904-3.905 10.236-3.905 14.141 0M1.394 9.393c5.857-5.858 15.355-5.858 21.213 0",
91
+ bluetooth: "M6.5 6.5l11 11L12 23V1l5.5 5.5-11 11",
92
+ play: "M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z M21 12a9 9 0 11-18 0 9 9 0 0118 0z",
93
+ pause: "M10 9v6m4-6v6m7-3a9 9 0 11-18 0 9 9 0 0118 0z",
94
+ stop: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z",
95
+ forward: "M11.933 12.8a1 1 0 000-1.6L6.6 7.2A1 1 0 005 8v8a1 1 0 001.6.8l5.333-4zM19.933 12.8a1 1 0 000-1.6l-5.333-4A1 1 0 0013 8v8a1 1 0 001.6.8l5.333-4z"
96
+ }, f = Object.keys(h), V = ({
97
+ name: v,
98
+ size: a = 20,
99
+ color: e,
100
+ variant: c = "default",
101
+ spin: o = !1,
102
+ className: r,
103
+ style: t,
104
+ onClick: m
105
+ }) => {
106
+ const { themeVars: M } = i(), s = n(() => ({
107
+ width: typeof a == "number" ? `${a}px` : a,
108
+ height: typeof a == "number" ? `${a}px` : a,
109
+ "--tech-icon-primary": e || M["--tech-primary"],
110
+ "--tech-icon-glow": M["--tech-glow-primary"],
111
+ "--tech-icon-text": M["--tech-text-primary"]
112
+ }), [a, e, M]);
113
+ return /* @__PURE__ */ l.jsx(
114
+ "span",
115
+ {
116
+ className: z(
117
+ "tech-icon",
118
+ `tech-icon--${c}`,
119
+ o && "tech-icon--spin",
120
+ m && "tech-icon--clickable",
121
+ r
122
+ ),
123
+ style: { ...s, ...t },
124
+ onClick: m,
125
+ role: m ? "button" : void 0,
126
+ tabIndex: m ? 0 : void 0,
127
+ children: /* @__PURE__ */ l.jsx(
128
+ "svg",
129
+ {
130
+ viewBox: "0 0 24 24",
131
+ fill: "none",
132
+ stroke: "currentColor",
133
+ strokeWidth: 2,
134
+ strokeLinecap: "round",
135
+ strokeLinejoin: "round",
136
+ className: "tech-icon__svg",
137
+ children: h[v] && /* @__PURE__ */ l.jsx("path", { d: h[v] })
138
+ }
139
+ )
140
+ }
141
+ );
142
+ };
143
+ V.displayName = "TechIcon";
144
+ export {
145
+ V as I,
146
+ f as i
147
+ };
@@ -0,0 +1 @@
1
+ "use strict";const l=require("./jsx-runtime-7asRZgsb.cjs"),i=require("react"),z=require("./index-pCtiW2Id.cjs"),V=require("./ThemeProvider-CGtZuVnU.cjs"),h={home:"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-4 0a1 1 0 01-1-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 01-1 1",setting:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z",user:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z",team:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z",lock:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z",unlock:"M8 11V7a4 4 0 118 0m-4 8v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2z",search:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z",filter:"M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z",sort:"M3 4h13M3 8h9M3 12h5M3 16h13M17 8l4 4m0 0l4-4m-4 4V3",refresh:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15",sync:"M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182",swap:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4",add:"M12 4v16m8-8H4",minus:"M20 12H4",close:"M6 18L18 6M6 6l12 12",check:"M5 13l4 4L19 7",info:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",question:"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",warning:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4.5c-.77-.833-2.694-.833-3.464 0L3.34 16.5c-.77.833.192 2.5 1.732 2.5z",error:"M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z",success:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z",loading:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15",eye:"M15 12a3 3 0 11-6 0 3 3 0 016 0z M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z","eye-off":"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21",copy:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z",paste:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2",delete:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16",edit:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z",download:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4",upload:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12",export:"M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",import:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12",share:"M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z",link:"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1",fullscreen:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4","fullscreen-exit":"M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25",expand:"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 5l-5-5m5 5v-4m0 4h-4",collapse:"M9 9V4.5M9 9H4.5M9 9L3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5l5.25 5.25","arrow-up":"M5 10l7-7m0 0l7 7m-7-7v18","arrow-down":"M19 14l-7 7m0 0l-7-7m7 7V3","arrow-left":"M10 19l-7-7m0 0l7-7m-7 7h18","arrow-right":"M14 5l7 7m0 0l-7 7m7-7H3","chevron-up":"M5 15l7-7 7 7","chevron-down":"M19 9l-7 7-7-7","chevron-left":"M15 19l-7-7 7-7","chevron-right":"M9 5l7 7-7 7",menu:"M4 6h16M4 12h16M4 18h16",more:"M5 12h.01M12 12h.01M19 12h.01M6 12a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0z",ellipsis:"M5 12h.01M12 12h.01M19 12h.01M6 12a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0z",drag:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4",notification:"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9",message:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z",email:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z",phone:"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z",calendar:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z",clock:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z",timer:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z",history:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z M3 5v5h5",chart:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z",dashboard:"M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z",data:"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4",database:"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4",server:"M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01",cloud:"M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z",network:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9",shield:"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z",terminal:"M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z",code:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4",bug:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a3 3 0 016 0v10m0 0v-6a2 2 0 012-2h2a2 2 0 012 2v6a2 2 0 01-2 2h-2a2 2 0 01-2-2z",api:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4",sun:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z",moon:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z",star:"M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z",flash:"M13 10V3L4 14h7v7l9-11h-7z",location:"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z M15 11a3 3 0 11-6 0 3 3 0 016 0z",compass:"M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7",target:"M12 8a4 4 0 100 8 4 4 0 000-8zm0 0V3m0 18v-5m9-4h-5M5 12H3",scan:"M1 4V1h3M20 1h3v3M1 20v3h3M20 23h3v-3",camera:"M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2V9z M15 13a3 3 0 11-6 0 3 3 0 016 0z",image:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z",file:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",folder:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z",power:"M5.636 5.636a9 9 0 1012.728 0M12 3v9",signal:"M5.636 18.364a9 9 0 010-12.728m12.728 0a9 9 0 010 12.728m-9.9-2.829a5 5 0 010-7.07m7.072 0a5 5 0 010 7.07M13 12a1 1 0 11-2 0 1 1 0 012 0z",wifi:"M8.111 16.404a5.5 5.5 0 017.778 0M12 20h.01m-7.08-7.071c3.904-3.905 10.236-3.905 14.141 0M1.394 9.393c5.857-5.858 15.355-5.858 21.213 0",bluetooth:"M6.5 6.5l11 11L12 23V1l5.5 5.5-11 11",play:"M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z M21 12a9 9 0 11-18 0 9 9 0 0118 0z",pause:"M10 9v6m4-6v6m7-3a9 9 0 11-18 0 9 9 0 0118 0z",stop:"M21 12a9 9 0 11-18 0 9 9 0 0118 0z M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z",forward:"M11.933 12.8a1 1 0 000-1.6L6.6 7.2A1 1 0 005 8v8a1 1 0 001.6.8l5.333-4zM19.933 12.8a1 1 0 000-1.6l-5.333-4A1 1 0 0013 8v8a1 1 0 001.6.8l5.333-4z"},u=Object.keys(h),c=({name:e,size:a=20,color:v,variant:o="default",spin:r=!1,className:t,style:s,onClick:m})=>{const{themeVars:M}=V.useTheme(),n=i.useMemo(()=>({width:typeof a=="number"?`${a}px`:a,height:typeof a=="number"?`${a}px`:a,"--tech-icon-primary":v||M["--tech-primary"],"--tech-icon-glow":M["--tech-glow-primary"],"--tech-icon-text":M["--tech-text-primary"]}),[a,v,M]);return l.jsxRuntimeExports.jsx("span",{className:z.clsx("tech-icon",`tech-icon--${o}`,r&&"tech-icon--spin",m&&"tech-icon--clickable",t),style:{...n,...s},onClick:m,role:m?"button":void 0,tabIndex:m?0:void 0,children:l.jsxRuntimeExports.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"tech-icon__svg",children:h[e]&&l.jsxRuntimeExports.jsx("path",{d:h[e]})})})};c.displayName="TechIcon";exports.Icon=c;exports.iconNames=u;
@@ -0,0 +1,84 @@
1
+ import { j as t } from "./jsx-runtime-C6iVud2f.js";
2
+ import { useRef as $, useState as S, useMemo as d, useEffect as T, useCallback as C } from "react";
3
+ import { c as _ } from "./index-CcykAxZN.js";
4
+ import { u as I } from "./ThemeProvider-uEdKkbFn.js";
5
+ const R = ({
6
+ items: i,
7
+ columns: l = 3,
8
+ gap: y = 12,
9
+ columnWidth: o,
10
+ variant: p = "default",
11
+ renderItem: b,
12
+ keyExtractor: m,
13
+ className: u,
14
+ style: g
15
+ }) => {
16
+ const { themeVars: s } = I(), v = $(null), [f, x] = S(/* @__PURE__ */ new Set()), j = d(() => {
17
+ const e = Array.from({ length: l }, () => ({
18
+ items: [],
19
+ height: 0
20
+ }));
21
+ return i.forEach((r, c) => {
22
+ const a = Math.min(...e.map((h) => h.height)), n = e.find((h) => h.height === a);
23
+ n.items.push({ item: r, index: c }), n.height += (r.height || 200) + y;
24
+ }), e;
25
+ }, [i, l, y]);
26
+ T(() => {
27
+ const e = setTimeout(() => {
28
+ const r = new Set(i.map((c, a) => m ? m(c, a) : c.id));
29
+ x(r);
30
+ }, 50);
31
+ return () => clearTimeout(e);
32
+ }, [i, m]);
33
+ const N = d(() => ({
34
+ "--tech-masonry-primary": s["--tech-primary"],
35
+ "--tech-masonry-glow": s["--tech-glow-primary"],
36
+ "--tech-masonry-border": s["--tech-border"],
37
+ "--tech-masonry-border-active": s["--tech-border-active"],
38
+ "--tech-masonry-bg-card": s["--tech-bg-card"],
39
+ "--tech-masonry-bg-card-hover": s["--tech-bg-card-hover"],
40
+ "--tech-masonry-text-primary": s["--tech-text-primary"],
41
+ "--tech-masonry-text-secondary": s["--tech-text-secondary"],
42
+ "--tech-masonry-gap": `${y}px`,
43
+ ...o ? { "--tech-masonry-col-width": typeof o == "number" ? `${o}px` : o } : {}
44
+ }), [s, y, o]), w = C((e, r) => m ? m(e, r) : e.id, [m]);
45
+ return /* @__PURE__ */ t.jsxs(
46
+ "div",
47
+ {
48
+ ref: v,
49
+ className: _("tech-masonry", `tech-masonry--${p}`, u),
50
+ style: { ...N, ...g },
51
+ children: [
52
+ /* @__PURE__ */ t.jsx("div", { className: "tech-masonry__scan-line" }),
53
+ j.map((e, r) => /* @__PURE__ */ t.jsx("div", { className: "tech-masonry__column", children: e.items.map(({ item: c, index: a }) => {
54
+ const n = w(c, a), h = f.has(n), M = c.height || 200;
55
+ return /* @__PURE__ */ t.jsxs(
56
+ "div",
57
+ {
58
+ className: _(
59
+ "tech-masonry__item",
60
+ h && "tech-masonry__item--visible"
61
+ ),
62
+ style: {
63
+ "--tech-masonry-item-delay": `${a * 60}ms`,
64
+ "--tech-masonry-item-height": `${M}px`
65
+ },
66
+ children: [
67
+ /* @__PURE__ */ t.jsx("div", { className: "tech-masonry__item-corner tech-masonry__item-corner--tl" }),
68
+ /* @__PURE__ */ t.jsx("div", { className: "tech-masonry__item-corner tech-masonry__item-corner--tr" }),
69
+ /* @__PURE__ */ t.jsx("div", { className: "tech-masonry__item-corner tech-masonry__item-corner--bl" }),
70
+ /* @__PURE__ */ t.jsx("div", { className: "tech-masonry__item-corner tech-masonry__item-corner--br" }),
71
+ /* @__PURE__ */ t.jsx("div", { className: "tech-masonry__item-content", children: b(c, a) })
72
+ ]
73
+ },
74
+ n
75
+ );
76
+ }) }, r))
77
+ ]
78
+ }
79
+ );
80
+ };
81
+ R.displayName = "TechMasonry";
82
+ export {
83
+ R as M
84
+ };
@@ -0,0 +1 @@
1
+ "use strict";const t=require("./jsx-runtime-7asRZgsb.cjs"),m=require("react"),x=require("./index-pCtiW2Id.cjs"),q=require("./ThemeProvider-CGtZuVnU.cjs"),d=({items:y,columns:u=3,gap:l=12,columnWidth:a,variant:_="default",renderItem:p,keyExtractor:o,className:j,style:b})=>{const{themeVars:s}=q.useTheme(),g=m.useRef(null),[v,R]=m.useState(new Set),f=m.useMemo(()=>{const e=Array.from({length:u},()=>({items:[],height:0}));return y.forEach((r,n)=>{const c=Math.min(...e.map(h=>h.height)),i=e.find(h=>h.height===c);i.items.push({item:r,index:n}),i.height+=(r.height||200)+l}),e},[y,u,l]);m.useEffect(()=>{const e=setTimeout(()=>{const r=new Set(y.map((n,c)=>o?o(n,c):n.id));R(r)},50);return()=>clearTimeout(e)},[y,o]);const N=m.useMemo(()=>({"--tech-masonry-primary":s["--tech-primary"],"--tech-masonry-glow":s["--tech-glow-primary"],"--tech-masonry-border":s["--tech-border"],"--tech-masonry-border-active":s["--tech-border-active"],"--tech-masonry-bg-card":s["--tech-bg-card"],"--tech-masonry-bg-card-hover":s["--tech-bg-card-hover"],"--tech-masonry-text-primary":s["--tech-text-primary"],"--tech-masonry-text-secondary":s["--tech-text-secondary"],"--tech-masonry-gap":`${l}px`,...a?{"--tech-masonry-col-width":typeof a=="number"?`${a}px`:a}:{}}),[s,l,a]),E=m.useCallback((e,r)=>o?o(e,r):e.id,[o]);return t.jsxRuntimeExports.jsxs("div",{ref:g,className:x.clsx("tech-masonry",`tech-masonry--${_}`,j),style:{...N,...b},children:[t.jsxRuntimeExports.jsx("div",{className:"tech-masonry__scan-line"}),f.map((e,r)=>t.jsxRuntimeExports.jsx("div",{className:"tech-masonry__column",children:e.items.map(({item:n,index:c})=>{const i=E(n,c),h=v.has(i),M=n.height||200;return t.jsxRuntimeExports.jsxs("div",{className:x.clsx("tech-masonry__item",h&&"tech-masonry__item--visible"),style:{"--tech-masonry-item-delay":`${c*60}ms`,"--tech-masonry-item-height":`${M}px`},children:[t.jsxRuntimeExports.jsx("div",{className:"tech-masonry__item-corner tech-masonry__item-corner--tl"}),t.jsxRuntimeExports.jsx("div",{className:"tech-masonry__item-corner tech-masonry__item-corner--tr"}),t.jsxRuntimeExports.jsx("div",{className:"tech-masonry__item-corner tech-masonry__item-corner--bl"}),t.jsxRuntimeExports.jsx("div",{className:"tech-masonry__item-corner tech-masonry__item-corner--br"}),t.jsxRuntimeExports.jsx("div",{className:"tech-masonry__item-content",children:p(n,c)})]},i)})},r))]})};d.displayName="TechMasonry";exports.Masonry=d;
@@ -0,0 +1,63 @@
1
+ import { j as e } from "./jsx-runtime-C6iVud2f.js";
2
+ import { useCallback as j, useEffect as N } from "react";
3
+ import { createPortal as f } from "react-dom";
4
+ import { c as k } from "./index-CcykAxZN.js";
5
+ const E = ({
6
+ open: o,
7
+ onClose: c,
8
+ title: s,
9
+ footer: l,
10
+ width: n = 520,
11
+ variant: r = "default",
12
+ maskClosable: i = !0,
13
+ closable: a = !0,
14
+ animate: h = !0,
15
+ children: _,
16
+ className: v,
17
+ style: x
18
+ }) => {
19
+ const d = j(
20
+ (t) => {
21
+ t.key === "Escape" && a && c();
22
+ },
23
+ [c, a]
24
+ );
25
+ if (N(() => (o && (document.addEventListener("keydown", d), document.body.style.overflow = "hidden"), () => {
26
+ document.removeEventListener("keydown", d), document.body.style.overflow = "";
27
+ }), [o, d]), !o) return null;
28
+ const m = () => {
29
+ i && c();
30
+ }, u = /* @__PURE__ */ e.jsxs("div", { className: "tech-modal-root", children: [
31
+ /* @__PURE__ */ e.jsx("div", { className: "tech-modal-mask", onClick: m }),
32
+ /* @__PURE__ */ e.jsx("div", { className: "tech-modal-wrapper", onClick: m, children: /* @__PURE__ */ e.jsxs(
33
+ "div",
34
+ {
35
+ className: k(
36
+ "tech-modal",
37
+ `tech-modal--${r}`,
38
+ h && "tech-modal--animate",
39
+ v
40
+ ),
41
+ style: { width: n, ...x },
42
+ onClick: (t) => t.stopPropagation(),
43
+ children: [
44
+ r === "scan" && /* @__PURE__ */ e.jsx("div", { className: "tech-modal__scan-line" }),
45
+ /* @__PURE__ */ e.jsx("div", { className: "tech-modal__corner tech-modal__corner--tl" }),
46
+ /* @__PURE__ */ e.jsx("div", { className: "tech-modal__corner tech-modal__corner--tr" }),
47
+ /* @__PURE__ */ e.jsx("div", { className: "tech-modal__corner tech-modal__corner--bl" }),
48
+ /* @__PURE__ */ e.jsx("div", { className: "tech-modal__corner tech-modal__corner--br" }),
49
+ (s || a) && /* @__PURE__ */ e.jsxs("div", { className: "tech-modal__header", children: [
50
+ s && /* @__PURE__ */ e.jsx("div", { className: "tech-modal__title", children: s }),
51
+ a && /* @__PURE__ */ e.jsx("button", { className: "tech-modal__close", onClick: c, children: "✕" })
52
+ ] }),
53
+ /* @__PURE__ */ e.jsx("div", { className: "tech-modal__body", children: _ }),
54
+ l !== void 0 && /* @__PURE__ */ e.jsx("div", { className: "tech-modal__footer", children: l })
55
+ ]
56
+ }
57
+ ) })
58
+ ] });
59
+ return f(u, document.body);
60
+ };
61
+ export {
62
+ E as M
63
+ };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("./jsx-runtime-7asRZgsb.cjs"),l=require("react"),E=require("react-dom"),p=require("./index-pCtiW2Id.cjs"),R=({open:c,onClose:s,title:o,footer:d,width:i=520,variant:n="default",maskClosable:x=!0,closable:t=!0,animate:u=!0,children:h,className:j,style:_})=>{const r=l.useCallback(a=>{a.key==="Escape"&&t&&s()},[s,t]);if(l.useEffect(()=>(c&&(document.addEventListener("keydown",r),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",r),document.body.style.overflow=""}),[c,r]),!c)return null;const m=()=>{x&&s()},v=e.jsxRuntimeExports.jsxs("div",{className:"tech-modal-root",children:[e.jsxRuntimeExports.jsx("div",{className:"tech-modal-mask",onClick:m}),e.jsxRuntimeExports.jsx("div",{className:"tech-modal-wrapper",onClick:m,children:e.jsxRuntimeExports.jsxs("div",{className:p.clsx("tech-modal",`tech-modal--${n}`,u&&"tech-modal--animate",j),style:{width:i,..._},onClick:a=>a.stopPropagation(),children:[n==="scan"&&e.jsxRuntimeExports.jsx("div",{className:"tech-modal__scan-line"}),e.jsxRuntimeExports.jsx("div",{className:"tech-modal__corner tech-modal__corner--tl"}),e.jsxRuntimeExports.jsx("div",{className:"tech-modal__corner tech-modal__corner--tr"}),e.jsxRuntimeExports.jsx("div",{className:"tech-modal__corner tech-modal__corner--bl"}),e.jsxRuntimeExports.jsx("div",{className:"tech-modal__corner tech-modal__corner--br"}),(o||t)&&e.jsxRuntimeExports.jsxs("div",{className:"tech-modal__header",children:[o&&e.jsxRuntimeExports.jsx("div",{className:"tech-modal__title",children:o}),t&&e.jsxRuntimeExports.jsx("button",{className:"tech-modal__close",onClick:s,children:"✕"})]}),e.jsxRuntimeExports.jsx("div",{className:"tech-modal__body",children:h}),d!==void 0&&e.jsxRuntimeExports.jsx("div",{className:"tech-modal__footer",children:d})]})})]});return E.createPortal(v,document.body)};exports.Modal=R;
@@ -0,0 +1,112 @@
1
+ import { j as t } from "./jsx-runtime-C6iVud2f.js";
2
+ import { useState as b, useRef as v, useCallback as V, useEffect as j } from "react";
3
+ import { createPortal as W } from "react-dom";
4
+ import { c as q } from "./index-CcykAxZN.js";
5
+ const J = ({
6
+ content: k,
7
+ title: w,
8
+ onConfirm: d,
9
+ onCancel: f,
10
+ confirmText: N = "确认",
11
+ cancelText: E = "取消",
12
+ placement: u = "top",
13
+ variant: M = "default",
14
+ trigger: i = "click",
15
+ disabled: L = !1,
16
+ children: R,
17
+ className: P,
18
+ style: T
19
+ }) => {
20
+ const [s, _] = b(!1), [g, y] = b({ top: 0, left: 0 }), a = v(null), l = v(null), h = v(), n = V(() => {
21
+ if (!a.current || !l.current) return;
22
+ const e = a.current.getBoundingClientRect(), o = l.current.getBoundingClientRect(), m = 10;
23
+ let r = 0, c = 0;
24
+ switch (u) {
25
+ case "top":
26
+ r = e.top - o.height - m, c = e.left + (e.width - o.width) / 2;
27
+ break;
28
+ case "bottom":
29
+ r = e.bottom + m, c = e.left + (e.width - o.width) / 2;
30
+ break;
31
+ case "left":
32
+ r = e.top + (e.height - o.height) / 2, c = e.left - o.width - m;
33
+ break;
34
+ case "right":
35
+ r = e.top + (e.height - o.height) / 2, c = e.right + m;
36
+ break;
37
+ }
38
+ r = Math.max(8, Math.min(r, window.innerHeight - o.height - 8)), c = Math.max(8, Math.min(c, window.innerWidth - o.width - 8)), y({ top: r, left: c });
39
+ }, [u]);
40
+ j(() => (s && (n(), window.addEventListener("resize", n), window.addEventListener("scroll", n, !0)), () => {
41
+ window.removeEventListener("resize", n), window.removeEventListener("scroll", n, !0);
42
+ }), [s, n]), j(() => {
43
+ if (!s) return;
44
+ const e = (o) => {
45
+ a.current && !a.current.contains(o.target) && l.current && !l.current.contains(o.target) && _(!1);
46
+ };
47
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
48
+ }, [s]);
49
+ const x = () => {
50
+ L || _(!0);
51
+ }, p = () => {
52
+ _(!1);
53
+ }, C = () => {
54
+ d == null || d(), p();
55
+ }, z = () => {
56
+ f == null || f(), p();
57
+ }, B = () => {
58
+ i === "click" && x();
59
+ }, $ = () => {
60
+ i === "hover" && (clearTimeout(h.current), x());
61
+ }, F = () => {
62
+ i === "hover" && (h.current = setTimeout(p, 200));
63
+ }, H = () => {
64
+ i === "hover" && clearTimeout(h.current);
65
+ }, O = () => {
66
+ i === "hover" && (h.current = setTimeout(p, 200));
67
+ }, S = `tech-popconfirm__arrow tech-popconfirm__arrow--${u}`;
68
+ return /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
69
+ /* @__PURE__ */ t.jsx(
70
+ "div",
71
+ {
72
+ ref: a,
73
+ className: "tech-popconfirm-trigger",
74
+ onClick: B,
75
+ onMouseEnter: $,
76
+ onMouseLeave: F,
77
+ style: { display: "inline-block" },
78
+ children: R
79
+ }
80
+ ),
81
+ s && W(
82
+ /* @__PURE__ */ t.jsxs(
83
+ "div",
84
+ {
85
+ ref: l,
86
+ className: q("tech-popconfirm", `tech-popconfirm--${M}`, P),
87
+ style: { ...T, top: g.top, left: g.left, opacity: 1 },
88
+ onMouseEnter: H,
89
+ onMouseLeave: O,
90
+ children: [
91
+ /* @__PURE__ */ t.jsx("div", { className: S }),
92
+ /* @__PURE__ */ t.jsx("div", { className: "tech-popconfirm__scan-line" }),
93
+ /* @__PURE__ */ t.jsx("div", { className: "tech-popconfirm__corner tech-popconfirm__corner--tl" }),
94
+ /* @__PURE__ */ t.jsx("div", { className: "tech-popconfirm__corner tech-popconfirm__corner--tr" }),
95
+ /* @__PURE__ */ t.jsx("div", { className: "tech-popconfirm__corner tech-popconfirm__corner--bl" }),
96
+ /* @__PURE__ */ t.jsx("div", { className: "tech-popconfirm__corner tech-popconfirm__corner--br" }),
97
+ w && /* @__PURE__ */ t.jsx("div", { className: "tech-popconfirm__title", children: w }),
98
+ /* @__PURE__ */ t.jsx("div", { className: "tech-popconfirm__content", children: k }),
99
+ /* @__PURE__ */ t.jsxs("div", { className: "tech-popconfirm__actions", children: [
100
+ /* @__PURE__ */ t.jsx("button", { className: "tech-popconfirm__btn tech-popconfirm__btn--cancel", onClick: z, children: E }),
101
+ /* @__PURE__ */ t.jsx("button", { className: "tech-popconfirm__btn tech-popconfirm__btn--confirm", onClick: C, children: N })
102
+ ] })
103
+ ]
104
+ }
105
+ ),
106
+ document.body
107
+ )
108
+ ] });
109
+ };
110
+ export {
111
+ J as P
112
+ };