@allternit/ix 0.1.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.
Files changed (170) hide show
  1. package/README.md +320 -0
  2. package/dist/adapters/json-render.d.ts +211 -0
  3. package/dist/adapters/json-render.d.ts.bak +211 -0
  4. package/dist/adapters/json-render.d.ts.map +1 -0
  5. package/dist/adapters/json-render.js +576 -0
  6. package/dist/adapters/json-render.js.bak +576 -0
  7. package/dist/adapters/json-render.js.map +1 -0
  8. package/dist/catalog/registry.d.ts +65 -0
  9. package/dist/catalog/registry.d.ts.bak +65 -0
  10. package/dist/catalog/registry.d.ts.map +1 -0
  11. package/dist/catalog/registry.js +388 -0
  12. package/dist/catalog/registry.js.bak +388 -0
  13. package/dist/catalog/registry.js.map +1 -0
  14. package/dist/collab/capsule-registry.d.ts +114 -0
  15. package/dist/collab/capsule-registry.d.ts.bak +114 -0
  16. package/dist/collab/capsule-registry.d.ts.map +1 -0
  17. package/dist/collab/capsule-registry.js +271 -0
  18. package/dist/collab/capsule-registry.js.bak +271 -0
  19. package/dist/collab/capsule-registry.js.map +1 -0
  20. package/dist/collab/index.d.ts +21 -0
  21. package/dist/collab/index.d.ts.bak +21 -0
  22. package/dist/collab/index.d.ts.map +1 -0
  23. package/dist/collab/index.js +32 -0
  24. package/dist/collab/index.js.bak +32 -0
  25. package/dist/collab/index.js.map +1 -0
  26. package/dist/collab/visual-editor.d.ts +199 -0
  27. package/dist/collab/visual-editor.d.ts.bak +199 -0
  28. package/dist/collab/visual-editor.d.ts.map +1 -0
  29. package/dist/collab/visual-editor.js +259 -0
  30. package/dist/collab/visual-editor.js.bak +259 -0
  31. package/dist/collab/visual-editor.js.map +1 -0
  32. package/dist/collab/yjs-adapter.d.ts +95 -0
  33. package/dist/collab/yjs-adapter.d.ts.bak +95 -0
  34. package/dist/collab/yjs-adapter.d.ts.map +1 -0
  35. package/dist/collab/yjs-adapter.js +282 -0
  36. package/dist/collab/yjs-adapter.js.bak +282 -0
  37. package/dist/collab/yjs-adapter.js.map +1 -0
  38. package/dist/collab/yjs-client.d.ts +101 -0
  39. package/dist/collab/yjs-client.d.ts.bak +101 -0
  40. package/dist/collab/yjs-client.d.ts.map +1 -0
  41. package/dist/collab/yjs-client.js +193 -0
  42. package/dist/collab/yjs-client.js.bak +193 -0
  43. package/dist/collab/yjs-client.js.map +1 -0
  44. package/dist/collab/yjs-protocols.d.ts +128 -0
  45. package/dist/collab/yjs-protocols.d.ts.bak +128 -0
  46. package/dist/collab/yjs-protocols.d.ts.map +1 -0
  47. package/dist/collab/yjs-protocols.js +245 -0
  48. package/dist/collab/yjs-protocols.js.bak +245 -0
  49. package/dist/collab/yjs-protocols.js.map +1 -0
  50. package/dist/collab/yjs-types.d.ts +201 -0
  51. package/dist/collab/yjs-types.d.ts.bak +201 -0
  52. package/dist/collab/yjs-types.d.ts.map +1 -0
  53. package/dist/collab/yjs-types.js +45 -0
  54. package/dist/collab/yjs-types.js.bak +45 -0
  55. package/dist/collab/yjs-types.js.map +1 -0
  56. package/dist/index.d.ts +38 -0
  57. package/dist/index.d.ts.bak +38 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +48 -0
  60. package/dist/index.js.bak +48 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/pipeline/llm-to-ix.d.ts +249 -0
  63. package/dist/pipeline/llm-to-ix.d.ts.bak +249 -0
  64. package/dist/pipeline/llm-to-ix.d.ts.map +1 -0
  65. package/dist/pipeline/llm-to-ix.js +992 -0
  66. package/dist/pipeline/llm-to-ix.js.bak +992 -0
  67. package/dist/pipeline/llm-to-ix.js.map +1 -0
  68. package/dist/react/index.d.ts +18 -0
  69. package/dist/react/index.d.ts.bak +18 -0
  70. package/dist/react/index.d.ts.map +1 -0
  71. package/dist/react/index.js +18 -0
  72. package/dist/react/index.js.bak +18 -0
  73. package/dist/react/index.js.map +1 -0
  74. package/dist/react/renderer.d.ts +47 -0
  75. package/dist/react/renderer.d.ts.bak +47 -0
  76. package/dist/react/renderer.d.ts.map +1 -0
  77. package/dist/react/renderer.js +420 -0
  78. package/dist/react/renderer.js.bak +420 -0
  79. package/dist/react/renderer.js.map +1 -0
  80. package/dist/renderer/renderer.d.ts +55 -0
  81. package/dist/renderer/renderer.d.ts.bak +55 -0
  82. package/dist/renderer/renderer.d.ts.map +1 -0
  83. package/dist/renderer/renderer.js +232 -0
  84. package/dist/renderer/renderer.js.bak +232 -0
  85. package/dist/renderer/renderer.js.map +1 -0
  86. package/dist/runtime/capsule-runtime.d.ts +227 -0
  87. package/dist/runtime/capsule-runtime.d.ts.bak +227 -0
  88. package/dist/runtime/capsule-runtime.d.ts.map +1 -0
  89. package/dist/runtime/capsule-runtime.js +563 -0
  90. package/dist/runtime/capsule-runtime.js.bak +563 -0
  91. package/dist/runtime/capsule-runtime.js.map +1 -0
  92. package/dist/runtime/policy-gates.d.ts +116 -0
  93. package/dist/runtime/policy-gates.d.ts.bak +116 -0
  94. package/dist/runtime/policy-gates.d.ts.map +1 -0
  95. package/dist/runtime/policy-gates.js +317 -0
  96. package/dist/runtime/policy-gates.js.bak +317 -0
  97. package/dist/runtime/policy-gates.js.map +1 -0
  98. package/dist/schema/ui-ir.d.ts +26 -0
  99. package/dist/schema/ui-ir.d.ts.bak +26 -0
  100. package/dist/schema/ui-ir.d.ts.map +1 -0
  101. package/dist/schema/ui-ir.js +51 -0
  102. package/dist/schema/ui-ir.js.bak +51 -0
  103. package/dist/schema/ui-ir.js.map +1 -0
  104. package/dist/sdk/api.d.ts +101 -0
  105. package/dist/sdk/api.d.ts.bak +101 -0
  106. package/dist/sdk/api.d.ts.map +1 -0
  107. package/dist/sdk/api.js +177 -0
  108. package/dist/sdk/api.js.bak +177 -0
  109. package/dist/sdk/api.js.map +1 -0
  110. package/dist/sdk/index.d.ts +9 -0
  111. package/dist/sdk/index.d.ts.bak +9 -0
  112. package/dist/sdk/index.d.ts.map +1 -0
  113. package/dist/sdk/index.js +10 -0
  114. package/dist/sdk/index.js.bak +10 -0
  115. package/dist/sdk/index.js.map +1 -0
  116. package/dist/sdk/react.d.ts +63 -0
  117. package/dist/sdk/react.d.ts.bak +63 -0
  118. package/dist/sdk/react.d.ts.map +1 -0
  119. package/dist/sdk/react.js +161 -0
  120. package/dist/sdk/react.js.bak +161 -0
  121. package/dist/sdk/react.js.map +1 -0
  122. package/dist/state/index.d.ts +8 -0
  123. package/dist/state/index.d.ts.bak +8 -0
  124. package/dist/state/index.d.ts.map +1 -0
  125. package/dist/state/index.js +8 -0
  126. package/dist/state/index.js.bak +8 -0
  127. package/dist/state/index.js.map +1 -0
  128. package/dist/state/patch.d.ts +73 -0
  129. package/dist/state/patch.d.ts.bak +73 -0
  130. package/dist/state/patch.d.ts.map +1 -0
  131. package/dist/state/patch.js +437 -0
  132. package/dist/state/patch.js.bak +437 -0
  133. package/dist/state/patch.js.map +1 -0
  134. package/dist/state/store.d.ts +50 -0
  135. package/dist/state/store.d.ts.bak +50 -0
  136. package/dist/state/store.d.ts.map +1 -0
  137. package/dist/state/store.js +246 -0
  138. package/dist/state/store.js.bak +246 -0
  139. package/dist/state/store.js.map +1 -0
  140. package/dist/svelte/index.d.ts +15 -0
  141. package/dist/svelte/index.d.ts.bak +15 -0
  142. package/dist/svelte/index.d.ts.map +1 -0
  143. package/dist/svelte/index.js +15 -0
  144. package/dist/svelte/index.js.bak +15 -0
  145. package/dist/svelte/index.js.map +1 -0
  146. package/dist/svelte/renderer.d.ts +35 -0
  147. package/dist/svelte/renderer.d.ts.bak +35 -0
  148. package/dist/svelte/renderer.d.ts.map +1 -0
  149. package/dist/svelte/renderer.js +317 -0
  150. package/dist/svelte/renderer.js.bak +317 -0
  151. package/dist/svelte/renderer.js.map +1 -0
  152. package/dist/types/index.d.ts +349 -0
  153. package/dist/types/index.d.ts.bak +349 -0
  154. package/dist/types/index.d.ts.map +1 -0
  155. package/dist/types/index.js +152 -0
  156. package/dist/types/index.js.bak +152 -0
  157. package/dist/types/index.js.map +1 -0
  158. package/dist/vue/index.d.ts +18 -0
  159. package/dist/vue/index.d.ts.bak +18 -0
  160. package/dist/vue/index.d.ts.map +1 -0
  161. package/dist/vue/index.js +18 -0
  162. package/dist/vue/index.js.bak +18 -0
  163. package/dist/vue/index.js.map +1 -0
  164. package/dist/vue/renderer.d.ts +46 -0
  165. package/dist/vue/renderer.d.ts.bak +46 -0
  166. package/dist/vue/renderer.d.ts.map +1 -0
  167. package/dist/vue/renderer.js +302 -0
  168. package/dist/vue/renderer.js.bak +302 -0
  169. package/dist/vue/renderer.js.map +1 -0
  170. package/package.json +72 -0
@@ -0,0 +1,246 @@
1
+ /**
2
+ * State Store
3
+ *
4
+ * Scoped state management for A2R-IX with binding support.
5
+ */
6
+ /**
7
+ * Create state store
8
+ */
9
+ export function createStateStore(config = {}) {
10
+ const state = new Map();
11
+ const subscribers = new Map();
12
+ const bindings = new Map();
13
+ const computedValues = new Map();
14
+ const computedCache = new Map();
15
+ const dirtyComputed = new Set();
16
+ // Initialize with initial values
17
+ if (config.initial) {
18
+ Object.entries(config.initial).forEach(([key, value]) => {
19
+ state.set(key, value);
20
+ });
21
+ }
22
+ // Initialize variables with defaults
23
+ config.variables?.forEach((variable) => {
24
+ if (!state.has(variable.path) && variable.default !== undefined) {
25
+ state.set(variable.path, variable.default);
26
+ }
27
+ });
28
+ // Notify subscribers
29
+ function notify(path, value) {
30
+ const pathSubscribers = subscribers.get(path);
31
+ if (pathSubscribers) {
32
+ pathSubscribers.forEach((cb) => cb(value));
33
+ }
34
+ // Notify parent path subscribers
35
+ const parts = path.split('.');
36
+ while (parts.length > 1) {
37
+ parts.pop();
38
+ const parentPath = parts.join('.');
39
+ const parentSubscribers = subscribers.get(parentPath);
40
+ if (parentSubscribers) {
41
+ const parentValue = get(parentPath);
42
+ parentSubscribers.forEach((cb) => cb(parentValue));
43
+ }
44
+ }
45
+ // Mark computed values as dirty
46
+ computedValues.forEach((computed, name) => {
47
+ if (computed.deps.some((dep) => path.startsWith(dep) || dep.startsWith(path))) {
48
+ dirtyComputed.add(name);
49
+ }
50
+ });
51
+ }
52
+ // Get value at path
53
+ function get(path) {
54
+ // Check if it's a computed value
55
+ if (computedValues.has(path)) {
56
+ return getComputed(path);
57
+ }
58
+ const parts = path.split('.');
59
+ let current = Object.fromEntries(state);
60
+ for (const part of parts) {
61
+ if (current && typeof current === 'object') {
62
+ current = current[part];
63
+ }
64
+ else {
65
+ return undefined;
66
+ }
67
+ }
68
+ return current;
69
+ }
70
+ // Get computed value
71
+ function getComputed(name) {
72
+ const computed = computedValues.get(name);
73
+ if (!computed)
74
+ return undefined;
75
+ // Return cached value if not dirty
76
+ if (!dirtyComputed.has(name) && computedCache.has(name)) {
77
+ return computedCache.get(name);
78
+ }
79
+ // Recompute
80
+ const value = computed.compute();
81
+ computedCache.set(name, value);
82
+ dirtyComputed.delete(name);
83
+ return value;
84
+ }
85
+ // Set value at path
86
+ function set(path, value) {
87
+ const parts = path.split('.');
88
+ if (parts.length === 1) {
89
+ state.set(path, value);
90
+ }
91
+ else {
92
+ // Handle nested paths
93
+ const rootKey = parts[0];
94
+ let root = state.get(rootKey);
95
+ if (!root || typeof root !== 'object') {
96
+ root = {};
97
+ state.set(rootKey, root);
98
+ }
99
+ let current = root;
100
+ for (let i = 1; i < parts.length - 1; i++) {
101
+ const part = parts[i];
102
+ if (!current[part] || typeof current[part] !== 'object') {
103
+ current[part] = {};
104
+ }
105
+ current = current[part];
106
+ }
107
+ current[parts[parts.length - 1]] = value;
108
+ state.set(rootKey, { ...root });
109
+ }
110
+ notify(path, value);
111
+ // Persist if enabled
112
+ if (config.persist && config.scopeId) {
113
+ persistState();
114
+ }
115
+ }
116
+ // Subscribe to path changes
117
+ function subscribe(path, callback) {
118
+ if (!subscribers.has(path)) {
119
+ subscribers.set(path, new Set());
120
+ }
121
+ subscribers.get(path).add(callback);
122
+ // Return unsubscribe function
123
+ return () => {
124
+ subscribers.get(path)?.delete(callback);
125
+ };
126
+ }
127
+ // Register computed value
128
+ function compute(name, deps, computeFn) {
129
+ computedValues.set(name, { deps, compute: computeFn });
130
+ // Subscribe to dependencies
131
+ deps.forEach((dep) => {
132
+ subscribe(dep, () => {
133
+ dirtyComputed.add(name);
134
+ notify(name, getComputed(name));
135
+ });
136
+ });
137
+ }
138
+ // Bind component prop to state
139
+ function bind(componentId, prop, statePath) {
140
+ if (!bindings.has(componentId)) {
141
+ bindings.set(componentId, new Map());
142
+ }
143
+ bindings.get(componentId).set(prop, statePath);
144
+ }
145
+ // Get bindings for component
146
+ function getBindings(componentId) {
147
+ const componentBindings = bindings.get(componentId);
148
+ if (!componentBindings)
149
+ return [];
150
+ return Array.from(componentBindings.entries()).map(([prop, statePath]) => ({
151
+ prop,
152
+ statePath,
153
+ }));
154
+ }
155
+ // Batch updates
156
+ function batch(updates) {
157
+ Object.entries(updates).forEach(([path, value]) => {
158
+ set(path, value);
159
+ });
160
+ }
161
+ // Get snapshot
162
+ function snapshot() {
163
+ return Object.fromEntries(state);
164
+ }
165
+ // Restore from snapshot
166
+ function restore(data) {
167
+ Object.entries(data).forEach(([key, value]) => {
168
+ state.set(key, value);
169
+ notify(key, value);
170
+ });
171
+ }
172
+ // Reset to initial
173
+ function reset() {
174
+ state.clear();
175
+ computedCache.clear();
176
+ dirtyComputed.clear();
177
+ if (config.initial) {
178
+ Object.entries(config.initial).forEach(([key, value]) => {
179
+ state.set(key, value);
180
+ });
181
+ }
182
+ // Notify all subscribers
183
+ subscribers.forEach((cbs, path) => {
184
+ const value = get(path);
185
+ cbs.forEach((cb) => cb(value));
186
+ });
187
+ }
188
+ // Persist to localStorage
189
+ function persistState() {
190
+ if (typeof localStorage === 'undefined')
191
+ return;
192
+ try {
193
+ const key = `a2r-ix-state-${config.scopeId}`;
194
+ localStorage.setItem(key, JSON.stringify(Object.fromEntries(state)));
195
+ }
196
+ catch (error) {
197
+ console.error('Failed to persist state:', error);
198
+ }
199
+ }
200
+ // Load from localStorage
201
+ function loadPersistedState() {
202
+ if (typeof localStorage === 'undefined' || !config.scopeId)
203
+ return;
204
+ try {
205
+ const key = `a2r-ix-state-${config.scopeId}`;
206
+ const data = localStorage.getItem(key);
207
+ if (data) {
208
+ const parsed = JSON.parse(data);
209
+ Object.entries(parsed).forEach(([key, value]) => {
210
+ state.set(key, value);
211
+ });
212
+ }
213
+ }
214
+ catch (error) {
215
+ console.error('Failed to load persisted state:', error);
216
+ }
217
+ }
218
+ // Load persisted state on init
219
+ if (config.persist && config.scopeId) {
220
+ loadPersistedState();
221
+ }
222
+ return {
223
+ get,
224
+ set,
225
+ subscribe,
226
+ compute,
227
+ bind,
228
+ getBindings,
229
+ batch,
230
+ snapshot,
231
+ restore,
232
+ reset,
233
+ };
234
+ }
235
+ // Global stores
236
+ const stores = new Map();
237
+ export function getStateStore(scopeId, config) {
238
+ if (!stores.has(scopeId)) {
239
+ stores.set(scopeId, createStateStore({ ...config, scopeId }));
240
+ }
241
+ return stores.get(scopeId);
242
+ }
243
+ export function clearStateStore(scopeId) {
244
+ stores.delete(scopeId);
245
+ }
246
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1,246 @@
1
+ /**
2
+ * State Store
3
+ *
4
+ * Scoped state management for A2R-IX with binding support.
5
+ */
6
+ /**
7
+ * Create state store
8
+ */
9
+ export function createStateStore(config = {}) {
10
+ const state = new Map();
11
+ const subscribers = new Map();
12
+ const bindings = new Map();
13
+ const computedValues = new Map();
14
+ const computedCache = new Map();
15
+ const dirtyComputed = new Set();
16
+ // Initialize with initial values
17
+ if (config.initial) {
18
+ Object.entries(config.initial).forEach(([key, value]) => {
19
+ state.set(key, value);
20
+ });
21
+ }
22
+ // Initialize variables with defaults
23
+ config.variables?.forEach((variable) => {
24
+ if (!state.has(variable.path) && variable.default !== undefined) {
25
+ state.set(variable.path, variable.default);
26
+ }
27
+ });
28
+ // Notify subscribers
29
+ function notify(path, value) {
30
+ const pathSubscribers = subscribers.get(path);
31
+ if (pathSubscribers) {
32
+ pathSubscribers.forEach((cb) => cb(value));
33
+ }
34
+ // Notify parent path subscribers
35
+ const parts = path.split('.');
36
+ while (parts.length > 1) {
37
+ parts.pop();
38
+ const parentPath = parts.join('.');
39
+ const parentSubscribers = subscribers.get(parentPath);
40
+ if (parentSubscribers) {
41
+ const parentValue = get(parentPath);
42
+ parentSubscribers.forEach((cb) => cb(parentValue));
43
+ }
44
+ }
45
+ // Mark computed values as dirty
46
+ computedValues.forEach((computed, name) => {
47
+ if (computed.deps.some((dep) => path.startsWith(dep) || dep.startsWith(path))) {
48
+ dirtyComputed.add(name);
49
+ }
50
+ });
51
+ }
52
+ // Get value at path
53
+ function get(path) {
54
+ // Check if it's a computed value
55
+ if (computedValues.has(path)) {
56
+ return getComputed(path);
57
+ }
58
+ const parts = path.split('.');
59
+ let current = Object.fromEntries(state);
60
+ for (const part of parts) {
61
+ if (current && typeof current === 'object') {
62
+ current = current[part];
63
+ }
64
+ else {
65
+ return undefined;
66
+ }
67
+ }
68
+ return current;
69
+ }
70
+ // Get computed value
71
+ function getComputed(name) {
72
+ const computed = computedValues.get(name);
73
+ if (!computed)
74
+ return undefined;
75
+ // Return cached value if not dirty
76
+ if (!dirtyComputed.has(name) && computedCache.has(name)) {
77
+ return computedCache.get(name);
78
+ }
79
+ // Recompute
80
+ const value = computed.compute();
81
+ computedCache.set(name, value);
82
+ dirtyComputed.delete(name);
83
+ return value;
84
+ }
85
+ // Set value at path
86
+ function set(path, value) {
87
+ const parts = path.split('.');
88
+ if (parts.length === 1) {
89
+ state.set(path, value);
90
+ }
91
+ else {
92
+ // Handle nested paths
93
+ const rootKey = parts[0];
94
+ let root = state.get(rootKey);
95
+ if (!root || typeof root !== 'object') {
96
+ root = {};
97
+ state.set(rootKey, root);
98
+ }
99
+ let current = root;
100
+ for (let i = 1; i < parts.length - 1; i++) {
101
+ const part = parts[i];
102
+ if (!current[part] || typeof current[part] !== 'object') {
103
+ current[part] = {};
104
+ }
105
+ current = current[part];
106
+ }
107
+ current[parts[parts.length - 1]] = value;
108
+ state.set(rootKey, { ...root });
109
+ }
110
+ notify(path, value);
111
+ // Persist if enabled
112
+ if (config.persist && config.scopeId) {
113
+ persistState();
114
+ }
115
+ }
116
+ // Subscribe to path changes
117
+ function subscribe(path, callback) {
118
+ if (!subscribers.has(path)) {
119
+ subscribers.set(path, new Set());
120
+ }
121
+ subscribers.get(path).add(callback);
122
+ // Return unsubscribe function
123
+ return () => {
124
+ subscribers.get(path)?.delete(callback);
125
+ };
126
+ }
127
+ // Register computed value
128
+ function compute(name, deps, computeFn) {
129
+ computedValues.set(name, { deps, compute: computeFn });
130
+ // Subscribe to dependencies
131
+ deps.forEach((dep) => {
132
+ subscribe(dep, () => {
133
+ dirtyComputed.add(name);
134
+ notify(name, getComputed(name));
135
+ });
136
+ });
137
+ }
138
+ // Bind component prop to state
139
+ function bind(componentId, prop, statePath) {
140
+ if (!bindings.has(componentId)) {
141
+ bindings.set(componentId, new Map());
142
+ }
143
+ bindings.get(componentId).set(prop, statePath);
144
+ }
145
+ // Get bindings for component
146
+ function getBindings(componentId) {
147
+ const componentBindings = bindings.get(componentId);
148
+ if (!componentBindings)
149
+ return [];
150
+ return Array.from(componentBindings.entries()).map(([prop, statePath]) => ({
151
+ prop,
152
+ statePath,
153
+ }));
154
+ }
155
+ // Batch updates
156
+ function batch(updates) {
157
+ Object.entries(updates).forEach(([path, value]) => {
158
+ set(path, value);
159
+ });
160
+ }
161
+ // Get snapshot
162
+ function snapshot() {
163
+ return Object.fromEntries(state);
164
+ }
165
+ // Restore from snapshot
166
+ function restore(data) {
167
+ Object.entries(data).forEach(([key, value]) => {
168
+ state.set(key, value);
169
+ notify(key, value);
170
+ });
171
+ }
172
+ // Reset to initial
173
+ function reset() {
174
+ state.clear();
175
+ computedCache.clear();
176
+ dirtyComputed.clear();
177
+ if (config.initial) {
178
+ Object.entries(config.initial).forEach(([key, value]) => {
179
+ state.set(key, value);
180
+ });
181
+ }
182
+ // Notify all subscribers
183
+ subscribers.forEach((cbs, path) => {
184
+ const value = get(path);
185
+ cbs.forEach((cb) => cb(value));
186
+ });
187
+ }
188
+ // Persist to localStorage
189
+ function persistState() {
190
+ if (typeof localStorage === 'undefined')
191
+ return;
192
+ try {
193
+ const key = `a2r-ix-state-${config.scopeId}`;
194
+ localStorage.setItem(key, JSON.stringify(Object.fromEntries(state)));
195
+ }
196
+ catch (error) {
197
+ console.error('Failed to persist state:', error);
198
+ }
199
+ }
200
+ // Load from localStorage
201
+ function loadPersistedState() {
202
+ if (typeof localStorage === 'undefined' || !config.scopeId)
203
+ return;
204
+ try {
205
+ const key = `a2r-ix-state-${config.scopeId}`;
206
+ const data = localStorage.getItem(key);
207
+ if (data) {
208
+ const parsed = JSON.parse(data);
209
+ Object.entries(parsed).forEach(([key, value]) => {
210
+ state.set(key, value);
211
+ });
212
+ }
213
+ }
214
+ catch (error) {
215
+ console.error('Failed to load persisted state:', error);
216
+ }
217
+ }
218
+ // Load persisted state on init
219
+ if (config.persist && config.scopeId) {
220
+ loadPersistedState();
221
+ }
222
+ return {
223
+ get,
224
+ set,
225
+ subscribe,
226
+ compute,
227
+ bind,
228
+ getBindings,
229
+ batch,
230
+ snapshot,
231
+ restore,
232
+ reset,
233
+ };
234
+ }
235
+ // Global stores
236
+ const stores = new Map();
237
+ export function getStateStore(scopeId, config) {
238
+ if (!stores.has(scopeId)) {
239
+ stores.set(scopeId, createStateStore({ ...config, scopeId }));
240
+ }
241
+ return stores.get(scopeId);
242
+ }
243
+ export function clearStateStore(scopeId) {
244
+ stores.delete(scopeId);
245
+ }
246
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyCH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAA2B,EAAE;IAC5D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAyC,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAsD,CAAC;IACrF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,iCAAiC;IACjC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACtD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,SAAS,MAAM,CAAC,IAAY,EAAE,KAAc;QAC1C,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,iCAAiC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,GAAG,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;gBACpC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;YACxC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC9E,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,SAAS,GAAG,CAAI,IAAY;QAC1B,iCAAiC;QACjC,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,WAAW,CAAI,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAY,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3C,OAAO,GAAI,OAAmC,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,OAAY,CAAC;IACtB,CAAC;IAED,qBAAqB;IACrB,SAAS,WAAW,CAAI,IAAY;QAClC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAEhC,mCAAmC;QACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAM,CAAC;QACtC,CAAC;QAED,YAAY;QACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QACjC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,KAAU,CAAC;IACpB,CAAC;IAED,oBAAoB;IACpB,SAAS,GAAG,CAAI,IAAY,EAAE,KAAQ;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAA4B,CAAC;YAEzD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,IAAI,GAAG,EAAE,CAAC;gBACV,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,IAAI,OAAO,GAA4B,IAAI,CAAC;YAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACxD,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrB,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAA4B,CAAC;YACrD,CAAC;YAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACzC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEpB,qBAAqB;QACrB,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACrC,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,SAAS,SAAS,CAAC,IAAY,EAAE,QAAkC;QACjE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAErC,8BAA8B;QAC9B,OAAO,GAAG,EAAE;YACV,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,SAAS,OAAO,CAAI,IAAY,EAAE,IAAc,EAAE,SAAkB;QAClE,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAEvD,4BAA4B;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;gBAClB,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,SAAS,IAAI,CAAC,WAAmB,EAAE,IAAY,EAAE,SAAiB;QAChE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,6BAA6B;IAC7B,SAAS,WAAW,CAAC,WAAmB;QACtC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,iBAAiB;YAAE,OAAO,EAAE,CAAC;QAElC,OAAO,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YACzE,IAAI;YACJ,SAAS;SACV,CAAC,CAAC,CAAC;IACN,CAAC;IAED,gBAAgB;IAChB,SAAS,KAAK,CAAC,OAAgC;QAC7C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;YAChD,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;IACf,SAAS,QAAQ;QACf,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,wBAAwB;IACxB,SAAS,OAAO,CAAC,IAA6B;QAC5C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC5C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,SAAS,KAAK;QACZ,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,aAAa,CAAC,KAAK,EAAE,CAAC;QACtB,aAAa,CAAC,KAAK,EAAE,CAAC;QAEtB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACtD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,SAAS,YAAY;QACnB,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO;QAEhD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,gBAAgB,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7C,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,SAAS,kBAAkB;QACzB,IAAI,OAAO,YAAY,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAEnE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,gBAAgB,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBAC9C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACxB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACrC,kBAAkB,EAAE,CAAC;IACvB,CAAC;IAED,OAAO;QACL,GAAG;QACH,GAAG;QACH,SAAS;QACT,OAAO;QACP,IAAI;QACJ,WAAW;QACX,KAAK;QACL,QAAQ;QACR,OAAO;QACP,KAAK;KACN,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE7C,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,MAAyB;IACtE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Svelte Renderer
3
+ *
4
+ * Generates Svelte component code from A2R-IX UI IR.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { createSvelteRenderer, compileToSvelte } from '@allternit/ix/svelte';
9
+ *
10
+ * const svelteCode = compileToSvelte(uiDefinition);
11
+ * // Use with Svelte compiler
12
+ * ```
13
+ */
14
+ export { createSvelteRenderer, compileToSvelte, type SvelteRenderer, type SvelteRendererConfig, } from './renderer';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Svelte Renderer
3
+ *
4
+ * Generates Svelte component code from A2R-IX UI IR.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { createSvelteRenderer, compileToSvelte } from '@allternit/ix/svelte';
9
+ *
10
+ * const svelteCode = compileToSvelte(uiDefinition);
11
+ * // Use with Svelte compiler
12
+ * ```
13
+ */
14
+ export { createSvelteRenderer, compileToSvelte, type SvelteRenderer, type SvelteRendererConfig, } from './renderer';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svelte/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,oBAAoB,GAC1B,MAAM,YAAY,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Svelte Renderer
3
+ *
4
+ * Generates Svelte component code from A2R-IX UI IR.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { createSvelteRenderer, compileToSvelte } from '@allternit/ix/svelte';
9
+ *
10
+ * const svelteCode = compileToSvelte(uiDefinition);
11
+ * // Use with Svelte compiler
12
+ * ```
13
+ */
14
+ export { createSvelteRenderer, compileToSvelte, } from './renderer';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Svelte Renderer
3
+ *
4
+ * Generates Svelte component code from A2R-IX UI IR.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { createSvelteRenderer, compileToSvelte } from '@allternit/ix/svelte';
9
+ *
10
+ * const svelteCode = compileToSvelte(uiDefinition);
11
+ * // Use with Svelte compiler
12
+ * ```
13
+ */
14
+ export { createSvelteRenderer, compileToSvelte, } from './renderer';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/svelte/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,oBAAoB,EACpB,eAAe,GAGhB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Svelte Renderer for A2R-IX
3
+ *
4
+ * Renders A2R-IX UI IR to Svelte components.
5
+ */
6
+ import type { UIRoot, UIComponent } from '../types';
7
+ import type { StateStore } from '../state/store';
8
+ import type { ComponentCatalog } from '../catalog/registry';
9
+ export interface SvelteRendererConfig {
10
+ /** Component catalog */
11
+ catalog?: ComponentCatalog;
12
+ /** Initial state store */
13
+ stateStore?: StateStore;
14
+ /** Component mapping (type -> Svelte component) */
15
+ components?: Record<string, unknown>;
16
+ /** Event handler */
17
+ onEvent?: (name: string, payload: unknown) => void;
18
+ /** Error handler */
19
+ onError?: (error: Error, componentId?: string) => void;
20
+ }
21
+ export interface SvelteRenderer {
22
+ /** Generate Svelte component code from UI root */
23
+ generateComponent(root: UIRoot): string;
24
+ /** Generate Svelte template from component */
25
+ generateTemplate(component: UIComponent, depth?: number): string;
26
+ }
27
+ /**
28
+ * Create Svelte renderer
29
+ */
30
+ export declare function createSvelteRenderer(config: SvelteRendererConfig): SvelteRenderer;
31
+ /**
32
+ * Compile A2R-IX UI to Svelte component
33
+ */
34
+ export declare function compileToSvelte(root: UIRoot, config?: SvelteRendererConfig): string;
35
+ //# sourceMappingURL=renderer.d.ts.map
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Svelte Renderer for A2R-IX
3
+ *
4
+ * Renders A2R-IX UI IR to Svelte components.
5
+ */
6
+ import type { UIRoot, UIComponent } from '../types';
7
+ import type { StateStore } from '../state/store';
8
+ import type { ComponentCatalog } from '../catalog/registry';
9
+ export interface SvelteRendererConfig {
10
+ /** Component catalog */
11
+ catalog?: ComponentCatalog;
12
+ /** Initial state store */
13
+ stateStore?: StateStore;
14
+ /** Component mapping (type -> Svelte component) */
15
+ components?: Record<string, unknown>;
16
+ /** Event handler */
17
+ onEvent?: (name: string, payload: unknown) => void;
18
+ /** Error handler */
19
+ onError?: (error: Error, componentId?: string) => void;
20
+ }
21
+ export interface SvelteRenderer {
22
+ /** Generate Svelte component code from UI root */
23
+ generateComponent(root: UIRoot): string;
24
+ /** Generate Svelte template from component */
25
+ generateTemplate(component: UIComponent, depth?: number): string;
26
+ }
27
+ /**
28
+ * Create Svelte renderer
29
+ */
30
+ export declare function createSvelteRenderer(config: SvelteRendererConfig): SvelteRenderer;
31
+ /**
32
+ * Compile A2R-IX UI to Svelte component
33
+ */
34
+ export declare function compileToSvelte(root: UIRoot, config?: SvelteRendererConfig): string;
35
+ //# sourceMappingURL=renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/svelte/renderer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,0BAA0B;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACxC,8CAA8C;IAC9C,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAClE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CA0UjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,oBAAyB,GAAG,MAAM,CAGvF"}