ads-fe 0.0.1

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.
Files changed (608) hide show
  1. package/README.md +99 -0
  2. package/dist/cli.js +545 -0
  3. package/dist/meta.js +93 -0
  4. package/package.json +43 -0
  5. package/skill.md +66 -0
  6. package/skills/core/SKILL.md +66 -0
  7. package/skills/core/references/app-development.md +45 -0
  8. package/skills/core/references/git.md +66 -0
  9. package/skills/core/references/monorepo.md +124 -0
  10. package/skills/element-plus-vue3/LICENSE.md +405 -0
  11. package/skills/element-plus-vue3/LICENSE.txt +202 -0
  12. package/skills/element-plus-vue3/SKILL.md +218 -0
  13. package/skills/element-plus-vue3/SYNC.md +5 -0
  14. package/skills/element-plus-vue3/api/component-api.md +94 -0
  15. package/skills/element-plus-vue3/api/global-config.md +89 -0
  16. package/skills/element-plus-vue3/api/props-and-events.md +101 -0
  17. package/skills/element-plus-vue3/examples/components/button.md +99 -0
  18. package/skills/element-plus-vue3/examples/components/date-picker.md +115 -0
  19. package/skills/element-plus-vue3/examples/components/dialog.md +106 -0
  20. package/skills/element-plus-vue3/examples/components/form.md +127 -0
  21. package/skills/element-plus-vue3/examples/components/input.md +123 -0
  22. package/skills/element-plus-vue3/examples/components/message.md +93 -0
  23. package/skills/element-plus-vue3/examples/components/overview.md +59 -0
  24. package/skills/element-plus-vue3/examples/components/select.md +133 -0
  25. package/skills/element-plus-vue3/examples/components/table.md +166 -0
  26. package/skills/element-plus-vue3/examples/guide/design.md +68 -0
  27. package/skills/element-plus-vue3/examples/guide/global-config.md +95 -0
  28. package/skills/element-plus-vue3/examples/guide/i18n.md +95 -0
  29. package/skills/element-plus-vue3/examples/guide/installation.md +110 -0
  30. package/skills/element-plus-vue3/examples/guide/quick-start.md +103 -0
  31. package/skills/element-plus-vue3/examples/guide/theme.md +78 -0
  32. package/skills/element-plus-vue3/templates/component-usage.md +92 -0
  33. package/skills/element-plus-vue3/templates/installation.md +82 -0
  34. package/skills/element-plus-vue3/templates/project-setup.md +83 -0
  35. package/skills/node/LICENSE.md +21 -0
  36. package/skills/node/SKILL.md +94 -0
  37. package/skills/node/SYNC.md +5 -0
  38. package/skills/node/rules/assets/graceful-server.test.ts +88 -0
  39. package/skills/node/rules/assets/graceful-server.ts +80 -0
  40. package/skills/node/rules/async-patterns.md +136 -0
  41. package/skills/node/rules/caching.md +198 -0
  42. package/skills/node/rules/environment.md +253 -0
  43. package/skills/node/rules/error-handling.md +164 -0
  44. package/skills/node/rules/flaky-tests.md +439 -0
  45. package/skills/node/rules/graceful-shutdown.md +204 -0
  46. package/skills/node/rules/logging.md +205 -0
  47. package/skills/node/rules/modules.md +105 -0
  48. package/skills/node/rules/node-modules-exploration.md +172 -0
  49. package/skills/node/rules/performance.md +130 -0
  50. package/skills/node/rules/profiling.md +183 -0
  51. package/skills/node/rules/streams.md +213 -0
  52. package/skills/node/rules/stuck-processes-and-tests.md +124 -0
  53. package/skills/node/rules/testing.md +218 -0
  54. package/skills/node/rules/typescript.md +262 -0
  55. package/skills/node/tile.json +11 -0
  56. package/skills/nuxt/GENERATION.md +5 -0
  57. package/skills/nuxt/LICENSE.md +21 -0
  58. package/skills/nuxt/SKILL.md +55 -0
  59. package/skills/nuxt/SYNC.md +5 -0
  60. package/skills/nuxt/references/advanced-hooks.md +289 -0
  61. package/skills/nuxt/references/advanced-layers.md +299 -0
  62. package/skills/nuxt/references/advanced-module-authoring.md +554 -0
  63. package/skills/nuxt/references/best-practices-data-fetching.md +357 -0
  64. package/skills/nuxt/references/best-practices-ssr.md +355 -0
  65. package/skills/nuxt/references/core-cli.md +263 -0
  66. package/skills/nuxt/references/core-config.md +162 -0
  67. package/skills/nuxt/references/core-data-fetching.md +236 -0
  68. package/skills/nuxt/references/core-deployment.md +224 -0
  69. package/skills/nuxt/references/core-directory-structure.md +269 -0
  70. package/skills/nuxt/references/core-modules.md +292 -0
  71. package/skills/nuxt/references/core-routing.md +226 -0
  72. package/skills/nuxt/references/features-components-autoimport.md +328 -0
  73. package/skills/nuxt/references/features-components.md +264 -0
  74. package/skills/nuxt/references/features-composables.md +276 -0
  75. package/skills/nuxt/references/features-server.md +265 -0
  76. package/skills/nuxt/references/features-state.md +194 -0
  77. package/skills/nuxt/references/rendering-modes.md +237 -0
  78. package/skills/pinia/GENERATION.md +5 -0
  79. package/skills/pinia/LICENSE.md +21 -0
  80. package/skills/pinia/SKILL.md +59 -0
  81. package/skills/pinia/SYNC.md +5 -0
  82. package/skills/pinia/references/advanced-hmr.md +61 -0
  83. package/skills/pinia/references/advanced-nuxt.md +119 -0
  84. package/skills/pinia/references/advanced-ssr.md +121 -0
  85. package/skills/pinia/references/best-practices-outside-component.md +115 -0
  86. package/skills/pinia/references/best-practices-testing.md +212 -0
  87. package/skills/pinia/references/core-stores.md +389 -0
  88. package/skills/pinia/references/features-composables.md +114 -0
  89. package/skills/pinia/references/features-composing-stores.md +134 -0
  90. package/skills/pinia/references/features-plugins.md +203 -0
  91. package/skills/pnpm/GENERATION.md +5 -0
  92. package/skills/pnpm/LICENSE.md +21 -0
  93. package/skills/pnpm/SKILL.md +42 -0
  94. package/skills/pnpm/SYNC.md +5 -0
  95. package/skills/pnpm/references/best-practices-ci.md +285 -0
  96. package/skills/pnpm/references/best-practices-migration.md +291 -0
  97. package/skills/pnpm/references/best-practices-performance.md +284 -0
  98. package/skills/pnpm/references/core-cli.md +229 -0
  99. package/skills/pnpm/references/core-config.md +188 -0
  100. package/skills/pnpm/references/core-store.md +179 -0
  101. package/skills/pnpm/references/core-workspaces.md +205 -0
  102. package/skills/pnpm/references/features-aliases.md +168 -0
  103. package/skills/pnpm/references/features-catalogs.md +159 -0
  104. package/skills/pnpm/references/features-hooks.md +233 -0
  105. package/skills/pnpm/references/features-overrides.md +184 -0
  106. package/skills/pnpm/references/features-patches.md +201 -0
  107. package/skills/pnpm/references/features-peer-deps.md +250 -0
  108. package/skills/slidev/LICENSE.md +21 -0
  109. package/skills/slidev/README.md +61 -0
  110. package/skills/slidev/SKILL.md +189 -0
  111. package/skills/slidev/SYNC.md +5 -0
  112. package/skills/slidev/references/animation-click-marker.md +37 -0
  113. package/skills/slidev/references/animation-drawing.md +68 -0
  114. package/skills/slidev/references/animation-rough-marker.md +53 -0
  115. package/skills/slidev/references/api-slide-hooks.md +37 -0
  116. package/skills/slidev/references/build-og-image.md +36 -0
  117. package/skills/slidev/references/build-pdf.md +40 -0
  118. package/skills/slidev/references/build-remote-assets.md +34 -0
  119. package/skills/slidev/references/build-seo-meta.md +43 -0
  120. package/skills/slidev/references/code-groups.md +64 -0
  121. package/skills/slidev/references/code-import-snippet.md +55 -0
  122. package/skills/slidev/references/code-line-highlighting.md +50 -0
  123. package/skills/slidev/references/code-line-numbers.md +46 -0
  124. package/skills/slidev/references/code-magic-move.md +57 -0
  125. package/skills/slidev/references/code-max-height.md +37 -0
  126. package/skills/slidev/references/code-twoslash.md +42 -0
  127. package/skills/slidev/references/core-animations.md +196 -0
  128. package/skills/slidev/references/core-cli.md +140 -0
  129. package/skills/slidev/references/core-components.md +197 -0
  130. package/skills/slidev/references/core-exporting.md +148 -0
  131. package/skills/slidev/references/core-frontmatter.md +195 -0
  132. package/skills/slidev/references/core-global-context.md +155 -0
  133. package/skills/slidev/references/core-headmatter.md +188 -0
  134. package/skills/slidev/references/core-hosting.md +152 -0
  135. package/skills/slidev/references/core-layouts.md +286 -0
  136. package/skills/slidev/references/core-syntax.md +155 -0
  137. package/skills/slidev/references/diagram-latex.md +55 -0
  138. package/skills/slidev/references/diagram-mermaid.md +44 -0
  139. package/skills/slidev/references/diagram-plantuml.md +45 -0
  140. package/skills/slidev/references/editor-monaco-run.md +44 -0
  141. package/skills/slidev/references/editor-monaco-write.md +24 -0
  142. package/skills/slidev/references/editor-monaco.md +50 -0
  143. package/skills/slidev/references/editor-prettier.md +40 -0
  144. package/skills/slidev/references/editor-side.md +23 -0
  145. package/skills/slidev/references/editor-vscode.md +55 -0
  146. package/skills/slidev/references/layout-canvas-size.md +25 -0
  147. package/skills/slidev/references/layout-draggable.md +57 -0
  148. package/skills/slidev/references/layout-global-layers.md +50 -0
  149. package/skills/slidev/references/layout-slots.md +75 -0
  150. package/skills/slidev/references/layout-transform.md +33 -0
  151. package/skills/slidev/references/layout-zoom.md +39 -0
  152. package/skills/slidev/references/presenter-notes-ruby.md +35 -0
  153. package/skills/slidev/references/presenter-recording.md +30 -0
  154. package/skills/slidev/references/presenter-remote.md +40 -0
  155. package/skills/slidev/references/presenter-timer.md +34 -0
  156. package/skills/slidev/references/style-direction.md +34 -0
  157. package/skills/slidev/references/style-icons.md +46 -0
  158. package/skills/slidev/references/style-scoped.md +50 -0
  159. package/skills/slidev/references/syntax-block-frontmatter.md +39 -0
  160. package/skills/slidev/references/syntax-comark.md +51 -0
  161. package/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
  162. package/skills/slidev/references/syntax-importing-slides.md +60 -0
  163. package/skills/slidev/references/tool-eject-theme.md +27 -0
  164. package/skills/tsdown/LICENSE.md +22 -0
  165. package/skills/tsdown/README.md +77 -0
  166. package/skills/tsdown/SKILL.md +416 -0
  167. package/skills/tsdown/SYNC.md +5 -0
  168. package/skills/tsdown/references/README.md +139 -0
  169. package/skills/tsdown/references/advanced-benchmark.md +8 -0
  170. package/skills/tsdown/references/advanced-ci.md +89 -0
  171. package/skills/tsdown/references/advanced-hooks.md +363 -0
  172. package/skills/tsdown/references/advanced-plugins.md +381 -0
  173. package/skills/tsdown/references/advanced-programmatic.md +378 -0
  174. package/skills/tsdown/references/advanced-rolldown-options.md +117 -0
  175. package/skills/tsdown/references/guide-getting-started.md +183 -0
  176. package/skills/tsdown/references/guide-introduction.md +42 -0
  177. package/skills/tsdown/references/guide-migrate-from-tsup.md +199 -0
  178. package/skills/tsdown/references/option-cjs-default.md +98 -0
  179. package/skills/tsdown/references/option-cleaning.md +275 -0
  180. package/skills/tsdown/references/option-config-file.md +291 -0
  181. package/skills/tsdown/references/option-css.md +301 -0
  182. package/skills/tsdown/references/option-dependencies.md +385 -0
  183. package/skills/tsdown/references/option-dts.md +251 -0
  184. package/skills/tsdown/references/option-entry.md +211 -0
  185. package/skills/tsdown/references/option-exe.md +120 -0
  186. package/skills/tsdown/references/option-lint.md +127 -0
  187. package/skills/tsdown/references/option-log-level.md +91 -0
  188. package/skills/tsdown/references/option-minification.md +177 -0
  189. package/skills/tsdown/references/option-output-directory.md +272 -0
  190. package/skills/tsdown/references/option-output-format.md +183 -0
  191. package/skills/tsdown/references/option-package-exports.md +320 -0
  192. package/skills/tsdown/references/option-platform.md +256 -0
  193. package/skills/tsdown/references/option-root.md +88 -0
  194. package/skills/tsdown/references/option-shims.md +299 -0
  195. package/skills/tsdown/references/option-sourcemap.md +301 -0
  196. package/skills/tsdown/references/option-target.md +222 -0
  197. package/skills/tsdown/references/option-tree-shaking.md +335 -0
  198. package/skills/tsdown/references/option-unbundle.md +310 -0
  199. package/skills/tsdown/references/option-watch-mode.md +261 -0
  200. package/skills/tsdown/references/recipe-react.md +338 -0
  201. package/skills/tsdown/references/recipe-solid.md +42 -0
  202. package/skills/tsdown/references/recipe-svelte.md +54 -0
  203. package/skills/tsdown/references/recipe-vue.md +387 -0
  204. package/skills/tsdown/references/recipe-wasm.md +125 -0
  205. package/skills/tsdown/references/reference-cli.md +472 -0
  206. package/skills/turborepo/LICENSE.md +7 -0
  207. package/skills/turborepo/SKILL.md +951 -0
  208. package/skills/turborepo/SYNC.md +5 -0
  209. package/skills/turborepo/command/turborepo.md +70 -0
  210. package/skills/turborepo/references/best-practices/RULE.md +241 -0
  211. package/skills/turborepo/references/best-practices/dependencies.md +246 -0
  212. package/skills/turborepo/references/best-practices/packages.md +335 -0
  213. package/skills/turborepo/references/best-practices/structure.md +297 -0
  214. package/skills/turborepo/references/boundaries/RULE.md +126 -0
  215. package/skills/turborepo/references/caching/RULE.md +153 -0
  216. package/skills/turborepo/references/caching/gotchas.md +190 -0
  217. package/skills/turborepo/references/caching/remote-cache.md +127 -0
  218. package/skills/turborepo/references/ci/RULE.md +79 -0
  219. package/skills/turborepo/references/ci/github-actions.md +162 -0
  220. package/skills/turborepo/references/ci/patterns.md +145 -0
  221. package/skills/turborepo/references/ci/vercel.md +103 -0
  222. package/skills/turborepo/references/cli/RULE.md +100 -0
  223. package/skills/turborepo/references/cli/commands.md +297 -0
  224. package/skills/turborepo/references/configuration/RULE.md +235 -0
  225. package/skills/turborepo/references/configuration/global-options.md +239 -0
  226. package/skills/turborepo/references/configuration/gotchas.md +368 -0
  227. package/skills/turborepo/references/configuration/tasks.md +325 -0
  228. package/skills/turborepo/references/environment/RULE.md +123 -0
  229. package/skills/turborepo/references/environment/gotchas.md +175 -0
  230. package/skills/turborepo/references/environment/modes.md +101 -0
  231. package/skills/turborepo/references/filtering/RULE.md +148 -0
  232. package/skills/turborepo/references/filtering/patterns.md +152 -0
  233. package/skills/turborepo/references/watch/RULE.md +99 -0
  234. package/skills/vite/GENERATION.md +5 -0
  235. package/skills/vite/LICENSE.md +21 -0
  236. package/skills/vite/SKILL.md +72 -0
  237. package/skills/vite/SYNC.md +5 -0
  238. package/skills/vite/references/build-and-ssr.md +164 -0
  239. package/skills/vite/references/core-config.md +162 -0
  240. package/skills/vite/references/core-features.md +205 -0
  241. package/skills/vite/references/core-plugin-api.md +235 -0
  242. package/skills/vite/references/environment-api.md +108 -0
  243. package/skills/vite/references/rolldown-migration.md +157 -0
  244. package/skills/vitepress/GENERATION.md +5 -0
  245. package/skills/vitepress/LICENSE.md +21 -0
  246. package/skills/vitepress/SKILL.md +65 -0
  247. package/skills/vitepress/SYNC.md +5 -0
  248. package/skills/vitepress/references/advanced-i18n.md +299 -0
  249. package/skills/vitepress/references/advanced-ssr.md +228 -0
  250. package/skills/vitepress/references/core-cli.md +119 -0
  251. package/skills/vitepress/references/core-config.md +189 -0
  252. package/skills/vitepress/references/core-markdown.md +277 -0
  253. package/skills/vitepress/references/core-routing.md +169 -0
  254. package/skills/vitepress/references/features-code-blocks.md +243 -0
  255. package/skills/vitepress/references/features-data-loading.md +220 -0
  256. package/skills/vitepress/references/features-dynamic-routes.md +235 -0
  257. package/skills/vitepress/references/features-vue.md +224 -0
  258. package/skills/vitepress/references/recipes-deploy.md +240 -0
  259. package/skills/vitepress/references/theme-config.md +315 -0
  260. package/skills/vitepress/references/theme-custom.md +269 -0
  261. package/skills/vitepress/references/theme-customization.md +290 -0
  262. package/skills/vitest/GENERATION.md +5 -0
  263. package/skills/vitest/LICENSE.md +21 -0
  264. package/skills/vitest/SKILL.md +52 -0
  265. package/skills/vitest/SYNC.md +5 -0
  266. package/skills/vitest/references/advanced-environments.md +264 -0
  267. package/skills/vitest/references/advanced-projects.md +300 -0
  268. package/skills/vitest/references/advanced-type-testing.md +237 -0
  269. package/skills/vitest/references/advanced-vi.md +249 -0
  270. package/skills/vitest/references/core-cli.md +166 -0
  271. package/skills/vitest/references/core-config.md +174 -0
  272. package/skills/vitest/references/core-describe.md +193 -0
  273. package/skills/vitest/references/core-expect.md +219 -0
  274. package/skills/vitest/references/core-hooks.md +244 -0
  275. package/skills/vitest/references/core-test-api.md +233 -0
  276. package/skills/vitest/references/features-concurrency.md +250 -0
  277. package/skills/vitest/references/features-context.md +238 -0
  278. package/skills/vitest/references/features-coverage.md +207 -0
  279. package/skills/vitest/references/features-filtering.md +211 -0
  280. package/skills/vitest/references/features-mocking.md +265 -0
  281. package/skills/vitest/references/features-snapshots.md +207 -0
  282. package/skills/vue/GENERATION.md +5 -0
  283. package/skills/vue/LICENSE.md +21 -0
  284. package/skills/vue/SKILL.md +84 -0
  285. package/skills/vue/SYNC.md +5 -0
  286. package/skills/vue/references/advanced-patterns.md +314 -0
  287. package/skills/vue/references/core-new-apis.md +264 -0
  288. package/skills/vue/references/script-setup-macros.md +204 -0
  289. package/skills/vue-best-practices/LICENSE.md +21 -0
  290. package/skills/vue-best-practices/SKILL.md +154 -0
  291. package/skills/vue-best-practices/SYNC.md +5 -0
  292. package/skills/vue-best-practices/references/animation-class-based-technique.md +254 -0
  293. package/skills/vue-best-practices/references/animation-state-driven-technique.md +291 -0
  294. package/skills/vue-best-practices/references/component-async.md +97 -0
  295. package/skills/vue-best-practices/references/component-data-flow.md +307 -0
  296. package/skills/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
  297. package/skills/vue-best-practices/references/component-keep-alive.md +137 -0
  298. package/skills/vue-best-practices/references/component-slots.md +216 -0
  299. package/skills/vue-best-practices/references/component-suspense.md +228 -0
  300. package/skills/vue-best-practices/references/component-teleport.md +108 -0
  301. package/skills/vue-best-practices/references/component-transition-group.md +128 -0
  302. package/skills/vue-best-practices/references/component-transition.md +125 -0
  303. package/skills/vue-best-practices/references/composables.md +290 -0
  304. package/skills/vue-best-practices/references/directives.md +162 -0
  305. package/skills/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
  306. package/skills/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
  307. package/skills/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
  308. package/skills/vue-best-practices/references/plugins.md +166 -0
  309. package/skills/vue-best-practices/references/reactivity.md +344 -0
  310. package/skills/vue-best-practices/references/render-functions.md +201 -0
  311. package/skills/vue-best-practices/references/sfc.md +310 -0
  312. package/skills/vue-best-practices/references/state-management.md +135 -0
  313. package/skills/vue-best-practices/references/updated-hook-performance.md +187 -0
  314. package/skills/vue-router-best-practices/LICENSE.md +21 -0
  315. package/skills/vue-router-best-practices/SKILL.md +23 -0
  316. package/skills/vue-router-best-practices/SYNC.md +5 -0
  317. package/skills/vue-router-best-practices/reference/router-beforeenter-no-param-trigger.md +167 -0
  318. package/skills/vue-router-best-practices/reference/router-beforerouteenter-no-this.md +176 -0
  319. package/skills/vue-router-best-practices/reference/router-guard-async-await-pattern.md +227 -0
  320. package/skills/vue-router-best-practices/reference/router-navigation-guard-infinite-loop.md +187 -0
  321. package/skills/vue-router-best-practices/reference/router-navigation-guard-next-deprecated.md +150 -0
  322. package/skills/vue-router-best-practices/reference/router-param-change-no-lifecycle.md +181 -0
  323. package/skills/vue-router-best-practices/reference/router-simple-routing-cleanup.md +209 -0
  324. package/skills/vue-router-best-practices/reference/router-use-vue-router-for-production.md +183 -0
  325. package/skills/vue-testing-best-practices/LICENSE.md +21 -0
  326. package/skills/vue-testing-best-practices/SKILL.md +29 -0
  327. package/skills/vue-testing-best-practices/SYNC.md +5 -0
  328. package/skills/vue-testing-best-practices/reference/async-component-testing.md +163 -0
  329. package/skills/vue-testing-best-practices/reference/teleport-testing-complexity.md +158 -0
  330. package/skills/vue-testing-best-practices/reference/testing-async-await-flushpromises.md +175 -0
  331. package/skills/vue-testing-best-practices/reference/testing-browser-vs-node-runners.md +208 -0
  332. package/skills/vue-testing-best-practices/reference/testing-component-blackbox-approach.md +144 -0
  333. package/skills/vue-testing-best-practices/reference/testing-composables-helper-wrapper.md +238 -0
  334. package/skills/vue-testing-best-practices/reference/testing-e2e-playwright-recommended.md +242 -0
  335. package/skills/vue-testing-best-practices/reference/testing-no-snapshot-only.md +197 -0
  336. package/skills/vue-testing-best-practices/reference/testing-pinia-store-setup.md +228 -0
  337. package/skills/vue-testing-best-practices/reference/testing-suspense-async-components.md +229 -0
  338. package/skills/vue-testing-best-practices/reference/testing-vitest-recommended-for-vue.md +204 -0
  339. package/skills/vueuse-functions/LICENSE.md +21 -0
  340. package/skills/vueuse-functions/SKILL.md +419 -0
  341. package/skills/vueuse-functions/SYNC.md +5 -0
  342. package/skills/vueuse-functions/references/computedAsync.md +195 -0
  343. package/skills/vueuse-functions/references/computedEager.md +62 -0
  344. package/skills/vueuse-functions/references/computedInject.md +137 -0
  345. package/skills/vueuse-functions/references/computedWithControl.md +98 -0
  346. package/skills/vueuse-functions/references/createEventHook.md +86 -0
  347. package/skills/vueuse-functions/references/createGenericProjection.md +25 -0
  348. package/skills/vueuse-functions/references/createGlobalState.md +95 -0
  349. package/skills/vueuse-functions/references/createInjectionState.md +226 -0
  350. package/skills/vueuse-functions/references/createProjection.md +31 -0
  351. package/skills/vueuse-functions/references/createRef.md +54 -0
  352. package/skills/vueuse-functions/references/createReusableTemplate.md +361 -0
  353. package/skills/vueuse-functions/references/createSharedComposable.md +42 -0
  354. package/skills/vueuse-functions/references/createTemplatePromise.md +306 -0
  355. package/skills/vueuse-functions/references/createUnrefFn.md +51 -0
  356. package/skills/vueuse-functions/references/extendRef.md +76 -0
  357. package/skills/vueuse-functions/references/from.md +80 -0
  358. package/skills/vueuse-functions/references/get.md +30 -0
  359. package/skills/vueuse-functions/references/injectLocal.md +35 -0
  360. package/skills/vueuse-functions/references/isDefined.md +31 -0
  361. package/skills/vueuse-functions/references/logicAnd.md +40 -0
  362. package/skills/vueuse-functions/references/logicNot.md +36 -0
  363. package/skills/vueuse-functions/references/logicOr.md +40 -0
  364. package/skills/vueuse-functions/references/makeDestructurable.md +41 -0
  365. package/skills/vueuse-functions/references/onClickOutside.md +228 -0
  366. package/skills/vueuse-functions/references/onElementRemoval.md +88 -0
  367. package/skills/vueuse-functions/references/onKeyStroke.md +212 -0
  368. package/skills/vueuse-functions/references/onLongPress.md +235 -0
  369. package/skills/vueuse-functions/references/onStartTyping.md +53 -0
  370. package/skills/vueuse-functions/references/provideLocal.md +37 -0
  371. package/skills/vueuse-functions/references/reactify.md +144 -0
  372. package/skills/vueuse-functions/references/reactifyObject.md +62 -0
  373. package/skills/vueuse-functions/references/reactiveComputed.md +34 -0
  374. package/skills/vueuse-functions/references/reactiveOmit.md +86 -0
  375. package/skills/vueuse-functions/references/reactivePick.md +106 -0
  376. package/skills/vueuse-functions/references/refAutoReset.md +46 -0
  377. package/skills/vueuse-functions/references/refDebounced.md +81 -0
  378. package/skills/vueuse-functions/references/refDefault.md +36 -0
  379. package/skills/vueuse-functions/references/refManualReset.md +48 -0
  380. package/skills/vueuse-functions/references/refThrottled.md +99 -0
  381. package/skills/vueuse-functions/references/refWithControl.md +146 -0
  382. package/skills/vueuse-functions/references/set.md +30 -0
  383. package/skills/vueuse-functions/references/syncRef.md +195 -0
  384. package/skills/vueuse-functions/references/syncRefs.md +128 -0
  385. package/skills/vueuse-functions/references/templateRef.md +86 -0
  386. package/skills/vueuse-functions/references/toObserver.md +38 -0
  387. package/skills/vueuse-functions/references/toReactive.md +41 -0
  388. package/skills/vueuse-functions/references/toRef.md +74 -0
  389. package/skills/vueuse-functions/references/toRefs.md +78 -0
  390. package/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
  391. package/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
  392. package/skills/vueuse-functions/references/tryOnMounted.md +34 -0
  393. package/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
  394. package/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
  395. package/skills/vueuse-functions/references/unrefElement.md +54 -0
  396. package/skills/vueuse-functions/references/until.md +161 -0
  397. package/skills/vueuse-functions/references/useAbs.md +31 -0
  398. package/skills/vueuse-functions/references/useActiveElement.md +86 -0
  399. package/skills/vueuse-functions/references/useAnimate.md +180 -0
  400. package/skills/vueuse-functions/references/useArrayDifference.md +84 -0
  401. package/skills/vueuse-functions/references/useArrayEvery.md +59 -0
  402. package/skills/vueuse-functions/references/useArrayFilter.md +63 -0
  403. package/skills/vueuse-functions/references/useArrayFind.md +50 -0
  404. package/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
  405. package/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
  406. package/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
  407. package/skills/vueuse-functions/references/useArrayJoin.md +74 -0
  408. package/skills/vueuse-functions/references/useArrayMap.md +59 -0
  409. package/skills/vueuse-functions/references/useArrayReduce.md +81 -0
  410. package/skills/vueuse-functions/references/useArraySome.md +59 -0
  411. package/skills/vueuse-functions/references/useArrayUnique.md +76 -0
  412. package/skills/vueuse-functions/references/useAsyncQueue.md +136 -0
  413. package/skills/vueuse-functions/references/useAsyncState.md +185 -0
  414. package/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
  415. package/skills/vueuse-functions/references/useAuth.md +123 -0
  416. package/skills/vueuse-functions/references/useAverage.md +36 -0
  417. package/skills/vueuse-functions/references/useAxios.md +325 -0
  418. package/skills/vueuse-functions/references/useBase64.md +136 -0
  419. package/skills/vueuse-functions/references/useBattery.md +80 -0
  420. package/skills/vueuse-functions/references/useBluetooth.md +174 -0
  421. package/skills/vueuse-functions/references/useBreakpoints.md +176 -0
  422. package/skills/vueuse-functions/references/useBroadcastChannel.md +73 -0
  423. package/skills/vueuse-functions/references/useBrowserLocation.md +56 -0
  424. package/skills/vueuse-functions/references/useCached.md +52 -0
  425. package/skills/vueuse-functions/references/useCeil.md +31 -0
  426. package/skills/vueuse-functions/references/useChangeCase.md +79 -0
  427. package/skills/vueuse-functions/references/useClamp.md +85 -0
  428. package/skills/vueuse-functions/references/useClipboard.md +122 -0
  429. package/skills/vueuse-functions/references/useClipboardItems.md +93 -0
  430. package/skills/vueuse-functions/references/useCloned.md +91 -0
  431. package/skills/vueuse-functions/references/useColorMode.md +172 -0
  432. package/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
  433. package/skills/vueuse-functions/references/useCookies.md +162 -0
  434. package/skills/vueuse-functions/references/useCountdown.md +105 -0
  435. package/skills/vueuse-functions/references/useCounter.md +86 -0
  436. package/skills/vueuse-functions/references/useCssSupports.md +33 -0
  437. package/skills/vueuse-functions/references/useCssVar.md +50 -0
  438. package/skills/vueuse-functions/references/useCurrentElement.md +61 -0
  439. package/skills/vueuse-functions/references/useCycleList.md +75 -0
  440. package/skills/vueuse-functions/references/useDark.md +142 -0
  441. package/skills/vueuse-functions/references/useDateFormat.md +145 -0
  442. package/skills/vueuse-functions/references/useDebounceFn.md +100 -0
  443. package/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
  444. package/skills/vueuse-functions/references/useDeviceMotion.md +80 -0
  445. package/skills/vueuse-functions/references/useDeviceOrientation.md +64 -0
  446. package/skills/vueuse-functions/references/useDevicePixelRatio.md +47 -0
  447. package/skills/vueuse-functions/references/useDevicesList.md +89 -0
  448. package/skills/vueuse-functions/references/useDisplayMedia.md +67 -0
  449. package/skills/vueuse-functions/references/useDocumentVisibility.md +44 -0
  450. package/skills/vueuse-functions/references/useDraggable.md +289 -0
  451. package/skills/vueuse-functions/references/useDrauu.md +65 -0
  452. package/skills/vueuse-functions/references/useDropZone.md +83 -0
  453. package/skills/vueuse-functions/references/useElementBounding.md +131 -0
  454. package/skills/vueuse-functions/references/useElementByPoint.md +46 -0
  455. package/skills/vueuse-functions/references/useElementHover.md +79 -0
  456. package/skills/vueuse-functions/references/useElementSize.md +79 -0
  457. package/skills/vueuse-functions/references/useElementVisibility.md +163 -0
  458. package/skills/vueuse-functions/references/useEventBus.md +101 -0
  459. package/skills/vueuse-functions/references/useEventListener.md +226 -0
  460. package/skills/vueuse-functions/references/useEventSource.md +204 -0
  461. package/skills/vueuse-functions/references/useExtractedObservable.md +198 -0
  462. package/skills/vueuse-functions/references/useEyeDropper.md +72 -0
  463. package/skills/vueuse-functions/references/useFavicon.md +69 -0
  464. package/skills/vueuse-functions/references/useFetch.md +546 -0
  465. package/skills/vueuse-functions/references/useFileDialog.md +91 -0
  466. package/skills/vueuse-functions/references/useFileSystemAccess.md +161 -0
  467. package/skills/vueuse-functions/references/useFirestore.md +129 -0
  468. package/skills/vueuse-functions/references/useFloor.md +31 -0
  469. package/skills/vueuse-functions/references/useFocus.md +99 -0
  470. package/skills/vueuse-functions/references/useFocusTrap.md +245 -0
  471. package/skills/vueuse-functions/references/useFocusWithin.md +57 -0
  472. package/skills/vueuse-functions/references/useFps.md +28 -0
  473. package/skills/vueuse-functions/references/useFullscreen.md +74 -0
  474. package/skills/vueuse-functions/references/useFuse.md +75 -0
  475. package/skills/vueuse-functions/references/useGamepad.md +176 -0
  476. package/skills/vueuse-functions/references/useGeolocation.md +63 -0
  477. package/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
  478. package/skills/vueuse-functions/references/useIdle.md +88 -0
  479. package/skills/vueuse-functions/references/useImage.md +90 -0
  480. package/skills/vueuse-functions/references/useInfiniteScroll.md +156 -0
  481. package/skills/vueuse-functions/references/useIntersectionObserver.md +117 -0
  482. package/skills/vueuse-functions/references/useInterval.md +112 -0
  483. package/skills/vueuse-functions/references/useIntervalFn.md +50 -0
  484. package/skills/vueuse-functions/references/useIpcRenderer.md +144 -0
  485. package/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
  486. package/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
  487. package/skills/vueuse-functions/references/useJwt.md +57 -0
  488. package/skills/vueuse-functions/references/useKeyModifier.md +87 -0
  489. package/skills/vueuse-functions/references/useLastChanged.md +63 -0
  490. package/skills/vueuse-functions/references/useLocalStorage.md +41 -0
  491. package/skills/vueuse-functions/references/useMagicKeys.md +245 -0
  492. package/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
  493. package/skills/vueuse-functions/references/useMath.md +47 -0
  494. package/skills/vueuse-functions/references/useMax.md +36 -0
  495. package/skills/vueuse-functions/references/useMediaControls.md +201 -0
  496. package/skills/vueuse-functions/references/useMediaQuery.md +53 -0
  497. package/skills/vueuse-functions/references/useMemoize.md +175 -0
  498. package/skills/vueuse-functions/references/useMemory.md +70 -0
  499. package/skills/vueuse-functions/references/useMin.md +36 -0
  500. package/skills/vueuse-functions/references/useMounted.md +38 -0
  501. package/skills/vueuse-functions/references/useMouse.md +113 -0
  502. package/skills/vueuse-functions/references/useMouseInElement.md +132 -0
  503. package/skills/vueuse-functions/references/useMousePressed.md +116 -0
  504. package/skills/vueuse-functions/references/useMutationObserver.md +60 -0
  505. package/skills/vueuse-functions/references/useNProgress.md +78 -0
  506. package/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
  507. package/skills/vueuse-functions/references/useNetwork.md +106 -0
  508. package/skills/vueuse-functions/references/useNow.md +83 -0
  509. package/skills/vueuse-functions/references/useObjectUrl.md +55 -0
  510. package/skills/vueuse-functions/references/useObservable.md +91 -0
  511. package/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
  512. package/skills/vueuse-functions/references/useOnline.md +41 -0
  513. package/skills/vueuse-functions/references/usePageLeave.md +43 -0
  514. package/skills/vueuse-functions/references/useParallax.md +58 -0
  515. package/skills/vueuse-functions/references/useParentElement.md +54 -0
  516. package/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
  517. package/skills/vueuse-functions/references/usePermission.md +78 -0
  518. package/skills/vueuse-functions/references/usePointer.md +91 -0
  519. package/skills/vueuse-functions/references/usePointerLock.md +59 -0
  520. package/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
  521. package/skills/vueuse-functions/references/usePrecision.md +49 -0
  522. package/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
  523. package/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
  524. package/skills/vueuse-functions/references/usePreferredDark.md +41 -0
  525. package/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
  526. package/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
  527. package/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
  528. package/skills/vueuse-functions/references/usePrevious.md +40 -0
  529. package/skills/vueuse-functions/references/useProjection.md +38 -0
  530. package/skills/vueuse-functions/references/useQRCode.md +53 -0
  531. package/skills/vueuse-functions/references/useRTDB.md +83 -0
  532. package/skills/vueuse-functions/references/useRafFn.md +68 -0
  533. package/skills/vueuse-functions/references/useRefHistory.md +285 -0
  534. package/skills/vueuse-functions/references/useResizeObserver.md +108 -0
  535. package/skills/vueuse-functions/references/useRound.md +31 -0
  536. package/skills/vueuse-functions/references/useRouteHash.md +27 -0
  537. package/skills/vueuse-functions/references/useRouteParams.md +38 -0
  538. package/skills/vueuse-functions/references/useRouteQuery.md +79 -0
  539. package/skills/vueuse-functions/references/useSSRWidth.md +47 -0
  540. package/skills/vueuse-functions/references/useScreenOrientation.md +98 -0
  541. package/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
  542. package/skills/vueuse-functions/references/useScriptTag.md +116 -0
  543. package/skills/vueuse-functions/references/useScroll.md +238 -0
  544. package/skills/vueuse-functions/references/useScrollLock.md +66 -0
  545. package/skills/vueuse-functions/references/useSessionStorage.md +41 -0
  546. package/skills/vueuse-functions/references/useShare.md +67 -0
  547. package/skills/vueuse-functions/references/useSortable.md +276 -0
  548. package/skills/vueuse-functions/references/useSorted.md +90 -0
  549. package/skills/vueuse-functions/references/useSpeechRecognition.md +90 -0
  550. package/skills/vueuse-functions/references/useSpeechSynthesis.md +101 -0
  551. package/skills/vueuse-functions/references/useStepper.md +137 -0
  552. package/skills/vueuse-functions/references/useStorage.md +278 -0
  553. package/skills/vueuse-functions/references/useStorageAsync.md +136 -0
  554. package/skills/vueuse-functions/references/useStyleTag.md +131 -0
  555. package/skills/vueuse-functions/references/useSubject.md +77 -0
  556. package/skills/vueuse-functions/references/useSubscription.md +33 -0
  557. package/skills/vueuse-functions/references/useSum.md +36 -0
  558. package/skills/vueuse-functions/references/useSupported.md +29 -0
  559. package/skills/vueuse-functions/references/useSwipe.md +75 -0
  560. package/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
  561. package/skills/vueuse-functions/references/useTextDirection.md +75 -0
  562. package/skills/vueuse-functions/references/useTextSelection.md +43 -0
  563. package/skills/vueuse-functions/references/useTextareaAutosize.md +94 -0
  564. package/skills/vueuse-functions/references/useThrottleFn.md +57 -0
  565. package/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
  566. package/skills/vueuse-functions/references/useTimeAgo.md +154 -0
  567. package/skills/vueuse-functions/references/useTimeAgoIntl.md +117 -0
  568. package/skills/vueuse-functions/references/useTimeout.md +113 -0
  569. package/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
  570. package/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
  571. package/skills/vueuse-functions/references/useTimestamp.md +93 -0
  572. package/skills/vueuse-functions/references/useTitle.md +115 -0
  573. package/skills/vueuse-functions/references/useToNumber.md +54 -0
  574. package/skills/vueuse-functions/references/useToString.md +34 -0
  575. package/skills/vueuse-functions/references/useToggle.md +103 -0
  576. package/skills/vueuse-functions/references/useTransition.md +265 -0
  577. package/skills/vueuse-functions/references/useTrunc.md +33 -0
  578. package/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
  579. package/skills/vueuse-functions/references/useUserMedia.md +96 -0
  580. package/skills/vueuse-functions/references/useVModel.md +182 -0
  581. package/skills/vueuse-functions/references/useVModels.md +67 -0
  582. package/skills/vueuse-functions/references/useVibrate.md +86 -0
  583. package/skills/vueuse-functions/references/useVirtualList.md +182 -0
  584. package/skills/vueuse-functions/references/useWakeLock.md +51 -0
  585. package/skills/vueuse-functions/references/useWebNotification.md +175 -0
  586. package/skills/vueuse-functions/references/useWebSocket.md +299 -0
  587. package/skills/vueuse-functions/references/useWebWorker.md +60 -0
  588. package/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
  589. package/skills/vueuse-functions/references/useWindowFocus.md +46 -0
  590. package/skills/vueuse-functions/references/useWindowScroll.md +46 -0
  591. package/skills/vueuse-functions/references/useWindowSize.md +78 -0
  592. package/skills/vueuse-functions/references/useZoomFactor.md +53 -0
  593. package/skills/vueuse-functions/references/useZoomLevel.md +53 -0
  594. package/skills/vueuse-functions/references/watchArray.md +53 -0
  595. package/skills/vueuse-functions/references/watchAtMost.md +63 -0
  596. package/skills/vueuse-functions/references/watchDebounced.md +101 -0
  597. package/skills/vueuse-functions/references/watchDeep.md +54 -0
  598. package/skills/vueuse-functions/references/watchExtractedObservable.md +192 -0
  599. package/skills/vueuse-functions/references/watchIgnorable.md +120 -0
  600. package/skills/vueuse-functions/references/watchImmediate.md +44 -0
  601. package/skills/vueuse-functions/references/watchOnce.md +41 -0
  602. package/skills/vueuse-functions/references/watchPausable.md +86 -0
  603. package/skills/vueuse-functions/references/watchThrottled.md +108 -0
  604. package/skills/vueuse-functions/references/watchTriggerable.md +98 -0
  605. package/skills/vueuse-functions/references/watchWithFilter.md +54 -0
  606. package/skills/vueuse-functions/references/whenever.md +108 -0
  607. package/skills/web-design-guidelines/SKILL.md +39 -0
  608. package/skills/web-design-guidelines/SYNC.md +5 -0
@@ -0,0 +1,289 @@
1
+ ---
2
+ category: Elements
3
+ ---
4
+
5
+ # useDraggable
6
+
7
+ Make elements draggable.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useDraggable } from '@vueuse/core'
14
+ import { useTemplateRef } from 'vue'
15
+
16
+ const el = useTemplateRef('el')
17
+
18
+ // `style` will be a helper computed for `left: ?px; top: ?px;`
19
+ const { x, y, style } = useDraggable(el, {
20
+ initialValue: { x: 40, y: 40 },
21
+ })
22
+ </script>
23
+
24
+ <template>
25
+ <div ref="el" :style="style" style="position: fixed">
26
+ Drag me! I am at {{ x }}, {{ y }}
27
+ </div>
28
+ </template>
29
+ ```
30
+
31
+ ### Return Values
32
+
33
+ | Property | Type | Description |
34
+ | ------------ | ---------------------- | --------------------------------------- |
35
+ | `x` | `Ref<number>` | Current x position |
36
+ | `y` | `Ref<number>` | Current y position |
37
+ | `position` | `Ref<{x, y}>` | Current position object |
38
+ | `isDragging` | `ComputedRef<boolean>` | Whether currently dragging |
39
+ | `style` | `ComputedRef<string>` | CSS style string `left: ?px; top: ?px;` |
40
+
41
+ ### Options
42
+
43
+ ```ts
44
+ useDraggable(el, {
45
+ // Initial position (default: { x: 0, y: 0 })
46
+ initialValue: { x: 40, y: 40 },
47
+ // Restrict dragging to specific axis: 'x', 'y', or 'both' (default)
48
+ axis: 'both',
49
+ // Only trigger when clicking directly on the element (default: false)
50
+ exact: false,
51
+ // Prevent default browser behavior (default: false)
52
+ preventDefault: true,
53
+ // Stop event propagation (default: false)
54
+ stopPropagation: false,
55
+ // Use capture phase for events (default: true)
56
+ capture: true,
57
+ // Disable dragging (default: false)
58
+ disabled: false,
59
+ // Mouse buttons that trigger drag (default: [0] - left button)
60
+ buttons: [0],
61
+ // Pointer types to listen to (default: ['mouse', 'touch', 'pen'])
62
+ pointerTypes: ['mouse', 'touch', 'pen'],
63
+ // Custom drag handle element (default: target element)
64
+ handle: handleRef,
65
+ // Container element for bounds (default: none)
66
+ containerElement: containerRef,
67
+ // Element to attach pointermove/pointerup events (default: window)
68
+ draggingElement: window,
69
+ // Callbacks
70
+ onStart: (position, event) => {
71
+ // Return false to prevent dragging
72
+ },
73
+ onMove: (position, event) => {},
74
+ onEnd: (position, event) => {},
75
+ })
76
+ ```
77
+
78
+ ### Prevent Default
79
+
80
+ Set `preventDefault: true` to override the default drag-and-drop behavior of certain elements in the browser (e.g., images).
81
+
82
+ ```ts
83
+ import { useDraggable } from '@vueuse/core'
84
+
85
+ const { x, y, style } = useDraggable(el, {
86
+ preventDefault: true,
87
+ })
88
+ ```
89
+
90
+ ### Container Bounds
91
+
92
+ Use `containerElement` to constrain dragging within a container.
93
+
94
+ ```ts
95
+ import { useDraggable } from '@vueuse/core'
96
+
97
+ const { x, y } = useDraggable(el, {
98
+ containerElement: containerRef,
99
+ })
100
+ ```
101
+
102
+ Set `autoScroll: true` to enable auto-scroll when dragging near the edges.
103
+
104
+ ```ts
105
+ const { x, y, style } = useDraggable(el, {
106
+ autoScroll: {
107
+ speed: 2, // Control the speed of auto-scroll.
108
+ margin: 30, // Set the margin from the edge that triggers auto-scroll.
109
+ direction: 'both' // Determine the direction of auto-scroll.
110
+ },
111
+ })
112
+ ```
113
+
114
+ ## Component Usage
115
+
116
+ ```vue
117
+ <template>
118
+ <UseDraggable v-slot="{ x, y }" :initial-value="{ x: 10, y: 10 }">
119
+ Drag me! I am at {{ x }}, {{ y }}
120
+ </UseDraggable>
121
+ </template>
122
+ ```
123
+
124
+ For component usage, additional props `storageKey` and `storageType` can be passed to the component and enable the persistence of the element position.
125
+
126
+ ```vue
127
+ <template>
128
+ <UseDraggable storage-key="vueuse-draggable" storage-type="session">
129
+ Refresh the page and I am still in the same position!
130
+ </UseDraggable>
131
+ </template>
132
+ ```
133
+
134
+ ## Type Declarations
135
+
136
+ ```ts
137
+ export interface UseDraggableOptions {
138
+ /**
139
+ * Only start the dragging when click on the element directly
140
+ *
141
+ * @default false
142
+ */
143
+ exact?: MaybeRefOrGetter<boolean>
144
+ /**
145
+ * Prevent events defaults
146
+ *
147
+ * @default false
148
+ */
149
+ preventDefault?: MaybeRefOrGetter<boolean>
150
+ /**
151
+ * Prevent events propagation
152
+ *
153
+ * @default false
154
+ */
155
+ stopPropagation?: MaybeRefOrGetter<boolean>
156
+ /**
157
+ * Whether dispatch events in capturing phase
158
+ *
159
+ * @default true
160
+ */
161
+ capture?: boolean
162
+ /**
163
+ * Element to attach `pointermove` and `pointerup` events to.
164
+ *
165
+ * @default window
166
+ */
167
+ draggingElement?: MaybeRefOrGetter<
168
+ HTMLElement | SVGElement | Window | Document | null | undefined
169
+ >
170
+ /**
171
+ * Element for calculating bounds (If not set, it will use the event's target).
172
+ *
173
+ * @default undefined
174
+ */
175
+ containerElement?: MaybeRefOrGetter<
176
+ HTMLElement | SVGElement | null | undefined
177
+ >
178
+ /**
179
+ * Handle that triggers the drag event
180
+ *
181
+ * @default target
182
+ */
183
+ handle?: MaybeRefOrGetter<HTMLElement | SVGElement | null | undefined>
184
+ /**
185
+ * Pointer types that listen to.
186
+ *
187
+ * @default ['mouse', 'touch', 'pen']
188
+ */
189
+ pointerTypes?: PointerType[]
190
+ /**
191
+ * Initial position of the element.
192
+ *
193
+ * @default { x: 0, y: 0 }
194
+ */
195
+ initialValue?: MaybeRefOrGetter<Position>
196
+ /**
197
+ * Callback when the dragging starts. Return `false` to prevent dragging.
198
+ */
199
+ onStart?: (position: Position, event: PointerEvent) => void | false
200
+ /**
201
+ * Callback during dragging.
202
+ */
203
+ onMove?: (position: Position, event: PointerEvent) => void
204
+ /**
205
+ * Callback when dragging end.
206
+ */
207
+ onEnd?: (position: Position, event: PointerEvent) => void
208
+ /**
209
+ * Axis to drag on.
210
+ *
211
+ * @default 'both'
212
+ */
213
+ axis?: "x" | "y" | "both"
214
+ /**
215
+ * Disabled drag and drop.
216
+ *
217
+ * @default false
218
+ */
219
+ disabled?: MaybeRefOrGetter<boolean>
220
+ /**
221
+ * Mouse buttons that are allowed to trigger drag events.
222
+ *
223
+ * - `0`: Main button, usually the left button or the un-initialized state
224
+ * - `1`: Auxiliary button, usually the wheel button or the middle button (if present)
225
+ * - `2`: Secondary button, usually the right button
226
+ * - `3`: Fourth button, typically the Browser Back button
227
+ * - `4`: Fifth button, typically the Browser Forward button
228
+ *
229
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button#value
230
+ * @default [0]
231
+ */
232
+ buttons?: MaybeRefOrGetter<number[]>
233
+ /**
234
+ * Whether to restrict dragging within the visible area of the container.
235
+ *
236
+ * If enabled, the draggable element will not leave the visible area of its container,
237
+ * ensuring it remains within the viewport of the container during the drag.
238
+ *
239
+ * @default false
240
+ */
241
+ restrictInView?: MaybeRefOrGetter<boolean>
242
+ /**
243
+ * Whether to enable auto-scroll when dragging near the edges.
244
+ *
245
+ * @default false
246
+ */
247
+ autoScroll?: MaybeRefOrGetter<
248
+ | boolean
249
+ | {
250
+ /**
251
+ * Speed of auto-scroll.
252
+ *
253
+ * @default 2
254
+ */
255
+ speed?: MaybeRefOrGetter<number | Position>
256
+ /**
257
+ * Margin from the edge to trigger auto-scroll.
258
+ *
259
+ * @default 30
260
+ */
261
+ margin?: MaybeRefOrGetter<number | Position>
262
+ /**
263
+ * Direction of auto-scroll.
264
+ *
265
+ * @default 'both'
266
+ */
267
+ direction?: "x" | "y" | "both"
268
+ }
269
+ >
270
+ }
271
+ export interface UseDraggableReturn {
272
+ x: Ref<number>
273
+ y: Ref<number>
274
+ position: Ref<Position>
275
+ isDragging: ComputedRef<boolean>
276
+ style: ComputedRef<string>
277
+ }
278
+ /**
279
+ * Make elements draggable.
280
+ *
281
+ * @see https://vueuse.org/useDraggable
282
+ * @param target
283
+ * @param options
284
+ */
285
+ export declare function useDraggable(
286
+ target: MaybeRefOrGetter<HTMLElement | SVGElement | null | undefined>,
287
+ options?: UseDraggableOptions,
288
+ ): UseDraggableReturn
289
+ ```
@@ -0,0 +1,65 @@
1
+ ---
2
+ category: '@Integrations'
3
+ ---
4
+
5
+ # useDrauu
6
+
7
+ Reactive instance for [drauu](https://github.com/antfu/drauu).
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npm i drauu@^0
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ ```vue
18
+ <script setup lang="ts">
19
+ import { toRefs } from '@vueuse/core'
20
+ import { useDrauu } from '@vueuse/integrations/useDrauu'
21
+ import { useTemplateRef } from 'vue'
22
+
23
+ const target = useTemplateRef('target')
24
+ const { undo, redo, canUndo, canRedo, brush } = useDrauu(target)
25
+ const { color, size } = toRefs(brush)
26
+ </script>
27
+
28
+ <template>
29
+ <svg ref="target" />
30
+ </template>
31
+ ```
32
+
33
+ ## Type Declarations
34
+
35
+ ```ts
36
+ export type UseDrauuOptions = Omit<Options, "el">
37
+ export interface UseDrauuReturn {
38
+ drauuInstance: Ref<Drauu | undefined>
39
+ load: (svg: string) => void
40
+ dump: () => string | undefined
41
+ clear: () => void
42
+ cancel: () => void
43
+ undo: () => boolean | undefined
44
+ redo: () => boolean | undefined
45
+ canUndo: ShallowRef<boolean>
46
+ canRedo: ShallowRef<boolean>
47
+ brush: Ref<Brush>
48
+ onChanged: EventHookOn
49
+ onCommitted: EventHookOn
50
+ onStart: EventHookOn
51
+ onEnd: EventHookOn
52
+ onCanceled: EventHookOn
53
+ }
54
+ /**
55
+ * Reactive drauu
56
+ *
57
+ * @see https://vueuse.org/useDrauu
58
+ * @param target The target svg element
59
+ * @param options Drauu Options
60
+ */
61
+ export declare function useDrauu(
62
+ target: MaybeComputedElementRef,
63
+ options?: UseDrauuOptions,
64
+ ): UseDrauuReturn
65
+ ```
@@ -0,0 +1,83 @@
1
+ ---
2
+ category: Elements
3
+ ---
4
+
5
+ # useDropZone
6
+
7
+ Create a zone where files can be dropped.
8
+
9
+ ::: warning
10
+
11
+ Due to Safari browser limitations, file type validation is only possible during the drop event, not during drag events. As a result, the `isOverDropZone` value will always be `true` during drag operations in Safari, regardless of file type.
12
+
13
+ :::
14
+
15
+ ## Usage
16
+
17
+ ```vue
18
+ <script setup lang="ts">
19
+ import { useDropZone } from '@vueuse/core'
20
+ import { useTemplateRef } from 'vue'
21
+
22
+ const dropZoneRef = useTemplateRef('dropZoneRef')
23
+
24
+ function onDrop(files: File[] | null) {
25
+ // called when files are dropped on zone
26
+ }
27
+
28
+ const { isOverDropZone } = useDropZone(dropZoneRef, {
29
+ onDrop,
30
+ // specify the types of data to be received.
31
+ dataTypes: ['image/jpeg'],
32
+ // control multi-file drop
33
+ multiple: true,
34
+ // whether to prevent default behavior for unhandled events
35
+ preventDefaultForUnhandled: false,
36
+ })
37
+ </script>
38
+
39
+ <template>
40
+ <div ref="dropZoneRef">
41
+ Drop files here
42
+ </div>
43
+ </template>
44
+ ```
45
+
46
+ ## Type Declarations
47
+
48
+ ```ts
49
+ export interface UseDropZoneReturn {
50
+ files: ShallowRef<File[] | null>
51
+ isOverDropZone: ShallowRef<boolean>
52
+ }
53
+ export interface UseDropZoneOptions {
54
+ /**
55
+ * Allowed data types, if not set, all data types are allowed.
56
+ * Also can be a function to check the data types.
57
+ */
58
+ dataTypes?:
59
+ | MaybeRef<readonly string[]>
60
+ | ((types: readonly string[]) => boolean)
61
+ /**
62
+ * Similar to dataTypes, but exposes the DataTransferItemList for custom validation.
63
+ * If provided, this function takes precedence over dataTypes.
64
+ */
65
+ checkValidity?: (items: DataTransferItemList) => boolean
66
+ onDrop?: (files: File[] | null, event: DragEvent) => void
67
+ onEnter?: (files: File[] | null, event: DragEvent) => void
68
+ onLeave?: (files: File[] | null, event: DragEvent) => void
69
+ onOver?: (files: File[] | null, event: DragEvent) => void
70
+ /**
71
+ * Allow multiple files to be dropped. Defaults to true.
72
+ */
73
+ multiple?: boolean
74
+ /**
75
+ * Prevent default behavior for unhandled events. Defaults to false.
76
+ */
77
+ preventDefaultForUnhandled?: boolean
78
+ }
79
+ export declare function useDropZone(
80
+ target: MaybeRefOrGetter<HTMLElement | Document | null | undefined>,
81
+ options?: UseDropZoneOptions | UseDropZoneOptions["onDrop"],
82
+ ): UseDropZoneReturn
83
+ ```
@@ -0,0 +1,131 @@
1
+ ---
2
+ category: Elements
3
+ ---
4
+
5
+ # useElementBounding
6
+
7
+ Reactive [bounding box](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect) of an HTML element
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useElementBounding } from '@vueuse/core'
14
+ import { useTemplateRef } from 'vue'
15
+
16
+ const el = useTemplateRef('el')
17
+ const { x, y, top, right, bottom, left, width, height } = useElementBounding(el)
18
+ </script>
19
+
20
+ <template>
21
+ <div ref="el" />
22
+ </template>
23
+ ```
24
+
25
+ ## Component Usage
26
+
27
+ ```vue
28
+ <template>
29
+ <UseElementBounding v-slot="{ width, height }">
30
+ Width: {{ width }} Height: {{ height }}
31
+ </UseElementBounding>
32
+ </template>
33
+ ```
34
+
35
+ ## Directive Usage
36
+
37
+ ```vue
38
+ <script setup lang="ts">
39
+ import { vElementBounding } from '@vueuse/components'
40
+
41
+ interface BoundingType {
42
+ height: number
43
+ bottom: number
44
+ left: number
45
+ right: number
46
+ top: number
47
+ width: number
48
+ x: number
49
+ y: number
50
+ }
51
+
52
+ function onBounding({ height, bottom, left, right, top, width, x, y }: BoundingType) {
53
+ console.log(height, bottom, left, right, top, width, x, y)
54
+ }
55
+
56
+ const options = {
57
+ reset: true,
58
+ windowResize: true,
59
+ windowScroll: true,
60
+ immediate: true,
61
+ updateTiming: 'sync',
62
+ }
63
+ </script>
64
+
65
+ <template>
66
+ <textarea v-element-bounding="onBounding" />
67
+ <!-- with options -->
68
+ <textarea v-element-bounding="[onBounding, options]" />
69
+ </template>
70
+ ```
71
+
72
+ ## Type Declarations
73
+
74
+ ```ts
75
+ export interface UseElementBoundingOptions {
76
+ /**
77
+ * Reset values to 0 on component unmounted
78
+ *
79
+ * @default true
80
+ */
81
+ reset?: boolean
82
+ /**
83
+ * Listen to window resize event
84
+ *
85
+ * @default true
86
+ */
87
+ windowResize?: boolean
88
+ /**
89
+ * Listen to window scroll event
90
+ *
91
+ * @default true
92
+ */
93
+ windowScroll?: boolean
94
+ /**
95
+ * Immediately call update on component mounted
96
+ *
97
+ * @default true
98
+ */
99
+ immediate?: boolean
100
+ /**
101
+ * Timing to recalculate the bounding box
102
+ *
103
+ * Setting to `next-frame` can be useful when using this together with something like {@link useBreakpoints}
104
+ * and therefore the layout (which influences the bounding box of the observed element) is not updated on the current tick.
105
+ *
106
+ * @default 'sync'
107
+ */
108
+ updateTiming?: "sync" | "next-frame"
109
+ }
110
+ export interface UseElementBoundingReturn {
111
+ height: ShallowRef<number>
112
+ bottom: ShallowRef<number>
113
+ left: ShallowRef<number>
114
+ right: ShallowRef<number>
115
+ top: ShallowRef<number>
116
+ width: ShallowRef<number>
117
+ x: ShallowRef<number>
118
+ y: ShallowRef<number>
119
+ update: () => void
120
+ }
121
+ /**
122
+ * Reactive bounding box of an HTML element.
123
+ *
124
+ * @see https://vueuse.org/useElementBounding
125
+ * @param target
126
+ */
127
+ export declare function useElementBounding(
128
+ target: MaybeComputedElementRef,
129
+ options?: UseElementBoundingOptions,
130
+ ): UseElementBoundingReturn
131
+ ```
@@ -0,0 +1,46 @@
1
+ ---
2
+ category: Sensors
3
+ ---
4
+
5
+ # useElementByPoint
6
+
7
+ Reactive element by point.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useElementByPoint, useMouse } from '@vueuse/core'
13
+
14
+ const { x, y } = useMouse({ type: 'client' })
15
+ const { element } = useElementByPoint({ x, y })
16
+ ```
17
+
18
+ ## Type Declarations
19
+
20
+ ```ts
21
+ export interface UseElementByPointOptions<Multiple extends boolean = false>
22
+ extends ConfigurableDocument, ConfigurableScheduler {
23
+ x: MaybeRefOrGetter<number>
24
+ y: MaybeRefOrGetter<number>
25
+ multiple?: MaybeRefOrGetter<Multiple>
26
+ /** @deprecated Please use `scheduler` option instead */
27
+ immediate?: boolean
28
+ /** @deprecated Please use `scheduler` option instead */
29
+ interval?: "requestAnimationFrame" | number
30
+ }
31
+ export interface UseElementByPointReturn<Multiple extends boolean = false>
32
+ extends Supportable, Pausable {
33
+ element: ShallowRef<
34
+ Multiple extends true ? HTMLElement[] : HTMLElement | null
35
+ >
36
+ }
37
+ /**
38
+ * Reactive element by point.
39
+ *
40
+ * @see https://vueuse.org/useElementByPoint
41
+ * @param options - UseElementByPointOptions
42
+ */
43
+ export declare function useElementByPoint<M extends boolean = false>(
44
+ options: UseElementByPointOptions<M>,
45
+ ): UseElementByPointReturn<M>
46
+ ```
@@ -0,0 +1,79 @@
1
+ ---
2
+ category: Sensors
3
+ ---
4
+
5
+ # useElementHover
6
+
7
+ Reactive element's hover state.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useElementHover } from '@vueuse/core'
14
+ import { useTemplateRef } from 'vue'
15
+
16
+ const myHoverableElement = useTemplateRef('myHoverableElement')
17
+ const isHovered = useElementHover(myHoverableElement)
18
+ </script>
19
+
20
+ <template>
21
+ <button ref="myHoverableElement">
22
+ {{ isHovered }}
23
+ </button>
24
+ </template>
25
+ ```
26
+
27
+ ## Directive Usage
28
+
29
+ ```vue
30
+ <script setup lang="ts">
31
+ import { vElementHover } from '@vueuse/components'
32
+ import { shallowRef } from 'vue'
33
+
34
+ const isHovered = shallowRef(false)
35
+ function onHover(state: boolean) {
36
+ isHovered.value = state
37
+ }
38
+ </script>
39
+
40
+ <template>
41
+ <button v-element-hover="onHover">
42
+ {{ isHovered ? 'Thank you!' : 'Hover me' }}
43
+ </button>
44
+ </template>
45
+ ```
46
+
47
+ You can also provide hover options:
48
+
49
+ ```vue
50
+ <script setup lang="ts">
51
+ import { vElementHover } from '@vueuse/components'
52
+ import { shallowRef } from 'vue'
53
+
54
+ const isHovered = shallowRef(false)
55
+ function onHover(hovered: boolean) {
56
+ isHovered.value = hovered
57
+ }
58
+ </script>
59
+
60
+ <template>
61
+ <button v-element-hover="[onHover, { delayEnter: 1000 }]">
62
+ <span>{{ isHovered ? 'Thank you!' : 'Hover me' }}</span>
63
+ </button>
64
+ </template>
65
+ ```
66
+
67
+ ## Type Declarations
68
+
69
+ ```ts
70
+ export interface UseElementHoverOptions extends ConfigurableWindow {
71
+ delayEnter?: number
72
+ delayLeave?: number
73
+ triggerOnRemoval?: boolean
74
+ }
75
+ export declare function useElementHover(
76
+ el: MaybeRefOrGetter<EventTarget | null | undefined>,
77
+ options?: UseElementHoverOptions,
78
+ ): ShallowRef<boolean>
79
+ ```