ivue 1.2.2 → 1.2.4

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 (66) hide show
  1. package/dist/index.es.js +1 -1
  2. package/dist/index.umd.js +1 -1
  3. package/dist/src/ivue.d.ts +4 -4
  4. package/docs/docs/.vitepress/config.ts +8 -2
  5. package/docs/docs/.vitepress/dist/404.html +2 -2
  6. package/docs/docs/.vitepress/dist/api/ivue.html +4 -4
  7. package/docs/docs/.vitepress/dist/api/propsWithDefaults.html +4 -4
  8. package/docs/docs/.vitepress/dist/assets/{app.2nR_jJ6K.js → app.D_gfERxK.js} +1 -1
  9. package/docs/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.ChoKIVFM.js +1 -0
  10. package/docs/docs/.vitepress/dist/assets/chunks/{VPLocalSearchBox.DkPjtbh1.js → VPLocalSearchBox.BzoUb0RV.js} +1 -1
  11. package/docs/docs/.vitepress/dist/assets/chunks/index.es.D191XnPH.js +1 -0
  12. package/docs/docs/.vitepress/dist/assets/chunks/{theme.DoTp8yA-.js → theme.CzkYYfOm.js} +2 -2
  13. package/docs/docs/.vitepress/dist/assets/pages_api.md.bOEtTo1m.js +1 -0
  14. package/docs/docs/.vitepress/dist/assets/pages_api.md.bOEtTo1m.lean.js +1 -0
  15. package/docs/docs/.vitepress/dist/assets/{pages_browse-code.md.D-gTrMhG.js → pages_browse-code.md.BhmYOQjE.js} +2 -2
  16. package/docs/docs/.vitepress/dist/assets/{pages_getting-started.md.COvbcFGT.js → pages_getting-started.md.C8UElRkE.js} +2 -2
  17. package/docs/docs/.vitepress/dist/assets/{pages_guidelines.md.BI1PexCc.lean.js → pages_guidelines.md.C2kOmJCV.js} +18 -18
  18. package/docs/docs/.vitepress/dist/assets/{pages_guidelines.md.BI1PexCc.js → pages_guidelines.md.C2kOmJCV.lean.js} +18 -18
  19. package/docs/docs/.vitepress/dist/assets/{pages_how-it-works.md.NImDvDby.js → pages_how-it-works.md.D6PSCfuz.js} +4 -4
  20. package/docs/docs/.vitepress/dist/assets/{pages_how-it-works.md.NImDvDby.lean.js → pages_how-it-works.md.D6PSCfuz.lean.js} +4 -4
  21. package/docs/docs/.vitepress/dist/assets/pages_introduction.md.MtnX0UvH.js +1 -0
  22. package/docs/docs/.vitepress/dist/assets/pages_introduction.md.MtnX0UvH.lean.js +1 -0
  23. package/docs/docs/.vitepress/dist/assets/{pages_usage.md.DRJXyExt.js → pages_usage.md.Dw6OzuOj.js} +105 -73
  24. package/docs/docs/.vitepress/dist/assets/{pages_usage.md.DRJXyExt.lean.js → pages_usage.md.Dw6OzuOj.lean.js} +105 -73
  25. package/docs/docs/.vitepress/dist/hashmap.json +1 -1
  26. package/docs/docs/.vitepress/dist/index.html +4 -4
  27. package/docs/docs/.vitepress/dist/pages/advanced-usage.html +4 -4
  28. package/docs/docs/.vitepress/dist/pages/api.html +7 -7
  29. package/docs/docs/.vitepress/dist/pages/browse-code.html +6 -6
  30. package/docs/docs/.vitepress/dist/pages/getting-started.html +7 -7
  31. package/docs/docs/.vitepress/dist/pages/guidelines.html +23 -23
  32. package/docs/docs/.vitepress/dist/pages/how-it-works.html +7 -7
  33. package/docs/docs/.vitepress/dist/pages/how-its-made.html +4 -4
  34. package/docs/docs/.vitepress/dist/pages/introduction.html +5 -5
  35. package/docs/docs/.vitepress/dist/pages/usage.html +110 -78
  36. package/docs/docs/components/usage/CounterBasic.vue +3 -1
  37. package/docs/docs/components/usage/CounterComposables.vue +5 -3
  38. package/docs/docs/components/usage/CounterComposablesDestructuring.vue +15 -11
  39. package/docs/docs/components/usage/CounterComposablesIvue.vue +7 -3
  40. package/docs/docs/components/usage/CounterComposablesIvueDestructuring.vue +4 -2
  41. package/docs/docs/components/usage/CounterComputeds.vue +3 -1
  42. package/docs/docs/components/usage/CounterComputedsDisabled.vue +6 -4
  43. package/docs/docs/components/usage/CounterExternalRefs.vue +4 -2
  44. package/docs/docs/components/usage/CounterInsideComposables.vue +3 -1
  45. package/docs/docs/components/usage/CounterInternalRefs.vue +3 -1
  46. package/docs/docs/components/usage/CounterLifecycleHooks.vue +3 -1
  47. package/docs/docs/components/usage/CounterWatch.vue +3 -1
  48. package/docs/docs/components/usage/CounterWithProps.vue +4 -2
  49. package/docs/docs/components/usage/CounterWithPropsAndEmits.vue +3 -1
  50. package/docs/docs/components/usage/classes/CustomMouse.ts +2 -2
  51. package/docs/docs/pages/api.md +17 -6
  52. package/docs/docs/pages/guidelines.md +9 -9
  53. package/docs/docs/pages/how-it-works.md +0 -20
  54. package/docs/docs/pages/introduction.md +21 -7
  55. package/docs/docs/pages/usage.md +7 -7
  56. package/docs/package.json +1 -1
  57. package/package.json +1 -1
  58. package/src/ivue.ts +8 -8
  59. package/docs/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.yrRWVEzw.js +0 -1
  60. package/docs/docs/.vitepress/dist/assets/chunks/index.es.CUL6WvM-.js +0 -1
  61. package/docs/docs/.vitepress/dist/assets/pages_api.md.CElVfYwg.js +0 -1
  62. package/docs/docs/.vitepress/dist/assets/pages_api.md.CElVfYwg.lean.js +0 -1
  63. package/docs/docs/.vitepress/dist/assets/pages_introduction.md.CCkiQtfX.js +0 -1
  64. package/docs/docs/.vitepress/dist/assets/pages_introduction.md.CCkiQtfX.lean.js +0 -1
  65. /package/docs/docs/.vitepress/dist/assets/{pages_browse-code.md.D-gTrMhG.lean.js → pages_browse-code.md.BhmYOQjE.lean.js} +0 -0
  66. /package/docs/docs/.vitepress/dist/assets/{pages_getting-started.md.COvbcFGT.lean.js → pages_getting-started.md.C8UElRkE.lean.js} +0 -0
@@ -8,23 +8,23 @@
8
8
  <meta name="generator" content="VitePress v1.3.2">
9
9
  <link rel="preload stylesheet" href="/ivue/assets/style.Dtxde_a0.css" as="style">
10
10
 
11
- <script type="module" src="/ivue/assets/app.2nR_jJ6K.js"></script>
11
+ <script type="module" src="/ivue/assets/app.D_gfERxK.js"></script>
12
12
  <link rel="preload" href="/ivue/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
13
- <link rel="modulepreload" href="/ivue/assets/chunks/theme.DoTp8yA-.js">
13
+ <link rel="modulepreload" href="/ivue/assets/chunks/theme.CzkYYfOm.js">
14
14
  <link rel="modulepreload" href="/ivue/assets/chunks/framework.CvEKxEoK.js">
15
- <link rel="modulepreload" href="/ivue/assets/pages_api.md.CElVfYwg.lean.js">
15
+ <link rel="modulepreload" href="/ivue/assets/pages_api.md.bOEtTo1m.lean.js">
16
16
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
17
17
  <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
18
18
  </head>
19
19
  <body>
20
- <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-ab179fa1><a class="title" href="/ivue/" data-v-ab179fa1><!--[--><!--]--><!----><span data-v-ab179fa1>ivue ∞ Infinite Vue</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><!----><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/infinite-system/ivue" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><a class="VPSocialLink no-icon" href="https://x.com/evgenykalash" aria-label="twitter" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-twitter" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/infinite-system/ivue" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><a class="VPSocialLink no-icon" href="https://x.com/evgenykalash" aria-label="twitter" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-twitter" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Guide</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/introduction.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>What is ivue?</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/how-it-works.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>How it works?</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/getting-started.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Getting Started</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Usage</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#basic-usage" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Basic Usage</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-props" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Props</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-emits" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Emits</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-refs" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Refs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-define-expose" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Define Expose</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-composables" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Composables</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-inside-composables" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Inside Composables</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-computeds" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Computeds</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-watch" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Watch</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-lifecycle-hooks" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Lifecycle Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-pinia-store" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Pinia Store</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-quasar-framework" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Quasar Framework</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Guidelines</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/guidelines.html#dos-and-don-ts" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Dos and Don'ts</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/guidelines.html#constructor-vs-init" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>constructor() vs .init()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/guidelines.html#unwrapping-refs" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Unwrapping Refs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/guidelines.html#naming-conventions" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Naming Conventions</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Advanced Usage</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-props-defaults" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Props Defaults</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-props" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Props</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-emits" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Emits</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-slots" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Slots</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-classes" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Classes</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-components" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Components</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b7550ba0><!----><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>API</p><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Core Functions</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#ivue" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>ivue()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#iref" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>iref()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#iuse" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>iuse()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#init" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>.init()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#torefs" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>.toRefs()</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Utility Functions</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#propswithdefaults" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>propsWithDefaults()</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Utility Types</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#extractpropdefaulttypes" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>ExtractPropDefaultTypes</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#extractemittypes" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>ExtractEmitTypes</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#extendslots" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>ExtendSlots</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#UseComposable" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>UseComposable</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Source Code</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/browse-code.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Browse Code</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _ivue_pages_api" data-v-39a288b8><div><h1 id="api" tabindex="-1">API <a class="header-anchor" href="#api" aria-label="Permalink to &quot;API&quot;">​</a></h1><h2 id="core-functions" tabindex="-1">Core Functions <a class="header-anchor" href="#core-functions" aria-label="Permalink to &quot;Core Functions&quot;">​</a></h2><h3 id="ivue" tabindex="-1"><code>ivue()</code> <a class="header-anchor" href="#ivue" aria-label="Permalink to &quot;`ivue()`&quot;">​</a></h3><hr><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ivue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> extends</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> AnyClass</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;(</span></span>
20
+ <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-ab179fa1><a class="title" href="/ivue/" data-v-ab179fa1><!--[--><!--]--><!----><span data-v-ab179fa1>ivue ∞ Infinite Vue</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><!----><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/infinite-system/ivue" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><a class="VPSocialLink no-icon" href="https://x.com/evgenykalash" aria-label="twitter" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-twitter" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/infinite-system/ivue" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><a class="VPSocialLink no-icon" href="https://x.com/evgenykalash" aria-label="twitter" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-twitter" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Guide</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/introduction.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>What is ivue?</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/how-it-works.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>How it works?</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/getting-started.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Getting Started</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Usage</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#basic-usage" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Basic Usage</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-props" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Props</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-emits" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Emits</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-refs" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Refs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-define-expose" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Define Expose</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-composables" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Composables</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-inside-composables" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Inside Composables</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-computeds" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Computeds</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-watch" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Watch</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-lifecycle-hooks" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Lifecycle Hooks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-pinia-store" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Pinia Store</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/usage.html#using-quasar-framework" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Using Quasar Framework</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Guidelines</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/guidelines.html#dos-and-don-ts" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Dos and Don'ts</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/guidelines.html#constructor-vs-init" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>.constructor() vs .init()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/guidelines.html#unwrapping-refs" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Unwrapping Refs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/guidelines.html#naming-conventions" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Naming Conventions</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Advanced Usage</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-props-defaults" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Props Defaults</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-props" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Props</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-emits" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Emits</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-slots" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Slots</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-classes" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Classes</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/advanced-usage.html#extend-components" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Extend Components</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b7550ba0><!----><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><p class="text" data-v-b7550ba0>API</p><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Core Functions</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#ivue" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>ivue()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#iref" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>iref()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#iuse" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>iuse()</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Core Methods</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#constructor" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>.constructor()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#init" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>.init()</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#torefs" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>.toRefs()</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Utility Functions</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#propswithdefaults" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>propsWithDefaults()</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Utility Types</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#extractpropdefaulttypes" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>ExtractPropDefaultTypes</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#extractemittypes" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>ExtractEmitTypes</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/api.html#extendslots" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>ExtendSlots</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 collapsible" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>Source Code</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-b7550ba0><span class="vpi-chevron-right caret-icon" data-v-b7550ba0></span></div></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/ivue/pages/browse-code.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Browse Code</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _ivue_pages_api" data-v-39a288b8><div><h1 id="api" tabindex="-1">API <a class="header-anchor" href="#api" aria-label="Permalink to &quot;API&quot;">​</a></h1><h2 id="core-functions" tabindex="-1">Core Functions <a class="header-anchor" href="#core-functions" aria-label="Permalink to &quot;Core Functions&quot;">​</a></h2><h3 id="ivue" tabindex="-1"><code>ivue()</code> <a class="header-anchor" href="#ivue" aria-label="Permalink to &quot;`ivue()`&quot;">​</a></h3><hr><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ivue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> extends</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> AnyClass</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;(</span></span>
21
21
  <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> className</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
22
22
  <span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> ...</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">args</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> InferredArgs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;</span></span>
23
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> IVue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;;</span></span></code></pre></div><p>Core <code>ivue(className, ...args)</code> initializer is able to infer and validate the constrcutor argument types of AnyClass and passes those arguments to the constructor of <code>AnyClass</code> internally.</p><p><code>ivue(className, arg1, arg2, arg3...)</code> allows you to pass any number of arguments into the class <code>constructor(arg1, arg2, arg3...)</code></p><p><code>ivue()</code> initializer function returns an extended Vue 3 <code>reactive()</code> object in which getters and setters are internally converted to computeds and adds <code>.toRefs()</code> method to the created object. Computeds auto-unwrap themselves when they are accessed as a reactive object property, so the <code>.value</code> properties and computeds get flattened in the resulting object and do not require <code>.value</code> to be accessed.</p><p><code>ivue()</code> replicates native JavaScript / TypeScript class implementation by extending descriptors (getters and setters) up the whole prototype ancestors chain thus supporting classical inheritance.</p><p><strong>Returns:</strong> <code>&lt;IVue&lt;T&gt;&gt;</code> or <code>ivue</code> <code>reactive()</code> object of an <code>AnyClass</code> class with flattened (de-Refed) <code>Refs</code> and <code>ComputedRefs</code> as properties.</p><h3 id="iref" tabindex="-1"><code>iref()</code> <a class="header-anchor" href="#iref" aria-label="Permalink to &quot;`iref()`&quot;">​</a></h3><p>Create a regular <code>vue</code> Ref but cast the type to the internal unreactive type, because properties auto-unwrap in <code>reactive()</code> object that is being created by <code>ivue</code> upon initialization.</p><h3 id="iuse" tabindex="-1"><code>iuse()</code> <a class="header-anchor" href="#iuse" aria-label="Permalink to &quot;`iuse()`&quot;">​</a></h3><p>This function unwraps the type of any composable return to the bare values without <code>.value</code>, because properties auto-unwrap in <code>reactive()</code> object that is being created by <code>ivue</code> upon initialization.</p><h3 id="init" tabindex="-1"><code>.init()</code> <a class="header-anchor" href="#init" aria-label="Permalink to &quot;`.init()`&quot;">​</a></h3><hr><p><code>.init()</code> method is auto-run on <code>ivue()</code> initialization after <code>constructor()</code> is run. <code>.init()</code> has access to the reactive state of the object via <code>this</code>.</p><div class="warning custom-block"><p class="custom-block-title">NOTICE</p><p><code>.init()</code> method has no arguments and you should never need to run this method manually.</p></div><div class="tip custom-block"><p class="custom-block-title">NEED ASYNC/AWAIT?</p><p>Use <code>async init()</code> if you need <code>await</code> functionality.</p></div><p><strong>Returns:</strong> <code>void | Promise&lt;void&gt;</code></p><h3 id="torefs" tabindex="-1"><code>.toRefs()</code> <a class="header-anchor" href="#torefs" aria-label="Permalink to &quot;`.toRefs()`&quot;">​</a></h3><hr><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> toRefs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">props</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">keyof</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> InstanceType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;)[])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> IVueRefs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">InstanceType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;&gt;;</span></span></code></pre></div><p>Converts an <code>ivue</code> object to a Vue 3 Composable with nested refs.</p><div class="tip custom-block"><p class="custom-block-title">You can pass the name of the properties to <code>.toRefs(properties)</code></p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">width</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">height</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ivue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(Box).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toRefs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;width&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;height&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]);</span></span></code></pre></div><p>This improves performance if <code>box</code> has many other properties that we do not need.</p></div><p><strong>Returns:</strong> <code>IVueRefs&lt;InstanceType&lt;T&gt;&gt;</code></p><h2 id="utility-functions" tabindex="-1">Utility Functions <a class="header-anchor" href="#utility-functions" aria-label="Permalink to &quot;Utility Functions&quot;">​</a></h2><h3 id="propswithdefaults" tabindex="-1"><code>propsWithDefaults()</code> <a class="header-anchor" href="#propswithdefaults" aria-label="Permalink to &quot;`propsWithDefaults()`&quot;">​</a></h3><hr><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> propsWithDefaults</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> extends</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> VuePropsObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;(</span></span>
23
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> IVue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;;</span></span></code></pre></div><p>Core <code>ivue(className, ...args)</code> initializer is able to infer and validate the constrcutor argument types of AnyClass and passes those arguments to the constructor of <code>AnyClass</code> internally.</p><p><code>ivue(className, arg1, arg2, arg3...)</code> allows you to pass any number of arguments into the class <code>constructor(arg1, arg2, arg3...)</code></p><p><code>ivue()</code> initializer function returns an extended Vue 3 <code>reactive()</code> object in which getters and setters are internally converted to computeds and adds <code>.toRefs()</code> method to the created object. Computeds auto-unwrap themselves when they are accessed as a reactive object property, so the <code>.value</code> properties and computeds get flattened in the resulting object and do not require <code>.value</code> to be accessed.</p><p><code>ivue()</code> replicates native JavaScript / TypeScript class implementation by extending descriptors (getters and setters) up the whole prototype ancestors chain thus supporting classical inheritance.</p><p><strong>Returns:</strong> <code>&lt;IVue&lt;T&gt;&gt;</code> or <code>ivue</code> <code>reactive()</code> object of an <code>AnyClass</code> class with flattened (de-Refed) <code>Refs</code> and <code>ComputedRefs</code> as properties.</p><h3 id="iref" tabindex="-1"><code>iref()</code> <a class="header-anchor" href="#iref" aria-label="Permalink to &quot;`iref()`&quot;">​</a></h3><p>Create a regular <code>vue</code> Ref but cast the type to the internal unreactive type, because properties auto-unwrap in <code>reactive()</code> object that is being created by <code>ivue</code> upon initialization.</p><h3 id="iuse" tabindex="-1"><code>iuse()</code> <a class="header-anchor" href="#iuse" aria-label="Permalink to &quot;`iuse()`&quot;">​</a></h3><p>This function unwraps the type of any composable return to the bare values without <code>.value</code>, because properties auto-unwrap in <code>reactive()</code> object that is being created by <code>ivue</code> upon initialization.</p><h2 id="core-methods" tabindex="-1">Core Methods <a class="header-anchor" href="#core-methods" aria-label="Permalink to &quot;Core Methods&quot;">​</a></h2><h3 id="constructor" tabindex="-1"><code>.constructor()</code> <a class="header-anchor" href="#constructor" aria-label="Permalink to &quot;`.constructor()`&quot;">​</a></h3><p>Native Class API <code>.constructor()</code> is mainly used to assign and cast Vue 3 Refs back to their original types. <code>.constructor()</code> should not be used to work with reactive state. Use <code>.init()</code> for reactive purposes.</p><h3 id="init" tabindex="-1"><code>.init()</code> <a class="header-anchor" href="#init" aria-label="Permalink to &quot;`.init()`&quot;">​</a></h3><hr><p><code>.init()</code> method is auto-run on <code>ivue()</code> initialization after <code>.constructor()</code> is run. <code>.init()</code> has access to the reactive state of the object via <code>this</code>.</p><div class="warning custom-block"><p class="custom-block-title">NOTICE</p><p><code>.init()</code> method has no arguments and you should never need to run this method manually.</p></div><div class="tip custom-block"><p class="custom-block-title">NEED ASYNC/AWAIT?</p><p>Use <code>async init()</code> if you need <code>await</code> functionality.</p></div><p><strong>Returns:</strong> <code>void | Promise&lt;void&gt;</code></p><h3 id="torefs" tabindex="-1"><code>.toRefs()</code> <a class="header-anchor" href="#torefs" aria-label="Permalink to &quot;`.toRefs()`&quot;">​</a></h3><hr><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> toRefs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;">props</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">?:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> (</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">keyof</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> InstanceType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;)[])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> IVueRefs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">InstanceType</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;&gt;;</span></span></code></pre></div><p>Converts an <code>ivue</code> object to a Vue 3 Composable with nested refs.</p><div class="tip custom-block"><p class="custom-block-title">You can pass the name of the properties to <code>.toRefs(properties)</code></p><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">width</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">height</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> ivue</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(Box).</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">toRefs</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;width&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;height&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]);</span></span></code></pre></div><p>This improves performance if <code>box</code> has many other properties that we do not need.</p></div><p><strong>Returns:</strong> <code>IVueRefs&lt;InstanceType&lt;T&gt;&gt;</code></p><h2 id="core-types" tabindex="-1">Core Types <a class="header-anchor" href="#core-types" aria-label="Permalink to &quot;Core Types&quot;">​</a></h2><h3 id="ivue-1" tabindex="-1"><code>IVue</code> <a class="header-anchor" href="#ivue-1" aria-label="Permalink to &quot;`IVue`&quot;">​</a></h3><h3 id="usecomposable" tabindex="-1"><code>UseComposable</code> <a class="header-anchor" href="#usecomposable" aria-label="Permalink to &quot;`UseComposable`&quot;">​</a></h3><h2 id="utility-functions" tabindex="-1">Utility Functions <a class="header-anchor" href="#utility-functions" aria-label="Permalink to &quot;Utility Functions&quot;">​</a></h2><h3 id="propswithdefaults" tabindex="-1"><code>propsWithDefaults()</code> <a class="header-anchor" href="#propswithdefaults" aria-label="Permalink to &quot;`propsWithDefaults()`&quot;">​</a></h3><hr><div class="language-ts vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> propsWithDefaults</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> extends</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> VuePropsObject</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;(</span></span>
24
24
  <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> defaults</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> Record</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">any</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;,</span></span>
25
25
  <span class="line"><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70;"> typedProps</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> T</span></span>
26
- <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> VuePropsWithDefaults</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;;</span></span></code></pre></div><p>Combines statically written defaults object with the runtime type definition of Vue 3 props.</p><p><strong>Returns:</strong> <code>VuePropsWithDefaults&lt;T&gt;</code></p><h2 id="utility-types" tabindex="-1">Utility Types <a class="header-anchor" href="#utility-types" aria-label="Permalink to &quot;Utility Types&quot;">​</a></h2><h3 id="extractpropdefaulttypes" tabindex="-1"><code>ExtractPropDefaultTypes</code> <a class="header-anchor" href="#extractpropdefaulttypes" aria-label="Permalink to &quot;`ExtractPropDefaultTypes`&quot;">​</a></h3><p>Extracts types of the default types definition. This type can be used to validate against the actual defaults definition to make sure both definitions are in sync.</p><hr><h3 id="extractemittypes" tabindex="-1"><code>ExtractEmitTypes</code> <a class="header-anchor" href="#extractemittypes" aria-label="Permalink to &quot;`ExtractEmitTypes`&quot;">​</a></h3><hr><p>Extracts types of a runtime emits declaration.</p><h3 id="extendslots" tabindex="-1"><code>ExtendSlots</code> <a class="header-anchor" href="#extendslots" aria-label="Permalink to &quot;`ExtendSlots`&quot;">​</a></h3><hr><p>Allows you to extend slots of a given slot interface.</p><h3 id="usecomposable" tabindex="-1"><code>UseComposable</code> <a class="header-anchor" href="#usecomposable" aria-label="Permalink to &quot;`UseComposable`&quot;">​</a></h3><hr><p>Extracts and unwraps (de-Refs) the real types of Vue 3 composable definition to make it compatible with <code>ivue</code>.</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><!----></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/ivue/pages/introduction.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>What is ivue?</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
27
- <script>window.__VP_HASH_MAP__=JSON.parse("{\"api_ivue.md\":\"DyFbv52x\",\"api_propswithdefaults.md\":\"C6C7ZBZl\",\"index.md\":\"D-9TpgnJ\",\"pages_advanced-usage.md\":\"DsU0E8Oi\",\"pages_api.md\":\"CElVfYwg\",\"pages_browse-code.md\":\"D-gTrMhG\",\"pages_getting-started.md\":\"COvbcFGT\",\"pages_guidelines.md\":\"BI1PexCc\",\"pages_how-it-works.md\":\"NImDvDby\",\"pages_how-its-made.md\":\"CCol99CD\",\"pages_introduction.md\":\"CCkiQtfX\",\"pages_usage.md\":\"DRJXyExt\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"VitePress\",\"titleTemplate\":\":title | Infinite Vue ∞ ivue\",\"description\":\"A VitePress site\",\"base\":\"/ivue/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"outline\":\"deep\",\"siteTitle\":\"ivue ∞ Infinite Vue\",\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/infinite-system/ivue\"},{\"icon\":\"twitter\",\"link\":\"https://x.com/evgenykalash\"}],\"search\":{\"provider\":\"local\"},\"sidebar\":[{\"collapsed\":false,\"text\":\"Guide\",\"items\":[{\"text\":\"What is ivue?\",\"link\":\"/pages/introduction\"},{\"text\":\"How it works?\",\"link\":\"/pages/how-it-works\"},{\"text\":\"Getting Started\",\"link\":\"/pages/getting-started\"}]},{\"collapsed\":false,\"text\":\"Usage\",\"items\":[{\"text\":\"Basic Usage\",\"link\":\"/pages/usage#basic-usage\"},{\"text\":\"Using Props\",\"link\":\"/pages/usage#using-props\"},{\"text\":\"Using Emits\",\"link\":\"/pages/usage#using-emits\"},{\"text\":\"Using Refs\",\"link\":\"/pages/usage#using-refs\"},{\"text\":\"Using Define Expose\",\"link\":\"/pages/usage#using-define-expose\"},{\"text\":\"Using Composables\",\"link\":\"/pages/usage#using-composables\"},{\"text\":\"Using Inside Composables\",\"link\":\"/pages/usage#using-inside-composables\"},{\"text\":\"Using Computeds\",\"link\":\"/pages/usage#using-computeds\"},{\"text\":\"Using Watch\",\"link\":\"/pages/usage#using-watch\"},{\"text\":\"Using Lifecycle Hooks\",\"link\":\"/pages/usage#using-lifecycle-hooks\"},{\"text\":\"Using Pinia Store\",\"link\":\"/pages/usage#using-pinia-store\"},{\"text\":\"Using Quasar Framework\",\"link\":\"/pages/usage#using-quasar-framework\"}]},{\"collapsed\":false,\"text\":\"Guidelines\",\"items\":[{\"text\":\"Dos and Don'ts\",\"link\":\"/pages/guidelines#dos-and-don-ts\"},{\"text\":\"constructor() vs .init()\",\"link\":\"/pages/guidelines#constructor-vs-init\"},{\"text\":\"Unwrapping Refs\",\"link\":\"/pages/guidelines#unwrapping-refs\"},{\"text\":\"Naming Conventions\",\"link\":\"/pages/guidelines#naming-conventions\"}]},{\"collapsed\":false,\"text\":\"Advanced Usage\",\"items\":[{\"text\":\"Extend Props Defaults\",\"link\":\"/pages/advanced-usage#extend-props-defaults\"},{\"text\":\"Extend Props\",\"link\":\"/pages/advanced-usage#extend-props\"},{\"text\":\"Extend Emits\",\"link\":\"/pages/advanced-usage#extend-emits\"},{\"text\":\"Extend Slots\",\"link\":\"/pages/advanced-usage#extend-slots\"},{\"text\":\"Extend Classes\",\"link\":\"/pages/advanced-usage#extend-classes\"},{\"text\":\"Extend Components\",\"link\":\"/pages/advanced-usage#extend-components\"}]},{\"text\":\"API\"},{\"collapsed\":false,\"text\":\"Core Functions\",\"items\":[{\"text\":\"ivue()\",\"link\":\"/pages/api#ivue\"},{\"text\":\"iref()\",\"link\":\"/pages/api#iref\"},{\"text\":\"iuse()\",\"link\":\"/pages/api#iuse\"},{\"text\":\".init()\",\"link\":\"/pages/api#init\"},{\"text\":\".toRefs()\",\"link\":\"/pages/api#torefs\"}]},{\"collapsed\":false,\"text\":\"Utility Functions\",\"items\":[{\"text\":\"propsWithDefaults()\",\"link\":\"/pages/api#propswithdefaults\"}]},{\"collapsed\":false,\"text\":\"Utility Types\",\"items\":[{\"text\":\"ExtractPropDefaultTypes\",\"link\":\"/pages/api#extractpropdefaulttypes\"},{\"text\":\"ExtractEmitTypes\",\"link\":\"/pages/api#extractemittypes\"},{\"text\":\"ExtendSlots\",\"link\":\"/pages/api#extendslots\"},{\"text\":\"UseComposable\",\"link\":\"/pages/api#UseComposable\"}]},{\"collapsed\":false,\"text\":\"Source Code\",\"items\":[{\"text\":\"Browse Code\",\"link\":\"/pages/browse-code\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
26
+ <span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> VuePropsWithDefaults</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">&gt;;</span></span></code></pre></div><p>Combines statically written defaults object with the runtime type definition of Vue 3 props.</p><p><strong>Returns:</strong> <code>VuePropsWithDefaults&lt;T&gt;</code></p><h2 id="utility-types" tabindex="-1">Utility Types <a class="header-anchor" href="#utility-types" aria-label="Permalink to &quot;Utility Types&quot;">​</a></h2><hr><p>Extracts and unwraps (de-Refs) the real types of Vue 3 composable definition to make it compatible with <code>ivue</code>.</p><h3 id="extractpropdefaulttypes" tabindex="-1"><code>ExtractPropDefaultTypes</code> <a class="header-anchor" href="#extractpropdefaulttypes" aria-label="Permalink to &quot;`ExtractPropDefaultTypes`&quot;">​</a></h3><p>Extracts types of the default types definition. This type can be used to validate against the actual defaults definition to make sure both definitions are in sync.</p><hr><h3 id="extractemittypes" tabindex="-1"><code>ExtractEmitTypes</code> <a class="header-anchor" href="#extractemittypes" aria-label="Permalink to &quot;`ExtractEmitTypes`&quot;">​</a></h3><hr><p>Extracts types of a runtime emits declaration.</p><h3 id="extendslots" tabindex="-1"><code>ExtendSlots</code> <a class="header-anchor" href="#extendslots" aria-label="Permalink to &quot;`ExtendSlots`&quot;">​</a></h3><hr><p>Allows you to extend slots of a given slot interface.</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><!----></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/ivue/pages/introduction.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>What is ivue?</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></div></div>
27
+ <script>window.__VP_HASH_MAP__=JSON.parse("{\"api_ivue.md\":\"DyFbv52x\",\"api_propswithdefaults.md\":\"C6C7ZBZl\",\"index.md\":\"D-9TpgnJ\",\"pages_advanced-usage.md\":\"DsU0E8Oi\",\"pages_api.md\":\"bOEtTo1m\",\"pages_browse-code.md\":\"BhmYOQjE\",\"pages_getting-started.md\":\"C8UElRkE\",\"pages_guidelines.md\":\"C2kOmJCV\",\"pages_how-it-works.md\":\"D6PSCfuz\",\"pages_how-its-made.md\":\"CCol99CD\",\"pages_introduction.md\":\"MtnX0UvH\",\"pages_usage.md\":\"Dw6OzuOj\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"VitePress\",\"titleTemplate\":\":title | Infinite Vue ∞ ivue\",\"description\":\"A VitePress site\",\"base\":\"/ivue/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"outline\":\"deep\",\"siteTitle\":\"ivue ∞ Infinite Vue\",\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/infinite-system/ivue\"},{\"icon\":\"twitter\",\"link\":\"https://x.com/evgenykalash\"}],\"search\":{\"provider\":\"local\"},\"sidebar\":[{\"collapsed\":false,\"text\":\"Guide\",\"items\":[{\"text\":\"What is ivue?\",\"link\":\"/pages/introduction\"},{\"text\":\"How it works?\",\"link\":\"/pages/how-it-works\"},{\"text\":\"Getting Started\",\"link\":\"/pages/getting-started\"}]},{\"collapsed\":false,\"text\":\"Usage\",\"items\":[{\"text\":\"Basic Usage\",\"link\":\"/pages/usage#basic-usage\"},{\"text\":\"Using Props\",\"link\":\"/pages/usage#using-props\"},{\"text\":\"Using Emits\",\"link\":\"/pages/usage#using-emits\"},{\"text\":\"Using Refs\",\"link\":\"/pages/usage#using-refs\"},{\"text\":\"Using Define Expose\",\"link\":\"/pages/usage#using-define-expose\"},{\"text\":\"Using Composables\",\"link\":\"/pages/usage#using-composables\"},{\"text\":\"Using Inside Composables\",\"link\":\"/pages/usage#using-inside-composables\"},{\"text\":\"Using Computeds\",\"link\":\"/pages/usage#using-computeds\"},{\"text\":\"Using Watch\",\"link\":\"/pages/usage#using-watch\"},{\"text\":\"Using Lifecycle Hooks\",\"link\":\"/pages/usage#using-lifecycle-hooks\"},{\"text\":\"Using Pinia Store\",\"link\":\"/pages/usage#using-pinia-store\"},{\"text\":\"Using Quasar Framework\",\"link\":\"/pages/usage#using-quasar-framework\"}]},{\"collapsed\":false,\"text\":\"Guidelines\",\"items\":[{\"text\":\"Dos and Don'ts\",\"link\":\"/pages/guidelines#dos-and-don-ts\"},{\"text\":\".constructor() vs .init()\",\"link\":\"/pages/guidelines#constructor-vs-init\"},{\"text\":\"Unwrapping Refs\",\"link\":\"/pages/guidelines#unwrapping-refs\"},{\"text\":\"Naming Conventions\",\"link\":\"/pages/guidelines#naming-conventions\"}]},{\"collapsed\":false,\"text\":\"Advanced Usage\",\"items\":[{\"text\":\"Extend Props Defaults\",\"link\":\"/pages/advanced-usage#extend-props-defaults\"},{\"text\":\"Extend Props\",\"link\":\"/pages/advanced-usage#extend-props\"},{\"text\":\"Extend Emits\",\"link\":\"/pages/advanced-usage#extend-emits\"},{\"text\":\"Extend Slots\",\"link\":\"/pages/advanced-usage#extend-slots\"},{\"text\":\"Extend Classes\",\"link\":\"/pages/advanced-usage#extend-classes\"},{\"text\":\"Extend Components\",\"link\":\"/pages/advanced-usage#extend-components\"}]},{\"text\":\"API\"},{\"collapsed\":false,\"text\":\"Core Functions\",\"items\":[{\"text\":\"ivue()\",\"link\":\"/pages/api#ivue\"},{\"text\":\"iref()\",\"link\":\"/pages/api#iref\"},{\"text\":\"iuse()\",\"link\":\"/pages/api#iuse\"}]},{\"collapsed\":false,\"text\":\"Core Methods\",\"items\":[{\"text\":\".constructor()\",\"link\":\"/pages/api#constructor\"},{\"text\":\".init()\",\"link\":\"/pages/api#init\"},{\"text\":\".toRefs()\",\"link\":\"/pages/api#torefs\"}]},{\"collapsed\":false,\"text\":\"Utility Functions\",\"items\":[{\"text\":\"propsWithDefaults()\",\"link\":\"/pages/api#propswithdefaults\"}]},{\"collapsed\":false,\"text\":\"Utility Types\",\"items\":[{\"text\":\"ExtractPropDefaultTypes\",\"link\":\"/pages/api#extractpropdefaulttypes\"},{\"text\":\"ExtractEmitTypes\",\"link\":\"/pages/api#extractemittypes\"},{\"text\":\"ExtendSlots\",\"link\":\"/pages/api#extendslots\"}]},{\"collapsed\":false,\"text\":\"Source Code\",\"items\":[{\"text\":\"Browse Code\",\"link\":\"/pages/browse-code\"}]}]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
28
28
 
29
29
  </body>
30
30
  </html>