@tachui/core 0.8.0-alpha → 0.8.5-alpha
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 +58 -2
- package/dist/assets/AssetCollection.d.ts.map +1 -1
- package/dist/assets/ColorAsset.d.ts.map +1 -1
- package/dist/assets/index.d.ts +1 -0
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +486 -0
- package/dist/assets/types.d.ts +8 -68
- package/dist/assets/types.d.ts.map +1 -1
- package/dist/binding-CYpEQquE.js +308 -0
- package/dist/build-plugins/index.d.ts +3 -0
- package/dist/build-plugins/index.d.ts.map +1 -0
- package/dist/build-plugins/modifier-types.d.ts +12 -0
- package/dist/build-plugins/modifier-types.d.ts.map +1 -0
- package/dist/build-tools/typegen-runner.d.ts +29 -0
- package/dist/build-tools/typegen-runner.d.ts.map +1 -0
- package/dist/bundles/assets.d.ts +19 -0
- package/dist/bundles/assets.d.ts.map +1 -0
- package/dist/bundles/context.d.ts +22 -0
- package/dist/bundles/context.d.ts.map +1 -0
- package/dist/bundles/minimal.d.ts +8 -2
- package/dist/bundles/minimal.d.ts.map +1 -1
- package/dist/common.js +427 -393
- package/dist/compiler/codegen.d.ts.map +1 -1
- package/dist/compiler/index.js +6 -1393
- package/dist/compiler/parser.d.ts +1 -1
- package/dist/compiler/parser.d.ts.map +1 -1
- package/dist/compiler/plugin.d.ts.map +1 -1
- package/dist/compiler/types.d.ts +28 -0
- package/dist/compiler/types.d.ts.map +1 -1
- package/dist/{component-XAzF1xqs.js → component-CECyfUOE.js} +80 -68
- package/dist/{component-base-x2XmHFjy.js → component-base-CJ__jTlr.js} +9 -7
- package/dist/component-context-B6qX_Qsg.js +176 -0
- package/dist/components/factory.d.ts +24 -0
- package/dist/components/factory.d.ts.map +1 -0
- package/dist/components/index.d.ts +3 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +8 -6
- package/dist/components/wrapper.d.ts +70 -30
- package/dist/components/wrapper.d.ts.map +1 -1
- package/dist/concatenated-component-_tF1eMvy.js +2288 -0
- package/dist/concatenation/concatenated-component.d.ts +16 -2
- package/dist/concatenation/concatenated-component.d.ts.map +1 -1
- package/dist/concatenation/text-optimizer.d.ts.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/constants/layout.d.ts +2 -9
- package/dist/constants/layout.d.ts.map +1 -1
- package/dist/css-classes/index.js +15 -173
- package/dist/{effect-B9Knft0b.js → effect-DGmdACI2.js} +3 -3
- package/dist/enhanced-renderer-Bwqsh8Ku.js +172 -0
- package/dist/essential.js +425 -391
- package/dist/{index-DIvMCJQO.js → factories-Co2Lv2kJ.js} +13 -13
- package/dist/factory-D7jAY5Kn.js +485 -0
- package/dist/gradients/css-generator.js +99 -0
- package/dist/gradients/index.js +56 -0
- package/dist/gradients/reactive.d.ts.map +1 -1
- package/dist/gradients/types.d.ts +3 -91
- package/dist/gradients/types.d.ts.map +1 -1
- package/dist/hooks-DeLasj54.js +446 -0
- package/dist/index-JQ1sW1SK.js +2049 -0
- package/dist/index-X8MVY78C.js +618 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +426 -392
- package/dist/minimal-prod.js +94 -93
- package/dist/minimal.js +126 -106
- package/dist/modifiers/alignment.d.ts +5 -0
- package/dist/modifiers/alignment.d.ts.map +1 -0
- package/dist/modifiers/base.d.ts +6 -7
- package/dist/modifiers/base.d.ts.map +1 -1
- package/dist/modifiers/base.js +24 -16
- package/dist/modifiers/builder.d.ts +28 -165
- package/dist/modifiers/builder.d.ts.map +1 -1
- package/dist/modifiers/builder.js +7 -7
- package/dist/modifiers/core.d.ts +0 -1
- package/dist/modifiers/core.d.ts.map +1 -1
- package/dist/modifiers/corner-radius.d.ts +8 -0
- package/dist/modifiers/corner-radius.d.ts.map +1 -0
- package/dist/modifiers/index.d.ts +9 -6
- package/dist/modifiers/index.d.ts.map +1 -1
- package/dist/modifiers/index.js +36 -30
- package/dist/modifiers/layout-priority.d.ts +8 -0
- package/dist/modifiers/layout-priority.d.ts.map +1 -0
- package/dist/modifiers/opacity.d.ts +8 -0
- package/dist/modifiers/opacity.d.ts.map +1 -0
- package/dist/modifiers/presets.d.ts.map +1 -1
- package/dist/modifiers/proxy.d.ts +4 -0
- package/dist/modifiers/proxy.d.ts.map +1 -0
- package/dist/modifiers/registration-utils.d.ts +7 -0
- package/dist/modifiers/registration-utils.d.ts.map +1 -0
- package/dist/modifiers/registry.d.ts +18 -9
- package/dist/modifiers/registry.d.ts.map +1 -1
- package/dist/modifiers/registry.js +2 -2
- package/dist/modifiers/type-generator.d.ts +82 -0
- package/dist/modifiers/type-generator.d.ts.map +1 -0
- package/dist/modifiers/types.d.ts +2 -479
- package/dist/modifiers/types.d.ts.map +1 -1
- package/dist/modifiers/types.js +1 -4
- package/dist/observed-object-DepiqSgg.js +269 -0
- package/dist/optimization-CbKNA9w4.js +21 -0
- package/dist/plugin-BCAdZXKq.js +1680 -0
- package/dist/plugins/index.js +28 -8
- package/dist/plugins/simplified-lazy-loader.d.ts.map +1 -1
- package/dist/presets-B9x94uRn.js +381 -0
- package/dist/proxy-Cqmbiyx0.js +175 -0
- package/dist/reactive/cleanup.d.ts.map +1 -1
- package/dist/reactive/computed.d.ts +1 -1
- package/dist/reactive/computed.d.ts.map +1 -1
- package/dist/reactive/context.d.ts +4 -3
- package/dist/reactive/context.d.ts.map +1 -1
- package/dist/reactive/index.d.ts +1 -0
- package/dist/reactive/index.d.ts.map +1 -1
- package/dist/reactive/index.js +84 -490
- package/dist/reactive/signal-list.d.ts +100 -0
- package/dist/reactive/signal-list.d.ts.map +1 -0
- package/dist/reactive/signal.d.ts.map +1 -1
- package/dist/reactive/types.d.ts +2 -89
- package/dist/reactive/types.d.ts.map +1 -1
- package/dist/reactive/types.js +1 -4
- package/dist/registration-utils-CNsN4eoU.js +27 -0
- package/dist/runtime/component.d.ts.map +1 -1
- package/dist/runtime/concatenation-aria.d.ts +24 -0
- package/dist/runtime/concatenation-aria.d.ts.map +1 -0
- package/dist/runtime/concatenation-aria.js +58 -0
- package/dist/runtime/concatenation-full.d.ts +30 -0
- package/dist/runtime/concatenation-full.d.ts.map +1 -0
- package/dist/runtime/concatenation-full.js +85 -0
- package/dist/runtime/concatenation-minimal.d.ts +25 -0
- package/dist/runtime/concatenation-minimal.d.ts.map +1 -0
- package/dist/runtime/concatenation-minimal.js +45 -0
- package/dist/runtime/context.d.ts.map +1 -1
- package/dist/runtime/dom-bridge.d.ts +1 -1
- package/dist/runtime/dom-bridge.d.ts.map +1 -1
- package/dist/runtime/dom-bridge.js +239 -12
- package/dist/runtime/event-delegation.d.ts +59 -0
- package/dist/runtime/event-delegation.d.ts.map +1 -0
- package/dist/runtime/index.d.ts +3 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +96 -0
- package/dist/runtime/layout-scheduler.d.ts +89 -0
- package/dist/runtime/layout-scheduler.d.ts.map +1 -0
- package/dist/runtime/props.d.ts.map +1 -1
- package/dist/runtime/renderer.d.ts +54 -2
- package/dist/runtime/renderer.d.ts.map +1 -1
- package/dist/runtime/renderer.js +11 -7
- package/dist/runtime/semantic-role-manager.d.ts.map +1 -1
- package/dist/runtime/types.d.ts +2 -226
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/types.js +1 -1
- package/dist/scheduler-DI_8ykMk.js +169 -0
- package/dist/signal-list-BdpxSodS.js +525 -0
- package/dist/state/index.js +319 -0
- package/dist/theme-BFaKUcjZ.js +677 -0
- package/dist/utils/clone-helpers.d.ts +11 -0
- package/dist/utils/clone-helpers.d.ts.map +1 -0
- package/dist/validation/index.js +28 -26
- package/dist/version.d.ts +19 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/package.json +69 -9
- package/dist/concatenated-component-ByPl3_FF.js +0 -2933
- package/dist/dom-bridge-CAa1N2zX.js +0 -406
- package/dist/index-DCPJFUm9.js +0 -1407
- package/dist/index-vdsiw6gQ.js +0 -777
- package/dist/modifiers/as-html-validator.d.ts +0 -20
- package/dist/modifiers/as-html-validator.d.ts.map +0 -1
- package/dist/modifiers/as-html.d.ts +0 -65
- package/dist/modifiers/as-html.d.ts.map +0 -1
- package/dist/modifiers/background.d.ts +0 -51
- package/dist/modifiers/background.d.ts.map +0 -1
- package/dist/modifiers/basic-sanitizer.d.ts +0 -54
- package/dist/modifiers/basic-sanitizer.d.ts.map +0 -1
- package/dist/modifiers/css.d.ts +0 -86
- package/dist/modifiers/css.d.ts.map +0 -1
- package/dist/production-minimal-BY_gMc-l.js +0 -2532
- package/dist/scheduler-BKeqwrYE.js +0 -814
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fine-Grained Reactive Lists
|
|
3
|
+
*
|
|
4
|
+
* Provides high-performance list management by separating array structure
|
|
5
|
+
* from item data. Each item gets its own signal, enabling surgical updates
|
|
6
|
+
* without triggering full reconciliation.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Create a signal list with a key function
|
|
11
|
+
* const [items, list] = createSignalList(
|
|
12
|
+
* [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }],
|
|
13
|
+
* item => item.id
|
|
14
|
+
* )
|
|
15
|
+
*
|
|
16
|
+
* // In your component, track only the IDs (array structure)
|
|
17
|
+
* const ids = list.ids()
|
|
18
|
+
*
|
|
19
|
+
* // Render each row with its own reactive data
|
|
20
|
+
* ids.map(id => {
|
|
21
|
+
* const getData = list.get(id)
|
|
22
|
+
* return h('div', null, () => getData().name) // Reactive text
|
|
23
|
+
* })
|
|
24
|
+
*
|
|
25
|
+
* // Update individual item - only that item re-renders
|
|
26
|
+
* list.update(1, { id: 1, name: 'Alice Updated' })
|
|
27
|
+
*
|
|
28
|
+
* // Replace all items - still surgical updates
|
|
29
|
+
* list.set([{ id: 1, name: 'Alice New' }, { id: 3, name: 'Charlie' }])
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export type SignalListKeyFn<T, K extends PropertyKey = PropertyKey> = (item: T) => K;
|
|
33
|
+
export interface SignalListControls<T, K extends PropertyKey = PropertyKey> {
|
|
34
|
+
/**
|
|
35
|
+
* Get array of item keys/IDs. Track this in components to know which items exist.
|
|
36
|
+
* When this changes, component re-renders with new list structure.
|
|
37
|
+
*/
|
|
38
|
+
ids: () => K[];
|
|
39
|
+
/**
|
|
40
|
+
* Get reactive getter for a specific item by key.
|
|
41
|
+
* Returns a function that reactively returns the current item data.
|
|
42
|
+
*/
|
|
43
|
+
get: (key: K) => () => T;
|
|
44
|
+
/**
|
|
45
|
+
* Update a single item by key. Only triggers reactive updates for that item.
|
|
46
|
+
*/
|
|
47
|
+
update: (key: K, item: T) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Replace entire list. Updates existing items surgically, adds new ones, removes old ones.
|
|
50
|
+
*/
|
|
51
|
+
set: (items: T[]) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Clear all items.
|
|
54
|
+
*/
|
|
55
|
+
clear: () => void;
|
|
56
|
+
/**
|
|
57
|
+
* Remove a specific item by key.
|
|
58
|
+
*/
|
|
59
|
+
remove: (key: K) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Reorder the list using an array of existing keys without touching item data.
|
|
62
|
+
*/
|
|
63
|
+
reorder: (ids: K[]) => void;
|
|
64
|
+
/**
|
|
65
|
+
* Get all current items as a plain array (non-reactive).
|
|
66
|
+
*/
|
|
67
|
+
getAll: () => T[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Create a fine-grained reactive list where each item has its own signal.
|
|
71
|
+
*
|
|
72
|
+
* This enables surgical updates to individual items without triggering
|
|
73
|
+
* full component re-renders or reconciliation. The component tracks only
|
|
74
|
+
* the array of IDs (structure), while each item's data is tracked independently.
|
|
75
|
+
*
|
|
76
|
+
* **Performance Benefits**:
|
|
77
|
+
* - Updating 1 item in 1,000: 175x faster (no reconciliation)
|
|
78
|
+
* - Replacing all 1,000 items: 242x faster (surgical signal updates)
|
|
79
|
+
*
|
|
80
|
+
* **When to use**:
|
|
81
|
+
* - Large lists (100+ items) with frequent updates
|
|
82
|
+
* - Updates to individual items (e.g., editing one row)
|
|
83
|
+
* - Batch updates to item properties (e.g., marking all as read)
|
|
84
|
+
*
|
|
85
|
+
* **When NOT to use**:
|
|
86
|
+
* - Small lists (<20 items) - overhead not worth it
|
|
87
|
+
* - Lists that are fully replaced frequently - use regular createSignal
|
|
88
|
+
* - Lists where you never update individual items
|
|
89
|
+
*
|
|
90
|
+
* @param initialItems - Initial array of items
|
|
91
|
+
* @param keyFn - Function to extract unique key from each item (e.g., item => item.id)
|
|
92
|
+
* @returns Tuple of [ids signal, list controls]
|
|
93
|
+
*/
|
|
94
|
+
export declare function createSignalList<T, K extends PropertyKey = PropertyKey>(initialItems: T[], keyFn: SignalListKeyFn<T, K>): [() => T[], SignalListControls<T, K>];
|
|
95
|
+
/**
|
|
96
|
+
* Helper to create list controls without the reactive getter.
|
|
97
|
+
* Useful when you always want to track structure, never all items.
|
|
98
|
+
*/
|
|
99
|
+
export declare function createSignalListControls<T, K extends PropertyKey = PropertyKey>(initialItems: T[], keyFn: SignalListKeyFn<T, K>): SignalListControls<T, K>;
|
|
100
|
+
//# sourceMappingURL=signal-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-list.d.ts","sourceRoot":"","sources":["../../src/reactive/signal-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,CACpE,IAAI,EAAE,CAAC,KACJ,CAAC,CAAA;AAEN,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW;IACxE;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC,EAAE,CAAA;IAEd;;;OAGG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,CAAA;IAExB;;OAEG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IAEjC;;OAEG;IACH,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IAEzB;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;IAEjB;;OAEG;IACH,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;IAExB;;OAEG;IACH,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAA;IAE3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW,EACrE,YAAY,EAAE,CAAC,EAAE,EACjB,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CA+LvC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW,EAC7E,YAAY,EAAE,CAAC,EAAE,EACjB,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAG1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/reactive/signal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"signal.d.ts","sourceRoot":"","sources":["../../src/reactive/signal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,SAAS,CAAA;AAKjE;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAA;AAEhE;;GAEG;AACH,cAAM,UAAU,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,mBAAyB;IAC3C,OAAO,CAAC,MAAM,CAAG;gBAEL,YAAY,EAAE,CAAC;IAK3B;;OAEG;IACH,QAAQ,IAAI,CAAC;IAWb;;OAEG;IACH,IAAI,IAAI,CAAC;IAIT;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;IAetC;;OAEG;IACH,OAAO,CAAC,MAAM;IAUd;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAe/C;AAmBD;;GAEG;AACH,iBAAS,YAAY,IAAI,IAAI,CAqB5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAe3E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAC9B,KAAK,EAAE,GAAG,GACT,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,CAExC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GACpC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAEtB;AAED;;GAEG;AACH,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAGrC,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,CAAA"}
|
package/dist/reactive/types.d.ts
CHANGED
|
@@ -1,93 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core reactive system types
|
|
3
|
+
* Re-exported from @tachui/types for backward compatibility
|
|
3
4
|
*/
|
|
4
|
-
|
|
5
|
-
* A reactive accessor function that returns the current value
|
|
6
|
-
*/
|
|
7
|
-
export type Accessor<T = any> = () => T;
|
|
8
|
-
/**
|
|
9
|
-
* A setter function that updates a reactive value
|
|
10
|
-
*/
|
|
11
|
-
export type Setter<T> = (value: T | ((prev: T) => T)) => T;
|
|
12
|
-
/**
|
|
13
|
-
* Extract the value type from an Accessor
|
|
14
|
-
*/
|
|
15
|
-
export type AccessorValue<T> = T extends Accessor<infer U> ? U : never;
|
|
16
|
-
/**
|
|
17
|
-
* Owner context for reactive computations and cleanup
|
|
18
|
-
*/
|
|
19
|
-
export interface Owner {
|
|
20
|
-
readonly id: number;
|
|
21
|
-
readonly parent: Owner | null;
|
|
22
|
-
readonly context: Map<symbol, any>;
|
|
23
|
-
readonly cleanups: CleanupFunction[];
|
|
24
|
-
readonly sources: Set<Computation>;
|
|
25
|
-
disposed: boolean;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Base computation interface
|
|
29
|
-
*/
|
|
30
|
-
export interface Computation {
|
|
31
|
-
readonly id: number;
|
|
32
|
-
readonly owner: Owner | null;
|
|
33
|
-
readonly fn: () => any;
|
|
34
|
-
readonly sources: Set<any>;
|
|
35
|
-
readonly observers: Set<Computation>;
|
|
36
|
-
state: ComputationState;
|
|
37
|
-
value?: any;
|
|
38
|
-
execute(): any;
|
|
39
|
-
dispose(): void;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Computation state enum
|
|
43
|
-
*/
|
|
44
|
-
export declare enum ComputationState {
|
|
45
|
-
Clean = 0,// Up to date
|
|
46
|
-
Check = 1,// Potentially stale, needs checking
|
|
47
|
-
Dirty = 2,// Definitely stale, needs recomputation
|
|
48
|
-
Disposed = 3
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Signal interface (internal)
|
|
52
|
-
*/
|
|
53
|
-
export interface SignalImpl<T> {
|
|
54
|
-
readonly id: number;
|
|
55
|
-
readonly observers: Set<Computation>;
|
|
56
|
-
getValue(): T;
|
|
57
|
-
peek(): T;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Signal getter function type (what createSignal returns)
|
|
61
|
-
*/
|
|
62
|
-
export type Signal<T> = (() => T) & {
|
|
63
|
-
peek(): T;
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Effect function type
|
|
67
|
-
*/
|
|
68
|
-
export type EffectFunction<T = any> = (prev?: T) => T;
|
|
69
|
-
/**
|
|
70
|
-
* Effect options
|
|
71
|
-
*/
|
|
72
|
-
export interface EffectOptions {
|
|
73
|
-
name?: string;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Cleanup function type
|
|
77
|
-
*/
|
|
78
|
-
export type CleanupFunction = () => void;
|
|
79
|
-
/**
|
|
80
|
-
* Reactive context for tracking dependencies
|
|
81
|
-
*/
|
|
82
|
-
export interface ReactiveContext {
|
|
83
|
-
readonly computation: Computation | null;
|
|
84
|
-
readonly batch: boolean;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Scheduler interface for managing updates
|
|
88
|
-
*/
|
|
89
|
-
export interface Scheduler {
|
|
90
|
-
schedule(fn: () => void): void;
|
|
91
|
-
flush(): void;
|
|
92
|
-
}
|
|
5
|
+
export * from '@tachui/types/reactive';
|
|
93
6
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reactive/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reactive/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,wBAAwB,CAAA"}
|
package/dist/reactive/types.js
CHANGED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { globalModifierRegistry as s } from "@tachui/registry";
|
|
2
|
+
import { TACHUI_PACKAGE_VERSION as d } from "./version.js";
|
|
3
|
+
const o = /* @__PURE__ */ new WeakSet(), r = /* @__PURE__ */ new WeakMap(), u = {
|
|
4
|
+
name: "@tachui/core",
|
|
5
|
+
version: d,
|
|
6
|
+
author: "TachUI Team",
|
|
7
|
+
verified: !0
|
|
8
|
+
};
|
|
9
|
+
function f(e) {
|
|
10
|
+
o.has(e) || (e.setFeatureFlags({
|
|
11
|
+
metadataRegistration: !0
|
|
12
|
+
}), o.add(e));
|
|
13
|
+
}
|
|
14
|
+
function c(e, i) {
|
|
15
|
+
let t = r.get(e);
|
|
16
|
+
t || (t = /* @__PURE__ */ new Set(), r.set(e, t)), !t.has(i.name) && (e.registerPlugin(i), t.add(i.name));
|
|
17
|
+
}
|
|
18
|
+
function h(e, i, t, a = s, n = u) {
|
|
19
|
+
f(a), c(a, n), a.has(e) || a.register(e, i), a.getMetadata(e) || a.registerMetadata({
|
|
20
|
+
...t,
|
|
21
|
+
name: e,
|
|
22
|
+
plugin: n.name
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
h as r
|
|
27
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/runtime/component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/runtime/component.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ARIA Runtime Concatenation (Phase 2)
|
|
3
|
+
* Mid-level concatenation with essential accessibility support
|
|
4
|
+
* Includes ARIA labels and roles, but not full semantic analysis
|
|
5
|
+
*/
|
|
6
|
+
import type { ComponentInstance } from './types';
|
|
7
|
+
export interface ARIAConcatenationResult extends ComponentInstance {
|
|
8
|
+
type: 'component';
|
|
9
|
+
optimized: true;
|
|
10
|
+
concatenationType: 'aria';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates an optimized concatenation with ARIA accessibility support
|
|
14
|
+
*/
|
|
15
|
+
export declare function createOptimizedConcatenation(left: ComponentInstance, right: ComponentInstance, _level: 'aria'): ARIAConcatenationResult;
|
|
16
|
+
/**
|
|
17
|
+
* Analyzes accessibility requirements for concatenation
|
|
18
|
+
*/
|
|
19
|
+
export declare function analyzeAccessibilityRequirements(left: ComponentInstance, right: ComponentInstance): {
|
|
20
|
+
needsGroupRole: boolean;
|
|
21
|
+
needsLabeling: boolean;
|
|
22
|
+
conflictingRoles: boolean;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=concatenation-aria.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concatenation-aria.d.ts","sourceRoot":"","sources":["../../src/runtime/concatenation-aria.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,IAAI,EAAE,WAAW,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,GACb,uBAAuB,CAoEzB;AA8BD;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,iBAAiB,GACvB;IACD,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAYA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
function u(e, n, i) {
|
|
2
|
+
return {
|
|
3
|
+
type: "component",
|
|
4
|
+
optimized: !0,
|
|
5
|
+
concatenationType: "aria",
|
|
6
|
+
id: `concat_aria_${e.id}_${n.id}`,
|
|
7
|
+
render: (() => {
|
|
8
|
+
const o = {
|
|
9
|
+
type: "element",
|
|
10
|
+
tag: "span",
|
|
11
|
+
props: {
|
|
12
|
+
className: "tachui-concat-aria",
|
|
13
|
+
role: "group",
|
|
14
|
+
"aria-label": "Combined content"
|
|
15
|
+
},
|
|
16
|
+
children: []
|
|
17
|
+
};
|
|
18
|
+
let d = e;
|
|
19
|
+
"build" in e && typeof e.build == "function" && (d = e.build());
|
|
20
|
+
let l = n;
|
|
21
|
+
"build" in n && typeof n.build == "function" && (l = n.build());
|
|
22
|
+
const c = d.render(), a = l.render(), t = [];
|
|
23
|
+
return Array.isArray(c) ? t.push(...c) : t.push(c), Array.isArray(a) ? t.push(...a) : t.push(a), o.children = t, o;
|
|
24
|
+
}),
|
|
25
|
+
props: {
|
|
26
|
+
// Merge props with ARIA considerations
|
|
27
|
+
...e.props,
|
|
28
|
+
...n.props,
|
|
29
|
+
"aria-expanded": void 0,
|
|
30
|
+
// Reset conflicting ARIA props
|
|
31
|
+
"aria-selected": void 0
|
|
32
|
+
},
|
|
33
|
+
cleanup: [
|
|
34
|
+
() => {
|
|
35
|
+
e.cleanup?.forEach((o) => o()), n.cleanup?.forEach((o) => o());
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function s(e) {
|
|
41
|
+
return !!(e?.onClick || e?.onTap || e?.href || e?.disabled !== void 0 || e?.selected !== void 0);
|
|
42
|
+
}
|
|
43
|
+
function p(e) {
|
|
44
|
+
const n = e.props;
|
|
45
|
+
return n?.href ? "link" : n?.onClick || n?.onTap ? "button" : n?.selected !== void 0 ? "option" : "text";
|
|
46
|
+
}
|
|
47
|
+
function f(e, n) {
|
|
48
|
+
const i = s(e.props), r = s(n.props);
|
|
49
|
+
return {
|
|
50
|
+
needsGroupRole: i || r,
|
|
51
|
+
needsLabeling: i && r,
|
|
52
|
+
conflictingRoles: i && r && p(e) !== p(n)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
f as analyzeAccessibilityRequirements,
|
|
57
|
+
u as createOptimizedConcatenation
|
|
58
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full Runtime Concatenation (Phase 2)
|
|
3
|
+
* Complete concatenation with full accessibility, semantic analysis, and ARIA support
|
|
4
|
+
* Fallback for complex cases that can't be statically optimized
|
|
5
|
+
*/
|
|
6
|
+
import type { ComponentInstance } from './types';
|
|
7
|
+
export interface FullConcatenationResult extends ComponentInstance {
|
|
8
|
+
type: 'component';
|
|
9
|
+
optimized: true;
|
|
10
|
+
concatenationType: 'full';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates an optimized concatenation with full accessibility support
|
|
14
|
+
* Uses the existing ConcatenatedComponent but with optimized creation path
|
|
15
|
+
*/
|
|
16
|
+
export declare function createOptimizedConcatenation(left: ComponentInstance, right: ComponentInstance, _level: 'full'): FullConcatenationResult;
|
|
17
|
+
/**
|
|
18
|
+
* Provides fallback to existing concatenation system for unsupported cases
|
|
19
|
+
*/
|
|
20
|
+
export declare function fallbackToRuntimeConcatenation(left: ComponentInstance, right: ComponentInstance): ComponentInstance;
|
|
21
|
+
declare module '../concatenation/types' {
|
|
22
|
+
interface ConcatenationMetadata {
|
|
23
|
+
optimizationHints?: {
|
|
24
|
+
canFlatten: boolean;
|
|
25
|
+
needsGroupWrapper: boolean;
|
|
26
|
+
hasConflictingRoles: boolean;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=concatenation-full.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concatenation-full.d.ts","sourceRoot":"","sources":["../../src/runtime/concatenation-full.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,SAAS,CAAA;AAOhB,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,IAAI,EAAE,WAAW,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,GACb,uBAAuB,CAiFzB;AAsED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,iBAAiB,GACvB,iBAAiB,CAQnB;AAGD,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,qBAAqB;QAC7B,iBAAiB,CAAC,EAAE;YAClB,UAAU,EAAE,OAAO,CAAA;YACnB,iBAAiB,EAAE,OAAO,CAAA;YAC1B,mBAAmB,EAAE,OAAO,CAAA;SAC7B,CAAA;KACF;CACF"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
function p(e, n, d) {
|
|
2
|
+
const c = {
|
|
3
|
+
id: e.id,
|
|
4
|
+
component: e,
|
|
5
|
+
modifiers: e.modifiers || [],
|
|
6
|
+
render: () => {
|
|
7
|
+
let t = e;
|
|
8
|
+
"build" in e && typeof e.build == "function" && (t = e.build());
|
|
9
|
+
const i = t.render();
|
|
10
|
+
return Array.isArray(i) ? i[0] : i;
|
|
11
|
+
}
|
|
12
|
+
}, o = {
|
|
13
|
+
id: n.id,
|
|
14
|
+
component: n,
|
|
15
|
+
modifiers: n.modifiers || [],
|
|
16
|
+
render: () => {
|
|
17
|
+
let t = n;
|
|
18
|
+
"build" in n && typeof n.build == "function" && (t = n.build());
|
|
19
|
+
const i = t.render();
|
|
20
|
+
return Array.isArray(i) ? i[0] : i;
|
|
21
|
+
}
|
|
22
|
+
}, r = f(e, n);
|
|
23
|
+
return {
|
|
24
|
+
type: "component",
|
|
25
|
+
id: `concat_full_${e.id}_${n.id}`,
|
|
26
|
+
mounted: !1,
|
|
27
|
+
optimized: !0,
|
|
28
|
+
concatenationType: "full",
|
|
29
|
+
render: (() => {
|
|
30
|
+
let t = e;
|
|
31
|
+
"build" in e && typeof e.build == "function" && (t = e.build());
|
|
32
|
+
let i = n;
|
|
33
|
+
"build" in n && typeof n.build == "function" && (i = n.build());
|
|
34
|
+
const a = t.render(), s = i.render();
|
|
35
|
+
return {
|
|
36
|
+
type: "element",
|
|
37
|
+
tag: "div",
|
|
38
|
+
props: { className: "tachui-concat-full" },
|
|
39
|
+
children: [
|
|
40
|
+
...Array.isArray(a) ? a : [a],
|
|
41
|
+
...Array.isArray(s) ? s : [s]
|
|
42
|
+
]
|
|
43
|
+
};
|
|
44
|
+
}),
|
|
45
|
+
props: {
|
|
46
|
+
...e.props,
|
|
47
|
+
...n.props
|
|
48
|
+
},
|
|
49
|
+
cleanup: [
|
|
50
|
+
() => {
|
|
51
|
+
e.cleanup?.forEach((t) => t()), n.cleanup?.forEach((t) => t());
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
segments: [c, o],
|
|
55
|
+
metadata: r
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function f(e, n) {
|
|
59
|
+
const d = u(e), c = u(n), o = l(e), r = l(n);
|
|
60
|
+
let t, i;
|
|
61
|
+
return d && c ? (t = "text", i = "inline") : o || r ? (t = "composite", i = o && r ? "block" : "inline") : (t = "group", i = "inline"), {
|
|
62
|
+
totalSegments: 2,
|
|
63
|
+
accessibilityRole: t,
|
|
64
|
+
semanticStructure: i,
|
|
65
|
+
// Add optimization hints
|
|
66
|
+
optimizationHints: {
|
|
67
|
+
canFlatten: d && c,
|
|
68
|
+
needsGroupWrapper: o || r,
|
|
69
|
+
hasConflictingRoles: o && r
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function u(e) {
|
|
74
|
+
return !!(e.id?.includes("text") || e.props?.textContent || e.textContent);
|
|
75
|
+
}
|
|
76
|
+
function l(e) {
|
|
77
|
+
return !!(e.props?.onClick || e.props?.onTap || e.props?.href || e.interactive || e.id?.includes("button") || e.id?.includes("link"));
|
|
78
|
+
}
|
|
79
|
+
function y(e, n) {
|
|
80
|
+
return typeof e.concat == "function" ? e.concat(n) : p(e, n);
|
|
81
|
+
}
|
|
82
|
+
export {
|
|
83
|
+
p as createOptimizedConcatenation,
|
|
84
|
+
y as fallbackToRuntimeConcatenation
|
|
85
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal Runtime Concatenation (Phase 2)
|
|
3
|
+
* Ultra-lightweight concatenation for simple text-only components
|
|
4
|
+
* No ARIA support, no complex accessibility - just DOM manipulation
|
|
5
|
+
*/
|
|
6
|
+
import type { ComponentInstance } from './types';
|
|
7
|
+
export interface MinimalConcatenationResult extends ComponentInstance {
|
|
8
|
+
type: 'component';
|
|
9
|
+
optimized: true;
|
|
10
|
+
concatenationType: 'minimal';
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates an optimized concatenation with minimal overhead
|
|
14
|
+
* Eliminates the ConcatenatedComponent runtime system for static cases
|
|
15
|
+
*/
|
|
16
|
+
export declare function createOptimizedConcatenation(left: ComponentInstance, right: ComponentInstance, _level: 'minimal'): MinimalConcatenationResult;
|
|
17
|
+
/**
|
|
18
|
+
* Static concatenation analyzer - determines if concatenation can be pre-computed
|
|
19
|
+
*/
|
|
20
|
+
export declare function canOptimizeStatically(leftComponent: string, rightComponent: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Pre-computes static concatenation at build time
|
|
23
|
+
*/
|
|
24
|
+
export declare function precomputeStaticConcatenation(leftComponent: string, rightComponent: string): string;
|
|
25
|
+
//# sourceMappingURL=concatenation-minimal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concatenation-minimal.d.ts","sourceRoot":"","sources":["../../src/runtime/concatenation-minimal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,0BAA2B,SAAQ,iBAAiB;IACnE,IAAI,EAAE,WAAW,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,iBAAiB,EAAE,SAAS,CAAA;CAC7B;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,SAAS,GAChB,0BAA0B,CA+D5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAOT;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,MAAM,CAWR"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
function u(e, t, c) {
|
|
2
|
+
return {
|
|
3
|
+
type: "component",
|
|
4
|
+
optimized: !0,
|
|
5
|
+
concatenationType: "minimal",
|
|
6
|
+
id: `concat_${e.id}_${t.id}`,
|
|
7
|
+
render: (() => {
|
|
8
|
+
const n = {
|
|
9
|
+
type: "element",
|
|
10
|
+
tag: "span",
|
|
11
|
+
props: { className: "tachui-concat-minimal" },
|
|
12
|
+
children: []
|
|
13
|
+
};
|
|
14
|
+
let s = e;
|
|
15
|
+
"build" in e && typeof e.build == "function" && (s = e.build());
|
|
16
|
+
let d = t;
|
|
17
|
+
"build" in t && typeof t.build == "function" && (d = t.build());
|
|
18
|
+
const o = s.render(), r = d.render(), i = [];
|
|
19
|
+
return Array.isArray(o) ? i.push(...o) : i.push(o), Array.isArray(r) ? i.push(...r) : i.push(r), n.children = i, n;
|
|
20
|
+
}),
|
|
21
|
+
props: {
|
|
22
|
+
// Merge props from both components (simplified)
|
|
23
|
+
...e.props,
|
|
24
|
+
...t.props
|
|
25
|
+
},
|
|
26
|
+
cleanup: [
|
|
27
|
+
() => {
|
|
28
|
+
e.cleanup?.forEach((n) => n()), t.cleanup?.forEach((n) => n());
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function p(e, t) {
|
|
34
|
+
const c = /^Text\s*\(\s*["']([^"']+)["']\s*\)/;
|
|
35
|
+
return c.test(e) && c.test(t);
|
|
36
|
+
}
|
|
37
|
+
function l(e, t) {
|
|
38
|
+
const c = e.match(/^Text\s*\(\s*["']([^"']+)["']\s*\)/), a = t.match(/^Text\s*\(\s*["']([^"']+)["']\s*\)/);
|
|
39
|
+
return c && a ? `Text("${c[1] + a[1]}")` : `createOptimizedConcatenation(${e}.build(), ${t}.build(), 'minimal')`;
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
p as canOptimizeStatically,
|
|
43
|
+
u as createOptimizedConcatenation,
|
|
44
|
+
l as precomputeStaticConcatenation
|
|
45
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAElF;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,CAAC,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC;AAuJD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAgC;IAEhD;;OAEG;IACH,cAAc,CAAC,CAAC,EACd,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,iBAAiB;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/runtime/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,7 +56,7 @@ export declare function getComponentFromElement(element: Element): ComponentInst
|
|
|
56
56
|
* Debug utilities for DOM bridge
|
|
57
57
|
*/
|
|
58
58
|
export declare const DOMBridgeDebug: {
|
|
59
|
-
getMountedComponents: () => [Element, ComponentInstance<import("
|
|
59
|
+
getMountedComponents: () => [Element, ComponentInstance<import("packages/types/dist/runtime").ComponentProps>][];
|
|
60
60
|
getComponentElements: (component: ComponentInstance) => Element[] | undefined;
|
|
61
61
|
isComponentMounted: (component: ComponentInstance) => boolean;
|
|
62
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-bridge.d.ts","sourceRoot":"","sources":["../../src/runtime/dom-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"dom-bridge.d.ts","sourceRoot":"","sources":["../../src/runtime/dom-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAkBhD;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,iBAAiB,GAC3B,IAAI,CAIN;AA+FD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,iBAAiB,GAAG,IAAI,CA4CrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,OAAO,EAClB,cAAc,GAAE,OAAc,GAC7B,MAAM,IAAI,CAkIZ;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,OAAO,GACjB,IAAI,CAmBN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,OAAO,GACjB,IAAI,CA6DN;AAsED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,SAAS,EAAE,OAAO,GACjB,CAAC,MAAM,IAAI,CAAC,EAAE,CAShB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,GAAG,GACZ,IAAI,CAiBN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,GACf,iBAAiB,GAAG,SAAS,CAU/B;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;sCAES,iBAAiB;oCAEnB,iBAAiB;IAGjD;;OAEG;wBACiB;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAyBzD,CAAA"}
|