aico-cli 2.1.7 → 2.1.23

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 (547) hide show
  1. package/bin/cli/README.md +1 -1
  2. package/bin/cli/cli.js +8672 -3345
  3. package/bin/cli/package.json +1 -1
  4. package/bin/cli/sdk-tools.d.ts +41 -5
  5. package/dist/chunks/simple-config.mjs +1 -1
  6. package/package.json +2 -2
  7. package/templates/skills/antfu/SKILL.md +222 -0
  8. package/templates/skills/antfu/references/antfu-eslint-config.md +328 -0
  9. package/templates/skills/antfu/references/app-development.md +60 -0
  10. package/templates/skills/antfu/references/github-actions.md +68 -0
  11. package/templates/skills/antfu/references/gitignore.md +29 -0
  12. package/templates/skills/antfu/references/library-development.md +85 -0
  13. package/templates/skills/antfu/references/monorepo.md +126 -0
  14. package/templates/skills/antfu/references/vscode-extensions.md +34 -0
  15. package/templates/skills/nuxt/GENERATION.md +5 -0
  16. package/templates/skills/nuxt/SKILL.md +55 -0
  17. package/templates/skills/nuxt/references/advanced-hooks.md +289 -0
  18. package/templates/skills/nuxt/references/advanced-layers.md +299 -0
  19. package/templates/skills/nuxt/references/advanced-module-authoring.md +554 -0
  20. package/templates/skills/nuxt/references/best-practices-data-fetching.md +357 -0
  21. package/templates/skills/nuxt/references/best-practices-ssr.md +355 -0
  22. package/templates/skills/nuxt/references/core-cli.md +263 -0
  23. package/templates/skills/nuxt/references/core-config.md +162 -0
  24. package/templates/skills/nuxt/references/core-data-fetching.md +236 -0
  25. package/templates/skills/nuxt/references/core-deployment.md +224 -0
  26. package/templates/skills/nuxt/references/core-directory-structure.md +269 -0
  27. package/templates/skills/nuxt/references/core-modules.md +292 -0
  28. package/templates/skills/nuxt/references/core-routing.md +226 -0
  29. package/templates/skills/nuxt/references/features-components-autoimport.md +328 -0
  30. package/templates/skills/nuxt/references/features-components.md +264 -0
  31. package/templates/skills/nuxt/references/features-composables.md +276 -0
  32. package/templates/skills/nuxt/references/features-server.md +265 -0
  33. package/templates/skills/nuxt/references/features-state.md +194 -0
  34. package/templates/skills/nuxt/references/rendering-modes.md +237 -0
  35. package/templates/skills/pinia/GENERATION.md +5 -0
  36. package/templates/skills/pinia/SKILL.md +59 -0
  37. package/templates/skills/pinia/references/advanced-hmr.md +61 -0
  38. package/templates/skills/pinia/references/advanced-nuxt.md +119 -0
  39. package/templates/skills/pinia/references/advanced-ssr.md +121 -0
  40. package/templates/skills/pinia/references/best-practices-outside-component.md +115 -0
  41. package/templates/skills/pinia/references/best-practices-testing.md +212 -0
  42. package/templates/skills/pinia/references/core-stores.md +389 -0
  43. package/templates/skills/pinia/references/features-composables.md +114 -0
  44. package/templates/skills/pinia/references/features-composing-stores.md +134 -0
  45. package/templates/skills/pinia/references/features-plugins.md +203 -0
  46. package/templates/skills/pnpm/GENERATION.md +5 -0
  47. package/templates/skills/pnpm/SKILL.md +42 -0
  48. package/templates/skills/pnpm/references/best-practices-ci.md +285 -0
  49. package/templates/skills/pnpm/references/best-practices-migration.md +291 -0
  50. package/templates/skills/pnpm/references/best-practices-performance.md +284 -0
  51. package/templates/skills/pnpm/references/core-cli.md +229 -0
  52. package/templates/skills/pnpm/references/core-config.md +188 -0
  53. package/templates/skills/pnpm/references/core-store.md +179 -0
  54. package/templates/skills/pnpm/references/core-workspaces.md +205 -0
  55. package/templates/skills/pnpm/references/features-aliases.md +168 -0
  56. package/templates/skills/pnpm/references/features-catalogs.md +159 -0
  57. package/templates/skills/pnpm/references/features-hooks.md +233 -0
  58. package/templates/skills/pnpm/references/features-overrides.md +184 -0
  59. package/templates/skills/pnpm/references/features-patches.md +201 -0
  60. package/templates/skills/pnpm/references/features-peer-deps.md +250 -0
  61. package/templates/skills/slidev/LICENSE.md +21 -0
  62. package/templates/skills/slidev/README.md +61 -0
  63. package/templates/skills/slidev/SKILL.md +183 -0
  64. package/templates/skills/slidev/SYNC.md +5 -0
  65. package/templates/skills/slidev/references/animation-click-marker.md +37 -0
  66. package/templates/skills/slidev/references/animation-drawing.md +68 -0
  67. package/templates/skills/slidev/references/animation-rough-marker.md +53 -0
  68. package/templates/skills/slidev/references/api-slide-hooks.md +37 -0
  69. package/templates/skills/slidev/references/build-og-image.md +36 -0
  70. package/templates/skills/slidev/references/build-pdf.md +40 -0
  71. package/templates/skills/slidev/references/build-remote-assets.md +34 -0
  72. package/templates/skills/slidev/references/build-seo-meta.md +43 -0
  73. package/templates/skills/slidev/references/code-groups.md +64 -0
  74. package/templates/skills/slidev/references/code-import-snippet.md +55 -0
  75. package/templates/skills/slidev/references/code-line-highlighting.md +50 -0
  76. package/templates/skills/slidev/references/code-line-numbers.md +46 -0
  77. package/templates/skills/slidev/references/code-magic-move.md +57 -0
  78. package/templates/skills/slidev/references/code-max-height.md +37 -0
  79. package/templates/skills/slidev/references/code-twoslash.md +42 -0
  80. package/templates/skills/slidev/references/core-animations.md +196 -0
  81. package/templates/skills/slidev/references/core-cli.md +140 -0
  82. package/templates/skills/slidev/references/core-components.md +197 -0
  83. package/templates/skills/slidev/references/core-exporting.md +148 -0
  84. package/templates/skills/slidev/references/core-frontmatter.md +195 -0
  85. package/templates/skills/slidev/references/core-global-context.md +155 -0
  86. package/templates/skills/slidev/references/core-headmatter.md +188 -0
  87. package/templates/skills/slidev/references/core-hosting.md +152 -0
  88. package/templates/skills/slidev/references/core-layouts.md +286 -0
  89. package/templates/skills/slidev/references/core-syntax.md +155 -0
  90. package/templates/skills/slidev/references/diagram-latex.md +55 -0
  91. package/templates/skills/slidev/references/diagram-mermaid.md +44 -0
  92. package/templates/skills/slidev/references/diagram-plantuml.md +45 -0
  93. package/templates/skills/slidev/references/editor-monaco-run.md +44 -0
  94. package/templates/skills/slidev/references/editor-monaco-write.md +24 -0
  95. package/templates/skills/slidev/references/editor-monaco.md +50 -0
  96. package/templates/skills/slidev/references/editor-prettier.md +40 -0
  97. package/templates/skills/slidev/references/editor-side.md +23 -0
  98. package/templates/skills/slidev/references/editor-vscode.md +55 -0
  99. package/templates/skills/slidev/references/layout-canvas-size.md +25 -0
  100. package/templates/skills/slidev/references/layout-draggable.md +57 -0
  101. package/templates/skills/slidev/references/layout-global-layers.md +50 -0
  102. package/templates/skills/slidev/references/layout-slots.md +75 -0
  103. package/templates/skills/slidev/references/layout-transform.md +33 -0
  104. package/templates/skills/slidev/references/layout-zoom.md +39 -0
  105. package/templates/skills/slidev/references/presenter-notes-ruby.md +35 -0
  106. package/templates/skills/slidev/references/presenter-recording.md +30 -0
  107. package/templates/skills/slidev/references/presenter-remote.md +40 -0
  108. package/templates/skills/slidev/references/presenter-timer.md +34 -0
  109. package/templates/skills/slidev/references/style-direction.md +34 -0
  110. package/templates/skills/slidev/references/style-icons.md +46 -0
  111. package/templates/skills/slidev/references/style-scoped.md +50 -0
  112. package/templates/skills/slidev/references/syntax-block-frontmatter.md +39 -0
  113. package/templates/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
  114. package/templates/skills/slidev/references/syntax-importing-slides.md +60 -0
  115. package/templates/skills/slidev/references/syntax-mdc.md +51 -0
  116. package/templates/skills/slidev/references/tool-eject-theme.md +27 -0
  117. package/templates/skills/tech-whitepaper/SKILL.md +102 -15
  118. package/templates/skills/tsdown/GENERATION.md +5 -0
  119. package/templates/skills/tsdown/SKILL.md +59 -0
  120. package/templates/skills/tsdown/references/advanced-hooks.md +87 -0
  121. package/templates/skills/tsdown/references/advanced-plugins.md +97 -0
  122. package/templates/skills/tsdown/references/advanced-programmatic.md +78 -0
  123. package/templates/skills/tsdown/references/advanced-rolldown-options.md +114 -0
  124. package/templates/skills/tsdown/references/core-cli.md +116 -0
  125. package/templates/skills/tsdown/references/core-config.md +86 -0
  126. package/templates/skills/tsdown/references/core-entry.md +74 -0
  127. package/templates/skills/tsdown/references/features-optimization.md +83 -0
  128. package/templates/skills/tsdown/references/features-shims.md +92 -0
  129. package/templates/skills/tsdown/references/features-unbundle.md +63 -0
  130. package/templates/skills/tsdown/references/features-watch.md +60 -0
  131. package/templates/skills/tsdown/references/options-dependencies.md +88 -0
  132. package/templates/skills/tsdown/references/options-dts.md +104 -0
  133. package/templates/skills/tsdown/references/options-output.md +124 -0
  134. package/templates/skills/tsdown/references/options-package-exports.md +114 -0
  135. package/templates/skills/tsdown/references/recipes-frameworks.md +109 -0
  136. package/templates/skills/tsdown/references/recipes-migration.md +84 -0
  137. package/templates/skills/turborepo/LICENSE.md +7 -0
  138. package/templates/skills/turborepo/SKILL.md +914 -0
  139. package/templates/skills/turborepo/SYNC.md +5 -0
  140. package/templates/skills/turborepo/command/turborepo.md +70 -0
  141. package/templates/skills/turborepo/references/best-practices/README.md +241 -0
  142. package/templates/skills/turborepo/references/best-practices/dependencies.md +246 -0
  143. package/templates/skills/turborepo/references/best-practices/packages.md +335 -0
  144. package/templates/skills/turborepo/references/best-practices/structure.md +269 -0
  145. package/templates/skills/turborepo/references/boundaries/README.md +126 -0
  146. package/templates/skills/turborepo/references/caching/README.md +107 -0
  147. package/templates/skills/turborepo/references/caching/gotchas.md +169 -0
  148. package/templates/skills/turborepo/references/caching/remote-cache.md +127 -0
  149. package/templates/skills/turborepo/references/ci/README.md +79 -0
  150. package/templates/skills/turborepo/references/ci/github-actions.md +162 -0
  151. package/templates/skills/turborepo/references/ci/patterns.md +145 -0
  152. package/templates/skills/turborepo/references/ci/vercel.md +103 -0
  153. package/templates/skills/turborepo/references/cli/README.md +100 -0
  154. package/templates/skills/turborepo/references/cli/commands.md +297 -0
  155. package/templates/skills/turborepo/references/configuration/README.md +211 -0
  156. package/templates/skills/turborepo/references/configuration/global-options.md +195 -0
  157. package/templates/skills/turborepo/references/configuration/gotchas.md +348 -0
  158. package/templates/skills/turborepo/references/configuration/tasks.md +285 -0
  159. package/templates/skills/turborepo/references/environment/README.md +96 -0
  160. package/templates/skills/turborepo/references/environment/gotchas.md +145 -0
  161. package/templates/skills/turborepo/references/environment/modes.md +101 -0
  162. package/templates/skills/turborepo/references/filtering/README.md +148 -0
  163. package/templates/skills/turborepo/references/filtering/patterns.md +152 -0
  164. package/templates/skills/turborepo/references/watch/README.md +99 -0
  165. package/templates/skills/unocss/GENERATION.md +5 -0
  166. package/templates/skills/unocss/SKILL.md +64 -0
  167. package/templates/skills/unocss/references/core-config.md +187 -0
  168. package/templates/skills/unocss/references/core-extracting.md +137 -0
  169. package/templates/skills/unocss/references/core-layers.md +104 -0
  170. package/templates/skills/unocss/references/core-rules.md +166 -0
  171. package/templates/skills/unocss/references/core-safelist.md +105 -0
  172. package/templates/skills/unocss/references/core-shortcuts.md +89 -0
  173. package/templates/skills/unocss/references/core-theme.md +172 -0
  174. package/templates/skills/unocss/references/core-variants.md +175 -0
  175. package/templates/skills/unocss/references/integrations-nuxt.md +199 -0
  176. package/templates/skills/unocss/references/integrations-vite.md +283 -0
  177. package/templates/skills/unocss/references/preset-attributify.md +142 -0
  178. package/templates/skills/unocss/references/preset-icons.md +184 -0
  179. package/templates/skills/unocss/references/preset-mini.md +158 -0
  180. package/templates/skills/unocss/references/preset-rem-to-px.md +97 -0
  181. package/templates/skills/unocss/references/preset-tagify.md +134 -0
  182. package/templates/skills/unocss/references/preset-typography.md +95 -0
  183. package/templates/skills/unocss/references/preset-web-fonts.md +91 -0
  184. package/templates/skills/unocss/references/preset-wind3.md +194 -0
  185. package/templates/skills/unocss/references/preset-wind4.md +247 -0
  186. package/templates/skills/unocss/references/transformer-attributify-jsx.md +156 -0
  187. package/templates/skills/unocss/references/transformer-compile-class.md +128 -0
  188. package/templates/skills/unocss/references/transformer-directives.md +157 -0
  189. package/templates/skills/unocss/references/transformer-variant-group.md +97 -0
  190. package/templates/skills/vite/GENERATION.md +5 -0
  191. package/templates/skills/vite/SKILL.md +50 -0
  192. package/templates/skills/vite/references/advanced-api.md +218 -0
  193. package/templates/skills/vite/references/advanced-backend.md +164 -0
  194. package/templates/skills/vite/references/advanced-performance.md +168 -0
  195. package/templates/skills/vite/references/advanced-plugin-api.md +258 -0
  196. package/templates/skills/vite/references/build-library.md +172 -0
  197. package/templates/skills/vite/references/build-production.md +220 -0
  198. package/templates/skills/vite/references/build-ssr.md +194 -0
  199. package/templates/skills/vite/references/core-cli.md +137 -0
  200. package/templates/skills/vite/references/core-config.md +176 -0
  201. package/templates/skills/vite/references/core-features.md +170 -0
  202. package/templates/skills/vite/references/core-plugins.md +154 -0
  203. package/templates/skills/vite/references/features-assets.md +138 -0
  204. package/templates/skills/vite/references/features-css.md +215 -0
  205. package/templates/skills/vite/references/features-dep-bundling.md +148 -0
  206. package/templates/skills/vite/references/features-env.md +161 -0
  207. package/templates/skills/vite/references/features-glob-import.md +161 -0
  208. package/templates/skills/vite/references/features-hmr.md +200 -0
  209. package/templates/skills/vite/references/features-workers.md +115 -0
  210. package/templates/skills/vitepress/GENERATION.md +5 -0
  211. package/templates/skills/vitepress/SKILL.md +65 -0
  212. package/templates/skills/vitepress/references/advanced-i18n.md +299 -0
  213. package/templates/skills/vitepress/references/advanced-ssr.md +228 -0
  214. package/templates/skills/vitepress/references/core-cli.md +119 -0
  215. package/templates/skills/vitepress/references/core-config.md +189 -0
  216. package/templates/skills/vitepress/references/core-markdown.md +277 -0
  217. package/templates/skills/vitepress/references/core-routing.md +169 -0
  218. package/templates/skills/vitepress/references/features-code-blocks.md +243 -0
  219. package/templates/skills/vitepress/references/features-data-loading.md +220 -0
  220. package/templates/skills/vitepress/references/features-dynamic-routes.md +235 -0
  221. package/templates/skills/vitepress/references/features-vue.md +224 -0
  222. package/templates/skills/vitepress/references/recipes-deploy.md +240 -0
  223. package/templates/skills/vitepress/references/theme-config.md +315 -0
  224. package/templates/skills/vitepress/references/theme-custom.md +269 -0
  225. package/templates/skills/vitepress/references/theme-customization.md +290 -0
  226. package/templates/skills/vitest/GENERATION.md +5 -0
  227. package/templates/skills/vitest/SKILL.md +52 -0
  228. package/templates/skills/vitest/references/advanced-environments.md +264 -0
  229. package/templates/skills/vitest/references/advanced-projects.md +300 -0
  230. package/templates/skills/vitest/references/advanced-type-testing.md +237 -0
  231. package/templates/skills/vitest/references/advanced-vi.md +249 -0
  232. package/templates/skills/vitest/references/core-cli.md +166 -0
  233. package/templates/skills/vitest/references/core-config.md +174 -0
  234. package/templates/skills/vitest/references/core-describe.md +193 -0
  235. package/templates/skills/vitest/references/core-expect.md +219 -0
  236. package/templates/skills/vitest/references/core-hooks.md +244 -0
  237. package/templates/skills/vitest/references/core-test-api.md +233 -0
  238. package/templates/skills/vitest/references/features-concurrency.md +250 -0
  239. package/templates/skills/vitest/references/features-context.md +238 -0
  240. package/templates/skills/vitest/references/features-coverage.md +207 -0
  241. package/templates/skills/vitest/references/features-filtering.md +211 -0
  242. package/templates/skills/vitest/references/features-mocking.md +265 -0
  243. package/templates/skills/vitest/references/features-snapshots.md +207 -0
  244. package/templates/skills/vue/GENERATION.md +5 -0
  245. package/templates/skills/vue/SKILL.md +63 -0
  246. package/templates/skills/vue/references/advanced-async-suspense.md +246 -0
  247. package/templates/skills/vue/references/advanced-provide-inject.md +174 -0
  248. package/templates/skills/vue/references/components-emits.md +139 -0
  249. package/templates/skills/vue/references/components-lifecycle.md +192 -0
  250. package/templates/skills/vue/references/components-props.md +211 -0
  251. package/templates/skills/vue/references/components-slots.md +201 -0
  252. package/templates/skills/vue/references/components-v-model.md +183 -0
  253. package/templates/skills/vue/references/core-reactivity.md +289 -0
  254. package/templates/skills/vue/references/features-composables.md +262 -0
  255. package/templates/skills/vue/references/features-directives.md +224 -0
  256. package/templates/skills/vue/references/features-script-setup.md +247 -0
  257. package/templates/skills/vue/references/features-template-refs.md +212 -0
  258. package/templates/skills/vue/references/features-typescript.md +274 -0
  259. package/templates/skills/vue-best-practices/LICENSE.md +21 -0
  260. package/templates/skills/vue-best-practices/SKILL.md +38 -0
  261. package/templates/skills/vue-best-practices/SYNC.md +5 -0
  262. package/templates/skills/vue-best-practices/rules/codeactions-save-performance.md +79 -0
  263. package/templates/skills/vue-best-practices/rules/data-attributes-config.md +74 -0
  264. package/templates/skills/vue-best-practices/rules/deep-watch-numeric.md +97 -0
  265. package/templates/skills/vue-best-practices/rules/define-model-update-event.md +79 -0
  266. package/templates/skills/vue-best-practices/rules/duplicate-plugin-detection.md +102 -0
  267. package/templates/skills/vue-best-practices/rules/extract-component-props.md +57 -0
  268. package/templates/skills/vue-best-practices/rules/fallthrough-attributes.md +63 -0
  269. package/templates/skills/vue-best-practices/rules/hmr-vue-ssr.md +124 -0
  270. package/templates/skills/vue-best-practices/rules/module-resolution-bundler.md +81 -0
  271. package/templates/skills/vue-best-practices/rules/pinia-store-mocking.md +159 -0
  272. package/templates/skills/vue-best-practices/rules/script-setup-jsdoc.md +85 -0
  273. package/templates/skills/vue-best-practices/rules/strict-css-modules.md +68 -0
  274. package/templates/skills/vue-best-practices/rules/volar-3-breaking-changes.md +65 -0
  275. package/templates/skills/vue-best-practices/rules/vue-directive-comments.md +73 -0
  276. package/templates/skills/vue-best-practices/rules/vue-router-typed-params.md +81 -0
  277. package/templates/skills/vue-best-practices/rules/vue-tsc-strict-templates.md +69 -0
  278. package/templates/skills/vue-best-practices/rules/with-defaults-union-types.md +102 -0
  279. package/templates/skills/vueuse-functions/LICENSE.md +21 -0
  280. package/templates/skills/vueuse-functions/SKILL.md +418 -0
  281. package/templates/skills/vueuse-functions/SYNC.md +5 -0
  282. package/templates/skills/vueuse-functions/references/computedAsync.md +159 -0
  283. package/templates/skills/vueuse-functions/references/computedEager.md +62 -0
  284. package/templates/skills/vueuse-functions/references/computedInject.md +86 -0
  285. package/templates/skills/vueuse-functions/references/computedWithControl.md +100 -0
  286. package/templates/skills/vueuse-functions/references/createEventHook.md +86 -0
  287. package/templates/skills/vueuse-functions/references/createGenericProjection.md +25 -0
  288. package/templates/skills/vueuse-functions/references/createGlobalState.md +95 -0
  289. package/templates/skills/vueuse-functions/references/createInjectionState.md +215 -0
  290. package/templates/skills/vueuse-functions/references/createProjection.md +31 -0
  291. package/templates/skills/vueuse-functions/references/createRef.md +54 -0
  292. package/templates/skills/vueuse-functions/references/createReusableTemplate.md +357 -0
  293. package/templates/skills/vueuse-functions/references/createSharedComposable.md +42 -0
  294. package/templates/skills/vueuse-functions/references/createTemplatePromise.md +259 -0
  295. package/templates/skills/vueuse-functions/references/createUnrefFn.md +51 -0
  296. package/templates/skills/vueuse-functions/references/extendRef.md +76 -0
  297. package/templates/skills/vueuse-functions/references/from.md +48 -0
  298. package/templates/skills/vueuse-functions/references/get.md +30 -0
  299. package/templates/skills/vueuse-functions/references/injectLocal.md +35 -0
  300. package/templates/skills/vueuse-functions/references/isDefined.md +31 -0
  301. package/templates/skills/vueuse-functions/references/logicAnd.md +40 -0
  302. package/templates/skills/vueuse-functions/references/logicNot.md +36 -0
  303. package/templates/skills/vueuse-functions/references/logicOr.md +40 -0
  304. package/templates/skills/vueuse-functions/references/makeDestructurable.md +41 -0
  305. package/templates/skills/vueuse-functions/references/onClickOutside.md +187 -0
  306. package/templates/skills/vueuse-functions/references/onElementRemoval.md +64 -0
  307. package/templates/skills/vueuse-functions/references/onKeyStroke.md +176 -0
  308. package/templates/skills/vueuse-functions/references/onLongPress.md +170 -0
  309. package/templates/skills/vueuse-functions/references/onStartTyping.md +43 -0
  310. package/templates/skills/vueuse-functions/references/provideLocal.md +37 -0
  311. package/templates/skills/vueuse-functions/references/reactify.md +144 -0
  312. package/templates/skills/vueuse-functions/references/reactifyObject.md +61 -0
  313. package/templates/skills/vueuse-functions/references/reactiveComputed.md +34 -0
  314. package/templates/skills/vueuse-functions/references/reactiveOmit.md +86 -0
  315. package/templates/skills/vueuse-functions/references/reactivePick.md +106 -0
  316. package/templates/skills/vueuse-functions/references/refAutoReset.md +44 -0
  317. package/templates/skills/vueuse-functions/references/refDebounced.md +81 -0
  318. package/templates/skills/vueuse-functions/references/refDefault.md +36 -0
  319. package/templates/skills/vueuse-functions/references/refManualReset.md +44 -0
  320. package/templates/skills/vueuse-functions/references/refThrottled.md +99 -0
  321. package/templates/skills/vueuse-functions/references/refWithControl.md +146 -0
  322. package/templates/skills/vueuse-functions/references/set.md +30 -0
  323. package/templates/skills/vueuse-functions/references/syncRef.md +195 -0
  324. package/templates/skills/vueuse-functions/references/syncRefs.md +128 -0
  325. package/templates/skills/vueuse-functions/references/templateRef.md +86 -0
  326. package/templates/skills/vueuse-functions/references/toObserver.md +38 -0
  327. package/templates/skills/vueuse-functions/references/toReactive.md +41 -0
  328. package/templates/skills/vueuse-functions/references/toRef.md +75 -0
  329. package/templates/skills/vueuse-functions/references/toRefs.md +81 -0
  330. package/templates/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
  331. package/templates/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
  332. package/templates/skills/vueuse-functions/references/tryOnMounted.md +34 -0
  333. package/templates/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
  334. package/templates/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
  335. package/templates/skills/vueuse-functions/references/unrefElement.md +54 -0
  336. package/templates/skills/vueuse-functions/references/until.md +165 -0
  337. package/templates/skills/vueuse-functions/references/useAbs.md +31 -0
  338. package/templates/skills/vueuse-functions/references/useActiveElement.md +65 -0
  339. package/templates/skills/vueuse-functions/references/useAnimate.md +140 -0
  340. package/templates/skills/vueuse-functions/references/useArrayDifference.md +84 -0
  341. package/templates/skills/vueuse-functions/references/useArrayEvery.md +59 -0
  342. package/templates/skills/vueuse-functions/references/useArrayFilter.md +63 -0
  343. package/templates/skills/vueuse-functions/references/useArrayFind.md +50 -0
  344. package/templates/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
  345. package/templates/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
  346. package/templates/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
  347. package/templates/skills/vueuse-functions/references/useArrayJoin.md +74 -0
  348. package/templates/skills/vueuse-functions/references/useArrayMap.md +59 -0
  349. package/templates/skills/vueuse-functions/references/useArrayReduce.md +81 -0
  350. package/templates/skills/vueuse-functions/references/useArraySome.md +59 -0
  351. package/templates/skills/vueuse-functions/references/useArrayUnique.md +76 -0
  352. package/templates/skills/vueuse-functions/references/useAsyncQueue.md +87 -0
  353. package/templates/skills/vueuse-functions/references/useAsyncState.md +140 -0
  354. package/templates/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
  355. package/templates/skills/vueuse-functions/references/useAuth.md +114 -0
  356. package/templates/skills/vueuse-functions/references/useAverage.md +36 -0
  357. package/templates/skills/vueuse-functions/references/useAxios.md +292 -0
  358. package/templates/skills/vueuse-functions/references/useBase64.md +88 -0
  359. package/templates/skills/vueuse-functions/references/useBattery.md +67 -0
  360. package/templates/skills/vueuse-functions/references/useBluetooth.md +161 -0
  361. package/templates/skills/vueuse-functions/references/useBreakpoints.md +128 -0
  362. package/templates/skills/vueuse-functions/references/useBroadcastChannel.md +74 -0
  363. package/templates/skills/vueuse-functions/references/useBrowserLocation.md +83 -0
  364. package/templates/skills/vueuse-functions/references/useCached.md +53 -0
  365. package/templates/skills/vueuse-functions/references/useCeil.md +31 -0
  366. package/templates/skills/vueuse-functions/references/useChangeCase.md +79 -0
  367. package/templates/skills/vueuse-functions/references/useClamp.md +51 -0
  368. package/templates/skills/vueuse-functions/references/useClipboard.md +99 -0
  369. package/templates/skills/vueuse-functions/references/useClipboardItems.md +93 -0
  370. package/templates/skills/vueuse-functions/references/useCloned.md +91 -0
  371. package/templates/skills/vueuse-functions/references/useColorMode.md +171 -0
  372. package/templates/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
  373. package/templates/skills/vueuse-functions/references/useCookies.md +162 -0
  374. package/templates/skills/vueuse-functions/references/useCountdown.md +102 -0
  375. package/templates/skills/vueuse-functions/references/useCounter.md +86 -0
  376. package/templates/skills/vueuse-functions/references/useCssVar.md +50 -0
  377. package/templates/skills/vueuse-functions/references/useCurrentElement.md +61 -0
  378. package/templates/skills/vueuse-functions/references/useCycleList.md +75 -0
  379. package/templates/skills/vueuse-functions/references/useDark.md +142 -0
  380. package/templates/skills/vueuse-functions/references/useDateFormat.md +145 -0
  381. package/templates/skills/vueuse-functions/references/useDebounceFn.md +100 -0
  382. package/templates/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
  383. package/templates/skills/vueuse-functions/references/useDeviceMotion.md +87 -0
  384. package/templates/skills/vueuse-functions/references/useDeviceOrientation.md +62 -0
  385. package/templates/skills/vueuse-functions/references/useDevicePixelRatio.md +44 -0
  386. package/templates/skills/vueuse-functions/references/useDevicesList.md +90 -0
  387. package/templates/skills/vueuse-functions/references/useDisplayMedia.md +71 -0
  388. package/templates/skills/vueuse-functions/references/useDocumentVisibility.md +45 -0
  389. package/templates/skills/vueuse-functions/references/useDraggable.md +210 -0
  390. package/templates/skills/vueuse-functions/references/useDrauu.md +65 -0
  391. package/templates/skills/vueuse-functions/references/useDropZone.md +83 -0
  392. package/templates/skills/vueuse-functions/references/useElementBounding.md +131 -0
  393. package/templates/skills/vueuse-functions/references/useElementByPoint.md +45 -0
  394. package/templates/skills/vueuse-functions/references/useElementHover.md +79 -0
  395. package/templates/skills/vueuse-functions/references/useElementSize.md +78 -0
  396. package/templates/skills/vueuse-functions/references/useElementVisibility.md +126 -0
  397. package/templates/skills/vueuse-functions/references/useEventBus.md +101 -0
  398. package/templates/skills/vueuse-functions/references/useEventListener.md +184 -0
  399. package/templates/skills/vueuse-functions/references/useEventSource.md +204 -0
  400. package/templates/skills/vueuse-functions/references/useExtractedObservable.md +185 -0
  401. package/templates/skills/vueuse-functions/references/useEyeDropper.md +71 -0
  402. package/templates/skills/vueuse-functions/references/useFavicon.md +67 -0
  403. package/templates/skills/vueuse-functions/references/useFetch.md +546 -0
  404. package/templates/skills/vueuse-functions/references/useFileDialog.md +91 -0
  405. package/templates/skills/vueuse-functions/references/useFileSystemAccess.md +162 -0
  406. package/templates/skills/vueuse-functions/references/useFirestore.md +104 -0
  407. package/templates/skills/vueuse-functions/references/useFloor.md +31 -0
  408. package/templates/skills/vueuse-functions/references/useFocus.md +99 -0
  409. package/templates/skills/vueuse-functions/references/useFocusTrap.md +245 -0
  410. package/templates/skills/vueuse-functions/references/useFocusWithin.md +57 -0
  411. package/templates/skills/vueuse-functions/references/useFps.md +28 -0
  412. package/templates/skills/vueuse-functions/references/useFullscreen.md +75 -0
  413. package/templates/skills/vueuse-functions/references/useFuse.md +107 -0
  414. package/templates/skills/vueuse-functions/references/useGamepad.md +223 -0
  415. package/templates/skills/vueuse-functions/references/useGeolocation.md +86 -0
  416. package/templates/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
  417. package/templates/skills/vueuse-functions/references/useIdle.md +89 -0
  418. package/templates/skills/vueuse-functions/references/useImage.md +86 -0
  419. package/templates/skills/vueuse-functions/references/useInfiniteScroll.md +157 -0
  420. package/templates/skills/vueuse-functions/references/useIntersectionObserver.md +118 -0
  421. package/templates/skills/vueuse-functions/references/useInterval.md +69 -0
  422. package/templates/skills/vueuse-functions/references/useIntervalFn.md +50 -0
  423. package/templates/skills/vueuse-functions/references/useIpcRenderer.md +118 -0
  424. package/templates/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
  425. package/templates/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
  426. package/templates/skills/vueuse-functions/references/useJwt.md +57 -0
  427. package/templates/skills/vueuse-functions/references/useKeyModifier.md +87 -0
  428. package/templates/skills/vueuse-functions/references/useLastChanged.md +63 -0
  429. package/templates/skills/vueuse-functions/references/useLocalStorage.md +41 -0
  430. package/templates/skills/vueuse-functions/references/useMagicKeys.md +217 -0
  431. package/templates/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
  432. package/templates/skills/vueuse-functions/references/useMath.md +47 -0
  433. package/templates/skills/vueuse-functions/references/useMax.md +36 -0
  434. package/templates/skills/vueuse-functions/references/useMediaControls.md +571 -0
  435. package/templates/skills/vueuse-functions/references/useMediaQuery.md +53 -0
  436. package/templates/skills/vueuse-functions/references/useMemoize.md +175 -0
  437. package/templates/skills/vueuse-functions/references/useMemory.md +56 -0
  438. package/templates/skills/vueuse-functions/references/useMin.md +36 -0
  439. package/templates/skills/vueuse-functions/references/useMounted.md +38 -0
  440. package/templates/skills/vueuse-functions/references/useMouse.md +114 -0
  441. package/templates/skills/vueuse-functions/references/useMouseInElement.md +123 -0
  442. package/templates/skills/vueuse-functions/references/useMousePressed.md +112 -0
  443. package/templates/skills/vueuse-functions/references/useMutationObserver.md +62 -0
  444. package/templates/skills/vueuse-functions/references/useNProgress.md +78 -0
  445. package/templates/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
  446. package/templates/skills/vueuse-functions/references/useNetwork.md +106 -0
  447. package/templates/skills/vueuse-functions/references/useNow.md +75 -0
  448. package/templates/skills/vueuse-functions/references/useObjectUrl.md +55 -0
  449. package/templates/skills/vueuse-functions/references/useObservable.md +67 -0
  450. package/templates/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
  451. package/templates/skills/vueuse-functions/references/useOnline.md +41 -0
  452. package/templates/skills/vueuse-functions/references/usePageLeave.md +42 -0
  453. package/templates/skills/vueuse-functions/references/useParallax.md +58 -0
  454. package/templates/skills/vueuse-functions/references/useParentElement.md +54 -0
  455. package/templates/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
  456. package/templates/skills/vueuse-functions/references/usePermission.md +78 -0
  457. package/templates/skills/vueuse-functions/references/usePointer.md +89 -0
  458. package/templates/skills/vueuse-functions/references/usePointerLock.md +60 -0
  459. package/templates/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
  460. package/templates/skills/vueuse-functions/references/usePrecision.md +49 -0
  461. package/templates/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
  462. package/templates/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
  463. package/templates/skills/vueuse-functions/references/usePreferredDark.md +41 -0
  464. package/templates/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
  465. package/templates/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
  466. package/templates/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
  467. package/templates/skills/vueuse-functions/references/usePrevious.md +40 -0
  468. package/templates/skills/vueuse-functions/references/useProjection.md +38 -0
  469. package/templates/skills/vueuse-functions/references/useQRCode.md +53 -0
  470. package/templates/skills/vueuse-functions/references/useRTDB.md +70 -0
  471. package/templates/skills/vueuse-functions/references/useRafFn.md +68 -0
  472. package/templates/skills/vueuse-functions/references/useRefHistory.md +292 -0
  473. package/templates/skills/vueuse-functions/references/useResizeObserver.md +110 -0
  474. package/templates/skills/vueuse-functions/references/useRound.md +31 -0
  475. package/templates/skills/vueuse-functions/references/useRouteHash.md +27 -0
  476. package/templates/skills/vueuse-functions/references/useRouteParams.md +38 -0
  477. package/templates/skills/vueuse-functions/references/useRouteQuery.md +38 -0
  478. package/templates/skills/vueuse-functions/references/useSSRWidth.md +47 -0
  479. package/templates/skills/vueuse-functions/references/useScreenOrientation.md +96 -0
  480. package/templates/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
  481. package/templates/skills/vueuse-functions/references/useScriptTag.md +116 -0
  482. package/templates/skills/vueuse-functions/references/useScroll.md +238 -0
  483. package/templates/skills/vueuse-functions/references/useScrollLock.md +66 -0
  484. package/templates/skills/vueuse-functions/references/useSessionStorage.md +41 -0
  485. package/templates/skills/vueuse-functions/references/useShare.md +68 -0
  486. package/templates/skills/vueuse-functions/references/useSortable.md +177 -0
  487. package/templates/skills/vueuse-functions/references/useSorted.md +90 -0
  488. package/templates/skills/vueuse-functions/references/useSpeechRecognition.md +94 -0
  489. package/templates/skills/vueuse-functions/references/useSpeechSynthesis.md +105 -0
  490. package/templates/skills/vueuse-functions/references/useStepper.md +137 -0
  491. package/templates/skills/vueuse-functions/references/useStorage.md +219 -0
  492. package/templates/skills/vueuse-functions/references/useStorageAsync.md +134 -0
  493. package/templates/skills/vueuse-functions/references/useStyleTag.md +131 -0
  494. package/templates/skills/vueuse-functions/references/useSubject.md +52 -0
  495. package/templates/skills/vueuse-functions/references/useSubscription.md +33 -0
  496. package/templates/skills/vueuse-functions/references/useSum.md +36 -0
  497. package/templates/skills/vueuse-functions/references/useSupported.md +29 -0
  498. package/templates/skills/vueuse-functions/references/useSwipe.md +75 -0
  499. package/templates/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
  500. package/templates/skills/vueuse-functions/references/useTextDirection.md +75 -0
  501. package/templates/skills/vueuse-functions/references/useTextSelection.md +40 -0
  502. package/templates/skills/vueuse-functions/references/useTextareaAutosize.md +97 -0
  503. package/templates/skills/vueuse-functions/references/useThrottleFn.md +57 -0
  504. package/templates/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
  505. package/templates/skills/vueuse-functions/references/useTimeAgo.md +152 -0
  506. package/templates/skills/vueuse-functions/references/useTimeAgoIntl.md +116 -0
  507. package/templates/skills/vueuse-functions/references/useTimeout.md +75 -0
  508. package/templates/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
  509. package/templates/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
  510. package/templates/skills/vueuse-functions/references/useTimestamp.md +85 -0
  511. package/templates/skills/vueuse-functions/references/useTitle.md +113 -0
  512. package/templates/skills/vueuse-functions/references/useToNumber.md +54 -0
  513. package/templates/skills/vueuse-functions/references/useToString.md +34 -0
  514. package/templates/skills/vueuse-functions/references/useToggle.md +56 -0
  515. package/templates/skills/vueuse-functions/references/useTransition.md +265 -0
  516. package/templates/skills/vueuse-functions/references/useTrunc.md +33 -0
  517. package/templates/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
  518. package/templates/skills/vueuse-functions/references/useUserMedia.md +1138 -0
  519. package/templates/skills/vueuse-functions/references/useVModel.md +116 -0
  520. package/templates/skills/vueuse-functions/references/useVModels.md +67 -0
  521. package/templates/skills/vueuse-functions/references/useVibrate.md +83 -0
  522. package/templates/skills/vueuse-functions/references/useVirtualList.md +184 -0
  523. package/templates/skills/vueuse-functions/references/useWakeLock.md +50 -0
  524. package/templates/skills/vueuse-functions/references/useWebNotification.md +177 -0
  525. package/templates/skills/vueuse-functions/references/useWebSocket.md +268 -0
  526. package/templates/skills/vueuse-functions/references/useWebWorker.md +60 -0
  527. package/templates/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
  528. package/templates/skills/vueuse-functions/references/useWindowFocus.md +46 -0
  529. package/templates/skills/vueuse-functions/references/useWindowScroll.md +62 -0
  530. package/templates/skills/vueuse-functions/references/useWindowSize.md +76 -0
  531. package/templates/skills/vueuse-functions/references/useZoomFactor.md +53 -0
  532. package/templates/skills/vueuse-functions/references/useZoomLevel.md +53 -0
  533. package/templates/skills/vueuse-functions/references/watchArray.md +53 -0
  534. package/templates/skills/vueuse-functions/references/watchAtMost.md +54 -0
  535. package/templates/skills/vueuse-functions/references/watchDebounced.md +72 -0
  536. package/templates/skills/vueuse-functions/references/watchDeep.md +54 -0
  537. package/templates/skills/vueuse-functions/references/watchExtractedObservable.md +167 -0
  538. package/templates/skills/vueuse-functions/references/watchIgnorable.md +120 -0
  539. package/templates/skills/vueuse-functions/references/watchImmediate.md +44 -0
  540. package/templates/skills/vueuse-functions/references/watchOnce.md +41 -0
  541. package/templates/skills/vueuse-functions/references/watchPausable.md +86 -0
  542. package/templates/skills/vueuse-functions/references/watchThrottled.md +73 -0
  543. package/templates/skills/vueuse-functions/references/watchTriggerable.md +97 -0
  544. package/templates/skills/vueuse-functions/references/watchWithFilter.md +55 -0
  545. package/templates/skills/vueuse-functions/references/whenever.md +100 -0
  546. package/templates/skills/web-design-guidelines/SKILL.md +39 -0
  547. package/templates/skills/web-design-guidelines/SYNC.md +5 -0
@@ -0,0 +1,184 @@
1
+ ---
2
+ category: Browser
3
+ ---
4
+
5
+ # useEventListener
6
+
7
+ Use EventListener with ease. Register using [addEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) on mounted, and [removeEventListener](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener) automatically on unmounted.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useEventListener } from '@vueuse/core'
13
+
14
+ useEventListener(document, 'visibilitychange', (evt) => {
15
+ console.log(evt)
16
+ })
17
+ ```
18
+
19
+ You can also pass a ref as the event target, `useEventListener` will unregister the previous event and register the new one when you change the target.
20
+
21
+ ```vue
22
+ <script setup lang="ts">
23
+ import { useEventListener } from '@vueuse/core'
24
+ import { useTemplateRef } from 'vue'
25
+
26
+ const element = useTemplateRef('element')
27
+ useEventListener(element, 'keydown', (e) => {
28
+ console.log(e.key)
29
+ })
30
+ </script>
31
+
32
+ <template>
33
+ <div v-if="cond" ref="element">
34
+ Div1
35
+ </div>
36
+ <div v-else ref="element">
37
+ Div2
38
+ </div>
39
+ </template>
40
+ ```
41
+
42
+ You can also call the returned to unregister the listener.
43
+
44
+ ```ts
45
+ import { useEventListener } from '@vueuse/core'
46
+
47
+ const cleanup = useEventListener(document, 'keydown', (e) => {
48
+ console.log(e.key)
49
+ })
50
+
51
+ cleanup() // This will unregister the listener.
52
+ ```
53
+
54
+ Note if your components also run in SSR (Server Side Rendering), you might get errors (like `document is not defined`) because DOM APIs like `document` and `window` are not available in Node.js. To avoid that you can put the logic inside `onMounted` hook.
55
+
56
+ ```ts
57
+ import { useEventListener } from '@vueuse/core'
58
+ // ---cut---
59
+ // onMounted will only be called in the client side
60
+ // so it guarantees the DOM APIs are available.
61
+ onMounted(() => {
62
+ useEventListener(document, 'keydown', (e) => {
63
+ console.log(e.key)
64
+ })
65
+ })
66
+ ```
67
+
68
+ ## Type Declarations
69
+
70
+ ```ts
71
+ interface InferEventTarget<Events> {
72
+ addEventListener: (event: Events, fn?: any, options?: any) => any
73
+ removeEventListener: (event: Events, fn?: any, options?: any) => any
74
+ }
75
+ export type WindowEventName = keyof WindowEventMap
76
+ export type DocumentEventName = keyof DocumentEventMap
77
+ export type ShadowRootEventName = keyof ShadowRootEventMap
78
+ export interface GeneralEventListener<E = Event> {
79
+ (evt: E): void
80
+ }
81
+ /**
82
+ * Register using addEventListener on mounted, and removeEventListener automatically on unmounted.
83
+ *
84
+ * Overload 1: Omitted Window target
85
+ *
86
+ * @see https://vueuse.org/useEventListener
87
+ */
88
+ export declare function useEventListener<E extends keyof WindowEventMap>(
89
+ event: MaybeRefOrGetter<Arrayable<E>>,
90
+ listener: MaybeRef<Arrayable<(this: Window, ev: WindowEventMap[E]) => any>>,
91
+ options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>,
92
+ ): Fn
93
+ /**
94
+ * Register using addEventListener on mounted, and removeEventListener automatically on unmounted.
95
+ *
96
+ * Overload 2: Explicitly Window target
97
+ *
98
+ * @see https://vueuse.org/useEventListener
99
+ * @param target
100
+ * @param event
101
+ * @param listener
102
+ * @param options
103
+ */
104
+ export declare function useEventListener<E extends keyof WindowEventMap>(
105
+ target: Window,
106
+ event: MaybeRefOrGetter<Arrayable<E>>,
107
+ listener: MaybeRef<Arrayable<(this: Window, ev: WindowEventMap[E]) => any>>,
108
+ options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>,
109
+ ): Fn
110
+ /**
111
+ * Register using addEventListener on mounted, and removeEventListener automatically on unmounted.
112
+ *
113
+ * Overload 3: Explicitly Document target
114
+ *
115
+ * @see https://vueuse.org/useEventListener
116
+ */
117
+ export declare function useEventListener<E extends keyof DocumentEventMap>(
118
+ target: Document,
119
+ event: MaybeRefOrGetter<Arrayable<E>>,
120
+ listener: MaybeRef<
121
+ Arrayable<(this: Document, ev: DocumentEventMap[E]) => any>
122
+ >,
123
+ options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>,
124
+ ): Fn
125
+ /**
126
+ * Register using addEventListener on mounted, and removeEventListener automatically on unmounted.
127
+ *
128
+ * Overload 4: Explicitly ShadowRoot target
129
+ *
130
+ * @see https://vueuse.org/useEventListener
131
+ */
132
+ export declare function useEventListener<E extends keyof ShadowRootEventMap>(
133
+ target: MaybeRefOrGetter<Arrayable<ShadowRoot> | null | undefined>,
134
+ event: MaybeRefOrGetter<Arrayable<E>>,
135
+ listener: MaybeRef<
136
+ Arrayable<(this: ShadowRoot, ev: ShadowRootEventMap[E]) => any>
137
+ >,
138
+ options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>,
139
+ ): Fn
140
+ /**
141
+ * Register using addEventListener on mounted, and removeEventListener automatically on unmounted.
142
+ *
143
+ * Overload 5: Explicitly HTMLElement target
144
+ *
145
+ * @see https://vueuse.org/useEventListener
146
+ */
147
+ export declare function useEventListener<E extends keyof HTMLElementEventMap>(
148
+ target: MaybeRefOrGetter<Arrayable<HTMLElement> | null | undefined>,
149
+ event: MaybeRefOrGetter<Arrayable<E>>,
150
+ listener: MaybeRef<(this: HTMLElement, ev: HTMLElementEventMap[E]) => any>,
151
+ options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>,
152
+ ): Fn
153
+ /**
154
+ * Register using addEventListener on mounted, and removeEventListener automatically on unmounted.
155
+ *
156
+ * Overload 6: Custom event target with event type infer
157
+ *
158
+ * @see https://vueuse.org/useEventListener
159
+ */
160
+ export declare function useEventListener<
161
+ Names extends string,
162
+ EventType = Event,
163
+ >(
164
+ target: MaybeRefOrGetter<
165
+ Arrayable<InferEventTarget<Names>> | null | undefined
166
+ >,
167
+ event: MaybeRefOrGetter<Arrayable<Names>>,
168
+ listener: MaybeRef<Arrayable<GeneralEventListener<EventType>>>,
169
+ options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>,
170
+ ): Fn
171
+ /**
172
+ * Register using addEventListener on mounted, and removeEventListener automatically on unmounted.
173
+ *
174
+ * Overload 7: Custom event target fallback
175
+ *
176
+ * @see https://vueuse.org/useEventListener
177
+ */
178
+ export declare function useEventListener<EventType = Event>(
179
+ target: MaybeRefOrGetter<Arrayable<EventTarget> | null | undefined>,
180
+ event: MaybeRefOrGetter<Arrayable<string>>,
181
+ listener: MaybeRef<Arrayable<GeneralEventListener<EventType>>>,
182
+ options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>,
183
+ ): Fn
184
+ ```
@@ -0,0 +1,204 @@
1
+ ---
2
+ category: Network
3
+ ---
4
+
5
+ # useEventSource
6
+
7
+ An [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) or [Server-Sent-Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events) instance opens a persistent connection to an HTTP server, which sends events in text/event-stream format.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useEventSource } from '@vueuse/core'
13
+
14
+ const { status, data, error, close } = useEventSource('https://event-source-url')
15
+ ```
16
+
17
+ See the [Type Declarations](#type-declarations) for more options.
18
+
19
+ ### Named Events
20
+
21
+ You can define named events with the second parameter
22
+
23
+ ```ts
24
+ import { useEventSource } from '@vueuse/core'
25
+ // ---cut---
26
+ const { event, data } = useEventSource(
27
+ 'https://event-source-url',
28
+ ['notice', 'update']
29
+ )
30
+ ```
31
+
32
+ ### immediate
33
+
34
+ Enable by default.
35
+
36
+ Establish the connection immediately when the composable is called.
37
+
38
+ ### autoConnect
39
+
40
+ Enable by default.
41
+
42
+ If url is provided as a ref, when the url changes, it will automatically reconnect to the new url.
43
+
44
+ ### Auto Reconnection on Errors
45
+
46
+ Reconnect on errors automatically (disabled by default).
47
+
48
+ ```ts
49
+ import { useEventSource } from '@vueuse/core'
50
+ // ---cut---
51
+ const { status, data, close } = useEventSource(
52
+ 'https://event-source-url',
53
+ [],
54
+ {
55
+ autoReconnect: true,
56
+ }
57
+ )
58
+ ```
59
+
60
+ Or with more controls over its behavior:
61
+
62
+ ```ts
63
+ import { useEventSource } from '@vueuse/core'
64
+ // ---cut---
65
+ const { status, data, close } = useEventSource(
66
+ 'https://event-source-url',
67
+ [],
68
+ {
69
+ autoReconnect: {
70
+ retries: 3,
71
+ delay: 1000,
72
+ onFailed() {
73
+ alert('Failed to connect EventSource after 3 retries')
74
+ },
75
+ },
76
+ }
77
+ )
78
+ ```
79
+
80
+ ### Data Serialization
81
+
82
+ Apply custom transformations to incoming data using a serialization function.
83
+
84
+ ```ts
85
+ import { useEventSource } from '@vueuse/core'
86
+ // ---cut---
87
+ const { data } = useEventSource(
88
+ 'https://event-source-url',
89
+ [],
90
+ {
91
+ serializer: {
92
+ read: rawData => JSON.parse(rawData),
93
+ },
94
+ }
95
+ )
96
+
97
+ // If server sends: '{"name":"John","age":30}'
98
+ // data.value will be: { name: 'John', age: 30 }
99
+ ```
100
+
101
+ ## Type Declarations
102
+
103
+ ```ts
104
+ export type EventSourceStatus = "CONNECTING" | "OPEN" | "CLOSED"
105
+ export interface UseEventSourceOptions<Data> extends EventSourceInit {
106
+ /**
107
+ * Enabled auto reconnect
108
+ *
109
+ * @default false
110
+ */
111
+ autoReconnect?:
112
+ | boolean
113
+ | {
114
+ /**
115
+ * Maximum retry times.
116
+ *
117
+ * Or you can pass a predicate function (which returns true if you want to retry).
118
+ *
119
+ * @default -1
120
+ */
121
+ retries?: number | (() => boolean)
122
+ /**
123
+ * Delay for reconnect, in milliseconds
124
+ *
125
+ * @default 1000
126
+ */
127
+ delay?: number
128
+ /**
129
+ * On maximum retry times reached.
130
+ */
131
+ onFailed?: Fn
132
+ }
133
+ /**
134
+ * Immediately open the connection when calling this composable
135
+ *
136
+ * @default true
137
+ */
138
+ immediate?: boolean
139
+ /**
140
+ * Automatically connect to the websocket when URL changes
141
+ *
142
+ * @default true
143
+ */
144
+ autoConnect?: boolean
145
+ /**
146
+ * Custom data serialization
147
+ */
148
+ serializer?: {
149
+ read: (v?: string) => Data
150
+ }
151
+ }
152
+ export interface UseEventSourceReturn<Events extends string[], Data = any> {
153
+ /**
154
+ * Reference to the latest data received via the EventSource,
155
+ * can be watched to respond to incoming messages
156
+ */
157
+ data: ShallowRef<Data | null>
158
+ /**
159
+ * The current state of the connection, can be only one of:
160
+ * 'CONNECTING', 'OPEN' 'CLOSED'
161
+ */
162
+ status: ShallowRef<EventSourceStatus>
163
+ /**
164
+ * The latest named event
165
+ */
166
+ event: ShallowRef<Events[number] | null>
167
+ /**
168
+ * The current error
169
+ */
170
+ error: ShallowRef<Event | null>
171
+ /**
172
+ * Closes the EventSource connection gracefully.
173
+ */
174
+ close: EventSource["close"]
175
+ /**
176
+ * Reopen the EventSource connection.
177
+ * If there the current one is active, will close it before opening a new one.
178
+ */
179
+ open: Fn
180
+ /**
181
+ * Reference to the current EventSource instance.
182
+ */
183
+ eventSource: Ref<EventSource | null>
184
+ /**
185
+ * The last event ID string, for server-sent events.
186
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent/lastEventId
187
+ */
188
+ lastEventId: ShallowRef<string | null>
189
+ }
190
+ /**
191
+ * Reactive wrapper for EventSource.
192
+ *
193
+ * @see https://vueuse.org/useEventSource
194
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource
195
+ * @param url
196
+ * @param events
197
+ * @param options
198
+ */
199
+ export declare function useEventSource<Events extends string[], Data = any>(
200
+ url: MaybeRefOrGetter<string | URL | undefined>,
201
+ events?: Events,
202
+ options?: UseEventSourceOptions<Data>,
203
+ ): UseEventSourceReturn<Events, Data>
204
+ ```
@@ -0,0 +1,185 @@
1
+ ---
2
+ category: '@RxJS'
3
+ ---
4
+
5
+ # useExtractedObservable
6
+
7
+ Use an RxJS [`Observable`](https://rxjs.dev/guide/observable) as extracted from one or more composables, return a `ref`,
8
+ and automatically unsubscribe from it when the component is unmounted.
9
+
10
+ Automatically unsubscribe on observable change, and automatically unsubscribe from it when the component is unmounted.
11
+
12
+ Supports signatures that match all overloads
13
+ of [`watch`](https://vuejs.org/guide/essentials/watchers.html#basic-example).
14
+
15
+ ## Usage
16
+
17
+ <!-- TODO: import rxjs error if enable twoslash -->
18
+
19
+ ```ts no-twoslash
20
+ import { useExtractedObservable } from '@vueuse/rxjs'
21
+ import ObservableSocket from 'observable-socket'
22
+ import { computed } from 'vue'
23
+ import { makeSocket, useUser } from '../some/lib/func'
24
+
25
+ // setup()
26
+ const user = useUser()
27
+ const lastMessage = useExtractedObservable(user, u => ObservableSocket.create(makeSocket(u.id)).down)
28
+ ```
29
+
30
+ If you want to add custom error handling to an `Observable` that might error, you can supply an optional `onError`
31
+ configuration. Without this, RxJS will treat any error in the supplied `Observable` as an "unhandled error" and it will
32
+ be thrown in a new call stack and reported to `window.onerror` (or `process.on('error')` if you happen to be in Node).
33
+
34
+ ```ts no-twoslash
35
+ import { useExtractedObservable } from '@vueuse/rxjs'
36
+ import { interval } from 'rxjs'
37
+ import { mapTo, scan, startWith, tap } from 'rxjs/operators'
38
+ import { shallowRef } from 'vue'
39
+
40
+ // setup()
41
+ const start = shallowRef(0)
42
+
43
+ const count = useExtractedObservable(
44
+ start,
45
+ (start) => {
46
+ return interval(1000).pipe(
47
+ mapTo(1),
48
+ startWith(start),
49
+ scan((total, next) => next + total),
50
+ tap((n) => {
51
+ if (n === 10)
52
+ throw new Error('oops')
53
+ })
54
+ )
55
+ },
56
+ {
57
+ onError: (err) => {
58
+ console.log(err.message) // "oops"
59
+ },
60
+ }
61
+ )
62
+ ```
63
+
64
+ You can also supply an optional `onComplete` configuration if you need to attach special behavior when the watched
65
+ observable completes.
66
+
67
+ ```ts no-twoslash
68
+ import { useExtractedObservable } from '@vueuse/rxjs'
69
+ import { interval } from 'rxjs'
70
+ import { mapTo, scan, startWith, takeWhile } from 'rxjs/operators'
71
+ import { shallowRef } from 'vue'
72
+
73
+ // setup()
74
+ const start = shallowRef(0)
75
+
76
+ const count = useExtractedObservable(
77
+ start,
78
+ (start) => {
79
+ return interval(1000).pipe(
80
+ mapTo(1),
81
+ startWith(start),
82
+ scan((total, next) => next + total),
83
+ takeWhile(num => num < 10)
84
+ )
85
+ },
86
+ {
87
+ onComplete: () => {
88
+ console.log('Done!')
89
+ },
90
+ }
91
+ )
92
+ ```
93
+
94
+ If you want, you can also pass `watch` options as the last argument:
95
+
96
+ ```ts no-twoslash
97
+ import { useExtractedObservable } from '@vueuse/rxjs'
98
+ import { interval } from 'rxjs'
99
+ import { mapTo, scan, startWith, takeWhile } from 'rxjs/operators'
100
+ import { shallowRef } from 'vue'
101
+
102
+ // setup()
103
+ const start = shallowRef<number>()
104
+
105
+ const count = useExtractedObservable(
106
+ start,
107
+ (start) => {
108
+ return interval(1000).pipe(
109
+ mapTo(1),
110
+ startWith(start),
111
+ scan((total, next) => next + total),
112
+ takeWhile(num => num < 10)
113
+ )
114
+ },
115
+ {},
116
+ {
117
+ immediate: false
118
+ }
119
+ )
120
+ ```
121
+
122
+ ## Type Declarations
123
+
124
+ ```ts
125
+ export interface UseExtractedObservableOptions<E>
126
+ extends UseObservableOptions<E> {
127
+ onComplete?: () => void
128
+ }
129
+ export declare function useExtractedObservable<
130
+ T extends MultiWatchSources,
131
+ E,
132
+ Immediate extends Readonly<boolean> = false,
133
+ >(
134
+ sources: [...T],
135
+ extractor: WatchExtractedObservableCallback<
136
+ MapSources<T>,
137
+ MapOldSources<T, Immediate>,
138
+ E
139
+ >,
140
+ options?: UseExtractedObservableOptions<E>,
141
+ watchOptions?: WatchOptions<Immediate>,
142
+ ): Readonly<ShallowRef<E>>
143
+ export declare function useExtractedObservable<
144
+ T extends Readonly<MultiWatchSources>,
145
+ E,
146
+ Immediate extends Readonly<boolean> = false,
147
+ >(
148
+ sources: T,
149
+ extractor: WatchExtractedObservableCallback<
150
+ MapSources<T>,
151
+ MapOldSources<T, Immediate>,
152
+ E
153
+ >,
154
+ options?: UseExtractedObservableOptions<E>,
155
+ watchOptions?: WatchOptions<Immediate>,
156
+ ): Readonly<ShallowRef<E>>
157
+ export declare function useExtractedObservable<
158
+ T,
159
+ E,
160
+ Immediate extends Readonly<boolean> = false,
161
+ >(
162
+ sources: WatchSource<T>,
163
+ extractor: WatchExtractedObservableCallback<
164
+ T,
165
+ Immediate extends true ? T | undefined : T,
166
+ E
167
+ >,
168
+ options?: UseExtractedObservableOptions<E>,
169
+ watchOptions?: WatchOptions<Immediate>,
170
+ ): Readonly<ShallowRef<E>>
171
+ export declare function useExtractedObservable<
172
+ T extends object,
173
+ E,
174
+ Immediate extends Readonly<boolean> = false,
175
+ >(
176
+ sources: T,
177
+ extractor: WatchExtractedObservableCallback<
178
+ T,
179
+ Immediate extends true ? T | undefined : T,
180
+ E
181
+ >,
182
+ options?: UseExtractedObservableOptions<E>,
183
+ watchOptions?: WatchOptions<Immediate>,
184
+ ): Readonly<ShallowRef<E>>
185
+ ```
@@ -0,0 +1,71 @@
1
+ ---
2
+ category: Browser
3
+ ---
4
+
5
+ # useEyeDropper
6
+
7
+ Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useEyeDropper } from '@vueuse/core'
13
+
14
+ const { isSupported, open, sRGBHex } = useEyeDropper()
15
+ ```
16
+
17
+ ## Component Usage
18
+
19
+ ```vue
20
+ <template>
21
+ <UseEyeDropper v-slot="{ isSupported, sRGBHex, open }">
22
+ <button :disabled="!isSupported" @click="() => open()">
23
+ sRGBHex: {{ sRGBHex }}
24
+ </button>
25
+ </UseEyeDropper>
26
+ </template>
27
+ ```
28
+
29
+ ## Type Declarations
30
+
31
+ ```ts
32
+ export interface EyeDropperOpenOptions {
33
+ /**
34
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal
35
+ */
36
+ signal?: AbortSignal
37
+ }
38
+ export interface EyeDropper {
39
+ new (): EyeDropper
40
+ open: (options?: EyeDropperOpenOptions) => Promise<{
41
+ sRGBHex: string
42
+ }>
43
+ [Symbol.toStringTag]: "EyeDropper"
44
+ }
45
+ export interface UseEyeDropperOptions {
46
+ /**
47
+ * Initial sRGBHex.
48
+ *
49
+ * @default ''
50
+ */
51
+ initialValue?: string
52
+ }
53
+ /**
54
+ * Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)
55
+ *
56
+ * @see https://vueuse.org/useEyeDropper
57
+ *
58
+ * @__NO_SIDE_EFFECTS__
59
+ */
60
+ export declare function useEyeDropper(options?: UseEyeDropperOptions): {
61
+ isSupported: ComputedRef<boolean>
62
+ sRGBHex: ShallowRef<string, string>
63
+ open: (openOptions?: EyeDropperOpenOptions) => Promise<
64
+ | {
65
+ sRGBHex: string
66
+ }
67
+ | undefined
68
+ >
69
+ }
70
+ export type UseEyeDropperReturn = ReturnType<typeof useEyeDropper>
71
+ ```
@@ -0,0 +1,67 @@
1
+ ---
2
+ category: Browser
3
+ ---
4
+
5
+ # useFavicon
6
+
7
+ Reactive favicon
8
+
9
+ ## Usage
10
+
11
+ ```ts {3}
12
+ import { useFavicon } from '@vueuse/core'
13
+
14
+ const icon = useFavicon()
15
+
16
+ icon.value = 'dark.png' // change current icon
17
+ ```
18
+
19
+ ### Passing a source ref
20
+
21
+ You can pass a `ref` to it, changes from of the source ref will be reflected to your favicon automatically.
22
+
23
+ ```ts {7}
24
+ import { useFavicon, usePreferredDark } from '@vueuse/core'
25
+ import { computed } from 'vue'
26
+
27
+ const isDark = usePreferredDark()
28
+ const favicon = computed(() => isDark.value ? 'dark.png' : 'light.png')
29
+
30
+ useFavicon(favicon)
31
+ ```
32
+
33
+ When a source ref is passed, the return ref will be identical to the source ref
34
+
35
+ ```ts
36
+ import { useFavicon } from '@vueuse/core'
37
+ // ---cut---
38
+ const source = shallowRef('icon.png')
39
+ const icon = useFavicon(source)
40
+
41
+ console.log(icon === source) // true
42
+ ```
43
+
44
+ ## Type Declarations
45
+
46
+ ```ts
47
+ export interface UseFaviconOptions extends ConfigurableDocument {
48
+ baseUrl?: string
49
+ rel?: string
50
+ }
51
+ /**
52
+ * Reactive favicon.
53
+ *
54
+ * @see https://vueuse.org/useFavicon
55
+ * @param newIcon
56
+ * @param options
57
+ */
58
+ export declare function useFavicon(
59
+ newIcon: ReadonlyRefOrGetter<string | null | undefined>,
60
+ options?: UseFaviconOptions,
61
+ ): ComputedRef<string | null | undefined>
62
+ export declare function useFavicon(
63
+ newIcon?: MaybeRef<string | null | undefined>,
64
+ options?: UseFaviconOptions,
65
+ ): Ref<string | null | undefined>
66
+ export type UseFaviconReturn = ReturnType<typeof useFavicon>
67
+ ```