@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.
Files changed (76) hide show
  1. package/dist/agent/confirm-card.d.ts +9 -0
  2. package/dist/agent/confirm-card.d.ts.map +1 -1
  3. package/dist/agent/confirm-card.js +28 -2
  4. package/dist/agent/confirm-card.js.map +1 -1
  5. package/dist/agent/conversation.d.ts +10 -0
  6. package/dist/agent/conversation.d.ts.map +1 -1
  7. package/dist/agent/conversation.js +4 -4
  8. package/dist/agent/conversation.js.map +1 -1
  9. package/dist/agent/index.d.ts +1 -1
  10. package/dist/agent/index.d.ts.map +1 -1
  11. package/dist/agent/index.js.map +1 -1
  12. package/dist/agent/message.d.ts +4 -1
  13. package/dist/agent/message.d.ts.map +1 -1
  14. package/dist/agent/message.js +2 -2
  15. package/dist/agent/message.js.map +1 -1
  16. package/dist/agent/schema.d.ts +25 -0
  17. package/dist/agent/schema.d.ts.map +1 -1
  18. package/dist/agent/schema.js +7 -0
  19. package/dist/agent/schema.js.map +1 -1
  20. package/dist/agent/states.d.ts +24 -1
  21. package/dist/agent/states.d.ts.map +1 -1
  22. package/dist/agent/states.js +35 -6
  23. package/dist/agent/states.js.map +1 -1
  24. package/dist/components/composition-editor.d.ts.map +1 -1
  25. package/dist/components/composition-editor.js +13 -13
  26. package/dist/components/composition-editor.js.map +1 -1
  27. package/dist/components/importer-picker-modal.js +5 -5
  28. package/dist/components/importer-picker-modal.js.map +1 -1
  29. package/dist/components/source-composite.d.ts.map +1 -1
  30. package/dist/components/source-composite.js +4 -3
  31. package/dist/components/source-composite.js.map +1 -1
  32. package/dist/globe/svg-globe-geo.d.ts +16 -0
  33. package/dist/globe/svg-globe-geo.d.ts.map +1 -0
  34. package/dist/globe/svg-globe-geo.js +48 -0
  35. package/dist/globe/svg-globe-geo.js.map +1 -0
  36. package/dist/globe/svg-globe-map-layer.d.ts +18 -0
  37. package/dist/globe/svg-globe-map-layer.d.ts.map +1 -0
  38. package/dist/globe/svg-globe-map-layer.js +47 -0
  39. package/dist/globe/svg-globe-map-layer.js.map +1 -0
  40. package/dist/globe/svg-globe-pin-layer.d.ts +17 -0
  41. package/dist/globe/svg-globe-pin-layer.d.ts.map +1 -0
  42. package/dist/globe/svg-globe-pin-layer.js +111 -0
  43. package/dist/globe/svg-globe-pin-layer.js.map +1 -0
  44. package/dist/globe/svg-globe-renderer.d.ts +3 -0
  45. package/dist/globe/svg-globe-renderer.d.ts.map +1 -0
  46. package/dist/globe/svg-globe-renderer.js +57 -0
  47. package/dist/globe/svg-globe-renderer.js.map +1 -0
  48. package/dist/globe/svg-globe.css +247 -0
  49. package/dist/globe/svg-globe.d.ts +46 -0
  50. package/dist/globe/svg-globe.d.ts.map +1 -0
  51. package/dist/globe/svg-globe.js +45 -0
  52. package/dist/globe/svg-globe.js.map +1 -0
  53. package/dist/globe/svg.d.ts +9 -0
  54. package/dist/globe/svg.d.ts.map +1 -0
  55. package/dist/globe/svg.js +6 -0
  56. package/dist/globe/svg.js.map +1 -0
  57. package/dist/globe/use-svg-globe-gestures.d.ts +21 -0
  58. package/dist/globe/use-svg-globe-gestures.d.ts.map +1 -0
  59. package/dist/globe/use-svg-globe-gestures.js +190 -0
  60. package/dist/globe/use-svg-globe-gestures.js.map +1 -0
  61. package/dist/globe/use-svg-globe-item-interactions.d.ts +20 -0
  62. package/dist/globe/use-svg-globe-item-interactions.d.ts.map +1 -0
  63. package/dist/globe/use-svg-globe-item-interactions.js +66 -0
  64. package/dist/globe/use-svg-globe-item-interactions.js.map +1 -0
  65. package/dist/globe/use-svg-globe-navigation.d.ts +17 -0
  66. package/dist/globe/use-svg-globe-navigation.d.ts.map +1 -0
  67. package/dist/globe/use-svg-globe-navigation.js +107 -0
  68. package/dist/globe/use-svg-globe-navigation.js.map +1 -0
  69. package/dist/offer/negotiation-flow-timeline.d.ts.map +1 -1
  70. package/dist/offer/negotiation-flow-timeline.js +8 -5
  71. package/dist/offer/negotiation-flow-timeline.js.map +1 -1
  72. package/dist/product-editor/product-editor-surface.d.ts.map +1 -1
  73. package/dist/product-editor/product-editor-surface.js +5 -3
  74. package/dist/product-editor/product-editor-surface.js.map +1 -1
  75. package/dist/product-editor/tabs/product-status-tab.js +4 -4
  76. 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;AAoBlE,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;AA6QD,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,2CA6D9B"}
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 (!isNew)
91
+ if (entered)
92
92
  return;
93
93
  const id = requestAnimationFrame(() => setEntered(true));
94
94
  return () => cancelAnimationFrame(id);
95
- }, [isNew]);
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", { className: "absolute bottom-0 top-0 w-px bg-border @md:left-1/2", "aria-hidden": true }), _jsx("div", { className: cn("relative z-10 mt-2 flex size-10 items-center justify-center rounded-full border-2 bg-card shadow-xs", isProducer
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":"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"}
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,2CA4K3B"}
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") && (_jsx(TabsContent, { value: "essentials", className: "mt-6", children: _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") && (_jsx(TabsContent, { value: "gallery", className: "mt-6", children: _jsx(ProductGalleryTab, { variantId: variantId, mode: mode, imageController: imageController, t: t }) })), orderedTabs.includes("sensory") && (_jsx(TabsContent, { value: "sensory", className: "mt-6", children: _jsx(ProductSensoryTab, { form: form, sensorySchema: sensorySchema, sensorySchemaLoading: sensorySchemaLoading, fieldIdPrefix: fieldIdPrefix, t: t }) })), orderedTabs.includes("resources") && (_jsx(TabsContent, { value: "resources", className: "mt-6", children: _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") && (_jsx(TabsContent, { value: "e-label", forceMount: true, className: "mt-6 data-[state=inactive]:hidden", children: _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") && (_jsx(TabsContent, { value: "status", className: "mt-6", children: _jsx(ProductStatusTab, { status: status, features: features, isDirty: isDirty, t: t }) }))] }) }) }), _jsx(ProductEditorSaveBar, { isDirty: isDirty, isSaving: isEditorBusy, serverError: serverError ? [serverError, ...saveFailureErrors] : saveFailureErrors, serverErrorRef: saveFailureAlertRef, dismissFocusRef: editorRootRef, onSave: onSave, onDiscard: onDiscard, t: t })] }));
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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"}