@flamingo-stack/openframe-frontend-core 0.0.560 → 0.0.561-1846.5000.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-F3F3PVJ3.js → chunk-44U25GD5.js} +2 -2
- package/dist/{chunk-DCB4EBA5.cjs → chunk-4LHEQMOV.cjs} +3 -3
- package/dist/chunk-4LHEQMOV.cjs.map +1 -0
- package/dist/{chunk-IGO6GNG7.js → chunk-5AEHCGQV.js} +6 -6
- package/dist/{chunk-QUYIRF6U.cjs → chunk-AGQ4VTUX.cjs} +29 -29
- package/dist/{chunk-QUYIRF6U.cjs.map → chunk-AGQ4VTUX.cjs.map} +1 -1
- package/dist/{chunk-GMDPQ5FQ.js → chunk-B6TM3QAL.js} +4 -4
- package/dist/{chunk-GZSUDIJB.cjs → chunk-CR2CMLTQ.cjs} +4 -4
- package/dist/{chunk-GZSUDIJB.cjs.map → chunk-CR2CMLTQ.cjs.map} +1 -1
- package/dist/{chunk-MAX76H7U.cjs → chunk-D3OY4CJU.cjs} +3 -3
- package/dist/{chunk-MAX76H7U.cjs.map → chunk-D3OY4CJU.cjs.map} +1 -1
- package/dist/{chunk-WXJZULAB.cjs → chunk-DAVVVBNL.cjs} +26 -26
- package/dist/{chunk-WXJZULAB.cjs.map → chunk-DAVVVBNL.cjs.map} +1 -1
- package/dist/{chunk-XRP6VHOS.cjs → chunk-DHRJFUBR.cjs} +11 -11
- package/dist/{chunk-XRP6VHOS.cjs.map → chunk-DHRJFUBR.cjs.map} +1 -1
- package/dist/{chunk-N66ANBF6.cjs → chunk-EK346HD7.cjs} +39 -39
- package/dist/{chunk-N66ANBF6.cjs.map → chunk-EK346HD7.cjs.map} +1 -1
- package/dist/{chunk-UR2JKFIO.cjs → chunk-FSWJCGRJ.cjs} +7 -7
- package/dist/{chunk-UR2JKFIO.cjs.map → chunk-FSWJCGRJ.cjs.map} +1 -1
- package/dist/{chunk-RDFMBOSI.js → chunk-GKGQ4DWE.js} +120 -48
- package/dist/chunk-GKGQ4DWE.js.map +1 -0
- package/dist/{chunk-FEI4KQYW.cjs → chunk-GWRQ5EEI.cjs} +953 -881
- package/dist/chunk-GWRQ5EEI.cjs.map +1 -0
- package/dist/{chunk-NCU45OV4.cjs → chunk-GYC3OTBI.cjs} +9 -9
- package/dist/{chunk-NCU45OV4.cjs.map → chunk-GYC3OTBI.cjs.map} +1 -1
- package/dist/{chunk-WIPZ65KU.js → chunk-JCQUWIPT.js} +3 -3
- package/dist/{chunk-2IL7SPBP.js → chunk-KRYLVEXU.js} +2 -2
- package/dist/{chunk-YNRK3N2D.js → chunk-KWNVQZ5Y.js} +4 -4
- package/dist/{chunk-QXDEXQDI.js → chunk-MLSDBNKT.js} +2 -2
- package/dist/{chunk-65ZXR4YJ.js → chunk-NGY4KET4.js} +2 -2
- package/dist/{chunk-QKGNSXF2.js → chunk-OCJG3X4U.js} +2 -2
- package/dist/{chunk-VAAQZZHT.js → chunk-ONDI64M3.js} +2 -2
- package/dist/{chunk-BKQWCJP5.js → chunk-QGQ26NEE.js} +2 -2
- package/dist/{chunk-RSZXB6J2.js → chunk-RDKJCZHY.js} +3 -3
- package/dist/chunk-RDKJCZHY.js.map +1 -0
- package/dist/{chunk-CSXEOFJ4.cjs → chunk-SUPBFRUK.cjs} +5 -5
- package/dist/{chunk-CSXEOFJ4.cjs.map → chunk-SUPBFRUK.cjs.map} +1 -1
- package/dist/{chunk-I7RGBCG6.cjs → chunk-UJ7MSY6F.cjs} +31 -31
- package/dist/{chunk-I7RGBCG6.cjs.map → chunk-UJ7MSY6F.cjs.map} +1 -1
- package/dist/{chunk-UW42K54L.cjs → chunk-UV53Z64O.cjs} +14 -14
- package/dist/{chunk-UW42K54L.cjs.map → chunk-UV53Z64O.cjs.map} +1 -1
- package/dist/{chunk-NFMYNXFH.cjs → chunk-WCM4BGHO.cjs} +97 -97
- package/dist/{chunk-NFMYNXFH.cjs.map → chunk-WCM4BGHO.cjs.map} +1 -1
- package/dist/{chunk-57G6CG2E.js → chunk-YUAKZNK5.js} +6 -6
- package/dist/{chunk-XQJPFAA7.cjs → chunk-ZENRHE55.cjs} +62 -62
- package/dist/{chunk-XQJPFAA7.cjs.map → chunk-ZENRHE55.cjs.map} +1 -1
- package/dist/{chunk-PHIRRCPY.js → chunk-ZJ7RI62F.js} +2 -2
- package/dist/components/calendar.cjs +81 -4
- package/dist/components/calendar.cjs.map +1 -1
- package/dist/components/calendar.js +81 -4
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/index.cjs +3 -3
- package/dist/components/chat/index.js +2 -2
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/index.cjs +5 -3
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.d.ts +1 -1
- package/dist/components/features/index.d.ts.map +1 -1
- package/dist/components/features/index.js +4 -2
- package/dist/components/features/use-walkthrough-video.d.ts +1 -1
- package/dist/components/features/use-walkthrough-video.d.ts.map +1 -1
- package/dist/components/features/{floating-walkthrough-video.d.ts → walkthrough-video.d.ts} +61 -7
- package/dist/components/features/walkthrough-video.d.ts.map +1 -0
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +144 -140
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +16 -12
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/booking-form.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/context-panel.d.ts +24 -6
- package/dist/components/meeting-scheduler/context-panel.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +529 -425
- package/dist/components/meeting-scheduler/index.cjs.map +1 -1
- package/dist/components/meeting-scheduler/index.d.ts +54 -1
- package/dist/components/meeting-scheduler/index.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.js +507 -403
- package/dist/components/meeting-scheduler/index.js.map +1 -1
- package/dist/components/meeting-scheduler/slot-picker.d.ts +35 -31
- package/dist/components/meeting-scheduler/slot-picker.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +3 -3
- package/dist/components/navigation/index.js +2 -2
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/related-content/index.cjs +4 -4
- package/dist/components/related-content/index.js +3 -3
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/date-picker.d.ts +62 -1
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/field-wrapper.d.ts +7 -0
- package/dist/components/ui/field-wrapper.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +36 -36
- package/dist/components/ui/file-manager/index.js +1 -1
- package/dist/components/ui/index.cjs +5 -3
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +4 -2
- package/dist/hooks/use-meeting-booking.d.ts +31 -8
- package/dist/hooks/use-meeting-booking.d.ts.map +1 -1
- package/dist/index.cjs +7 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -2
- package/package.json +1 -1
- package/src/components/features/{.floating-walkthrough-video.md → .walkthrough-video.md} +8 -5
- package/src/components/features/index.ts +1 -1
- package/src/components/features/use-walkthrough-video.ts +1 -1
- package/src/components/features/{floating-walkthrough-video.tsx → walkthrough-video.tsx} +108 -22
- package/src/components/meeting-scheduler/booking-form.tsx +60 -51
- package/src/components/meeting-scheduler/confirmation.tsx +1 -1
- package/src/components/meeting-scheduler/context-panel.tsx +166 -68
- package/src/components/meeting-scheduler/index.tsx +227 -81
- package/src/components/meeting-scheduler/slot-picker.tsx +275 -127
- package/src/components/ui/date-picker.tsx +200 -47
- package/src/components/ui/field-wrapper.tsx +9 -2
- package/src/hooks/use-meeting-booking.ts +97 -73
- package/dist/chunk-7J4DGFHZ.js +0 -88
- package/dist/chunk-7J4DGFHZ.js.map +0 -1
- package/dist/chunk-DCB4EBA5.cjs.map +0 -1
- package/dist/chunk-FEI4KQYW.cjs.map +0 -1
- package/dist/chunk-MKPJYEOR.cjs +0 -88
- package/dist/chunk-MKPJYEOR.cjs.map +0 -1
- package/dist/chunk-RDFMBOSI.js.map +0 -1
- package/dist/chunk-RSZXB6J2.js.map +0 -1
- package/dist/components/features/floating-walkthrough-video.d.ts.map +0 -1
- /package/dist/{chunk-F3F3PVJ3.js.map → chunk-44U25GD5.js.map} +0 -0
- /package/dist/{chunk-IGO6GNG7.js.map → chunk-5AEHCGQV.js.map} +0 -0
- /package/dist/{chunk-GMDPQ5FQ.js.map → chunk-B6TM3QAL.js.map} +0 -0
- /package/dist/{chunk-WIPZ65KU.js.map → chunk-JCQUWIPT.js.map} +0 -0
- /package/dist/{chunk-2IL7SPBP.js.map → chunk-KRYLVEXU.js.map} +0 -0
- /package/dist/{chunk-YNRK3N2D.js.map → chunk-KWNVQZ5Y.js.map} +0 -0
- /package/dist/{chunk-QXDEXQDI.js.map → chunk-MLSDBNKT.js.map} +0 -0
- /package/dist/{chunk-65ZXR4YJ.js.map → chunk-NGY4KET4.js.map} +0 -0
- /package/dist/{chunk-QKGNSXF2.js.map → chunk-OCJG3X4U.js.map} +0 -0
- /package/dist/{chunk-VAAQZZHT.js.map → chunk-ONDI64M3.js.map} +0 -0
- /package/dist/{chunk-BKQWCJP5.js.map → chunk-QGQ26NEE.js.map} +0 -0
- /package/dist/{chunk-57G6CG2E.js.map → chunk-YUAKZNK5.js.map} +0 -0
- /package/dist/{chunk-PHIRRCPY.js.map → chunk-ZJ7RI62F.js.map} +0 -0
|
@@ -257,7 +257,7 @@ import {
|
|
|
257
257
|
Skeleton,
|
|
258
258
|
useCollisionBoundary,
|
|
259
259
|
usePortalContainer
|
|
260
|
-
} from "./chunk-
|
|
260
|
+
} from "./chunk-RDKJCZHY.js";
|
|
261
261
|
import {
|
|
262
262
|
CheckboxCheckmarkIcon,
|
|
263
263
|
SearchIcon
|
|
@@ -18402,6 +18402,7 @@ function CalendarNavButton({ direction, onClick, disabled, "aria-label": ariaLab
|
|
|
18402
18402
|
type: "button",
|
|
18403
18403
|
variant: "outline",
|
|
18404
18404
|
size: "icon",
|
|
18405
|
+
className: "shrink-0",
|
|
18405
18406
|
onClick,
|
|
18406
18407
|
disabled,
|
|
18407
18408
|
"aria-label": ariaLabel,
|
|
@@ -18417,7 +18418,11 @@ function DatePickerCalendar({
|
|
|
18417
18418
|
fromDate,
|
|
18418
18419
|
toDate: toDate3,
|
|
18419
18420
|
locale,
|
|
18420
|
-
fluid = false
|
|
18421
|
+
fluid = false,
|
|
18422
|
+
bare = false,
|
|
18423
|
+
disabledDays: extraDisabledDays,
|
|
18424
|
+
month: monthProp,
|
|
18425
|
+
onMonthChange
|
|
18421
18426
|
}) {
|
|
18422
18427
|
const today = /* @__PURE__ */ new Date();
|
|
18423
18428
|
const isMdUp = useMdUp() ?? true;
|
|
@@ -18453,18 +18458,43 @@ function DatePickerCalendar({
|
|
|
18453
18458
|
setHoveredDate(void 0);
|
|
18454
18459
|
onSelect(completed);
|
|
18455
18460
|
};
|
|
18456
|
-
const
|
|
18457
|
-
const
|
|
18461
|
+
const isFluid = fluid || bare;
|
|
18462
|
+
const cellOuter = bare ? "flex-1 min-w-0 h-[32px]" : isFluid ? "flex-1 aspect-square min-w-0" : "size-10";
|
|
18463
|
+
const cellInner = bare ? "h-full w-auto aspect-square rounded-[6px]" : isFluid ? "size-full" : "size-10";
|
|
18464
|
+
const weekdayOuter = bare ? "flex-1 min-w-0 h-6" : cellOuter;
|
|
18465
|
+
const hoverClass = bare ? "[&>button]:hover:bg-ods-bg-surface" : "hover:bg-ods-bg-surface hover:rounded-[6px]";
|
|
18466
|
+
const todayClass = bare ? "[&>button]:bg-ods-bg-surface [&>button]:hover:!bg-ods-bg-surface" : "bg-ods-bg-surface rounded-[6px] hover:!bg-ods-bg-surface";
|
|
18467
|
+
const dayNumber = (date) => date.getFullYear() * 1e4 + date.getMonth() * 100 + date.getDate();
|
|
18468
|
+
const isSelectedDay = (date) => {
|
|
18469
|
+
const n = dayNumber(date);
|
|
18470
|
+
if (mode === "single") {
|
|
18471
|
+
const picked = selected;
|
|
18472
|
+
return !!picked && dayNumber(picked) === n;
|
|
18473
|
+
}
|
|
18474
|
+
const range = rangeSelected;
|
|
18475
|
+
if (!range?.from) return false;
|
|
18476
|
+
if (!range.to) return dayNumber(range.from) === n;
|
|
18477
|
+
return n >= dayNumber(range.from) && n <= dayNumber(range.to);
|
|
18478
|
+
};
|
|
18479
|
+
const isUnclaimedToday = (date) => dayNumber(date) === dayNumber(today) && !isSelectedDay(date);
|
|
18480
|
+
const selectedClass = bare ? "[&>button]:!bg-ods-accent [&>button]:!text-ods-card [&>button]:!font-bold [&>button]:hover:!bg-ods-accent" : "!bg-ods-accent !text-ods-card !font-bold !rounded-[6px] hover:!bg-ods-accent";
|
|
18481
|
+
const surfaceClass = bare ? "flex w-full flex-col" : cn("bg-ods-card border border-ods-border rounded-[6px] overflow-hidden", isFluid && "w-full");
|
|
18482
|
+
const captionRowClass = cn("flex items-center justify-between gap-1", bare ? "shrink-0" : "px-4 pt-4");
|
|
18483
|
+
const captionClass = "min-w-0 flex-1 truncate text-center text-h4 text-ods-text-primary";
|
|
18458
18484
|
const classNames = {
|
|
18459
|
-
root: cn(
|
|
18460
|
-
|
|
18461
|
-
|
|
18485
|
+
root: cn(
|
|
18486
|
+
"date-picker-calendar",
|
|
18487
|
+
bare ? "flex w-full flex-col pt-[var(--spacing-system-xsf)]" : cn("p-4", isFluid && "w-full")
|
|
18488
|
+
),
|
|
18489
|
+
months: cn("flex gap-8", bare && "w-full"),
|
|
18490
|
+
month: cn("flex flex-col", bare ? "w-full" : cn("gap-2", isFluid && "w-full")),
|
|
18462
18491
|
month_caption: "hidden",
|
|
18463
18492
|
nav: "hidden",
|
|
18464
|
-
month_grid: cn("border-collapse",
|
|
18493
|
+
month_grid: cn("border-collapse", bare ? "flex w-full flex-col" : isFluid && "w-full"),
|
|
18465
18494
|
weekdays: "flex",
|
|
18495
|
+
...bare ? { weeks: "flex flex-col" } : {},
|
|
18466
18496
|
weekday: cn(
|
|
18467
|
-
|
|
18497
|
+
weekdayOuter,
|
|
18468
18498
|
"flex items-center justify-center",
|
|
18469
18499
|
"text-h6 text-ods-text-secondary"
|
|
18470
18500
|
),
|
|
@@ -18475,7 +18505,7 @@ function DatePickerCalendar({
|
|
|
18475
18505
|
"text-h4 text-ods-text-primary",
|
|
18476
18506
|
"cursor-pointer",
|
|
18477
18507
|
"transition-colors duration-150",
|
|
18478
|
-
|
|
18508
|
+
hoverClass
|
|
18479
18509
|
),
|
|
18480
18510
|
day_button: cn(
|
|
18481
18511
|
cellInner,
|
|
@@ -18483,9 +18513,10 @@ function DatePickerCalendar({
|
|
|
18483
18513
|
"cursor-pointer bg-transparent border-none outline-none",
|
|
18484
18514
|
"text-inherit font-inherit"
|
|
18485
18515
|
),
|
|
18486
|
-
|
|
18516
|
+
// Painted through the `todayTint` modifier instead — see `isUnclaimedToday`.
|
|
18517
|
+
today: "",
|
|
18487
18518
|
selected: cn(
|
|
18488
|
-
|
|
18519
|
+
selectedClass,
|
|
18489
18520
|
// In range mode, selected class should not override range_start/range_end/range_middle
|
|
18490
18521
|
mode === "range" && "range-selected"
|
|
18491
18522
|
),
|
|
@@ -18503,7 +18534,19 @@ function DatePickerCalendar({
|
|
|
18503
18534
|
// `disabled` <button> does not inherit the cell's cursor on its own.
|
|
18504
18535
|
disabled: cn(
|
|
18505
18536
|
"!text-ods-text-disabled !cursor-not-allowed hover:!bg-transparent",
|
|
18506
|
-
"[&>button]:!cursor-not-allowed [&>button]:!text-ods-text-disabled"
|
|
18537
|
+
"[&>button]:!cursor-not-allowed [&>button]:!text-ods-text-disabled",
|
|
18538
|
+
// Also drop the `today` tint, or an unselectable today renders BLANK:
|
|
18539
|
+
// `--color-text-disabled` and `--color-bg-surface` are the SAME token
|
|
18540
|
+
// (`--ods-system-greys-soft-grey`), so the number disappears into the
|
|
18541
|
+
// highlight — grey on identical grey. Reachable by any picker whose
|
|
18542
|
+
// `fromDate` is in the future, and permanently by the meeting scheduler,
|
|
18543
|
+
// where today usually has no bookable slots left.
|
|
18544
|
+
//
|
|
18545
|
+
// Dropping the tint rather than repainting the text: a disabled day is
|
|
18546
|
+
// not actionable, so a highlight claiming otherwise is the wrong signal.
|
|
18547
|
+
// The day still reads as today's position in the month by being the one
|
|
18548
|
+
// dimmed cell between yesterday and tomorrow.
|
|
18549
|
+
"!bg-transparent [&>button]:!bg-transparent"
|
|
18507
18550
|
),
|
|
18508
18551
|
hidden: "invisible",
|
|
18509
18552
|
// Range styles matching Figma design:
|
|
@@ -18521,33 +18564,34 @@ function DatePickerCalendar({
|
|
|
18521
18564
|
),
|
|
18522
18565
|
range_middle: "range-middle !bg-ods-open-yellow-light !text-ods-card !font-medium !rounded-none hover:!bg-ods-open-yellow-light"
|
|
18523
18566
|
};
|
|
18524
|
-
const [
|
|
18567
|
+
const [uncontrolledMonth, setUncontrolledMonth] = React48.useState(
|
|
18525
18568
|
mode === "single" ? selected || today : selected?.from || today
|
|
18526
18569
|
);
|
|
18570
|
+
const month = monthProp ?? uncontrolledMonth;
|
|
18571
|
+
const changeMonth = (next) => {
|
|
18572
|
+
setUncontrolledMonth(next);
|
|
18573
|
+
onMonthChange?.(next);
|
|
18574
|
+
};
|
|
18527
18575
|
const disabledDays = React48.useMemo(() => {
|
|
18528
18576
|
const matchers = [];
|
|
18529
18577
|
if (fromDate) matchers.push({ before: fromDate });
|
|
18530
18578
|
if (toDate3) matchers.push({ after: toDate3 });
|
|
18579
|
+
if (extraDisabledDays) {
|
|
18580
|
+
matchers.push(...Array.isArray(extraDisabledDays) ? extraDisabledDays : [extraDisabledDays]);
|
|
18581
|
+
}
|
|
18531
18582
|
return matchers;
|
|
18532
|
-
}, [fromDate, toDate3]);
|
|
18583
|
+
}, [fromDate, toDate3, extraDisabledDays]);
|
|
18533
18584
|
const monthIndex = (date) => date.getFullYear() * 12 + date.getMonth();
|
|
18534
18585
|
const lastVisibleMonth = monthIndex(month) + (monthsToShow === 2 ? 1 : 0);
|
|
18535
18586
|
const canGoPrevious = !fromDate || monthIndex(month) > monthIndex(fromDate);
|
|
18536
18587
|
const canGoNext = !toDate3 || lastVisibleMonth < monthIndex(toDate3);
|
|
18537
|
-
const
|
|
18538
|
-
|
|
18539
|
-
|
|
18540
|
-
|
|
18541
|
-
return newMonth;
|
|
18542
|
-
});
|
|
18543
|
-
};
|
|
18544
|
-
const handleNextMonth = () => {
|
|
18545
|
-
setMonth((prev) => {
|
|
18546
|
-
const newMonth = new Date(prev);
|
|
18547
|
-
newMonth.setMonth(newMonth.getMonth() + 1);
|
|
18548
|
-
return newMonth;
|
|
18549
|
-
});
|
|
18588
|
+
const shiftMonth = (by) => {
|
|
18589
|
+
const next = new Date(month);
|
|
18590
|
+
next.setMonth(next.getMonth() + by);
|
|
18591
|
+
changeMonth(next);
|
|
18550
18592
|
};
|
|
18593
|
+
const handlePreviousMonth = () => shiftMonth(-1);
|
|
18594
|
+
const handleNextMonth = () => shiftMonth(1);
|
|
18551
18595
|
const formatMonthYear = (date) => {
|
|
18552
18596
|
return date.toLocaleDateString("en-US", {
|
|
18553
18597
|
month: "long",
|
|
@@ -18586,8 +18630,8 @@ function DatePickerCalendar({
|
|
|
18586
18630
|
}
|
|
18587
18631
|
`;
|
|
18588
18632
|
if (mode === "single") {
|
|
18589
|
-
return /* @__PURE__ */ jsxs88("div", { className:
|
|
18590
|
-
/* @__PURE__ */ jsxs88("div", { className:
|
|
18633
|
+
return /* @__PURE__ */ jsxs88("div", { className: surfaceClass, children: [
|
|
18634
|
+
/* @__PURE__ */ jsxs88("div", { className: captionRowClass, children: [
|
|
18591
18635
|
/* @__PURE__ */ jsx117(
|
|
18592
18636
|
CalendarNavButton,
|
|
18593
18637
|
{
|
|
@@ -18597,7 +18641,7 @@ function DatePickerCalendar({
|
|
|
18597
18641
|
"aria-label": "Previous month"
|
|
18598
18642
|
}
|
|
18599
18643
|
),
|
|
18600
|
-
/* @__PURE__ */ jsx117("span", { className:
|
|
18644
|
+
/* @__PURE__ */ jsx117("span", { className: captionClass, children: formatMonthYear(month) }),
|
|
18601
18645
|
/* @__PURE__ */ jsx117(
|
|
18602
18646
|
CalendarNavButton,
|
|
18603
18647
|
{
|
|
@@ -18615,8 +18659,10 @@ function DatePickerCalendar({
|
|
|
18615
18659
|
selected,
|
|
18616
18660
|
onSelect: (date) => onSelect(date),
|
|
18617
18661
|
month,
|
|
18618
|
-
onMonthChange:
|
|
18662
|
+
onMonthChange: changeMonth,
|
|
18619
18663
|
classNames,
|
|
18664
|
+
modifiers: { todayTint: isUnclaimedToday },
|
|
18665
|
+
modifiersClassNames: { todayTint: todayClass },
|
|
18620
18666
|
showOutsideDays: true,
|
|
18621
18667
|
fixedWeeks: true,
|
|
18622
18668
|
disabled: disabledDays,
|
|
@@ -18629,7 +18675,7 @@ function DatePickerCalendar({
|
|
|
18629
18675
|
return /* @__PURE__ */ jsxs88(
|
|
18630
18676
|
"div",
|
|
18631
18677
|
{
|
|
18632
|
-
className: cn("bg-ods-card border border-ods-border rounded-md overflow-hidden",
|
|
18678
|
+
className: cn("bg-ods-card border border-ods-border rounded-md overflow-hidden", isFluid && "w-full"),
|
|
18633
18679
|
onMouseLeave: () => setHoveredDate(void 0),
|
|
18634
18680
|
children: [
|
|
18635
18681
|
/* @__PURE__ */ jsx117("style", { children: rangeStyles }),
|
|
@@ -18645,7 +18691,7 @@ function DatePickerCalendar({
|
|
|
18645
18691
|
"aria-label": "Previous month"
|
|
18646
18692
|
}
|
|
18647
18693
|
),
|
|
18648
|
-
/* @__PURE__ */ jsx117("span", { className:
|
|
18694
|
+
/* @__PURE__ */ jsx117("span", { className: captionClass, children: formatMonthYear(month) }),
|
|
18649
18695
|
monthsToShow === 1 && /* @__PURE__ */ jsx117(
|
|
18650
18696
|
CalendarNavButton,
|
|
18651
18697
|
{
|
|
@@ -18664,10 +18710,10 @@ function DatePickerCalendar({
|
|
|
18664
18710
|
selected: draftRange,
|
|
18665
18711
|
onSelect: (_range, triggerDate) => handleRangeSelect(triggerDate),
|
|
18666
18712
|
onDayMouseEnter: (day) => setHoveredDate(day),
|
|
18667
|
-
modifiers: { preview: isPreviewDate },
|
|
18668
|
-
modifiersClassNames: { preview: "bg-ods-bg-surface" },
|
|
18713
|
+
modifiers: { preview: isPreviewDate, todayTint: isUnclaimedToday },
|
|
18714
|
+
modifiersClassNames: { preview: "bg-ods-bg-surface", todayTint: todayClass },
|
|
18669
18715
|
month,
|
|
18670
|
-
onMonthChange:
|
|
18716
|
+
onMonthChange: changeMonth,
|
|
18671
18717
|
classNames,
|
|
18672
18718
|
showOutsideDays: true,
|
|
18673
18719
|
fixedWeeks: true,
|
|
@@ -18680,7 +18726,7 @@ function DatePickerCalendar({
|
|
|
18680
18726
|
monthsToShow === 2 && /* @__PURE__ */ jsxs88("div", { className: "flex-1 border-l border-ods-border", children: [
|
|
18681
18727
|
/* @__PURE__ */ jsxs88("div", { className: "flex items-center justify-between px-4 pt-4", children: [
|
|
18682
18728
|
/* @__PURE__ */ jsx117("div", { className: "size-10 md:size-12" }),
|
|
18683
|
-
/* @__PURE__ */ jsx117("span", { className:
|
|
18729
|
+
/* @__PURE__ */ jsx117("span", { className: captionClass, children: formatMonthYear(getSecondMonth(month)) }),
|
|
18684
18730
|
/* @__PURE__ */ jsx117(
|
|
18685
18731
|
CalendarNavButton,
|
|
18686
18732
|
{
|
|
@@ -18698,8 +18744,8 @@ function DatePickerCalendar({
|
|
|
18698
18744
|
selected: draftRange,
|
|
18699
18745
|
onSelect: (_range, triggerDate) => handleRangeSelect(triggerDate),
|
|
18700
18746
|
onDayMouseEnter: (day) => setHoveredDate(day),
|
|
18701
|
-
modifiers: { preview: isPreviewDate },
|
|
18702
|
-
modifiersClassNames: { preview: "bg-ods-bg-surface" },
|
|
18747
|
+
modifiers: { preview: isPreviewDate, todayTint: isUnclaimedToday },
|
|
18748
|
+
modifiersClassNames: { preview: "bg-ods-bg-surface", todayTint: todayClass },
|
|
18703
18749
|
month: getSecondMonth(month),
|
|
18704
18750
|
classNames,
|
|
18705
18751
|
showOutsideDays: true,
|
|
@@ -34918,7 +34964,7 @@ function VideoBitesDisplay({
|
|
|
34918
34964
|
);
|
|
34919
34965
|
}
|
|
34920
34966
|
|
|
34921
|
-
// src/components/features/
|
|
34967
|
+
// src/components/features/walkthrough-video.tsx
|
|
34922
34968
|
init_cn();
|
|
34923
34969
|
init_button2();
|
|
34924
34970
|
import { useCallback as useCallback28, useEffect as useEffect57, useMemo as useMemo35, useRef as useRef42, useState as useState75 } from "react";
|
|
@@ -34926,7 +34972,7 @@ import * as DialogPrimitive3 from "@radix-ui/react-dialog";
|
|
|
34926
34972
|
import { Fragment as Fragment48, jsx as jsx261, jsxs as jsxs200 } from "react/jsx-runtime";
|
|
34927
34973
|
var isAtEnd = (duration, time) => duration > 0 && duration - time < 1;
|
|
34928
34974
|
var WALKTHROUGH_Z = "z-[9980]";
|
|
34929
|
-
function
|
|
34975
|
+
function WalkthroughVideo({
|
|
34930
34976
|
video,
|
|
34931
34977
|
open: openProp,
|
|
34932
34978
|
onOpenChange,
|
|
@@ -34934,12 +34980,17 @@ function FloatingWalkthroughVideo({
|
|
|
34934
34980
|
defaultOpenPaused,
|
|
34935
34981
|
deepLinkParam = WALKTHROUGH_OPEN_QUERY_PARAM,
|
|
34936
34982
|
label = "Play Demo Video",
|
|
34983
|
+
placement,
|
|
34984
|
+
// Keeps the FLOATING card off the critical path. The inline preset passes 0:
|
|
34985
|
+
// an in-page block is part of a page the visitor is already looking at, so
|
|
34986
|
+
// staggering it in would only jump the layout.
|
|
34937
34987
|
appearDelayMs = 3e3,
|
|
34938
34988
|
dismissal = {},
|
|
34939
34989
|
hideNearSelector = "footer",
|
|
34940
34990
|
pathname,
|
|
34941
34991
|
className
|
|
34942
34992
|
}) {
|
|
34993
|
+
const inline = placement === "inline";
|
|
34943
34994
|
const dismissEnabled = dismissal !== false;
|
|
34944
34995
|
const storageKey = dismissEnabled && dismissal.storageKey || WALKTHROUGH_VIDEO_DISMISS_KEY;
|
|
34945
34996
|
const dismissalId = video?.id != null ? String(video.id) : "dismissed";
|
|
@@ -35011,6 +35062,10 @@ function FloatingWalkthroughVideo({
|
|
|
35011
35062
|
const previewAllowed = !previewSuppressed && !isYouTube;
|
|
35012
35063
|
useEffect57(() => {
|
|
35013
35064
|
if (!mounted) return;
|
|
35065
|
+
if (inline) {
|
|
35066
|
+
setFooterHidden(false);
|
|
35067
|
+
return;
|
|
35068
|
+
}
|
|
35014
35069
|
const el = typeof document !== "undefined" ? document.querySelector(hideNearSelector) : null;
|
|
35015
35070
|
if (!el || typeof IntersectionObserver === "undefined") {
|
|
35016
35071
|
setFooterHidden(false);
|
|
@@ -35022,7 +35077,7 @@ function FloatingWalkthroughVideo({
|
|
|
35022
35077
|
);
|
|
35023
35078
|
io.observe(el);
|
|
35024
35079
|
return () => io.disconnect();
|
|
35025
|
-
}, [mounted, hideNearSelector, pathname]);
|
|
35080
|
+
}, [mounted, inline, hideNearSelector, pathname]);
|
|
35026
35081
|
useEffect57(() => {
|
|
35027
35082
|
if (!resumeMode) return;
|
|
35028
35083
|
const onVis = () => {
|
|
@@ -35272,7 +35327,10 @@ function FloatingWalkthroughVideo({
|
|
|
35272
35327
|
// badge accents off it. It must live on an element that actually
|
|
35273
35328
|
// receives pointer events — the media layer is pointer-events-none, so
|
|
35274
35329
|
// a group inside it can never match :hover.
|
|
35275
|
-
"group/card pointer-events-auto relative overflow-hidden rounded-
|
|
35330
|
+
"group/card pointer-events-auto relative overflow-hidden rounded-md border border-ods-border bg-ods-card",
|
|
35331
|
+
// The lift is what separates a FLOATING card from the page beneath it;
|
|
35332
|
+
// an in-flow block sitting inside a host card needs no shadow at all.
|
|
35333
|
+
!inline && "shadow-2xl",
|
|
35276
35334
|
// MOBILE = PiP dimensions, not a shrunken desktop card. This is an
|
|
35277
35335
|
// UNINVITED overlay on the smallest screens, so it is sized against
|
|
35278
35336
|
// the corner-PiP conventions, NOT against system PiP (which is
|
|
@@ -35288,7 +35346,9 @@ function FloatingWalkthroughVideo({
|
|
|
35288
35346
|
// Do NOT go below ~150px: the corner chrome (32px transport pair +
|
|
35289
35347
|
// 32px dismiss + the title pill) stops fitting, and the card's own
|
|
35290
35348
|
// controls — not the poster — are what set the real floor here.
|
|
35291
|
-
"aspect-video
|
|
35349
|
+
"aspect-video transition-opacity duration-200",
|
|
35350
|
+
// Inline: the HOST owns the width — the card only keeps 16:9 within it.
|
|
35351
|
+
inline ? "w-full" : "w-[min(52vw,192px)] sm:w-80",
|
|
35292
35352
|
footerHidden ? "opacity-0 pointer-events-none" : "opacity-100",
|
|
35293
35353
|
className
|
|
35294
35354
|
),
|
|
@@ -35415,7 +35475,11 @@ function FloatingWalkthroughVideo({
|
|
|
35415
35475
|
}
|
|
35416
35476
|
);
|
|
35417
35477
|
return /* @__PURE__ */ jsxs200(Fragment48, { children: [
|
|
35418
|
-
showCard &&
|
|
35478
|
+
showCard && (inline ? (
|
|
35479
|
+
// No wrapper: a positioning / z-index / safe-area shell around an
|
|
35480
|
+
// in-flow block is exactly what stops it sizing to its container.
|
|
35481
|
+
collapsed
|
|
35482
|
+
) : /* @__PURE__ */ jsx261(
|
|
35419
35483
|
"div",
|
|
35420
35484
|
{
|
|
35421
35485
|
className: cn(
|
|
@@ -35426,7 +35490,7 @@ function FloatingWalkthroughVideo({
|
|
|
35426
35490
|
style: { paddingBottom: "max(var(--spacing-system-mf), env(safe-area-inset-bottom))" },
|
|
35427
35491
|
children: collapsed
|
|
35428
35492
|
}
|
|
35429
|
-
),
|
|
35493
|
+
)),
|
|
35430
35494
|
/* @__PURE__ */ jsx261(DialogPrimitive3.Root, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs200(DialogPortal, { children: [
|
|
35431
35495
|
/* @__PURE__ */ jsx261(DialogOverlay, {}),
|
|
35432
35496
|
/* @__PURE__ */ jsxs200(
|
|
@@ -35498,6 +35562,12 @@ function FloatingWalkthroughVideo({
|
|
|
35498
35562
|
] }) })
|
|
35499
35563
|
] });
|
|
35500
35564
|
}
|
|
35565
|
+
function FloatingWalkthroughVideo(props) {
|
|
35566
|
+
return /* @__PURE__ */ jsx261(WalkthroughVideo, { ...props, placement: "floating" });
|
|
35567
|
+
}
|
|
35568
|
+
function InlineWalkthroughVideo(props) {
|
|
35569
|
+
return /* @__PURE__ */ jsx261(WalkthroughVideo, { ...props, placement: "inline", appearDelayMs: 0, dismissal: false });
|
|
35570
|
+
}
|
|
35501
35571
|
|
|
35502
35572
|
// src/components/features/use-walkthrough-video.ts
|
|
35503
35573
|
import { useQuery } from "@tanstack/react-query";
|
|
@@ -62522,6 +62592,7 @@ export {
|
|
|
62522
62592
|
SelectLabel,
|
|
62523
62593
|
SelectItem,
|
|
62524
62594
|
SelectSeparator,
|
|
62595
|
+
DatePickerCalendar,
|
|
62525
62596
|
DatePicker,
|
|
62526
62597
|
DatePickerInput,
|
|
62527
62598
|
DatePickerInputSimple,
|
|
@@ -63429,6 +63500,7 @@ export {
|
|
|
63429
63500
|
WarningBlock,
|
|
63430
63501
|
VideoBitesDisplay,
|
|
63431
63502
|
FloatingWalkthroughVideo,
|
|
63503
|
+
InlineWalkthroughVideo,
|
|
63432
63504
|
useWalkthroughVideo,
|
|
63433
63505
|
VideoSourceSelector,
|
|
63434
63506
|
ConfidenceBadge,
|
|
@@ -63615,4 +63687,4 @@ export {
|
|
|
63615
63687
|
LogsList,
|
|
63616
63688
|
assets
|
|
63617
63689
|
};
|
|
63618
|
-
//# sourceMappingURL=chunk-
|
|
63690
|
+
//# sourceMappingURL=chunk-GKGQ4DWE.js.map
|