@cellarnode/ui 0.209.1 → 0.210.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/agent/confirm-card.d.ts +9 -0
- package/dist/agent/confirm-card.d.ts.map +1 -1
- package/dist/agent/confirm-card.js +28 -2
- package/dist/agent/confirm-card.js.map +1 -1
- package/dist/agent/conversation.d.ts +10 -0
- package/dist/agent/conversation.d.ts.map +1 -1
- package/dist/agent/conversation.js +4 -4
- package/dist/agent/conversation.js.map +1 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/message.d.ts +4 -1
- package/dist/agent/message.d.ts.map +1 -1
- package/dist/agent/message.js +2 -2
- package/dist/agent/message.js.map +1 -1
- package/dist/agent/schema.d.ts +25 -0
- package/dist/agent/schema.d.ts.map +1 -1
- package/dist/agent/schema.js +7 -0
- package/dist/agent/schema.js.map +1 -1
- package/dist/agent/states.d.ts +24 -1
- package/dist/agent/states.d.ts.map +1 -1
- package/dist/agent/states.js +35 -6
- package/dist/agent/states.js.map +1 -1
- package/dist/components/composition-editor.d.ts.map +1 -1
- package/dist/components/composition-editor.js +13 -13
- package/dist/components/composition-editor.js.map +1 -1
- package/dist/components/importer-picker-modal.js +5 -5
- package/dist/components/importer-picker-modal.js.map +1 -1
- package/dist/components/source-composite.d.ts.map +1 -1
- package/dist/components/source-composite.js +4 -3
- package/dist/components/source-composite.js.map +1 -1
- package/dist/globe/svg-globe-geo.d.ts +16 -0
- package/dist/globe/svg-globe-geo.d.ts.map +1 -0
- package/dist/globe/svg-globe-geo.js +48 -0
- package/dist/globe/svg-globe-geo.js.map +1 -0
- package/dist/globe/svg-globe-map-layer.d.ts +18 -0
- package/dist/globe/svg-globe-map-layer.d.ts.map +1 -0
- package/dist/globe/svg-globe-map-layer.js +47 -0
- package/dist/globe/svg-globe-map-layer.js.map +1 -0
- package/dist/globe/svg-globe-pin-layer.d.ts +17 -0
- package/dist/globe/svg-globe-pin-layer.d.ts.map +1 -0
- package/dist/globe/svg-globe-pin-layer.js +111 -0
- package/dist/globe/svg-globe-pin-layer.js.map +1 -0
- package/dist/globe/svg-globe-renderer.d.ts +3 -0
- package/dist/globe/svg-globe-renderer.d.ts.map +1 -0
- package/dist/globe/svg-globe-renderer.js +57 -0
- package/dist/globe/svg-globe-renderer.js.map +1 -0
- package/dist/globe/svg-globe.css +247 -0
- package/dist/globe/svg-globe.d.ts +46 -0
- package/dist/globe/svg-globe.d.ts.map +1 -0
- package/dist/globe/svg-globe.js +45 -0
- package/dist/globe/svg-globe.js.map +1 -0
- package/dist/globe/svg.d.ts +9 -0
- package/dist/globe/svg.d.ts.map +1 -0
- package/dist/globe/svg.js +6 -0
- package/dist/globe/svg.js.map +1 -0
- package/dist/globe/use-svg-globe-gestures.d.ts +21 -0
- package/dist/globe/use-svg-globe-gestures.d.ts.map +1 -0
- package/dist/globe/use-svg-globe-gestures.js +190 -0
- package/dist/globe/use-svg-globe-gestures.js.map +1 -0
- package/dist/globe/use-svg-globe-item-interactions.d.ts +20 -0
- package/dist/globe/use-svg-globe-item-interactions.d.ts.map +1 -0
- package/dist/globe/use-svg-globe-item-interactions.js +66 -0
- package/dist/globe/use-svg-globe-item-interactions.js.map +1 -0
- package/dist/globe/use-svg-globe-navigation.d.ts +17 -0
- package/dist/globe/use-svg-globe-navigation.d.ts.map +1 -0
- package/dist/globe/use-svg-globe-navigation.js +107 -0
- package/dist/globe/use-svg-globe-navigation.js.map +1 -0
- package/dist/offer/negotiation-flow-timeline.d.ts.map +1 -1
- package/dist/offer/negotiation-flow-timeline.js +8 -5
- package/dist/offer/negotiation-flow-timeline.js.map +1 -1
- package/dist/product-editor/product-editor-surface.d.ts.map +1 -1
- package/dist/product-editor/product-editor-surface.js +5 -3
- package/dist/product-editor/product-editor-surface.js.map +1 -1
- package/dist/product-editor/tabs/product-status-tab.js +4 -4
- package/package.json +14 -1
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import { select } from "d3-selection";
|
|
3
|
+
import { zoomIdentity, zoomTransform } from "d3-zoom";
|
|
4
|
+
const SIZE = 520;
|
|
5
|
+
const ZOOM_MIN = 1;
|
|
6
|
+
const ZOOM_MAX = 4;
|
|
7
|
+
function pointInSvg(svg, clientX, clientY) {
|
|
8
|
+
const rect = svg.getBoundingClientRect();
|
|
9
|
+
if (!rect.width || !rect.height)
|
|
10
|
+
return null;
|
|
11
|
+
const scale = Math.min(rect.width / SIZE, rect.height / SIZE);
|
|
12
|
+
const offsetX = (rect.width - SIZE * scale) / 2;
|
|
13
|
+
const offsetY = (rect.height - SIZE * scale) / 2;
|
|
14
|
+
return [(clientX - rect.left - offsetX) / scale, (clientY - rect.top - offsetY) / scale];
|
|
15
|
+
}
|
|
16
|
+
export function useSvgGlobeGestures({ zoomRef, rotationRef, zoomScale, setRotation, setHoveredCountry, setPointerClickSuppressed, cancelRotation, }) {
|
|
17
|
+
const dragRef = useRef(null);
|
|
18
|
+
const touchPointersRef = useRef(new Map());
|
|
19
|
+
const touchModeRef = useRef(null);
|
|
20
|
+
const pinchRef = useRef(null);
|
|
21
|
+
const beginPinch = (svg, ids) => {
|
|
22
|
+
const touches = touchPointersRef.current;
|
|
23
|
+
const first = touches.get(ids[0]);
|
|
24
|
+
const second = touches.get(ids[1]);
|
|
25
|
+
if (!first || !second)
|
|
26
|
+
return;
|
|
27
|
+
const midpoint = [(first.x + second.x) / 2, (first.y + second.y) / 2];
|
|
28
|
+
const point = pointInSvg(svg, midpoint[0], midpoint[1]);
|
|
29
|
+
if (!point)
|
|
30
|
+
return;
|
|
31
|
+
const transform = zoomTransform(svg);
|
|
32
|
+
pinchRef.current = {
|
|
33
|
+
ids,
|
|
34
|
+
distance: Math.max(1, Math.hypot(second.x - first.x, second.y - first.y)),
|
|
35
|
+
anchor: transform.invert(point),
|
|
36
|
+
scale: transform.k,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const movePinch = (svg) => {
|
|
40
|
+
const gesture = pinchRef.current;
|
|
41
|
+
const behavior = zoomRef.current;
|
|
42
|
+
if (!gesture || !behavior)
|
|
43
|
+
return;
|
|
44
|
+
const first = touchPointersRef.current.get(gesture.ids[0]);
|
|
45
|
+
const second = touchPointersRef.current.get(gesture.ids[1]);
|
|
46
|
+
if (!first || !second)
|
|
47
|
+
return;
|
|
48
|
+
const midpoint = [(first.x + second.x) / 2, (first.y + second.y) / 2];
|
|
49
|
+
const point = pointInSvg(svg, midpoint[0], midpoint[1]);
|
|
50
|
+
if (!point)
|
|
51
|
+
return;
|
|
52
|
+
const distance = Math.hypot(second.x - first.x, second.y - first.y);
|
|
53
|
+
const scale = Math.max(ZOOM_MIN, Math.min(ZOOM_MAX, (gesture.scale * distance) / gesture.distance));
|
|
54
|
+
let next = zoomIdentity
|
|
55
|
+
.translate(point[0] - gesture.anchor[0] * scale, point[1] - gesture.anchor[1] * scale)
|
|
56
|
+
.scale(scale);
|
|
57
|
+
next = behavior.constrain()(next, [
|
|
58
|
+
[0, 0],
|
|
59
|
+
[SIZE, SIZE],
|
|
60
|
+
], [
|
|
61
|
+
[-SIZE, -SIZE],
|
|
62
|
+
[SIZE * 2, SIZE * 2],
|
|
63
|
+
]);
|
|
64
|
+
select(svg).call(behavior.transform, next);
|
|
65
|
+
};
|
|
66
|
+
const handlePointerDown = (event) => {
|
|
67
|
+
cancelRotation();
|
|
68
|
+
if (event.pointerType === "touch") {
|
|
69
|
+
const touches = touchPointersRef.current;
|
|
70
|
+
touches.set(event.pointerId, { x: event.clientX, y: event.clientY });
|
|
71
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
72
|
+
if (touches.size === 1) {
|
|
73
|
+
touchModeRef.current = "rotate";
|
|
74
|
+
dragRef.current = {
|
|
75
|
+
pointerId: event.pointerId,
|
|
76
|
+
pointerType: "touch",
|
|
77
|
+
x: event.clientX,
|
|
78
|
+
y: event.clientY,
|
|
79
|
+
rotation: rotationRef.current,
|
|
80
|
+
moved: false,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
touchModeRef.current = "pinch";
|
|
85
|
+
dragRef.current = null;
|
|
86
|
+
const ids = [...touches.keys()].slice(0, 2);
|
|
87
|
+
beginPinch(event.currentTarget, ids);
|
|
88
|
+
}
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (event.button !== 0)
|
|
92
|
+
return;
|
|
93
|
+
dragRef.current = {
|
|
94
|
+
pointerId: event.pointerId,
|
|
95
|
+
pointerType: event.pointerType,
|
|
96
|
+
x: event.clientX,
|
|
97
|
+
y: event.clientY,
|
|
98
|
+
rotation: rotationRef.current,
|
|
99
|
+
moved: false,
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
const handlePointerMove = (event) => {
|
|
103
|
+
if (event.pointerType === "touch") {
|
|
104
|
+
const touches = touchPointersRef.current;
|
|
105
|
+
if (!touches.has(event.pointerId))
|
|
106
|
+
return;
|
|
107
|
+
touches.set(event.pointerId, { x: event.clientX, y: event.clientY });
|
|
108
|
+
if (touchModeRef.current === "pinch") {
|
|
109
|
+
movePinch(event.currentTarget);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else if (event.buttons === 0 && dragRef.current?.pointerType === "mouse") {
|
|
114
|
+
const drag = dragRef.current;
|
|
115
|
+
if (event.currentTarget.hasPointerCapture(drag.pointerId))
|
|
116
|
+
event.currentTarget.releasePointerCapture(drag.pointerId);
|
|
117
|
+
dragRef.current = null;
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const drag = dragRef.current;
|
|
121
|
+
if (!drag || drag.pointerId !== event.pointerId)
|
|
122
|
+
return;
|
|
123
|
+
const dx = event.clientX - drag.x;
|
|
124
|
+
const dy = event.clientY - drag.y;
|
|
125
|
+
if (!drag.moved && Math.abs(dx) + Math.abs(dy) <= 5)
|
|
126
|
+
return;
|
|
127
|
+
drag.moved = true;
|
|
128
|
+
if (!event.currentTarget.hasPointerCapture(event.pointerId))
|
|
129
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
130
|
+
setHoveredCountry(null);
|
|
131
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
132
|
+
if (!rect.width)
|
|
133
|
+
return;
|
|
134
|
+
const sensitivity = ((SIZE / rect.width) * 0.25) / zoomScale;
|
|
135
|
+
setRotation([
|
|
136
|
+
drag.rotation[0] + dx * sensitivity,
|
|
137
|
+
Math.max(-85, Math.min(85, drag.rotation[1] - dy * sensitivity)),
|
|
138
|
+
]);
|
|
139
|
+
};
|
|
140
|
+
const handlePointerUp = (event) => {
|
|
141
|
+
const drag = dragRef.current?.pointerId === event.pointerId ? dragRef.current : null;
|
|
142
|
+
if (event.currentTarget.hasPointerCapture(event.pointerId))
|
|
143
|
+
event.currentTarget.releasePointerCapture(event.pointerId);
|
|
144
|
+
if (drag?.moved || (event.pointerType === "touch" && touchModeRef.current === "pinch")) {
|
|
145
|
+
setPointerClickSuppressed(true);
|
|
146
|
+
}
|
|
147
|
+
if (event.pointerType === "touch") {
|
|
148
|
+
const touches = touchPointersRef.current;
|
|
149
|
+
touches.delete(event.pointerId);
|
|
150
|
+
if (touches.size === 0) {
|
|
151
|
+
touchModeRef.current = null;
|
|
152
|
+
pinchRef.current = null;
|
|
153
|
+
dragRef.current = null;
|
|
154
|
+
}
|
|
155
|
+
else if (touchModeRef.current === "pinch") {
|
|
156
|
+
dragRef.current = null;
|
|
157
|
+
const ids = [...touches.keys()].slice(0, 2);
|
|
158
|
+
if (ids.length === 2)
|
|
159
|
+
beginPinch(event.currentTarget, ids);
|
|
160
|
+
else
|
|
161
|
+
pinchRef.current = null;
|
|
162
|
+
}
|
|
163
|
+
else if (drag) {
|
|
164
|
+
dragRef.current = null;
|
|
165
|
+
}
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
if (drag)
|
|
169
|
+
dragRef.current = null;
|
|
170
|
+
};
|
|
171
|
+
const handlePointerCancel = (event) => {
|
|
172
|
+
if (event.pointerType === "touch") {
|
|
173
|
+
touchPointersRef.current.clear();
|
|
174
|
+
touchModeRef.current = null;
|
|
175
|
+
pinchRef.current = null;
|
|
176
|
+
setPointerClickSuppressed(true);
|
|
177
|
+
}
|
|
178
|
+
if (dragRef.current?.pointerId === event.pointerId)
|
|
179
|
+
dragRef.current = null;
|
|
180
|
+
};
|
|
181
|
+
return {
|
|
182
|
+
handlers: {
|
|
183
|
+
onPointerDown: handlePointerDown,
|
|
184
|
+
onPointerMove: handlePointerMove,
|
|
185
|
+
onPointerUp: handlePointerUp,
|
|
186
|
+
onPointerCancel: handlePointerCancel,
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=use-svg-globe-gestures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-svg-globe-gestures.js","sourceRoot":"","sources":["../../src/globe/use-svg-globe-gestures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { FocusEventHandler, KeyboardEventHandler, MouseEventHandler, PointerEventHandler } from "react";
|
|
2
|
+
interface UseSvgGlobeItemInteractionsOptions {
|
|
3
|
+
reset: () => void;
|
|
4
|
+
onCountryClick?: (code: string) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function useSvgGlobeItemInteractions({ reset, onCountryClick, }: UseSvgGlobeItemInteractionsOptions): {
|
|
7
|
+
hoveredCountry: string | null;
|
|
8
|
+
setHoveredCountry: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
9
|
+
setPointerClickSuppressed: (suppressed: boolean) => void;
|
|
10
|
+
handlers: {
|
|
11
|
+
onKeyDown: KeyboardEventHandler<SVGSVGElement>;
|
|
12
|
+
onClick: MouseEventHandler<SVGSVGElement>;
|
|
13
|
+
onPointerOver: PointerEventHandler<SVGSVGElement>;
|
|
14
|
+
onPointerOut: PointerEventHandler<SVGSVGElement>;
|
|
15
|
+
onFocus: FocusEventHandler<SVGSVGElement>;
|
|
16
|
+
onBlur: FocusEventHandler<SVGSVGElement>;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=use-svg-globe-item-interactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-svg-globe-item-interactions.d.ts","sourceRoot":"","sources":["../../src/globe/use-svg-globe-item-interactions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,OAAO,CAAC;AAEf,UAAU,kCAAkC;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAQD,wBAAgB,2BAA2B,CAAC,EAC1C,KAAK,EACL,cAAc,GACf,EAAE,kCAAkC;;;4CA0BY,OAAO;;;;;;;;;EAiCvD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { useRef, useState } from "react";
|
|
2
|
+
function itemCode(target) {
|
|
3
|
+
return target instanceof SVGElement
|
|
4
|
+
? target.closest("[data-country-code]")?.dataset.countryCode
|
|
5
|
+
: undefined;
|
|
6
|
+
}
|
|
7
|
+
export function useSvgGlobeItemInteractions({ reset, onCountryClick, }) {
|
|
8
|
+
const [hoveredCountry, setHoveredCountry] = useState(null);
|
|
9
|
+
const suppressClickRef = useRef(false);
|
|
10
|
+
const handleKeyDown = (event) => {
|
|
11
|
+
if (event.key === "Escape") {
|
|
12
|
+
reset();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (event.key !== "Enter" && event.key !== " ")
|
|
16
|
+
return;
|
|
17
|
+
const code = itemCode(event.target);
|
|
18
|
+
if (!code)
|
|
19
|
+
return;
|
|
20
|
+
event.preventDefault();
|
|
21
|
+
onCountryClick?.(code.toUpperCase());
|
|
22
|
+
};
|
|
23
|
+
const handleClick = (event) => {
|
|
24
|
+
if (suppressClickRef.current) {
|
|
25
|
+
suppressClickRef.current = false;
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const code = itemCode(event.target);
|
|
30
|
+
if (code)
|
|
31
|
+
onCountryClick?.(code.toUpperCase());
|
|
32
|
+
};
|
|
33
|
+
const setPointerClickSuppressed = (suppressed) => {
|
|
34
|
+
suppressClickRef.current = suppressed;
|
|
35
|
+
if (suppressed)
|
|
36
|
+
window.setTimeout(() => (suppressClickRef.current = false), 100);
|
|
37
|
+
};
|
|
38
|
+
const updatePointerOver = (event) => {
|
|
39
|
+
setHoveredCountry(itemCode(event.target) ?? null);
|
|
40
|
+
};
|
|
41
|
+
const updatePointerOut = (event) => {
|
|
42
|
+
if (itemCode(event.target) !== itemCode(event.relatedTarget))
|
|
43
|
+
setHoveredCountry(itemCode(event.relatedTarget) ?? null);
|
|
44
|
+
};
|
|
45
|
+
const updateFocus = (event) => {
|
|
46
|
+
setHoveredCountry(itemCode(event.target) ?? null);
|
|
47
|
+
};
|
|
48
|
+
const updateBlur = (event) => {
|
|
49
|
+
if (itemCode(event.target) !== itemCode(event.relatedTarget))
|
|
50
|
+
setHoveredCountry(itemCode(event.relatedTarget) ?? null);
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
hoveredCountry,
|
|
54
|
+
setHoveredCountry,
|
|
55
|
+
setPointerClickSuppressed,
|
|
56
|
+
handlers: {
|
|
57
|
+
onKeyDown: handleKeyDown,
|
|
58
|
+
onClick: handleClick,
|
|
59
|
+
onPointerOver: updatePointerOver,
|
|
60
|
+
onPointerOut: updatePointerOut,
|
|
61
|
+
onFocus: updateFocus,
|
|
62
|
+
onBlur: updateBlur,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=use-svg-globe-item-interactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-svg-globe-item-interactions.js","sourceRoot":"","sources":["../../src/globe/use-svg-globe-item-interactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ZoomBehavior, type ZoomTransform } from "d3-zoom";
|
|
2
|
+
interface UseSvgGlobeNavigationOptions {
|
|
3
|
+
svgRef: React.RefObject<SVGSVGElement | null>;
|
|
4
|
+
selectedCountryCode: string | null;
|
|
5
|
+
}
|
|
6
|
+
export declare function useSvgGlobeNavigation({ svgRef, selectedCountryCode, }: UseSvgGlobeNavigationOptions): {
|
|
7
|
+
transform: ZoomTransform;
|
|
8
|
+
rotation: [number, number];
|
|
9
|
+
setRotation: import("react").Dispatch<import("react").SetStateAction<[number, number]>>;
|
|
10
|
+
rotationRef: import("react").RefObject<[number, number]>;
|
|
11
|
+
zoomRef: import("react").RefObject<ZoomBehavior<SVGSVGElement, unknown> | null>;
|
|
12
|
+
cancelRotation: () => void;
|
|
13
|
+
reset: () => void;
|
|
14
|
+
zoomBy: (factor: number) => void;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=use-svg-globe-navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-svg-globe-navigation.d.ts","sourceRoot":"","sources":["../../src/globe/use-svg-globe-navigation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAwBpF,UAAU,4BAA4B;IACpC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC9C,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,mBAAmB,GACpB,EAAE,4BAA4B;;;;;;;;qBAsFlB,MAAM;EASlB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState, useSyncExternalStore } from "react";
|
|
2
|
+
import { select } from "d3-selection";
|
|
3
|
+
import { zoom, zoomIdentity } from "d3-zoom";
|
|
4
|
+
import { countryLocation } from "./svg-globe-geo.js";
|
|
5
|
+
const SIZE = 520;
|
|
6
|
+
const INITIAL_ROTATION = [-15, -45];
|
|
7
|
+
const ZOOM_MIN = 1;
|
|
8
|
+
const ZOOM_MAX = 4;
|
|
9
|
+
const REDUCED_MOTION_QUERY = "(prefers-reduced-motion: reduce)";
|
|
10
|
+
function subscribeReducedMotion(onChange) {
|
|
11
|
+
if (typeof window.matchMedia !== "function")
|
|
12
|
+
return () => { };
|
|
13
|
+
const media = window.matchMedia(REDUCED_MOTION_QUERY);
|
|
14
|
+
media.addEventListener("change", onChange);
|
|
15
|
+
return () => media.removeEventListener("change", onChange);
|
|
16
|
+
}
|
|
17
|
+
function getReducedMotion() {
|
|
18
|
+
return typeof window.matchMedia === "function" && window.matchMedia(REDUCED_MOTION_QUERY).matches;
|
|
19
|
+
}
|
|
20
|
+
function getServerReducedMotion() {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
export function useSvgGlobeNavigation({ svgRef, selectedCountryCode, }) {
|
|
24
|
+
const zoomRef = useRef(null);
|
|
25
|
+
const rotationRef = useRef(INITIAL_ROTATION);
|
|
26
|
+
const animationRef = useRef(0);
|
|
27
|
+
const [transform, setTransform] = useState(zoomIdentity);
|
|
28
|
+
const [rotation, setRotation] = useState(INITIAL_ROTATION);
|
|
29
|
+
const reducedMotion = useSyncExternalStore(subscribeReducedMotion, getReducedMotion, getServerReducedMotion);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
const svg = svgRef.current;
|
|
32
|
+
if (!svg)
|
|
33
|
+
return;
|
|
34
|
+
const behavior = zoom()
|
|
35
|
+
.scaleExtent([ZOOM_MIN, ZOOM_MAX])
|
|
36
|
+
.extent([
|
|
37
|
+
[0, 0],
|
|
38
|
+
[SIZE, SIZE],
|
|
39
|
+
])
|
|
40
|
+
.translateExtent([
|
|
41
|
+
[-SIZE, -SIZE],
|
|
42
|
+
[SIZE * 2, SIZE * 2],
|
|
43
|
+
])
|
|
44
|
+
.filter((event) => event.type === "wheel")
|
|
45
|
+
.on("zoom", (event) => setTransform(event.transform));
|
|
46
|
+
zoomRef.current = behavior;
|
|
47
|
+
select(svg).call(behavior).on("dblclick.zoom", null);
|
|
48
|
+
return () => {
|
|
49
|
+
select(svg).on(".zoom", null);
|
|
50
|
+
zoomRef.current = null;
|
|
51
|
+
};
|
|
52
|
+
}, [svgRef]);
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
rotationRef.current = rotation;
|
|
55
|
+
}, [rotation]);
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
cancelAnimationFrame(animationRef.current);
|
|
58
|
+
const svg = svgRef.current;
|
|
59
|
+
const behavior = zoomRef.current;
|
|
60
|
+
if (svg && behavior)
|
|
61
|
+
select(svg).call(behavior.transform, zoomIdentity);
|
|
62
|
+
const location = selectedCountryCode ? countryLocation(selectedCountryCode) : null;
|
|
63
|
+
const to = location ? [-location[0], -location[1]] : INITIAL_ROTATION;
|
|
64
|
+
const from = rotationRef.current;
|
|
65
|
+
const dx = ((to[0] - from[0] + 540) % 360) - 180;
|
|
66
|
+
if (reducedMotion || (Math.abs(dx) < 0.001 && Math.abs(to[1] - from[1]) < 0.001)) {
|
|
67
|
+
rotationRef.current = to;
|
|
68
|
+
// eslint-disable-next-line @eslint-react/set-state-in-effect, react-hooks/set-state-in-effect -- controlled selection changes must align the camera immediately for reduced-motion users
|
|
69
|
+
setRotation(to);
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
const start = performance.now();
|
|
73
|
+
const step = (time) => {
|
|
74
|
+
const progress = Math.min(1, (time - start) / 550);
|
|
75
|
+
const eased = 1 - (1 - progress) ** 3;
|
|
76
|
+
const next = [from[0] + dx * eased, from[1] + (to[1] - from[1]) * eased];
|
|
77
|
+
rotationRef.current = next;
|
|
78
|
+
setRotation(next);
|
|
79
|
+
if (progress < 1)
|
|
80
|
+
animationRef.current = requestAnimationFrame(step);
|
|
81
|
+
};
|
|
82
|
+
animationRef.current = requestAnimationFrame(step);
|
|
83
|
+
return () => cancelAnimationFrame(animationRef.current);
|
|
84
|
+
}, [reducedMotion, selectedCountryCode, svgRef]);
|
|
85
|
+
useEffect(() => () => cancelAnimationFrame(animationRef.current), []);
|
|
86
|
+
const cancelRotation = useCallback(() => {
|
|
87
|
+
cancelAnimationFrame(animationRef.current);
|
|
88
|
+
animationRef.current = 0;
|
|
89
|
+
}, []);
|
|
90
|
+
const reset = useCallback(() => {
|
|
91
|
+
cancelRotation();
|
|
92
|
+
const svg = svgRef.current;
|
|
93
|
+
const behavior = zoomRef.current;
|
|
94
|
+
if (svg && behavior)
|
|
95
|
+
select(svg).call(behavior.transform, zoomIdentity);
|
|
96
|
+
rotationRef.current = INITIAL_ROTATION;
|
|
97
|
+
setRotation(INITIAL_ROTATION);
|
|
98
|
+
}, [cancelRotation, svgRef]);
|
|
99
|
+
const zoomBy = useCallback((factor) => {
|
|
100
|
+
const svg = svgRef.current;
|
|
101
|
+
const behavior = zoomRef.current;
|
|
102
|
+
if (svg && behavior)
|
|
103
|
+
select(svg).call(behavior.scaleBy, factor, [SIZE / 2, SIZE / 2]);
|
|
104
|
+
}, [svgRef]);
|
|
105
|
+
return { transform, rotation, setRotation, rotationRef, zoomRef, cancelRotation, reset, zoomBy };
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=use-svg-globe-navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-svg-globe-navigation.js","sourceRoot":"","sources":["../../src/globe/use-svg-globe-navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"negotiation-flow-timeline.d.ts","sourceRoot":"","sources":["../../src/offer/negotiation-flow-timeline.tsx"],"names":[],"mappings":"AACA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAY5D,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"negotiation-flow-timeline.d.ts","sourceRoot":"","sources":["../../src/offer/negotiation-flow-timeline.tsx"],"names":[],"mappings":"AACA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAY5D,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAqBlE,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,eAAe,CAAC;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;IACjE,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACzD,gFAAgF;IAChF,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0RD,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,kBAAkB,EAClB,YAAgB,EAChB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,MAAM,EAAE,cAAc,EACtB,YAAY,EACZ,SAAS,GACV,EAAE,4BAA4B,2CA8D9B"}
|
|
@@ -77,7 +77,7 @@ function AttachmentBadge({ event, labels, }) {
|
|
|
77
77
|
return null;
|
|
78
78
|
return (_jsxs(Badge, { variant: "ghost", className: "mt-2 w-full min-w-0 max-w-full shrink px-0 whitespace-normal wrap-anywhere text-left text-xs @2xs:w-fit @2xs:px-2.5", children: [_jsx(FileText, { "aria-hidden": true, className: "size-3" }), labels.attachmentCount(event.attachmentCount, event.firstAttachmentName)] }));
|
|
79
79
|
}
|
|
80
|
-
function FlowItem({ ref, event, viewerAdvantage, tabIndex = -1, onFocus, isNew, labels, identity, }) {
|
|
80
|
+
function FlowItem({ ref, event, viewerAdvantage, tabIndex = -1, onFocus, isNew, labels, identity, hasNextEvent, }) {
|
|
81
81
|
const createdAt = useMemo(() => new Date(event.createdAt), [event.createdAt]);
|
|
82
82
|
const isProducer = event.actorRole === "producer";
|
|
83
83
|
const metadata = eventMetadata(event);
|
|
@@ -88,14 +88,17 @@ function FlowItem({ ref, event, viewerAdvantage, tabIndex = -1, onFocus, isNew,
|
|
|
88
88
|
// transition plays. Reduced-motion collapses the duration globally.
|
|
89
89
|
const [entered, setEntered] = useState(!isNew);
|
|
90
90
|
useEffect(() => {
|
|
91
|
-
if (
|
|
91
|
+
if (entered)
|
|
92
92
|
return;
|
|
93
93
|
const id = requestAnimationFrame(() => setEntered(true));
|
|
94
94
|
return () => cancelAnimationFrame(id);
|
|
95
|
-
}, [
|
|
95
|
+
}, [entered]);
|
|
96
96
|
return (_jsxs("li", { ref: ref, role: "listitem", tabIndex: tabIndex, onFocus: onFocus, "aria-label": labels.eventAccessibleName(metadata), "data-flow-side": side, "data-offer-timeline-event": true, "data-entered": entered ? "true" : "false", className: cn("relative grid gap-3 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring", "@md:grid-cols-[minmax(0,1fr)_3.5rem_minmax(0,1fr)]", "transition-[opacity,transform] duration-[var(--duration-standard)] ease-[var(--ease-decel)]", entered ? "translate-y-0 opacity-100" : "translate-y-1 opacity-0"), children: [_jsxs("div", { className: cn("min-w-0 rounded-xl border border-border/60 bg-card p-1 shadow-xs @2xs:p-3", "@md:max-w-sm", isProducer
|
|
97
97
|
? "@md:col-start-1 @md:justify-self-end @md:text-right"
|
|
98
|
-
: "@md:col-start-3 @md:justify-self-start @md:text-left", "col-start-1 @xs:ml-14 @md:ml-0"), children: [_jsx("div", { className: "min-w-0 wrap-anywhere text-xs text-muted-foreground @md:hidden", children: labels.formatTimestamp(createdAt) }), _jsxs("div", { className: cn("flex min-w-0 flex-col items-start gap-1 @xs:flex-row @xs:items-center @xs:gap-2", isProducer && "@md:flex-row-reverse"), children: [_jsx(PartyMark, { role: event.actorRole, labels: labels, identity: identity }), _jsx("div", { className: "min-w-0 wrap-anywhere text-sm/6 font-semibold", children: labels.eventTitle(metadata) })] }), identity && (_jsx("div", { "data-party-identity": true, className: "mt-0.5 min-w-0 wrap-anywhere text-xs/5 text-muted-foreground", children: identityLabel(identity) })), body && (_jsx("p", { className: "mt-1 min-w-0 wrap-anywhere text-sm/6 text-muted-foreground", children: body })), _jsxs("div", { className: cn("flex min-w-0 flex-col", isProducer ? "@md:items-end" : "@md:items-start"), children: [_jsx(TermsBadge, { event: event, viewerAdvantage: viewerAdvantage, labels: labels }), _jsx(AttachmentBadge, { event: event, labels: labels })] })] }), _jsxs("div", { className: "absolute left-3 top-0 hidden h-full w-10 justify-center @xs:flex @md:static @md:col-start-2 @md:row-start-1 @md:w-auto", children: [_jsx("div", {
|
|
98
|
+
: "@md:col-start-3 @md:justify-self-start @md:text-left", "col-start-1 @xs:ml-14 @md:ml-0"), children: [_jsx("div", { className: "min-w-0 wrap-anywhere text-xs text-muted-foreground @md:hidden", children: labels.formatTimestamp(createdAt) }), _jsxs("div", { className: cn("flex min-w-0 flex-col items-start gap-1 @xs:flex-row @xs:items-center @xs:gap-2", isProducer && "@md:flex-row-reverse"), children: [_jsx(PartyMark, { role: event.actorRole, labels: labels, identity: identity }), _jsx("div", { className: "min-w-0 wrap-anywhere text-sm/6 font-semibold", children: labels.eventTitle(metadata) })] }), identity && (_jsx("div", { "data-party-identity": true, className: "mt-0.5 min-w-0 wrap-anywhere text-xs/5 text-muted-foreground", children: identityLabel(identity) })), body && (_jsx("p", { className: "mt-1 min-w-0 wrap-anywhere text-sm/6 text-muted-foreground", children: body })), _jsxs("div", { className: cn("flex min-w-0 flex-col", isProducer ? "@md:items-end" : "@md:items-start"), children: [_jsx(TermsBadge, { event: event, viewerAdvantage: viewerAdvantage, labels: labels }), _jsx(AttachmentBadge, { event: event, labels: labels })] })] }), _jsxs("div", { "data-negotiation-flow-rail": true, className: "absolute left-3 top-0 hidden h-full w-10 justify-center @xs:flex @md:static @md:col-start-2 @md:row-start-1 @md:w-auto", children: [hasNextEvent && (_jsx("div", { "data-negotiation-flow-connector": true,
|
|
99
|
+
// mt-2 + half of size-10 puts the marker center 28px from the row top.
|
|
100
|
+
// The 44px tail is gap-4 plus that same 28px center offset.
|
|
101
|
+
className: "absolute -bottom-11 left-5 top-7 z-0 w-px -translate-x-1/2 bg-border @md:left-1/2", "aria-hidden": true })), _jsx("div", { "data-negotiation-flow-marker": true, className: cn("relative z-10 mt-2 flex size-10 items-center justify-center rounded-full border-2 bg-card shadow-xs", isProducer
|
|
99
102
|
? "border-[var(--tone-success-border)] text-[var(--tone-success-fg)]"
|
|
100
103
|
: "border-[var(--tone-info-border)] text-[var(--tone-info-fg)]"), "aria-hidden": true, children: _jsx(EventIcon, { kind: event.kind }) })] }), _jsx("div", { className: cn("hidden self-start pt-4 text-xs text-muted-foreground @md:block", isProducer ? "@md:col-start-3 @md:text-left" : "@md:col-start-1 @md:text-right"), children: labels.formatTimestamp(createdAt) })] }));
|
|
101
104
|
}
|
|
@@ -132,7 +135,7 @@ export function NegotiationFlowTimeline({ events, viewerAdvantageFor, focusedInd
|
|
|
132
135
|
return next;
|
|
133
136
|
});
|
|
134
137
|
}, [newIds]);
|
|
135
|
-
return (_jsx("ol", { role: "list", "aria-label": labels.timelineAccessibleName, "data-negotiation-flow-timeline": "true", className: cn("@container relative flex min-w-0 flex-col gap-4", className), onKeyDown: onKeyDown, children: events.map((event, index) => (_jsx(FlowItem, { ref: (node) => onEventRef?.(index, node), event: event, viewerAdvantage: viewerAdvantageFor?.(event) ?? "neutral", tabIndex: focusedIndex === index ? 0 : -1, onFocus: () => onEventFocus?.(index), isNew: newIds.has(event.id), labels: labels, identity: resolveParticipant(participants, {
|
|
138
|
+
return (_jsx("ol", { role: "list", "aria-label": labels.timelineAccessibleName, "data-negotiation-flow-timeline": "true", className: cn("@container relative flex min-w-0 flex-col gap-4", className), onKeyDown: onKeyDown, children: events.map((event, index) => (_jsx(FlowItem, { ref: (node) => onEventRef?.(index, node), event: event, viewerAdvantage: viewerAdvantageFor?.(event) ?? "neutral", tabIndex: focusedIndex === index ? 0 : -1, onFocus: () => onEventFocus?.(index), isNew: newIds.has(event.id), hasNextEvent: index < events.length - 1, labels: labels, identity: resolveParticipant(participants, {
|
|
136
139
|
userId: event.actorUserId,
|
|
137
140
|
orgId: event.actorOrgId,
|
|
138
141
|
role: event.actorRole,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"negotiation-flow-timeline.js","sourceRoot":"","sources":["../../src/offer/negotiation-flow-timeline.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAc,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,WAAW,EACX,KAAK,EACL,QAAQ,EACR,aAAa,EACb,SAAS,EACT,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,wBAAwB,GAGzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EACL,kBAAkB,GAGnB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"negotiation-flow-timeline.js","sourceRoot":"","sources":["../../src/offer/negotiation-flow-timeline.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-editor-surface.d.ts","sourceRoot":"","sources":["../../src/product-editor/product-editor-surface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,eAAe,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlD,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,wBAAwB,EAAE,SAAS,gBAAgB,EAO/D,CAAC;AAoBF,UAAU,yBAAyB;IACjC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACvD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"product-editor-surface.d.ts","sourceRoot":"","sources":["../../src/product-editor/product-editor-surface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,IAAI,eAAe,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlD,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,wBAAwB,EAAE,SAAS,gBAAgB,EAO/D,CAAC;AAoBF,UAAU,yBAAyB;IACjC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAChD,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACvD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAChE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,IAAI,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,2CAsL3B"}
|
|
@@ -60,8 +60,10 @@ const TAB_I18N_KEYS = {
|
|
|
60
60
|
export function ProductEditorSurface({ editorProps, form, orderedTabs, renderedTab, fieldIdPrefix, isDirty, isEditorBusy, saveFailureErrors, saveFailureAlertRef, editorRootRef, tabsListRef, elabelTabRef, onFocusCapture, onTabChange, onNavigateToChemistry, onFocusInvalidField, onSave, onDiscard, }) {
|
|
61
61
|
const { mode, locale, variantId, beverageId, showBeverageFields, requireVintage = false, autoFocusVintage = false, referenceData, classifications, showComposition = false, showProductionVolume = false, imageController, attachments, certificates, awards, certificateRecords, chemistrySection, labelData, onLabelSaveStateChange, qrSection, sensorySchema, sensorySchemaLoading, status, serverError, features, t, className, } = editorProps;
|
|
62
62
|
const tr = t ?? ((_key, fallback) => fallback ?? _key);
|
|
63
|
-
return (_jsxs("div", { ref: editorRootRef, tabIndex: -1, onFocusCapture: onFocusCapture, className: cn("flex min-w-0 flex-col gap-6 outline-hidden", className), children: [_jsx(ProductEditorValidationSummary, { form: form, sensorySchema: sensorySchema, fieldIdPrefix: fieldIdPrefix, onFocusInvalidField: onFocusInvalidField, t: t }), _jsx("fieldset", { disabled: isEditorBusy, className: "contents", children: _jsx("div", { className: "min-w-0", children: _jsxs(Tabs, { value: renderedTab, onValueChange: onTabChange, children: [_jsx(TabsList, { ref: tabsListRef, className: "max-w-full snap-x justify-start overflow-x-auto overscroll-x-contain", children: orderedTabs.map((tab) => (_jsx(TabsTrigger, { value: tab, className: "snap-start", children: tr(TAB_I18N_KEYS[tab], TAB_LABELS[tab]) }, tab))) }), orderedTabs.length > 3 && (_jsxs("p", { className: "mt-2 flex items-center gap-1.5 text-xs text-muted-foreground sm:hidden", children: [_jsx(MoveHorizontal, { "aria-hidden": "true", className: "size-4 shrink-0" }), tr("productEditor.tabs.scrollHint", "Swipe to view more sections")] })), orderedTabs.includes("essentials") && (
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
return (_jsxs("div", { ref: editorRootRef, tabIndex: -1, onFocusCapture: onFocusCapture, className: cn("flex min-w-0 flex-col gap-6 outline-hidden", className), children: [_jsx(ProductEditorValidationSummary, { form: form, sensorySchema: sensorySchema, fieldIdPrefix: fieldIdPrefix, onFocusInvalidField: onFocusInvalidField, t: t }), _jsx("fieldset", { disabled: isEditorBusy, className: "contents", children: _jsx("div", { className: "min-w-0", children: _jsxs(Tabs, { value: renderedTab, onValueChange: onTabChange, children: [_jsx(TabsList, { ref: tabsListRef, className: "max-w-full snap-x justify-start overflow-x-auto overscroll-x-contain", children: orderedTabs.map((tab) => (_jsx(TabsTrigger, { value: tab, className: "snap-start", children: tr(TAB_I18N_KEYS[tab], TAB_LABELS[tab]) }, tab))) }), orderedTabs.length > 3 && (_jsxs("p", { className: "mt-2 flex items-center gap-1.5 text-xs text-muted-foreground sm:hidden", children: [_jsx(MoveHorizontal, { "aria-hidden": "true", className: "size-4 shrink-0" }), tr("productEditor.tabs.scrollHint", "Swipe to view more sections")] })), orderedTabs.includes("essentials") && (_jsxs(TabsContent, { value: "essentials", className: "mt-6", children: [_jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.essentials, TAB_LABELS.essentials) }), _jsx(ProductEssentialsTab, { form: form, locale: locale, beverageId: beverageId, showBeverageFields: showBeverageFields, requireVintage: requireVintage, autoFocusVintage: autoFocusVintage && renderedTab === "essentials", referenceData: referenceData, classifications: classifications, compositionSchema: showComposition ? sensorySchema?.sections?.composition : undefined, showProductionVolume: showProductionVolume, fieldIdPrefix: fieldIdPrefix, t: t })] })), orderedTabs.includes("gallery") && (_jsxs(TabsContent, { value: "gallery", className: "mt-6", children: [_jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.gallery, TAB_LABELS.gallery) }), _jsx(ProductGalleryTab, { variantId: variantId, mode: mode, imageController: imageController, t: t })] })), orderedTabs.includes("sensory") && (_jsxs(TabsContent, { value: "sensory", className: "mt-6", children: [_jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.sensory, TAB_LABELS.sensory) }), _jsx(ProductSensoryTab, { form: form, sensorySchema: sensorySchema, sensorySchemaLoading: sensorySchemaLoading, fieldIdPrefix: fieldIdPrefix, t: t })] })), orderedTabs.includes("resources") && (_jsxs(TabsContent, { value: "resources", className: "mt-6", children: [_jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.resources, TAB_LABELS.resources) }), _jsx(ProductResourcesTab, { form: form, variantId: variantId, mode: mode, attachments: attachments, certificates: certificates, awards: awards, certificateRecords: certificateRecords, chemistrySection: chemistrySection, features: features, t: t })] })), orderedTabs.includes("e-label") && (_jsxs(TabsContent, { value: "e-label", forceMount: true, className: "mt-6 data-[state=inactive]:hidden", children: [_jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS["e-label"], TAB_LABELS["e-label"]) }), _jsx(ProductElabelTab, { ref: elabelTabRef, variantId: variantId, mode: mode, labelData: labelData, onSaveStateChange: onLabelSaveStateChange, qrSection: qrSection, onNavigateToChemistry: orderedTabs.includes("resources") && chemistrySection !== undefined
|
|
64
|
+
? onNavigateToChemistry
|
|
65
|
+
: undefined, t: t })] })), orderedTabs.includes("status") && (_jsxs(TabsContent, { value: "status", className: "mt-6", children: [_jsx("h2", { className: "sr-only", children: tr(TAB_I18N_KEYS.status, TAB_LABELS.status) }), _jsx(ProductStatusTab, { status: status, features: features, isDirty: isDirty, t: t })] }))] }) }) }), _jsx(ProductEditorSaveBar, { isDirty: isDirty, isSaving: isEditorBusy, serverError: serverError && !saveFailureErrors.includes(serverError)
|
|
66
|
+
? [serverError, ...saveFailureErrors]
|
|
67
|
+
: saveFailureErrors, serverErrorRef: saveFailureAlertRef, dismissFocusRef: editorRootRef, onSave: onSave, onDiscard: onDiscard, t: t })] }));
|
|
66
68
|
}
|
|
67
69
|
//# sourceMappingURL=product-editor-surface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-editor-surface.js","sourceRoot":"","sources":["../../src/product-editor/product-editor-surface.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"product-editor-surface.js","sourceRoot":"","sources":["../../src/product-editor/product-editor-surface.tsx"],"names":[],"mappings":"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"}
|