box-content-preview 3.104.0 → 3.106.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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  [![Mergify Status](https://img.shields.io/endpoint.svg?url=https://gh.mergify.io/badges/box/box-content-preview&style=flat)](https://mergify.io)
3
3
  [![Styled With Prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
4
4
  [![build status](https://img.shields.io/travis/box/box-content-preview/master.svg?style=flat-square)](https://travis-ci.org/box/box-content-preview)
5
- [![version](https://img.shields.io/badge/version-v3.104.0-blue.svg?style=flat-square)](https://github.com/box/box-content-preview)
5
+ [![version](https://img.shields.io/badge/version-v3.106.0-blue.svg?style=flat-square)](https://github.com/box/box-content-preview)
6
6
  [![npm version](https://img.shields.io/npm/v/box-ui-elements.svg?style=flat-square)](https://www.npmjs.com/package/box-ui-elements)
7
7
 
8
8
  # [Box Content Preview](https://developer.box.com/docs/box-content-preview)
@@ -22,11 +22,11 @@ We encourage all users to update their applications to utilize modern browsers f
22
22
 
23
23
  ## Current Version
24
24
 
25
- - Version: v3.104.0
25
+ - Version: v3.106.0
26
26
  - Locale: en-US
27
27
 
28
- https://cdn01.boxcdn.net/platform/preview/3.104.0/en-US/preview.js
29
- https://cdn01.boxcdn.net/platform/preview/3.104.0/en-US/preview.css
28
+ https://cdn01.boxcdn.net/platform/preview/3.106.0/en-US/preview.js
29
+ https://cdn01.boxcdn.net/platform/preview/3.106.0/en-US/preview.css
30
30
 
31
31
  ## Supported Locales
32
32
 
@@ -52,10 +52,10 @@ You can self-host the Box Content Preview library or reference the versions avai
52
52
  <title>Box Content Preview Demo</title>
53
53
 
54
54
  <!-- Latest version of Preview SDK for your locale -->
55
- <script src="https://cdn01.boxcdn.net/platform/preview/3.104.0/en-US/preview.js"></script>
55
+ <script src="https://cdn01.boxcdn.net/platform/preview/3.106.0/en-US/preview.js"></script>
56
56
  <link
57
57
  rel="stylesheet"
58
- href="https://cdn01.boxcdn.net/platform/preview/3.104.0/en-US/preview.css"
58
+ href="https://cdn01.boxcdn.net/platform/preview/3.106.0/en-US/preview.css"
59
59
  />
60
60
  </head>
61
61
  <body>
@@ -76,7 +76,7 @@ To self-host the Box Content Preview library, follow these steps:
76
76
 
77
77
  1. Either fork the repo and check out the version you want to host or download the specific version as a zip:
78
78
 
79
- - Check out a specific version with `git checkout v3.104.0`
79
+ - Check out a specific version with `git checkout v3.106.0`
80
80
  - Download a specific version as a zip from https://github.com/box/box-content-preview/releases
81
81
 
82
82
  2. Install dependencies and build the library with `yarn install && yarn build:i18n && yarn build:prod`
@@ -62,11 +62,11 @@
62
62
  .bp-WaveformCommentMarkers{position:absolute;top:-2px;right:0;left:0;z-index:4;box-sizing:border-box;height:24px;padding:0 60px;overflow:visible;pointer-events:auto}.bp-WaveformCommentMarkers--zoomed,.bp-WaveformCommentMarkers--tape{padding:0;overflow:clip visible}.bp-WaveformCommentMarkers--tape{top:auto;bottom:100%;margin-bottom:12px}.bp-WaveformCommentMarkers-track{position:relative;width:100%;height:100%;overflow:visible}.bp-WaveformCommentMarkers--zoomed .bp-WaveformCommentMarkers-track,.bp-WaveformCommentMarkers--tape .bp-WaveformCommentMarkers-track{overflow:clip visible}.bp-WaveformCommentMarkers-marker{position:absolute;top:50%;z-index:1;display:flex;align-items:center;justify-content:center;width:auto;height:auto;padding:0;background:none;border:0;border-radius:50%;transform:translate(-50%, -50%);cursor:pointer;appearance:none;pointer-events:auto;overflow:visible;outline:none;transition:box-shadow 150ms}.bp-WaveformCommentMarkers-marker:focus,.bp-WaveformCommentMarkers-marker:focus-visible{outline:none}.bp-WaveformCommentMarkers-marker .bp-MarkerAvatar{overflow:visible;isolation:isolate;cursor:pointer}.bp-WaveformCommentMarkers-marker .bp-MarkerAvatar img{cursor:pointer}.bp-WaveformCommentMarkers-marker .bp-MarkerAvatar::after{position:absolute;z-index:1;inset:0;background:#000;border-radius:50%;opacity:.4;pointer-events:none;content:"";transition:opacity 150ms}.bp-WaveformCommentMarkers-marker>.bp-MarkerAvatar{position:relative;bottom:auto;left:auto;transform:none;transform-origin:center center}.bp-WaveformCommentMarkers-marker .bp-MarkerAvatar:not(.bp-MarkerAvatarStack-overflowBadge),.bp-WaveformCommentMarkers-marker .bp-MarkerAvatarStack .bp-MarkerAvatar:not(.bp-MarkerAvatarStack-overflowBadge){background-color:#000}.bp-WaveformCommentMarkers-marker .bp-MarkerAvatarStack{position:relative;bottom:auto;left:auto;transform:none}.bp-WaveformCommentMarkers-marker--group{width:auto}.bp-WaveformView:hover~.bp-WaveformCommentMarkers .bp-MarkerAvatar::after,.bp-WaveformCommentMarkers:hover .bp-MarkerAvatar::after,.bp-WaveformCommentMarkers:has(:focus-visible) .bp-MarkerAvatar::after,.bp-WaveformCommentMarkers-marker:not(.bp-WaveformCommentMarkers-marker--group).bp-WaveformCommentMarkers-marker--selected .bp-MarkerAvatar::after,.bp-WaveformCommentMarkers .bp-MarkerAvatarStack-item--selected .bp-MarkerAvatar::after{opacity:0}.bp-WaveformCommentMarkers-marker--selected{z-index:3}.bp-WaveformCommentMarkers-marker:hover,.bp-WaveformCommentMarkers-marker:focus-within{z-index:4}.bp-WaveformCommentMarkers .bp-MarkerAvatarStack-item{cursor:pointer;transition:margin 150ms}.bp-WaveformCommentMarkers .bp-MarkerAvatarStack-item:hover,.bp-WaveformCommentMarkers .bp-MarkerAvatarStack-item:focus-visible{z-index:3}@media(prefers-reduced-motion: reduce){.bp-WaveformCommentMarkers-marker,.bp-WaveformCommentMarkers .bp-MarkerAvatarStack-item,.bp-WaveformCommentMarkers-marker .bp-MarkerAvatar::after{transition:none}}
63
63
  .bp-WaveformGeneratingIndicator{display:flex;gap:4px;align-items:center;height:48px;padding:8px 16px 8px 12px;pointer-events:none}.bp-WaveformGeneratingIndicator-bars{display:flex;flex:0 0 24px;align-items:center;justify-content:center;width:24px;height:24px}.bp-WaveformGeneratingIndicator-bar{width:2px;height:10px;background:rgba(255,255,255,.3);border-radius:6px;animation:bp-WaveformGeneratingIndicator-pulse .66s ease-in-out infinite}.bp-WaveformGeneratingIndicator-bar:nth-child(2){margin-left:2px;animation-delay:.1s}.bp-WaveformGeneratingIndicator-bar:last-child{margin-left:2px;animation-delay:.2s}.bp-WaveformGeneratingIndicator-label{color:#fff;font-weight:normal;font-size:14px;line-height:22px;white-space:nowrap}@keyframes bp-WaveformGeneratingIndicator-pulse{0%,80%,100%{background:rgba(255,255,255,.3);transform:scaleY(1.2)}40%{background:#fff;transform:scaleY(1.6)}}@media(prefers-reduced-motion: reduce){.bp-WaveformGeneratingIndicator-bar{animation:none;background:#fff;transform:none}}
64
64
  .bp-WaveformShuttle{position:absolute;top:48px;left:50%;z-index:6;display:flex;gap:4px;align-items:center;height:48px;padding:8px 16px;color:#fff;background:rgba(255,255,255,.1);border-radius:24px;box-shadow:0 2px 12px rgba(0,0,0,.08);transform:translateX(-50%);backdrop-filter:blur(60px);pointer-events:none;-webkit-user-select:none;user-select:none}.bp-WaveformShuttle-glyph{display:block;flex:0 0 auto;width:19px;height:11px}.bp-WaveformShuttle.bp-is-reverse .bp-WaveformShuttle-glyph{transform:scaleX(-1)}.bp-WaveformShuttle-rate{font-weight:500;font-size:14px;line-height:22px;white-space:nowrap}
65
- .bp-WaveformRange{position:absolute;inset:0;z-index:2;pointer-events:none}.bp-WaveformRange-region{position:absolute;top:50%;box-sizing:border-box;height:150px;pointer-events:none;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.4);border-radius:10px;box-shadow:0 0 0 1px #222;transform:translateY(-50%);transition:border-width 100ms ease,border-color 100ms ease}.bp-WaveformRange--swiping .bp-WaveformRange-region{visibility:hidden}.bp-WaveformRange--highlight .bp-WaveformRange-region,.bp-WaveformRange:has(.bp-WaveformRange-handle:hover) .bp-WaveformRange-region,.bp-WaveformRange:has(.bp-WaveformRange-handle--dragging) .bp-WaveformRange-region{border-width:2px;border-color:#fff}.bp-WaveformRange-handle{position:absolute;top:50%;z-index:1;width:24px;height:150px;pointer-events:auto;cursor:ew-resize;touch-action:none;transform:translate(-50%, -50%)}.bp-WaveformRange-handle--end{z-index:2}.bp-WaveformRange-handleGrip{position:absolute;top:50%;left:50%;width:8px;height:20px;background:#fff;border:1px solid #222;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.4);opacity:0;pointer-events:none;transform:translate(-50%, -50%) scale(0.5);transition:opacity 100ms ease-in,transform 100ms ease-in}.bp-WaveformRange-handle:hover .bp-WaveformRange-handleGrip,.bp-WaveformRange-handle:focus-visible .bp-WaveformRange-handleGrip,.bp-WaveformRange-handle--dragging .bp-WaveformRange-handleGrip{opacity:1;transform:translate(-50%, -50%) scale(1);transition:opacity 150ms ease-out,transform 150ms ease-out}.bp-WaveformRange-comment{position:absolute;top:calc(50% - 75px);z-index:5;display:inline-flex;gap:8px;align-items:center;justify-content:center;box-sizing:border-box;height:48px;padding:8px 14px;color:rgba(255,255,255,.8);font-weight:normal;font-size:14px;font-family:Lato,Arial,sans-serif;line-height:22px;letter-spacing:.1px;white-space:nowrap;background:rgba(0,0,0,.8);border:0;backdrop-filter:blur(12px);border-radius:46px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);transform:translate(-50%, calc(-100% - 36px));cursor:pointer;appearance:none;pointer-events:auto}.bp-WaveformRange-comment--withClear{gap:4px;padding:8px 8px 8px 12px;cursor:default}.bp-WaveformRange-comment--clearOnly{width:48px;height:48px;padding:0;border-radius:50%}.bp-WaveformRange-commentLabel,.bp-WaveformRange-commentClear{display:inline-flex;align-items:center;justify-content:center;padding:0;color:inherit;font:inherit;letter-spacing:inherit;background:transparent;border:0;cursor:pointer;appearance:none}.bp-WaveformRange-commentLabel{gap:8px;height:32px;padding:0 6px}.bp-WaveformRange-commentDivider{flex:0 0 auto;width:1px;height:16px;background:rgba(255,255,255,.4)}.bp-WaveformRange-commentClear{width:32px;height:32px;border-radius:50%}.bp-WaveformRange-commentIcon{display:block;flex:0 0 auto;width:20px;height:20px;fill:currentcolor}.bp-WaveformView--tape .bp-WaveformRange-comment{top:calc(50% - (100% + 10px) / 2)}.bp-WaveformRange-tooltip{position:absolute;top:100%;z-index:3;margin-top:4px;pointer-events:none;transform:translateX(-50%)}.bp-WaveformRange-tooltipTime{padding:4px 10px;color:#fff;font-weight:normal;font-size:14px;font-family:Lato,Arial,sans-serif;line-height:20px;letter-spacing:.3px;white-space:nowrap;background:rgba(34,34,34,.92);border:1px solid rgba(255,255,255,.18);border-radius:8px}@media(prefers-reduced-motion: reduce){.bp-WaveformRange-region,.bp-WaveformRange-handleGrip{transition:none}}
66
- .bp-WaveformView{box-sizing:border-box;width:100%;height:206px;min-height:206px;padding:0 60px;overflow:visible;background:none;-webkit-tap-highlight-color:transparent}.bp-WaveformView.bp-WaveformView--zoomed,.bp-WaveformView.bp-WaveformView--tape{padding:0;touch-action:none}.bp-WaveformView.bp-WaveformView--zoomed .bp-WaveformView-canvas,.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-canvas{overflow:hidden;mask-image:linear-gradient(to right, transparent, #000 92px, #000 calc(100% - 92px), transparent)}.bp-WaveformView.bp-WaveformView--zoomed .bp-WaveformView-canvas>*::part(scroll),.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-canvas>*::part(scroll){overscroll-behavior-x:none}.bp-WaveformView.bp-WaveformView--tape{flex:1 1 auto;height:100%;min-height:0;-webkit-touch-callout:none}.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-canvas{height:100%}.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-canvas>*::part(scroll){scrollbar-width:none}.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-playhead,.bp-WaveformView.bp-WaveformView--tape .bp-WaveformRange-region,.bp-WaveformView.bp-WaveformView--tape .bp-WaveformRange-handle{height:calc(100% + 10px)}.bp-WaveformView-track{position:relative;display:flex;align-items:center;width:100%;height:100%;cursor:pointer}.bp-WaveformView-canvas{z-index:0;width:100%;height:140px}.bp-WaveformView-playhead{position:absolute;top:50%;left:0;z-index:1;width:2px;height:150px;pointer-events:none;background:linear-gradient(#2487ff, #006bed);border-radius:1px;box-shadow:0 0 0 1px #222,0 0 10px 0 rgba(36,135,255,.3);transform:translate(-50%, -50%)}.bp-WaveformView-hover{position:absolute;top:100%;z-index:2;margin-top:4px;pointer-events:none;transform:translateX(-50%)}.bp-WaveformView-hover--tape{top:-24px;left:50%;z-index:5;margin-top:0;transform:translate(-50%, -50%)}.bp-WaveformView-hoverTime{padding:4px 10px;color:#fff;font-weight:normal;font-size:14px;font-family:Lato,Arial,sans-serif;line-height:20px;letter-spacing:.3px;white-space:nowrap;background:rgba(34,34,34,.92);border:1px solid rgba(255,255,255,.18);border-radius:8px}.bp-WaveformView--inert{pointer-events:none}.bp-WaveformView--inert .bp-WaveformView-track{cursor:default}.bp-WaveformView--inert .bp-WaveformRange-handle,.bp-WaveformView--inert .bp-WaveformRange-comment,.bp-WaveformView--inert .bp-WaveformRange-commentLabel,.bp-WaveformView--inert .bp-WaveformRange-commentClear{pointer-events:none;cursor:default}.bp-WaveformView:not(:hover) .bp-WaveformRange:not(.bp-WaveformRange--persist){opacity:.4}
65
+ .bp-WaveformRange{position:absolute;inset:0;z-index:2;pointer-events:none}.bp-WaveformRange-region{position:absolute;top:50%;box-sizing:border-box;height:150px;pointer-events:none;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.4);border-radius:10px;box-shadow:0 0 0 1px #222;transform:translateY(-50%);transition:border-width 100ms ease,border-color 100ms ease}.bp-WaveformRange--swiping .bp-WaveformRange-region{visibility:hidden}.bp-WaveformRange--highlight .bp-WaveformRange-region,.bp-WaveformRange:has(.bp-WaveformRange-handle:hover) .bp-WaveformRange-region,.bp-WaveformRange:has(.bp-WaveformRange-handle--dragging) .bp-WaveformRange-region{border-width:2px;border-color:#fff}.bp-WaveformRange-handle{position:absolute;top:50%;z-index:1;width:24px;height:150px;pointer-events:auto;cursor:ew-resize;touch-action:none;transform:translate(-50%, -50%)}.bp-WaveformRange-handle--end{z-index:2}.bp-WaveformRange-handleGrip{position:absolute;top:50%;left:50%;width:8px;height:20px;background:#fff;border:1px solid #222;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.4);opacity:0;pointer-events:none;transform:translate(-50%, -50%) scale(0.5);transition:opacity 100ms ease-in,transform 100ms ease-in}.bp-WaveformRange-handle:hover .bp-WaveformRange-handleGrip,.bp-WaveformRange-handle:focus-visible .bp-WaveformRange-handleGrip,.bp-WaveformRange-handle--dragging .bp-WaveformRange-handleGrip{opacity:1;transform:translate(-50%, -50%) scale(1);transition:opacity 150ms ease-out,transform 150ms ease-out}.bp-WaveformRange-comment{position:absolute;top:calc(50% - 75px);z-index:5;display:inline-flex;gap:8px;align-items:center;justify-content:center;box-sizing:border-box;height:48px;padding:8px 14px;color:rgba(255,255,255,.8);font-weight:normal;font-size:14px;font-family:Lato,Arial,sans-serif;line-height:22px;letter-spacing:.1px;white-space:nowrap;background:rgba(0,0,0,.8);border:0;backdrop-filter:blur(12px);border-radius:46px;box-shadow:0 2px 4px 0 rgba(0,0,0,.12);transform:translate(-50%, calc(-100% - 36px));cursor:pointer;appearance:none;pointer-events:auto;animation:bp-WaveformRange-commentIn 150ms ease-out}@keyframes bp-WaveformRange-commentIn{from{opacity:0;transform:translate(-50%, calc(-100% - 36px + 8px))}to{opacity:1;transform:translate(-50%, calc(-100% - 36px))}}.bp-WaveformRange-comment--withClear{gap:4px;padding:8px 8px 8px 12px;cursor:default}.bp-WaveformRange-comment--clearOnly{width:48px;height:48px;padding:0;border-radius:50%}.bp-WaveformRange-commentLabel,.bp-WaveformRange-commentClear{display:inline-flex;align-items:center;justify-content:center;padding:0;color:inherit;font:inherit;letter-spacing:inherit;background:transparent;border:0;cursor:pointer;appearance:none}.bp-WaveformRange-commentLabel{gap:8px;height:32px;padding:0 6px}.bp-WaveformRange-commentDivider{flex:0 0 auto;width:1px;height:16px;background:rgba(255,255,255,.4)}.bp-WaveformRange-commentClear{width:32px;height:32px;border-radius:50%}.bp-WaveformRange-commentIcon{display:block;flex:0 0 auto;width:20px;height:20px;fill:currentcolor}.bp-WaveformView--tape .bp-WaveformRange-comment{top:calc(50% - (100% + 10px) / 2)}.bp-WaveformRange-tooltip{position:absolute;top:100%;z-index:3;margin-top:4px;pointer-events:none;transform:translateX(-50%)}.bp-WaveformRange-tooltipTime{padding:4px 10px;color:#fff;font-weight:normal;font-size:14px;font-family:Lato,Arial,sans-serif;line-height:20px;letter-spacing:.3px;white-space:nowrap;background:rgba(34,34,34,.92);border:1px solid rgba(255,255,255,.18);border-radius:8px}@media(prefers-reduced-motion: reduce){.bp-WaveformRange-region,.bp-WaveformRange-handleGrip{transition:none}.bp-WaveformRange-comment{animation:none}}
66
+ .bp-WaveformView{box-sizing:border-box;width:100%;height:206px;min-height:206px;padding:0 60px;overflow:visible;background:none;-webkit-tap-highlight-color:transparent}.bp-WaveformView.bp-WaveformView--zoomed,.bp-WaveformView.bp-WaveformView--tape{padding:0;touch-action:none}.bp-WaveformView.bp-WaveformView--zoomed .bp-WaveformView-canvas,.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-canvas{overflow:hidden;mask-image:linear-gradient(to right, transparent, #000 92px, #000 calc(100% - 92px), transparent)}.bp-WaveformView.bp-WaveformView--zoomed .bp-WaveformView-canvas>*::part(scroll),.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-canvas>*::part(scroll){overscroll-behavior-x:none}.bp-WaveformView.bp-WaveformView--tape{flex:1 1 auto;height:100%;min-height:0;-webkit-touch-callout:none}.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-canvas{height:100%}.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-canvas>*::part(scroll){scrollbar-width:none}.bp-WaveformView.bp-WaveformView--tape .bp-WaveformView-playhead,.bp-WaveformView.bp-WaveformView--tape .bp-WaveformRange-region,.bp-WaveformView.bp-WaveformView--tape .bp-WaveformRange-handle{height:calc(100% + 10px)}.bp-WaveformView-track{position:relative;display:flex;align-items:center;width:100%;height:100%;cursor:pointer}.bp-WaveformView-canvas{z-index:0;width:100%;height:140px}.bp-WaveformView-playhead{position:absolute;top:50%;left:0;z-index:1;width:2px;height:150px;pointer-events:none;background:linear-gradient(#2487ff, #006bed);border-radius:1px;box-shadow:0 0 0 1px #222,0 0 10px 0 rgba(36,135,255,.3);transform:translate(-50%, -50%)}.bp-WaveformView-playhead .bp-WaveformView-playheadComment{top:auto;bottom:calc(100% + 36px);left:50%;transform:translateX(-50%);animation-name:bp-WaveformView-playheadCommentIn}@keyframes bp-WaveformView-playheadCommentIn{from{opacity:0;transform:translate(-50%, 8px)}to{opacity:1;transform:translateX(-50%)}}@media(prefers-reduced-motion: reduce){.bp-WaveformView-playhead .bp-WaveformView-playheadComment{animation:none}}.bp-WaveformView-hover{position:absolute;top:100%;z-index:2;margin-top:4px;pointer-events:none;transform:translateX(-50%)}.bp-WaveformView-hover--tape{top:-24px;left:50%;z-index:5;margin-top:0;transform:translate(-50%, -50%)}.bp-WaveformView-hoverTime{padding:4px 10px;color:#fff;font-weight:normal;font-size:14px;font-family:Lato,Arial,sans-serif;line-height:20px;letter-spacing:.3px;white-space:nowrap;background:rgba(34,34,34,.92);border:1px solid rgba(255,255,255,.18);border-radius:8px}.bp-WaveformView--inert{pointer-events:none}.bp-WaveformView--inert .bp-WaveformView-track{cursor:default}.bp-WaveformView--inert .bp-WaveformRange-handle,.bp-WaveformView--inert .bp-WaveformRange-comment,.bp-WaveformView--inert .bp-WaveformRange-commentLabel,.bp-WaveformView--inert .bp-WaveformRange-commentClear{pointer-events:none;cursor:default}.bp-WaveformView:not(:hover) .bp-WaveformRange:not(.bp-WaveformRange--persist){opacity:.4}
67
67
  .bp-SliderControl{outline:0;position:relative;cursor:pointer}.bp-SliderControl:focus:not(:disabled){box-shadow:inset 0 0 0 1px rgba(211,211,211,.5),0 1px 2px rgba(0,0,0,.1)}.bp-SliderControl:focus-visible:not(:disabled){box-shadow:inset 0 0 0 1px rgba(211,211,211,.5),0 1px 2px rgba(0,0,0,.1)}.bp-SliderControl:focus:not(:focus-visible){box-shadow:none}.bp-SliderControl-thumb{position:absolute;top:calc(50% - 6px);width:12px;height:12px;margin-left:-6px;background:#0061d5;border:0;border-radius:12px;cursor:pointer}.bp-SliderControl-track{position:absolute;inset:0;height:3px;margin:auto 3px;background:transparent linear-gradient(#fff, #fff) no-repeat center border-box}
68
68
  .bp-WaveformZoomControl{display:flex;flex-direction:row;gap:0;align-items:center;justify-content:flex-end;width:48px;height:48px;padding:4px;overflow:hidden;background:rgba(255,255,255,.1);border-radius:32px;box-shadow:0 2px 12px rgba(0,0,0,.08);backdrop-filter:blur(60px);transition:width 150ms ease-out,gap 150ms ease-out}.bp-WaveformZoomControl.bp-has-multiplier{padding:4px 4px 4px 12px}.bp-WaveformZoomControl.bp-has-multiplier:not(.bp-is-open){width:88px}.bp-WaveformZoomControl.bp-is-open{gap:8px;width:207px}.bp-WaveformZoomControl.bp-is-open.bp-has-multiplier{width:264px}.bp-WaveformZoomControl-multiplier{display:flex;flex:0 0 32px;order:-3;align-items:center;justify-content:center;width:32px;height:32px;color:#fff;font-weight:500;font-size:14px;line-height:22px;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.bp-WaveformZoomControl-divider{display:none;flex:0 0 1px;order:-2;width:1px;height:28px;background:rgba(255,255,255,.3)}.bp-WaveformZoomControl.bp-is-open.bp-has-multiplier .bp-WaveformZoomControl-divider{display:block}.bp-WaveformZoomControl-flyout{display:flex;flex:0 0 auto;order:-1;gap:8px;align-items:center;width:0;height:40px;overflow:hidden;transition:width 150ms ease-out}.bp-WaveformZoomControl-flyout.bp-is-open{width:151px}.bp-WaveformZoomControl-slider{width:103px;height:8px}.bp-WaveformZoomControl-slider .bp-SliderControl-track{height:8px;margin:0;background:rgba(255,255,255,.3);background-image:none;border-radius:20px}.bp-WaveformZoomControl-slider .bp-SliderControl-track::after{position:absolute;top:0;left:0;width:calc(8px + 95px * var(--bp-zoom-t, 0));height:8px;background:rgba(255,255,255,.9);border-radius:20px;content:""}.bp-WaveformZoomControl-slider .bp-SliderControl-thumb{display:none}.bp-WaveformZoomControl-button{position:relative;z-index:1;display:flex;flex:0 0 40px;align-items:center;justify-content:center;width:40px;height:40px;padding:0;color:#fff;background:transparent;border:0;border-radius:50%;cursor:pointer}.bp-WaveformZoomControl-button[aria-disabled=true]{cursor:default;opacity:.3}.bp-WaveformZoomControl-button svg{width:20px;height:20px;padding:0}@media(prefers-reduced-motion: reduce){.bp-WaveformZoomControl,.bp-WaveformZoomControl-flyout{transition:none}}
69
- .bp-MP3ControlsRoot:has(.bp-MP3ControlsV2){position:absolute;inset:0;width:100%;height:100%;transform:none;pointer-events:none}.bp-MP3ControlsV2{--bp-waveform-bar-min: 140px;position:relative;width:100%;max-width:none;height:100%;background:transparent;pointer-events:none}.bp-MP3ControlsV2-stage{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:0;pointer-events:none}.bp-MP3ControlsV2-stage .bp-WaveformView,.bp-MP3ControlsV2-stage .bp-MP3ControlsV2-waveform,.bp-MP3ControlsV2-stage .bp-WaveformCommentMarkers{pointer-events:auto}.bp-MP3ControlsV2-waveform{position:relative;width:100%;overflow:visible}.bp-MP3ControlsV2-stage:has(.bp-WaveformView--tape) .bp-MP3ControlsV2-waveform{display:flex;flex-direction:column;height:max(var(--bp-waveform-bar-min, 140px), 25%);min-height:0}.bp-MP3ControlsV2-waveformZoom{position:absolute;top:48px;right:48px;z-index:4;pointer-events:none}.bp-MP3ControlsV2-waveformZoom .bp-WaveformZoomControl{pointer-events:auto}.bp-MP3ControlsV2-playOverlay{position:absolute;top:50%;left:50%;z-index:2;display:flex;align-items:center;justify-content:center;width:80px;height:80px;padding:0;background:rgba(0,0,0,.5);border:0;border-radius:50%;transform:translate(-50%, -50%);cursor:pointer;pointer-events:auto}.bp-MP3ControlsV2-playOverlay svg{width:48px;height:48px;fill:#fff}.bp-MP3ControlsV2-stage .bp-media-buffering-spinner{z-index:2;pointer-events:none}.bp-MP3ControlsV2-bar{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:30px 58px 25px;background:linear-gradient(to top, black, rgba(0, 0, 0, 0));pointer-events:auto}.bp-MP3ControlsV2-group{display:flex;gap:12px;align-items:center}.bp-MP3ControlsV2-divider{width:1px;height:24px;background-color:rgba(255,255,255,.1);border-radius:1px}.bp-MP3ControlsV2 .bp-MP3Controls-settings{position:relative}.bp-MP3ControlsV2 .bp-MP3Controls-settings .bp-SettingsFlyout{right:15px}.bp-MP3ControlsV2 .bp-MP3Controls-settings .bp-SettingsToggle-button{width:36px;height:40px}
69
+ .bp-MP3ControlsRoot:has(.bp-MP3ControlsV2){position:absolute;inset:0;width:100%;height:100%;transform:none;pointer-events:none}.bp-MP3ControlsV2{--bp-waveform-bar-min: 140px;position:relative;width:100%;max-width:none;height:100%;background:transparent;pointer-events:none}.bp-MP3ControlsV2--rangeDismiss{pointer-events:auto}.bp-MP3ControlsV2-stage{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:0;pointer-events:none}.bp-MP3ControlsV2-stage .bp-WaveformView,.bp-MP3ControlsV2-stage .bp-MP3ControlsV2-waveform,.bp-MP3ControlsV2-stage .bp-WaveformCommentMarkers{pointer-events:auto}.bp-MP3ControlsV2-waveform{position:relative;width:100%;overflow:visible}.bp-MP3ControlsV2-stage:has(.bp-WaveformView--tape) .bp-MP3ControlsV2-waveform{display:flex;flex-direction:column;height:max(var(--bp-waveform-bar-min, 140px), 25%);min-height:0}.bp-MP3ControlsV2-waveformZoom{position:absolute;top:48px;right:48px;z-index:4;pointer-events:none}.bp-MP3ControlsV2-waveformZoom .bp-WaveformZoomControl{pointer-events:auto}.bp-MP3ControlsV2-playOverlay{position:absolute;top:50%;left:50%;z-index:2;display:flex;align-items:center;justify-content:center;width:80px;height:80px;padding:0;background:rgba(0,0,0,.5);border:0;border-radius:50%;transform:translate(-50%, -50%);cursor:pointer;pointer-events:auto}.bp-MP3ControlsV2-playOverlay svg{width:48px;height:48px;fill:#fff}.bp-MP3ControlsV2-stage .bp-media-buffering-spinner{z-index:2;pointer-events:none}.bp-MP3ControlsV2-bar{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:30px 58px 25px;background:linear-gradient(to top, black, rgba(0, 0, 0, 0));pointer-events:auto}.bp-MP3ControlsV2-group{display:flex;gap:12px;align-items:center}.bp-MP3ControlsV2-divider{width:1px;height:24px;background-color:rgba(255,255,255,.1);border-radius:1px}.bp-MP3ControlsV2 .bp-MP3Controls-settings{position:relative}.bp-MP3ControlsV2 .bp-MP3Controls-settings .bp-SettingsFlyout{right:15px}.bp-MP3ControlsV2 .bp-MP3Controls-settings .bp-SettingsToggle-button{width:36px;height:40px}
70
70
  .bp-Filmstrip{position:absolute;bottom:100%;overflow:hidden;background:transparent;box-shadow:0 0 1px #464a4f;visibility:hidden}.bp-Filmstrip.bp-is-shown{visibility:visible}.bp-Filmstrip-frame{display:flex;align-items:center;justify-content:center}.bp-Filmstrip-time{height:20px;color:#fff;font-size:13px;line-height:20px;text-align:center;background-color:#222}
71
71
  .bp-TimeControls{position:relative;margin-right:10px;margin-left:10px}.bp-TimeControls-slider{height:18px}.bp-TimeControls-slider .bp-SliderControl-thumb{transform:scale(0);transition:transform 100ms ease;will-change:transform}.bp-TimeControls-slider .bp-SliderControl-track{backface-visibility:hidden;transition:transform 100ms ease;will-change:transform}.bp-TimeControls-slider.bp-is-scrubbing .bp-SliderControl-thumb,.bp-TimeControls-slider:focus .bp-SliderControl-thumb,.bp-TimeControls-slider:hover .bp-SliderControl-thumb{transform:scale(1)}.bp-TimeControls-slider.bp-is-scrubbing .bp-SliderControl-track,.bp-TimeControls-slider:focus .bp-SliderControl-track,.bp-TimeControls-slider:hover .bp-SliderControl-track{transform:scaleY(2)}
72
72
  .bp-MP3Controls{display:flex;flex-direction:column;width:360px;background-color:#000}.bp-MP3Controls-bar{display:flex;justify-content:space-between;padding:0 10px 5px}.bp-MP3Controls-group{display:flex;align-items:center}.bp-MP3Controls-settings{position:relative}.bp-MP3Controls-settings .bp-SettingsFlyout{right:15px}.bp-MP3Controls-settings .bp-SettingsToggle-button{width:36px;height:40px}
@@ -100,4 +100,4 @@
100
100
  .bp-ResetControl{opacity:.9;transition:opacity 150ms,background-color 150ms;will-change:opacity;outline:0;display:flex;align-items:center;justify-content:center;margin:0;padding:0;color:#fff;background:transparent;border:0;border-radius:25px;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;zoom:1}.bp-ResetControl:focus:not(:disabled),.bp-ResetControl:hover:not(:disabled){background-color:rgba(255,255,255,.08);opacity:1}.bp-ResetControl:focus:not(:disabled) svg,.bp-ResetControl:hover:not(:disabled) svg,.bp-ResetControl.bp-is-active svg{transform:scale(1.09);transition:transform 150ms}.bp-ResetControl.bp-is-active,.bp-ResetControl:active:not(:disabled){background-color:rgba(255,255,255,.16)}.bp-ResetControl.bp-is-active:focus:not(:disabled),.bp-ResetControl.bp-is-active:hover:not(:disabled){background-color:rgba(255,255,255,.2)}.bp-ResetControl:focus:not(:disabled){box-shadow:inset 0 0 0 1px rgba(211,211,211,.5),0 1px 2px rgba(0,0,0,.1)}.bp-ResetControl:focus-visible:not(:disabled){box-shadow:inset 0 0 0 1px rgba(211,211,211,.5),0 1px 2px rgba(0,0,0,.1)}.bp-ResetControl:focus:not(:focus-visible){box-shadow:none}.bp-ResetControl:disabled{cursor:default;opacity:.2;pointer-events:none}.bp-ResetControl svg{width:32px;height:32px;padding:5px}
101
101
  .bp-box3d .bp-settings-wrapper .bp-settings-btn:active,.bp-box3d .bp-overlay span:active{opacity:1}.bp-box3d .bp-pullup{bottom:100%;padding:0 10px 20px;white-space:nowrap;text-align:left}.bp-box3d .bp-settings-panel-row{display:block;margin-top:6px}.bp-box3d .bp-settings-panel-row::before,.bp-box3d .bp-settings-panel-row::after{display:table;line-height:0;content:""}.bp-box3d .bp-settings-panel-row::before{clear:both;padding-top:10px}.bp-box3d .bp-settings-panel-label{display:inline;margin:4px;color:#767676;line-height:1;white-space:nowrap}.bp-box3d .bp-panel-btn{height:34px;overflow:hidden;line-height:34px;border-radius:5px;cursor:pointer}.bp-box3d .bp-toggle-overlay .bp-menu{min-width:183px}.bp-box3d .bp-toggle-overlay .bp-btn{width:100%;height:34px;padding:5px 0 5px 10px;color:gray;font-size:13px;letter-spacing:0;text-align:left;text-transform:none}.bp-box3d .bp-toggle-overlay .bp-btn::after{position:absolute;top:15px;right:11px;width:0;height:0;border-top:3px solid #494949;border-right:3px solid transparent;border-left:3px solid transparent;content:""}.bp-box3d .bp-overlay-panel .bp-btn .bp-btn-primary{margin:6px 0 0}.bp-box3d .box3d-settings-axis-widget{display:inline;padding-bottom:10px;border:1px solid #caccd0;border-bottom-width:2px;border-radius:2px}.bp-box3d .box3d-settings-axis-widget.box3d-settings-axis-widget-x{border-bottom-color:#e33d55}.bp-box3d .box3d-settings-axis-widget.box3d-settings-axis-widget-y{margin-right:4px;margin-left:4px;border-bottom-color:#26c281}.bp-box3d .box3d-settings-axis-widget.box3d-settings-axis-widget-z{border-bottom-color:#22a7f0}.bp-box3d .box3d-settings-axis-widget span{display:inline}.bp-box3d .box3d-settings-axis-widget .box3d-settings-axis-label{color:#444}.bp-box3d .box3d-settings-axis-widget .box3d-setting-axis-rotate{padding:0 12px;color:#0061d5;font-size:medium;cursor:pointer}.bp-box3d .box3d-settings-axis-widget .box3d-setting-axis-rotate-left::after,.bp-box3d .box3d-settings-axis-widget .box3d-setting-axis-rotate-right::after{position:absolute;top:7px;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;content:""}.bp-box3d .box3d-settings-axis-widget .box3d-setting-axis-rotate-left::after{border-right:5px solid #444;left:10px}.bp-box3d .box3d-settings-axis-widget .box3d-setting-axis-rotate-right::after{border-left:5px solid #444;right:10px}.bp-box3d .box3d-settings-axis-widget .box3d-setting-axis-rotate-left:hover::after{border-right:5px solid #888}.bp-box3d .box3d-settings-axis-widget .box3d-setting-axis-rotate-right:hover::after{border-left:5px solid #888}.bp-box3d .box3d-settings-axis-widget .box3d-setting-axis-rotate-left:active::after{border-right:5px solid #222}.bp-box3d .box3d-settings-axis-widget .box3d-setting-axis-rotate-right:active::after{border-left:5px solid #222}.bp-box3d .box3d-animation-clip-pullup{max-height:200px;overflow:auto}.bp-box3d .box3d-animation-clip{display:block;margin-top:6px;white-space:nowrap;cursor:pointer}.bp-box3d .box3d-animation-clip .box3d-animation-clip-icon{display:inline-block;width:24px}.bp-box3d .box3d-animation-clip .box3d-animation-clip-icon svg{height:16px;vertical-align:text-bottom}.bp-box3d .box3d-animation-clip .box3d-animation-clip-value{display:inline;max-width:183px;overflow-x:hidden;white-space:nowrap}
102
102
  .bp-error{width:100%;color:#222;font-size:14px;text-align:center}.bp-error .bp-btn{margin:15px 0 0}.bp-error .bp-error-text{margin:0;padding:0 80px}.bp-error .bp-icon-file{width:160px;height:160px;margin:0 auto}.bp-error .bp-icon-file svg{width:100%;height:100%}
103
- .bp,.bp-header,.bp a,.bp-header a{text-shadow:1px 1px 1px rgba(255,255,255,.004)}.bp,.bp-header,.bp button,.bp-header button{font-family:Lato,"Helvetica Neue",Helvetica,Arial,sans-serif}.bp li,.bp-header li{margin:0;padding:0}.bp-btn{position:relative;display:inline-block;box-sizing:border-box;margin:5px;padding:10px 16px;font-size:13px;line-height:10px;white-space:nowrap;text-align:center;text-decoration:none;vertical-align:top;border-style:solid;border-width:1px;cursor:pointer;zoom:1}.bp-btn.is-disabled{top:0;cursor:default}.bp-btn.is-disabled,.bp-btn.is-disabled:active,.bp-btn.is-disabled:hover,.bp-btn.is-disabled:focus{color:#666;background-color:#fcfcfc;border:1px solid #bdc3c7;box-shadow:none;opacity:.4}.bp-btn svg{pointer-events:none}.bp-btn-plain,.bp-btn-plain:hover,.bp-btn-plain:active{height:auto;margin:0;padding:0;font-weight:normal;vertical-align:middle;border:0;cursor:pointer}.bp-btn-plain svg,.bp-btn-plain:hover svg,.bp-btn-plain:active svg{pointer-events:none}.bp-btn-plain{background:transparent;outline:none;box-shadow:none}.bp-btn-plain.is-disabled{color:#666;background-color:#fcfcfc;opacity:.4;pointer-events:none}.bp-btn{color:#464a4f;font-weight:normal;letter-spacing:1px;text-shadow:none;background-color:#fff;border:1px solid #bdc3c7;border-radius:2px;cursor:pointer;transition:background-color .05s ease-in-out,border-color .05s ease-in-out;-webkit-appearance:none}.bp-btn:hover{text-decoration:none;background-color:#f7f7f7}.bp-btn:active,.bp-btn:active:focus{background-color:#ebebeb;border-color:#bdc3c7;outline:0}.bp-btn:focus{text-decoration:none;border-color:#96a0a6;outline:0;box-shadow:0 1px 2px rgba(0,0,0,.1)}.bp-btn-primary{color:#fff;background-color:#0061d5;border-color:#0061d5}.bp-btn-primary:focus:hover,.bp-btn-primary:focus{border-color:#0061d5;outline:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 1px 2px rgba(0,0,0,.1)}.bp-btn-primary:hover{background-color:#0074fe;border-color:#0074fe}.bp-btn-primary:active:hover,.bp-btn-primary:active{background-color:#004eac;border-color:#004eac;box-shadow:none}.bp-btn-primary.is-disabled,.bp-btn-primary.is-disabled:active,.bp-btn-primary.is-disabled:hover,.bp-btn-primary.is-disabled:focus{color:#fff;background-color:#0061d5;border-color:#0061d5}.bp-textarea{color:#464a4f;border:1px solid #bdc3c7;border-radius:2px;box-shadow:inset 0 1px 1px #e6e6e6;transition:border-color linear .15s,box-shadow linear .1s}.bp-textarea:hover{box-shadow:inset 0 1px 1px #d9d9d9}.bp-textarea:focus{border:1px solid #0061d5;outline:0;box-shadow:none}.bp-controls input[type=text],.bp-controls input[type=number],.bp-controls div[contentEditable=true],.bp-controls textarea{width:262px;padding:7px;color:#222;border:1px solid #ccc;border-radius:3px;box-shadow:inset 0 1px 1px rgba(0,0,0,.1);transition:border-color linear .15s,box-shadow linear .1s;-webkit-font-smoothing:antialiased}.bp-controls input[type=text]:hover,.bp-controls input[type=number]:hover,.bp-controls div[contentEditable=true]:hover,.bp-controls textarea:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.15)}.bp-controls input[type=text]:focus,.bp-controls input[type=number]:focus,.bp-controls div[contentEditable=true]:focus,.bp-controls textarea:focus{border:1px solid #0061d5;outline:0;box-shadow:none}.bp-controls input::-webkit-input-placeholder,.bp-controls input::-moz-placeholder,.bp-controls input:-ms-input-placeholder{color:#ccc}.bp-overlay{position:absolute;z-index:90;margin:0;padding:8px 0;background:#fff;border:1px solid #bdc3c7;box-shadow:0 2px 6px 0 rgba(0,0,0,.1);transform:rotateY(-10deg) rotateX(-10deg);transform-origin:left top;transform-style:preserve-3d;visibility:hidden;opacity:0;transition:visibility 0s linear .075s,opacity .075s,transform .125s;pointer-events:none}.bp-link{overflow:hidden;color:#64686d;line-height:1.5em;white-space:nowrap;text-decoration:none;text-overflow:ellipsis;text-shadow:1px 1px 1px rgba(0,0,0,.004);transition:color .05s;font-smoothing:antialiased}.bp-menu{min-width:225px;margin:0;padding:0;white-space:nowrap;list-style:none}.bp-menu .link-group ul{margin:0}.bp-menu .link-group ul a{display:block;padding:5px 35px 5px 15px;color:#494949}.bp-menu .link-group ul a:hover{color:#1a5976;background:#f6fafd;cursor:pointer;fill:#1a5976}.bp-notifications-wrapper{position:fixed;top:0;right:0;left:0;z-index:130;height:0}.bp-notification{display:flex;align-items:center;max-width:572px;min-height:48px;margin:10px auto;padding:10px 10px 10px 20px;overflow:hidden;color:#fff;font-weight:bold;background-color:#464a4f;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.15);transition:opacity .1s ease-out}.bp-notification.info{background-color:#26c281}.bp-notification.warn{background-color:#f5b31b}.bp-notification.error{background-color:#ed3757}.bp-notification.is-hidden{box-shadow:none;opacity:0}.bp-notification>span{margin-right:auto;padding-right:10px;font-size:15px}.bp-notification.wrap>span{overflow:hidden;word-wrap:break-word;overflow-wrap:break-word}.bp-notification.ellipsis>span{overflow:hidden;text-overflow:ellipsis}.bp-notification button,.bp-notification a{flex:none;color:#fff}.bp-notification button.btn,.bp-notification button.btn:active:focus,.bp-notification a.btn,.bp-notification a.btn:active:focus{margin:0 5px;padding:7px 13px;background-color:transparent;border-color:#e8e8e8}.bp-notification button.close-btn,.bp-notification a.close-btn{margin:0 7px;font-weight:bold;font-size:14px;background:none;border:none;outline:none;cursor:pointer;opacity:.6}.bp-notification button.close-btn.default-close-btn svg,.bp-notification a.close-btn.default-close-btn svg{width:24px;height:24px;pointer-events:none}.bp-notification button.close-btn.default-close-btn svg path.icon,.bp-notification a.close-btn.default-close-btn svg path.icon{fill:#fff}.bp-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:160;display:flex;flex:1;align-items:center;padding:30px;overflow:hidden}.bp-modal-dialog{position:relative;width:460px;margin:auto;padding:30px;background-color:#fff;background-clip:padding-box;box-shadow:0 3px 10px rgba(0,0,0,.3)}.bp-modal-header{display:flex;font-weight:bold;font-size:15px}.bp-modal-title{display:inline-block;flex:1;overflow:hidden;word-wrap:break-word;overflow-wrap:break-word}.bp-modal-content{margin-top:27px}.bp-modal-close-button{color:#999ea4;font-weight:bold;font-size:11px;background:none;border:0;outline:0;cursor:pointer}.bp-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:#fff;opacity:.75;filter:alpha(opacity=75)}.bp-modal-actions{display:flex;align-items:center;justify-content:flex-end;text-align:right}.bp-modal-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:89;display:flex}.bp-is-hidden{display:none !important}.bp-container,.bp-container *{box-sizing:border-box !important}.bp-container{position:relative;width:100%;min-width:300px;height:100%;margin:0;padding:0;overflow:hidden;font-size:13px;border:0 none;touch-action:manipulation}.bp-container a{color:#ccc}.bp-header-container:not(.bp-is-hidden)+.bp:not(.bp-is-fullscreen){top:48px}.bp-header{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 20px;background-color:#fff;border-bottom:1px solid #ccc}.bp-header .bp-custom-logo{max-height:30px}.bp-header .bp-default-logo svg{fill:#0061d5}.bp-header-btns button{padding:0 10px}.bp-header-btns button svg{vertical-align:middle;fill:#6f6f6f}.bp-header-btns button:hover{padding:0 10px}.bp-header-btns button:hover svg{fill:#494949}.bp-theme-dark .bp-header{background-color:rgba(0,0,0,.85);border-bottom:0}.bp-theme-dark .bp-header-btns button svg{fill:rgba(255,255,255,.9)}.bp-theme-dark .bp-header-btns button:hover svg{fill:#fff}.bp-theme-dark .bp-default-logo svg{fill:#fff}.bp-theme-dark .bp{background-color:#464a4f}.bp-theme-dark .bp-error{color:#fff}.bp-theme-dark .bp-icon{opacity:.9}.bp{position:absolute;inset:0;display:flex;flex:1 1 100%;margin:0;padding:0;background-color:#f5f5f5;border:0 none;outline:none;-webkit-overflow-scrolling:touch}.bp.bp-dark{background-color:#000}.bp .bp-content{position:absolute;inset:0;display:flex;flex:1 1 auto;align-items:center;outline:none}.bp .bp-content.bp-fullscreen-unsupported{position:fixed;z-index:190}.bp .bp-content.bp-is-fullscreen{width:100%;background-color:inherit}.bp .bp-is-scrollable:focus{outline:none}.accessibility-hidden{position:absolute;top:auto;left:-9999px}.bp-no-user-highlight{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.bp-is-invisible{visibility:hidden}.bp-notifications-wrapper{position:absolute}.bp-toggle-overlay>button{margin-bottom:0;margin-left:0}.bp-overlay-wrapper{position:relative;display:inherit}.bp-overlay-wrapper .bp-overlay{margin-top:5px}.bp-overlay-wrapper.bp-is-visible .bp-overlay{transform:rotateY(0deg) rotateX(0deg);visibility:visible;opacity:1;transition-delay:0s;pointer-events:all}.bp-modal-dialog{width:380px;padding:20px}.bp-modal-dialog .bp-print-check{height:16px}.bp-modal-dialog .bp-crawler{width:10px;height:16px;margin:0 auto;font-size:0;white-space:nowrap}.bp-modal-header{display:block;float:right;width:100%;height:0}.bp-modal-content{text-align:center}.bp-modal-content .bp-modal-message{margin:10px 0 20px;color:#444}.bp-modal-close-button{float:right}.bp-modal-close-button svg{width:24px;height:24px;pointer-events:none;fill:#999ea4}.bp-modal-actions{justify-content:flex-start;margin:20px}.bp-modal-backdrop{position:fixed;width:100%;height:100%;background-color:#000}.bp-popup-btn{margin:0 auto}.bp-popup-modal{position:absolute;top:100px;right:0;left:0;z-index:160;margin:0 auto}.bp-container .bp-btn-primary{color:#fff}@keyframes box-crawler{0%,80%,100%{transform:scaleY(1.2);opacity:.5}40%{transform:scaleY(1.6);opacity:1}}.bp-loading-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;transition:.25s opacity}.bp-loaded .bp-loading-wrapper{display:none}.bp:not(.bp-loaded){pointer-events:none}.bp:not(.bp-loaded) .bp-loading-wrapper{pointer-events:all}.bp-thumbnails-open.bp-preload-complete{pointer-events:all}.bp-presentation-preload-wrapper{pointer-events:all}.bp-preloader-loaded{margin-right:auto;margin-left:auto;padding:0 20px;overflow:auto;pointer-events:all}.bp-loading{position:relative;display:flex;align-items:center;justify-content:center;color:#222}.bp-crawler-wrapper{display:none}.bp-crawler-wrapper .bp-crawler{transform:scale(1.5)}.bp-crawler-wrapper .bp-crawler div{background-color:#999ea4}.bp-crawler{text-align:center}.bp-crawler div{display:inline-block;width:2px;height:10px;background-color:#0061d5;border-radius:4px;animation:box-crawler .66s infinite ease-in-out}.bp-crawler div:nth-child(2){margin-left:2px;animation-delay:.1s}.bp-crawler div:last-child{left:8px;margin-left:2px;animation-delay:.2s}.bp-is-fullscreen .bp-navigate,.bp-is-gallery-open .bp-navigate{display:none}.bp-navigate{position:absolute;top:50%;display:block;width:50px;height:64px;margin:0;overflow:hidden;white-space:nowrap;text-decoration:none;background-repeat:no-repeat;border:0 none;transform:translateY(-50%);cursor:pointer;opacity:0;transition:opacity .5s ease;pointer-events:all}.bp-navigate:hover,.bp-navigate:focus{opacity:1}.bp-navigate:focus{height:64px;outline:1px solid #999ea4;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 1px 2px rgba(0,0,0,.1)}.bp-navigate:active{outline:none;box-shadow:none}.bp-is-navigation-visible .bp-navigate{opacity:.8}.bp-is-navigation-visible .bp-navigate:hover{opacity:1}.bp-navigate-left{left:20px;border-radius:0 2px 2px 0}.bp-navigate-right{right:20px;border-radius:2px 0 0 2px}.bp-controls{position:absolute;bottom:25px;left:50%;display:flex;background:rgba(0,0,0,.8);border-radius:6px;transform:translateX(-50%);opacity:0;transition:opacity .5s}.bp-controls input::-webkit-outer-spin-button,.bp-controls input::-webkit-inner-spin-button{-webkit-appearance:none}.bp-controls input[type=number]{-moz-appearance:textfield}.box-show-preview-controls .bp-controls{opacity:1}.bp-controls-cell{display:table-cell;margin:0;padding:0;vertical-align:middle;-webkit-user-select:none;user-select:none;touch-action:manipulation}.bp-controls-btn{display:block;width:44px;height:44px;margin:0;padding:0;color:#fff;background:transparent;border:1px solid transparent;border-radius:6px;outline:0;cursor:pointer;opacity:.7;-webkit-user-select:none;user-select:none;touch-action:manipulation;zoom:1}.bp-controls-btn:hover,.bp-controls-btn:focus{opacity:1}.bp-controls-btn:focus{box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 1px 2px rgba(0,0,0,.1)}.bp-controls-btn span{display:block;margin:0 auto}.bp-controls-btn svg{vertical-align:middle}.bp-controls-btn.disabled,.bp-controls-btn:disabled{cursor:default;opacity:.2;pointer-events:none}.bp-exit-fullscreen-icon{display:none}.bp-is-fullscreen .bp-enter-fullscreen-icon{display:none}.bp-is-fullscreen .bp-exit-fullscreen-icon{display:block}.bp-controls-group{display:flex;align-items:center;margin-right:4px;margin-left:4px}.bp-controls-group .bp-controls-group-btn{width:32px}.bp-controls-group+.bp-controls-cell{margin-left:4px}.bp-vs{flex:1 0 auto;overflow-y:auto}.bp-vs .bp-vs-list{position:relative;margin:0;padding:0}.bp-vs .bp-vs-list-item{position:absolute;right:0;left:0;display:flex;box-sizing:border-box}
103
+ .bp,.bp-header,.bp a,.bp-header a{text-shadow:1px 1px 1px rgba(255,255,255,.004)}.bp,.bp-header,.bp button,.bp-header button{font-family:Lato,"Helvetica Neue",Helvetica,Arial,sans-serif}.bp li,.bp-header li{margin:0;padding:0}.bp-btn{position:relative;display:inline-block;box-sizing:border-box;margin:5px;padding:10px 16px;font-size:13px;line-height:10px;white-space:nowrap;text-align:center;text-decoration:none;vertical-align:top;border-style:solid;border-width:1px;cursor:pointer;zoom:1}.bp-btn.is-disabled{top:0;cursor:default}.bp-btn.is-disabled,.bp-btn.is-disabled:active,.bp-btn.is-disabled:hover,.bp-btn.is-disabled:focus{color:#666;background-color:#fcfcfc;border:1px solid #bdc3c7;box-shadow:none;opacity:.4}.bp-btn svg{pointer-events:none}.bp-btn-plain,.bp-btn-plain:hover,.bp-btn-plain:active{height:auto;margin:0;padding:0;font-weight:normal;vertical-align:middle;border:0;cursor:pointer}.bp-btn-plain svg,.bp-btn-plain:hover svg,.bp-btn-plain:active svg{pointer-events:none}.bp-btn-plain{background:transparent;outline:none;box-shadow:none}.bp-btn-plain.is-disabled{color:#666;background-color:#fcfcfc;opacity:.4;pointer-events:none}.bp-btn{color:#464a4f;font-weight:normal;letter-spacing:1px;text-shadow:none;background-color:#fff;border:1px solid #bdc3c7;border-radius:2px;cursor:pointer;transition:background-color .05s ease-in-out,border-color .05s ease-in-out;-webkit-appearance:none}.bp-btn:hover{text-decoration:none;background-color:#f7f7f7}.bp-btn:active,.bp-btn:active:focus{background-color:#ebebeb;border-color:#bdc3c7;outline:0}.bp-btn:focus{text-decoration:none;border-color:#96a0a6;outline:0;box-shadow:0 1px 2px rgba(0,0,0,.1)}.bp-btn-primary{color:#fff;background-color:#0061d5;border-color:#0061d5}.bp-btn-primary:focus:hover,.bp-btn-primary:focus{border-color:#0061d5;outline:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 1px 2px rgba(0,0,0,.1)}.bp-btn-primary:hover{background-color:#0074fe;border-color:#0074fe}.bp-btn-primary:active:hover,.bp-btn-primary:active{background-color:#004eac;border-color:#004eac;box-shadow:none}.bp-btn-primary.is-disabled,.bp-btn-primary.is-disabled:active,.bp-btn-primary.is-disabled:hover,.bp-btn-primary.is-disabled:focus{color:#fff;background-color:#0061d5;border-color:#0061d5}.bp-textarea{color:#464a4f;border:1px solid #bdc3c7;border-radius:2px;box-shadow:inset 0 1px 1px #e6e6e6;transition:border-color linear .15s,box-shadow linear .1s}.bp-textarea:hover{box-shadow:inset 0 1px 1px #d9d9d9}.bp-textarea:focus{border:1px solid #0061d5;outline:0;box-shadow:none}.bp-controls input[type=text],.bp-controls input[type=number],.bp-controls div[contentEditable=true],.bp-controls textarea{width:262px;padding:7px;color:#222;border:1px solid #ccc;border-radius:3px;box-shadow:inset 0 1px 1px rgba(0,0,0,.1);transition:border-color linear .15s,box-shadow linear .1s;-webkit-font-smoothing:antialiased}.bp-controls input[type=text]:hover,.bp-controls input[type=number]:hover,.bp-controls div[contentEditable=true]:hover,.bp-controls textarea:hover{box-shadow:inset 0 1px 1px rgba(0,0,0,.15)}.bp-controls input[type=text]:focus,.bp-controls input[type=number]:focus,.bp-controls div[contentEditable=true]:focus,.bp-controls textarea:focus{border:1px solid #0061d5;outline:0;box-shadow:none}.bp-controls input::-webkit-input-placeholder,.bp-controls input::-moz-placeholder,.bp-controls input:-ms-input-placeholder{color:#ccc}.bp-overlay{position:absolute;z-index:90;margin:0;padding:8px 0;background:#fff;border:1px solid #bdc3c7;box-shadow:0 2px 6px 0 rgba(0,0,0,.1);transform:rotateY(-10deg) rotateX(-10deg);transform-origin:left top;transform-style:preserve-3d;visibility:hidden;opacity:0;transition:visibility 0s linear .075s,opacity .075s,transform .125s;pointer-events:none}.bp-link{overflow:hidden;color:#64686d;line-height:1.5em;white-space:nowrap;text-decoration:none;text-overflow:ellipsis;text-shadow:1px 1px 1px rgba(0,0,0,.004);transition:color .05s;font-smoothing:antialiased}.bp-menu{min-width:225px;margin:0;padding:0;white-space:nowrap;list-style:none}.bp-menu .link-group ul{margin:0}.bp-menu .link-group ul a{display:block;padding:5px 35px 5px 15px;color:#494949}.bp-menu .link-group ul a:hover{color:#1a5976;background:#f6fafd;cursor:pointer;fill:#1a5976}.bp-notifications-wrapper{position:fixed;top:0;right:0;left:0;z-index:130;height:0}.bp-notification{display:flex;align-items:center;max-width:572px;min-height:48px;margin:10px auto;padding:10px 10px 10px 20px;overflow:hidden;color:#fff;font-weight:bold;background-color:#464a4f;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.15);transition:opacity .1s ease-out}.bp-notification.info{background-color:#26c281}.bp-notification.warn{background-color:#f5b31b}.bp-notification.error{background-color:#ed3757}.bp-notification.is-hidden{box-shadow:none;opacity:0}.bp-notification>span{margin-right:auto;padding-right:10px;font-size:15px}.bp-notification.wrap>span{overflow:hidden;word-wrap:break-word;overflow-wrap:break-word}.bp-notification.ellipsis>span{overflow:hidden;text-overflow:ellipsis}.bp-notification button,.bp-notification a{flex:none;color:#fff}.bp-notification button.btn,.bp-notification button.btn:active:focus,.bp-notification a.btn,.bp-notification a.btn:active:focus{margin:0 5px;padding:7px 13px;background-color:transparent;border-color:#e8e8e8}.bp-notification button.close-btn,.bp-notification a.close-btn{margin:0 7px;font-weight:bold;font-size:14px;background:none;border:none;outline:none;cursor:pointer;opacity:.6}.bp-notification button.close-btn.default-close-btn svg,.bp-notification a.close-btn.default-close-btn svg{width:24px;height:24px;pointer-events:none}.bp-notification button.close-btn.default-close-btn svg path.icon,.bp-notification a.close-btn.default-close-btn svg path.icon{fill:#fff}.bp-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:160;display:flex;flex:1;align-items:center;padding:30px;overflow:hidden}.bp-modal-dialog{position:relative;width:460px;margin:auto;padding:30px;background-color:#fff;background-clip:padding-box;box-shadow:0 3px 10px rgba(0,0,0,.3)}.bp-modal-header{display:flex;font-weight:bold;font-size:15px}.bp-modal-title{display:inline-block;flex:1;overflow:hidden;word-wrap:break-word;overflow-wrap:break-word}.bp-modal-content{margin-top:27px}.bp-modal-close-button{color:#999ea4;font-weight:bold;font-size:11px;background:none;border:0;outline:0;cursor:pointer}.bp-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:#fff;opacity:.75;filter:alpha(opacity=75)}.bp-modal-actions{display:flex;align-items:center;justify-content:flex-end;text-align:right}.bp-modal-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:89;display:flex}.bp-is-hidden{display:none !important}.bp-container,.bp-container *{box-sizing:border-box !important}.bp-container{position:relative;width:100%;min-width:300px;height:100%;margin:0;padding:0;overflow:hidden;font-size:13px;border:0 none;touch-action:manipulation}.bp-container a{color:#ccc}.bp-header-container:not(.bp-is-hidden)+.bp:not(.bp-is-fullscreen){top:48px}.bp-header{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 20px;background-color:#fff;border-bottom:1px solid #ccc}.bp-header .bp-custom-logo{max-height:30px}.bp-header .bp-default-logo svg{fill:#0061d5}.bp-header-btns button{padding:0 10px}.bp-header-btns button svg{vertical-align:middle;fill:#6f6f6f}.bp-header-btns button:hover{padding:0 10px}.bp-header-btns button:hover svg{fill:#494949}.bp-theme-dark .bp-header{background-color:rgba(0,0,0,.85);border-bottom:0}.bp-theme-dark .bp-header-btns button svg{fill:rgba(255,255,255,.9)}.bp-theme-dark .bp-header-btns button:hover svg{fill:#fff}.bp-theme-dark .bp-default-logo svg{fill:#fff}.bp-theme-dark .bp{background-color:#464a4f}.bp-theme-dark .bp-error{color:#fff}.bp-theme-dark .bp-icon{opacity:.9}.bp{position:absolute;inset:0;display:flex;flex:1 1 100%;margin:0;padding:0;background-color:#f5f5f5;border:0 none;outline:none;-webkit-overflow-scrolling:touch}.bp.bp-dark{background-color:#000}.bp .bp-content{position:absolute;inset:0;display:flex;flex:1 1 auto;align-items:center;outline:none}.bp .bp-content.bp-fullscreen-unsupported{position:fixed;z-index:190}.bp .bp-content.bp-is-fullscreen{width:100%;background-color:inherit}.bp .bp-is-scrollable:focus{outline:none}.accessibility-hidden{position:absolute;top:auto;left:-9999px}.bp-no-user-highlight{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.bp-is-invisible{visibility:hidden}.bp-notifications-wrapper{position:absolute}.bp-toggle-overlay>button{margin-bottom:0;margin-left:0}.bp-overlay-wrapper{position:relative;display:inherit}.bp-overlay-wrapper .bp-overlay{margin-top:5px}.bp-overlay-wrapper.bp-is-visible .bp-overlay{transform:rotateY(0deg) rotateX(0deg);visibility:visible;opacity:1;transition-delay:0s;pointer-events:all}.bp-modal-dialog{width:380px;padding:20px}.bp-modal-dialog .bp-print-check{height:16px}.bp-modal-dialog .bp-crawler{width:10px;height:16px;margin:0 auto;font-size:0;white-space:nowrap}.bp-modal-header{display:block;float:right;width:100%;height:0}.bp-modal-content{text-align:center}.bp-modal-content .bp-modal-message{margin:10px 0 20px;color:#444}.bp-modal-close-button{float:right}.bp-modal-close-button svg{width:24px;height:24px;pointer-events:none;fill:#999ea4}.bp-modal-actions{justify-content:flex-start;margin:20px}.bp-modal-backdrop{position:fixed;width:100%;height:100%;background-color:#000}.bp-popup-btn{margin:0 auto}.bp-popup-modal{position:absolute;top:100px;right:0;left:0;z-index:160;margin:0 auto}.bp-container .bp-btn-primary{color:#fff}.bp-version-banner{position:absolute;top:0;right:0;left:0;z-index:3;display:flex;gap:12px;align-items:center;height:var(--bp-comparison-banner-height, 4.5rem);padding:16px;background:linear-gradient(180deg, #f5f5f5 19.61%, rgba(255, 255, 255, 0) 100%)}.bp-version-banner-badge{display:flex;flex:none;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;color:#fff;font-weight:500;font-size:15px;line-height:20px;background-color:#26c281;border:1px solid rgba(0,0,0,.12);border-radius:50%}.bp-version-banner--compared .bp-version-banner-badge{color:#000;font-weight:bold;background-color:rgba(255,255,255,.7)}.bp-version-banner-info{display:flex;flex-direction:column;min-width:0}.bp-version-banner-time{overflow:hidden;color:#000;font-weight:500;font-size:15px;line-height:20px;white-space:nowrap;text-overflow:ellipsis}.bp-version-banner--compared .bp-version-banner-time{color:#222}.bp-version-banner-author{overflow:hidden;color:#000;font-size:12px;line-height:14px;white-space:nowrap;text-overflow:ellipsis}:is(.bp-dark,.bp-theme-dark,.bp:has(.bp-media--v2)) .bp-version-banner{background:linear-gradient(180deg, rgba(0, 0, 0, 0.9) 19.61%, rgba(0, 0, 0, 0) 100%)}:is(.bp-dark,.bp-theme-dark,.bp:has(.bp-media--v2)) .bp-version-banner-time{color:#fff}:is(.bp-dark,.bp-theme-dark,.bp:has(.bp-media--v2)) .bp-version-banner-author{color:rgba(255,255,255,.7)}:is(.bp-dark,.bp-theme-dark,.bp:has(.bp-media--v2)) .bp-version-banner--compared .bp-version-banner-badge{color:#fff;background-color:rgba(255,255,255,.3);border-color:rgba(255,255,255,.12)}@keyframes box-crawler{0%,80%,100%{transform:scaleY(1.2);opacity:.5}40%{transform:scaleY(1.6);opacity:1}}.bp-loading-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;transition:.25s opacity}.bp-loaded .bp-loading-wrapper{display:none}.bp:not(.bp-loaded){pointer-events:none}.bp:not(.bp-loaded) .bp-loading-wrapper{pointer-events:all}.bp-thumbnails-open.bp-preload-complete{pointer-events:all}.bp-presentation-preload-wrapper{pointer-events:all}.bp-preloader-loaded{margin-right:auto;margin-left:auto;padding:0 20px;overflow:auto;pointer-events:all}.bp-loading{position:relative;display:flex;align-items:center;justify-content:center;color:#222}.bp-crawler-wrapper{display:none}.bp-crawler-wrapper .bp-crawler{transform:scale(1.5)}.bp-crawler-wrapper .bp-crawler div{background-color:#999ea4}.bp-crawler{text-align:center}.bp-crawler div{display:inline-block;width:2px;height:10px;background-color:#0061d5;border-radius:4px;animation:box-crawler .66s infinite ease-in-out}.bp-crawler div:nth-child(2){margin-left:2px;animation-delay:.1s}.bp-crawler div:last-child{left:8px;margin-left:2px;animation-delay:.2s}.bp-is-fullscreen .bp-navigate,.bp-is-gallery-open .bp-navigate{display:none}.bp-navigate{position:absolute;top:50%;display:block;width:50px;height:64px;margin:0;overflow:hidden;white-space:nowrap;text-decoration:none;background-repeat:no-repeat;border:0 none;transform:translateY(-50%);cursor:pointer;opacity:0;transition:opacity .5s ease;pointer-events:all}.bp-navigate:hover,.bp-navigate:focus{opacity:1}.bp-navigate:focus{height:64px;outline:1px solid #999ea4;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 1px 2px rgba(0,0,0,.1)}.bp-navigate:active{outline:none;box-shadow:none}.bp-is-navigation-visible .bp-navigate{opacity:.8}.bp-is-navigation-visible .bp-navigate:hover{opacity:1}.bp-navigate-left{left:20px;border-radius:0 2px 2px 0}.bp-navigate-right{right:20px;border-radius:2px 0 0 2px}.bp-controls{position:absolute;bottom:25px;left:50%;display:flex;background:rgba(0,0,0,.8);border-radius:6px;transform:translateX(-50%);opacity:0;transition:opacity .5s}.bp-controls input::-webkit-outer-spin-button,.bp-controls input::-webkit-inner-spin-button{-webkit-appearance:none}.bp-controls input[type=number]{-moz-appearance:textfield}.box-show-preview-controls .bp-controls{opacity:1}.bp-controls-cell{display:table-cell;margin:0;padding:0;vertical-align:middle;-webkit-user-select:none;user-select:none;touch-action:manipulation}.bp-controls-btn{display:block;width:44px;height:44px;margin:0;padding:0;color:#fff;background:transparent;border:1px solid transparent;border-radius:6px;outline:0;cursor:pointer;opacity:.7;-webkit-user-select:none;user-select:none;touch-action:manipulation;zoom:1}.bp-controls-btn:hover,.bp-controls-btn:focus{opacity:1}.bp-controls-btn:focus{box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 1px 2px rgba(0,0,0,.1)}.bp-controls-btn span{display:block;margin:0 auto}.bp-controls-btn svg{vertical-align:middle}.bp-controls-btn.disabled,.bp-controls-btn:disabled{cursor:default;opacity:.2;pointer-events:none}.bp-exit-fullscreen-icon{display:none}.bp-is-fullscreen .bp-enter-fullscreen-icon{display:none}.bp-is-fullscreen .bp-exit-fullscreen-icon{display:block}.bp-controls-group{display:flex;align-items:center;margin-right:4px;margin-left:4px}.bp-controls-group .bp-controls-group-btn{width:32px}.bp-controls-group+.bp-controls-cell{margin-left:4px}.bp-vs{flex:1 0 auto;overflow-y:auto}.bp-vs .bp-vs-list{position:relative;margin:0;padding:0}.bp-vs .bp-vs-list-item{position:absolute;right:0;left:0;display:flex;box-sizing:border-box}
package/dist/lib/index.js CHANGED
@@ -424,7 +424,7 @@ class PreviewError extends Error {
424
424
  /* harmony export */ zb: () => (/* binding */ CLASS_DOC_FIRST_IMAGE),
425
425
  /* harmony export */ ze: () => (/* binding */ STATUS_PENDING)
426
426
  /* harmony export */ });
427
- /* unused harmony exports CLASS_ACTIVE, CLASS_BOX_PREVIEW, CLASS_BOX_PREVIEW_CONTAINER, CLASS_BOX_PREVIEW_HEADER_CONTAINER, CLASS_BOX_PREVIEW_ICON, CLASS_BOX_PREVIEW_LOGO_CUSTOM, CLASS_BOX_PREVIEW_LOGO_DEFAULT, CLASS_PREFETCHED_IMAGE, SELECTOR_BOX_PREVIEW_HEADER, SELECTOR_BOX_PREVIEW_NOTIFICATION */
427
+ /* unused harmony exports CLASS_ACTIVE, CLASS_BOX_PREVIEW, CLASS_BOX_PREVIEW_CONTAINER, CLASS_BOX_PREVIEW_HEADER_CONTAINER, CLASS_BOX_PREVIEW_ICON, CLASS_BOX_PREVIEW_LOGO_CUSTOM, CLASS_BOX_PREVIEW_LOGO_DEFAULT, CLASS_BOX_PREVIEW_VERSION_BANNER, CLASS_BOX_PREVIEW_VERSION_BANNER_COMPARED, CLASS_PREFETCHED_IMAGE, SELECTOR_BOX_PREVIEW_VERSION_BANNER, SELECTOR_BOX_PREVIEW_HEADER, SELECTOR_BOX_PREVIEW_NOTIFICATION */
428
428
  const CLASS_ACTIVE = 'bp-is-active';
429
429
  const CLASS_ANNOTATIONS_CREATE_DRAWING = 'bp-annotations-create--drawing';
430
430
  const CLASS_ANNOTATIONS_CREATE_HIGHLIGHT = 'bp-annotations-create--highlight';
@@ -453,6 +453,8 @@ const CLASS_BOX_PREVIEW_LOGO_CUSTOM = 'bp-custom-logo';
453
453
  const CLASS_BOX_PREVIEW_LOGO_DEFAULT = 'bp-default-logo';
454
454
  const CLASS_BOX_PREVIEW_MENU = 'bp-menu';
455
455
  const CLASS_BOX_PREVIEW_MOBILE = 'bp-is-mobile';
456
+ const CLASS_BOX_PREVIEW_VERSION_BANNER = 'bp-version-banner';
457
+ const CLASS_BOX_PREVIEW_VERSION_BANNER_COMPARED = 'bp-version-banner--compared';
456
458
  const CLASS_BOX_PREVIEW_OVERLAY = 'bp-overlay';
457
459
  const CLASS_BOX_PREVIEW_OVERLAY_WRAPPER = 'bp-overlay-wrapper';
458
460
  const CLASS_BOX_PREVIEW_PRELOAD = 'bp-preload';
@@ -492,6 +494,7 @@ const DISCOVERABILITY_ATTRIBUTE = 'data-resin-discoverability';
492
494
  const SELECTOR_BOX_PREVIEW_CONTAINER = `.${CLASS_BOX_PREVIEW_CONTAINER}`;
493
495
  const SELECTOR_BOX_PREVIEW = `.${CLASS_BOX_PREVIEW}`;
494
496
  const SELECTOR_BOX_PREVIEW_CONTENT = `.${CLASS_BOX_PREVIEW_CONTENT}`;
497
+ const SELECTOR_BOX_PREVIEW_VERSION_BANNER = (/* unused pure expression or super */ null && (`.${CLASS_BOX_PREVIEW_VERSION_BANNER}`));
495
498
  const SELECTOR_NAVIGATION_LEFT = '.bp-navigate-left';
496
499
  const SELECTOR_NAVIGATION_RIGHT = '.bp-navigate-right';
497
500
  const SELECTOR_BOX_PREVIEW_BTN_ANNOTATE_POINT = '.bp-btn-annotate-point';
@@ -1029,7 +1032,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
1029
1032
  const CLIENT_NAME = "box-content-preview"; // eslint-disable-line no-undef
1030
1033
  const CLIENT_NAME_KEY = 'box_client_name';
1031
1034
  const CLIENT_VERSION_KEY = 'box_client_version';
1032
- const CLIENT_VERSION = "3.104.0"; // eslint-disable-line no-undef
1035
+ const CLIENT_VERSION = "3.106.0"; // eslint-disable-line no-undef
1033
1036
  const HEADER_CLIENT_NAME = 'X-Box-Client-Name';
1034
1037
  const HEADER_CLIENT_VERSION = 'X-Box-Client-Version';
1035
1038
  const PROMISE_MAP = {};
@@ -3698,21 +3701,29 @@ function eventTargetElement(target) {
3698
3701
  * Optimistic comment-badge selection that clears on pointerdown outside the
3699
3702
  * selected avatar or its cluster. Host `hostSelectedId` can restore a different
3700
3703
  * id; acking the dismissed id must not bring the ring back.
3704
+ * A new `selectionSeq` is the user picking that same comment again, so the ring returns.
3701
3705
  */
3702
- function useDismissableMarkerSelection(hostSelectedId = null) {
3706
+ function useDismissableMarkerSelection(hostSelectedId = null, selectionSeq = null) {
3703
3707
  const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
3704
3708
  const dismissedIdRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
3709
+ const appliedSeqRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
3705
3710
  const [optimisticSelectedId, setOptimisticSelectedId] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
3706
3711
  const [isSelectionDismissed, setIsSelectionDismissed] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
3707
3712
  const selectedId = optimisticSelectedId ?? (isSelectionDismissed ? null : hostSelectedId);
3708
3713
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
3709
3714
  setOptimisticSelectedId(null);
3715
+ if (selectionSeq != null && selectionSeq !== appliedSeqRef.current) {
3716
+ appliedSeqRef.current = selectionSeq;
3717
+ dismissedIdRef.current = null;
3718
+ setIsSelectionDismissed(false);
3719
+ return;
3720
+ }
3710
3721
  if (dismissedIdRef.current && hostSelectedId === dismissedIdRef.current) {
3711
3722
  return;
3712
3723
  }
3713
3724
  dismissedIdRef.current = null;
3714
3725
  setIsSelectionDismissed(false);
3715
- }, [hostSelectedId]);
3726
+ }, [hostSelectedId, selectionSeq]);
3716
3727
  const selectMarker = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(id => {
3717
3728
  dismissedIdRef.current = null;
3718
3729
  setIsSelectionDismissed(false);
@@ -4807,6 +4818,8 @@ function morphPeaks(from, to, elapsedMs) {
4807
4818
  }
4808
4819
  // EXTERNAL MODULE: ./src/lib/viewers/media/waveform/viewport.ts
4809
4820
  var waveform_viewport = __webpack_require__(772);
4821
+ // EXTERNAL MODULE: ./src/lib/viewers/media/waveform/range.ts
4822
+ var waveform_range = __webpack_require__(4253);
4810
4823
  // EXTERNAL MODULE: ./src/lib/viewers/media/waveform/useTapeWaveform.ts
4811
4824
  var useTapeWaveform = __webpack_require__(7308);
4812
4825
  // EXTERNAL MODULE: ./node_modules/classnames/index.js
@@ -4873,6 +4886,7 @@ function WaveformCommentMarkers({
4873
4886
  isTape = false,
4874
4887
  onCommentMarkerClick,
4875
4888
  selectedId: hostSelectedId = null,
4889
+ selectionSeq = null,
4876
4890
  viewport = null
4877
4891
  }) {
4878
4892
  const trackRef = (0,external_react_.useRef)(null); // width source for clustering overlapping badges
@@ -4880,7 +4894,7 @@ function WaveformCommentMarkers({
4880
4894
  containerRef,
4881
4895
  selectMarker,
4882
4896
  selectedId
4883
- } = (0,useDismissableMarkerSelection/* default */.A)(hostSelectedId);
4897
+ } = (0,useDismissableMarkerSelection/* default */.A)(hostSelectedId, selectionSeq);
4884
4898
  const [trackWidth, setTrackWidth] = (0,external_react_.useState)(0);
4885
4899
  const canShowTrack = durationSec > 0 && commentMarkers.length > 0;
4886
4900
  const zoomLevel = viewport?.zoomLevel ?? constants/* WAVEFORM_ZOOM_MIN */.LW;
@@ -5373,8 +5387,25 @@ function tintWaveformTiles({
5373
5387
  });
5374
5388
  });
5375
5389
  }
5376
- // EXTERNAL MODULE: ./src/lib/viewers/media/waveform/range.ts
5377
- var waveform_range = __webpack_require__(4253);
5390
+ ;// ./src/lib/viewers/controls/icons/IconComment24.tsx
5391
+ function IconComment24_extends() { return IconComment24_extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, IconComment24_extends.apply(null, arguments); }
5392
+
5393
+ function IconComment24(props) {
5394
+ return /*#__PURE__*/external_react_.createElement("svg", IconComment24_extends({
5395
+ "data-testid": "IconComment24",
5396
+ fill: "none",
5397
+ focusable: false,
5398
+ height: 24,
5399
+ viewBox: "0 0 24 24",
5400
+ width: 24
5401
+ }, props), /*#__PURE__*/external_react_.createElement("path", {
5402
+ clipRule: "evenodd",
5403
+ d: "M4 11c0-2.297.683-3.999 1.926-5.138C7.18 4.712 9.155 4 12 4c2.845 0 4.819.711 6.074 1.862C19.317 7.001 20 8.702 20 11c0 2.297-.683 3.999-1.926 5.138C16.82 17.288 14.845 18 12 18h-.459a1.1 1.1 0 0 0-.774.318C9.665 19.41 8.243 20.048 7.16 20.2c-.553.078-.905.013-1.07-.065C6 20.09 6 20.084 6 20V20c0-.22.072-.347.361-.813.285-.458.665-1.104.685-2.104a1.1 1.1 0 0 0-.606-1.005C4.885 15.298 4 13.745 4 11Zm8-9c-3.155 0-5.681.789-7.426 2.388C2.817 5.999 2 8.298 2 11c0 2.938.91 5.227 2.966 6.539a2.79 2.79 0 0 1-.303.592l-.055.088C4.372 18.591 4 19.18 4 20c0 .912.496 1.59 1.23 1.94.657.313 1.453.345 2.205.24 1.428-.2 3.108-.95 4.464-2.18H12c3.155 0 5.681-.789 7.426-2.388C21.183 16.001 22 13.702 22 11c0-2.703-.817-5.001-2.574-6.612C17.68 2.788 15.155 2 12 2ZM8 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm5-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm3 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z",
5404
+ fill: "currentColor",
5405
+ fillRule: "evenodd"
5406
+ }));
5407
+ }
5408
+ /* harmony default export */ const icons_IconComment24 = (IconComment24);
5378
5409
  ;// ./src/lib/viewers/media/waveform/usePlayheadCamera.ts
5379
5410
 
5380
5411
 
@@ -5690,25 +5721,6 @@ function usePlayheadCamera({
5690
5721
  seekTo
5691
5722
  };
5692
5723
  }
5693
- ;// ./src/lib/viewers/controls/icons/IconComment24.tsx
5694
- function IconComment24_extends() { return IconComment24_extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, IconComment24_extends.apply(null, arguments); }
5695
-
5696
- function IconComment24(props) {
5697
- return /*#__PURE__*/external_react_.createElement("svg", IconComment24_extends({
5698
- "data-testid": "IconComment24",
5699
- fill: "none",
5700
- focusable: false,
5701
- height: 24,
5702
- viewBox: "0 0 24 24",
5703
- width: 24
5704
- }, props), /*#__PURE__*/external_react_.createElement("path", {
5705
- clipRule: "evenodd",
5706
- d: "M4 11c0-2.297.683-3.999 1.926-5.138C7.18 4.712 9.155 4 12 4c2.845 0 4.819.711 6.074 1.862C19.317 7.001 20 8.702 20 11c0 2.297-.683 3.999-1.926 5.138C16.82 17.288 14.845 18 12 18h-.459a1.1 1.1 0 0 0-.774.318C9.665 19.41 8.243 20.048 7.16 20.2c-.553.078-.905.013-1.07-.065C6 20.09 6 20.084 6 20V20c0-.22.072-.347.361-.813.285-.458.665-1.104.685-2.104a1.1 1.1 0 0 0-.606-1.005C4.885 15.298 4 13.745 4 11Zm8-9c-3.155 0-5.681.789-7.426 2.388C2.817 5.999 2 8.298 2 11c0 2.938.91 5.227 2.966 6.539a2.79 2.79 0 0 1-.303.592l-.055.088C4.372 18.591 4 19.18 4 20c0 .912.496 1.59 1.23 1.94.657.313 1.453.345 2.205.24 1.428-.2 3.108-.95 4.464-2.18H12c3.155 0 5.681-.789 7.426-2.388C21.183 16.001 22 13.702 22 11c0-2.703-.817-5.001-2.574-6.612C17.68 2.788 15.155 2 12 2ZM8 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm5-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm3 1a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z",
5707
- fill: "currentColor",
5708
- fillRule: "evenodd"
5709
- }));
5710
- }
5711
- /* harmony default export */ const icons_IconComment24 = (IconComment24);
5712
5724
  // EXTERNAL MODULE: ./src/lib/viewers/controls/icons/IconExit24.tsx
5713
5725
  var IconExit24 = __webpack_require__(8950);
5714
5726
  ;// ./src/lib/viewers/media/waveform/WaveformRangeSelection.scss
@@ -5727,6 +5739,15 @@ var IconExit24 = __webpack_require__(8950);
5727
5739
  function stopRangeEvent(event) {
5728
5740
  event.stopPropagation();
5729
5741
  }
5742
+ function focusMediaContainer(event) {
5743
+ const {
5744
+ currentTarget
5745
+ } = event;
5746
+ if (!(currentTarget instanceof Element)) {
5747
+ return;
5748
+ }
5749
+ currentTarget.closest('.bp-media-container')?.focus();
5750
+ }
5730
5751
  function offsetLeftCss(base, offsetPx) {
5731
5752
  if (!offsetPx) {
5732
5753
  return base;
@@ -5810,7 +5831,7 @@ const WaveformRangeSelection = /*#__PURE__*/(0,external_react_.forwardRef)(funct
5810
5831
  const isRangeOpen = displayed.startMs !== displayed.endMs && activeHandle == null;
5811
5832
  const showCommentButton = !readOnly && Boolean(onDragCreate) && isRangeOpen;
5812
5833
  const showClearControl = onRangeClear != null && isRangeOpen;
5813
- const showClearOnly = readOnly && showClearControl;
5834
+ const showClearOnly = showClearControl && !showCommentButton;
5814
5835
  const syncPositions = (0,external_react_.useCallback)((next, nextViewport, nextDurationSec) => {
5815
5836
  displayedRef.current = next;
5816
5837
  const collapsed = next.startMs === next.endMs;
@@ -6040,6 +6061,7 @@ const WaveformRangeSelection = /*#__PURE__*/(0,external_react_.forwardRef)(funct
6040
6061
  "data-testid": "bp-waveform-range-clear",
6041
6062
  onClick: event => {
6042
6063
  stopRangeEvent(event);
6064
+ focusMediaContainer(event);
6043
6065
  onRangeClear();
6044
6066
  },
6045
6067
  onPointerDown: stopRangeEvent,
@@ -6077,6 +6099,7 @@ const WaveformRangeSelection = /*#__PURE__*/(0,external_react_.forwardRef)(funct
6077
6099
  "data-testid": "bp-waveform-range-clear",
6078
6100
  onClick: event => {
6079
6101
  stopRangeEvent(event);
6102
+ focusMediaContainer(event);
6080
6103
  onRangeClear();
6081
6104
  },
6082
6105
  onPointerDown: stopRangeEvent,
@@ -6154,6 +6177,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
6154
6177
 
6155
6178
 
6156
6179
 
6180
+
6157
6181
  /** Pointer X in the view and the media time under it; zoom keeps this point fixed. */
6158
6182
 
6159
6183
  /** CSS width × devicePixelRatio, for canvas gradient fills. */
@@ -6302,6 +6326,7 @@ function WaveformView({
6302
6326
  isPlaying = false,
6303
6327
  mediaEl,
6304
6328
  onPlayPause,
6329
+ onPlayheadComment,
6305
6330
  onRangeChange,
6306
6331
  onRangeClear,
6307
6332
  onRangeDragCreate,
@@ -7323,6 +7348,7 @@ function WaveformView({
7323
7348
  const hoverLeft = isRangeDragging || hoverProgress == null ? null : (0,waveform_viewport/* timeLeftPercent */.Mu)(hoverProgress * durationSec, durationSec, viewportRef.current);
7324
7349
  const overlayRange = createRange ?? range;
7325
7350
  const isOverlayReadOnly = rangeReadOnly && createRange == null;
7351
+ const showPlayheadComment = interactive && !isPlaying && !isRangeDragging && (0,waveform_range/* isRangeCollapsed */.BT)(overlayRange) && Boolean(onPlayheadComment);
7326
7352
  const showRangeOverlay = Boolean(overlayRange) && (isRangeDragging || !isPlaying || !(0,waveform_range/* isRangeCollapsed */.BT)(overlayRange));
7327
7353
  const scrubTimeChip = isTape && scrubPreviewTimeSec != null ? /*#__PURE__*/external_react_["default"].createElement("div", {
7328
7354
  className: "bp-WaveformView-hover bp-WaveformView-hover--tape",
@@ -7363,10 +7389,23 @@ function WaveformView({
7363
7389
  className: "bp-WaveformView-canvas"
7364
7390
  }), /*#__PURE__*/external_react_["default"].createElement("div", {
7365
7391
  ref: playheadRef,
7366
- "aria-hidden": "true",
7367
7392
  className: "bp-WaveformView-playhead",
7368
7393
  "data-testid": "bp-waveform-playhead"
7369
- }), showRangeOverlay && overlayRange && /*#__PURE__*/external_react_["default"].createElement(waveform_WaveformRangeSelection, {
7394
+ }, showPlayheadComment && /*#__PURE__*/external_react_["default"].createElement("button", {
7395
+ className: "bp-WaveformRange-comment bp-WaveformView-playheadComment",
7396
+ "data-target-id": "Waveform-commentAtTime",
7397
+ "data-testid": "bp-waveform-playhead-comment",
7398
+ onClick: event => {
7399
+ event.stopPropagation();
7400
+ onPlayheadComment?.();
7401
+ },
7402
+ onPointerDown: event => event.stopPropagation(),
7403
+ onPointerUp: event => event.stopPropagation(),
7404
+ type: "button"
7405
+ }, /*#__PURE__*/external_react_["default"].createElement(icons_IconComment24, {
7406
+ "aria-hidden": "true",
7407
+ className: "bp-WaveformRange-commentIcon"
7408
+ }), "Comment")), showRangeOverlay && overlayRange && /*#__PURE__*/external_react_["default"].createElement(waveform_WaveformRangeSelection, {
7370
7409
  ref: rangeLayerRef,
7371
7410
  currentTimeSec: currentTime,
7372
7411
  durationSec: durationSec,
@@ -7382,7 +7421,7 @@ function WaveformView({
7382
7421
  },
7383
7422
  onPreviewChange: setPreviewRange,
7384
7423
  onRangeChange: interactive && !isOverlayReadOnly ? onRangeChange : undefined,
7385
- onRangeClear: onRangeClear,
7424
+ onRangeClear: isTape && !isRangeDragging ? onRangeClear : undefined,
7386
7425
  range: overlayRange,
7387
7426
  readOnly: isOverlayReadOnly,
7388
7427
  viewport: viewport
@@ -7634,7 +7673,11 @@ function WaveformZoomControl({
7634
7673
 
7635
7674
 
7636
7675
 
7676
+
7637
7677
  const PLACEHOLDER_PEAKS = placeholderPeaks();
7678
+
7679
+ /** Clicks here keep an open range. Everywhere else in the player dismisses it. */
7680
+ const RANGE_DISMISS_IGNORE = '.bp-WaveformView, .bp-WaveformCommentMarkers, .bp-WaveformRange-comment, .bp-WaveformZoomControl, .bp-MP3ControlsV2-bar';
7638
7681
  function MP3ControlsV2({
7639
7682
  autoplay,
7640
7683
  bufferedRange,
@@ -7655,6 +7698,7 @@ function MP3ControlsV2({
7655
7698
  onCommentRangeClear,
7656
7699
  onCommentRangeDragCreate,
7657
7700
  onCommentRangeDragChange,
7701
+ onPlayheadComment,
7658
7702
  onMuteChange,
7659
7703
  onPlayPause,
7660
7704
  onPlayNextChange,
@@ -7682,6 +7726,7 @@ function MP3ControlsV2({
7682
7726
  const [playRequested, setPlayRequested] = (0,external_react_.useState)(hasStartedPlayback);
7683
7727
  const [viewport, setViewport] = (0,external_react_.useState)(null);
7684
7728
  const isTape = (0,useTapeWaveform/* default */.Ay)();
7729
+ const controlsRef = (0,external_react_.useRef)(null); // player root; pointerdown outside the range chrome dismisses it
7685
7730
  const hasAppliedTapeDefaultZoomRef = (0,external_react_.useRef)(false); // ~10s window applied; reset to 1× when leaving tape
7686
7731
  const lastKeyboardZoomStepRef = (0,external_react_.useRef)(0); // last +/− step applied; skip re-step when maxZoom retriggers the effect
7687
7732
  const userChangedTapeZoomRef = (0,external_react_.useRef)(false); // pinch/wheel zoom; skip re-applying the 10s default
@@ -7753,7 +7798,9 @@ function MP3ControlsV2({
7753
7798
  const waveformRange = commentRangeDraft ?? commentRangeReadOnly;
7754
7799
  const isRangeReadOnly = commentRangeDraft == null && commentRangeReadOnly != null;
7755
7800
  const waveformMarkers = (0,external_react_.useMemo)(() => commentMarkers || [], [commentMarkers]);
7756
- const selectedMarkerId = (0,external_react_.useMemo)(() => waveformMarkers.find(marker => marker.isSelected)?.id ?? null, [waveformMarkers]);
7801
+ const selectedMarker = (0,external_react_.useMemo)(() => waveformMarkers.find(marker => marker.isSelected) ?? null, [waveformMarkers]);
7802
+ const selectedMarkerId = selectedMarker?.id ?? null;
7803
+ const selectionSeq = selectedMarker?.selectionSeq ?? null;
7757
7804
  const handleCommentMarkerClick = (0,external_react_.useCallback)(marker => {
7758
7805
  setPlayRequested(true);
7759
7806
  onPlayPause(false);
@@ -7765,6 +7812,24 @@ function MP3ControlsV2({
7765
7812
  }, [onCommentMarkerClick, onPlayPause, onTimeChange]);
7766
7813
  const hasStarted = playRequested || hasStartedPlayback;
7767
7814
  const isWaveformInteractive = hasStarted && hasMediaMetadata;
7815
+ const canDismissOpenRange = isWaveformInteractive && !(0,waveform_range/* isRangeCollapsed */.BT)(waveformRange);
7816
+ (0,external_react_.useEffect)(() => {
7817
+ const root = controlsRef.current;
7818
+ if (!canDismissOpenRange || !onCommentRangeClear || !root) {
7819
+ return undefined;
7820
+ }
7821
+ const onPointerDown = event => {
7822
+ const {
7823
+ target
7824
+ } = event;
7825
+ if (!(target instanceof Element) || target.closest(RANGE_DISMISS_IGNORE)) {
7826
+ return;
7827
+ }
7828
+ onCommentRangeClear();
7829
+ };
7830
+ root.addEventListener('pointerdown', onPointerDown);
7831
+ return () => root.removeEventListener('pointerdown', onPointerDown);
7832
+ }, [canDismissOpenRange, onCommentRangeClear]);
7768
7833
  const isWaitingToPlay = hasStarted && !hasMediaMetadata;
7769
7834
  const showPlayOverlay = !hasStarted && !isPlaying;
7770
7835
  const hasZoomHandlers = hasRealPeaks && !showPlayOverlay;
@@ -7773,7 +7838,8 @@ function MP3ControlsV2({
7773
7838
  const showShuttle = !isTape && !!shuttleDirection && shuttleRate > 0;
7774
7839
  const waveformZoomLevel = isTape || hasZoomHandlers ? zoomLevel : constants/* WAVEFORM_ZOOM_MIN */.LW;
7775
7840
  return /*#__PURE__*/external_react_["default"].createElement("div", {
7776
- className: "bp-MP3ControlsV2",
7841
+ ref: controlsRef,
7842
+ className: canDismissOpenRange ? 'bp-MP3ControlsV2 bp-MP3ControlsV2--rangeDismiss' : 'bp-MP3ControlsV2',
7777
7843
  "data-testid": "media-controls-wrapper-v2"
7778
7844
  }, /*#__PURE__*/external_react_["default"].createElement("div", {
7779
7845
  className: "bp-MP3ControlsV2-stage"
@@ -7787,6 +7853,7 @@ function MP3ControlsV2({
7787
7853
  interactive: isWaveformInteractive,
7788
7854
  isPlaying: isPlaying,
7789
7855
  mediaEl: mediaEl,
7856
+ onPlayheadComment: isWaveformInteractive && !shuttleDirection ? onPlayheadComment : undefined,
7790
7857
  onPlayPause: isWaveformInteractive ? onPlayPause : undefined,
7791
7858
  onRangeChange: isWaveformInteractive ? onCommentRangeChange : undefined,
7792
7859
  onRangeClear: isWaveformInteractive ? onCommentRangeClear : undefined,
@@ -7805,6 +7872,7 @@ function MP3ControlsV2({
7805
7872
  isTape: isTape,
7806
7873
  onCommentMarkerClick: handleCommentMarkerClick,
7807
7874
  selectedId: selectedMarkerId,
7875
+ selectionSeq: selectionSeq,
7808
7876
  viewport: viewport
7809
7877
  })), showShuttle && shuttleDirection && /*#__PURE__*/external_react_["default"].createElement(WaveformShuttleIndicator, {
7810
7878
  direction: shuttleDirection,
@@ -25136,7 +25204,7 @@ class Browser {
25136
25204
  ;// ./src/lib/Logger.js
25137
25205
  /* eslint-disable no-undef */
25138
25206
  const CLIENT_NAME = "box-content-preview";
25139
- const CLIENT_VERSION = "3.104.0";
25207
+ const CLIENT_VERSION = "3.106.0";
25140
25208
  /* eslint-enable no-undef */
25141
25209
 
25142
25210
  class Logger {
@@ -34398,9 +34466,10 @@ const EVENT_COMMENT_RANGE_DRAFT_DISMISS = 'comment_range_draft_dismiss';
34398
34466
  const EVENT_COMMENT_RANGE_DRAFT_CHANGE = 'comment_range_draft_change';
34399
34467
 
34400
34468
  /**
34401
- * Viewer → sidebar: the user pressed Comment on a draft range.
34402
- * The host opens Activity if needed, checks the timestamp toggle, and adopts
34403
- * `{ startMs, endMs }` without echoing `comment_range_draft`.
34469
+ * Viewer → sidebar: the user pressed Comment on a draft range, or on the
34470
+ * playhead after pausing. The host opens Activity if needed, checks the
34471
+ * timestamp toggle, and adopts the payload without echoing `comment_range_draft`.
34472
+ * A range sends `{ startMs, endMs }`. A pause sends `{ startMs }` only.
34404
34473
  */
34405
34474
  const EVENT_COMMENT_RANGE_DRAG_CREATE = 'comment_range_compose';
34406
34475
 
@@ -38047,9 +38116,13 @@ class MP3Viewer extends media_MediaBaseViewer {
38047
38116
 
38048
38117
  // Host echoes often omit isSelected. Keep hostSelectedMarkerId so ↑/↓ can
38049
38118
  // still walk other comments at the same time. Clear only when that id is gone.
38119
+ // selectionSeq is a new pick of that same comment: seek and draw the range again.
38050
38120
  if (selected) {
38051
- if (selected.id !== this.hostSelectedMarkerId) {
38121
+ const incomingSeq = Number.isFinite(selected.selectionSeq) ? selected.selectionSeq : null;
38122
+ const isRepeatSelect = incomingSeq != null && incomingSeq !== this.hostSelectedMarkerSeq;
38123
+ if (selected.id !== this.hostSelectedMarkerId || isRepeatSelect) {
38052
38124
  this.hostSelectedMarkerId = selected.id;
38125
+ this.hostSelectedMarkerSeq = incomingSeq;
38053
38126
  this.commentRangeReadOnly = commentMarkerRange(selected);
38054
38127
  if (Number.isFinite(selected.time)) {
38055
38128
  this.pendingHostSelectedSeek = selected;
@@ -38058,6 +38131,7 @@ class MP3Viewer extends media_MediaBaseViewer {
38058
38131
  }
38059
38132
  } else if (this.hostSelectedMarkerId && !markers.some(marker => marker.id === this.hostSelectedMarkerId)) {
38060
38133
  this.hostSelectedMarkerId = null;
38134
+ this.hostSelectedMarkerSeq = null;
38061
38135
  this.pendingHostSelectedSeek = null;
38062
38136
  this.commentRangeReadOnly = null;
38063
38137
  }
@@ -38116,7 +38190,7 @@ class MP3Viewer extends media_MediaBaseViewer {
38116
38190
  });
38117
38191
  MP3Viewer_defineProperty(this, "handleCommentRangeDragCreate", () => {
38118
38192
  const draft = this.commentRangeDraft;
38119
- if (!draft || (0,range/* isRangeCollapsed */.BT)(draft)) {
38193
+ if (!this.getCanCreateComment() || !draft || (0,range/* isRangeCollapsed */.BT)(draft)) {
38120
38194
  return;
38121
38195
  }
38122
38196
  this.isCommentRangeTimestampActive = true;
@@ -38125,6 +38199,32 @@ class MP3Viewer extends media_MediaBaseViewer {
38125
38199
  startMs: draft.startMs
38126
38200
  });
38127
38201
  });
38202
+ /**
38203
+ * Comment at the paused playhead. The playhead becomes the collapsed draft,
38204
+ * the same point a seek stores when the timestamp toggle is on.
38205
+ *
38206
+ * @return {void}
38207
+ */
38208
+ MP3Viewer_defineProperty(this, "handlePlayheadComment", () => {
38209
+ const timeSec = this.mediaEl?.currentTime;
38210
+ if (!this.getCanCreateComment() || this.shuttleDirection || !Number.isFinite(timeSec) || timeSec < 0) {
38211
+ return;
38212
+ }
38213
+ if (this.commentRangeDraft && !(0,range/* isRangeCollapsed */.BT)(this.commentRangeDraft)) {
38214
+ return;
38215
+ }
38216
+ const startMs = Math.floor(timeSec * 1000);
38217
+ this.isCommentRangeTimestampActive = true;
38218
+ this.commentRangeDraft = {
38219
+ endMs: null,
38220
+ startMs
38221
+ };
38222
+ this.syncCommentRangeLoop();
38223
+ this.emit(EVENT_COMMENT_RANGE_DRAG_CREATE, {
38224
+ startMs
38225
+ });
38226
+ this.renderUI();
38227
+ });
38128
38228
  MP3Viewer_defineProperty(this, "handleCommentRangeDragChange", isDragging => {
38129
38229
  this.isCommentRangeDragging = !!isDragging;
38130
38230
  });
@@ -38199,6 +38299,7 @@ class MP3Viewer extends media_MediaBaseViewer {
38199
38299
  this.commentRangeDraft = null;
38200
38300
  this.commentRangeReadOnly = null;
38201
38301
  this.hostSelectedMarkerId = null;
38302
+ this.hostSelectedMarkerSeq = null;
38202
38303
  this.isCommentRangeDragging = false;
38203
38304
  this.isCommentRangeTimestampActive = false;
38204
38305
  this.shuttleDirection = null;
@@ -39139,6 +39240,17 @@ class MP3Viewer extends media_MediaBaseViewer {
39139
39240
  }
39140
39241
  super.mediaendHandler();
39141
39242
  }
39243
+
39244
+ /**
39245
+ * Only an explicit `can_comment` shows Comment.
39246
+ * A missing file, permissions object, or flag hides it.
39247
+ *
39248
+ * @return {boolean}
39249
+ */
39250
+ getCanCreateComment() {
39251
+ const canComment = this.options?.file?.permissions?.can_comment;
39252
+ return canComment ?? false;
39253
+ }
39142
39254
  /**
39143
39255
  * @inheritdoc
39144
39256
  */
@@ -39187,7 +39299,8 @@ class MP3Viewer extends media_MediaBaseViewer {
39187
39299
  onCommentRangeChange: this.handleCommentRangeChange,
39188
39300
  onCommentRangeClear: this.handleCommentRangeClear,
39189
39301
  onCommentRangeDragChange: this.handleCommentRangeDragChange,
39190
- onCommentRangeDragCreate: this.handleCommentRangeDragCreate,
39302
+ onCommentRangeDragCreate: this.getCanCreateComment() ? this.handleCommentRangeDragCreate : undefined,
39303
+ onPlayheadComment: this.getCanCreateComment() ? this.handlePlayheadComment : undefined,
39191
39304
  onPlayNextChange: this.setPlayNext,
39192
39305
  peaks: this.waveformPeaks,
39193
39306
  playNext: this.isPlayNextEnabled(),
@@ -41044,12 +41157,13 @@ function TimeControlsV2({
41044
41157
  const [hoverTime, setHoverTime] = external_react_["default"].useState(0);
41045
41158
  const [trackWidth, setTrackWidth] = external_react_["default"].useState(0);
41046
41159
  const scrubberRef = external_react_["default"].useRef(null);
41047
- const hostSelectedId = external_react_["default"].useMemo(() => commentMarkers.find(marker => marker.isSelected)?.id ?? null, [commentMarkers]);
41160
+ const selectedMarker = external_react_["default"].useMemo(() => commentMarkers.find(marker => marker.isSelected) ?? null, [commentMarkers]);
41161
+ const hostSelectedId = selectedMarker?.id ?? null;
41048
41162
  const {
41049
41163
  containerRef,
41050
41164
  selectMarker,
41051
41165
  selectedId
41052
- } = (0,useDismissableMarkerSelection/* default */.A)(hostSelectedId);
41166
+ } = (0,useDismissableMarkerSelection/* default */.A)(hostSelectedId, selectedMarker?.selectionSeq ?? null);
41053
41167
  const currentValue = isFinite_default()(currentTime) ? currentTime : 0;
41054
41168
  const durationValue = isFinite_default()(durationTime) ? durationTime : 0;
41055
41169
  const currentPercentage = (0,utils/* percent */.K)(currentValue, durationValue);
@@ -55671,6 +55785,8 @@ class Preview extends (events_default()) {
55671
55785
  * @return {void}
55672
55786
  */
55673
55787
  destroy() {
55788
+ clearTimeout(this.retryTimeout);
55789
+
55674
55790
  // Log all load metrics
55675
55791
  this.emitLoadMetrics();
55676
55792
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "box-content-preview",
3
- "version": "3.104.0",
3
+ "version": "3.106.0",
4
4
  "description": "Box Content Preview UI Element",
5
5
  "author": "Box (https://www.box.com/)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -39,7 +39,7 @@
39
39
  "@box/blueprint-web": "^17.11.3",
40
40
  "@box/blueprint-web-assets": "^5.10.10",
41
41
  "@box/react-virtualized": "9.22.3-rc-box.2",
42
- "axios": "^0.33.0",
42
+ "axios": "^0.34.0",
43
43
  "box-annotations": "^5.2.1-beta.0",
44
44
  "box-ui-elements": "^20.0.0",
45
45
  "react": "^18.0.0",
@@ -73,7 +73,7 @@
73
73
  "@typescript-eslint/eslint-plugin": "^5.60.1",
74
74
  "@typescript-eslint/parser": "^5.60.1",
75
75
  "autoprefixer": "^10.4.21",
76
- "axios": "^0.33.0",
76
+ "axios": "^0.34.0",
77
77
  "babel-jest": "^29.7.0",
78
78
  "babel-loader": "^8.3.0",
79
79
  "babel-plugin-transform-require-ignore": "^0.1.1",