ads-fe 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (608) hide show
  1. package/README.md +99 -0
  2. package/dist/cli.js +545 -0
  3. package/dist/meta.js +93 -0
  4. package/package.json +43 -0
  5. package/skill.md +66 -0
  6. package/skills/core/SKILL.md +66 -0
  7. package/skills/core/references/app-development.md +45 -0
  8. package/skills/core/references/git.md +66 -0
  9. package/skills/core/references/monorepo.md +124 -0
  10. package/skills/element-plus-vue3/LICENSE.md +405 -0
  11. package/skills/element-plus-vue3/LICENSE.txt +202 -0
  12. package/skills/element-plus-vue3/SKILL.md +218 -0
  13. package/skills/element-plus-vue3/SYNC.md +5 -0
  14. package/skills/element-plus-vue3/api/component-api.md +94 -0
  15. package/skills/element-plus-vue3/api/global-config.md +89 -0
  16. package/skills/element-plus-vue3/api/props-and-events.md +101 -0
  17. package/skills/element-plus-vue3/examples/components/button.md +99 -0
  18. package/skills/element-plus-vue3/examples/components/date-picker.md +115 -0
  19. package/skills/element-plus-vue3/examples/components/dialog.md +106 -0
  20. package/skills/element-plus-vue3/examples/components/form.md +127 -0
  21. package/skills/element-plus-vue3/examples/components/input.md +123 -0
  22. package/skills/element-plus-vue3/examples/components/message.md +93 -0
  23. package/skills/element-plus-vue3/examples/components/overview.md +59 -0
  24. package/skills/element-plus-vue3/examples/components/select.md +133 -0
  25. package/skills/element-plus-vue3/examples/components/table.md +166 -0
  26. package/skills/element-plus-vue3/examples/guide/design.md +68 -0
  27. package/skills/element-plus-vue3/examples/guide/global-config.md +95 -0
  28. package/skills/element-plus-vue3/examples/guide/i18n.md +95 -0
  29. package/skills/element-plus-vue3/examples/guide/installation.md +110 -0
  30. package/skills/element-plus-vue3/examples/guide/quick-start.md +103 -0
  31. package/skills/element-plus-vue3/examples/guide/theme.md +78 -0
  32. package/skills/element-plus-vue3/templates/component-usage.md +92 -0
  33. package/skills/element-plus-vue3/templates/installation.md +82 -0
  34. package/skills/element-plus-vue3/templates/project-setup.md +83 -0
  35. package/skills/node/LICENSE.md +21 -0
  36. package/skills/node/SKILL.md +94 -0
  37. package/skills/node/SYNC.md +5 -0
  38. package/skills/node/rules/assets/graceful-server.test.ts +88 -0
  39. package/skills/node/rules/assets/graceful-server.ts +80 -0
  40. package/skills/node/rules/async-patterns.md +136 -0
  41. package/skills/node/rules/caching.md +198 -0
  42. package/skills/node/rules/environment.md +253 -0
  43. package/skills/node/rules/error-handling.md +164 -0
  44. package/skills/node/rules/flaky-tests.md +439 -0
  45. package/skills/node/rules/graceful-shutdown.md +204 -0
  46. package/skills/node/rules/logging.md +205 -0
  47. package/skills/node/rules/modules.md +105 -0
  48. package/skills/node/rules/node-modules-exploration.md +172 -0
  49. package/skills/node/rules/performance.md +130 -0
  50. package/skills/node/rules/profiling.md +183 -0
  51. package/skills/node/rules/streams.md +213 -0
  52. package/skills/node/rules/stuck-processes-and-tests.md +124 -0
  53. package/skills/node/rules/testing.md +218 -0
  54. package/skills/node/rules/typescript.md +262 -0
  55. package/skills/node/tile.json +11 -0
  56. package/skills/nuxt/GENERATION.md +5 -0
  57. package/skills/nuxt/LICENSE.md +21 -0
  58. package/skills/nuxt/SKILL.md +55 -0
  59. package/skills/nuxt/SYNC.md +5 -0
  60. package/skills/nuxt/references/advanced-hooks.md +289 -0
  61. package/skills/nuxt/references/advanced-layers.md +299 -0
  62. package/skills/nuxt/references/advanced-module-authoring.md +554 -0
  63. package/skills/nuxt/references/best-practices-data-fetching.md +357 -0
  64. package/skills/nuxt/references/best-practices-ssr.md +355 -0
  65. package/skills/nuxt/references/core-cli.md +263 -0
  66. package/skills/nuxt/references/core-config.md +162 -0
  67. package/skills/nuxt/references/core-data-fetching.md +236 -0
  68. package/skills/nuxt/references/core-deployment.md +224 -0
  69. package/skills/nuxt/references/core-directory-structure.md +269 -0
  70. package/skills/nuxt/references/core-modules.md +292 -0
  71. package/skills/nuxt/references/core-routing.md +226 -0
  72. package/skills/nuxt/references/features-components-autoimport.md +328 -0
  73. package/skills/nuxt/references/features-components.md +264 -0
  74. package/skills/nuxt/references/features-composables.md +276 -0
  75. package/skills/nuxt/references/features-server.md +265 -0
  76. package/skills/nuxt/references/features-state.md +194 -0
  77. package/skills/nuxt/references/rendering-modes.md +237 -0
  78. package/skills/pinia/GENERATION.md +5 -0
  79. package/skills/pinia/LICENSE.md +21 -0
  80. package/skills/pinia/SKILL.md +59 -0
  81. package/skills/pinia/SYNC.md +5 -0
  82. package/skills/pinia/references/advanced-hmr.md +61 -0
  83. package/skills/pinia/references/advanced-nuxt.md +119 -0
  84. package/skills/pinia/references/advanced-ssr.md +121 -0
  85. package/skills/pinia/references/best-practices-outside-component.md +115 -0
  86. package/skills/pinia/references/best-practices-testing.md +212 -0
  87. package/skills/pinia/references/core-stores.md +389 -0
  88. package/skills/pinia/references/features-composables.md +114 -0
  89. package/skills/pinia/references/features-composing-stores.md +134 -0
  90. package/skills/pinia/references/features-plugins.md +203 -0
  91. package/skills/pnpm/GENERATION.md +5 -0
  92. package/skills/pnpm/LICENSE.md +21 -0
  93. package/skills/pnpm/SKILL.md +42 -0
  94. package/skills/pnpm/SYNC.md +5 -0
  95. package/skills/pnpm/references/best-practices-ci.md +285 -0
  96. package/skills/pnpm/references/best-practices-migration.md +291 -0
  97. package/skills/pnpm/references/best-practices-performance.md +284 -0
  98. package/skills/pnpm/references/core-cli.md +229 -0
  99. package/skills/pnpm/references/core-config.md +188 -0
  100. package/skills/pnpm/references/core-store.md +179 -0
  101. package/skills/pnpm/references/core-workspaces.md +205 -0
  102. package/skills/pnpm/references/features-aliases.md +168 -0
  103. package/skills/pnpm/references/features-catalogs.md +159 -0
  104. package/skills/pnpm/references/features-hooks.md +233 -0
  105. package/skills/pnpm/references/features-overrides.md +184 -0
  106. package/skills/pnpm/references/features-patches.md +201 -0
  107. package/skills/pnpm/references/features-peer-deps.md +250 -0
  108. package/skills/slidev/LICENSE.md +21 -0
  109. package/skills/slidev/README.md +61 -0
  110. package/skills/slidev/SKILL.md +189 -0
  111. package/skills/slidev/SYNC.md +5 -0
  112. package/skills/slidev/references/animation-click-marker.md +37 -0
  113. package/skills/slidev/references/animation-drawing.md +68 -0
  114. package/skills/slidev/references/animation-rough-marker.md +53 -0
  115. package/skills/slidev/references/api-slide-hooks.md +37 -0
  116. package/skills/slidev/references/build-og-image.md +36 -0
  117. package/skills/slidev/references/build-pdf.md +40 -0
  118. package/skills/slidev/references/build-remote-assets.md +34 -0
  119. package/skills/slidev/references/build-seo-meta.md +43 -0
  120. package/skills/slidev/references/code-groups.md +64 -0
  121. package/skills/slidev/references/code-import-snippet.md +55 -0
  122. package/skills/slidev/references/code-line-highlighting.md +50 -0
  123. package/skills/slidev/references/code-line-numbers.md +46 -0
  124. package/skills/slidev/references/code-magic-move.md +57 -0
  125. package/skills/slidev/references/code-max-height.md +37 -0
  126. package/skills/slidev/references/code-twoslash.md +42 -0
  127. package/skills/slidev/references/core-animations.md +196 -0
  128. package/skills/slidev/references/core-cli.md +140 -0
  129. package/skills/slidev/references/core-components.md +197 -0
  130. package/skills/slidev/references/core-exporting.md +148 -0
  131. package/skills/slidev/references/core-frontmatter.md +195 -0
  132. package/skills/slidev/references/core-global-context.md +155 -0
  133. package/skills/slidev/references/core-headmatter.md +188 -0
  134. package/skills/slidev/references/core-hosting.md +152 -0
  135. package/skills/slidev/references/core-layouts.md +286 -0
  136. package/skills/slidev/references/core-syntax.md +155 -0
  137. package/skills/slidev/references/diagram-latex.md +55 -0
  138. package/skills/slidev/references/diagram-mermaid.md +44 -0
  139. package/skills/slidev/references/diagram-plantuml.md +45 -0
  140. package/skills/slidev/references/editor-monaco-run.md +44 -0
  141. package/skills/slidev/references/editor-monaco-write.md +24 -0
  142. package/skills/slidev/references/editor-monaco.md +50 -0
  143. package/skills/slidev/references/editor-prettier.md +40 -0
  144. package/skills/slidev/references/editor-side.md +23 -0
  145. package/skills/slidev/references/editor-vscode.md +55 -0
  146. package/skills/slidev/references/layout-canvas-size.md +25 -0
  147. package/skills/slidev/references/layout-draggable.md +57 -0
  148. package/skills/slidev/references/layout-global-layers.md +50 -0
  149. package/skills/slidev/references/layout-slots.md +75 -0
  150. package/skills/slidev/references/layout-transform.md +33 -0
  151. package/skills/slidev/references/layout-zoom.md +39 -0
  152. package/skills/slidev/references/presenter-notes-ruby.md +35 -0
  153. package/skills/slidev/references/presenter-recording.md +30 -0
  154. package/skills/slidev/references/presenter-remote.md +40 -0
  155. package/skills/slidev/references/presenter-timer.md +34 -0
  156. package/skills/slidev/references/style-direction.md +34 -0
  157. package/skills/slidev/references/style-icons.md +46 -0
  158. package/skills/slidev/references/style-scoped.md +50 -0
  159. package/skills/slidev/references/syntax-block-frontmatter.md +39 -0
  160. package/skills/slidev/references/syntax-comark.md +51 -0
  161. package/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
  162. package/skills/slidev/references/syntax-importing-slides.md +60 -0
  163. package/skills/slidev/references/tool-eject-theme.md +27 -0
  164. package/skills/tsdown/LICENSE.md +22 -0
  165. package/skills/tsdown/README.md +77 -0
  166. package/skills/tsdown/SKILL.md +416 -0
  167. package/skills/tsdown/SYNC.md +5 -0
  168. package/skills/tsdown/references/README.md +139 -0
  169. package/skills/tsdown/references/advanced-benchmark.md +8 -0
  170. package/skills/tsdown/references/advanced-ci.md +89 -0
  171. package/skills/tsdown/references/advanced-hooks.md +363 -0
  172. package/skills/tsdown/references/advanced-plugins.md +381 -0
  173. package/skills/tsdown/references/advanced-programmatic.md +378 -0
  174. package/skills/tsdown/references/advanced-rolldown-options.md +117 -0
  175. package/skills/tsdown/references/guide-getting-started.md +183 -0
  176. package/skills/tsdown/references/guide-introduction.md +42 -0
  177. package/skills/tsdown/references/guide-migrate-from-tsup.md +199 -0
  178. package/skills/tsdown/references/option-cjs-default.md +98 -0
  179. package/skills/tsdown/references/option-cleaning.md +275 -0
  180. package/skills/tsdown/references/option-config-file.md +291 -0
  181. package/skills/tsdown/references/option-css.md +301 -0
  182. package/skills/tsdown/references/option-dependencies.md +385 -0
  183. package/skills/tsdown/references/option-dts.md +251 -0
  184. package/skills/tsdown/references/option-entry.md +211 -0
  185. package/skills/tsdown/references/option-exe.md +120 -0
  186. package/skills/tsdown/references/option-lint.md +127 -0
  187. package/skills/tsdown/references/option-log-level.md +91 -0
  188. package/skills/tsdown/references/option-minification.md +177 -0
  189. package/skills/tsdown/references/option-output-directory.md +272 -0
  190. package/skills/tsdown/references/option-output-format.md +183 -0
  191. package/skills/tsdown/references/option-package-exports.md +320 -0
  192. package/skills/tsdown/references/option-platform.md +256 -0
  193. package/skills/tsdown/references/option-root.md +88 -0
  194. package/skills/tsdown/references/option-shims.md +299 -0
  195. package/skills/tsdown/references/option-sourcemap.md +301 -0
  196. package/skills/tsdown/references/option-target.md +222 -0
  197. package/skills/tsdown/references/option-tree-shaking.md +335 -0
  198. package/skills/tsdown/references/option-unbundle.md +310 -0
  199. package/skills/tsdown/references/option-watch-mode.md +261 -0
  200. package/skills/tsdown/references/recipe-react.md +338 -0
  201. package/skills/tsdown/references/recipe-solid.md +42 -0
  202. package/skills/tsdown/references/recipe-svelte.md +54 -0
  203. package/skills/tsdown/references/recipe-vue.md +387 -0
  204. package/skills/tsdown/references/recipe-wasm.md +125 -0
  205. package/skills/tsdown/references/reference-cli.md +472 -0
  206. package/skills/turborepo/LICENSE.md +7 -0
  207. package/skills/turborepo/SKILL.md +951 -0
  208. package/skills/turborepo/SYNC.md +5 -0
  209. package/skills/turborepo/command/turborepo.md +70 -0
  210. package/skills/turborepo/references/best-practices/RULE.md +241 -0
  211. package/skills/turborepo/references/best-practices/dependencies.md +246 -0
  212. package/skills/turborepo/references/best-practices/packages.md +335 -0
  213. package/skills/turborepo/references/best-practices/structure.md +297 -0
  214. package/skills/turborepo/references/boundaries/RULE.md +126 -0
  215. package/skills/turborepo/references/caching/RULE.md +153 -0
  216. package/skills/turborepo/references/caching/gotchas.md +190 -0
  217. package/skills/turborepo/references/caching/remote-cache.md +127 -0
  218. package/skills/turborepo/references/ci/RULE.md +79 -0
  219. package/skills/turborepo/references/ci/github-actions.md +162 -0
  220. package/skills/turborepo/references/ci/patterns.md +145 -0
  221. package/skills/turborepo/references/ci/vercel.md +103 -0
  222. package/skills/turborepo/references/cli/RULE.md +100 -0
  223. package/skills/turborepo/references/cli/commands.md +297 -0
  224. package/skills/turborepo/references/configuration/RULE.md +235 -0
  225. package/skills/turborepo/references/configuration/global-options.md +239 -0
  226. package/skills/turborepo/references/configuration/gotchas.md +368 -0
  227. package/skills/turborepo/references/configuration/tasks.md +325 -0
  228. package/skills/turborepo/references/environment/RULE.md +123 -0
  229. package/skills/turborepo/references/environment/gotchas.md +175 -0
  230. package/skills/turborepo/references/environment/modes.md +101 -0
  231. package/skills/turborepo/references/filtering/RULE.md +148 -0
  232. package/skills/turborepo/references/filtering/patterns.md +152 -0
  233. package/skills/turborepo/references/watch/RULE.md +99 -0
  234. package/skills/vite/GENERATION.md +5 -0
  235. package/skills/vite/LICENSE.md +21 -0
  236. package/skills/vite/SKILL.md +72 -0
  237. package/skills/vite/SYNC.md +5 -0
  238. package/skills/vite/references/build-and-ssr.md +164 -0
  239. package/skills/vite/references/core-config.md +162 -0
  240. package/skills/vite/references/core-features.md +205 -0
  241. package/skills/vite/references/core-plugin-api.md +235 -0
  242. package/skills/vite/references/environment-api.md +108 -0
  243. package/skills/vite/references/rolldown-migration.md +157 -0
  244. package/skills/vitepress/GENERATION.md +5 -0
  245. package/skills/vitepress/LICENSE.md +21 -0
  246. package/skills/vitepress/SKILL.md +65 -0
  247. package/skills/vitepress/SYNC.md +5 -0
  248. package/skills/vitepress/references/advanced-i18n.md +299 -0
  249. package/skills/vitepress/references/advanced-ssr.md +228 -0
  250. package/skills/vitepress/references/core-cli.md +119 -0
  251. package/skills/vitepress/references/core-config.md +189 -0
  252. package/skills/vitepress/references/core-markdown.md +277 -0
  253. package/skills/vitepress/references/core-routing.md +169 -0
  254. package/skills/vitepress/references/features-code-blocks.md +243 -0
  255. package/skills/vitepress/references/features-data-loading.md +220 -0
  256. package/skills/vitepress/references/features-dynamic-routes.md +235 -0
  257. package/skills/vitepress/references/features-vue.md +224 -0
  258. package/skills/vitepress/references/recipes-deploy.md +240 -0
  259. package/skills/vitepress/references/theme-config.md +315 -0
  260. package/skills/vitepress/references/theme-custom.md +269 -0
  261. package/skills/vitepress/references/theme-customization.md +290 -0
  262. package/skills/vitest/GENERATION.md +5 -0
  263. package/skills/vitest/LICENSE.md +21 -0
  264. package/skills/vitest/SKILL.md +52 -0
  265. package/skills/vitest/SYNC.md +5 -0
  266. package/skills/vitest/references/advanced-environments.md +264 -0
  267. package/skills/vitest/references/advanced-projects.md +300 -0
  268. package/skills/vitest/references/advanced-type-testing.md +237 -0
  269. package/skills/vitest/references/advanced-vi.md +249 -0
  270. package/skills/vitest/references/core-cli.md +166 -0
  271. package/skills/vitest/references/core-config.md +174 -0
  272. package/skills/vitest/references/core-describe.md +193 -0
  273. package/skills/vitest/references/core-expect.md +219 -0
  274. package/skills/vitest/references/core-hooks.md +244 -0
  275. package/skills/vitest/references/core-test-api.md +233 -0
  276. package/skills/vitest/references/features-concurrency.md +250 -0
  277. package/skills/vitest/references/features-context.md +238 -0
  278. package/skills/vitest/references/features-coverage.md +207 -0
  279. package/skills/vitest/references/features-filtering.md +211 -0
  280. package/skills/vitest/references/features-mocking.md +265 -0
  281. package/skills/vitest/references/features-snapshots.md +207 -0
  282. package/skills/vue/GENERATION.md +5 -0
  283. package/skills/vue/LICENSE.md +21 -0
  284. package/skills/vue/SKILL.md +84 -0
  285. package/skills/vue/SYNC.md +5 -0
  286. package/skills/vue/references/advanced-patterns.md +314 -0
  287. package/skills/vue/references/core-new-apis.md +264 -0
  288. package/skills/vue/references/script-setup-macros.md +204 -0
  289. package/skills/vue-best-practices/LICENSE.md +21 -0
  290. package/skills/vue-best-practices/SKILL.md +154 -0
  291. package/skills/vue-best-practices/SYNC.md +5 -0
  292. package/skills/vue-best-practices/references/animation-class-based-technique.md +254 -0
  293. package/skills/vue-best-practices/references/animation-state-driven-technique.md +291 -0
  294. package/skills/vue-best-practices/references/component-async.md +97 -0
  295. package/skills/vue-best-practices/references/component-data-flow.md +307 -0
  296. package/skills/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
  297. package/skills/vue-best-practices/references/component-keep-alive.md +137 -0
  298. package/skills/vue-best-practices/references/component-slots.md +216 -0
  299. package/skills/vue-best-practices/references/component-suspense.md +228 -0
  300. package/skills/vue-best-practices/references/component-teleport.md +108 -0
  301. package/skills/vue-best-practices/references/component-transition-group.md +128 -0
  302. package/skills/vue-best-practices/references/component-transition.md +125 -0
  303. package/skills/vue-best-practices/references/composables.md +290 -0
  304. package/skills/vue-best-practices/references/directives.md +162 -0
  305. package/skills/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
  306. package/skills/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
  307. package/skills/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
  308. package/skills/vue-best-practices/references/plugins.md +166 -0
  309. package/skills/vue-best-practices/references/reactivity.md +344 -0
  310. package/skills/vue-best-practices/references/render-functions.md +201 -0
  311. package/skills/vue-best-practices/references/sfc.md +310 -0
  312. package/skills/vue-best-practices/references/state-management.md +135 -0
  313. package/skills/vue-best-practices/references/updated-hook-performance.md +187 -0
  314. package/skills/vue-router-best-practices/LICENSE.md +21 -0
  315. package/skills/vue-router-best-practices/SKILL.md +23 -0
  316. package/skills/vue-router-best-practices/SYNC.md +5 -0
  317. package/skills/vue-router-best-practices/reference/router-beforeenter-no-param-trigger.md +167 -0
  318. package/skills/vue-router-best-practices/reference/router-beforerouteenter-no-this.md +176 -0
  319. package/skills/vue-router-best-practices/reference/router-guard-async-await-pattern.md +227 -0
  320. package/skills/vue-router-best-practices/reference/router-navigation-guard-infinite-loop.md +187 -0
  321. package/skills/vue-router-best-practices/reference/router-navigation-guard-next-deprecated.md +150 -0
  322. package/skills/vue-router-best-practices/reference/router-param-change-no-lifecycle.md +181 -0
  323. package/skills/vue-router-best-practices/reference/router-simple-routing-cleanup.md +209 -0
  324. package/skills/vue-router-best-practices/reference/router-use-vue-router-for-production.md +183 -0
  325. package/skills/vue-testing-best-practices/LICENSE.md +21 -0
  326. package/skills/vue-testing-best-practices/SKILL.md +29 -0
  327. package/skills/vue-testing-best-practices/SYNC.md +5 -0
  328. package/skills/vue-testing-best-practices/reference/async-component-testing.md +163 -0
  329. package/skills/vue-testing-best-practices/reference/teleport-testing-complexity.md +158 -0
  330. package/skills/vue-testing-best-practices/reference/testing-async-await-flushpromises.md +175 -0
  331. package/skills/vue-testing-best-practices/reference/testing-browser-vs-node-runners.md +208 -0
  332. package/skills/vue-testing-best-practices/reference/testing-component-blackbox-approach.md +144 -0
  333. package/skills/vue-testing-best-practices/reference/testing-composables-helper-wrapper.md +238 -0
  334. package/skills/vue-testing-best-practices/reference/testing-e2e-playwright-recommended.md +242 -0
  335. package/skills/vue-testing-best-practices/reference/testing-no-snapshot-only.md +197 -0
  336. package/skills/vue-testing-best-practices/reference/testing-pinia-store-setup.md +228 -0
  337. package/skills/vue-testing-best-practices/reference/testing-suspense-async-components.md +229 -0
  338. package/skills/vue-testing-best-practices/reference/testing-vitest-recommended-for-vue.md +204 -0
  339. package/skills/vueuse-functions/LICENSE.md +21 -0
  340. package/skills/vueuse-functions/SKILL.md +419 -0
  341. package/skills/vueuse-functions/SYNC.md +5 -0
  342. package/skills/vueuse-functions/references/computedAsync.md +195 -0
  343. package/skills/vueuse-functions/references/computedEager.md +62 -0
  344. package/skills/vueuse-functions/references/computedInject.md +137 -0
  345. package/skills/vueuse-functions/references/computedWithControl.md +98 -0
  346. package/skills/vueuse-functions/references/createEventHook.md +86 -0
  347. package/skills/vueuse-functions/references/createGenericProjection.md +25 -0
  348. package/skills/vueuse-functions/references/createGlobalState.md +95 -0
  349. package/skills/vueuse-functions/references/createInjectionState.md +226 -0
  350. package/skills/vueuse-functions/references/createProjection.md +31 -0
  351. package/skills/vueuse-functions/references/createRef.md +54 -0
  352. package/skills/vueuse-functions/references/createReusableTemplate.md +361 -0
  353. package/skills/vueuse-functions/references/createSharedComposable.md +42 -0
  354. package/skills/vueuse-functions/references/createTemplatePromise.md +306 -0
  355. package/skills/vueuse-functions/references/createUnrefFn.md +51 -0
  356. package/skills/vueuse-functions/references/extendRef.md +76 -0
  357. package/skills/vueuse-functions/references/from.md +80 -0
  358. package/skills/vueuse-functions/references/get.md +30 -0
  359. package/skills/vueuse-functions/references/injectLocal.md +35 -0
  360. package/skills/vueuse-functions/references/isDefined.md +31 -0
  361. package/skills/vueuse-functions/references/logicAnd.md +40 -0
  362. package/skills/vueuse-functions/references/logicNot.md +36 -0
  363. package/skills/vueuse-functions/references/logicOr.md +40 -0
  364. package/skills/vueuse-functions/references/makeDestructurable.md +41 -0
  365. package/skills/vueuse-functions/references/onClickOutside.md +228 -0
  366. package/skills/vueuse-functions/references/onElementRemoval.md +88 -0
  367. package/skills/vueuse-functions/references/onKeyStroke.md +212 -0
  368. package/skills/vueuse-functions/references/onLongPress.md +235 -0
  369. package/skills/vueuse-functions/references/onStartTyping.md +53 -0
  370. package/skills/vueuse-functions/references/provideLocal.md +37 -0
  371. package/skills/vueuse-functions/references/reactify.md +144 -0
  372. package/skills/vueuse-functions/references/reactifyObject.md +62 -0
  373. package/skills/vueuse-functions/references/reactiveComputed.md +34 -0
  374. package/skills/vueuse-functions/references/reactiveOmit.md +86 -0
  375. package/skills/vueuse-functions/references/reactivePick.md +106 -0
  376. package/skills/vueuse-functions/references/refAutoReset.md +46 -0
  377. package/skills/vueuse-functions/references/refDebounced.md +81 -0
  378. package/skills/vueuse-functions/references/refDefault.md +36 -0
  379. package/skills/vueuse-functions/references/refManualReset.md +48 -0
  380. package/skills/vueuse-functions/references/refThrottled.md +99 -0
  381. package/skills/vueuse-functions/references/refWithControl.md +146 -0
  382. package/skills/vueuse-functions/references/set.md +30 -0
  383. package/skills/vueuse-functions/references/syncRef.md +195 -0
  384. package/skills/vueuse-functions/references/syncRefs.md +128 -0
  385. package/skills/vueuse-functions/references/templateRef.md +86 -0
  386. package/skills/vueuse-functions/references/toObserver.md +38 -0
  387. package/skills/vueuse-functions/references/toReactive.md +41 -0
  388. package/skills/vueuse-functions/references/toRef.md +74 -0
  389. package/skills/vueuse-functions/references/toRefs.md +78 -0
  390. package/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
  391. package/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
  392. package/skills/vueuse-functions/references/tryOnMounted.md +34 -0
  393. package/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
  394. package/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
  395. package/skills/vueuse-functions/references/unrefElement.md +54 -0
  396. package/skills/vueuse-functions/references/until.md +161 -0
  397. package/skills/vueuse-functions/references/useAbs.md +31 -0
  398. package/skills/vueuse-functions/references/useActiveElement.md +86 -0
  399. package/skills/vueuse-functions/references/useAnimate.md +180 -0
  400. package/skills/vueuse-functions/references/useArrayDifference.md +84 -0
  401. package/skills/vueuse-functions/references/useArrayEvery.md +59 -0
  402. package/skills/vueuse-functions/references/useArrayFilter.md +63 -0
  403. package/skills/vueuse-functions/references/useArrayFind.md +50 -0
  404. package/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
  405. package/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
  406. package/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
  407. package/skills/vueuse-functions/references/useArrayJoin.md +74 -0
  408. package/skills/vueuse-functions/references/useArrayMap.md +59 -0
  409. package/skills/vueuse-functions/references/useArrayReduce.md +81 -0
  410. package/skills/vueuse-functions/references/useArraySome.md +59 -0
  411. package/skills/vueuse-functions/references/useArrayUnique.md +76 -0
  412. package/skills/vueuse-functions/references/useAsyncQueue.md +136 -0
  413. package/skills/vueuse-functions/references/useAsyncState.md +185 -0
  414. package/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
  415. package/skills/vueuse-functions/references/useAuth.md +123 -0
  416. package/skills/vueuse-functions/references/useAverage.md +36 -0
  417. package/skills/vueuse-functions/references/useAxios.md +325 -0
  418. package/skills/vueuse-functions/references/useBase64.md +136 -0
  419. package/skills/vueuse-functions/references/useBattery.md +80 -0
  420. package/skills/vueuse-functions/references/useBluetooth.md +174 -0
  421. package/skills/vueuse-functions/references/useBreakpoints.md +176 -0
  422. package/skills/vueuse-functions/references/useBroadcastChannel.md +73 -0
  423. package/skills/vueuse-functions/references/useBrowserLocation.md +56 -0
  424. package/skills/vueuse-functions/references/useCached.md +52 -0
  425. package/skills/vueuse-functions/references/useCeil.md +31 -0
  426. package/skills/vueuse-functions/references/useChangeCase.md +79 -0
  427. package/skills/vueuse-functions/references/useClamp.md +85 -0
  428. package/skills/vueuse-functions/references/useClipboard.md +122 -0
  429. package/skills/vueuse-functions/references/useClipboardItems.md +93 -0
  430. package/skills/vueuse-functions/references/useCloned.md +91 -0
  431. package/skills/vueuse-functions/references/useColorMode.md +172 -0
  432. package/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
  433. package/skills/vueuse-functions/references/useCookies.md +162 -0
  434. package/skills/vueuse-functions/references/useCountdown.md +105 -0
  435. package/skills/vueuse-functions/references/useCounter.md +86 -0
  436. package/skills/vueuse-functions/references/useCssSupports.md +33 -0
  437. package/skills/vueuse-functions/references/useCssVar.md +50 -0
  438. package/skills/vueuse-functions/references/useCurrentElement.md +61 -0
  439. package/skills/vueuse-functions/references/useCycleList.md +75 -0
  440. package/skills/vueuse-functions/references/useDark.md +142 -0
  441. package/skills/vueuse-functions/references/useDateFormat.md +145 -0
  442. package/skills/vueuse-functions/references/useDebounceFn.md +100 -0
  443. package/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
  444. package/skills/vueuse-functions/references/useDeviceMotion.md +80 -0
  445. package/skills/vueuse-functions/references/useDeviceOrientation.md +64 -0
  446. package/skills/vueuse-functions/references/useDevicePixelRatio.md +47 -0
  447. package/skills/vueuse-functions/references/useDevicesList.md +89 -0
  448. package/skills/vueuse-functions/references/useDisplayMedia.md +67 -0
  449. package/skills/vueuse-functions/references/useDocumentVisibility.md +44 -0
  450. package/skills/vueuse-functions/references/useDraggable.md +289 -0
  451. package/skills/vueuse-functions/references/useDrauu.md +65 -0
  452. package/skills/vueuse-functions/references/useDropZone.md +83 -0
  453. package/skills/vueuse-functions/references/useElementBounding.md +131 -0
  454. package/skills/vueuse-functions/references/useElementByPoint.md +46 -0
  455. package/skills/vueuse-functions/references/useElementHover.md +79 -0
  456. package/skills/vueuse-functions/references/useElementSize.md +79 -0
  457. package/skills/vueuse-functions/references/useElementVisibility.md +163 -0
  458. package/skills/vueuse-functions/references/useEventBus.md +101 -0
  459. package/skills/vueuse-functions/references/useEventListener.md +226 -0
  460. package/skills/vueuse-functions/references/useEventSource.md +204 -0
  461. package/skills/vueuse-functions/references/useExtractedObservable.md +198 -0
  462. package/skills/vueuse-functions/references/useEyeDropper.md +72 -0
  463. package/skills/vueuse-functions/references/useFavicon.md +69 -0
  464. package/skills/vueuse-functions/references/useFetch.md +546 -0
  465. package/skills/vueuse-functions/references/useFileDialog.md +91 -0
  466. package/skills/vueuse-functions/references/useFileSystemAccess.md +161 -0
  467. package/skills/vueuse-functions/references/useFirestore.md +129 -0
  468. package/skills/vueuse-functions/references/useFloor.md +31 -0
  469. package/skills/vueuse-functions/references/useFocus.md +99 -0
  470. package/skills/vueuse-functions/references/useFocusTrap.md +245 -0
  471. package/skills/vueuse-functions/references/useFocusWithin.md +57 -0
  472. package/skills/vueuse-functions/references/useFps.md +28 -0
  473. package/skills/vueuse-functions/references/useFullscreen.md +74 -0
  474. package/skills/vueuse-functions/references/useFuse.md +75 -0
  475. package/skills/vueuse-functions/references/useGamepad.md +176 -0
  476. package/skills/vueuse-functions/references/useGeolocation.md +63 -0
  477. package/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
  478. package/skills/vueuse-functions/references/useIdle.md +88 -0
  479. package/skills/vueuse-functions/references/useImage.md +90 -0
  480. package/skills/vueuse-functions/references/useInfiniteScroll.md +156 -0
  481. package/skills/vueuse-functions/references/useIntersectionObserver.md +117 -0
  482. package/skills/vueuse-functions/references/useInterval.md +112 -0
  483. package/skills/vueuse-functions/references/useIntervalFn.md +50 -0
  484. package/skills/vueuse-functions/references/useIpcRenderer.md +144 -0
  485. package/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
  486. package/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
  487. package/skills/vueuse-functions/references/useJwt.md +57 -0
  488. package/skills/vueuse-functions/references/useKeyModifier.md +87 -0
  489. package/skills/vueuse-functions/references/useLastChanged.md +63 -0
  490. package/skills/vueuse-functions/references/useLocalStorage.md +41 -0
  491. package/skills/vueuse-functions/references/useMagicKeys.md +245 -0
  492. package/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
  493. package/skills/vueuse-functions/references/useMath.md +47 -0
  494. package/skills/vueuse-functions/references/useMax.md +36 -0
  495. package/skills/vueuse-functions/references/useMediaControls.md +201 -0
  496. package/skills/vueuse-functions/references/useMediaQuery.md +53 -0
  497. package/skills/vueuse-functions/references/useMemoize.md +175 -0
  498. package/skills/vueuse-functions/references/useMemory.md +70 -0
  499. package/skills/vueuse-functions/references/useMin.md +36 -0
  500. package/skills/vueuse-functions/references/useMounted.md +38 -0
  501. package/skills/vueuse-functions/references/useMouse.md +113 -0
  502. package/skills/vueuse-functions/references/useMouseInElement.md +132 -0
  503. package/skills/vueuse-functions/references/useMousePressed.md +116 -0
  504. package/skills/vueuse-functions/references/useMutationObserver.md +60 -0
  505. package/skills/vueuse-functions/references/useNProgress.md +78 -0
  506. package/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
  507. package/skills/vueuse-functions/references/useNetwork.md +106 -0
  508. package/skills/vueuse-functions/references/useNow.md +83 -0
  509. package/skills/vueuse-functions/references/useObjectUrl.md +55 -0
  510. package/skills/vueuse-functions/references/useObservable.md +91 -0
  511. package/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
  512. package/skills/vueuse-functions/references/useOnline.md +41 -0
  513. package/skills/vueuse-functions/references/usePageLeave.md +43 -0
  514. package/skills/vueuse-functions/references/useParallax.md +58 -0
  515. package/skills/vueuse-functions/references/useParentElement.md +54 -0
  516. package/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
  517. package/skills/vueuse-functions/references/usePermission.md +78 -0
  518. package/skills/vueuse-functions/references/usePointer.md +91 -0
  519. package/skills/vueuse-functions/references/usePointerLock.md +59 -0
  520. package/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
  521. package/skills/vueuse-functions/references/usePrecision.md +49 -0
  522. package/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
  523. package/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
  524. package/skills/vueuse-functions/references/usePreferredDark.md +41 -0
  525. package/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
  526. package/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
  527. package/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
  528. package/skills/vueuse-functions/references/usePrevious.md +40 -0
  529. package/skills/vueuse-functions/references/useProjection.md +38 -0
  530. package/skills/vueuse-functions/references/useQRCode.md +53 -0
  531. package/skills/vueuse-functions/references/useRTDB.md +83 -0
  532. package/skills/vueuse-functions/references/useRafFn.md +68 -0
  533. package/skills/vueuse-functions/references/useRefHistory.md +285 -0
  534. package/skills/vueuse-functions/references/useResizeObserver.md +108 -0
  535. package/skills/vueuse-functions/references/useRound.md +31 -0
  536. package/skills/vueuse-functions/references/useRouteHash.md +27 -0
  537. package/skills/vueuse-functions/references/useRouteParams.md +38 -0
  538. package/skills/vueuse-functions/references/useRouteQuery.md +79 -0
  539. package/skills/vueuse-functions/references/useSSRWidth.md +47 -0
  540. package/skills/vueuse-functions/references/useScreenOrientation.md +98 -0
  541. package/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
  542. package/skills/vueuse-functions/references/useScriptTag.md +116 -0
  543. package/skills/vueuse-functions/references/useScroll.md +238 -0
  544. package/skills/vueuse-functions/references/useScrollLock.md +66 -0
  545. package/skills/vueuse-functions/references/useSessionStorage.md +41 -0
  546. package/skills/vueuse-functions/references/useShare.md +67 -0
  547. package/skills/vueuse-functions/references/useSortable.md +276 -0
  548. package/skills/vueuse-functions/references/useSorted.md +90 -0
  549. package/skills/vueuse-functions/references/useSpeechRecognition.md +90 -0
  550. package/skills/vueuse-functions/references/useSpeechSynthesis.md +101 -0
  551. package/skills/vueuse-functions/references/useStepper.md +137 -0
  552. package/skills/vueuse-functions/references/useStorage.md +278 -0
  553. package/skills/vueuse-functions/references/useStorageAsync.md +136 -0
  554. package/skills/vueuse-functions/references/useStyleTag.md +131 -0
  555. package/skills/vueuse-functions/references/useSubject.md +77 -0
  556. package/skills/vueuse-functions/references/useSubscription.md +33 -0
  557. package/skills/vueuse-functions/references/useSum.md +36 -0
  558. package/skills/vueuse-functions/references/useSupported.md +29 -0
  559. package/skills/vueuse-functions/references/useSwipe.md +75 -0
  560. package/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
  561. package/skills/vueuse-functions/references/useTextDirection.md +75 -0
  562. package/skills/vueuse-functions/references/useTextSelection.md +43 -0
  563. package/skills/vueuse-functions/references/useTextareaAutosize.md +94 -0
  564. package/skills/vueuse-functions/references/useThrottleFn.md +57 -0
  565. package/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
  566. package/skills/vueuse-functions/references/useTimeAgo.md +154 -0
  567. package/skills/vueuse-functions/references/useTimeAgoIntl.md +117 -0
  568. package/skills/vueuse-functions/references/useTimeout.md +113 -0
  569. package/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
  570. package/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
  571. package/skills/vueuse-functions/references/useTimestamp.md +93 -0
  572. package/skills/vueuse-functions/references/useTitle.md +115 -0
  573. package/skills/vueuse-functions/references/useToNumber.md +54 -0
  574. package/skills/vueuse-functions/references/useToString.md +34 -0
  575. package/skills/vueuse-functions/references/useToggle.md +103 -0
  576. package/skills/vueuse-functions/references/useTransition.md +265 -0
  577. package/skills/vueuse-functions/references/useTrunc.md +33 -0
  578. package/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
  579. package/skills/vueuse-functions/references/useUserMedia.md +96 -0
  580. package/skills/vueuse-functions/references/useVModel.md +182 -0
  581. package/skills/vueuse-functions/references/useVModels.md +67 -0
  582. package/skills/vueuse-functions/references/useVibrate.md +86 -0
  583. package/skills/vueuse-functions/references/useVirtualList.md +182 -0
  584. package/skills/vueuse-functions/references/useWakeLock.md +51 -0
  585. package/skills/vueuse-functions/references/useWebNotification.md +175 -0
  586. package/skills/vueuse-functions/references/useWebSocket.md +299 -0
  587. package/skills/vueuse-functions/references/useWebWorker.md +60 -0
  588. package/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
  589. package/skills/vueuse-functions/references/useWindowFocus.md +46 -0
  590. package/skills/vueuse-functions/references/useWindowScroll.md +46 -0
  591. package/skills/vueuse-functions/references/useWindowSize.md +78 -0
  592. package/skills/vueuse-functions/references/useZoomFactor.md +53 -0
  593. package/skills/vueuse-functions/references/useZoomLevel.md +53 -0
  594. package/skills/vueuse-functions/references/watchArray.md +53 -0
  595. package/skills/vueuse-functions/references/watchAtMost.md +63 -0
  596. package/skills/vueuse-functions/references/watchDebounced.md +101 -0
  597. package/skills/vueuse-functions/references/watchDeep.md +54 -0
  598. package/skills/vueuse-functions/references/watchExtractedObservable.md +192 -0
  599. package/skills/vueuse-functions/references/watchIgnorable.md +120 -0
  600. package/skills/vueuse-functions/references/watchImmediate.md +44 -0
  601. package/skills/vueuse-functions/references/watchOnce.md +41 -0
  602. package/skills/vueuse-functions/references/watchPausable.md +86 -0
  603. package/skills/vueuse-functions/references/watchThrottled.md +108 -0
  604. package/skills/vueuse-functions/references/watchTriggerable.md +98 -0
  605. package/skills/vueuse-functions/references/watchWithFilter.md +54 -0
  606. package/skills/vueuse-functions/references/whenever.md +108 -0
  607. package/skills/web-design-guidelines/SKILL.md +39 -0
  608. package/skills/web-design-guidelines/SYNC.md +5 -0
@@ -0,0 +1,90 @@
1
+ ---
2
+ category: Array
3
+ ---
4
+
5
+ # useSorted
6
+
7
+ reactive sort array
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useSorted } from '@vueuse/core'
13
+
14
+ // general sort
15
+ const source = [10, 3, 5, 7, 2, 1, 8, 6, 9, 4]
16
+ const sorted = useSorted(source)
17
+ console.log(sorted.value) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
18
+ console.log(source) // [10, 3, 5, 7, 2, 1, 8, 6, 9, 4]
19
+
20
+ // object sort
21
+ const objArr = [{
22
+ name: 'John',
23
+ age: 40,
24
+ }, {
25
+ name: 'Jane',
26
+ age: 20,
27
+ }, {
28
+ name: 'Joe',
29
+ age: 30,
30
+ }, {
31
+ name: 'Jenny',
32
+ age: 22,
33
+ }]
34
+ const objSorted = useSorted(objArr, (a, b) => a.age - b.age)
35
+ ```
36
+
37
+ ### dirty mode
38
+
39
+ dirty mode will change the source array.
40
+
41
+ ```ts
42
+ const source = ref([10, 3, 5, 7, 2, 1, 8, 6, 9, 4])
43
+ const sorted = useSorted(source, (a, b) => a - b, {
44
+ dirty: true,
45
+ })
46
+ console.log(source)// output: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
47
+ ```
48
+
49
+ ## Type Declarations
50
+
51
+ ```ts
52
+ export type UseSortedCompareFn<T = any> = (a: T, b: T) => number
53
+ export type UseSortedFn<T = any> = (
54
+ arr: T[],
55
+ compareFn: UseSortedCompareFn<T>,
56
+ ) => T[]
57
+ export interface UseSortedOptions<T = any> {
58
+ /**
59
+ * sort algorithm
60
+ */
61
+ sortFn?: UseSortedFn<T>
62
+ /**
63
+ * compare function
64
+ */
65
+ compareFn?: UseSortedCompareFn<T>
66
+ /**
67
+ * change the value of the source array
68
+ * @default false
69
+ */
70
+ dirty?: boolean
71
+ }
72
+ /**
73
+ * reactive sort array
74
+ *
75
+ * @see https://vueuse.org/useSorted
76
+ */
77
+ export declare function useSorted<T = any>(
78
+ source: MaybeRefOrGetter<T[]>,
79
+ compareFn?: UseSortedCompareFn<T>,
80
+ ): Ref<T[]>
81
+ export declare function useSorted<T = any>(
82
+ source: MaybeRefOrGetter<T[]>,
83
+ options?: UseSortedOptions<T>,
84
+ ): Ref<T[]>
85
+ export declare function useSorted<T = any>(
86
+ source: MaybeRefOrGetter<T[]>,
87
+ compareFn?: UseSortedCompareFn<T>,
88
+ options?: Omit<UseSortedOptions<T>, "compareFn">,
89
+ ): Ref<T[]>
90
+ ```
@@ -0,0 +1,90 @@
1
+ ---
2
+ category: Sensors
3
+ ---
4
+
5
+ # useSpeechRecognition
6
+
7
+ Reactive [SpeechRecognition](https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition).
8
+
9
+ > [Can I use?](https://caniuse.com/mdn-api_speechrecognitionevent)
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { useSpeechRecognition } from '@vueuse/core'
15
+
16
+ const {
17
+ isSupported,
18
+ isListening,
19
+ isFinal,
20
+ result,
21
+ start,
22
+ stop,
23
+ } = useSpeechRecognition()
24
+ ```
25
+
26
+ ### Options
27
+
28
+ The following shows the default values of the options, they will be directly passed to [SpeechRecognition API](https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition).
29
+
30
+ ```ts
31
+ import { useSpeechRecognition } from '@vueuse/core'
32
+ // ---cut---
33
+ useSpeechRecognition({
34
+ lang: 'en-US',
35
+ interimResults: true,
36
+ continuous: true,
37
+ })
38
+ ```
39
+
40
+ ## Type Declarations
41
+
42
+ ```ts
43
+ export interface UseSpeechRecognitionOptions extends ConfigurableWindow {
44
+ /**
45
+ * Controls whether continuous results are returned for each recognition, or only a single result.
46
+ *
47
+ * @default true
48
+ */
49
+ continuous?: boolean
50
+ /**
51
+ * Controls whether interim results should be returned (true) or not (false.) Interim results are results that are not yet final
52
+ *
53
+ * @default true
54
+ */
55
+ interimResults?: boolean
56
+ /**
57
+ * Language for SpeechRecognition
58
+ *
59
+ * @default 'en-US'
60
+ */
61
+ lang?: MaybeRefOrGetter<string>
62
+ /**
63
+ * A number representing the maximum returned alternatives for each result.
64
+ *
65
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/maxAlternatives
66
+ * @default 1
67
+ */
68
+ maxAlternatives?: number
69
+ }
70
+ export interface UseSpeechRecognitionReturn extends Supportable {
71
+ isListening: ShallowRef<boolean>
72
+ isFinal: ShallowRef<boolean>
73
+ recognition: SpeechRecognition | undefined
74
+ result: ShallowRef<string>
75
+ error: ShallowRef<SpeechRecognitionErrorEvent | Error | undefined>
76
+ toggle: (value?: boolean) => void
77
+ start: () => void
78
+ stop: () => void
79
+ }
80
+ /**
81
+ * Reactive SpeechRecognition.
82
+ *
83
+ * @see https://vueuse.org/useSpeechRecognition
84
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition SpeechRecognition
85
+ * @param options
86
+ */
87
+ export declare function useSpeechRecognition(
88
+ options?: UseSpeechRecognitionOptions,
89
+ ): UseSpeechRecognitionReturn
90
+ ```
@@ -0,0 +1,101 @@
1
+ ---
2
+ category: Sensors
3
+ ---
4
+
5
+ # useSpeechSynthesis
6
+
7
+ Reactive [SpeechSynthesis](https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis).
8
+
9
+ > [Can I use?](https://caniuse.com/mdn-api_speechsynthesis)
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { useSpeechSynthesis } from '@vueuse/core'
15
+
16
+ const {
17
+ isSupported,
18
+ isPlaying,
19
+ status,
20
+ voiceInfo,
21
+ utterance,
22
+ error,
23
+ stop,
24
+ toggle,
25
+ speak,
26
+ } = useSpeechSynthesis()
27
+ ```
28
+
29
+ ### Options
30
+
31
+ The following shows the default values of the options, they will be directly passed to [SpeechSynthesis API](https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis).
32
+
33
+ ```ts
34
+ import { useSpeechSynthesis } from '@vueuse/core'
35
+ // ---cut---
36
+ useSpeechSynthesis({
37
+ lang: 'en-US',
38
+ pitch: 1,
39
+ rate: 1,
40
+ volume: 1,
41
+ })
42
+ ```
43
+
44
+ ## Type Declarations
45
+
46
+ ```ts
47
+ export type UseSpeechSynthesisStatus = "init" | "play" | "pause" | "end"
48
+ export interface UseSpeechSynthesisOptions extends ConfigurableWindow {
49
+ /**
50
+ * Language for SpeechSynthesis
51
+ *
52
+ * @default 'en-US'
53
+ */
54
+ lang?: MaybeRefOrGetter<string>
55
+ /**
56
+ * Gets and sets the pitch at which the utterance will be spoken at.
57
+ *
58
+ * @default 1
59
+ */
60
+ pitch?: MaybeRefOrGetter<SpeechSynthesisUtterance["pitch"]>
61
+ /**
62
+ * Gets and sets the speed at which the utterance will be spoken at.
63
+ *
64
+ * @default 1
65
+ */
66
+ rate?: MaybeRefOrGetter<SpeechSynthesisUtterance["rate"]>
67
+ /**
68
+ * Gets and sets the voice that will be used to speak the utterance.
69
+ */
70
+ voice?: MaybeRef<SpeechSynthesisVoice>
71
+ /**
72
+ * Gets and sets the volume that the utterance will be spoken at.
73
+ *
74
+ * @default 1
75
+ */
76
+ volume?: MaybeRefOrGetter<SpeechSynthesisUtterance["volume"]>
77
+ /**
78
+ * Callback function that is called when the boundary event is triggered.
79
+ */
80
+ onBoundary?: (event: SpeechSynthesisEvent) => void
81
+ }
82
+ export interface UseSpeechSynthesisReturn extends Supportable {
83
+ isPlaying: ShallowRef<boolean>
84
+ status: ShallowRef<UseSpeechSynthesisStatus>
85
+ utterance: ComputedRef<SpeechSynthesisUtterance>
86
+ error: ShallowRef<SpeechSynthesisErrorEvent | undefined>
87
+ stop: () => void
88
+ toggle: (value?: boolean) => void
89
+ speak: () => void
90
+ }
91
+ /**
92
+ * Reactive SpeechSynthesis.
93
+ *
94
+ * @see https://vueuse.org/useSpeechSynthesis
95
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis SpeechSynthesis
96
+ */
97
+ export declare function useSpeechSynthesis(
98
+ text: MaybeRefOrGetter<string>,
99
+ options?: UseSpeechSynthesisOptions,
100
+ ): UseSpeechSynthesisReturn
101
+ ```
@@ -0,0 +1,137 @@
1
+ ---
2
+ category: Utilities
3
+ ---
4
+
5
+ # useStepper
6
+
7
+ Provides helpers for building a multi-step wizard interface.
8
+
9
+ ## Usage
10
+
11
+ ### Steps as array
12
+
13
+ ```ts
14
+ import { useStepper } from '@vueuse/core'
15
+
16
+ const {
17
+ steps,
18
+ stepNames,
19
+ index,
20
+ current,
21
+ next,
22
+ previous,
23
+ isFirst,
24
+ isLast,
25
+ goTo,
26
+ goToNext,
27
+ goToPrevious,
28
+ goBackTo,
29
+ isNext,
30
+ isPrevious,
31
+ isCurrent,
32
+ isBefore,
33
+ isAfter,
34
+ } = useStepper([
35
+ 'billing-address',
36
+ 'terms',
37
+ 'payment',
38
+ ])
39
+
40
+ // Access the step through `current`
41
+ console.log(current.value) // 'billing-address'
42
+ ```
43
+
44
+ ### Steps as object
45
+
46
+ ```ts
47
+ import { useStepper } from '@vueuse/core'
48
+
49
+ const {
50
+ steps,
51
+ stepNames,
52
+ index,
53
+ current,
54
+ next,
55
+ previous,
56
+ isFirst,
57
+ isLast,
58
+ goTo,
59
+ goToNext,
60
+ goToPrevious,
61
+ goBackTo,
62
+ isNext,
63
+ isPrevious,
64
+ isCurrent,
65
+ isBefore,
66
+ isAfter,
67
+ } = useStepper({
68
+ 'user-information': {
69
+ title: 'User information',
70
+ },
71
+ 'billing-address': {
72
+ title: 'Billing address',
73
+ },
74
+ 'terms': {
75
+ title: 'Terms',
76
+ },
77
+ 'payment': {
78
+ title: 'Payment',
79
+ },
80
+ })
81
+
82
+ // Access the step object through `current`
83
+ console.log(current.value.title) // 'User information'
84
+ ```
85
+
86
+ ## Type Declarations
87
+
88
+ ```ts
89
+ export interface UseStepperReturn<StepName, Steps, Step> {
90
+ /** List of steps. */
91
+ steps: Readonly<Ref<Steps>>
92
+ /** List of step names. */
93
+ stepNames: Readonly<Ref<StepName[]>>
94
+ /** Index of the current step. */
95
+ index: Ref<number>
96
+ /** Current step. */
97
+ current: ComputedRef<Step>
98
+ /** Next step, or undefined if the current step is the last one. */
99
+ next: ComputedRef<StepName | undefined>
100
+ /** Previous step, or undefined if the current step is the first one. */
101
+ previous: ComputedRef<StepName | undefined>
102
+ /** Whether the current step is the first one. */
103
+ isFirst: ComputedRef<boolean>
104
+ /** Whether the current step is the last one. */
105
+ isLast: ComputedRef<boolean>
106
+ /** Get the step at the specified index. */
107
+ at: (index: number) => Step | undefined
108
+ /** Get a step by the specified name. */
109
+ get: (step: StepName) => Step | undefined
110
+ /** Go to the specified step. */
111
+ goTo: (step: StepName) => void
112
+ /** Go to the next step. Does nothing if the current step is the last one. */
113
+ goToNext: () => void
114
+ /** Go to the previous step. Does nothing if the current step is the previous one. */
115
+ goToPrevious: () => void
116
+ /** Go back to the given step, only if the current step is after. */
117
+ goBackTo: (step: StepName) => void
118
+ /** Checks whether the given step is the next step. */
119
+ isNext: (step: StepName) => boolean
120
+ /** Checks whether the given step is the previous step. */
121
+ isPrevious: (step: StepName) => boolean
122
+ /** Checks whether the given step is the current step. */
123
+ isCurrent: (step: StepName) => boolean
124
+ /** Checks if the current step is before the given step. */
125
+ isBefore: (step: StepName) => boolean
126
+ /** Checks if the current step is after the given step. */
127
+ isAfter: (step: StepName) => boolean
128
+ }
129
+ export declare function useStepper<T extends string | number>(
130
+ steps: MaybeRef<T[]>,
131
+ initialStep?: T,
132
+ ): UseStepperReturn<T, T[], T>
133
+ export declare function useStepper<T extends Record<string, any>>(
134
+ steps: MaybeRef<T>,
135
+ initialStep?: keyof T,
136
+ ): UseStepperReturn<Exclude<keyof T, symbol>, T, T[keyof T]>
137
+ ```
@@ -0,0 +1,278 @@
1
+ ---
2
+ category: State
3
+ related: useLocalStorage, useSessionStorage, useStorageAsync
4
+ ---
5
+
6
+ # useStorage
7
+
8
+ Create a reactive ref that can be used to access & modify [LocalStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) or [SessionStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage).
9
+
10
+ Uses localStorage by default, other storage sources be specified via third argument.
11
+
12
+ ## Usage
13
+
14
+ ::: tip
15
+ When using with Nuxt 3, this function will **NOT** be auto imported in favor of Nitro's built-in [`useStorage()`](https://nitro.unjs.io/guide/storage). Use explicit import if you want to use the function from VueUse.
16
+ :::
17
+
18
+ ```ts
19
+ import { useStorage } from '@vueuse/core'
20
+
21
+ // bind object
22
+ const state = useStorage('my-store', { hello: 'hi', greeting: 'Hello' })
23
+
24
+ // bind boolean
25
+ const flag = useStorage('my-flag', true) // returns Ref<boolean>
26
+
27
+ // bind number
28
+ const count = useStorage('my-count', 0) // returns Ref<number>
29
+
30
+ // bind string with SessionStorage
31
+ const id = useStorage('my-id', 'some-string-id', sessionStorage) // returns Ref<string>
32
+
33
+ // delete data from storage
34
+ state.value = null
35
+ ```
36
+
37
+ ## Merge Defaults
38
+
39
+ By default, `useStorage` will use the value from storage if it is present and ignores the default value. Be aware that when you are adding more properties to the default value, the key might be `undefined` if client's storage does not have that key.
40
+
41
+ ```ts
42
+ import { useStorage } from '@vueuse/core'
43
+ // ---cut---
44
+ localStorage.setItem('my-store', '{"hello": "hello"}')
45
+
46
+ const state = useStorage('my-store', { hello: 'hi', greeting: 'hello' }, localStorage)
47
+
48
+ console.log(state.value.greeting) // undefined, since the value is not presented in storage
49
+ ```
50
+
51
+ To solve that, you can enable `mergeDefaults` option.
52
+
53
+ ```ts
54
+ import { useStorage } from '@vueuse/core'
55
+ // ---cut---
56
+ localStorage.setItem('my-store', '{"hello": "nihao"}')
57
+
58
+ const state = useStorage(
59
+ 'my-store',
60
+ { hello: 'hi', greeting: 'hello' },
61
+ localStorage,
62
+ { mergeDefaults: true } // <--
63
+ )
64
+
65
+ console.log(state.value.hello) // 'nihao', from storage
66
+ console.log(state.value.greeting) // 'hello', from merged default value
67
+ ```
68
+
69
+ When setting it to true, it will perform a **shallow merge** for objects. You can pass a function to perform custom merge (e.g. deep merge), for example:
70
+
71
+ ```ts
72
+ import { useStorage } from '@vueuse/core'
73
+ // ---cut---
74
+ const state = useStorage(
75
+ 'my-store',
76
+ { hello: 'hi', greeting: 'hello' },
77
+ localStorage,
78
+ { mergeDefaults: (storageValue, defaults) => deepMerge(defaults, storageValue) } // <--
79
+ )
80
+ ```
81
+
82
+ ## Custom Serialization
83
+
84
+ By default, `useStorage` will smartly use the corresponding serializer based on the data type of provided default value. For example, `JSON.stringify` / `JSON.parse` will be used for objects, `Number.toString` / `parseFloat` for numbers, etc.
85
+
86
+ You can also provide your own serialization function to `useStorage`:
87
+
88
+ ```ts
89
+ import { useStorage } from '@vueuse/core'
90
+
91
+ useStorage(
92
+ 'key',
93
+ {},
94
+ undefined,
95
+ {
96
+ serializer: {
97
+ read: (v: any) => v ? JSON.parse(v) : null,
98
+ write: (v: any) => JSON.stringify(v),
99
+ },
100
+ },
101
+ )
102
+ ```
103
+
104
+ Please note when you provide `null` as the default value, `useStorage` can't assume the data type from it. In this case, you can provide a custom serializer or reuse the built-in ones explicitly.
105
+
106
+ ```ts
107
+ import { StorageSerializers, useStorage } from '@vueuse/core'
108
+
109
+ const objectLike = useStorage('key', null, undefined, { serializer: StorageSerializers.object })
110
+ objectLike.value = { foo: 'bar' }
111
+ ```
112
+
113
+ ### Built-in Serializers
114
+
115
+ The following serializers are available via `StorageSerializers`:
116
+
117
+ | Type | Description |
118
+ | --------- | ------------------------------------- |
119
+ | `string` | Plain string |
120
+ | `number` | Number (via `parseFloat`) |
121
+ | `boolean` | Boolean |
122
+ | `object` | JSON object/array |
123
+ | `map` | JavaScript `Map` |
124
+ | `set` | JavaScript `Set` |
125
+ | `date` | JavaScript `Date` (via `toISOString`) |
126
+ | `any` | Raw string passthrough |
127
+
128
+ ```ts
129
+ import { StorageSerializers, useStorage } from '@vueuse/core'
130
+
131
+ const myMap = useStorage('my-map', new Map(), undefined, {
132
+ serializer: StorageSerializers.map,
133
+ })
134
+ ```
135
+
136
+ ## Options
137
+
138
+ ```ts
139
+ useStorage('key', defaults, storage, {
140
+ // Watch for deep changes in objects/arrays (default: true)
141
+ deep: true,
142
+ // Sync across tabs via storage events (default: true)
143
+ listenToStorageChanges: true,
144
+ // Write default value to storage if not present (default: true)
145
+ writeDefaults: true,
146
+ // Use shallowRef instead of ref (default: false)
147
+ shallow: false,
148
+ // Initialize only after component is mounted (default: false)
149
+ initOnMounted: false,
150
+ // Custom error handler (default: console.error)
151
+ onError: e => console.error(e),
152
+ // Watch flush timing (default: 'pre')
153
+ flush: 'pre',
154
+ })
155
+ ```
156
+
157
+ ## Reactive Key
158
+
159
+ The storage key can be a ref or getter, and the data will be updated when the key changes:
160
+
161
+ ```ts
162
+ import { useStorage } from '@vueuse/core'
163
+
164
+ const userId = ref('user-1')
165
+ const userData = useStorage(
166
+ () => `user-data-${userId.value}`,
167
+ { name: '' },
168
+ )
169
+
170
+ // Changing the key will read from the new storage location
171
+ userId.value = 'user-2'
172
+ ```
173
+
174
+ ## Type Declarations
175
+
176
+ ```ts
177
+ export interface Serializer<T> {
178
+ read: (raw: string) => T
179
+ write: (value: T) => string
180
+ }
181
+ export interface SerializerAsync<T> {
182
+ read: (raw: string) => Awaitable<T>
183
+ write: (value: T) => Awaitable<string>
184
+ }
185
+ export declare const StorageSerializers: Record<
186
+ "boolean" | "object" | "number" | "any" | "string" | "map" | "set" | "date",
187
+ Serializer<any>
188
+ >
189
+ export declare const customStorageEventName = "vueuse-storage"
190
+ export interface StorageEventLike {
191
+ storageArea: StorageLike | null
192
+ key: StorageEvent["key"]
193
+ oldValue: StorageEvent["oldValue"]
194
+ newValue: StorageEvent["newValue"]
195
+ }
196
+ export interface UseStorageOptions<T>
197
+ extends ConfigurableEventFilter, ConfigurableWindow, ConfigurableFlush {
198
+ /**
199
+ * Watch for deep changes
200
+ *
201
+ * @default true
202
+ */
203
+ deep?: boolean
204
+ /**
205
+ * Listen to storage changes, useful for multiple tabs application
206
+ *
207
+ * @default true
208
+ */
209
+ listenToStorageChanges?: boolean
210
+ /**
211
+ * Write the default value to the storage when it does not exist
212
+ *
213
+ * @default true
214
+ */
215
+ writeDefaults?: boolean
216
+ /**
217
+ * Merge the default value with the value read from the storage.
218
+ *
219
+ * When setting it to true, it will perform a **shallow merge** for objects.
220
+ * You can pass a function to perform custom merge (e.g. deep merge), for example:
221
+ *
222
+ * @default false
223
+ */
224
+ mergeDefaults?: boolean | ((storageValue: T, defaults: T) => T)
225
+ /**
226
+ * Custom data serialization
227
+ */
228
+ serializer?: Serializer<T>
229
+ /**
230
+ * On error callback
231
+ *
232
+ * Default log error to `console.error`
233
+ */
234
+ onError?: (error: unknown) => void
235
+ /**
236
+ * Use shallow ref as reference
237
+ *
238
+ * @default false
239
+ */
240
+ shallow?: boolean
241
+ /**
242
+ * Wait for the component to be mounted before reading the storage.
243
+ *
244
+ * @default false
245
+ */
246
+ initOnMounted?: boolean
247
+ }
248
+ export declare function useStorage(
249
+ key: MaybeRefOrGetter<string>,
250
+ defaults: MaybeRefOrGetter<string>,
251
+ storage?: StorageLike,
252
+ options?: UseStorageOptions<string>,
253
+ ): RemovableRef<string>
254
+ export declare function useStorage(
255
+ key: MaybeRefOrGetter<string>,
256
+ defaults: MaybeRefOrGetter<boolean>,
257
+ storage?: StorageLike,
258
+ options?: UseStorageOptions<boolean>,
259
+ ): RemovableRef<boolean>
260
+ export declare function useStorage(
261
+ key: MaybeRefOrGetter<string>,
262
+ defaults: MaybeRefOrGetter<number>,
263
+ storage?: StorageLike,
264
+ options?: UseStorageOptions<number>,
265
+ ): RemovableRef<number>
266
+ export declare function useStorage<T>(
267
+ key: MaybeRefOrGetter<string>,
268
+ defaults: MaybeRefOrGetter<T>,
269
+ storage?: StorageLike,
270
+ options?: UseStorageOptions<T>,
271
+ ): RemovableRef<T>
272
+ export declare function useStorage<T = unknown>(
273
+ key: MaybeRefOrGetter<string>,
274
+ defaults: MaybeRefOrGetter<null>,
275
+ storage?: StorageLike,
276
+ options?: UseStorageOptions<T>,
277
+ ): RemovableRef<T>
278
+ ```