lilact 0.31.6 → 0.31.7
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/dist/lilact.development.js +49 -16
- package/dist/lilact.development.js.map +3 -3
- package/dist/lilact.development.min.js +23 -23
- package/dist/lilact.development.min.js.map +3 -3
- package/dist/lilact.production.min.js +23 -23
- 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 +11 -11
- package/docs/classes/components.RootComponent.html +11 -11
- package/docs/functions/components.cloneComponent.html +1 -1
- 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/components.replaceAllComponentInstances.html +1 -1
- package/docs/functions/components.replaceComponentEntity.html +1 -1
- package/docs/functions/hooks.useCallback.html +2 -2
- package/docs/functions/hooks.useEffect.html +1 -1
- package/docs/functions/hooks.useImperativeHandle.html +1 -1
- package/docs/functions/hooks.useInsertionEffect.html +1 -1
- package/docs/functions/hooks.useLayoutEffect.html +1 -1
- package/docs/functions/hooks.useMemo.html +1 -1
- package/docs/functions/run.lazy.html +10 -1
- package/docs/functions/run.require.html +7 -1
- package/docs/functions/run.run.html +14 -1
- package/docs/functions/run.runScripts.html +8 -1
- package/docs/modules/run.html +1 -1
- package/docs/static/demos/error-callback.jsx +7 -9
- package/docs/static/lilact.development.js +49 -16
- package/docs/static/lilact.development.js.map +3 -3
- package/docs/static/lilact.development.min.js +23 -23
- package/docs/static/lilact.development.min.js.map +3 -3
- package/docs/static/lilact.production.min.js +23 -23
- package/docs/variables/components.cloneElement.html +1 -1
- package/examples/demos/error-callback.jsx +7 -9
- package/examples/lilact.development.js +49 -16
- package/examples/lilact.development.js.map +3 -3
- package/examples/lilact.development.min.js +23 -23
- package/examples/lilact.development.min.js.map +3 -3
- package/examples/lilact.production.min.js +23 -23
- package/package.json +1 -1
- package/src/components.jsx +74 -22
- package/src/hooks.jsx +6 -6
- package/src/run.jsx +62 -6
- package/docs/variables/run.required_scripts.html +0 -1
package/package.json
CHANGED
package/src/components.jsx
CHANGED
|
@@ -44,6 +44,26 @@ function getComponentEntity(entity) {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
const hotEntityAliases = new Map();
|
|
47
|
+
const hotEntityCacheTokens = new WeakMap();
|
|
48
|
+
|
|
49
|
+
function getHotEntityCacheToken(entity) {
|
|
50
|
+
entity = getComponentEntity(entity);
|
|
51
|
+
|
|
52
|
+
if (typeof entity !== "function") {
|
|
53
|
+
return entity;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
let token = hotEntityCacheTokens.get(entity);
|
|
57
|
+
|
|
58
|
+
if (!token) {
|
|
59
|
+
const resolved = resolveHotEntity(entity);
|
|
60
|
+
token = hotEntityCacheTokens.get(resolved) || {};
|
|
61
|
+
hotEntityCacheTokens.set(entity, token);
|
|
62
|
+
hotEntityCacheTokens.set(resolved, token);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return token;
|
|
66
|
+
}
|
|
47
67
|
|
|
48
68
|
function resolveHotEntity(entity) {
|
|
49
69
|
entity = getComponentEntity(entity);
|
|
@@ -127,6 +147,11 @@ export function replaceComponentEntity(componentCore, nextEntity) {
|
|
|
127
147
|
const oldEntity = getComponentEntity(componentCore.entity);
|
|
128
148
|
const newEntity = resolveHotEntity(nextEntity);
|
|
129
149
|
|
|
150
|
+
const cacheToken = hotEntityCacheTokens.get(oldEntity) || hotEntityCacheTokens.get(newEntity) || {};
|
|
151
|
+
|
|
152
|
+
hotEntityCacheTokens.set(oldEntity, cacheToken);
|
|
153
|
+
hotEntityCacheTokens.set(newEntity, cacheToken);
|
|
154
|
+
|
|
130
155
|
if (oldEntity === newEntity) {
|
|
131
156
|
return true;
|
|
132
157
|
}
|
|
@@ -157,7 +182,8 @@ export function replaceComponentEntity(componentCore, nextEntity) {
|
|
|
157
182
|
return true;
|
|
158
183
|
}
|
|
159
184
|
|
|
160
|
-
export function replaceAllComponentInstances(oldEntity, newEntity)
|
|
185
|
+
export function replaceAllComponentInstances(oldEntity, newEntity)
|
|
186
|
+
{
|
|
161
187
|
oldEntity = getComponentEntity(oldEntity);
|
|
162
188
|
newEntity = getComponentEntity(newEntity);
|
|
163
189
|
|
|
@@ -174,8 +200,11 @@ export function replaceAllComponentInstances(oldEntity, newEntity) {
|
|
|
174
200
|
return 0;
|
|
175
201
|
}
|
|
176
202
|
|
|
177
|
-
|
|
178
|
-
|
|
203
|
+
const cacheToken = hotEntityCacheTokens.get(oldEntity) || hotEntityCacheTokens.get(newEntity) || {};
|
|
204
|
+
|
|
205
|
+
hotEntityCacheTokens.set(oldEntity, cacheToken);
|
|
206
|
+
hotEntityCacheTokens.set(newEntity, cacheToken);
|
|
207
|
+
|
|
179
208
|
hotEntityAliases.set(oldEntity, newEntity);
|
|
180
209
|
|
|
181
210
|
const instances = componentInstances.get(oldEntity);
|
|
@@ -199,6 +228,7 @@ export function replaceAllComponentInstances(oldEntity, newEntity) {
|
|
|
199
228
|
}
|
|
200
229
|
|
|
201
230
|
|
|
231
|
+
|
|
202
232
|
/*
|
|
203
233
|
ComponentCache is for internal use. It is the heart of the JSX runtime,
|
|
204
234
|
it holds child components and detects which one is being rendered or updated.
|
|
@@ -351,20 +381,24 @@ class ComponentCore
|
|
|
351
381
|
|
|
352
382
|
if(do_rerender) {
|
|
353
383
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
384
|
+
if(DEBUG) {
|
|
385
|
+
if(this.entity?.propTypes) {
|
|
386
|
+
PropTypes.checkPropTypes( this.entity.propTypes, next_props, 'prop', this.entity.name );
|
|
387
|
+
}
|
|
388
|
+
else if(this.component?.propTypes) {
|
|
389
|
+
PropTypes.checkPropTypes( this.component.propTypes, next_props, 'prop', this.component.name );
|
|
390
|
+
}
|
|
361
391
|
}
|
|
362
392
|
|
|
363
|
-
}
|
|
364
393
|
if(typeof(next_state)==='function') next_state = next_state(this.state);
|
|
365
394
|
|
|
366
|
-
|
|
367
|
-
|
|
395
|
+
const defaultProps = this.entity?.defaultProps || this.component?.constructor?.defaultProps;
|
|
396
|
+
|
|
397
|
+
if (defaultProps) {
|
|
398
|
+
next_props = {
|
|
399
|
+
...defaultProps,
|
|
400
|
+
...(next_props || {}),
|
|
401
|
+
};
|
|
368
402
|
}
|
|
369
403
|
|
|
370
404
|
if(this?.parent?.component?.context || this?.parent?.component?.getChildContext ) {
|
|
@@ -939,24 +973,43 @@ function constructFunc(core, parent) {
|
|
|
939
973
|
}
|
|
940
974
|
|
|
941
975
|
|
|
942
|
-
function prepareCore(parent, core)
|
|
976
|
+
function prepareCore(parent, core)
|
|
977
|
+
{
|
|
943
978
|
try {
|
|
944
979
|
parent.cache ??= new ComponentCache(parent);
|
|
945
980
|
|
|
946
981
|
const isText = core[TEXT] !== undefined;
|
|
982
|
+
const isExistingCore = core instanceof ComponentCore;
|
|
947
983
|
|
|
948
|
-
const
|
|
949
|
-
|
|
950
|
-
|
|
984
|
+
const entity = isText || isExistingCore
|
|
985
|
+
? undefined
|
|
986
|
+
: resolveHotEntity(core.entity);
|
|
951
987
|
|
|
952
|
-
const
|
|
953
|
-
|
|
954
|
-
|
|
988
|
+
const hasExplicitKey =
|
|
989
|
+
!isText &&
|
|
990
|
+
core.props &&
|
|
991
|
+
core.props.key !== undefined &&
|
|
992
|
+
core.props.key !== null;
|
|
993
|
+
|
|
994
|
+
let key;
|
|
995
|
+
|
|
996
|
+
if (isText) {
|
|
997
|
+
key = ':text:';
|
|
998
|
+
}
|
|
999
|
+
else if (hasExplicitKey) {
|
|
1000
|
+
key = core.props.key;
|
|
1001
|
+
}
|
|
1002
|
+
else if (typeof entity === "function") {
|
|
1003
|
+
key = getHotEntityCacheToken(entity);
|
|
1004
|
+
}
|
|
1005
|
+
else {
|
|
1006
|
+
key = entity;
|
|
1007
|
+
}
|
|
955
1008
|
|
|
956
1009
|
return parent.cache.pick(
|
|
957
1010
|
key,
|
|
958
1011
|
() => (
|
|
959
|
-
isText ||
|
|
1012
|
+
isText || isExistingCore
|
|
960
1013
|
? core
|
|
961
1014
|
: constructFunc(core, parent)[CORE]
|
|
962
1015
|
),
|
|
@@ -1352,7 +1405,6 @@ export class RootComponent extends HTMLComponent
|
|
|
1352
1405
|
|
|
1353
1406
|
export function createComponent(entity, props={}, ...children)
|
|
1354
1407
|
{
|
|
1355
|
-
|
|
1356
1408
|
if (typeof(entity)!=='string' && typeof(entity)!=='function' )
|
|
1357
1409
|
{
|
|
1358
1410
|
if(typeof(entity)!=='object' || !entity[MEMOIZED]) {
|
package/src/hooks.jsx
CHANGED
|
@@ -85,7 +85,7 @@ export function useState(initialValue)
|
|
|
85
85
|
* @param {Array<any>} deps - Dependency list.
|
|
86
86
|
* @returns {Function} Memoized callback.
|
|
87
87
|
*/
|
|
88
|
-
export function useCallback(callback, deps
|
|
88
|
+
export function useCallback(callback, deps)
|
|
89
89
|
{
|
|
90
90
|
if(
|
|
91
91
|
deps !== undefined && !Array.isArray(deps) &&
|
|
@@ -270,7 +270,7 @@ export function useRef(initialValue = null)
|
|
|
270
270
|
* used to determine when to re-run the effect.
|
|
271
271
|
* @returns {void}
|
|
272
272
|
*/
|
|
273
|
-
export async function useLayoutEffect(effect, deps
|
|
273
|
+
export async function useLayoutEffect(effect, deps)
|
|
274
274
|
{
|
|
275
275
|
if(
|
|
276
276
|
deps !== undefined && !Array.isArray(deps) &&
|
|
@@ -306,7 +306,7 @@ export async function useLayoutEffect(effect, deps=undefined)
|
|
|
306
306
|
* used to determine when to re-run the effect.
|
|
307
307
|
* @returns {void}
|
|
308
308
|
*/
|
|
309
|
-
export async function useEffect(effect, deps
|
|
309
|
+
export async function useEffect(effect, deps)
|
|
310
310
|
{
|
|
311
311
|
if(
|
|
312
312
|
deps !== undefined && !Array.isArray(deps) &&
|
|
@@ -343,7 +343,7 @@ export async function useEffect(effect, deps=undefined)
|
|
|
343
343
|
* used to determine when to re-run the effect.
|
|
344
344
|
* @returns void
|
|
345
345
|
*/
|
|
346
|
-
export async function useInsertionEffect(effect, deps
|
|
346
|
+
export async function useInsertionEffect(effect, deps)
|
|
347
347
|
{
|
|
348
348
|
if(
|
|
349
349
|
deps !== undefined && !Array.isArray(deps) &&
|
|
@@ -380,7 +380,7 @@ export async function useInsertionEffect(effect, deps=undefined)
|
|
|
380
380
|
* used to determine when to recompute the value.
|
|
381
381
|
* @returns {any} Memoized value.
|
|
382
382
|
*/
|
|
383
|
-
export function useMemo(factory,deps
|
|
383
|
+
export function useMemo(factory,deps)
|
|
384
384
|
{
|
|
385
385
|
if(
|
|
386
386
|
deps !== undefined && !Array.isArray(deps) &&
|
|
@@ -533,7 +533,7 @@ export function useDeferredValue(value, initialValue)
|
|
|
533
533
|
* Dependency list that controls when the exposed value is recalculated.
|
|
534
534
|
* @returns {void}
|
|
535
535
|
*/
|
|
536
|
-
export function useImperativeHandle(ref, factory, deps
|
|
536
|
+
export function useImperativeHandle(ref, factory, deps)
|
|
537
537
|
{
|
|
538
538
|
if(deps!==undefined && ref?.deps!==undefined && shallowEqual(deps, ref.deps)) return;
|
|
539
539
|
|
package/src/run.jsx
CHANGED
|
@@ -107,6 +107,7 @@ function report(value, path) {
|
|
|
107
107
|
return error;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
+
/** @ignore */
|
|
110
111
|
export const required_scripts = {};
|
|
111
112
|
|
|
112
113
|
function createModule(path, {
|
|
@@ -118,14 +119,8 @@ function createModule(path, {
|
|
|
118
119
|
mappings: [],
|
|
119
120
|
meta: {},
|
|
120
121
|
exports: {},
|
|
121
|
-
|
|
122
|
-
// True only after the module has been successfully evaluated.
|
|
123
122
|
loaded: false,
|
|
124
|
-
|
|
125
|
-
// The promise for the request currently loading this resource.
|
|
126
|
-
// This is deliberately stored on the module to deduplicate requests.
|
|
127
123
|
request: undefined,
|
|
128
|
-
|
|
129
124
|
error: undefined,
|
|
130
125
|
};
|
|
131
126
|
|
|
@@ -228,6 +223,23 @@ function loadModule(path, options = {}) {
|
|
|
228
223
|
);
|
|
229
224
|
}
|
|
230
225
|
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Loads a module using Lilact's module loader.
|
|
229
|
+
*
|
|
230
|
+
* This function provides the runtime `require()` implementation used by
|
|
231
|
+
* transpiled Lilact modules.
|
|
232
|
+
*
|
|
233
|
+
* @param {string} path - Module path or URL to load.
|
|
234
|
+
* @param {object} [options] - Module-loading options.
|
|
235
|
+
* @param {{path: string}} [options.requirer] - Module that requested this
|
|
236
|
+
* resource.
|
|
237
|
+
* @param {boolean} [options.isLazy=false] - Forces asynchronous loading.
|
|
238
|
+
* @param {boolean} [options.forceReload=false] - Reloads the module even if
|
|
239
|
+
* it has already been evaluated.
|
|
240
|
+
* @returns {*} The module exports, or a Promise for asynchronous modules.
|
|
241
|
+
* @throws {Error} If the module cannot be loaded or evaluated.
|
|
242
|
+
*/
|
|
231
243
|
export function require(path)
|
|
232
244
|
{
|
|
233
245
|
let options = {};
|
|
@@ -318,6 +330,24 @@ function replaceReloadedExports(previousExports, nextExports) {
|
|
|
318
330
|
}
|
|
319
331
|
|
|
320
332
|
|
|
333
|
+
/**
|
|
334
|
+
* Transpiles and evaluates JSX source code as a Lilact module.
|
|
335
|
+
*
|
|
336
|
+
* The source is registered under the supplied path, transpiled with source
|
|
337
|
+
* mappings and runtime tracing enabled, evaluated in the global Lilact
|
|
338
|
+
* runtime, and returned as module exports. Reloaded component exports are
|
|
339
|
+
* compared with their previous versions to support hot loading.
|
|
340
|
+
*
|
|
341
|
+
* @param {string} jsx - JSX or JavaScript source code to evaluate.
|
|
342
|
+
* @param {string} [path=`InlineJSX-${Lilact.eval_num + 1}`] - Module path
|
|
343
|
+
* used for caching, diagnostics, and source mapping.
|
|
344
|
+
* @param {object} [options] - Evaluation options.
|
|
345
|
+
* @param {boolean} [options.forceReload=false] - Forces dependent resources
|
|
346
|
+
* to reload when they are required.
|
|
347
|
+
* @returns {*} The evaluated module exports.
|
|
348
|
+
* @throws {Error} If transpilation or runtime evaluation fails.
|
|
349
|
+
*/
|
|
350
|
+
|
|
321
351
|
export function run(
|
|
322
352
|
jsx,
|
|
323
353
|
path = `InlineJSX-${++Lilact.eval_num}`,
|
|
@@ -371,6 +401,7 @@ export function run(
|
|
|
371
401
|
throw error;
|
|
372
402
|
}
|
|
373
403
|
|
|
404
|
+
// console.log(processed)
|
|
374
405
|
if (typeof Lilact.scanBlockLabels === "function") {
|
|
375
406
|
Lilact.scanBlockLabels(processed, path);
|
|
376
407
|
}
|
|
@@ -473,6 +504,19 @@ function loadAsyncResource(path, module, options = {})
|
|
|
473
504
|
return request;
|
|
474
505
|
}
|
|
475
506
|
|
|
507
|
+
/**
|
|
508
|
+
* Creates a lazily evaluated component from a module or promise factory.
|
|
509
|
+
*
|
|
510
|
+
* The factory is executed while lazy-loading mode is enabled. The returned
|
|
511
|
+
* component suspends by throwing the pending promise until the factory
|
|
512
|
+
* resolves, or throws the loading error if the factory fails.
|
|
513
|
+
*
|
|
514
|
+
* @param {Function} factory - Function that returns a component, module,
|
|
515
|
+
* promise, or thenable resolving to a component or module.
|
|
516
|
+
* @returns {Function} A component that renders the resolved component.
|
|
517
|
+
* @throws {*} The pending promise or loading error while the component is
|
|
518
|
+
* unresolved.
|
|
519
|
+
*/
|
|
476
520
|
export function lazy(factory)
|
|
477
521
|
{
|
|
478
522
|
let status = "pending";
|
|
@@ -526,6 +570,18 @@ function scriptTags()
|
|
|
526
570
|
}));
|
|
527
571
|
}
|
|
528
572
|
|
|
573
|
+
/**
|
|
574
|
+
* Loads and evaluates every JSX script in the current document.
|
|
575
|
+
*
|
|
576
|
+
* External scripts are loaded through {@link require}. Inline scripts are
|
|
577
|
+
* evaluated directly through {@link run}. Scripts are processed in document
|
|
578
|
+
* order.
|
|
579
|
+
*
|
|
580
|
+
* @returns {Promise<void>} A promise that resolves after all scripts finish.
|
|
581
|
+
* @throws {Error} If an external or inline script cannot be loaded or
|
|
582
|
+
* evaluated.
|
|
583
|
+
*/
|
|
584
|
+
|
|
529
585
|
export async function runScripts() {
|
|
530
586
|
for (const script of scriptTags()) {
|
|
531
587
|
if (script.src) {
|
|
@@ -1 +0,0 @@
|
|
|
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>required_scripts | 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="../modules/run.html">run</a></li><li><a href="" aria-current="page">required_scripts</a></li></ul><h1>Variable required_scripts<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">required_scripts</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{}</span><span class="tsd-signature-symbol"> = {}</span></div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul class="tsd-parameters"></ul></div><aside class="tsd-sources"><ul><li>Defined in run.jsx:110</li></ul></aside></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>
|