@wistia/ui 0.6.37 → 0.6.38-beta.10916ceb.a61dcc6

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.6.37
3
+ * @license @wistia/ui v0.6.38-beta.10916ceb.a61dcc6
4
4
  *
5
5
  * Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
6
6
  *
@@ -110,6 +110,8 @@ __export(index_exports, {
110
110
  Tabs: () => Tabs,
111
111
  Tag: () => Tag,
112
112
  Text: () => Text,
113
+ Thumbnail: () => Thumbnail,
114
+ ThumbnailOverlay: () => ThumbnailOverlay,
113
115
  Tooltip: () => Tooltip,
114
116
  UIProvider: () => UIProvider,
115
117
  WistiaLogo: () => WistiaLogo,
@@ -131,6 +133,7 @@ __export(index_exports, {
131
133
  useLocalStorage: () => useLocalStorage,
132
134
  useLockBodyScroll: () => useLockBodyScroll,
133
135
  useMq: () => useMq,
136
+ useOnClickOutside: () => useOnClickOutside,
134
137
  useToast: () => useToast,
135
138
  useWindowSize: () => useWindowSize
136
139
  });
@@ -2208,11 +2211,40 @@ var useLockBodyScroll = (locked) => {
2208
2211
  }, [locked]);
2209
2212
  };
2210
2213
 
2214
+ // src/hooks/useOnClickOutside/useOnClickOutside.ts
2215
+ var import_react9 = require("react");
2216
+ var useOnClickOutside = (ref, handler, eventTypes = ["mousedown", "touchend"]) => {
2217
+ (0, import_react9.useEffect)(() => {
2218
+ const listener = (event) => {
2219
+ if (!ref.current || ref.current.contains(event.target)) {
2220
+ return;
2221
+ }
2222
+ handler(event);
2223
+ };
2224
+ if (Array.isArray(eventTypes)) {
2225
+ eventTypes.forEach((eventType) => {
2226
+ document.addEventListener(eventType, listener);
2227
+ });
2228
+ } else {
2229
+ document.addEventListener(eventTypes, listener);
2230
+ }
2231
+ return () => {
2232
+ if (Array.isArray(eventTypes)) {
2233
+ eventTypes.forEach((eventType) => {
2234
+ document.removeEventListener(eventType, listener);
2235
+ });
2236
+ } else {
2237
+ document.removeEventListener(eventTypes, listener);
2238
+ }
2239
+ };
2240
+ }, [ref, handler, eventTypes]);
2241
+ };
2242
+
2211
2243
  // src/hooks/useMq/useMq.ts
2212
2244
  var import_type_guards8 = require("@wistia/type-guards");
2213
2245
 
2214
2246
  // src/hooks/useWindowSize/useWindowSize.ts
2215
- var import_react9 = require("react");
2247
+ var import_react10 = require("react");
2216
2248
  var import_throttle_debounce = require("throttle-debounce");
2217
2249
 
2218
2250
  // src/private/helpers/isClient/isClient.ts
@@ -2220,11 +2252,11 @@ var isClient = () => typeof window !== "undefined" && typeof document !== "undef
2220
2252
 
2221
2253
  // src/hooks/useWindowSize/useWindowSize.ts
2222
2254
  var useWindowSize = (interval = 0) => {
2223
- const [dimensions, setDimensions] = (0, import_react9.useState)({
2255
+ const [dimensions, setDimensions] = (0, import_react10.useState)({
2224
2256
  width: isClient() ? window.innerWidth : 0,
2225
2257
  height: isClient() ? window.innerHeight : 0
2226
2258
  });
2227
- (0, import_react9.useLayoutEffect)(() => {
2259
+ (0, import_react10.useLayoutEffect)(() => {
2228
2260
  const handleResize = (0, import_throttle_debounce.debounce)(
2229
2261
  interval,
2230
2262
  () => setDimensions({
@@ -2276,11 +2308,11 @@ var useActiveMq = () => {
2276
2308
  };
2277
2309
 
2278
2310
  // src/hooks/useToast/useToast.tsx
2279
- var import_react11 = require("react");
2311
+ var import_react12 = require("react");
2280
2312
  var import_sonner2 = require("sonner");
2281
2313
 
2282
2314
  // src/private/components/Toast/Toast.tsx
2283
- var import_react10 = require("react");
2315
+ var import_react11 = require("react");
2284
2316
  var import_styled_components15 = __toESM(require("styled-components"));
2285
2317
  var import_type_guards10 = require("@wistia/type-guards");
2286
2318
 
@@ -2510,8 +2542,8 @@ var StyledToast = import_styled_components15.default.div`
2510
2542
  }
2511
2543
  `;
2512
2544
  var Action = ({ actionButton }) => {
2513
- if ((0, import_type_guards10.isNotNil)(actionButton) && (0, import_react10.isValidElement)(actionButton)) {
2514
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ActionWrapper, { children: (0, import_react10.cloneElement)(actionButton, {
2545
+ if ((0, import_type_guards10.isNotNil)(actionButton) && (0, import_react11.isValidElement)(actionButton)) {
2546
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ActionWrapper, { children: (0, import_react11.cloneElement)(actionButton, {
2515
2547
  variant: "soft",
2516
2548
  // force Button variant
2517
2549
  size: "sm"
@@ -2547,7 +2579,7 @@ Toast.displayName = "Toast";
2547
2579
  // src/hooks/useToast/useToast.tsx
2548
2580
  var import_jsx_runtime6 = require("react/jsx-runtime");
2549
2581
  var useToast = () => {
2550
- return (0, import_react11.useCallback)(
2582
+ return (0, import_react12.useCallback)(
2551
2583
  ({ message, action, colorScheme, icon, position = "bottom-left", duration = 3e3 }) => {
2552
2584
  import_sonner2.toast.custom(
2553
2585
  () => {
@@ -2569,11 +2601,11 @@ var useToast = () => {
2569
2601
  };
2570
2602
 
2571
2603
  // src/components/ActionButton/ActionButton.tsx
2572
- var import_react15 = require("react");
2604
+ var import_react16 = require("react");
2573
2605
  var import_styled_components21 = __toESM(require("styled-components"));
2574
2606
 
2575
2607
  // src/components/Button/Button.tsx
2576
- var import_react14 = require("react");
2608
+ var import_react15 = require("react");
2577
2609
  var import_styled_components20 = __toESM(require("styled-components"));
2578
2610
  var import_type_guards14 = require("@wistia/type-guards");
2579
2611
 
@@ -6635,13 +6667,13 @@ var iconMap = {
6635
6667
 
6636
6668
  // src/private/hooks/useResponsiveProp/useResponsiveProp.ts
6637
6669
  var import_type_guards11 = require("@wistia/type-guards");
6638
- var import_react12 = require("react");
6670
+ var import_react13 = require("react");
6639
6671
  var isResponsiveObject = (values) => {
6640
6672
  return typeof values === "object" && values !== null && !Array.isArray(values) && "base" in values;
6641
6673
  };
6642
6674
  var useResponsiveProp = (values) => {
6643
6675
  const activeMediaQueries = useActiveMq();
6644
- return (0, import_react12.useMemo)(() => {
6676
+ return (0, import_react13.useMemo)(() => {
6645
6677
  if ((0, import_type_guards11.isRecord)(values) && isResponsiveObject(values)) {
6646
6678
  const mq2 = activeMediaQueries.find((key) => key in values);
6647
6679
  return (0, import_type_guards11.isNotUndefined)(mq2) && (0, import_type_guards11.isNotUndefined)(values[mq2]) ? values[mq2] : values.base;
@@ -6708,7 +6740,7 @@ var Icon = ({
6708
6740
  Icon.displayName = "Icon";
6709
6741
 
6710
6742
  // src/components/Link/Link.tsx
6711
- var import_react13 = require("react");
6743
+ var import_react14 = require("react");
6712
6744
  var import_type_guards13 = require("@wistia/type-guards");
6713
6745
  var import_styled_components19 = __toESM(require("styled-components"));
6714
6746
  var import_react_router_dom = require("react-router-dom");
@@ -6748,7 +6780,7 @@ var StyledLink = import_styled_components19.default.a`
6748
6780
  }
6749
6781
  }
6750
6782
  `;
6751
- var Link = (0, import_react13.forwardRef)(
6783
+ var Link = (0, import_react14.forwardRef)(
6752
6784
  ({
6753
6785
  beforeAction,
6754
6786
  children,
@@ -6894,7 +6926,7 @@ var ButtonContent = ({
6894
6926
  )
6895
6927
  ] });
6896
6928
  };
6897
- var Button = (0, import_react14.forwardRef)(
6929
+ var Button = (0, import_react15.forwardRef)(
6898
6930
  ({
6899
6931
  children,
6900
6932
  forceState,
@@ -7073,7 +7105,7 @@ var StyledLabel = import_styled_components21.default.span`
7073
7105
  grid-row: 2;
7074
7106
  text-align: left;
7075
7107
  `;
7076
- var ActionButton = (0, import_react15.forwardRef)(
7108
+ var ActionButton = (0, import_react16.forwardRef)(
7077
7109
  ({
7078
7110
  icon,
7079
7111
  colorScheme = "default",
@@ -7117,7 +7149,7 @@ var ActionButton = (0, import_react15.forwardRef)(
7117
7149
  ActionButton.displayName = "ActionButton";
7118
7150
 
7119
7151
  // src/components/Avatar/Avatar.tsx
7120
- var import_react16 = require("react");
7152
+ var import_react17 = require("react");
7121
7153
  var import_type_guards16 = require("@wistia/type-guards");
7122
7154
  var import_styled_components23 = __toESM(require("styled-components"));
7123
7155
 
@@ -7249,8 +7281,8 @@ var Avatar = ({
7249
7281
  onImageLoad,
7250
7282
  ...otherProps
7251
7283
  }) => {
7252
- const [imageLoadState, setImageLoadState] = (0, import_react16.useState)("loading");
7253
- (0, import_react16.useEffect)(() => {
7284
+ const [imageLoadState, setImageLoadState] = (0, import_react17.useState)("loading");
7285
+ (0, import_react17.useEffect)(() => {
7254
7286
  setImageLoadState("loading");
7255
7287
  }, [imageUrl]);
7256
7288
  const handleImageLoad = () => {
@@ -7262,7 +7294,7 @@ var Avatar = ({
7262
7294
  onImageLoad?.({ state: "error", type: "initials" });
7263
7295
  };
7264
7296
  const avatarSize = heightAndWidth ?? avatarSizeMap[size];
7265
- const avatarColor = (0, import_react16.useMemo)(() => chooseColorScheme(name), [name]);
7297
+ const avatarColor = (0, import_react17.useMemo)(() => chooseColorScheme(name), [name]);
7266
7298
  const showInitials = (0, import_type_guards16.isNil)(imageUrl) || imageLoadState === "error";
7267
7299
  return /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(
7268
7300
  AvatarWrapper,
@@ -7292,7 +7324,7 @@ var Avatar = ({
7292
7324
  Avatar.displayName = "Avatar";
7293
7325
 
7294
7326
  // src/components/Badge/Badge.tsx
7295
- var import_react17 = require("react");
7327
+ var import_react18 = require("react");
7296
7328
  var import_styled_components24 = __toESM(require("styled-components"));
7297
7329
  var import_type_guards17 = require("@wistia/type-guards");
7298
7330
  var import_jsx_runtime197 = require("react/jsx-runtime");
@@ -7316,7 +7348,7 @@ var StyledBadge = import_styled_components24.default.div`
7316
7348
  width: 12px;
7317
7349
  }
7318
7350
  `;
7319
- var Badge = (0, import_react17.forwardRef)(
7351
+ var Badge = (0, import_react18.forwardRef)(
7320
7352
  ({ colorScheme = "inherit", label, icon, ...otherProps }, ref) => {
7321
7353
  const hasIcon = (0, import_type_guards17.isNotNil)(icon);
7322
7354
  return /* @__PURE__ */ (0, import_jsx_runtime197.jsxs)(
@@ -7337,7 +7369,7 @@ var Badge = (0, import_react17.forwardRef)(
7337
7369
  Badge.displayName = "Badge";
7338
7370
 
7339
7371
  // src/components/Box/Box.tsx
7340
- var import_react18 = require("react");
7372
+ var import_react19 = require("react");
7341
7373
  var import_styled_components25 = __toESM(require("styled-components"));
7342
7374
  var import_type_guards18 = require("@wistia/type-guards");
7343
7375
 
@@ -7446,13 +7478,13 @@ var StyledBoxComponent = import_styled_components25.default.div`
7446
7478
  var wrapChildren = (children) => {
7447
7479
  if ((0, import_type_guards18.isNotNil)(children)) {
7448
7480
  if (typeof children === "object" && isDev) {
7449
- return import_react18.Children.map(children, (child) => {
7481
+ return import_react19.Children.map(children, (child) => {
7450
7482
  if ((0, import_type_guards18.isNil)(child)) return null;
7451
7483
  const elementParams = {};
7452
7484
  if (child.type?.displayName === "Box" || child.type?.displayName === "Box_UI") {
7453
7485
  elementParams.hasBoxParent = true;
7454
7486
  }
7455
- return (0, import_react18.cloneElement)(child, elementParams);
7487
+ return (0, import_react19.cloneElement)(child, elementParams);
7456
7488
  });
7457
7489
  }
7458
7490
  return children;
@@ -7460,7 +7492,7 @@ var wrapChildren = (children) => {
7460
7492
  return null;
7461
7493
  };
7462
7494
  var DEFAULT_ELEMENT = "div";
7463
- var BoxComponent = (0, import_react18.forwardRef)(
7495
+ var BoxComponent = (0, import_react19.forwardRef)(
7464
7496
  ({
7465
7497
  alignContent = "stretch",
7466
7498
  alignItems = "flex-start",
@@ -7537,7 +7569,7 @@ BoxComponent.displayName = "Box";
7537
7569
  var Box = makePolymorphic(BoxComponent);
7538
7570
 
7539
7571
  // src/components/Breadcrumbs/Breadcrumbs.tsx
7540
- var import_react19 = require("react");
7572
+ var import_react20 = require("react");
7541
7573
  var import_styled_components26 = __toESM(require("styled-components"));
7542
7574
  var import_jsx_runtime199 = require("react/jsx-runtime");
7543
7575
  var StyledBreadcrumbs = import_styled_components26.default.nav`
@@ -7553,7 +7585,7 @@ var StyledBreadcrumbs = import_styled_components26.default.nav`
7553
7585
  var BUFFER_WIDTH = 10;
7554
7586
  var Breadcrumbs = ({ children, ...props }) => {
7555
7587
  const { isXsAndDown } = useMq();
7556
- let crumbs = import_react19.Children.toArray(children);
7588
+ let crumbs = import_react20.Children.toArray(children);
7557
7589
  if (isXsAndDown) {
7558
7590
  crumbs = crumbs.slice(-1);
7559
7591
  }
@@ -7740,7 +7772,7 @@ var Card = ({
7740
7772
  Card.displayName = "Card";
7741
7773
 
7742
7774
  // src/components/Center/Center.tsx
7743
- var import_react20 = require("react");
7775
+ var import_react21 = require("react");
7744
7776
  var import_styled_components30 = __toESM(require("styled-components"));
7745
7777
  var import_jsx_runtime203 = require("react/jsx-runtime");
7746
7778
  var StyledCenter = import_styled_components30.default.div`
@@ -7755,7 +7787,7 @@ var StyledCenter = import_styled_components30.default.div`
7755
7787
  align-items: center;
7756
7788
  `}
7757
7789
  `;
7758
- var Center = (0, import_react20.forwardRef)(
7790
+ var Center = (0, import_react21.forwardRef)(
7759
7791
  ({ maxWidth = "100%", gutterWidth = "space-00", intrinsic = false, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
7760
7792
  StyledCenter,
7761
7793
  {
@@ -7771,7 +7803,7 @@ var Center = (0, import_react20.forwardRef)(
7771
7803
  Center.displayName = "Center";
7772
7804
 
7773
7805
  // src/components/Checkbox/Checkbox.tsx
7774
- var import_react21 = require("react");
7806
+ var import_react22 = require("react");
7775
7807
  var import_styled_components34 = __toESM(require("styled-components"));
7776
7808
  var import_type_guards23 = require("@wistia/type-guards");
7777
7809
 
@@ -7991,7 +8023,7 @@ var StyledHiddenCheckboxInput = import_styled_components34.default.input`
7991
8023
  display: block;
7992
8024
  }
7993
8025
  `;
7994
- var Checkbox = (0, import_react21.forwardRef)(
8026
+ var Checkbox = (0, import_react22.forwardRef)(
7995
8027
  ({
7996
8028
  checked,
7997
8029
  disabled = false,
@@ -8006,7 +8038,7 @@ var Checkbox = (0, import_react21.forwardRef)(
8006
8038
  hideLabel = false,
8007
8039
  ...props
8008
8040
  }, ref) => {
8009
- const generatedId = (0, import_react21.useId)();
8041
+ const generatedId = (0, import_react22.useId)();
8010
8042
  const computedId = (0, import_type_guards23.isNonEmptyString)(id) ? id : `wistia-ui-checkbox-${generatedId}`;
8011
8043
  return /* @__PURE__ */ (0, import_jsx_runtime207.jsxs)(StyledCheckboxWrapper, { disabled, children: [
8012
8044
  /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(
@@ -8049,9 +8081,9 @@ var Checkbox = (0, import_react21.forwardRef)(
8049
8081
  Checkbox.displayName = "Checkbox";
8050
8082
 
8051
8083
  // src/components/ClickRegion/ClickRegion.tsx
8052
- var import_react22 = require("react");
8084
+ var import_react23 = require("react");
8053
8085
  var ClickRegion = ({ children, targetRef }) => {
8054
- (0, import_react22.useEffect)(() => {
8086
+ (0, import_react23.useEffect)(() => {
8055
8087
  if (targetRef.current && targetRef.current.tagName === "A") {
8056
8088
  targetRef.current.setAttribute("data-click-region-target-link", "");
8057
8089
  } else if (targetRef.current && targetRef.current.tagName === "BUTTON") {
@@ -8059,7 +8091,7 @@ var ClickRegion = ({ children, targetRef }) => {
8059
8091
  } else {
8060
8092
  }
8061
8093
  }, [targetRef]);
8062
- const handleClick = (0, import_react22.useCallback)(
8094
+ const handleClick = (0, import_react23.useCallback)(
8063
8095
  (event) => {
8064
8096
  const node = targetRef.current;
8065
8097
  if (event.target instanceof HTMLAnchorElement && !event.target.hasAttribute("data-click-region-target-link") || event.target instanceof HTMLButtonElement && !event.target.hasAttribute("data-click-region-target-button")) {
@@ -8076,7 +8108,7 @@ var ClickRegion = ({ children, targetRef }) => {
8076
8108
  },
8077
8109
  [targetRef]
8078
8110
  );
8079
- return (0, import_react22.cloneElement)(import_react22.Children.only(children), {
8111
+ return (0, import_react23.cloneElement)(import_react23.Children.only(children), {
8080
8112
  "data-click-region": true,
8081
8113
  onClick: handleClick
8082
8114
  });
@@ -8109,11 +8141,11 @@ var Collapsible = ({
8109
8141
  Collapsible.displayName = "Collapsible";
8110
8142
 
8111
8143
  // src/components/Collapsible/CollapsibleTrigger.tsx
8112
- var import_react23 = require("react");
8144
+ var import_react24 = require("react");
8113
8145
  var import_react_collapsible2 = require("@radix-ui/react-collapsible");
8114
8146
  var import_jsx_runtime209 = require("react/jsx-runtime");
8115
8147
  var CollapsibleTrigger = ({ children }) => {
8116
- import_react23.Children.only(children);
8148
+ import_react24.Children.only(children);
8117
8149
  return /* @__PURE__ */ (0, import_jsx_runtime209.jsx)(import_react_collapsible2.Trigger, { asChild: true, children });
8118
8150
  };
8119
8151
 
@@ -8140,7 +8172,7 @@ var import_styled_components38 = __toESM(require("styled-components"));
8140
8172
  var import_type_guards26 = require("@wistia/type-guards");
8141
8173
 
8142
8174
  // src/components/Heading/Heading.tsx
8143
- var import_react24 = require("react");
8175
+ var import_react25 = require("react");
8144
8176
  var import_styled_components37 = __toESM(require("styled-components"));
8145
8177
  var import_jsx_runtime211 = require("react/jsx-runtime");
8146
8178
  var heroStyle = import_styled_components37.css`
@@ -8227,7 +8259,7 @@ var variantElementMap = {
8227
8259
  heading5: "h5",
8228
8260
  heading6: "h6"
8229
8261
  };
8230
- var HeadingComponent = (0, import_react24.forwardRef)(
8262
+ var HeadingComponent = (0, import_react25.forwardRef)(
8231
8263
  ({
8232
8264
  align = "left",
8233
8265
  colorScheme = "inherit",
@@ -8391,7 +8423,7 @@ DataCards.displayName = "DataCards";
8391
8423
  var import_styled_components41 = __toESM(require("styled-components"));
8392
8424
 
8393
8425
  // src/components/Text/Text.tsx
8394
- var import_react25 = require("react");
8426
+ var import_react26 = require("react");
8395
8427
  var import_styled_components40 = __toESM(require("styled-components"));
8396
8428
  var import_jsx_runtime214 = require("react/jsx-runtime");
8397
8429
  var bodyBoldStyles = import_styled_components40.css`
@@ -8557,7 +8589,7 @@ var StyledText = import_styled_components40.default.div`
8557
8589
  }
8558
8590
  `}
8559
8591
  `;
8560
- var TextComponent = (0, import_react25.forwardRef)(
8592
+ var TextComponent = (0, import_react26.forwardRef)(
8561
8593
  ({
8562
8594
  align = "left",
8563
8595
  colorScheme = "inherit",
@@ -8673,7 +8705,7 @@ Divider.displayName = "Divider";
8673
8705
 
8674
8706
  // src/components/EditableHeading/EditableHeading.tsx
8675
8707
  var import_styled_components45 = __toESM(require("styled-components"));
8676
- var import_react27 = require("react");
8708
+ var import_react28 = require("react");
8677
8709
 
8678
8710
  // src/components/Tooltip/Tooltip.tsx
8679
8711
  var import_react_tooltip2 = require("@radix-ui/react-tooltip");
@@ -8782,7 +8814,7 @@ var Tooltip = ({
8782
8814
  Tooltip.displayName = "Tooltip";
8783
8815
 
8784
8816
  // src/components/Input/Input.tsx
8785
- var import_react26 = require("react");
8817
+ var import_react27 = require("react");
8786
8818
  var import_styled_components44 = __toESM(require("styled-components"));
8787
8819
  var import_type_guards27 = require("@wistia/type-guards");
8788
8820
  var import_jsx_runtime218 = require("react/jsx-runtime");
@@ -8871,7 +8903,7 @@ var StyledInputContainer = import_styled_components44.default.div`
8871
8903
  padding-right: 32px;
8872
8904
  }
8873
8905
  `;
8874
- var Input = (0, import_react26.forwardRef)(
8906
+ var Input = (0, import_react27.forwardRef)(
8875
8907
  ({
8876
8908
  fullWidth = true,
8877
8909
  monospace = false,
@@ -8881,7 +8913,7 @@ var Input = (0, import_react26.forwardRef)(
8881
8913
  rightIcon,
8882
8914
  ...props
8883
8915
  }, externalRef) => {
8884
- const internalRef = (0, import_react26.useRef)();
8916
+ const internalRef = (0, import_react27.useRef)();
8885
8917
  const ref = (
8886
8918
  // eslint-disable-next-line react-compiler/react-compiler
8887
8919
  (0, import_type_guards27.isNotNil)(externalRef) && (0, import_type_guards27.isRecord)(externalRef) && "current" in externalRef ? externalRef : internalRef
@@ -8891,14 +8923,14 @@ var Input = (0, import_react26.forwardRef)(
8891
8923
  leftIconToDisplay = /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(Icon, { type: "search" });
8892
8924
  }
8893
8925
  if ((0, import_type_guards27.isNotNil)(leftIconToDisplay)) {
8894
- leftIconToDisplay = (0, import_react26.cloneElement)(leftIconToDisplay, {
8926
+ leftIconToDisplay = (0, import_react27.cloneElement)(leftIconToDisplay, {
8895
8927
  size: "md",
8896
8928
  className: "wui-input-left-icon"
8897
8929
  });
8898
8930
  }
8899
8931
  let rightIconToDisplay = rightIcon;
8900
8932
  if ((0, import_type_guards27.isNotNil)(rightIconToDisplay)) {
8901
- rightIconToDisplay = (0, import_react26.cloneElement)(rightIconToDisplay, {
8933
+ rightIconToDisplay = (0, import_react27.cloneElement)(rightIconToDisplay, {
8902
8934
  size: "md",
8903
8935
  className: "wui-input-right-icon"
8904
8936
  });
@@ -8993,11 +9025,11 @@ var EditableHeading = ({
8993
9025
  forceEditing = false,
8994
9026
  editingDisabled = false
8995
9027
  }) => {
8996
- const [isEditing, setIsEditing] = (0, import_react27.useState)(false);
8997
- const [value, setValue] = (0, import_react27.useState)(children);
8998
- const [previousValue, setPreviousValue] = (0, import_react27.useState)(children);
8999
- const [headingHeight, setHeadingHeight] = (0, import_react27.useState)("60");
9000
- const headingRef = (0, import_react27.useRef)(null);
9028
+ const [isEditing, setIsEditing] = (0, import_react28.useState)(false);
9029
+ const [value, setValue] = (0, import_react28.useState)(children);
9030
+ const [previousValue, setPreviousValue] = (0, import_react28.useState)(children);
9031
+ const [headingHeight, setHeadingHeight] = (0, import_react28.useState)("60");
9032
+ const headingRef = (0, import_react28.useRef)(null);
9001
9033
  const handleSetEditing = (editing) => {
9002
9034
  if (editingDisabled) return;
9003
9035
  if (editing && headingRef.current) {
@@ -9083,12 +9115,12 @@ var EditableHeading = ({
9083
9115
  };
9084
9116
 
9085
9117
  // src/components/Form/Form.tsx
9086
- var import_react29 = require("react");
9118
+ var import_react30 = require("react");
9087
9119
  var import_styled_components47 = __toESM(require("styled-components"));
9088
9120
  var import_type_guards28 = require("@wistia/type-guards");
9089
9121
 
9090
9122
  // src/components/Stack/Stack.tsx
9091
- var import_react28 = require("react");
9123
+ var import_react29 = require("react");
9092
9124
  var import_styled_components46 = __toESM(require("styled-components"));
9093
9125
  var import_jsx_runtime220 = require("react/jsx-runtime");
9094
9126
  var DEFAULT_ELEMENT4 = "div";
@@ -9098,7 +9130,7 @@ var StyledStack = import_styled_components46.default.div`
9098
9130
  gap: ${({ $gap }) => `var(--wui-${$gap})`};
9099
9131
  align-items: ${({ $alignItems }) => $alignItems};
9100
9132
  `;
9101
- var StackComponent = (0, import_react28.forwardRef)(
9133
+ var StackComponent = (0, import_react29.forwardRef)(
9102
9134
  ({ renderAs, direction = "vertical", gap = "space-02", alignItems = "stretch", ...props }, ref) => {
9103
9135
  const responsiveGap = useResponsiveProp(gap);
9104
9136
  const responsiveDirection = useResponsiveProp(direction);
@@ -9127,7 +9159,7 @@ var StyledForm = import_styled_components47.default.form`
9127
9159
  max-width: ${({ $fullWidth }) => $fullWidth ? "auto" : "var(--form-default-width)"};
9128
9160
  align-items: ${({ $fullWidth }) => $fullWidth ? "stretch" : "flex-start"};
9129
9161
  `;
9130
- var FormContext = (0, import_react29.createContext)({
9162
+ var FormContext = (0, import_react30.createContext)({
9131
9163
  values: {},
9132
9164
  errors: {},
9133
9165
  hasSubmitted: false,
@@ -9143,11 +9175,11 @@ var FormComponent = ({
9143
9175
  fullWidth = false,
9144
9176
  ...props
9145
9177
  }, forwardedRef) => {
9146
- const [errors, setErrors] = (0, import_react29.useState)({});
9147
- const [hasSubmitted, setHasSubmitted] = (0, import_react29.useState)(false);
9148
- const innerRef = (0, import_react29.useRef)();
9178
+ const [errors, setErrors] = (0, import_react30.useState)({});
9179
+ const [hasSubmitted, setHasSubmitted] = (0, import_react30.useState)(false);
9180
+ const innerRef = (0, import_react30.useRef)();
9149
9181
  const ref = forwardedRef ?? innerRef;
9150
- const autoId = (0, import_react29.useId)();
9182
+ const autoId = (0, import_react30.useId)();
9151
9183
  const id = props.id ?? autoId;
9152
9184
  const handleValidate = (nextFormData) => {
9153
9185
  const nextData = Object.fromEntries(nextFormData.entries());
@@ -9189,7 +9221,7 @@ var FormComponent = ({
9189
9221
  void action(null);
9190
9222
  }
9191
9223
  };
9192
- const context = (0, import_react29.useMemo)(() => {
9224
+ const context = (0, import_react30.useMemo)(() => {
9193
9225
  return {
9194
9226
  values,
9195
9227
  errors,
@@ -9218,15 +9250,15 @@ var FormComponent = ({
9218
9250
  );
9219
9251
  };
9220
9252
  FormComponent.displayName = "Form";
9221
- var Form = (0, import_react29.forwardRef)(FormComponent);
9253
+ var Form = (0, import_react30.forwardRef)(FormComponent);
9222
9254
 
9223
9255
  // src/components/Form/useFormState.tsx
9224
- var import_react30 = require("react");
9256
+ var import_react31 = require("react");
9225
9257
  var useFormState = (action, initialData = {}) => {
9226
- const [data, setData] = (0, import_react30.useState)(initialData);
9227
- const [isPending, setIsPending] = (0, import_react30.useState)(false);
9228
- const [error, setError] = (0, import_react30.useState)(null);
9229
- const formAction = (0, import_react30.useCallback)(
9258
+ const [data, setData] = (0, import_react31.useState)(initialData);
9259
+ const [isPending, setIsPending] = (0, import_react31.useState)(false);
9260
+ const [error, setError] = (0, import_react31.useState)(null);
9261
+ const formAction = (0, import_react31.useCallback)(
9230
9262
  async (nextFormData) => {
9231
9263
  if (nextFormData === null) {
9232
9264
  setData(initialData);
@@ -9257,15 +9289,15 @@ var useFormState = (action, initialData = {}) => {
9257
9289
  };
9258
9290
 
9259
9291
  // src/components/Form/FormErrorSummary.tsx
9260
- var import_react31 = require("react");
9292
+ var import_react32 = require("react");
9261
9293
  var import_type_guards29 = require("@wistia/type-guards");
9262
9294
  var import_jsx_runtime222 = require("react/jsx-runtime");
9263
9295
  var ErrorItem = ({ name, error, formId }) => {
9264
9296
  return /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(Link, { href: `#${formId}-${name}`, children: error }) }, name);
9265
9297
  };
9266
9298
  var FormErrorSummary = ({ description }) => {
9267
- const ref = (0, import_react31.useRef)(null);
9268
- const { formId, errors, hasSubmitted } = (0, import_react31.useContext)(FormContext);
9299
+ const ref = (0, import_react32.useRef)(null);
9300
+ const { formId, errors, hasSubmitted } = (0, import_react32.useContext)(FormContext);
9269
9301
  const isValid = Object.keys(errors).length === 0;
9270
9302
  if (isValid || !hasSubmitted) {
9271
9303
  return null;
@@ -9295,7 +9327,7 @@ var FormErrorSummary = ({ description }) => {
9295
9327
  };
9296
9328
 
9297
9329
  // src/components/FormField/FormField.tsx
9298
- var import_react34 = require("react");
9330
+ var import_react35 = require("react");
9299
9331
  var import_styled_components50 = __toESM(require("styled-components"));
9300
9332
  var import_type_guards30 = require("@wistia/type-guards");
9301
9333
 
@@ -9360,11 +9392,11 @@ var Label = ({
9360
9392
  Label.displayName = "Label";
9361
9393
 
9362
9394
  // src/components/FormGroup/CheckboxGroup.tsx
9363
- var import_react33 = require("react");
9395
+ var import_react34 = require("react");
9364
9396
 
9365
9397
  // src/components/FormGroup/FormGroup.tsx
9366
9398
  var import_styled_components49 = __toESM(require("styled-components"));
9367
- var import_react32 = require("react");
9399
+ var import_react33 = require("react");
9368
9400
  var import_jsx_runtime224 = require("react/jsx-runtime");
9369
9401
  var StyledFieldset = import_styled_components49.default.fieldset`
9370
9402
  border: 0;
@@ -9373,7 +9405,7 @@ var StyledLegend = import_styled_components49.default.legend`
9373
9405
  margin-bottom: var(--space-01);
9374
9406
  `;
9375
9407
  var FormGroup = ({ children, label, ...props }) => {
9376
- const ref = (0, import_react32.useRef)();
9408
+ const ref = (0, import_react33.useRef)();
9377
9409
  return /* @__PURE__ */ (0, import_jsx_runtime224.jsxs)(
9378
9410
  Stack,
9379
9411
  {
@@ -9398,7 +9430,7 @@ FormGroup.displayName = "FormGroup";
9398
9430
 
9399
9431
  // src/components/FormGroup/CheckboxGroup.tsx
9400
9432
  var import_jsx_runtime225 = require("react/jsx-runtime");
9401
- var CheckboxGroupContext = (0, import_react33.createContext)(null);
9433
+ var CheckboxGroupContext = (0, import_react34.createContext)(null);
9402
9434
  var CheckboxGroup = ({
9403
9435
  children,
9404
9436
  name,
@@ -9406,7 +9438,7 @@ var CheckboxGroup = ({
9406
9438
  value,
9407
9439
  ...props
9408
9440
  }) => {
9409
- const context = (0, import_react33.useMemo)(() => {
9441
+ const context = (0, import_react34.useMemo)(() => {
9410
9442
  return {
9411
9443
  name,
9412
9444
  onChange
@@ -9491,8 +9523,8 @@ var FormField = ({
9491
9523
  value,
9492
9524
  ...props
9493
9525
  }) => {
9494
- const formState = (0, import_react34.useContext)(FormContext);
9495
- const checkboxGroup = (0, import_react34.useContext)(CheckboxGroupContext);
9526
+ const formState = (0, import_react35.useContext)(FormContext);
9527
+ const checkboxGroup = (0, import_react35.useContext)(CheckboxGroupContext);
9496
9528
  const defaultValue = formState.values[name];
9497
9529
  const isIntegratedLabel = children.type === Checkbox;
9498
9530
  const computedId = id ?? `${formState.formId}-${name}`;
@@ -9530,7 +9562,7 @@ var FormField = ({
9530
9562
  "aria-invalid": (0, import_type_guards30.isNotNil)(error)
9531
9563
  };
9532
9564
  }
9533
- import_react34.Children.only(children);
9565
+ import_react35.Children.only(children);
9534
9566
  return /* @__PURE__ */ (0, import_jsx_runtime226.jsxs)(
9535
9567
  StyledFormField,
9536
9568
  {
@@ -9539,7 +9571,7 @@ var FormField = ({
9539
9571
  children: [
9540
9572
  !isIntegratedLabel && /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(Label, { htmlFor: computedId, children: label }),
9541
9573
  (0, import_type_guards30.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(FormControlLabelDescription, { id: descriptionId, children: description }) : null,
9542
- (0, import_react34.cloneElement)(children, childProps),
9574
+ (0, import_react35.cloneElement)(children, childProps),
9543
9575
  (0, import_type_guards30.isNotNil)(computedError) ? /* @__PURE__ */ (0, import_jsx_runtime226.jsxs)(import_jsx_runtime226.Fragment, { children: [
9544
9576
  /* @__PURE__ */ (0, import_jsx_runtime226.jsx)("div", {}),
9545
9577
  /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(
@@ -9557,9 +9589,9 @@ var FormField = ({
9557
9589
  FormField.displayName = "FormField";
9558
9590
 
9559
9591
  // src/components/FormGroup/RadioGroup.tsx
9560
- var import_react35 = require("react");
9592
+ var import_react36 = require("react");
9561
9593
  var import_jsx_runtime227 = require("react/jsx-runtime");
9562
- var RadioGroupContext = (0, import_react35.createContext)(null);
9594
+ var RadioGroupContext = (0, import_react36.createContext)(null);
9563
9595
  var RadioGroup = ({
9564
9596
  children,
9565
9597
  name,
@@ -9567,7 +9599,7 @@ var RadioGroup = ({
9567
9599
  value,
9568
9600
  ...props
9569
9601
  }) => {
9570
- const context = (0, import_react35.useMemo)(() => {
9602
+ const context = (0, import_react36.useMemo)(() => {
9571
9603
  return {
9572
9604
  name,
9573
9605
  onChange
@@ -9578,7 +9610,7 @@ var RadioGroup = ({
9578
9610
  RadioGroup.displayName = "RadioGroup";
9579
9611
 
9580
9612
  // src/components/IconButton/IconButton.tsx
9581
- var import_react36 = require("react");
9613
+ var import_react37 = require("react");
9582
9614
  var import_styled_components51 = __toESM(require("styled-components"));
9583
9615
  var import_jsx_runtime228 = require("react/jsx-runtime");
9584
9616
  var StyledButton2 = (0, import_styled_components51.default)(Button)`
@@ -9595,7 +9627,7 @@ var StyledButton2 = (0, import_styled_components51.default)(Button)`
9595
9627
  align-items: center;
9596
9628
  line-height: 1;
9597
9629
  `;
9598
- var IconButton = (0, import_react36.forwardRef)(
9630
+ var IconButton = (0, import_react37.forwardRef)(
9599
9631
  ({ children, label, size = "md", ...props }, ref) => {
9600
9632
  const responsiveSize = useResponsiveProp(size);
9601
9633
  return /* @__PURE__ */ (0, import_jsx_runtime228.jsx)(
@@ -9606,7 +9638,7 @@ var IconButton = (0, import_react36.forwardRef)(
9606
9638
  "aria-label": label,
9607
9639
  "data-wistia-ui-icon-button": true,
9608
9640
  size: responsiveSize,
9609
- children: (0, import_react36.cloneElement)(import_react36.Children.only(children), {
9641
+ children: (0, import_react37.cloneElement)(import_react37.Children.only(children), {
9610
9642
  size: responsiveSize
9611
9643
  })
9612
9644
  }
@@ -9668,12 +9700,12 @@ Image.displayName = "Image";
9668
9700
  var import_styled_components53 = __toESM(require("styled-components"));
9669
9701
  var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
9670
9702
  var import_type_guards32 = require("@wistia/type-guards");
9671
- var import_react38 = require("react");
9703
+ var import_react39 = require("react");
9672
9704
 
9673
9705
  // src/components/Menu/MenuContext.tsx
9674
- var import_react37 = require("react");
9675
- var MenuContext = (0, import_react37.createContext)({ compact: false });
9676
- var useMenuContext = () => (0, import_react37.useContext)(MenuContext);
9706
+ var import_react38 = require("react");
9707
+ var MenuContext = (0, import_react38.createContext)({ compact: false });
9708
+ var useMenuContext = () => (0, import_react38.useContext)(MenuContext);
9677
9709
 
9678
9710
  // src/components/Menu/Menu.tsx
9679
9711
  var import_jsx_runtime230 = require("react/jsx-runtime");
@@ -9777,7 +9809,7 @@ var Menu = ({
9777
9809
  onInteractOutside,
9778
9810
  ...props
9779
9811
  }) => {
9780
- const contextValue = (0, import_react38.useMemo)(() => ({ compact }), [compact]);
9812
+ const contextValue = (0, import_react39.useMemo)(() => ({ compact }), [compact]);
9781
9813
  let controlProps = {
9782
9814
  ...(0, import_type_guards32.isNotNil)(onOpenChange) && (0, import_type_guards32.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {}
9783
9815
  };
@@ -9851,13 +9883,13 @@ var MenuLabel = ({ children, ...props }) => {
9851
9883
  MenuLabel.displayName = "MenuLabel";
9852
9884
 
9853
9885
  // src/components/Menu/SubMenu.tsx
9854
- var import_react40 = require("react");
9886
+ var import_react41 = require("react");
9855
9887
  var import_styled_components57 = __toESM(require("styled-components"));
9856
9888
  var import_react_dropdown_menu3 = require("@radix-ui/react-dropdown-menu");
9857
9889
  var import_type_guards34 = require("@wistia/type-guards");
9858
9890
 
9859
9891
  // src/components/Menu/MenuItemButton.tsx
9860
- var import_react39 = require("react");
9892
+ var import_react40 = require("react");
9861
9893
  var import_styled_components55 = __toESM(require("styled-components"));
9862
9894
  var import_type_guards33 = require("@wistia/type-guards");
9863
9895
  var import_jsx_runtime232 = require("react/jsx-runtime");
@@ -9934,7 +9966,7 @@ var StyledBadgeContainer = import_styled_components55.default.div`
9934
9966
  font-size: var(--wui-typography-label-4-size);
9935
9967
  color: var(--wui-color-text-secondary);
9936
9968
  `;
9937
- var MenuItemButton = (0, import_react39.forwardRef)(({ children, appearance, command, icon, ...props }, ref) => {
9969
+ var MenuItemButton = (0, import_react40.forwardRef)(({ children, appearance, command, icon, ...props }, ref) => {
9938
9970
  let { colorScheme, badge } = props;
9939
9971
  if (appearance === "dangerous") {
9940
9972
  if ((0, import_type_guards33.isNotUndefined)(colorScheme)) {
@@ -10030,7 +10062,7 @@ var SubMenu = ({
10030
10062
  ...props
10031
10063
  }) => {
10032
10064
  const { isSmAndUp } = useMq();
10033
- const [isExpanded, setIsExpanded] = (0, import_react40.useState)(false);
10065
+ const [isExpanded, setIsExpanded] = (0, import_react41.useState)(false);
10034
10066
  const { compact } = useMenuContext();
10035
10067
  return isSmAndUp ? /* @__PURE__ */ (0, import_jsx_runtime234.jsxs)(import_react_dropdown_menu3.DropdownMenuSub, { onOpenChange, children: [
10036
10068
  /* @__PURE__ */ (0, import_jsx_runtime234.jsxs)(SubMenuTrigger, { ...props, children: [
@@ -10059,10 +10091,10 @@ var SubMenu = ({
10059
10091
  SubMenu.displayName = "SubMenu";
10060
10092
 
10061
10093
  // src/components/Menu/MenuItem.tsx
10062
- var import_react41 = require("react");
10094
+ var import_react42 = require("react");
10063
10095
  var import_react_dropdown_menu4 = require("@radix-ui/react-dropdown-menu");
10064
10096
  var import_jsx_runtime235 = require("react/jsx-runtime");
10065
- var MenuItem = (0, import_react41.forwardRef)(
10097
+ var MenuItem = (0, import_react42.forwardRef)(
10066
10098
  ({ onSelect = () => null, ...props }, ref) => {
10067
10099
  return /* @__PURE__ */ (0, import_jsx_runtime235.jsx)(
10068
10100
  import_react_dropdown_menu4.DropdownMenuItem,
@@ -10212,7 +10244,7 @@ var CheckboxMenuItem = ({
10212
10244
  CheckboxMenuItem.displayName = "CheckboxMenuItem";
10213
10245
 
10214
10246
  // src/components/Modal/Modal.tsx
10215
- var import_react45 = require("react");
10247
+ var import_react46 = require("react");
10216
10248
  var import_styled_components62 = __toESM(require("styled-components"));
10217
10249
  var import_react_dialog4 = require("@radix-ui/react-dialog");
10218
10250
  var import_type_guards36 = require("@wistia/type-guards");
@@ -10272,19 +10304,19 @@ var ModalHeader = ({
10272
10304
  };
10273
10305
 
10274
10306
  // src/components/Modal/ModalContent.tsx
10275
- var import_react43 = require("react");
10307
+ var import_react44 = require("react");
10276
10308
  var import_styled_components60 = __toESM(require("styled-components"));
10277
10309
  var import_react_dialog3 = require("@radix-ui/react-dialog");
10278
10310
 
10279
10311
  // src/private/hooks/useFocusRestore/useFocusRestore.ts
10280
- var import_react42 = require("react");
10312
+ var import_react43 = require("react");
10281
10313
  var import_type_guards35 = require("@wistia/type-guards");
10282
10314
  var useFocusRestore = () => {
10283
- const previouslyFocusedRef = (0, import_react42.useRef)(null);
10284
- (0, import_react42.useEffect)(() => {
10315
+ const previouslyFocusedRef = (0, import_react43.useRef)(null);
10316
+ (0, import_react43.useEffect)(() => {
10285
10317
  previouslyFocusedRef.current = document.activeElement;
10286
10318
  }, []);
10287
- (0, import_react42.useEffect)(() => {
10319
+ (0, import_react43.useEffect)(() => {
10288
10320
  return () => {
10289
10321
  if ((0, import_type_guards35.isNotNil)(previouslyFocusedRef.current)) {
10290
10322
  setTimeout(() => {
@@ -10338,7 +10370,7 @@ var StyledModalContent = (0, import_styled_components60.default)(import_react_di
10338
10370
  }
10339
10371
  }
10340
10372
  `;
10341
- var ModalContent = (0, import_react43.forwardRef)(
10373
+ var ModalContent = (0, import_react44.forwardRef)(
10342
10374
  ({ fullHeight, width, children, ...otherProps }, ref) => {
10343
10375
  useFocusRestore();
10344
10376
  return /* @__PURE__ */ (0, import_jsx_runtime241.jsx)(
@@ -10356,7 +10388,7 @@ var ModalContent = (0, import_react43.forwardRef)(
10356
10388
  );
10357
10389
 
10358
10390
  // src/private/components/Backdrop/Backdrop.tsx
10359
- var import_react44 = require("react");
10391
+ var import_react45 = require("react");
10360
10392
  var import_styled_components61 = __toESM(require("styled-components"));
10361
10393
  var import_jsx_runtime242 = require("react/jsx-runtime");
10362
10394
  var backdropAnimationDuration = 150;
@@ -10394,7 +10426,7 @@ var BackdropComponent = import_styled_components61.default.div`
10394
10426
  }
10395
10427
  }
10396
10428
  `;
10397
- var Backdrop = (0, import_react44.forwardRef)(
10429
+ var Backdrop = (0, import_react45.forwardRef)(
10398
10430
  ({ alignHorizontal = "center", alignVertical = "center", children, ...otherProps }, ref) => /* @__PURE__ */ (0, import_jsx_runtime242.jsx)(
10399
10431
  BackdropComponent,
10400
10432
  {
@@ -10416,7 +10448,7 @@ var ModalBody = import_styled_components62.default.div`
10416
10448
  display: flex;
10417
10449
  order: 2;
10418
10450
  `;
10419
- var Modal = (0, import_react45.forwardRef)(
10451
+ var Modal = (0, import_react46.forwardRef)(
10420
10452
  ({
10421
10453
  children,
10422
10454
  fullHeight = false,
@@ -10618,7 +10650,7 @@ var ProgressBar = ({
10618
10650
  ProgressBar.displayName = "ProgressBar";
10619
10651
 
10620
10652
  // src/components/Radio/Radio.tsx
10621
- var import_react46 = require("react");
10653
+ var import_react47 = require("react");
10622
10654
  var import_styled_components65 = __toESM(require("styled-components"));
10623
10655
  var import_type_guards39 = require("@wistia/type-guards");
10624
10656
  var import_jsx_runtime246 = require("react/jsx-runtime");
@@ -10721,7 +10753,7 @@ var StyledHiddenRadioInput = import_styled_components65.default.input`
10721
10753
  display: block;
10722
10754
  }
10723
10755
  `;
10724
- var Radio = (0, import_react46.forwardRef)(
10756
+ var Radio = (0, import_react47.forwardRef)(
10725
10757
  ({
10726
10758
  checked,
10727
10759
  disabled = false,
@@ -10736,7 +10768,7 @@ var Radio = (0, import_react46.forwardRef)(
10736
10768
  hideLabel = false,
10737
10769
  ...props
10738
10770
  }, ref) => {
10739
- const generatedId = (0, import_react46.useId)();
10771
+ const generatedId = (0, import_react47.useId)();
10740
10772
  const computedId = (0, import_type_guards39.isNonEmptyString)(id) ? id : `wistia-ui-radio-${generatedId}`;
10741
10773
  return /* @__PURE__ */ (0, import_jsx_runtime246.jsxs)(
10742
10774
  StyledRadioWrapper,
@@ -10786,22 +10818,22 @@ var Radio = (0, import_react46.forwardRef)(
10786
10818
  Radio.displayName = "Radio";
10787
10819
 
10788
10820
  // src/components/SegmentedControl/SegmentedControl.tsx
10789
- var import_react50 = require("react");
10821
+ var import_react51 = require("react");
10790
10822
  var import_styled_components67 = __toESM(require("styled-components"));
10791
10823
  var import_react_toggle_group = require("@radix-ui/react-toggle-group");
10792
10824
  var import_type_guards40 = require("@wistia/type-guards");
10793
10825
 
10794
10826
  // src/components/SegmentedControl/useSelectedItemMeasurements.tsx
10795
- var import_react47 = require("react");
10827
+ var import_react48 = require("react");
10796
10828
  var import_jsx_runtime247 = require("react/jsx-runtime");
10797
- var SelectedItemMeasurementsContext = (0, import_react47.createContext)(
10829
+ var SelectedItemMeasurementsContext = (0, import_react48.createContext)(
10798
10830
  null
10799
10831
  );
10800
10832
  var SelectedItemMeasurementsProvider = ({
10801
10833
  children
10802
10834
  }) => {
10803
- const [selectedItemMeasurements, setSelectedItemMeasurements] = (0, import_react47.useState)(null);
10804
- const contextValue = (0, import_react47.useMemo)(
10835
+ const [selectedItemMeasurements, setSelectedItemMeasurements] = (0, import_react48.useState)(null);
10836
+ const contextValue = (0, import_react48.useMemo)(
10805
10837
  () => ({
10806
10838
  setSelectedItemMeasurements,
10807
10839
  selectedItemMeasurements
@@ -10811,7 +10843,7 @@ var SelectedItemMeasurementsProvider = ({
10811
10843
  return /* @__PURE__ */ (0, import_jsx_runtime247.jsx)(SelectedItemMeasurementsContext.Provider, { value: contextValue, children });
10812
10844
  };
10813
10845
  var useSelectedItemMeasurements = () => {
10814
- const context = (0, import_react47.useContext)(SelectedItemMeasurementsContext);
10846
+ const context = (0, import_react48.useContext)(SelectedItemMeasurementsContext);
10815
10847
  if (context === null) {
10816
10848
  throw new Error(
10817
10849
  "useSelectedItemMeasurements must be used within a SelectedItemMeasurementsProvider"
@@ -10821,15 +10853,15 @@ var useSelectedItemMeasurements = () => {
10821
10853
  };
10822
10854
 
10823
10855
  // src/components/SegmentedControl/SelectedItemIndicator.tsx
10824
- var import_react49 = require("react");
10856
+ var import_react50 = require("react");
10825
10857
  var import_styled_components66 = __toESM(require("styled-components"));
10826
10858
 
10827
10859
  // src/components/SegmentedControl/useSegmentedControlValue.tsx
10828
- var import_react48 = require("react");
10829
- var SegmentedControlValueContext = (0, import_react48.createContext)(null);
10860
+ var import_react49 = require("react");
10861
+ var SegmentedControlValueContext = (0, import_react49.createContext)(null);
10830
10862
  var SegmentedControlValueProvider = SegmentedControlValueContext.Provider;
10831
10863
  var useSegmentedControlValue = () => {
10832
- const context = (0, import_react48.useContext)(SegmentedControlValueContext);
10864
+ const context = (0, import_react49.useContext)(SegmentedControlValueContext);
10833
10865
  if (context === null) {
10834
10866
  throw new Error("useSegmentedControlValue must be used within a SegmentedControlValueProvider");
10835
10867
  }
@@ -10853,7 +10885,7 @@ var SelectedItemIndicatorDiv = import_styled_components66.default.div`
10853
10885
  var SelectedItemIndicator = () => {
10854
10886
  const selectedValue = useSegmentedControlValue();
10855
10887
  const { selectedItemMeasurements } = useSelectedItemMeasurements();
10856
- const selectedItemIndicatorStyle = (0, import_react49.useMemo)(
10888
+ const selectedItemIndicatorStyle = (0, import_react50.useMemo)(
10857
10889
  () => selectedItemMeasurements != null ? {
10858
10890
  height: `${selectedItemMeasurements.offsetHeight}px`,
10859
10891
  transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
@@ -10891,7 +10923,7 @@ var segmentedControlStyles = import_styled_components67.css`
10891
10923
  var StyledSegmentedControl = (0, import_styled_components67.default)(import_react_toggle_group.Root)`
10892
10924
  ${segmentedControlStyles}
10893
10925
  `;
10894
- var SegmentedControl = (0, import_react50.forwardRef)(
10926
+ var SegmentedControl = (0, import_react51.forwardRef)(
10895
10927
  ({
10896
10928
  children,
10897
10929
  disabled = false,
@@ -10926,7 +10958,7 @@ var SegmentedControl = (0, import_react50.forwardRef)(
10926
10958
  SegmentedControl.displayName = "SegmentedControl";
10927
10959
 
10928
10960
  // src/components/SegmentedControl/SegmentedControlItem.tsx
10929
- var import_react51 = require("react");
10961
+ var import_react52 = require("react");
10930
10962
  var import_styled_components68 = __toESM(require("styled-components"));
10931
10963
  var import_react_toggle_group2 = require("@radix-ui/react-toggle-group");
10932
10964
  var import_type_guards41 = require("@wistia/type-guards");
@@ -10971,6 +11003,7 @@ var segmentedControlItemStyles = import_styled_components68.css`
10971
11003
  &[data-state='active'] {
10972
11004
  color: var(--wui-color-text-selected);
10973
11005
  cursor: default;
11006
+ transition: none;
10974
11007
 
10975
11008
  svg path {
10976
11009
  fill: var(--wui-color-icon-selected);
@@ -10993,11 +11026,11 @@ var segmentedControlItemStyles = import_styled_components68.css`
10993
11026
  var StyledSegmentedControlItem = (0, import_styled_components68.default)(import_react_toggle_group2.Item)`
10994
11027
  ${segmentedControlItemStyles}
10995
11028
  `;
10996
- var SegmentedControlItem = (0, import_react51.forwardRef)(
11029
+ var SegmentedControlItem = (0, import_react52.forwardRef)(
10997
11030
  ({ disabled, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
10998
11031
  const selectedValue = useSegmentedControlValue();
10999
11032
  const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
11000
- const buttonRef = (0, import_react51.useRef)(null);
11033
+ const buttonRef = (0, import_react52.useRef)(null);
11001
11034
  const combinedRef = mergeRefs([buttonRef, forwardedRef]);
11002
11035
  const handleClick = (event) => {
11003
11036
  const target = event.target;
@@ -11006,7 +11039,7 @@ var SegmentedControlItem = (0, import_react51.forwardRef)(
11006
11039
  event.preventDefault();
11007
11040
  }
11008
11041
  };
11009
- (0, import_react51.useEffect)(() => {
11042
+ (0, import_react52.useEffect)(() => {
11010
11043
  const buttonElem = buttonRef.current;
11011
11044
  if (!buttonElem) {
11012
11045
  return void 0;
@@ -11052,7 +11085,7 @@ SegmentedControlItem.displayName = "SegmentedControlItem";
11052
11085
 
11053
11086
  // src/components/Select/Select.tsx
11054
11087
  var import_react_select = require("@radix-ui/react-select");
11055
- var import_react52 = require("react");
11088
+ var import_react53 = require("react");
11056
11089
  var import_styled_components69 = __toESM(require("styled-components"));
11057
11090
  var import_jsx_runtime251 = require("react/jsx-runtime");
11058
11091
  var StyledTrigger = (0, import_styled_components69.default)(import_react_select.Trigger)`
@@ -11121,7 +11154,7 @@ var StyledContent3 = (0, import_styled_components69.default)(import_react_select
11121
11154
  max-height: var(--radix-select-content-available-height);
11122
11155
  z-index: var(--wui-zindex-select);
11123
11156
  `;
11124
- var Select = (0, import_react52.forwardRef)(
11157
+ var Select = (0, import_react53.forwardRef)(
11125
11158
  ({
11126
11159
  colorScheme = "inherit",
11127
11160
  children,
@@ -11170,7 +11203,7 @@ Select.displayName = "Select";
11170
11203
 
11171
11204
  // src/components/Select/SelectOption.tsx
11172
11205
  var import_react_select2 = require("@radix-ui/react-select");
11173
- var import_react53 = require("react");
11206
+ var import_react54 = require("react");
11174
11207
  var import_styled_components70 = __toESM(require("styled-components"));
11175
11208
  var import_jsx_runtime252 = require("react/jsx-runtime");
11176
11209
  var StyledItem = (0, import_styled_components70.default)(import_react_select2.Item)`
@@ -11199,7 +11232,7 @@ var StyledItem = (0, import_styled_components70.default)(import_react_select2.It
11199
11232
  var StyledIconContainer = import_styled_components70.default.span`
11200
11233
  width: 12px;
11201
11234
  `;
11202
- var SelectOption = (0, import_react53.forwardRef)(
11235
+ var SelectOption = (0, import_react54.forwardRef)(
11203
11236
  ({ children, ...props }, forwardedRef) => {
11204
11237
  return /* @__PURE__ */ (0, import_jsx_runtime252.jsxs)(
11205
11238
  StyledItem,
@@ -11244,7 +11277,7 @@ var SelectOptionGroup = ({ children, label, ...props }) => {
11244
11277
  };
11245
11278
 
11246
11279
  // src/components/Switch/Switch.tsx
11247
- var import_react54 = require("react");
11280
+ var import_react55 = require("react");
11248
11281
  var import_styled_components72 = __toESM(require("styled-components"));
11249
11282
  var import_type_guards42 = require("@wistia/type-guards");
11250
11283
  var import_jsx_runtime254 = require("react/jsx-runtime");
@@ -11349,7 +11382,7 @@ var StyledHiddenSwitchInput = import_styled_components72.default.input`
11349
11382
  }
11350
11383
  }
11351
11384
  `;
11352
- var Switch = (0, import_react54.forwardRef)(
11385
+ var Switch = (0, import_react55.forwardRef)(
11353
11386
  ({
11354
11387
  checked,
11355
11388
  disabled = false,
@@ -11364,7 +11397,7 @@ var Switch = (0, import_react54.forwardRef)(
11364
11397
  hideLabel = false,
11365
11398
  ...props
11366
11399
  }, ref) => {
11367
- const generatedId = (0, import_react54.useId)();
11400
+ const generatedId = (0, import_react55.useId)();
11368
11401
  const computedId = (0, import_type_guards42.isNonEmptyString)(id) ? id : `wistia-ui-switch-${generatedId}`;
11369
11402
  return /* @__PURE__ */ (0, import_jsx_runtime254.jsxs)(StyledSwitchWrapper, { $disabled: disabled, children: [
11370
11403
  /* @__PURE__ */ (0, import_jsx_runtime254.jsx)(
@@ -11446,8 +11479,8 @@ var Table = ({
11446
11479
  var import_styled_components74 = __toESM(require("styled-components"));
11447
11480
 
11448
11481
  // src/components/Table/TableSectionContext.ts
11449
- var import_react55 = require("react");
11450
- var TableSectionContext = (0, import_react55.createContext)(null);
11482
+ var import_react56 = require("react");
11483
+ var TableSectionContext = (0, import_react56.createContext)(null);
11451
11484
 
11452
11485
  // src/components/Table/TableBody.tsx
11453
11486
  var import_jsx_runtime256 = require("react/jsx-runtime");
@@ -11457,7 +11490,7 @@ var TableBody = ({ children, ...props }) => {
11457
11490
  };
11458
11491
 
11459
11492
  // src/components/Table/TableCell.tsx
11460
- var import_react56 = require("react");
11493
+ var import_react57 = require("react");
11461
11494
  var import_styled_components75 = __toESM(require("styled-components"));
11462
11495
  var import_jsx_runtime257 = require("react/jsx-runtime");
11463
11496
  var sharedStyles = import_styled_components75.css`
@@ -11478,7 +11511,7 @@ var StyledTd = import_styled_components75.default.td`
11478
11511
  line-height: var(--wui-typography-body-2-line-height);
11479
11512
  `;
11480
11513
  var TableCell = ({ children, ...props }) => {
11481
- const section = (0, import_react56.useContext)(TableSectionContext);
11514
+ const section = (0, import_react57.useContext)(TableSectionContext);
11482
11515
  if (section === "head") {
11483
11516
  return /* @__PURE__ */ (0, import_jsx_runtime257.jsx)(StyledTh, { ...props, children });
11484
11517
  }
@@ -11510,7 +11543,7 @@ var TableRow = ({ children, ...props }) => {
11510
11543
  };
11511
11544
 
11512
11545
  // src/components/Tabs/Tabs.tsx
11513
- var import_react61 = require("react");
11546
+ var import_react62 = require("react");
11514
11547
  var import_react_tabs4 = require("@radix-ui/react-tabs");
11515
11548
  var import_type_guards44 = require("@wistia/type-guards");
11516
11549
  var import_styled_components83 = __toESM(require("styled-components"));
@@ -11565,17 +11598,17 @@ var TabList = ({
11565
11598
  TabList.displayName = "TabList";
11566
11599
 
11567
11600
  // src/components/Tabs/TabItem.tsx
11568
- var import_react58 = require("react");
11601
+ var import_react59 = require("react");
11569
11602
  var import_styled_components81 = __toESM(require("styled-components"));
11570
11603
  var import_react_tabs3 = require("@radix-ui/react-tabs");
11571
11604
  var import_type_guards43 = require("@wistia/type-guards");
11572
11605
 
11573
11606
  // src/components/Tabs/useTabsValue.tsx
11574
- var import_react57 = require("react");
11575
- var TabsValueContext = (0, import_react57.createContext)(null);
11607
+ var import_react58 = require("react");
11608
+ var TabsValueContext = (0, import_react58.createContext)(null);
11576
11609
  var TabsValueProvider = TabsValueContext.Provider;
11577
11610
  var useTabsValue = () => {
11578
- const context = (0, import_react57.useContext)(TabsValueContext);
11611
+ const context = (0, import_react58.useContext)(TabsValueContext);
11579
11612
  if (context === null) {
11580
11613
  throw new Error("useTabsValue must be used within a TabsValueProvider");
11581
11614
  }
@@ -11591,13 +11624,13 @@ var StyledTabItem = (0, import_styled_components81.default)(import_react_tabs3.T
11591
11624
  outline: none;
11592
11625
  }
11593
11626
  `;
11594
- var TabItem = (0, import_react58.forwardRef)(
11627
+ var TabItem = (0, import_react59.forwardRef)(
11595
11628
  ({ disabled = false, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
11596
11629
  const selectedValue = useTabsValue();
11597
11630
  const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
11598
- const buttonRef = (0, import_react58.useRef)(null);
11631
+ const buttonRef = (0, import_react59.useRef)(null);
11599
11632
  const combinedRef = mergeRefs([buttonRef, forwardedRef]);
11600
- (0, import_react58.useEffect)(() => {
11633
+ (0, import_react59.useEffect)(() => {
11601
11634
  const buttonElem = buttonRef.current;
11602
11635
  if (!buttonElem) {
11603
11636
  return void 0;
@@ -11641,16 +11674,16 @@ var TabItem = (0, import_react58.forwardRef)(
11641
11674
  TabItem.displayName = "TabItem";
11642
11675
 
11643
11676
  // src/components/Tabs/extractTabItems.ts
11644
- var import_react59 = require("react");
11677
+ var import_react60 = require("react");
11645
11678
  var extractTabItems = (children) => {
11646
11679
  const tabItems = [];
11647
- import_react59.Children.forEach(children, (child) => {
11648
- if (!(0, import_react59.isValidElement)(child)) {
11680
+ import_react60.Children.forEach(children, (child) => {
11681
+ if (!(0, import_react60.isValidElement)(child)) {
11649
11682
  return;
11650
11683
  }
11651
11684
  if (typeof child.type !== "string" && child.type.displayName === "Tab") {
11652
11685
  tabItems.push(child);
11653
- } else if (child.type === import_react59.Fragment) {
11686
+ } else if (child.type === import_react60.Fragment) {
11654
11687
  const fragmentElement = child;
11655
11688
  tabItems.push(...extractTabItems(fragmentElement.props.children));
11656
11689
  } else if ((child.props.children ?? null) != null) {
@@ -11663,7 +11696,7 @@ var extractTabItems = (children) => {
11663
11696
  };
11664
11697
 
11665
11698
  // src/components/Tabs/SelectedItemIndicator.tsx
11666
- var import_react60 = require("react");
11699
+ var import_react61 = require("react");
11667
11700
  var import_styled_components82 = __toESM(require("styled-components"));
11668
11701
  var import_jsx_runtime264 = require("react/jsx-runtime");
11669
11702
  var TabsSelectedItemIndicatorDiv = (0, import_styled_components82.default)(SelectedItemIndicatorDiv)`
@@ -11674,7 +11707,7 @@ var TabsSelectedItemIndicatorDiv = (0, import_styled_components82.default)(Selec
11674
11707
  var SelectedItemIndicator2 = () => {
11675
11708
  const { selectedItemMeasurements } = useSelectedItemMeasurements();
11676
11709
  const selectedValue = useTabsValue();
11677
- const selectedItemIndicatorStyle = (0, import_react60.useMemo)(
11710
+ const selectedItemIndicatorStyle = (0, import_react61.useMemo)(
11678
11711
  () => selectedItemMeasurements != null ? {
11679
11712
  height: `${selectedItemMeasurements.offsetHeight}px`,
11680
11713
  transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
@@ -11715,7 +11748,7 @@ var StyledTabsRoot = (0, import_styled_components83.default)(import_react_tabs4.
11715
11748
  flex-direction: column;
11716
11749
  height: ${({ $stickyHeaders }) => $stickyHeaders ? "100%" : "auto"};
11717
11750
  `;
11718
- var Tabs = (0, import_react61.forwardRef)(
11751
+ var Tabs = (0, import_react62.forwardRef)(
11719
11752
  ({
11720
11753
  children,
11721
11754
  fullWidth = true,
@@ -11727,7 +11760,7 @@ var Tabs = (0, import_react61.forwardRef)(
11727
11760
  ...otherProps
11728
11761
  }, ref) => {
11729
11762
  const tabItems = extractTabItems(children);
11730
- const [internalSelectedValue, setInternalSelectedValue] = (0, import_react61.useState)(defaultSelectedValue);
11763
+ const [internalSelectedValue, setInternalSelectedValue] = (0, import_react62.useState)(defaultSelectedValue);
11731
11764
  const modeProps = defaultSelectedValue !== void 0 ? {
11732
11765
  defaultValue: defaultSelectedValue,
11733
11766
  onValueChange: setInternalSelectedValue
@@ -11813,15 +11846,15 @@ var Tabs = (0, import_react61.forwardRef)(
11813
11846
  Tabs.displayName = "Tabs";
11814
11847
 
11815
11848
  // src/components/Tabs/Tab.tsx
11816
- var import_react62 = require("react");
11849
+ var import_react63 = require("react");
11817
11850
  var import_jsx_runtime266 = require("react/jsx-runtime");
11818
- var Tab = (0, import_react62.forwardRef)(({ children }, ref) => {
11851
+ var Tab = (0, import_react63.forwardRef)(({ children }, ref) => {
11819
11852
  return /* @__PURE__ */ (0, import_jsx_runtime266.jsx)("div", { ref, children });
11820
11853
  });
11821
11854
  Tab.displayName = "Tab";
11822
11855
 
11823
11856
  // src/components/Tag/Tag.tsx
11824
- var import_react63 = require("react");
11857
+ var import_react64 = require("react");
11825
11858
  var import_styled_components84 = __toESM(require("styled-components"));
11826
11859
  var import_type_guards45 = require("@wistia/type-guards");
11827
11860
  var import_jsx_runtime267 = require("react/jsx-runtime");
@@ -11938,7 +11971,7 @@ var RemoveButton = ({ onClickRemove, onClickRemoveLabel, colorScheme }) => {
11938
11971
  )
11939
11972
  ] });
11940
11973
  };
11941
- var Tag = (0, import_react63.forwardRef)(
11974
+ var Tag = (0, import_react64.forwardRef)(
11942
11975
  ({
11943
11976
  onClickRemove,
11944
11977
  colorScheme = "inherit",
@@ -12107,6 +12140,258 @@ var WistiaLogo = ({
12107
12140
  return href !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime268.jsx)("a", { href, children: Logo }) : Logo;
12108
12141
  };
12109
12142
  WistiaLogo.displayName = "WistiaLogo";
12143
+
12144
+ // src/components/Thumbnail/Thumbnail.tsx
12145
+ var import_react65 = require("react");
12146
+ var import_styled_components87 = __toESM(require("styled-components"));
12147
+ var import_type_guards48 = require("@wistia/type-guards");
12148
+
12149
+ // src/private/helpers/getBackgroundGradient/getBackgroundGradient.ts
12150
+ var import_type_guards47 = require("@wistia/type-guards");
12151
+ var import_styled_components86 = require("styled-components");
12152
+ var gradients = {
12153
+ defaultDarkOne: import_styled_components86.css`
12154
+ background-color: #222d66;
12155
+ background-image:
12156
+ radial-gradient(farthest-corner at top right, #222d66, transparent 70%),
12157
+ radial-gradient(farthest-corner at bottom right, #2949e5, transparent 50%),
12158
+ radial-gradient(farthest-corner at bottom left, #6b84ff, transparent 57%),
12159
+ radial-gradient(farthest-corner at top left, #2949e5, transparent 68%);
12160
+ `,
12161
+ defaultDarkTwo: import_styled_components86.css`
12162
+ background-color: #222d66;
12163
+ background-image:
12164
+ radial-gradient(farthest-corner at top left, #6b84ff, transparent 100%),
12165
+ radial-gradient(farthest-corner at bottom left, #222d66, transparent 57%),
12166
+ radial-gradient(farthest-corner at bottom right, #2949e5, transparent 50%),
12167
+ radial-gradient(farthest-corner at top right, #2949e5, transparent 70%);
12168
+ `,
12169
+ defaultLightOne: import_styled_components86.css`
12170
+ background-color: #ccd5ff;
12171
+ background-image:
12172
+ radial-gradient(farthest-corner at bottom right, #ccd5ff, transparent 55%),
12173
+ radial-gradient(farthest-corner at top left, #ccd5ff, transparent 65%),
12174
+ radial-gradient(farthest-corner at top right, #6b84ff, transparent 50%),
12175
+ radial-gradient(farthest-corner at bottom left, #f7f8ff, transparent 50%);
12176
+ `,
12177
+ defaultLightTwo: import_styled_components86.css`
12178
+ background-color: #ccd5ff;
12179
+ background-image:
12180
+ radial-gradient(ellipse at top, #ccd5ff, transparent),
12181
+ radial-gradient(ellipse at bottom, #6b84ff, transparent);
12182
+ `,
12183
+ defaultMidOne: import_styled_components86.css`
12184
+ background-color: #6b84ff;
12185
+ background-image:
12186
+ radial-gradient(farthest-corner at top right, #2949e5, transparent 70%),
12187
+ radial-gradient(farthest-corner at bottom right, #2949e5, transparent 50%),
12188
+ radial-gradient(farthest-corner at top left, #6b84ff, transparent 80%),
12189
+ radial-gradient(farthest-corner at bottom left, #222d66, transparent 57%);
12190
+ `,
12191
+ defaultMidTwo: import_styled_components86.css`
12192
+ background-color: #6b84ff;
12193
+ background-image:
12194
+ radial-gradient(ellipse at top, #2949e5, transparent),
12195
+ radial-gradient(ellipse at bottom, #ccd5ff, transparent);
12196
+ `,
12197
+ green: import_styled_components86.css`
12198
+ background-color: #fafffa;
12199
+ background-image:
12200
+ radial-gradient(farthest-corner at bottom left, #b0e5a5, transparent 50%),
12201
+ radial-gradient(farthest-corner at top right, #268713, transparent 50%),
12202
+ radial-gradient(farthest-corner at top left, #44b62d, transparent 65%),
12203
+ radial-gradient(farthest-corner at bottom right, #44b62d, transparent 55%);
12204
+ `,
12205
+ greenWithPop: import_styled_components86.css`
12206
+ background-color: #fafffa;
12207
+ background-image:
12208
+ radial-gradient(farthest-corner at bottom left, #b0e5a5, transparent 50%),
12209
+ radial-gradient(farthest-corner at top right, #2949e5, transparent 50%),
12210
+ radial-gradient(farthest-corner at top left, #44b62d, transparent 65%),
12211
+ radial-gradient(farthest-corner at bottom right, #44b62d, transparent 55%);
12212
+ `,
12213
+ pink: import_styled_components86.css`
12214
+ background-color: #fffff0;
12215
+ background-image:
12216
+ radial-gradient(farthest-corner at bottom left, #ffc7e8, transparent 50%),
12217
+ radial-gradient(farthest-corner at top right, #e0128e, transparent 70%),
12218
+ radial-gradient(farthest-corner at top left, #ff40b3, transparent 65%),
12219
+ radial-gradient(farthest-corner at bottom right, #ff40b3, transparent 55%);
12220
+ `,
12221
+ pinkWithPop: import_styled_components86.css`
12222
+ background-color: #fffff0;
12223
+ background-image:
12224
+ radial-gradient(farthest-corner at top right, #e0128e, transparent 70%),
12225
+ radial-gradient(farthest-corner at top left, #ff40b3, transparent 65%),
12226
+ radial-gradient(farthest-corner at bottom right, #ff40b3, transparent 55%),
12227
+ radial-gradient(farthest-corner at bottom left, #2949e5, transparent 50%);
12228
+ `,
12229
+ playfulGradientOne: import_styled_components86.css`
12230
+ background-color: #f7f8ff;
12231
+ background-image:
12232
+ radial-gradient(farthest-corner at top left, #d65cff, transparent 68%),
12233
+ radial-gradient(farthest-corner at bottom right, #2949e5, transparent 50%),
12234
+ radial-gradient(farthest-corner at bottom left, #ffc7e8, transparent 57%),
12235
+ radial-gradient(farthest-corner at top right, #ffcaba, transparent 70%);
12236
+ `,
12237
+ playfulGradientTwo: import_styled_components86.css`
12238
+ background-color: #f7f8ff;
12239
+ background-image:
12240
+ radial-gradient(farthest-corner at top left, #44b62d, transparent 68%),
12241
+ radial-gradient(farthest-corner at bottom right, #eff18d, transparent 50%),
12242
+ radial-gradient(farthest-corner at bottom left, #ccd5ff, transparent 57%),
12243
+ radial-gradient(farthest-corner at top right, #2949e5, transparent 70%);
12244
+ `,
12245
+ purple: import_styled_components86.css`
12246
+ background-color: #f2caff;
12247
+ background-image:
12248
+ radial-gradient(ellipse at 0% 100%, #f9e5ff, transparent 50%),
12249
+ radial-gradient(ellipse at 100% 0%, #e093fa, transparent 70%);
12250
+ `,
12251
+ purpleWithPop: import_styled_components86.css`
12252
+ background-color: #f2caff;
12253
+ background-image:
12254
+ radial-gradient(farthest-corner at bottom left, #f2caff, transparent 50%),
12255
+ radial-gradient(farthest-corner at top left, #d65cff, transparent 65%),
12256
+ radial-gradient(farthest-corner at bottom right, #d65cff, transparent 55%),
12257
+ radial-gradient(farthest-corner at top right, #2949e5, transparent 70%);
12258
+ `,
12259
+ yellow: import_styled_components86.css`
12260
+ background-color: #fffff0;
12261
+ background-image:
12262
+ radial-gradient(farthest-corner at bottom left, #eff18d, transparent 50%),
12263
+ radial-gradient(farthest-corner at top right, #bcbf19, transparent 70%),
12264
+ radial-gradient(farthest-corner at top left, #e8ec1e, transparent 65%),
12265
+ radial-gradient(farthest-corner at bottom right, #e8ec1e, transparent 55%);
12266
+ `,
12267
+ yellowWithPop: import_styled_components86.css`
12268
+ background-color: #fffff0;
12269
+ background-image:
12270
+ radial-gradient(farthest-corner at bottom left, #eff18d, transparent 50%),
12271
+ radial-gradient(farthest-corner at top right, #bcbf19, transparent 70%),
12272
+ radial-gradient(farthest-corner at top left, #e8ec1e, transparent 65%),
12273
+ radial-gradient(farthest-corner at bottom right, #2949e5, transparent 55%);
12274
+ `
12275
+ };
12276
+ var gradientMap = Object.keys(gradients);
12277
+ var getBackgroundGradient = (gradientName = void 0) => {
12278
+ return (0, import_type_guards47.isNotNil)(gradientName) ? gradients[gradientName] : gradients.defaultDarkOne;
12279
+ };
12280
+
12281
+ // src/components/Thumbnail/Thumbnail.tsx
12282
+ var import_jsx_runtime269 = require("react/jsx-runtime");
12283
+ var WideThumbnailImage = import_styled_components87.default.img`
12284
+ height: 100%;
12285
+ object-fit: cover;
12286
+ width: 100%;
12287
+ `;
12288
+ var SquareThumbnailImage = import_styled_components87.default.img`
12289
+ backdrop-filter: blur(8px);
12290
+ object-fit: contain;
12291
+ width: 100%;
12292
+ `;
12293
+ var ThumbnailImage = ({ thumbnailImageType, thumbnailUrl }) => {
12294
+ if (thumbnailImageType === "wide") {
12295
+ return /* @__PURE__ */ (0, import_jsx_runtime269.jsx)(
12296
+ WideThumbnailImage,
12297
+ {
12298
+ alt: "",
12299
+ src: thumbnailUrl
12300
+ }
12301
+ );
12302
+ }
12303
+ if (thumbnailImageType === "square") {
12304
+ return /* @__PURE__ */ (0, import_jsx_runtime269.jsx)(
12305
+ SquareThumbnailImage,
12306
+ {
12307
+ alt: "",
12308
+ src: thumbnailUrl
12309
+ }
12310
+ );
12311
+ }
12312
+ return null;
12313
+ };
12314
+ var StyledThumbnail = import_styled_components87.default.div`
12315
+ ${({ $gradientBackground }) => getBackgroundGradient($gradientBackground)};
12316
+ aspect-ratio: 16 / 9;
12317
+ background-image: ${({ $backgroundUrl }) => $backgroundUrl};
12318
+ background-position: center;
12319
+ background-size: cover;
12320
+ border-radius: 4px;
12321
+ display: flex;
12322
+ overflow: hidden;
12323
+ position: relative;
12324
+ width: ${({ $width }) => $width};
12325
+ `;
12326
+ var Thumbnail = (0, import_react65.forwardRef)(
12327
+ ({
12328
+ gradientBackground = "defaultMidOne",
12329
+ thumbnailImageType = "square",
12330
+ thumbnailUrl,
12331
+ width = "auto",
12332
+ children,
12333
+ ...otherProps
12334
+ }, ref) => {
12335
+ const backgroundUrl = thumbnailImageType === "square" && (0, import_type_guards48.isNotNil)(thumbnailUrl) ? `url(${thumbnailUrl})` : "";
12336
+ return /* @__PURE__ */ (0, import_jsx_runtime269.jsxs)(
12337
+ StyledThumbnail,
12338
+ {
12339
+ ref,
12340
+ $backgroundUrl: backgroundUrl,
12341
+ $gradientBackground: gradientBackground,
12342
+ $width: width,
12343
+ ...otherProps,
12344
+ children: [
12345
+ (0, import_type_guards48.isNotNil)(children) && children,
12346
+ (0, import_type_guards48.isNotNil)(thumbnailUrl) && /* @__PURE__ */ (0, import_jsx_runtime269.jsx)(
12347
+ ThumbnailImage,
12348
+ {
12349
+ thumbnailImageType,
12350
+ thumbnailUrl
12351
+ }
12352
+ )
12353
+ ]
12354
+ }
12355
+ );
12356
+ }
12357
+ );
12358
+ Thumbnail.displayName = "Thumbnail";
12359
+
12360
+ // src/components/Thumbnail/ThumbnailOverlay.tsx
12361
+ var import_styled_components88 = __toESM(require("styled-components"));
12362
+ var import_type_guards49 = require("@wistia/type-guards");
12363
+ var import_jsx_runtime270 = require("react/jsx-runtime");
12364
+ var StyledThumbnailOverlay = import_styled_components88.default.div`
12365
+ align-items: center;
12366
+ background-color: rgb(0 0 0 / 50%);
12367
+ border-radius: var(--wui-border-radius-01);
12368
+ bottom: var(--wui-space-01);
12369
+ color: var(--wui-color-text-on-fill);
12370
+ display: flex;
12371
+ font-size: var(--wui-typography-body-4-size);
12372
+ font-weight: var(--wui-typography-weight-body-bold);
12373
+ gap: var(--wui-space-01);
12374
+ padding: 0 var(--wui-space-01);
12375
+ position: absolute;
12376
+ right: var(--wui-space-01);
12377
+ z-index: 1;
12378
+
12379
+ svg {
12380
+ height: 12px;
12381
+ width: 12px;
12382
+
12383
+ path {
12384
+ color: var(--wui-color-icon-on-fill);
12385
+ }
12386
+ }
12387
+ `;
12388
+ var ThumbnailOverlay = ({ icon, text }) => {
12389
+ return /* @__PURE__ */ (0, import_jsx_runtime270.jsxs)(StyledThumbnailOverlay, { children: [
12390
+ (0, import_type_guards49.isNotNil)(icon) && icon,
12391
+ /* @__PURE__ */ (0, import_jsx_runtime270.jsx)("span", { children: text })
12392
+ ] });
12393
+ };
12394
+ ThumbnailOverlay.displayName = "ThumbnailOverlay";
12110
12395
  // Annotate the CommonJS export names for ESM import in node:
12111
12396
  0 && (module.exports = {
12112
12397
  ActionButton,
@@ -12180,6 +12465,8 @@ WistiaLogo.displayName = "WistiaLogo";
12180
12465
  Tabs,
12181
12466
  Tag,
12182
12467
  Text,
12468
+ Thumbnail,
12469
+ ThumbnailOverlay,
12183
12470
  Tooltip,
12184
12471
  UIProvider,
12185
12472
  WistiaLogo,
@@ -12201,6 +12488,7 @@ WistiaLogo.displayName = "WistiaLogo";
12201
12488
  useLocalStorage,
12202
12489
  useLockBodyScroll,
12203
12490
  useMq,
12491
+ useOnClickOutside,
12204
12492
  useToast,
12205
12493
  useWindowSize
12206
12494
  });