@wireweave/core 1.0.0-beta.20260110141318 → 1.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.
@@ -1,4 +1,4 @@
1
- import { a1 as WireframeDocument, A as AnyNode, P as PageNode } from './types-lcJzPcR0.cjs';
1
+ import { a1 as WireframeDocument, A as AnyNode, P as PageNode } from './types-DtovIYS6.cjs';
2
2
 
3
3
  /**
4
4
  * Renderer type definitions for wireweave
@@ -214,10 +214,6 @@ 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
- *
221
217
  * Spacing values (p, m, gap) use token system:
222
218
  * - number: spacing token (e.g., p=4 → padding: 16px from token table)
223
219
  * - ValueWithUnit: direct CSS value (e.g., p=16px → padding: 16px)
@@ -265,9 +261,6 @@ declare class HtmlRenderer extends BaseRenderer {
265
261
  private renderPopover;
266
262
  private renderDropdown;
267
263
  private renderNav;
268
- private renderNavChildren;
269
- private renderNavItem;
270
- private renderIconHtml;
271
264
  private renderTabs;
272
265
  private renderBreadcrumb;
273
266
  private renderDivider;
@@ -315,126 +308,83 @@ declare function createHtmlRenderer(options?: RenderOptions): HtmlRenderer;
315
308
  /**
316
309
  * SVG Renderer for wireweave
317
310
  *
318
- * A proper layout engine that renders wireframe AST to SVG image format
319
- * with correct flexbox-like layout calculations.
311
+ * Renders wireframe AST to SVG image format
320
312
  */
321
313
 
314
+ /**
315
+ * SVG Renderer class
316
+ *
317
+ * Renders wireframe AST nodes to SVG elements
318
+ */
322
319
  declare class SvgRenderer {
323
320
  private options;
324
321
  private theme;
325
- private pageWidth;
326
- private pageHeight;
327
- private clipPathDefs;
328
- private clipPathCounter;
329
- private readonly DEFAULT_GAP;
322
+ private currentX;
323
+ private currentY;
324
+ private contentWidth;
330
325
  constructor(options?: SvgRenderOptions);
331
326
  /**
332
327
  * Render a wireframe document to SVG
333
328
  */
334
329
  render(doc: WireframeDocument): SvgRenderResult;
335
330
  /**
336
- * Generate SVG defs (styles)
331
+ * Generate SVG defs (styles, patterns, etc.)
337
332
  */
338
333
  private generateDefs;
334
+ /**
335
+ * Render a page node
336
+ */
339
337
  private renderPage;
340
338
  /**
341
- * Render page with fixed header/footer layout
342
- * Header at top, Footer at bottom, Main fills remaining space
339
+ * Render page title
343
340
  */
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;
341
+ private renderPageTitle;
342
+ /**
343
+ * Render any AST node
344
+ */
345
+ private renderNode;
346
+ private renderRow;
347
+ private renderCol;
348
+ private renderHeader;
349
+ private renderMain;
350
+ private renderFooter;
351
+ private renderSidebar;
352
+ private renderCard;
353
+ private renderModal;
354
+ private renderText;
355
+ private renderTitle;
356
+ private renderLink;
357
+ private renderInput;
358
+ private renderTextarea;
359
+ private renderSelect;
360
+ private renderCheckbox;
361
+ private renderRadio;
362
+ private renderSwitch;
363
+ private renderButton;
385
364
  /**
386
- * Check if a node should flex to fill available space in a Row
387
- * Only layout containers without explicit width should flex
365
+ * Render icon paths for SVG
388
366
  */
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;
427
367
  private renderIconPaths;
428
- private getPadding;
429
- private getGap;
430
- private resolveSpacing;
431
- private resolveSize;
432
- private isFullWidth;
433
- private estimateTextWidth;
368
+ private renderImage;
369
+ private renderPlaceholder;
370
+ private renderAvatar;
371
+ private renderBadge;
372
+ private renderTable;
373
+ private renderList;
374
+ private renderAlert;
375
+ private renderProgress;
376
+ private renderSpinner;
377
+ private renderNav;
378
+ private renderTabs;
379
+ private renderBreadcrumb;
380
+ private getFontSize;
434
381
  private resolveFontSize;
435
382
  private getTitleFontSize;
436
383
  private escapeXml;
437
384
  }
385
+ /**
386
+ * Create a new SVG renderer instance
387
+ */
438
388
  declare function createSvgRenderer(options?: SvgRenderOptions): SvgRenderer;
439
389
 
440
390
  /**
@@ -489,6 +439,9 @@ declare function generateComponentStyles(_theme: ThemeConfig, prefix?: string):
489
439
  type IconElement = [string, Record<string, string>];
490
440
  type IconData = IconElement[];
491
441
  declare const lucideIcons: Record<string, IconData>;
442
+ /**
443
+ * Get icon data by name
444
+ */
492
445
  declare function getIconData(name: string): IconData | undefined;
493
446
  /**
494
447
  * Render icon data to SVG string
@@ -1,4 +1,4 @@
1
- import { a1 as WireframeDocument, A as AnyNode, P as PageNode } from './types-lcJzPcR0.js';
1
+ import { a1 as WireframeDocument, A as AnyNode, P as PageNode } from './types-DtovIYS6.js';
2
2
 
3
3
  /**
4
4
  * Renderer type definitions for wireweave
@@ -214,10 +214,6 @@ 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
- *
221
217
  * Spacing values (p, m, gap) use token system:
222
218
  * - number: spacing token (e.g., p=4 → padding: 16px from token table)
223
219
  * - ValueWithUnit: direct CSS value (e.g., p=16px → padding: 16px)
@@ -265,9 +261,6 @@ declare class HtmlRenderer extends BaseRenderer {
265
261
  private renderPopover;
266
262
  private renderDropdown;
267
263
  private renderNav;
268
- private renderNavChildren;
269
- private renderNavItem;
270
- private renderIconHtml;
271
264
  private renderTabs;
272
265
  private renderBreadcrumb;
273
266
  private renderDivider;
@@ -315,126 +308,83 @@ declare function createHtmlRenderer(options?: RenderOptions): HtmlRenderer;
315
308
  /**
316
309
  * SVG Renderer for wireweave
317
310
  *
318
- * A proper layout engine that renders wireframe AST to SVG image format
319
- * with correct flexbox-like layout calculations.
311
+ * Renders wireframe AST to SVG image format
320
312
  */
321
313
 
314
+ /**
315
+ * SVG Renderer class
316
+ *
317
+ * Renders wireframe AST nodes to SVG elements
318
+ */
322
319
  declare class SvgRenderer {
323
320
  private options;
324
321
  private theme;
325
- private pageWidth;
326
- private pageHeight;
327
- private clipPathDefs;
328
- private clipPathCounter;
329
- private readonly DEFAULT_GAP;
322
+ private currentX;
323
+ private currentY;
324
+ private contentWidth;
330
325
  constructor(options?: SvgRenderOptions);
331
326
  /**
332
327
  * Render a wireframe document to SVG
333
328
  */
334
329
  render(doc: WireframeDocument): SvgRenderResult;
335
330
  /**
336
- * Generate SVG defs (styles)
331
+ * Generate SVG defs (styles, patterns, etc.)
337
332
  */
338
333
  private generateDefs;
334
+ /**
335
+ * Render a page node
336
+ */
339
337
  private renderPage;
340
338
  /**
341
- * Render page with fixed header/footer layout
342
- * Header at top, Footer at bottom, Main fills remaining space
339
+ * Render page title
343
340
  */
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;
341
+ private renderPageTitle;
342
+ /**
343
+ * Render any AST node
344
+ */
345
+ private renderNode;
346
+ private renderRow;
347
+ private renderCol;
348
+ private renderHeader;
349
+ private renderMain;
350
+ private renderFooter;
351
+ private renderSidebar;
352
+ private renderCard;
353
+ private renderModal;
354
+ private renderText;
355
+ private renderTitle;
356
+ private renderLink;
357
+ private renderInput;
358
+ private renderTextarea;
359
+ private renderSelect;
360
+ private renderCheckbox;
361
+ private renderRadio;
362
+ private renderSwitch;
363
+ private renderButton;
385
364
  /**
386
- * Check if a node should flex to fill available space in a Row
387
- * Only layout containers without explicit width should flex
365
+ * Render icon paths for SVG
388
366
  */
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;
427
367
  private renderIconPaths;
428
- private getPadding;
429
- private getGap;
430
- private resolveSpacing;
431
- private resolveSize;
432
- private isFullWidth;
433
- private estimateTextWidth;
368
+ private renderImage;
369
+ private renderPlaceholder;
370
+ private renderAvatar;
371
+ private renderBadge;
372
+ private renderTable;
373
+ private renderList;
374
+ private renderAlert;
375
+ private renderProgress;
376
+ private renderSpinner;
377
+ private renderNav;
378
+ private renderTabs;
379
+ private renderBreadcrumb;
380
+ private getFontSize;
434
381
  private resolveFontSize;
435
382
  private getTitleFontSize;
436
383
  private escapeXml;
437
384
  }
385
+ /**
386
+ * Create a new SVG renderer instance
387
+ */
438
388
  declare function createSvgRenderer(options?: SvgRenderOptions): SvgRenderer;
439
389
 
440
390
  /**
@@ -489,6 +439,9 @@ declare function generateComponentStyles(_theme: ThemeConfig, prefix?: string):
489
439
  type IconElement = [string, Record<string, string>];
490
440
  type IconData = IconElement[];
491
441
  declare const lucideIcons: Record<string, IconData>;
442
+ /**
443
+ * Get icon data by name
444
+ */
492
445
  declare function getIconData(name: string): IconData | undefined;
493
446
  /**
494
447
  * Render icon data to SVG string