@dashfoo/core 0.5.2 → 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.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,10 @@
1
1
  import { z } from "zod";
2
- //#region src/state/actions.d.ts
3
- declare const mutableNodeAttrsSchema: z.ZodUnion<readonly [z.ZodObject<{
2
+ //#region src/state/node-attrs.d.ts
3
+ /**
4
+ * Merged, not a union: a union of all-optional members matches its first member
5
+ * and strips the rest. The reducer enforces which keys a given node accepts.
6
+ */
7
+ declare const mutableNodeAttrsSchema: z.ZodObject<{
4
8
  name: z.ZodOptional<z.ZodString>;
5
9
  config: z.ZodOptional<z.ZodOptional<z.ZodType<string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
6
10
  [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
@@ -51,37 +55,11 @@ declare const mutableNodeAttrsSchema: z.ZodUnion<readonly [z.ZodObject<{
51
55
  } | null)[] | {
52
56
  [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
53
57
  } | null, unknown>>>>;
54
- enableClose: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
55
58
  enableDrag: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
56
59
  enableRename: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
57
- }, z.core.$strip>, z.ZodObject<{
58
60
  enableClose: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
59
61
  enableMaximize: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
60
- max: z.ZodOptional<z.ZodOptional<z.ZodObject<{
61
- unit: z.ZodEnum<{
62
- px: "px";
63
- "%": "%";
64
- em: "em";
65
- rem: "rem";
66
- vh: "vh";
67
- vw: "vw";
68
- }>;
69
- value: z.ZodNumber;
70
- }, z.core.$strip>>>;
71
- min: z.ZodOptional<z.ZodOptional<z.ZodObject<{
72
- unit: z.ZodEnum<{
73
- px: "px";
74
- "%": "%";
75
- em: "em";
76
- rem: "rem";
77
- vh: "vh";
78
- vw: "vw";
79
- }>;
80
- value: z.ZodNumber;
81
- }, z.core.$strip>>>;
82
62
  selected: z.ZodOptional<z.ZodNumber>;
83
- weight: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
84
- }, z.core.$strip>, z.ZodObject<{
85
63
  max: z.ZodOptional<z.ZodOptional<z.ZodObject<{
86
64
  unit: z.ZodEnum<{
87
65
  px: "px";
@@ -114,7 +92,9 @@ declare const mutableNodeAttrsSchema: z.ZodUnion<readonly [z.ZodObject<{
114
92
  threshold: z.ZodOptional<z.ZodNumber>;
115
93
  }, z.core.$strip>>>;
116
94
  weight: z.ZodOptional<z.ZodNumber>;
117
- }, z.core.$strip>]>;
95
+ }, z.core.$strip>;
96
+ //#endregion
97
+ //#region src/state/actions.d.ts
118
98
  declare const dockLocationSchema: z.ZodEnum<{
119
99
  center: "center";
120
100
  "split-bottom": "split-bottom";
@@ -204,7 +184,6 @@ declare const actionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
204
184
  targetId: z.ZodString;
205
185
  type: z.ZodLiteral<"moveNode">;
206
186
  }, z.core.$strip>, z.ZodObject<{
207
- index: z.ZodOptional<z.ZodNumber>;
208
187
  location: z.ZodEnum<{
209
188
  center: "center";
210
189
  "split-bottom": "split-bottom";
@@ -240,7 +219,7 @@ declare const actionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
240
219
  type: z.ZodLiteral<"adjustSplit">;
241
220
  weights: z.ZodArray<z.ZodNumber>;
242
221
  }, z.core.$strip>, z.ZodObject<{
243
- attrs: z.ZodUnion<readonly [z.ZodObject<{
222
+ attrs: z.ZodObject<{
244
223
  name: z.ZodOptional<z.ZodString>;
245
224
  config: z.ZodOptional<z.ZodOptional<z.ZodType<string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
246
225
  [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null;
@@ -291,37 +270,11 @@ declare const actionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
291
270
  } | null)[] | {
292
271
  [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null;
293
272
  } | null, unknown>>>>;
294
- enableClose: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
295
273
  enableDrag: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
296
274
  enableRename: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
297
- }, z.core.$strip>, z.ZodObject<{
298
275
  enableClose: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
299
276
  enableMaximize: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
300
- max: z.ZodOptional<z.ZodOptional<z.ZodObject<{
301
- unit: z.ZodEnum<{
302
- px: "px";
303
- "%": "%";
304
- em: "em";
305
- rem: "rem";
306
- vh: "vh";
307
- vw: "vw";
308
- }>;
309
- value: z.ZodNumber;
310
- }, z.core.$strip>>>;
311
- min: z.ZodOptional<z.ZodOptional<z.ZodObject<{
312
- unit: z.ZodEnum<{
313
- px: "px";
314
- "%": "%";
315
- em: "em";
316
- rem: "rem";
317
- vh: "vh";
318
- vw: "vw";
319
- }>;
320
- value: z.ZodNumber;
321
- }, z.core.$strip>>>;
322
277
  selected: z.ZodOptional<z.ZodNumber>;
323
- weight: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
324
- }, z.core.$strip>, z.ZodObject<{
325
278
  max: z.ZodOptional<z.ZodOptional<z.ZodObject<{
326
279
  unit: z.ZodEnum<{
327
280
  px: "px";
@@ -354,7 +307,7 @@ declare const actionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
354
307
  threshold: z.ZodOptional<z.ZodNumber>;
355
308
  }, z.core.$strip>>>;
356
309
  weight: z.ZodOptional<z.ZodNumber>;
357
- }, z.core.$strip>]>;
310
+ }, z.core.$strip>;
358
311
  nodeId: z.ZodString;
359
312
  type: z.ZodLiteral<"updateNodeAttributes">;
360
313
  }, z.core.$strip>, z.ZodObject<{
@@ -438,14 +391,16 @@ type DropIntent = {
438
391
  };
439
392
  //#endregion
440
393
  //#region src/model/schema.d.ts
394
+ /** Weights are relative shares of a row, not percentages. */
395
+ declare const DEFAULT_WEIGHT = 1;
441
396
  type JsonValue = string | number | boolean | null | Array<JsonValue> | {
442
397
  [key: string]: JsonValue;
443
398
  };
444
399
  declare const jsonValueSchema: z.ZodType<JsonValue>;
445
400
  declare const edgeSchema: z.ZodEnum<{
446
- left: "left";
447
401
  top: "top";
448
402
  bottom: "bottom";
403
+ left: "left";
449
404
  right: "right";
450
405
  }>;
451
406
  declare const unitSchema: z.ZodEnum<{
@@ -486,7 +441,11 @@ declare const tabNodeSchema: z.ZodObject<{
486
441
  name: z.ZodString;
487
442
  type: z.ZodLiteral<"tab">;
488
443
  }, z.core.$strip>;
489
- declare const tabsetNodeSchema: z.ZodObject<{
444
+ /**
445
+ * Kept pre-transform so `node-attrs` can `.pick()` from it: a pipe has no
446
+ * `.pick`, and `.partial()` over a defaulted field still fills the default in.
447
+ */
448
+ declare const tabsetNodeObjectSchema: z.ZodObject<{
490
449
  children: z.ZodArray<z.ZodObject<{
491
450
  component: z.ZodString;
492
451
  config: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
@@ -525,19 +484,141 @@ declare const tabsetNodeSchema: z.ZodObject<{
525
484
  name: z.ZodOptional<z.ZodString>;
526
485
  selected: z.ZodNumber;
527
486
  type: z.ZodLiteral<"tabset">;
528
- weight: z.ZodOptional<z.ZodNumber>;
487
+ weight: z.ZodDefault<z.ZodNumber>;
529
488
  }, z.core.$strip>;
530
- type RowNode = {
531
- children: Array<RowNode | z.infer<typeof tabsetNodeSchema>>;
489
+ declare const tabsetNodeSchema: z.ZodPipe<z.ZodObject<{
490
+ children: z.ZodArray<z.ZodObject<{
491
+ component: z.ZodString;
492
+ config: z.ZodOptional<z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>>;
493
+ enableClose: z.ZodOptional<z.ZodBoolean>;
494
+ enableDrag: z.ZodOptional<z.ZodBoolean>;
495
+ enableRename: z.ZodOptional<z.ZodBoolean>;
496
+ id: z.ZodString;
497
+ name: z.ZodString;
498
+ type: z.ZodLiteral<"tab">;
499
+ }, z.core.$strip>>;
500
+ enableClose: z.ZodOptional<z.ZodBoolean>;
501
+ enableMaximize: z.ZodOptional<z.ZodBoolean>;
502
+ id: z.ZodString;
503
+ max: z.ZodOptional<z.ZodObject<{
504
+ unit: z.ZodEnum<{
505
+ px: "px";
506
+ "%": "%";
507
+ em: "em";
508
+ rem: "rem";
509
+ vh: "vh";
510
+ vw: "vw";
511
+ }>;
512
+ value: z.ZodNumber;
513
+ }, z.core.$strip>>;
514
+ min: z.ZodOptional<z.ZodObject<{
515
+ unit: z.ZodEnum<{
516
+ px: "px";
517
+ "%": "%";
518
+ em: "em";
519
+ rem: "rem";
520
+ vh: "vh";
521
+ vw: "vw";
522
+ }>;
523
+ value: z.ZodNumber;
524
+ }, z.core.$strip>>;
525
+ name: z.ZodOptional<z.ZodString>;
526
+ selected: z.ZodNumber;
527
+ type: z.ZodLiteral<"tabset">;
528
+ weight: z.ZodDefault<z.ZodNumber>;
529
+ }, z.core.$strip>, z.ZodTransform<{
530
+ selected: number;
531
+ children: {
532
+ component: string;
533
+ id: string;
534
+ name: string;
535
+ type: "tab";
536
+ config?: JsonValue | undefined;
537
+ enableClose?: boolean | undefined;
538
+ enableDrag?: boolean | undefined;
539
+ enableRename?: boolean | undefined;
540
+ }[];
532
541
  id: string;
533
- max?: z.infer<typeof dimensionSchema>;
534
- min?: z.infer<typeof dimensionSchema>;
535
- orientation: z.infer<typeof orientationSchema>;
536
- snap?: z.infer<typeof snapSchema>;
537
- type: "row";
538
- weight?: number;
539
- };
540
- declare const rowNodeSchema: z.ZodType<RowNode>;
542
+ type: "tabset";
543
+ weight: number;
544
+ enableClose?: boolean | undefined;
545
+ enableMaximize?: boolean | undefined;
546
+ max?: {
547
+ unit: "px" | "%" | "em" | "rem" | "vh" | "vw";
548
+ value: number;
549
+ } | undefined;
550
+ min?: {
551
+ unit: "px" | "%" | "em" | "rem" | "vh" | "vw";
552
+ value: number;
553
+ } | undefined;
554
+ name?: string | undefined;
555
+ }, {
556
+ children: {
557
+ component: string;
558
+ id: string;
559
+ name: string;
560
+ type: "tab";
561
+ config?: JsonValue | undefined;
562
+ enableClose?: boolean | undefined;
563
+ enableDrag?: boolean | undefined;
564
+ enableRename?: boolean | undefined;
565
+ }[];
566
+ id: string;
567
+ selected: number;
568
+ type: "tabset";
569
+ weight: number;
570
+ enableClose?: boolean | undefined;
571
+ enableMaximize?: boolean | undefined;
572
+ max?: {
573
+ unit: "px" | "%" | "em" | "rem" | "vh" | "vw";
574
+ value: number;
575
+ } | undefined;
576
+ min?: {
577
+ unit: "px" | "%" | "em" | "rem" | "vh" | "vw";
578
+ value: number;
579
+ } | undefined;
580
+ name?: string | undefined;
581
+ }>>;
582
+ /** The getter's explicit return type is required: without it, TS7023. */
583
+ declare const rowNodeSchema: z.ZodObject<{
584
+ children: z.ZodArray<z.ZodUnion<[typeof rowNodeSchema, typeof tabsetNodeSchema]>>;
585
+ id: z.ZodString;
586
+ max: z.ZodOptional<z.ZodObject<{
587
+ unit: z.ZodEnum<{
588
+ px: "px";
589
+ "%": "%";
590
+ em: "em";
591
+ rem: "rem";
592
+ vh: "vh";
593
+ vw: "vw";
594
+ }>;
595
+ value: z.ZodNumber;
596
+ }, z.core.$strip>>;
597
+ min: z.ZodOptional<z.ZodObject<{
598
+ unit: z.ZodEnum<{
599
+ px: "px";
600
+ "%": "%";
601
+ em: "em";
602
+ rem: "rem";
603
+ vh: "vh";
604
+ vw: "vw";
605
+ }>;
606
+ value: z.ZodNumber;
607
+ }, z.core.$strip>>;
608
+ orientation: z.ZodEnum<{
609
+ row: "row";
610
+ column: "column";
611
+ }>;
612
+ snap: z.ZodOptional<z.ZodObject<{
613
+ divisions: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"panels">]>>;
614
+ step: z.ZodOptional<z.ZodNumber>;
615
+ threshold: z.ZodOptional<z.ZodNumber>;
616
+ }, z.core.$strip>>;
617
+ type: z.ZodLiteral<"row">;
618
+ weight: z.ZodDefault<z.ZodNumber>;
619
+ }, z.core.$strip>;
620
+ type RowNode = z.infer<typeof rowNodeSchema>;
621
+ type RowNodeInput = z.input<typeof rowNodeSchema>;
541
622
  declare const geometrySchema: z.ZodObject<{
542
623
  height: z.ZodNumber;
543
624
  left: z.ZodNumber;
@@ -552,7 +633,43 @@ declare const floatNodeSchema: z.ZodObject<{
552
633
  width: z.ZodNumber;
553
634
  }, z.core.$strip>;
554
635
  id: z.ZodString;
555
- layout: z.ZodType<RowNode, unknown, z.core.$ZodTypeInternals<RowNode, unknown>>;
636
+ layout: z.ZodObject<{
637
+ children: z.ZodArray<z.ZodUnion<[typeof rowNodeSchema, typeof tabsetNodeSchema]>>;
638
+ id: z.ZodString;
639
+ max: z.ZodOptional<z.ZodObject<{
640
+ unit: z.ZodEnum<{
641
+ px: "px";
642
+ "%": "%";
643
+ em: "em";
644
+ rem: "rem";
645
+ vh: "vh";
646
+ vw: "vw";
647
+ }>;
648
+ value: z.ZodNumber;
649
+ }, z.core.$strip>>;
650
+ min: z.ZodOptional<z.ZodObject<{
651
+ unit: z.ZodEnum<{
652
+ px: "px";
653
+ "%": "%";
654
+ em: "em";
655
+ rem: "rem";
656
+ vh: "vh";
657
+ vw: "vw";
658
+ }>;
659
+ value: z.ZodNumber;
660
+ }, z.core.$strip>>;
661
+ orientation: z.ZodEnum<{
662
+ row: "row";
663
+ column: "column";
664
+ }>;
665
+ snap: z.ZodOptional<z.ZodObject<{
666
+ divisions: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"panels">]>>;
667
+ step: z.ZodOptional<z.ZodNumber>;
668
+ threshold: z.ZodOptional<z.ZodNumber>;
669
+ }, z.core.$strip>>;
670
+ type: z.ZodLiteral<"row">;
671
+ weight: z.ZodDefault<z.ZodNumber>;
672
+ }, z.core.$strip>;
556
673
  minimized: z.ZodOptional<z.ZodBoolean>;
557
674
  name: z.ZodOptional<z.ZodString>;
558
675
  type: z.ZodLiteral<"float">;
@@ -579,7 +696,7 @@ declare const globalAttributesSchema: z.ZodObject<{
579
696
  }, z.core.$strip>;
580
697
  declare const dashfooSchema: z.ZodObject<{
581
698
  activeTabsetId: z.ZodOptional<z.ZodString>;
582
- floats: z.ZodOptional<z.ZodArray<z.ZodObject<{
699
+ floats: z.ZodDefault<z.ZodArray<z.ZodObject<{
583
700
  geometry: z.ZodObject<{
584
701
  height: z.ZodNumber;
585
702
  left: z.ZodNumber;
@@ -587,7 +704,43 @@ declare const dashfooSchema: z.ZodObject<{
587
704
  width: z.ZodNumber;
588
705
  }, z.core.$strip>;
589
706
  id: z.ZodString;
590
- layout: z.ZodType<RowNode, unknown, z.core.$ZodTypeInternals<RowNode, unknown>>;
707
+ layout: z.ZodObject<{
708
+ children: z.ZodArray<z.ZodUnion<[typeof rowNodeSchema, typeof tabsetNodeSchema]>>;
709
+ id: z.ZodString;
710
+ max: z.ZodOptional<z.ZodObject<{
711
+ unit: z.ZodEnum<{
712
+ px: "px";
713
+ "%": "%";
714
+ em: "em";
715
+ rem: "rem";
716
+ vh: "vh";
717
+ vw: "vw";
718
+ }>;
719
+ value: z.ZodNumber;
720
+ }, z.core.$strip>>;
721
+ min: z.ZodOptional<z.ZodObject<{
722
+ unit: z.ZodEnum<{
723
+ px: "px";
724
+ "%": "%";
725
+ em: "em";
726
+ rem: "rem";
727
+ vh: "vh";
728
+ vw: "vw";
729
+ }>;
730
+ value: z.ZodNumber;
731
+ }, z.core.$strip>>;
732
+ orientation: z.ZodEnum<{
733
+ row: "row";
734
+ column: "column";
735
+ }>;
736
+ snap: z.ZodOptional<z.ZodObject<{
737
+ divisions: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"panels">]>>;
738
+ step: z.ZodOptional<z.ZodNumber>;
739
+ threshold: z.ZodOptional<z.ZodNumber>;
740
+ }, z.core.$strip>>;
741
+ type: z.ZodLiteral<"row">;
742
+ weight: z.ZodDefault<z.ZodNumber>;
743
+ }, z.core.$strip>;
591
744
  minimized: z.ZodOptional<z.ZodBoolean>;
592
745
  name: z.ZodOptional<z.ZodString>;
593
746
  type: z.ZodLiteral<"float">;
@@ -612,7 +765,43 @@ declare const dashfooSchema: z.ZodObject<{
612
765
  tabSetEnableTabStrip: z.ZodOptional<z.ZodBoolean>;
613
766
  tabSetMinSize: z.ZodOptional<z.ZodNumber>;
614
767
  }, z.core.$strip>;
615
- layout: z.ZodType<RowNode, unknown, z.core.$ZodTypeInternals<RowNode, unknown>>;
768
+ layout: z.ZodObject<{
769
+ children: z.ZodArray<z.ZodUnion<[typeof rowNodeSchema, typeof tabsetNodeSchema]>>;
770
+ id: z.ZodString;
771
+ max: z.ZodOptional<z.ZodObject<{
772
+ unit: z.ZodEnum<{
773
+ px: "px";
774
+ "%": "%";
775
+ em: "em";
776
+ rem: "rem";
777
+ vh: "vh";
778
+ vw: "vw";
779
+ }>;
780
+ value: z.ZodNumber;
781
+ }, z.core.$strip>>;
782
+ min: z.ZodOptional<z.ZodObject<{
783
+ unit: z.ZodEnum<{
784
+ px: "px";
785
+ "%": "%";
786
+ em: "em";
787
+ rem: "rem";
788
+ vh: "vh";
789
+ vw: "vw";
790
+ }>;
791
+ value: z.ZodNumber;
792
+ }, z.core.$strip>>;
793
+ orientation: z.ZodEnum<{
794
+ row: "row";
795
+ column: "column";
796
+ }>;
797
+ snap: z.ZodOptional<z.ZodObject<{
798
+ divisions: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"panels">]>>;
799
+ step: z.ZodOptional<z.ZodNumber>;
800
+ threshold: z.ZodOptional<z.ZodNumber>;
801
+ }, z.core.$strip>>;
802
+ type: z.ZodLiteral<"row">;
803
+ weight: z.ZodDefault<z.ZodNumber>;
804
+ }, z.core.$strip>;
616
805
  maximizedTabsetId: z.ZodOptional<z.ZodString>;
617
806
  version: z.ZodLiteral<1>;
618
807
  }, z.core.$strip>;
@@ -628,6 +817,8 @@ type Geometry = z.infer<typeof geometrySchema>;
628
817
  type FloatNode = z.infer<typeof floatNodeSchema>;
629
818
  type GlobalAttributes = z.infer<typeof globalAttributesSchema>;
630
819
  type Dashfoo = z.infer<typeof dashfooSchema>;
820
+ /** The loose shape `dashfooSchema` accepts: `weight` and `floats` may be omitted. */
821
+ type DashfooInput = z.input<typeof dashfooSchema>;
631
822
  type Node = RowNode | TabsetNode | TabNode;
632
823
  //#endregion
633
824
  //#region src/model/builders.d.ts
@@ -683,12 +874,6 @@ type Rect = {
683
874
  x: number;
684
875
  y: number;
685
876
  };
686
- type DockTarget = {
687
- kind: "tab";
688
- } | {
689
- edge: Edge;
690
- kind: "split";
691
- };
692
877
  type BandOptions = {
693
878
  bandFraction?: number;
694
879
  };
@@ -696,19 +881,35 @@ type DockZone = {
696
881
  location: DockLocation;
697
882
  points: Array<Point>;
698
883
  };
699
- declare const resolveDockTarget: (pointer: Point, rect: Rect, opts?: BandOptions) => DockTarget;
884
+ declare const splitEdge: (location: DockLocation) => Edge | undefined;
885
+ declare const resolveDockTarget: (pointer: Point, rect: Rect, opts?: BandOptions) => DockLocation;
700
886
  declare const dockZonePolygons: (rect: Rect, opts?: BandOptions) => Array<DockZone>;
701
887
  declare const zoneRect: (rect: Rect, location: DockLocation) => Rect;
702
888
  //#endregion
703
889
  //#region src/geometry/snap.d.ts
704
890
  declare const DEFAULT_SNAP_THRESHOLD = 4;
705
891
  declare const resolveSnapTargets: (config: SnapConfig, panelCount: number) => Array<number>;
706
- declare const snapEnabled: (config: SnapConfig | null) => boolean;
892
+ type SnapGrid = {
893
+ targets: Array<number>;
894
+ threshold: number;
895
+ };
896
+ declare const resolveSnapGrid: (config: SnapConfig | null, panelCount: number) => SnapGrid;
897
+ declare const snapEnabled: (grid: SnapGrid) => boolean;
707
898
  type SnapResult = {
708
899
  sizes: Array<number>;
709
900
  snapped: boolean;
710
901
  };
711
- declare const snapSizes: (sizes: Array<number>, boundaryIndex: number, config: SnapConfig) => SnapResult;
902
+ declare const snapSizes: (sizes: Array<number>, boundaryIndex: number, grid: SnapGrid) => SnapResult;
903
+ type SnapDecision = {
904
+ kind: "inactive";
905
+ } | {
906
+ kind: "clear";
907
+ } | {
908
+ kind: "engage";
909
+ sizes: Array<number>;
910
+ };
911
+ declare const decideSnap: (sizes: Array<number>, boundaryIndex: number | null, grid: SnapGrid) => SnapDecision;
912
+ declare const settleSnap: (sizes: Array<number>, boundaryIndex: number | null, grid: SnapGrid) => Array<number>;
712
913
  //#endregion
713
914
  //#region src/state/history.d.ts
714
915
  type History = {
@@ -720,6 +921,11 @@ declare const HISTORY_LIMIT = 100;
720
921
  declare const createHistory: (present: Dashfoo) => History;
721
922
  declare const canUndo: (history: History) => boolean;
722
923
  declare const canRedo: (history: History) => boolean;
924
+ /**
925
+ * An action that changed nothing is not an edit: recording it would spend an
926
+ * undo slot and clear a redo stack the user just built. Not coalescing (ADR
927
+ * 0002): two distinct edits are still two entries.
928
+ */
723
929
  declare const dispatch: (history: History, action: Action) => History;
724
930
  declare const undo: (history: History) => History;
725
931
  declare const redo: (history: History) => History;
@@ -735,18 +941,7 @@ declare const normalize: (model: Dashfoo) => Dashfoo;
735
941
  type DashfooContext = {
736
942
  history: History;
737
943
  };
738
- type DashfooEvent = {
739
- action: Action;
740
- type: "DISPATCH";
741
- } | {
742
- model: Dashfoo;
743
- type: "SET_MODEL";
744
- } | {
745
- type: "REDO";
746
- } | {
747
- type: "UNDO";
748
- };
749
- type DashfooInput = {
944
+ type DashfooMachineInput = {
750
945
  model: Dashfoo;
751
946
  };
752
947
  declare const dashfooMachine: import("xstate").StateMachine<DashfooContext, {
@@ -759,7 +954,7 @@ declare const dashfooMachine: import("xstate").StateMachine<DashfooContext, {
759
954
  type: "REDO";
760
955
  } | {
761
956
  type: "UNDO";
762
- }, {}, never, never, never, never, "ready", string, DashfooInput, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, {
957
+ }, {}, never, never, never, never, "ready", string, DashfooMachineInput, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, {
763
958
  id: "dashfoo";
764
959
  states: {
765
960
  readonly ready: {};
@@ -775,27 +970,34 @@ type DragSubject = {
775
970
  kind: "external";
776
971
  tab: TabNode;
777
972
  };
778
- type DragContext = {
779
- intent: DropIntent | null;
780
- subject: DragSubject | null;
973
+ /** `scope` names whoever resolved the intent, echoed back on `COMMIT` so the host can route the action. */
974
+ type DropResolution = {
975
+ intent: DropIntent;
976
+ scope: string;
781
977
  };
782
- type DragEvent = {
783
- intent: DropIntent | null;
784
- type: "OVER";
785
- } | {
978
+ /** One value, so a drop target without a subject is unrepresentable. See ADR 0002. */
979
+ type DragState = {
980
+ drop: DropResolution | null;
981
+ kind: "dragging";
786
982
  subject: DragSubject;
787
- type: "START";
788
983
  } | {
789
- type: "CANCEL";
790
- } | {
791
- type: "DROP";
984
+ kind: "idle";
985
+ };
986
+ type DragContext = {
987
+ drag: DragState;
792
988
  };
793
989
  type DragEmitted = {
794
990
  action: Action;
991
+ scope: string;
795
992
  type: "COMMIT";
796
993
  };
994
+ /** One definition of both "is this drop valid" and "what does it do", so the guard and the emit agree. */
995
+ declare const dropAction: (drag: DragState) => {
996
+ action: Action;
997
+ scope: string;
998
+ } | null;
797
999
  declare const dragDockMachine: import("xstate").StateMachine<DragContext, {
798
- intent: DropIntent | null;
1000
+ drop: DropResolution | null;
799
1001
  type: "OVER";
800
1002
  } | {
801
1003
  subject: DragSubject;
@@ -807,7 +1009,7 @@ declare const dragDockMachine: import("xstate").StateMachine<DragContext, {
807
1009
  }, {}, never, never, {
808
1010
  type: "hasValidDrop";
809
1011
  params: unknown;
810
- }, never, "idle" | "dragging", string, import("xstate").NonReducibleUnknown, import("xstate").NonReducibleUnknown, DragEmitted, import("xstate").MetaObject, {
1012
+ }, never, "dragging" | "idle", string, import("xstate").NonReducibleUnknown, import("xstate").NonReducibleUnknown, DragEmitted, import("xstate").MetaObject, {
811
1013
  id: "dragDock";
812
1014
  states: {
813
1015
  readonly dragging: {};
@@ -816,6 +1018,8 @@ declare const dragDockMachine: import("xstate").StateMachine<DragContext, {
816
1018
  }>;
817
1019
  //#endregion
818
1020
  //#region src/state/reducer.d.ts
1021
+ /** Identity-equal output means "no edit". A rejected action skips `normalize`, so
1022
+ * pass a model that has already been through it. */
819
1023
  declare const reducer: (model: Dashfoo, action: Action) => Dashfoo;
820
1024
  //#endregion
821
1025
  //#region src/model/serialize.d.ts
@@ -841,14 +1045,14 @@ declare const collectTabsets: (model: Dashfoo) => Array<TabsetNode>;
841
1045
  declare const getFirstTabset: (model: Dashfoo) => TabsetNode | undefined;
842
1046
  declare const findTabset: (model: Dashfoo, tabsetId: string) => TabsetNode | undefined;
843
1047
  declare const findTab: (model: Dashfoo, tabId: string) => TabLocation | undefined;
844
- declare const findRow: (row: RowNode, id: string) => RowNode | undefined;
1048
+ declare const findRow: (model: Dashfoo, id: string) => RowNode | undefined;
845
1049
  declare const findAttributedNode: (model: Dashfoo, id: string) => AttributedNode | undefined;
846
1050
  declare const findRootContaining: (model: Dashfoo, nodeId: string) => RowNode | undefined;
847
- declare const findTabsetParent: (row: RowNode, tabsetId: string) => {
1051
+ declare const findTabsetParent: (model: Dashfoo, tabsetId: string) => {
848
1052
  index: number;
849
1053
  parent: RowNode;
850
1054
  } | undefined;
851
1055
  declare const findDuplicateIds: (model: Dashfoo) => Array<string>;
852
1056
  //#endregion
853
- export { type Action, type AttributedNode, type BandOptions, DEFAULT_SNAP_THRESHOLD, type Dashfoo, type DashfooContext, type DashfooEvent, type DashfooInput, type Dimension, type DockLocation, type DockTarget, type DockZone, type DragContext, type DragEmitted, type DragEvent, type DragSubject, type DropIntent, type Edge, type FloatNode, type FloatOptions, type Geometry, type GlobalAttributes, HISTORY_LIMIT, type History, type Json, type ModelOptions, type MutableNodeAttrs, type Node, type Orientation, type Point, type Rect, type RowNode, type RowOptions, type SnapConfig, type SnapResult, type TabContainer, type TabLocation, type TabNode, type TabOptions, type TabsetNode, type TabsetOptions, type Unit, actionSchema, canRedo, canUndo, collectRoots, collectTabsets, collectTabsetsInRow, createHistory, createNodeId, createTabId, dashfooMachine, dashfooSchema, dimensionSchema, dispatch, dockLocationSchema, dockZonePolygons, dragDockMachine, edgeSchema, findAttributedNode, findDuplicateIds, findFloat, findRootContaining, findRow, findTab, findTabset, findTabsetParent, floatNode, floatNodeSchema, fromJSON, geometrySchema, getFirstTabset, globalAttributesSchema, jsonValueSchema, model, mutableNodeAttrsSchema, normalize, orientationSchema, parseModel, redo, reducer, resolveDockTarget, resolveSnapTargets, row, rowNodeSchema, snapEnabled, snapSchema, snapSizes, stackModel, tab, tabNodeSchema, tabset, tabsetNodeSchema, toJSON, undo, unitSchema, zoneRect };
1057
+ export { type Action, type AttributedNode, type BandOptions, DEFAULT_SNAP_THRESHOLD, DEFAULT_WEIGHT, type Dashfoo, type DashfooInput, type Dimension, type DockLocation, type DockZone, type DragState, type DragSubject, type DropIntent, type DropResolution, type Edge, type FloatNode, type FloatOptions, type Geometry, type GlobalAttributes, HISTORY_LIMIT, type History, type Json, type ModelOptions, type MutableNodeAttrs, type Node, type Orientation, type Point, type Rect, type RowNode, type RowNodeInput, type RowOptions, type SnapConfig, type SnapDecision, type SnapGrid, type SnapResult, type TabContainer, type TabLocation, type TabNode, type TabOptions, type TabsetNode, type TabsetOptions, type Unit, actionSchema, canRedo, canUndo, collectRoots, collectTabsets, collectTabsetsInRow, createHistory, createNodeId, createTabId, dashfooMachine, dashfooSchema, decideSnap, dimensionSchema, dispatch, dockLocationSchema, dockZonePolygons, dragDockMachine, dropAction, edgeSchema, findAttributedNode, findDuplicateIds, findFloat, findRootContaining, findRow, findTab, findTabset, findTabsetParent, floatNode, floatNodeSchema, fromJSON, geometrySchema, getFirstTabset, globalAttributesSchema, jsonValueSchema, model, mutableNodeAttrsSchema, normalize, orientationSchema, parseModel, redo, reducer, resolveDockTarget, resolveSnapGrid, resolveSnapTargets, row, rowNodeSchema, settleSnap, snapEnabled, snapSchema, snapSizes, splitEdge, stackModel, tab, tabNodeSchema, tabset, tabsetNodeObjectSchema, tabsetNodeSchema, toJSON, undo, unitSchema, zoneRect };
854
1058
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/state/actions.ts","../src/model/schema.ts","../src/model/builders.ts","../src/geometry/geometry.ts","../src/geometry/snap.ts","../src/state/history.ts","../src/model/ids.ts","../src/model/invariants.ts","../src/machines/dashfoo-machine.ts","../src/machines/drag-dock-machine.ts","../src/state/reducer.ts","../src/model/serialize.ts","../src/model/stack.ts","../src/model/tree.ts"],"mappings":";;cA2CM,wBAAsB,EAAA,mBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAMtB,oBAAkB,EAAA;;;;;;;cAUlB,cAAY,EAAA,uBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgFb,eAAe,EAAE,aAAa;KAC9B,mBAAmB,EAAE,aAAa;KAClC,SAAS,EAAE,aAAa;KAExB;EAAe;EAAgB,UAAU;EAAc;;;;KC7IvD,+CAA+C,MAAM;GAAgB,cAAc;;cAElF,iBAAiB,EAAE,QAAQ;cAW3B,YAAU,EAAA;;;;;;cACV,YAAU,EAAA;;;;;;;;cACV,mBAAiB,EAAA;;;;cAEjB,iBAAe,EAAA;;;;;;;;;;;cAKf,YAAU,EAAA;;;;;cAMV,eAAa,EAAA;;;;;;;;;;cAWb,kBAAgB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAajB;EACH,UAAU,MAAM,UAAU,EAAE,aAAa;EACzC;EACA,MAAM,EAAE,aAAa;EACrB,MAAM,EAAE,aAAa;EACrB,aAAa,EAAE,aAAa;EAC5B,OAAO,EAAE,aAAa;EACtB;EACA;;cAGI,eAAe,EAAE,QAAQ;cAazB,gBAAc,EAAA;;;;;;cAOd,iBAAe,EAAA;;;;;;;;;;;;;cAUf,wBAAsB,EAAA;;;;;;;;;;;;;;;;;;;;cActB,eAAa,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KASd,OAAO;KACP,OAAO,EAAE,aAAa;KACtB,OAAO,EAAE,aAAa;KACtB,cAAc,EAAE,aAAa;KAC7B,YAAY,EAAE,aAAa;KAC3B,aAAa,EAAE,aAAa;KAC5B,UAAU,EAAE,aAAa;KACzB,aAAa,EAAE,aAAa;KAC5B,WAAW,EAAE,aAAa;KAC1B,YAAY,EAAE,aAAa;KAC3B,mBAAmB,EAAE,aAAa;KAClC,UAAU,EAAE,aAAa;KACzB,OAAO,UAAU,aAAa;;;KChH9B;EACH,SAAS;EACT;EACA;EACA;EACA;;cAGI,MAAO,mBAAmB,cAAc,UAAS,eAAkB;KAQpE;EACH;EACA;EACA;EACA,eAAe;EACf,eAAe;EACf;EACA;EACA;;cAGI,SAAU,UAAU,MAAM,UAAU,UAAS,kBAAqB;KAanE;EACH;EACA,eAAe;EACf,eAAe;EACf,cAAc;EACd,OAAO;EACP;;cAGI,MAAO,UAAU,qBAAqB,UAAS,eAAkB;KAalE;EACH;EACA;;cAGI,YAAa,QAAQ,SAAS,UAAU,UAAU,UAAS,iBAAoB;KAQhF;EACH;EACA,SAAS,MAAM;EACf,SAAS;EACT;;cAGI,QAAS,QAAQ,SAAS,UAAS,iBAAoB;;;KCjGxD;EAAU;EAAW;;KACrB;EAAS;EAAgB;EAAe;EAAW;;KACnD;EAAe;;EAAkB,MAAM;EAAM;;KAC7C;EAAgB;;KAChB;EAAa,UAAU;EAAc,QAAQ,MAAM;;cA2BlD,oBAAqB,SAAS,OAAO,MAAM,MAAM,OAAO,gBAAc;cAetE,mBAAoB,MAAM,MAAM,OAAO,gBAAc,MAAM;cAyB3D,WAAY,MAAM,MAAM,UAAU,iBAAe;;;cCxEjD;cAgBA,qBAAsB,QAAQ,YAAY,uBAAqB;cAc/D,cAAe,QAAQ;KAcxB;EAAe,OAAO;EAAe;;cAEpC,YAAa,OAAO,eAAe,uBAAuB,QAAQ,eAAa;;;KC3ChF;EACH,QAAQ,MAAM;EACd,MAAM,MAAM;EACZ,SAAS;;cAGL;cAEA,gBAAiB,SAAS,YAAU;cAMpC,UAAW,SAAS;cACpB,UAAW,SAAS;cAEpB,WAAY,SAAS,SAAS,QAAQ,WAAS;cAK/C,OAAQ,SAAS,YAAU;cAY3B,OAAQ,SAAS,YAAU;;;cCvC3B,eAAgB;cAEhB;;;cC0FA,YAAa,OAAO,YAAU;;;KCrF/B;EAAmB,SAAS;;KAE5B;EACC,QAAQ;EAAQ;;EAChB,OAAO;EAAS;;EAChB;;EACA;;KAED;EAAiB,OAAO;;cAEvB,iCAAc,aAAA;UAPN;;;SACD;;;;;;;;;;;;;;KCNR;EACC;EAAY;;EACZ;EAAY;EAAkB,KAAK;;KAEpC;EAAgB,QAAQ;EAAmB,SAAS;;KAEpD;EACC,QAAQ;EAAmB;;EAC3B,SAAS;EAAa;;EACtB;;EACA;;KAED;EAAgB,QAAQ;EAAQ;;cAS/B,kCAAe,aAAA;UAdP;;;WACC;;;;;;;;;;;;;;;;;;cC2LT,UAAW,OAAO,SAAS,QAAQ,WAAS;;;cCnM5C,aAAc,mBAAiB;cAU/B,SAAU,OAAO;cAEjB,WAAY,iBAAe;;;cCb3B,aAAc,OAAO,SAAS,cAAa,gBAAyB;;;KCFrE,eAAe;KACf;EAAgB,WAAW;EAAc;EAAe,KAAK;;cAE5D,eAAgB,OAAO,YAAU,MAAM;cAKvC,YAAa,OAAO,SAAS,oBAAkB;KAGhD,iBAAiB,UAAU,UAAU;cAyDpC,sBAAuB,KAAK,SAAS,KAAK,MAAM;cAShD,iBAAkB,OAAO,YAAU,MAAM;cAQzC,iBAAkB,OAAO,YAAU;cAEnC,aAAc,OAAO,SAAS,qBAAmB;cAiBjD,UAAW,OAAO,SAAS,kBAAgB;cAW3C,UAAW,KAAK,SAAS,eAAa;cAQtC,qBAAsB,OAAO,SAAS,eAAa;cAUnD,qBAAsB,OAAO,SAAS,mBAAiB;cASvD,mBACJ,KAAK,SACL;EACG;EAAe,QAAQ;;cActB,mBAAoB,OAAO,YAAU"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/state/node-attrs.ts","../src/state/actions.ts","../src/model/schema.ts","../src/model/builders.ts","../src/geometry/geometry.ts","../src/geometry/snap.ts","../src/state/history.ts","../src/model/ids.ts","../src/model/invariants.ts","../src/machines/dashfoo-machine.ts","../src/machines/drag-dock-machine.ts","../src/state/reducer.ts","../src/model/serialize.ts","../src/model/stack.ts","../src/model/tree.ts"],"mappings":"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"}