lilact 0.21.1 → 0.23.0
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.
- package/README.md +17 -4
- package/dist/lilact.development.js +498 -38
- package/dist/lilact.development.js.map +4 -4
- package/dist/lilact.development.min.js +34 -23
- package/dist/lilact.development.min.js.map +4 -4
- package/dist/lilact.production.min.js +33 -22
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/highlight.css +20 -20
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/accessories.ErrorBoundary.html +8 -8
- package/docs/classes/accessories.Suspense.html +7 -7
- package/docs/classes/components.Component.html +11 -11
- package/docs/classes/components.HTMLComponent.html +12 -12
- package/docs/classes/components.RootComponent.html +12 -12
- package/docs/functions/components.cloneComponent.html +1 -0
- package/docs/functions/components.createComponent.html +1 -1
- package/docs/functions/components.createPortal.html +1 -1
- package/docs/functions/components.createRoot.html +1 -1
- package/docs/functions/components.memo.html +1 -1
- package/docs/functions/components.render.html +1 -1
- package/docs/functions/run.lazy.html +7 -1
- package/docs/functions/run.require.html +5 -9
- package/docs/functions/run.run.html +1 -1
- package/docs/functions/run.runScripts.html +1 -1
- package/docs/functions/timers.animationFramePromise.html +1 -1
- package/docs/functions/timers.clearInterval.html +1 -1
- package/docs/functions/timers.clearTimeout.html +1 -1
- package/docs/functions/timers.grabTimers.html +1 -1
- package/docs/functions/timers.pauseTimers.html +1 -1
- package/docs/functions/timers.releaseTimers.html +1 -1
- package/docs/functions/timers.resetTimers.html +1 -1
- package/docs/functions/timers.resumeTimers.html +1 -1
- package/docs/functions/timers.setInterval.html +1 -1
- package/docs/functions/timers.setTimeout.html +1 -1
- package/docs/functions/timers.timeoutPromise.html +6 -6
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +17 -10
- package/docs/modules/components.html +1 -1
- package/docs/static/demos/actionstate.jsx +2 -2
- package/docs/static/demos/capture.jsx +2 -2
- package/docs/static/demos/cloneelement.jsx +66 -0
- package/docs/static/demos/context.jsx +3 -3
- package/docs/static/demos/css-transition.jsx +3 -3
- package/docs/static/demos/error-boundary.jsx +2 -2
- package/docs/static/demos/error-callback.jsx +1 -1
- package/docs/static/demos/error-component-stack.jsx +2 -2
- package/docs/static/demos/error-init.jsx +1 -1
- package/docs/static/demos/error-parser.jsx +1 -1
- package/docs/static/demos/form-elements.jsx +1 -1
- package/docs/static/demos/forwardref.jsx +2 -2
- package/docs/static/demos/lazy.jsx +3 -3
- package/docs/static/demos/legacy-context.jsx +2 -2
- package/docs/static/demos/memo.jsx +2 -2
- package/docs/static/demos/modal.jsx +2 -2
- package/docs/static/demos/pane.jsx +2 -2
- package/docs/static/demos/portal.jsx +4 -2
- package/docs/static/demos/priorities.jsx +2 -2
- package/docs/static/demos/proptypes.jsx +2 -2
- package/docs/static/demos/reducer.jsx +4 -2
- package/docs/static/demos/redux.jsx +3 -3
- package/docs/static/demos/router.jsx +3 -3
- package/docs/static/demos/stopwatch.jsx +2 -2
- package/docs/static/demos/suspense.jsx +2 -2
- package/docs/static/demos/switch-transition.jsx +2 -2
- package/docs/static/demos/transition.jsx +2 -2
- package/docs/static/demos/usedefered.jsx +2 -2
- package/docs/static/demos/usetransition.jsx +3 -3
- package/docs/static/index.html +34 -33
- package/docs/static/lilact.development.js +498 -38
- package/docs/static/lilact.development.js.map +4 -4
- package/docs/static/lilact.development.min.js +34 -23
- package/docs/static/lilact.development.min.js.map +4 -4
- package/docs/static/lilact.production.min.js +33 -22
- package/docs/variables/accessories.SplitPane.html +1 -1
- package/docs/variables/components.cloneElement.html +1 -0
- package/examples/demos/actionstate.jsx +2 -2
- package/examples/demos/capture.jsx +2 -2
- package/examples/demos/cloneelement.jsx +66 -0
- package/examples/demos/context.jsx +3 -3
- package/examples/demos/css-transition.jsx +3 -3
- package/examples/demos/error-boundary.jsx +2 -2
- package/examples/demos/error-callback.jsx +1 -1
- package/examples/demos/error-component-stack.jsx +2 -2
- package/examples/demos/error-init.jsx +1 -1
- package/examples/demos/error-parser.jsx +1 -1
- package/examples/demos/form-elements.jsx +1 -1
- package/examples/demos/forwardref.jsx +2 -2
- package/examples/demos/lazy.jsx +3 -3
- package/examples/demos/legacy-context.jsx +2 -2
- package/examples/demos/memo.jsx +2 -2
- package/examples/demos/modal.jsx +2 -2
- package/examples/demos/pane.jsx +2 -2
- package/examples/demos/portal.jsx +4 -2
- package/examples/demos/priorities.jsx +2 -2
- package/examples/demos/proptypes.jsx +2 -2
- package/examples/demos/reducer.jsx +4 -2
- package/examples/demos/redux.jsx +3 -3
- package/examples/demos/router.jsx +3 -3
- package/examples/demos/stopwatch.jsx +2 -2
- package/examples/demos/suspense.jsx +2 -2
- package/examples/demos/switch-transition.jsx +2 -2
- package/examples/demos/transition.jsx +2 -2
- package/examples/demos/usedefered.jsx +2 -2
- package/examples/demos/usetransition.jsx +3 -3
- package/examples/index.html +34 -33
- package/examples/lilact.development.js +498 -38
- package/examples/lilact.development.js.map +4 -4
- package/examples/lilact.development.min.js +34 -23
- package/examples/lilact.development.min.js.map +4 -4
- package/examples/lilact.production.min.js +33 -22
- package/impexptest.js +51 -0
- package/package.json +4 -4
- package/src/components.jsx +7 -5
- package/src/expscan.js +408 -0
- package/src/jsx.js +26 -28
- package/src/lilact.jsx +12 -3
- package/src/run.jsx +92 -45
- package/src/timers.jsx +0 -5
- package/src/jsx.addons.js +0 -70
package/docs/hierarchy.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Lilact</title><meta name="description" content="Documentation for Lilact"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">Lilact</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>Lilact</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Lilact</title><meta name="description" content="Documentation for Lilact"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">Lilact</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>Lilact</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="227" id="components.Component"><a href="classes/components.Component.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Component</a><ul><li data-refl="87" id="accessories.ErrorBoundary"><a href="classes/accessories.ErrorBoundary.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>ErrorBoundary</a></li><li data-refl="137" id="accessories.Suspense"><a href="classes/accessories.Suspense.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>Suspense</a></li><li data-refl="264" id="components.HTMLComponent"><a href="classes/components.HTMLComponent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>HTMLComponent</a><ul><li data-refl="304" id="components.RootComponent"><a href="classes/components.RootComponent.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>RootComponent</a></li></ul></li></ul></li></ul></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">Lilact</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
package/docs/index.html
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<a href="https://github.com/sponsors/arashkazemi">Sponsor me on GitHub</a></p>
|
|
21
21
|
<hr>
|
|
22
22
|
<h2 id="overview" class="tsd-anchor-link">Overview<a href="#overview" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
23
|
-
<p><code>Lilact</code> is a very lightweight implementation of the React API designed to run in the browser. It can be used as a single script that is around <code>
|
|
23
|
+
<p><code>Lilact</code> is a very lightweight implementation of the React API designed to run in the browser. It can be used as a single script that is around <code>98kb</code> minified and around <code>34kb</code> gzipped and includes its whole API. It is tested and works on <strong>Chrome</strong>, <strong>Firefox</strong>, <strong>Edge</strong>, and <strong>Safari</strong>.</p>
|
|
24
24
|
<p><code>Lilact</code> is very fast, uses minimal resources, and handles memory very efficiently.</p>
|
|
25
25
|
<p>In a Node.js environment, <code>Lilact</code> can be incorporated and imported similarly to React, and it can also be used as a static library in other platforms.</p>
|
|
26
26
|
<hr>
|
|
@@ -62,14 +62,21 @@
|
|
|
62
62
|
and update the bundle if any file is changed.</p>
|
|
63
63
|
<hr>
|
|
64
64
|
<h2 id="using-lilact-outside-nodejs-browser-script-tag-integration" class="tsd-anchor-link">Using Lilact Outside Node.js (Browser / Script Tag Integration)<a href="#using-lilact-outside-nodejs-browser-script-tag-integration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
65
|
-
<p><code>Lilact</code> runs in the browser,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
<p><code>Lilact</code> runs in the browser, and uses <code>eval</code> to run the transpiled scripts. You can use both ESModule and CommonJS syntax,
|
|
66
|
+
but in the background <code>Lilact</code> converts the ES import and exports to CommonJS as <code>eval</code> doesn't allow ES syntax.</p>
|
|
67
|
+
<pre><code class="js"><span class="hl-4">import</span><span class="hl-1"> { </span><span class="hl-5">useState</span><span class="hl-1">, </span><span class="hl-5">useRef</span><span class="hl-1">, </span><span class="hl-5">render</span><span class="hl-1"> } </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">"lilact"</span><span class="hl-1">;</span><br/><br/><span class="hl-4">import</span><span class="hl-1"> </span><span class="hl-5">App</span><span class="hl-1"> </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">'./App.jsx'</span><span class="hl-1">; </span><span class="hl-6">// imports the default export</span>
|
|
68
|
+
</code><button type="button">Copy</button></pre>
|
|
69
|
+
|
|
70
|
+
<p>or</p>
|
|
71
|
+
<pre><code class="js"><span class="hl-3">const</span><span class="hl-1"> { </span><span class="hl-7">useState</span><span class="hl-1">, </span><span class="hl-7">useRef</span><span class="hl-1">, </span><span class="hl-7">render</span><span class="hl-1">, </span><span class="hl-7">require</span><span class="hl-1"> } = </span><span class="hl-5">Lilact</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-7">App</span><span class="hl-1"> = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">'./App.jsx'</span><span class="hl-1">);</span>
|
|
69
72
|
</code><button type="button">Copy</button></pre>
|
|
70
73
|
|
|
71
74
|
<p>To export:</p>
|
|
72
|
-
<pre><code class="js"><span class="hl-
|
|
75
|
+
<pre><code class="js"><span class="hl-4">export</span><span class="hl-1"> </span><span class="hl-4">default</span><span class="hl-1"> ...</span><br/><span class="hl-6">// or other standard export statements</span>
|
|
76
|
+
</code><button type="button">Copy</button></pre>
|
|
77
|
+
|
|
78
|
+
<p>or</p>
|
|
79
|
+
<pre><code class="js"><span class="hl-8">module</span><span class="hl-1">.</span><span class="hl-8">exports</span><span class="hl-1"> = ...</span>
|
|
73
80
|
</code><button type="button">Copy</button></pre>
|
|
74
81
|
|
|
75
82
|
<p>Bundled projects can also be used statically on other backends. However, bundling is not required: JSX files can be served and transpiled live.</p>
|
|
@@ -89,11 +96,11 @@ to load other JSX or JS files.</p>
|
|
|
89
96
|
<h3 id="browser-static-dist--cdn" class="tsd-anchor-link">Browser / Static (dist + CDN)<a href="#browser-static-dist--cdn" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
90
97
|
<p>To use <code>Lilact</code> in a webpage, first download the source code and extract it. The minified script itself is available in the <code>/dist</code> directory, and the documentation can be found in <code>/docs</code> and also in the source files.</p>
|
|
91
98
|
<p>It is also available via unpkg CDN and can be included in HTML like:</p>
|
|
92
|
-
<pre><code class="html"><span class="hl-
|
|
99
|
+
<pre><code class="html"><span class="hl-9"><</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">src</span><span class="hl-11">=</span><span class="hl-13">"https://unpkg.com/lilact/dist/lilact.development.min.js"</span><span class="hl-9">></</span><span class="hl-10">script</span><span class="hl-9">></span>
|
|
93
100
|
</code><button type="button">Copy</button></pre>
|
|
94
101
|
|
|
95
102
|
<p>or</p>
|
|
96
|
-
<pre><code class="html"><span class="hl-
|
|
103
|
+
<pre><code class="html"><span class="hl-9"><</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">src</span><span class="hl-11">=</span><span class="hl-13">"https://unpkg.com/lilact/dist/lilact.production.min.js"</span><span class="hl-9">></</span><span class="hl-10">script</span><span class="hl-9">></span>
|
|
97
104
|
</code><button type="button">Copy</button></pre>
|
|
98
105
|
|
|
99
106
|
<p>Note: the production version, like the official React API, doesn’t perform PropTypes checks, but you can access PropTypes using <code>Lilact.PropTypes</code>.</p>
|
|
@@ -103,11 +110,11 @@ to load other JSX or JS files.</p>
|
|
|
103
110
|
<hr>
|
|
104
111
|
<h2 id="example" class="tsd-anchor-link">Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
|
|
105
112
|
<h3 id="nodejs-example" class="tsd-anchor-link">Node.js example<a href="#nodejs-example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
106
|
-
<pre><code class="js"><span class="hl-
|
|
113
|
+
<pre><code class="js"><span class="hl-4">import</span><span class="hl-1"> { </span><span class="hl-5">render</span><span class="hl-1"> } </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">"lilact"</span><span class="hl-1">;</span><br/><br/><span class="hl-3">function</span><span class="hl-1"> </span><span class="hl-0">App</span><span class="hl-1">() {</span><br/><span class="hl-1"> </span><span class="hl-4">return</span><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-10">div</span><span class="hl-9">></span><span class="hl-1">Hello World</span><span class="hl-9"></</span><span class="hl-10">div</span><span class="hl-9">></span><span class="hl-1">;</span><br/><span class="hl-1">}</span><br/><br/><span class="hl-0">render</span><span class="hl-1">(</span><span class="hl-9"><</span><span class="hl-8">App</span><span class="hl-9">/></span><span class="hl-1">, </span><span class="hl-5">document</span><span class="hl-1">.</span><span class="hl-5">body</span><span class="hl-1">);</span>
|
|
107
114
|
</code><button type="button">Copy</button></pre>
|
|
108
115
|
|
|
109
116
|
<h3 id="outside-nodejs-eg-php-python-integration" class="tsd-anchor-link">Outside Node.js (e.g., PHP / Python integration)<a href="#outside-nodejs-eg-php-python-integration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
|
|
110
|
-
<pre><code class="html"><span class="hl-
|
|
117
|
+
<pre><code class="html"><span class="hl-9"><!</span><span class="hl-10">DOCTYPE</span><span class="hl-1"> </span><span class="hl-12">html</span><span class="hl-9">></span><br/><span class="hl-9"><</span><span class="hl-10">html</span><span class="hl-9">></span><br/><span class="hl-9"><</span><span class="hl-10">head</span><span class="hl-9">></span><br/><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-10">meta</span><span class="hl-1"> </span><span class="hl-12">charset</span><span class="hl-1">=</span><span class="hl-13">"utf-8"</span><span class="hl-9">/></span><br/><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-10">title</span><span class="hl-9">></span><span class="hl-1">Lilact Demo</span><span class="hl-9"></</span><span class="hl-10">title</span><span class="hl-9">></span><br/><span class="hl-1"> </span><span class="hl-9"><</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">src</span><span class="hl-11">=</span><span class="hl-13">'./lilact.development.min.js'</span><span class="hl-11"> </span><span class="hl-12">type</span><span class="hl-11">=</span><span class="hl-13">"module"</span><span class="hl-9">></</span><span class="hl-10">script</span><span class="hl-9">></span><br/><span class="hl-9"></</span><span class="hl-10">head</span><span class="hl-9">></span><br/><span class="hl-9"><</span><span class="hl-10">body</span><span class="hl-9">></</span><span class="hl-10">body</span><span class="hl-9">></span><br/><span class="hl-9"><</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">type</span><span class="hl-11">=</span><span class="hl-13">'text/jsx'</span><span class="hl-9">></span><br/><span class="hl-11"> const { render } = Lilact;</span><br/><br/><span class="hl-11"> function App() {</span><br/><span class="hl-11"> return <div>Hello World</div>;</span><br/><span class="hl-11"> }</span><br/><span class="hl-11"> </span><br/><span class="hl-11"> render(<App/>, document.body);</span><br/><span class="hl-9"></</span><span class="hl-10">script</span><span class="hl-9">></span><br/><span class="hl-9"></</span><span class="hl-10">html</span><span class="hl-9">></span>
|
|
111
118
|
</code><button type="button">Copy</button></pre>
|
|
112
119
|
|
|
113
120
|
<hr>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>components | Lilact</title><meta name="description" content="Documentation for Lilact"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">Lilact</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">components</a></li></ul><h1>Module components</h1></div><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Classes</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="component"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/components.Component.html">Component</a><a href="#component" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="htmlcomponent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/components.HTMLComponent.html">HTMLComponent</a><a href="#htmlcomponent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="rootcomponent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/components.RootComponent.html">RootComponent</a><a href="#rootcomponent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Functions</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="createcomponent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.createComponent.html">createComponent</a><a href="#createcomponent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="createportal"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.createPortal.html">createPortal</a><a href="#createportal" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="createroot"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.createRoot.html">createRoot</a><a href="#createroot" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="memo"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.memo.html">memo</a><a href="#memo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="render"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.render.html">render</a><a href="#render" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Classes</summary><div><a href="#component"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Component</span></a><a href="#htmlcomponent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>HTML<wbr/>Component</span></a><a href="#rootcomponent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Root<wbr/>Component</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Functions</summary><div><a href="#createcomponent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>create<wbr/>Component</span></a><a href="#createportal"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>create<wbr/>Portal</span></a><a href="#createroot"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>create<wbr/>Root</span></a><a href="#memo"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>memo</span></a><a href="#render"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>render</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">Lilact</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>components | Lilact</title><meta name="description" content="Documentation for Lilact"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">Lilact</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">components</a></li></ul><h1>Module components</h1></div><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Classes</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="component"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/components.Component.html">Component</a><a href="#component" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="htmlcomponent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/components.HTMLComponent.html">HTMLComponent</a><a href="#htmlcomponent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="rootcomponent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/components.RootComponent.html">RootComponent</a><a href="#rootcomponent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Variables"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Variables</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="cloneelement"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><a href="../variables/components.cloneElement.html">cloneElement</a><a href="#cloneelement" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Functions</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="clonecomponent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.cloneComponent.html">cloneComponent</a><a href="#clonecomponent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="createcomponent"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.createComponent.html">createComponent</a><a href="#createcomponent" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="createportal"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.createPortal.html">createPortal</a><a href="#createportal" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="createroot"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.createRoot.html">createRoot</a><a href="#createroot" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="memo"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.memo.html">memo</a><a href="#memo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="render"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/components.render.html">render</a><a href="#render" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Classes</summary><div><a href="#component"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Component</span></a><a href="#htmlcomponent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>HTML<wbr/>Component</span></a><a href="#rootcomponent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Root<wbr/>Component</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Variables"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Variables</summary><div><a href="#cloneelement"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Variable"><use href="../assets/icons.svg#icon-32"></use></svg><span>clone<wbr/>Element</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Functions</summary><div><a href="#clonecomponent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>clone<wbr/>Component</span></a><a href="#createcomponent"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>create<wbr/>Component</span></a><a href="#createportal"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>create<wbr/>Portal</span></a><a href="#createroot"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>create<wbr/>Root</span></a><a href="#memo"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>memo</span></a><a href="#render"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>render</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">Lilact</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import React from "lilact";
|
|
2
|
+
|
|
3
|
+
function FancyButton({ label, variant, onClick, children }) {
|
|
4
|
+
return (
|
|
5
|
+
<button
|
|
6
|
+
className={`btn btn--${variant}`}
|
|
7
|
+
onClick={onClick}
|
|
8
|
+
style={{ marginRight: 12 }}
|
|
9
|
+
>
|
|
10
|
+
{label}
|
|
11
|
+
{children ? <span style={{ marginLeft: 8 }}>{children}</span> : null}
|
|
12
|
+
</button>
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default function Demo() {
|
|
17
|
+
const original = (
|
|
18
|
+
<FancyButton
|
|
19
|
+
label="Original"
|
|
20
|
+
variant="primary"
|
|
21
|
+
onClick={() => alert("Original clicked")}
|
|
22
|
+
>
|
|
23
|
+
(child)
|
|
24
|
+
</FancyButton>
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
const cloned = React.cloneElement(original, {
|
|
28
|
+
// Override props:
|
|
29
|
+
label: "Cloned!",
|
|
30
|
+
variant: "success",
|
|
31
|
+
|
|
32
|
+
// You can override event handlers too:
|
|
33
|
+
onClick: () => alert("Cloned clicked"),
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const clonedWithNewChildren = React.cloneElement(
|
|
37
|
+
original,
|
|
38
|
+
{
|
|
39
|
+
// Override just one prop; leave others as-is
|
|
40
|
+
variant: "warning",
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
<span style={{ fontStyle: "italic" }}>(new child)</span>
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<div style={{ padding: 16 }}>
|
|
48
|
+
<h2>React.cloneElement behavior</h2>
|
|
49
|
+
|
|
50
|
+
<div style={{ marginBottom: 16 }}>
|
|
51
|
+
<div>1) Original element (unchanged):</div>
|
|
52
|
+
{original}
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<div style={{ marginBottom: 16 }}>
|
|
56
|
+
<div>2) Cloned with overridden props:</div>
|
|
57
|
+
{cloned}
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
<div>
|
|
61
|
+
<div>3) Cloned with overridden props + replaced children:</div>
|
|
62
|
+
{clonedWithNewChildren}
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { createContext, useContext, useState } from "lilact";
|
|
2
|
+
import { css, cx } from "@emotion/css";
|
|
3
3
|
|
|
4
4
|
const ThemeContext = createContext(null);
|
|
5
5
|
|
|
@@ -63,4 +63,4 @@ function Demo() {
|
|
|
63
63
|
</ThemeContext.Provider>
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
export default Demo;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { CSSTransition, useState, useRef } from "lilact";
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
Lilact.emotion.injectGlobal(`
|
|
@@ -29,7 +29,7 @@ function Demo()
|
|
|
29
29
|
|
|
30
30
|
const chs = [];
|
|
31
31
|
|
|
32
|
-
for(let i=
|
|
32
|
+
for(let i=1; i<10;i++) chs.push( <div className='test'>{i}</div> );
|
|
33
33
|
|
|
34
34
|
return (
|
|
35
35
|
<div style={{overflow:"hidden", textAlign: "center"}}>
|
|
@@ -62,4 +62,4 @@ function Demo()
|
|
|
62
62
|
);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
export default Demo;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ErrorBoundary, useState } from "lilact";
|
|
2
2
|
|
|
3
3
|
function Demo() {
|
|
4
4
|
const [mode, setMode] = useState("safe"); // "safe" | "direct" | "deep"
|
|
@@ -56,4 +56,4 @@ function MyFallback({ error, reset }) {
|
|
|
56
56
|
);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
export default Demo;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { useState } from "lilact";
|
|
2
2
|
|
|
3
3
|
function Demo() {
|
|
4
4
|
const [mode, setMode] = useState("safe"); // "safe" | "direct" | "deep"
|
|
@@ -36,4 +36,4 @@ function DeepTree() {
|
|
|
36
36
|
return <section><Middle /></section>;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
export default Demo;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { forwardRef, useImperativeHandle, useRef } from "lilact";
|
|
2
2
|
|
|
3
3
|
const Child = forwardRef(function Child({ id }, ref) {
|
|
4
4
|
// Each child exposes a custom imperative API on its *own* ref
|
|
@@ -11,7 +11,7 @@ const Child = forwardRef(function Child({ id }, ref) {
|
|
|
11
11
|
return <div>Child {id}</div>;
|
|
12
12
|
});
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
export default function Demo() {
|
|
15
15
|
const childRefs = useRef([]);
|
|
16
16
|
|
|
17
17
|
// helper: store the function ref for each child index
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import {Suspense, Spinner, lazy } from "lilact";
|
|
2
2
|
|
|
3
|
-
const StopWatch = lazy( ()=>require('
|
|
3
|
+
const StopWatch = lazy( () => require('./stopwatch.jsx') );
|
|
4
4
|
|
|
5
5
|
function Demo({file})
|
|
6
6
|
{
|
|
@@ -12,4 +12,4 @@ function Demo({file})
|
|
|
12
12
|
</div>
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
export default Demo;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// - static contextTypes
|
|
5
5
|
// - instance.context available during render
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
import { Component, PropTypes, render } from "lilact";
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
// ----- Consumer -----
|
|
@@ -74,6 +74,6 @@ function Demo() {
|
|
|
74
74
|
</>
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
export default Demo;
|
|
78
78
|
|
|
79
79
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { useState, memo } from "lilact"
|
|
2
2
|
|
|
3
3
|
const Child = memo(function Child({ count }) {
|
|
4
4
|
console.log("Child render. count =", count);
|
|
5
5
|
return <div>Child count: {count}</div>;
|
|
6
6
|
});
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
export default function Demo() {
|
|
9
9
|
const [tick, setTick] = useState(0);
|
|
10
10
|
const [count] = useState(5); // never changes
|
|
11
11
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { useEffect, useRef, useState } from "lilact";
|
|
2
2
|
|
|
3
3
|
function ModalDialog({ isOpen, children }) {
|
|
4
4
|
const ref = useRef();
|
|
@@ -37,4 +37,4 @@ function Demo() {
|
|
|
37
37
|
</>;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
export default Demo;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
import { useRef, useState, SplitPane } from "lilact";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
export default function Demo() {
|
|
4
4
|
const ref = useRef(null);
|
|
5
5
|
const [mode, setMode] = useState("horizontal");
|
|
6
6
|
const [position, setPosition] = useState(0.35);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { createPortal, useState } from "lilact";
|
|
2
2
|
|
|
3
3
|
function Modal({ open, onClose, children }) {
|
|
4
4
|
if (!open) return null;
|
|
@@ -41,11 +41,13 @@ function Modal({ open, onClose, children }) {
|
|
|
41
41
|
);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
export default function Demo() {
|
|
45
45
|
const [open, setOpen] = useState(false);
|
|
46
46
|
|
|
47
47
|
return (
|
|
48
48
|
<>
|
|
49
|
+
<p>This example creates a modal, but uses a portal for it.</p>
|
|
50
|
+
<p>Notice that the modal close button style does not obey this container CSS rules as it is rendered outside.</p>
|
|
49
51
|
<button onClick={() => setOpen(true)}>Open modal</button>
|
|
50
52
|
<Modal open={open} onClose={() => setOpen(false)}>
|
|
51
53
|
<b>Hello World!</b><br/>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import {useEffect, useLayoutEffect, useInsertionEffect, useState, startTransition} from "lilact";
|
|
2
2
|
|
|
3
3
|
function Demo() {
|
|
4
4
|
const [n, setN] = useState(0);
|
|
@@ -65,4 +65,4 @@ function Demo() {
|
|
|
65
65
|
</>);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
export default Demo;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { useReducer } from "lilact";
|
|
2
2
|
|
|
3
3
|
function createInitialState(username) {
|
|
4
4
|
const initialTodos = [];
|
|
@@ -37,6 +37,8 @@ function reducer(state, action) {
|
|
|
37
37
|
|
|
38
38
|
function Demo({ username })
|
|
39
39
|
{
|
|
40
|
+
username ??= "Tester";
|
|
41
|
+
|
|
40
42
|
const [state, dispatch] = useReducer(
|
|
41
43
|
reducer,
|
|
42
44
|
username,
|
|
@@ -73,4 +75,4 @@ function Demo({ username })
|
|
|
73
75
|
</>
|
|
74
76
|
}
|
|
75
77
|
|
|
76
|
-
|
|
78
|
+
export default Demo;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { Provider, useSelector, useDispatch, connect } from "lilact";
|
|
2
|
+
import { createStore } from "redux";
|
|
3
3
|
|
|
4
4
|
// Reducer + store
|
|
5
5
|
function counterReducer(state = { count: 0 }, action) {
|
|
@@ -54,5 +54,5 @@ function Demo({ username })
|
|
|
54
54
|
</Provider>;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
export default Demo;
|
|
58
58
|
|