@preprio/prepr-nextjs 1.0.0-beta.8 → 1.0.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.
@@ -93,7 +93,7 @@ function ResetButton({
93
93
  handleClick
94
94
  }) {
95
95
  const classes = (0, import_classnames.default)(
96
- "prp-py-3 prp-px-4 prp-flex prp-gap-2 prp-items-center rounded-md prp-regular-text h-10",
96
+ "prp-py-2 prp-px-3 prp-flex prp-gap-2 prp-items-center rounded-md prp-regular-text prp-h-10",
97
97
  enabled && "prp-bg-orange-400 hover:prp-orange-500 prp-cursor-pointer prp-text-white",
98
98
  !enabled && "prp-bg-grey-400 prp-text-gray-500"
99
99
  );
@@ -105,20 +105,19 @@ function ResetButton({
105
105
  disabled: !enabled
106
106
  },
107
107
  /* @__PURE__ */ import_react2.default.createElement(import_fa6.FaRotate, null),
108
- /* @__PURE__ */ import_react2.default.createElement("span", { className: "prp-hidden lg:prp-block" }, "Reset")
108
+ /* @__PURE__ */ import_react2.default.createElement("span", { className: "prp-block sm:prp-hidden lg:prp-block" }, "Reset")
109
109
  );
110
110
  }
111
111
 
112
112
  // src/components/PreprPreviewBar.tsx
113
113
  var import_react6 = require("@headlessui/react");
114
- var import_fa63 = require("react-icons/fa6");
114
+ var import_fa62 = require("react-icons/fa6");
115
115
 
116
116
  // src/components/InfoPopover.tsx
117
117
  var import_react3 = require("@headlessui/react");
118
118
  var import_fa = require("react-icons/fa");
119
119
  var import_react4 = __toESM(require("react"));
120
- var import_fa62 = require("react-icons/fa6");
121
- function InfoPopover({ title, text, link }) {
120
+ function InfoPopover({ title, text }) {
122
121
  return /* @__PURE__ */ import_react4.default.createElement(import_react3.Popover, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.PopoverButton, { className: "prp-ring-0 focus:prp-ring-0 prp-font-bold prp-text-indigo-300 prp-text-xs hover:prp-text-indigo-400 prp-block" }, /* @__PURE__ */ import_react4.default.createElement(import_fa.FaInfoCircle, null)), /* @__PURE__ */ import_react4.default.createElement(
123
122
  import_react3.PopoverPanel,
124
123
  {
@@ -126,34 +125,47 @@ function InfoPopover({ title, text, link }) {
126
125
  anchor: "bottom",
127
126
  className: "prp-z-[1000] prp-p-4"
128
127
  },
129
- /* @__PURE__ */ import_react4.default.createElement("div", { className: " prp-bg-white rounded-lg p-6 prp-dropshadow-popover prp-space-y-3 prp-max-w-[312px]" }, /* @__PURE__ */ import_react4.default.createElement("span", { className: "prp-text-base prp-font-bold prp-leading-tight prp-text-gray-900" }, title), /* @__PURE__ */ import_react4.default.createElement("div", { className: "prp-space-y-2" }, /* @__PURE__ */ import_react4.default.createElement("span", { className: "prp-text-sm" }, text), /* @__PURE__ */ import_react4.default.createElement(
130
- "a",
131
- {
132
- href: link,
133
- className: "prp-font-black prp-text-sm prp-flex prp-gap-1 prp-items-center prp-text-indigo-700"
134
- },
135
- "Learn more ",
136
- /* @__PURE__ */ import_react4.default.createElement(import_fa62.FaArrowUpRightFromSquare, null)
137
- )))
128
+ /* @__PURE__ */ import_react4.default.createElement("div", { className: " prp-bg-white rounded-lg p-6 prp-dropshadow-popover prp-space-y-3 prp-max-w-[312px]" }, /* @__PURE__ */ import_react4.default.createElement("span", { className: "prp-text-base prp-font-bold prp-leading-tight prp-text-gray-900" }, title), /* @__PURE__ */ import_react4.default.createElement("div", { className: "prp-space-y-2" }, /* @__PURE__ */ import_react4.default.createElement("span", { className: "prp-text-sm" }, text)))
138
129
  ));
139
130
  }
140
131
 
141
132
  // src/components/PreprPreviewBar.tsx
133
+ var import_clsx = require("clsx");
142
134
  function PreprPreviewBar(props) {
143
- var _a;
144
135
  const { activeSegment, activeVariant, data } = props;
145
- if ((data == null ? void 0 : data.items) && (data == null ? void 0 : data.items[(data == null ? void 0 : data.items.length) - 1].reference_id) !== "null") {
146
- data.items.push({
147
- reference_id: "null",
148
- body: "All other users"
149
- });
136
+ const [segmentList, setSegmentList] = (0, import_react5.useState)(data == null ? void 0 : data.items);
137
+ const [isToggled, setIsToggled] = (0, import_react5.useState)(false);
138
+ const searchParams = (0, import_navigation.useSearchParams)();
139
+ if (searchParams.get("prepr_hide_bar") === "true") {
140
+ return null;
141
+ }
142
+ if ((window == null ? void 0 : window.parent) !== window.self) {
143
+ return null;
144
+ }
145
+ if (segmentList && segmentList[0].reference_id !== "null") {
146
+ setSegmentList([
147
+ {
148
+ id: "null",
149
+ reference_id: "null",
150
+ body: "All other users"
151
+ },
152
+ ...segmentList
153
+ ]);
150
154
  }
151
155
  const emptyVariant = "A";
152
156
  const emptySegment = {
153
157
  body: "Choose segment"
154
158
  };
159
+ (0, import_react5.useEffect)(() => {
160
+ if (!window) {
161
+ return;
162
+ }
163
+ if (window.localStorage.getItem("isToggled")) {
164
+ setIsToggled(window.localStorage.getItem("isToggled") === "true");
165
+ }
166
+ });
155
167
  const [selectedSegment, setSelectedSegment] = (0, import_react5.useState)(
156
- data.items && data.items.filter(
168
+ segmentList && segmentList.filter(
157
169
  (segmentData) => segmentData === activeSegment
158
170
  )[0] || emptySegment
159
171
  );
@@ -162,112 +174,198 @@ function PreprPreviewBar(props) {
162
174
  );
163
175
  const router = (0, import_navigation.useRouter)();
164
176
  const pathname = (0, import_navigation.usePathname)();
165
- const handleUpdateVariant = (variant) => {
166
- setSelectedVariant(variant);
167
- const params = new URLSearchParams({});
168
- params.append("a-b-testing", variant);
169
- router.push(`${pathname}?${params.toString()}`, {
170
- scroll: false
171
- });
172
- router.refresh();
173
- };
174
- const handleUpdateSegment = (value) => {
175
- setSelectedSegment(value);
176
- const segment = value.reference_id;
177
- if (!segment) {
178
- return;
177
+ const handleSearchParams = (key, value) => {
178
+ const params = new URLSearchParams(window.location.search);
179
+ if (key === "prepr_preview_ab") {
180
+ setSelectedVariant(value);
181
+ params.set(key, value);
179
182
  }
180
- const params = new URLSearchParams({});
181
- if (segment !== "Choose segment") {
182
- params.append("segments", segment);
183
- } else {
184
- params.append("segments", "null");
183
+ if (key === "prepr_preview_segment" && value) {
184
+ setSelectedSegment(value);
185
+ params.set(key, value.reference_id);
186
+ }
187
+ for (const [key2, value2] of params.entries()) {
188
+ if (value2 === "null" || value2 === null || value2 === void 0) {
189
+ params.delete(key2);
190
+ }
185
191
  }
186
192
  router.push(`${pathname}?${params.toString()}`, {
187
193
  scroll: false
188
194
  });
189
195
  router.refresh();
190
196
  };
197
+ const handleToggle = () => {
198
+ setIsToggled(!isToggled);
199
+ window.localStorage.setItem("isToggled", String(!isToggled));
200
+ };
191
201
  const handleReset = () => {
192
202
  setSelectedSegment(emptySegment);
193
203
  setSelectedVariant(emptyVariant);
194
204
  const params = new URLSearchParams({});
195
- params.append("segments", "null");
196
- params.append("a-b-testing", "null");
205
+ params.append("prepr_preview_segment", "null");
206
+ params.append("prepr_preview_ab", "null");
197
207
  router.push(`${pathname}?${params.toString()}`, {
198
208
  scroll: false
199
209
  });
200
210
  router.refresh();
201
211
  };
202
- return /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-py-4 prp-px-5 md:prp-px-19.5 prp-bg-indigo-default prp-sticky prp-top-0 prp-z-[1000] prp-base" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-gap-y-4 prp-gap-x-6 prp-flex-wrap prp-justify-between" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-gap-6 prp-items-center" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-h-full prp-flex prp-justify-center prp-items-center" }, /* @__PURE__ */ import_react5.default.createElement(PreprLogo, null)), /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-hidden lg:prp-block prp-pb-0.5 prp-text-white prp-text-lg prp-text-bold prp-mr-10" }, "Adaptive Preview")), /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-w-full md:prp-w-auto prp-gap-4 lg:prp-gap-6 prp-items-center" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-gap-4" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-regular-text prp-text-white 2xl:prp-flex prp-items-center prp-gap-2 prp-hidden" }, /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-pb-0.5" }, "Apply segment"), /* @__PURE__ */ import_react5.default.createElement(
203
- InfoPopover,
204
- {
205
- title: "Adaptive Preview",
206
- text: "Choose a segment to see how it's displayed.",
207
- link: "Learn more"
208
- }
209
- )), /* @__PURE__ */ import_react5.default.createElement(
210
- import_react6.Listbox,
212
+ return /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-z-[999] prp-isolate prp-flex prp-base prp-w-full prp-sticky prp-top-0" }, /* @__PURE__ */ import_react5.default.createElement(
213
+ "div",
211
214
  {
212
- value: selectedSegment.slug,
213
- onChange: handleUpdateSegment
215
+ className: (0, import_clsx.clsx)(
216
+ "prp-py-4 prp-px-5 prp-bg-purple-900 prp-w-full prp-overflow-hidden",
217
+ isToggled ? "prp-sticky prp-top-0" : "prp-hidden"
218
+ )
214
219
  },
215
- /* @__PURE__ */ import_react5.default.createElement(import_react6.ListboxButton, { className: "prp-h-10 prp-flex-initial prp-w-[13rem] md:prp-w-[15rem] prp-max-w-[15rem] prp-rounded-md data-[open]:prp-rounded-b-none data-[open]:prp-border-b-white prp-border prp-border-gray-300 prp-items-center prp-bg-white prp-justify-center prp-px-4 prp-regular-text prp-text-gray-500" }, /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-flex prp-items-center prp-justify-between" }, /* @__PURE__ */ import_react5.default.createElement("span", null, selectedSegment.body), /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-text-gray-900" }, /* @__PURE__ */ import_react5.default.createElement(import_fa63.FaCaretDown, { className: "prp-w-3" })))),
216
- /* @__PURE__ */ import_react5.default.createElement(
217
- import_react6.ListboxOptions,
220
+ /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-max-w-7xl prp-mx-auto prp-gap-y-4 prp-h-full prp-gap-x-6 prp-flex-col sm:prp-flex-row prp-flex-wrap" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-gap-6 prp-items-center" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-h-full prp-flex prp-justify-center prp-items-center" }, /* @__PURE__ */ import_react5.default.createElement(PreprLogo, null)), /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-hidden lg:prp-block prp-pb-0.5 prp-text-white prp-text-lg prp-text-bold" }, "Adaptive Preview")), /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-flex-wrap prp-gap-2 md:prp-gap-4 prp-ml-0 sm:prp-ml-auto md:prp-items-center" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-flex-col md:prp-flex-row prp-gap-2 md:prp-gap-4 prp-flex-1" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-regular-text prp-text-white prp-items-center prp-gap-2 prp-hidden lg:prp-flex" }, /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-pb-0.5 prp-text-xs md:prp-text-base prp-block md:prp-hidden xl:prp-block" }, "Apply segment"), /* @__PURE__ */ import_react5.default.createElement(
221
+ InfoPopover,
222
+ {
223
+ title: "Adaptive Preview",
224
+ text: "Choose a segment to see how it's displayed."
225
+ }
226
+ )), /* @__PURE__ */ import_react5.default.createElement(
227
+ import_react6.Listbox,
218
228
  {
219
- anchor: "bottom",
220
- className: "prp-z-[9999] prp-w-[var(--button-width)] prp-pb-2 prp-rounded-b-md prp-bg-white"
229
+ value: selectedSegment.slug,
230
+ onChange: (value) => handleSearchParams(
231
+ "prepr_preview_segment",
232
+ value
233
+ )
221
234
  },
222
- (_a = data == null ? void 0 : data.items) == null ? void 0 : _a.map((segment) => /* @__PURE__ */ import_react5.default.createElement(
223
- import_react6.ListboxOption,
235
+ /* @__PURE__ */ import_react5.default.createElement(import_react6.ListboxButton, { className: "prp-h-10 prp-flex prp-gap-2 prp-w-full md:prp-w-48 prp-flex-nowrap prp-text-nowrap prp-overflow-hidden prp-text-ellipsis prp-rounded-lg data-[open]:prp-border-b-white prp-border prp-border-gray-300 prp-items-center prp-bg-white prp-px-2 md:prp-px-4 prp-regular-text prp-text-gray-500" }, /* @__PURE__ */ import_react5.default.createElement(
236
+ "div",
224
237
  {
225
- className: "prp-px-4 prp-py-2 hover:prp-bg-gray-100 prp-bg-white prp-text-gray-900 prp-regular-text prp-z-[100] hover:prp-cursor-pointer prp-w-full",
226
- key: segment.reference_id,
227
- value: segment
238
+ style: {
239
+ textWrap: "nowrap",
240
+ textOverflow: "ellipsis",
241
+ textAlign: "left"
242
+ },
243
+ className: "prp-w-full prp-overflow-hidden prp-mr-auto"
228
244
  },
229
- segment.body
230
- ))
231
- )
232
- )), /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-gap-4" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-regular-text prp-text-white 2xl:prp-flex prp-items-center prp-gap-2 prp-hidden" }, /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-pb-0.5" }, "Show A/B variant"), /* @__PURE__ */ import_react5.default.createElement(
233
- InfoPopover,
234
- {
235
- title: "A/B Testing",
236
- text: "Choose between two different versions of a page to see which one performs better.",
237
- link: "Learn more"
238
- }
239
- )), /* @__PURE__ */ import_react5.default.createElement(
240
- import_react6.RadioGroup,
241
- {
242
- className: "prp-rounded-lg prp-p-1 prp-border prp-border-gray-300 prp-bg-white prp-flex prp-gap-1 prp-h-10 prp-items-center",
243
- value: selectedVariant,
244
- onChange: handleUpdateVariant
245
- },
246
- /* @__PURE__ */ import_react5.default.createElement(
247
- import_react6.Radio,
245
+ selectedSegment.body
246
+ ), /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-text-gray-400" }, /* @__PURE__ */ import_react5.default.createElement(import_fa62.FaCaretDown, { className: "prp-w-3" }))),
247
+ /* @__PURE__ */ import_react5.default.createElement(
248
+ import_react6.ListboxOptions,
249
+ {
250
+ anchor: "top start",
251
+ className: "prp-z-[9999] prp-rounded-md prp-bg-white prp-h-1/3 prp-mt-2 prp-shadow-xl"
252
+ },
253
+ segmentList == null ? void 0 : segmentList.map((segment) => /* @__PURE__ */ import_react5.default.createElement(
254
+ import_react6.ListboxOption,
255
+ {
256
+ key: segment.id,
257
+ value: segment,
258
+ className: (0, import_clsx.clsx)(
259
+ "prp-flex prp-items-center prp-p-2 prp-regular-text prp-z-[100] hover:prp-cursor-pointer prp-w-full prp-pr-4",
260
+ segment.reference_id === selectedSegment.reference_id ? "prp-bg-indigo-50 prp-text-indigo-700" : "hover:prp-bg-gray-100 prp-bg-white prp-text-gray-900"
261
+ )
262
+ },
263
+ /* @__PURE__ */ import_react5.default.createElement(
264
+ import_fa62.FaCheck,
265
+ {
266
+ className: (0, import_clsx.clsx)(
267
+ "prp-size-3 prp-shrink-0 prp-mr-1",
268
+ segment.reference_id === selectedSegment.reference_id ? "prp-visible" : "prp-invisible"
269
+ )
270
+ }
271
+ ),
272
+ /* @__PURE__ */ import_react5.default.createElement(
273
+ "div",
274
+ {
275
+ style: {
276
+ textWrap: "nowrap",
277
+ textOverflow: "ellipsis",
278
+ textAlign: "left"
279
+ },
280
+ className: "prp-w-full prp-overflow-hidden prp-mr-auto"
281
+ },
282
+ segment.body
283
+ )
284
+ ))
285
+ )
286
+ )), /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-flex-initial prp-flex-col md:prp-flex-row prp-gap-2 md:prp-gap-4" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-regular-text prp-text-white prp-items-center prp-gap-2 prp-hidden lg:prp-flex" }, /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-pb-0.5 prp-text-xs md:prp-text-base prp-block md:prp-hidden xl:prp-block" }, "Show A/B variant"), /* @__PURE__ */ import_react5.default.createElement(
287
+ InfoPopover,
288
+ {
289
+ title: "A/B Testing",
290
+ text: "Choose between two different versions of a page to see which one performs better."
291
+ }
292
+ )), /* @__PURE__ */ import_react5.default.createElement(
293
+ import_react6.RadioGroup,
248
294
  {
249
- value: "A",
250
- className: "prp-py-2 prp-px-3 prp-rounded-md prp-text-gray-900 prp-regular-text data-[checked]:prp-dropshadow\n data-[checked]:prp-bg-indigo-600 data-[checked]:prp-text-white prp-h-8 prp-text-center prp-flex prp-items-center hover:prp-cursor-pointer\n "
295
+ className: "prp-rounded-lg prp-p-1 prp-mr-auto prp-border prp-border-gray-300 prp-bg-white prp-flex prp-gap-1 prp-h-10 prp-items-center",
296
+ value: selectedVariant,
297
+ onChange: (value) => handleSearchParams(
298
+ "prepr_preview_ab",
299
+ value
300
+ )
251
301
  },
252
- /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-hidden md:prp-inline prp-mr-1" }, "Variant", " "),
253
- "A"
254
- ),
302
+ /* @__PURE__ */ import_react5.default.createElement(
303
+ import_react6.Radio,
304
+ {
305
+ value: "A",
306
+ className: "prp-py-2 prp-px-3 prp-rounded-md prp-text-gray-900 prp-regular-text data-[checked]:prp-dropshadow\n data-[checked]:prp-bg-indigo-600 data-[checked]:prp-text-white prp-h-8 prp-text-center prp-flex prp-items-center hover:prp-cursor-pointer\n "
307
+ },
308
+ /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-hidden md:prp-inline prp-mr-1" }, "Variant", " "),
309
+ "A"
310
+ ),
311
+ /* @__PURE__ */ import_react5.default.createElement(
312
+ import_react6.Radio,
313
+ {
314
+ value: "B",
315
+ className: "prp-py-2 prp-px-3 prp-rounded-md prp-text-gray-900 prp-regular-text data-[checked]:prp-dropshadow\n data-[checked]:prp-bg-indigo-600 data-[checked]:prp-text-white prp-h-8 prp-text-center prp-flex prp-items-center hover:prp-cursor-pointer\n "
316
+ },
317
+ /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-hidden md:prp-inline prp-mr-1" }, "Variant", " "),
318
+ "B"
319
+ )
320
+ )), /* @__PURE__ */ import_react5.default.createElement("div", { className: "prp-flex prp-flex-initial prp-mt-auto md:prp-h-full" }, /* @__PURE__ */ import_react5.default.createElement(
321
+ ResetButton,
322
+ {
323
+ handleClick: handleReset,
324
+ enabled: selectedSegment.reference_id || selectedVariant !== "A"
325
+ }
326
+ ))))
327
+ ), /* @__PURE__ */ import_react5.default.createElement(
328
+ "div",
329
+ {
330
+ className: (0, import_clsx.clsx)(
331
+ "prp-w-full prp-flex",
332
+ isToggled ? "-prp-bottom-6 prp-absolute" : "prp-top-0 prp-fixed"
333
+ )
334
+ },
255
335
  /* @__PURE__ */ import_react5.default.createElement(
256
- import_react6.Radio,
336
+ "div",
257
337
  {
258
- value: "B",
259
- className: "prp-py-2 prp-px-3 prp-rounded-md prp-text-gray-900 prp-regular-text data-[checked]:prp-dropshadow\n data-[checked]:prp-bg-indigo-600 data-[checked]:prp-text-white prp-h-8 prp-text-center prp-flex prp-items-center hover:prp-cursor-pointer\n "
338
+ className: (0, import_clsx.clsx)(
339
+ "prp-w-auto prp-mx-auto prp-flex prp-items-center prp-border-t-2 prp-border-purple-900"
340
+ )
260
341
  },
261
- /* @__PURE__ */ import_react5.default.createElement("span", { className: "prp-hidden md:prp-inline prp-mr-1" }, "Variant", " "),
262
- "B"
342
+ /* @__PURE__ */ import_react5.default.createElement(
343
+ "div",
344
+ {
345
+ className: `prp-relative prp-z-[100] prp-mx-auto prp-bg-purple-900 prp-regular-text prp-text-white prp-px-2 prp-py-0.5 prp-rounded-b-lg prp-flex prp-items-center prp-cursor-pointer`,
346
+ onClick: handleToggle
347
+ },
348
+ "Adaptive Preview",
349
+ isToggled ? /* @__PURE__ */ import_react5.default.createElement(
350
+ "svg",
351
+ {
352
+ xmlns: "http://www.w3.org/2000/svg",
353
+ viewBox: "0 0 512 512",
354
+ className: "prp-size-3 prp-fill-white prp-ml-2"
355
+ },
356
+ /* @__PURE__ */ import_react5.default.createElement("path", { d: "M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z" })
357
+ ) : /* @__PURE__ */ import_react5.default.createElement(
358
+ "svg",
359
+ {
360
+ xmlns: "http://www.w3.org/2000/svg",
361
+ viewBox: "0 0 512 512",
362
+ className: "prp-size-3 prp-fill-white prp-ml-2"
363
+ },
364
+ /* @__PURE__ */ import_react5.default.createElement("path", { d: "M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z" })
365
+ )
366
+ )
263
367
  )
264
- )), /* @__PURE__ */ import_react5.default.createElement(
265
- ResetButton,
266
- {
267
- handleClick: handleReset,
268
- enabled: selectedSegment.reference_id || selectedVariant !== "A"
269
- }
270
- ))));
368
+ ));
271
369
  }
272
370
  // Annotate the CommonJS export names for ESM import in node:
273
371
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components.ts","../src/components/PreprPreviewBar.tsx","../src/components/PreprLogo.tsx","../src/components/ResetButton.tsx","../src/components/InfoPopover.tsx"],"sourcesContent":["'use client'\n\nimport \"./main.css\"\nimport {PreprPreviewBar} from './components/PreprPreviewBar'\n\nexport {PreprPreviewBar}","'use client'\n\nimport { usePathname, useRouter } from 'next/navigation'\nimport React, { useState } from 'react'\n\nimport '../main.css'\nimport PreprLogo from './PreprLogo'\nimport ResetButton from './ResetButton'\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n Radio,\n RadioGroup,\n} from '@headlessui/react'\nimport { FaCaretDown } from 'react-icons/fa6'\nimport InfoPopover from './InfoPopover'\n\nexport function PreprPreviewBar(props: {\n activeSegment?: string | null\n activeVariant?: string | null\n data?: any\n}) {\n const { activeSegment, activeVariant, data } = props\n\n if (\n data?.items &&\n data?.items[data?.items.length - 1].reference_id !== 'null'\n ) {\n data.items.push({\n reference_id: 'null',\n body: 'All other users',\n })\n }\n\n const emptyVariant = 'A'\n const emptySegment = {\n body: 'Choose segment',\n }\n const [selectedSegment, setSelectedSegment] = useState(\n (data.items &&\n data.items.filter(\n (segmentData: any) => segmentData === activeSegment\n )[0]) ||\n emptySegment\n )\n\n const [selectedVariant, setSelectedVariant] = useState<string | null>(\n activeVariant || 'A'\n )\n\n const router = useRouter()\n const pathname = usePathname()\n\n const handleUpdateVariant = (variant: any) => {\n setSelectedVariant(variant)\n\n const params = new URLSearchParams({})\n\n params.append('a-b-testing', variant as string)\n\n router.push(`${pathname}?${params.toString()}`, {\n scroll: false,\n })\n router.refresh()\n }\n\n const handleUpdateSegment = (value: any) => {\n setSelectedSegment(value)\n\n const segment = value.reference_id\n\n if (!segment) {\n return\n }\n\n const params = new URLSearchParams({})\n\n if (segment !== 'Choose segment') {\n params.append('segments', segment as string)\n } else {\n params.append('segments', 'null')\n }\n\n router.push(`${pathname}?${params.toString()}`, {\n scroll: false,\n })\n router.refresh()\n }\n\n const handleReset = () => {\n setSelectedSegment(emptySegment)\n setSelectedVariant(emptyVariant)\n\n const params = new URLSearchParams({})\n params.append('segments', 'null')\n params.append('a-b-testing', 'null')\n\n router.push(`${pathname}?${params.toString()}`, {\n scroll: false,\n })\n router.refresh()\n }\n\n return (\n <div className=\"prp-py-4 prp-px-5 md:prp-px-19.5 prp-bg-indigo-default prp-sticky prp-top-0 prp-z-[1000] prp-base\">\n <div className=\"prp-flex prp-gap-y-4 prp-gap-x-6 prp-flex-wrap prp-justify-between\">\n {/* Logo & Text */}\n <div className=\"prp-flex prp-gap-6 prp-items-center\">\n <div className=\"prp-h-full prp-flex prp-justify-center prp-items-center\">\n <PreprLogo />\n </div>\n <div className=\"prp-hidden lg:prp-block prp-pb-0.5 prp-text-white prp-text-lg prp-text-bold prp-mr-10\">\n Adaptive Preview\n </div>\n </div>\n\n <div className=\"prp-flex prp-w-full md:prp-w-auto prp-gap-4 lg:prp-gap-6 prp-items-center\">\n <div className=\"prp-flex prp-gap-4\">\n <div className=\"prp-regular-text prp-text-white 2xl:prp-flex prp-items-center prp-gap-2 prp-hidden\">\n <span className=\"prp-pb-0.5\">Apply segment</span>\n <InfoPopover\n title={'Adaptive Preview'}\n text={\n \"Choose a segment to see how it's displayed.\"\n }\n link={'Learn more'}\n />\n </div>\n <Listbox\n value={selectedSegment.slug}\n onChange={handleUpdateSegment}\n >\n <ListboxButton className=\"prp-h-10 prp-flex-initial prp-w-[13rem] md:prp-w-[15rem] prp-max-w-[15rem] prp-rounded-md data-[open]:prp-rounded-b-none data-[open]:prp-border-b-white prp-border prp-border-gray-300 prp-items-center prp-bg-white prp-justify-center prp-px-4 prp-regular-text prp-text-gray-500\">\n <span className=\"prp-flex prp-items-center prp-justify-between\">\n <span>{selectedSegment.body}</span>\n <span className=\"prp-text-gray-900\">\n <FaCaretDown className=\"prp-w-3\" />\n </span>\n </span>\n </ListboxButton>\n <ListboxOptions\n anchor=\"bottom\"\n className=\"prp-z-[9999] prp-w-[var(--button-width)] prp-pb-2 prp-rounded-b-md prp-bg-white\"\n >\n {data?.items?.map((segment: any) => (\n <ListboxOption\n className=\"prp-px-4 prp-py-2 hover:prp-bg-gray-100 prp-bg-white prp-text-gray-900 prp-regular-text prp-z-[100] hover:prp-cursor-pointer prp-w-full\"\n key={segment.reference_id}\n value={segment}\n >\n {segment.body}\n </ListboxOption>\n ))}\n </ListboxOptions>\n </Listbox>\n </div>\n\n <div className=\"prp-flex prp-gap-4\">\n <div className=\"prp-regular-text prp-text-white 2xl:prp-flex prp-items-center prp-gap-2 prp-hidden\">\n <span className=\"prp-pb-0.5\">Show A/B variant</span>\n <InfoPopover\n title={'A/B Testing'}\n text={\n 'Choose between two different versions of a page to see which one performs better.'\n }\n link={'Learn more'}\n />\n </div>\n\n <RadioGroup\n className=\"prp-rounded-lg prp-p-1 prp-border prp-border-gray-300 prp-bg-white prp-flex prp-gap-1 prp-h-10 prp-items-center\"\n value={selectedVariant}\n onChange={handleUpdateVariant}\n >\n <Radio\n value={'A'}\n className=\"prp-py-2 prp-px-3 prp-rounded-md prp-text-gray-900 prp-regular-text data-[checked]:prp-dropshadow\n data-[checked]:prp-bg-indigo-600 data-[checked]:prp-text-white prp-h-8 prp-text-center prp-flex prp-items-center hover:prp-cursor-pointer\n \"\n >\n <span className=\"prp-hidden md:prp-inline prp-mr-1\">\n Variant{' '}\n </span>\n A\n </Radio>\n <Radio\n value={'B'}\n className=\"prp-py-2 prp-px-3 prp-rounded-md prp-text-gray-900 prp-regular-text data-[checked]:prp-dropshadow\n data-[checked]:prp-bg-indigo-600 data-[checked]:prp-text-white prp-h-8 prp-text-center prp-flex prp-items-center hover:prp-cursor-pointer\n \"\n >\n <span className=\"prp-hidden md:prp-inline prp-mr-1\">\n Variant{' '}\n </span>\n B\n </Radio>\n </RadioGroup>\n </div>\n\n <ResetButton\n handleClick={handleReset}\n enabled={\n selectedSegment.reference_id ||\n selectedVariant !== 'A'\n }\n />\n </div>\n </div>\n </div>\n )\n}\n","import React from \"react\";\n\nexport default function PreprLogo() {\n return (\n <svg width=\"75\" height=\"20\" viewBox=\"0 0 75 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M28.8527 1.56704C28.8588 1.55728 28.8647 1.54752 28.8701 1.53728L28.872 1.53392C28.872 1.53392 28.8719 1.53376 28.8718 1.5337C28.9044 1.47094 28.9231 1.4001 28.9231 1.32481C28.9231 1.15609 28.8307 1.00899 28.6932 0.928662C28.6918 0.927198 28.6902 0.924705 28.6888 0.923892C25.7969 -0.628737 21.9356 -0.26169 19.3787 2.32725C17.9433 3.78059 17.2104 5.64985 17.1726 7.52828H17.1702V14.903C17.1702 14.9031 17.1702 14.9031 17.1702 14.9031C17.1702 15.1575 17.3798 15.3639 17.6384 15.3639H19.8237C20.0823 15.3639 20.292 15.1575 20.292 14.9031C20.292 14.9031 20.292 14.9031 20.292 14.903V7.68194H20.2932C20.2931 6.52406 20.7324 5.36498 21.617 4.4692C23.1961 2.8704 25.5272 2.75034 27.1344 3.59213C27.1394 3.59484 27.1446 3.59728 27.1496 3.59988C27.1532 3.60178 27.1569 3.60346 27.1605 3.60541L27.161 3.6053C27.2219 3.63376 27.2898 3.65018 27.3617 3.65018C27.5444 3.65018 27.7024 3.54676 27.7796 3.39641L28.8527 1.56704Z\"\n fill=\"white\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M7.80452 0C3.49433 0 0 3.43924 0 7.68195V19.5124C0 19.7667 0.209581 19.9732 0.468282 19.9732H2.65358C2.65363 19.9732 2.65363 19.9732 2.65363 19.9732C2.91222 19.9732 3.12186 19.7667 3.12186 19.5124V13.8279C4.42627 14.7924 6.04758 15.364 7.80457 15.364C12.1147 15.364 15.6094 11.9247 15.6094 7.68206C15.6094 3.4393 12.1147 0 7.80452 0ZM7.80457 12.2912C5.21845 12.2912 3.12186 10.2275 3.12186 7.68195C3.12186 5.13631 5.21845 3.07279 7.80457 3.07279C10.3906 3.07279 12.4874 5.13631 12.4874 7.68195C12.4874 10.2275 10.3906 12.2912 7.80457 12.2912Z\"\n fill=\"white\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M53.8288 0C49.5187 0 46.0243 3.43924 46.0243 7.68195V19.5124C46.0243 19.7667 46.2339 19.9731 46.4926 19.9732H48.6779C48.9365 19.9732 49.1462 19.7667 49.1462 19.5124V13.828C50.4506 14.7924 52.0719 15.364 53.8289 15.364C58.139 15.364 61.6337 11.9247 61.6337 7.68211C61.6337 3.4393 58.139 0 53.8288 0ZM53.8289 12.2912C51.2427 12.2912 49.1462 10.2276 49.1462 7.68195C49.1462 5.13631 51.2427 3.07279 53.8289 3.07279C56.4149 3.07279 58.5117 5.13631 58.5117 7.68195C58.5117 10.2276 56.4149 12.2912 53.8289 12.2912Z\"\n fill=\"white\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M44.4094 7.83561C44.4094 3.59285 40.9148 0 36.6046 0C32.2944 0 28.8 3.4393 28.8 7.68206C28.8 11.9247 32.2944 15.364 36.6046 15.364C39.0444 15.364 41.0568 14.2635 42.3189 12.9136C42.3191 12.9135 42.3193 12.9133 42.3194 12.9132C42.3204 12.9121 42.3214 12.9112 42.3224 12.9101V12.91C42.4051 12.8268 42.4563 12.7131 42.4563 12.5876C42.4563 12.4549 42.3989 12.3357 42.3077 12.2515V12.2509L42.3012 12.2456C42.2893 12.2351 42.2769 12.2251 42.2639 12.2158L40.5942 10.8782C40.5118 10.8069 40.4041 10.7634 40.2857 10.7634C40.1386 10.7634 40.0075 10.8302 39.9217 10.9346C39.1801 11.6777 38.0073 12.2911 36.6047 12.2911C34.0186 12.2911 31.922 10.2275 31.922 7.68184C31.922 5.13621 34.0186 3.07268 36.6047 3.07268C38.6433 3.07268 40.377 4.3555 41.02 6.14547H36.9949C36.7362 6.14553 36.5266 6.35187 36.5266 6.6064L36.5265 8.75734C36.5265 9.01182 36.7361 9.21827 36.9949 9.21827H43.7851C43.7978 9.21827 43.8104 9.21734 43.823 9.21637C43.8356 9.2174 43.8481 9.21827 43.8608 9.21827C44.0687 9.21827 44.2449 9.08466 44.3059 8.90011L44.3113 8.90098C44.314 8.88434 44.3166 8.86829 44.3192 8.85219C44.3225 8.83653 44.325 8.8206 44.3268 8.80434C44.3809 8.46076 44.4094 8.21572 44.4094 7.83561Z\"\n fill=\"white\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M74.8943 1.53668L74.8963 1.53332C74.8963 1.53332 74.8962 1.53316 74.8961 1.53311C74.9287 1.47034 74.9474 1.3995 74.9474 1.32422C74.9474 1.15549 74.855 1.00839 74.7175 0.928067C74.7161 0.926603 74.7145 0.92411 74.7131 0.923297C71.8212 -0.629332 67.9599 -0.26234 65.403 2.32666C63.9676 3.77999 63.2347 5.64926 63.1969 7.52769H63.1945V14.9024C63.1945 14.9025 63.1945 14.9025 63.1945 14.9025C63.1945 15.1569 63.4041 15.3634 63.6627 15.3634H65.8481C66.1066 15.3634 66.3164 15.1569 66.3164 14.9025C66.3164 14.9025 66.3164 14.9025 66.3164 14.9024V7.68135H66.3175C66.3174 6.52346 66.7567 5.36438 67.6414 4.46861C69.2204 2.8698 71.5515 2.74975 73.1587 3.59154C73.1637 3.59425 73.1689 3.59668 73.174 3.59929C73.1776 3.60118 73.1813 3.60286 73.1849 3.60481L73.1854 3.60471C73.2462 3.63316 73.3141 3.64958 73.386 3.64958C73.5688 3.64958 73.7268 3.54617 73.8039 3.39582L74.8769 1.56644C74.8831 1.55668 74.889 1.54687 74.8943 1.53668Z\"\n fill=\"white\"/>\n </svg>\n\n )\n}","import React from 'react'\nimport classNames from 'classnames'\nimport { FaRotate } from 'react-icons/fa6'\n\ninterface ResetButtonProps {\n enabled?: boolean\n handleClick?: () => void\n}\n\nexport default function ResetButton({\n enabled = false,\n handleClick,\n}: ResetButtonProps) {\n const classes = classNames(\n 'prp-py-3 prp-px-4 prp-flex prp-gap-2 prp-items-center rounded-md prp-regular-text h-10',\n enabled &&\n 'prp-bg-orange-400 hover:prp-orange-500 prp-cursor-pointer prp-text-white',\n !enabled && 'prp-bg-grey-400 prp-text-gray-500'\n )\n\n return (\n <button\n onClick={handleClick}\n className={classes}\n disabled={!enabled}\n >\n <FaRotate />\n <span className=\"prp-hidden lg:prp-block\">Reset</span>\n </button>\n )\n}\n","import { Popover, PopoverButton, PopoverPanel } from '@headlessui/react'\nimport { FaInfoCircle } from 'react-icons/fa'\nimport React from 'react'\nimport { FaArrowUpRightFromSquare } from 'react-icons/fa6'\n\ninterface InfoPopoverProps {\n title: string\n text: string\n link: string\n}\n\nexport default function InfoPopover({ title, text, link }: InfoPopoverProps) {\n return (\n <Popover>\n <PopoverButton className=\"prp-ring-0 focus:prp-ring-0 prp-font-bold prp-text-indigo-300 prp-text-xs hover:prp-text-indigo-400 prp-block\">\n <FaInfoCircle />\n </PopoverButton>\n <PopoverPanel\n transition\n anchor=\"bottom\"\n className=\"prp-z-[1000] prp-p-4\"\n >\n <div className=\" prp-bg-white rounded-lg p-6 prp-dropshadow-popover prp-space-y-3 prp-max-w-[312px]\">\n <span className=\"prp-text-base prp-font-bold prp-leading-tight prp-text-gray-900\">\n {title}\n </span>\n <div className=\"prp-space-y-2\">\n <span className=\"prp-text-sm\">{text}</span>\n <a\n href={link}\n className=\"prp-font-black prp-text-sm prp-flex prp-gap-1 prp-items-center prp-text-indigo-700\"\n >\n Learn more <FaArrowUpRightFromSquare />\n </a>\n </div>\n </div>\n </PopoverPanel>\n </Popover>\n )\n}\n"],"mappings":"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","names":["import_react","React","import_react","classNames","React","import_react","import_fa6","import_react","import_fa6","React","React"]}
1
+ {"version":3,"sources":["../src/components.ts","../src/components/PreprPreviewBar.tsx","../src/components/PreprLogo.tsx","../src/components/ResetButton.tsx","../src/components/InfoPopover.tsx"],"sourcesContent":["'use client'\n\nimport \"./main.css\"\nimport {PreprPreviewBar} from './components/PreprPreviewBar'\n\nexport {PreprPreviewBar}","'use client'\n\nimport { usePathname, useRouter, useSearchParams } from 'next/navigation'\nimport React, { useEffect, useState } from 'react'\n\nimport '../main.css'\nimport PreprLogo from './PreprLogo'\nimport ResetButton from './ResetButton'\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n Radio,\n RadioGroup,\n} from '@headlessui/react'\nimport { FaCaretDown, FaCheck } from 'react-icons/fa6'\nimport InfoPopover from './InfoPopover'\nimport { clsx } from 'clsx'\n\nexport function PreprPreviewBar(props: {\n activeSegment?: string | null\n activeVariant?: string | null\n data?: any\n}) {\n const { activeSegment, activeVariant, data } = props\n const [segmentList, setSegmentList] = useState<any>(data?.items)\n const [isToggled, setIsToggled] = useState<boolean>(false)\n const searchParams = useSearchParams()\n\n if (searchParams.get('prepr_hide_bar') === 'true') {\n return null\n }\n\n // Hide the preview bar if not on the client or if the page is in an iframe\n if (window?.parent !== window.self) {\n return null\n }\n\n if (segmentList && segmentList[0].reference_id !== 'null') {\n setSegmentList([\n {\n id: 'null',\n reference_id: 'null',\n body: 'All other users',\n },\n ...segmentList,\n ])\n }\n\n const emptyVariant = 'A'\n const emptySegment = {\n body: 'Choose segment',\n }\n\n useEffect(() => {\n if (!window) {\n return\n }\n\n if (window.localStorage.getItem('isToggled')) {\n setIsToggled(window.localStorage.getItem('isToggled') === 'true')\n }\n })\n\n const [selectedSegment, setSelectedSegment] = useState(\n (segmentList &&\n segmentList.filter(\n (segmentData: any) => segmentData === activeSegment\n )[0]) ||\n emptySegment\n )\n\n const [selectedVariant, setSelectedVariant] = useState<string | null>(\n activeVariant || 'A'\n )\n\n const router = useRouter()\n const pathname = usePathname()\n\n const handleSearchParams = (key: string, value: any) => {\n const params = new URLSearchParams(window.location.search)\n\n if (key === 'prepr_preview_ab') {\n setSelectedVariant(value)\n params.set(key, value as string)\n }\n if (key === 'prepr_preview_segment' && value) {\n setSelectedSegment(value)\n params.set(key, value.reference_id as string)\n }\n\n // Remove parameters with value \"null\"\n for (const [key, value] of params.entries()) {\n if (value === 'null' || value === null || value === undefined) {\n params.delete(key)\n }\n }\n\n router.push(`${pathname}?${params.toString()}`, {\n scroll: false,\n })\n router.refresh()\n }\n\n const handleToggle = () => {\n setIsToggled(!isToggled)\n window.localStorage.setItem('isToggled', String(!isToggled))\n }\n\n const handleReset = () => {\n setSelectedSegment(emptySegment)\n setSelectedVariant(emptyVariant)\n\n const params = new URLSearchParams({})\n params.append('prepr_preview_segment', 'null')\n params.append('prepr_preview_ab', 'null')\n\n router.push(`${pathname}?${params.toString()}`, {\n scroll: false,\n })\n router.refresh()\n }\n\n return (\n <div className=\"prp-z-[999] prp-isolate prp-flex prp-base prp-w-full prp-sticky prp-top-0\">\n <div\n className={clsx(\n 'prp-py-4 prp-px-5 prp-bg-purple-900 prp-w-full prp-overflow-hidden',\n isToggled ? 'prp-sticky prp-top-0' : 'prp-hidden'\n )}\n >\n <div className=\"prp-flex prp-max-w-7xl prp-mx-auto prp-gap-y-4 prp-h-full prp-gap-x-6 prp-flex-col sm:prp-flex-row prp-flex-wrap\">\n <div className=\"prp-flex prp-gap-6 prp-items-center\">\n <div className=\"prp-h-full prp-flex prp-justify-center prp-items-center\">\n <PreprLogo />\n </div>\n <div className=\"prp-hidden lg:prp-block prp-pb-0.5 prp-text-white prp-text-lg prp-text-bold\">\n Adaptive Preview\n </div>\n </div>\n\n <div className=\"prp-flex prp-flex-wrap prp-gap-2 md:prp-gap-4 prp-ml-0 sm:prp-ml-auto md:prp-items-center\">\n <div className=\"prp-flex prp-flex-col md:prp-flex-row prp-gap-2 md:prp-gap-4 prp-flex-1\">\n <div className=\"prp-regular-text prp-text-white prp-items-center prp-gap-2 prp-hidden lg:prp-flex\">\n <span className=\"prp-pb-0.5 prp-text-xs md:prp-text-base prp-block md:prp-hidden xl:prp-block\">\n Apply segment\n </span>\n <InfoPopover\n title={'Adaptive Preview'}\n text={\n \"Choose a segment to see how it's displayed.\"\n }\n />\n </div>\n\n <Listbox\n value={selectedSegment.slug}\n onChange={(value: any) =>\n handleSearchParams(\n 'prepr_preview_segment',\n value\n )\n }\n >\n <ListboxButton className=\"prp-h-10 prp-flex prp-gap-2 prp-w-full md:prp-w-48 prp-flex-nowrap prp-text-nowrap prp-overflow-hidden prp-text-ellipsis prp-rounded-lg data-[open]:prp-border-b-white prp-border prp-border-gray-300 prp-items-center prp-bg-white prp-px-2 md:prp-px-4 prp-regular-text prp-text-gray-500\">\n <div\n style={{\n textWrap: 'nowrap',\n textOverflow: 'ellipsis',\n textAlign: 'left',\n }}\n className=\"prp-w-full prp-overflow-hidden prp-mr-auto\"\n >\n {selectedSegment.body}\n </div>\n <div className=\"prp-text-gray-400\">\n <FaCaretDown className=\"prp-w-3\" />\n </div>\n </ListboxButton>\n <ListboxOptions\n anchor=\"top start\"\n className=\"prp-z-[9999] prp-rounded-md prp-bg-white prp-h-1/3 prp-mt-2 prp-shadow-xl\"\n >\n {segmentList?.map((segment: any) => (\n <ListboxOption\n key={segment.id}\n value={segment}\n className={clsx(\n 'prp-flex prp-items-center prp-p-2 prp-regular-text prp-z-[100] hover:prp-cursor-pointer prp-w-full prp-pr-4',\n segment.reference_id ===\n selectedSegment.reference_id\n ? 'prp-bg-indigo-50 prp-text-indigo-700'\n : 'hover:prp-bg-gray-100 prp-bg-white prp-text-gray-900'\n )}\n >\n <FaCheck\n className={clsx(\n 'prp-size-3 prp-shrink-0 prp-mr-1',\n segment.reference_id ===\n selectedSegment.reference_id\n ? 'prp-visible'\n : 'prp-invisible'\n )}\n />\n <div\n style={{\n textWrap: 'nowrap',\n textOverflow: 'ellipsis',\n textAlign: 'left',\n }}\n className=\"prp-w-full prp-overflow-hidden prp-mr-auto\"\n >\n {segment.body}\n </div>\n </ListboxOption>\n ))}\n </ListboxOptions>\n </Listbox>\n </div>\n\n <div className=\"prp-flex prp-flex-initial prp-flex-col md:prp-flex-row prp-gap-2 md:prp-gap-4\">\n <div className=\"prp-regular-text prp-text-white prp-items-center prp-gap-2 prp-hidden lg:prp-flex\">\n <span className=\"prp-pb-0.5 prp-text-xs md:prp-text-base prp-block md:prp-hidden xl:prp-block\">\n Show A/B variant\n </span>\n <InfoPopover\n title={'A/B Testing'}\n text={\n 'Choose between two different versions of a page to see which one performs better.'\n }\n />\n </div>\n\n <RadioGroup\n className=\"prp-rounded-lg prp-p-1 prp-mr-auto prp-border prp-border-gray-300 prp-bg-white prp-flex prp-gap-1 prp-h-10 prp-items-center\"\n value={selectedVariant}\n onChange={(value: any) =>\n handleSearchParams(\n 'prepr_preview_ab',\n value\n )\n }\n >\n <Radio\n value={'A'}\n className=\"prp-py-2 prp-px-3 prp-rounded-md prp-text-gray-900 prp-regular-text data-[checked]:prp-dropshadow\n data-[checked]:prp-bg-indigo-600 data-[checked]:prp-text-white prp-h-8 prp-text-center prp-flex prp-items-center hover:prp-cursor-pointer\n \"\n >\n <span className=\"prp-hidden md:prp-inline prp-mr-1\">\n Variant{' '}\n </span>\n A\n </Radio>\n <Radio\n value={'B'}\n className=\"prp-py-2 prp-px-3 prp-rounded-md prp-text-gray-900 prp-regular-text data-[checked]:prp-dropshadow\n data-[checked]:prp-bg-indigo-600 data-[checked]:prp-text-white prp-h-8 prp-text-center prp-flex prp-items-center hover:prp-cursor-pointer\n \"\n >\n <span className=\"prp-hidden md:prp-inline prp-mr-1\">\n Variant{' '}\n </span>\n B\n </Radio>\n </RadioGroup>\n </div>\n\n <div className=\"prp-flex prp-flex-initial prp-mt-auto md:prp-h-full\">\n <ResetButton\n handleClick={handleReset}\n enabled={\n selectedSegment.reference_id ||\n selectedVariant !== 'A'\n }\n />\n </div>\n </div>\n </div>\n </div>\n <div\n className={clsx(\n 'prp-w-full prp-flex',\n isToggled\n ? '-prp-bottom-6 prp-absolute'\n : 'prp-top-0 prp-fixed'\n )}\n >\n <div\n className={clsx(\n 'prp-w-auto prp-mx-auto prp-flex prp-items-center prp-border-t-2 prp-border-purple-900'\n )}\n >\n <div\n className={`prp-relative prp-z-[100] prp-mx-auto prp-bg-purple-900 prp-regular-text prp-text-white prp-px-2 prp-py-0.5 prp-rounded-b-lg prp-flex prp-items-center prp-cursor-pointer`}\n onClick={handleToggle}\n >\n Adaptive Preview\n {isToggled ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n className=\"prp-size-3 prp-fill-white prp-ml-2\"\n >\n <path d=\"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\" />\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 512 512\"\n className=\"prp-size-3 prp-fill-white prp-ml-2\"\n >\n <path d=\"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\" />\n </svg>\n )}\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import React from \"react\";\n\nexport default function PreprLogo() {\n return (\n <svg width=\"75\" height=\"20\" viewBox=\"0 0 75 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M28.8527 1.56704C28.8588 1.55728 28.8647 1.54752 28.8701 1.53728L28.872 1.53392C28.872 1.53392 28.8719 1.53376 28.8718 1.5337C28.9044 1.47094 28.9231 1.4001 28.9231 1.32481C28.9231 1.15609 28.8307 1.00899 28.6932 0.928662C28.6918 0.927198 28.6902 0.924705 28.6888 0.923892C25.7969 -0.628737 21.9356 -0.26169 19.3787 2.32725C17.9433 3.78059 17.2104 5.64985 17.1726 7.52828H17.1702V14.903C17.1702 14.9031 17.1702 14.9031 17.1702 14.9031C17.1702 15.1575 17.3798 15.3639 17.6384 15.3639H19.8237C20.0823 15.3639 20.292 15.1575 20.292 14.9031C20.292 14.9031 20.292 14.9031 20.292 14.903V7.68194H20.2932C20.2931 6.52406 20.7324 5.36498 21.617 4.4692C23.1961 2.8704 25.5272 2.75034 27.1344 3.59213C27.1394 3.59484 27.1446 3.59728 27.1496 3.59988C27.1532 3.60178 27.1569 3.60346 27.1605 3.60541L27.161 3.6053C27.2219 3.63376 27.2898 3.65018 27.3617 3.65018C27.5444 3.65018 27.7024 3.54676 27.7796 3.39641L28.8527 1.56704Z\"\n fill=\"white\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M7.80452 0C3.49433 0 0 3.43924 0 7.68195V19.5124C0 19.7667 0.209581 19.9732 0.468282 19.9732H2.65358C2.65363 19.9732 2.65363 19.9732 2.65363 19.9732C2.91222 19.9732 3.12186 19.7667 3.12186 19.5124V13.8279C4.42627 14.7924 6.04758 15.364 7.80457 15.364C12.1147 15.364 15.6094 11.9247 15.6094 7.68206C15.6094 3.4393 12.1147 0 7.80452 0ZM7.80457 12.2912C5.21845 12.2912 3.12186 10.2275 3.12186 7.68195C3.12186 5.13631 5.21845 3.07279 7.80457 3.07279C10.3906 3.07279 12.4874 5.13631 12.4874 7.68195C12.4874 10.2275 10.3906 12.2912 7.80457 12.2912Z\"\n fill=\"white\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M53.8288 0C49.5187 0 46.0243 3.43924 46.0243 7.68195V19.5124C46.0243 19.7667 46.2339 19.9731 46.4926 19.9732H48.6779C48.9365 19.9732 49.1462 19.7667 49.1462 19.5124V13.828C50.4506 14.7924 52.0719 15.364 53.8289 15.364C58.139 15.364 61.6337 11.9247 61.6337 7.68211C61.6337 3.4393 58.139 0 53.8288 0ZM53.8289 12.2912C51.2427 12.2912 49.1462 10.2276 49.1462 7.68195C49.1462 5.13631 51.2427 3.07279 53.8289 3.07279C56.4149 3.07279 58.5117 5.13631 58.5117 7.68195C58.5117 10.2276 56.4149 12.2912 53.8289 12.2912Z\"\n fill=\"white\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M44.4094 7.83561C44.4094 3.59285 40.9148 0 36.6046 0C32.2944 0 28.8 3.4393 28.8 7.68206C28.8 11.9247 32.2944 15.364 36.6046 15.364C39.0444 15.364 41.0568 14.2635 42.3189 12.9136C42.3191 12.9135 42.3193 12.9133 42.3194 12.9132C42.3204 12.9121 42.3214 12.9112 42.3224 12.9101V12.91C42.4051 12.8268 42.4563 12.7131 42.4563 12.5876C42.4563 12.4549 42.3989 12.3357 42.3077 12.2515V12.2509L42.3012 12.2456C42.2893 12.2351 42.2769 12.2251 42.2639 12.2158L40.5942 10.8782C40.5118 10.8069 40.4041 10.7634 40.2857 10.7634C40.1386 10.7634 40.0075 10.8302 39.9217 10.9346C39.1801 11.6777 38.0073 12.2911 36.6047 12.2911C34.0186 12.2911 31.922 10.2275 31.922 7.68184C31.922 5.13621 34.0186 3.07268 36.6047 3.07268C38.6433 3.07268 40.377 4.3555 41.02 6.14547H36.9949C36.7362 6.14553 36.5266 6.35187 36.5266 6.6064L36.5265 8.75734C36.5265 9.01182 36.7361 9.21827 36.9949 9.21827H43.7851C43.7978 9.21827 43.8104 9.21734 43.823 9.21637C43.8356 9.2174 43.8481 9.21827 43.8608 9.21827C44.0687 9.21827 44.2449 9.08466 44.3059 8.90011L44.3113 8.90098C44.314 8.88434 44.3166 8.86829 44.3192 8.85219C44.3225 8.83653 44.325 8.8206 44.3268 8.80434C44.3809 8.46076 44.4094 8.21572 44.4094 7.83561Z\"\n fill=\"white\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\"\n d=\"M74.8943 1.53668L74.8963 1.53332C74.8963 1.53332 74.8962 1.53316 74.8961 1.53311C74.9287 1.47034 74.9474 1.3995 74.9474 1.32422C74.9474 1.15549 74.855 1.00839 74.7175 0.928067C74.7161 0.926603 74.7145 0.92411 74.7131 0.923297C71.8212 -0.629332 67.9599 -0.26234 65.403 2.32666C63.9676 3.77999 63.2347 5.64926 63.1969 7.52769H63.1945V14.9024C63.1945 14.9025 63.1945 14.9025 63.1945 14.9025C63.1945 15.1569 63.4041 15.3634 63.6627 15.3634H65.8481C66.1066 15.3634 66.3164 15.1569 66.3164 14.9025C66.3164 14.9025 66.3164 14.9025 66.3164 14.9024V7.68135H66.3175C66.3174 6.52346 66.7567 5.36438 67.6414 4.46861C69.2204 2.8698 71.5515 2.74975 73.1587 3.59154C73.1637 3.59425 73.1689 3.59668 73.174 3.59929C73.1776 3.60118 73.1813 3.60286 73.1849 3.60481L73.1854 3.60471C73.2462 3.63316 73.3141 3.64958 73.386 3.64958C73.5688 3.64958 73.7268 3.54617 73.8039 3.39582L74.8769 1.56644C74.8831 1.55668 74.889 1.54687 74.8943 1.53668Z\"\n fill=\"white\"/>\n </svg>\n\n )\n}","import React from 'react'\nimport classNames from 'classnames'\nimport { FaRotate } from 'react-icons/fa6'\n\ninterface ResetButtonProps {\n enabled?: boolean\n handleClick?: () => void\n}\n\nexport default function ResetButton({\n enabled = false,\n handleClick,\n}: ResetButtonProps) {\n const classes = classNames(\n 'prp-py-2 prp-px-3 prp-flex prp-gap-2 prp-items-center rounded-md prp-regular-text prp-h-10',\n enabled &&\n 'prp-bg-orange-400 hover:prp-orange-500 prp-cursor-pointer prp-text-white',\n !enabled && 'prp-bg-grey-400 prp-text-gray-500'\n )\n\n return (\n <button\n onClick={handleClick}\n className={classes}\n disabled={!enabled}\n >\n <FaRotate />\n <span className=\"prp-block sm:prp-hidden lg:prp-block\">Reset</span>\n </button>\n )\n}\n","import { Popover, PopoverButton, PopoverPanel } from '@headlessui/react'\nimport { FaInfoCircle } from 'react-icons/fa'\nimport React from 'react'\n\ninterface InfoPopoverProps {\n title: string\n text: string\n}\n\nexport default function InfoPopover({ title, text }: InfoPopoverProps) {\n return (\n <Popover>\n <PopoverButton className=\"prp-ring-0 focus:prp-ring-0 prp-font-bold prp-text-indigo-300 prp-text-xs hover:prp-text-indigo-400 prp-block\">\n <FaInfoCircle />\n </PopoverButton>\n <PopoverPanel\n transition\n anchor=\"bottom\"\n className=\"prp-z-[1000] prp-p-4\"\n >\n <div className=\" prp-bg-white rounded-lg p-6 prp-dropshadow-popover prp-space-y-3 prp-max-w-[312px]\">\n <span className=\"prp-text-base prp-font-bold prp-leading-tight prp-text-gray-900\">\n {title}\n </span>\n <div className=\"prp-space-y-2\">\n <span className=\"prp-text-sm\">{text}</span>\n </div>\n </div>\n </PopoverPanel>\n </Popover>\n )\n}\n"],"mappings":"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","names":["import_react","React","import_react","classNames","React","import_react","import_fa6","import_react","React","key","value","React"]}