@pascal-app/core 0.5.1 → 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.
Files changed (91) hide show
  1. package/dist/events/bus.d.ts +37 -3
  2. package/dist/events/bus.d.ts.map +1 -1
  3. package/dist/events/bus.js +1 -1
  4. package/dist/hooks/spatial-grid/spatial-grid.d.ts +2 -0
  5. package/dist/hooks/spatial-grid/spatial-grid.d.ts.map +1 -1
  6. package/dist/hooks/spatial-grid/spatial-grid.js +43 -20
  7. package/dist/index.d.ts +4 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +4 -1
  10. package/dist/lib/polygon-geometry.d.ts +3 -0
  11. package/dist/lib/polygon-geometry.d.ts.map +1 -0
  12. package/dist/lib/polygon-geometry.js +90 -0
  13. package/dist/lib/space-detection.d.ts +10 -17
  14. package/dist/lib/space-detection.d.ts.map +1 -1
  15. package/dist/lib/space-detection.js +666 -453
  16. package/dist/material-library.d.ts +18 -0
  17. package/dist/material-library.d.ts.map +1 -0
  18. package/dist/material-library.js +603 -0
  19. package/dist/schema/index.d.ts +9 -4
  20. package/dist/schema/index.d.ts.map +1 -1
  21. package/dist/schema/index.js +5 -4
  22. package/dist/schema/material.d.ts +109 -0
  23. package/dist/schema/material.d.ts.map +1 -1
  24. package/dist/schema/material.js +52 -0
  25. package/dist/schema/nodes/ceiling.d.ts +10 -0
  26. package/dist/schema/nodes/ceiling.d.ts.map +1 -1
  27. package/dist/schema/nodes/ceiling.js +6 -0
  28. package/dist/schema/nodes/door.d.ts +1 -0
  29. package/dist/schema/nodes/door.d.ts.map +1 -1
  30. package/dist/schema/nodes/fence.d.ts +34 -0
  31. package/dist/schema/nodes/fence.d.ts.map +1 -1
  32. package/dist/schema/nodes/fence.js +5 -0
  33. package/dist/schema/nodes/item.d.ts +2 -2
  34. package/dist/schema/nodes/roof-segment.d.ts +2 -0
  35. package/dist/schema/nodes/roof-segment.d.ts.map +1 -1
  36. package/dist/schema/nodes/roof-segment.js +1 -0
  37. package/dist/schema/nodes/roof.d.ts +108 -0
  38. package/dist/schema/nodes/roof.d.ts.map +1 -1
  39. package/dist/schema/nodes/roof.js +58 -2
  40. package/dist/schema/nodes/site.d.ts +1 -1
  41. package/dist/schema/nodes/slab.d.ts +10 -0
  42. package/dist/schema/nodes/slab.d.ts.map +1 -1
  43. package/dist/schema/nodes/slab.js +7 -0
  44. package/dist/schema/nodes/stair-segment.d.ts +2 -0
  45. package/dist/schema/nodes/stair-segment.d.ts.map +1 -1
  46. package/dist/schema/nodes/stair-segment.js +1 -0
  47. package/dist/schema/nodes/stair.d.ts +122 -2
  48. package/dist/schema/nodes/stair.d.ts.map +1 -1
  49. package/dist/schema/nodes/stair.js +72 -2
  50. package/dist/schema/nodes/surface-hole-metadata.d.ts +10 -0
  51. package/dist/schema/nodes/surface-hole-metadata.d.ts.map +1 -0
  52. package/dist/schema/nodes/surface-hole-metadata.js +5 -0
  53. package/dist/schema/nodes/wall.d.ts +87 -1
  54. package/dist/schema/nodes/wall.d.ts.map +1 -1
  55. package/dist/schema/nodes/wall.js +45 -4
  56. package/dist/schema/nodes/window.d.ts +1 -0
  57. package/dist/schema/nodes/window.d.ts.map +1 -1
  58. package/dist/schema/types.d.ts +343 -5
  59. package/dist/schema/types.d.ts.map +1 -1
  60. package/dist/store/actions/node-actions.d.ts +1 -1
  61. package/dist/store/actions/node-actions.d.ts.map +1 -1
  62. package/dist/store/actions/node-actions.js +175 -0
  63. package/dist/store/history-control.d.ts +14 -0
  64. package/dist/store/history-control.d.ts.map +1 -0
  65. package/dist/store/history-control.js +22 -0
  66. package/dist/store/use-scene.d.ts.map +1 -1
  67. package/dist/store/use-scene.js +248 -2
  68. package/dist/systems/ceiling/ceiling-system.d.ts.map +1 -1
  69. package/dist/systems/ceiling/ceiling-system.js +7 -0
  70. package/dist/systems/fence/fence-system.d.ts.map +1 -1
  71. package/dist/systems/fence/fence-system.js +106 -39
  72. package/dist/systems/roof/roof-system.d.ts.map +1 -1
  73. package/dist/systems/roof/roof-system.js +31 -1
  74. package/dist/systems/slab/slab-system.d.ts.map +1 -1
  75. package/dist/systems/slab/slab-system.js +45 -8
  76. package/dist/systems/stair/stair-opening-sync.d.ts +6 -0
  77. package/dist/systems/stair/stair-opening-sync.d.ts.map +1 -0
  78. package/dist/systems/stair/stair-opening-sync.js +515 -0
  79. package/dist/systems/stair/stair-system.d.ts.map +1 -1
  80. package/dist/systems/stair/stair-system.js +119 -2
  81. package/dist/systems/wall/wall-curve.d.ts +43 -0
  82. package/dist/systems/wall/wall-curve.d.ts.map +1 -0
  83. package/dist/systems/wall/wall-curve.js +176 -0
  84. package/dist/systems/wall/wall-footprint.d.ts.map +1 -1
  85. package/dist/systems/wall/wall-footprint.js +16 -2
  86. package/dist/systems/wall/wall-mitering.d.ts +7 -0
  87. package/dist/systems/wall/wall-mitering.d.ts.map +1 -1
  88. package/dist/systems/wall/wall-mitering.js +76 -3
  89. package/dist/systems/wall/wall-system.d.ts.map +1 -1
  90. package/dist/systems/wall/wall-system.js +202 -2
  91. package/package.json +3 -3
@@ -80,8 +80,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
80
80
  dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
81
81
  attachTo: z.ZodOptional<z.ZodEnum<{
82
82
  wall: "wall";
83
- "wall-side": "wall-side";
84
83
  ceiling: "ceiling";
84
+ "wall-side": "wall-side";
85
85
  }>>;
86
86
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
87
87
  offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -195,8 +195,75 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
195
195
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
196
196
  id: z.ZodDefault<z.ZodTemplateLiteral<`wall_${string}`>>;
197
197
  type: z.ZodDefault<z.ZodLiteral<"wall">>;
198
- children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
198
+ children: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>, z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>]>>>;
199
199
  material: z.ZodOptional<z.ZodObject<{
200
+ id: z.ZodOptional<z.ZodString>;
201
+ preset: z.ZodOptional<z.ZodEnum<{
202
+ custom: "custom";
203
+ white: "white";
204
+ brick: "brick";
205
+ concrete: "concrete";
206
+ wood: "wood";
207
+ glass: "glass";
208
+ metal: "metal";
209
+ plaster: "plaster";
210
+ tile: "tile";
211
+ marble: "marble";
212
+ }>>;
213
+ properties: z.ZodOptional<z.ZodObject<{
214
+ color: z.ZodDefault<z.ZodString>;
215
+ roughness: z.ZodDefault<z.ZodNumber>;
216
+ metalness: z.ZodDefault<z.ZodNumber>;
217
+ opacity: z.ZodDefault<z.ZodNumber>;
218
+ transparent: z.ZodDefault<z.ZodBoolean>;
219
+ side: z.ZodDefault<z.ZodEnum<{
220
+ front: "front";
221
+ back: "back";
222
+ double: "double";
223
+ }>>;
224
+ }, z.core.$strip>>;
225
+ texture: z.ZodOptional<z.ZodObject<{
226
+ url: z.ZodString;
227
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
228
+ scale: z.ZodOptional<z.ZodNumber>;
229
+ }, z.core.$strip>>;
230
+ }, z.core.$strip>>;
231
+ materialPreset: z.ZodOptional<z.ZodString>;
232
+ interiorMaterial: z.ZodOptional<z.ZodObject<{
233
+ id: z.ZodOptional<z.ZodString>;
234
+ preset: z.ZodOptional<z.ZodEnum<{
235
+ custom: "custom";
236
+ white: "white";
237
+ brick: "brick";
238
+ concrete: "concrete";
239
+ wood: "wood";
240
+ glass: "glass";
241
+ metal: "metal";
242
+ plaster: "plaster";
243
+ tile: "tile";
244
+ marble: "marble";
245
+ }>>;
246
+ properties: z.ZodOptional<z.ZodObject<{
247
+ color: z.ZodDefault<z.ZodString>;
248
+ roughness: z.ZodDefault<z.ZodNumber>;
249
+ metalness: z.ZodDefault<z.ZodNumber>;
250
+ opacity: z.ZodDefault<z.ZodNumber>;
251
+ transparent: z.ZodDefault<z.ZodBoolean>;
252
+ side: z.ZodDefault<z.ZodEnum<{
253
+ front: "front";
254
+ back: "back";
255
+ double: "double";
256
+ }>>;
257
+ }, z.core.$strip>>;
258
+ texture: z.ZodOptional<z.ZodObject<{
259
+ url: z.ZodString;
260
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
261
+ scale: z.ZodOptional<z.ZodNumber>;
262
+ }, z.core.$strip>>;
263
+ }, z.core.$strip>>;
264
+ interiorMaterialPreset: z.ZodOptional<z.ZodString>;
265
+ exteriorMaterial: z.ZodOptional<z.ZodObject<{
266
+ id: z.ZodOptional<z.ZodString>;
200
267
  preset: z.ZodOptional<z.ZodEnum<{
201
268
  custom: "custom";
202
269
  white: "white";
@@ -227,8 +294,10 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
227
294
  scale: z.ZodOptional<z.ZodNumber>;
228
295
  }, z.core.$strip>>;
229
296
  }, z.core.$strip>>;
297
+ exteriorMaterialPreset: z.ZodOptional<z.ZodString>;
230
298
  thickness: z.ZodOptional<z.ZodNumber>;
231
299
  height: z.ZodOptional<z.ZodNumber>;
300
+ curveOffset: z.ZodOptional<z.ZodNumber>;
232
301
  start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
233
302
  end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
234
303
  frontSide: z.ZodDefault<z.ZodEnum<{
@@ -259,8 +328,42 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
259
328
  metadata: z.ZodDefault<z.ZodOptional<z.ZodJSONSchema>>;
260
329
  id: z.ZodDefault<z.ZodTemplateLiteral<`fence_${string}`>>;
261
330
  type: z.ZodDefault<z.ZodLiteral<"fence">>;
331
+ material: z.ZodOptional<z.ZodObject<{
332
+ id: z.ZodOptional<z.ZodString>;
333
+ preset: z.ZodOptional<z.ZodEnum<{
334
+ custom: "custom";
335
+ white: "white";
336
+ brick: "brick";
337
+ concrete: "concrete";
338
+ wood: "wood";
339
+ glass: "glass";
340
+ metal: "metal";
341
+ plaster: "plaster";
342
+ tile: "tile";
343
+ marble: "marble";
344
+ }>>;
345
+ properties: z.ZodOptional<z.ZodObject<{
346
+ color: z.ZodDefault<z.ZodString>;
347
+ roughness: z.ZodDefault<z.ZodNumber>;
348
+ metalness: z.ZodDefault<z.ZodNumber>;
349
+ opacity: z.ZodDefault<z.ZodNumber>;
350
+ transparent: z.ZodDefault<z.ZodBoolean>;
351
+ side: z.ZodDefault<z.ZodEnum<{
352
+ front: "front";
353
+ back: "back";
354
+ double: "double";
355
+ }>>;
356
+ }, z.core.$strip>>;
357
+ texture: z.ZodOptional<z.ZodObject<{
358
+ url: z.ZodString;
359
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
360
+ scale: z.ZodOptional<z.ZodNumber>;
361
+ }, z.core.$strip>>;
362
+ }, z.core.$strip>>;
363
+ materialPreset: z.ZodOptional<z.ZodString>;
262
364
  start: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
263
365
  end: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
366
+ curveOffset: z.ZodOptional<z.ZodNumber>;
264
367
  height: z.ZodDefault<z.ZodNumber>;
265
368
  thickness: z.ZodDefault<z.ZodNumber>;
266
369
  baseHeight: z.ZodDefault<z.ZodNumber>;
@@ -317,8 +420,8 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
317
420
  dimensions: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
318
421
  attachTo: z.ZodOptional<z.ZodEnum<{
319
422
  wall: "wall";
320
- "wall-side": "wall-side";
321
423
  ceiling: "ceiling";
424
+ "wall-side": "wall-side";
322
425
  }>>;
323
426
  tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
324
427
  offset: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
@@ -411,6 +514,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
411
514
  id: z.ZodDefault<z.ZodTemplateLiteral<`slab_${string}`>>;
412
515
  type: z.ZodDefault<z.ZodLiteral<"slab">>;
413
516
  material: z.ZodOptional<z.ZodObject<{
517
+ id: z.ZodOptional<z.ZodString>;
414
518
  preset: z.ZodOptional<z.ZodEnum<{
415
519
  custom: "custom";
416
520
  white: "white";
@@ -441,9 +545,18 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
441
545
  scale: z.ZodOptional<z.ZodNumber>;
442
546
  }, z.core.$strip>>;
443
547
  }, z.core.$strip>>;
548
+ materialPreset: z.ZodOptional<z.ZodString>;
444
549
  polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
445
550
  holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
551
+ holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
552
+ source: z.ZodDefault<z.ZodEnum<{
553
+ stair: "stair";
554
+ manual: "manual";
555
+ }>>;
556
+ stairId: z.ZodOptional<z.ZodString>;
557
+ }, z.core.$strip>>>;
446
558
  elevation: z.ZodDefault<z.ZodNumber>;
559
+ autoFromWalls: z.ZodDefault<z.ZodBoolean>;
447
560
  }, z.core.$strip>, z.ZodObject<{
448
561
  object: z.ZodDefault<z.ZodLiteral<"node">>;
449
562
  name: z.ZodOptional<z.ZodString>;
@@ -464,6 +577,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
464
577
  type: z.ZodDefault<z.ZodLiteral<"ceiling">>;
465
578
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`item_${string}`>>>>;
466
579
  material: z.ZodOptional<z.ZodObject<{
580
+ id: z.ZodOptional<z.ZodString>;
467
581
  preset: z.ZodOptional<z.ZodEnum<{
468
582
  custom: "custom";
469
583
  white: "white";
@@ -494,9 +608,18 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
494
608
  scale: z.ZodOptional<z.ZodNumber>;
495
609
  }, z.core.$strip>>;
496
610
  }, z.core.$strip>>;
611
+ materialPreset: z.ZodOptional<z.ZodString>;
497
612
  polygon: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
498
613
  holes: z.ZodDefault<z.ZodArray<z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>>>;
614
+ holeMetadata: z.ZodDefault<z.ZodArray<z.ZodObject<{
615
+ source: z.ZodDefault<z.ZodEnum<{
616
+ stair: "stair";
617
+ manual: "manual";
618
+ }>>;
619
+ stairId: z.ZodOptional<z.ZodString>;
620
+ }, z.core.$strip>>>;
499
621
  height: z.ZodDefault<z.ZodNumber>;
622
+ autoFromWalls: z.ZodDefault<z.ZodBoolean>;
500
623
  }, z.core.$strip>, z.ZodObject<{
501
624
  object: z.ZodDefault<z.ZodLiteral<"node">>;
502
625
  name: z.ZodOptional<z.ZodString>;
@@ -516,6 +639,106 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
516
639
  id: z.ZodDefault<z.ZodTemplateLiteral<`roof_${string}`>>;
517
640
  type: z.ZodDefault<z.ZodLiteral<"roof">>;
518
641
  material: z.ZodOptional<z.ZodObject<{
642
+ id: z.ZodOptional<z.ZodString>;
643
+ preset: z.ZodOptional<z.ZodEnum<{
644
+ custom: "custom";
645
+ white: "white";
646
+ brick: "brick";
647
+ concrete: "concrete";
648
+ wood: "wood";
649
+ glass: "glass";
650
+ metal: "metal";
651
+ plaster: "plaster";
652
+ tile: "tile";
653
+ marble: "marble";
654
+ }>>;
655
+ properties: z.ZodOptional<z.ZodObject<{
656
+ color: z.ZodDefault<z.ZodString>;
657
+ roughness: z.ZodDefault<z.ZodNumber>;
658
+ metalness: z.ZodDefault<z.ZodNumber>;
659
+ opacity: z.ZodDefault<z.ZodNumber>;
660
+ transparent: z.ZodDefault<z.ZodBoolean>;
661
+ side: z.ZodDefault<z.ZodEnum<{
662
+ front: "front";
663
+ back: "back";
664
+ double: "double";
665
+ }>>;
666
+ }, z.core.$strip>>;
667
+ texture: z.ZodOptional<z.ZodObject<{
668
+ url: z.ZodString;
669
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
670
+ scale: z.ZodOptional<z.ZodNumber>;
671
+ }, z.core.$strip>>;
672
+ }, z.core.$strip>>;
673
+ materialPreset: z.ZodOptional<z.ZodString>;
674
+ topMaterial: z.ZodOptional<z.ZodObject<{
675
+ id: z.ZodOptional<z.ZodString>;
676
+ preset: z.ZodOptional<z.ZodEnum<{
677
+ custom: "custom";
678
+ white: "white";
679
+ brick: "brick";
680
+ concrete: "concrete";
681
+ wood: "wood";
682
+ glass: "glass";
683
+ metal: "metal";
684
+ plaster: "plaster";
685
+ tile: "tile";
686
+ marble: "marble";
687
+ }>>;
688
+ properties: z.ZodOptional<z.ZodObject<{
689
+ color: z.ZodDefault<z.ZodString>;
690
+ roughness: z.ZodDefault<z.ZodNumber>;
691
+ metalness: z.ZodDefault<z.ZodNumber>;
692
+ opacity: z.ZodDefault<z.ZodNumber>;
693
+ transparent: z.ZodDefault<z.ZodBoolean>;
694
+ side: z.ZodDefault<z.ZodEnum<{
695
+ front: "front";
696
+ back: "back";
697
+ double: "double";
698
+ }>>;
699
+ }, z.core.$strip>>;
700
+ texture: z.ZodOptional<z.ZodObject<{
701
+ url: z.ZodString;
702
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
703
+ scale: z.ZodOptional<z.ZodNumber>;
704
+ }, z.core.$strip>>;
705
+ }, z.core.$strip>>;
706
+ topMaterialPreset: z.ZodOptional<z.ZodString>;
707
+ edgeMaterial: z.ZodOptional<z.ZodObject<{
708
+ id: z.ZodOptional<z.ZodString>;
709
+ preset: z.ZodOptional<z.ZodEnum<{
710
+ custom: "custom";
711
+ white: "white";
712
+ brick: "brick";
713
+ concrete: "concrete";
714
+ wood: "wood";
715
+ glass: "glass";
716
+ metal: "metal";
717
+ plaster: "plaster";
718
+ tile: "tile";
719
+ marble: "marble";
720
+ }>>;
721
+ properties: z.ZodOptional<z.ZodObject<{
722
+ color: z.ZodDefault<z.ZodString>;
723
+ roughness: z.ZodDefault<z.ZodNumber>;
724
+ metalness: z.ZodDefault<z.ZodNumber>;
725
+ opacity: z.ZodDefault<z.ZodNumber>;
726
+ transparent: z.ZodDefault<z.ZodBoolean>;
727
+ side: z.ZodDefault<z.ZodEnum<{
728
+ front: "front";
729
+ back: "back";
730
+ double: "double";
731
+ }>>;
732
+ }, z.core.$strip>>;
733
+ texture: z.ZodOptional<z.ZodObject<{
734
+ url: z.ZodString;
735
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
736
+ scale: z.ZodOptional<z.ZodNumber>;
737
+ }, z.core.$strip>>;
738
+ }, z.core.$strip>>;
739
+ edgeMaterialPreset: z.ZodOptional<z.ZodString>;
740
+ wallMaterial: z.ZodOptional<z.ZodObject<{
741
+ id: z.ZodOptional<z.ZodString>;
519
742
  preset: z.ZodOptional<z.ZodEnum<{
520
743
  custom: "custom";
521
744
  white: "white";
@@ -546,6 +769,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
546
769
  scale: z.ZodOptional<z.ZodNumber>;
547
770
  }, z.core.$strip>>;
548
771
  }, z.core.$strip>>;
772
+ wallMaterialPreset: z.ZodOptional<z.ZodString>;
549
773
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
550
774
  rotation: z.ZodDefault<z.ZodNumber>;
551
775
  children: z.ZodDefault<z.ZodArray<z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>>>;
@@ -568,6 +792,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
568
792
  id: z.ZodDefault<z.ZodTemplateLiteral<`rseg_${string}`>>;
569
793
  type: z.ZodDefault<z.ZodLiteral<"roof-segment">>;
570
794
  material: z.ZodOptional<z.ZodObject<{
795
+ id: z.ZodOptional<z.ZodString>;
571
796
  preset: z.ZodOptional<z.ZodEnum<{
572
797
  custom: "custom";
573
798
  white: "white";
@@ -598,6 +823,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
598
823
  scale: z.ZodOptional<z.ZodNumber>;
599
824
  }, z.core.$strip>>;
600
825
  }, z.core.$strip>>;
826
+ materialPreset: z.ZodOptional<z.ZodString>;
601
827
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
602
828
  rotation: z.ZodDefault<z.ZodNumber>;
603
829
  roofType: z.ZodDefault<z.ZodEnum<{
@@ -636,6 +862,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
636
862
  id: z.ZodDefault<z.ZodTemplateLiteral<`stair_${string}`>>;
637
863
  type: z.ZodDefault<z.ZodLiteral<"stair">>;
638
864
  material: z.ZodOptional<z.ZodObject<{
865
+ id: z.ZodOptional<z.ZodString>;
639
866
  preset: z.ZodOptional<z.ZodEnum<{
640
867
  custom: "custom";
641
868
  white: "white";
@@ -666,6 +893,106 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
666
893
  scale: z.ZodOptional<z.ZodNumber>;
667
894
  }, z.core.$strip>>;
668
895
  }, z.core.$strip>>;
896
+ materialPreset: z.ZodOptional<z.ZodString>;
897
+ railingMaterial: z.ZodOptional<z.ZodObject<{
898
+ id: z.ZodOptional<z.ZodString>;
899
+ preset: z.ZodOptional<z.ZodEnum<{
900
+ custom: "custom";
901
+ white: "white";
902
+ brick: "brick";
903
+ concrete: "concrete";
904
+ wood: "wood";
905
+ glass: "glass";
906
+ metal: "metal";
907
+ plaster: "plaster";
908
+ tile: "tile";
909
+ marble: "marble";
910
+ }>>;
911
+ properties: z.ZodOptional<z.ZodObject<{
912
+ color: z.ZodDefault<z.ZodString>;
913
+ roughness: z.ZodDefault<z.ZodNumber>;
914
+ metalness: z.ZodDefault<z.ZodNumber>;
915
+ opacity: z.ZodDefault<z.ZodNumber>;
916
+ transparent: z.ZodDefault<z.ZodBoolean>;
917
+ side: z.ZodDefault<z.ZodEnum<{
918
+ front: "front";
919
+ back: "back";
920
+ double: "double";
921
+ }>>;
922
+ }, z.core.$strip>>;
923
+ texture: z.ZodOptional<z.ZodObject<{
924
+ url: z.ZodString;
925
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
926
+ scale: z.ZodOptional<z.ZodNumber>;
927
+ }, z.core.$strip>>;
928
+ }, z.core.$strip>>;
929
+ railingMaterialPreset: z.ZodOptional<z.ZodString>;
930
+ treadMaterial: z.ZodOptional<z.ZodObject<{
931
+ id: z.ZodOptional<z.ZodString>;
932
+ preset: z.ZodOptional<z.ZodEnum<{
933
+ custom: "custom";
934
+ white: "white";
935
+ brick: "brick";
936
+ concrete: "concrete";
937
+ wood: "wood";
938
+ glass: "glass";
939
+ metal: "metal";
940
+ plaster: "plaster";
941
+ tile: "tile";
942
+ marble: "marble";
943
+ }>>;
944
+ properties: z.ZodOptional<z.ZodObject<{
945
+ color: z.ZodDefault<z.ZodString>;
946
+ roughness: z.ZodDefault<z.ZodNumber>;
947
+ metalness: z.ZodDefault<z.ZodNumber>;
948
+ opacity: z.ZodDefault<z.ZodNumber>;
949
+ transparent: z.ZodDefault<z.ZodBoolean>;
950
+ side: z.ZodDefault<z.ZodEnum<{
951
+ front: "front";
952
+ back: "back";
953
+ double: "double";
954
+ }>>;
955
+ }, z.core.$strip>>;
956
+ texture: z.ZodOptional<z.ZodObject<{
957
+ url: z.ZodString;
958
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
959
+ scale: z.ZodOptional<z.ZodNumber>;
960
+ }, z.core.$strip>>;
961
+ }, z.core.$strip>>;
962
+ treadMaterialPreset: z.ZodOptional<z.ZodString>;
963
+ sideMaterial: z.ZodOptional<z.ZodObject<{
964
+ id: z.ZodOptional<z.ZodString>;
965
+ preset: z.ZodOptional<z.ZodEnum<{
966
+ custom: "custom";
967
+ white: "white";
968
+ brick: "brick";
969
+ concrete: "concrete";
970
+ wood: "wood";
971
+ glass: "glass";
972
+ metal: "metal";
973
+ plaster: "plaster";
974
+ tile: "tile";
975
+ marble: "marble";
976
+ }>>;
977
+ properties: z.ZodOptional<z.ZodObject<{
978
+ color: z.ZodDefault<z.ZodString>;
979
+ roughness: z.ZodDefault<z.ZodNumber>;
980
+ metalness: z.ZodDefault<z.ZodNumber>;
981
+ opacity: z.ZodDefault<z.ZodNumber>;
982
+ transparent: z.ZodDefault<z.ZodBoolean>;
983
+ side: z.ZodDefault<z.ZodEnum<{
984
+ front: "front";
985
+ back: "back";
986
+ double: "double";
987
+ }>>;
988
+ }, z.core.$strip>>;
989
+ texture: z.ZodOptional<z.ZodObject<{
990
+ url: z.ZodString;
991
+ repeat: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
992
+ scale: z.ZodOptional<z.ZodNumber>;
993
+ }, z.core.$strip>>;
994
+ }, z.core.$strip>>;
995
+ sideMaterialPreset: z.ZodOptional<z.ZodString>;
669
996
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
670
997
  rotation: z.ZodDefault<z.ZodNumber>;
671
998
  stairType: z.ZodDefault<z.ZodEnum<{
@@ -673,6 +1000,13 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
673
1000
  curved: "curved";
674
1001
  spiral: "spiral";
675
1002
  }>>;
1003
+ fromLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1004
+ toLevelId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1005
+ slabOpeningMode: z.ZodDefault<z.ZodEnum<{
1006
+ none: "none";
1007
+ destination: "destination";
1008
+ }>>;
1009
+ openingOffset: z.ZodDefault<z.ZodNumber>;
676
1010
  width: z.ZodDefault<z.ZodNumber>;
677
1011
  totalRise: z.ZodDefault<z.ZodNumber>;
678
1012
  stepCount: z.ZodDefault<z.ZodNumber>;
@@ -688,9 +1022,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
688
1022
  showCenterColumn: z.ZodDefault<z.ZodBoolean>;
689
1023
  showStepSupports: z.ZodDefault<z.ZodBoolean>;
690
1024
  railingMode: z.ZodDefault<z.ZodEnum<{
691
- none: "none";
692
1025
  left: "left";
693
1026
  right: "right";
1027
+ none: "none";
694
1028
  both: "both";
695
1029
  }>>;
696
1030
  railingHeight: z.ZodDefault<z.ZodNumber>;
@@ -714,6 +1048,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
714
1048
  id: z.ZodDefault<z.ZodTemplateLiteral<`sseg_${string}`>>;
715
1049
  type: z.ZodDefault<z.ZodLiteral<"stair-segment">>;
716
1050
  material: z.ZodOptional<z.ZodObject<{
1051
+ id: z.ZodOptional<z.ZodString>;
717
1052
  preset: z.ZodOptional<z.ZodEnum<{
718
1053
  custom: "custom";
719
1054
  white: "white";
@@ -744,6 +1079,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
744
1079
  scale: z.ZodOptional<z.ZodNumber>;
745
1080
  }, z.core.$strip>>;
746
1081
  }, z.core.$strip>>;
1082
+ materialPreset: z.ZodOptional<z.ZodString>;
747
1083
  position: z.ZodDefault<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
748
1084
  rotation: z.ZodDefault<z.ZodNumber>;
749
1085
  segmentType: z.ZodDefault<z.ZodEnum<{
@@ -755,9 +1091,9 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
755
1091
  height: z.ZodDefault<z.ZodNumber>;
756
1092
  stepCount: z.ZodDefault<z.ZodNumber>;
757
1093
  attachmentSide: z.ZodDefault<z.ZodEnum<{
1094
+ front: "front";
758
1095
  left: "left";
759
1096
  right: "right";
760
- front: "front";
761
1097
  }>>;
762
1098
  fillToFloor: z.ZodDefault<z.ZodBoolean>;
763
1099
  thickness: z.ZodDefault<z.ZodNumber>;
@@ -826,6 +1162,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
826
1162
  id: z.ZodDefault<z.ZodTemplateLiteral<`window_${string}`>>;
827
1163
  type: z.ZodDefault<z.ZodLiteral<"window">>;
828
1164
  material: z.ZodOptional<z.ZodObject<{
1165
+ id: z.ZodOptional<z.ZodString>;
829
1166
  preset: z.ZodOptional<z.ZodEnum<{
830
1167
  custom: "custom";
831
1168
  white: "white";
@@ -893,6 +1230,7 @@ export declare const AnyNode: z.ZodDiscriminatedUnion<[z.ZodObject<{
893
1230
  id: z.ZodDefault<z.ZodTemplateLiteral<`door_${string}`>>;
894
1231
  type: z.ZodDefault<z.ZodLiteral<"door">>;
895
1232
  material: z.ZodOptional<z.ZodObject<{
1233
+ id: z.ZodOptional<z.ZodString>;
896
1234
  preset: z.ZodOptional<z.ZodEnum<{
897
1235
  custom: "custom";
898
1236
  white: "white";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAmBnB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAkBlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;AAC7C,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AACzC,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAmBnB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAkBlB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAA;AAC7C,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AACzC,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { AnyNode, AnyNodeId } from '../../schema';
1
+ import { type AnyNode, type AnyNodeId } from '../../schema';
2
2
  import type { SceneState } from '../use-scene';
3
3
  export declare const createNodesAction: (set: (fn: (state: SceneState) => Partial<SceneState>) => void, get: () => SceneState, ops: {
4
4
  node: AnyNode;
@@ -1 +1 @@
1
- {"version":3,"file":"node-actions.d.ts","sourceRoot":"","sources":["../../../src/store/actions/node-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAQ9C,eAAO,MAAM,iBAAiB,GAC5B,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAC7D,KAAK,MAAM,UAAU,EACrB,KAAK;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,SA4C/C,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAC7D,KAAK,MAAM,UAAU,EACrB,SAAS;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,EAAE,SA+DrD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAC7D,KAAK,MAAM,UAAU,EACrB,KAAK,SAAS,EAAE,SAuEjB,CAAA"}
1
+ {"version":3,"file":"node-actions.d.ts","sourceRoot":"","sources":["../../../src/store/actions/node-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EAIf,MAAM,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AA6N9C,eAAO,MAAM,iBAAiB,GAC5B,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAC7D,KAAK,MAAM,UAAU,EACrB,KAAK;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,EAAE,SA4C/C,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAC7D,KAAK,MAAM,UAAU,EACrB,SAAS;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,EAAE,SA+DrD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,EAC7D,KAAK,MAAM,UAAU,EACrB,KAAK,SAAS,EAAE,SAsGjB,CAAA"}