{"_id":"@composy/approval-vue","name":"@composy/approval-vue","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@composy/approval-vue","version":"0.0.1","description":"Vue 3 wrapper components for @composy/approval-core","keywords":["approval","vue","vue3","component"],"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"},"./components":{"types":"./es/components/index.d.ts","import":"./es/components/index.js","require":"./lib/components/index.cjs","default":"./es/components/index.js"},"./components/*":{"types":"./es/components/*.d.ts","import":"./es/components/*.js","require":"./lib/components/*.cjs","default":"./es/components/*.js"},"./composables":{"types":"./es/composables/index.d.ts","import":"./es/composables/index.js","require":"./lib/composables/index.cjs","default":"./es/composables/index.js"},"./composables/*":{"types":"./es/composables/*.d.ts","import":"./es/composables/*.js","require":"./lib/composables/*.cjs","default":"./es/composables/*.js"},"./plugins":{"types":"./es/plugins/index.d.ts","import":"./es/plugins/index.js","require":"./lib/plugins/index.cjs","default":"./es/plugins/index.js"},"./plugins/*":{"types":"./es/plugins/*.d.ts","import":"./es/plugins/*.js","require":"./lib/plugins/*.cjs","default":"./es/plugins/*.js"},"./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 && node --experimental-strip-types ../../../../scripts/index.ts workspace:approval-vue-sync-output","dev":"ldesign-builder build --watch","lint":"eslint . --cache","lint:check":"eslint . --cache --max-warnings 0","lint:fix":"eslint . --cache --fix","type-check":"tsc -p tsconfig.typecheck.json --noEmit","test":"ltesting run:unit","test:coverage":"ltesting run:unit --coverage","test:watch":"ltesting run:unit --watch","test:run":"ltesting run:unit","test:changed":"ltesting run:unit --changed","test:failed":"ltesting run:unit --failed","test:ui":"ltesting dashboard"},"dependencies":{"@composy/approval-core":"^0.0.1","vue-demi":"^0.14.10"},"peerDependencies":{"@composy/color-core":"^0.0.1","@composy/size-core":"^0.0.1","vue":"^2.7.0 || ^3.5.32"},"peerDependenciesMeta":{"@composy/color-core":{"optional":true},"@composy/size-core":{"optional":true}},"devDependencies":{"@antfu/eslint-config":"9.1.0","@composy/builder":"^0.0.1","@composy/testing":"^0.0.1","@vue/test-utils":"^2.4.11","eslint":"10.7.0","fast-check":"^4.9.0","jsdom":"29.1.1","typescript":"5.9.3","vite":"^8.1.4","vue":"3.5.39","vue-tsc":"^3.3.7"},"publishConfig":{"registry":"http://npm.longrise.cn:6286/"},"typings":"./es/index.d.ts","browser":"./dist/index.js","_id":"@composy/approval-vue@0.0.1","_nodeVersion":"23.11.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-biDgCTgUmvwTN1fhtkE4V75xLXCoZGh4+ykAUNhaua38ZePb0xbTA93ts74ie14F+2XSPMR0XIkPH0fDh/JD8Q==","shasum":"dba141b79688980651d236f0e0710784eeea2585","tarball":"https://registry.npmjs.org/@composy/approval-vue/-/approval-vue-0.0.1.tgz","fileCount":318,"unpackedSize":1278777,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEhdoP04loolgHpGI0+a/qGe8pK4g0yLzjp3jBUD/cuRAiB8VPp0SCT1S1rAoZJFjJJUzESABNqmLFvBhXeFRdqlzw=="}]},"_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/approval-vue_0.0.1_1786949537822_0.3174643524933918"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T06:52:17.666Z","0.0.1":"2026-08-17T06:52:17.961Z","modified":"2026-08-17T06:52:18.246Z"},"maintainers":[{"name":"swimly","email":"979741120@qq.com"}],"description":"Vue 3 wrapper components for @composy/approval-core","keywords":["approval","vue","vue3","component"],"author":{"name":"LDesign Team"},"license":"MIT","readme":"# @composy/approval-vue\n\nVue adapter for `@composy/approval-core`.\n\n## Features\n\n- Vue components for every core approval widget.\n- `ApprovalPanel` exposes submit, urge, transfer, delegate, extra-sign, countersign vote, view-detail, and cancel events.\n- `useApproval` composable for imperative panel mounting.\n- Plugin registration via `ApprovalPlugin` or `createApprovalPlugin`.\n- Build outputs include `es`, `esm`, `lib`, and `dist` with `dist/index.min.js`.\n\n## Install\n\n```bash\npnpm add @composy/approval-core @composy/approval-vue @composy/color-core @composy/size-core vue\n```\n\n## Usage\n\n```vue\n<template>\n  <ApprovalPanel\n    :actions=\"['approve', 'reject', 'transfer', 'extra-sign-after', 'urge']\"\n    :current-node=\"currentNode\"\n    :candidates=\"candidates\"\n    :records=\"records\"\n    :nodes=\"nodes\"\n    @submit=\"handleSubmit\"\n    @transfer=\"handleTransfer\"\n    @extra-sign=\"handleExtraSign\"\n    @urge=\"handleUrge\"\n  />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { ApprovalPanel } from '@composy/approval-vue';\nimport type { ApprovalAction, ExtraSignType, PersonInfo } from '@composy/approval-vue';\n\nconst currentNode = ref({\n  id: 'finance',\n  name: 'Finance review',\n  status: 'processing' as const,\n});\n\nconst candidates = ref<PersonInfo[]>([\n  { id: 'u-1', name: 'Ada', department: 'Finance' },\n]);\nconst records = ref([]);\nconst nodes = ref([]);\n\nfunction handleSubmit(action: ApprovalAction, opinion: string) {\n  console.log(action, opinion);\n}\n\nfunction handleTransfer(person: PersonInfo, reason: string) {\n  console.log(person, reason);\n}\n\nfunction handleExtraSign(type: ExtraSignType, persons: PersonInfo[], reason: string) {\n  console.log(type, persons, reason);\n}\n\nfunction handleUrge() {\n  console.log('urge');\n}\n</script>\n```\n\n## Plugin\n\n```ts\nimport { createApp } from 'vue';\nimport { ApprovalPlugin } from '@composy/approval-vue';\n\ncreateApp(App).use(ApprovalPlugin).mount('#app');\n```\n\n## Scripts\n\n```bash\npnpm run type-check\npnpm run build\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-14b3a2aa62fffbf8cb18f6cac3e0e44e"}