@arach/arc 0.4.5 → 0.5.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/lib/index.d.ts CHANGED
@@ -22,7 +22,7 @@ export declare interface ArcConnectorStyle {
22
22
  dashed?: boolean;
23
23
  }
24
24
 
25
- export declare function ArcDiagram({ data, className, interactive, mode, theme, label, labelPosition, defaultZoom, zoomLevels, showArcToggle, showAutoLayout, showControls, showMinimap, showFocusStory, frame, hoverEffects, onNodeHover, titleBlock, maxFitZoom, }: ArcDiagramProps): JSX.Element;
25
+ export declare function ArcDiagram({ data, className, interactive, mode, theme, label, labelPosition, defaultZoom, zoomLevels, showArcToggle, showAutoLayout, showControls, showMinimap, showLegend, showFocusStory, frame, hoverEffects, onNodeHover, titleBlock, maxFitZoom, }: ArcDiagramProps): JSX.Element;
26
26
 
27
27
  export declare interface ArcDiagramData {
28
28
  id?: string;
@@ -74,6 +74,8 @@ declare interface ArcDiagramProps {
74
74
  showControls?: boolean;
75
75
  /** Show a minimap overview (bottom-left). Default: false */
76
76
  showMinimap?: boolean;
77
+ /** Show a key for the connector styles and labelled groups (bottom-left). Default: false */
78
+ showLegend?: boolean;
77
79
  /** Show the active focus target's caption and steps. Default: false */
78
80
  showFocusStory?: boolean;
79
81
  /** Override the edge/frame treatment (else the theme's brand.frame). */
@@ -174,8 +176,11 @@ declare interface BrandSpec {
174
176
  frame?: 'hairline' | 'inset' | 'brackets' | 'ticks' | 'cropmarks' | 'corners' | 'sheet' | 'reticle' | 'none';
175
177
  /** Render an engineering-drawing title block in the bottom-right corner. */
176
178
  titleBlock?: boolean;
177
- /** Node silhouette when nodeRadius is not set explicitly. */
178
- nodeShape?: 'rounded' | 'square' | 'chamfer' | 'pill';
179
+ /** Node silhouette. 'chamfer' cuts all four corners, 'notch' cuts the top-right;
180
+ * both are drawn with clip-path, not rounding. See utils/nodeShape.ts. */
181
+ nodeShape?: 'rounded' | 'square' | 'chamfer' | 'notch' | 'pill';
182
+ /** Ornament on the node shell — supersedes accentBar, which still works. */
183
+ nodeDecor?: 'none' | 'bar-left' | 'bar-top' | 'ticks' | 'rule' | 'dot' | 'stripe';
179
184
  /** Overall node opacity (0–1). */
180
185
  nodeOpacity?: number;
181
186
  /** Frosted glass backdrop on nodes. */
@@ -302,6 +307,8 @@ export declare interface DiagramConfig {
302
307
  title: string;
303
308
  description?: string;
304
309
  theme: 'dark' | 'light';
310
+ /** Render style: shaded solids, or a technical line-art plate. */
311
+ style?: IsoStyleId;
305
312
  canvas: {
306
313
  width: number;
307
314
  height: number;
@@ -329,6 +336,7 @@ declare interface DiagramConfig_2 {
329
336
  title: string;
330
337
  description: string;
331
338
  theme: 'dark' | 'light';
339
+ style?: 'solid' | 'blueprint' | 'cyanotype';
332
340
  canvas: {
333
341
  width: number;
334
342
  height: number;
@@ -372,6 +380,8 @@ declare interface DiagramLayout_2 {
372
380
 
373
381
  export declare interface DiagramMeta {
374
382
  themeId?: string | null;
383
+ isoStyle?: IsoStyleId;
384
+ viewMode?: ViewMode;
375
385
  colorMode?: 'light' | 'dark';
376
386
  viewport?: {
377
387
  width: number;
@@ -438,6 +448,7 @@ export declare function EditorProvider({ children, initialDiagram, initialThemeI
438
448
 
439
449
  export declare interface EmbedConfig {
440
450
  defaultViewMode?: ViewMode;
451
+ defaultIsoStyle?: IsoStyleId;
441
452
  enableViewModeToggle?: boolean;
442
453
  enableZoom?: boolean;
443
454
  enablePan?: boolean;
@@ -601,6 +612,7 @@ declare const initialState: {
601
612
  template: string;
602
613
  zoom: number;
603
614
  viewMode: string;
615
+ isoStyle: string;
604
616
  themeId: string;
605
617
  colorMode: string;
606
618
  };
@@ -686,6 +698,8 @@ declare interface IsoShadingResult {
686
698
  left: string;
687
699
  }
688
700
 
701
+ declare type IsoStyleId = 'solid' | 'blueprint' | 'cyanotype';
702
+
689
703
  /** Convert 3D isometric coordinates to 2D screen coordinates. */
690
704
  export declare function isoToScreen(x: number, y: number, z?: number): IsoScreenPoint;
691
705
 
@@ -881,9 +895,6 @@ export declare type ThemeId = 'default' | 'warm' | 'cool' | 'mono' | 'engineerin
881
895
 
882
896
  export declare const THEMES: Record<ThemeId, Theme>;
883
897
 
884
- /**
885
- * Arc Isometric Types
886
- */
887
898
  export declare interface TierConfig {
888
899
  name: string;
889
900
  elevation: number;
@@ -971,6 +982,7 @@ export declare function useEditorState(): {
971
982
  template: string;
972
983
  zoom: number;
973
984
  viewMode: string;
985
+ isoStyle: string;
974
986
  themeId: string;
975
987
  colorMode: string;
976
988
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arach/arc",
3
- "version": "0.4.5",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "packageManager": "bun@1.3.11",
6
6
  "workspaces": [