@sreedev/my3dui 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +109 -66
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +23 -10
- package/dist/index.d.ts +23 -10
- package/dist/index.js +53 -10
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -650,7 +650,7 @@ function Grid3D({
|
|
|
650
650
|
cellSize,
|
|
651
651
|
cellThickness: 0.5,
|
|
652
652
|
cellColor,
|
|
653
|
-
sectionSize:
|
|
653
|
+
sectionSize: cellSize * 10,
|
|
654
654
|
sectionThickness: 1,
|
|
655
655
|
sectionColor: cellColor,
|
|
656
656
|
fadeDistance,
|
|
@@ -1587,32 +1587,72 @@ function Modal3D({
|
|
|
1587
1587
|
}
|
|
1588
1588
|
|
|
1589
1589
|
// src/components/ui/menu3d.tsx
|
|
1590
|
-
var
|
|
1590
|
+
var React18 = __toESM(require("react"), 1);
|
|
1591
1591
|
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
|
|
1592
1592
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1593
|
-
|
|
1594
|
-
|
|
1593
|
+
function Menu3D({
|
|
1594
|
+
trigger,
|
|
1595
|
+
align = "end",
|
|
1596
|
+
items,
|
|
1597
|
+
children
|
|
1598
|
+
}) {
|
|
1599
|
+
if (process.env.NODE_ENV !== "production") {
|
|
1600
|
+
if (items && children) {
|
|
1601
|
+
console.warn(
|
|
1602
|
+
"Menu3D: Use either `items` or `children`, not both."
|
|
1603
|
+
);
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1595
1606
|
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(DropdownMenuPrimitive.Root, { children: [
|
|
1596
1607
|
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DropdownMenuPrimitive.Trigger, { asChild: true, children: trigger }),
|
|
1597
1608
|
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1598
1609
|
DropdownMenuPrimitive.Content,
|
|
1599
1610
|
{
|
|
1600
1611
|
align,
|
|
1612
|
+
sideOffset: 6,
|
|
1601
1613
|
className: cn(
|
|
1602
|
-
"z-50 min-w-[
|
|
1603
|
-
"bg-white/90 dark:bg-slate-900/90 backdrop-blur-xl
|
|
1614
|
+
"z-50 min-w-[180px] overflow-hidden rounded-xl border p-1",
|
|
1615
|
+
"bg-white/90 dark:bg-slate-900/90 backdrop-blur-xl",
|
|
1616
|
+
"border-white/20 shadow-xl",
|
|
1617
|
+
"animate-in fade-in zoom-in-95",
|
|
1618
|
+
"data-[side=bottom]:slide-in-from-top-2",
|
|
1619
|
+
"data-[side=top]:slide-in-from-bottom-2",
|
|
1620
|
+
"data-[side=left]:slide-in-from-right-2",
|
|
1621
|
+
"data-[side=right]:slide-in-from-left-2"
|
|
1604
1622
|
),
|
|
1605
|
-
children
|
|
1623
|
+
children: items?.length ? items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
1624
|
+
DropdownMenuPrimitive.Item,
|
|
1625
|
+
{
|
|
1626
|
+
disabled: item.disabled,
|
|
1627
|
+
onSelect: item.onClick,
|
|
1628
|
+
className: cn(
|
|
1629
|
+
"relative flex items-center gap-2",
|
|
1630
|
+
"cursor-pointer select-none rounded-md px-3 py-2 text-sm",
|
|
1631
|
+
"outline-none transition-colors",
|
|
1632
|
+
"focus:bg-accent focus:text-accent-foreground",
|
|
1633
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1634
|
+
item.danger && "text-red-500"
|
|
1635
|
+
),
|
|
1636
|
+
children: [
|
|
1637
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "text-muted-foreground", children: item.icon }),
|
|
1638
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { children: item.label })
|
|
1639
|
+
]
|
|
1640
|
+
},
|
|
1641
|
+
i
|
|
1642
|
+
)) : children
|
|
1606
1643
|
}
|
|
1607
1644
|
) })
|
|
1608
1645
|
] });
|
|
1609
1646
|
}
|
|
1610
|
-
var Menu3DItem =
|
|
1647
|
+
var Menu3DItem = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1611
1648
|
DropdownMenuPrimitive.Item,
|
|
1612
1649
|
{
|
|
1613
1650
|
ref,
|
|
1614
1651
|
className: cn(
|
|
1615
|
-
"relative flex cursor-
|
|
1652
|
+
"relative flex cursor-pointer select-none items-center",
|
|
1653
|
+
"rounded-md px-3 py-2 text-sm outline-none transition-colors",
|
|
1654
|
+
"focus:bg-accent focus:text-accent-foreground",
|
|
1655
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1616
1656
|
inset && "pl-8",
|
|
1617
1657
|
className
|
|
1618
1658
|
),
|
|
@@ -1620,12 +1660,12 @@ var Menu3DItem = import_react19.default.forwardRef(({ className, inset, ...props
|
|
|
1620
1660
|
}
|
|
1621
1661
|
));
|
|
1622
1662
|
Menu3DItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1623
|
-
var Menu3DLabel =
|
|
1663
|
+
var Menu3DLabel = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1624
1664
|
DropdownMenuPrimitive.Label,
|
|
1625
1665
|
{
|
|
1626
1666
|
ref,
|
|
1627
1667
|
className: cn(
|
|
1628
|
-
"px-
|
|
1668
|
+
"px-3 py-2 text-xs font-semibold uppercase tracking-wider text-muted-foreground",
|
|
1629
1669
|
inset && "pl-8",
|
|
1630
1670
|
className
|
|
1631
1671
|
),
|
|
@@ -1633,11 +1673,14 @@ var Menu3DLabel = import_react19.default.forwardRef(({ className, inset, ...prop
|
|
|
1633
1673
|
}
|
|
1634
1674
|
));
|
|
1635
1675
|
Menu3DLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1636
|
-
var Menu3DSeparator =
|
|
1676
|
+
var Menu3DSeparator = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
1637
1677
|
DropdownMenuPrimitive.Separator,
|
|
1638
1678
|
{
|
|
1639
1679
|
ref,
|
|
1640
|
-
className: cn(
|
|
1680
|
+
className: cn(
|
|
1681
|
+
"-mx-1 my-1 h-px bg-border",
|
|
1682
|
+
className
|
|
1683
|
+
),
|
|
1641
1684
|
...props
|
|
1642
1685
|
}
|
|
1643
1686
|
));
|
|
@@ -1786,7 +1829,7 @@ function Select3D({
|
|
|
1786
1829
|
}
|
|
1787
1830
|
|
|
1788
1831
|
// src/components/ui/spinner3d.tsx
|
|
1789
|
-
var
|
|
1832
|
+
var import_react19 = require("react");
|
|
1790
1833
|
var import_fiber2 = require("@react-three/fiber");
|
|
1791
1834
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1792
1835
|
function Spinner3D({
|
|
@@ -1794,7 +1837,7 @@ function Spinner3D({
|
|
|
1794
1837
|
color = "#22d3ee",
|
|
1795
1838
|
speed = 1
|
|
1796
1839
|
}) {
|
|
1797
|
-
const ref = (0,
|
|
1840
|
+
const ref = (0, import_react19.useRef)(null);
|
|
1798
1841
|
const scale = size === "sm" ? 0.5 : size === "lg" ? 1.5 : 1;
|
|
1799
1842
|
(0, import_fiber2.useFrame)((state, delta) => {
|
|
1800
1843
|
if (ref.current) {
|
|
@@ -1862,7 +1905,7 @@ function Stepper3D({
|
|
|
1862
1905
|
}
|
|
1863
1906
|
|
|
1864
1907
|
// src/components/ui/navbar3d.tsx
|
|
1865
|
-
var
|
|
1908
|
+
var import_react20 = require("react");
|
|
1866
1909
|
var import_drei6 = require("@react-three/drei");
|
|
1867
1910
|
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1868
1911
|
function NavBar3D({ items, activeHref = "/" }) {
|
|
@@ -1879,7 +1922,7 @@ function NavBar3D({ items, activeHref = "/" }) {
|
|
|
1879
1922
|
] });
|
|
1880
1923
|
}
|
|
1881
1924
|
function NavBarItemMesh({ item, x, isActive }) {
|
|
1882
|
-
const [hovered, setHover] = (0,
|
|
1925
|
+
const [hovered, setHover] = (0, import_react20.useState)(false);
|
|
1883
1926
|
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("group", { position: [x, 0, 0], children: [
|
|
1884
1927
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
1885
1928
|
"mesh",
|
|
@@ -4731,7 +4774,7 @@ var InputOTPSeparator = React58.forwardRef(
|
|
|
4731
4774
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
4732
4775
|
|
|
4733
4776
|
// src/components/ui/barchart3d.tsx
|
|
4734
|
-
var
|
|
4777
|
+
var import_react21 = require("react");
|
|
4735
4778
|
var import_fiber3 = require("@react-three/fiber");
|
|
4736
4779
|
var import_drei8 = require("@react-three/drei");
|
|
4737
4780
|
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
@@ -4742,7 +4785,7 @@ function BarChart3D({
|
|
|
4742
4785
|
gap = 0.2,
|
|
4743
4786
|
animated = true
|
|
4744
4787
|
}) {
|
|
4745
|
-
const maxValue = (0,
|
|
4788
|
+
const maxValue = (0, import_react21.useMemo)(() => Math.max(...data.map((d) => d.value)), [data]);
|
|
4746
4789
|
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("group", { children: [
|
|
4747
4790
|
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)("gridHelper", { args: [data.length * (barSize + gap) + 2, 10], position: [0, 0, 0] }),
|
|
4748
4791
|
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_drei8.Instances, { range: data.length, children: [
|
|
@@ -4777,8 +4820,8 @@ function BarChart3D({
|
|
|
4777
4820
|
] });
|
|
4778
4821
|
}
|
|
4779
4822
|
function BarInstance({ height, color, animated }) {
|
|
4780
|
-
const ref = (0,
|
|
4781
|
-
const [hovered, setHover] = (0,
|
|
4823
|
+
const ref = (0, import_react21.useRef)(null);
|
|
4824
|
+
const [hovered, setHover] = (0, import_react21.useState)(false);
|
|
4782
4825
|
(0, import_fiber3.useFrame)((state, delta) => {
|
|
4783
4826
|
if (ref.current) {
|
|
4784
4827
|
const targetHeight = height;
|
|
@@ -4806,7 +4849,7 @@ function BarInstance({ height, color, animated }) {
|
|
|
4806
4849
|
}
|
|
4807
4850
|
|
|
4808
4851
|
// src/components/ui/linechart3d.tsx
|
|
4809
|
-
var
|
|
4852
|
+
var import_react22 = require("react");
|
|
4810
4853
|
var import_drei9 = require("@react-three/drei");
|
|
4811
4854
|
var import_three3 = require("three");
|
|
4812
4855
|
var import_jsx_runtime73 = (
|
|
@@ -4820,7 +4863,7 @@ function LineChart3D({
|
|
|
4820
4863
|
lineWidth = 3,
|
|
4821
4864
|
showPoints = true
|
|
4822
4865
|
}) {
|
|
4823
|
-
const points = (0,
|
|
4866
|
+
const points = (0, import_react22.useMemo)(() => {
|
|
4824
4867
|
if (data.length === 0) return [];
|
|
4825
4868
|
const maxX = Math.max(...data.map((d) => d.x));
|
|
4826
4869
|
const maxY = Math.max(...data.map((d) => d.y));
|
|
@@ -4832,7 +4875,7 @@ function LineChart3D({
|
|
|
4832
4875
|
0
|
|
4833
4876
|
));
|
|
4834
4877
|
}, [data]);
|
|
4835
|
-
const curve = (0,
|
|
4878
|
+
const curve = (0, import_react22.useMemo)(() => {
|
|
4836
4879
|
if (points.length < 2 || !smooth) return null;
|
|
4837
4880
|
return new import_three3.CatmullRomCurve3(points);
|
|
4838
4881
|
}, [points, smooth]);
|
|
@@ -4858,7 +4901,7 @@ function LineChart3D({
|
|
|
4858
4901
|
}
|
|
4859
4902
|
|
|
4860
4903
|
// src/components/ui/piechart3d.tsx
|
|
4861
|
-
var
|
|
4904
|
+
var import_react23 = __toESM(require("react"), 1);
|
|
4862
4905
|
var import_three4 = require("three");
|
|
4863
4906
|
var import_fiber4 = require("@react-three/fiber");
|
|
4864
4907
|
var import_drei10 = require("@react-three/drei");
|
|
@@ -4870,7 +4913,7 @@ function PieChart3D({
|
|
|
4870
4913
|
explode = true,
|
|
4871
4914
|
donut = false
|
|
4872
4915
|
}) {
|
|
4873
|
-
const total = (0,
|
|
4916
|
+
const total = (0, import_react23.useMemo)(() => data.reduce((acc, cur) => acc + cur.value, 0), [data]);
|
|
4874
4917
|
let startAngle = 0;
|
|
4875
4918
|
return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("group", { rotation: [-Math.PI / 2, 0, 0], children: [
|
|
4876
4919
|
" ",
|
|
@@ -4893,7 +4936,7 @@ function PieChart3D({
|
|
|
4893
4936
|
] });
|
|
4894
4937
|
}
|
|
4895
4938
|
function PieSegment({ startAngle, endAngle, radius, color, depth, explode, innerRadius, label }) {
|
|
4896
|
-
const shape = (0,
|
|
4939
|
+
const shape = (0, import_react23.useMemo)(() => {
|
|
4897
4940
|
const s = new import_three4.Shape();
|
|
4898
4941
|
if (innerRadius > 0) {
|
|
4899
4942
|
s.moveTo(Math.cos(startAngle) * radius, Math.sin(startAngle) * radius);
|
|
@@ -4908,8 +4951,8 @@ function PieSegment({ startAngle, endAngle, radius, color, depth, explode, inner
|
|
|
4908
4951
|
}
|
|
4909
4952
|
return s;
|
|
4910
4953
|
}, [startAngle, endAngle, radius, innerRadius]);
|
|
4911
|
-
const [hovered, setHover] = (0,
|
|
4912
|
-
const ref =
|
|
4954
|
+
const [hovered, setHover] = (0, import_react23.useState)(false);
|
|
4955
|
+
const ref = import_react23.default.useRef(null);
|
|
4913
4956
|
const midAngle = (startAngle + endAngle) / 2;
|
|
4914
4957
|
const explodeDir = [Math.cos(midAngle), Math.sin(midAngle), 0];
|
|
4915
4958
|
(0, import_fiber4.useFrame)((state, delta) => {
|
|
@@ -4944,7 +4987,7 @@ function PieSegment({ startAngle, endAngle, radius, color, depth, explode, inner
|
|
|
4944
4987
|
}
|
|
4945
4988
|
|
|
4946
4989
|
// src/components/ui/scatterplot3d.tsx
|
|
4947
|
-
var
|
|
4990
|
+
var import_react24 = require("react");
|
|
4948
4991
|
var import_drei11 = require("@react-three/drei");
|
|
4949
4992
|
var import_three5 = require("three");
|
|
4950
4993
|
var import_fiber5 = require("@react-three/fiber");
|
|
@@ -4973,8 +5016,8 @@ function ScatterPlot3D({
|
|
|
4973
5016
|
] });
|
|
4974
5017
|
}
|
|
4975
5018
|
function ScatterPointInstance({ position, scale, color }) {
|
|
4976
|
-
const ref = (0,
|
|
4977
|
-
const [hovered, setHover] = (0,
|
|
5019
|
+
const ref = (0, import_react24.useRef)(null);
|
|
5020
|
+
const [hovered, setHover] = (0, import_react24.useState)(false);
|
|
4978
5021
|
(0, import_fiber5.useFrame)((state) => {
|
|
4979
5022
|
if (ref.current) {
|
|
4980
5023
|
const s = hovered ? scale * 1.5 : scale;
|
|
@@ -4996,12 +5039,12 @@ function ScatterPointInstance({ position, scale, color }) {
|
|
|
4996
5039
|
}
|
|
4997
5040
|
|
|
4998
5041
|
// src/components/ui/graph3d.tsx
|
|
4999
|
-
var
|
|
5042
|
+
var import_react25 = require("react");
|
|
5000
5043
|
var import_drei12 = require("@react-three/drei");
|
|
5001
5044
|
var import_three6 = require("three");
|
|
5002
5045
|
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
5003
5046
|
function Graph3D({ nodes, edges, physics = false }) {
|
|
5004
|
-
const positionedNodes = (0,
|
|
5047
|
+
const positionedNodes = (0, import_react25.useMemo)(() => {
|
|
5005
5048
|
return nodes.map((node, i) => ({
|
|
5006
5049
|
...node,
|
|
5007
5050
|
vec: new import_three6.Vector3(
|
|
@@ -5011,7 +5054,7 @@ function Graph3D({ nodes, edges, physics = false }) {
|
|
|
5011
5054
|
)
|
|
5012
5055
|
}));
|
|
5013
5056
|
}, [nodes]);
|
|
5014
|
-
const nodeMap = (0,
|
|
5057
|
+
const nodeMap = (0, import_react25.useMemo)(() => {
|
|
5015
5058
|
const map = /* @__PURE__ */ new Map();
|
|
5016
5059
|
positionedNodes.forEach((n) => map.set(n.id, n.vec));
|
|
5017
5060
|
return map;
|
|
@@ -5080,11 +5123,11 @@ function Map3D({
|
|
|
5080
5123
|
}
|
|
5081
5124
|
|
|
5082
5125
|
// src/components/ui/gallery3d.tsx
|
|
5083
|
-
var
|
|
5126
|
+
var import_react27 = require("react");
|
|
5084
5127
|
var import_fiber6 = require("@react-three/fiber");
|
|
5085
5128
|
|
|
5086
5129
|
// src/components/ui/imageplane.tsx
|
|
5087
|
-
var
|
|
5130
|
+
var import_react26 = require("react");
|
|
5088
5131
|
var import_drei14 = require("@react-three/drei");
|
|
5089
5132
|
var import_three7 = require("three");
|
|
5090
5133
|
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
@@ -5097,7 +5140,7 @@ function ImagePlane({
|
|
|
5097
5140
|
transparent = true,
|
|
5098
5141
|
parallax = false
|
|
5099
5142
|
}) {
|
|
5100
|
-
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
5143
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_react26.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)("mesh", { children: [
|
|
5101
5144
|
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("planeGeometry", { args: [width, width] }),
|
|
5102
5145
|
/* @__PURE__ */ (0, import_jsx_runtime78.jsx)("meshBasicMaterial", { wireframe: true, color: "gray" })
|
|
5103
5146
|
] }), children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
@@ -5139,7 +5182,7 @@ function Gallery3D({
|
|
|
5139
5182
|
radius = 5,
|
|
5140
5183
|
gap = 1.5
|
|
5141
5184
|
}) {
|
|
5142
|
-
const ref = (0,
|
|
5185
|
+
const ref = (0, import_react27.useRef)(null);
|
|
5143
5186
|
(0, import_fiber6.useFrame)((state, delta) => {
|
|
5144
5187
|
if (ref.current && layout === "carousel") {
|
|
5145
5188
|
ref.current.rotation.y += delta * 0.1;
|
|
@@ -5168,7 +5211,7 @@ function Gallery3D({
|
|
|
5168
5211
|
}
|
|
5169
5212
|
|
|
5170
5213
|
// src/components/ui/modelviewer.tsx
|
|
5171
|
-
var
|
|
5214
|
+
var import_react28 = require("react");
|
|
5172
5215
|
var import_drei15 = require("@react-three/drei");
|
|
5173
5216
|
var import_fiber7 = require("@react-three/fiber");
|
|
5174
5217
|
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
@@ -5179,14 +5222,14 @@ function ModelViewer({
|
|
|
5179
5222
|
environment = "studio",
|
|
5180
5223
|
position = [0, 0, 0]
|
|
5181
5224
|
}) {
|
|
5182
|
-
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("group", { position, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
|
|
5225
|
+
return /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("group", { position, children: /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_react28.Suspense, { fallback: null, children: [
|
|
5183
5226
|
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(Model, { src, scale, autoRotate }),
|
|
5184
5227
|
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_drei15.Environment, { preset: environment })
|
|
5185
5228
|
] }) });
|
|
5186
5229
|
}
|
|
5187
5230
|
function Model({ src, scale, autoRotate }) {
|
|
5188
5231
|
const { scene } = (0, import_drei15.useGLTF)(src);
|
|
5189
|
-
const ref = (0,
|
|
5232
|
+
const ref = (0, import_react28.useRef)(null);
|
|
5190
5233
|
(0, import_fiber7.useFrame)((state, delta) => {
|
|
5191
5234
|
if (ref.current && autoRotate) {
|
|
5192
5235
|
ref.current.rotation.y += delta * 0.5;
|
|
@@ -5196,7 +5239,7 @@ function Model({ src, scale, autoRotate }) {
|
|
|
5196
5239
|
}
|
|
5197
5240
|
|
|
5198
5241
|
// src/components/ui/videoplane.tsx
|
|
5199
|
-
var
|
|
5242
|
+
var import_react29 = require("react");
|
|
5200
5243
|
var import_drei16 = require("@react-three/drei");
|
|
5201
5244
|
var THREE = __toESM(require("three"), 1);
|
|
5202
5245
|
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
@@ -5211,7 +5254,7 @@ function VideoPlane({
|
|
|
5211
5254
|
side = "double"
|
|
5212
5255
|
}) {
|
|
5213
5256
|
return /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
5214
|
-
|
|
5257
|
+
import_react29.Suspense,
|
|
5215
5258
|
{
|
|
5216
5259
|
fallback: /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("mesh", { children: [
|
|
5217
5260
|
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("planeGeometry", { args: [width, width * 0.56] }),
|
|
@@ -5270,7 +5313,7 @@ function VideoPlaneContent({
|
|
|
5270
5313
|
}
|
|
5271
5314
|
|
|
5272
5315
|
// src/components/ui/audiovisualizer.tsx
|
|
5273
|
-
var
|
|
5316
|
+
var import_react30 = require("react");
|
|
5274
5317
|
var import_fiber8 = require("@react-three/fiber");
|
|
5275
5318
|
var THREE2 = __toESM(require("three"), 1);
|
|
5276
5319
|
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
@@ -5280,10 +5323,10 @@ function AudioVisualizer({
|
|
|
5280
5323
|
barColor = "#22d3ee",
|
|
5281
5324
|
width = 10
|
|
5282
5325
|
}) {
|
|
5283
|
-
const analyserRef = (0,
|
|
5284
|
-
const meshRef = (0,
|
|
5285
|
-
const [ready, setReady] = (0,
|
|
5286
|
-
(0,
|
|
5326
|
+
const analyserRef = (0, import_react30.useRef)(null);
|
|
5327
|
+
const meshRef = (0, import_react30.useRef)(null);
|
|
5328
|
+
const [ready, setReady] = (0, import_react30.useState)(false);
|
|
5329
|
+
(0, import_react30.useEffect)(() => {
|
|
5287
5330
|
const listener = new THREE2.AudioListener();
|
|
5288
5331
|
const sound = new THREE2.Audio(listener);
|
|
5289
5332
|
const audioLoader = new THREE2.AudioLoader();
|
|
@@ -5325,7 +5368,7 @@ function AudioVisualizer({
|
|
|
5325
5368
|
}
|
|
5326
5369
|
|
|
5327
5370
|
// src/components/ui/particles.tsx
|
|
5328
|
-
var
|
|
5371
|
+
var import_react31 = require("react");
|
|
5329
5372
|
var import_fiber9 = require("@react-three/fiber");
|
|
5330
5373
|
var import_three8 = require("three");
|
|
5331
5374
|
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
@@ -5335,8 +5378,8 @@ function Particles({
|
|
|
5335
5378
|
color = "#a78bfa",
|
|
5336
5379
|
speed = 0.1
|
|
5337
5380
|
}) {
|
|
5338
|
-
const points = (0,
|
|
5339
|
-
const particlesPosition = (0,
|
|
5381
|
+
const points = (0, import_react31.useRef)(null);
|
|
5382
|
+
const particlesPosition = (0, import_react31.useMemo)(() => {
|
|
5340
5383
|
const positions = new Float32Array(count2 * 3);
|
|
5341
5384
|
for (let i = 0; i < count2; i++) {
|
|
5342
5385
|
positions[i * 3] = (Math.random() - 0.5) * 10;
|
|
@@ -5375,7 +5418,7 @@ function Particles({
|
|
|
5375
5418
|
}
|
|
5376
5419
|
|
|
5377
5420
|
// src/components/ui/bloom.tsx
|
|
5378
|
-
var
|
|
5421
|
+
var import_react32 = require("react");
|
|
5379
5422
|
var import_fiber10 = require("@react-three/fiber");
|
|
5380
5423
|
|
|
5381
5424
|
// node_modules/three-stdlib/postprocessing/ShaderPass.js
|
|
@@ -6133,8 +6176,8 @@ var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
|
6133
6176
|
(0, import_fiber10.extend)({ EffectComposer, RenderPass, UnrealBloomPass });
|
|
6134
6177
|
function Bloom({ intensity = 1, radius = 0.4, threshold = 0 }) {
|
|
6135
6178
|
const { gl, scene, camera, size } = (0, import_fiber10.useThree)();
|
|
6136
|
-
const composer = (0,
|
|
6137
|
-
(0,
|
|
6179
|
+
const composer = (0, import_react32.useRef)(null);
|
|
6180
|
+
(0, import_react32.useEffect)(() => {
|
|
6138
6181
|
if (composer.current) {
|
|
6139
6182
|
composer.current.setSize(size.width, size.height);
|
|
6140
6183
|
}
|
|
@@ -6209,7 +6252,7 @@ function ShadowSystem({ type = "soft", bias = -1e-4, mapSize = 1024 }) {
|
|
|
6209
6252
|
}
|
|
6210
6253
|
|
|
6211
6254
|
// src/components/ui/gloweffect.tsx
|
|
6212
|
-
var
|
|
6255
|
+
var import_react33 = __toESM(require("react"), 1);
|
|
6213
6256
|
var THREE3 = __toESM(require("three"), 1);
|
|
6214
6257
|
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
6215
6258
|
function GlowEffect({
|
|
@@ -6218,7 +6261,7 @@ function GlowEffect({
|
|
|
6218
6261
|
intensity = 1,
|
|
6219
6262
|
scale = 1.2
|
|
6220
6263
|
}) {
|
|
6221
|
-
const glowMaterial =
|
|
6264
|
+
const glowMaterial = import_react33.default.useMemo(() => {
|
|
6222
6265
|
return new THREE3.MeshBasicMaterial({
|
|
6223
6266
|
color,
|
|
6224
6267
|
transparent: true,
|
|
@@ -6230,9 +6273,9 @@ function GlowEffect({
|
|
|
6230
6273
|
}, [color, intensity]);
|
|
6231
6274
|
return /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)("group", { children: [
|
|
6232
6275
|
children,
|
|
6233
|
-
/* @__PURE__ */ (0, import_jsx_runtime88.jsx)("group", { scale: [scale, scale, scale], children:
|
|
6234
|
-
if (
|
|
6235
|
-
return (0,
|
|
6276
|
+
/* @__PURE__ */ (0, import_jsx_runtime88.jsx)("group", { scale: [scale, scale, scale], children: import_react33.Children.map(children, (child) => {
|
|
6277
|
+
if (import_react33.default.isValidElement(child)) {
|
|
6278
|
+
return (0, import_react33.cloneElement)(child, {
|
|
6236
6279
|
material: glowMaterial
|
|
6237
6280
|
});
|
|
6238
6281
|
}
|
|
@@ -6242,7 +6285,7 @@ function GlowEffect({
|
|
|
6242
6285
|
}
|
|
6243
6286
|
|
|
6244
6287
|
// src/components/ui/waveeffect.tsx
|
|
6245
|
-
var
|
|
6288
|
+
var import_react34 = __toESM(require("react"), 1);
|
|
6246
6289
|
var import_drei19 = require("@react-three/drei");
|
|
6247
6290
|
var import_fiber11 = require("@react-three/fiber");
|
|
6248
6291
|
var THREE4 = __toESM(require("three"), 1);
|
|
@@ -6271,14 +6314,14 @@ var WaveMaterial = (0, import_drei19.shaderMaterial)(
|
|
|
6271
6314
|
);
|
|
6272
6315
|
(0, import_fiber11.extend)({ WaveMaterial });
|
|
6273
6316
|
function WaveEffect({ children, amplitude = 0.3, frequency = 2, speed = 1 }) {
|
|
6274
|
-
const group =
|
|
6275
|
-
const material = (0,
|
|
6317
|
+
const group = import_react34.default.useRef(null);
|
|
6318
|
+
const material = (0, import_react34.useMemo)(() => new WaveMaterial(), []);
|
|
6276
6319
|
(0, import_fiber11.useFrame)((state, delta) => {
|
|
6277
6320
|
if (material) {
|
|
6278
6321
|
material.time += delta * speed;
|
|
6279
6322
|
}
|
|
6280
6323
|
});
|
|
6281
|
-
|
|
6324
|
+
import_react34.default.useEffect(() => {
|
|
6282
6325
|
if (group.current) {
|
|
6283
6326
|
group.current.traverse((obj) => {
|
|
6284
6327
|
if (obj.isMesh) {
|
|
@@ -6291,7 +6334,7 @@ function WaveEffect({ children, amplitude = 0.3, frequency = 2, speed = 1 }) {
|
|
|
6291
6334
|
}
|
|
6292
6335
|
|
|
6293
6336
|
// src/components/ui/noisefield.tsx
|
|
6294
|
-
var
|
|
6337
|
+
var import_react35 = require("react");
|
|
6295
6338
|
var import_drei20 = require("@react-three/drei");
|
|
6296
6339
|
var import_fiber12 = require("@react-three/fiber");
|
|
6297
6340
|
var THREE5 = __toESM(require("three"), 1);
|
|
@@ -6326,7 +6369,7 @@ var NoiseMaterial = (0, import_drei20.shaderMaterial)(
|
|
|
6326
6369
|
);
|
|
6327
6370
|
(0, import_fiber12.extend)({ NoiseMaterial });
|
|
6328
6371
|
function NoiseField({ scale = 1, speed = 0.5, mode = "color" }) {
|
|
6329
|
-
const material = (0,
|
|
6372
|
+
const material = (0, import_react35.useMemo)(() => new NoiseMaterial(), []);
|
|
6330
6373
|
(0, import_fiber12.useFrame)((state, delta) => {
|
|
6331
6374
|
if (material) {
|
|
6332
6375
|
material.time += delta * speed;
|