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,90 @@
1
+ ---
2
+ category: Browser
3
+ ---
4
+
5
+ # useImage
6
+
7
+ Reactive load an image in the browser, you can wait the result to display it or show a fallback.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useImage } from '@vueuse/core'
14
+
15
+ const avatarUrl = 'https://place.dog/300/200'
16
+ const { isLoading } = useImage({ src: avatarUrl })
17
+ </script>
18
+
19
+ <template>
20
+ <span v-if="isLoading">Loading</span>
21
+ <img v-else :src="avatarUrl">
22
+ </template>
23
+ ```
24
+
25
+ ## Component Usage
26
+
27
+ ```vue
28
+ <template>
29
+ <UseImage src="https://place.dog/300/200">
30
+ <template #loading>
31
+ Loading..
32
+ </template>
33
+
34
+ <template #error>
35
+ Failed
36
+ </template>
37
+ </UseImage>
38
+ </template>
39
+ ```
40
+
41
+ ## Type Declarations
42
+
43
+ ```ts
44
+ export interface UseImageOptions {
45
+ /** Address of the resource */
46
+ src: string
47
+ /** Images to use in different situations, e.g., high-resolution displays, small monitors, etc. */
48
+ srcset?: string
49
+ /** Image sizes for different page layouts */
50
+ sizes?: string
51
+ /** Image alternative information */
52
+ alt?: string
53
+ /** Image classes */
54
+ class?: string
55
+ /** Image loading */
56
+ loading?: HTMLImageElement["loading"]
57
+ /** Image CORS settings */
58
+ crossorigin?: string
59
+ /** Referrer policy for fetch https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy */
60
+ referrerPolicy?: HTMLImageElement["referrerPolicy"]
61
+ /** Image width */
62
+ width?: HTMLImageElement["width"]
63
+ /** Image height */
64
+ height?: HTMLImageElement["height"]
65
+ /** https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#decoding */
66
+ decoding?: HTMLImageElement["decoding"]
67
+ /** Provides a hint of the relative priority to use when fetching the image */
68
+ fetchPriority?: HTMLImageElement["fetchPriority"]
69
+ /** Provides a hint of the importance of the image */
70
+ ismap?: HTMLImageElement["isMap"]
71
+ /** The partial URL (starting with #) of an image map associated with the element */
72
+ usemap?: HTMLImageElement["useMap"]
73
+ }
74
+ export type UseImageReturn = UseAsyncStateReturn<
75
+ HTMLImageElement | undefined,
76
+ any[],
77
+ true
78
+ >
79
+ /**
80
+ * Reactive load an image in the browser, you can wait the result to display it or show a fallback.
81
+ *
82
+ * @see https://vueuse.org/useImage
83
+ * @param options Image attributes, as used in the <img> tag
84
+ * @param asyncStateOptions
85
+ */
86
+ export declare function useImage<Shallow extends true>(
87
+ options: MaybeRefOrGetter<UseImageOptions>,
88
+ asyncStateOptions?: UseAsyncStateOptions<Shallow>,
89
+ ): UseImageReturn
90
+ ```
@@ -0,0 +1,156 @@
1
+ ---
2
+ category: Sensors
3
+ ---
4
+
5
+ # useInfiniteScroll
6
+
7
+ Infinite scrolling of the element.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useInfiniteScroll } from '@vueuse/core'
14
+ import { ref, useTemplateRef } from 'vue'
15
+
16
+ const el = useTemplateRef('el')
17
+ const data = ref([1, 2, 3, 4, 5, 6])
18
+
19
+ const { reset } = useInfiniteScroll(
20
+ el,
21
+ () => {
22
+ // load more
23
+ data.value.push(...moreData)
24
+ },
25
+ {
26
+ distance: 10,
27
+ canLoadMore: () => {
28
+ // inidicate when there is no more content to load so onLoadMore stops triggering
29
+ // if (noMoreContent) return false
30
+ return true // for demo purposes
31
+ },
32
+ }
33
+ )
34
+
35
+ function resetList() {
36
+ data.value = []
37
+ reset()
38
+ }
39
+ </script>
40
+
41
+ <template>
42
+ <div ref="el">
43
+ <div v-for="item in data">
44
+ {{ item }}
45
+ </div>
46
+ </div>
47
+ <button @click="resetList()">
48
+ Reset
49
+ </button>
50
+ </template>
51
+ ```
52
+
53
+ ## Direction
54
+
55
+ Different scroll directions require different CSS style settings:
56
+
57
+ | Direction | Required CSS |
58
+ | ------------------ | ----------------------------------------------------- |
59
+ | `bottom` (default) | No special settings required |
60
+ | `top` | `display: flex;`<br>`flex-direction: column-reverse;` |
61
+ | `left` | `display: flex;`<br>`flex-direction: row-reverse;` |
62
+ | `right` | `display: flex;` |
63
+
64
+ ::: warning
65
+ Make sure to indicate when there is no more content to load with `canLoadMore`, otherwise `onLoadMore` will trigger as long as there is space for more content.
66
+ :::
67
+
68
+ ## Directive Usage
69
+
70
+ ```vue
71
+ <script setup lang="ts">
72
+ import { vInfiniteScroll } from '@vueuse/components'
73
+ import { ref } from 'vue'
74
+
75
+ const data = ref([1, 2, 3, 4, 5, 6])
76
+
77
+ function onLoadMore() {
78
+ const length = data.value.length + 1
79
+ data.value.push(...Array.from({ length: 5 }, (_, i) => length + i))
80
+ }
81
+ function canLoadMore() {
82
+ // inidicate when there is no more content to load so onLoadMore stops triggering
83
+ // if (noMoreContent) return false
84
+ return true // for demo purposes
85
+ }
86
+ </script>
87
+
88
+ <template>
89
+ <div v-infinite-scroll="onLoadMore">
90
+ <div v-for="item in data" :key="item">
91
+ {{ item }}
92
+ </div>
93
+ </div>
94
+
95
+ <!-- with options -->
96
+ <div v-infinite-scroll="[onLoadMore, { distance: 10, canLoadMore }]">
97
+ <div v-for="item in data" :key="item">
98
+ {{ item }}
99
+ </div>
100
+ </div>
101
+ </template>
102
+ ```
103
+
104
+ ## Type Declarations
105
+
106
+ ```ts
107
+ type InfiniteScrollElement =
108
+ | HTMLElement
109
+ | SVGElement
110
+ | Window
111
+ | Document
112
+ | null
113
+ | undefined
114
+ export interface UseInfiniteScrollOptions<
115
+ T extends InfiniteScrollElement = InfiniteScrollElement,
116
+ > extends UseScrollOptions {
117
+ /**
118
+ * The minimum distance between the bottom of the element and the bottom of the viewport
119
+ *
120
+ * @default 0
121
+ */
122
+ distance?: number
123
+ /**
124
+ * The direction in which to listen the scroll.
125
+ *
126
+ * @default 'bottom'
127
+ */
128
+ direction?: "top" | "bottom" | "left" | "right"
129
+ /**
130
+ * The interval time between two load more (to avoid too many invokes).
131
+ *
132
+ * @default 100
133
+ */
134
+ interval?: number
135
+ /**
136
+ * A function that determines whether more content can be loaded for a specific element.
137
+ * Should return `true` if loading more content is allowed for the given element,
138
+ * and `false` otherwise.
139
+ */
140
+ canLoadMore?: (el: T) => boolean
141
+ }
142
+ export interface UseInfiniteScrollReturn {
143
+ isLoading: ComputedRef<boolean>
144
+ reset: () => void
145
+ }
146
+ /**
147
+ * Reactive infinite scroll.
148
+ *
149
+ * @see https://vueuse.org/useInfiniteScroll
150
+ */
151
+ export declare function useInfiniteScroll<T extends InfiniteScrollElement>(
152
+ element: MaybeRefOrGetter<T>,
153
+ onLoadMore: (state: UnwrapNestedRefs<UseScrollReturn>) => Awaitable<void>,
154
+ options?: UseInfiniteScrollOptions<T>,
155
+ ): UseInfiniteScrollReturn
156
+ ```
@@ -0,0 +1,117 @@
1
+ ---
2
+ category: Elements
3
+ ---
4
+
5
+ # useIntersectionObserver
6
+
7
+ Detects changes to a target element's visibility.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useIntersectionObserver } from '@vueuse/core'
14
+ import { shallowRef, useTemplateRef } from 'vue'
15
+
16
+ const target = useTemplateRef('target')
17
+ const targetIsVisible = shallowRef(false)
18
+
19
+ const { stop } = useIntersectionObserver(
20
+ target,
21
+ ([entry], observerElement) => {
22
+ targetIsVisible.value = entry?.isIntersecting || false
23
+ },
24
+ )
25
+ </script>
26
+
27
+ <template>
28
+ <div ref="target">
29
+ <h1>Hello world</h1>
30
+ </div>
31
+ </template>
32
+ ```
33
+
34
+ ## Directive Usage
35
+
36
+ ```vue
37
+ <script setup lang="ts">
38
+ import { vIntersectionObserver } from '@vueuse/components'
39
+ import { shallowRef, useTemplateRef } from 'vue'
40
+
41
+ const root = useTemplateRef('root')
42
+
43
+ const isVisible = shallowRef(false)
44
+
45
+ function onIntersectionObserver([entry]: IntersectionObserverEntry[]) {
46
+ isVisible.value = entry?.isIntersecting || false
47
+ }
48
+ </script>
49
+
50
+ <template>
51
+ <div>
52
+ <p>
53
+ Scroll me down!
54
+ </p>
55
+ <div v-intersection-observer="onIntersectionObserver">
56
+ <p>Hello world!</p>
57
+ </div>
58
+ </div>
59
+
60
+ <!-- with options -->
61
+ <div ref="root">
62
+ <p>
63
+ Scroll me down!
64
+ </p>
65
+ <div v-intersection-observer="[onIntersectionObserver, { root }]">
66
+ <p>Hello world!</p>
67
+ </div>
68
+ </div>
69
+ </template>
70
+ ```
71
+
72
+ [IntersectionObserver MDN](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver)
73
+
74
+ ## Type Declarations
75
+
76
+ ```ts
77
+ export interface UseIntersectionObserverOptions extends ConfigurableWindow {
78
+ /**
79
+ * Start the IntersectionObserver immediately on creation
80
+ *
81
+ * @default true
82
+ */
83
+ immediate?: boolean
84
+ /**
85
+ * The Element or Document whose bounds are used as the bounding box when testing for intersection.
86
+ */
87
+ root?: MaybeComputedElementRef | Document
88
+ /**
89
+ * A string which specifies a set of offsets to add to the root's bounding_box when calculating intersections.
90
+ */
91
+ rootMargin?: MaybeRefOrGetter<string>
92
+ /**
93
+ * Either a single number or an array of numbers between 0.0 and 1.
94
+ * @default 0
95
+ */
96
+ threshold?: number | number[]
97
+ }
98
+ export interface UseIntersectionObserverReturn extends Supportable, Pausable {
99
+ stop: () => void
100
+ }
101
+ /**
102
+ * Detects changes to a target element's visibility.
103
+ *
104
+ * @see https://vueuse.org/useIntersectionObserver
105
+ * @param target
106
+ * @param callback
107
+ * @param options
108
+ */
109
+ export declare function useIntersectionObserver(
110
+ target:
111
+ | MaybeComputedElementRef
112
+ | MaybeRefOrGetter<MaybeElement[]>
113
+ | MaybeComputedElementRef[],
114
+ callback: IntersectionObserverCallback,
115
+ options?: UseIntersectionObserverOptions,
116
+ ): UseIntersectionObserverReturn
117
+ ```
@@ -0,0 +1,112 @@
1
+ ---
2
+ category: Animation
3
+ ---
4
+
5
+ # useInterval
6
+
7
+ Reactive counter that increases on every interval.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useInterval } from '@vueuse/core'
13
+
14
+ // count will increase every 200ms
15
+ const counter = useInterval(200)
16
+ ```
17
+
18
+ ### With Controls
19
+
20
+ ```ts
21
+ import { useInterval } from '@vueuse/core'
22
+
23
+ const { counter, reset, pause, resume, isActive } = useInterval(200, {
24
+ controls: true,
25
+ })
26
+
27
+ // Reset counter to 0
28
+ reset()
29
+
30
+ // Pause/resume the interval
31
+ pause()
32
+ resume()
33
+ ```
34
+
35
+ ### Options
36
+
37
+ | Option | Type | Default | Description |
38
+ | ----------- | ------------------------- | ------- | ---------------------------------------------------------- |
39
+ | `controls` | `boolean` | `false` | Expose `pause`, `resume`, `reset`, and `isActive` controls |
40
+ | `immediate` | `boolean` | `true` | Start the interval immediately |
41
+ | `callback` | `(count: number) => void` | — | Called on every interval with the current count |
42
+
43
+ ### Reactive Interval
44
+
45
+ The interval can be reactive:
46
+
47
+ ```ts
48
+ import { useInterval } from '@vueuse/core'
49
+
50
+ const intervalMs = ref(1000)
51
+ const counter = useInterval(intervalMs)
52
+
53
+ // Change the interval dynamically
54
+ intervalMs.value = 500
55
+ ```
56
+
57
+ ### Callback on Every Interval
58
+
59
+ ```ts
60
+ import { useInterval } from '@vueuse/core'
61
+
62
+ useInterval(1000, {
63
+ callback: (count) => {
64
+ console.log(`Tick ${count}`)
65
+ },
66
+ })
67
+ ```
68
+
69
+ ## Type Declarations
70
+
71
+ ```ts
72
+ export interface UseIntervalOptions<Controls extends boolean> {
73
+ /**
74
+ * Expose more controls
75
+ *
76
+ * @default false
77
+ */
78
+ controls?: Controls
79
+ /**
80
+ * Execute the update immediately on calling
81
+ *
82
+ * @default true
83
+ */
84
+ immediate?: boolean
85
+ /**
86
+ * Callback on every interval
87
+ */
88
+ callback?: (count: number) => void
89
+ }
90
+ export interface UseIntervalControls {
91
+ counter: ShallowRef<number>
92
+ reset: () => void
93
+ }
94
+ export type UseIntervalReturn =
95
+ | Readonly<ShallowRef<number>>
96
+ | Readonly<UseIntervalControls & Pausable>
97
+ /**
98
+ * Reactive counter increases on every interval
99
+ *
100
+ * @see https://vueuse.org/useInterval
101
+ * @param interval
102
+ * @param options
103
+ */
104
+ export declare function useInterval(
105
+ interval?: MaybeRefOrGetter<number>,
106
+ options?: UseIntervalOptions<false>,
107
+ ): Readonly<ShallowRef<number>>
108
+ export declare function useInterval(
109
+ interval: MaybeRefOrGetter<number>,
110
+ options: UseIntervalOptions<true>,
111
+ ): Readonly<UseIntervalControls & Pausable>
112
+ ```
@@ -0,0 +1,50 @@
1
+ ---
2
+ category: Animation
3
+ ---
4
+
5
+ # useIntervalFn
6
+
7
+ Wrapper for `setInterval` with controls
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useIntervalFn } from '@vueuse/core'
13
+
14
+ const { pause, resume, isActive } = useIntervalFn(() => {
15
+ /* your function */
16
+ }, 1000)
17
+ ```
18
+
19
+ ## Type Declarations
20
+
21
+ ```ts
22
+ export interface UseIntervalFnOptions {
23
+ /**
24
+ * Start the timer immediately
25
+ *
26
+ * @default true
27
+ */
28
+ immediate?: boolean
29
+ /**
30
+ * Execute the callback immediately after calling `resume`
31
+ *
32
+ * @default false
33
+ */
34
+ immediateCallback?: boolean
35
+ }
36
+ export type UseIntervalFnReturn = Pausable
37
+ /**
38
+ * Wrapper for `setInterval` with controls
39
+ *
40
+ * @see https://vueuse.org/useIntervalFn
41
+ * @param cb
42
+ * @param interval
43
+ * @param options
44
+ */
45
+ export declare function useIntervalFn(
46
+ cb: Fn,
47
+ interval?: MaybeRefOrGetter<number>,
48
+ options?: UseIntervalFnOptions,
49
+ ): UseIntervalFnReturn
50
+ ```
@@ -0,0 +1,144 @@
1
+ ---
2
+ category: '@Electron'
3
+ ---
4
+
5
+ # useIpcRenderer
6
+
7
+ Provides [ipcRenderer](https://www.electronjs.org/docs/api/ipc-renderer) and all of its APIs with Vue reactivity.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useIpcRenderer } from '@vueuse/electron'
13
+ import { computed } from 'vue'
14
+
15
+ // enable nodeIntegration if you don't provide ipcRenderer explicitly
16
+ // see: https://www.electronjs.org/docs/api/webview-tag#nodeintegration
17
+ const ipcRenderer = useIpcRenderer()
18
+
19
+ // Ref result will return
20
+ const result = ipcRenderer.invoke<string>('custom-channel', 'some data')
21
+ const msg = computed(() => result.value?.msg)
22
+
23
+ // remove listener automatically on unmounted
24
+ ipcRenderer.on('custom-event', (event, ...args) => {
25
+ console.log(args)
26
+ })
27
+ ```
28
+
29
+ ### Available Methods
30
+
31
+ | Method | Description |
32
+ | ------------------------------------------ | ---------------------------------------------------- |
33
+ | `on(channel, listener)` | Listen to channel. Auto-removes listener on unmount. |
34
+ | `once(channel, listener)` | Listen to channel once |
35
+ | `removeListener(channel, listener)` | Remove specific listener |
36
+ | `removeAllListeners(channel)` | Remove all listeners for channel |
37
+ | `send(channel, ...args)` | Send async message to main process |
38
+ | `invoke(channel, ...args)` | Send message and get response as `ShallowRef` |
39
+ | `sendSync(channel, ...args)` | Send sync message and get response as `ShallowRef` |
40
+ | `postMessage(channel, message, transfer?)` | Send message with transferable objects |
41
+ | `sendTo(webContentsId, channel, ...args)` | Send to specific webContents |
42
+ | `sendToHost(channel, ...args)` | Send to webview host |
43
+
44
+ ### With Custom IpcRenderer
45
+
46
+ If `nodeIntegration` is disabled, you can pass the `ipcRenderer` instance explicitly:
47
+
48
+ ```ts
49
+ import { useIpcRenderer } from '@vueuse/electron'
50
+ import { ipcRenderer } from 'electron'
51
+
52
+ const ipc = useIpcRenderer(ipcRenderer)
53
+ ```
54
+
55
+ ## Type Declarations
56
+
57
+ ```ts
58
+ /**
59
+ * Result from useIpcRenderer
60
+ *
61
+ * @see https://www.electronjs.org/docs/api/ipc-renderer
62
+ */
63
+ export interface UseIpcRendererReturn {
64
+ /**
65
+ * Listens to channel, when a new message arrives listener would be called with listener(event, args...).
66
+ * [ipcRenderer.removeListener](https://www.electronjs.org/docs/api/ipc-renderer#ipcrendererremovelistenerchannel-listener) automatically on unmounted.
67
+ *
68
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrendereronchannel-listener
69
+ */
70
+ on: (channel: string, listener: IpcRendererListener) => IpcRenderer
71
+ /**
72
+ * Adds a one time listener function for the event. This listener is invoked only the next time a message is sent to channel, after which it is removed.
73
+ *
74
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrendereroncechannel-listener
75
+ */
76
+ once: (
77
+ channel: string,
78
+ listener: (event: IpcRendererEvent, ...args: any[]) => void,
79
+ ) => IpcRenderer
80
+ /**
81
+ * Removes the specified listener from the listener array for the specified channel.
82
+ *
83
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrendererremovelistenerchannel-listener
84
+ */
85
+ removeListener: (
86
+ channel: string,
87
+ listener: (...args: any[]) => void,
88
+ ) => IpcRenderer
89
+ /**
90
+ * Removes all listeners, or those of the specified channel.
91
+ *
92
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrendererremovealllistenerschannel
93
+ */
94
+ removeAllListeners: (channel: string) => IpcRenderer
95
+ /**
96
+ * Send an asynchronous message to the main process via channel, along with arguments.
97
+ *
98
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrenderersendchannel-args
99
+ */
100
+ send: (channel: string, ...args: any[]) => void
101
+ /**
102
+ * Returns Promise<any> - Resolves with the response from the main process.
103
+ * Send a message to the main process via channel and expect a result ~~asynchronously~~.
104
+ * As composition-api, it makes asynchronous operations look like synchronous.
105
+ *
106
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrendererinvokechannel-args
107
+ */
108
+ invoke: <T>(channel: string, ...args: any[]) => ShallowRef<T | null>
109
+ /**
110
+ * Returns any - The value sent back by the ipcMain handler.
111
+ * Send a message to the main process via channel and expect a result synchronously.
112
+ *
113
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrenderersendsyncchannel-args
114
+ */
115
+ sendSync: <T>(channel: string, ...args: any[]) => ShallowRef<T | null>
116
+ /**
117
+ * Send a message to the main process, optionally transferring ownership of zero or more MessagePort objects.
118
+ *
119
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrendererpostmessagechannel-message-transfer
120
+ */
121
+ postMessage: (channel: string, message: any, transfer?: MessagePort[]) => void
122
+ /**
123
+ * Sends a message to a window with webContentsId via channel.
124
+ *
125
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrenderersendtowebcontentsid-channel-args
126
+ */
127
+ sendTo: (webContentsId: number, channel: string, ...args: any[]) => void
128
+ /**
129
+ * Like ipcRenderer.send but the event will be sent to the <webview> element in the host page instead of the main process.
130
+ *
131
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrenderersendtohostchannel-args
132
+ */
133
+ sendToHost: (channel: string, ...args: any[]) => void
134
+ }
135
+ /**
136
+ * Get the `ipcRenderer` module with all APIs.
137
+ *
138
+ * @see https://www.electronjs.org/docs/api/ipc-renderer#ipcrenderersendtohostchannel-args
139
+ * @see https://vueuse.org/useIpcRenderer
140
+ */
141
+ export declare function useIpcRenderer(
142
+ ipcRenderer?: IpcRenderer,
143
+ ): UseIpcRendererReturn
144
+ ```