@wire-dsl/language-support 0.2.4 → 0.4.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 (41) hide show
  1. package/INTEGRATION-GUIDE.md +50 -194
  2. package/README.md +39 -33
  3. package/dist/completions.d.ts.map +1 -1
  4. package/dist/completions.js +8 -1
  5. package/dist/completions.js.map +1 -1
  6. package/dist/components.d.ts +0 -6
  7. package/dist/components.d.ts.map +1 -1
  8. package/dist/components.js +94 -40
  9. package/dist/components.js.map +1 -1
  10. package/dist/context-detection.js +2 -2
  11. package/dist/context-detection.js.map +1 -1
  12. package/dist/document-parser.d.ts +12 -0
  13. package/dist/document-parser.d.ts.map +1 -1
  14. package/dist/document-parser.js +49 -0
  15. package/dist/document-parser.js.map +1 -1
  16. package/dist/documentation.js +1 -1
  17. package/dist/documentation.js.map +1 -1
  18. package/dist/icon-names.d.ts +8 -0
  19. package/dist/icon-names.d.ts.map +1 -0
  20. package/dist/icon-names.js +295 -0
  21. package/dist/icon-names.js.map +1 -0
  22. package/dist/index.d.ts +6 -5
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +7 -6
  25. package/dist/index.js.map +1 -1
  26. package/dist-cjs/completions.js +394 -0
  27. package/dist-cjs/completions.js.map +1 -0
  28. package/dist-cjs/components.js +504 -0
  29. package/dist-cjs/components.js.map +1 -0
  30. package/dist-cjs/context-detection.js +153 -0
  31. package/dist-cjs/context-detection.js.map +1 -0
  32. package/dist-cjs/document-parser.js +323 -0
  33. package/dist-cjs/document-parser.js.map +1 -0
  34. package/dist-cjs/documentation.js +133 -0
  35. package/dist-cjs/documentation.js.map +1 -0
  36. package/dist-cjs/icon-names.js +298 -0
  37. package/dist-cjs/icon-names.js.map +1 -0
  38. package/dist-cjs/index.js +114 -0
  39. package/dist-cjs/index.js.map +1 -0
  40. package/dist-cjs/package.json +1 -0
  41. package/package.json +14 -3
@@ -0,0 +1,504 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KEYWORDS = exports.PROPERTY_VALUES = exports.LAYOUTS = exports.COMPONENTS = void 0;
4
+ /**
5
+ * Wire DSL Component Metadata
6
+ * Used for autocompletion, validation, and code intelligence.
7
+ *
8
+ * Last synced: February 16, 2026
9
+ */
10
+ const icon_names_js_1 = require("./icon-names.js");
11
+ // Reusable Enum Definitions
12
+ const sizeEnum = { name: 'size', type: 'enum', options: ['sm', 'md', 'lg'] };
13
+ const spacingEnum = {
14
+ name: 'spacing',
15
+ type: 'enum',
16
+ options: ['none', 'xs', 'sm', 'md', 'lg', 'xl'],
17
+ };
18
+ const variantEnum = {
19
+ name: 'variant',
20
+ type: 'enum',
21
+ options: ['primary', 'secondary', 'success', 'warning', 'danger', 'info'],
22
+ };
23
+ const variantWithDefaultEnum = {
24
+ name: 'variant',
25
+ type: 'enum',
26
+ options: ['default', 'primary', 'secondary', 'success', 'warning', 'danger', 'info'],
27
+ };
28
+ const iconNameEnum = {
29
+ name: 'icon',
30
+ type: 'enum',
31
+ options: icon_names_js_1.ICON_NAME_OPTIONS,
32
+ };
33
+ const controlSizeEnum = {
34
+ name: 'size',
35
+ type: 'enum',
36
+ options: ['sm', 'md', 'lg'],
37
+ };
38
+ const alignEnum = {
39
+ name: 'align',
40
+ type: 'enum',
41
+ options: ['left', 'center', 'right'],
42
+ };
43
+ const controlPaddingEnum = {
44
+ name: 'padding',
45
+ type: 'enum',
46
+ options: ['none', 'xs', 'sm', 'md', 'lg', 'xl'],
47
+ };
48
+ const headingLevelEnum = {
49
+ name: 'level',
50
+ type: 'enum',
51
+ options: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
52
+ };
53
+ const headingSpacingEnum = {
54
+ name: 'spacing',
55
+ type: 'enum',
56
+ options: spacingEnum.options,
57
+ };
58
+ const imagePlaceholderEnum = {
59
+ name: 'placeholder',
60
+ type: 'enum',
61
+ options: ['landscape', 'portrait', 'square', 'icon', 'avatar'],
62
+ };
63
+ exports.COMPONENTS = {
64
+ Heading: {
65
+ name: 'Heading',
66
+ description: 'Large heading text with level-based typography.',
67
+ category: 'Text',
68
+ properties: {
69
+ text: { name: 'text', type: 'string', required: true },
70
+ level: headingLevelEnum,
71
+ spacing: headingSpacingEnum,
72
+ variant: variantWithDefaultEnum,
73
+ },
74
+ example: 'component Heading text: "Users" level: h2 spacing: sm',
75
+ },
76
+ Text: {
77
+ name: 'Text',
78
+ description: 'Body text content.',
79
+ category: 'Text',
80
+ properties: {
81
+ text: { name: 'text', type: 'string', required: true },
82
+ },
83
+ example: 'component Text text: "Lorem ipsum dolor sit amet"',
84
+ },
85
+ Label: {
86
+ name: 'Label',
87
+ description: 'Small label text.',
88
+ category: 'Text',
89
+ properties: {
90
+ text: { name: 'text', type: 'string', required: true },
91
+ },
92
+ example: 'component Label text: "Field label"',
93
+ },
94
+ Button: {
95
+ name: 'Button',
96
+ description: 'Clickable action button.',
97
+ category: 'Action',
98
+ properties: {
99
+ text: { name: 'text', type: 'string', required: true },
100
+ variant: variantWithDefaultEnum,
101
+ size: controlSizeEnum,
102
+ icon: iconNameEnum,
103
+ iconAlign: { name: 'iconAlign', type: 'enum', options: ['left', 'right'] },
104
+ align: alignEnum,
105
+ labelSpace: { name: 'labelSpace', type: 'boolean' },
106
+ padding: controlPaddingEnum,
107
+ block: { name: 'block', type: 'boolean' },
108
+ },
109
+ example: 'component Button text: "Confirm" variant: primary icon: "check" iconAlign: left',
110
+ },
111
+ Link: {
112
+ name: 'Link',
113
+ description: 'Underlined text action without button background.',
114
+ category: 'Action',
115
+ properties: {
116
+ text: { name: 'text', type: 'string', required: true },
117
+ variant: variantEnum,
118
+ size: controlSizeEnum,
119
+ },
120
+ example: 'component Link text: "Learn more" variant: info',
121
+ },
122
+ Input: {
123
+ name: 'Input',
124
+ description: 'Single-line input field.',
125
+ category: 'Input',
126
+ properties: {
127
+ label: { name: 'label', type: 'string' },
128
+ placeholder: { name: 'placeholder', type: 'string' },
129
+ size: controlSizeEnum,
130
+ iconLeft: { ...iconNameEnum, name: 'iconLeft' },
131
+ iconRight: { ...iconNameEnum, name: 'iconRight' },
132
+ },
133
+ example: 'component Input label: "Search" placeholder: "Type..." iconLeft: "search"',
134
+ },
135
+ Textarea: {
136
+ name: 'Textarea',
137
+ description: 'Multi-line input field.',
138
+ category: 'Input',
139
+ properties: {
140
+ label: { name: 'label', type: 'string' },
141
+ placeholder: { name: 'placeholder', type: 'string' },
142
+ rows: { name: 'rows', type: 'number' },
143
+ },
144
+ example: 'component Textarea label: "Notes" rows: 4',
145
+ },
146
+ Select: {
147
+ name: 'Select',
148
+ description: 'Select-style input control.',
149
+ category: 'Input',
150
+ properties: {
151
+ label: { name: 'label', type: 'string' },
152
+ placeholder: { name: 'placeholder', type: 'string' },
153
+ items: { name: 'items', type: 'string' },
154
+ size: controlSizeEnum,
155
+ iconLeft: { ...iconNameEnum, name: 'iconLeft' },
156
+ iconRight: { ...iconNameEnum, name: 'iconRight' },
157
+ },
158
+ example: 'component Select label: "Country" iconLeft: "globe" items: "Spain,France,Germany"',
159
+ },
160
+ Checkbox: {
161
+ name: 'Checkbox',
162
+ description: 'Checkbox control.',
163
+ category: 'Input',
164
+ properties: {
165
+ label: { name: 'label', type: 'string', required: true },
166
+ checked: { name: 'checked', type: 'boolean' },
167
+ },
168
+ example: 'component Checkbox label: "I agree" checked: true',
169
+ },
170
+ Radio: {
171
+ name: 'Radio',
172
+ description: 'Radio control.',
173
+ category: 'Input',
174
+ properties: {
175
+ label: { name: 'label', type: 'string', required: true },
176
+ checked: { name: 'checked', type: 'boolean' },
177
+ },
178
+ example: 'component Radio label: "Option A" checked: true',
179
+ },
180
+ Toggle: {
181
+ name: 'Toggle',
182
+ description: 'Toggle switch control.',
183
+ category: 'Input',
184
+ properties: {
185
+ label: { name: 'label', type: 'string', required: true },
186
+ enabled: { name: 'enabled', type: 'boolean' },
187
+ },
188
+ example: 'component Toggle label: "Dark mode" enabled: true',
189
+ },
190
+ Topbar: {
191
+ name: 'Topbar',
192
+ description: 'Top navigation/header bar.',
193
+ category: 'Navigation',
194
+ properties: {
195
+ title: { name: 'title', type: 'string', required: true },
196
+ subtitle: { name: 'subtitle', type: 'string' },
197
+ icon: iconNameEnum,
198
+ avatar: { name: 'avatar', type: 'boolean' },
199
+ actions: { name: 'actions', type: 'string' },
200
+ user: { name: 'user', type: 'string' },
201
+ variant: variantWithDefaultEnum,
202
+ border: { name: 'border', type: 'boolean' },
203
+ background: { name: 'background', type: 'boolean' },
204
+ radius: { name: 'radius', type: 'enum', options: ['none', 'sm', 'md', 'lg', 'xl'] },
205
+ },
206
+ example: 'component Topbar title: "Dashboard" subtitle: "Overview" icon: "menu" user: "john_doe" avatar: true',
207
+ },
208
+ SidebarMenu: {
209
+ name: 'SidebarMenu',
210
+ description: 'Vertical menu list.',
211
+ category: 'Navigation',
212
+ properties: {
213
+ items: { name: 'items', type: 'string', required: true },
214
+ icons: { name: 'icons', type: 'string' },
215
+ active: { name: 'active', type: 'number' },
216
+ variant: variantWithDefaultEnum,
217
+ },
218
+ example: 'component SidebarMenu items: "Dashboard,Users,Settings" icons: "home,users,settings" active: 0 variant: primary',
219
+ },
220
+ Sidebar: {
221
+ name: 'Sidebar',
222
+ description: 'Sidebar panel with title and items.',
223
+ category: 'Navigation',
224
+ properties: {
225
+ title: { name: 'title', type: 'string' },
226
+ items: { name: 'items', type: 'string', required: true },
227
+ active: { name: 'active', type: 'string' },
228
+ itemsMock: { name: 'itemsMock', type: 'number' },
229
+ },
230
+ example: 'component Sidebar title: "Menu" items: "Home,Reports,Settings"',
231
+ },
232
+ Breadcrumbs: {
233
+ name: 'Breadcrumbs',
234
+ description: 'Navigation path component.',
235
+ category: 'Navigation',
236
+ properties: {
237
+ items: { name: 'items', type: 'string', required: true },
238
+ separator: { name: 'separator', type: 'string' },
239
+ },
240
+ example: 'component Breadcrumbs items: "Home,Users,Detail" separator: ">"',
241
+ },
242
+ Tabs: {
243
+ name: 'Tabs',
244
+ description: 'Tabbed navigation component.',
245
+ category: 'Navigation',
246
+ properties: {
247
+ items: { name: 'items', type: 'string', required: true },
248
+ active: { name: 'active', type: 'number' },
249
+ },
250
+ example: 'component Tabs items: "Overview,Details,Activity" active: 1',
251
+ },
252
+ Table: {
253
+ name: 'Table',
254
+ description: 'Tabular data placeholder.',
255
+ category: 'Data',
256
+ properties: {
257
+ title: { name: 'title', type: 'string' },
258
+ columns: { name: 'columns', type: 'string', required: true },
259
+ rows: { name: 'rows', type: 'number' },
260
+ rowsMock: { name: 'rowsMock', type: 'number' },
261
+ mock: { name: 'mock', type: 'string' },
262
+ random: { name: 'random', type: 'boolean' },
263
+ pagination: { name: 'pagination', type: 'boolean' },
264
+ pages: { name: 'pages', type: 'number' },
265
+ paginationAlign: alignEnum,
266
+ actions: { name: 'actions', type: 'string' },
267
+ caption: { name: 'caption', type: 'string' },
268
+ captionAlign: alignEnum,
269
+ border: { name: 'border', type: 'boolean' },
270
+ innerBorder: { name: 'innerBorder', type: 'boolean' },
271
+ background: { name: 'background', type: 'boolean' },
272
+ // Backward-compatible alias (common typo) accepted by parser/renderers.
273
+ backround: { name: 'backround', type: 'boolean' },
274
+ },
275
+ example: 'component Table columns: "User,City,Amount" rows: 8 mock: "name,city,amount"',
276
+ },
277
+ List: {
278
+ name: 'List',
279
+ description: 'Vertical list component.',
280
+ category: 'Data',
281
+ properties: {
282
+ title: { name: 'title', type: 'string' },
283
+ items: { name: 'items', type: 'string' },
284
+ itemsMock: { name: 'itemsMock', type: 'number' },
285
+ mock: { name: 'mock', type: 'string' },
286
+ random: { name: 'random', type: 'boolean' },
287
+ },
288
+ example: 'component List title: "Cities" itemsMock: 6 mock: "city"',
289
+ },
290
+ StatCard: {
291
+ name: 'StatCard',
292
+ description: 'Metric card with optional caption and icon.',
293
+ category: 'Data',
294
+ properties: {
295
+ title: { name: 'title', type: 'string', required: true },
296
+ value: { name: 'value', type: 'string', required: true },
297
+ caption: { name: 'caption', type: 'string' },
298
+ icon: iconNameEnum,
299
+ },
300
+ example: 'component StatCard title: "Users" value: "1,234" icon: "users"',
301
+ },
302
+ Card: {
303
+ name: 'Card',
304
+ description: 'Generic content card placeholder.',
305
+ category: 'Layout',
306
+ properties: {
307
+ title: { name: 'title', type: 'string' },
308
+ text: { name: 'text', type: 'string' },
309
+ },
310
+ example: 'component Card title: "Summary" text: "Card content"',
311
+ },
312
+ Chart: {
313
+ name: 'Chart',
314
+ description: 'Chart placeholder with deterministic trend data.',
315
+ category: 'Data',
316
+ properties: {
317
+ type: { name: 'type', type: 'enum', options: ['bar', 'line', 'pie', 'area'], required: true },
318
+ height: { name: 'height', type: 'number' },
319
+ },
320
+ example: 'component Chart type: "line" height: 240',
321
+ },
322
+ ChartPlaceholder: {
323
+ name: 'ChartPlaceholder',
324
+ description: 'Backward-compatible alias of Chart.',
325
+ category: 'Data',
326
+ properties: {
327
+ type: { name: 'type', type: 'enum', options: ['bar', 'line', 'pie', 'area'], required: true },
328
+ height: { name: 'height', type: 'number' },
329
+ },
330
+ example: 'component ChartPlaceholder type: "bar" height: 240',
331
+ },
332
+ Code: {
333
+ name: 'Code',
334
+ description: 'Code snippet display.',
335
+ category: 'Text',
336
+ properties: {
337
+ code: { name: 'code', type: 'string', required: true },
338
+ },
339
+ example: 'component Code code: "const x = 42;"',
340
+ },
341
+ Image: {
342
+ name: 'Image',
343
+ description: 'Image placeholder block.',
344
+ category: 'Media',
345
+ properties: {
346
+ placeholder: imagePlaceholderEnum,
347
+ icon: iconNameEnum,
348
+ variant: variantWithDefaultEnum,
349
+ height: { name: 'height', type: 'number' },
350
+ },
351
+ example: 'component Image placeholder: "icon" icon: "user" variant: primary height: 120',
352
+ },
353
+ Icon: {
354
+ name: 'Icon',
355
+ description: 'Standalone icon component.',
356
+ category: 'Media',
357
+ properties: {
358
+ icon: { name: 'icon', type: 'enum', options: icon_names_js_1.ICON_NAME_OPTIONS, required: true },
359
+ size: sizeEnum,
360
+ variant: variantWithDefaultEnum,
361
+ },
362
+ example: 'component Icon icon: "home" size: md',
363
+ },
364
+ IconButton: {
365
+ name: 'IconButton',
366
+ description: 'Button that renders an icon.',
367
+ category: 'Action',
368
+ properties: {
369
+ icon: { name: 'icon', type: 'enum', options: icon_names_js_1.ICON_NAME_OPTIONS, required: true },
370
+ size: controlSizeEnum,
371
+ variant: variantWithDefaultEnum,
372
+ disabled: { name: 'disabled', type: 'boolean' },
373
+ labelSpace: { name: 'labelSpace', type: 'boolean' },
374
+ padding: controlPaddingEnum,
375
+ },
376
+ example: 'component IconButton icon: "search" variant: default size: md',
377
+ },
378
+ Divider: {
379
+ name: 'Divider',
380
+ description: 'Horizontal separator line.',
381
+ category: 'Layout',
382
+ properties: {},
383
+ example: 'component Divider',
384
+ },
385
+ Separate: {
386
+ name: 'Separate',
387
+ description: 'Invisible spacing separator.',
388
+ category: 'Layout',
389
+ properties: {
390
+ size: { name: 'size', type: 'enum', options: ['none', 'xs', 'sm', 'md', 'lg', 'xl'] },
391
+ },
392
+ example: 'component Separate size: md',
393
+ },
394
+ Badge: {
395
+ name: 'Badge',
396
+ description: 'Small status label.',
397
+ category: 'Feedback',
398
+ properties: {
399
+ text: { name: 'text', type: 'string', required: true },
400
+ variant: variantWithDefaultEnum,
401
+ },
402
+ example: 'component Badge text: "Active" variant: success',
403
+ },
404
+ Alert: {
405
+ name: 'Alert',
406
+ description: 'Alert/message box.',
407
+ category: 'Feedback',
408
+ properties: {
409
+ variant: variantEnum,
410
+ title: { name: 'title', type: 'string' },
411
+ text: { name: 'text', type: 'string' },
412
+ },
413
+ example: 'component Alert variant: warning title: "Warning" text: "Review this action"',
414
+ },
415
+ Modal: {
416
+ name: 'Modal',
417
+ description: 'Modal overlay container.',
418
+ category: 'Feedback',
419
+ properties: {
420
+ title: { name: 'title', type: 'string', required: true },
421
+ visible: { name: 'visible', type: 'boolean', defaultValue: true },
422
+ },
423
+ example: 'component Modal title: "Confirm action" visible: false',
424
+ },
425
+ };
426
+ exports.LAYOUTS = {
427
+ stack: {
428
+ name: 'stack',
429
+ description: 'Linear layout container.',
430
+ properties: {
431
+ direction: { name: 'direction', type: 'enum', options: ['horizontal', 'vertical'], required: true },
432
+ align: { name: 'align', type: 'enum', options: ['justify', 'left', 'center', 'right'] },
433
+ gap: { name: 'gap', type: 'enum', options: spacingEnum.options },
434
+ padding: { name: 'padding', type: 'enum', options: spacingEnum.options },
435
+ },
436
+ example: 'layout stack(direction: vertical, gap: md, padding: md) { ... }',
437
+ },
438
+ grid: {
439
+ name: 'grid',
440
+ description: 'Grid layout container.',
441
+ properties: {
442
+ columns: { name: 'columns', type: 'number' },
443
+ gap: { name: 'gap', type: 'enum', options: spacingEnum.options },
444
+ align: { name: 'align', type: 'enum', options: ['justify', 'left', 'center', 'right'] },
445
+ padding: { name: 'padding', type: 'enum', options: spacingEnum.options },
446
+ },
447
+ requiredProperties: ['columns'],
448
+ example: 'layout grid(columns: 12, gap: md) { ... }',
449
+ },
450
+ split: {
451
+ name: 'split',
452
+ description: 'Two-column split layout.',
453
+ properties: {
454
+ left: { name: 'left', type: 'number' },
455
+ right: { name: 'right', type: 'number' },
456
+ background: { name: 'background', type: 'string' },
457
+ border: { name: 'border', type: 'boolean' },
458
+ gap: { name: 'gap', type: 'enum', options: spacingEnum.options },
459
+ padding: { name: 'padding', type: 'enum', options: spacingEnum.options },
460
+ },
461
+ example: 'layout split(left: 260, gap: md, border: true) { ... }',
462
+ },
463
+ panel: {
464
+ name: 'panel',
465
+ description: 'Panel container with border/background support.',
466
+ properties: {
467
+ padding: { name: 'padding', type: 'enum', options: spacingEnum.options },
468
+ gap: { name: 'gap', type: 'enum', options: spacingEnum.options },
469
+ background: { name: 'background', type: 'string' },
470
+ },
471
+ example: 'layout panel(padding: md) { ... }',
472
+ },
473
+ card: {
474
+ name: 'card',
475
+ description: 'Card container with spacing/radius options.',
476
+ properties: {
477
+ padding: { name: 'padding', type: 'enum', options: spacingEnum.options },
478
+ gap: { name: 'gap', type: 'enum', options: spacingEnum.options },
479
+ radius: { name: 'radius', type: 'enum', options: ['none', 'sm', 'md', 'lg'] },
480
+ border: { name: 'border', type: 'boolean' },
481
+ background: { name: 'background', type: 'string' },
482
+ },
483
+ example: 'layout card(padding: md, gap: md, radius: md, border: true) { ... }',
484
+ },
485
+ };
486
+ exports.PROPERTY_VALUES = {
487
+ size: ['none', 'xs', 'sm', 'md', 'lg', 'xl'],
488
+ variant: variantWithDefaultEnum.options,
489
+ align: ['justify', 'left', 'center', 'right'],
490
+ padding: spacingEnum.options,
491
+ gap: spacingEnum.options,
492
+ direction: ['horizontal', 'vertical'],
493
+ level: headingLevelEnum.options,
494
+ spacing: spacingEnum.options,
495
+ };
496
+ exports.KEYWORDS = {
497
+ topLevel: ['project', 'style', 'colors', 'mocks', 'define'],
498
+ screen: ['screen'],
499
+ layout: ['layout'],
500
+ component: ['component'],
501
+ cell: ['cell'],
502
+ special: ['span', 'columns', 'left', 'right', 'gap', 'padding', 'direction', 'background', 'border', 'Component'],
503
+ };
504
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"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"}