aico-cli 2.1.1 → 2.1.23

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 (549) hide show
  1. package/bin/cli/README.md +1 -1
  2. package/bin/cli/cli.js +9391 -3999
  3. package/bin/cli/package.json +1 -1
  4. package/bin/cli/sdk-tools.d.ts +83 -15
  5. package/dist/chunks/simple-config.mjs +1 -1
  6. package/package.json +2 -2
  7. package/templates/cursor.md +72 -15
  8. package/templates/personality.md +37 -13
  9. package/templates/skills/antfu/SKILL.md +222 -0
  10. package/templates/skills/antfu/references/antfu-eslint-config.md +328 -0
  11. package/templates/skills/antfu/references/app-development.md +60 -0
  12. package/templates/skills/antfu/references/github-actions.md +68 -0
  13. package/templates/skills/antfu/references/gitignore.md +29 -0
  14. package/templates/skills/antfu/references/library-development.md +85 -0
  15. package/templates/skills/antfu/references/monorepo.md +126 -0
  16. package/templates/skills/antfu/references/vscode-extensions.md +34 -0
  17. package/templates/skills/nuxt/GENERATION.md +5 -0
  18. package/templates/skills/nuxt/SKILL.md +55 -0
  19. package/templates/skills/nuxt/references/advanced-hooks.md +289 -0
  20. package/templates/skills/nuxt/references/advanced-layers.md +299 -0
  21. package/templates/skills/nuxt/references/advanced-module-authoring.md +554 -0
  22. package/templates/skills/nuxt/references/best-practices-data-fetching.md +357 -0
  23. package/templates/skills/nuxt/references/best-practices-ssr.md +355 -0
  24. package/templates/skills/nuxt/references/core-cli.md +263 -0
  25. package/templates/skills/nuxt/references/core-config.md +162 -0
  26. package/templates/skills/nuxt/references/core-data-fetching.md +236 -0
  27. package/templates/skills/nuxt/references/core-deployment.md +224 -0
  28. package/templates/skills/nuxt/references/core-directory-structure.md +269 -0
  29. package/templates/skills/nuxt/references/core-modules.md +292 -0
  30. package/templates/skills/nuxt/references/core-routing.md +226 -0
  31. package/templates/skills/nuxt/references/features-components-autoimport.md +328 -0
  32. package/templates/skills/nuxt/references/features-components.md +264 -0
  33. package/templates/skills/nuxt/references/features-composables.md +276 -0
  34. package/templates/skills/nuxt/references/features-server.md +265 -0
  35. package/templates/skills/nuxt/references/features-state.md +194 -0
  36. package/templates/skills/nuxt/references/rendering-modes.md +237 -0
  37. package/templates/skills/pinia/GENERATION.md +5 -0
  38. package/templates/skills/pinia/SKILL.md +59 -0
  39. package/templates/skills/pinia/references/advanced-hmr.md +61 -0
  40. package/templates/skills/pinia/references/advanced-nuxt.md +119 -0
  41. package/templates/skills/pinia/references/advanced-ssr.md +121 -0
  42. package/templates/skills/pinia/references/best-practices-outside-component.md +115 -0
  43. package/templates/skills/pinia/references/best-practices-testing.md +212 -0
  44. package/templates/skills/pinia/references/core-stores.md +389 -0
  45. package/templates/skills/pinia/references/features-composables.md +114 -0
  46. package/templates/skills/pinia/references/features-composing-stores.md +134 -0
  47. package/templates/skills/pinia/references/features-plugins.md +203 -0
  48. package/templates/skills/pnpm/GENERATION.md +5 -0
  49. package/templates/skills/pnpm/SKILL.md +42 -0
  50. package/templates/skills/pnpm/references/best-practices-ci.md +285 -0
  51. package/templates/skills/pnpm/references/best-practices-migration.md +291 -0
  52. package/templates/skills/pnpm/references/best-practices-performance.md +284 -0
  53. package/templates/skills/pnpm/references/core-cli.md +229 -0
  54. package/templates/skills/pnpm/references/core-config.md +188 -0
  55. package/templates/skills/pnpm/references/core-store.md +179 -0
  56. package/templates/skills/pnpm/references/core-workspaces.md +205 -0
  57. package/templates/skills/pnpm/references/features-aliases.md +168 -0
  58. package/templates/skills/pnpm/references/features-catalogs.md +159 -0
  59. package/templates/skills/pnpm/references/features-hooks.md +233 -0
  60. package/templates/skills/pnpm/references/features-overrides.md +184 -0
  61. package/templates/skills/pnpm/references/features-patches.md +201 -0
  62. package/templates/skills/pnpm/references/features-peer-deps.md +250 -0
  63. package/templates/skills/slidev/LICENSE.md +21 -0
  64. package/templates/skills/slidev/README.md +61 -0
  65. package/templates/skills/slidev/SKILL.md +183 -0
  66. package/templates/skills/slidev/SYNC.md +5 -0
  67. package/templates/skills/slidev/references/animation-click-marker.md +37 -0
  68. package/templates/skills/slidev/references/animation-drawing.md +68 -0
  69. package/templates/skills/slidev/references/animation-rough-marker.md +53 -0
  70. package/templates/skills/slidev/references/api-slide-hooks.md +37 -0
  71. package/templates/skills/slidev/references/build-og-image.md +36 -0
  72. package/templates/skills/slidev/references/build-pdf.md +40 -0
  73. package/templates/skills/slidev/references/build-remote-assets.md +34 -0
  74. package/templates/skills/slidev/references/build-seo-meta.md +43 -0
  75. package/templates/skills/slidev/references/code-groups.md +64 -0
  76. package/templates/skills/slidev/references/code-import-snippet.md +55 -0
  77. package/templates/skills/slidev/references/code-line-highlighting.md +50 -0
  78. package/templates/skills/slidev/references/code-line-numbers.md +46 -0
  79. package/templates/skills/slidev/references/code-magic-move.md +57 -0
  80. package/templates/skills/slidev/references/code-max-height.md +37 -0
  81. package/templates/skills/slidev/references/code-twoslash.md +42 -0
  82. package/templates/skills/slidev/references/core-animations.md +196 -0
  83. package/templates/skills/slidev/references/core-cli.md +140 -0
  84. package/templates/skills/slidev/references/core-components.md +197 -0
  85. package/templates/skills/slidev/references/core-exporting.md +148 -0
  86. package/templates/skills/slidev/references/core-frontmatter.md +195 -0
  87. package/templates/skills/slidev/references/core-global-context.md +155 -0
  88. package/templates/skills/slidev/references/core-headmatter.md +188 -0
  89. package/templates/skills/slidev/references/core-hosting.md +152 -0
  90. package/templates/skills/slidev/references/core-layouts.md +286 -0
  91. package/templates/skills/slidev/references/core-syntax.md +155 -0
  92. package/templates/skills/slidev/references/diagram-latex.md +55 -0
  93. package/templates/skills/slidev/references/diagram-mermaid.md +44 -0
  94. package/templates/skills/slidev/references/diagram-plantuml.md +45 -0
  95. package/templates/skills/slidev/references/editor-monaco-run.md +44 -0
  96. package/templates/skills/slidev/references/editor-monaco-write.md +24 -0
  97. package/templates/skills/slidev/references/editor-monaco.md +50 -0
  98. package/templates/skills/slidev/references/editor-prettier.md +40 -0
  99. package/templates/skills/slidev/references/editor-side.md +23 -0
  100. package/templates/skills/slidev/references/editor-vscode.md +55 -0
  101. package/templates/skills/slidev/references/layout-canvas-size.md +25 -0
  102. package/templates/skills/slidev/references/layout-draggable.md +57 -0
  103. package/templates/skills/slidev/references/layout-global-layers.md +50 -0
  104. package/templates/skills/slidev/references/layout-slots.md +75 -0
  105. package/templates/skills/slidev/references/layout-transform.md +33 -0
  106. package/templates/skills/slidev/references/layout-zoom.md +39 -0
  107. package/templates/skills/slidev/references/presenter-notes-ruby.md +35 -0
  108. package/templates/skills/slidev/references/presenter-recording.md +30 -0
  109. package/templates/skills/slidev/references/presenter-remote.md +40 -0
  110. package/templates/skills/slidev/references/presenter-timer.md +34 -0
  111. package/templates/skills/slidev/references/style-direction.md +34 -0
  112. package/templates/skills/slidev/references/style-icons.md +46 -0
  113. package/templates/skills/slidev/references/style-scoped.md +50 -0
  114. package/templates/skills/slidev/references/syntax-block-frontmatter.md +39 -0
  115. package/templates/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
  116. package/templates/skills/slidev/references/syntax-importing-slides.md +60 -0
  117. package/templates/skills/slidev/references/syntax-mdc.md +51 -0
  118. package/templates/skills/slidev/references/tool-eject-theme.md +27 -0
  119. package/templates/skills/tech-whitepaper/SKILL.md +102 -15
  120. package/templates/skills/tsdown/GENERATION.md +5 -0
  121. package/templates/skills/tsdown/SKILL.md +59 -0
  122. package/templates/skills/tsdown/references/advanced-hooks.md +87 -0
  123. package/templates/skills/tsdown/references/advanced-plugins.md +97 -0
  124. package/templates/skills/tsdown/references/advanced-programmatic.md +78 -0
  125. package/templates/skills/tsdown/references/advanced-rolldown-options.md +114 -0
  126. package/templates/skills/tsdown/references/core-cli.md +116 -0
  127. package/templates/skills/tsdown/references/core-config.md +86 -0
  128. package/templates/skills/tsdown/references/core-entry.md +74 -0
  129. package/templates/skills/tsdown/references/features-optimization.md +83 -0
  130. package/templates/skills/tsdown/references/features-shims.md +92 -0
  131. package/templates/skills/tsdown/references/features-unbundle.md +63 -0
  132. package/templates/skills/tsdown/references/features-watch.md +60 -0
  133. package/templates/skills/tsdown/references/options-dependencies.md +88 -0
  134. package/templates/skills/tsdown/references/options-dts.md +104 -0
  135. package/templates/skills/tsdown/references/options-output.md +124 -0
  136. package/templates/skills/tsdown/references/options-package-exports.md +114 -0
  137. package/templates/skills/tsdown/references/recipes-frameworks.md +109 -0
  138. package/templates/skills/tsdown/references/recipes-migration.md +84 -0
  139. package/templates/skills/turborepo/LICENSE.md +7 -0
  140. package/templates/skills/turborepo/SKILL.md +914 -0
  141. package/templates/skills/turborepo/SYNC.md +5 -0
  142. package/templates/skills/turborepo/command/turborepo.md +70 -0
  143. package/templates/skills/turborepo/references/best-practices/README.md +241 -0
  144. package/templates/skills/turborepo/references/best-practices/dependencies.md +246 -0
  145. package/templates/skills/turborepo/references/best-practices/packages.md +335 -0
  146. package/templates/skills/turborepo/references/best-practices/structure.md +269 -0
  147. package/templates/skills/turborepo/references/boundaries/README.md +126 -0
  148. package/templates/skills/turborepo/references/caching/README.md +107 -0
  149. package/templates/skills/turborepo/references/caching/gotchas.md +169 -0
  150. package/templates/skills/turborepo/references/caching/remote-cache.md +127 -0
  151. package/templates/skills/turborepo/references/ci/README.md +79 -0
  152. package/templates/skills/turborepo/references/ci/github-actions.md +162 -0
  153. package/templates/skills/turborepo/references/ci/patterns.md +145 -0
  154. package/templates/skills/turborepo/references/ci/vercel.md +103 -0
  155. package/templates/skills/turborepo/references/cli/README.md +100 -0
  156. package/templates/skills/turborepo/references/cli/commands.md +297 -0
  157. package/templates/skills/turborepo/references/configuration/README.md +211 -0
  158. package/templates/skills/turborepo/references/configuration/global-options.md +195 -0
  159. package/templates/skills/turborepo/references/configuration/gotchas.md +348 -0
  160. package/templates/skills/turborepo/references/configuration/tasks.md +285 -0
  161. package/templates/skills/turborepo/references/environment/README.md +96 -0
  162. package/templates/skills/turborepo/references/environment/gotchas.md +145 -0
  163. package/templates/skills/turborepo/references/environment/modes.md +101 -0
  164. package/templates/skills/turborepo/references/filtering/README.md +148 -0
  165. package/templates/skills/turborepo/references/filtering/patterns.md +152 -0
  166. package/templates/skills/turborepo/references/watch/README.md +99 -0
  167. package/templates/skills/unocss/GENERATION.md +5 -0
  168. package/templates/skills/unocss/SKILL.md +64 -0
  169. package/templates/skills/unocss/references/core-config.md +187 -0
  170. package/templates/skills/unocss/references/core-extracting.md +137 -0
  171. package/templates/skills/unocss/references/core-layers.md +104 -0
  172. package/templates/skills/unocss/references/core-rules.md +166 -0
  173. package/templates/skills/unocss/references/core-safelist.md +105 -0
  174. package/templates/skills/unocss/references/core-shortcuts.md +89 -0
  175. package/templates/skills/unocss/references/core-theme.md +172 -0
  176. package/templates/skills/unocss/references/core-variants.md +175 -0
  177. package/templates/skills/unocss/references/integrations-nuxt.md +199 -0
  178. package/templates/skills/unocss/references/integrations-vite.md +283 -0
  179. package/templates/skills/unocss/references/preset-attributify.md +142 -0
  180. package/templates/skills/unocss/references/preset-icons.md +184 -0
  181. package/templates/skills/unocss/references/preset-mini.md +158 -0
  182. package/templates/skills/unocss/references/preset-rem-to-px.md +97 -0
  183. package/templates/skills/unocss/references/preset-tagify.md +134 -0
  184. package/templates/skills/unocss/references/preset-typography.md +95 -0
  185. package/templates/skills/unocss/references/preset-web-fonts.md +91 -0
  186. package/templates/skills/unocss/references/preset-wind3.md +194 -0
  187. package/templates/skills/unocss/references/preset-wind4.md +247 -0
  188. package/templates/skills/unocss/references/transformer-attributify-jsx.md +156 -0
  189. package/templates/skills/unocss/references/transformer-compile-class.md +128 -0
  190. package/templates/skills/unocss/references/transformer-directives.md +157 -0
  191. package/templates/skills/unocss/references/transformer-variant-group.md +97 -0
  192. package/templates/skills/vite/GENERATION.md +5 -0
  193. package/templates/skills/vite/SKILL.md +50 -0
  194. package/templates/skills/vite/references/advanced-api.md +218 -0
  195. package/templates/skills/vite/references/advanced-backend.md +164 -0
  196. package/templates/skills/vite/references/advanced-performance.md +168 -0
  197. package/templates/skills/vite/references/advanced-plugin-api.md +258 -0
  198. package/templates/skills/vite/references/build-library.md +172 -0
  199. package/templates/skills/vite/references/build-production.md +220 -0
  200. package/templates/skills/vite/references/build-ssr.md +194 -0
  201. package/templates/skills/vite/references/core-cli.md +137 -0
  202. package/templates/skills/vite/references/core-config.md +176 -0
  203. package/templates/skills/vite/references/core-features.md +170 -0
  204. package/templates/skills/vite/references/core-plugins.md +154 -0
  205. package/templates/skills/vite/references/features-assets.md +138 -0
  206. package/templates/skills/vite/references/features-css.md +215 -0
  207. package/templates/skills/vite/references/features-dep-bundling.md +148 -0
  208. package/templates/skills/vite/references/features-env.md +161 -0
  209. package/templates/skills/vite/references/features-glob-import.md +161 -0
  210. package/templates/skills/vite/references/features-hmr.md +200 -0
  211. package/templates/skills/vite/references/features-workers.md +115 -0
  212. package/templates/skills/vitepress/GENERATION.md +5 -0
  213. package/templates/skills/vitepress/SKILL.md +65 -0
  214. package/templates/skills/vitepress/references/advanced-i18n.md +299 -0
  215. package/templates/skills/vitepress/references/advanced-ssr.md +228 -0
  216. package/templates/skills/vitepress/references/core-cli.md +119 -0
  217. package/templates/skills/vitepress/references/core-config.md +189 -0
  218. package/templates/skills/vitepress/references/core-markdown.md +277 -0
  219. package/templates/skills/vitepress/references/core-routing.md +169 -0
  220. package/templates/skills/vitepress/references/features-code-blocks.md +243 -0
  221. package/templates/skills/vitepress/references/features-data-loading.md +220 -0
  222. package/templates/skills/vitepress/references/features-dynamic-routes.md +235 -0
  223. package/templates/skills/vitepress/references/features-vue.md +224 -0
  224. package/templates/skills/vitepress/references/recipes-deploy.md +240 -0
  225. package/templates/skills/vitepress/references/theme-config.md +315 -0
  226. package/templates/skills/vitepress/references/theme-custom.md +269 -0
  227. package/templates/skills/vitepress/references/theme-customization.md +290 -0
  228. package/templates/skills/vitest/GENERATION.md +5 -0
  229. package/templates/skills/vitest/SKILL.md +52 -0
  230. package/templates/skills/vitest/references/advanced-environments.md +264 -0
  231. package/templates/skills/vitest/references/advanced-projects.md +300 -0
  232. package/templates/skills/vitest/references/advanced-type-testing.md +237 -0
  233. package/templates/skills/vitest/references/advanced-vi.md +249 -0
  234. package/templates/skills/vitest/references/core-cli.md +166 -0
  235. package/templates/skills/vitest/references/core-config.md +174 -0
  236. package/templates/skills/vitest/references/core-describe.md +193 -0
  237. package/templates/skills/vitest/references/core-expect.md +219 -0
  238. package/templates/skills/vitest/references/core-hooks.md +244 -0
  239. package/templates/skills/vitest/references/core-test-api.md +233 -0
  240. package/templates/skills/vitest/references/features-concurrency.md +250 -0
  241. package/templates/skills/vitest/references/features-context.md +238 -0
  242. package/templates/skills/vitest/references/features-coverage.md +207 -0
  243. package/templates/skills/vitest/references/features-filtering.md +211 -0
  244. package/templates/skills/vitest/references/features-mocking.md +265 -0
  245. package/templates/skills/vitest/references/features-snapshots.md +207 -0
  246. package/templates/skills/vue/GENERATION.md +5 -0
  247. package/templates/skills/vue/SKILL.md +63 -0
  248. package/templates/skills/vue/references/advanced-async-suspense.md +246 -0
  249. package/templates/skills/vue/references/advanced-provide-inject.md +174 -0
  250. package/templates/skills/vue/references/components-emits.md +139 -0
  251. package/templates/skills/vue/references/components-lifecycle.md +192 -0
  252. package/templates/skills/vue/references/components-props.md +211 -0
  253. package/templates/skills/vue/references/components-slots.md +201 -0
  254. package/templates/skills/vue/references/components-v-model.md +183 -0
  255. package/templates/skills/vue/references/core-reactivity.md +289 -0
  256. package/templates/skills/vue/references/features-composables.md +262 -0
  257. package/templates/skills/vue/references/features-directives.md +224 -0
  258. package/templates/skills/vue/references/features-script-setup.md +247 -0
  259. package/templates/skills/vue/references/features-template-refs.md +212 -0
  260. package/templates/skills/vue/references/features-typescript.md +274 -0
  261. package/templates/skills/vue-best-practices/LICENSE.md +21 -0
  262. package/templates/skills/vue-best-practices/SKILL.md +38 -0
  263. package/templates/skills/vue-best-practices/SYNC.md +5 -0
  264. package/templates/skills/vue-best-practices/rules/codeactions-save-performance.md +79 -0
  265. package/templates/skills/vue-best-practices/rules/data-attributes-config.md +74 -0
  266. package/templates/skills/vue-best-practices/rules/deep-watch-numeric.md +97 -0
  267. package/templates/skills/vue-best-practices/rules/define-model-update-event.md +79 -0
  268. package/templates/skills/vue-best-practices/rules/duplicate-plugin-detection.md +102 -0
  269. package/templates/skills/vue-best-practices/rules/extract-component-props.md +57 -0
  270. package/templates/skills/vue-best-practices/rules/fallthrough-attributes.md +63 -0
  271. package/templates/skills/vue-best-practices/rules/hmr-vue-ssr.md +124 -0
  272. package/templates/skills/vue-best-practices/rules/module-resolution-bundler.md +81 -0
  273. package/templates/skills/vue-best-practices/rules/pinia-store-mocking.md +159 -0
  274. package/templates/skills/vue-best-practices/rules/script-setup-jsdoc.md +85 -0
  275. package/templates/skills/vue-best-practices/rules/strict-css-modules.md +68 -0
  276. package/templates/skills/vue-best-practices/rules/volar-3-breaking-changes.md +65 -0
  277. package/templates/skills/vue-best-practices/rules/vue-directive-comments.md +73 -0
  278. package/templates/skills/vue-best-practices/rules/vue-router-typed-params.md +81 -0
  279. package/templates/skills/vue-best-practices/rules/vue-tsc-strict-templates.md +69 -0
  280. package/templates/skills/vue-best-practices/rules/with-defaults-union-types.md +102 -0
  281. package/templates/skills/vueuse-functions/LICENSE.md +21 -0
  282. package/templates/skills/vueuse-functions/SKILL.md +418 -0
  283. package/templates/skills/vueuse-functions/SYNC.md +5 -0
  284. package/templates/skills/vueuse-functions/references/computedAsync.md +159 -0
  285. package/templates/skills/vueuse-functions/references/computedEager.md +62 -0
  286. package/templates/skills/vueuse-functions/references/computedInject.md +86 -0
  287. package/templates/skills/vueuse-functions/references/computedWithControl.md +100 -0
  288. package/templates/skills/vueuse-functions/references/createEventHook.md +86 -0
  289. package/templates/skills/vueuse-functions/references/createGenericProjection.md +25 -0
  290. package/templates/skills/vueuse-functions/references/createGlobalState.md +95 -0
  291. package/templates/skills/vueuse-functions/references/createInjectionState.md +215 -0
  292. package/templates/skills/vueuse-functions/references/createProjection.md +31 -0
  293. package/templates/skills/vueuse-functions/references/createRef.md +54 -0
  294. package/templates/skills/vueuse-functions/references/createReusableTemplate.md +357 -0
  295. package/templates/skills/vueuse-functions/references/createSharedComposable.md +42 -0
  296. package/templates/skills/vueuse-functions/references/createTemplatePromise.md +259 -0
  297. package/templates/skills/vueuse-functions/references/createUnrefFn.md +51 -0
  298. package/templates/skills/vueuse-functions/references/extendRef.md +76 -0
  299. package/templates/skills/vueuse-functions/references/from.md +48 -0
  300. package/templates/skills/vueuse-functions/references/get.md +30 -0
  301. package/templates/skills/vueuse-functions/references/injectLocal.md +35 -0
  302. package/templates/skills/vueuse-functions/references/isDefined.md +31 -0
  303. package/templates/skills/vueuse-functions/references/logicAnd.md +40 -0
  304. package/templates/skills/vueuse-functions/references/logicNot.md +36 -0
  305. package/templates/skills/vueuse-functions/references/logicOr.md +40 -0
  306. package/templates/skills/vueuse-functions/references/makeDestructurable.md +41 -0
  307. package/templates/skills/vueuse-functions/references/onClickOutside.md +187 -0
  308. package/templates/skills/vueuse-functions/references/onElementRemoval.md +64 -0
  309. package/templates/skills/vueuse-functions/references/onKeyStroke.md +176 -0
  310. package/templates/skills/vueuse-functions/references/onLongPress.md +170 -0
  311. package/templates/skills/vueuse-functions/references/onStartTyping.md +43 -0
  312. package/templates/skills/vueuse-functions/references/provideLocal.md +37 -0
  313. package/templates/skills/vueuse-functions/references/reactify.md +144 -0
  314. package/templates/skills/vueuse-functions/references/reactifyObject.md +61 -0
  315. package/templates/skills/vueuse-functions/references/reactiveComputed.md +34 -0
  316. package/templates/skills/vueuse-functions/references/reactiveOmit.md +86 -0
  317. package/templates/skills/vueuse-functions/references/reactivePick.md +106 -0
  318. package/templates/skills/vueuse-functions/references/refAutoReset.md +44 -0
  319. package/templates/skills/vueuse-functions/references/refDebounced.md +81 -0
  320. package/templates/skills/vueuse-functions/references/refDefault.md +36 -0
  321. package/templates/skills/vueuse-functions/references/refManualReset.md +44 -0
  322. package/templates/skills/vueuse-functions/references/refThrottled.md +99 -0
  323. package/templates/skills/vueuse-functions/references/refWithControl.md +146 -0
  324. package/templates/skills/vueuse-functions/references/set.md +30 -0
  325. package/templates/skills/vueuse-functions/references/syncRef.md +195 -0
  326. package/templates/skills/vueuse-functions/references/syncRefs.md +128 -0
  327. package/templates/skills/vueuse-functions/references/templateRef.md +86 -0
  328. package/templates/skills/vueuse-functions/references/toObserver.md +38 -0
  329. package/templates/skills/vueuse-functions/references/toReactive.md +41 -0
  330. package/templates/skills/vueuse-functions/references/toRef.md +75 -0
  331. package/templates/skills/vueuse-functions/references/toRefs.md +81 -0
  332. package/templates/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
  333. package/templates/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
  334. package/templates/skills/vueuse-functions/references/tryOnMounted.md +34 -0
  335. package/templates/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
  336. package/templates/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
  337. package/templates/skills/vueuse-functions/references/unrefElement.md +54 -0
  338. package/templates/skills/vueuse-functions/references/until.md +165 -0
  339. package/templates/skills/vueuse-functions/references/useAbs.md +31 -0
  340. package/templates/skills/vueuse-functions/references/useActiveElement.md +65 -0
  341. package/templates/skills/vueuse-functions/references/useAnimate.md +140 -0
  342. package/templates/skills/vueuse-functions/references/useArrayDifference.md +84 -0
  343. package/templates/skills/vueuse-functions/references/useArrayEvery.md +59 -0
  344. package/templates/skills/vueuse-functions/references/useArrayFilter.md +63 -0
  345. package/templates/skills/vueuse-functions/references/useArrayFind.md +50 -0
  346. package/templates/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
  347. package/templates/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
  348. package/templates/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
  349. package/templates/skills/vueuse-functions/references/useArrayJoin.md +74 -0
  350. package/templates/skills/vueuse-functions/references/useArrayMap.md +59 -0
  351. package/templates/skills/vueuse-functions/references/useArrayReduce.md +81 -0
  352. package/templates/skills/vueuse-functions/references/useArraySome.md +59 -0
  353. package/templates/skills/vueuse-functions/references/useArrayUnique.md +76 -0
  354. package/templates/skills/vueuse-functions/references/useAsyncQueue.md +87 -0
  355. package/templates/skills/vueuse-functions/references/useAsyncState.md +140 -0
  356. package/templates/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
  357. package/templates/skills/vueuse-functions/references/useAuth.md +114 -0
  358. package/templates/skills/vueuse-functions/references/useAverage.md +36 -0
  359. package/templates/skills/vueuse-functions/references/useAxios.md +292 -0
  360. package/templates/skills/vueuse-functions/references/useBase64.md +88 -0
  361. package/templates/skills/vueuse-functions/references/useBattery.md +67 -0
  362. package/templates/skills/vueuse-functions/references/useBluetooth.md +161 -0
  363. package/templates/skills/vueuse-functions/references/useBreakpoints.md +128 -0
  364. package/templates/skills/vueuse-functions/references/useBroadcastChannel.md +74 -0
  365. package/templates/skills/vueuse-functions/references/useBrowserLocation.md +83 -0
  366. package/templates/skills/vueuse-functions/references/useCached.md +53 -0
  367. package/templates/skills/vueuse-functions/references/useCeil.md +31 -0
  368. package/templates/skills/vueuse-functions/references/useChangeCase.md +79 -0
  369. package/templates/skills/vueuse-functions/references/useClamp.md +51 -0
  370. package/templates/skills/vueuse-functions/references/useClipboard.md +99 -0
  371. package/templates/skills/vueuse-functions/references/useClipboardItems.md +93 -0
  372. package/templates/skills/vueuse-functions/references/useCloned.md +91 -0
  373. package/templates/skills/vueuse-functions/references/useColorMode.md +171 -0
  374. package/templates/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
  375. package/templates/skills/vueuse-functions/references/useCookies.md +162 -0
  376. package/templates/skills/vueuse-functions/references/useCountdown.md +102 -0
  377. package/templates/skills/vueuse-functions/references/useCounter.md +86 -0
  378. package/templates/skills/vueuse-functions/references/useCssVar.md +50 -0
  379. package/templates/skills/vueuse-functions/references/useCurrentElement.md +61 -0
  380. package/templates/skills/vueuse-functions/references/useCycleList.md +75 -0
  381. package/templates/skills/vueuse-functions/references/useDark.md +142 -0
  382. package/templates/skills/vueuse-functions/references/useDateFormat.md +145 -0
  383. package/templates/skills/vueuse-functions/references/useDebounceFn.md +100 -0
  384. package/templates/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
  385. package/templates/skills/vueuse-functions/references/useDeviceMotion.md +87 -0
  386. package/templates/skills/vueuse-functions/references/useDeviceOrientation.md +62 -0
  387. package/templates/skills/vueuse-functions/references/useDevicePixelRatio.md +44 -0
  388. package/templates/skills/vueuse-functions/references/useDevicesList.md +90 -0
  389. package/templates/skills/vueuse-functions/references/useDisplayMedia.md +71 -0
  390. package/templates/skills/vueuse-functions/references/useDocumentVisibility.md +45 -0
  391. package/templates/skills/vueuse-functions/references/useDraggable.md +210 -0
  392. package/templates/skills/vueuse-functions/references/useDrauu.md +65 -0
  393. package/templates/skills/vueuse-functions/references/useDropZone.md +83 -0
  394. package/templates/skills/vueuse-functions/references/useElementBounding.md +131 -0
  395. package/templates/skills/vueuse-functions/references/useElementByPoint.md +45 -0
  396. package/templates/skills/vueuse-functions/references/useElementHover.md +79 -0
  397. package/templates/skills/vueuse-functions/references/useElementSize.md +78 -0
  398. package/templates/skills/vueuse-functions/references/useElementVisibility.md +126 -0
  399. package/templates/skills/vueuse-functions/references/useEventBus.md +101 -0
  400. package/templates/skills/vueuse-functions/references/useEventListener.md +184 -0
  401. package/templates/skills/vueuse-functions/references/useEventSource.md +204 -0
  402. package/templates/skills/vueuse-functions/references/useExtractedObservable.md +185 -0
  403. package/templates/skills/vueuse-functions/references/useEyeDropper.md +71 -0
  404. package/templates/skills/vueuse-functions/references/useFavicon.md +67 -0
  405. package/templates/skills/vueuse-functions/references/useFetch.md +546 -0
  406. package/templates/skills/vueuse-functions/references/useFileDialog.md +91 -0
  407. package/templates/skills/vueuse-functions/references/useFileSystemAccess.md +162 -0
  408. package/templates/skills/vueuse-functions/references/useFirestore.md +104 -0
  409. package/templates/skills/vueuse-functions/references/useFloor.md +31 -0
  410. package/templates/skills/vueuse-functions/references/useFocus.md +99 -0
  411. package/templates/skills/vueuse-functions/references/useFocusTrap.md +245 -0
  412. package/templates/skills/vueuse-functions/references/useFocusWithin.md +57 -0
  413. package/templates/skills/vueuse-functions/references/useFps.md +28 -0
  414. package/templates/skills/vueuse-functions/references/useFullscreen.md +75 -0
  415. package/templates/skills/vueuse-functions/references/useFuse.md +107 -0
  416. package/templates/skills/vueuse-functions/references/useGamepad.md +223 -0
  417. package/templates/skills/vueuse-functions/references/useGeolocation.md +86 -0
  418. package/templates/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
  419. package/templates/skills/vueuse-functions/references/useIdle.md +89 -0
  420. package/templates/skills/vueuse-functions/references/useImage.md +86 -0
  421. package/templates/skills/vueuse-functions/references/useInfiniteScroll.md +157 -0
  422. package/templates/skills/vueuse-functions/references/useIntersectionObserver.md +118 -0
  423. package/templates/skills/vueuse-functions/references/useInterval.md +69 -0
  424. package/templates/skills/vueuse-functions/references/useIntervalFn.md +50 -0
  425. package/templates/skills/vueuse-functions/references/useIpcRenderer.md +118 -0
  426. package/templates/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
  427. package/templates/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
  428. package/templates/skills/vueuse-functions/references/useJwt.md +57 -0
  429. package/templates/skills/vueuse-functions/references/useKeyModifier.md +87 -0
  430. package/templates/skills/vueuse-functions/references/useLastChanged.md +63 -0
  431. package/templates/skills/vueuse-functions/references/useLocalStorage.md +41 -0
  432. package/templates/skills/vueuse-functions/references/useMagicKeys.md +217 -0
  433. package/templates/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
  434. package/templates/skills/vueuse-functions/references/useMath.md +47 -0
  435. package/templates/skills/vueuse-functions/references/useMax.md +36 -0
  436. package/templates/skills/vueuse-functions/references/useMediaControls.md +571 -0
  437. package/templates/skills/vueuse-functions/references/useMediaQuery.md +53 -0
  438. package/templates/skills/vueuse-functions/references/useMemoize.md +175 -0
  439. package/templates/skills/vueuse-functions/references/useMemory.md +56 -0
  440. package/templates/skills/vueuse-functions/references/useMin.md +36 -0
  441. package/templates/skills/vueuse-functions/references/useMounted.md +38 -0
  442. package/templates/skills/vueuse-functions/references/useMouse.md +114 -0
  443. package/templates/skills/vueuse-functions/references/useMouseInElement.md +123 -0
  444. package/templates/skills/vueuse-functions/references/useMousePressed.md +112 -0
  445. package/templates/skills/vueuse-functions/references/useMutationObserver.md +62 -0
  446. package/templates/skills/vueuse-functions/references/useNProgress.md +78 -0
  447. package/templates/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
  448. package/templates/skills/vueuse-functions/references/useNetwork.md +106 -0
  449. package/templates/skills/vueuse-functions/references/useNow.md +75 -0
  450. package/templates/skills/vueuse-functions/references/useObjectUrl.md +55 -0
  451. package/templates/skills/vueuse-functions/references/useObservable.md +67 -0
  452. package/templates/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
  453. package/templates/skills/vueuse-functions/references/useOnline.md +41 -0
  454. package/templates/skills/vueuse-functions/references/usePageLeave.md +42 -0
  455. package/templates/skills/vueuse-functions/references/useParallax.md +58 -0
  456. package/templates/skills/vueuse-functions/references/useParentElement.md +54 -0
  457. package/templates/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
  458. package/templates/skills/vueuse-functions/references/usePermission.md +78 -0
  459. package/templates/skills/vueuse-functions/references/usePointer.md +89 -0
  460. package/templates/skills/vueuse-functions/references/usePointerLock.md +60 -0
  461. package/templates/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
  462. package/templates/skills/vueuse-functions/references/usePrecision.md +49 -0
  463. package/templates/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
  464. package/templates/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
  465. package/templates/skills/vueuse-functions/references/usePreferredDark.md +41 -0
  466. package/templates/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
  467. package/templates/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
  468. package/templates/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
  469. package/templates/skills/vueuse-functions/references/usePrevious.md +40 -0
  470. package/templates/skills/vueuse-functions/references/useProjection.md +38 -0
  471. package/templates/skills/vueuse-functions/references/useQRCode.md +53 -0
  472. package/templates/skills/vueuse-functions/references/useRTDB.md +70 -0
  473. package/templates/skills/vueuse-functions/references/useRafFn.md +68 -0
  474. package/templates/skills/vueuse-functions/references/useRefHistory.md +292 -0
  475. package/templates/skills/vueuse-functions/references/useResizeObserver.md +110 -0
  476. package/templates/skills/vueuse-functions/references/useRound.md +31 -0
  477. package/templates/skills/vueuse-functions/references/useRouteHash.md +27 -0
  478. package/templates/skills/vueuse-functions/references/useRouteParams.md +38 -0
  479. package/templates/skills/vueuse-functions/references/useRouteQuery.md +38 -0
  480. package/templates/skills/vueuse-functions/references/useSSRWidth.md +47 -0
  481. package/templates/skills/vueuse-functions/references/useScreenOrientation.md +96 -0
  482. package/templates/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
  483. package/templates/skills/vueuse-functions/references/useScriptTag.md +116 -0
  484. package/templates/skills/vueuse-functions/references/useScroll.md +238 -0
  485. package/templates/skills/vueuse-functions/references/useScrollLock.md +66 -0
  486. package/templates/skills/vueuse-functions/references/useSessionStorage.md +41 -0
  487. package/templates/skills/vueuse-functions/references/useShare.md +68 -0
  488. package/templates/skills/vueuse-functions/references/useSortable.md +177 -0
  489. package/templates/skills/vueuse-functions/references/useSorted.md +90 -0
  490. package/templates/skills/vueuse-functions/references/useSpeechRecognition.md +94 -0
  491. package/templates/skills/vueuse-functions/references/useSpeechSynthesis.md +105 -0
  492. package/templates/skills/vueuse-functions/references/useStepper.md +137 -0
  493. package/templates/skills/vueuse-functions/references/useStorage.md +219 -0
  494. package/templates/skills/vueuse-functions/references/useStorageAsync.md +134 -0
  495. package/templates/skills/vueuse-functions/references/useStyleTag.md +131 -0
  496. package/templates/skills/vueuse-functions/references/useSubject.md +52 -0
  497. package/templates/skills/vueuse-functions/references/useSubscription.md +33 -0
  498. package/templates/skills/vueuse-functions/references/useSum.md +36 -0
  499. package/templates/skills/vueuse-functions/references/useSupported.md +29 -0
  500. package/templates/skills/vueuse-functions/references/useSwipe.md +75 -0
  501. package/templates/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
  502. package/templates/skills/vueuse-functions/references/useTextDirection.md +75 -0
  503. package/templates/skills/vueuse-functions/references/useTextSelection.md +40 -0
  504. package/templates/skills/vueuse-functions/references/useTextareaAutosize.md +97 -0
  505. package/templates/skills/vueuse-functions/references/useThrottleFn.md +57 -0
  506. package/templates/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
  507. package/templates/skills/vueuse-functions/references/useTimeAgo.md +152 -0
  508. package/templates/skills/vueuse-functions/references/useTimeAgoIntl.md +116 -0
  509. package/templates/skills/vueuse-functions/references/useTimeout.md +75 -0
  510. package/templates/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
  511. package/templates/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
  512. package/templates/skills/vueuse-functions/references/useTimestamp.md +85 -0
  513. package/templates/skills/vueuse-functions/references/useTitle.md +113 -0
  514. package/templates/skills/vueuse-functions/references/useToNumber.md +54 -0
  515. package/templates/skills/vueuse-functions/references/useToString.md +34 -0
  516. package/templates/skills/vueuse-functions/references/useToggle.md +56 -0
  517. package/templates/skills/vueuse-functions/references/useTransition.md +265 -0
  518. package/templates/skills/vueuse-functions/references/useTrunc.md +33 -0
  519. package/templates/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
  520. package/templates/skills/vueuse-functions/references/useUserMedia.md +1138 -0
  521. package/templates/skills/vueuse-functions/references/useVModel.md +116 -0
  522. package/templates/skills/vueuse-functions/references/useVModels.md +67 -0
  523. package/templates/skills/vueuse-functions/references/useVibrate.md +83 -0
  524. package/templates/skills/vueuse-functions/references/useVirtualList.md +184 -0
  525. package/templates/skills/vueuse-functions/references/useWakeLock.md +50 -0
  526. package/templates/skills/vueuse-functions/references/useWebNotification.md +177 -0
  527. package/templates/skills/vueuse-functions/references/useWebSocket.md +268 -0
  528. package/templates/skills/vueuse-functions/references/useWebWorker.md +60 -0
  529. package/templates/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
  530. package/templates/skills/vueuse-functions/references/useWindowFocus.md +46 -0
  531. package/templates/skills/vueuse-functions/references/useWindowScroll.md +62 -0
  532. package/templates/skills/vueuse-functions/references/useWindowSize.md +76 -0
  533. package/templates/skills/vueuse-functions/references/useZoomFactor.md +53 -0
  534. package/templates/skills/vueuse-functions/references/useZoomLevel.md +53 -0
  535. package/templates/skills/vueuse-functions/references/watchArray.md +53 -0
  536. package/templates/skills/vueuse-functions/references/watchAtMost.md +54 -0
  537. package/templates/skills/vueuse-functions/references/watchDebounced.md +72 -0
  538. package/templates/skills/vueuse-functions/references/watchDeep.md +54 -0
  539. package/templates/skills/vueuse-functions/references/watchExtractedObservable.md +167 -0
  540. package/templates/skills/vueuse-functions/references/watchIgnorable.md +120 -0
  541. package/templates/skills/vueuse-functions/references/watchImmediate.md +44 -0
  542. package/templates/skills/vueuse-functions/references/watchOnce.md +41 -0
  543. package/templates/skills/vueuse-functions/references/watchPausable.md +86 -0
  544. package/templates/skills/vueuse-functions/references/watchThrottled.md +73 -0
  545. package/templates/skills/vueuse-functions/references/watchTriggerable.md +97 -0
  546. package/templates/skills/vueuse-functions/references/watchWithFilter.md +55 -0
  547. package/templates/skills/vueuse-functions/references/whenever.md +100 -0
  548. package/templates/skills/web-design-guidelines/SKILL.md +39 -0
  549. package/templates/skills/web-design-guidelines/SYNC.md +5 -0
@@ -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
+ /**
111
+ * Reactive bounding box of an HTML element.
112
+ *
113
+ * @see https://vueuse.org/useElementBounding
114
+ * @param target
115
+ */
116
+ export declare function useElementBounding(
117
+ target: MaybeComputedElementRef,
118
+ options?: UseElementBoundingOptions,
119
+ ): {
120
+ height: ShallowRef<number, number>
121
+ bottom: ShallowRef<number, number>
122
+ left: ShallowRef<number, number>
123
+ right: ShallowRef<number, number>
124
+ top: ShallowRef<number, number>
125
+ width: ShallowRef<number, number>
126
+ x: ShallowRef<number, number>
127
+ y: ShallowRef<number, number>
128
+ update: () => void
129
+ }
130
+ export type UseElementBoundingReturn = ReturnType<typeof useElementBounding>
131
+ ```
@@ -0,0 +1,45 @@
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 {
23
+ x: MaybeRefOrGetter<number>
24
+ y: MaybeRefOrGetter<number>
25
+ multiple?: MaybeRefOrGetter<Multiple>
26
+ immediate?: boolean
27
+ interval?: "requestAnimationFrame" | number
28
+ }
29
+ export interface UseElementByPointReturn<Multiple extends boolean = false>
30
+ extends Pausable {
31
+ isSupported: ComputedRef<boolean>
32
+ element: ShallowRef<
33
+ Multiple extends true ? HTMLElement[] : HTMLElement | null
34
+ >
35
+ }
36
+ /**
37
+ * Reactive element by point.
38
+ *
39
+ * @see https://vueuse.org/useElementByPoint
40
+ * @param options - UseElementByPointOptions
41
+ */
42
+ export declare function useElementByPoint<M extends boolean = false>(
43
+ options: UseElementByPointOptions<M>,
44
+ ): UseElementByPointReturn<M>
45
+ ```
@@ -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
+ ```
@@ -0,0 +1,78 @@
1
+ ---
2
+ category: Elements
3
+ ---
4
+
5
+ # useElementSize
6
+
7
+ Reactive size of an HTML element. [ResizeObserver MDN](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver)
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useElementSize } from '@vueuse/core'
14
+ import { useTemplateRef } from 'vue'
15
+
16
+ const el = useTemplateRef('el')
17
+ const { width, height } = useElementSize(el)
18
+ </script>
19
+
20
+ <template>
21
+ <div ref="el">
22
+ Height: {{ height }}
23
+ Width: {{ width }}
24
+ </div>
25
+ </template>
26
+ ```
27
+
28
+ ## Component Usage
29
+
30
+ ```vue
31
+ <template>
32
+ <UseElementSize v-slot="{ width, height }">
33
+ Width: {{ width }} Height: {{ height }}
34
+ </UseElementSize>
35
+ </template>
36
+ ```
37
+
38
+ ## Directive Usage
39
+
40
+ ```vue
41
+ <script setup lang="ts">
42
+ import { vElementSize } from '@vueuse/components'
43
+
44
+ function onResize({ width, height }: { width: number, height: number }) {
45
+ console.log(width, height)
46
+ }
47
+ </script>
48
+
49
+ <template>
50
+ <textarea v-element-size="onResize" />
51
+ <!-- with options -->
52
+ <textarea v-element-size="[onResize, { width: 100, height: 100 }, { box: 'content-box' }]" />
53
+ </template>
54
+ ```
55
+
56
+ ## Type Declarations
57
+
58
+ ```ts
59
+ export interface ElementSize {
60
+ width: number
61
+ height: number
62
+ }
63
+ /**
64
+ * Reactive size of an HTML element.
65
+ *
66
+ * @see https://vueuse.org/useElementSize
67
+ */
68
+ export declare function useElementSize(
69
+ target: MaybeComputedElementRef,
70
+ initialSize?: ElementSize,
71
+ options?: UseResizeObserverOptions,
72
+ ): {
73
+ width: ShallowRef<number, number>
74
+ height: ShallowRef<number, number>
75
+ stop: () => void
76
+ }
77
+ export type UseElementSizeReturn = ReturnType<typeof useElementSize>
78
+ ```
@@ -0,0 +1,126 @@
1
+ ---
2
+ category: Elements
3
+ ---
4
+
5
+ # useElementVisibility
6
+
7
+ Tracks the visibility of an element within the viewport.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useElementVisibility } from '@vueuse/core'
14
+ import { useTemplateRef } from 'vue'
15
+
16
+ const target = useTemplateRef('target')
17
+ const targetIsVisible = useElementVisibility(target)
18
+ </script>
19
+
20
+ <template>
21
+ <div ref="target">
22
+ <h1>Hello world</h1>
23
+ </div>
24
+ </template>
25
+ ```
26
+
27
+ ### rootMargin
28
+
29
+ If you wish to trigger your callback sooner before the element is fully visible, you can use
30
+ the `rootMargin` option (See [MDN IntersectionObserver/rootMargin](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/rootMargin)).
31
+
32
+ ```ts
33
+ import { useElementVisibility } from '@vueuse/core'
34
+ // ---cut---
35
+ const targetIsVisible = useElementVisibility(target, {
36
+ rootMargin: '0px 0px 100px 0px',
37
+ })
38
+ ```
39
+
40
+ ### threshold
41
+
42
+ If you want to control the percentage of the visibility required to update the value, you can use the `threshold` option (See [MDN IntersectionObserver/threshold](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver#threshold)).
43
+
44
+ ```ts
45
+ const targetIsVisible = useElementVisibility(target, {
46
+ threshold: 1.0, // 100% visible
47
+ })
48
+ ```
49
+
50
+ ## Component Usage
51
+
52
+ ```vue
53
+ <template>
54
+ <UseElementVisibility v-slot="{ isVisible }">
55
+ Is Visible: {{ isVisible }}
56
+ </UseElementVisibility>
57
+ </template>
58
+ ```
59
+
60
+ ## Directive Usage
61
+
62
+ ```vue
63
+ <script setup lang="ts">
64
+ import { vElementVisibility } from '@vueuse/components'
65
+ import { shallowRef, useTemplateRef } from 'vue'
66
+
67
+ const target = useTemplateRef('target')
68
+ const isVisible = shallowRef(false)
69
+
70
+ function onElementVisibility(state) {
71
+ isVisible.value = state
72
+ }
73
+ </script>
74
+
75
+ <template>
76
+ <div v-element-visibility="onElementVisibility">
77
+ {{ isVisible ? 'inside' : 'outside' }}
78
+ </div>
79
+
80
+ <!-- with options -->
81
+ <div ref="target">
82
+ <div v-element-visibility="[onElementVisibility, { scrollTarget: target }]">
83
+ {{ isVisible ? 'inside' : 'outside' }}
84
+ </div>
85
+ </div>
86
+ </template>
87
+ ```
88
+
89
+ ## Type Declarations
90
+
91
+ ```ts
92
+ export interface UseElementVisibilityOptions
93
+ extends ConfigurableWindow,
94
+ Pick<UseIntersectionObserverOptions, "threshold"> {
95
+ /**
96
+ * Initial value.
97
+ *
98
+ * @default false
99
+ */
100
+ initialValue?: boolean
101
+ /**
102
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/rootMargin
103
+ */
104
+ rootMargin?: MaybeRefOrGetter<string>
105
+ /**
106
+ * The element that is used as the viewport for checking visibility of the target.
107
+ */
108
+ scrollTarget?: MaybeRefOrGetter<HTMLElement | undefined | null>
109
+ /**
110
+ * Stop tracking when element visibility changes for the first time
111
+ *
112
+ * @default false
113
+ */
114
+ once?: boolean
115
+ }
116
+ /**
117
+ * Tracks the visibility of an element within the viewport.
118
+ *
119
+ * @see https://vueuse.org/useElementVisibility
120
+ */
121
+ export declare function useElementVisibility(
122
+ element: MaybeComputedElementRef,
123
+ options?: UseElementVisibilityOptions,
124
+ ): ShallowRef<boolean, boolean>
125
+ export type UseElementVisibilityReturn = ReturnType<typeof useElementVisibility>
126
+ ```
@@ -0,0 +1,101 @@
1
+ ---
2
+ category: Utilities
3
+ ---
4
+
5
+ # useEventBus
6
+
7
+ A basic event bus.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useEventBus } from '@vueuse/core'
13
+
14
+ const bus = useEventBus<string>('news')
15
+
16
+ function listener(event: string) {
17
+ console.log(`news: ${event}`)
18
+ }
19
+
20
+ // listen to an event
21
+ const unsubscribe = bus.on(listener)
22
+
23
+ // fire an event
24
+ bus.emit('The Tokyo Olympics has begun')
25
+
26
+ // unregister the listener
27
+ unsubscribe()
28
+ // or
29
+ bus.off(listener)
30
+
31
+ // clearing all listeners
32
+ bus.reset()
33
+ ```
34
+
35
+ Listeners registered inside of components `setup` will be unregistered automatically when the component gets unmounted.
36
+
37
+ ## TypeScript
38
+
39
+ Using `EventBusKey` is the key to bind the event type to the key, similar to Vue's [`InjectionKey`](https://antfu.me/posts/typed-provide-and-inject-in-vue) util.
40
+
41
+ ```ts
42
+ // fooKey.ts
43
+ import type { EventBusKey } from '@vueuse/core'
44
+
45
+ export const fooKey: EventBusKey<{ name: foo }> = Symbol('symbol-key')
46
+ ```
47
+
48
+ ```ts
49
+ import { useEventBus } from '@vueuse/core'
50
+
51
+ import { fooKey } from './fooKey'
52
+
53
+ const bus = useEventBus(fooKey)
54
+
55
+ bus.on((e) => {
56
+ // `e` will be `{ name: foo }`
57
+ })
58
+ ```
59
+
60
+ ## Type Declarations
61
+
62
+ ```ts
63
+ export type EventBusListener<T = unknown, P = any> = (
64
+ event: T,
65
+ payload?: P,
66
+ ) => void
67
+ export type EventBusEvents<T, P = any> = Set<EventBusListener<T, P>>
68
+ export interface EventBusKey<T> extends Symbol {}
69
+ export type EventBusIdentifier<T = unknown> = EventBusKey<T> | string | number
70
+ export interface UseEventBusReturn<T, P> {
71
+ /**
72
+ * Subscribe to an event. When calling emit, the listeners will execute.
73
+ * @param listener watch listener.
74
+ * @returns a stop function to remove the current callback.
75
+ */
76
+ on: (listener: EventBusListener<T, P>) => Fn
77
+ /**
78
+ * Similar to `on`, but only fires once
79
+ * @param listener watch listener.
80
+ * @returns a stop function to remove the current callback.
81
+ */
82
+ once: (listener: EventBusListener<T, P>) => Fn
83
+ /**
84
+ * Emit an event, the corresponding event listeners will execute.
85
+ * @param event data sent.
86
+ */
87
+ emit: (event?: T, payload?: P) => void
88
+ /**
89
+ * Remove the corresponding listener.
90
+ * @param listener watch listener.
91
+ */
92
+ off: (listener: EventBusListener<T>) => void
93
+ /**
94
+ * Clear all events
95
+ */
96
+ reset: () => void
97
+ }
98
+ export declare function useEventBus<T = unknown, P = any>(
99
+ key: EventBusIdentifier<T>,
100
+ ): UseEventBusReturn<T, P>
101
+ ```