@preprio/prepr-nextjs 2.0.0-alpha.4 → 2.0.0-alpha.5
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 +144 -55
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +4 -188
- package/dist/react/index.d.ts +4 -188
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
package/dist/react/index.d.cts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import React__default, { ReactNode, Component } from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
3
2
|
|
|
4
3
|
type PreprSegment = {
|
|
5
4
|
_id: string;
|
|
@@ -19,7 +18,7 @@ interface PreprPreviewBarProviderProps {
|
|
|
19
18
|
props: PreprPreviewBarProps;
|
|
20
19
|
options?: PreprPreviewBarOptions;
|
|
21
20
|
}
|
|
22
|
-
declare const PreprPreviewBarProvider:
|
|
21
|
+
declare const PreprPreviewBarProvider: React.FC<PreprPreviewBarProviderProps>;
|
|
23
22
|
declare const usePreprPreviewBar: () => {
|
|
24
23
|
isPreviewMode: boolean;
|
|
25
24
|
activeSegment: string;
|
|
@@ -38,189 +37,6 @@ declare const usePreprPreviewBar: () => {
|
|
|
38
37
|
resetSelected: () => void;
|
|
39
38
|
};
|
|
40
39
|
|
|
41
|
-
declare function PreprPreviewBar():
|
|
40
|
+
declare function PreprPreviewBar(): React.JSX.Element;
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
segments: PreprSegment[];
|
|
45
|
-
selectedSegment: PreprSegment;
|
|
46
|
-
setSelectedSegment: (segment: PreprSegment) => void;
|
|
47
|
-
emptySegment: PreprSegment;
|
|
48
|
-
}
|
|
49
|
-
interface SegmentProviderProps {
|
|
50
|
-
children: ReactNode;
|
|
51
|
-
initialSegments: PreprSegment[];
|
|
52
|
-
activeSegment?: string | null;
|
|
53
|
-
}
|
|
54
|
-
declare function SegmentProvider({ children, initialSegments, activeSegment, }: SegmentProviderProps): React__default.JSX.Element;
|
|
55
|
-
declare function useSegmentContext(): SegmentContextValue;
|
|
56
|
-
|
|
57
|
-
interface VariantContextValue {
|
|
58
|
-
selectedVariant: string | null;
|
|
59
|
-
setSelectedVariant: (variant: string | null) => void;
|
|
60
|
-
emptyVariant: string;
|
|
61
|
-
}
|
|
62
|
-
interface VariantProviderProps {
|
|
63
|
-
children: ReactNode;
|
|
64
|
-
activeVariant?: string | null;
|
|
65
|
-
}
|
|
66
|
-
declare function VariantProvider({ children, activeVariant, }: VariantProviderProps): React__default.JSX.Element;
|
|
67
|
-
declare function useVariantContext(): VariantContextValue;
|
|
68
|
-
|
|
69
|
-
interface EditModeContextValue {
|
|
70
|
-
editMode: boolean;
|
|
71
|
-
setEditMode: (mode: boolean) => void;
|
|
72
|
-
isIframe: boolean;
|
|
73
|
-
}
|
|
74
|
-
interface EditModeProviderProps {
|
|
75
|
-
children: ReactNode;
|
|
76
|
-
}
|
|
77
|
-
declare function EditModeProvider({ children }: EditModeProviderProps): React__default.JSX.Element;
|
|
78
|
-
declare function useEditModeContext(): EditModeContextValue;
|
|
79
|
-
|
|
80
|
-
declare function useStegaScan(editMode: boolean): void;
|
|
81
|
-
|
|
82
|
-
interface DecodedData$1 {
|
|
83
|
-
origin: string;
|
|
84
|
-
href: string;
|
|
85
|
-
}
|
|
86
|
-
declare function decode(str: string | null): DecodedData$1 | null;
|
|
87
|
-
declare function useStegaOverlay(): {
|
|
88
|
-
overlayRef: React.RefObject<HTMLDivElement | null>;
|
|
89
|
-
tooltipRef: React.RefObject<HTMLDivElement | null>;
|
|
90
|
-
currentElementRef: React.RefObject<HTMLElement | null>;
|
|
91
|
-
hideTimeoutRef: React.RefObject<NodeJS.Timeout | null>;
|
|
92
|
-
createOverlay: () => {
|
|
93
|
-
overlay: HTMLDivElement;
|
|
94
|
-
tooltip: HTMLDivElement;
|
|
95
|
-
};
|
|
96
|
-
showOverlay: (element: HTMLElement) => void;
|
|
97
|
-
hideOverlay: () => void;
|
|
98
|
-
cleanup: () => void;
|
|
99
|
-
decode: typeof decode;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
declare function useStegaProximity(): {
|
|
103
|
-
updateElementGradients: (cursorX: number, cursorY: number) => void;
|
|
104
|
-
clearAllHighlights: () => void;
|
|
105
|
-
highlightedElementsRef: React.RefObject<Set<HTMLElement>>;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
interface DecodedData {
|
|
109
|
-
href: string;
|
|
110
|
-
origin: string;
|
|
111
|
-
}
|
|
112
|
-
declare function useStegaElements(): {
|
|
113
|
-
getElements: () => NodeListOf<Element>;
|
|
114
|
-
scanDocument: (decode: (str: string | null) => DecodedData | null) => void;
|
|
115
|
-
setupMutationObserver: (decode: (str: string | null) => DecodedData | null) => void;
|
|
116
|
-
cleanup: () => void;
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
interface UseModalProps {
|
|
120
|
-
isVisible: boolean;
|
|
121
|
-
onClose: () => void;
|
|
122
|
-
}
|
|
123
|
-
declare function useModal({ isVisible, onClose }: UseModalProps): {
|
|
124
|
-
contentRef: React.RefObject<HTMLDivElement | null>;
|
|
125
|
-
triggerRef: React.RefObject<HTMLDivElement | null>;
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
declare function useScrollPosition(): void;
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Debug utility for Prepr Next.js package
|
|
132
|
-
* Provides centralized debug logging with performance optimizations
|
|
133
|
-
*/
|
|
134
|
-
type DebugArg = string | number | boolean | null | undefined | object;
|
|
135
|
-
interface DebugOptions {
|
|
136
|
-
enabled: boolean;
|
|
137
|
-
prefix?: string;
|
|
138
|
-
}
|
|
139
|
-
declare class DebugLogger {
|
|
140
|
-
private options;
|
|
141
|
-
constructor(options: DebugOptions);
|
|
142
|
-
/**
|
|
143
|
-
* Log a debug message if debug is enabled
|
|
144
|
-
*/
|
|
145
|
-
log(message: string, ...args: DebugArg[]): void;
|
|
146
|
-
/**
|
|
147
|
-
* Log a debug warning if debug is enabled
|
|
148
|
-
*/
|
|
149
|
-
warn(message: string, ...args: DebugArg[]): void;
|
|
150
|
-
/**
|
|
151
|
-
* Log a debug error if debug is enabled
|
|
152
|
-
*/
|
|
153
|
-
error(message: string, ...args: DebugArg[]): void;
|
|
154
|
-
/**
|
|
155
|
-
* Create a scoped logger with additional context
|
|
156
|
-
*/
|
|
157
|
-
scope(scopeName: string): DebugLogger;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Convenience function for logging
|
|
161
|
-
*/
|
|
162
|
-
declare function debugLog(message: string, ...args: DebugArg[]): void;
|
|
163
|
-
/**
|
|
164
|
-
* Convenience function for warning
|
|
165
|
-
*/
|
|
166
|
-
declare function debugWarn(message: string, ...args: DebugArg[]): void;
|
|
167
|
-
/**
|
|
168
|
-
* Convenience function for errors
|
|
169
|
-
*/
|
|
170
|
-
declare function debugError(message: string, ...args: DebugArg[]): void;
|
|
171
|
-
/**
|
|
172
|
-
* Create a scoped debug logger
|
|
173
|
-
*/
|
|
174
|
-
declare function createScopedLogger(scopeName: string): DebugLogger;
|
|
175
|
-
|
|
176
|
-
interface Props {
|
|
177
|
-
children: ReactNode;
|
|
178
|
-
fallback?: ReactNode;
|
|
179
|
-
}
|
|
180
|
-
interface State {
|
|
181
|
-
hasError: boolean;
|
|
182
|
-
error: Error | null;
|
|
183
|
-
}
|
|
184
|
-
declare class StegaErrorBoundary extends Component<Props, State> {
|
|
185
|
-
constructor(props: Props);
|
|
186
|
-
static getDerivedStateFromError(error: Error): State;
|
|
187
|
-
componentDidCatch(error: Error, errorInfo: React__default.ErrorInfo): void;
|
|
188
|
-
render(): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | React__default.JSX.Element | null | undefined;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
interface PreviewBarContentProps {
|
|
192
|
-
onClose: () => void;
|
|
193
|
-
contentRef: React__default.RefObject<HTMLDivElement | null>;
|
|
194
|
-
}
|
|
195
|
-
declare function PreviewBarContent({ onClose, contentRef, }: PreviewBarContentProps): React__default.JSX.Element;
|
|
196
|
-
|
|
197
|
-
interface PreviewBarButtonProps {
|
|
198
|
-
onClick: () => void;
|
|
199
|
-
className?: string;
|
|
200
|
-
}
|
|
201
|
-
declare function PreviewBarButton({ onClick, className, }: PreviewBarButtonProps): React__default.JSX.Element;
|
|
202
|
-
|
|
203
|
-
interface PreviewBarProps {
|
|
204
|
-
children?: React__default.ReactNode;
|
|
205
|
-
}
|
|
206
|
-
declare function PreviewBar({ children }: PreviewBarProps): React__default.ReactPortal | null;
|
|
207
|
-
declare namespace PreviewBar {
|
|
208
|
-
var Content: typeof PreviewBarContent;
|
|
209
|
-
var Button: typeof PreviewBarButton;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
declare function PreviewBarWrapper(): React__default.JSX.Element | null;
|
|
213
|
-
|
|
214
|
-
declare function PreviewBarIndicatorWrapper(): React__default.JSX.Element;
|
|
215
|
-
|
|
216
|
-
declare function SegmentDropdown(): React__default.JSX.Element;
|
|
217
|
-
|
|
218
|
-
declare function VariantSelector(): React__default.JSX.Element;
|
|
219
|
-
|
|
220
|
-
declare function EditModeSelector(): React__default.JSX.Element;
|
|
221
|
-
|
|
222
|
-
declare function ResetButton(): React__default.JSX.Element;
|
|
223
|
-
|
|
224
|
-
declare const Logo: React__default.FC<React__default.SVGProps<SVGSVGElement>>;
|
|
225
|
-
|
|
226
|
-
export { EditModeProvider, EditModeSelector, Logo, PreprPreviewBar, PreprPreviewBarProvider, PreviewBar, PreviewBarIndicatorWrapper, PreviewBarWrapper, ResetButton, SegmentDropdown, SegmentProvider, StegaErrorBoundary, VariantProvider, VariantSelector, createScopedLogger, debugError, debugLog, debugWarn, useEditModeContext, useModal, usePreprPreviewBar, useScrollPosition, useSegmentContext, useStegaElements, useStegaOverlay, useStegaProximity, useStegaScan, useVariantContext };
|
|
42
|
+
export { PreprPreviewBar, PreprPreviewBarProvider, usePreprPreviewBar };
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import React__default, { ReactNode, Component } from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
3
2
|
|
|
4
3
|
type PreprSegment = {
|
|
5
4
|
_id: string;
|
|
@@ -19,7 +18,7 @@ interface PreprPreviewBarProviderProps {
|
|
|
19
18
|
props: PreprPreviewBarProps;
|
|
20
19
|
options?: PreprPreviewBarOptions;
|
|
21
20
|
}
|
|
22
|
-
declare const PreprPreviewBarProvider:
|
|
21
|
+
declare const PreprPreviewBarProvider: React.FC<PreprPreviewBarProviderProps>;
|
|
23
22
|
declare const usePreprPreviewBar: () => {
|
|
24
23
|
isPreviewMode: boolean;
|
|
25
24
|
activeSegment: string;
|
|
@@ -38,189 +37,6 @@ declare const usePreprPreviewBar: () => {
|
|
|
38
37
|
resetSelected: () => void;
|
|
39
38
|
};
|
|
40
39
|
|
|
41
|
-
declare function PreprPreviewBar():
|
|
40
|
+
declare function PreprPreviewBar(): React.JSX.Element;
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
segments: PreprSegment[];
|
|
45
|
-
selectedSegment: PreprSegment;
|
|
46
|
-
setSelectedSegment: (segment: PreprSegment) => void;
|
|
47
|
-
emptySegment: PreprSegment;
|
|
48
|
-
}
|
|
49
|
-
interface SegmentProviderProps {
|
|
50
|
-
children: ReactNode;
|
|
51
|
-
initialSegments: PreprSegment[];
|
|
52
|
-
activeSegment?: string | null;
|
|
53
|
-
}
|
|
54
|
-
declare function SegmentProvider({ children, initialSegments, activeSegment, }: SegmentProviderProps): React__default.JSX.Element;
|
|
55
|
-
declare function useSegmentContext(): SegmentContextValue;
|
|
56
|
-
|
|
57
|
-
interface VariantContextValue {
|
|
58
|
-
selectedVariant: string | null;
|
|
59
|
-
setSelectedVariant: (variant: string | null) => void;
|
|
60
|
-
emptyVariant: string;
|
|
61
|
-
}
|
|
62
|
-
interface VariantProviderProps {
|
|
63
|
-
children: ReactNode;
|
|
64
|
-
activeVariant?: string | null;
|
|
65
|
-
}
|
|
66
|
-
declare function VariantProvider({ children, activeVariant, }: VariantProviderProps): React__default.JSX.Element;
|
|
67
|
-
declare function useVariantContext(): VariantContextValue;
|
|
68
|
-
|
|
69
|
-
interface EditModeContextValue {
|
|
70
|
-
editMode: boolean;
|
|
71
|
-
setEditMode: (mode: boolean) => void;
|
|
72
|
-
isIframe: boolean;
|
|
73
|
-
}
|
|
74
|
-
interface EditModeProviderProps {
|
|
75
|
-
children: ReactNode;
|
|
76
|
-
}
|
|
77
|
-
declare function EditModeProvider({ children }: EditModeProviderProps): React__default.JSX.Element;
|
|
78
|
-
declare function useEditModeContext(): EditModeContextValue;
|
|
79
|
-
|
|
80
|
-
declare function useStegaScan(editMode: boolean): void;
|
|
81
|
-
|
|
82
|
-
interface DecodedData$1 {
|
|
83
|
-
origin: string;
|
|
84
|
-
href: string;
|
|
85
|
-
}
|
|
86
|
-
declare function decode(str: string | null): DecodedData$1 | null;
|
|
87
|
-
declare function useStegaOverlay(): {
|
|
88
|
-
overlayRef: React.RefObject<HTMLDivElement | null>;
|
|
89
|
-
tooltipRef: React.RefObject<HTMLDivElement | null>;
|
|
90
|
-
currentElementRef: React.RefObject<HTMLElement | null>;
|
|
91
|
-
hideTimeoutRef: React.RefObject<NodeJS.Timeout | null>;
|
|
92
|
-
createOverlay: () => {
|
|
93
|
-
overlay: HTMLDivElement;
|
|
94
|
-
tooltip: HTMLDivElement;
|
|
95
|
-
};
|
|
96
|
-
showOverlay: (element: HTMLElement) => void;
|
|
97
|
-
hideOverlay: () => void;
|
|
98
|
-
cleanup: () => void;
|
|
99
|
-
decode: typeof decode;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
declare function useStegaProximity(): {
|
|
103
|
-
updateElementGradients: (cursorX: number, cursorY: number) => void;
|
|
104
|
-
clearAllHighlights: () => void;
|
|
105
|
-
highlightedElementsRef: React.RefObject<Set<HTMLElement>>;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
interface DecodedData {
|
|
109
|
-
href: string;
|
|
110
|
-
origin: string;
|
|
111
|
-
}
|
|
112
|
-
declare function useStegaElements(): {
|
|
113
|
-
getElements: () => NodeListOf<Element>;
|
|
114
|
-
scanDocument: (decode: (str: string | null) => DecodedData | null) => void;
|
|
115
|
-
setupMutationObserver: (decode: (str: string | null) => DecodedData | null) => void;
|
|
116
|
-
cleanup: () => void;
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
interface UseModalProps {
|
|
120
|
-
isVisible: boolean;
|
|
121
|
-
onClose: () => void;
|
|
122
|
-
}
|
|
123
|
-
declare function useModal({ isVisible, onClose }: UseModalProps): {
|
|
124
|
-
contentRef: React.RefObject<HTMLDivElement | null>;
|
|
125
|
-
triggerRef: React.RefObject<HTMLDivElement | null>;
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
declare function useScrollPosition(): void;
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Debug utility for Prepr Next.js package
|
|
132
|
-
* Provides centralized debug logging with performance optimizations
|
|
133
|
-
*/
|
|
134
|
-
type DebugArg = string | number | boolean | null | undefined | object;
|
|
135
|
-
interface DebugOptions {
|
|
136
|
-
enabled: boolean;
|
|
137
|
-
prefix?: string;
|
|
138
|
-
}
|
|
139
|
-
declare class DebugLogger {
|
|
140
|
-
private options;
|
|
141
|
-
constructor(options: DebugOptions);
|
|
142
|
-
/**
|
|
143
|
-
* Log a debug message if debug is enabled
|
|
144
|
-
*/
|
|
145
|
-
log(message: string, ...args: DebugArg[]): void;
|
|
146
|
-
/**
|
|
147
|
-
* Log a debug warning if debug is enabled
|
|
148
|
-
*/
|
|
149
|
-
warn(message: string, ...args: DebugArg[]): void;
|
|
150
|
-
/**
|
|
151
|
-
* Log a debug error if debug is enabled
|
|
152
|
-
*/
|
|
153
|
-
error(message: string, ...args: DebugArg[]): void;
|
|
154
|
-
/**
|
|
155
|
-
* Create a scoped logger with additional context
|
|
156
|
-
*/
|
|
157
|
-
scope(scopeName: string): DebugLogger;
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Convenience function for logging
|
|
161
|
-
*/
|
|
162
|
-
declare function debugLog(message: string, ...args: DebugArg[]): void;
|
|
163
|
-
/**
|
|
164
|
-
* Convenience function for warning
|
|
165
|
-
*/
|
|
166
|
-
declare function debugWarn(message: string, ...args: DebugArg[]): void;
|
|
167
|
-
/**
|
|
168
|
-
* Convenience function for errors
|
|
169
|
-
*/
|
|
170
|
-
declare function debugError(message: string, ...args: DebugArg[]): void;
|
|
171
|
-
/**
|
|
172
|
-
* Create a scoped debug logger
|
|
173
|
-
*/
|
|
174
|
-
declare function createScopedLogger(scopeName: string): DebugLogger;
|
|
175
|
-
|
|
176
|
-
interface Props {
|
|
177
|
-
children: ReactNode;
|
|
178
|
-
fallback?: ReactNode;
|
|
179
|
-
}
|
|
180
|
-
interface State {
|
|
181
|
-
hasError: boolean;
|
|
182
|
-
error: Error | null;
|
|
183
|
-
}
|
|
184
|
-
declare class StegaErrorBoundary extends Component<Props, State> {
|
|
185
|
-
constructor(props: Props);
|
|
186
|
-
static getDerivedStateFromError(error: Error): State;
|
|
187
|
-
componentDidCatch(error: Error, errorInfo: React__default.ErrorInfo): void;
|
|
188
|
-
render(): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | React__default.JSX.Element | null | undefined;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
interface PreviewBarContentProps {
|
|
192
|
-
onClose: () => void;
|
|
193
|
-
contentRef: React__default.RefObject<HTMLDivElement | null>;
|
|
194
|
-
}
|
|
195
|
-
declare function PreviewBarContent({ onClose, contentRef, }: PreviewBarContentProps): React__default.JSX.Element;
|
|
196
|
-
|
|
197
|
-
interface PreviewBarButtonProps {
|
|
198
|
-
onClick: () => void;
|
|
199
|
-
className?: string;
|
|
200
|
-
}
|
|
201
|
-
declare function PreviewBarButton({ onClick, className, }: PreviewBarButtonProps): React__default.JSX.Element;
|
|
202
|
-
|
|
203
|
-
interface PreviewBarProps {
|
|
204
|
-
children?: React__default.ReactNode;
|
|
205
|
-
}
|
|
206
|
-
declare function PreviewBar({ children }: PreviewBarProps): React__default.ReactPortal | null;
|
|
207
|
-
declare namespace PreviewBar {
|
|
208
|
-
var Content: typeof PreviewBarContent;
|
|
209
|
-
var Button: typeof PreviewBarButton;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
declare function PreviewBarWrapper(): React__default.JSX.Element | null;
|
|
213
|
-
|
|
214
|
-
declare function PreviewBarIndicatorWrapper(): React__default.JSX.Element;
|
|
215
|
-
|
|
216
|
-
declare function SegmentDropdown(): React__default.JSX.Element;
|
|
217
|
-
|
|
218
|
-
declare function VariantSelector(): React__default.JSX.Element;
|
|
219
|
-
|
|
220
|
-
declare function EditModeSelector(): React__default.JSX.Element;
|
|
221
|
-
|
|
222
|
-
declare function ResetButton(): React__default.JSX.Element;
|
|
223
|
-
|
|
224
|
-
declare const Logo: React__default.FC<React__default.SVGProps<SVGSVGElement>>;
|
|
225
|
-
|
|
226
|
-
export { EditModeProvider, EditModeSelector, Logo, PreprPreviewBar, PreprPreviewBarProvider, PreviewBar, PreviewBarIndicatorWrapper, PreviewBarWrapper, ResetButton, SegmentDropdown, SegmentProvider, StegaErrorBoundary, VariantProvider, VariantSelector, createScopedLogger, debugError, debugLog, debugWarn, useEditModeContext, useModal, usePreprPreviewBar, useScrollPosition, useSegmentContext, useStegaElements, useStegaOverlay, useStegaProximity, useStegaScan, useVariantContext };
|
|
42
|
+
export { PreprPreviewBar, PreprPreviewBarProvider, usePreprPreviewBar };
|
package/dist/react/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use client";var Je=Object.defineProperty,Ye=Object.defineProperties;var Qe=Object.getOwnPropertyDescriptors;var Me=Object.getOwnPropertySymbols;var et=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var Le=(t,e,r)=>e in t?Je(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,v=(t,e)=>{for(var r in e||(e={}))et.call(e,r)&&Le(t,r,e[r]);if(Me)for(var r of Me(e))tt.call(e,r)&&Le(t,r,e[r]);return t},G=(t,e)=>Ye(t,Qe(e));import j,{useEffect as xt}from"react";import rt,{createContext as ot,useContext as nt,useState as it}from"react";var ae={DECODE_FAILED:"STEGA_DECODE_FAILED",INVALID_FORMAT:"STEGA_INVALID_FORMAT",DOM_MANIPULATION_FAILED:"DOM_MANIPULATION_FAILED",CONTEXT_NOT_FOUND:"CONTEXT_NOT_FOUND"};function le(t,e,r,o){return{type:t,context:e,message:r.message,timestamp:new Date().toISOString(),stack:r.stack,additionalData:o}}function Te(t,e,r){let o=le(ae.DECODE_FAILED,e,t,r);return console.error("Stega Error:",o),process.env.NODE_ENV,o}function y(t,e){let r=le(ae.DOM_MANIPULATION_FAILED,e,t);return console.error("DOM Error:",r),r}function B(t){let e=new Error(`${t} must be used within its provider`),r=le(ae.CONTEXT_NOT_FOUND,t,e);throw console.error("Context Error:",r),e}var Ne=ot(void 0);function pe({children:t,initialSegments:e,activeSegment:r}){let o=[{_id:"all_other_users",name:"All other users"},...e],n={name:"Choose segment",_id:"null"},[i,s]=it(o&&o.filter(l=>l._id===r)[0]||n),a={segments:o,selectedSegment:i,setSelectedSegment:s,emptySegment:n};return rt.createElement(Ne.Provider,{value:a},t)}function _(){let t=nt(Ne);return t||B("useSegmentContext"),t}import st,{createContext as at,useContext as lt,useState as pt}from"react";var De=at(void 0);function de({children:t,activeVariant:e}){let r="null",[o,n]=pt(e||"null"),i={selectedVariant:o,setSelectedVariant:n,emptyVariant:r};return st.createElement(De.Provider,{value:i},t)}function A(){let t=lt(De);return t||B("useVariantContext"),t}import dt,{createContext as ct,useContext as ut,useState as Ve,useEffect as mt}from"react";var Be=ct(void 0);function ce({children:t}){let[e,r]=Ve(!1),[o,n]=Ve(!1);mt(()=>{window.parent!==self&&n(!0)},[]);let i={editMode:e,setEditMode:r,isIframe:o};return dt.createElement(Be.Provider,{value:i},t)}function S(){let t=ut(Be);return t||B("useEditModeContext"),t}import ue,{Component as ft}from"react";var H=class extends ft{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,r){console.error("Stega Error Boundary caught an error:",e,r),process.env.NODE_ENV}render(){var e;return this.state.hasError?this.props.fallback?this.props.fallback:ue.createElement("div",{className:"p-rounded-lg p-border p-border-red-200 p-bg-red-50 p-p-4 p-text-sm p-text-red-800"},ue.createElement("div",{className:"p-mb-2 p-font-semibold"},"Preview mode unavailable"),ue.createElement("div",{className:"p-text-red-600"},((e=this.state.error)==null?void 0:e.message)||"An unexpected error occurred")):this.props.children}};var z=class t{constructor(e){this.options=v({prefix:"[Prepr]"},e)}log(e,...r){if(!this.options.enabled)return;let o=this.options.prefix;console.log(`${o} ${e}`,...r)}warn(e,...r){if(!this.options.enabled)return;let o=this.options.prefix;console.warn(`${o} ${e}`,...r)}error(e,...r){if(!this.options.enabled)return;let o=this.options.prefix;console.error(`${o} ${e}`,...r)}scope(e){return new t(G(v({},this.options),{prefix:`${this.options.prefix}[${e}]`}))}},W=null;function Oe(t=!1){W=new z({enabled:t})}function Z(){return W||(W=new z({enabled:!1})),W}function gt(t,...e){Z().log(t,...e)}function ht(t,...e){Z().warn(t,...e)}function vt(t,...e){Z().error(t,...e)}function E(t){return Z().scope(t)}var Et=({children:t,props:e,options:r})=>{let{activeSegment:o,activeVariant:n,data:i}=e;return xt(()=>{var a;let s=(a=r==null?void 0:r.debug)!=null?a:!1;Oe(s)},[r==null?void 0:r.debug]),j.createElement(H,null,j.createElement(pe,{initialSegments:i,activeSegment:o},j.createElement(de,{activeVariant:n},j.createElement(ce,null,t))))},D=()=>{let t=_(),e=A(),r=S();return{isPreviewMode:!1,activeSegment:t.selectedSegment._id,activeVariant:e.selectedVariant,data:t.segments,emptySegment:t.emptySegment,segmentList:t.segments,selectedSegment:t.selectedSegment,setSelectedSegment:t.setSelectedSegment,emptyVariant:e.emptyVariant,selectedVariant:e.selectedVariant,setSelectedVariant:e.setSelectedVariant,editMode:r.editMode,setEditMode:r.setEditMode,isIframe:r.isIframe,resetSelected:()=>{t.setSelectedSegment(t.emptySegment),e.setSelectedVariant(e.emptyVariant),r.setEditMode(!1)}}};import se from"react";import{useEffect as bt,useRef as yt,useCallback as Fe,useMemo as St}from"react";var h=class{static createElement(e,r){try{let o=document.createElement(e);return o.className=r,o}catch(o){throw y(o,"createElement"),o}}static appendToBody(e){try{document.body.appendChild(e)}catch(r){throw y(r,"appendToBody"),r}}static removeFromBody(e){try{e.parentNode&&e.parentNode.removeChild(e)}catch(r){throw y(r,"removeFromBody"),r}}static setElementStyles(e,r){try{Object.entries(r).forEach(([o,n])=>{e.style.setProperty(o,n)})}catch(o){throw y(o,"setElementStyles"),o}}static getElementRect(e){try{return e.getBoundingClientRect()}catch(r){throw y(r,"getElementRect"),r}}static isElementInViewport(e){try{let r=this.getElementRect(e);return r.top>=0&&r.left>=0&&r.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&r.right<=(window.innerWidth||document.documentElement.clientWidth)}catch(r){return y(r,"isElementInViewport"),!1}}static calculateDistance(e,r,o,n){return Math.sqrt(Math.pow(o-e,2)+Math.pow(n-r,2))}static findClosestElement(e,r,o){try{let n=null,i=1/0;return o.forEach(s=>{let a=this.getElementRect(s),l=this.calculateDistance(e,r,a.left+a.width/2,a.top+a.height/2);l<i&&(i=l,n=s)}),n}catch(n){return y(n,"findClosestElement"),null}}static addEventListener(e,r,o,n){try{e.addEventListener(r,o,n)}catch(i){throw y(i,"addEventListener"),i}}static removeEventListener(e,r,o,n){try{e.removeEventListener(r,o,n)}catch(i){throw y(i,"removeEventListener"),i}}};function _e(t,e){let r=null,o=0;return(...n)=>{let i=Date.now();i-o>e?(t(...n),o=i):(r&&clearTimeout(r),r=setTimeout(()=>{t(...n),o=Date.now()},e-(i-o)))}}function Ae(t,e=1e3){let r=null,o=0;return()=>{let n=Date.now();return(!r||n-o>e)&&(r=document.querySelectorAll(t),o=n),r}}import{useRef as U,useCallback as K}from"react";import{vercelStegaDecode as He}from"@vercel/stega";function wt(t){if(!t)return null;let e=E("decode");try{e.log("attempting to decode stega data");let r=He(t);if(e.log("vercelStegaDecode result:",r),r!=null&&r.href)return e.log("successfully decoded",r),r}catch(r){e.log("error decoding stega data:",r);let o=/{"origin.*?}/,n=t.match(o);if(n)try{let i=He(n[0]);if(i!=null&&i.href)return e.log("successfully decoded with regex match",i),i}catch(i){Te(i,"decode",{input:t})}}return null}function me(){let t=E("useStegaOverlay"),e=U(null),r=U(null),o=U(null),n=U(null),i=K(()=>{let d=h.createElement("div","prepr-overlay");d.style.display="none";let p=h.createElement("div","prepr-tooltip");return p.style.display="none",h.appendToBody(d),h.appendToBody(p),e.current=d,r.current=p,t.log("created overlay and tooltip elements"),{overlay:d,tooltip:p}},[t]),s=K(d=>{if(!e.current||!r.current)return;o.current&&(clearTimeout(o.current),o.current=null);let p=h.getElementRect(d),m=d.getAttribute("data-prepr-href"),c=d.getAttribute("data-prepr-origin");t.log("showing overlay for element:",{href:m,origin:c,rect:p});let u=e.current;u.style.display="block",u.style.top=`${p.top+window.scrollY-2}px`,u.style.left=`${p.left+window.scrollX-4}px`,u.style.width=`${p.width+8}px`,u.style.height=`${p.height+4}px`;let f=r.current;if(f&&m&&c){let x=p.width<80;f.textContent=x?"\u2197":`${c} \u2197`,f.style.display="block",x?f.style.minWidth="auto":f.style.minWidth="80px",requestAnimationFrame(()=>{f&&(f.style.top=`${p.top+window.scrollY-f.clientHeight-2}px`,f.style.left=`${p.right+4-f.clientWidth}px`)}),f.onclick=()=>window.open(m,"_blank","noopener,noreferrer")}n.current=d},[t]),a=K(()=>{!e.current||!r.current||(o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{e.current&&(e.current.style.display="none"),r.current&&(r.current.style.display="none"),n.current=null,t.log("hidden overlay and tooltip")},100))},[t]),l=K(()=>{o.current&&clearTimeout(o.current),e.current&&h.removeFromBody(e.current),r.current&&h.removeFromBody(r.current),t.log("cleaned up overlay and tooltip")},[t]);return{overlayRef:e,tooltipRef:r,currentElementRef:n,hideTimeoutRef:o,createOverlay:i,showOverlay:s,hideOverlay:a,cleanup:l,decode:wt}}import{useRef as Ct,useCallback as Ie}from"react";function fe(){let t=E("useStegaProximity"),e=Ct(new Set),r=Ae("[data-prepr-encoded]",500),o=Ie((i,s)=>{let a=r(),l=new Set,d=0;a.forEach(p=>{let m=p.getBoundingClientRect(),c=Math.abs(i-m.left),u=Math.abs(i-m.right),f=Math.abs(s-m.top),T=Math.abs(s-m.bottom),x=Math.min(c,u,f,T),b=p;if(x<150){let P=i-m.left,M=s-m.top;b.style.setProperty("--cursor-x",`${P}px`),b.style.setProperty("--cursor-y",`${M}px`);let N=Math.max(150,Math.max(m.width,m.height)*1.1),$=Math.max(0,(400-x)/400),R=N*$;b.style.setProperty("--gradient-size",`${R}px`),b.classList.add("prepr-proximity-highlight"),l.add(b),d++}else b.classList.remove("prepr-proximity-highlight")}),e.current=l,d>0&&t.log("highlighted",d,"elements near cursor")},[t,r]),n=Ie(()=>{let i=e.current,s=0;i.forEach(a=>{a.classList.remove("prepr-proximity-highlight"),s++}),e.current.clear(),s>0&&t.log("cleared highlights from",s,"elements")},[t]);return{updateElementGradients:o,clearAllHighlights:n,highlightedElementsRef:e}}import{useRef as ke,useCallback as I}from"react";function ge(){let t=E("useStegaElements"),e=ke(void 0),r=ke(null),o=I(()=>(e.current||(e.current=document.querySelectorAll("[data-prepr-encoded]")),e.current),[]),n=I((l,d)=>{var p,m;if(l.nodeType===Node.TEXT_NODE){if(!((p=l.textContent)!=null&&p.trim())||(m=l.parentElement)!=null&&m.closest("script, style, noscript"))return;let c=d(l.textContent);if(c!=null&&c.href){let u=l.parentElement;u&&!u.hasAttribute("data-prepr-encoded")&&(u.setAttribute("data-prepr-encoded",""),u.setAttribute("data-prepr-href",c.href),u.setAttribute("data-prepr-origin",c.origin),t.log("encoded element found:",{href:c.href,origin:c.origin}))}}else if(l.nodeType===Node.ELEMENT_NODE)for(let c=0;c<l.childNodes.length;c++)n(l.childNodes[c],d)},[t]),i=I(l=>{t.log("starting document scan");let d=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,{acceptNode:c=>{var u,f;return(u=c.parentElement)!=null&&u.closest("script, style, noscript")||!((f=c.textContent)!=null&&f.trim())?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),p,m=0;for(;p=d.nextNode();){let c=l(p.textContent);if(c!=null&&c.href){let u=p.parentElement;u&&!u.hasAttribute("data-prepr-encoded")&&(u.setAttribute("data-prepr-encoded",""),u.setAttribute("data-prepr-href",c.href),u.setAttribute("data-prepr-origin",c.origin),m++)}}t.log("document scan complete, encoded",m,"elements"),e.current=document.querySelectorAll("[data-prepr-encoded]")},[t]),s=I(l=>{r.current&&r.current.disconnect();let d=[],p=null,m=()=>{let c=new Set;d.forEach(u=>{u.addedNodes.forEach(f=>c.add(f))}),c.forEach(u=>n(u,l)),d=[],e.current=document.querySelectorAll("[data-prepr-encoded]")};r.current=new MutationObserver(c=>{d.push(...c),p&&clearTimeout(p),p=setTimeout(m,100)}),r.current.observe(document.body,{childList:!0,subtree:!0}),t.log("mutation observer set up")},[n,t]),a=I(()=>{r.current&&(r.current.disconnect(),r.current=null);let l=document.querySelectorAll("[data-prepr-encoded]");l.forEach(d=>{d.removeAttribute("data-prepr-encoded"),d.removeAttribute("data-prepr-href"),d.removeAttribute("data-prepr-origin")}),t.log("cleaned up",l.length,"encoded elements"),e.current=void 0},[t]);return{getElements:o,scanDocument:i,setupMutationObserver:s,cleanup:a}}function X(t){let e=E("useStegaScan"),r=yt(!1),{currentElementRef:o,hideTimeoutRef:n,createOverlay:i,showOverlay:s,hideOverlay:a,cleanup:l,decode:d}=me(),{updateElementGradients:p,clearAllHighlights:m}=fe(),{getElements:c,scanDocument:u,setupMutationObserver:f,cleanup:T}=ge(),x=St(()=>_e(M=>{let N=M,$=N.target;if($.closest(".prepr-tooltip"))return;p(N.clientX,N.clientY);let R=$.closest("[data-prepr-encoded]");R?s(R):a()},16),[p,s,a]),b=Fe(()=>{n.current&&(clearTimeout(n.current),n.current=null)},[n]),P=Fe(()=>{o.current||a()},[o,a]);bt(()=>{if(e.log("editMode changed to",t),!t){e.log("editMode is false, cleaning up"),r.current&&(h.removeEventListener(document,"mousemove",x),l(),m(),T(),r.current=!1);return}if(r.current){e.log("already initialized, skipping setup");return}e.log("editMode is true, setting up scanning");let{tooltip:M}=i();e.log("created overlay and tooltip"),h.addEventListener(M,"mouseenter",b),h.addEventListener(M,"mouseleave",P),e.log("starting document scan"),u(d);let N=c();return e.log("found",N.length,"encoded elements after scan"),f(d),e.log("set up mutation observer"),h.addEventListener(document,"mousemove",x),e.log("added throttled mousemove handler"),r.current=!0,()=>{e.log("cleaning up"),h.removeEventListener(document,"mousemove",x),h.removeEventListener(M,"mouseenter",b),h.removeEventListener(M,"mouseleave",P),n.current&&clearTimeout(n.current),l(),m(),T(),r.current=!1}},[t])}import Zt,{useEffect as jt,useState as Ut}from"react";import w,{useEffect as Ce,useState as Wt}from"react";import{createPortal as zt}from"react-dom";import{clsx as Pt}from"clsx";import{twMerge as Mt}from"tailwind-merge";function C(...t){return Mt(Pt(t))}function q(t,e){window.parent.postMessage(v({name:"prepr_preview_bar",event:t},e))}import{useEffect as $e,useRef as Re}from"react";function he({isVisible:t,onClose:e}){let r=Re(null),o=Re(null);return $e(()=>(t?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[t]),$e(()=>{let n=s=>{s.key==="Escape"&&e()},i=s=>{s.target.closest('[role="listbox"], [role="option"]')||r.current&&!r.current.contains(s.target)&&o.current&&!o.current.contains(s.target)&&e()};return t&&(document.addEventListener("keydown",n),document.addEventListener("mousedown",i)),()=>{document.removeEventListener("keydown",n),document.removeEventListener("mousedown",i)}},[t,e]),{contentRef:r,triggerRef:o}}import g from"react";import O from"react";var Lt=t=>O.createElement("svg",G(v({width:"102",height:"28",viewBox:"0 0 102 28",fill:"none"},t),{xmlns:"http://www.w3.org/2000/svg"}),O.createElement("path",{d:"M39.2674 2.19699C39.2757 2.18321 39.2839 2.16943 39.291 2.15528L39.2939 2.15057L39.2935 2.1502C39.3379 2.06208 39.3633 1.96308 39.3633 1.85754C39.3633 1.62109 39.2374 1.41474 39.0507 1.30231C39.0485 1.30014 39.0467 1.29651 39.0446 1.29578C35.1089 -0.88088 29.8537 -0.36627 26.3741 3.2632C24.4207 5.3006 23.4231 7.92116 23.3716 10.5544H23.3684V20.893C23.3684 21.2495 23.6538 21.5389 24.0058 21.5389H26.98C27.332 21.5389 27.6174 21.2495 27.6174 20.893V10.7698H27.6192C27.6192 9.14658 28.2169 7.52187 29.4209 6.26599C31.5699 4.02478 34.7423 3.8565 36.9299 5.03659C36.9367 5.04058 36.9439 5.04384 36.9507 5.04747C36.9557 5.05001 36.9607 5.05254 36.9657 5.05508H36.9664C37.0494 5.09497 37.1417 5.11782 37.2393 5.11782C37.4879 5.11782 37.7032 4.97276 37.808 4.76206L39.2674 2.19699Z",fill:"#4338CA"}),O.createElement("path",{d:"M10.6216 0.000244141C4.75551 0.000244141 0 4.82177 0 10.7693V27.3543C0 27.7108 0.285079 28.0002 0.637405 28.0002H3.61161C3.96358 28.0002 4.24902 27.7108 4.24902 27.3543V19.3853C6.02424 20.7373 8.23084 21.5388 10.622 21.5388C16.4878 21.5388 21.244 16.7173 21.244 10.7697C21.2437 4.82177 16.4878 0.000244141 10.6216 0.000244141ZM10.6216 17.2311C7.10196 17.2311 4.24866 14.3382 4.24866 10.7693C4.24866 7.20079 7.10196 4.30788 10.6216 4.30788C14.1413 4.30788 16.995 7.20079 16.995 10.7693C16.995 14.3379 14.1413 17.2311 10.6216 17.2311Z",fill:"#4338CA"}),O.createElement("path",{d:"M73.259 0C67.3932 0 62.6373 4.82152 62.6373 10.7691V27.3541C62.6373 27.7106 62.9228 28 63.2747 28H66.2489C66.6009 28 66.8863 27.7106 66.8863 27.3541V19.3854C68.6616 20.7374 70.8682 21.5389 73.2593 21.5389C79.1251 21.5389 83.8813 16.7174 83.8813 10.7698C83.881 4.82152 79.1248 0 73.259 0ZM73.259 17.2309C69.7393 17.2309 66.886 14.338 66.886 10.7691C66.886 7.20055 69.7393 4.30764 73.259 4.30764C76.7783 4.30764 79.632 7.20055 79.632 10.7691C79.632 14.3376 76.7783 17.2309 73.259 17.2309Z",fill:"#4338CA"}),O.createElement("path",{d:"M60.439 10.9845C60.439 5.03657 55.6827 0 49.817 0C43.9508 0 39.1953 4.82152 39.1953 10.7691C39.1953 16.7167 43.9508 21.5382 49.817 21.5382C53.1374 21.5382 55.8763 19.9954 57.5939 18.1031C57.5939 18.1031 57.5942 18.1027 57.5946 18.1024C57.596 18.1009 57.5975 18.0995 57.5985 18.098C57.7112 17.9812 57.7806 17.822 57.7806 17.6461C57.7806 17.4601 57.7026 17.2929 57.5785 17.1751V17.1743L57.5696 17.1671C57.5535 17.1522 57.5367 17.1384 57.5188 17.1254L55.2464 15.2501C55.1344 15.1503 54.9877 15.0891 54.8264 15.0891C54.6261 15.0891 54.4476 15.183 54.331 15.3291C53.3216 16.3707 51.7256 17.2309 49.8166 17.2309C46.2969 17.2309 43.4436 14.338 43.4436 10.7691C43.4436 7.20055 46.2969 4.30764 49.8166 4.30764C52.5909 4.30764 54.9505 6.10605 55.8255 8.61527H50.3474C49.9954 8.61527 49.71 8.90467 49.71 9.26152V12.277C49.71 12.6339 49.9954 12.9233 50.3474 12.9233H59.5884C59.6059 12.9233 59.6227 12.9218 59.6399 12.9207C59.6571 12.9222 59.6742 12.9233 59.6914 12.9233C59.9743 12.9233 60.214 12.7361 60.2973 12.4772L60.3045 12.4783C60.308 12.4551 60.3116 12.4326 60.3152 12.4097C60.3199 12.3876 60.3234 12.3655 60.3256 12.3427C60.4003 11.861 60.439 11.5172 60.439 10.9845Z",fill:"#4338CA"}),O.createElement("path",{d:"M101.928 2.15406L101.931 2.14934L101.93 2.14898C101.974 2.06085 102 1.96185 102 1.85632C102 1.61987 101.874 1.41351 101.687 1.30109C101.685 1.29891 101.683 1.29529 101.681 1.29456C97.7455 -0.882101 92.4903 -0.367491 89.0107 3.26198C87.0573 5.29938 86.0597 7.91993 86.0082 10.5532H86.005V20.8918C86.005 21.2483 86.2904 21.5377 86.6424 21.5377H89.6166C89.9686 21.5377 90.254 21.2483 90.254 20.8918V10.7686H90.2555C90.2555 9.14535 90.8532 7.52065 92.0571 6.26477C94.2062 4.02355 97.3785 3.85528 99.5662 5.03537C99.573 5.03936 99.5801 5.04262 99.5869 5.04624C99.5919 5.04878 99.5969 5.05132 99.6019 5.05386H99.6027C99.6856 5.09375 99.7779 5.11696 99.8756 5.11696C100.124 5.11696 100.339 4.9719 100.444 4.7612L101.905 2.19685C101.913 2.18235 101.92 2.16856 101.928 2.15406Z",fill:"#4338CA"})),ve=Lt;import L from"react";import{usePathname as Tt,useRouter as Nt}from"next/navigation";import{Listbox as Dt,ListboxButton as Vt,ListboxOption as Bt,ListboxOptions as Ot}from"@headlessui/react";import Ge from"react";function xe(t){return Ge.createElement("svg",v({width:"9",height:"6",viewBox:"0 0 9 6",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),Ge.createElement("path",{d:"M5.24274 5.36865C4.91462 5.72412 4.3404 5.72412 4.01227 5.36865L0.512273 1.86865C0.266179 1.62256 0.184148 1.23975 0.320867 0.911621C0.457586 0.583496 0.785711 0.364746 1.14118 0.364746H8.14118C8.46931 0.364746 8.79743 0.583496 8.93415 0.911621C9.07087 1.23975 8.98884 1.62256 8.74274 1.86865L5.24274 5.36865Z",fill:"currentColor"}))}function J(){let{segments:t,setSelectedSegment:e,selectedSegment:r}=_(),o=Tt(),n=Nt(),i=s=>{let a=new URLSearchParams(window.location.search),l=t.find(d=>d._id===s);l&&(e(l),a.set("prepr_preview_segment",s),n.push(`${o}?${a.toString()}`,{scroll:!1}),n.refresh())};return L.createElement(Dt,{value:r._id,onChange:s=>i(s)},L.createElement(Vt,{as:"button",disabled:!(t&&t.length>0),className:"p-regular-text p-flex p-h-10 p-w-[240px] p-shrink-0 p-flex-nowrap p-items-center p-gap-2 p-overflow-hidden p-text-ellipsis p-text-nowrap p-rounded-lg p-border p-border-gray-300 p-bg-white p-px-2 p-text-gray-500 disabled:p-cursor-not-allowed disabled:p-bg-gray-200 disabled:p-text-gray-400 data-[open]:p-rounded-b-none data-[open]:p-border-b-white md:p-px-4"},L.createElement("div",{style:{textWrap:"nowrap",textOverflow:"ellipsis",textAlign:"left"},className:"p-mr-auto p-w-full p-overflow-hidden"},t.length>0?r.name:"No segments"),L.createElement("div",{className:"p-text-gray-800"},L.createElement(xe,null))),L.createElement(Ot,{anchor:"bottom start",className:"p-no-scrollbar p-z-[9999] !p-max-h-[300px] p-w-[240px] p-rounded-b-md p-border-x p-border-b p-border-gray-300 p-bg-white p-shadow-xl"},t==null?void 0:t.map(s=>L.createElement(Bt,{key:s._id,value:s._id,className:C("p-regular-text p-z-[100] p-flex p-w-full p-items-center p-p-2 p-px-4 hover:p-cursor-pointer",s._id===r._id?"p-bg-indigo-50 p-text-indigo-700":"p-bg-white p-text-gray-900 hover:p-bg-gray-100")},L.createElement("div",{style:{textWrap:"nowrap",textOverflow:"ellipsis",textAlign:"left"},className:"p-mr-auto p-w-full p-overflow-hidden"},s.name)))))}import Ht from"react";import{usePathname as It,useRouter as kt}from"next/navigation";import We from"react";import{Radio as _t,RadioGroup as At}from"@headlessui/react";function k({value:t,onChange:e,options:r}){return We.createElement(At,{className:"p-flex p-h-10 p-items-center p-gap-1 p-rounded-lg p-border p-border-gray-300 p-bg-white p-p-1",value:t,onChange:e},r.map(o=>We.createElement(_t,{key:String(o.value),value:o.value,className:C(o.width||"p-w-[58px]","p-regular-text p-flex p-h-8 p-cursor-pointer p-items-center p-justify-center p-rounded-md p-px-4.5 p-py-2 p-text-center p-text-gray-900 p-transition-all p-duration-200 p-ease-in-out",o.value===!1||o.value==="null"||o.value==="off"?"data-[checked]:p-bg-gray-800 data-[checked]:p-text-white":"data-[checked]:p-bg-indigo-600 data-[checked]:p-text-white",o.value===t&&"p-drop-shadow-3")},o.label)))}function Y(){let{selectedVariant:t,setSelectedVariant:e,emptyVariant:r}=A(),o=It(),n=kt();return Ht.createElement(k,{value:t||r,onChange:a=>{let l=new URLSearchParams(window.location.search);e(String(a)),l.set("prepr_preview_ab",String(a)),n.push(`${o}?${l.toString()}`,{scroll:!1}),n.refresh()},options:[{value:"null",label:"Off",width:"p-w-[58px]"},{value:"A",label:"A",width:"p-w-[82px]"},{value:"B",label:"B",width:"p-w-[82px]"}]})}import Ft from"react";function Q(){let{editMode:t,setEditMode:e}=S(),r=n=>{e(n==="true"||n===!0)};return Ft.createElement(k,{options:[{value:"false",label:"Off"},{value:"true",label:"On"}],value:t.toString(),onChange:r})}import we from"react";import{usePathname as $t,useRouter as Rt}from"next/navigation";import ze from"react";function Ee(){return ze.createElement("svg",{width:"15",height:"14",viewBox:"0 0 15 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},ze.createElement("path",{d:"M3.37109 5.80078C3.20703 6.26562 2.6875 6.51172 2.25 6.34766C1.78516 6.18359 1.53906 5.69141 1.70312 5.22656C2.00391 4.37891 2.49609 3.58594 3.15234 2.92969C5.55859 0.550781 9.41406 0.550781 11.8203 2.92969L12.2852 3.42188V2C12.2852 1.53516 12.6953 1.125 13.1602 1.125C13.6523 1.125 14.0352 1.53516 14.0352 2V5.5C14.0352 5.99219 13.6523 6.375 13.1602 6.375H9.6875C9.19531 6.375 8.8125 5.99219 8.8125 5.5C8.8125 5.03516 9.19531 4.625 9.6875 4.625H11.0547L10.5898 4.16016C8.86719 2.46484 6.10547 2.46484 4.38281 4.16016C3.91797 4.65234 3.5625 5.19922 3.37109 5.80078ZM1.56641 8.17969C1.59375 8.15234 1.64844 8.15234 1.67578 8.15234C1.73047 8.15234 1.75781 8.125 1.8125 8.125H5.3125C5.77734 8.125 6.1875 8.53516 6.1875 9C6.1875 9.49219 5.77734 9.875 5.3125 9.875H3.91797L4.38281 10.3672C6.10547 12.0625 8.86719 12.0625 10.5898 10.3672C11.0547 9.875 11.4102 9.32812 11.6016 8.72656C11.7656 8.26172 12.2852 8.01562 12.7227 8.17969C13.1875 8.34375 13.4336 8.83594 13.2695 9.30078C12.9688 10.1484 12.4766 10.9141 11.8203 11.5977C9.41406 13.9766 5.55859 13.9766 3.15234 11.5977L2.6875 11.1055V12.5C2.6875 12.9922 2.27734 13.375 1.8125 13.375C1.32031 13.375 0.9375 12.9922 0.9375 12.5V9.02734C0.9375 8.97266 0.9375 8.91797 0.9375 8.89062C0.9375 8.83594 0.9375 8.80859 0.964844 8.78125C0.992188 8.64453 1.07422 8.50781 1.18359 8.39844C1.29297 8.28906 1.42969 8.20703 1.56641 8.17969Z",fill:"currentColor"}))}function ee(){let t=Rt(),{resetSelected:e,selectedVariant:r,selectedSegment:o,setEditMode:n,editMode:i}=D(),s=$t(),a=o._id!=="null"||r!=="null"||i,l=()=>{e();let p=new URLSearchParams({});p.append("prepr_preview_segment","null"),p.append("prepr_preview_ab","null"),n(!1),t.push(`${s}?${p.toString()}`,{scroll:!1}),t.refresh(),p.delete("prepr_preview_segment"),p.delete("prepr_preview_ab"),t.push(`${s}?${p.toString()}`,{scroll:!1}),t.refresh()},d=C("p-py-2 p-px-3 p-flex p-justify-center p-gap-2 p-items-center p-rounded-md p-regular-text p-h-10 p-w-full md:p-w-[108px]",a&&"p-bg-secondary-400 hover:p-secondary-500 p-cursor-pointer p-text-white",!a&&"p-bg-grey-400 p-text-gray-500");return we.createElement("button",{onClick:l,className:d,disabled:!a},we.createElement(Ee,null),we.createElement("span",{className:"p-block sm:p-hidden lg:p-block"},"Reset"))}function te({onClose:t,contentRef:e}){return g.createElement("div",{ref:e,className:"p-box-shadow p-right-0 p-z-[101] p-flex p-w-full p-flex-col p-gap-y-10 p-rounded-lg p-bg-primary-50 p-p-6 sm:p-w-[502px] sm:p-p-10"},g.createElement("div",{className:"p-flex p-items-center p-justify-between p-gap-2"},g.createElement("div",{className:"p-flex p-items-start p-gap-3"},g.createElement(ve,null),g.createElement("div",{className:"p-flex p-h-6 p-items-center p-rounded p-bg-primary-100 p-px-3 p-py-1 p-text-sm p-text-primary-700"},"toolbar")),g.createElement("button",{onClick:t,className:"p-flex p-h-8 p-w-8 p-cursor-pointer p-items-center p-justify-center p-rounded-md p-bg-primary-100 p-text-gray-700"},g.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},g.createElement("path",{d:"M8.17578 1.07031C8.41016 0.816406 8.82031 0.816406 9.05469 1.07031C9.30859 1.30469 9.30859 1.71484 9.05469 1.94922L5.75391 5.25L9.05469 8.57031C9.30859 8.80469 9.30859 9.21484 9.05469 9.44922C8.82031 9.70312 8.41016 9.70312 8.17578 9.44922L4.875 6.14844L1.55469 9.44922C1.32031 9.70312 0.910156 9.70312 0.675781 9.44922C0.421875 9.21484 0.421875 8.80469 0.675781 8.57031L3.97656 5.25L0.675781 1.94922C0.421875 1.71484 0.421875 1.30469 0.675781 1.07031C0.910156 0.816406 1.32031 0.816406 1.55469 1.07031L4.875 4.37109L8.17578 1.07031Z",fill:"currentColor"})))),g.createElement("div",{className:"p-space-y-2"},g.createElement("span",{className:"p-text-sm p-text-grey-400"},"Personalized content"),g.createElement("div",{className:"p-gap p-flex p-flex-wrap p-items-center p-justify-between p-gap-x-6 p-gap-y-2"},g.createElement("h2",{className:"p-text-grey-800 p-font-semibold"},"Apply segment"),g.createElement(J,null)),g.createElement("div",{className:"p-gap p-flex p-flex-wrap p-items-center p-justify-between p-gap-x-6 p-gap-y-2"},g.createElement("h2",{className:"p-text-grey-800 p-font-semibold"},"Show A/B variant"),g.createElement(Y,null))),g.createElement("div",{className:"p-space-y-2"},g.createElement("span",{className:"p-text-sm p-text-grey-400"},"Collaboration"),g.createElement("div",{className:"p-gap p-flex p-flex-wrap p-items-center p-justify-between p-gap-x-6 p-gap-y-2"},g.createElement("h2",{className:"p-text-grey-800 p-font-semibold"},"Edit mode"),g.createElement(Q,null))),g.createElement(ee,null))}import Ue from"react";import Ze from"react";var Gt=t=>Ze.createElement("svg",v({width:"16",height:"16",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg"},t),Ze.createElement("path",{d:"M9.05365 0C5.71033 0 3 2.75516 3 6.15377V15.6309C3 15.8346 3.16248 16 3.36328 16H5.05838C5.25898 16 5.42166 15.8346 5.42166 15.6309V11.0772C6.43342 11.8498 7.69104 12.3077 9.05385 12.3077C12.397 12.3077 15.1077 9.55259 15.1077 6.15397C15.1075 2.75516 12.397 0 9.05365 0ZM9.05365 9.84623C7.04766 9.84623 5.42146 8.19314 5.42146 6.15377C5.42146 4.1146 7.04766 2.46151 9.05365 2.46151C11.0596 2.46151 12.686 4.1146 12.686 6.15377C12.686 8.19293 11.0596 9.84623 9.05365 9.84623Z",fill:"currentColor"})),je=Gt;function re({onClick:t,className:e}){return Ue.createElement("button",{onClick:t,className:C("cursor-pointer p-z-50 p-flex p-size-9 p-items-center p-justify-center p-rounded-full p-bg-primary-700",e)},Ue.createElement(je,{className:"p-text-white"}))}function V({children:t}){let[e,r]=Wt(!1),[o,n]=w.useState(!1),{editMode:i}=S(),{contentRef:s,triggerRef:a}=he({isVisible:o,onClose:()=>n(!1)});Ce(()=>{r(!0)},[]);let l=w.useRef(null),[d,p]=w.useState(""),m=w.useCallback(()=>{if(l.current&&a.current){let f=l.current.offsetHeight,T=window.innerHeight,x=a.current.getBoundingClientRect(),P=x.top+x.height/2-f/2;P=Math.max(32,Math.min(P,T-f-32)),p(P)}},[a]);Ce(()=>{if(o)return m(),window.addEventListener("resize",m),()=>window.removeEventListener("resize",m)},[o,m]);let c=()=>{n(!o)};Ce(()=>{i&&setTimeout(()=>{n(!1)},150)},[i]);let u=w.createElement(w.Fragment,null,o&&w.createElement("div",{className:"preview-bar-backdrop"}),w.createElement("div",{className:C("preview-bar-container")},w.createElement("div",{className:"p-pr-4",ref:a},w.createElement(re,{onClick:c})),w.createElement("div",{ref:l,style:d!==""?{top:d,position:"fixed",right:0}:{},className:C("preview-bar-popup",o?"p-pointer-events-auto p-opacity-100":"p-pointer-events-none p-opacity-0")},t||w.createElement(te,{onClose:c,contentRef:s}))));return e?zt(u,document.body):null}V.Content=te;V.Button=re;import{useSearchParams as Kt}from"next/navigation";function oe(){let t=Kt(),[e,r]=Ut(!1),o=n=>{let i=n.key.toLowerCase(),s=(n.ctrlKey||n.metaKey)&&i==="s",a=(n.ctrlKey||n.metaKey)&&i==="p",l=(n.ctrlKey||n.metaKey)&&i==="l";(s||a||l)&&n.preventDefault()};return jt(()=>{let n=typeof window!="undefined"&&(window==null?void 0:window.parent)!==window.self;if(n){r(!0);let i={name:"prepr_preview_bar",event:"loaded"};window.parent.postMessage(i,"*"),window.addEventListener("keydown",o)}return()=>{n&&window.removeEventListener("keydown",o)}},[]),t.get("prepr_hide_bar")==="true"||e?null:Zt.createElement(V,null)}import Pe from"react";import F from"react";function be(){var s,a;let{selectedSegment:t,selectedVariant:e,emptySegment:r,emptyVariant:o,isIframe:n}=D(),i=t&&t._id!==((s=r==null?void 0:r._id)!=null?s:"null")||e&&e!==(o!=null?o:"null");return n?null:F.createElement("div",{className:"p-z-[998] p-flex p-gap-2"},i&&F.createElement("div",{className:"p-flex p-items-center p-gap-2 p-rounded-full p-bg-primary-700 p-px-4 p-py-2 p-text-xs p-font-medium p-text-white p-shadow-lg"},F.createElement("span",{className:"p-text-[10px] p-text-white/60"},"viewing as"),t&&t._id!==((a=r==null?void 0:r._id)!=null?a:"null")&&F.createElement("span",{className:"max-w-[120px] p-inline-block p-truncate"},t.name),e&&e!==(o!=null?o:"null")&&F.createElement("span",{className:"max-w-[80px] p-inline-block p-truncate p-rounded p-bg-white/20 p-px-2"},e)))}import ne from"react";import Ke from"react";function ye(t){return Ke.createElement("svg",v({width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t),Ke.createElement("path",{d:"M4.22 4.22a.75.75 0 0 1 1.06 0L8 6.94l2.72-2.72a.75.75 0 1 1 1.06 1.06L9.06 8l2.72 2.72a.75.75 0 1 1-1.06 1.06L8 9.06l-2.72 2.72a.75.75 0 1 1-1.06-1.06L6.94 8 4.22 5.28a.75.75 0 0 1 0-1.06z",fill:"currentColor"}))}function Se(){let{editMode:t,setEditMode:e,isIframe:r}=D();return!t||r?null:ne.createElement("div",{className:"p-z-[999] p-flex"},ne.createElement("button",{type:"button",onClick:()=>e&&e(!1),className:"p-flex p-items-center p-gap-2 p-rounded-full p-bg-primary-50 p-px-4 p-py-2 p-text-xs p-font-medium p-text-gray-800 p-shadow-lg p-transition-colors p-duration-150 hover:p-bg-primary-100","aria-label":"Close edit mode"},ne.createElement("span",null,"Edit mode"),ne.createElement(ye,{className:"transition-colors duration-150 p-h-4 p-w-4 p-text-gray-500 hover:p-text-gray-700"})))}function ie(){return Pe.createElement("div",{className:"p-fixed p-bottom-6 p-right-6 p-z-[999] p-flex p-gap-3"},Pe.createElement(be,null),Pe.createElement(Se,null))}function Xe(){let{editMode:t}=S();return X(t),se.createElement(se.Fragment,null,se.createElement(oe,null),se.createElement(ie,null))}import{useEffect as Xt}from"react";function qe(){let t=E("useScrollPosition");Xt(()=>{if(q("getScrollPosition",{value:0}),window.parent!==self){let e=null;q("loaded");let r=o=>{var n,i,s;if(t.log("received message:",o.data),((n=o==null?void 0:o.data)==null?void 0:n.event)==="prepr:initVE"&&!e&&(e=o.origin,(i=o.data)!=null&&i.scrollPosition&&(t.log("scrolling to position:",o.data.scrollPosition),setTimeout(()=>{var a;window.scrollTo(0,(a=o.data)==null?void 0:a.scrollPosition)},1))),o.origin===e&&((s=o==null?void 0:o.data)==null?void 0:s.event)==="prepr:getScrollPosition"){let a=window.scrollY||document.documentElement.scrollTop;t.log("sending scroll position:",a),q("getScrollPosition",{value:a})}};return window.addEventListener("message",r),t.log("set up iframe message listener"),()=>{window.removeEventListener("message",r),t.log("cleaned up iframe message listener")}}else{t.log("not in iframe, skipping iframe setup");return}},[t])}export{ce as EditModeProvider,Q as EditModeSelector,ve as Logo,Xe as PreprPreviewBar,Et as PreprPreviewBarProvider,V as PreviewBar,ie as PreviewBarIndicatorWrapper,oe as PreviewBarWrapper,ee as ResetButton,J as SegmentDropdown,pe as SegmentProvider,H as StegaErrorBoundary,de as VariantProvider,Y as VariantSelector,E as createScopedLogger,vt as debugError,gt as debugLog,ht as debugWarn,S as useEditModeContext,he as useModal,D as usePreprPreviewBar,qe as useScrollPosition,_ as useSegmentContext,ge as useStegaElements,me as useStegaOverlay,fe as useStegaProximity,X as useStegaScan,A as useVariantContext};
|
|
2
|
+
"use client";var Ke=Object.defineProperty,Xe=Object.defineProperties;var qe=Object.getOwnPropertyDescriptors;var Ee=Object.getOwnPropertySymbols;var Je=Object.prototype.hasOwnProperty,Ye=Object.prototype.propertyIsEnumerable;var Ce=(r,e,t)=>e in r?Ke(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,x=(r,e)=>{for(var t in e||(e={}))Je.call(e,t)&&Ce(r,t,e[t]);if(Ee)for(var t of Ee(e))Ye.call(e,t)&&Ce(r,t,e[t]);return r},R=(r,e)=>Xe(r,qe(e));import Z,{useEffect as mt}from"react";import Qe,{createContext as et,useContext as tt,useState as rt}from"react";var Y={DECODE_FAILED:"STEGA_DECODE_FAILED",INVALID_FORMAT:"STEGA_INVALID_FORMAT",DOM_MANIPULATION_FAILED:"DOM_MANIPULATION_FAILED",CONTEXT_NOT_FOUND:"CONTEXT_NOT_FOUND"};function Q(r,e,t,o){return{type:r,context:e,message:t.message,timestamp:new Date().toISOString(),stack:t.stack,additionalData:o}}function we(r,e,t){let o=Q(Y.DECODE_FAILED,e,r,t);return console.error("Stega Error:",o),process.env.NODE_ENV,o}function b(r,e){let t=Q(Y.DOM_MANIPULATION_FAILED,e,r);return console.error("DOM Error:",t),t}function V(r){let e=new Error(`${r} must be used within its provider`),t=Q(Y.CONTEXT_NOT_FOUND,r,e);throw console.error("Context Error:",t),e}var be=et(void 0);function ee({children:r,initialSegments:e,activeSegment:t}){let o=[{_id:"all_other_users",name:"All other users"},...e],n={name:"Choose segment",_id:"null"},[i,s]=rt(o&&o.filter(l=>l._id===t)[0]||n),a={segments:o,selectedSegment:i,setSelectedSegment:s,emptySegment:n};return Qe.createElement(be.Provider,{value:a},r)}function _(){let r=tt(be);return r||V("useSegmentContext"),r}import ot,{createContext as nt,useContext as it,useState as st}from"react";var ye=nt(void 0);function te({children:r,activeVariant:e}){let t="null",[o,n]=st(e||"null"),i={selectedVariant:o,setSelectedVariant:n,emptyVariant:t};return ot.createElement(ye.Provider,{value:i},r)}function A(){let r=it(ye);return r||V("useVariantContext"),r}import at,{createContext as lt,useContext as pt,useState as Se,useEffect as dt}from"react";var Pe=lt(void 0);function re({children:r}){let[e,t]=Se(!1),[o,n]=Se(!1);dt(()=>{window.parent!==self&&n(!0)},[]);let i={editMode:e,setEditMode:t,isIframe:o};return at.createElement(Pe.Provider,{value:i},r)}function y(){let r=pt(Pe);return r||V("useEditModeContext"),r}import oe,{Component as ct}from"react";var G=class extends ct{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error("Stega Error Boundary caught an error:",e,t),process.env.NODE_ENV}render(){var e;return this.state.hasError?this.props.fallback?this.props.fallback:oe.createElement("div",{className:"p-rounded-lg p-border p-border-red-200 p-bg-red-50 p-p-4 p-text-sm p-text-red-800"},oe.createElement("div",{className:"p-mb-2 p-font-semibold"},"Preview mode unavailable"),oe.createElement("div",{className:"p-text-red-600"},((e=this.state.error)==null?void 0:e.message)||"An unexpected error occurred")):this.props.children}};var W=class r{constructor(e){this.options=x({prefix:"[Prepr]"},e)}log(e,...t){if(!this.options.enabled)return;let o=this.options.prefix;console.log(`${o} ${e}`,...t)}warn(e,...t){if(!this.options.enabled)return;let o=this.options.prefix;console.warn(`${o} ${e}`,...t)}error(e,...t){if(!this.options.enabled)return;let o=this.options.prefix;console.error(`${o} ${e}`,...t)}scope(e){return new r(R(x({},this.options),{prefix:`${this.options.prefix}[${e}]`}))}},z=null;function Me(r=!1){z=new W({enabled:r})}function ut(){return z||(z=new W({enabled:!1})),z}function S(r){return ut().scope(r)}var ft=({children:r,props:e,options:t})=>{let{activeSegment:o,activeVariant:n,data:i}=e;return mt(()=>{var a;let s=(a=t==null?void 0:t.debug)!=null?a:!1;Me(s)},[t==null?void 0:t.debug]),Z.createElement(G,null,Z.createElement(ee,{initialSegments:i,activeSegment:o},Z.createElement(te,{activeVariant:n},Z.createElement(re,null,r))))},D=()=>{let r=_(),e=A(),t=y();return{isPreviewMode:!1,activeSegment:r.selectedSegment._id,activeVariant:e.selectedVariant,data:r.segments,emptySegment:r.emptySegment,segmentList:r.segments,selectedSegment:r.selectedSegment,setSelectedSegment:r.setSelectedSegment,emptyVariant:e.emptyVariant,selectedVariant:e.selectedVariant,setSelectedVariant:e.setSelectedVariant,editMode:t.editMode,setEditMode:t.setEditMode,isIframe:t.isIframe,resetSelected:()=>{r.setSelectedSegment(r.emptySegment),e.setSelectedVariant(e.emptyVariant),t.setEditMode(!1)}}};import J from"react";import{useEffect as ht,useRef as xt,useCallback as Ae,useMemo as Et}from"react";var v=class{static createElement(e,t){try{let o=document.createElement(e);return o.className=t,o}catch(o){throw b(o,"createElement"),o}}static appendToBody(e){try{document.body.appendChild(e)}catch(t){throw b(t,"appendToBody"),t}}static removeFromBody(e){try{e.parentNode&&e.parentNode.removeChild(e)}catch(t){throw b(t,"removeFromBody"),t}}static setElementStyles(e,t){try{Object.entries(t).forEach(([o,n])=>{e.style.setProperty(o,n)})}catch(o){throw b(o,"setElementStyles"),o}}static getElementRect(e){try{return e.getBoundingClientRect()}catch(t){throw b(t,"getElementRect"),t}}static isElementInViewport(e){try{let t=this.getElementRect(e);return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}catch(t){return b(t,"isElementInViewport"),!1}}static calculateDistance(e,t,o,n){return Math.sqrt(Math.pow(o-e,2)+Math.pow(n-t,2))}static findClosestElement(e,t,o){try{let n=null,i=1/0;return o.forEach(s=>{let a=this.getElementRect(s),l=this.calculateDistance(e,t,a.left+a.width/2,a.top+a.height/2);l<i&&(i=l,n=s)}),n}catch(n){return b(n,"findClosestElement"),null}}static addEventListener(e,t,o,n){try{e.addEventListener(t,o,n)}catch(i){throw b(i,"addEventListener"),i}}static removeEventListener(e,t,o,n){try{e.removeEventListener(t,o,n)}catch(i){throw b(i,"removeEventListener"),i}}};function Le(r,e){let t=null,o=0;return(...n)=>{let i=Date.now();i-o>e?(r(...n),o=i):(t&&clearTimeout(t),t=setTimeout(()=>{r(...n),o=Date.now()},e-(i-o)))}}function Ne(r,e=1e3){let t=null,o=0;return()=>{let n=Date.now();return(!t||n-o>e)&&(t=document.querySelectorAll(r),o=n),t}}import{useRef as j,useCallback as U}from"react";import{vercelStegaDecode as Te}from"@vercel/stega";function gt(r){if(!r)return null;let e=S("decode");try{e.log("attempting to decode stega data");let t=Te(r);if(e.log("vercelStegaDecode result:",t),t!=null&&t.href)return e.log("successfully decoded",t),t}catch(t){e.log("error decoding stega data:",t);let o=/{"origin.*?}/,n=r.match(o);if(n)try{let i=Te(n[0]);if(i!=null&&i.href)return e.log("successfully decoded with regex match",i),i}catch(i){we(i,"decode",{input:r})}}return null}function De(){let r=S("useStegaOverlay"),e=j(null),t=j(null),o=j(null),n=j(null),i=U(()=>{let d=v.createElement("div","prepr-overlay");d.style.display="none";let p=v.createElement("div","prepr-tooltip");return p.style.display="none",v.appendToBody(d),v.appendToBody(p),e.current=d,t.current=p,r.log("created overlay and tooltip elements"),{overlay:d,tooltip:p}},[r]),s=U(d=>{if(!e.current||!t.current)return;o.current&&(clearTimeout(o.current),o.current=null);let p=v.getElementRect(d),m=d.getAttribute("data-prepr-href"),c=d.getAttribute("data-prepr-origin");r.log("showing overlay for element:",{href:m,origin:c,rect:p});let u=e.current;u.style.display="block",u.style.top=`${p.top+window.scrollY-2}px`,u.style.left=`${p.left+window.scrollX-4}px`,u.style.width=`${p.width+8}px`,u.style.height=`${p.height+4}px`;let f=t.current;if(f&&m&&c){let h=p.width<80;f.textContent=h?"\u2197":`${c} \u2197`,f.style.display="block",h?f.style.minWidth="auto":f.style.minWidth="80px",requestAnimationFrame(()=>{f&&(f.style.top=`${p.top+window.scrollY-f.clientHeight-2}px`,f.style.left=`${p.right+4-f.clientWidth}px`)}),f.onclick=()=>window.open(m,"_blank","noopener,noreferrer")}n.current=d},[r]),a=U(()=>{!e.current||!t.current||(o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{e.current&&(e.current.style.display="none"),t.current&&(t.current.style.display="none"),n.current=null,r.log("hidden overlay and tooltip")},100))},[r]),l=U(()=>{o.current&&clearTimeout(o.current),e.current&&v.removeFromBody(e.current),t.current&&v.removeFromBody(t.current),r.log("cleaned up overlay and tooltip")},[r]);return{overlayRef:e,tooltipRef:t,currentElementRef:n,hideTimeoutRef:o,createOverlay:i,showOverlay:s,hideOverlay:a,cleanup:l,decode:gt}}import{useRef as vt,useCallback as Ve}from"react";function Be(){let r=S("useStegaProximity"),e=vt(new Set),t=Ne("[data-prepr-encoded]",500),o=Ve((i,s)=>{let a=t(),l=new Set,d=0;a.forEach(p=>{let m=p.getBoundingClientRect(),c=Math.abs(i-m.left),u=Math.abs(i-m.right),f=Math.abs(s-m.top),N=Math.abs(s-m.bottom),h=Math.min(c,u,f,N),w=p;if(h<150){let P=i-m.left,M=s-m.top;w.style.setProperty("--cursor-x",`${P}px`),w.style.setProperty("--cursor-y",`${M}px`);let T=Math.max(150,Math.max(m.width,m.height)*1.1),F=Math.max(0,(400-h)/400),$=T*F;w.style.setProperty("--gradient-size",`${$}px`),w.classList.add("prepr-proximity-highlight"),l.add(w),d++}else w.classList.remove("prepr-proximity-highlight")}),e.current=l,d>0&&r.log("highlighted",d,"elements near cursor")},[r,t]),n=Ve(()=>{let i=e.current,s=0;i.forEach(a=>{a.classList.remove("prepr-proximity-highlight"),s++}),e.current.clear(),s>0&&r.log("cleared highlights from",s,"elements")},[r]);return{updateElementGradients:o,clearAllHighlights:n,highlightedElementsRef:e}}import{useRef as Oe,useCallback as H}from"react";function _e(){let r=S("useStegaElements"),e=Oe(void 0),t=Oe(null),o=H(()=>(e.current||(e.current=document.querySelectorAll("[data-prepr-encoded]")),e.current),[]),n=H((l,d)=>{var p,m;if(l.nodeType===Node.TEXT_NODE){if(!((p=l.textContent)!=null&&p.trim())||(m=l.parentElement)!=null&&m.closest("script, style, noscript"))return;let c=d(l.textContent);if(c!=null&&c.href){let u=l.parentElement;u&&!u.hasAttribute("data-prepr-encoded")&&(u.setAttribute("data-prepr-encoded",""),u.setAttribute("data-prepr-href",c.href),u.setAttribute("data-prepr-origin",c.origin),r.log("encoded element found:",{href:c.href,origin:c.origin}))}}else if(l.nodeType===Node.ELEMENT_NODE)for(let c=0;c<l.childNodes.length;c++)n(l.childNodes[c],d)},[r]),i=H(l=>{r.log("starting document scan");let d=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT,{acceptNode:c=>{var u,f;return(u=c.parentElement)!=null&&u.closest("script, style, noscript")||!((f=c.textContent)!=null&&f.trim())?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),p,m=0;for(;p=d.nextNode();){let c=l(p.textContent);if(c!=null&&c.href){let u=p.parentElement;u&&!u.hasAttribute("data-prepr-encoded")&&(u.setAttribute("data-prepr-encoded",""),u.setAttribute("data-prepr-href",c.href),u.setAttribute("data-prepr-origin",c.origin),m++)}}r.log("document scan complete, encoded",m,"elements"),e.current=document.querySelectorAll("[data-prepr-encoded]")},[r]),s=H(l=>{t.current&&t.current.disconnect();let d=[],p=null,m=()=>{let c=new Set;d.forEach(u=>{u.addedNodes.forEach(f=>c.add(f))}),c.forEach(u=>n(u,l)),d=[],e.current=document.querySelectorAll("[data-prepr-encoded]")};t.current=new MutationObserver(c=>{d.push(...c),p&&clearTimeout(p),p=setTimeout(m,100)}),t.current.observe(document.body,{childList:!0,subtree:!0}),r.log("mutation observer set up")},[n,r]),a=H(()=>{t.current&&(t.current.disconnect(),t.current=null);let l=document.querySelectorAll("[data-prepr-encoded]");l.forEach(d=>{d.removeAttribute("data-prepr-encoded"),d.removeAttribute("data-prepr-href"),d.removeAttribute("data-prepr-origin")}),r.log("cleaned up",l.length,"encoded elements"),e.current=void 0},[r]);return{getElements:o,scanDocument:i,setupMutationObserver:s,cleanup:a}}function ne(r){let e=S("useStegaScan"),t=xt(!1),{currentElementRef:o,hideTimeoutRef:n,createOverlay:i,showOverlay:s,hideOverlay:a,cleanup:l,decode:d}=De(),{updateElementGradients:p,clearAllHighlights:m}=Be(),{getElements:c,scanDocument:u,setupMutationObserver:f,cleanup:N}=_e(),h=Et(()=>Le(M=>{let T=M,F=T.target;if(F.closest(".prepr-tooltip"))return;p(T.clientX,T.clientY);let $=F.closest("[data-prepr-encoded]");$?s($):a()},16),[p,s,a]),w=Ae(()=>{n.current&&(clearTimeout(n.current),n.current=null)},[n]),P=Ae(()=>{o.current||a()},[o,a]);ht(()=>{if(e.log("editMode changed to",r),!r){e.log("editMode is false, cleaning up"),t.current&&(v.removeEventListener(document,"mousemove",h),l(),m(),N(),t.current=!1);return}if(t.current){e.log("already initialized, skipping setup");return}e.log("editMode is true, setting up scanning");let{tooltip:M}=i();e.log("created overlay and tooltip"),v.addEventListener(M,"mouseenter",w),v.addEventListener(M,"mouseleave",P),e.log("starting document scan"),u(d);let T=c();return e.log("found",T.length,"encoded elements after scan"),f(d),e.log("set up mutation observer"),v.addEventListener(document,"mousemove",h),e.log("added throttled mousemove handler"),t.current=!0,()=>{e.log("cleaning up"),v.removeEventListener(document,"mousemove",h),v.removeEventListener(M,"mouseenter",w),v.removeEventListener(M,"mouseleave",P),n.current&&clearTimeout(n.current),l(),m(),N(),t.current=!1}},[r])}import $t,{useEffect as Rt,useState as Gt}from"react";import E,{useEffect as ue,useState as kt}from"react";import{createPortal as Ft}from"react-dom";import{clsx as Ct}from"clsx";import{twMerge as wt}from"tailwind-merge";function C(...r){return wt(Ct(r))}import{useEffect as He,useRef as Ie}from"react";function ke({isVisible:r,onClose:e}){let t=Ie(null),o=Ie(null);return He(()=>(r?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[r]),He(()=>{let n=s=>{s.key==="Escape"&&e()},i=s=>{s.target.closest('[role="listbox"], [role="option"]')||t.current&&!t.current.contains(s.target)&&o.current&&!o.current.contains(s.target)&&e()};return r&&(document.addEventListener("keydown",n),document.addEventListener("mousedown",i)),()=>{document.removeEventListener("keydown",n),document.removeEventListener("mousedown",i)}},[r,e]),{contentRef:t,triggerRef:o}}import g from"react";import B from"react";var bt=r=>B.createElement("svg",R(x({width:"102",height:"28",viewBox:"0 0 102 28",fill:"none"},r),{xmlns:"http://www.w3.org/2000/svg"}),B.createElement("path",{d:"M39.2674 2.19699C39.2757 2.18321 39.2839 2.16943 39.291 2.15528L39.2939 2.15057L39.2935 2.1502C39.3379 2.06208 39.3633 1.96308 39.3633 1.85754C39.3633 1.62109 39.2374 1.41474 39.0507 1.30231C39.0485 1.30014 39.0467 1.29651 39.0446 1.29578C35.1089 -0.88088 29.8537 -0.36627 26.3741 3.2632C24.4207 5.3006 23.4231 7.92116 23.3716 10.5544H23.3684V20.893C23.3684 21.2495 23.6538 21.5389 24.0058 21.5389H26.98C27.332 21.5389 27.6174 21.2495 27.6174 20.893V10.7698H27.6192C27.6192 9.14658 28.2169 7.52187 29.4209 6.26599C31.5699 4.02478 34.7423 3.8565 36.9299 5.03659C36.9367 5.04058 36.9439 5.04384 36.9507 5.04747C36.9557 5.05001 36.9607 5.05254 36.9657 5.05508H36.9664C37.0494 5.09497 37.1417 5.11782 37.2393 5.11782C37.4879 5.11782 37.7032 4.97276 37.808 4.76206L39.2674 2.19699Z",fill:"#4338CA"}),B.createElement("path",{d:"M10.6216 0.000244141C4.75551 0.000244141 0 4.82177 0 10.7693V27.3543C0 27.7108 0.285079 28.0002 0.637405 28.0002H3.61161C3.96358 28.0002 4.24902 27.7108 4.24902 27.3543V19.3853C6.02424 20.7373 8.23084 21.5388 10.622 21.5388C16.4878 21.5388 21.244 16.7173 21.244 10.7697C21.2437 4.82177 16.4878 0.000244141 10.6216 0.000244141ZM10.6216 17.2311C7.10196 17.2311 4.24866 14.3382 4.24866 10.7693C4.24866 7.20079 7.10196 4.30788 10.6216 4.30788C14.1413 4.30788 16.995 7.20079 16.995 10.7693C16.995 14.3379 14.1413 17.2311 10.6216 17.2311Z",fill:"#4338CA"}),B.createElement("path",{d:"M73.259 0C67.3932 0 62.6373 4.82152 62.6373 10.7691V27.3541C62.6373 27.7106 62.9228 28 63.2747 28H66.2489C66.6009 28 66.8863 27.7106 66.8863 27.3541V19.3854C68.6616 20.7374 70.8682 21.5389 73.2593 21.5389C79.1251 21.5389 83.8813 16.7174 83.8813 10.7698C83.881 4.82152 79.1248 0 73.259 0ZM73.259 17.2309C69.7393 17.2309 66.886 14.338 66.886 10.7691C66.886 7.20055 69.7393 4.30764 73.259 4.30764C76.7783 4.30764 79.632 7.20055 79.632 10.7691C79.632 14.3376 76.7783 17.2309 73.259 17.2309Z",fill:"#4338CA"}),B.createElement("path",{d:"M60.439 10.9845C60.439 5.03657 55.6827 0 49.817 0C43.9508 0 39.1953 4.82152 39.1953 10.7691C39.1953 16.7167 43.9508 21.5382 49.817 21.5382C53.1374 21.5382 55.8763 19.9954 57.5939 18.1031C57.5939 18.1031 57.5942 18.1027 57.5946 18.1024C57.596 18.1009 57.5975 18.0995 57.5985 18.098C57.7112 17.9812 57.7806 17.822 57.7806 17.6461C57.7806 17.4601 57.7026 17.2929 57.5785 17.1751V17.1743L57.5696 17.1671C57.5535 17.1522 57.5367 17.1384 57.5188 17.1254L55.2464 15.2501C55.1344 15.1503 54.9877 15.0891 54.8264 15.0891C54.6261 15.0891 54.4476 15.183 54.331 15.3291C53.3216 16.3707 51.7256 17.2309 49.8166 17.2309C46.2969 17.2309 43.4436 14.338 43.4436 10.7691C43.4436 7.20055 46.2969 4.30764 49.8166 4.30764C52.5909 4.30764 54.9505 6.10605 55.8255 8.61527H50.3474C49.9954 8.61527 49.71 8.90467 49.71 9.26152V12.277C49.71 12.6339 49.9954 12.9233 50.3474 12.9233H59.5884C59.6059 12.9233 59.6227 12.9218 59.6399 12.9207C59.6571 12.9222 59.6742 12.9233 59.6914 12.9233C59.9743 12.9233 60.214 12.7361 60.2973 12.4772L60.3045 12.4783C60.308 12.4551 60.3116 12.4326 60.3152 12.4097C60.3199 12.3876 60.3234 12.3655 60.3256 12.3427C60.4003 11.861 60.439 11.5172 60.439 10.9845Z",fill:"#4338CA"}),B.createElement("path",{d:"M101.928 2.15406L101.931 2.14934L101.93 2.14898C101.974 2.06085 102 1.96185 102 1.85632C102 1.61987 101.874 1.41351 101.687 1.30109C101.685 1.29891 101.683 1.29529 101.681 1.29456C97.7455 -0.882101 92.4903 -0.367491 89.0107 3.26198C87.0573 5.29938 86.0597 7.91993 86.0082 10.5532H86.005V20.8918C86.005 21.2483 86.2904 21.5377 86.6424 21.5377H89.6166C89.9686 21.5377 90.254 21.2483 90.254 20.8918V10.7686H90.2555C90.2555 9.14535 90.8532 7.52065 92.0571 6.26477C94.2062 4.02355 97.3785 3.85528 99.5662 5.03537C99.573 5.03936 99.5801 5.04262 99.5869 5.04624C99.5919 5.04878 99.5969 5.05132 99.6019 5.05386H99.6027C99.6856 5.09375 99.7779 5.11696 99.8756 5.11696C100.124 5.11696 100.339 4.9719 100.444 4.7612L101.905 2.19685C101.913 2.18235 101.92 2.16856 101.928 2.15406Z",fill:"#4338CA"})),Fe=bt;import L from"react";import{usePathname as yt,useRouter as St}from"next/navigation";import{Listbox as Pt,ListboxButton as Mt,ListboxOption as Lt,ListboxOptions as Nt}from"@headlessui/react";import $e from"react";function ie(r){return $e.createElement("svg",x({width:"9",height:"6",viewBox:"0 0 9 6",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r),$e.createElement("path",{d:"M5.24274 5.36865C4.91462 5.72412 4.3404 5.72412 4.01227 5.36865L0.512273 1.86865C0.266179 1.62256 0.184148 1.23975 0.320867 0.911621C0.457586 0.583496 0.785711 0.364746 1.14118 0.364746H8.14118C8.46931 0.364746 8.79743 0.583496 8.93415 0.911621C9.07087 1.23975 8.98884 1.62256 8.74274 1.86865L5.24274 5.36865Z",fill:"currentColor"}))}function se(){let{segments:r,setSelectedSegment:e,selectedSegment:t}=_(),o=yt(),n=St(),i=s=>{let a=new URLSearchParams(window.location.search),l=r.find(d=>d._id===s);l&&(e(l),a.set("prepr_preview_segment",s),n.push(`${o}?${a.toString()}`,{scroll:!1}),n.refresh())};return L.createElement(Pt,{value:t._id,onChange:s=>i(s)},L.createElement(Mt,{as:"button",disabled:!(r&&r.length>0),className:"p-regular-text p-flex p-h-10 p-w-[240px] p-shrink-0 p-flex-nowrap p-items-center p-gap-2 p-overflow-hidden p-text-ellipsis p-text-nowrap p-rounded-lg p-border p-border-gray-300 p-bg-white p-px-2 p-text-gray-500 disabled:p-cursor-not-allowed disabled:p-bg-gray-200 disabled:p-text-gray-400 data-[open]:p-rounded-b-none data-[open]:p-border-b-white md:p-px-4"},L.createElement("div",{style:{textWrap:"nowrap",textOverflow:"ellipsis",textAlign:"left"},className:"p-mr-auto p-w-full p-overflow-hidden"},r.length>0?t.name:"No segments"),L.createElement("div",{className:"p-text-gray-800"},L.createElement(ie,null))),L.createElement(Nt,{anchor:"bottom start",className:"p-no-scrollbar p-z-[9999] !p-max-h-[300px] p-w-[240px] p-rounded-b-md p-border-x p-border-b p-border-gray-300 p-bg-white p-shadow-xl"},r==null?void 0:r.map(s=>L.createElement(Lt,{key:s._id,value:s._id,className:C("p-regular-text p-z-[100] p-flex p-w-full p-items-center p-p-2 p-px-4 hover:p-cursor-pointer",s._id===t._id?"p-bg-indigo-50 p-text-indigo-700":"p-bg-white p-text-gray-900 hover:p-bg-gray-100")},L.createElement("div",{style:{textWrap:"nowrap",textOverflow:"ellipsis",textAlign:"left"},className:"p-mr-auto p-w-full p-overflow-hidden"},s.name)))))}import Vt from"react";import{usePathname as Bt,useRouter as Ot}from"next/navigation";import Re from"react";import{Radio as Tt,RadioGroup as Dt}from"@headlessui/react";function I({value:r,onChange:e,options:t}){return Re.createElement(Dt,{className:"p-flex p-h-10 p-items-center p-gap-1 p-rounded-lg p-border p-border-gray-300 p-bg-white p-p-1",value:r,onChange:e},t.map(o=>Re.createElement(Tt,{key:String(o.value),value:o.value,className:C(o.width||"p-w-[58px]","p-regular-text p-flex p-h-8 p-cursor-pointer p-items-center p-justify-center p-rounded-md p-px-4.5 p-py-2 p-text-center p-text-gray-900 p-transition-all p-duration-200 p-ease-in-out",o.value===!1||o.value==="null"||o.value==="off"?"data-[checked]:p-bg-gray-800 data-[checked]:p-text-white":"data-[checked]:p-bg-indigo-600 data-[checked]:p-text-white",o.value===r&&"p-drop-shadow-3")},o.label)))}function ae(){let{selectedVariant:r,setSelectedVariant:e,emptyVariant:t}=A(),o=Bt(),n=Ot();return Vt.createElement(I,{value:r||t,onChange:a=>{let l=new URLSearchParams(window.location.search);e(String(a)),l.set("prepr_preview_ab",String(a)),n.push(`${o}?${l.toString()}`,{scroll:!1}),n.refresh()},options:[{value:"null",label:"Off",width:"p-w-[58px]"},{value:"A",label:"A",width:"p-w-[82px]"},{value:"B",label:"B",width:"p-w-[82px]"}]})}import _t from"react";function le(){let{editMode:r,setEditMode:e}=y(),t=n=>{e(n==="true"||n===!0)};return _t.createElement(I,{options:[{value:"false",label:"Off"},{value:"true",label:"On"}],value:r.toString(),onChange:t})}import de from"react";import{usePathname as At,useRouter as Ht}from"next/navigation";import Ge from"react";function pe(){return Ge.createElement("svg",{width:"15",height:"14",viewBox:"0 0 15 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Ge.createElement("path",{d:"M3.37109 5.80078C3.20703 6.26562 2.6875 6.51172 2.25 6.34766C1.78516 6.18359 1.53906 5.69141 1.70312 5.22656C2.00391 4.37891 2.49609 3.58594 3.15234 2.92969C5.55859 0.550781 9.41406 0.550781 11.8203 2.92969L12.2852 3.42188V2C12.2852 1.53516 12.6953 1.125 13.1602 1.125C13.6523 1.125 14.0352 1.53516 14.0352 2V5.5C14.0352 5.99219 13.6523 6.375 13.1602 6.375H9.6875C9.19531 6.375 8.8125 5.99219 8.8125 5.5C8.8125 5.03516 9.19531 4.625 9.6875 4.625H11.0547L10.5898 4.16016C8.86719 2.46484 6.10547 2.46484 4.38281 4.16016C3.91797 4.65234 3.5625 5.19922 3.37109 5.80078ZM1.56641 8.17969C1.59375 8.15234 1.64844 8.15234 1.67578 8.15234C1.73047 8.15234 1.75781 8.125 1.8125 8.125H5.3125C5.77734 8.125 6.1875 8.53516 6.1875 9C6.1875 9.49219 5.77734 9.875 5.3125 9.875H3.91797L4.38281 10.3672C6.10547 12.0625 8.86719 12.0625 10.5898 10.3672C11.0547 9.875 11.4102 9.32812 11.6016 8.72656C11.7656 8.26172 12.2852 8.01562 12.7227 8.17969C13.1875 8.34375 13.4336 8.83594 13.2695 9.30078C12.9688 10.1484 12.4766 10.9141 11.8203 11.5977C9.41406 13.9766 5.55859 13.9766 3.15234 11.5977L2.6875 11.1055V12.5C2.6875 12.9922 2.27734 13.375 1.8125 13.375C1.32031 13.375 0.9375 12.9922 0.9375 12.5V9.02734C0.9375 8.97266 0.9375 8.91797 0.9375 8.89062C0.9375 8.83594 0.9375 8.80859 0.964844 8.78125C0.992188 8.64453 1.07422 8.50781 1.18359 8.39844C1.29297 8.28906 1.42969 8.20703 1.56641 8.17969Z",fill:"currentColor"}))}function ce(){let r=Ht(),{resetSelected:e,selectedVariant:t,selectedSegment:o,setEditMode:n,editMode:i}=D(),s=At(),a=o._id!=="null"||t!=="null"||i,l=()=>{e();let p=new URLSearchParams({});p.append("prepr_preview_segment","null"),p.append("prepr_preview_ab","null"),n(!1),r.push(`${s}?${p.toString()}`,{scroll:!1}),r.refresh(),p.delete("prepr_preview_segment"),p.delete("prepr_preview_ab"),r.push(`${s}?${p.toString()}`,{scroll:!1}),r.refresh()},d=C("p-py-2 p-px-3 p-flex p-justify-center p-gap-2 p-items-center p-rounded-md p-regular-text p-h-10 p-w-full md:p-w-[108px]",a&&"p-bg-secondary-400 hover:p-secondary-500 p-cursor-pointer p-text-white",!a&&"p-bg-grey-400 p-text-gray-500");return de.createElement("button",{onClick:l,className:d,disabled:!a},de.createElement(pe,null),de.createElement("span",{className:"p-block sm:p-hidden lg:p-block"},"Reset"))}function K({onClose:r,contentRef:e}){return g.createElement("div",{ref:e,className:"p-box-shadow p-right-0 p-z-[101] p-flex p-w-full p-flex-col p-gap-y-10 p-rounded-lg p-bg-primary-50 p-p-6 sm:p-w-[502px] sm:p-p-10"},g.createElement("div",{className:"p-flex p-items-center p-justify-between p-gap-2"},g.createElement("div",{className:"p-flex p-items-start p-gap-3"},g.createElement(Fe,null),g.createElement("div",{className:"p-flex p-h-6 p-items-center p-rounded p-bg-primary-100 p-px-3 p-py-1 p-text-sm p-text-primary-700"},"toolbar")),g.createElement("button",{onClick:r,className:"p-flex p-h-8 p-w-8 p-cursor-pointer p-items-center p-justify-center p-rounded-md p-bg-primary-100 p-text-gray-700"},g.createElement("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",xmlns:"http://www.w3.org/2000/svg"},g.createElement("path",{d:"M8.17578 1.07031C8.41016 0.816406 8.82031 0.816406 9.05469 1.07031C9.30859 1.30469 9.30859 1.71484 9.05469 1.94922L5.75391 5.25L9.05469 8.57031C9.30859 8.80469 9.30859 9.21484 9.05469 9.44922C8.82031 9.70312 8.41016 9.70312 8.17578 9.44922L4.875 6.14844L1.55469 9.44922C1.32031 9.70312 0.910156 9.70312 0.675781 9.44922C0.421875 9.21484 0.421875 8.80469 0.675781 8.57031L3.97656 5.25L0.675781 1.94922C0.421875 1.71484 0.421875 1.30469 0.675781 1.07031C0.910156 0.816406 1.32031 0.816406 1.55469 1.07031L4.875 4.37109L8.17578 1.07031Z",fill:"currentColor"})))),g.createElement("div",{className:"p-space-y-2"},g.createElement("span",{className:"p-text-sm p-text-grey-400"},"Personalized content"),g.createElement("div",{className:"p-gap p-flex p-flex-wrap p-items-center p-justify-between p-gap-x-6 p-gap-y-2"},g.createElement("h2",{className:"p-text-grey-800 p-font-semibold"},"Apply segment"),g.createElement(se,null)),g.createElement("div",{className:"p-gap p-flex p-flex-wrap p-items-center p-justify-between p-gap-x-6 p-gap-y-2"},g.createElement("h2",{className:"p-text-grey-800 p-font-semibold"},"Show A/B variant"),g.createElement(ae,null))),g.createElement("div",{className:"p-space-y-2"},g.createElement("span",{className:"p-text-sm p-text-grey-400"},"Collaboration"),g.createElement("div",{className:"p-gap p-flex p-flex-wrap p-items-center p-justify-between p-gap-x-6 p-gap-y-2"},g.createElement("h2",{className:"p-text-grey-800 p-font-semibold"},"Edit mode"),g.createElement(le,null))),g.createElement(ce,null))}import Ze from"react";import ze from"react";var It=r=>ze.createElement("svg",x({width:"16",height:"16",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg"},r),ze.createElement("path",{d:"M9.05365 0C5.71033 0 3 2.75516 3 6.15377V15.6309C3 15.8346 3.16248 16 3.36328 16H5.05838C5.25898 16 5.42166 15.8346 5.42166 15.6309V11.0772C6.43342 11.8498 7.69104 12.3077 9.05385 12.3077C12.397 12.3077 15.1077 9.55259 15.1077 6.15397C15.1075 2.75516 12.397 0 9.05365 0ZM9.05365 9.84623C7.04766 9.84623 5.42146 8.19314 5.42146 6.15377C5.42146 4.1146 7.04766 2.46151 9.05365 2.46151C11.0596 2.46151 12.686 4.1146 12.686 6.15377C12.686 8.19293 11.0596 9.84623 9.05365 9.84623Z",fill:"currentColor"})),We=It;function X({onClick:r,className:e}){return Ze.createElement("button",{onClick:r,className:C("cursor-pointer p-z-50 p-flex p-size-9 p-items-center p-justify-center p-rounded-full p-bg-primary-700",e)},Ze.createElement(We,{className:"p-text-white"}))}function O({children:r}){let[e,t]=kt(!1),[o,n]=E.useState(!1),{editMode:i}=y(),{contentRef:s,triggerRef:a}=ke({isVisible:o,onClose:()=>n(!1)});ue(()=>{t(!0)},[]);let l=E.useRef(null),[d,p]=E.useState(""),m=E.useCallback(()=>{if(l.current&&a.current){let f=l.current.offsetHeight,N=window.innerHeight,h=a.current.getBoundingClientRect(),P=h.top+h.height/2-f/2;P=Math.max(32,Math.min(P,N-f-32)),p(P)}},[a]);ue(()=>{if(o)return m(),window.addEventListener("resize",m),()=>window.removeEventListener("resize",m)},[o,m]);let c=()=>{n(!o)};ue(()=>{i&&setTimeout(()=>{n(!1)},150)},[i]);let u=E.createElement(E.Fragment,null,o&&E.createElement("div",{className:"preview-bar-backdrop"}),E.createElement("div",{className:C("preview-bar-container")},E.createElement("div",{className:"p-pr-4",ref:a},E.createElement(X,{onClick:c})),E.createElement("div",{ref:l,style:d!==""?{top:d,position:"fixed",right:0}:{},className:C("preview-bar-popup",o?"p-pointer-events-auto p-opacity-100":"p-pointer-events-none p-opacity-0")},r||E.createElement(K,{onClose:c,contentRef:s}))));return e?Ft(u,document.body):null}O.Content=K;O.Button=X;import{useSearchParams as zt}from"next/navigation";function me(){let r=zt(),[e,t]=Gt(!1),o=n=>{let i=n.key.toLowerCase(),s=(n.ctrlKey||n.metaKey)&&i==="s",a=(n.ctrlKey||n.metaKey)&&i==="p",l=(n.ctrlKey||n.metaKey)&&i==="l";(s||a||l)&&n.preventDefault()};return Rt(()=>{let n=typeof window!="undefined"&&(window==null?void 0:window.parent)!==window.self;if(n){t(!0);let i={name:"prepr_preview_bar",event:"loaded"};window.parent.postMessage(i,"*"),window.addEventListener("keydown",o)}return()=>{n&&window.removeEventListener("keydown",o)}},[]),r.get("prepr_hide_bar")==="true"||e?null:$t.createElement(O,null)}import he from"react";import k from"react";function fe(){var s,a;let{selectedSegment:r,selectedVariant:e,emptySegment:t,emptyVariant:o,isIframe:n}=D(),i=r&&r._id!==((s=t==null?void 0:t._id)!=null?s:"null")||e&&e!==(o!=null?o:"null");return n?null:k.createElement("div",{className:"p-z-[998] p-flex p-gap-2"},i&&k.createElement("div",{className:"p-flex p-items-center p-gap-2 p-rounded-full p-bg-primary-700 p-px-4 p-py-2 p-text-xs p-font-medium p-text-white p-shadow-lg"},k.createElement("span",{className:"p-text-[10px] p-text-white/60"},"viewing as"),r&&r._id!==((a=t==null?void 0:t._id)!=null?a:"null")&&k.createElement("span",{className:"max-w-[120px] p-inline-block p-truncate"},r.name),e&&e!==(o!=null?o:"null")&&k.createElement("span",{className:"max-w-[80px] p-inline-block p-truncate p-rounded p-bg-white/20 p-px-2"},e)))}import q from"react";import je from"react";function ge(r){return je.createElement("svg",x({width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r),je.createElement("path",{d:"M4.22 4.22a.75.75 0 0 1 1.06 0L8 6.94l2.72-2.72a.75.75 0 1 1 1.06 1.06L9.06 8l2.72 2.72a.75.75 0 1 1-1.06 1.06L8 9.06l-2.72 2.72a.75.75 0 1 1-1.06-1.06L6.94 8 4.22 5.28a.75.75 0 0 1 0-1.06z",fill:"currentColor"}))}function ve(){let{editMode:r,setEditMode:e,isIframe:t}=D();return!r||t?null:q.createElement("div",{className:"p-z-[999] p-flex"},q.createElement("button",{type:"button",onClick:()=>e&&e(!1),className:"p-flex p-items-center p-gap-2 p-rounded-full p-bg-primary-50 p-px-4 p-py-2 p-text-xs p-font-medium p-text-gray-800 p-shadow-lg p-transition-colors p-duration-150 hover:p-bg-primary-100","aria-label":"Close edit mode"},q.createElement("span",null,"Edit mode"),q.createElement(ge,{className:"transition-colors duration-150 p-h-4 p-w-4 p-text-gray-500 hover:p-text-gray-700"})))}function xe(){return he.createElement("div",{className:"p-fixed p-bottom-6 p-right-6 p-z-[999] p-flex p-gap-3"},he.createElement(fe,null),he.createElement(ve,null))}function Ue(){let{editMode:r}=y();return ne(r),J.createElement(J.Fragment,null,J.createElement(me,null),J.createElement(xe,null))}export{Ue as PreprPreviewBar,ft as PreprPreviewBarProvider,D as usePreprPreviewBar};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|