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,238 @@
1
+ ---
2
+ category: Sensors
3
+ ---
4
+
5
+ # useScroll
6
+
7
+ Reactive scroll position and state.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useScroll } from '@vueuse/core'
14
+ import { useTemplateRef } from 'vue'
15
+
16
+ const el = useTemplateRef('el')
17
+ const { x, y, isScrolling, arrivedState, directions } = useScroll(el)
18
+ </script>
19
+
20
+ <template>
21
+ <div ref="el" />
22
+ </template>
23
+ ```
24
+
25
+ ### With offsets
26
+
27
+ ```ts
28
+ import { useScroll } from '@vueuse/core'
29
+ // ---cut---
30
+ const { x, y, isScrolling, arrivedState, directions } = useScroll(el, {
31
+ offset: { top: 30, bottom: 30, right: 30, left: 30 },
32
+ })
33
+ ```
34
+
35
+ ### Setting scroll position
36
+
37
+ Set the `x` and `y` values to make the element scroll to that position.
38
+
39
+ ```vue
40
+ <script setup lang="ts">
41
+ import { useScroll } from '@vueuse/core'
42
+ import { useTemplateRef } from 'vue'
43
+
44
+ const el = useTemplateRef('el')
45
+ const { x, y } = useScroll(el)
46
+ </script>
47
+
48
+ <template>
49
+ <div ref="el" />
50
+ <button @click="x += 10">
51
+ Scroll right 10px
52
+ </button>
53
+ <button @click="y += 10">
54
+ Scroll down 10px
55
+ </button>
56
+ </template>
57
+ ```
58
+
59
+ ### Smooth scrolling
60
+
61
+ Set `behavior: smooth` to enable smooth scrolling. The `behavior` option defaults to `auto`, which means no smooth scrolling. See the `behavior` option on [`window.scrollTo()`](https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo) for more information.
62
+
63
+ ```ts
64
+ import { useScroll } from '@vueuse/core'
65
+ import { useTemplateRef } from 'vue'
66
+
67
+ const el = useTemplateRef('el')
68
+ const { x, y } = useScroll(el, { behavior: 'smooth' })
69
+
70
+ // Or as a `ref`:
71
+ const smooth = ref(false)
72
+ const behavior = computed(() => smooth.value ? 'smooth' : 'auto')
73
+ const { x, y } = useScroll(el, { behavior })
74
+ ```
75
+
76
+ ### Recalculate scroll state
77
+
78
+ You can call the `measure()` method to manually update the scroll position and `arrivedState` at any time.
79
+
80
+ This is useful, for example, after dynamic content changes or when you want to recalculate the scroll state outside of scroll events.
81
+
82
+ ```ts
83
+ import { useScroll } from '@vueuse/core'
84
+ import { nextTick, onMounted, useTemplateRef, watch } from 'vue'
85
+
86
+ const el = useTemplateRef('el')
87
+ const reactiveValue = shallowRef(false)
88
+
89
+ const { measure } = useScroll(el)
90
+
91
+ // In a watcher
92
+ watch(reactiveValue, () => {
93
+ measure()
94
+ })
95
+
96
+ // Or inside any function
97
+ function updateScrollState() {
98
+ // ...some logic
99
+ nextTick(() => {
100
+ measure()
101
+ })
102
+ }
103
+ ```
104
+
105
+ > [!NOTE]
106
+ > it's recommended to call `measure()` inside `nextTick()`, to ensure the DOM is updated first.
107
+ > The scroll state is initialized automatically `onMount`.
108
+ > You only need to call `measure()` manually if you want to recalculate the state after some dynamic changes.
109
+
110
+ ## Directive Usage
111
+
112
+ ```vue
113
+ <script setup lang="ts">
114
+ import type { UseScrollReturn } from '@vueuse/core'
115
+ import { vScroll } from '@vueuse/components'
116
+
117
+ const data = ref([1, 2, 3, 4, 5, 6])
118
+
119
+ function onScroll(state: UseScrollReturn) {
120
+ console.log(state) // {x, y, isScrolling, arrivedState, directions}
121
+ }
122
+ </script>
123
+
124
+ <template>
125
+ <div v-scroll="onScroll">
126
+ <div v-for="item in data" :key="item">
127
+ {{ item }}
128
+ </div>
129
+ </div>
130
+
131
+ <!-- with options -->
132
+ <div v-scroll="[onScroll, { throttle: 10 }]">
133
+ <div v-for="item in data" :key="item">
134
+ {{ item }}
135
+ </div>
136
+ </div>
137
+ </template>
138
+ ```
139
+
140
+ ## Type Declarations
141
+
142
+ ```ts
143
+ export interface UseScrollOptions extends ConfigurableWindow {
144
+ /**
145
+ * Throttle time for scroll event, it’s disabled by default.
146
+ *
147
+ * @default 0
148
+ */
149
+ throttle?: number
150
+ /**
151
+ * The check time when scrolling ends.
152
+ * This configuration will be setting to (throttle + idle) when the `throttle` is configured.
153
+ *
154
+ * @default 200
155
+ */
156
+ idle?: number
157
+ /**
158
+ * Offset arrived states by x pixels
159
+ *
160
+ */
161
+ offset?: {
162
+ left?: number
163
+ right?: number
164
+ top?: number
165
+ bottom?: number
166
+ }
167
+ /**
168
+ * Use MutationObserver to monitor specific DOM changes,
169
+ * such as attribute modifications, child node additions or removals, or subtree changes.
170
+ * @default { mutation: boolean }
171
+ */
172
+ observe?:
173
+ | boolean
174
+ | {
175
+ mutation?: boolean
176
+ }
177
+ /**
178
+ * Trigger it when scrolling.
179
+ *
180
+ */
181
+ onScroll?: (e: Event) => void
182
+ /**
183
+ * Trigger it when scrolling ends.
184
+ *
185
+ */
186
+ onStop?: (e: Event) => void
187
+ /**
188
+ * Listener options for scroll event.
189
+ *
190
+ * @default {capture: false, passive: true}
191
+ */
192
+ eventListenerOptions?: boolean | AddEventListenerOptions
193
+ /**
194
+ * Optionally specify a scroll behavior of `auto` (default, not smooth scrolling) or
195
+ * `smooth` (for smooth scrolling) which takes effect when changing the `x` or `y` refs.
196
+ *
197
+ * @default 'auto'
198
+ */
199
+ behavior?: MaybeRefOrGetter<ScrollBehavior>
200
+ /**
201
+ * On error callback
202
+ *
203
+ * Default log error to `console.error`
204
+ */
205
+ onError?: (error: unknown) => void
206
+ }
207
+ export interface UseScrollReturn {
208
+ x: WritableComputedRef<number>
209
+ y: WritableComputedRef<number>
210
+ isScrolling: ShallowRef<boolean>
211
+ arrivedState: {
212
+ left: boolean
213
+ right: boolean
214
+ top: boolean
215
+ bottom: boolean
216
+ }
217
+ directions: {
218
+ left: boolean
219
+ right: boolean
220
+ top: boolean
221
+ bottom: boolean
222
+ }
223
+ measure: () => void
224
+ }
225
+ /**
226
+ * Reactive scroll.
227
+ *
228
+ * @see https://vueuse.org/useScroll
229
+ * @param element
230
+ * @param options
231
+ */
232
+ export declare function useScroll(
233
+ element: MaybeRefOrGetter<
234
+ HTMLElement | SVGElement | Window | Document | null | undefined
235
+ >,
236
+ options?: UseScrollOptions,
237
+ ): UseScrollReturn
238
+ ```
@@ -0,0 +1,66 @@
1
+ ---
2
+ category: Sensors
3
+ ---
4
+
5
+ # useScrollLock
6
+
7
+ Lock scrolling of the element.
8
+
9
+ ## Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useScrollLock } from '@vueuse/core'
14
+ import { useTemplateRef } from 'vue'
15
+
16
+ const el = useTemplateRef('el')
17
+ const isLocked = useScrollLock(el)
18
+
19
+ isLocked.value = true // lock
20
+ isLocked.value = false // unlock
21
+ </script>
22
+
23
+ <template>
24
+ <div ref="el" />
25
+ </template>
26
+ ```
27
+
28
+ ## Directive Usage
29
+
30
+ ```vue
31
+ <script setup lang="ts">
32
+ import { vScrollLock } from '@vueuse/components'
33
+
34
+ const data = ref([1, 2, 3, 4, 5, 6])
35
+ const isLocked = ref(false)
36
+ const toggleLock = useToggle(isLocked)
37
+ </script>
38
+
39
+ <template>
40
+ <div v-scroll-lock="isLocked">
41
+ <div v-for="item in data" :key="item">
42
+ {{ item }}
43
+ </div>
44
+ </div>
45
+ <button @click="toggleLock()">
46
+ Toggle lock state
47
+ </button>
48
+ </template>
49
+ ```
50
+
51
+ ## Type Declarations
52
+
53
+ ```ts
54
+ /**
55
+ * Lock scrolling of the element.
56
+ *
57
+ * @see https://vueuse.org/useScrollLock
58
+ * @param element
59
+ */
60
+ export declare function useScrollLock(
61
+ element: MaybeRefOrGetter<
62
+ HTMLElement | SVGElement | Window | Document | null | undefined
63
+ >,
64
+ initialState?: boolean,
65
+ ): WritableComputedRef<boolean, boolean>
66
+ ```
@@ -0,0 +1,41 @@
1
+ ---
2
+ category: State
3
+ ---
4
+
5
+ # useSessionStorage
6
+
7
+ Reactive [SessionStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage).
8
+
9
+ ## Usage
10
+
11
+ Please refer to `useStorage`.
12
+
13
+ ## Type Declarations
14
+
15
+ ```ts
16
+ export declare function useSessionStorage(
17
+ key: MaybeRefOrGetter<string>,
18
+ initialValue: MaybeRefOrGetter<string>,
19
+ options?: UseStorageOptions<string>,
20
+ ): RemovableRef<string>
21
+ export declare function useSessionStorage(
22
+ key: MaybeRefOrGetter<string>,
23
+ initialValue: MaybeRefOrGetter<boolean>,
24
+ options?: UseStorageOptions<boolean>,
25
+ ): RemovableRef<boolean>
26
+ export declare function useSessionStorage(
27
+ key: MaybeRefOrGetter<string>,
28
+ initialValue: MaybeRefOrGetter<number>,
29
+ options?: UseStorageOptions<number>,
30
+ ): RemovableRef<number>
31
+ export declare function useSessionStorage<T>(
32
+ key: MaybeRefOrGetter<string>,
33
+ initialValue: MaybeRefOrGetter<T>,
34
+ options?: UseStorageOptions<T>,
35
+ ): RemovableRef<T>
36
+ export declare function useSessionStorage<T = unknown>(
37
+ key: MaybeRefOrGetter<string>,
38
+ initialValue: MaybeRefOrGetter<null>,
39
+ options?: UseStorageOptions<T>,
40
+ ): RemovableRef<T>
41
+ ```
@@ -0,0 +1,67 @@
1
+ ---
2
+ category: Browser
3
+ ---
4
+
5
+ # useShare
6
+
7
+ Reactive [Web Share API](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share). The Browser provides features that can share content in text or file.
8
+
9
+ > The `share` method has to be called following a user gesture like a button click. It can’t simply be called on page load for example. That’s in place to help prevent abuse.
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { useShare } from '@vueuse/core'
15
+
16
+ const { share, isSupported } = useShare()
17
+
18
+ function startShare() {
19
+ share({
20
+ title: 'Hello',
21
+ text: 'Hello my friend!',
22
+ url: location.href,
23
+ })
24
+ }
25
+ ```
26
+
27
+ ### Passing a source ref
28
+
29
+ You can pass a `ref` to it, changes from the source ref will be reflected to your sharing options.
30
+
31
+ ```ts {6}
32
+ import { ref } from 'vue'
33
+
34
+ const shareOptions = ref<ShareOptions>({ text: 'foo' })
35
+ const { share, isSupported } = useShare(shareOptions)
36
+
37
+ shareOptions.value.text = 'bar'
38
+
39
+ share()
40
+ ```
41
+
42
+ ## Type Declarations
43
+
44
+ ```ts
45
+ export interface UseShareOptions {
46
+ title?: string
47
+ files?: File[]
48
+ text?: string
49
+ url?: string
50
+ }
51
+ export interface UseShareReturn extends Supportable {
52
+ share: (overrideOptions?: MaybeRefOrGetter<UseShareOptions>) => Promise<void>
53
+ }
54
+ /**
55
+ * Reactive Web Share API.
56
+ *
57
+ * @see https://vueuse.org/useShare
58
+ * @param shareOptions
59
+ * @param options
60
+ *
61
+ * @__NO_SIDE_EFFECTS__
62
+ */
63
+ export declare function useShare(
64
+ shareOptions?: MaybeRefOrGetter<UseShareOptions>,
65
+ options?: ConfigurableNavigator,
66
+ ): UseShareReturn
67
+ ```
@@ -0,0 +1,276 @@
1
+ ---
2
+ category: '@Integrations'
3
+ ---
4
+
5
+ # useSortable
6
+
7
+ Wrapper for [`sortable`](https://github.com/SortableJS/Sortable).
8
+
9
+ For more information on what options can be passed, see [`Sortable.options`](https://github.com/SortableJS/Sortable#options) in the `Sortable` documentation.
10
+
11
+ ::: warning
12
+ Currently, `useSortable` only implements drag-and-drop sorting for a single list.
13
+ :::
14
+
15
+ ## Install
16
+
17
+ ```bash
18
+ npm i sortablejs@^1
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ ### Use template ref
24
+
25
+ ```vue
26
+ <script setup lang="ts">
27
+ import { useSortable } from '@vueuse/integrations/useSortable'
28
+ import { shallowRef, useTemplateRef } from 'vue'
29
+
30
+ const el = useTemplateRef('el')
31
+ const list = shallowRef([{ id: 1, name: 'a' }, { id: 2, name: 'b' }, { id: 3, name: 'c' }])
32
+
33
+ useSortable(el, list)
34
+ </script>
35
+
36
+ <template>
37
+ <div ref="el">
38
+ <div v-for="item in list" :key="item.id">
39
+ {{ item.name }}
40
+ </div>
41
+ </div>
42
+ </template>
43
+ ```
44
+
45
+ ### Use specifies the selector to operate on
46
+
47
+ ```vue
48
+ <script setup lang="ts">
49
+ import { useSortable } from '@vueuse/integrations/useSortable'
50
+ import { shallowRef, useTemplateRef } from 'vue'
51
+
52
+ const el = useTemplateRef('el')
53
+ const list = shallowRef([{ id: 1, name: 'a' }, { id: 2, name: 'b' }, { id: 3, name: 'c' }])
54
+
55
+ const animation = 200
56
+
57
+ const { option } = useSortable(el, list, {
58
+ handle: '.handle',
59
+ // or option set
60
+ // animation
61
+ })
62
+
63
+ // You can use the option method to set and get the option of Sortable
64
+ option('animation', animation)
65
+ // option('animation') // 200
66
+ </script>
67
+
68
+ <template>
69
+ <div ref="el">
70
+ <div v-for="item in list" :key="item.id">
71
+ <span>{{ item.name }}</span>
72
+ <span class="handle">*</span>
73
+ </div>
74
+ </div>
75
+ </template>
76
+ ```
77
+
78
+ ### Use a selector to get the root element
79
+
80
+ ```vue
81
+ <script setup lang="ts">
82
+ import { useSortable } from '@vueuse/integrations/useSortable'
83
+ import { shallowRef } from 'vue'
84
+
85
+ const list = shallowRef([{ id: 1, name: 'a' }, { id: 2, name: 'b' }, { id: 3, name: 'c' }])
86
+
87
+ useSortable('#dv', list)
88
+ </script>
89
+
90
+ <template>
91
+ <div id="dv">
92
+ <div v-for="item in list" :key="item.id">
93
+ <span>{{ item.name }}</span>
94
+ </div>
95
+ </div>
96
+ </template>
97
+ ```
98
+
99
+ ### Using Component
100
+
101
+ ```vue
102
+ <script setup lang="ts">
103
+ import { UseSortable } from '@vueuse/integrations/useSortable/component'
104
+ import { shallowRef } from 'vue'
105
+
106
+ const list = shallowRef([
107
+ { id: 1, name: 'a' },
108
+ { id: 2, name: 'b' },
109
+ { id: 3, name: 'c' },
110
+ ])
111
+ </script>
112
+
113
+ <template>
114
+ <UseSortable v-model="list" as="ol" :options="{ animation: 150 }">
115
+ <li v-for="item in list" :key="item.id">
116
+ {{ item.name }}
117
+ </li>
118
+ </UseSortable>
119
+ </template>
120
+ ```
121
+
122
+ You can also access the helper functions like `start`, `stop`, and `option` from the slot scope:
123
+
124
+ ```vue
125
+ <template>
126
+ <UseSortable v-slot="{ stop, start }" v-model="list">
127
+ <button @click="stop()">
128
+ Stop Sorting
129
+ </button>
130
+ <button @click="start()">
131
+ Start Sorting
132
+ </button>
133
+ <div v-for="item in list" :key="item.id">
134
+ {{ item.name }}
135
+ </div>
136
+ </UseSortable>
137
+ </template>
138
+ ```
139
+
140
+ ### Return Values
141
+
142
+ | Property | Description |
143
+ | -------- | ---------------------------------------------------------------- |
144
+ | `start` | Initialize the Sortable instance (called automatically on mount) |
145
+ | `stop` | Destroy the Sortable instance |
146
+ | `option` | Get or set Sortable options at runtime |
147
+
148
+ ```ts
149
+ const { start, stop, option } = useSortable(el, list)
150
+
151
+ // Stop sorting
152
+ stop()
153
+
154
+ // Start sorting again
155
+ start()
156
+
157
+ // Get/set options
158
+ option('animation', 200) // set
159
+ const animation = option('animation') // get
160
+ ```
161
+
162
+ ### Watch Element Changes
163
+
164
+ Use the `watchElement` option to automatically reinitialize Sortable when the element changes (useful with `v-if`).
165
+
166
+ ```ts
167
+ import { useSortable } from '@vueuse/integrations/useSortable'
168
+
169
+ useSortable(el, list, {
170
+ watchElement: true, // auto-reinitialize when element changes
171
+ })
172
+ ```
173
+
174
+ ### Custom Update Handler
175
+
176
+ If you want to handle the `onUpdate` yourself, you can pass in `onUpdate` parameters, and we also exposed a function to move the item position.
177
+
178
+ ```ts
179
+ import { moveArrayElement, useSortable } from '@vueuse/integrations/useSortable'
180
+
181
+ useSortable(el, list, {
182
+ onUpdate: (e) => {
183
+ // do something
184
+ moveArrayElement(list, e.oldIndex, e.newIndex, e)
185
+ // nextTick required here as moveArrayElement is executed in a microtask
186
+ // so we need to wait until the next tick until that is finished.
187
+ nextTick(() => {
188
+ /* do something */
189
+ })
190
+ }
191
+ })
192
+ ```
193
+
194
+ ### Helper Functions
195
+
196
+ The following helper functions are also exported:
197
+
198
+ | Function | Description |
199
+ | ------------------------------------------ | ----------------------------------------------------- |
200
+ | `moveArrayElement(list, from, to, event?)` | Move an element in an array from one index to another |
201
+ | `insertNodeAt(parent, element, index)` | Insert a DOM node at a specific index |
202
+ | `removeNode(node)` | Remove a DOM node from its parent |
203
+
204
+ ## Type Declarations
205
+
206
+ ```ts
207
+ export interface UseSortableReturn {
208
+ /**
209
+ * start sortable instance
210
+ */
211
+ start: () => void
212
+ /**
213
+ * destroy sortable instance
214
+ */
215
+ stop: () => void
216
+ /**
217
+ * Options getter/setter
218
+ * @param name a Sortable.Options property.
219
+ * @param value a value.
220
+ */
221
+ option: (<K extends keyof Sortable.Options>(
222
+ name: K,
223
+ value: Sortable.Options[K],
224
+ ) => void) &
225
+ (<K extends keyof Sortable.Options>(name: K) => Sortable.Options[K])
226
+ }
227
+ export interface UseSortableOptions extends Options, ConfigurableDocument {
228
+ /**
229
+ * Watch the element reference for changes and automatically reinitialize Sortable
230
+ * when the element changes.
231
+ *
232
+ * When `false` (default), Sortable is only initialized once on mount.
233
+ * You must manually call `start()` if the element reference changes.
234
+ *
235
+ * When `true`, automatically watches the element reference and reinitializes
236
+ * Sortable whenever it changes (e.g., conditional rendering with v-if).
237
+ *
238
+ * @default false
239
+ */
240
+ watchElement?: boolean
241
+ }
242
+ export declare function useSortable<T>(
243
+ selector: string,
244
+ list: MaybeRef<T[]>,
245
+ options?: UseSortableOptions,
246
+ ): UseSortableReturn
247
+ export declare function useSortable<T>(
248
+ el: MaybeRefOrGetter<MaybeElement>,
249
+ list: MaybeRef<T[]>,
250
+ options?: UseSortableOptions,
251
+ ): UseSortableReturn
252
+ /**
253
+ * Inserts a element into the DOM at a given index.
254
+ * @param parentElement
255
+ * @param element
256
+ * @param {number} index
257
+ * @see https://github.com/Alfred-Skyblue/vue-draggable-plus/blob/a3829222095e1949bf2c9a20979d7b5930e66f14/src/utils/index.ts#L81C1-L94C2
258
+ */
259
+ export declare function insertNodeAt(
260
+ parentElement: Element,
261
+ element: Element,
262
+ index: number,
263
+ ): void
264
+ /**
265
+ * Removes a node from the DOM.
266
+ * @param {Node} node
267
+ * @see https://github.com/Alfred-Skyblue/vue-draggable-plus/blob/a3829222095e1949bf2c9a20979d7b5930e66f14/src/utils/index.ts#L96C1-L102C2
268
+ */
269
+ export declare function removeNode(node: Node): void
270
+ export declare function moveArrayElement<T>(
271
+ list: MaybeRef<T[]>,
272
+ from: number,
273
+ to: number,
274
+ e?: Sortable.SortableEvent | null,
275
+ ): void
276
+ ```