Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a49575c061 | |||
| 67e50a253a |
251
package-lock.json
generated
251
package-lock.json
generated
@@ -10,12 +10,8 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/react": "^4.2.1",
|
"@astrojs/react": "^4.2.1",
|
||||||
"@astrojs/tailwind": "^6.0.0",
|
"@astrojs/tailwind": "^6.0.0",
|
||||||
"@babylonjs/core": "^8.0.2",
|
|
||||||
"@babylonjs/loaders": "^8.0.2",
|
|
||||||
"@google/model-viewer": "^4.0.0",
|
|
||||||
"@radix-ui/react-dialog": "^1.1.6",
|
"@radix-ui/react-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-select": "^2.1.6",
|
"@radix-ui/react-select": "^2.1.6",
|
||||||
"@radix-ui/react-toast": "^1.2.6",
|
|
||||||
"@shadcn/ui": "^0.0.4",
|
"@shadcn/ui": "^0.0.4",
|
||||||
"@types/react": "^19.0.12",
|
"@types/react": "^19.0.12",
|
||||||
"astro": "^5.5.2",
|
"astro": "^5.5.2",
|
||||||
@@ -25,8 +21,6 @@
|
|||||||
"lucide-react": "^0.484.0",
|
"lucide-react": "^0.484.0",
|
||||||
"pocketbase": "^0.25.2",
|
"pocketbase": "^0.25.2",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.5.3",
|
||||||
"react-router-dom": "^7.4.1",
|
|
||||||
"react-to-print": "^3.0.5",
|
|
||||||
"tailwind-merge": "^3.0.2",
|
"tailwind-merge": "^3.0.2",
|
||||||
"tailwindcss": "^3.4.17",
|
"tailwindcss": "^3.4.17",
|
||||||
"tailwindcss-animate": "^1.0.7"
|
"tailwindcss-animate": "^1.0.7"
|
||||||
@@ -444,22 +438,6 @@
|
|||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babylonjs/core": {
|
|
||||||
"version": "8.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babylonjs/core/-/core-8.0.2.tgz",
|
|
||||||
"integrity": "sha512-Bq6Ue2mu6N351AhPqoPNT0jLMm3n9igAqLs9CLb4RiWNR+VBylIf+L+lw/HJ6L2iOOzT1YfY7jD+vg6mW5wY2A==",
|
|
||||||
"license": "Apache-2.0"
|
|
||||||
},
|
|
||||||
"node_modules/@babylonjs/loaders": {
|
|
||||||
"version": "8.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-8.0.2.tgz",
|
|
||||||
"integrity": "sha512-o9e5GUiysqpqsTfYf2EQhG4OZM+Tx4Cp1uy/6XKuk+xBqKjCp4cId0QDFkB3CISatB7BbC/TrSpgR5TuJ5/+Pw==",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"peerDependencies": {
|
|
||||||
"@babylonjs/core": "^8.0.0",
|
|
||||||
"babylonjs-gltf2interface": "^8.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@emnapi/runtime": {
|
"node_modules/@emnapi/runtime": {
|
||||||
"version": "1.3.1",
|
"version": "1.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz",
|
||||||
@@ -908,22 +886,6 @@
|
|||||||
"integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
|
"integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@google/model-viewer": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-hf4mixP178gGtvWQq97a0uULr7k98BwJGRU3lvt12XnurOdLmZA/RPdW4tPsINNNQxZvmvQsjud4lZWre6WGNw==",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"@monogrid/gainmap-js": "^3.0.1",
|
|
||||||
"lit": "^2.7.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"three": "^0.169.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@img/sharp-darwin-arm64": {
|
"node_modules/@img/sharp-darwin-arm64": {
|
||||||
"version": "0.33.5",
|
"version": "0.33.5",
|
||||||
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
|
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
|
||||||
@@ -1390,33 +1352,6 @@
|
|||||||
"@jridgewell/sourcemap-codec": "^1.4.14"
|
"@jridgewell/sourcemap-codec": "^1.4.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@lit-labs/ssr-dom-shim": {
|
|
||||||
"version": "1.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz",
|
|
||||||
"integrity": "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==",
|
|
||||||
"license": "BSD-3-Clause"
|
|
||||||
},
|
|
||||||
"node_modules/@lit/reactive-element": {
|
|
||||||
"version": "1.6.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz",
|
|
||||||
"integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==",
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"@lit-labs/ssr-dom-shim": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@monogrid/gainmap-js": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@monogrid/gainmap-js/-/gainmap-js-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-Obb0/gEd/HReTlg8ttaYk+0m62gQJmCblMOjHSMHRrBP2zdfKMHLCRbh/6ex9fSUJMKdjjIEiohwkbGD3wj2Nw==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"promise-worker-transferable": "^1.0.4"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"three": ">= 0.159.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@nodelib/fs.scandir": {
|
"node_modules/@nodelib/fs.scandir": {
|
||||||
"version": "2.1.5",
|
"version": "2.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||||
@@ -1859,40 +1794,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@radix-ui/react-toast": {
|
|
||||||
"version": "1.2.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.6.tgz",
|
|
||||||
"integrity": "sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@radix-ui/primitive": "1.1.1",
|
|
||||||
"@radix-ui/react-collection": "1.1.2",
|
|
||||||
"@radix-ui/react-compose-refs": "1.1.1",
|
|
||||||
"@radix-ui/react-context": "1.1.1",
|
|
||||||
"@radix-ui/react-dismissable-layer": "1.1.5",
|
|
||||||
"@radix-ui/react-portal": "1.1.4",
|
|
||||||
"@radix-ui/react-presence": "1.1.2",
|
|
||||||
"@radix-ui/react-primitive": "2.0.2",
|
|
||||||
"@radix-ui/react-use-callback-ref": "1.1.0",
|
|
||||||
"@radix-ui/react-use-controllable-state": "1.1.0",
|
|
||||||
"@radix-ui/react-use-layout-effect": "1.1.0",
|
|
||||||
"@radix-ui/react-visually-hidden": "1.1.2"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@types/react": "*",
|
|
||||||
"@types/react-dom": "*",
|
|
||||||
"react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
|
|
||||||
"react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"@types/react": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"@types/react-dom": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@radix-ui/react-use-callback-ref": {
|
"node_modules/@radix-ui/react-use-callback-ref": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",
|
||||||
@@ -2528,12 +2429,6 @@
|
|||||||
"@types/react": "^19.0.0"
|
"@types/react": "^19.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/trusted-types": {
|
|
||||||
"version": "2.0.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
|
|
||||||
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/@types/unist": {
|
"node_modules/@types/unist": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
|
||||||
@@ -2852,13 +2747,6 @@
|
|||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/babylonjs-gltf2interface": {
|
|
||||||
"version": "8.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.0.2.tgz",
|
|
||||||
"integrity": "sha512-H913H03OSNfRlq0HLwrUjaJMmqYdINZPsX7dfa0Wg4mXmUgEIWSPxPi1Bl4gVwVGemZ8/PsFYbeOtyofwZBFJA==",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/bail": {
|
"node_modules/bail": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
|
||||||
@@ -4188,12 +4076,6 @@
|
|||||||
],
|
],
|
||||||
"license": "BSD-3-Clause"
|
"license": "BSD-3-Clause"
|
||||||
},
|
},
|
||||||
"node_modules/immediate": {
|
|
||||||
"version": "3.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
|
||||||
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/import-meta-resolve": {
|
"node_modules/import-meta-resolve": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
|
||||||
@@ -4349,12 +4231,6 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/is-promise": {
|
|
||||||
"version": "2.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
|
|
||||||
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/is-stream": {
|
"node_modules/is-stream": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
|
||||||
@@ -4487,15 +4363,6 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/lie": {
|
|
||||||
"version": "3.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
|
|
||||||
"integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"immediate": "~3.0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/lilconfig": {
|
"node_modules/lilconfig": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
|
||||||
@@ -4514,37 +4381,6 @@
|
|||||||
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
|
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/lit": {
|
|
||||||
"version": "2.8.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz",
|
|
||||||
"integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==",
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"@lit/reactive-element": "^1.6.0",
|
|
||||||
"lit-element": "^3.3.0",
|
|
||||||
"lit-html": "^2.8.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/lit-element": {
|
|
||||||
"version": "3.3.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz",
|
|
||||||
"integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==",
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"@lit-labs/ssr-dom-shim": "^1.1.0",
|
|
||||||
"@lit/reactive-element": "^1.3.0",
|
|
||||||
"lit-html": "^2.8.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/lit-html": {
|
|
||||||
"version": "2.8.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz",
|
|
||||||
"integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==",
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"@types/trusted-types": "^2.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/log-symbols": {
|
"node_modules/log-symbols": {
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz",
|
||||||
@@ -6034,16 +5870,6 @@
|
|||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/promise-worker-transferable": {
|
|
||||||
"version": "1.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz",
|
|
||||||
"integrity": "sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"is-promise": "^2.1.0",
|
|
||||||
"lie": "^3.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/prompts": {
|
"node_modules/prompts": {
|
||||||
"version": "2.4.2",
|
"version": "2.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
|
||||||
@@ -6181,55 +6007,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-router": {
|
|
||||||
"version": "7.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.4.1.tgz",
|
|
||||||
"integrity": "sha512-Vmizn9ZNzxfh3cumddqv3kLOKvc7AskUT0dC1prTabhiEi0U4A33LmkDOJ79tXaeSqCqMBXBU/ySX88W85+EUg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@types/cookie": "^0.6.0",
|
|
||||||
"cookie": "^1.0.1",
|
|
||||||
"set-cookie-parser": "^2.6.0",
|
|
||||||
"turbo-stream": "2.4.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=20.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": ">=18",
|
|
||||||
"react-dom": ">=18"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"react-dom": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-router-dom": {
|
|
||||||
"version": "7.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.4.1.tgz",
|
|
||||||
"integrity": "sha512-L3/4tig0Lvs6m6THK0HRV4eHUdpx0dlJasgCxXKnavwhh4tKYgpuZk75HRYNoRKDyDWi9QgzGXsQ1oQSBlWpAA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"react-router": "7.4.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=20.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": ">=18",
|
|
||||||
"react-dom": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-router/node_modules/cookie": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-style-singleton": {
|
"node_modules/react-style-singleton": {
|
||||||
"version": "2.2.3",
|
"version": "2.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
|
||||||
@@ -6252,15 +6029,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-to-print": {
|
|
||||||
"version": "3.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-to-print/-/react-to-print-3.0.5.tgz",
|
|
||||||
"integrity": "sha512-Z15MwMOzYCHWi26CZeFNwflAg7Nr8uWD6FTj+EkfIOjYyjr0MXGbI0c7rF4Fgrbj3XG9hFndb1ourxpPz2RAiA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ~19"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/read-cache": {
|
"node_modules/read-cache": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
||||||
@@ -6695,12 +6463,6 @@
|
|||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/set-cookie-parser": {
|
|
||||||
"version": "2.7.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz",
|
|
||||||
"integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/sharp": {
|
"node_modules/sharp": {
|
||||||
"version": "0.33.5",
|
"version": "0.33.5",
|
||||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
|
||||||
@@ -7157,13 +6919,6 @@
|
|||||||
"node": ">=0.8"
|
"node": ">=0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/three": {
|
|
||||||
"version": "0.169.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/three/-/three-0.169.0.tgz",
|
|
||||||
"integrity": "sha512-Ed906MA3dR4TS5riErd4QBsRGPcx+HBDX2O5yYE5GqJeFQTPU+M56Va/f/Oph9X7uZo3W3o4l2ZhBZ6f6qUv0w==",
|
|
||||||
"license": "MIT",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/tinyexec": {
|
"node_modules/tinyexec": {
|
||||||
"version": "0.3.2",
|
"version": "0.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
|
||||||
@@ -7250,12 +7005,6 @@
|
|||||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
||||||
"license": "0BSD"
|
"license": "0BSD"
|
||||||
},
|
},
|
||||||
"node_modules/turbo-stream": {
|
|
||||||
"version": "2.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz",
|
|
||||||
"integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/type-fest": {
|
"node_modules/type-fest": {
|
||||||
"version": "4.37.0",
|
"version": "4.37.0",
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.37.0.tgz",
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.37.0.tgz",
|
||||||
|
|||||||
@@ -12,12 +12,8 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/react": "^4.2.1",
|
"@astrojs/react": "^4.2.1",
|
||||||
"@astrojs/tailwind": "^6.0.0",
|
"@astrojs/tailwind": "^6.0.0",
|
||||||
"@babylonjs/core": "^8.0.2",
|
|
||||||
"@babylonjs/loaders": "^8.0.2",
|
|
||||||
"@google/model-viewer": "^4.0.0",
|
|
||||||
"@radix-ui/react-dialog": "^1.1.6",
|
"@radix-ui/react-dialog": "^1.1.6",
|
||||||
"@radix-ui/react-select": "^2.1.6",
|
"@radix-ui/react-select": "^2.1.6",
|
||||||
"@radix-ui/react-toast": "^1.2.6",
|
|
||||||
"@shadcn/ui": "^0.0.4",
|
"@shadcn/ui": "^0.0.4",
|
||||||
"@types/react": "^19.0.12",
|
"@types/react": "^19.0.12",
|
||||||
"astro": "^5.5.2",
|
"astro": "^5.5.2",
|
||||||
@@ -27,8 +23,6 @@
|
|||||||
"lucide-react": "^0.484.0",
|
"lucide-react": "^0.484.0",
|
||||||
"pocketbase": "^0.25.2",
|
"pocketbase": "^0.25.2",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.5.3",
|
||||||
"react-router-dom": "^7.4.1",
|
|
||||||
"react-to-print": "^3.0.5",
|
|
||||||
"tailwind-merge": "^3.0.2",
|
"tailwind-merge": "^3.0.2",
|
||||||
"tailwindcss": "^3.4.17",
|
"tailwindcss": "^3.4.17",
|
||||||
"tailwindcss-animate": "^1.0.7"
|
"tailwindcss-animate": "^1.0.7"
|
||||||
|
|||||||
5
public/data-not-updated-or-not-found/index.php
Normal file
5
public/data-not-updated-or-not-found/index.php
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
echo 'Data not updated or the page not found!';
|
||||||
|
|
||||||
|
?>
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import '@google/model-viewer';
|
|
||||||
|
|
||||||
const ModelViewer = () => {
|
|
||||||
return (
|
|
||||||
<div className="w-full h-[500px]">
|
|
||||||
<model-viewer
|
|
||||||
src="https://bscdn.sgp1.digitaloceanspaces.com/tb-revised-books/glb/alligator.glb"
|
|
||||||
ar
|
|
||||||
ar-modes="webxr scene-viewer quick-look"
|
|
||||||
camera-controls
|
|
||||||
tone-mapping="neutral"
|
|
||||||
poster="poster.webp"
|
|
||||||
shadow-intensity="1"
|
|
||||||
style={{ width: '100%', height: '100%' }}
|
|
||||||
>
|
|
||||||
<div className="progress-bar hide" slot="progress-bar">
|
|
||||||
<div className="update-bar"></div>
|
|
||||||
</div>
|
|
||||||
<button slot="ar-button" id="ar-button">
|
|
||||||
View in your space
|
|
||||||
</button>
|
|
||||||
<div id="ar-prompt">
|
|
||||||
<img src="https://modelviewer.dev/shared-assets/icons/hand.png" />
|
|
||||||
</div>
|
|
||||||
</model-viewer>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default ModelViewer;
|
|
||||||
@@ -1,273 +0,0 @@
|
|||||||
import React, { useEffect, useState } from "react";
|
|
||||||
|
|
||||||
interface Invoice {
|
|
||||||
invoice_id: number;
|
|
||||||
invoice_number: string;
|
|
||||||
customer_id: string;
|
|
||||||
invoice_date: string;
|
|
||||||
due_date: string;
|
|
||||||
subtotal: number;
|
|
||||||
tax_amount: number;
|
|
||||||
total_amount: number;
|
|
||||||
status: string;
|
|
||||||
payment_terms: string | null;
|
|
||||||
notes: string;
|
|
||||||
created_at: string;
|
|
||||||
updated_at: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function PrintInvoice() {
|
|
||||||
const [invoiceList, setInvoiceList] = useState<Invoice[]>([]);
|
|
||||||
const [error, setError] = useState<string | null>(null);
|
|
||||||
const [loading, setLoading] = useState<boolean>(true);
|
|
||||||
const [selectedInvoice, setSelectedInvoice] = useState<Invoice | null>(null);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const getInvoiceListData = async () => {
|
|
||||||
try {
|
|
||||||
const response = await fetch('http://localhost:2058/host-api/v1/invoice/invoice-info/', {
|
|
||||||
method: 'GET',
|
|
||||||
credentials: 'include',
|
|
||||||
headers: { 'Accept': 'application/json' }
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`HTTP error! Status: ${response.status}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = await response.json();
|
|
||||||
|
|
||||||
if (!data.success) {
|
|
||||||
throw new Error(data.message || 'Session fetch failed');
|
|
||||||
}
|
|
||||||
|
|
||||||
setInvoiceList(data.data);
|
|
||||||
} catch (error: any) {
|
|
||||||
console.error('Fetch error:', error);
|
|
||||||
setError(error.message);
|
|
||||||
} finally {
|
|
||||||
setLoading(false);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
getInvoiceListData();
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const handlePrint = () => {
|
|
||||||
window.print();
|
|
||||||
}
|
|
||||||
|
|
||||||
const formatDate = (dateString: string) => {
|
|
||||||
return new Date(dateString).toLocaleDateString('en-US', {
|
|
||||||
year: 'numeric',
|
|
||||||
month: 'long',
|
|
||||||
day: 'numeric'
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const formatCurrency = (amount: number) => {
|
|
||||||
return new Intl.NumberFormat('en-US', {
|
|
||||||
style: 'currency',
|
|
||||||
currency: 'USD'
|
|
||||||
}).format(amount);
|
|
||||||
}
|
|
||||||
|
|
||||||
const viewInvoiceDetails = (invoice: Invoice) => {
|
|
||||||
setSelectedInvoice(invoice);
|
|
||||||
}
|
|
||||||
|
|
||||||
const closeInvoiceDetails = () => {
|
|
||||||
setSelectedInvoice(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (error) {
|
|
||||||
return <div className="p-4 text-red-600">Error: {error}</div>;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (loading) {
|
|
||||||
return <div className="p-4">Loading invoice data...</div>;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="p-4 max-w-6xl mx-auto">
|
|
||||||
{/* Invoice List */}
|
|
||||||
<div className="mb-8">
|
|
||||||
<h1 className="text-2xl font-bold mb-4">Invoices</h1>
|
|
||||||
<div className="overflow-x-auto">
|
|
||||||
<table className="min-w-full bg-white border border-gray-200">
|
|
||||||
<thead className="bg-gray-50">
|
|
||||||
<tr>
|
|
||||||
<th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Invoice #</th>
|
|
||||||
<th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Date</th>
|
|
||||||
<th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Due Date</th>
|
|
||||||
<th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Amount</th>
|
|
||||||
<th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th>
|
|
||||||
<th className="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody className="divide-y divide-gray-200">
|
|
||||||
{invoiceList.map((invoice) => (
|
|
||||||
<tr key={invoice.invoice_id} className="hover:bg-gray-50">
|
|
||||||
<td className="px-6 py-4 whitespace-nowrap">{invoice.invoice_number}</td>
|
|
||||||
<td className="px-6 py-4 whitespace-nowrap">{formatDate(invoice.invoice_date)}</td>
|
|
||||||
<td className="px-6 py-4 whitespace-nowrap">{formatDate(invoice.due_date)}</td>
|
|
||||||
<td className="px-6 py-4 whitespace-nowrap">{formatCurrency(invoice.total_amount)}</td>
|
|
||||||
<td className="px-6 py-4 whitespace-nowrap">
|
|
||||||
<span className={`px-2 inline-flex text-xs leading-5 font-semibold rounded-full
|
|
||||||
${invoice.status === 'paid' ? 'bg-green-100 text-green-800' :
|
|
||||||
invoice.status === 'draft' ? 'bg-yellow-100 text-yellow-800' :
|
|
||||||
'bg-red-100 text-red-800'}`}>
|
|
||||||
{invoice.status}
|
|
||||||
</span>
|
|
||||||
</td>
|
|
||||||
<td className="px-6 py-4 whitespace-nowrap">
|
|
||||||
<button
|
|
||||||
onClick={() => viewInvoiceDetails(invoice)}
|
|
||||||
className="text-blue-600 hover:text-blue-900 mr-2"
|
|
||||||
>
|
|
||||||
View
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
onClick={handlePrint}
|
|
||||||
className="text-gray-600 hover:text-gray-900"
|
|
||||||
>
|
|
||||||
Print
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
))}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Invoice Detail Modal */}
|
|
||||||
{selectedInvoice && (
|
|
||||||
<div className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center p-4 z-50">
|
|
||||||
<div className="bg-white rounded-lg shadow-xl max-w-4xl w-full max-h-[90vh] overflow-y-auto">
|
|
||||||
{/* Printable Invoice */}
|
|
||||||
<div id="printable-invoice" className="p-8">
|
|
||||||
<div className="flex justify-between items-start mb-8">
|
|
||||||
<div>
|
|
||||||
<h1 className="text-3xl font-bold text-gray-800">INVOICE</h1>
|
|
||||||
<p className="text-gray-600">{selectedInvoice.invoice_number}</p>
|
|
||||||
</div>
|
|
||||||
<div className="text-right">
|
|
||||||
<p className="text-gray-600">Status: <span className={`font-semibold
|
|
||||||
${selectedInvoice.status === 'paid' ? 'text-green-600' :
|
|
||||||
selectedInvoice.status === 'draft' ? 'text-yellow-600' :
|
|
||||||
'text-red-600'}`}>
|
|
||||||
{selectedInvoice.status.toUpperCase()}
|
|
||||||
</span></p>
|
|
||||||
<p className="text-gray-600">Date: {formatDate(selectedInvoice.invoice_date)}</p>
|
|
||||||
<p className="text-gray-600">Due: {formatDate(selectedInvoice.due_date)}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="mb-8">
|
|
||||||
<h2 className="text-xl font-semibold mb-2">From</h2>
|
|
||||||
<p className="text-gray-800">Your Company Name</p>
|
|
||||||
<p className="text-gray-600">123 Business Street</p>
|
|
||||||
<p className="text-gray-600">City, State 12345</p>
|
|
||||||
<p className="text-gray-600">contact@yourcompany.com</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="mb-8">
|
|
||||||
<h2 className="text-xl font-semibold mb-2">Bill To</h2>
|
|
||||||
<p className="text-gray-800">Customer ID: {selectedInvoice.customer_id}</p>
|
|
||||||
<p className="text-gray-600">[Customer Name]</p>
|
|
||||||
<p className="text-gray-600">[Customer Address]</p>
|
|
||||||
<p className="text-gray-600">[Customer Email]</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="border-t border-b border-gray-200 py-4 mb-6">
|
|
||||||
<div className="grid grid-cols-12 gap-4 font-semibold text-gray-700">
|
|
||||||
<div className="col-span-6">Description</div>
|
|
||||||
<div className="col-span-2 text-right">Subtotal</div>
|
|
||||||
<div className="col-span-2 text-right">Tax</div>
|
|
||||||
<div className="col-span-2 text-right">Total</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="mb-6">
|
|
||||||
<div className="grid grid-cols-12 gap-4 mb-2">
|
|
||||||
<div className="col-span-6 text-gray-800">[Service/Product Description]</div>
|
|
||||||
<div className="col-span-2 text-right">{formatCurrency(selectedInvoice.subtotal)}</div>
|
|
||||||
<div className="col-span-2 text-right">{formatCurrency(selectedInvoice.tax_amount)}</div>
|
|
||||||
<div className="col-span-2 text-right font-semibold">{formatCurrency(selectedInvoice.total_amount)}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="flex justify-end mb-8">
|
|
||||||
<div className="w-64">
|
|
||||||
<div className="flex justify-between py-2 border-b border-gray-200">
|
|
||||||
<span className="font-semibold">Subtotal:</span>
|
|
||||||
<span>{formatCurrency(selectedInvoice.subtotal)}</span>
|
|
||||||
</div>
|
|
||||||
<div className="flex justify-between py-2 border-b border-gray-200">
|
|
||||||
<span className="font-semibold">Tax:</span>
|
|
||||||
<span>{formatCurrency(selectedInvoice.tax_amount)}</span>
|
|
||||||
</div>
|
|
||||||
<div className="flex justify-between py-2 font-bold text-lg">
|
|
||||||
<span>Total:</span>
|
|
||||||
<span>{formatCurrency(selectedInvoice.total_amount)}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{selectedInvoice.notes && (
|
|
||||||
<div className="mb-8">
|
|
||||||
<h2 className="text-xl font-semibold mb-2">Notes</h2>
|
|
||||||
<p className="text-gray-600">{selectedInvoice.notes}</p>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<div className="pt-8 border-t border-gray-200">
|
|
||||||
<p className="text-gray-600 text-center">Thank you for your business!</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="p-4 border-t border-gray-200 flex justify-end">
|
|
||||||
<button
|
|
||||||
onClick={closeInvoiceDetails}
|
|
||||||
className="px-4 py-2 bg-gray-200 text-gray-800 rounded hover:bg-gray-300 mr-2"
|
|
||||||
>
|
|
||||||
Close
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
onClick={handlePrint}
|
|
||||||
className="px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700"
|
|
||||||
>
|
|
||||||
Print Invoice
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* Print Styles */}
|
|
||||||
<style>
|
|
||||||
{`
|
|
||||||
@media print {
|
|
||||||
body * {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
#printable-invoice, #printable-invoice * {
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
#printable-invoice {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
width: 100%;
|
|
||||||
padding: 20mm;
|
|
||||||
}
|
|
||||||
.no-print {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`}
|
|
||||||
</style>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -88,6 +88,10 @@ export default function ProfilePage() {
|
|||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<div className="space-y-6 container mx-auto">
|
<div className="space-y-6 container mx-auto">
|
||||||
|
{/* <div>
|
||||||
|
<h3 className="text-lg font-medium">Profile</h3>
|
||||||
|
<p className="text-sm text-muted-foreground">Update your profile settings.</p>
|
||||||
|
</div> */}
|
||||||
<Separator />
|
<Separator />
|
||||||
<div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0">
|
<div className="flex flex-col space-y-8 lg:flex-row lg:space-x-12 lg:space-y-0">
|
||||||
<div className="flex-1 lg:max-w-2xl">
|
<div className="flex-1 lg:max-w-2xl">
|
||||||
@@ -124,6 +128,15 @@ export default function ProfilePage() {
|
|||||||
<Input id="email" type="email" defaultValue={userData.session_data?.user_email || ''} />
|
<Input id="email" type="email" defaultValue={userData.session_data?.user_email || ''} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{/* <div className="space-y-2">
|
||||||
|
<Label htmlFor="bio">Bio</Label>
|
||||||
|
<Textarea
|
||||||
|
id="bio"
|
||||||
|
defaultValue="I'm a software developer based in New York."
|
||||||
|
className="resize-none"
|
||||||
|
rows={5}
|
||||||
|
/>
|
||||||
|
</div> */}
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
<Card className="mt-6">
|
<Card className="mt-6">
|
||||||
@@ -132,6 +145,7 @@ export default function ProfilePage() {
|
|||||||
<CardDescription>
|
<CardDescription>
|
||||||
View your billing history.
|
View your billing history.
|
||||||
</CardDescription>
|
</CardDescription>
|
||||||
|
{/* <CardContent> */}
|
||||||
<table className="w-full">
|
<table className="w-full">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -143,7 +157,7 @@ export default function ProfilePage() {
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{
|
{/* {
|
||||||
invoiceList.map((invoice) => (
|
invoiceList.map((invoice) => (
|
||||||
<tr key={invoice.id}>
|
<tr key={invoice.id}>
|
||||||
<td>{invoice.invoice_id}</td>
|
<td>{invoice.invoice_id}</td>
|
||||||
@@ -153,11 +167,65 @@ export default function ProfilePage() {
|
|||||||
<td className="text-center"><a href="">Print</a></td>
|
<td className="text-center"><a href="">Print</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
))
|
))
|
||||||
}
|
} */}
|
||||||
|
<tr>
|
||||||
|
<td>dcdicdicib</td>
|
||||||
|
<td>2023-10-01</td>
|
||||||
|
<td>Subscription Fee</td>
|
||||||
|
<td className="text-right">$10.00</td>
|
||||||
|
<td className="text-center"><a href="">Print</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>dcibcdici</td>
|
||||||
|
<td>2023-09-01</td>
|
||||||
|
<td>Subscription Fee</td>
|
||||||
|
<td className="text-right">$10.00</td>
|
||||||
|
<td className="text-center"><a href="" >Print</a></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
{/* </CardContent> */}
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
</Card>
|
</Card>
|
||||||
|
{/* <Card className="mt-6">
|
||||||
|
<CardHeader>
|
||||||
|
<CardTitle>Preferences</CardTitle>
|
||||||
|
<CardDescription>
|
||||||
|
Configure your application preferences.
|
||||||
|
</CardDescription>
|
||||||
|
</CardHeader>
|
||||||
|
<CardContent className="space-y-6">
|
||||||
|
<div className="space-y-2">
|
||||||
|
<Label htmlFor="language">Language</Label>
|
||||||
|
<Select defaultValue="english">
|
||||||
|
<SelectTrigger id="language">
|
||||||
|
<SelectValue placeholder="Select language" />
|
||||||
|
</SelectTrigger>
|
||||||
|
<SelectContent>
|
||||||
|
<SelectItem value="english">English</SelectItem>
|
||||||
|
<SelectItem value="french">French</SelectItem>
|
||||||
|
<SelectItem value="german">German</SelectItem>
|
||||||
|
<SelectItem value="spanish">Spanish</SelectItem>
|
||||||
|
</SelectContent>
|
||||||
|
</Select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="space-y-2">
|
||||||
|
<Label htmlFor="timezone">Timezone</Label>
|
||||||
|
<Select defaultValue="est">
|
||||||
|
<SelectTrigger id="timezone">
|
||||||
|
<SelectValue placeholder="Select timezone" />
|
||||||
|
</SelectTrigger>
|
||||||
|
<SelectContent>
|
||||||
|
<SelectItem value="est">Eastern Standard Time (EST)</SelectItem>
|
||||||
|
<SelectItem value="cst">Central Standard Time (CST)</SelectItem>
|
||||||
|
<SelectItem value="mst">Mountain Standard Time (MST)</SelectItem>
|
||||||
|
<SelectItem value="pst">Pacific Standard Time (PST)</SelectItem>
|
||||||
|
</SelectContent>
|
||||||
|
</Select>
|
||||||
|
</div>
|
||||||
|
</CardContent>
|
||||||
|
</Card> */}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex-1 space-y-6 lg:max-w-md">
|
<div className="flex-1 space-y-6 lg:max-w-md">
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
|
|
||||||
interface ContainerProps {
|
|
||||||
children: React.ReactNode;
|
|
||||||
className?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
const Container: React.FC<ContainerProps> = ({ children, className = '' }) => {
|
|
||||||
return (
|
|
||||||
<div className={`max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 ${className}`}>
|
|
||||||
{children}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default Container;
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
interface TableProps {
|
|
||||||
headers: string[];
|
|
||||||
data: any[];
|
|
||||||
className?: string;
|
|
||||||
children?: React.ReactNode; // Add children here
|
|
||||||
}
|
|
||||||
|
|
||||||
const Table: React.FC<TableProps> = ({ headers, data, className = '', children }) => {
|
|
||||||
return (
|
|
||||||
<div className={`overflow-x-auto ${className}`}>
|
|
||||||
<table className="min-w-full bg-white border border-gray-300">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
{headers.map((header, index) => (
|
|
||||||
<th key={index} className="px-6 py-3 text-left text-sm font-medium text-gray-600">
|
|
||||||
{header}
|
|
||||||
</th>
|
|
||||||
))}
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{data.map((row, index) => (
|
|
||||||
<tr key={index} className="border-t">
|
|
||||||
{Object.values(row).map((value, idx) => (
|
|
||||||
<td key={idx} className="px-6 py-4 text-sm text-gray-800">
|
|
||||||
{value as React.ReactNode}
|
|
||||||
</td>
|
|
||||||
))}
|
|
||||||
</tr>
|
|
||||||
))}
|
|
||||||
{children} {/* This will allow you to pass additional content */}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default Table;
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
import type { ElementType } from 'react';
|
|
||||||
|
|
||||||
interface TypographyProps {
|
|
||||||
variant: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body1' | 'body2' | 'caption';
|
|
||||||
children: React.ReactNode;
|
|
||||||
className?: string;
|
|
||||||
color?: string; // Add color prop
|
|
||||||
}
|
|
||||||
|
|
||||||
const Typography: React.FC<TypographyProps> = ({ variant, children, className = '', color }) => {
|
|
||||||
const variantStyles: Record<string, React.CSSProperties> = {
|
|
||||||
h1: { fontSize: '2.5rem', fontWeight: 'bold' },
|
|
||||||
h2: { fontSize: '2rem', fontWeight: 'bold' },
|
|
||||||
h3: { fontSize: '1.75rem', fontWeight: 'bold' },
|
|
||||||
h4: { fontSize: '1.5rem', fontWeight: 'bold' },
|
|
||||||
h5: { fontSize: '1.25rem', fontWeight: 'bold' },
|
|
||||||
h6: { fontSize: '1rem', fontWeight: 'bold' },
|
|
||||||
body1: { fontSize: '1rem', fontWeight: 'normal' },
|
|
||||||
body2: { fontSize: '0.875rem', fontWeight: 'normal' },
|
|
||||||
caption: { fontSize: '0.75rem', fontWeight: 'normal' },
|
|
||||||
};
|
|
||||||
|
|
||||||
const combinedStyle = { ...variantStyles[variant], ...(color && { color }), ...(className ? { className } : {}) };
|
|
||||||
|
|
||||||
const variantToTag: Record<string, ElementType> = {
|
|
||||||
h1: 'h1',
|
|
||||||
h2: 'h2',
|
|
||||||
h3: 'h3',
|
|
||||||
h4: 'h4',
|
|
||||||
h5: 'h5',
|
|
||||||
h6: 'h6',
|
|
||||||
body1: 'p',
|
|
||||||
body2: 'p',
|
|
||||||
caption: 'span',
|
|
||||||
};
|
|
||||||
|
|
||||||
const Tag: ElementType = variantToTag[variant];
|
|
||||||
|
|
||||||
return <Tag style={combinedStyle}>{children}</Tag>;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default Typography;
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
---
|
|
||||||
import Layout from "../layouts/Layout.astro";
|
|
||||||
import ModelViewer from "../components/ModelViewer"; // Ensure the name matches
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout title="3D Model Viewer">
|
|
||||||
<div class="flex flex-col items-center justify-center h-screen">
|
|
||||||
<h1 class="text-4xl font-bold mb-4">3D Model Viewer</h1>
|
|
||||||
<ModelViewer client:only="react" />
|
|
||||||
</div>
|
|
||||||
</Layout>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
import Layout from "../layouts/Layout.astro";
|
|
||||||
import Invoice from "../components/PrintInvoice";
|
|
||||||
---
|
|
||||||
<Layout title="">
|
|
||||||
<Invoice client:load/>
|
|
||||||
</Layout>
|
|
||||||
161
yarn.lock
161
yarn.lock
@@ -243,16 +243,6 @@
|
|||||||
"@babel/helper-string-parser" "^7.25.9"
|
"@babel/helper-string-parser" "^7.25.9"
|
||||||
"@babel/helper-validator-identifier" "^7.25.9"
|
"@babel/helper-validator-identifier" "^7.25.9"
|
||||||
|
|
||||||
"@babylonjs/core@^8.0.0", "@babylonjs/core@^8.0.2":
|
|
||||||
version "8.0.2"
|
|
||||||
resolved "https://registry.npmjs.org/@babylonjs/core/-/core-8.0.2.tgz"
|
|
||||||
integrity sha512-Bq6Ue2mu6N351AhPqoPNT0jLMm3n9igAqLs9CLb4RiWNR+VBylIf+L+lw/HJ6L2iOOzT1YfY7jD+vg6mW5wY2A==
|
|
||||||
|
|
||||||
"@babylonjs/loaders@^8.0.2":
|
|
||||||
version "8.0.2"
|
|
||||||
resolved "https://registry.npmjs.org/@babylonjs/loaders/-/loaders-8.0.2.tgz"
|
|
||||||
integrity sha512-o9e5GUiysqpqsTfYf2EQhG4OZM+Tx4Cp1uy/6XKuk+xBqKjCp4cId0QDFkB3CISatB7BbC/TrSpgR5TuJ5/+Pw==
|
|
||||||
|
|
||||||
"@esbuild/linux-x64@0.25.1":
|
"@esbuild/linux-x64@0.25.1":
|
||||||
version "0.25.1"
|
version "0.25.1"
|
||||||
resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz"
|
resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz"
|
||||||
@@ -285,14 +275,6 @@
|
|||||||
resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz"
|
resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz"
|
||||||
integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==
|
integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==
|
||||||
|
|
||||||
"@google/model-viewer@^4.0.0":
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-4.0.0.tgz"
|
|
||||||
integrity sha512-hf4mixP178gGtvWQq97a0uULr7k98BwJGRU3lvt12XnurOdLmZA/RPdW4tPsINNNQxZvmvQsjud4lZWre6WGNw==
|
|
||||||
dependencies:
|
|
||||||
"@monogrid/gainmap-js" "^3.0.1"
|
|
||||||
lit "^2.7.2"
|
|
||||||
|
|
||||||
"@img/sharp-libvips-linux-x64@1.0.4":
|
"@img/sharp-libvips-linux-x64@1.0.4":
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz"
|
resolved "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz"
|
||||||
@@ -361,25 +343,6 @@
|
|||||||
"@jridgewell/resolve-uri" "^3.1.0"
|
"@jridgewell/resolve-uri" "^3.1.0"
|
||||||
"@jridgewell/sourcemap-codec" "^1.4.14"
|
"@jridgewell/sourcemap-codec" "^1.4.14"
|
||||||
|
|
||||||
"@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0":
|
|
||||||
version "1.3.0"
|
|
||||||
resolved "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.3.0.tgz"
|
|
||||||
integrity sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ==
|
|
||||||
|
|
||||||
"@lit/reactive-element@^1.3.0", "@lit/reactive-element@^1.6.0":
|
|
||||||
version "1.6.3"
|
|
||||||
resolved "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz"
|
|
||||||
integrity sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==
|
|
||||||
dependencies:
|
|
||||||
"@lit-labs/ssr-dom-shim" "^1.0.0"
|
|
||||||
|
|
||||||
"@monogrid/gainmap-js@^3.0.1":
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.npmjs.org/@monogrid/gainmap-js/-/gainmap-js-3.1.0.tgz"
|
|
||||||
integrity sha512-Obb0/gEd/HReTlg8ttaYk+0m62gQJmCblMOjHSMHRrBP2zdfKMHLCRbh/6ex9fSUJMKdjjIEiohwkbGD3wj2Nw==
|
|
||||||
dependencies:
|
|
||||||
promise-worker-transferable "^1.0.4"
|
|
||||||
|
|
||||||
"@nodelib/fs.scandir@2.1.5":
|
"@nodelib/fs.scandir@2.1.5":
|
||||||
version "2.1.5"
|
version "2.1.5"
|
||||||
resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
|
resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
|
||||||
@@ -578,24 +541,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@radix-ui/react-compose-refs" "1.1.1"
|
"@radix-ui/react-compose-refs" "1.1.1"
|
||||||
|
|
||||||
"@radix-ui/react-toast@^1.2.6":
|
|
||||||
version "1.2.6"
|
|
||||||
resolved "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.6.tgz"
|
|
||||||
integrity sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA==
|
|
||||||
dependencies:
|
|
||||||
"@radix-ui/primitive" "1.1.1"
|
|
||||||
"@radix-ui/react-collection" "1.1.2"
|
|
||||||
"@radix-ui/react-compose-refs" "1.1.1"
|
|
||||||
"@radix-ui/react-context" "1.1.1"
|
|
||||||
"@radix-ui/react-dismissable-layer" "1.1.5"
|
|
||||||
"@radix-ui/react-portal" "1.1.4"
|
|
||||||
"@radix-ui/react-presence" "1.1.2"
|
|
||||||
"@radix-ui/react-primitive" "2.0.2"
|
|
||||||
"@radix-ui/react-use-callback-ref" "1.1.0"
|
|
||||||
"@radix-ui/react-use-controllable-state" "1.1.0"
|
|
||||||
"@radix-ui/react-use-layout-effect" "1.1.0"
|
|
||||||
"@radix-ui/react-visually-hidden" "1.1.2"
|
|
||||||
|
|
||||||
"@radix-ui/react-use-callback-ref@1.1.0":
|
"@radix-ui/react-use-callback-ref@1.1.0":
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz"
|
resolved "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz"
|
||||||
@@ -828,11 +773,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
csstype "^3.0.2"
|
csstype "^3.0.2"
|
||||||
|
|
||||||
"@types/trusted-types@^2.0.2":
|
|
||||||
version "2.0.7"
|
|
||||||
resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz"
|
|
||||||
integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==
|
|
||||||
|
|
||||||
"@types/unist@*", "@types/unist@^3.0.0":
|
"@types/unist@*", "@types/unist@^3.0.0":
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz"
|
resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz"
|
||||||
@@ -1011,11 +951,6 @@ axobject-query@^4.1.0:
|
|||||||
resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz"
|
resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz"
|
||||||
integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==
|
integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==
|
||||||
|
|
||||||
babylonjs-gltf2interface@^8.0.0:
|
|
||||||
version "8.0.2"
|
|
||||||
resolved "https://registry.npmjs.org/babylonjs-gltf2interface/-/babylonjs-gltf2interface-8.0.2.tgz"
|
|
||||||
integrity sha512-H913H03OSNfRlq0HLwrUjaJMmqYdINZPsX7dfa0Wg4mXmUgEIWSPxPi1Bl4gVwVGemZ8/PsFYbeOtyofwZBFJA==
|
|
||||||
|
|
||||||
bail@^2.0.0:
|
bail@^2.0.0:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz"
|
resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz"
|
||||||
@@ -1265,11 +1200,6 @@ cookie@^0.7.2:
|
|||||||
resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz"
|
resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz"
|
||||||
integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
|
integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
|
||||||
|
|
||||||
cookie@^1.0.1:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz"
|
|
||||||
integrity sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==
|
|
||||||
|
|
||||||
cross-spawn@^7.0.3, cross-spawn@^7.0.6:
|
cross-spawn@^7.0.3, cross-spawn@^7.0.6:
|
||||||
version "7.0.6"
|
version "7.0.6"
|
||||||
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz"
|
resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz"
|
||||||
@@ -1813,11 +1743,6 @@ ieee754@^1.2.1:
|
|||||||
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
|
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
|
||||||
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||||
|
|
||||||
immediate@~3.0.5:
|
|
||||||
version "3.0.6"
|
|
||||||
resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz"
|
|
||||||
integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
|
|
||||||
|
|
||||||
import-meta-resolve@^4.1.0:
|
import-meta-resolve@^4.1.0:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz"
|
resolved "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz"
|
||||||
@@ -1896,11 +1821,6 @@ is-plain-obj@^4.0.0:
|
|||||||
resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz"
|
resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz"
|
||||||
integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==
|
integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==
|
||||||
|
|
||||||
is-promise@^2.1.0:
|
|
||||||
version "2.2.2"
|
|
||||||
resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz"
|
|
||||||
integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
|
|
||||||
|
|
||||||
is-stream@^3.0.0:
|
is-stream@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz"
|
resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz"
|
||||||
@@ -1978,13 +1898,6 @@ kleur@^4.1.5:
|
|||||||
resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz"
|
resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz"
|
||||||
integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
|
integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
|
||||||
|
|
||||||
lie@^3.0.2:
|
|
||||||
version "3.3.0"
|
|
||||||
resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz"
|
|
||||||
integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
|
|
||||||
dependencies:
|
|
||||||
immediate "~3.0.5"
|
|
||||||
|
|
||||||
lilconfig@^3.0.0, lilconfig@^3.1.3:
|
lilconfig@^3.0.0, lilconfig@^3.1.3:
|
||||||
version "3.1.3"
|
version "3.1.3"
|
||||||
resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz"
|
resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz"
|
||||||
@@ -1995,31 +1908,6 @@ lines-and-columns@^1.1.6:
|
|||||||
resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
|
resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
|
||||||
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
|
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
|
||||||
|
|
||||||
lit-element@^3.3.0:
|
|
||||||
version "3.3.3"
|
|
||||||
resolved "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz"
|
|
||||||
integrity sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==
|
|
||||||
dependencies:
|
|
||||||
"@lit-labs/ssr-dom-shim" "^1.1.0"
|
|
||||||
"@lit/reactive-element" "^1.3.0"
|
|
||||||
lit-html "^2.8.0"
|
|
||||||
|
|
||||||
lit-html@^2.8.0:
|
|
||||||
version "2.8.0"
|
|
||||||
resolved "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz"
|
|
||||||
integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==
|
|
||||||
dependencies:
|
|
||||||
"@types/trusted-types" "^2.0.2"
|
|
||||||
|
|
||||||
lit@^2.7.2:
|
|
||||||
version "2.8.0"
|
|
||||||
resolved "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz"
|
|
||||||
integrity sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==
|
|
||||||
dependencies:
|
|
||||||
"@lit/reactive-element" "^1.6.0"
|
|
||||||
lit-element "^3.3.0"
|
|
||||||
lit-html "^2.8.0"
|
|
||||||
|
|
||||||
log-symbols@^5.1.0:
|
log-symbols@^5.1.0:
|
||||||
version "5.1.0"
|
version "5.1.0"
|
||||||
resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz"
|
resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz"
|
||||||
@@ -2840,14 +2728,6 @@ prismjs@^1.29.0:
|
|||||||
resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz"
|
resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz"
|
||||||
integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==
|
integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==
|
||||||
|
|
||||||
promise-worker-transferable@^1.0.4:
|
|
||||||
version "1.0.4"
|
|
||||||
resolved "https://registry.npmjs.org/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz"
|
|
||||||
integrity sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==
|
|
||||||
dependencies:
|
|
||||||
is-promise "^2.1.0"
|
|
||||||
lie "^3.0.2"
|
|
||||||
|
|
||||||
prompts@^2.4.2:
|
prompts@^2.4.2:
|
||||||
version "2.4.2"
|
version "2.4.2"
|
||||||
resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz"
|
resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz"
|
||||||
@@ -2876,7 +2756,7 @@ radix3@^1.1.2:
|
|||||||
resolved "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz"
|
resolved "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz"
|
||||||
integrity sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==
|
integrity sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==
|
||||||
|
|
||||||
"react-dom@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom@^17.0.2 || ^18.0.0 || ^19.0.0", react-dom@>=16.8.0, react-dom@>=18:
|
"react-dom@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom@^17.0.2 || ^18.0.0 || ^19.0.0", react-dom@>=16.8.0:
|
||||||
version "19.0.0"
|
version "19.0.0"
|
||||||
resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz"
|
resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz"
|
||||||
integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==
|
integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==
|
||||||
@@ -2907,23 +2787,6 @@ react-remove-scroll@^2.6.3:
|
|||||||
use-callback-ref "^1.3.3"
|
use-callback-ref "^1.3.3"
|
||||||
use-sidecar "^1.1.3"
|
use-sidecar "^1.1.3"
|
||||||
|
|
||||||
react-router-dom@^7.4.1:
|
|
||||||
version "7.4.1"
|
|
||||||
resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.4.1.tgz"
|
|
||||||
integrity sha512-L3/4tig0Lvs6m6THK0HRV4eHUdpx0dlJasgCxXKnavwhh4tKYgpuZk75HRYNoRKDyDWi9QgzGXsQ1oQSBlWpAA==
|
|
||||||
dependencies:
|
|
||||||
react-router "7.4.1"
|
|
||||||
|
|
||||||
react-router@7.4.1:
|
|
||||||
version "7.4.1"
|
|
||||||
resolved "https://registry.npmjs.org/react-router/-/react-router-7.4.1.tgz"
|
|
||||||
integrity sha512-Vmizn9ZNzxfh3cumddqv3kLOKvc7AskUT0dC1prTabhiEi0U4A33LmkDOJ79tXaeSqCqMBXBU/ySX88W85+EUg==
|
|
||||||
dependencies:
|
|
||||||
"@types/cookie" "^0.6.0"
|
|
||||||
cookie "^1.0.1"
|
|
||||||
set-cookie-parser "^2.6.0"
|
|
||||||
turbo-stream "2.4.0"
|
|
||||||
|
|
||||||
react-style-singleton@^2.2.2, react-style-singleton@^2.2.3:
|
react-style-singleton@^2.2.2, react-style-singleton@^2.2.3:
|
||||||
version "2.2.3"
|
version "2.2.3"
|
||||||
resolved "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz"
|
resolved "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz"
|
||||||
@@ -2932,12 +2795,7 @@ react-style-singleton@^2.2.2, react-style-singleton@^2.2.3:
|
|||||||
get-nonce "^1.0.0"
|
get-nonce "^1.0.0"
|
||||||
tslib "^2.0.0"
|
tslib "^2.0.0"
|
||||||
|
|
||||||
react-to-print@^3.0.5:
|
"react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^17.0.2 || ^18.0.0 || ^19.0.0", react@^19.0.0, react@>=16.8.0:
|
||||||
version "3.0.5"
|
|
||||||
resolved "https://registry.npmjs.org/react-to-print/-/react-to-print-3.0.5.tgz"
|
|
||||||
integrity sha512-Z15MwMOzYCHWi26CZeFNwflAg7Nr8uWD6FTj+EkfIOjYyjr0MXGbI0c7rF4Fgrbj3XG9hFndb1ourxpPz2RAiA==
|
|
||||||
|
|
||||||
"react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ~19", "react@^17.0.2 || ^18.0.0 || ^19.0.0", react@^19.0.0, react@>=16.8.0, react@>=18:
|
|
||||||
version "19.0.0"
|
version "19.0.0"
|
||||||
resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz"
|
resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz"
|
||||||
integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==
|
integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==
|
||||||
@@ -3193,11 +3051,6 @@ semver@^7.6.3, semver@^7.7.1:
|
|||||||
resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz"
|
resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz"
|
||||||
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
|
integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==
|
||||||
|
|
||||||
set-cookie-parser@^2.6.0:
|
|
||||||
version "2.7.1"
|
|
||||||
resolved "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz"
|
|
||||||
integrity sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==
|
|
||||||
|
|
||||||
sharp@^0.33.3:
|
sharp@^0.33.3:
|
||||||
version "0.33.5"
|
version "0.33.5"
|
||||||
resolved "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz"
|
resolved "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz"
|
||||||
@@ -3444,11 +3297,6 @@ thenify-all@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
any-promise "^1.0.0"
|
any-promise "^1.0.0"
|
||||||
|
|
||||||
three@^0.169.0, "three@>= 0.159.0":
|
|
||||||
version "0.169.0"
|
|
||||||
resolved "https://registry.npmjs.org/three/-/three-0.169.0.tgz"
|
|
||||||
integrity sha512-Ed906MA3dR4TS5riErd4QBsRGPcx+HBDX2O5yYE5GqJeFQTPU+M56Va/f/Oph9X7uZo3W3o4l2ZhBZ6f6qUv0w==
|
|
||||||
|
|
||||||
tinyexec@^0.3.2:
|
tinyexec@^0.3.2:
|
||||||
version "0.3.2"
|
version "0.3.2"
|
||||||
resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz"
|
resolved "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz"
|
||||||
@@ -3494,11 +3342,6 @@ tslib@^2.0.0, tslib@^2.1.0:
|
|||||||
resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
|
resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
|
||||||
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
|
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
|
||||||
|
|
||||||
turbo-stream@2.4.0:
|
|
||||||
version "2.4.0"
|
|
||||||
resolved "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz"
|
|
||||||
integrity sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==
|
|
||||||
|
|
||||||
type-fest@^4.21.0:
|
type-fest@^4.21.0:
|
||||||
version "4.37.0"
|
version "4.37.0"
|
||||||
resolved "https://registry.npmjs.org/type-fest/-/type-fest-4.37.0.tgz"
|
resolved "https://registry.npmjs.org/type-fest/-/type-fest-4.37.0.tgz"
|
||||||
|
|||||||
Reference in New Issue
Block a user