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,182 @@
1
+ ---
2
+ category: Component
3
+ ---
4
+
5
+ # useVirtualList
6
+
7
+ ::: warning
8
+ Consider using [`@tanstack/vue-virtual`](https://tanstack.com/virtual/v3/docs/framework/vue/vue-virtual) instead, if you are looking for more features.
9
+ :::
10
+
11
+ Create virtual lists with ease. Virtual lists (sometimes called [_virtual scrollers_](https://vue-virtual-scroller-demo.netlify.app/)) allow you to render a large number of items performantly. They only render the minimum number of DOM nodes necessary to show the items within the `container` element by using the `wrapper` element to emulate the container element's full height.
12
+
13
+ ## Usage
14
+
15
+ ### Simple list
16
+
17
+ ```ts
18
+ import { useVirtualList } from '@vueuse/core'
19
+
20
+ const { list, containerProps, wrapperProps } = useVirtualList(
21
+ Array.from(Array.from({ length: 99999 }).keys()),
22
+ {
23
+ // Keep `itemHeight` in sync with the item's row.
24
+ itemHeight: 22,
25
+ },
26
+ )
27
+ ```
28
+
29
+ ### Config
30
+
31
+ | State | Type | Description |
32
+ | ---------- | -------- | ----------------------------------------------------------------------------------------------- |
33
+ | itemHeight | `number` | ensure that the total height of the `wrapper` element is calculated correctly.\* |
34
+ | itemWidth | `number` | ensure that the total width of the `wrapper` element is calculated correctly.\* |
35
+ | overscan | `number` | number of pre-rendered DOM nodes. Prevents whitespace between items if you scroll very quickly. |
36
+
37
+ \* The `itemHeight` or `itemWidth` must be kept in sync with the height of each row rendered. If you are seeing extra whitespace or jitter when scrolling to the bottom of the list, ensure the `itemHeight` or `itemWidth` is the same height as the row.
38
+
39
+ ### Reactive list
40
+
41
+ ```ts
42
+ import { useToggle, useVirtualList } from '@vueuse/core'
43
+ import { computed } from 'vue'
44
+
45
+ const [isEven, toggle] = useToggle()
46
+ const allItems = Array.from(Array.from({ length: 99999 }).keys())
47
+ const filteredList = computed(() => allItems.filter(i => isEven.value ? i % 2 === 0 : i % 2 === 1))
48
+
49
+ const { list, containerProps, wrapperProps } = useVirtualList(
50
+ filteredList,
51
+ {
52
+ itemHeight: 22,
53
+ },
54
+ )
55
+ ```
56
+
57
+ ```vue
58
+ <template>
59
+ <p>Showing {{ isEven ? 'even' : 'odd' }} items</p>
60
+ <button @click="toggle">
61
+ Toggle Even/Odd
62
+ </button>
63
+ <div v-bind="containerProps" style="height: 300px">
64
+ <div v-bind="wrapperProps">
65
+ <div v-for="item in list" :key="item.index" style="height: 22px">
66
+ Row: {{ item.data }}
67
+ </div>
68
+ </div>
69
+ </div>
70
+ </template>
71
+ ```
72
+
73
+ ### Horizontal list
74
+
75
+ ```ts
76
+ import { useVirtualList } from '@vueuse/core'
77
+
78
+ const allItems = Array.from(Array.from({ length: 99999 }).keys())
79
+
80
+ const { list, containerProps, wrapperProps } = useVirtualList(
81
+ allItems,
82
+ {
83
+ itemWidth: 200,
84
+ },
85
+ )
86
+ ```
87
+
88
+ ```vue
89
+ <template>
90
+ <div v-bind="containerProps" style="height: 300px">
91
+ <div v-bind="wrapperProps">
92
+ <div v-for="item in list" :key="item.index" style="width: 200px">
93
+ Row: {{ item.data }}
94
+ </div>
95
+ </div>
96
+ </div>
97
+ </template>
98
+ ```
99
+
100
+ ## Component Usage
101
+
102
+ ```vue
103
+ <template>
104
+ <UseVirtualList :list="list" :options="options" height="300px">
105
+ <template #default="props">
106
+ <!-- you can get current item of list here -->
107
+ <div style="height: 22px">
108
+ Row {{ props.index }} {{ props.data }}
109
+ </div>
110
+ </template>
111
+ </UseVirtualList>
112
+ </template>
113
+ ```
114
+
115
+ To scroll to a specific element, the component exposes `scrollTo(index: number) => void`.
116
+
117
+ ## Type Declarations
118
+
119
+ ```ts
120
+ type UseVirtualListItemSize = number | ((index: number) => number)
121
+ export interface UseHorizontalVirtualListOptions extends UseVirtualListOptionsBase {
122
+ /**
123
+ * item width, accept a pixel value or a function that returns the width
124
+ *
125
+ * @default 0
126
+ */
127
+ itemWidth: UseVirtualListItemSize
128
+ }
129
+ export interface UseVerticalVirtualListOptions extends UseVirtualListOptionsBase {
130
+ /**
131
+ * item height, accept a pixel value or a function that returns the height
132
+ *
133
+ * @default 0
134
+ */
135
+ itemHeight: UseVirtualListItemSize
136
+ }
137
+ export interface UseVirtualListOptionsBase {
138
+ /**
139
+ * the extra buffer items outside of the view area
140
+ *
141
+ * @default 5
142
+ */
143
+ overscan?: number
144
+ }
145
+ export type UseVirtualListOptions =
146
+ | UseHorizontalVirtualListOptions
147
+ | UseVerticalVirtualListOptions
148
+ export interface UseVirtualListItem<T> {
149
+ data: T
150
+ index: number
151
+ }
152
+ export interface UseVirtualListReturn<T> {
153
+ list: Ref<UseVirtualListItem<T>[]>
154
+ scrollTo: (index: number) => void
155
+ containerProps: {
156
+ ref: Ref<HTMLElement | null>
157
+ onScroll: () => void
158
+ style: StyleValue
159
+ }
160
+ wrapperProps: ComputedRef<{
161
+ style:
162
+ | {
163
+ width: string
164
+ height: string
165
+ marginTop: string
166
+ }
167
+ | {
168
+ width: string
169
+ height: string
170
+ marginLeft: string
171
+ display: string
172
+ }
173
+ }>
174
+ }
175
+ /**
176
+ * Please consider using [`vue-virtual-scroller`](https://github.com/Akryum/vue-virtual-scroller) if you are looking for more features.
177
+ */
178
+ export declare function useVirtualList<T = any>(
179
+ list: MaybeRef<readonly T[]>,
180
+ options: UseVirtualListOptions,
181
+ ): UseVirtualListReturn<T>
182
+ ```
@@ -0,0 +1,51 @@
1
+ ---
2
+ category: Browser
3
+ ---
4
+
5
+ # useWakeLock
6
+
7
+ Reactive [Screen Wake Lock API](https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API). Provides a way to prevent devices from dimming or locking the screen when an application needs to keep running.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useWakeLock } from '@vueuse/core'
13
+
14
+ const { isSupported, isActive, forceRequest, request, release } = useWakeLock()
15
+ ```
16
+
17
+ When `request` is called, the wake lock will be requested if the document is visible. Otherwise, the request will be queued until the document becomes visible. If the request is successful, `isActive` will be **true**. Whenever the document is hidden, the `isActive` will be **false**.
18
+
19
+ When `release` is called, the wake lock will be released. If there is a queued request, it will be canceled.
20
+
21
+ To request a wake lock immediately, even if the document is hidden, use `forceRequest`. Note that this may throw an error if the document is hidden.
22
+
23
+ ## Type Declarations
24
+
25
+ ```ts
26
+ type WakeLockType = "screen"
27
+ export interface WakeLockSentinel extends EventTarget {
28
+ type: WakeLockType
29
+ released: boolean
30
+ release: () => Promise<void>
31
+ }
32
+ export type UseWakeLockOptions = ConfigurableNavigator & ConfigurableDocument
33
+ export interface UseWakeLockReturn extends Supportable {
34
+ sentinel: ShallowRef<WakeLockSentinel | null>
35
+ isActive: ComputedRef<boolean>
36
+ request: (type: WakeLockType) => Promise<void>
37
+ forceRequest: (type: WakeLockType) => Promise<void>
38
+ release: () => Promise<void>
39
+ }
40
+ /**
41
+ * Reactive Screen Wake Lock API.
42
+ *
43
+ * @see https://vueuse.org/useWakeLock
44
+ * @param options
45
+ *
46
+ * @__NO_SIDE_EFFECTS__
47
+ */
48
+ export declare function useWakeLock(
49
+ options?: UseWakeLockOptions,
50
+ ): UseWakeLockReturn
51
+ ```
@@ -0,0 +1,175 @@
1
+ ---
2
+ category: Browser
3
+ ---
4
+
5
+ # useWebNotification
6
+
7
+ Reactive [Notification](https://developer.mozilla.org/en-US/docs/Web/API/notification)
8
+
9
+ The Web Notification interface of the Notifications API is used to configure and display desktop notifications to the user.
10
+
11
+ ## Usage
12
+
13
+ ::: tip
14
+ Before an app can send a notification, the user must grant the application the right to do so. The user's OS settings may also prevent expected notification behaviour.
15
+ :::
16
+
17
+ ```ts
18
+ import { useWebNotification } from '@vueuse/core'
19
+
20
+ const {
21
+ isSupported,
22
+ notification,
23
+ permissionGranted,
24
+ show,
25
+ close,
26
+ onClick,
27
+ onShow,
28
+ onError,
29
+ onClose,
30
+ } = useWebNotification({
31
+ title: 'Hello, VueUse world!',
32
+ dir: 'auto',
33
+ lang: 'en',
34
+ renotify: true,
35
+ tag: 'test',
36
+ })
37
+
38
+ if (isSupported.value && permissionGranted.value)
39
+ show()
40
+ ```
41
+
42
+ This composable also utilizes the createEventHook utility from '@vueuse/shared`:
43
+
44
+ ```ts
45
+ import { useWebNotification } from '@vueuse/core'
46
+
47
+ const { onClick, onShow, onError, onClose, } = useWebNotification()
48
+ // ---cut---
49
+ onClick((evt: Event) => {
50
+ // Do something with the notification on:click event...
51
+ })
52
+
53
+ onShow((evt: Event) => {
54
+ // Do something with the notification on:show event...
55
+ })
56
+
57
+ onError((evt: Event) => {
58
+ // Do something with the notification on:error event...
59
+ })
60
+
61
+ onClose((evt: Event) => {
62
+ // Do something with the notification on:close event...
63
+ })
64
+ ```
65
+
66
+ ## Type Declarations
67
+
68
+ ```ts
69
+ export interface WebNotificationOptions {
70
+ /**
71
+ * The title read-only property of the Notification interface indicates
72
+ * the title of the notification
73
+ *
74
+ * @default ''
75
+ */
76
+ title?: string
77
+ /**
78
+ * The body string of the notification as specified in the constructor's
79
+ * options parameter.
80
+ *
81
+ * @default ''
82
+ */
83
+ body?: string
84
+ /**
85
+ * The text direction of the notification as specified in the constructor's
86
+ * options parameter.
87
+ *
88
+ * @default ''
89
+ */
90
+ dir?: "auto" | "ltr" | "rtl"
91
+ /**
92
+ * The language code of the notification as specified in the constructor's
93
+ * options parameter.
94
+ *
95
+ * @default DOMString
96
+ */
97
+ lang?: string
98
+ /**
99
+ * The ID of the notification(if any) as specified in the constructor's options
100
+ * parameter.
101
+ *
102
+ * @default ''
103
+ */
104
+ tag?: string
105
+ /**
106
+ * The URL of the image used as an icon of the notification as specified
107
+ * in the constructor's options parameter.
108
+ *
109
+ * @default ''
110
+ */
111
+ icon?: string
112
+ /**
113
+ * Specifies whether the user should be notified after a new notification
114
+ * replaces an old one.
115
+ *
116
+ * @default false
117
+ */
118
+ renotify?: boolean
119
+ /**
120
+ * A boolean value indicating that a notification should remain active until the
121
+ * user clicks or dismisses it, rather than closing automatically.
122
+ *
123
+ * @default false
124
+ */
125
+ requireInteraction?: boolean
126
+ /**
127
+ * The silent read-only property of the Notification interface specifies
128
+ * whether the notification should be silent, i.e., no sounds or vibrations
129
+ * should be issued, regardless of the device settings.
130
+ *
131
+ * @default false
132
+ */
133
+ silent?: boolean
134
+ /**
135
+ * Specifies a vibration pattern for devices with vibration hardware to emit.
136
+ * A vibration pattern, as specified in the Vibration API spec
137
+ *
138
+ * @see https://w3c.github.io/vibration/
139
+ */
140
+ vibrate?: number[]
141
+ }
142
+ export interface UseWebNotificationOptions
143
+ extends ConfigurableWindow, WebNotificationOptions {
144
+ /**
145
+ * Request for permissions onMounted if it's not granted.
146
+ *
147
+ * Can be disabled and calling `ensurePermissions` to grant afterwords.
148
+ *
149
+ * @default true
150
+ */
151
+ requestPermissions?: boolean
152
+ }
153
+ export interface UseWebNotificationReturn extends Supportable {
154
+ notification: ShallowRef<Notification | null>
155
+ ensurePermissions: () => Promise<boolean | undefined>
156
+ permissionGranted: ShallowRef<boolean>
157
+ show: (
158
+ overrides?: WebNotificationOptions,
159
+ ) => Promise<Notification | undefined>
160
+ close: () => void
161
+ onClick: EventHookOn<Event>
162
+ onShow: EventHookOn<Event>
163
+ onError: EventHookOn<Event>
164
+ onClose: EventHookOn<Event>
165
+ }
166
+ /**
167
+ * Reactive useWebNotification
168
+ *
169
+ * @see https://vueuse.org/useWebNotification
170
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/notification
171
+ */
172
+ export declare function useWebNotification(
173
+ options?: UseWebNotificationOptions,
174
+ ): UseWebNotificationReturn
175
+ ```
@@ -0,0 +1,299 @@
1
+ ---
2
+ category: Network
3
+ ---
4
+
5
+ # useWebSocket
6
+
7
+ Reactive [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket) client.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useWebSocket } from '@vueuse/core'
13
+
14
+ const { status, data, send, open, close, ws } = useWebSocket('ws://websocketurl')
15
+ ```
16
+
17
+ ### Return Values
18
+
19
+ | Property | Type | Description |
20
+ | -------- | ----------------------------------------- | ------------------------------------ |
21
+ | `data` | `Ref<any>` | Latest received data |
22
+ | `status` | `Ref<'OPEN' \| 'CONNECTING' \| 'CLOSED'>` | Connection status |
23
+ | `ws` | `Ref<WebSocket>` | WebSocket instance |
24
+ | `send` | `(data, useBuffer?) => boolean` | Send data (buffers if not connected) |
25
+ | `open` | `() => void` | Open/reconnect the connection |
26
+ | `close` | `(code?, reason?) => void` | Close the connection |
27
+
28
+ ### Callbacks
29
+
30
+ ```ts
31
+ const { data } = useWebSocket('ws://websocketurl', {
32
+ onConnected(ws) {
33
+ console.log('Connected!')
34
+ },
35
+ onDisconnected(ws, event) {
36
+ console.log('Disconnected!', event.code)
37
+ },
38
+ onError(ws, event) {
39
+ console.error('Error:', event)
40
+ },
41
+ onMessage(ws, event) {
42
+ console.log('Message:', event.data)
43
+ },
44
+ })
45
+ ```
46
+
47
+ See the [Type Declarations](#type-declarations) for more options.
48
+
49
+ ### immediate
50
+
51
+ Enable by default.
52
+
53
+ Establish the connection immediately when the composable is called.
54
+
55
+ ### autoConnect
56
+
57
+ Enable by default.
58
+
59
+ If a URL is provided as a ref, when the URL changes, it will automatically reconnect to the new URL.
60
+
61
+ ### autoClose
62
+
63
+ Enable by default.
64
+
65
+ This will call `close()` automatically when the `beforeunload` event is triggered or the associated effect scope is stopped.
66
+
67
+ ### autoReconnect
68
+
69
+ Reconnect on errors automatically (disabled by default).
70
+
71
+ ```ts
72
+ import { useWebSocket } from '@vueuse/core'
73
+ // ---cut---
74
+ const { status, data, close } = useWebSocket('ws://websocketurl', {
75
+ autoReconnect: true,
76
+ })
77
+ ```
78
+
79
+ Or with more controls over its behavior:
80
+
81
+ ```ts
82
+ import { useWebSocket } from '@vueuse/core'
83
+ // ---cut---
84
+ const { status, data, close } = useWebSocket('ws://websocketurl', {
85
+ autoReconnect: {
86
+ retries: 3,
87
+ delay: 1000,
88
+ onFailed() {
89
+ alert('Failed to connect WebSocket after 3 retries')
90
+ },
91
+ },
92
+ })
93
+ ```
94
+
95
+ You can also pass a function to `delay` to calculate the delay based on the number of retries. This is useful for implementing exponential backoff:
96
+
97
+ ```ts
98
+ import { useWebSocket } from '@vueuse/core'
99
+ // ---cut---
100
+ const { status, data, close } = useWebSocket('ws://websocketurl', {
101
+ autoReconnect: {
102
+ retries: 5,
103
+ // Exponential backoff: 1s, 2s, 4s, 8s, 16s
104
+ delay: retries => Math.min(1000 * 2 ** (retries - 1), 30000),
105
+ },
106
+ })
107
+ ```
108
+
109
+ ```ts
110
+ import { useWebSocket } from '@vueuse/core'
111
+ // ---cut---
112
+ const { status, data, close } = useWebSocket('ws://websocketurl', {
113
+ autoReconnect: {
114
+ retries: 5,
115
+ // Linear backoff: 1s, 2s, 3s, 4s, 5s
116
+ delay: retries => retries * 1000,
117
+ },
118
+ })
119
+ ```
120
+
121
+ Explicitly calling `close()` won't trigger the auto reconnection.
122
+
123
+ ### heartbeat
124
+
125
+ It's common practice to send a small message (heartbeat) for every given time passed to keep the connection active. In this function we provide a convenient helper to do it:
126
+
127
+ ```ts
128
+ import { useWebSocket } from '@vueuse/core'
129
+ // ---cut---
130
+ const { status, data, close } = useWebSocket('ws://websocketurl', {
131
+ heartbeat: true,
132
+ })
133
+ ```
134
+
135
+ Or with more controls:
136
+
137
+ ```ts
138
+ import { useWebSocket } from '@vueuse/core'
139
+ // ---cut---
140
+ const { status, data, close } = useWebSocket('ws://websocketurl', {
141
+ heartbeat: {
142
+ message: 'ping',
143
+ scheduler: cb => useIntervalFn(cb, 2000),
144
+ pongTimeout: 1000,
145
+ },
146
+ })
147
+ ```
148
+
149
+ ### Sub-protocols
150
+
151
+ List of one or more subprotocols to use, in this case SOAP and WAMP.
152
+
153
+ ```ts
154
+ import { useWebSocket } from '@vueuse/core'
155
+ // ---cut---
156
+ const { status, data, send, open, close } = useWebSocket('ws://websocketurl', {
157
+ protocols: ['soap'], // ['soap', 'wamp']
158
+ })
159
+ ```
160
+
161
+ ## Type Declarations
162
+
163
+ ```ts
164
+ export type WebSocketStatus = "OPEN" | "CONNECTING" | "CLOSED"
165
+ export type WebSocketHeartbeatMessage = string | ArrayBuffer | Blob
166
+ export interface UseWebSocketOptions {
167
+ onConnected?: (ws: WebSocket) => void
168
+ onDisconnected?: (ws: WebSocket, event: CloseEvent) => void
169
+ onError?: (ws: WebSocket, event: Event) => void
170
+ onMessage?: (ws: WebSocket, event: MessageEvent) => void
171
+ /**
172
+ * Send heartbeat for every x milliseconds passed
173
+ *
174
+ * @default false
175
+ */
176
+ heartbeat?:
177
+ | boolean
178
+ | (ConfigurableScheduler & {
179
+ /**
180
+ * Message for the heartbeat
181
+ *
182
+ * @default 'ping'
183
+ */
184
+ message?: MaybeRefOrGetter<WebSocketHeartbeatMessage>
185
+ /**
186
+ * Response message for the heartbeat, if undefined the message will be used
187
+ */
188
+ responseMessage?: MaybeRefOrGetter<WebSocketHeartbeatMessage>
189
+ /**
190
+ * Interval, in milliseconds
191
+ *
192
+ * @deprecated Please use `scheduler` option instead
193
+ * @default 1000
194
+ */
195
+ interval?: number
196
+ /**
197
+ * Heartbeat response timeout, in milliseconds
198
+ *
199
+ * @default 1000
200
+ */
201
+ pongTimeout?: number
202
+ })
203
+ /**
204
+ * Enabled auto reconnect
205
+ *
206
+ * @default false
207
+ */
208
+ autoReconnect?:
209
+ | boolean
210
+ | {
211
+ /**
212
+ * Maximum retry times.
213
+ *
214
+ * Or you can pass a predicate function (which returns true if you want to retry).
215
+ *
216
+ * @default -1
217
+ */
218
+ retries?: number | ((retried: number) => boolean)
219
+ /**
220
+ * Delay for reconnect, in milliseconds
221
+ *
222
+ * Or you can pass a function to calculate the delay based on the number of retries.
223
+ *
224
+ * @default 1000
225
+ */
226
+ delay?: number | ((retries: number) => number)
227
+ /**
228
+ * On maximum retry times reached.
229
+ */
230
+ onFailed?: Fn
231
+ }
232
+ /**
233
+ * Immediately open the connection when calling this composable
234
+ *
235
+ * @default true
236
+ */
237
+ immediate?: boolean
238
+ /**
239
+ * Automatically connect to the websocket when URL changes
240
+ *
241
+ * @default true
242
+ */
243
+ autoConnect?: boolean
244
+ /**
245
+ * Automatically close a connection
246
+ *
247
+ * @default true
248
+ */
249
+ autoClose?: boolean
250
+ /**
251
+ * List of one or more sub-protocol strings
252
+ *
253
+ * @default []
254
+ */
255
+ protocols?: string[]
256
+ }
257
+ export interface UseWebSocketReturn<T> {
258
+ /**
259
+ * Reference to the latest data received via the websocket,
260
+ * can be watched to respond to incoming messages
261
+ */
262
+ data: ShallowRef<T | null>
263
+ /**
264
+ * The current websocket status, can be only one of:
265
+ * 'OPEN', 'CONNECTING', 'CLOSED'
266
+ */
267
+ status: ShallowRef<WebSocketStatus>
268
+ /**
269
+ * Closes the websocket connection gracefully.
270
+ */
271
+ close: WebSocket["close"]
272
+ /**
273
+ * Reopen the websocket connection.
274
+ * If there the current one is active, will close it before opening a new one.
275
+ */
276
+ open: Fn
277
+ /**
278
+ * Sends data through the websocket connection.
279
+ *
280
+ * @param data
281
+ * @param useBuffer when the socket is not yet open, store the data into the buffer and sent them one connected. Default to true.
282
+ */
283
+ send: (data: string | ArrayBuffer | Blob, useBuffer?: boolean) => boolean
284
+ /**
285
+ * Reference to the WebSocket instance.
286
+ */
287
+ ws: ShallowRef<WebSocket | undefined>
288
+ }
289
+ /**
290
+ * Reactive WebSocket client.
291
+ *
292
+ * @see https://vueuse.org/useWebSocket
293
+ * @param url
294
+ */
295
+ export declare function useWebSocket<Data = any>(
296
+ url: MaybeRefOrGetter<string | URL | undefined>,
297
+ options?: UseWebSocketOptions,
298
+ ): UseWebSocketReturn<Data>
299
+ ```