@wireweave/core 1.0.0-beta.20260107133450 → 1.0.0-beta.20260110141318
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3067 -823
- package/dist/index.d.cts +168 -3
- package/dist/index.d.ts +168 -3
- package/dist/index.js +3054 -823
- package/dist/parser.cjs +636 -292
- package/dist/parser.d.cts +1 -1
- package/dist/parser.d.ts +1 -1
- package/dist/parser.js +636 -292
- package/dist/renderer.cjs +1756 -525
- package/dist/renderer.d.cts +105 -58
- package/dist/renderer.d.ts +105 -58
- package/dist/renderer.js +1756 -525
- package/dist/{types-DtovIYS6.d.cts → types-lcJzPcR0.d.cts} +40 -2
- package/dist/{types-DtovIYS6.d.ts → types-lcJzPcR0.d.ts} +40 -2
- package/package.json +1 -1
package/dist/renderer.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a1 as WireframeDocument, A as AnyNode, P as PageNode } from './types-
|
|
1
|
+
import { a1 as WireframeDocument, A as AnyNode, P as PageNode } from './types-lcJzPcR0.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Renderer type definitions for wireweave
|
|
@@ -214,6 +214,10 @@ declare class HtmlRenderer extends BaseRenderer {
|
|
|
214
214
|
/**
|
|
215
215
|
* Build common inline styles for all values
|
|
216
216
|
*
|
|
217
|
+
* Position values (x, y) for absolute positioning:
|
|
218
|
+
* - When x or y is specified, element gets position: absolute
|
|
219
|
+
* - x → left, y → top
|
|
220
|
+
*
|
|
217
221
|
* Spacing values (p, m, gap) use token system:
|
|
218
222
|
* - number: spacing token (e.g., p=4 → padding: 16px from token table)
|
|
219
223
|
* - ValueWithUnit: direct CSS value (e.g., p=16px → padding: 16px)
|
|
@@ -261,6 +265,9 @@ declare class HtmlRenderer extends BaseRenderer {
|
|
|
261
265
|
private renderPopover;
|
|
262
266
|
private renderDropdown;
|
|
263
267
|
private renderNav;
|
|
268
|
+
private renderNavChildren;
|
|
269
|
+
private renderNavItem;
|
|
270
|
+
private renderIconHtml;
|
|
264
271
|
private renderTabs;
|
|
265
272
|
private renderBreadcrumb;
|
|
266
273
|
private renderDivider;
|
|
@@ -308,83 +315,126 @@ declare function createHtmlRenderer(options?: RenderOptions): HtmlRenderer;
|
|
|
308
315
|
/**
|
|
309
316
|
* SVG Renderer for wireweave
|
|
310
317
|
*
|
|
311
|
-
*
|
|
318
|
+
* A proper layout engine that renders wireframe AST to SVG image format
|
|
319
|
+
* with correct flexbox-like layout calculations.
|
|
312
320
|
*/
|
|
313
321
|
|
|
314
|
-
/**
|
|
315
|
-
* SVG Renderer class
|
|
316
|
-
*
|
|
317
|
-
* Renders wireframe AST nodes to SVG elements
|
|
318
|
-
*/
|
|
319
322
|
declare class SvgRenderer {
|
|
320
323
|
private options;
|
|
321
324
|
private theme;
|
|
322
|
-
private
|
|
323
|
-
private
|
|
324
|
-
private
|
|
325
|
+
private pageWidth;
|
|
326
|
+
private pageHeight;
|
|
327
|
+
private clipPathDefs;
|
|
328
|
+
private clipPathCounter;
|
|
329
|
+
private readonly DEFAULT_GAP;
|
|
325
330
|
constructor(options?: SvgRenderOptions);
|
|
326
331
|
/**
|
|
327
332
|
* Render a wireframe document to SVG
|
|
328
333
|
*/
|
|
329
334
|
render(doc: WireframeDocument): SvgRenderResult;
|
|
330
335
|
/**
|
|
331
|
-
* Generate SVG defs (styles
|
|
336
|
+
* Generate SVG defs (styles)
|
|
332
337
|
*/
|
|
333
338
|
private generateDefs;
|
|
334
|
-
/**
|
|
335
|
-
* Render a page node
|
|
336
|
-
*/
|
|
337
339
|
private renderPage;
|
|
338
340
|
/**
|
|
339
|
-
* Render page
|
|
341
|
+
* Render page with fixed header/footer layout
|
|
342
|
+
* Header at top, Footer at bottom, Main fills remaining space
|
|
340
343
|
*/
|
|
341
|
-
private
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
private
|
|
346
|
-
private
|
|
347
|
-
private
|
|
348
|
-
private
|
|
349
|
-
private
|
|
350
|
-
private
|
|
351
|
-
private
|
|
352
|
-
private
|
|
353
|
-
private
|
|
354
|
-
private
|
|
355
|
-
private
|
|
356
|
-
private
|
|
357
|
-
private
|
|
358
|
-
private
|
|
359
|
-
private
|
|
360
|
-
private
|
|
361
|
-
private
|
|
362
|
-
private
|
|
363
|
-
private
|
|
344
|
+
private renderPageWithFixedLayout;
|
|
345
|
+
private shouldCenterHorizontally;
|
|
346
|
+
private measureNode;
|
|
347
|
+
private measureRow;
|
|
348
|
+
private measureCol;
|
|
349
|
+
private measureHeader;
|
|
350
|
+
private measureFooter;
|
|
351
|
+
private measureMain;
|
|
352
|
+
private measureSidebar;
|
|
353
|
+
private measureCard;
|
|
354
|
+
private measureModal;
|
|
355
|
+
private measureTitle;
|
|
356
|
+
private measureText;
|
|
357
|
+
private measureButton;
|
|
358
|
+
private measureInput;
|
|
359
|
+
private measureTextarea;
|
|
360
|
+
private measureSelect;
|
|
361
|
+
private measureCheckbox;
|
|
362
|
+
private measureRadio;
|
|
363
|
+
private measureSwitch;
|
|
364
|
+
private measureLink;
|
|
365
|
+
private measureImage;
|
|
366
|
+
private measurePlaceholder;
|
|
367
|
+
private measureAvatar;
|
|
368
|
+
private measureBadge;
|
|
369
|
+
private measureTable;
|
|
370
|
+
private measureList;
|
|
371
|
+
private measureAlert;
|
|
372
|
+
private measureProgress;
|
|
373
|
+
private measureSpinner;
|
|
374
|
+
private measureNav;
|
|
375
|
+
private measureTabs;
|
|
376
|
+
private measureBreadcrumb;
|
|
377
|
+
private measureIcon;
|
|
378
|
+
private measureDivider;
|
|
379
|
+
private layoutNode;
|
|
380
|
+
private layoutRow;
|
|
381
|
+
private layoutCol;
|
|
382
|
+
private rowContainsSidebarOrMain;
|
|
383
|
+
private layoutHeader;
|
|
384
|
+
private adjustChildrenY;
|
|
364
385
|
/**
|
|
365
|
-
*
|
|
386
|
+
* Check if a node should flex to fill available space in a Row
|
|
387
|
+
* Only layout containers without explicit width should flex
|
|
366
388
|
*/
|
|
389
|
+
private isFlexContainer;
|
|
390
|
+
private layoutFooter;
|
|
391
|
+
private layoutMain;
|
|
392
|
+
private layoutSidebar;
|
|
393
|
+
private layoutCard;
|
|
394
|
+
private renderBox;
|
|
395
|
+
private renderRowBox;
|
|
396
|
+
private renderColBox;
|
|
397
|
+
private renderHeaderBox;
|
|
398
|
+
private renderFooterBox;
|
|
399
|
+
private renderMainBox;
|
|
400
|
+
private renderSidebarBox;
|
|
401
|
+
private renderCardBox;
|
|
402
|
+
private renderModalBox;
|
|
403
|
+
private renderTitleBox;
|
|
404
|
+
private renderTextBox;
|
|
405
|
+
private renderButtonBox;
|
|
406
|
+
private renderInputBox;
|
|
407
|
+
private renderTextareaBox;
|
|
408
|
+
private renderSelectBox;
|
|
409
|
+
private renderCheckboxBox;
|
|
410
|
+
private renderRadioBox;
|
|
411
|
+
private renderSwitchBox;
|
|
412
|
+
private renderLinkBox;
|
|
413
|
+
private renderImageBox;
|
|
414
|
+
private renderPlaceholderBox;
|
|
415
|
+
private renderAvatarBox;
|
|
416
|
+
private renderBadgeBox;
|
|
417
|
+
private renderTableBox;
|
|
418
|
+
private renderListBox;
|
|
419
|
+
private renderAlertBox;
|
|
420
|
+
private renderProgressBox;
|
|
421
|
+
private renderSpinnerBox;
|
|
422
|
+
private renderNavBox;
|
|
423
|
+
private renderTabsBox;
|
|
424
|
+
private renderBreadcrumbBox;
|
|
425
|
+
private renderIconBox;
|
|
426
|
+
private renderDividerBox;
|
|
367
427
|
private renderIconPaths;
|
|
368
|
-
private
|
|
369
|
-
private
|
|
370
|
-
private
|
|
371
|
-
private
|
|
372
|
-
private
|
|
373
|
-
private
|
|
374
|
-
private renderAlert;
|
|
375
|
-
private renderProgress;
|
|
376
|
-
private renderSpinner;
|
|
377
|
-
private renderNav;
|
|
378
|
-
private renderTabs;
|
|
379
|
-
private renderBreadcrumb;
|
|
380
|
-
private getFontSize;
|
|
428
|
+
private getPadding;
|
|
429
|
+
private getGap;
|
|
430
|
+
private resolveSpacing;
|
|
431
|
+
private resolveSize;
|
|
432
|
+
private isFullWidth;
|
|
433
|
+
private estimateTextWidth;
|
|
381
434
|
private resolveFontSize;
|
|
382
435
|
private getTitleFontSize;
|
|
383
436
|
private escapeXml;
|
|
384
437
|
}
|
|
385
|
-
/**
|
|
386
|
-
* Create a new SVG renderer instance
|
|
387
|
-
*/
|
|
388
438
|
declare function createSvgRenderer(options?: SvgRenderOptions): SvgRenderer;
|
|
389
439
|
|
|
390
440
|
/**
|
|
@@ -439,9 +489,6 @@ declare function generateComponentStyles(_theme: ThemeConfig, prefix?: string):
|
|
|
439
489
|
type IconElement = [string, Record<string, string>];
|
|
440
490
|
type IconData = IconElement[];
|
|
441
491
|
declare const lucideIcons: Record<string, IconData>;
|
|
442
|
-
/**
|
|
443
|
-
* Get icon data by name
|
|
444
|
-
*/
|
|
445
492
|
declare function getIconData(name: string): IconData | undefined;
|
|
446
493
|
/**
|
|
447
494
|
* Render icon data to SVG string
|
package/dist/renderer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a1 as WireframeDocument, A as AnyNode, P as PageNode } from './types-
|
|
1
|
+
import { a1 as WireframeDocument, A as AnyNode, P as PageNode } from './types-lcJzPcR0.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Renderer type definitions for wireweave
|
|
@@ -214,6 +214,10 @@ declare class HtmlRenderer extends BaseRenderer {
|
|
|
214
214
|
/**
|
|
215
215
|
* Build common inline styles for all values
|
|
216
216
|
*
|
|
217
|
+
* Position values (x, y) for absolute positioning:
|
|
218
|
+
* - When x or y is specified, element gets position: absolute
|
|
219
|
+
* - x → left, y → top
|
|
220
|
+
*
|
|
217
221
|
* Spacing values (p, m, gap) use token system:
|
|
218
222
|
* - number: spacing token (e.g., p=4 → padding: 16px from token table)
|
|
219
223
|
* - ValueWithUnit: direct CSS value (e.g., p=16px → padding: 16px)
|
|
@@ -261,6 +265,9 @@ declare class HtmlRenderer extends BaseRenderer {
|
|
|
261
265
|
private renderPopover;
|
|
262
266
|
private renderDropdown;
|
|
263
267
|
private renderNav;
|
|
268
|
+
private renderNavChildren;
|
|
269
|
+
private renderNavItem;
|
|
270
|
+
private renderIconHtml;
|
|
264
271
|
private renderTabs;
|
|
265
272
|
private renderBreadcrumb;
|
|
266
273
|
private renderDivider;
|
|
@@ -308,83 +315,126 @@ declare function createHtmlRenderer(options?: RenderOptions): HtmlRenderer;
|
|
|
308
315
|
/**
|
|
309
316
|
* SVG Renderer for wireweave
|
|
310
317
|
*
|
|
311
|
-
*
|
|
318
|
+
* A proper layout engine that renders wireframe AST to SVG image format
|
|
319
|
+
* with correct flexbox-like layout calculations.
|
|
312
320
|
*/
|
|
313
321
|
|
|
314
|
-
/**
|
|
315
|
-
* SVG Renderer class
|
|
316
|
-
*
|
|
317
|
-
* Renders wireframe AST nodes to SVG elements
|
|
318
|
-
*/
|
|
319
322
|
declare class SvgRenderer {
|
|
320
323
|
private options;
|
|
321
324
|
private theme;
|
|
322
|
-
private
|
|
323
|
-
private
|
|
324
|
-
private
|
|
325
|
+
private pageWidth;
|
|
326
|
+
private pageHeight;
|
|
327
|
+
private clipPathDefs;
|
|
328
|
+
private clipPathCounter;
|
|
329
|
+
private readonly DEFAULT_GAP;
|
|
325
330
|
constructor(options?: SvgRenderOptions);
|
|
326
331
|
/**
|
|
327
332
|
* Render a wireframe document to SVG
|
|
328
333
|
*/
|
|
329
334
|
render(doc: WireframeDocument): SvgRenderResult;
|
|
330
335
|
/**
|
|
331
|
-
* Generate SVG defs (styles
|
|
336
|
+
* Generate SVG defs (styles)
|
|
332
337
|
*/
|
|
333
338
|
private generateDefs;
|
|
334
|
-
/**
|
|
335
|
-
* Render a page node
|
|
336
|
-
*/
|
|
337
339
|
private renderPage;
|
|
338
340
|
/**
|
|
339
|
-
* Render page
|
|
341
|
+
* Render page with fixed header/footer layout
|
|
342
|
+
* Header at top, Footer at bottom, Main fills remaining space
|
|
340
343
|
*/
|
|
341
|
-
private
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
private
|
|
346
|
-
private
|
|
347
|
-
private
|
|
348
|
-
private
|
|
349
|
-
private
|
|
350
|
-
private
|
|
351
|
-
private
|
|
352
|
-
private
|
|
353
|
-
private
|
|
354
|
-
private
|
|
355
|
-
private
|
|
356
|
-
private
|
|
357
|
-
private
|
|
358
|
-
private
|
|
359
|
-
private
|
|
360
|
-
private
|
|
361
|
-
private
|
|
362
|
-
private
|
|
363
|
-
private
|
|
344
|
+
private renderPageWithFixedLayout;
|
|
345
|
+
private shouldCenterHorizontally;
|
|
346
|
+
private measureNode;
|
|
347
|
+
private measureRow;
|
|
348
|
+
private measureCol;
|
|
349
|
+
private measureHeader;
|
|
350
|
+
private measureFooter;
|
|
351
|
+
private measureMain;
|
|
352
|
+
private measureSidebar;
|
|
353
|
+
private measureCard;
|
|
354
|
+
private measureModal;
|
|
355
|
+
private measureTitle;
|
|
356
|
+
private measureText;
|
|
357
|
+
private measureButton;
|
|
358
|
+
private measureInput;
|
|
359
|
+
private measureTextarea;
|
|
360
|
+
private measureSelect;
|
|
361
|
+
private measureCheckbox;
|
|
362
|
+
private measureRadio;
|
|
363
|
+
private measureSwitch;
|
|
364
|
+
private measureLink;
|
|
365
|
+
private measureImage;
|
|
366
|
+
private measurePlaceholder;
|
|
367
|
+
private measureAvatar;
|
|
368
|
+
private measureBadge;
|
|
369
|
+
private measureTable;
|
|
370
|
+
private measureList;
|
|
371
|
+
private measureAlert;
|
|
372
|
+
private measureProgress;
|
|
373
|
+
private measureSpinner;
|
|
374
|
+
private measureNav;
|
|
375
|
+
private measureTabs;
|
|
376
|
+
private measureBreadcrumb;
|
|
377
|
+
private measureIcon;
|
|
378
|
+
private measureDivider;
|
|
379
|
+
private layoutNode;
|
|
380
|
+
private layoutRow;
|
|
381
|
+
private layoutCol;
|
|
382
|
+
private rowContainsSidebarOrMain;
|
|
383
|
+
private layoutHeader;
|
|
384
|
+
private adjustChildrenY;
|
|
364
385
|
/**
|
|
365
|
-
*
|
|
386
|
+
* Check if a node should flex to fill available space in a Row
|
|
387
|
+
* Only layout containers without explicit width should flex
|
|
366
388
|
*/
|
|
389
|
+
private isFlexContainer;
|
|
390
|
+
private layoutFooter;
|
|
391
|
+
private layoutMain;
|
|
392
|
+
private layoutSidebar;
|
|
393
|
+
private layoutCard;
|
|
394
|
+
private renderBox;
|
|
395
|
+
private renderRowBox;
|
|
396
|
+
private renderColBox;
|
|
397
|
+
private renderHeaderBox;
|
|
398
|
+
private renderFooterBox;
|
|
399
|
+
private renderMainBox;
|
|
400
|
+
private renderSidebarBox;
|
|
401
|
+
private renderCardBox;
|
|
402
|
+
private renderModalBox;
|
|
403
|
+
private renderTitleBox;
|
|
404
|
+
private renderTextBox;
|
|
405
|
+
private renderButtonBox;
|
|
406
|
+
private renderInputBox;
|
|
407
|
+
private renderTextareaBox;
|
|
408
|
+
private renderSelectBox;
|
|
409
|
+
private renderCheckboxBox;
|
|
410
|
+
private renderRadioBox;
|
|
411
|
+
private renderSwitchBox;
|
|
412
|
+
private renderLinkBox;
|
|
413
|
+
private renderImageBox;
|
|
414
|
+
private renderPlaceholderBox;
|
|
415
|
+
private renderAvatarBox;
|
|
416
|
+
private renderBadgeBox;
|
|
417
|
+
private renderTableBox;
|
|
418
|
+
private renderListBox;
|
|
419
|
+
private renderAlertBox;
|
|
420
|
+
private renderProgressBox;
|
|
421
|
+
private renderSpinnerBox;
|
|
422
|
+
private renderNavBox;
|
|
423
|
+
private renderTabsBox;
|
|
424
|
+
private renderBreadcrumbBox;
|
|
425
|
+
private renderIconBox;
|
|
426
|
+
private renderDividerBox;
|
|
367
427
|
private renderIconPaths;
|
|
368
|
-
private
|
|
369
|
-
private
|
|
370
|
-
private
|
|
371
|
-
private
|
|
372
|
-
private
|
|
373
|
-
private
|
|
374
|
-
private renderAlert;
|
|
375
|
-
private renderProgress;
|
|
376
|
-
private renderSpinner;
|
|
377
|
-
private renderNav;
|
|
378
|
-
private renderTabs;
|
|
379
|
-
private renderBreadcrumb;
|
|
380
|
-
private getFontSize;
|
|
428
|
+
private getPadding;
|
|
429
|
+
private getGap;
|
|
430
|
+
private resolveSpacing;
|
|
431
|
+
private resolveSize;
|
|
432
|
+
private isFullWidth;
|
|
433
|
+
private estimateTextWidth;
|
|
381
434
|
private resolveFontSize;
|
|
382
435
|
private getTitleFontSize;
|
|
383
436
|
private escapeXml;
|
|
384
437
|
}
|
|
385
|
-
/**
|
|
386
|
-
* Create a new SVG renderer instance
|
|
387
|
-
*/
|
|
388
438
|
declare function createSvgRenderer(options?: SvgRenderOptions): SvgRenderer;
|
|
389
439
|
|
|
390
440
|
/**
|
|
@@ -439,9 +489,6 @@ declare function generateComponentStyles(_theme: ThemeConfig, prefix?: string):
|
|
|
439
489
|
type IconElement = [string, Record<string, string>];
|
|
440
490
|
type IconData = IconElement[];
|
|
441
491
|
declare const lucideIcons: Record<string, IconData>;
|
|
442
|
-
/**
|
|
443
|
-
* Get icon data by name
|
|
444
|
-
*/
|
|
445
492
|
declare function getIconData(name: string): IconData | undefined;
|
|
446
493
|
/**
|
|
447
494
|
* Render icon data to SVG string
|