box-content-preview 3.105.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.105.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.105.0
25
+ - Version: v3.106.0
26
26
  - Locale: en-US
27
27
 
28
- https://cdn01.boxcdn.net/platform/preview/3.105.0/en-US/preview.js
29
- https://cdn01.boxcdn.net/platform/preview/3.105.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.105.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.105.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.105.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`
@@ -66,7 +66,7 @@
66
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.105.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;
@@ -5392,8 +5406,6 @@ function IconComment24(props) {
5392
5406
  }));
5393
5407
  }
5394
5408
  /* harmony default export */ const icons_IconComment24 = (IconComment24);
5395
- // EXTERNAL MODULE: ./src/lib/viewers/media/waveform/range.ts
5396
- var waveform_range = __webpack_require__(4253);
5397
5409
  ;// ./src/lib/viewers/media/waveform/usePlayheadCamera.ts
5398
5410
 
5399
5411
 
@@ -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,
@@ -7398,7 +7421,7 @@ function WaveformView({
7398
7421
  },
7399
7422
  onPreviewChange: setPreviewRange,
7400
7423
  onRangeChange: interactive && !isOverlayReadOnly ? onRangeChange : undefined,
7401
- onRangeClear: onRangeClear,
7424
+ onRangeClear: isTape && !isRangeDragging ? onRangeClear : undefined,
7402
7425
  range: overlayRange,
7403
7426
  readOnly: isOverlayReadOnly,
7404
7427
  viewport: viewport
@@ -7650,7 +7673,11 @@ function WaveformZoomControl({
7650
7673
 
7651
7674
 
7652
7675
 
7676
+
7653
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';
7654
7681
  function MP3ControlsV2({
7655
7682
  autoplay,
7656
7683
  bufferedRange,
@@ -7699,6 +7726,7 @@ function MP3ControlsV2({
7699
7726
  const [playRequested, setPlayRequested] = (0,external_react_.useState)(hasStartedPlayback);
7700
7727
  const [viewport, setViewport] = (0,external_react_.useState)(null);
7701
7728
  const isTape = (0,useTapeWaveform/* default */.Ay)();
7729
+ const controlsRef = (0,external_react_.useRef)(null); // player root; pointerdown outside the range chrome dismisses it
7702
7730
  const hasAppliedTapeDefaultZoomRef = (0,external_react_.useRef)(false); // ~10s window applied; reset to 1× when leaving tape
7703
7731
  const lastKeyboardZoomStepRef = (0,external_react_.useRef)(0); // last +/− step applied; skip re-step when maxZoom retriggers the effect
7704
7732
  const userChangedTapeZoomRef = (0,external_react_.useRef)(false); // pinch/wheel zoom; skip re-applying the 10s default
@@ -7770,7 +7798,9 @@ function MP3ControlsV2({
7770
7798
  const waveformRange = commentRangeDraft ?? commentRangeReadOnly;
7771
7799
  const isRangeReadOnly = commentRangeDraft == null && commentRangeReadOnly != null;
7772
7800
  const waveformMarkers = (0,external_react_.useMemo)(() => commentMarkers || [], [commentMarkers]);
7773
- 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;
7774
7804
  const handleCommentMarkerClick = (0,external_react_.useCallback)(marker => {
7775
7805
  setPlayRequested(true);
7776
7806
  onPlayPause(false);
@@ -7782,6 +7812,24 @@ function MP3ControlsV2({
7782
7812
  }, [onCommentMarkerClick, onPlayPause, onTimeChange]);
7783
7813
  const hasStarted = playRequested || hasStartedPlayback;
7784
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]);
7785
7833
  const isWaitingToPlay = hasStarted && !hasMediaMetadata;
7786
7834
  const showPlayOverlay = !hasStarted && !isPlaying;
7787
7835
  const hasZoomHandlers = hasRealPeaks && !showPlayOverlay;
@@ -7790,7 +7838,8 @@ function MP3ControlsV2({
7790
7838
  const showShuttle = !isTape && !!shuttleDirection && shuttleRate > 0;
7791
7839
  const waveformZoomLevel = isTape || hasZoomHandlers ? zoomLevel : constants/* WAVEFORM_ZOOM_MIN */.LW;
7792
7840
  return /*#__PURE__*/external_react_["default"].createElement("div", {
7793
- className: "bp-MP3ControlsV2",
7841
+ ref: controlsRef,
7842
+ className: canDismissOpenRange ? 'bp-MP3ControlsV2 bp-MP3ControlsV2--rangeDismiss' : 'bp-MP3ControlsV2',
7794
7843
  "data-testid": "media-controls-wrapper-v2"
7795
7844
  }, /*#__PURE__*/external_react_["default"].createElement("div", {
7796
7845
  className: "bp-MP3ControlsV2-stage"
@@ -7823,6 +7872,7 @@ function MP3ControlsV2({
7823
7872
  isTape: isTape,
7824
7873
  onCommentMarkerClick: handleCommentMarkerClick,
7825
7874
  selectedId: selectedMarkerId,
7875
+ selectionSeq: selectionSeq,
7826
7876
  viewport: viewport
7827
7877
  })), showShuttle && shuttleDirection && /*#__PURE__*/external_react_["default"].createElement(WaveformShuttleIndicator, {
7828
7878
  direction: shuttleDirection,
@@ -25154,7 +25204,7 @@ class Browser {
25154
25204
  ;// ./src/lib/Logger.js
25155
25205
  /* eslint-disable no-undef */
25156
25206
  const CLIENT_NAME = "box-content-preview";
25157
- const CLIENT_VERSION = "3.105.0";
25207
+ const CLIENT_VERSION = "3.106.0";
25158
25208
  /* eslint-enable no-undef */
25159
25209
 
25160
25210
  class Logger {
@@ -38066,9 +38116,13 @@ class MP3Viewer extends media_MediaBaseViewer {
38066
38116
 
38067
38117
  // Host echoes often omit isSelected. Keep hostSelectedMarkerId so ↑/↓ can
38068
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.
38069
38120
  if (selected) {
38070
- 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) {
38071
38124
  this.hostSelectedMarkerId = selected.id;
38125
+ this.hostSelectedMarkerSeq = incomingSeq;
38072
38126
  this.commentRangeReadOnly = commentMarkerRange(selected);
38073
38127
  if (Number.isFinite(selected.time)) {
38074
38128
  this.pendingHostSelectedSeek = selected;
@@ -38077,6 +38131,7 @@ class MP3Viewer extends media_MediaBaseViewer {
38077
38131
  }
38078
38132
  } else if (this.hostSelectedMarkerId && !markers.some(marker => marker.id === this.hostSelectedMarkerId)) {
38079
38133
  this.hostSelectedMarkerId = null;
38134
+ this.hostSelectedMarkerSeq = null;
38080
38135
  this.pendingHostSelectedSeek = null;
38081
38136
  this.commentRangeReadOnly = null;
38082
38137
  }
@@ -38135,7 +38190,7 @@ class MP3Viewer extends media_MediaBaseViewer {
38135
38190
  });
38136
38191
  MP3Viewer_defineProperty(this, "handleCommentRangeDragCreate", () => {
38137
38192
  const draft = this.commentRangeDraft;
38138
- if (!draft || (0,range/* isRangeCollapsed */.BT)(draft)) {
38193
+ if (!this.getCanCreateComment() || !draft || (0,range/* isRangeCollapsed */.BT)(draft)) {
38139
38194
  return;
38140
38195
  }
38141
38196
  this.isCommentRangeTimestampActive = true;
@@ -38152,7 +38207,7 @@ class MP3Viewer extends media_MediaBaseViewer {
38152
38207
  */
38153
38208
  MP3Viewer_defineProperty(this, "handlePlayheadComment", () => {
38154
38209
  const timeSec = this.mediaEl?.currentTime;
38155
- if (this.shuttleDirection || !Number.isFinite(timeSec) || timeSec < 0) {
38210
+ if (!this.getCanCreateComment() || this.shuttleDirection || !Number.isFinite(timeSec) || timeSec < 0) {
38156
38211
  return;
38157
38212
  }
38158
38213
  if (this.commentRangeDraft && !(0,range/* isRangeCollapsed */.BT)(this.commentRangeDraft)) {
@@ -38244,6 +38299,7 @@ class MP3Viewer extends media_MediaBaseViewer {
38244
38299
  this.commentRangeDraft = null;
38245
38300
  this.commentRangeReadOnly = null;
38246
38301
  this.hostSelectedMarkerId = null;
38302
+ this.hostSelectedMarkerSeq = null;
38247
38303
  this.isCommentRangeDragging = false;
38248
38304
  this.isCommentRangeTimestampActive = false;
38249
38305
  this.shuttleDirection = null;
@@ -39184,6 +39240,17 @@ class MP3Viewer extends media_MediaBaseViewer {
39184
39240
  }
39185
39241
  super.mediaendHandler();
39186
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
+ }
39187
39254
  /**
39188
39255
  * @inheritdoc
39189
39256
  */
@@ -39232,8 +39299,8 @@ class MP3Viewer extends media_MediaBaseViewer {
39232
39299
  onCommentRangeChange: this.handleCommentRangeChange,
39233
39300
  onCommentRangeClear: this.handleCommentRangeClear,
39234
39301
  onCommentRangeDragChange: this.handleCommentRangeDragChange,
39235
- onCommentRangeDragCreate: this.handleCommentRangeDragCreate,
39236
- onPlayheadComment: this.handlePlayheadComment,
39302
+ onCommentRangeDragCreate: this.getCanCreateComment() ? this.handleCommentRangeDragCreate : undefined,
39303
+ onPlayheadComment: this.getCanCreateComment() ? this.handlePlayheadComment : undefined,
39237
39304
  onPlayNextChange: this.setPlayNext,
39238
39305
  peaks: this.waveformPeaks,
39239
39306
  playNext: this.isPlayNextEnabled(),
@@ -41090,12 +41157,13 @@ function TimeControlsV2({
41090
41157
  const [hoverTime, setHoverTime] = external_react_["default"].useState(0);
41091
41158
  const [trackWidth, setTrackWidth] = external_react_["default"].useState(0);
41092
41159
  const scrubberRef = external_react_["default"].useRef(null);
41093
- 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;
41094
41162
  const {
41095
41163
  containerRef,
41096
41164
  selectMarker,
41097
41165
  selectedId
41098
- } = (0,useDismissableMarkerSelection/* default */.A)(hostSelectedId);
41166
+ } = (0,useDismissableMarkerSelection/* default */.A)(hostSelectedId, selectedMarker?.selectionSeq ?? null);
41099
41167
  const currentValue = isFinite_default()(currentTime) ? currentTime : 0;
41100
41168
  const durationValue = isFinite_default()(durationTime) ? durationTime : 0;
41101
41169
  const currentPercentage = (0,utils/* percent */.K)(currentValue, durationValue);
@@ -55717,6 +55785,8 @@ class Preview extends (events_default()) {
55717
55785
  * @return {void}
55718
55786
  */
55719
55787
  destroy() {
55788
+ clearTimeout(this.retryTimeout);
55789
+
55720
55790
  // Log all load metrics
55721
55791
  this.emitLoadMetrics();
55722
55792
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "box-content-preview",
3
- "version": "3.105.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",