@seatlayer/core 0.29.0 → 0.30.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 +102 -22
- package/dist/chunk-FGS67GT3.js +1252 -0
- package/dist/chunk-FGS67GT3.js.map +1 -0
- package/dist/index.cjs +572 -75
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +269 -909
- package/dist/index.js.map +1 -1
- package/dist/{types-B-tpUFqz.d.cts → types-CG2pEDoI.d.cts} +56 -0
- package/dist/{types-B-tpUFqz.d.ts → types-CG2pEDoI.d.ts} +56 -0
- package/dist/view3d/index.cjs +2315 -99
- package/dist/view3d/index.cjs.map +1 -1
- package/dist/view3d/index.d.cts +236 -27
- package/dist/view3d/index.d.ts +236 -27
- package/dist/view3d/index.js +1912 -98
- package/dist/view3d/index.js.map +1 -1
- package/package.json +5 -3
- package/dist/chunk-5MLADB2N.js +0 -53
- package/dist/chunk-5MLADB2N.js.map +0 -1
|
@@ -721,6 +721,25 @@ interface SectionObject {
|
|
|
721
721
|
* Phase A. Range 0–45°.
|
|
722
722
|
*/
|
|
723
723
|
rake?: number;
|
|
724
|
+
/**
|
|
725
|
+
* Override how 3D builds this section's seating surface. Absent = inferred.
|
|
726
|
+
*
|
|
727
|
+
* The renderer infers structure from the authored geometry — which rows form a
|
|
728
|
+
* stand, where its front is, whether the rows are concentric arcs or straight
|
|
729
|
+
* blocks — and that inference is correct across every shipped template. But
|
|
730
|
+
* inference cannot be right on every chart a customer will ever draw, and when
|
|
731
|
+
* it is wrong the author needs a way to say so without us inventing a second
|
|
732
|
+
* source of truth for the geometry itself.
|
|
733
|
+
*
|
|
734
|
+
* - `flat`: a level deck, whatever the rake says. Terraces, boxes, standing.
|
|
735
|
+
* - `rakedRows`: level ribbons stepping back, the default for a raked stand.
|
|
736
|
+
*
|
|
737
|
+
* Deliberately NOT a "venue type" picker: the chart is authored once in 2D,
|
|
738
|
+
* and every 3D-only property that is not derived from that authoring is a
|
|
739
|
+
* source of drift. This is a per-section correction, in the same place and of
|
|
740
|
+
* the same kind as {@link height} and {@link rake}.
|
|
741
|
+
*/
|
|
742
|
+
surfaceKind?: 'flat' | 'rakedRows';
|
|
724
743
|
/** Uniform scale about the outline centroid (1 = as drawn). Scales members too. */
|
|
725
744
|
scale?: number;
|
|
726
745
|
/** 0–100: reviewed strength last used to bend member rows toward a common fitted arc. */
|
|
@@ -740,6 +759,19 @@ interface SectionObject {
|
|
|
740
759
|
* Coordinate-free, so it round-trips over MCP (`update_sections`).
|
|
741
760
|
*/
|
|
742
761
|
cornerSmoothing?: number;
|
|
762
|
+
/**
|
|
763
|
+
* Per-edge curvature, one entry per edge of {@link sourceOutline}, -100..100,
|
|
764
|
+
* 0 = straight. Edge `i` runs from clicked vertex `i` to vertex `i+1`.
|
|
765
|
+
*
|
|
766
|
+
* Positive bows to the LEFT of that edge's own direction. The sign is relative
|
|
767
|
+
* to the edge, never to world axes, which is what lets curvature survive
|
|
768
|
+
* rotate / flip / mirror / radial repeat with no per-operation handling.
|
|
769
|
+
*
|
|
770
|
+
* Coordinate-free like {@link cornerSmoothing}, so it round-trips over MCP and
|
|
771
|
+
* the server never accepts client geometry. Absent/all-zero = straight edges;
|
|
772
|
+
* zeroing it restores the exact clicked polygon.
|
|
773
|
+
*/
|
|
774
|
+
edgeCurvature?: number[];
|
|
743
775
|
/** Degrees clockwise about the outline centroid (default 0). Rotates members too. */
|
|
744
776
|
rotation?: number;
|
|
745
777
|
}
|
|
@@ -857,6 +889,14 @@ interface Floor {
|
|
|
857
889
|
* by the background compatibility helpers.
|
|
858
890
|
*/
|
|
859
891
|
backgroundImage?: ChartDoc['backgroundImage'];
|
|
892
|
+
/**
|
|
893
|
+
* Per-floor override of the venue-wide view-from-seat fallback: a single
|
|
894
|
+
* organizer 360° (or wide photo) inherited by every seat on THIS floor that
|
|
895
|
+
* has no closer row/section photo. Falls below section photos and above the
|
|
896
|
+
* chart-level `viewFromSeatUrl`. Absent ⇒ the venue default (then a synthetic
|
|
897
|
+
* panorama) applies.
|
|
898
|
+
*/
|
|
899
|
+
viewFromSeatUrl?: string;
|
|
860
900
|
}
|
|
861
901
|
interface ReferenceCalibration {
|
|
862
902
|
type: 'two-point';
|
|
@@ -994,6 +1034,13 @@ interface ReferenceSectionTraceProposal {
|
|
|
994
1034
|
measuredVectorErrorPx: number;
|
|
995
1035
|
/** Source component footprint, as a percentage of the analyzed image. */
|
|
996
1036
|
sourceAreaPercent?: number;
|
|
1037
|
+
/**
|
|
1038
|
+
* The name already printed on the plan for this region, when one has been
|
|
1039
|
+
* read. The review proposes it instead of a generated number — a venue plan
|
|
1040
|
+
* names its own sections, and retyping forty of them is work the author
|
|
1041
|
+
* should never have to do. Absent means fall back to numbering.
|
|
1042
|
+
*/
|
|
1043
|
+
visibleLabel?: string;
|
|
997
1044
|
};
|
|
998
1045
|
}
|
|
999
1046
|
/** Read-only whole-reference proposal. The author may approve each proposal or
|
|
@@ -1007,6 +1054,9 @@ interface ReferenceSectionTraceBatchProposal {
|
|
|
1007
1054
|
proposalCount: number;
|
|
1008
1055
|
alreadyTracedCount: number;
|
|
1009
1056
|
withinToleranceCount: number;
|
|
1057
|
+
/** Regions that could not be traced into a usable boundary and were left
|
|
1058
|
+
* out. One unusable region must not cost the author the rest of the plan. */
|
|
1059
|
+
unusableRegionCount?: number;
|
|
1010
1060
|
};
|
|
1011
1061
|
}
|
|
1012
1062
|
/** Coordinate-free physical scale derived by server code from a confirmed
|
|
@@ -1080,6 +1130,12 @@ interface ChartDoc {
|
|
|
1080
1130
|
family: string;
|
|
1081
1131
|
targetSeats: number;
|
|
1082
1132
|
};
|
|
1133
|
+
/**
|
|
1134
|
+
* Venue-wide view-from-seat fallback: a single organizer 360° (or wide photo)
|
|
1135
|
+
* inherited by every seat that has no closer row/section/floor photo. Absent ⇒
|
|
1136
|
+
* the picker generates a synthetic panorama.
|
|
1137
|
+
*/
|
|
1138
|
+
viewFromSeatUrl?: string;
|
|
1083
1139
|
}
|
|
1084
1140
|
interface ExpandedSeat {
|
|
1085
1141
|
/** Stable id: `${rowId}:${index}` */
|
|
@@ -721,6 +721,25 @@ interface SectionObject {
|
|
|
721
721
|
* Phase A. Range 0–45°.
|
|
722
722
|
*/
|
|
723
723
|
rake?: number;
|
|
724
|
+
/**
|
|
725
|
+
* Override how 3D builds this section's seating surface. Absent = inferred.
|
|
726
|
+
*
|
|
727
|
+
* The renderer infers structure from the authored geometry — which rows form a
|
|
728
|
+
* stand, where its front is, whether the rows are concentric arcs or straight
|
|
729
|
+
* blocks — and that inference is correct across every shipped template. But
|
|
730
|
+
* inference cannot be right on every chart a customer will ever draw, and when
|
|
731
|
+
* it is wrong the author needs a way to say so without us inventing a second
|
|
732
|
+
* source of truth for the geometry itself.
|
|
733
|
+
*
|
|
734
|
+
* - `flat`: a level deck, whatever the rake says. Terraces, boxes, standing.
|
|
735
|
+
* - `rakedRows`: level ribbons stepping back, the default for a raked stand.
|
|
736
|
+
*
|
|
737
|
+
* Deliberately NOT a "venue type" picker: the chart is authored once in 2D,
|
|
738
|
+
* and every 3D-only property that is not derived from that authoring is a
|
|
739
|
+
* source of drift. This is a per-section correction, in the same place and of
|
|
740
|
+
* the same kind as {@link height} and {@link rake}.
|
|
741
|
+
*/
|
|
742
|
+
surfaceKind?: 'flat' | 'rakedRows';
|
|
724
743
|
/** Uniform scale about the outline centroid (1 = as drawn). Scales members too. */
|
|
725
744
|
scale?: number;
|
|
726
745
|
/** 0–100: reviewed strength last used to bend member rows toward a common fitted arc. */
|
|
@@ -740,6 +759,19 @@ interface SectionObject {
|
|
|
740
759
|
* Coordinate-free, so it round-trips over MCP (`update_sections`).
|
|
741
760
|
*/
|
|
742
761
|
cornerSmoothing?: number;
|
|
762
|
+
/**
|
|
763
|
+
* Per-edge curvature, one entry per edge of {@link sourceOutline}, -100..100,
|
|
764
|
+
* 0 = straight. Edge `i` runs from clicked vertex `i` to vertex `i+1`.
|
|
765
|
+
*
|
|
766
|
+
* Positive bows to the LEFT of that edge's own direction. The sign is relative
|
|
767
|
+
* to the edge, never to world axes, which is what lets curvature survive
|
|
768
|
+
* rotate / flip / mirror / radial repeat with no per-operation handling.
|
|
769
|
+
*
|
|
770
|
+
* Coordinate-free like {@link cornerSmoothing}, so it round-trips over MCP and
|
|
771
|
+
* the server never accepts client geometry. Absent/all-zero = straight edges;
|
|
772
|
+
* zeroing it restores the exact clicked polygon.
|
|
773
|
+
*/
|
|
774
|
+
edgeCurvature?: number[];
|
|
743
775
|
/** Degrees clockwise about the outline centroid (default 0). Rotates members too. */
|
|
744
776
|
rotation?: number;
|
|
745
777
|
}
|
|
@@ -857,6 +889,14 @@ interface Floor {
|
|
|
857
889
|
* by the background compatibility helpers.
|
|
858
890
|
*/
|
|
859
891
|
backgroundImage?: ChartDoc['backgroundImage'];
|
|
892
|
+
/**
|
|
893
|
+
* Per-floor override of the venue-wide view-from-seat fallback: a single
|
|
894
|
+
* organizer 360° (or wide photo) inherited by every seat on THIS floor that
|
|
895
|
+
* has no closer row/section photo. Falls below section photos and above the
|
|
896
|
+
* chart-level `viewFromSeatUrl`. Absent ⇒ the venue default (then a synthetic
|
|
897
|
+
* panorama) applies.
|
|
898
|
+
*/
|
|
899
|
+
viewFromSeatUrl?: string;
|
|
860
900
|
}
|
|
861
901
|
interface ReferenceCalibration {
|
|
862
902
|
type: 'two-point';
|
|
@@ -994,6 +1034,13 @@ interface ReferenceSectionTraceProposal {
|
|
|
994
1034
|
measuredVectorErrorPx: number;
|
|
995
1035
|
/** Source component footprint, as a percentage of the analyzed image. */
|
|
996
1036
|
sourceAreaPercent?: number;
|
|
1037
|
+
/**
|
|
1038
|
+
* The name already printed on the plan for this region, when one has been
|
|
1039
|
+
* read. The review proposes it instead of a generated number — a venue plan
|
|
1040
|
+
* names its own sections, and retyping forty of them is work the author
|
|
1041
|
+
* should never have to do. Absent means fall back to numbering.
|
|
1042
|
+
*/
|
|
1043
|
+
visibleLabel?: string;
|
|
997
1044
|
};
|
|
998
1045
|
}
|
|
999
1046
|
/** Read-only whole-reference proposal. The author may approve each proposal or
|
|
@@ -1007,6 +1054,9 @@ interface ReferenceSectionTraceBatchProposal {
|
|
|
1007
1054
|
proposalCount: number;
|
|
1008
1055
|
alreadyTracedCount: number;
|
|
1009
1056
|
withinToleranceCount: number;
|
|
1057
|
+
/** Regions that could not be traced into a usable boundary and were left
|
|
1058
|
+
* out. One unusable region must not cost the author the rest of the plan. */
|
|
1059
|
+
unusableRegionCount?: number;
|
|
1010
1060
|
};
|
|
1011
1061
|
}
|
|
1012
1062
|
/** Coordinate-free physical scale derived by server code from a confirmed
|
|
@@ -1080,6 +1130,12 @@ interface ChartDoc {
|
|
|
1080
1130
|
family: string;
|
|
1081
1131
|
targetSeats: number;
|
|
1082
1132
|
};
|
|
1133
|
+
/**
|
|
1134
|
+
* Venue-wide view-from-seat fallback: a single organizer 360° (or wide photo)
|
|
1135
|
+
* inherited by every seat that has no closer row/section/floor photo. Absent ⇒
|
|
1136
|
+
* the picker generates a synthetic panorama.
|
|
1137
|
+
*/
|
|
1138
|
+
viewFromSeatUrl?: string;
|
|
1083
1139
|
}
|
|
1084
1140
|
interface ExpandedSeat {
|
|
1085
1141
|
/** Stable id: `${rowId}:${index}` */
|