@wistia/ui 0.18.1 → 0.18.2-beta.4003271.cf839cf

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  /*
3
- * @license @wistia/ui v0.18.1
3
+ * @license @wistia/ui v0.18.2-beta.4003271.cf839cf
4
4
  *
5
5
  * Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
6
6
  *
@@ -17724,7 +17724,7 @@ var StyledThumbnailBadge = import_styled_components123.styled.div`
17724
17724
  align-items: center;
17725
17725
  background-color: rgb(0 0 0 / 50%);
17726
17726
  border-radius: var(--wui-border-radius-01);
17727
- bottom: var(--wui-space-01);
17727
+ bottom: var(--wui-thumbnail-badge-offset);
17728
17728
  color: var(--wui-color-text-on-fill);
17729
17729
  display: flex;
17730
17730
  font-size: var(--wui-typography-body-4-size);
@@ -17732,7 +17732,7 @@ var StyledThumbnailBadge = import_styled_components123.styled.div`
17732
17732
  gap: var(--wui-space-01);
17733
17733
  padding: 0 var(--wui-space-01);
17734
17734
  position: absolute;
17735
- right: var(--wui-space-01);
17735
+ right: var(--wui-thumbnail-badge-offset);
17736
17736
  z-index: 1;
17737
17737
 
17738
17738
  svg {
@@ -18027,6 +18027,14 @@ var ThumbnailStoryboardViewer = ({
18027
18027
 
18028
18028
  // src/components/Thumbnail/Thumbnail.tsx
18029
18029
  var import_jsx_runtime327 = require("react/jsx-runtime");
18030
+ var WIDE_ASPECT_RATIO = 16 / 9;
18031
+ var SQUARE_ASPECT_RATIO = 1;
18032
+ var getAspectRatioValue = (aspectRatio) => {
18033
+ if (aspectRatio === "square") {
18034
+ return SQUARE_ASPECT_RATIO;
18035
+ }
18036
+ return WIDE_ASPECT_RATIO;
18037
+ };
18030
18038
  var WideThumbnailImage = import_styled_components126.styled.img`
18031
18039
  height: 100%;
18032
18040
  object-fit: cover;
@@ -18057,7 +18065,15 @@ var ThumbnailImage = ({ thumbnailImageType, thumbnailUrl }) => {
18057
18065
  }
18058
18066
  );
18059
18067
  };
18068
+ var StyledThumbnailContainer = import_styled_components126.styled.div`
18069
+ container-type: size;
18070
+ aspect-ratio: ${({ $aspectRatio }) => getAspectRatioValue($aspectRatio)};
18071
+ width: ${({ $width }) => $width};
18072
+ display: flex;
18073
+ overflow: hidden;
18074
+ `;
18060
18075
  var StyledThumbnail = import_styled_components126.styled.div`
18076
+ --wui-thumbnail-badge-offset: var(--wui-space-01);
18061
18077
  background-image: ${({ $backgroundUrl }) => (0, import_type_guards74.isNotNil)($backgroundUrl) ? `url('${$backgroundUrl}')` : void 0};
18062
18078
  ${({ $backgroundUrl, $gradientBackground }) => (
18063
18079
  // if we don't have $backgroundUrl show a gradient
@@ -18065,34 +18081,29 @@ var StyledThumbnail = import_styled_components126.styled.div`
18065
18081
  )};
18066
18082
  background-position: center center;
18067
18083
  background-size: cover;
18068
- aspect-ratio: 16 / 9;
18084
+
18069
18085
  display: flex;
18086
+ width: 100%;
18070
18087
  overflow: hidden;
18071
18088
  position: relative;
18072
- width: ${({ $width }) => $width};
18073
- ${({ $isScrubbable }) => $isScrubbable && "cursor: pointer;"}
18089
+ display: flex;
18090
+ border-radius: clamp(var(--wui-border-radius-01), 8cqh, var(--wui-border-radius-05));
18074
18091
 
18075
- &,
18076
- img {
18077
- border-radius: calc(8% * (9 / 16)) / 8%;
18092
+ @container (min-width: 200px) {
18093
+ --wui-thumbnail-badge-offset: var(--wui-space-02);
18078
18094
  }
18095
+
18096
+ ${({ $isScrubbable }) => $isScrubbable && "cursor: pointer;"}
18079
18097
  `;
18080
18098
  var StoryboardRenderer = ({
18081
18099
  storyboard,
18082
18100
  width,
18083
18101
  percent,
18084
18102
  cursorPosition,
18085
- isStoryboardReady
18103
+ isStoryboardReady,
18104
+ aspectRatio
18086
18105
  }) => {
18087
- const {
18088
- url,
18089
- width: sbWidth,
18090
- height: sbHeight,
18091
- frameHeight,
18092
- frameWidth,
18093
- frameCount,
18094
- aspectRatio
18095
- } = storyboard;
18106
+ const { url, width: sbWidth, height: sbHeight, frameHeight, frameWidth, frameCount } = storyboard;
18096
18107
  const targetWidth = (0, import_type_guards74.isString)(width) ? parseInt(width, 10) : Number(width);
18097
18108
  const effectiveCursorPosition = isStoryboardReady ? cursorPosition : null;
18098
18109
  return /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(
@@ -18106,7 +18117,7 @@ var StoryboardRenderer = ({
18106
18117
  storyboardHeight: sbHeight,
18107
18118
  storyboardUrl: url,
18108
18119
  storyboardWidth: sbWidth,
18109
- targetAspectRatio: aspectRatio,
18120
+ targetAspectRatio: getAspectRatioValue(aspectRatio),
18110
18121
  targetWidth
18111
18122
  }
18112
18123
  );
@@ -18129,6 +18140,7 @@ var Thumbnail = (0, import_react100.forwardRef)(
18129
18140
  children,
18130
18141
  storyboard,
18131
18142
  height,
18143
+ aspectRatio = "wide",
18132
18144
  ...props
18133
18145
  }, ref) => {
18134
18146
  const [percent, setPercent] = (0, import_react100.useState)(0);
@@ -18180,6 +18192,7 @@ var Thumbnail = (0, import_react100.forwardRef)(
18180
18192
  thumbnailContent = /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(
18181
18193
  StoryboardRenderer,
18182
18194
  {
18195
+ aspectRatio,
18183
18196
  cursorPosition,
18184
18197
  isStoryboardReady,
18185
18198
  percent,
@@ -18198,23 +18211,30 @@ var Thumbnail = (0, import_react100.forwardRef)(
18198
18211
  } else {
18199
18212
  thumbnailContent = null;
18200
18213
  }
18201
- return /* @__PURE__ */ (0, import_jsx_runtime327.jsxs)(
18202
- StyledThumbnail,
18214
+ return /* @__PURE__ */ (0, import_jsx_runtime327.jsx)(
18215
+ StyledThumbnailContainer,
18203
18216
  {
18204
18217
  ref,
18205
- ...props,
18206
- $backgroundUrl: backgroundUrl,
18207
- $gradientBackground: gradientBackground,
18208
- $isScrubbable: isScrubbable,
18218
+ $aspectRatio: aspectRatio,
18209
18219
  $width: width,
18210
- onBlur: handleMouseOut,
18211
- onMouseMove: handleMouseMove,
18212
- onMouseOut: handleMouseOut,
18213
- role: "presentation",
18214
- children: [
18215
- (0, import_type_guards74.isNotNil)(children) ? children : null,
18216
- thumbnailContent
18217
- ]
18220
+ "data-thumbnail-container": true,
18221
+ ...props,
18222
+ children: /* @__PURE__ */ (0, import_jsx_runtime327.jsxs)(
18223
+ StyledThumbnail,
18224
+ {
18225
+ $backgroundUrl: backgroundUrl,
18226
+ $gradientBackground: gradientBackground,
18227
+ $isScrubbable: isScrubbable,
18228
+ onBlur: handleMouseOut,
18229
+ onMouseMove: handleMouseMove,
18230
+ onMouseOut: handleMouseOut,
18231
+ role: "presentation",
18232
+ children: [
18233
+ (0, import_type_guards74.isNotNil)(children) ? children : null,
18234
+ thumbnailContent
18235
+ ]
18236
+ }
18237
+ )
18218
18238
  }
18219
18239
  );
18220
18240
  }
@@ -18229,72 +18249,55 @@ var import_jsx_runtime328 = (
18229
18249
  // ThumbnailCollage will fallback to a Thumbnail with a gradient background if no children are provided
18230
18250
  require("react/jsx-runtime")
18231
18251
  );
18252
+ var ThumbnailCollageContainer = import_styled_components127.styled.div`
18253
+ container-type: size;
18254
+ width: 100%;
18255
+ aspect-ratio: 16 / 9;
18256
+ display: flex;
18257
+ `;
18232
18258
  var StyledThumbnailCollage = import_styled_components127.styled.div`
18233
18259
  display: grid;
18234
18260
  gap: var(--wui-space-01);
18235
18261
  width: 100%;
18236
18262
  grid-template-columns: 3fr 2fr;
18237
18263
  grid-template-rows: 1fr 1fr;
18238
- aspect-ratio: 16 / 9;
18239
18264
 
18240
18265
  &:has(:nth-child(1)) {
18241
- --wui-collage-thumbnail-first-border-radius: calc(8% * (9 / 16)) / 8%;
18242
-
18243
18266
  grid-template-areas:
18244
18267
  'a a'
18245
18268
  'a a';
18246
18269
  }
18247
18270
 
18248
18271
  &:has(:nth-child(2)) {
18249
- --wui-collage-thumbnail-first-border-radius: 7.5% / 8%;
18250
- --wui-collage-thumbnail-second-border-radius: 11.5% / 8%;
18251
-
18252
18272
  grid-template-areas:
18253
18273
  'a b'
18254
18274
  'a b';
18255
18275
  }
18256
18276
 
18257
18277
  &:has(:nth-child(3)) {
18258
- --wui-collage-thumbnail-first-border-radius: 7.5% / 8%;
18259
- --wui-collage-thumbnail-second-border-radius: 11.5% / 16%;
18260
- --wui-collage-thumbnail-third-border-radius: 11.5% / 16%;
18261
-
18262
18278
  grid-template-areas:
18263
18279
  'a b'
18264
18280
  'a c';
18265
18281
  }
18266
18282
 
18267
18283
  > :nth-child(1) {
18268
- --wui-collage-thumbnail-border-radius: var(--wui-collage-thumbnail-first-border-radius);
18269
-
18270
18284
  grid-area: a;
18271
18285
  }
18272
18286
 
18273
18287
  > :nth-child(2) {
18274
- --wui-collage-thumbnail-border-radius: var(--wui-collage-thumbnail-second-border-radius);
18275
-
18276
18288
  grid-area: b;
18277
18289
  }
18278
18290
 
18279
18291
  > :nth-child(3) {
18280
- --wui-collage-thumbnail-border-radius: var(--wui-collage-thumbnail-third-border-radius);
18281
-
18282
18292
  grid-area: c;
18283
18293
  }
18284
18294
 
18285
- > * {
18295
+ [data-thumbnail-container] {
18296
+ //allows for the border radius to be based off the collage's dimensions
18297
+ container-type: unset;
18286
18298
  aspect-ratio: unset;
18287
18299
  height: 100%;
18288
18300
  width: 100%;
18289
- border-radius: var(--wui-collage-thumbnail-border-radius);
18290
-
18291
- img {
18292
- border-radius: var(--wui-collage-thumbnail-border-radius);
18293
- }
18294
-
18295
- > :not(img) {
18296
- display: none;
18297
- }
18298
18301
  }
18299
18302
  `;
18300
18303
  var ThumbnailCollage = ({
@@ -18319,7 +18322,7 @@ var ThumbnailCollage = ({
18319
18322
  "fallback"
18320
18323
  )
18321
18324
  ];
18322
- return /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
18325
+ return /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(ThumbnailCollageContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime328.jsx)(
18323
18326
  StyledThumbnailCollage,
18324
18327
  {
18325
18328
  $gradientBackground: gradientBackground,
@@ -18327,7 +18330,7 @@ var ThumbnailCollage = ({
18327
18330
  ...props,
18328
18331
  children: thumbnails
18329
18332
  }
18330
- );
18333
+ ) });
18331
18334
  };
18332
18335
 
18333
18336
  // src/components/WistiaLogo/WistiaLogo.tsx