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,162 @@
1
+ ---
2
+ category: Browser
3
+ ---
4
+
5
+ # useFileSystemAccess
6
+
7
+ Create and read and write local files with [FileSystemAccessAPI](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useFileSystemAccess } from '@vueuse/core'
13
+
14
+ const {
15
+ isSupported,
16
+ data,
17
+ file,
18
+ fileName,
19
+ fileMIME,
20
+ fileSize,
21
+ fileLastModified,
22
+ create,
23
+ open,
24
+ save,
25
+ saveAs,
26
+ updateData
27
+ } = useFileSystemAccess()
28
+ ```
29
+
30
+ ## Type Declarations
31
+
32
+ ```ts
33
+ /**
34
+ * window.showOpenFilePicker parameters
35
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker#parameters
36
+ */
37
+ export interface FileSystemAccessShowOpenFileOptions {
38
+ multiple?: boolean
39
+ types?: Array<{
40
+ description?: string
41
+ accept: Record<string, string[]>
42
+ }>
43
+ excludeAcceptAllOption?: boolean
44
+ }
45
+ /**
46
+ * window.showSaveFilePicker parameters
47
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/window/showSaveFilePicker#parameters
48
+ */
49
+ export interface FileSystemAccessShowSaveFileOptions {
50
+ suggestedName?: string
51
+ types?: Array<{
52
+ description?: string
53
+ accept: Record<string, string[]>
54
+ }>
55
+ excludeAcceptAllOption?: boolean
56
+ }
57
+ /**
58
+ * FileHandle
59
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle
60
+ */
61
+ export interface FileSystemFileHandle {
62
+ getFile: () => Promise<File>
63
+ createWritable: () => FileSystemWritableFileStream
64
+ }
65
+ /**
66
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream
67
+ */
68
+ interface FileSystemWritableFileStream extends WritableStream {
69
+ /**
70
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write
71
+ */
72
+ write: FileSystemWritableFileStreamWrite
73
+ /**
74
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/seek
75
+ */
76
+ seek: (position: number) => Promise<void>
77
+ /**
78
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/truncate
79
+ */
80
+ truncate: (size: number) => Promise<void>
81
+ }
82
+ /**
83
+ * FileStream.write
84
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write
85
+ */
86
+ interface FileSystemWritableFileStreamWrite {
87
+ (data: string | BufferSource | Blob): Promise<void>
88
+ (options: {
89
+ type: "write"
90
+ position: number
91
+ data: string | BufferSource | Blob
92
+ }): Promise<void>
93
+ (options: { type: "seek"; position: number }): Promise<void>
94
+ (options: { type: "truncate"; size: number }): Promise<void>
95
+ }
96
+ /**
97
+ * FileStream.write
98
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write
99
+ */
100
+ export type FileSystemAccessWindow = Window & {
101
+ showSaveFilePicker: (
102
+ options: FileSystemAccessShowSaveFileOptions,
103
+ ) => Promise<FileSystemFileHandle>
104
+ showOpenFilePicker: (
105
+ options: FileSystemAccessShowOpenFileOptions,
106
+ ) => Promise<FileSystemFileHandle[]>
107
+ }
108
+ export type UseFileSystemAccessCommonOptions = Pick<
109
+ FileSystemAccessShowOpenFileOptions,
110
+ "types" | "excludeAcceptAllOption"
111
+ >
112
+ export type UseFileSystemAccessShowSaveFileOptions = Pick<
113
+ FileSystemAccessShowSaveFileOptions,
114
+ "suggestedName"
115
+ >
116
+ export type UseFileSystemAccessOptions = ConfigurableWindow &
117
+ UseFileSystemAccessCommonOptions & {
118
+ /**
119
+ * file data type
120
+ */
121
+ dataType?: MaybeRefOrGetter<"Text" | "ArrayBuffer" | "Blob">
122
+ }
123
+ /**
124
+ * Create and read and write local files.
125
+ * @see https://vueuse.org/useFileSystemAccess
126
+ */
127
+ export declare function useFileSystemAccess(): UseFileSystemAccessReturn<
128
+ string | ArrayBuffer | Blob
129
+ >
130
+ export declare function useFileSystemAccess(
131
+ options: UseFileSystemAccessOptions & {
132
+ dataType: "Text"
133
+ },
134
+ ): UseFileSystemAccessReturn<string>
135
+ export declare function useFileSystemAccess(
136
+ options: UseFileSystemAccessOptions & {
137
+ dataType: "ArrayBuffer"
138
+ },
139
+ ): UseFileSystemAccessReturn<ArrayBuffer>
140
+ export declare function useFileSystemAccess(
141
+ options: UseFileSystemAccessOptions & {
142
+ dataType: "Blob"
143
+ },
144
+ ): UseFileSystemAccessReturn<Blob>
145
+ export declare function useFileSystemAccess(
146
+ options: UseFileSystemAccessOptions,
147
+ ): UseFileSystemAccessReturn<string | ArrayBuffer | Blob>
148
+ export interface UseFileSystemAccessReturn<T = string> {
149
+ isSupported: ComputedRef<boolean>
150
+ data: ShallowRef<T | undefined>
151
+ file: ShallowRef<File | undefined>
152
+ fileName: ComputedRef<string>
153
+ fileMIME: ComputedRef<string>
154
+ fileSize: ComputedRef<number>
155
+ fileLastModified: ComputedRef<number>
156
+ open: (_options?: UseFileSystemAccessCommonOptions) => Awaitable<void>
157
+ create: (_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void>
158
+ save: (_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void>
159
+ saveAs: (_options?: UseFileSystemAccessShowSaveFileOptions) => Awaitable<void>
160
+ updateData: () => Awaitable<void>
161
+ }
162
+ ```
@@ -0,0 +1,104 @@
1
+ ---
2
+ category: '@Firebase'
3
+ ---
4
+
5
+ # useFirestore
6
+
7
+ Reactive [Firestore](https://firebase.google.com/docs/firestore) binding. Making it straightforward to **always keep your local data in sync** with remotes databases.
8
+
9
+ ## Usage
10
+
11
+ ```ts {9,12,17,22}
12
+ import { useFirestore } from '@vueuse/firebase/useFirestore'
13
+ import { initializeApp } from 'firebase/app'
14
+ import { collection, doc, getFirestore, limit, orderBy, query } from 'firebase/firestore'
15
+ import { computed, shallowRef } from 'vue'
16
+
17
+ const app = initializeApp({ projectId: 'MY PROJECT ID' })
18
+ const db = getFirestore(app)
19
+
20
+ const todos = useFirestore(collection(db, 'todos'))
21
+
22
+ // or for doc reference
23
+ const user = useFirestore(doc(db, 'users', 'my-user-id'))
24
+
25
+ // you can also use ref value for reactive query
26
+ const postsLimit = shallowRef(10)
27
+ const postsQuery = computed(() => query(collection(db, 'posts'), orderBy('createdAt', 'desc'), limit(postsLimit.value)))
28
+ const posts = useFirestore(postsQuery)
29
+
30
+ // you can use the boolean value to tell a query when it is ready to run
31
+ // when it gets falsy value, return the initial value
32
+ const userId = shallowRef('')
33
+ const userQuery = computed(() => userId.value && doc(db, 'users', userId.value))
34
+ const userData = useFirestore(userQuery, null)
35
+ ```
36
+
37
+ ## Share across instances
38
+
39
+ You can reuse the db reference by passing `autoDispose: false`. You can also set an amount of milliseconds before auto disposing the db reference.
40
+
41
+ Note : Getting a not disposed db reference again don't cost a Firestore read.
42
+
43
+ ```ts
44
+ import { useFirestore } from '@vueuse/firebase/useFirestore'
45
+ import { collection } from 'firebase/firestore'
46
+ // ---cut---
47
+ const todos = useFirestore(collection(db, 'todos'), undefined, { autoDispose: false })
48
+ ```
49
+
50
+ or use `createGlobalState` from the core package
51
+
52
+ ```ts twoslash include store
53
+ // @filename: store.ts
54
+ // ---cut---
55
+ // store.ts
56
+ import { createGlobalState } from '@vueuse/core'
57
+ import { useFirestore } from '@vueuse/firebase/useFirestore'
58
+
59
+ export const useTodos = createGlobalState(
60
+ () => useFirestore(collection(db, 'todos')),
61
+ )
62
+ ```
63
+
64
+ ```vue
65
+ <!-- app.vue -->
66
+ <script setup lang="ts">
67
+ // @include: store
68
+ // ---cut---
69
+ import { useTodos } from './store'
70
+
71
+ const todos = useTodos()
72
+ </script>
73
+ ```
74
+
75
+ ## Type Declarations
76
+
77
+ ```ts
78
+ export interface UseFirestoreOptions {
79
+ errorHandler?: (err: Error) => void
80
+ autoDispose?: boolean | number
81
+ }
82
+ export type FirebaseDocRef<T> = Query<T> | DocumentReference<T>
83
+ type Falsy = false | 0 | "" | null | undefined
84
+ export declare function useFirestore<T extends DocumentData>(
85
+ maybeDocRef: MaybeRef<DocumentReference<T> | Falsy>,
86
+ initialValue: T,
87
+ options?: UseFirestoreOptions,
88
+ ): Ref<T | null>
89
+ export declare function useFirestore<T extends DocumentData>(
90
+ maybeDocRef: MaybeRef<Query<T> | Falsy>,
91
+ initialValue: T[],
92
+ options?: UseFirestoreOptions,
93
+ ): Ref<T[]>
94
+ export declare function useFirestore<T extends DocumentData>(
95
+ maybeDocRef: MaybeRef<DocumentReference<T> | Falsy>,
96
+ initialValue?: T | undefined | null,
97
+ options?: UseFirestoreOptions,
98
+ ): Ref<T | undefined | null>
99
+ export declare function useFirestore<T extends DocumentData>(
100
+ maybeDocRef: MaybeRef<Query<T> | Falsy>,
101
+ initialValue?: T[],
102
+ options?: UseFirestoreOptions,
103
+ ): Ref<T[] | undefined>
104
+ ```
@@ -0,0 +1,31 @@
1
+ ---
2
+ category: '@Math'
3
+ ---
4
+
5
+ # useFloor
6
+
7
+ Reactive `Math.floor`.
8
+
9
+ ## Usage
10
+
11
+ ```ts
12
+ import { useFloor } from '@vueuse/math'
13
+
14
+ const value = ref(45.95)
15
+ const result = useFloor(value) // 45
16
+ ```
17
+
18
+ ## Type Declarations
19
+
20
+ ```ts
21
+ /**
22
+ * Reactive `Math.floor`
23
+ *
24
+ * @see https://vueuse.org/useFloor
25
+ *
26
+ * @__NO_SIDE_EFFECTS__
27
+ */
28
+ export declare function useFloor(
29
+ value: MaybeRefOrGetter<number>,
30
+ ): ComputedRef<number>
31
+ ```
@@ -0,0 +1,99 @@
1
+ ---
2
+ category: Sensors
3
+ ---
4
+
5
+ # useFocus
6
+
7
+ Reactive utility to track or set the focus state of a DOM element. State changes to reflect whether the target element is the focused element. Setting reactive value from the outside will trigger `focus` and `blur` events for `true` and `false` values respectively.
8
+
9
+ ## Basic Usage
10
+
11
+ ```ts
12
+ import { useFocus } from '@vueuse/core'
13
+
14
+ const target = shallowRef()
15
+ const { focused } = useFocus(target)
16
+
17
+ watch(focused, (focused) => {
18
+ if (focused)
19
+ console.log('input element has been focused')
20
+ else console.log('input element has lost focus')
21
+ })
22
+ ```
23
+
24
+ ## Setting initial focus
25
+
26
+ To focus the element on its first render one can provide the `initialValue` option as `true`. This will trigger a `focus` event on the target element.
27
+
28
+ ```ts
29
+ import { useFocus } from '@vueuse/core'
30
+
31
+ const target = shallowRef()
32
+ const { focused } = useFocus(target, { initialValue: true })
33
+ ```
34
+
35
+ ## Change focus state
36
+
37
+ Changes of the `focused` reactive ref will automatically trigger `focus` and `blur` events for `true` and `false` values respectively. You can utilize this behavior to focus the target element as a result of another action (e.g. when a button click as shown below).
38
+
39
+ ```vue
40
+ <script setup lang="ts">
41
+ import { useFocus } from '@vueuse/core'
42
+ import { shallowRef } from 'vue'
43
+
44
+ const input = shallowRef()
45
+ const { focused } = useFocus(input)
46
+ </script>
47
+
48
+ <template>
49
+ <div>
50
+ <button type="button" @click="focused = true">
51
+ Click me to focus input below
52
+ </button>
53
+ <input ref="input" type="text">
54
+ </div>
55
+ </template>
56
+ ```
57
+
58
+ ## Type Declarations
59
+
60
+ ```ts
61
+ export interface UseFocusOptions extends ConfigurableWindow {
62
+ /**
63
+ * Initial value. If set true, then focus will be set on the target
64
+ *
65
+ * @default false
66
+ */
67
+ initialValue?: boolean
68
+ /**
69
+ * Replicate the :focus-visible behavior of CSS
70
+ *
71
+ * @default false
72
+ */
73
+ focusVisible?: boolean
74
+ /**
75
+ * Prevent scrolling to the element when it is focused.
76
+ *
77
+ * @default false
78
+ */
79
+ preventScroll?: boolean
80
+ }
81
+ export interface UseFocusReturn {
82
+ /**
83
+ * If read as true, then the element has focus. If read as false, then the element does not have focus
84
+ * If set to true, then the element will be focused. If set to false, the element will be blurred.
85
+ */
86
+ focused: WritableComputedRef<boolean>
87
+ }
88
+ /**
89
+ * Track or set the focus state of a DOM element.
90
+ *
91
+ * @see https://vueuse.org/useFocus
92
+ * @param target The target element for the focus and blur events.
93
+ * @param options
94
+ */
95
+ export declare function useFocus(
96
+ target: MaybeElementRef,
97
+ options?: UseFocusOptions,
98
+ ): UseFocusReturn
99
+ ```
@@ -0,0 +1,245 @@
1
+ ---
2
+ category: '@Integrations'
3
+ ---
4
+
5
+ # useFocusTrap
6
+
7
+ Reactive wrapper for [`focus-trap`](https://github.com/focus-trap/focus-trap).
8
+
9
+ For more information on what options can be passed, see [`createOptions`](https://github.com/focus-trap/focus-trap#createoptions) in the `focus-trap` documentation.
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ npm i focus-trap@^7
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ **Basic Usage**
20
+
21
+ ```vue
22
+ <script setup lang="ts">
23
+ import { useFocusTrap } from '@vueuse/integrations/useFocusTrap'
24
+ import { useTemplateRef } from 'vue'
25
+
26
+ const target = useTemplateRef('target')
27
+ const { hasFocus, activate, deactivate } = useFocusTrap(target)
28
+ </script>
29
+
30
+ <template>
31
+ <div>
32
+ <button @click="activate()">
33
+ Activate
34
+ </button>
35
+ <div ref="target">
36
+ <span>Has Focus: {{ hasFocus }}</span>
37
+ <input type="text">
38
+ <button @click="deactivate()">
39
+ Deactivate
40
+ </button>
41
+ </div>
42
+ </div>
43
+ </template>
44
+ ```
45
+
46
+ **Multiple Refs**
47
+
48
+ ```vue
49
+ <script setup lang="ts">
50
+ import { useFocusTrap } from '@vueuse/integrations/useFocusTrap'
51
+ import { useTemplateRef } from 'vue'
52
+
53
+ const targetOne = useTemplateRef('targetOne')
54
+ const targetTwo = useTemplateRef('targetTwo')
55
+ const { hasFocus, activate, deactivate } = useFocusTrap([targetOne, targetTwo])
56
+ </script>
57
+
58
+ <template>
59
+ <div>
60
+ <button @click="activate()">
61
+ Activate
62
+ </button>
63
+ <div ref="targetOne">
64
+ <span>Has Focus: {{ hasFocus }}</span>
65
+ <input type="text">
66
+ </div>
67
+ ...
68
+ <div ref="targetTow">
69
+ <p>Another target here</p>
70
+ <input type="text">
71
+ <button @click="deactivate()">
72
+ Deactivate
73
+ </button>
74
+ </div>
75
+ </div>
76
+ </template>
77
+ ```
78
+
79
+ **Dynamic Focus Target**
80
+
81
+ ```vue
82
+ <script setup lang="ts">
83
+ import { useFocusTrap } from '@vueuse/integrations/useFocusTrap'
84
+ import { computed, shallowRef, useTemplateRef } from 'vue'
85
+
86
+ const left = useTemplateRef('left')
87
+ const right = useTemplateRef('right')
88
+ const currentRef = shallowRef<'left' | 'right'>('left')
89
+
90
+ const target = computed(() =>
91
+ currentRef.value === 'left'
92
+ ? left
93
+ : currentRef.value === 'right'
94
+ ? right
95
+ : null,
96
+ )
97
+
98
+ const { activate } = useFocusTrap(target)
99
+ </script>
100
+
101
+ <template>
102
+ <div>
103
+ <div ref="left" class="left">
104
+ ...
105
+ </div>
106
+ <div ref="right" class="right">
107
+ ...
108
+ </div>
109
+ </div>
110
+ </template>
111
+ ```
112
+
113
+ **Automatically Focus**
114
+
115
+ ```vue
116
+ <script setup lang="ts">
117
+ import { useFocusTrap } from '@vueuse/integrations/useFocusTrap'
118
+ import { useTemplateRef } from 'vue'
119
+
120
+ const target = useTemplateRef('target')
121
+ const { hasFocus, activate, deactivate } = useFocusTrap(target, { immediate: true })
122
+ </script>
123
+
124
+ <template>
125
+ <div>
126
+ <div ref="target">
127
+ ...
128
+ </div>
129
+ </div>
130
+ </template>
131
+ ```
132
+
133
+ **Conditional Rendering**
134
+
135
+ This function can't properly activate focus on elements with conditional rendering using `v-if`. This is because they do not exist in the DOM at the time of the focus activation. To solve this you need to activate on the next tick.
136
+
137
+ ```vue
138
+ <script setup lang="ts">
139
+ import { useFocusTrap } from '@vueuse/integrations/useFocusTrap'
140
+ import { nextTick, useTemplateRef } from 'vue'
141
+
142
+ const target = useTemplateRef('target')
143
+ const { activate, deactivate } = useFocusTrap(target, { immediate: true })
144
+
145
+ const show = ref(false)
146
+
147
+ async function reveal() {
148
+ show.value = true
149
+
150
+ await nextTick()
151
+ activate()
152
+ }
153
+ </script>
154
+
155
+ <template>
156
+ <div>
157
+ <div v-if="show" ref="target">
158
+ ...
159
+ </div>
160
+
161
+ <button @click="reveal">
162
+ Reveal and Focus
163
+ </button>
164
+ </div>
165
+ </template>
166
+ ```
167
+
168
+ ## Using Component
169
+
170
+ With the `UseFocusTrap` component, Focus Trap will be activated automatically on mounting this component and deactivated on unmount.
171
+
172
+ ```vue
173
+ <script setup lang="ts">
174
+ import { UseFocusTrap } from '@vueuse/integrations/useFocusTrap/component'
175
+ import { shallowRef } from 'vue'
176
+
177
+ const show = shallowRef(false)
178
+ </script>
179
+
180
+ <template>
181
+ <UseFocusTrap v-if="show" :options="{ immediate: true }">
182
+ <div class="modal">
183
+ ...
184
+ </div>
185
+ </UseFocusTrap>
186
+ </template>
187
+ ```
188
+
189
+ ## Type Declarations
190
+
191
+ ```ts
192
+ export interface UseFocusTrapOptions extends Options {
193
+ /**
194
+ * Immediately activate the trap
195
+ */
196
+ immediate?: boolean
197
+ }
198
+ export interface UseFocusTrapReturn {
199
+ /**
200
+ * Indicates if the focus trap is currently active
201
+ */
202
+ hasFocus: ShallowRef<boolean>
203
+ /**
204
+ * Indicates if the focus trap is currently paused
205
+ */
206
+ isPaused: ShallowRef<boolean>
207
+ /**
208
+ * Activate the focus trap
209
+ *
210
+ * @see https://github.com/focus-trap/focus-trap#trapactivateactivateoptions
211
+ * @param opts Activate focus trap options
212
+ */
213
+ activate: (opts?: ActivateOptions) => void
214
+ /**
215
+ * Deactivate the focus trap
216
+ *
217
+ * @see https://github.com/focus-trap/focus-trap#trapdeactivatedeactivateoptions
218
+ * @param opts Deactivate focus trap options
219
+ */
220
+ deactivate: (opts?: DeactivateOptions) => void
221
+ /**
222
+ * Pause the focus trap
223
+ *
224
+ * @see https://github.com/focus-trap/focus-trap#trappause
225
+ */
226
+ pause: Fn
227
+ /**
228
+ * Unpauses the focus trap
229
+ *
230
+ * @see https://github.com/focus-trap/focus-trap#trapunpause
231
+ */
232
+ unpause: Fn
233
+ }
234
+ /**
235
+ * Reactive focus-trap
236
+ *
237
+ * @see https://vueuse.org/useFocusTrap
238
+ */
239
+ export declare function useFocusTrap(
240
+ target: MaybeRefOrGetter<
241
+ Arrayable<MaybeRefOrGetter<string> | MaybeComputedElementRef>
242
+ >,
243
+ options?: UseFocusTrapOptions,
244
+ ): UseFocusTrapReturn
245
+ ```
@@ -0,0 +1,57 @@
1
+ ---
2
+ category: Sensors
3
+ ---
4
+
5
+ # useFocusWithin
6
+
7
+ Reactive utility to track if an element or one of its decendants has focus. It is meant to match the behavior of the `:focus-within` CSS pseudo-class. A common use case would be on a form element to see if any of its inputs currently have focus.
8
+
9
+ ## Basic Usage
10
+
11
+ ```vue
12
+ <script setup lang="ts">
13
+ import { useFocusWithin } from '@vueuse/core'
14
+ import { ref, watch } from 'vue'
15
+
16
+ const target = ref()
17
+ const { focused } = useFocusWithin(target)
18
+
19
+ watch(focused, (focused) => {
20
+ if (focused)
21
+ console.log('Target contains the focused element')
22
+ else
23
+ console.log('Target does NOT contain the focused element')
24
+ })
25
+ </script>
26
+
27
+ <template>
28
+ <form ref="target">
29
+ <input type="text" placeholder="First Name">
30
+ <input type="text" placeholder="Last Name">
31
+ <input type="text" placeholder="Email">
32
+ <input type="text" placeholder="Password">
33
+ </form>
34
+ </template>
35
+ ```
36
+
37
+ ## Type Declarations
38
+
39
+ ```ts
40
+ export interface UseFocusWithinReturn {
41
+ /**
42
+ * True if the element or any of its descendants are focused
43
+ */
44
+ focused: ComputedRef<boolean>
45
+ }
46
+ /**
47
+ * Track if focus is contained within the target element
48
+ *
49
+ * @see https://vueuse.org/useFocusWithin
50
+ * @param target The target element to track
51
+ * @param options Focus within options
52
+ */
53
+ export declare function useFocusWithin(
54
+ target: MaybeElementRef,
55
+ options?: ConfigurableWindow,
56
+ ): UseFocusWithinReturn
57
+ ```