@flamingo-stack/openframe-frontend-core 0.0.515 → 0.0.517-1651.4264.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.
Files changed (100) hide show
  1. package/dist/{chunk-7QYBXWYI.cjs → chunk-2LMIHPQH.cjs} +4 -4
  2. package/dist/{chunk-7QYBXWYI.cjs.map → chunk-2LMIHPQH.cjs.map} +1 -1
  3. package/dist/{chunk-U7RF7YXN.js → chunk-45TSVW73.js} +2 -2
  4. package/dist/{chunk-OUPSNYRI.cjs → chunk-476N4NBC.cjs} +26 -26
  5. package/dist/{chunk-OUPSNYRI.cjs.map → chunk-476N4NBC.cjs.map} +1 -1
  6. package/dist/{chunk-WQ4QJWEE.js → chunk-A5WEANTA.js} +2 -2
  7. package/dist/{chunk-UEIW2ISS.cjs → chunk-ARB3MVHH.cjs} +66 -7
  8. package/dist/chunk-ARB3MVHH.cjs.map +1 -0
  9. package/dist/{chunk-MHW4WBMB.js → chunk-CJ55TI4A.js} +4 -4
  10. package/dist/{chunk-5YX7F5G6.cjs → chunk-CV4IMEEH.cjs} +37 -37
  11. package/dist/{chunk-5YX7F5G6.cjs.map → chunk-CV4IMEEH.cjs.map} +1 -1
  12. package/dist/{chunk-7PGYALRK.cjs → chunk-GWS2J3VC.cjs} +31 -31
  13. package/dist/{chunk-7PGYALRK.cjs.map → chunk-GWS2J3VC.cjs.map} +1 -1
  14. package/dist/{chunk-J4AL3YOT.js → chunk-GXSKS5RO.js} +2 -2
  15. package/dist/{chunk-AW66QABG.cjs → chunk-HNWJSFEV.cjs} +3 -3
  16. package/dist/{chunk-AW66QABG.cjs.map → chunk-HNWJSFEV.cjs.map} +1 -1
  17. package/dist/{chunk-JT7FFD3R.cjs → chunk-HOPPNUGS.cjs} +5 -5
  18. package/dist/{chunk-JT7FFD3R.cjs.map → chunk-HOPPNUGS.cjs.map} +1 -1
  19. package/dist/{chunk-S7YXEFDC.js → chunk-I75L6RSN.js} +2 -2
  20. package/dist/{chunk-YY4FGIRU.cjs → chunk-J4C4IY2F.cjs} +9 -9
  21. package/dist/{chunk-YY4FGIRU.cjs.map → chunk-J4C4IY2F.cjs.map} +1 -1
  22. package/dist/{chunk-5WKVLIP3.js → chunk-J6TFTLXF.js} +2 -2
  23. package/dist/{chunk-E4IB3CTA.cjs → chunk-KG52CG6Y.cjs} +14 -14
  24. package/dist/{chunk-E4IB3CTA.cjs.map → chunk-KG52CG6Y.cjs.map} +1 -1
  25. package/dist/{chunk-RK6YSRIC.cjs → chunk-N2LZPULX.cjs} +11 -11
  26. package/dist/{chunk-RK6YSRIC.cjs.map → chunk-N2LZPULX.cjs.map} +1 -1
  27. package/dist/{chunk-XAAF6UPI.js → chunk-O3CJ6IWP.js} +2 -2
  28. package/dist/{chunk-MTII5NXM.js → chunk-OCNHD5XM.js} +6 -6
  29. package/dist/{chunk-Y4LJ52RB.js → chunk-QRAGH5CS.js} +2 -2
  30. package/dist/{chunk-QHTFPOEL.cjs → chunk-R7JZC5RX.cjs} +7 -7
  31. package/dist/{chunk-QHTFPOEL.cjs.map → chunk-R7JZC5RX.cjs.map} +1 -1
  32. package/dist/{chunk-C646ZLOV.cjs → chunk-SXWPJHP7.cjs} +26 -26
  33. package/dist/{chunk-C646ZLOV.cjs.map → chunk-SXWPJHP7.cjs.map} +1 -1
  34. package/dist/{chunk-LBIWRR75.cjs → chunk-U5ZE22FV.cjs} +61 -61
  35. package/dist/{chunk-LBIWRR75.cjs.map → chunk-U5ZE22FV.cjs.map} +1 -1
  36. package/dist/{chunk-P57FCOI6.js → chunk-UL7QF323.js} +2 -2
  37. package/dist/{chunk-NVMRBO7R.js → chunk-V6FISTDB.js} +2 -2
  38. package/dist/{chunk-IA4USSHI.js → chunk-VGK6CXYG.js} +5 -5
  39. package/dist/{chunk-B6YOWMZF.cjs → chunk-VSUGMXAV.cjs} +87 -87
  40. package/dist/{chunk-B6YOWMZF.cjs.map → chunk-VSUGMXAV.cjs.map} +1 -1
  41. package/dist/{chunk-5RHFQ4JG.js → chunk-VXMKRJYN.js} +65 -6
  42. package/dist/{chunk-5RHFQ4JG.js.map → chunk-VXMKRJYN.js.map} +1 -1
  43. package/dist/{chunk-XM5DPWKV.js → chunk-YXF4JKKQ.js} +4 -4
  44. package/dist/components/case-studies/index.cjs +8 -8
  45. package/dist/components/case-studies/index.js +2 -2
  46. package/dist/components/chat/index.cjs +2 -2
  47. package/dist/components/chat/index.js +1 -1
  48. package/dist/components/contact/index.cjs +3 -3
  49. package/dist/components/contact/index.js +2 -2
  50. package/dist/components/docs/index.cjs +5 -5
  51. package/dist/components/docs/index.js +4 -4
  52. package/dist/components/embeds/index.cjs +3 -3
  53. package/dist/components/embeds/index.js +2 -2
  54. package/dist/components/faq/index.cjs +3 -3
  55. package/dist/components/faq/index.js +2 -2
  56. package/dist/components/features/floating-walkthrough-video.d.ts.map +1 -1
  57. package/dist/components/features/index.cjs +2 -2
  58. package/dist/components/features/index.js +1 -1
  59. package/dist/components/help-center-pages/index.cjs +22 -22
  60. package/dist/components/help-center-pages/index.js +13 -13
  61. package/dist/components/index.cjs +136 -132
  62. package/dist/components/index.cjs.map +1 -1
  63. package/dist/components/index.js +15 -11
  64. package/dist/components/index.js.map +1 -1
  65. package/dist/components/meeting-scheduler/index.cjs +34 -34
  66. package/dist/components/meeting-scheduler/index.js +3 -3
  67. package/dist/components/navigation/index.cjs +2 -2
  68. package/dist/components/navigation/index.js +1 -1
  69. package/dist/components/onboarding-guides/index.cjs +5 -5
  70. package/dist/components/onboarding-guides/index.js +4 -4
  71. package/dist/components/related-content/index.cjs +3 -3
  72. package/dist/components/related-content/index.js +2 -2
  73. package/dist/components/tickets/index.cjs +6 -6
  74. package/dist/components/tickets/index.js +5 -5
  75. package/dist/components/ui/index.cjs +6 -2
  76. package/dist/components/ui/index.cjs.map +1 -1
  77. package/dist/components/ui/index.js +5 -1
  78. package/dist/components/ui/test-run.d.ts +13 -0
  79. package/dist/components/ui/test-run.d.ts.map +1 -1
  80. package/dist/index.cjs +6 -2
  81. package/dist/index.cjs.map +1 -1
  82. package/dist/index.js +5 -1
  83. package/package.json +1 -1
  84. package/src/components/features/floating-walkthrough-video.tsx +42 -6
  85. package/src/components/ui/test-run.tsx +59 -6
  86. package/src/stories/TestRun.stories.tsx +20 -2
  87. package/dist/chunk-UEIW2ISS.cjs.map +0 -1
  88. /package/dist/{chunk-U7RF7YXN.js.map → chunk-45TSVW73.js.map} +0 -0
  89. /package/dist/{chunk-WQ4QJWEE.js.map → chunk-A5WEANTA.js.map} +0 -0
  90. /package/dist/{chunk-MHW4WBMB.js.map → chunk-CJ55TI4A.js.map} +0 -0
  91. /package/dist/{chunk-J4AL3YOT.js.map → chunk-GXSKS5RO.js.map} +0 -0
  92. /package/dist/{chunk-S7YXEFDC.js.map → chunk-I75L6RSN.js.map} +0 -0
  93. /package/dist/{chunk-5WKVLIP3.js.map → chunk-J6TFTLXF.js.map} +0 -0
  94. /package/dist/{chunk-XAAF6UPI.js.map → chunk-O3CJ6IWP.js.map} +0 -0
  95. /package/dist/{chunk-MTII5NXM.js.map → chunk-OCNHD5XM.js.map} +0 -0
  96. /package/dist/{chunk-Y4LJ52RB.js.map → chunk-QRAGH5CS.js.map} +0 -0
  97. /package/dist/{chunk-P57FCOI6.js.map → chunk-UL7QF323.js.map} +0 -0
  98. /package/dist/{chunk-NVMRBO7R.js.map → chunk-V6FISTDB.js.map} +0 -0
  99. /package/dist/{chunk-IA4USSHI.js.map → chunk-VGK6CXYG.js.map} +0 -0
  100. /package/dist/{chunk-XM5DPWKV.js.map → chunk-YXF4JKKQ.js.map} +0 -0
@@ -34486,7 +34486,22 @@ function FloatingWalkthroughVideo({
34486
34486
  // receives pointer events — the media layer is pointer-events-none, so
34487
34487
  // a group inside it can never match :hover.
34488
34488
  "group/card pointer-events-auto relative overflow-hidden rounded-lg border border-ods-border bg-ods-card shadow-2xl",
34489
- "aspect-video w-60 sm:w-80 transition-opacity duration-200",
34489
+ // MOBILE = PiP dimensions, not a shrunken desktop card. This is an
34490
+ // UNINVITED overlay on the smallest screens, so it is sized against
34491
+ // the corner-PiP conventions, NOT against system PiP (which is
34492
+ // user-invoked content and is allowed ~60% of the shortest edge):
34493
+ // - AOSP's legacy corner spec asks for 23% of screen width, then
34494
+ // clamps up to `default_minimal_size_pip_resizable_task` (108dp in
34495
+ // BOTH dimensions) — at 16:9 that floor IS 192x108, and on any
34496
+ // modern phone the clamp is what actually applies. Hence the cap.
34497
+ // - 192x108 lands at ~6% of a 390x844 screen, inside the "small
34498
+ // player" band (<=20% of screen) rather than the "large" one.
34499
+ // 52vw keeps it proportional on narrow devices (320px -> 166x93) and
34500
+ // the 192px cap takes over from ~369px up, i.e. on most phones.
34501
+ // Do NOT go below ~150px: the corner chrome (32px transport pair +
34502
+ // 32px dismiss + the title pill) stops fitting, and the card's own
34503
+ // controls — not the poster — are what set the real floor here.
34504
+ "aspect-video w-[min(52vw,192px)] sm:w-80 transition-opacity duration-200",
34490
34505
  footerHidden ? "opacity-0 pointer-events-none" : "opacity-100",
34491
34506
  className
34492
34507
  ),
@@ -34530,7 +34545,7 @@ function FloatingWalkthroughVideo({
34530
34545
  isClone: false,
34531
34546
  badge: "play",
34532
34547
  fit: "cover",
34533
- posterSizes: "320px",
34548
+ posterSizes: "(max-width: 639px) 192px, 320px",
34534
34549
  preload: "none",
34535
34550
  hideMutedBadge: true,
34536
34551
  onMutedFallbackChange: onCardFallbackChange,
@@ -34566,7 +34581,7 @@ function FloatingWalkthroughVideo({
34566
34581
  title: controlIsPlay ? "Play" : "Unmute",
34567
34582
  onPointerDown: (e) => e.stopPropagation(),
34568
34583
  onClick: onUnmuteOrPlay,
34569
- className: "absolute inset-0 z-30 m-auto",
34584
+ className: "absolute inset-0 z-30 m-auto hidden sm:inline-flex",
34570
34585
  children: controlIsPlay ? /* @__PURE__ */ jsx249(VideoPlayBadge, {}) : /* @__PURE__ */ jsx249(VideoUnmuteGlyph, {})
34571
34586
  }
34572
34587
  ),
@@ -34580,7 +34595,7 @@ function FloatingWalkthroughVideo({
34580
34595
  title: cardMuted ? "Unmute" : "Mute",
34581
34596
  onPointerDown: (e) => e.stopPropagation(),
34582
34597
  onClick: onToggleMute,
34583
- className: cn(showBigUnmute && !controlIsPlay && "hidden"),
34598
+ className: cn(showBigUnmute && !controlIsPlay && "sm:hidden"),
34584
34599
  children: cardMuted ? /* @__PURE__ */ jsx249(VolumeXmarkIcon, {}) : /* @__PURE__ */ jsx249(VolumeUpIcon, {})
34585
34600
  }
34586
34601
  ),
@@ -47436,9 +47451,37 @@ function TestResultsTable({ rows, loading }) {
47436
47451
  /* @__PURE__ */ jsx359(DataTable.Body, { loading: false })
47437
47452
  ] }) }) });
47438
47453
  }
47454
+ function TestRunErrorBanner({ error, className }) {
47455
+ const { copy } = useCopyToClipboard({ successDescription: "Error message copied to clipboard" });
47456
+ return /* @__PURE__ */ jsxs284(
47457
+ "div",
47458
+ {
47459
+ role: "alert",
47460
+ className: cn(
47461
+ "flex items-center justify-between gap-[var(--spacing-system-s)]",
47462
+ "rounded-[6px] border border-ods-error bg-ods-error-secondary",
47463
+ "px-[var(--spacing-system-mf)] py-[var(--spacing-system-s)]",
47464
+ className
47465
+ ),
47466
+ children: [
47467
+ /* @__PURE__ */ jsx359("p", { className: "text-h4 text-ods-error min-w-0 break-words", children: error }),
47468
+ /* @__PURE__ */ jsx359(
47469
+ "button",
47470
+ {
47471
+ type: "button",
47472
+ "aria-label": "Copy error message",
47473
+ onClick: () => copy(error),
47474
+ className: "shrink-0 text-ods-error hover:opacity-80 transition-opacity focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-focus rounded-sm",
47475
+ children: /* @__PURE__ */ jsx359(Copy02Icon, { className: "size-5" })
47476
+ }
47477
+ )
47478
+ ]
47479
+ }
47480
+ );
47481
+ }
47439
47482
  function TestRunResults({ isActive, displayRows, firstError, className }) {
47440
47483
  return /* @__PURE__ */ jsxs284("div", { className: cn("flex flex-col gap-[var(--spacing-system-xsf)]", className), children: [
47441
- firstError && /* @__PURE__ */ jsx359("p", { role: "alert", className: "text-h6 text-ods-error", children: firstError }),
47484
+ firstError && /* @__PURE__ */ jsx359(TestRunErrorBanner, { error: firstError }),
47442
47485
  !isActive && displayRows.length === 0 ? (
47443
47486
  // With zero rows the error line alone explains the outcome; a
47444
47487
  // "No results returned" empty state next to it would mislead.
@@ -47455,6 +47498,18 @@ function TimingStat({ value, label, className }) {
47455
47498
  /* @__PURE__ */ jsx359("span", { className: "text-h6 text-ods-text-secondary truncate", children: label })
47456
47499
  ] });
47457
47500
  }
47501
+ var TEST_RUN_STATUS_TAGS = {
47502
+ running: { label: "IN PROCESS", variant: "warning" },
47503
+ success: { label: "SUCCESS", variant: "success" },
47504
+ error: { label: "ERROR", variant: "error" }
47505
+ };
47506
+ function TestRunStatusStat({ status, className }) {
47507
+ const tag = status === "idle" ? null : TEST_RUN_STATUS_TAGS[status];
47508
+ return /* @__PURE__ */ jsxs284("div", { className: cn("flex flex-col justify-center items-start min-w-0 gap-[var(--spacing-system-xxs)]", className), children: [
47509
+ tag ? /* @__PURE__ */ jsx359(Tag, { label: tag.label, variant: tag.variant, className: "pointer-events-none" }) : /* @__PURE__ */ jsx359("span", { className: "text-h4 text-ods-text-secondary truncate", children: "-" }),
47510
+ /* @__PURE__ */ jsx359("span", { className: "text-h6 text-ods-text-secondary truncate", children: "Status" })
47511
+ ] });
47512
+ }
47458
47513
  function useTestRunState(campaign) {
47459
47514
  const [hasRun, setHasRun] = React137.useState(false);
47460
47515
  const [isStarting, setIsStarting] = React137.useState(false);
@@ -47496,6 +47551,7 @@ function useTestRunState(campaign) {
47496
47551
  const isFinished = campaign.campaignStatus === "finished";
47497
47552
  const showResults = isActive || hasRun && isFinished;
47498
47553
  const firstError = isFinished && campaign.errors.length > 0 ? campaign.errors[0].error : null;
47554
+ const status = isActive ? "running" : hasRun && isFinished ? firstError ? "error" : "success" : "idle";
47499
47555
  const showTiming = hasRun && campaign.startedAt !== null && (campaign.isRunning || isFinished);
47500
47556
  const startedLabel = showTiming && campaign.startedAt ? formatTime(campaign.startedAt) : "00:00 PM";
47501
47557
  const durationLabel = showTiming ? formatTestRunDuration(durationMs) : "00:00:00";
@@ -47510,6 +47566,7 @@ function useTestRunState(campaign) {
47510
47566
  isActive,
47511
47567
  isFinished,
47512
47568
  showResults,
47569
+ status,
47513
47570
  firstError,
47514
47571
  startedLabel,
47515
47572
  durationLabel,
@@ -60984,8 +61041,10 @@ export {
60984
61041
  formatTestRunDuration,
60985
61042
  TestResultsSkeleton,
60986
61043
  TestResultsTable,
61044
+ TestRunErrorBanner,
60987
61045
  TestRunResults,
60988
61046
  TimingStat,
61047
+ TestRunStatusStat,
60989
61048
  useTestRunState,
60990
61049
  TicketDetailSection,
60991
61050
  TicketAttachmentsList,
@@ -61036,4 +61095,4 @@ export {
61036
61095
  LogsList,
61037
61096
  assets
61038
61097
  };
61039
- //# sourceMappingURL=chunk-5RHFQ4JG.js.map
61098
+ //# sourceMappingURL=chunk-VXMKRJYN.js.map