@atlaskit/media-viewer 54.9.9 → 54.10.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/analytics/ufoExperiences.js +1 -1
  3. package/dist/cjs/insetViewerContext.js +34 -0
  4. package/dist/cjs/list.js +6 -3
  5. package/dist/cjs/media-viewer.js +19 -3
  6. package/dist/cjs/navigation.js +30 -11
  7. package/dist/cjs/styleWrappers.compiled.css +36 -1
  8. package/dist/cjs/styleWrappers.js +188 -120
  9. package/dist/cjs/viewers/image/interactive-img-component.js +5 -1
  10. package/dist/cjs/viewers/image/interactive-img.js +3 -2
  11. package/dist/cjs/viewers/svg/index.js +5 -0
  12. package/dist/es2019/analytics/ufoExperiences.js +1 -1
  13. package/dist/es2019/insetViewerContext.js +21 -0
  14. package/dist/es2019/list.js +7 -4
  15. package/dist/es2019/media-viewer.js +18 -4
  16. package/dist/es2019/navigation.js +28 -11
  17. package/dist/es2019/styleWrappers.compiled.css +36 -1
  18. package/dist/es2019/styleWrappers.js +92 -21
  19. package/dist/es2019/viewers/image/interactive-img-component.js +5 -1
  20. package/dist/es2019/viewers/image/interactive-img.js +3 -2
  21. package/dist/es2019/viewers/svg/index.js +5 -0
  22. package/dist/esm/analytics/ufoExperiences.js +1 -1
  23. package/dist/esm/insetViewerContext.js +25 -0
  24. package/dist/esm/list.js +7 -4
  25. package/dist/esm/media-viewer.js +20 -4
  26. package/dist/esm/navigation.js +30 -11
  27. package/dist/esm/styleWrappers.compiled.css +36 -1
  28. package/dist/esm/styleWrappers.js +187 -119
  29. package/dist/esm/viewers/image/interactive-img-component.js +5 -1
  30. package/dist/esm/viewers/image/interactive-img.js +3 -2
  31. package/dist/esm/viewers/svg/index.js +5 -0
  32. package/dist/types/components/types.d.ts +6 -0
  33. package/dist/types/insetViewerContext.d.ts +10 -0
  34. package/dist/types/navigation.d.ts +3 -1
  35. package/dist/types/styleWrappers.d.ts +8 -0
  36. package/dist/types/viewers/image/interactive-img.d.ts +2 -1
  37. package/package.json +4 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @atlaskit/media-viewer
2
2
 
3
+ ## 54.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`f4b5f17c2d1c0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f4b5f17c2d1c0) -
8
+ [ux] Add an opt-in inset Media Viewer presentation behind the new `useInsetViewer` field on
9
+ `MediaViewerExtensions`, gated at runtime by the `cc_comments_inset_media_viewer` feature gate.
10
+ When a consumer passes `useInsetViewer` and the feature gate is enabled, the viewer renders as a
11
+ rounded card on a dimmed blanket instead of the full-bleed overlay: clicking the blanket closes
12
+ the viewer, clicking the media itself no longer does, the overlay header is not rendered, and
13
+ prev/next use circular icon buttons. With the feature gate disabled, or with `useInsetViewer`
14
+ absent or false, the default full-bleed overlay renders unchanged.
15
+
3
16
  ## 54.9.9
4
17
 
5
18
  ### Patch Changes
@@ -14,7 +14,7 @@ var _experienceTypes = require("@atlaskit/ufo/experience-types");
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
16
  var packageName = "@atlaskit/media-viewer";
17
- var packageVersion = "54.9.8";
17
+ var packageVersion = "54.9.9";
18
18
  var ufoExperience;
19
19
  var getExperience = function getExperience() {
20
20
  if (!ufoExperience) {
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.withInsetViewer = exports.useIsInsetViewer = exports.InsetViewerProvider = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
12
+ var InsetViewerContext = /*#__PURE__*/(0, _react.createContext)(false);
13
+ var InsetViewerProvider = exports.InsetViewerProvider = function InsetViewerProvider(_ref) {
14
+ var _ref$isInsetViewer = _ref.isInsetViewer,
15
+ isInsetViewer = _ref$isInsetViewer === void 0 ? false : _ref$isInsetViewer,
16
+ children = _ref.children;
17
+ return /*#__PURE__*/_react.default.createElement(InsetViewerContext.Provider, {
18
+ value: isInsetViewer
19
+ }, children);
20
+ };
21
+ var useIsInsetViewer = exports.useIsInsetViewer = function useIsInsetViewer() {
22
+ return (0, _react.useContext)(InsetViewerContext);
23
+ };
24
+ var withInsetViewer = exports.withInsetViewer = function withInsetViewer(WrappedComponent) {
25
+ var WithInsetViewer = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
26
+ var isInsetViewer = useIsInsetViewer();
27
+ return /*#__PURE__*/_react.default.createElement(WrappedComponent, (0, _extends2.default)({}, props, {
28
+ ref: ref,
29
+ isInsetViewer: isInsetViewer
30
+ }));
31
+ });
32
+ WithInsetViewer.displayName = "WithInsetViewer(".concat(WrappedComponent.displayName || WrappedComponent.name || 'Component', ")");
33
+ return WithInsetViewer;
34
+ };
package/dist/cjs/list.js CHANGED
@@ -11,6 +11,7 @@ var _react = _interopRequireWildcard(require("react"));
11
11
  var _mediaCommon = require("@atlaskit/media-common");
12
12
  var _classNames = require("@atlaskit/media-ui/classNames");
13
13
  var _headerWithIntl = _interopRequireDefault(require("./headerWithIntl"));
14
+ var _insetViewerContext = require("./insetViewerContext");
14
15
  var _itemViewer = require("./item-viewer");
15
16
  var _navigation = require("./navigation");
16
17
  var _styleWrappers = require("./styleWrappers");
@@ -44,7 +45,9 @@ var List = exports.List = function List(_ref) {
44
45
  var traceContext = (0, _react.useRef)({
45
46
  traceId: (0, _mediaCommon.getRandomTelemetryId)()
46
47
  });
47
- return /*#__PURE__*/_react.default.createElement(_styleWrappers.ListWrapper, null, /*#__PURE__*/_react.default.createElement(_styleWrappers.HeaderWrapper
48
+ var isInsetViewer = (0, _insetViewerContext.useIsInsetViewer)();
49
+ var ViewerWrapper = isInsetViewer ? _styleWrappers.ItemStage : _react.default.Fragment;
50
+ return /*#__PURE__*/_react.default.createElement(_styleWrappers.ListWrapper, null, !isInsetViewer && /*#__PURE__*/_react.default.createElement(_styleWrappers.HeaderWrapper
48
51
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
49
52
  , {
50
53
  className: _classNames.hideControlsClassName,
@@ -60,7 +63,7 @@ var List = exports.List = function List(_ref) {
60
63
  onSetArchiveSideBarVisible: setIsArchiveSideBarVisible,
61
64
  traceContext: traceContext.current,
62
65
  fallbackMediaNameFetcher: fallbackMediaNameFetcher
63
- })), /*#__PURE__*/_react.default.createElement(_itemViewer.ItemViewer, {
66
+ })), /*#__PURE__*/_react.default.createElement(ViewerWrapper, null, /*#__PURE__*/_react.default.createElement(_itemViewer.ItemViewer, {
64
67
  identifier: selectedItem,
65
68
  showControls: showControls,
66
69
  onClose: onClose,
@@ -69,7 +72,7 @@ var List = exports.List = function List(_ref) {
69
72
  featureFlags: featureFlags,
70
73
  viewerOptions: viewerOptions,
71
74
  traceContext: traceContext.current
72
- }), /*#__PURE__*/_react.default.createElement(_navigation.Navigation, {
75
+ })), /*#__PURE__*/_react.default.createElement(_navigation.Navigation, {
73
76
  items: items,
74
77
  selectedItem: selectedItem,
75
78
  onChange: function onChange(nextSelectedItem) {
@@ -17,11 +17,13 @@ var _useAnalyticsEvents2 = require("@atlaskit/analytics-next/useAnalyticsEvents"
17
17
  var _mediaClient = require("@atlaskit/media-client");
18
18
  var _shortcut = require("@atlaskit/media-ui/shortcut");
19
19
  var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
20
+ var _fg = require("@atlaskit/platform-feature-flags/fg");
20
21
  var _modal = require("./analytics/events/screen/modal");
21
22
  var _closed = require("./analytics/events/ui/closed");
22
23
  var _fireAnalytics = require("./analytics/fireAnalytics");
23
24
  var _classnames = require("./classnames");
24
25
  var _content = require("./content");
26
+ var _insetViewerContext = require("./insetViewerContext");
25
27
  var _list = require("./list");
26
28
  var _styleWrappers = require("./styleWrappers");
27
29
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
@@ -54,6 +56,10 @@ var MediaViewerComponent = function MediaViewerComponent(_ref) {
54
56
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
55
57
  isSidebarVisible = _useState2[0],
56
58
  setIsSidebarVisibleState = _useState2[1];
59
+ // The inset presentation has its own feature gate, separate from the functionality above. The
60
+ // value flows out through InsetViewerProvider, so with the gate off every downstream
61
+ // useIsInsetViewer() is false and the full-bleed overlay renders unchanged.
62
+ var isInsetViewer = (0, _fg.fg)('cc_comments_inset_media_viewer') && !!(extensions !== null && extensions !== void 0 && extensions.useInsetViewer);
57
63
  var setIsSidebarVisible = (0, _react.useCallback)(function (isVisible) {
58
64
  setIsSidebarVisibleState(isVisible);
59
65
  onSidebarVisibilityChange === null || onSidebarVisibilityChange === void 0 || onSidebarVisibilityChange(isVisible);
@@ -159,19 +165,29 @@ var MediaViewerComponent = function MediaViewerComponent(_ref) {
159
165
  }));
160
166
  }
161
167
  };
168
+ var ConditionalInsetViewerShell = isInsetViewer ? _styleWrappers.InsetViewerShell : _react.default.Fragment;
169
+ var ConditionalInsetViewerLayout = isInsetViewer ? _styleWrappers.InsetViewerLayout : _react.default.Fragment;
170
+ var ConditionalInsetMediaColumn = isInsetViewer ? _styleWrappers.MediaColumn : _react.default.Fragment;
171
+ var ConditionalInsetMediaStage = isInsetViewer ? _styleWrappers.MediaStage : _react.default.Fragment;
162
172
  var content = /*#__PURE__*/_react.default.createElement("div", {
163
173
  ref: innerRef
174
+ }, /*#__PURE__*/_react.default.createElement(_insetViewerContext.InsetViewerProvider, {
175
+ isInsetViewer: isInsetViewer
164
176
  }, /*#__PURE__*/_react.default.createElement(_styleWrappers.Blanket, {
165
177
  "data-testid": "media-viewer-popup"
166
178
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
167
179
  ,
168
180
  className: _classnames.mediaViewerPopupClass
169
- }, /*#__PURE__*/_react.default.createElement(_shortcut.Shortcut, {
181
+ }, isInsetViewer ? /*#__PURE__*/_react.default.createElement(_styleWrappers.BlanketCloseButton, {
182
+ onClick: function onClick() {
183
+ return handlePreviewClose('blanket');
184
+ }
185
+ }) : null, /*#__PURE__*/_react.default.createElement(_shortcut.Shortcut, {
170
186
  code: 'Escape',
171
187
  handler: function handler() {
172
188
  handlePreviewClose('escKey');
173
189
  }
174
- }), /*#__PURE__*/_react.default.createElement(_content.Content, {
190
+ }), /*#__PURE__*/_react.default.createElement(ConditionalInsetViewerShell, null, /*#__PURE__*/_react.default.createElement(ConditionalInsetViewerLayout, null, /*#__PURE__*/_react.default.createElement(ConditionalInsetMediaColumn, null, /*#__PURE__*/_react.default.createElement(ConditionalInsetMediaStage, null, /*#__PURE__*/_react.default.createElement(_content.Content, {
175
191
  isSidebarVisible: isSidebarVisible,
176
192
  onClose: function onClose(_e, analyticsEvent) {
177
193
  var _analyticsEvent$paylo;
@@ -210,7 +226,7 @@ var MediaViewerComponent = function MediaViewerComponent(_ref) {
210
226
  featureFlags: featureFlags,
211
227
  viewerOptions: viewerOptions,
212
228
  fallbackMediaNameFetcher: fallbackMediaNameFetcher
213
- })), renderSidebar()));
229
+ })))), renderSidebar())))));
214
230
  return intl ? content : /*#__PURE__*/_react.default.createElement(_reactIntl.IntlProvider, {
215
231
  locale: "en"
216
232
  }, content);
@@ -13,6 +13,9 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
13
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
  var _withAnalyticsEvents = _interopRequireDefault(require("@atlaskit/analytics-next/withAnalyticsEvents"));
16
+ var _button = _interopRequireDefault(require("@atlaskit/button/icon/button"));
17
+ var _arrowLeft = _interopRequireDefault(require("@atlaskit/icon/core/arrow-left"));
18
+ var _arrowRight = _interopRequireDefault(require("@atlaskit/icon/core/arrow-right"));
16
19
  var _chevronLeft = _interopRequireDefault(require("@atlaskit/icon/core/chevron-left"));
17
20
  var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/core/chevron-right"));
18
21
  var _classNames = require("@atlaskit/media-ui/classNames");
@@ -21,6 +24,7 @@ var _fg = require("@atlaskit/platform-feature-flags/fg");
21
24
  var _primitives = require("@atlaskit/primitives");
22
25
  var _createNavigatedEvent = require("./analytics/events/ui/createNavigatedEvent");
23
26
  var _fireAnalytics = require("./analytics/fireAnalytics");
27
+ var _insetViewerContext = require("./insetViewerContext");
24
28
  var _styleWrappers = require("./styleWrappers");
25
29
  var _getSelectedIndex = require("./utils/getSelectedIndex");
26
30
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
@@ -101,6 +105,29 @@ var NavigationBase = exports.NavigationBase = /*#__PURE__*/function (_Component)
101
105
  selectedItem = _this$props2.selectedItem;
102
106
  return (0, _getSelectedIndex.getSelectedIndex)(items, selectedItem);
103
107
  }
108
+ }, {
109
+ key: "renderArrowButton",
110
+ value: function renderArrowButton(direction, label, clickHandler, testId) {
111
+ if (this.props.isInsetViewer) {
112
+ var _Icon = direction === 'next' ? _arrowRight.default : _arrowLeft.default;
113
+ return /*#__PURE__*/_react.default.createElement(_button.default, {
114
+ appearance: "default",
115
+ shape: "circle",
116
+ spacing: "default",
117
+ label: label,
118
+ icon: _Icon,
119
+ onClick: clickHandler('mouse'),
120
+ testId: testId,
121
+ isTooltipDisabled: false
122
+ });
123
+ }
124
+ var Icon = direction === 'next' ? NextIcon : PreviousIcon;
125
+ return /*#__PURE__*/_react.default.createElement(Icon, {
126
+ label: label,
127
+ clickHandler: clickHandler,
128
+ testId: testId
129
+ });
130
+ }
104
131
  }, {
105
132
  key: "render",
106
133
  value: function render() {
@@ -131,11 +158,7 @@ var NavigationBase = exports.NavigationBase = /*#__PURE__*/function (_Component)
131
158
  code: 'ArrowLeft',
132
159
  handler: prev('keyboard'),
133
160
  eventType: 'keyup'
134
- }), /*#__PURE__*/_react.default.createElement(PreviousIcon, {
135
- label: (0, _fg.fg)('platform_media_a11y_nav_button_labels') ? 'Previous attachment' : 'Previous',
136
- clickHandler: prev,
137
- testId: prevNavButtonId
138
- })) : null), /*#__PURE__*/_react.default.createElement(_styleWrappers.RightWrapper, null, isRightVisible ?
161
+ }), this.renderArrowButton('prev', (0, _fg.fg)('platform_media_a11y_nav_button_labels') ? 'Previous attachment' : 'Previous', prev, prevNavButtonId)) : null), /*#__PURE__*/_react.default.createElement(_styleWrappers.RightWrapper, null, isRightVisible ?
139
162
  /*#__PURE__*/
140
163
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
141
164
  _react.default.createElement(_styleWrappers.Arrow, {
@@ -144,12 +167,8 @@ var NavigationBase = exports.NavigationBase = /*#__PURE__*/function (_Component)
144
167
  code: 'ArrowRight',
145
168
  handler: next('keyboard'),
146
169
  eventType: 'keyup'
147
- }), /*#__PURE__*/_react.default.createElement(NextIcon, {
148
- label: (0, _fg.fg)('platform_media_a11y_nav_button_labels') ? 'Next attachment' : 'Next',
149
- clickHandler: next,
150
- testId: nextNavButtonId
151
- })) : null));
170
+ }), this.renderArrowButton('next', (0, _fg.fg)('platform_media_a11y_nav_button_labels') ? 'Next attachment' : 'Next', next, nextNavButtonId)) : null));
152
171
  }
153
172
  }]);
154
173
  }(_react.Component);
155
- var Navigation = exports.Navigation = (0, _withAnalyticsEvents.default)({})(NavigationBase);
174
+ var Navigation = exports.Navigation = (0, _withAnalyticsEvents.default)({})((0, _insetViewerContext.withInsetViewer)(NavigationBase));
@@ -1,11 +1,18 @@
1
1
  ._11q75a80{background:linear-gradient(180deg,#101214,rgba(14,22,36,0)) no-repeat}
2
2
  ._151kfhey._151kfhey h1{font:var(--ds-font-body,normal 400 14px/20px "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
3
  ._2rkofajl{border-radius:var(--ds-radius-small,3px)}
4
- ._zulpu2gc{gap:var(--ds-space-100,8px)}._11pt15ty svg{filter:drop-shadow(0 1px 1px rgb(9 30 66/25%)) drop-shadow(0 0 1px rgb(9 30 66/31%))}
4
+ ._2rkopb1k{border-radius:var(--ds-radius-xlarge,9pt)}
5
+ ._zulpu2gc{gap:var(--ds-space-100,8px)}
6
+ ._189eidpf{border-width:0}
7
+ ._1ii7cs5v{grid-row:2}
8
+ ._yyhykb7n{grid-column:1}._11pt15ty svg{filter:drop-shadow(0 1px 1px rgb(9 30 66/25%)) drop-shadow(0 0 1px rgb(9 30 66/31%))}
9
+ ._152tidpf{inset-block-start:0}
5
10
  ._154i1ejb{top:var(--ds-space-300,24px)}
6
11
  ._154i1ssb{top:50%}
7
12
  ._154iidpf{top:0}
13
+ ._16jlidpf{flex-grow:0}
8
14
  ._16jlkb7n{flex-grow:1}
15
+ ._16qs130s{box-shadow:var(--ds-shadow-overlay,0 8px 9pt #1e1f2126,0 0 1px #1e1f214f)}
9
16
  ._18ew1wq8._18ew1wq8 h1{font-weight:var(--ds-font-weight-medium,500)}
10
17
  ._18m915vq{overflow-y:hidden}
11
18
  ._18m91wug{overflow-y:auto}
@@ -13,9 +20,11 @@
13
20
  ._19bv1mjv{padding-left:300px}
14
21
  ._19bvidpf{padding-left:0}
15
22
  ._19bvv47k{padding-left:var(--ds-space-250,20px)}
23
+ ._19bvze3t{padding-left:var(--ds-space-0,0)}
16
24
  ._19kzstnw >*{position:absolute}
17
25
  ._19pk1ejb{margin-top:var(--ds-space-300,24px)}
18
26
  ._1bah1h6o{justify-content:center}
27
+ ._1bah1y6m{justify-content:flex-start}
19
28
  ._1bahusic{justify-content:right}
20
29
  ._1bsb1ber{width:26pc}
21
30
  ._1bsb1kdj{width:25pc}
@@ -24,6 +33,8 @@
24
33
  ._1bsbauwl{width:100vw}
25
34
  ._1bsbyazj{width:calc(100% - 26pc)}
26
35
  ._1bto1l2s{text-overflow:ellipsis}
36
+ ._1e02idpf{inset-inline-start:0}
37
+ ._1e0c11p5{display:grid}
27
38
  ._1e0c1o8l{display:inline-block}
28
39
  ._1e0c1txw{display:flex}
29
40
  ._1ghp1kxc video{max-height:100vh}
@@ -31,17 +42,22 @@
31
42
  ._1jyy1poe._1jyy1poe h1{color:#c7d1db}
32
43
  ._1kemd8h4{image-rendering:pixelated}
33
44
  ._1l1f1n9t .mvng-hide-controls{position:fixed}
45
+ ._1ltv1ejb{left:var(--ds-space-300,24px)}
34
46
  ._1ltv1mjv{left:300px}
35
47
  ._1ltvidpf{left:0}
48
+ ._1o9zidpf{flex-shrink:0}
36
49
  ._1o9zkb7n{flex-shrink:1}
37
50
  ._1p351l2s._1p351l2s h1{text-overflow:ellipsis}
38
51
  ._1p6zkb7n video{flex-grow:1}
39
52
  ._1p8j15vq._1p8j15vq h1{overflow-y:hidden}
40
53
  ._1pby1qpw{z-index:520}
41
54
  ._1pby3tda{z-index:521}
55
+ ._1pbykb7n{z-index:1}
42
56
  ._1pbyuou7{z-index:522}
43
57
  ._1reo15vq{overflow-x:hidden}
44
58
  ._1reo1wug{overflow-x:auto}
59
+ ._1tkeidpf{min-height:0}
60
+ ._1ul9idpf{min-width:0}
45
61
  ._1ul9uuw1{min-width:200px}
46
62
  ._1vgl1rj4 >*{pointer-events:all}
47
63
  ._1vnlkb7n video{flex-shrink:1}
@@ -52,6 +68,8 @@
52
68
  ._20ka1poe._20ka1poe button:active svg{color:#c7d1db}
53
69
  ._2hwx1jfw{margin-right:var(--ds-space-500,40px)}
54
70
  ._2lx21bp4{flex-direction:column}
71
+ ._2z055wi5{grid-template-rows:var(--_1dd8ooc)}
72
+ ._4cvr1fhb{align-items:stretch}
55
73
  ._4cvr1h6o{align-items:center}
56
74
  ._4cvresu3{align-items:flex-end}
57
75
  ._4t3i1kdj{height:25pc}
@@ -60,17 +78,26 @@
60
78
  ._4t3i1uc6{height:98px}
61
79
  ._4t3izwfg{height:2pc}
62
80
  ._5ralzm06{object-fit:scale-down}
81
+ ._7dir1j9a button{background-color:var(--ds-background-input,#fff)}
82
+ ._80om73ad{cursor:default}
63
83
  ._80omtlke{cursor:pointer}
64
84
  ._8at415vq._8at415vq h1{overflow-x:hidden}
65
85
  ._8g8b1q9c._8g8b1q9c h1{white-space:nowrap}
66
86
  ._94n5idpf{bottom:0}
87
+ ._bfhk1bhr{background-color:var(--ds-surface-overlay,#fff)}
88
+ ._bfhk1i5c{background-color:var(--ds-blanket,#050c1f75)}
89
+ ._bfhk1j28{background-color:transparent}
67
90
  ._bfhk1tzm{background-color:#22272b}
68
91
  ._bfhkr3uz{background-color:#000}
69
92
  ._bfhkvuon{background-color:var(--ds-surface,#fff)}
93
+ ._c71l1osq{max-height:100%}
70
94
  ._ca0q1azu{padding-top:var(--ds-space-100,8px) var(--ds-space-300,24px)}
71
95
  ._ca0q1ejb{padding-top:var(--ds-space-300,24px)}
96
+ ._ca0qidpf{padding-top:0}
72
97
  ._ca0qv47k{padding-top:var(--ds-space-250,20px)}
98
+ ._ca0qze3t{padding-top:var(--ds-space-0,0)}
73
99
  ._di7o9txx._di7o9txx button:hover svg{color:#b6c2cf}
100
+ ._i0dl1wug{flex-basis:auto}
74
101
  ._i0dlf1ug{flex-basis:0%}
75
102
  ._k48p1wq8{font-weight:var(--ds-font-weight-medium,500)}
76
103
  ._kqsw1n9t{position:fixed}
@@ -79,8 +106,10 @@
79
106
  ._lcxv1rj4{pointer-events:all}
80
107
  ._lcxvglyw{pointer-events:none}
81
108
  ._n3td1ejb{padding-bottom:var(--ds-space-300,24px)}
109
+ ._n3tdidpf{padding-bottom:0}
82
110
  ._n3tdu2gc{padding-bottom:var(--ds-space-100,8px)}
83
111
  ._n3tdv47k{padding-bottom:var(--ds-space-250,20px)}
112
+ ._n3tdze3t{padding-bottom:var(--ds-space-0,0)}
84
113
  ._o5721q9c{white-space:nowrap}
85
114
  ._otyru2gc{margin-bottom:var(--ds-space-100,8px)}
86
115
  ._ouxl1klg{background-position:300px 0}
@@ -88,13 +117,17 @@
88
117
  ._p12f1osq{max-width:100%}
89
118
  ._qbrxf1ug video{flex-basis:0%}
90
119
  ._qvww1osq._qvww1osq h1{max-width:100%}
120
+ ._rjxpidpf{inset-inline-end:0}
91
121
  ._s7n4nkob{vertical-align:middle}
92
122
  ._syaz1poe{color:#c7d1db}
93
123
  ._syazi7uo{color:var(--ds-text,#292a2e)}
94
124
  ._t9ec1i34{transform:translateY(-50%)}
95
125
  ._tzy41w01{opacity:.85}
96
126
  ._u5f31ejb{padding-right:var(--ds-space-300,24px)}
127
+ ._u5f3idpf{padding-right:0}
97
128
  ._u5f3v47k{padding-right:var(--ds-space-250,20px)}
129
+ ._u5f3ze3t{padding-right:var(--ds-space-0,0)}
130
+ ._u7coidpf{inset-block-end:0}
98
131
  ._uiztglyw{-webkit-user-select:none;-ms-user-select:none;user-select:none}
99
132
  ._umc418ws >*{transform:scale(2)}
100
133
  ._vchhusvi{box-sizing:border-box}
@@ -102,7 +135,9 @@
102
135
  ._y3gn1e5h{text-align:left}
103
136
  ._y3gn1h6o{text-align:center}
104
137
  ._y3gnusic{text-align:right}
138
+ ._yv0ehpfy{grid-template-columns:minmax(0,1fr) auto}
105
139
  ._z18o1kxc video{height:100vh}
106
140
  ._zcqx1osq p{line-height:100%}
107
141
  ._4pkp1fjg button:hover{color:#161a1d!important}
142
+ ._6pupl4ek button:hover{background-color:var(--ds-background-input-hovered,#f8f8f8)}
108
143
  ._1sfy1fjg button:active{color:#161a1d!important}