{"_id":"@composy/3d-viewer-vue","name":"@composy/3d-viewer-vue","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@composy/3d-viewer-vue","version":"0.0.1","description":"Vue 3 components for @composy/3d-viewer-core","keywords":["panorama","vue","vue3","3d"],"author":{"name":"LDesign Team"},"license":"MIT","type":"module","sideEffects":false,"exports":{".":{"types":"./es/index.d.ts","import":"./es/index.js","require":"./lib/index.cjs","default":"./es/index.js"},"./composables/*":{"types":"./es/composables/*.d.ts","import":"./es/composables/*.js","require":"./lib/composables/*.cjs","default":"./es/composables/*.js"},"./plugins/*":{"types":"./es/plugins/*.d.ts","import":"./es/plugins/*.js","require":"./lib/plugins/*.cjs","default":"./es/plugins/*.js"},"./index.css":"./dist/index.css","./index.min.css":"./dist/index.min.css","./package.json":"./package.json"},"main":"./lib/index.cjs","module":"./es/index.js","types":"./es/index.d.ts","unpkg":"./dist/index.min.js","jsdelivr":"./dist/index.min.js","scripts":{"build":"ldesign-builder build","clean":"rimraf dist esm lib","dev":"ldesign-builder build --watch","lint":"eslint .","lint:check":"eslint . --max-warnings 0","lint:fix":"eslint . --fix","test":"ltesting run:unit","test:coverage":"ltesting run:unit --coverage","test:ui":"ltesting dashboard","type-check":"pnpm run typecheck","typecheck":"vue-tsc --noEmit -p tsconfig.typecheck.json","test:run":"ltesting run:unit","test:watch":"ltesting run:unit --watch","test:changed":"ltesting run:unit --changed","test:failed":"ltesting run:unit --failed"},"dependencies":{"@composy/3d-viewer-core":"^0.0.1"},"peerDependencies":{"@composy/3d-viewer-core":"^0.0.1","three":"^0.160.0","vue":"^3.5.32"},"devDependencies":{"@antfu/eslint-config":"9.1.0","@composy/builder":"^0.0.1","@composy/testing":"^0.0.1","@types/node":"26.1.1","@types/three":"^0.185.1","@types/webxr":"^0.5.24","@vue/compiler-sfc":"3.5.39","@vue/test-utils":"^2.4.11","eslint":"10.7.0","happy-dom":"20.10.6","jsdom":"29.1.1","rimraf":"^6.1.3","three":"^0.185.1","typescript":"5.9.3","vite":"^8.1.4","vite-plugin-dts":"^5.0.3","vue":"3.5.39","vue-tsc":"^3.3.7"},"typings":"./es/index.d.ts","browser":"./dist/index.js","_id":"@composy/3d-viewer-vue@0.0.1","_nodeVersion":"23.11.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-Hp+JmQshALFFF4867rZm41289prcl4sS2pT/25Xc2eX0Lyu8/C6QXGav7VRE1EszZr7sZk6Fi3a39R1FaWc0KQ==","shasum":"bcdf4e203a099973558a40940e65553f43f17213","tarball":"https://registry.npmjs.org/@composy/3d-viewer-vue/-/3d-viewer-vue-0.0.1.tgz","fileCount":119,"unpackedSize":800052,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGEUtlTeUBI/H7dOS2LF8bIwNj2YwmI23b6FiBzjOKwDAiEA2ngk89qjaCIedFsuDje3gp0YDbV5V5oV/LsOx16j+1M="}]},"_npmUser":{"name":"swimly","email":"979741120@qq.com"},"directories":{},"maintainers":[{"name":"swimly","email":"979741120@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/3d-viewer-vue_0.0.1_1786948960922_0.12343084392862402"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T06:42:40.796Z","0.0.1":"2026-08-17T06:42:41.080Z","modified":"2026-08-17T06:42:41.357Z"},"maintainers":[{"name":"swimly","email":"979741120@qq.com"}],"description":"Vue 3 components for @composy/3d-viewer-core","keywords":["panorama","vue","vue3","3d"],"author":{"name":"LDesign Team"},"license":"MIT","readme":"# @composy/3d-viewer-vue\n\nVue 3 adapter for `@composy/3d-viewer-core`.\n\n## Features\n\n- `PanoramaViewer` Vue component backed by the framework-neutral core runtime.\n- Composables and plugin entry points for Vue applications.\n- Loading and error slots, viewer method exposure, and core event forwarding.\n- DOM class namespace uses `ldesign-3d-viewer*`.\n- Scoped styles use `--ldesign-3d-viewer-*` variables backed by `packages/color` and `packages/size` generated `--ld-*` tokens.\n- Build outputs include `dist`, `es`, `esm`, and `lib`.\n\n## Install\n\n```bash\npnpm add @composy/3d-viewer-vue @composy/3d-viewer-core three vue\n```\n\n## Usage\n\n```vue\n<template>\n  <PanoramaViewer\n    image=\"/panorama.jpg\"\n    height=\"var(--ld-px-720)\"\n    :viewer-options=\"{\n      loadingIndicator: true,\n      zoomIndicator: true,\n      helpOverlay: true,\n      sharePanel: true,\n    }\"\n    @ready=\"onReady\"\n    @error=\"onError\"\n  />\n</template>\n\n<script setup lang=\"ts\">\nimport { PanoramaViewer } from '@composy/3d-viewer-vue'\n\nfunction onReady() {\n  // viewer is ready\n}\n\nfunction onError(error: Error) {\n  console.error(error)\n}\n</script>\n```\n\n## Styling Contract\n\nMake sure LDesign color and size token styles are available in the app. The component and core runtime reference variables such as `--ld-bg-elevated`, `--ld-text-inverse`, `--ld-primary-default`, `--ld-spacing-*`, `--ld-font-*`, `--ld-radius-*`, and `--ld-px-*`.\n\nYou can override viewer-specific values on the component root:\n\n```css\n.ldesign-3d-viewer {\n  --ldesign-3d-viewer-height: var(--ld-px-720);\n  --ldesign-3d-viewer-panel-bg: var(--ld-bg-elevated);\n  --ldesign-3d-viewer-accent: var(--ld-primary-default);\n}\n```\n\n## Slots\n\n- `loading`: custom loading state, receives `progress`.\n- `error`: custom error state, receives `error`.\n- `controls`: external controls, receives `viewer` and exposed methods.\n- `info`: viewer metadata, receives `stats`.\n\n## Build Outputs\n\n```text\npackages/vue/\n├─ dist/  Browser bundles and CSS: index.js, index.min.js, index.css, index.min.css\n├─ es/    ESM with declarations\n├─ esm/   Preserve-module ESM mirror\n└─ lib/   CommonJS with declarations\n```\n\n## Development\n\n```bash\npnpm --filter @composy/3d-viewer-vue typecheck\npnpm --filter @composy/3d-viewer-vue build\n```\n\n## Dependencies\n\n- `@composy/3d-viewer-core`\n- `three`\n- `vue` 3.5+\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-dcf952f55b640b0c4d521b4077d497f6"}