ivue 1.5.2 → 1.5.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 (139) hide show
  1. package/package.json +5 -1
  2. package/.editorconfig +0 -9
  3. package/.eslintignore +0 -7
  4. package/.eslintrc.js +0 -120
  5. package/.github/workflows/ci.yml +0 -68
  6. package/.idea/codeStyles/Project.xml +0 -65
  7. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  8. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  9. package/.idea/ivue.iml +0 -8
  10. package/.idea/modules.xml +0 -8
  11. package/.idea/php.xml +0 -19
  12. package/.idea/vcs.xml +0 -6
  13. package/.prettierrc +0 -5
  14. package/coverage/base.css +0 -224
  15. package/coverage/block-navigation.js +0 -87
  16. package/coverage/clover.xml +0 -191
  17. package/coverage/coverage-final.json +0 -3
  18. package/coverage/favicon.png +0 -0
  19. package/coverage/index.html +0 -131
  20. package/coverage/index.ts.html +0 -88
  21. package/coverage/ivue.ts.html +0 -1753
  22. package/coverage/prettify.css +0 -1
  23. package/coverage/prettify.js +0 -2
  24. package/coverage/sort-arrow-sprite.png +0 -0
  25. package/coverage/sorter.js +0 -196
  26. package/demo/App.vue +0 -11
  27. package/demo/main.ts +0 -6
  28. package/demo/vite.config.ts +0 -12
  29. package/docs/.editorconfig +0 -9
  30. package/docs/.eslintignore +0 -7
  31. package/docs/.eslintrc.js +0 -120
  32. package/docs/.prettierrc +0 -5
  33. package/docs/docs/.vitepress/config.ts +0 -172
  34. package/docs/docs/.vitepress/dist/404.html +0 -21
  35. package/docs/docs/.vitepress/dist/api/ivue.html +0 -24
  36. package/docs/docs/.vitepress/dist/api/propsWithDefaults.html +0 -24
  37. package/docs/docs/.vitepress/dist/assets/api_ivue.md.DyFbv52x.js +0 -1
  38. package/docs/docs/.vitepress/dist/assets/api_ivue.md.DyFbv52x.lean.js +0 -1
  39. package/docs/docs/.vitepress/dist/assets/api_propsWithDefaults.md.C6C7ZBZl.js +0 -1
  40. package/docs/docs/.vitepress/dist/assets/api_propsWithDefaults.md.C6C7ZBZl.lean.js +0 -1
  41. package/docs/docs/.vitepress/dist/assets/app.BEuVrZlt.js +0 -1
  42. package/docs/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.BuKNEz2z.js +0 -1
  43. package/docs/docs/.vitepress/dist/assets/chunks/Button.vue_vue_type_script_setup_true_lang.Bynntqk6.js +0 -1
  44. package/docs/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.CrwYL8pk.js +0 -7
  45. package/docs/docs/.vitepress/dist/assets/chunks/framework.CvEKxEoK.js +0 -1
  46. package/docs/docs/.vitepress/dist/assets/chunks/index.es.DRFH_cBG.js +0 -1
  47. package/docs/docs/.vitepress/dist/assets/chunks/theme.CvibXqSO.js +0 -2
  48. package/docs/docs/.vitepress/dist/assets/index.md.mLYKdUe1.js +0 -1
  49. package/docs/docs/.vitepress/dist/assets/index.md.mLYKdUe1.lean.js +0 -1
  50. package/docs/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  51. package/docs/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  52. package/docs/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  53. package/docs/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  54. package/docs/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  55. package/docs/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  56. package/docs/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  57. package/docs/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  58. package/docs/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  59. package/docs/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  60. package/docs/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  61. package/docs/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  62. package/docs/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  63. package/docs/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  64. package/docs/docs/.vitepress/dist/assets/pages_advanced-usage.md.Xwq8hk_w.js +0 -1
  65. package/docs/docs/.vitepress/dist/assets/pages_advanced-usage.md.Xwq8hk_w.lean.js +0 -1
  66. package/docs/docs/.vitepress/dist/assets/pages_api.md.Bo9Kusmf.js +0 -1
  67. package/docs/docs/.vitepress/dist/assets/pages_api.md.Bo9Kusmf.lean.js +0 -1
  68. package/docs/docs/.vitepress/dist/assets/pages_browse-code.md.DtJJKz-E.js +0 -556
  69. package/docs/docs/.vitepress/dist/assets/pages_browse-code.md.DtJJKz-E.lean.js +0 -1
  70. package/docs/docs/.vitepress/dist/assets/pages_getting-started.md.BEgX6PyX.js +0 -563
  71. package/docs/docs/.vitepress/dist/assets/pages_getting-started.md.BEgX6PyX.lean.js +0 -1
  72. package/docs/docs/.vitepress/dist/assets/pages_guidelines.md.D5gNjB3w.js +0 -112
  73. package/docs/docs/.vitepress/dist/assets/pages_guidelines.md.D5gNjB3w.lean.js +0 -112
  74. package/docs/docs/.vitepress/dist/assets/pages_how-it-works.md.YjizQt3g.js +0 -559
  75. package/docs/docs/.vitepress/dist/assets/pages_how-it-works.md.YjizQt3g.lean.js +0 -559
  76. package/docs/docs/.vitepress/dist/assets/pages_how-its-made.md.C02KZK0J.js +0 -1
  77. package/docs/docs/.vitepress/dist/assets/pages_how-its-made.md.C02KZK0J.lean.js +0 -1
  78. package/docs/docs/.vitepress/dist/assets/pages_introduction.md.B6foeVXQ.js +0 -1
  79. package/docs/docs/.vitepress/dist/assets/pages_introduction.md.B6foeVXQ.lean.js +0 -1
  80. package/docs/docs/.vitepress/dist/assets/pages_usage.md.BlTPXw5A.js +0 -591
  81. package/docs/docs/.vitepress/dist/assets/pages_usage.md.BlTPXw5A.lean.js +0 -591
  82. package/docs/docs/.vitepress/dist/assets/style.Dtxde_a0.css +0 -1
  83. package/docs/docs/.vitepress/dist/hashmap.json +0 -1
  84. package/docs/docs/.vitepress/dist/index.html +0 -25
  85. package/docs/docs/.vitepress/dist/pages/advanced-usage.html +0 -24
  86. package/docs/docs/.vitepress/dist/pages/api.html +0 -30
  87. package/docs/docs/.vitepress/dist/pages/browse-code.html +0 -579
  88. package/docs/docs/.vitepress/dist/pages/getting-started.html +0 -586
  89. package/docs/docs/.vitepress/dist/pages/guidelines.html +0 -136
  90. package/docs/docs/.vitepress/dist/pages/how-it-works.html +0 -582
  91. package/docs/docs/.vitepress/dist/pages/how-its-made.html +0 -24
  92. package/docs/docs/.vitepress/dist/pages/introduction.html +0 -25
  93. package/docs/docs/.vitepress/dist/pages/usage.html +0 -615
  94. package/docs/docs/.vitepress/theme/index.js +0 -5
  95. package/docs/docs/.vitepress/theme/main.css +0 -29
  96. package/docs/docs/api/ivue.md +0 -0
  97. package/docs/docs/api/propsWithDefaults.md +0 -0
  98. package/docs/docs/components/Button.vue +0 -13
  99. package/docs/docs/components/Component.vue +0 -20
  100. package/docs/docs/components/advanced-usage/ConvertLegacy.vue +0 -58
  101. package/docs/docs/components/guidelines/CounterExternalRefsDetailed.vue +0 -41
  102. package/docs/docs/components/usage/CounterBasic.vue +0 -18
  103. package/docs/docs/components/usage/CounterComposables.vue +0 -29
  104. package/docs/docs/components/usage/CounterComposablesDestructuring.vue +0 -55
  105. package/docs/docs/components/usage/CounterComposablesIvue.vue +0 -30
  106. package/docs/docs/components/usage/CounterComposablesIvueDestructuring.vue +0 -48
  107. package/docs/docs/components/usage/CounterComputeds.vue +0 -26
  108. package/docs/docs/components/usage/CounterComputedsDisabled.vue +0 -33
  109. package/docs/docs/components/usage/CounterDefineExpose.vue +0 -12
  110. package/docs/docs/components/usage/CounterDefineExposeAdvanced.vue +0 -24
  111. package/docs/docs/components/usage/CounterDefineExposeClass.ts +0 -11
  112. package/docs/docs/components/usage/CounterExternalRefs.vue +0 -27
  113. package/docs/docs/components/usage/CounterInsideComposables.vue +0 -28
  114. package/docs/docs/components/usage/CounterInternalRefs.vue +0 -27
  115. package/docs/docs/components/usage/CounterLifecycleHooks.vue +0 -24
  116. package/docs/docs/components/usage/CounterWatch.vue +0 -30
  117. package/docs/docs/components/usage/CounterWithProps.vue +0 -30
  118. package/docs/docs/components/usage/CounterWithPropsAndEmits.vue +0 -37
  119. package/docs/docs/components/usage/classes/CustomMouse.ts +0 -23
  120. package/docs/docs/components/usage/functions/useCustomMouse.ts +0 -25
  121. package/docs/docs/index.md +0 -53
  122. package/docs/docs/pages/advanced-usage.md +0 -12
  123. package/docs/docs/pages/api.md +0 -129
  124. package/docs/docs/pages/browse-code.md +0 -18
  125. package/docs/docs/pages/getting-started.md +0 -32
  126. package/docs/docs/pages/guidelines.md +0 -139
  127. package/docs/docs/pages/how-it-works.md +0 -65
  128. package/docs/docs/pages/how-its-made.md +0 -32
  129. package/docs/docs/pages/introduction.md +0 -83
  130. package/docs/docs/pages/usage.md +0 -402
  131. package/docs/package.json +0 -37
  132. package/docs/scripts/gh-pages-deploy.js +0 -34
  133. package/docs/vite-env.d.ts +0 -7
  134. package/docs/vite.config.ts +0 -20
  135. package/index.html +0 -14
  136. package/tsconfig.json +0 -25
  137. package/vite-env.d.ts +0 -7
  138. package/vite.config.ts +0 -50
  139. package/vitest.config.ts +0 -19
@@ -1 +0,0 @@
1
- import{_ as s,c as i,o as e,a5 as a}from"./chunks/framework.CvEKxEoK.js";const g=JSON.parse('{"title":"API","description":"","frontmatter":{},"headers":[],"relativePath":"pages/api.md","filePath":"pages/api.md"}'),t={name:"pages/api.md"},n=a('<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>\n<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>\n<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>\n<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>Is simply an alias to Vue 3 <code>ref()</code> function but casts 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="ishallowref" tabindex="-1"><code>ishallowRef()</code> <a class="header-anchor" href="#ishallowref" aria-label="Permalink to &quot;`ishallowRef()`&quot;">​</a></h3><p>Is simply an alias Vue 3 <code>shallowRef()</code> function but casts 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" tabindex="-1"><code>IVue</code> <a class="header-anchor" href="#IVue" aria-label="Permalink to &quot;`IVue` {#IVue}&quot;">​</a></h3><h3 id="Use" tabindex="-1"><code>Use</code> <a class="header-anchor" href="#Use" aria-label="Permalink to &quot;`Use` {#Use}&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>\n<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>\n<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>\n<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>',52),o=[n];function h(l,r,p,d,c,k){return e(),i("div",null,o)}const y=s(t,[["render",h]]);export{g as __pageData,y as default};