{"_id":"@antdv-next/happy-work-theme","_rev":"6-7a1b87e41faf8459939b5a332fe324f8","name":"@antdv-next/happy-work-theme","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0-rc.1":{"name":"@antdv-next/happy-work-theme","version":"1.0.0-rc.1","_id":"@antdv-next/happy-work-theme@1.0.0-rc.1","maintainers":[{"name":"aibayanyu","email":"aibayanyu@qq.com"},{"name":"cc-heart","email":"ccheartszzz@gmail.com"},{"name":"selicens","email":"selicens@foxmail.com"}],"homepage":"https://github.com/antdv-next/happy-work-theme#readme","bugs":{"url":"https://github.com/antdv-next/happy-work-theme/issues"},"dist":{"shasum":"e3ae588a60bc4cbe45daab0b832645b28dae6301","tarball":"https://registry.npmjs.org/@antdv-next/happy-work-theme/-/happy-work-theme-1.0.0-rc.1.tgz","fileCount":5,"integrity":"sha512-11HwlQU5+tWSt4w7QmfTsfmx0sby6GRAyDmgaTQjIDaIaKk33rEy93Y1SiGaaDm9XhbuYuwqFydHd7P7p6f1yA==","signatures":[{"sig":"MEQCIFlzr215iDLKGf92wM7/b0aXacA5G1FEmnstQn7gfYZRAiAmPQY27t2FkoLoQvY5vRRdpw5CaIWoERnSCTpxIcYcPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16856},"type":"module","_from":"file:antdv-next-happy-work-theme-1.0.0-rc.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"oxlint .","build":"tsdown","format":"oxfmt .","lint:fix":"oxlint . --fix"},"_npmUser":{"name":"aibayanyu","email":"aibayanyu@qq.com"},"_resolved":"/private/var/folders/8z/blql4fr95gz3q_79t213_ljm0000gn/T/70e8578649d8961cb37280d2bd24ab76/antdv-next-happy-work-theme-1.0.0-rc.1.tgz","_integrity":"sha512-11HwlQU5+tWSt4w7QmfTsfmx0sby6GRAyDmgaTQjIDaIaKk33rEy93Y1SiGaaDm9XhbuYuwqFydHd7P7p6f1yA==","repository":{"url":"git+https://github.com/antdv-next/happy-work-theme.git","type":"git"},"_npmVersion":"10.9.3","description":"Happy Work theme for antdv-next with joyful dot animations","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@ant-design/fast-color":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.27.0","oxlint":"^1.42.0","tsdown":"^0.20.1","vue-tsc":"^3.2.2","typescript":"^5.4.5","unplugin-vue":"^7.1.1","@vue/tsconfig":"^0.8.1"},"peerDependencies":{"vue":"^3.5.0","antdv-next":"1.0.0-rc.8"},"_npmOperationalInternal":{"tmp":"tmp/happy-work-theme_1.0.0-rc.1_1769986150228_0.8278378434021285","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@antdv-next/happy-work-theme","version":"1.0.0","_id":"@antdv-next/happy-work-theme@1.0.0","maintainers":[{"name":"aibayanyu","email":"aibayanyu@qq.com"},{"name":"ffgenius","email":"fuwb0407@gmail.com"},{"name":"cc-heart","email":"ccheartszzz@gmail.com"},{"name":"selicens","email":"selicens@foxmail.com"}],"homepage":"https://github.com/antdv-next/happy-work-theme#readme","bugs":{"url":"https://github.com/antdv-next/happy-work-theme/issues"},"dist":{"shasum":"08143663ac9b369d96bca2809c306d3c09925df9","tarball":"https://registry.npmjs.org/@antdv-next/happy-work-theme/-/happy-work-theme-1.0.0.tgz","fileCount":5,"integrity":"sha512-INjE69eKPWfmwi0SySkRA7hzp0JgmkID5pqTL8FIU9O2k1ynJAYj7BS+4fFE9rRQdFN2g7dyQsUQXfIuZZc6eg==","signatures":[{"sig":"MEUCIQCrn81/Zs6paJsh/8hbBLex0MFbAJEqpkzSrIOOYHE9CwIgdaUIVZ0td76Tofl5QBRtk4Og5VHlR58pXIX1lap+Oqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16879},"type":"module","_from":"file:antdv-next-happy-work-theme-1.0.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"oxlint .","build":"tsdown","format":"oxfmt .","lint:fix":"oxlint . --fix","prepublish":"pnpm build"},"_npmUser":{"name":"aibayanyu","email":"aibayanyu@qq.com"},"_resolved":"/private/var/folders/gv/68jyrcks6l1dr6476z9nw_800000gn/T/88c2c6c3e440bd07118ad5327695195d/antdv-next-happy-work-theme-1.0.0.tgz","_integrity":"sha512-INjE69eKPWfmwi0SySkRA7hzp0JgmkID5pqTL8FIU9O2k1ynJAYj7BS+4fFE9rRQdFN2g7dyQsUQXfIuZZc6eg==","repository":{"url":"git+https://github.com/antdv-next/happy-work-theme.git","type":"git"},"_npmVersion":"10.9.3","description":"Happy Work theme for antdv-next with joyful dot animations","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@ant-design/fast-color":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.27.0","oxlint":"^1.42.0","tsdown":"^0.20.1","vue-tsc":"^3.2.2","typescript":"^5.4.5","unplugin-vue":"^7.1.1","@vue/tsconfig":"^0.8.1"},"peerDependencies":{"vue":"^3.5.0","antdv-next":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-work-theme_1.0.0_1770078662076_0.23128039661503608","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@antdv-next/happy-work-theme","version":"1.0.1","_id":"@antdv-next/happy-work-theme@1.0.1","maintainers":[{"name":"aibayanyu","email":"aibayanyu@qq.com"},{"name":"ffgenius","email":"fuwb0407@gmail.com"},{"name":"cc-heart","email":"ccheartszzz@gmail.com"},{"name":"selicens","email":"selicens@foxmail.com"},{"name":"shiqkuangsan","email":"shiqkuangsan@gmail.com"}],"homepage":"https://github.com/antdv-next/happy-work-theme#readme","bugs":{"url":"https://github.com/antdv-next/happy-work-theme/issues"},"dist":{"shasum":"d01a8b921564cf25c28a7dc4c475bc0810ad624b","tarball":"https://registry.npmjs.org/@antdv-next/happy-work-theme/-/happy-work-theme-1.0.1.tgz","fileCount":5,"integrity":"sha512-2/drzYb6CXriiK6AI/VLYTHYt9KAC5nW6bDAr6/8BQVFMJciFg76Yk3Ob73/R/sZI03OPefZDqPK0iUui3VK0A==","signatures":[{"sig":"MEYCIQC3HVIy4z2HrRCtvh2OeUAUbrOeIw9JpAFV9AHDAGKlFwIhAP9mhzTD/ChCQ6EjT2lSet/TkhUlbjQ4hHngzlELXMTS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17144},"type":"module","_from":"file:antdv-next-happy-work-theme-1.0.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"scripts":{"dev":"tsdown --watch","lint":"oxlint .","test":"vitest run","build":"tsdown","format":"oxfmt .","lint:fix":"oxlint . --fix","playground":"vite playground","prepublish":"pnpm build"},"_npmUser":{"name":"ffgenius","email":"fuwb0407@gmail.com"},"_resolved":"C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\d40748f18bb5e2e43b5f364ef20ecaef\\antdv-next-happy-work-theme-1.0.1.tgz","_integrity":"sha512-2/drzYb6CXriiK6AI/VLYTHYt9KAC5nW6bDAr6/8BQVFMJciFg76Yk3Ob73/R/sZI03OPefZDqPK0iUui3VK0A==","repository":{"url":"git+https://github.com/antdv-next/happy-work-theme.git","type":"git"},"_npmVersion":"10.8.2","description":"Happy Work theme for antdv-next with joyful dot animations","directories":{},"_nodeVersion":"20.19.3","dependencies":{"@antdv-next/cssinjs":"^1.0.6","@ant-design/fast-color":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.4","jsdom":"^29.1.1","oxfmt":"^0.58.0","oxlint":"^1.42.0","tsdown":"^0.22.5","vitest":"^4.1.10","vue-tsc":"^3.2.2","typescript":"^6.0.3","unplugin-vue":"^7.1.1","@vue/tsconfig":"^0.9.1","@vue/test-utils":"^2.4.11","@vitejs/plugin-vue":"^6.0.7"},"peerDependencies":{"vue":"^3.5.0","antdv-next":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/happy-work-theme_1.0.1_1783926492376_0.6119399859623436","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-02-01T22:49:10.114Z","modified":"2026-08-18T03:15:04.977Z","1.0.0-rc.1":"2026-02-01T22:49:10.372Z","1.0.0":"2026-02-03T00:31:02.278Z","1.0.1":"2026-07-13T07:08:12.506Z"},"bugs":{"url":"https://github.com/antdv-next/happy-work-theme/issues"},"homepage":"https://github.com/antdv-next/happy-work-theme#readme","repository":{"url":"git+https://github.com/antdv-next/happy-work-theme.git","type":"git"},"description":"Happy Work theme for antdv-next with joyful dot animations","maintainers":[{"email":"aibayanyu@qq.com","name":"aibayanyu"},{"email":"fuwb0407@gmail.com","name":"ffgenius"},{"email":"ccheartszzz@gmail.com","name":"cc-heart"},{"email":"selicens@foxmail.com","name":"selicens"},{"email":"shiqkuangsan@gmail.com","name":"shiqkuangsan"},{"email":"olddrivero.king@qq.com","name":"lonewolfyx"}],"readme":"# @antdv-next/happy-work-theme\r\n\r\nHappy Work theme for antdv-next with joyful dot animations.\r\n\r\n## Features\r\n\r\n- 🎉 Joyful dot animations on component interactions\r\n- 🎨 Customizable colors based on theme\r\n- ⚡ Performance optimized with automatic cleanup\r\n- 🎯 Works with Button, Switch, Radio, Checkbox and more\r\n\r\n## Installation\r\n\r\n```bash\r\npnpm add @antdv-next/happy-work-theme\r\n```\r\n\r\n## Usage\r\n\r\n### Basic Usage with HappyProvider\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ConfigProvider } from \"antdv-next\";\r\nimport { HappyProvider } from \"@antdv-next/happy-work-theme\";\r\nimport { ref } from \"vue\";\r\n\r\nconst happyMode = ref(false);\r\n</script>\r\n\r\n<template>\r\n  <HappyProvider :enabled=\"happyMode\" v-slot=\"{ wave }\">\r\n    <ConfigProvider :wave=\"wave\">\r\n      <YourApp />\r\n    </ConfigProvider>\r\n  </HappyProvider>\r\n</template>\r\n```\r\n\r\n> **Note**: `HappyProvider` automatically handles the wave configuration. When `enabled` is `false`, it passes `undefined` to preserve the default wave effect.\r\n\r\n### Advanced Usage with DotEffect\r\n\r\nIf you need more control, you can use the `DotEffect` component directly:\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { ConfigProvider } from \"antdv-next\";\r\nimport { DotEffect } from \"@antdv-next/happy-work-theme\";\r\nimport { ref, createApp, h } from \"vue\";\r\n\r\nconst happyMode = ref(false);\r\n\r\nfunction showEffect(target, info) {\r\n  if (!happyMode.value) return;\r\n\r\n  const { token, hashId } = info;\r\n\r\n  const holder = document.createElement(\"div\");\r\n  holder.style.position = \"absolute\";\r\n  holder.style.left = \"0px\";\r\n  holder.style.top = \"0px\";\r\n  document.body.appendChild(holder);\r\n\r\n  const app = createApp({\r\n    render() {\r\n      return h(DotEffect, {\r\n        target,\r\n        token,\r\n        hashId,\r\n        onFinish: () => {\r\n          app.unmount();\r\n          holder.remove();\r\n        },\r\n      });\r\n    },\r\n  });\r\n\r\n  app.mount(holder);\r\n}\r\n</script>\r\n\r\n<template>\r\n  <ConfigProvider :wave=\"{ showEffect }\">\r\n    <YourApp />\r\n  </ConfigProvider>\r\n</template>\r\n```\r\n\r\n## API\r\n\r\n### HappyProvider\r\n\r\nA wrapper component that simplifies happy mode integration.\r\n\r\nProps:\r\n\r\n- `enabled: boolean` - Enable/disable happy mode (default: `false`)\r\n\r\nSlot Props:\r\n\r\n- `wave: { showEffect: Function } | undefined` - Wave configuration object to pass directly to ConfigProvider's `:wave` prop. Returns `undefined` when disabled to preserve default wave effect.\r\n\r\nExample:\r\n\r\n```vue\r\n<HappyProvider :enabled=\"happyMode\" v-slot=\"{ wave }\">\r\n  <ConfigProvider :wave=\"wave\">\r\n    <YourApp />\r\n  </ConfigProvider>\r\n</HappyProvider>\r\n```\r\n\r\n### useHappyMode\r\n\r\nA composable to access happy mode state from child components.\r\n\r\nReturns:\r\n\r\n- `() => boolean` - A function that returns the current happy mode state\r\n\r\nExample:\r\n\r\n```vue\r\n<script setup lang=\"ts\">\r\nimport { useHappyMode } from \"@antdv-next/happy-work-theme\";\r\n\r\nconst getHappyMode = useHappyMode();\r\nconst isHappy = getHappyMode(); // true or false\r\n</script>\r\n```\r\n\r\n### DotEffect\r\n\r\nThe core animation component (usually used internally by HappyProvider).\r\n\r\nProps:\r\n\r\n- `target: HTMLElement` - The target element that was clicked\r\n- `token: GlobalToken` - Ant Design theme token\r\n- `hashId: string` - Hash ID for styling\r\n- `onFinish: () => void` - Callback when animation completes\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}