@spectratools/graphic-designer-cli 0.4.0 → 0.6.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 +555 -60
- package/dist/index.d.ts +105 -5
- package/dist/index.js +578 -60
- package/dist/qa.d.ts +14 -3
- package/dist/qa.js +242 -11
- package/dist/renderer.d.ts +1 -1
- package/dist/renderer.js +293 -53
- package/dist/{spec.schema-BUTof436.d.ts → spec.schema-Dm_wOLTd.d.ts} +1375 -114
- package/dist/spec.schema.d.ts +1 -1
- package/dist/spec.schema.js +75 -8
- 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 AutoLayoutConfig, B as BuiltInTheme, e as CardElement, f as CodeBlockElement, ap as CodeBlockStyle, C as ConnectionElement, g as ConstraintSpec, j as Decorator, k as DesignCardSpec, l as DesignSafeFrame, D as DesignSpec, m as DesignTheme, n as DiagramElement, o as DiagramLayout, p as DiagramSpec, q as DrawBadge, r as DrawBezier, s as DrawCircle, b as DrawCommand, t as DrawFontFamily, u as DrawGradientRect, v as DrawLine, w as DrawPath, x as DrawPoint, y as DrawRect, z as DrawText, E as Element, F as FlowNodeElement, aq as FlowNodeShadow, G as Gradient, H as GradientOverlayDecorator, ar as GradientStop, K as GridLayoutConfig, L as ImageElement, M as LayoutConfig, as as LinearGradient, O as ManualLayoutConfig, at as RadialGradient, P as RainbowRuleDecorator, S as ShapeElement, U as StackLayoutConfig, V as TerminalElement, W as TextElement, c as Theme, X as ThemeInput, Y as VignetteDecorator, _ as builtInThemeBackgrounds, $ as builtInThemes, a1 as connectionElementSchema, a2 as defaultAutoLayout, a3 as defaultCanvas, a4 as defaultConstraints, a5 as defaultGridLayout, a6 as defaultLayout, a7 as defaultStackLayout, a8 as defaultTheme, a9 as deriveSafeFrame, aa as designSpecSchema, ab as diagramElementSchema, ac as diagramLayoutSchema, ad as diagramSpecSchema, ah as flowNodeElementSchema, ai as inferLayout, ak as parseDesignSpec, al as parseDiagramSpec, an as resolveTheme } from './spec.schema-Dm_wOLTd.js';
|
|
3
3
|
import '@napi-rs/canvas';
|
package/dist/spec.schema.js
CHANGED
|
@@ -444,10 +444,26 @@ var cardElementSchema = z2.object({
|
|
|
444
444
|
tone: z2.enum(["neutral", "accent", "success", "warning", "error"]).default("neutral"),
|
|
445
445
|
icon: z2.string().min(1).max(64).optional()
|
|
446
446
|
}).strict();
|
|
447
|
+
var flowNodeShadowSchema = z2.object({
|
|
448
|
+
color: colorHexSchema2.optional(),
|
|
449
|
+
blur: z2.number().min(0).max(64).default(8),
|
|
450
|
+
offsetX: z2.number().min(-32).max(32).default(0),
|
|
451
|
+
offsetY: z2.number().min(-32).max(32).default(0),
|
|
452
|
+
opacity: z2.number().min(0).max(1).default(0.3)
|
|
453
|
+
}).strict();
|
|
447
454
|
var flowNodeElementSchema = z2.object({
|
|
448
455
|
type: z2.literal("flow-node"),
|
|
449
456
|
id: z2.string().min(1).max(120),
|
|
450
|
-
shape: z2.enum([
|
|
457
|
+
shape: z2.enum([
|
|
458
|
+
"box",
|
|
459
|
+
"rounded-box",
|
|
460
|
+
"diamond",
|
|
461
|
+
"circle",
|
|
462
|
+
"pill",
|
|
463
|
+
"cylinder",
|
|
464
|
+
"parallelogram",
|
|
465
|
+
"hexagon"
|
|
466
|
+
]).default("rounded-box"),
|
|
451
467
|
label: z2.string().min(1).max(200),
|
|
452
468
|
sublabel: z2.string().min(1).max(300).optional(),
|
|
453
469
|
sublabelColor: colorHexSchema2.optional(),
|
|
@@ -467,20 +483,25 @@ var flowNodeElementSchema = z2.object({
|
|
|
467
483
|
badgeText: z2.string().min(1).max(32).optional(),
|
|
468
484
|
badgeColor: colorHexSchema2.optional(),
|
|
469
485
|
badgeBackground: colorHexSchema2.optional(),
|
|
470
|
-
badgePosition: z2.enum(["top", "inside-top"]).default("inside-top")
|
|
486
|
+
badgePosition: z2.enum(["top", "inside-top"]).default("inside-top"),
|
|
487
|
+
shadow: flowNodeShadowSchema.optional()
|
|
471
488
|
}).strict();
|
|
472
489
|
var connectionElementSchema = z2.object({
|
|
473
490
|
type: z2.literal("connection"),
|
|
474
491
|
from: z2.string().min(1).max(120),
|
|
475
492
|
to: z2.string().min(1).max(120),
|
|
476
493
|
style: z2.enum(["solid", "dashed", "dotted"]).default("solid"),
|
|
494
|
+
strokeStyle: z2.enum(["solid", "dashed", "dotted"]).default("solid"),
|
|
477
495
|
arrow: z2.enum(["end", "start", "both", "none"]).default("end"),
|
|
478
496
|
label: z2.string().min(1).max(200).optional(),
|
|
479
497
|
labelPosition: z2.enum(["start", "middle", "end"]).default("middle"),
|
|
480
498
|
color: colorHexSchema2.optional(),
|
|
481
|
-
width: z2.number().min(0.5).max(
|
|
499
|
+
width: z2.number().min(0.5).max(10).optional(),
|
|
500
|
+
strokeWidth: z2.number().min(0.5).max(10).default(2),
|
|
482
501
|
arrowSize: z2.number().min(4).max(32).optional(),
|
|
483
|
-
opacity: z2.number().min(0).max(1).default(1)
|
|
502
|
+
opacity: z2.number().min(0).max(1).default(1),
|
|
503
|
+
routing: z2.enum(["auto", "orthogonal", "curve", "arc"]).default("auto"),
|
|
504
|
+
tension: z2.number().min(0.1).max(0.8).default(0.35)
|
|
484
505
|
}).strict();
|
|
485
506
|
var codeBlockStyleSchema = z2.object({
|
|
486
507
|
paddingVertical: z2.number().min(0).max(128).default(56),
|
|
@@ -549,6 +570,10 @@ var elementSchema = z2.discriminatedUnion("type", [
|
|
|
549
570
|
shapeElementSchema,
|
|
550
571
|
imageElementSchema
|
|
551
572
|
]);
|
|
573
|
+
var diagramCenterSchema = z2.object({
|
|
574
|
+
x: z2.number(),
|
|
575
|
+
y: z2.number()
|
|
576
|
+
}).strict();
|
|
552
577
|
var autoLayoutConfigSchema = z2.object({
|
|
553
578
|
mode: z2.literal("auto"),
|
|
554
579
|
algorithm: z2.enum(["layered", "stress", "force", "radial", "box"]).default("layered"),
|
|
@@ -564,7 +589,9 @@ var autoLayoutConfigSchema = z2.object({
|
|
|
564
589
|
/** Compaction strategy for radial layout. Only relevant when algorithm is 'radial'. */
|
|
565
590
|
radialCompaction: z2.enum(["none", "radial", "wedge"]).optional(),
|
|
566
591
|
/** Sort strategy for radial layout node ordering. Only relevant when algorithm is 'radial'. */
|
|
567
|
-
radialSortBy: z2.enum(["id", "connections"]).optional()
|
|
592
|
+
radialSortBy: z2.enum(["id", "connections"]).optional(),
|
|
593
|
+
/** Explicit center used by curve/arc connection routing. */
|
|
594
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
568
595
|
}).strict();
|
|
569
596
|
var gridLayoutConfigSchema = z2.object({
|
|
570
597
|
mode: z2.literal("grid"),
|
|
@@ -572,13 +599,17 @@ var gridLayoutConfigSchema = z2.object({
|
|
|
572
599
|
gap: z2.number().int().min(0).max(256).default(24),
|
|
573
600
|
cardMinHeight: z2.number().int().min(32).max(4096).optional(),
|
|
574
601
|
cardMaxHeight: z2.number().int().min(32).max(4096).optional(),
|
|
575
|
-
equalHeight: z2.boolean().default(false)
|
|
602
|
+
equalHeight: z2.boolean().default(false),
|
|
603
|
+
/** Explicit center used by curve/arc connection routing. */
|
|
604
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
576
605
|
}).strict();
|
|
577
606
|
var stackLayoutConfigSchema = z2.object({
|
|
578
607
|
mode: z2.literal("stack"),
|
|
579
608
|
direction: z2.enum(["vertical", "horizontal"]).default("vertical"),
|
|
580
609
|
gap: z2.number().int().min(0).max(256).default(24),
|
|
581
|
-
alignment: z2.enum(["start", "center", "end", "stretch"]).default("stretch")
|
|
610
|
+
alignment: z2.enum(["start", "center", "end", "stretch"]).default("stretch"),
|
|
611
|
+
/** Explicit center used by curve/arc connection routing. */
|
|
612
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
582
613
|
}).strict();
|
|
583
614
|
var manualPositionSchema = z2.object({
|
|
584
615
|
x: z2.number().int(),
|
|
@@ -588,7 +619,9 @@ var manualPositionSchema = z2.object({
|
|
|
588
619
|
}).strict();
|
|
589
620
|
var manualLayoutConfigSchema = z2.object({
|
|
590
621
|
mode: z2.literal("manual"),
|
|
591
|
-
positions: z2.record(z2.string().min(1), manualPositionSchema).default({})
|
|
622
|
+
positions: z2.record(z2.string().min(1), manualPositionSchema).default({}),
|
|
623
|
+
/** Explicit center used by curve/arc connection routing. */
|
|
624
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
592
625
|
}).strict();
|
|
593
626
|
var layoutConfigSchema = z2.discriminatedUnion("mode", [
|
|
594
627
|
autoLayoutConfigSchema,
|
|
@@ -640,6 +673,31 @@ var canvasSchema = z2.object({
|
|
|
640
673
|
padding: z2.number().int().min(0).max(256).default(defaultCanvas.padding)
|
|
641
674
|
}).strict();
|
|
642
675
|
var themeInputSchema = z2.union([builtInThemeSchema, themeSchema]);
|
|
676
|
+
var diagramPositionSchema = z2.object({
|
|
677
|
+
x: z2.number(),
|
|
678
|
+
y: z2.number(),
|
|
679
|
+
width: z2.number().positive(),
|
|
680
|
+
height: z2.number().positive()
|
|
681
|
+
}).strict();
|
|
682
|
+
var diagramElementSchema = z2.discriminatedUnion("type", [
|
|
683
|
+
flowNodeElementSchema,
|
|
684
|
+
connectionElementSchema
|
|
685
|
+
]);
|
|
686
|
+
var diagramLayoutSchema = z2.object({
|
|
687
|
+
mode: z2.enum(["manual", "auto"]).default("manual"),
|
|
688
|
+
positions: z2.record(z2.string(), diagramPositionSchema).optional(),
|
|
689
|
+
diagramCenter: diagramCenterSchema.optional()
|
|
690
|
+
}).strict();
|
|
691
|
+
var diagramSpecSchema = z2.object({
|
|
692
|
+
version: z2.literal(1),
|
|
693
|
+
canvas: z2.object({
|
|
694
|
+
width: z2.number().int().min(320).max(4096).default(1200),
|
|
695
|
+
height: z2.number().int().min(180).max(4096).default(675)
|
|
696
|
+
}).default({ width: 1200, height: 675 }),
|
|
697
|
+
theme: themeSchema.optional(),
|
|
698
|
+
elements: z2.array(diagramElementSchema).min(1),
|
|
699
|
+
layout: diagramLayoutSchema.default({ mode: "manual" })
|
|
700
|
+
}).strict();
|
|
643
701
|
var designSpecSchema = z2.object({
|
|
644
702
|
version: z2.literal(2).default(2),
|
|
645
703
|
canvas: canvasSchema.default(defaultCanvas),
|
|
@@ -664,12 +722,16 @@ function deriveSafeFrame(spec) {
|
|
|
664
722
|
height: spec.canvas.height - spec.canvas.padding * 2
|
|
665
723
|
};
|
|
666
724
|
}
|
|
725
|
+
function parseDiagramSpec(input) {
|
|
726
|
+
return diagramSpecSchema.parse(input);
|
|
727
|
+
}
|
|
667
728
|
function parseDesignSpec(input) {
|
|
668
729
|
return designSpecSchema.parse(input);
|
|
669
730
|
}
|
|
670
731
|
export {
|
|
671
732
|
builtInThemeBackgrounds,
|
|
672
733
|
builtInThemes,
|
|
734
|
+
connectionElementSchema,
|
|
673
735
|
defaultAutoLayout,
|
|
674
736
|
defaultCanvas,
|
|
675
737
|
defaultConstraints,
|
|
@@ -679,7 +741,12 @@ export {
|
|
|
679
741
|
defaultTheme,
|
|
680
742
|
deriveSafeFrame,
|
|
681
743
|
designSpecSchema,
|
|
744
|
+
diagramElementSchema,
|
|
745
|
+
diagramLayoutSchema,
|
|
746
|
+
diagramSpecSchema,
|
|
747
|
+
flowNodeElementSchema,
|
|
682
748
|
inferLayout,
|
|
683
749
|
parseDesignSpec,
|
|
750
|
+
parseDiagramSpec,
|
|
684
751
|
resolveTheme
|
|
685
752
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spectratools/graphic-designer-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.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",
|