@spectratools/graphic-designer-cli 0.4.0 → 0.7.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.
- package/README.md +32 -2
- package/dist/cli.js +728 -61
- package/dist/index.d.ts +115 -5
- package/dist/index.js +751 -61
- package/dist/qa.d.ts +14 -3
- package/dist/qa.js +263 -12
- package/dist/renderer.d.ts +1 -1
- package/dist/renderer.js +466 -54
- package/dist/{spec.schema-BUTof436.d.ts → spec.schema-BeFz_nk1.d.ts} +1820 -193
- package/dist/spec.schema.d.ts +1 -1
- package/dist/spec.schema.js +96 -9
- package/package.json +1 -1
package/dist/spec.schema.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import 'zod';
|
|
2
|
-
export { A as AutoLayoutConfig, B as BuiltInTheme,
|
|
2
|
+
export { A as AnchorHint, e as AutoLayoutConfig, B as BuiltInTheme, f as CardElement, g as CodeBlockElement, aq as CodeBlockStyle, C as ConnectionElement, h as ConstraintSpec, k as Decorator, l as DesignCardSpec, m as DesignSafeFrame, D as DesignSpec, n as DesignTheme, o as DiagramElement, p as DiagramLayout, q as DiagramSpec, r as DrawBadge, s as DrawBezier, t as DrawCircle, b as DrawCommand, u as DrawFontFamily, v as DrawGradientRect, ar as DrawGrid, w as DrawLine, x as DrawPath, y as DrawPoint, z as DrawRect, E as DrawText, F as Element, G as FlowNodeElement, as as FlowNodeShadow, H as Gradient, I as GradientOverlayDecorator, at as GradientStop, L as GridLayoutConfig, M as ImageElement, N as LayoutConfig, au as LinearGradient, P as ManualLayoutConfig, av as RadialGradient, Q as RainbowRuleDecorator, U as ShapeElement, V as StackLayoutConfig, W as TerminalElement, X as TextElement, c as Theme, Y as ThemeInput, Z as VignetteDecorator, $ as builtInThemeBackgrounds, a0 as builtInThemes, a2 as connectionElementSchema, a3 as defaultAutoLayout, a4 as defaultCanvas, a5 as defaultConstraints, a6 as defaultGridLayout, a7 as defaultLayout, a8 as defaultStackLayout, a9 as defaultTheme, aa as deriveSafeFrame, ab as designSpecSchema, ac as diagramElementSchema, ad as diagramLayoutSchema, ae as diagramSpecSchema, ai as flowNodeElementSchema, aj as inferLayout, al as parseDesignSpec, am as parseDiagramSpec, ao as resolveTheme } from './spec.schema-BeFz_nk1.js';
|
|
3
3
|
import '@napi-rs/canvas';
|
package/dist/spec.schema.js
CHANGED
|
@@ -371,6 +371,15 @@ var drawGradientRectSchema = z2.object({
|
|
|
371
371
|
radius: z2.number().min(0).max(256).default(0),
|
|
372
372
|
opacity: z2.number().min(0).max(1).default(1)
|
|
373
373
|
}).strict();
|
|
374
|
+
var drawGridSchema = z2.object({
|
|
375
|
+
type: z2.literal("grid"),
|
|
376
|
+
spacing: z2.number().min(5).max(200).default(40),
|
|
377
|
+
color: colorHexSchema2.default("#1E2D4A"),
|
|
378
|
+
width: z2.number().min(0.1).max(4).default(0.5),
|
|
379
|
+
opacity: z2.number().min(0).max(1).default(0.2),
|
|
380
|
+
offsetX: z2.number().default(0),
|
|
381
|
+
offsetY: z2.number().default(0)
|
|
382
|
+
}).strict();
|
|
374
383
|
var drawCommandSchema = z2.discriminatedUnion("type", [
|
|
375
384
|
drawRectSchema,
|
|
376
385
|
drawCircleSchema,
|
|
@@ -379,7 +388,8 @@ var drawCommandSchema = z2.discriminatedUnion("type", [
|
|
|
379
388
|
drawBezierSchema,
|
|
380
389
|
drawPathSchema,
|
|
381
390
|
drawBadgeSchema,
|
|
382
|
-
drawGradientRectSchema
|
|
391
|
+
drawGradientRectSchema,
|
|
392
|
+
drawGridSchema
|
|
383
393
|
]);
|
|
384
394
|
var defaultCanvas = {
|
|
385
395
|
width: 1200,
|
|
@@ -444,10 +454,26 @@ var cardElementSchema = z2.object({
|
|
|
444
454
|
tone: z2.enum(["neutral", "accent", "success", "warning", "error"]).default("neutral"),
|
|
445
455
|
icon: z2.string().min(1).max(64).optional()
|
|
446
456
|
}).strict();
|
|
457
|
+
var flowNodeShadowSchema = z2.object({
|
|
458
|
+
color: colorHexSchema2.optional(),
|
|
459
|
+
blur: z2.number().min(0).max(64).default(8),
|
|
460
|
+
offsetX: z2.number().min(-32).max(32).default(0),
|
|
461
|
+
offsetY: z2.number().min(-32).max(32).default(0),
|
|
462
|
+
opacity: z2.number().min(0).max(1).default(0.3)
|
|
463
|
+
}).strict();
|
|
447
464
|
var flowNodeElementSchema = z2.object({
|
|
448
465
|
type: z2.literal("flow-node"),
|
|
449
466
|
id: z2.string().min(1).max(120),
|
|
450
|
-
shape: z2.enum([
|
|
467
|
+
shape: z2.enum([
|
|
468
|
+
"box",
|
|
469
|
+
"rounded-box",
|
|
470
|
+
"diamond",
|
|
471
|
+
"circle",
|
|
472
|
+
"pill",
|
|
473
|
+
"cylinder",
|
|
474
|
+
"parallelogram",
|
|
475
|
+
"hexagon"
|
|
476
|
+
]).default("rounded-box"),
|
|
451
477
|
label: z2.string().min(1).max(200),
|
|
452
478
|
sublabel: z2.string().min(1).max(300).optional(),
|
|
453
479
|
sublabelColor: colorHexSchema2.optional(),
|
|
@@ -467,20 +493,35 @@ var flowNodeElementSchema = z2.object({
|
|
|
467
493
|
badgeText: z2.string().min(1).max(32).optional(),
|
|
468
494
|
badgeColor: colorHexSchema2.optional(),
|
|
469
495
|
badgeBackground: colorHexSchema2.optional(),
|
|
470
|
-
badgePosition: z2.enum(["top", "inside-top"]).default("inside-top")
|
|
496
|
+
badgePosition: z2.enum(["top", "inside-top"]).default("inside-top"),
|
|
497
|
+
shadow: flowNodeShadowSchema.optional()
|
|
471
498
|
}).strict();
|
|
499
|
+
var anchorHintSchema = z2.union([
|
|
500
|
+
z2.enum(["top", "bottom", "left", "right", "center"]),
|
|
501
|
+
z2.object({
|
|
502
|
+
x: z2.number().min(-1).max(1),
|
|
503
|
+
y: z2.number().min(-1).max(1)
|
|
504
|
+
}).strict()
|
|
505
|
+
]);
|
|
472
506
|
var connectionElementSchema = z2.object({
|
|
473
507
|
type: z2.literal("connection"),
|
|
474
508
|
from: z2.string().min(1).max(120),
|
|
475
509
|
to: z2.string().min(1).max(120),
|
|
476
510
|
style: z2.enum(["solid", "dashed", "dotted"]).default("solid"),
|
|
511
|
+
strokeStyle: z2.enum(["solid", "dashed", "dotted"]).default("solid"),
|
|
477
512
|
arrow: z2.enum(["end", "start", "both", "none"]).default("end"),
|
|
478
513
|
label: z2.string().min(1).max(200).optional(),
|
|
479
514
|
labelPosition: z2.enum(["start", "middle", "end"]).default("middle"),
|
|
480
515
|
color: colorHexSchema2.optional(),
|
|
481
|
-
width: z2.number().min(0.5).max(
|
|
516
|
+
width: z2.number().min(0.5).max(10).optional(),
|
|
517
|
+
strokeWidth: z2.number().min(0.5).max(10).default(2),
|
|
482
518
|
arrowSize: z2.number().min(4).max(32).optional(),
|
|
483
|
-
|
|
519
|
+
arrowPlacement: z2.enum(["endpoint", "boundary"]).default("endpoint"),
|
|
520
|
+
opacity: z2.number().min(0).max(1).default(1),
|
|
521
|
+
routing: z2.enum(["auto", "orthogonal", "curve", "arc"]).default("auto"),
|
|
522
|
+
tension: z2.number().min(0.1).max(0.8).default(0.35),
|
|
523
|
+
fromAnchor: anchorHintSchema.optional(),
|
|
524
|
+
toAnchor: anchorHintSchema.optional()
|
|
484
525
|
}).strict();
|
|
485
526
|
var codeBlockStyleSchema = z2.object({
|
|
486
527
|
paddingVertical: z2.number().min(0).max(128).default(56),
|
|
@@ -549,6 +590,10 @@ var elementSchema = z2.discriminatedUnion("type", [
|
|
|
549
590
|
shapeElementSchema,
|
|
550
591
|
imageElementSchema
|
|
551
592
|
]);
|
|
593
|
+
var diagramCenterSchema = z2.object({
|
|
594
|
+
x: z2.number(),
|
|
595
|
+
y: z2.number()
|
|
596
|
+
}).strict();
|
|
552
597
|
var autoLayoutConfigSchema = z2.object({
|
|
553
598
|
mode: z2.literal("auto"),
|
|
554
599
|
algorithm: z2.enum(["layered", "stress", "force", "radial", "box"]).default("layered"),
|
|
@@ -564,7 +609,9 @@ var autoLayoutConfigSchema = z2.object({
|
|
|
564
609
|
/** Compaction strategy for radial layout. Only relevant when algorithm is 'radial'. */
|
|
565
610
|
radialCompaction: z2.enum(["none", "radial", "wedge"]).optional(),
|
|
566
611
|
/** Sort strategy for radial layout node ordering. Only relevant when algorithm is 'radial'. */
|
|
567
|
-
radialSortBy: z2.enum(["id", "connections"]).optional()
|
|
612
|
+
radialSortBy: z2.enum(["id", "connections"]).optional(),
|
|
613
|
+
/** Explicit center used by curve/arc connection routing. */
|
|
614
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
568
615
|
}).strict();
|
|
569
616
|
var gridLayoutConfigSchema = z2.object({
|
|
570
617
|
mode: z2.literal("grid"),
|
|
@@ -572,13 +619,17 @@ var gridLayoutConfigSchema = z2.object({
|
|
|
572
619
|
gap: z2.number().int().min(0).max(256).default(24),
|
|
573
620
|
cardMinHeight: z2.number().int().min(32).max(4096).optional(),
|
|
574
621
|
cardMaxHeight: z2.number().int().min(32).max(4096).optional(),
|
|
575
|
-
equalHeight: z2.boolean().default(false)
|
|
622
|
+
equalHeight: z2.boolean().default(false),
|
|
623
|
+
/** Explicit center used by curve/arc connection routing. */
|
|
624
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
576
625
|
}).strict();
|
|
577
626
|
var stackLayoutConfigSchema = z2.object({
|
|
578
627
|
mode: z2.literal("stack"),
|
|
579
628
|
direction: z2.enum(["vertical", "horizontal"]).default("vertical"),
|
|
580
629
|
gap: z2.number().int().min(0).max(256).default(24),
|
|
581
|
-
alignment: z2.enum(["start", "center", "end", "stretch"]).default("stretch")
|
|
630
|
+
alignment: z2.enum(["start", "center", "end", "stretch"]).default("stretch"),
|
|
631
|
+
/** Explicit center used by curve/arc connection routing. */
|
|
632
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
582
633
|
}).strict();
|
|
583
634
|
var manualPositionSchema = z2.object({
|
|
584
635
|
x: z2.number().int(),
|
|
@@ -588,7 +639,9 @@ var manualPositionSchema = z2.object({
|
|
|
588
639
|
}).strict();
|
|
589
640
|
var manualLayoutConfigSchema = z2.object({
|
|
590
641
|
mode: z2.literal("manual"),
|
|
591
|
-
positions: z2.record(z2.string().min(1), manualPositionSchema).default({})
|
|
642
|
+
positions: z2.record(z2.string().min(1), manualPositionSchema).default({}),
|
|
643
|
+
/** Explicit center used by curve/arc connection routing. */
|
|
644
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
592
645
|
}).strict();
|
|
593
646
|
var layoutConfigSchema = z2.discriminatedUnion("mode", [
|
|
594
647
|
autoLayoutConfigSchema,
|
|
@@ -640,6 +693,31 @@ var canvasSchema = z2.object({
|
|
|
640
693
|
padding: z2.number().int().min(0).max(256).default(defaultCanvas.padding)
|
|
641
694
|
}).strict();
|
|
642
695
|
var themeInputSchema = z2.union([builtInThemeSchema, themeSchema]);
|
|
696
|
+
var diagramPositionSchema = z2.object({
|
|
697
|
+
x: z2.number(),
|
|
698
|
+
y: z2.number(),
|
|
699
|
+
width: z2.number().positive(),
|
|
700
|
+
height: z2.number().positive()
|
|
701
|
+
}).strict();
|
|
702
|
+
var diagramElementSchema = z2.discriminatedUnion("type", [
|
|
703
|
+
flowNodeElementSchema,
|
|
704
|
+
connectionElementSchema
|
|
705
|
+
]);
|
|
706
|
+
var diagramLayoutSchema = z2.object({
|
|
707
|
+
mode: z2.enum(["manual", "auto"]).default("manual"),
|
|
708
|
+
positions: z2.record(z2.string(), diagramPositionSchema).optional(),
|
|
709
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
710
|
+
}).strict();
|
|
711
|
+
var diagramSpecSchema = z2.object({
|
|
712
|
+
version: z2.literal(1),
|
|
713
|
+
canvas: z2.object({
|
|
714
|
+
width: z2.number().int().min(320).max(4096).default(1200),
|
|
715
|
+
height: z2.number().int().min(180).max(4096).default(675)
|
|
716
|
+
}).default({ width: 1200, height: 675 }),
|
|
717
|
+
theme: themeSchema.optional(),
|
|
718
|
+
elements: z2.array(diagramElementSchema).min(1),
|
|
719
|
+
layout: diagramLayoutSchema.default({ mode: "manual" })
|
|
720
|
+
}).strict();
|
|
643
721
|
var designSpecSchema = z2.object({
|
|
644
722
|
version: z2.literal(2).default(2),
|
|
645
723
|
canvas: canvasSchema.default(defaultCanvas),
|
|
@@ -664,12 +742,16 @@ function deriveSafeFrame(spec) {
|
|
|
664
742
|
height: spec.canvas.height - spec.canvas.padding * 2
|
|
665
743
|
};
|
|
666
744
|
}
|
|
745
|
+
function parseDiagramSpec(input) {
|
|
746
|
+
return diagramSpecSchema.parse(input);
|
|
747
|
+
}
|
|
667
748
|
function parseDesignSpec(input) {
|
|
668
749
|
return designSpecSchema.parse(input);
|
|
669
750
|
}
|
|
670
751
|
export {
|
|
671
752
|
builtInThemeBackgrounds,
|
|
672
753
|
builtInThemes,
|
|
754
|
+
connectionElementSchema,
|
|
673
755
|
defaultAutoLayout,
|
|
674
756
|
defaultCanvas,
|
|
675
757
|
defaultConstraints,
|
|
@@ -679,7 +761,12 @@ export {
|
|
|
679
761
|
defaultTheme,
|
|
680
762
|
deriveSafeFrame,
|
|
681
763
|
designSpecSchema,
|
|
764
|
+
diagramElementSchema,
|
|
765
|
+
diagramLayoutSchema,
|
|
766
|
+
diagramSpecSchema,
|
|
767
|
+
flowNodeElementSchema,
|
|
682
768
|
inferLayout,
|
|
683
769
|
parseDesignSpec,
|
|
770
|
+
parseDiagramSpec,
|
|
684
771
|
resolveTheme
|
|
685
772
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectratools/graphic-designer-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Deterministic visual content generator — code screenshots, terminal shots, flowcharts, and infographics. No browser dependency.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|