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,34 @@
1
+ ---
2
+ category: Component
3
+ ---
4
+
5
+ # tryOnMounted
6
+
7
+ Safe `onMounted`. Call `onMounted()` if it's inside a component lifecycle, if not, just call the function
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { tryOnMounted } from '@vueuse/core'
13
+
14
+ tryOnMounted(() => {
15
+
16
+ })
17
+ ```
18
+
19
+ ## Type Declarations
20
+
21
+ ```ts
22
+ /**
23
+ * Call onMounted() if it's inside a component lifecycle, if not, just call the function
24
+ *
25
+ * @param fn
26
+ * @param sync if set to false, it will run in the nextTick() of Vue
27
+ * @param target
28
+ */
29
+ export declare function tryOnMounted(
30
+ fn: Fn,
31
+ sync?: boolean,
32
+ target?: ComponentInternalInstance | null,
33
+ ): void
34
+ ```
@@ -0,0 +1,31 @@
1
+ ---
2
+ category: Component
3
+ ---
4
+
5
+ # tryOnScopeDispose
6
+
7
+ Safe `onScopeDispose`. Call `onScopeDispose()` if it's inside an effect scope lifecycle, if not, do nothing
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { tryOnScopeDispose } from '@vueuse/core'
13
+
14
+ tryOnScopeDispose(() => {
15
+
16
+ })
17
+ ```
18
+
19
+ ## Type Declarations
20
+
21
+ ```ts
22
+ /**
23
+ * Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing
24
+ *
25
+ * @param fn
26
+ */
27
+ export declare function tryOnScopeDispose(
28
+ fn: Fn,
29
+ failSilently?: boolean,
30
+ ): boolean
31
+ ```
@@ -0,0 +1,32 @@
1
+ ---
2
+ category: Component
3
+ ---
4
+
5
+ # tryOnUnmounted
6
+
7
+ Safe `onUnmounted`. Call `onUnmounted()` if it's inside a component lifecycle, if not, do nothing
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { tryOnUnmounted } from '@vueuse/core'
13
+
14
+ tryOnUnmounted(() => {
15
+
16
+ })
17
+ ```
18
+
19
+ ## Type Declarations
20
+
21
+ ```ts
22
+ /**
23
+ * Call onUnmounted() if it's inside a component lifecycle, if not, do nothing
24
+ *
25
+ * @param fn
26
+ * @param target
27
+ */
28
+ export declare function tryOnUnmounted(
29
+ fn: Fn,
30
+ target?: ComponentInternalInstance | null,
31
+ ): void
32
+ ```
@@ -0,0 +1,54 @@
1
+ ---
2
+ category: Component
3
+ ---
4
+
5
+ # unrefElement
6
+
7
+ Retrieves the underlying DOM element from a Vue ref or component instance
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { unrefElement } from '@vueuse/core'
14
+ import { onMounted, useTemplateRef } from 'vue'
15
+
16
+ const div = useTemplateRef('div') // will be bound to the <div> element
17
+ const hello = useTemplateRef('hello') // will be bound to the HelloWorld Component
18
+
19
+ onMounted(() => {
20
+ console.log(unrefElement(div)) // the <div> element
21
+ console.log(unrefElement(hello)) // the root element of the HelloWorld Component
22
+ })
23
+ </script>
24
+
25
+ <template>
26
+ <div ref="div" />
27
+ <HelloWorld ref="hello" />
28
+ </template>
29
+ ```
30
+
31
+ ## Type Declarations
32
+
33
+ ```ts
34
+ export type VueInstance = ComponentPublicInstance
35
+ export type MaybeElementRef<T extends MaybeElement = MaybeElement> = MaybeRef<T>
36
+ export type MaybeComputedElementRef<T extends MaybeElement = MaybeElement> =
37
+ MaybeRefOrGetter<T>
38
+ export type MaybeElement =
39
+ | HTMLElement
40
+ | SVGElement
41
+ | VueInstance
42
+ | undefined
43
+ | null
44
+ export type UnRefElementReturn<T extends MaybeElement = MaybeElement> =
45
+ T extends VueInstance ? Exclude<MaybeElement, VueInstance> : T | undefined
46
+ /**
47
+ * Get the dom element of a ref of element or Vue component instance
48
+ *
49
+ * @param elRef
50
+ */
51
+ export declare function unrefElement<T extends MaybeElement>(
52
+ elRef: MaybeComputedElementRef<T>,
53
+ ): UnRefElementReturn<T>
54
+ ```
@@ -0,0 +1,161 @@
1
+ ---
2
+ category: Watch
3
+ ---
4
+
5
+ # until
6
+
7
+ Promised one-time watch for changes
8
+
9
+ ## Usage
10
+
11
+ #### Wait for some async data to be ready
12
+
13
+ ```ts
14
+ import { until, useAsyncState } from '@vueuse/core'
15
+
16
+ const { state, isReady } = useAsyncState(
17
+ fetch('https://jsonplaceholder.typicode.com/todos/1').then(t => t.json()),
18
+ {},
19
+ )
20
+
21
+ ;(async () => {
22
+ await until(isReady).toBe(true)
23
+
24
+ console.log(state) // state is now ready!
25
+ })()
26
+ ```
27
+
28
+ #### Wait for custom conditions
29
+
30
+ > You can use `invoke` to call the async function.
31
+
32
+ ```ts
33
+ import { invoke, until, useCounter } from '@vueuse/core'
34
+
35
+ const { count } = useCounter()
36
+
37
+ invoke(async () => {
38
+ await until(count).toMatch(v => v > 7)
39
+
40
+ alert('Counter is now larger than 7!')
41
+ })
42
+ ```
43
+
44
+ #### Timeout
45
+
46
+ ```ts
47
+ import { until } from '@vueuse/core'
48
+ // ---cut---
49
+ // will be resolve until ref.value === true or 1000ms passed
50
+ await until(ref).toBe(true, { timeout: 1000 })
51
+
52
+ // will throw if timeout
53
+ try {
54
+ await until(ref).toBe(true, { timeout: 1000, throwOnTimeout: true })
55
+ // ref.value === true
56
+ }
57
+ catch (e) {
58
+ // timeout
59
+ }
60
+ ```
61
+
62
+ #### More Examples
63
+
64
+ ```ts
65
+ import { until } from '@vueuse/core'
66
+ // ---cut---
67
+ await until(ref).toBe(true)
68
+ await until(ref).toMatch(v => v > 10 && v < 100)
69
+ await until(ref).changed()
70
+ await until(ref).changedTimes(10)
71
+ await until(ref).toBeTruthy()
72
+ await until(ref).toBeNull()
73
+
74
+ await until(ref).not.toBeNull()
75
+ await until(ref).not.toBeTruthy()
76
+ ```
77
+
78
+ ## Type Declarations
79
+
80
+ ```ts
81
+ export interface UntilToMatchOptions extends ConfigurableFlushSync {
82
+ /**
83
+ * Milliseconds timeout for promise to resolve/reject if the when condition does not meet.
84
+ * 0 for never timed out
85
+ *
86
+ * @default 0
87
+ */
88
+ timeout?: number
89
+ /**
90
+ * Reject the promise when timeout
91
+ *
92
+ * @default false
93
+ */
94
+ throwOnTimeout?: boolean
95
+ /**
96
+ * `deep` option for internal watch
97
+ *
98
+ * @default 'false'
99
+ */
100
+ deep?: WatchOptions["deep"]
101
+ }
102
+ export interface UntilBaseInstance<T, Not extends boolean = false> {
103
+ toMatch: (<U extends T = T>(
104
+ condition: (v: T) => v is U,
105
+ options?: UntilToMatchOptions,
106
+ ) => Not extends true ? Promise<Exclude<T, U>> : Promise<U>) &
107
+ ((
108
+ condition: (v: T) => boolean,
109
+ options?: UntilToMatchOptions,
110
+ ) => Promise<T>)
111
+ changed: (options?: UntilToMatchOptions) => Promise<T>
112
+ changedTimes: (n?: number, options?: UntilToMatchOptions) => Promise<T>
113
+ }
114
+ type Falsy = false | void | null | undefined | 0 | 0n | ""
115
+ export interface UntilValueInstance<
116
+ T,
117
+ Not extends boolean = false,
118
+ > extends UntilBaseInstance<T, Not> {
119
+ readonly not: UntilValueInstance<T, Not extends true ? false : true>
120
+ toBe: <P = T>(
121
+ value: MaybeRefOrGetter<P>,
122
+ options?: UntilToMatchOptions,
123
+ ) => Not extends true ? Promise<T> : Promise<P>
124
+ toBeTruthy: (
125
+ options?: UntilToMatchOptions,
126
+ ) => Not extends true ? Promise<T & Falsy> : Promise<Exclude<T, Falsy>>
127
+ toBeNull: (
128
+ options?: UntilToMatchOptions,
129
+ ) => Not extends true ? Promise<Exclude<T, null>> : Promise<null>
130
+ toBeUndefined: (
131
+ options?: UntilToMatchOptions,
132
+ ) => Not extends true ? Promise<Exclude<T, undefined>> : Promise<undefined>
133
+ toBeNaN: (options?: UntilToMatchOptions) => Promise<T>
134
+ }
135
+ export interface UntilArrayInstance<T> extends UntilBaseInstance<T> {
136
+ readonly not: UntilArrayInstance<T>
137
+ toContains: (
138
+ value: MaybeRefOrGetter<ElementOf<ShallowUnwrapRef<T>>>,
139
+ options?: UntilToMatchOptions,
140
+ ) => Promise<T>
141
+ }
142
+ /**
143
+ * Promised one-time watch for changes
144
+ *
145
+ * @see https://vueuse.org/until
146
+ * @example
147
+ * ```
148
+ * const { count } = useCounter()
149
+ *
150
+ * await until(count).toMatch(v => v > 7)
151
+ *
152
+ * alert('Counter is now larger than 7!')
153
+ * ```
154
+ */
155
+ export declare function until<T extends unknown[]>(
156
+ r: WatchSource<T> | MaybeRefOrGetter<T>,
157
+ ): UntilArrayInstance<T>
158
+ export declare function until<T>(
159
+ r: WatchSource<T> | MaybeRefOrGetter<T>,
160
+ ): UntilValueInstance<T>
161
+ ```
@@ -0,0 +1,31 @@
1
+ ---
2
+ category: '@Math'
3
+ ---
4
+
5
+ # useAbs
6
+
7
+ Reactive `Math.abs`.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useAbs } from '@vueuse/math'
13
+
14
+ const value = ref(-23)
15
+ const absValue = useAbs(value) // Ref<23>
16
+ ```
17
+
18
+ ## Type Declarations
19
+
20
+ ```ts
21
+ /**
22
+ * Reactive `Math.abs`.
23
+ *
24
+ * @see https://vueuse.org/useAbs
25
+ *
26
+ * @__NO_SIDE_EFFECTS__
27
+ */
28
+ export declare function useAbs(
29
+ value: MaybeRefOrGetter<number>,
30
+ ): ComputedRef<number>
31
+ ```
@@ -0,0 +1,86 @@
1
+ ---
2
+ category: Elements
3
+ ---
4
+
5
+ # useActiveElement
6
+
7
+ Reactive `document.activeElement`. Returns a shallow ref that updates when focus changes.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useActiveElement } from '@vueuse/core'
14
+ import { watch } from 'vue'
15
+
16
+ const activeElement = useActiveElement()
17
+
18
+ watch(activeElement, (el) => {
19
+ console.log('focus changed to', el)
20
+ })
21
+ </script>
22
+ ```
23
+
24
+ ### Shadow DOM Support
25
+
26
+ By default, `useActiveElement` will traverse into shadow DOM to find the deeply active element. Set `deep: false` to disable this behavior.
27
+
28
+ ```ts
29
+ import { useActiveElement } from '@vueuse/core'
30
+
31
+ // Only get the shadow host, not the element inside shadow DOM
32
+ const activeElement = useActiveElement({ deep: false })
33
+ ```
34
+
35
+ ### Track Element Removal
36
+
37
+ Set `triggerOnRemoval: true` to update the active element when the currently active element is removed from the DOM. This uses a `MutationObserver` under the hood.
38
+
39
+ ```ts
40
+ import { useActiveElement } from '@vueuse/core'
41
+
42
+ const activeElement = useActiveElement({ triggerOnRemoval: true })
43
+ ```
44
+
45
+ ## Component Usage
46
+
47
+ ```vue
48
+ <template>
49
+ <UseActiveElement v-slot="{ element }">
50
+ Active element is {{ element?.dataset.id }}
51
+ </UseActiveElement>
52
+ </template>
53
+ ```
54
+
55
+ ## Type Declarations
56
+
57
+ ```ts
58
+ export interface UseActiveElementOptions
59
+ extends ConfigurableWindow, ConfigurableDocumentOrShadowRoot {
60
+ /**
61
+ * Search active element deeply inside shadow dom
62
+ *
63
+ * @default true
64
+ */
65
+ deep?: boolean
66
+ /**
67
+ * Track active element when it's removed from the DOM
68
+ * Using a MutationObserver under the hood
69
+ * @default false
70
+ */
71
+ triggerOnRemoval?: boolean
72
+ }
73
+ export type UseActiveElementReturn<T extends HTMLElement = HTMLElement> =
74
+ ShallowRef<T | null | undefined>
75
+ /**
76
+ * Reactive `document.activeElement`
77
+ *
78
+ * @see https://vueuse.org/useActiveElement
79
+ * @param options
80
+ *
81
+ * @__NO_SIDE_EFFECTS__
82
+ */
83
+ export declare function useActiveElement<T extends HTMLElement>(
84
+ options?: UseActiveElementOptions,
85
+ ): UseActiveElementReturn<T>
86
+ ```
@@ -0,0 +1,180 @@
1
+ ---
2
+ category: Animation
3
+ ---
4
+
5
+ # useAnimate
6
+
7
+ Reactive [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API).
8
+
9
+ ## Usage
10
+
11
+ ### Basic Usage
12
+
13
+ The `useAnimate` function returns the animation instance and control functions.
14
+
15
+ ```vue
16
+ <script setup lang="ts">
17
+ import { useAnimate } from '@vueuse/core'
18
+ import { useTemplateRef } from 'vue'
19
+
20
+ const el = useTemplateRef('el')
21
+ const {
22
+ isSupported,
23
+ animate,
24
+
25
+ // actions
26
+ play,
27
+ pause,
28
+ reverse,
29
+ finish,
30
+ cancel,
31
+
32
+ // states
33
+ pending,
34
+ playState,
35
+ replaceState,
36
+ startTime,
37
+ currentTime,
38
+ timeline,
39
+ playbackRate,
40
+ } = useAnimate(el, { transform: 'rotate(360deg)' }, 1000)
41
+ </script>
42
+
43
+ <template>
44
+ <span ref="el" style="display:inline-block">useAnimate</span>
45
+ </template>
46
+ ```
47
+
48
+ ### Custom Keyframes
49
+
50
+ Either an array of keyframe objects, or a keyframe object, or a `ref`. See [Keyframe Formats](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API/Keyframe_Formats) for more details.
51
+
52
+ ```ts
53
+ import { useAnimate } from '@vueuse/core'
54
+ import { useTemplateRef } from 'vue'
55
+
56
+ const el = useTemplateRef('el')
57
+ // ---cut---
58
+ const keyframes = { transform: 'rotate(360deg)' }
59
+ // Or
60
+ const keyframes = [
61
+ { transform: 'rotate(0deg)' },
62
+ { transform: 'rotate(360deg)' },
63
+ ]
64
+ // Or
65
+ const keyframes = ref([
66
+ { clipPath: 'circle(20% at 0% 30%)' },
67
+ { clipPath: 'circle(20% at 50% 80%)' },
68
+ { clipPath: 'circle(20% at 100% 30%)' },
69
+ ])
70
+
71
+ useAnimate(el, keyframes, 1000)
72
+ ```
73
+
74
+ ### Options
75
+
76
+ The third argument accepts a duration number or an options object with the following additional properties on top of [KeyframeAnimationOptions](https://developer.mozilla.org/en-US/docs/Web/API/Element/animate#parameters):
77
+
78
+ ```ts
79
+ import { useAnimate } from '@vueuse/core'
80
+
81
+ useAnimate(el, keyframes, {
82
+ duration: 1000,
83
+ // Start playing immediately (default: true)
84
+ immediate: true,
85
+ // Commit the end styling state to the element (default: false)
86
+ commitStyles: false,
87
+ // Persist the animation (default: false)
88
+ persist: false,
89
+ // Callback when animation is initialized
90
+ onReady(animate) {
91
+ console.log('Animation ready', animate)
92
+ },
93
+ // Callback when an error occurs
94
+ onError(e) {
95
+ console.error('Animation error', e)
96
+ },
97
+ })
98
+ ```
99
+
100
+ ### Delaying Start
101
+
102
+ Set `immediate: false` to prevent the animation from starting automatically.
103
+
104
+ ```ts
105
+ import { useAnimate } from '@vueuse/core'
106
+
107
+ const { play } = useAnimate(el, keyframes, {
108
+ duration: 1000,
109
+ immediate: false,
110
+ })
111
+
112
+ // Start the animation manually
113
+ play()
114
+ ```
115
+
116
+ ## Type Declarations
117
+
118
+ ```ts
119
+ export interface UseAnimateOptions
120
+ extends KeyframeAnimationOptions, ConfigurableWindow {
121
+ /**
122
+ * Will automatically run play when `useAnimate` is used
123
+ *
124
+ * @default true
125
+ */
126
+ immediate?: boolean
127
+ /**
128
+ * Whether to commits the end styling state of an animation to the element being animated
129
+ * In general, you should use `fill` option with this.
130
+ *
131
+ * @default false
132
+ */
133
+ commitStyles?: boolean
134
+ /**
135
+ * Whether to persists the animation
136
+ *
137
+ * @default false
138
+ */
139
+ persist?: boolean
140
+ /**
141
+ * Executed after animation initialization
142
+ */
143
+ onReady?: (animate: Animation) => void
144
+ /**
145
+ * Callback when error is caught.
146
+ */
147
+ onError?: (e: unknown) => void
148
+ }
149
+ export type UseAnimateKeyframes = MaybeRef<
150
+ Keyframe[] | PropertyIndexedKeyframes | null
151
+ >
152
+ export interface UseAnimateReturn extends Supportable {
153
+ animate: ShallowRef<Animation | undefined>
154
+ play: () => void
155
+ pause: () => void
156
+ reverse: () => void
157
+ finish: () => void
158
+ cancel: () => void
159
+ pending: ComputedRef<boolean>
160
+ playState: ComputedRef<AnimationPlayState>
161
+ replaceState: ComputedRef<AnimationReplaceState>
162
+ startTime: WritableComputedRef<CSSNumberish | number | null>
163
+ currentTime: WritableComputedRef<CSSNumberish | null>
164
+ timeline: WritableComputedRef<AnimationTimeline | null>
165
+ playbackRate: WritableComputedRef<number>
166
+ }
167
+ /**
168
+ * Reactive Web Animations API
169
+ *
170
+ * @see https://vueuse.org/useAnimate
171
+ * @param target
172
+ * @param keyframes
173
+ * @param options
174
+ */
175
+ export declare function useAnimate(
176
+ target: MaybeComputedElementRef,
177
+ keyframes: UseAnimateKeyframes,
178
+ options?: number | UseAnimateOptions,
179
+ ): UseAnimateReturn
180
+ ```
@@ -0,0 +1,84 @@
1
+ ---
2
+ category: Array
3
+ ---
4
+
5
+ # useArrayDifference
6
+
7
+ Reactive get array difference of two arrays.
8
+
9
+ By default, it returns the difference of the first array from the second array, so call `A \ B`, [Relative Complement](<https://en.wikipedia.org/wiki/Complement_(set_theory)>) of B in A.
10
+
11
+ You can pass the `symmetric` option to get the [Symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) of two arrays `A △ B`.
12
+
13
+ ## Usage
14
+
15
+ ### Use with reactive array
16
+
17
+ ```ts
18
+ import { useArrayDifference } from '@vueuse/core'
19
+
20
+ const list1 = ref([0, 1, 2, 3, 4, 5])
21
+ const list2 = ref([4, 5, 6])
22
+ const result = useArrayDifference(list1, list2)
23
+ // result.value: [0, 1, 2, 3]
24
+ list2.value = [0, 1, 2]
25
+ // result.value: [3, 4, 5]
26
+ ```
27
+
28
+ ### Use with reactive array and use function comparison
29
+
30
+ ```ts
31
+ import { useArrayDifference } from '@vueuse/core'
32
+
33
+ const list1 = ref([{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }])
34
+ const list2 = ref([{ id: 4 }, { id: 5 }, { id: 6 }])
35
+
36
+ const result = useArrayDifference(list1, list2, (value, othVal) => value.id === othVal.id)
37
+ // result.value: [{ id: 1 }, { id: 2 }, { id: 3 }]
38
+ ```
39
+
40
+ ### Symmetric Difference
41
+
42
+ This composable also supports [Symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) by passing the `symmetric` option.
43
+
44
+ ```ts {10}
45
+ import { useArrayDifference } from '@vueuse/core'
46
+
47
+ const list1 = ref([{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }])
48
+ const list2 = ref([{ id: 4 }, { id: 5 }, { id: 6 }])
49
+
50
+ const result = useArrayDifference(
51
+ list1,
52
+ list2,
53
+ (value, othVal) => value.id === othVal.id,
54
+ { symmetric: true }
55
+ )
56
+ // result.value: [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 6 }]
57
+ ```
58
+
59
+ ## Type Declarations
60
+
61
+ ```ts
62
+ export interface UseArrayDifferenceOptions {
63
+ /**
64
+ * Returns asymmetric difference
65
+ *
66
+ * @see https://en.wikipedia.org/wiki/Symmetric_difference
67
+ * @default false
68
+ */
69
+ symmetric?: boolean
70
+ }
71
+ export type UseArrayDifferenceReturn<T = any> = ComputedRef<T[]>
72
+ export declare function useArrayDifference<T>(
73
+ list: MaybeRefOrGetter<T[]>,
74
+ values: MaybeRefOrGetter<T[]>,
75
+ key?: keyof T,
76
+ options?: UseArrayDifferenceOptions,
77
+ ): UseArrayDifferenceReturn<T>
78
+ export declare function useArrayDifference<T>(
79
+ list: MaybeRefOrGetter<T[]>,
80
+ values: MaybeRefOrGetter<T[]>,
81
+ compareFn?: (value: T, othVal: T) => boolean,
82
+ options?: UseArrayDifferenceOptions,
83
+ ): UseArrayDifferenceReturn<T>
84
+ ```