@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,317 @@
1
+ /**
2
+ * Svelte Renderer for A2R-IX
3
+ *
4
+ * Renders A2R-IX UI IR to Svelte components.
5
+ */
6
+ import { createDefaultCatalog } from '../catalog/registry';
7
+ /**
8
+ * Create Svelte renderer
9
+ */
10
+ export function createSvelteRenderer(config) {
11
+ const catalog = config.catalog ?? createDefaultCatalog();
12
+ const customComponents = config.components ?? {};
13
+ const store = config.stateStore;
14
+ /**
15
+ * Generate full Svelte component code
16
+ */
17
+ function generateComponent(root) {
18
+ const script = generateScript(root);
19
+ const template = root.components.map((c) => generateTemplate(c)).join('\n');
20
+ const style = root.css ? `<style>\n${root.css}\n</style>` : '';
21
+ return `<script>
22
+ ${script}
23
+ </script>
24
+
25
+ ${template}
26
+
27
+ ${style}`;
28
+ }
29
+ /**
30
+ * Generate script section
31
+ */
32
+ function generateScript(root) {
33
+ const lines = [
34
+ '// Auto-generated A2R-IX Svelte component',
35
+ '',
36
+ '// State bindings',
37
+ ];
38
+ // Generate state variable declarations
39
+ root.state.variables.forEach((variable) => {
40
+ const defaultValue = variable.default !== undefined
41
+ ? JSON.stringify(variable.default)
42
+ : getDefaultForType(variable.type);
43
+ lines.push(`export let ${sanitizeName(variable.path)} = ${defaultValue};`);
44
+ });
45
+ // Generate computed values
46
+ lines.push('');
47
+ lines.push('// Computed values');
48
+ root.state.computed?.forEach((computed) => {
49
+ lines.push(`$: ${computed.name} = ${generateExpression(computed.compute)};`);
50
+ });
51
+ // Generate action handlers
52
+ lines.push('');
53
+ lines.push('// Action handlers');
54
+ root.actions.forEach((action) => {
55
+ lines.push(`function handle_${action.id}(event) {`);
56
+ lines.push(` dispatch('${action.id}', { event, ...${JSON.stringify(action.handler)} });`);
57
+ lines.push('}');
58
+ });
59
+ // Event dispatcher
60
+ if (root.actions.length > 0) {
61
+ lines.unshift("import { createEventDispatcher } from 'svelte';");
62
+ lines.unshift('');
63
+ lines.unshift('const dispatch = createEventDispatcher();');
64
+ }
65
+ return lines.join('\n');
66
+ }
67
+ /**
68
+ * Generate template for a component
69
+ */
70
+ function generateTemplate(component, depth = 0) {
71
+ const indent = ' '.repeat(depth);
72
+ // Handle condition
73
+ if (component.condition) {
74
+ const condition = generateExpression(component.condition);
75
+ const inner = generateSingleTemplate(component, depth + 1);
76
+ return `${indent}{#if ${condition}}\n${inner}\n${indent}{/if}`;
77
+ }
78
+ // Handle repeat
79
+ if (component.repeat) {
80
+ return generateRepeatTemplate(component, depth);
81
+ }
82
+ return generateSingleTemplate(component, depth);
83
+ }
84
+ /**
85
+ * Generate single component template (no condition/repeat)
86
+ */
87
+ function generateSingleTemplate(component, depth) {
88
+ const indent = ' '.repeat(depth);
89
+ const tag = getComponentTag(component.type);
90
+ const props = generateProps(component);
91
+ const events = generateEvents(component);
92
+ const propString = [...props, ...events].join(' ');
93
+ if (component.children && component.children.length > 0) {
94
+ const children = component.children.map((c) => generateTemplate(c, depth + 1)).join('\n');
95
+ return `${indent}<${tag}${propString ? ' ' + propString : ''}>\n${children}\n${indent}</${tag}>`;
96
+ }
97
+ // Self-closing or with text content
98
+ const textContent = component.props?.children ? String(component.props.children) : '';
99
+ if (textContent) {
100
+ return `${indent}<${tag}${propString ? ' ' + propString : ''}>${textContent}</${tag}>`;
101
+ }
102
+ return `${indent}<${tag}${propString ? ' ' + propString : ''} />`;
103
+ }
104
+ /**
105
+ * Generate repeat template
106
+ */
107
+ function generateRepeatTemplate(component, depth) {
108
+ const indent = ' '.repeat(depth);
109
+ const repeat = component.repeat;
110
+ const tag = getComponentTag(component.type);
111
+ const props = generateProps(component);
112
+ const events = generateEvents(component);
113
+ const propString = [...props, ...events].join(' ');
114
+ const asVar = sanitizeName(repeat.as);
115
+ const indexVar = repeat.indexAs ? sanitizeName(repeat.indexAs) : 'index';
116
+ let eachBlock = `${indent}{#each ${sanitizeName(repeat.items)} as ${asVar}, ${indexVar}`;
117
+ if (repeat.filter) {
118
+ const filterExpr = generateExpression(repeat.filter);
119
+ // Note: Svelte doesn't have built-in filter, we'd need to use a computed
120
+ eachBlock += ` (${filterExpr})`;
121
+ }
122
+ eachBlock += '}';
123
+ // Generate inner content
124
+ let innerContent;
125
+ if (component.children && component.children.length > 0) {
126
+ const children = component.children.map((c) => generateTemplate(c, depth + 1)).join('\n');
127
+ innerContent = `<${tag}${propString ? ' ' + propString : ''}>\n${children}\n${indent} </${tag}>`;
128
+ }
129
+ else {
130
+ innerContent = `<${tag}${propString ? ' ' + propString : ''} />`;
131
+ }
132
+ return `${eachBlock}\n${indent} ${innerContent}\n${indent}{/each}`;
133
+ }
134
+ /**
135
+ * Generate props string
136
+ */
137
+ function generateProps(component) {
138
+ const props = [];
139
+ // Regular props
140
+ Object.entries(component.props || {}).forEach(([key, value]) => {
141
+ if (key !== 'children') {
142
+ if (typeof value === 'string') {
143
+ props.push(`${key}="${escapeHtml(value)}"`);
144
+ }
145
+ else if (typeof value === 'boolean') {
146
+ if (value)
147
+ props.push(key);
148
+ }
149
+ else if (typeof value === 'number') {
150
+ props.push(`${key}={${value}}`);
151
+ }
152
+ else {
153
+ props.push(`${key}={${JSON.stringify(value)}}`);
154
+ }
155
+ }
156
+ });
157
+ // Bindings
158
+ component.bindings?.forEach((binding) => {
159
+ const stateVar = sanitizeName(binding.statePath);
160
+ if (binding.direction === 'two-way') {
161
+ props.push(`bind:${binding.prop}={${stateVar}}`);
162
+ }
163
+ else {
164
+ props.push(`${binding.prop}={${stateVar}}`);
165
+ }
166
+ });
167
+ return props;
168
+ }
169
+ /**
170
+ * Generate event handlers
171
+ */
172
+ function generateEvents(component) {
173
+ const events = [];
174
+ component.events?.forEach((event) => {
175
+ const handler = `handle_${event.action}`;
176
+ const params = event.params ? `({ ...event.detail, ...${JSON.stringify(event.params)} })` : 'event';
177
+ events.push(`on:${getSvelteEventName(event.event)}={() => ${handler}(${params})}`);
178
+ });
179
+ return events;
180
+ }
181
+ /**
182
+ * Get component tag name
183
+ */
184
+ function getComponentTag(type) {
185
+ // Map built-ins to HTML or custom components
186
+ const tagMap = {
187
+ Box: 'div',
188
+ Stack: 'div',
189
+ Text: 'span',
190
+ Heading: 'h1',
191
+ Paragraph: 'p',
192
+ Button: 'button',
193
+ Input: 'input',
194
+ TextArea: 'textarea',
195
+ Select: 'select',
196
+ Card: 'div',
197
+ Image: 'img',
198
+ Icon: 'span',
199
+ Badge: 'span',
200
+ List: 'ul',
201
+ Table: 'table',
202
+ };
203
+ return customComponents[type] ? type : tagMap[type] || type.toLowerCase();
204
+ }
205
+ /**
206
+ * Convert event name to Svelte format
207
+ */
208
+ function getSvelteEventName(event) {
209
+ // Remove 'on' prefix and lowercase
210
+ if (event.startsWith('on')) {
211
+ return event.slice(2).toLowerCase();
212
+ }
213
+ return event.toLowerCase();
214
+ }
215
+ /**
216
+ * Generate expression string
217
+ */
218
+ function generateExpression(expr) {
219
+ if (expr === null)
220
+ return 'null';
221
+ if (typeof expr === 'string')
222
+ return sanitizeName(expr);
223
+ if (typeof expr === 'number')
224
+ return String(expr);
225
+ if (typeof expr === 'boolean')
226
+ return String(expr);
227
+ // Handle expression objects
228
+ if (typeof expr === 'object') {
229
+ if ('$path' in expr) {
230
+ return sanitizeName(expr.$path);
231
+ }
232
+ if ('$expr' in expr) {
233
+ return expr.$expr;
234
+ }
235
+ if ('$cond' in expr) {
236
+ const [cond, trueVal, falseVal] = expr.$cond;
237
+ return `${generateExpression(cond)} ? ${generateExpression(trueVal)} : ${generateExpression(falseVal)}`;
238
+ }
239
+ if ('$and' in expr) {
240
+ const arr = expr.$and;
241
+ return arr.map(generateExpression).join(' && ');
242
+ }
243
+ if ('$or' in expr) {
244
+ const arr = expr.$or;
245
+ return arr.map(generateExpression).join(' || ');
246
+ }
247
+ if ('$not' in expr) {
248
+ return `!${generateExpression(expr.$not)}`;
249
+ }
250
+ if ('$eq' in expr) {
251
+ const [a, b] = expr.$eq;
252
+ return `${generateExpression(a)} === ${generateExpression(b)}`;
253
+ }
254
+ if ('$gt' in expr) {
255
+ const [a, b] = expr.$gt;
256
+ return `${generateExpression(a)} > ${generateExpression(b)}`;
257
+ }
258
+ if ('$lt' in expr) {
259
+ const [a, b] = expr.$lt;
260
+ return `${generateExpression(a)} < ${generateExpression(b)}`;
261
+ }
262
+ if ('$add' in expr) {
263
+ const [a, b] = expr.$add;
264
+ return `${generateExpression(a)} + ${generateExpression(b)}`;
265
+ }
266
+ }
267
+ return String(expr);
268
+ }
269
+ /**
270
+ * Get default value for type
271
+ */
272
+ function getDefaultForType(type) {
273
+ switch (type) {
274
+ case 'string':
275
+ return "''";
276
+ case 'number':
277
+ return '0';
278
+ case 'boolean':
279
+ return 'false';
280
+ case 'array':
281
+ return '[]';
282
+ case 'object':
283
+ return '{}';
284
+ default:
285
+ return 'undefined';
286
+ }
287
+ }
288
+ /**
289
+ * Sanitize variable name
290
+ */
291
+ function sanitizeName(path) {
292
+ return path.replace(/\./g, '_').replace(/[^a-zA-Z0-9_]/g, '');
293
+ }
294
+ /**
295
+ * Escape HTML for attributes
296
+ */
297
+ function escapeHtml(text) {
298
+ return text
299
+ .replace(/&/g, '&amp;')
300
+ .replace(/</g, '&lt;')
301
+ .replace(/>/g, '&gt;')
302
+ .replace(/"/g, '&quot;')
303
+ .replace(/'/g, '&#039;');
304
+ }
305
+ return {
306
+ generateComponent,
307
+ generateTemplate,
308
+ };
309
+ }
310
+ /**
311
+ * Compile A2R-IX UI to Svelte component
312
+ */
313
+ export function compileToSvelte(root, config = {}) {
314
+ const renderer = createSvelteRenderer(config);
315
+ return renderer.generateComponent(root);
316
+ }
317
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1,317 @@
1
+ /**
2
+ * Svelte Renderer for A2R-IX
3
+ *
4
+ * Renders A2R-IX UI IR to Svelte components.
5
+ */
6
+ import { createDefaultCatalog } from '../catalog/registry';
7
+ /**
8
+ * Create Svelte renderer
9
+ */
10
+ export function createSvelteRenderer(config) {
11
+ const catalog = config.catalog ?? createDefaultCatalog();
12
+ const customComponents = config.components ?? {};
13
+ const store = config.stateStore;
14
+ /**
15
+ * Generate full Svelte component code
16
+ */
17
+ function generateComponent(root) {
18
+ const script = generateScript(root);
19
+ const template = root.components.map((c) => generateTemplate(c)).join('\n');
20
+ const style = root.css ? `<style>\n${root.css}\n</style>` : '';
21
+ return `<script>
22
+ ${script}
23
+ </script>
24
+
25
+ ${template}
26
+
27
+ ${style}`;
28
+ }
29
+ /**
30
+ * Generate script section
31
+ */
32
+ function generateScript(root) {
33
+ const lines = [
34
+ '// Auto-generated A2R-IX Svelte component',
35
+ '',
36
+ '// State bindings',
37
+ ];
38
+ // Generate state variable declarations
39
+ root.state.variables.forEach((variable) => {
40
+ const defaultValue = variable.default !== undefined
41
+ ? JSON.stringify(variable.default)
42
+ : getDefaultForType(variable.type);
43
+ lines.push(`export let ${sanitizeName(variable.path)} = ${defaultValue};`);
44
+ });
45
+ // Generate computed values
46
+ lines.push('');
47
+ lines.push('// Computed values');
48
+ root.state.computed?.forEach((computed) => {
49
+ lines.push(`$: ${computed.name} = ${generateExpression(computed.compute)};`);
50
+ });
51
+ // Generate action handlers
52
+ lines.push('');
53
+ lines.push('// Action handlers');
54
+ root.actions.forEach((action) => {
55
+ lines.push(`function handle_${action.id}(event) {`);
56
+ lines.push(` dispatch('${action.id}', { event, ...${JSON.stringify(action.handler)} });`);
57
+ lines.push('}');
58
+ });
59
+ // Event dispatcher
60
+ if (root.actions.length > 0) {
61
+ lines.unshift("import { createEventDispatcher } from 'svelte';");
62
+ lines.unshift('');
63
+ lines.unshift('const dispatch = createEventDispatcher();');
64
+ }
65
+ return lines.join('\n');
66
+ }
67
+ /**
68
+ * Generate template for a component
69
+ */
70
+ function generateTemplate(component, depth = 0) {
71
+ const indent = ' '.repeat(depth);
72
+ // Handle condition
73
+ if (component.condition) {
74
+ const condition = generateExpression(component.condition);
75
+ const inner = generateSingleTemplate(component, depth + 1);
76
+ return `${indent}{#if ${condition}}\n${inner}\n${indent}{/if}`;
77
+ }
78
+ // Handle repeat
79
+ if (component.repeat) {
80
+ return generateRepeatTemplate(component, depth);
81
+ }
82
+ return generateSingleTemplate(component, depth);
83
+ }
84
+ /**
85
+ * Generate single component template (no condition/repeat)
86
+ */
87
+ function generateSingleTemplate(component, depth) {
88
+ const indent = ' '.repeat(depth);
89
+ const tag = getComponentTag(component.type);
90
+ const props = generateProps(component);
91
+ const events = generateEvents(component);
92
+ const propString = [...props, ...events].join(' ');
93
+ if (component.children && component.children.length > 0) {
94
+ const children = component.children.map((c) => generateTemplate(c, depth + 1)).join('\n');
95
+ return `${indent}<${tag}${propString ? ' ' + propString : ''}>\n${children}\n${indent}</${tag}>`;
96
+ }
97
+ // Self-closing or with text content
98
+ const textContent = component.props?.children ? String(component.props.children) : '';
99
+ if (textContent) {
100
+ return `${indent}<${tag}${propString ? ' ' + propString : ''}>${textContent}</${tag}>`;
101
+ }
102
+ return `${indent}<${tag}${propString ? ' ' + propString : ''} />`;
103
+ }
104
+ /**
105
+ * Generate repeat template
106
+ */
107
+ function generateRepeatTemplate(component, depth) {
108
+ const indent = ' '.repeat(depth);
109
+ const repeat = component.repeat;
110
+ const tag = getComponentTag(component.type);
111
+ const props = generateProps(component);
112
+ const events = generateEvents(component);
113
+ const propString = [...props, ...events].join(' ');
114
+ const asVar = sanitizeName(repeat.as);
115
+ const indexVar = repeat.indexAs ? sanitizeName(repeat.indexAs) : 'index';
116
+ let eachBlock = `${indent}{#each ${sanitizeName(repeat.items)} as ${asVar}, ${indexVar}`;
117
+ if (repeat.filter) {
118
+ const filterExpr = generateExpression(repeat.filter);
119
+ // Note: Svelte doesn't have built-in filter, we'd need to use a computed
120
+ eachBlock += ` (${filterExpr})`;
121
+ }
122
+ eachBlock += '}';
123
+ // Generate inner content
124
+ let innerContent;
125
+ if (component.children && component.children.length > 0) {
126
+ const children = component.children.map((c) => generateTemplate(c, depth + 1)).join('\n');
127
+ innerContent = `<${tag}${propString ? ' ' + propString : ''}>\n${children}\n${indent} </${tag}>`;
128
+ }
129
+ else {
130
+ innerContent = `<${tag}${propString ? ' ' + propString : ''} />`;
131
+ }
132
+ return `${eachBlock}\n${indent} ${innerContent}\n${indent}{/each}`;
133
+ }
134
+ /**
135
+ * Generate props string
136
+ */
137
+ function generateProps(component) {
138
+ const props = [];
139
+ // Regular props
140
+ Object.entries(component.props || {}).forEach(([key, value]) => {
141
+ if (key !== 'children') {
142
+ if (typeof value === 'string') {
143
+ props.push(`${key}="${escapeHtml(value)}"`);
144
+ }
145
+ else if (typeof value === 'boolean') {
146
+ if (value)
147
+ props.push(key);
148
+ }
149
+ else if (typeof value === 'number') {
150
+ props.push(`${key}={${value}}`);
151
+ }
152
+ else {
153
+ props.push(`${key}={${JSON.stringify(value)}}`);
154
+ }
155
+ }
156
+ });
157
+ // Bindings
158
+ component.bindings?.forEach((binding) => {
159
+ const stateVar = sanitizeName(binding.statePath);
160
+ if (binding.direction === 'two-way') {
161
+ props.push(`bind:${binding.prop}={${stateVar}}`);
162
+ }
163
+ else {
164
+ props.push(`${binding.prop}={${stateVar}}`);
165
+ }
166
+ });
167
+ return props;
168
+ }
169
+ /**
170
+ * Generate event handlers
171
+ */
172
+ function generateEvents(component) {
173
+ const events = [];
174
+ component.events?.forEach((event) => {
175
+ const handler = `handle_${event.action}`;
176
+ const params = event.params ? `({ ...event.detail, ...${JSON.stringify(event.params)} })` : 'event';
177
+ events.push(`on:${getSvelteEventName(event.event)}={() => ${handler}(${params})}`);
178
+ });
179
+ return events;
180
+ }
181
+ /**
182
+ * Get component tag name
183
+ */
184
+ function getComponentTag(type) {
185
+ // Map built-ins to HTML or custom components
186
+ const tagMap = {
187
+ Box: 'div',
188
+ Stack: 'div',
189
+ Text: 'span',
190
+ Heading: 'h1',
191
+ Paragraph: 'p',
192
+ Button: 'button',
193
+ Input: 'input',
194
+ TextArea: 'textarea',
195
+ Select: 'select',
196
+ Card: 'div',
197
+ Image: 'img',
198
+ Icon: 'span',
199
+ Badge: 'span',
200
+ List: 'ul',
201
+ Table: 'table',
202
+ };
203
+ return customComponents[type] ? type : tagMap[type] || type.toLowerCase();
204
+ }
205
+ /**
206
+ * Convert event name to Svelte format
207
+ */
208
+ function getSvelteEventName(event) {
209
+ // Remove 'on' prefix and lowercase
210
+ if (event.startsWith('on')) {
211
+ return event.slice(2).toLowerCase();
212
+ }
213
+ return event.toLowerCase();
214
+ }
215
+ /**
216
+ * Generate expression string
217
+ */
218
+ function generateExpression(expr) {
219
+ if (expr === null)
220
+ return 'null';
221
+ if (typeof expr === 'string')
222
+ return sanitizeName(expr);
223
+ if (typeof expr === 'number')
224
+ return String(expr);
225
+ if (typeof expr === 'boolean')
226
+ return String(expr);
227
+ // Handle expression objects
228
+ if (typeof expr === 'object') {
229
+ if ('$path' in expr) {
230
+ return sanitizeName(expr.$path);
231
+ }
232
+ if ('$expr' in expr) {
233
+ return expr.$expr;
234
+ }
235
+ if ('$cond' in expr) {
236
+ const [cond, trueVal, falseVal] = expr.$cond;
237
+ return `${generateExpression(cond)} ? ${generateExpression(trueVal)} : ${generateExpression(falseVal)}`;
238
+ }
239
+ if ('$and' in expr) {
240
+ const arr = expr.$and;
241
+ return arr.map(generateExpression).join(' && ');
242
+ }
243
+ if ('$or' in expr) {
244
+ const arr = expr.$or;
245
+ return arr.map(generateExpression).join(' || ');
246
+ }
247
+ if ('$not' in expr) {
248
+ return `!${generateExpression(expr.$not)}`;
249
+ }
250
+ if ('$eq' in expr) {
251
+ const [a, b] = expr.$eq;
252
+ return `${generateExpression(a)} === ${generateExpression(b)}`;
253
+ }
254
+ if ('$gt' in expr) {
255
+ const [a, b] = expr.$gt;
256
+ return `${generateExpression(a)} > ${generateExpression(b)}`;
257
+ }
258
+ if ('$lt' in expr) {
259
+ const [a, b] = expr.$lt;
260
+ return `${generateExpression(a)} < ${generateExpression(b)}`;
261
+ }
262
+ if ('$add' in expr) {
263
+ const [a, b] = expr.$add;
264
+ return `${generateExpression(a)} + ${generateExpression(b)}`;
265
+ }
266
+ }
267
+ return String(expr);
268
+ }
269
+ /**
270
+ * Get default value for type
271
+ */
272
+ function getDefaultForType(type) {
273
+ switch (type) {
274
+ case 'string':
275
+ return "''";
276
+ case 'number':
277
+ return '0';
278
+ case 'boolean':
279
+ return 'false';
280
+ case 'array':
281
+ return '[]';
282
+ case 'object':
283
+ return '{}';
284
+ default:
285
+ return 'undefined';
286
+ }
287
+ }
288
+ /**
289
+ * Sanitize variable name
290
+ */
291
+ function sanitizeName(path) {
292
+ return path.replace(/\./g, '_').replace(/[^a-zA-Z0-9_]/g, '');
293
+ }
294
+ /**
295
+ * Escape HTML for attributes
296
+ */
297
+ function escapeHtml(text) {
298
+ return text
299
+ .replace(/&/g, '&amp;')
300
+ .replace(/</g, '&lt;')
301
+ .replace(/>/g, '&gt;')
302
+ .replace(/"/g, '&quot;')
303
+ .replace(/'/g, '&#039;');
304
+ }
305
+ return {
306
+ generateComponent,
307
+ generateTemplate,
308
+ };
309
+ }
310
+ /**
311
+ * Compile A2R-IX UI to Svelte component
312
+ */
313
+ export function compileToSvelte(root, config = {}) {
314
+ const renderer = createSvelteRenderer(config);
315
+ return renderer.generateComponent(root);
316
+ }
317
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/svelte/renderer.ts"],"names":[],"mappings":"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"}