@wistia/ui 0.6.25 → 0.6.26

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.25
3
+ * @license @wistia/ui v0.6.26
4
4
  *
5
5
  * Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
6
6
  *
@@ -126,6 +126,7 @@ __export(index_exports, {
126
126
  useFormState: () => useFormState,
127
127
  useImperativeFilePicker: () => import_use_file_picker.useImperativeFilePicker,
128
128
  useKey: () => useKey,
129
+ useLocalStorage: () => useLocalStorage,
129
130
  useMq: () => useMq,
130
131
  useToast: () => useToast,
131
132
  useWindowSize: () => useWindowSize
@@ -2151,11 +2152,39 @@ var useKey = (key, eventHandler, { eventName = "keydown", eventTarget, eventOpti
2151
2152
  useEvent(eventName, memoizedEventHandler, eventTarget, eventOptions);
2152
2153
  };
2153
2154
 
2155
+ // src/hooks/useLocalStorage/useLocalStorage.ts
2156
+ var import_react7 = require("react");
2157
+ var useLocalStorage = (key, initialValue, storage = window.localStorage) => {
2158
+ const [storedValue, setStoredValue] = (0, import_react7.useState)(() => {
2159
+ try {
2160
+ const item = storage.getItem(key);
2161
+ return item !== null && !!item ? JSON.parse(item) : initialValue;
2162
+ } catch (error) {
2163
+ console.log(error);
2164
+ return initialValue;
2165
+ }
2166
+ });
2167
+ const setValue = (value) => {
2168
+ try {
2169
+ const valueToStore = value instanceof Function ? value(storedValue) : value;
2170
+ setStoredValue(valueToStore);
2171
+ storage.setItem(key, JSON.stringify(valueToStore));
2172
+ } catch (error) {
2173
+ console.error(error);
2174
+ }
2175
+ };
2176
+ const removeValue = () => {
2177
+ storage.removeItem(key);
2178
+ setStoredValue(void 0);
2179
+ };
2180
+ return [storedValue, setValue, removeValue];
2181
+ };
2182
+
2154
2183
  // src/hooks/useMq/useMq.ts
2155
2184
  var import_type_guards7 = require("@wistia/type-guards");
2156
2185
 
2157
2186
  // src/hooks/useWindowSize/useWindowSize.ts
2158
- var import_react7 = require("react");
2187
+ var import_react8 = require("react");
2159
2188
  var import_throttle_debounce = require("throttle-debounce");
2160
2189
 
2161
2190
  // src/private/helpers/isClient/isClient.ts
@@ -2163,11 +2192,11 @@ var isClient = () => typeof window !== "undefined" && typeof document !== "undef
2163
2192
 
2164
2193
  // src/hooks/useWindowSize/useWindowSize.ts
2165
2194
  var useWindowSize = (interval = 0) => {
2166
- const [dimensions, setDimensions] = (0, import_react7.useState)({
2195
+ const [dimensions, setDimensions] = (0, import_react8.useState)({
2167
2196
  width: isClient() ? window.innerWidth : 0,
2168
2197
  height: isClient() ? window.innerHeight : 0
2169
2198
  });
2170
- (0, import_react7.useLayoutEffect)(() => {
2199
+ (0, import_react8.useLayoutEffect)(() => {
2171
2200
  const handleResize = (0, import_throttle_debounce.debounce)(
2172
2201
  interval,
2173
2202
  () => setDimensions({
@@ -2219,11 +2248,11 @@ var useActiveMq = () => {
2219
2248
  };
2220
2249
 
2221
2250
  // src/hooks/useToast/useToast.tsx
2222
- var import_react9 = require("react");
2251
+ var import_react10 = require("react");
2223
2252
  var import_sonner2 = require("sonner");
2224
2253
 
2225
2254
  // src/private/components/Toast/Toast.tsx
2226
- var import_react8 = require("react");
2255
+ var import_react9 = require("react");
2227
2256
  var import_styled_components16 = __toESM(require("styled-components"));
2228
2257
  var import_type_guards9 = require("@wistia/type-guards");
2229
2258
 
@@ -2453,8 +2482,8 @@ var StyledToast = import_styled_components16.default.div`
2453
2482
  }
2454
2483
  `;
2455
2484
  var Action = ({ actionButton }) => {
2456
- if ((0, import_type_guards9.isNotNil)(actionButton) && (0, import_react8.isValidElement)(actionButton)) {
2457
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ActionWrapper, { children: (0, import_react8.cloneElement)(actionButton, {
2485
+ if ((0, import_type_guards9.isNotNil)(actionButton) && (0, import_react9.isValidElement)(actionButton)) {
2486
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ActionWrapper, { children: (0, import_react9.cloneElement)(actionButton, {
2458
2487
  variant: "soft",
2459
2488
  // force Button variant
2460
2489
  size: "sm"
@@ -2490,7 +2519,7 @@ Toast.displayName = "Toast";
2490
2519
  // src/hooks/useToast/useToast.tsx
2491
2520
  var import_jsx_runtime6 = require("react/jsx-runtime");
2492
2521
  var useToast = () => {
2493
- return (0, import_react9.useCallback)(
2522
+ return (0, import_react10.useCallback)(
2494
2523
  ({ message, action, colorScheme, icon, position = "bottom-left", duration = 3e3 }) => {
2495
2524
  import_sonner2.toast.custom(
2496
2525
  () => {
@@ -2512,11 +2541,11 @@ var useToast = () => {
2512
2541
  };
2513
2542
 
2514
2543
  // src/components/ActionButton/ActionButton.tsx
2515
- var import_react13 = require("react");
2544
+ var import_react14 = require("react");
2516
2545
  var import_styled_components22 = __toESM(require("styled-components"));
2517
2546
 
2518
2547
  // src/components/Button/Button.tsx
2519
- var import_react12 = require("react");
2548
+ var import_react13 = require("react");
2520
2549
  var import_styled_components21 = __toESM(require("styled-components"));
2521
2550
  var import_type_guards13 = require("@wistia/type-guards");
2522
2551
 
@@ -6464,13 +6493,13 @@ var iconMap = {
6464
6493
 
6465
6494
  // src/private/hooks/useResponsiveProp/useResponsiveProp.ts
6466
6495
  var import_type_guards10 = require("@wistia/type-guards");
6467
- var import_react10 = require("react");
6496
+ var import_react11 = require("react");
6468
6497
  var isResponsiveObject = (values) => {
6469
6498
  return typeof values === "object" && values !== null && !Array.isArray(values) && "base" in values;
6470
6499
  };
6471
6500
  var useResponsiveProp = (values) => {
6472
6501
  const activeMediaQueries = useActiveMq();
6473
- return (0, import_react10.useMemo)(() => {
6502
+ return (0, import_react11.useMemo)(() => {
6474
6503
  if ((0, import_type_guards10.isRecord)(values) && isResponsiveObject(values)) {
6475
6504
  const mq2 = activeMediaQueries.find((key) => key in values);
6476
6505
  return (0, import_type_guards10.isNotUndefined)(mq2) && (0, import_type_guards10.isNotUndefined)(values[mq2]) ? values[mq2] : values.base;
@@ -6537,7 +6566,7 @@ var Icon = ({
6537
6566
  Icon.displayName = "Icon";
6538
6567
 
6539
6568
  // src/components/Link/Link.tsx
6540
- var import_react11 = require("react");
6569
+ var import_react12 = require("react");
6541
6570
  var import_type_guards12 = require("@wistia/type-guards");
6542
6571
  var import_styled_components20 = __toESM(require("styled-components"));
6543
6572
  var import_react_router_dom = require("react-router-dom");
@@ -6577,7 +6606,7 @@ var StyledLink = import_styled_components20.default.a`
6577
6606
  }
6578
6607
  }
6579
6608
  `;
6580
- var Link = (0, import_react11.forwardRef)(
6609
+ var Link = (0, import_react12.forwardRef)(
6581
6610
  ({
6582
6611
  beforeAction,
6583
6612
  children,
@@ -6722,7 +6751,7 @@ var ButtonContent = ({
6722
6751
  )
6723
6752
  ] });
6724
6753
  };
6725
- var Button = (0, import_react12.forwardRef)(
6754
+ var Button = (0, import_react13.forwardRef)(
6726
6755
  ({
6727
6756
  children,
6728
6757
  forceState,
@@ -6901,7 +6930,7 @@ var StyledLabel = import_styled_components22.default.span`
6901
6930
  grid-row: 2;
6902
6931
  text-align: left;
6903
6932
  `;
6904
- var ActionButton = (0, import_react13.forwardRef)(
6933
+ var ActionButton = (0, import_react14.forwardRef)(
6905
6934
  ({
6906
6935
  icon,
6907
6936
  colorScheme = "default",
@@ -6945,7 +6974,7 @@ var ActionButton = (0, import_react13.forwardRef)(
6945
6974
  ActionButton.displayName = "ActionButton";
6946
6975
 
6947
6976
  // src/components/Avatar/Avatar.tsx
6948
- var import_react14 = require("react");
6977
+ var import_react15 = require("react");
6949
6978
  var import_type_guards15 = require("@wistia/type-guards");
6950
6979
  var import_styled_components24 = __toESM(require("styled-components"));
6951
6980
 
@@ -7077,8 +7106,8 @@ var Avatar = ({
7077
7106
  onImageLoad,
7078
7107
  ...otherProps
7079
7108
  }) => {
7080
- const [imageLoadState, setImageLoadState] = (0, import_react14.useState)("loading");
7081
- (0, import_react14.useEffect)(() => {
7109
+ const [imageLoadState, setImageLoadState] = (0, import_react15.useState)("loading");
7110
+ (0, import_react15.useEffect)(() => {
7082
7111
  setImageLoadState("loading");
7083
7112
  }, [imageUrl]);
7084
7113
  const handleImageLoad = () => {
@@ -7090,7 +7119,7 @@ var Avatar = ({
7090
7119
  onImageLoad?.({ state: "error", type: "initials" });
7091
7120
  };
7092
7121
  const avatarSize = heightAndWidth ?? avatarSizeMap[size];
7093
- const avatarColor = (0, import_react14.useMemo)(() => chooseColorScheme(name), [name]);
7122
+ const avatarColor = (0, import_react15.useMemo)(() => chooseColorScheme(name), [name]);
7094
7123
  const showInitials = (0, import_type_guards15.isNil)(imageUrl) || imageLoadState === "error";
7095
7124
  return /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(
7096
7125
  AvatarWrapper,
@@ -7120,7 +7149,7 @@ var Avatar = ({
7120
7149
  Avatar.displayName = "Avatar";
7121
7150
 
7122
7151
  // src/components/Badge/Badge.tsx
7123
- var import_react15 = require("react");
7152
+ var import_react16 = require("react");
7124
7153
  var import_styled_components25 = __toESM(require("styled-components"));
7125
7154
  var import_type_guards16 = require("@wistia/type-guards");
7126
7155
  var import_jsx_runtime193 = require("react/jsx-runtime");
@@ -7144,7 +7173,7 @@ var StyledBadge = import_styled_components25.default.div`
7144
7173
  width: 12px;
7145
7174
  }
7146
7175
  `;
7147
- var Badge = (0, import_react15.forwardRef)(
7176
+ var Badge = (0, import_react16.forwardRef)(
7148
7177
  ({ colorScheme = "inherit", label, icon, ...otherProps }, ref) => {
7149
7178
  const hasIcon = (0, import_type_guards16.isNotNil)(icon);
7150
7179
  return /* @__PURE__ */ (0, import_jsx_runtime193.jsxs)(
@@ -7165,7 +7194,7 @@ var Badge = (0, import_react15.forwardRef)(
7165
7194
  Badge.displayName = "Badge";
7166
7195
 
7167
7196
  // src/components/Box/Box.tsx
7168
- var import_react16 = require("react");
7197
+ var import_react17 = require("react");
7169
7198
  var import_styled_components26 = __toESM(require("styled-components"));
7170
7199
  var import_type_guards17 = require("@wistia/type-guards");
7171
7200
 
@@ -7241,13 +7270,13 @@ var StyledBoxComponent = import_styled_components26.default.div`
7241
7270
  var wrapChildren = (children) => {
7242
7271
  if ((0, import_type_guards17.isNotNil)(children)) {
7243
7272
  if (typeof children === "object" && isDev) {
7244
- return import_react16.Children.map(children, (child) => {
7273
+ return import_react17.Children.map(children, (child) => {
7245
7274
  if ((0, import_type_guards17.isNil)(child)) return null;
7246
7275
  const elementParams = {};
7247
7276
  if (child.type?.displayName === "Box" || child.type?.displayName === "Box_UI") {
7248
7277
  elementParams.hasBoxParent = true;
7249
7278
  }
7250
- return (0, import_react16.cloneElement)(child, elementParams);
7279
+ return (0, import_react17.cloneElement)(child, elementParams);
7251
7280
  });
7252
7281
  }
7253
7282
  return children;
@@ -7255,7 +7284,7 @@ var wrapChildren = (children) => {
7255
7284
  return null;
7256
7285
  };
7257
7286
  var DEFAULT_ELEMENT = "div";
7258
- var BoxComponent = (0, import_react16.forwardRef)(
7287
+ var BoxComponent = (0, import_react17.forwardRef)(
7259
7288
  ({
7260
7289
  alignContent = "stretch",
7261
7290
  alignItems = "flex-start",
@@ -7330,7 +7359,7 @@ BoxComponent.displayName = "Box";
7330
7359
  var Box = makePolymorphic(BoxComponent);
7331
7360
 
7332
7361
  // src/components/Breadcrumbs/Breadcrumbs.tsx
7333
- var import_react17 = require("react");
7362
+ var import_react18 = require("react");
7334
7363
  var import_styled_components27 = __toESM(require("styled-components"));
7335
7364
  var import_jsx_runtime195 = require("react/jsx-runtime");
7336
7365
  var StyledBreadcrumbs = import_styled_components27.default.nav`
@@ -7346,7 +7375,7 @@ var StyledBreadcrumbs = import_styled_components27.default.nav`
7346
7375
  var BUFFER_WIDTH = 10;
7347
7376
  var Breadcrumbs = ({ children, ...props }) => {
7348
7377
  const { isXsAndDown } = useMq();
7349
- let crumbs = import_react17.Children.toArray(children);
7378
+ let crumbs = import_react18.Children.toArray(children);
7350
7379
  if (isXsAndDown) {
7351
7380
  crumbs = crumbs.slice(-1);
7352
7381
  }
@@ -7533,7 +7562,7 @@ var Card = ({
7533
7562
  Card.displayName = "Card";
7534
7563
 
7535
7564
  // src/components/Checkbox/Checkbox.tsx
7536
- var import_react18 = require("react");
7565
+ var import_react19 = require("react");
7537
7566
  var import_styled_components34 = __toESM(require("styled-components"));
7538
7567
  var import_type_guards22 = require("@wistia/type-guards");
7539
7568
 
@@ -7753,7 +7782,7 @@ var StyledHiddenCheckboxInput = import_styled_components34.default.input`
7753
7782
  display: block;
7754
7783
  }
7755
7784
  `;
7756
- var Checkbox = (0, import_react18.forwardRef)(
7785
+ var Checkbox = (0, import_react19.forwardRef)(
7757
7786
  ({
7758
7787
  checked,
7759
7788
  disabled = false,
@@ -7768,7 +7797,7 @@ var Checkbox = (0, import_react18.forwardRef)(
7768
7797
  hideLabel = false,
7769
7798
  ...props
7770
7799
  }, ref) => {
7771
- const generatedId = (0, import_react18.useId)();
7800
+ const generatedId = (0, import_react19.useId)();
7772
7801
  const computedId = (0, import_type_guards22.isNonEmptyString)(id) ? id : `wistia-ui-checkbox-${generatedId}`;
7773
7802
  return /* @__PURE__ */ (0, import_jsx_runtime202.jsxs)(StyledCheckboxWrapper, { disabled, children: [
7774
7803
  /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(
@@ -7811,9 +7840,9 @@ var Checkbox = (0, import_react18.forwardRef)(
7811
7840
  Checkbox.displayName = "Checkbox";
7812
7841
 
7813
7842
  // src/components/ClickRegion/ClickRegion.tsx
7814
- var import_react19 = require("react");
7843
+ var import_react20 = require("react");
7815
7844
  var ClickRegion = ({ children, targetRef }) => {
7816
- (0, import_react19.useEffect)(() => {
7845
+ (0, import_react20.useEffect)(() => {
7817
7846
  if (targetRef.current && targetRef.current.tagName === "A") {
7818
7847
  targetRef.current.setAttribute("data-click-region-target-link", "");
7819
7848
  } else if (targetRef.current && targetRef.current.tagName === "BUTTON") {
@@ -7821,7 +7850,7 @@ var ClickRegion = ({ children, targetRef }) => {
7821
7850
  } else {
7822
7851
  }
7823
7852
  }, [targetRef]);
7824
- const handleClick = (0, import_react19.useCallback)(
7853
+ const handleClick = (0, import_react20.useCallback)(
7825
7854
  (event) => {
7826
7855
  const node = targetRef.current;
7827
7856
  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")) {
@@ -7838,7 +7867,7 @@ var ClickRegion = ({ children, targetRef }) => {
7838
7867
  },
7839
7868
  [targetRef]
7840
7869
  );
7841
- return (0, import_react19.cloneElement)(import_react19.Children.only(children), {
7870
+ return (0, import_react20.cloneElement)(import_react20.Children.only(children), {
7842
7871
  "data-click-region": true,
7843
7872
  onClick: handleClick
7844
7873
  });
@@ -7871,11 +7900,11 @@ var Collapsible = ({
7871
7900
  Collapsible.displayName = "Collapsible";
7872
7901
 
7873
7902
  // src/components/Collapsible/CollapsibleTrigger.tsx
7874
- var import_react20 = require("react");
7903
+ var import_react21 = require("react");
7875
7904
  var import_react_collapsible2 = require("@radix-ui/react-collapsible");
7876
7905
  var import_jsx_runtime204 = require("react/jsx-runtime");
7877
7906
  var CollapsibleTrigger = ({ children }) => {
7878
- import_react20.Children.only(children);
7907
+ import_react21.Children.only(children);
7879
7908
  return /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(import_react_collapsible2.Trigger, { asChild: true, children });
7880
7909
  };
7881
7910
 
@@ -7902,7 +7931,7 @@ var import_styled_components38 = __toESM(require("styled-components"));
7902
7931
  var import_type_guards25 = require("@wistia/type-guards");
7903
7932
 
7904
7933
  // src/components/Heading/Heading.tsx
7905
- var import_react21 = require("react");
7934
+ var import_react22 = require("react");
7906
7935
  var import_styled_components37 = __toESM(require("styled-components"));
7907
7936
  var import_jsx_runtime206 = require("react/jsx-runtime");
7908
7937
  var heroStyle = import_styled_components37.css`
@@ -7989,7 +8018,7 @@ var variantElementMap = {
7989
8018
  heading5: "h5",
7990
8019
  heading6: "h6"
7991
8020
  };
7992
- var HeadingComponent = (0, import_react21.forwardRef)(
8021
+ var HeadingComponent = (0, import_react22.forwardRef)(
7993
8022
  ({
7994
8023
  align = "left",
7995
8024
  colorScheme = "inherit",
@@ -8153,7 +8182,7 @@ DataCards.displayName = "DataCards";
8153
8182
  var import_styled_components41 = __toESM(require("styled-components"));
8154
8183
 
8155
8184
  // src/components/Text/Text.tsx
8156
- var import_react22 = require("react");
8185
+ var import_react23 = require("react");
8157
8186
  var import_styled_components40 = __toESM(require("styled-components"));
8158
8187
  var import_jsx_runtime209 = require("react/jsx-runtime");
8159
8188
  var bodyBoldStyles = import_styled_components40.css`
@@ -8319,7 +8348,7 @@ var StyledText = import_styled_components40.default.div`
8319
8348
  }
8320
8349
  `}
8321
8350
  `;
8322
- var TextComponent = (0, import_react22.forwardRef)(
8351
+ var TextComponent = (0, import_react23.forwardRef)(
8323
8352
  ({
8324
8353
  align = "left",
8325
8354
  colorScheme = "inherit",
@@ -8435,7 +8464,7 @@ Divider.displayName = "Divider";
8435
8464
 
8436
8465
  // src/components/EditableHeading/EditableHeading.tsx
8437
8466
  var import_styled_components45 = __toESM(require("styled-components"));
8438
- var import_react24 = require("react");
8467
+ var import_react25 = require("react");
8439
8468
 
8440
8469
  // src/components/Tooltip/Tooltip.tsx
8441
8470
  var import_react_tooltip2 = require("@radix-ui/react-tooltip");
@@ -8544,7 +8573,7 @@ var Tooltip = ({
8544
8573
  Tooltip.displayName = "Tooltip";
8545
8574
 
8546
8575
  // src/components/Input/Input.tsx
8547
- var import_react23 = require("react");
8576
+ var import_react24 = require("react");
8548
8577
  var import_styled_components44 = __toESM(require("styled-components"));
8549
8578
  var import_type_guards26 = require("@wistia/type-guards");
8550
8579
  var import_jsx_runtime213 = require("react/jsx-runtime");
@@ -8633,7 +8662,7 @@ var StyledInputContainer = import_styled_components44.default.div`
8633
8662
  padding-right: 32px;
8634
8663
  }
8635
8664
  `;
8636
- var Input = (0, import_react23.forwardRef)(
8665
+ var Input = (0, import_react24.forwardRef)(
8637
8666
  ({
8638
8667
  fullWidth = true,
8639
8668
  monospace = false,
@@ -8643,7 +8672,7 @@ var Input = (0, import_react23.forwardRef)(
8643
8672
  rightIcon,
8644
8673
  ...props
8645
8674
  }, externalRef) => {
8646
- const internalRef = (0, import_react23.useRef)();
8675
+ const internalRef = (0, import_react24.useRef)();
8647
8676
  const ref = (
8648
8677
  // eslint-disable-next-line react-compiler/react-compiler
8649
8678
  (0, import_type_guards26.isNotNil)(externalRef) && (0, import_type_guards26.isRecord)(externalRef) && "current" in externalRef ? externalRef : internalRef
@@ -8653,14 +8682,14 @@ var Input = (0, import_react23.forwardRef)(
8653
8682
  leftIconToDisplay = /* @__PURE__ */ (0, import_jsx_runtime213.jsx)(Icon, { type: "search" });
8654
8683
  }
8655
8684
  if ((0, import_type_guards26.isNotNil)(leftIconToDisplay)) {
8656
- leftIconToDisplay = (0, import_react23.cloneElement)(leftIconToDisplay, {
8685
+ leftIconToDisplay = (0, import_react24.cloneElement)(leftIconToDisplay, {
8657
8686
  size: "md",
8658
8687
  className: "wui-input-left-icon"
8659
8688
  });
8660
8689
  }
8661
8690
  let rightIconToDisplay = rightIcon;
8662
8691
  if ((0, import_type_guards26.isNotNil)(rightIconToDisplay)) {
8663
- rightIconToDisplay = (0, import_react23.cloneElement)(rightIconToDisplay, {
8692
+ rightIconToDisplay = (0, import_react24.cloneElement)(rightIconToDisplay, {
8664
8693
  size: "md",
8665
8694
  className: "wui-input-right-icon"
8666
8695
  });
@@ -8755,11 +8784,11 @@ var EditableHeading = ({
8755
8784
  forceEditing = false,
8756
8785
  editingDisabled = false
8757
8786
  }) => {
8758
- const [isEditing, setIsEditing] = (0, import_react24.useState)(false);
8759
- const [value, setValue] = (0, import_react24.useState)(children);
8760
- const [previousValue, setPreviousValue] = (0, import_react24.useState)(children);
8761
- const [headingHeight, setHeadingHeight] = (0, import_react24.useState)("60");
8762
- const headingRef = (0, import_react24.useRef)(null);
8787
+ const [isEditing, setIsEditing] = (0, import_react25.useState)(false);
8788
+ const [value, setValue] = (0, import_react25.useState)(children);
8789
+ const [previousValue, setPreviousValue] = (0, import_react25.useState)(children);
8790
+ const [headingHeight, setHeadingHeight] = (0, import_react25.useState)("60");
8791
+ const headingRef = (0, import_react25.useRef)(null);
8763
8792
  const handleSetEditing = (editing) => {
8764
8793
  if (editingDisabled) return;
8765
8794
  if (editing && headingRef.current) {
@@ -8845,12 +8874,12 @@ var EditableHeading = ({
8845
8874
  };
8846
8875
 
8847
8876
  // src/components/Form/Form.tsx
8848
- var import_react26 = require("react");
8877
+ var import_react27 = require("react");
8849
8878
  var import_styled_components47 = __toESM(require("styled-components"));
8850
8879
  var import_type_guards27 = require("@wistia/type-guards");
8851
8880
 
8852
8881
  // src/components/Stack/Stack.tsx
8853
- var import_react25 = require("react");
8882
+ var import_react26 = require("react");
8854
8883
  var import_styled_components46 = __toESM(require("styled-components"));
8855
8884
  var import_jsx_runtime215 = require("react/jsx-runtime");
8856
8885
  var DEFAULT_ELEMENT4 = "div";
@@ -8860,7 +8889,7 @@ var StyledStack = import_styled_components46.default.div`
8860
8889
  gap: ${({ $gap }) => `var(--wui-${$gap})`};
8861
8890
  align-items: ${({ $alignItems }) => $alignItems};
8862
8891
  `;
8863
- var StackComponent = (0, import_react25.forwardRef)(
8892
+ var StackComponent = (0, import_react26.forwardRef)(
8864
8893
  ({ renderAs, direction = "vertical", gap = "space-02", alignItems = "stretch", ...props }, ref) => {
8865
8894
  const responsiveGap = useResponsiveProp(gap);
8866
8895
  const responsiveDirection = useResponsiveProp(direction);
@@ -8889,7 +8918,7 @@ var StyledForm = import_styled_components47.default.form`
8889
8918
  max-width: ${({ $fullWidth }) => $fullWidth ? "auto" : "var(--form-default-width)"};
8890
8919
  align-items: ${({ $fullWidth }) => $fullWidth ? "stretch" : "flex-start"};
8891
8920
  `;
8892
- var FormContext = (0, import_react26.createContext)({
8921
+ var FormContext = (0, import_react27.createContext)({
8893
8922
  values: {},
8894
8923
  errors: {},
8895
8924
  hasSubmitted: false,
@@ -8905,11 +8934,11 @@ var FormComponent = ({
8905
8934
  fullWidth = false,
8906
8935
  ...props
8907
8936
  }, forwardedRef) => {
8908
- const [errors, setErrors] = (0, import_react26.useState)({});
8909
- const [hasSubmitted, setHasSubmitted] = (0, import_react26.useState)(false);
8910
- const innerRef = (0, import_react26.useRef)();
8937
+ const [errors, setErrors] = (0, import_react27.useState)({});
8938
+ const [hasSubmitted, setHasSubmitted] = (0, import_react27.useState)(false);
8939
+ const innerRef = (0, import_react27.useRef)();
8911
8940
  const ref = forwardedRef ?? innerRef;
8912
- const autoId = (0, import_react26.useId)();
8941
+ const autoId = (0, import_react27.useId)();
8913
8942
  const id = props.id ?? autoId;
8914
8943
  const handleValidate = (nextFormData) => {
8915
8944
  const nextData = Object.fromEntries(nextFormData.entries());
@@ -8951,7 +8980,7 @@ var FormComponent = ({
8951
8980
  void action(null);
8952
8981
  }
8953
8982
  };
8954
- const context = (0, import_react26.useMemo)(() => {
8983
+ const context = (0, import_react27.useMemo)(() => {
8955
8984
  return {
8956
8985
  values,
8957
8986
  errors,
@@ -8980,15 +9009,15 @@ var FormComponent = ({
8980
9009
  );
8981
9010
  };
8982
9011
  FormComponent.displayName = "Form";
8983
- var Form = (0, import_react26.forwardRef)(FormComponent);
9012
+ var Form = (0, import_react27.forwardRef)(FormComponent);
8984
9013
 
8985
9014
  // src/components/Form/useFormState.tsx
8986
- var import_react27 = require("react");
9015
+ var import_react28 = require("react");
8987
9016
  var useFormState = (action, initialData = {}) => {
8988
- const [data, setData] = (0, import_react27.useState)(initialData);
8989
- const [isPending, setIsPending] = (0, import_react27.useState)(false);
8990
- const [error, setError] = (0, import_react27.useState)(null);
8991
- const formAction = (0, import_react27.useCallback)(
9017
+ const [data, setData] = (0, import_react28.useState)(initialData);
9018
+ const [isPending, setIsPending] = (0, import_react28.useState)(false);
9019
+ const [error, setError] = (0, import_react28.useState)(null);
9020
+ const formAction = (0, import_react28.useCallback)(
8992
9021
  async (nextFormData) => {
8993
9022
  if (nextFormData === null) {
8994
9023
  setData(initialData);
@@ -9019,15 +9048,15 @@ var useFormState = (action, initialData = {}) => {
9019
9048
  };
9020
9049
 
9021
9050
  // src/components/Form/FormErrorSummary.tsx
9022
- var import_react28 = require("react");
9051
+ var import_react29 = require("react");
9023
9052
  var import_type_guards28 = require("@wistia/type-guards");
9024
9053
  var import_jsx_runtime217 = require("react/jsx-runtime");
9025
9054
  var ErrorItem = ({ name, error, formId }) => {
9026
9055
  return /* @__PURE__ */ (0, import_jsx_runtime217.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime217.jsx)(Link, { href: `#${formId}-${name}`, children: error }) }, name);
9027
9056
  };
9028
9057
  var FormErrorSummary = ({ description }) => {
9029
- const ref = (0, import_react28.useRef)(null);
9030
- const { formId, errors, hasSubmitted } = (0, import_react28.useContext)(FormContext);
9058
+ const ref = (0, import_react29.useRef)(null);
9059
+ const { formId, errors, hasSubmitted } = (0, import_react29.useContext)(FormContext);
9031
9060
  const isValid = Object.keys(errors).length === 0;
9032
9061
  if (isValid || !hasSubmitted) {
9033
9062
  return null;
@@ -9057,7 +9086,7 @@ var FormErrorSummary = ({ description }) => {
9057
9086
  };
9058
9087
 
9059
9088
  // src/components/FormField/FormField.tsx
9060
- var import_react31 = require("react");
9089
+ var import_react32 = require("react");
9061
9090
  var import_styled_components50 = __toESM(require("styled-components"));
9062
9091
  var import_type_guards29 = require("@wistia/type-guards");
9063
9092
 
@@ -9122,11 +9151,11 @@ var Label = ({
9122
9151
  Label.displayName = "Label";
9123
9152
 
9124
9153
  // src/components/FormGroup/CheckboxGroup.tsx
9125
- var import_react30 = require("react");
9154
+ var import_react31 = require("react");
9126
9155
 
9127
9156
  // src/components/FormGroup/FormGroup.tsx
9128
9157
  var import_styled_components49 = __toESM(require("styled-components"));
9129
- var import_react29 = require("react");
9158
+ var import_react30 = require("react");
9130
9159
  var import_jsx_runtime219 = require("react/jsx-runtime");
9131
9160
  var StyledFieldset = import_styled_components49.default.fieldset`
9132
9161
  border: 0;
@@ -9135,7 +9164,7 @@ var StyledLegend = import_styled_components49.default.legend`
9135
9164
  margin-bottom: var(--space-01);
9136
9165
  `;
9137
9166
  var FormGroup = ({ children, label, ...props }) => {
9138
- const ref = (0, import_react29.useRef)();
9167
+ const ref = (0, import_react30.useRef)();
9139
9168
  return /* @__PURE__ */ (0, import_jsx_runtime219.jsxs)(
9140
9169
  Stack,
9141
9170
  {
@@ -9160,7 +9189,7 @@ FormGroup.displayName = "FormGroup";
9160
9189
 
9161
9190
  // src/components/FormGroup/CheckboxGroup.tsx
9162
9191
  var import_jsx_runtime220 = require("react/jsx-runtime");
9163
- var CheckboxGroupContext = (0, import_react30.createContext)(null);
9192
+ var CheckboxGroupContext = (0, import_react31.createContext)(null);
9164
9193
  var CheckboxGroup = ({
9165
9194
  children,
9166
9195
  name,
@@ -9168,7 +9197,7 @@ var CheckboxGroup = ({
9168
9197
  value,
9169
9198
  ...props
9170
9199
  }) => {
9171
- const context = (0, import_react30.useMemo)(() => {
9200
+ const context = (0, import_react31.useMemo)(() => {
9172
9201
  return {
9173
9202
  name,
9174
9203
  onChange
@@ -9246,8 +9275,8 @@ var FormField = ({
9246
9275
  id,
9247
9276
  ...props
9248
9277
  }) => {
9249
- const formState = (0, import_react31.useContext)(FormContext);
9250
- const checkboxGroup = (0, import_react31.useContext)(CheckboxGroupContext);
9278
+ const formState = (0, import_react32.useContext)(FormContext);
9279
+ const checkboxGroup = (0, import_react32.useContext)(CheckboxGroupContext);
9251
9280
  const isIntegratedLabel = children.type === Checkbox;
9252
9281
  const computedId = id ?? `${formState.formId}-${name}`;
9253
9282
  const computedError = error ?? formState.errors[name];
@@ -9282,7 +9311,7 @@ var FormField = ({
9282
9311
  "aria-describedby": (0, import_type_guards29.isNotNil)(error) ? `${computedId}-error` : void 0
9283
9312
  };
9284
9313
  }
9285
- import_react31.Children.only(children);
9314
+ import_react32.Children.only(children);
9286
9315
  return /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)(
9287
9316
  StyledFormField,
9288
9317
  {
@@ -9290,7 +9319,7 @@ var FormField = ({
9290
9319
  "data-label-position": labelPosition ?? formState.labelPosition,
9291
9320
  children: [
9292
9321
  !isIntegratedLabel && /* @__PURE__ */ (0, import_jsx_runtime221.jsx)(Label, { htmlFor: computedId, children: label }),
9293
- (0, import_react31.cloneElement)(children, childProps),
9322
+ (0, import_react32.cloneElement)(children, childProps),
9294
9323
  (0, import_type_guards29.isNotNil)(computedError) ? /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)(import_jsx_runtime221.Fragment, { children: [
9295
9324
  /* @__PURE__ */ (0, import_jsx_runtime221.jsx)("div", {}),
9296
9325
  /* @__PURE__ */ (0, import_jsx_runtime221.jsx)(
@@ -9308,9 +9337,9 @@ var FormField = ({
9308
9337
  FormField.displayName = "FormField";
9309
9338
 
9310
9339
  // src/components/FormGroup/RadioGroup.tsx
9311
- var import_react32 = require("react");
9340
+ var import_react33 = require("react");
9312
9341
  var import_jsx_runtime222 = require("react/jsx-runtime");
9313
- var RadioGroupContext = (0, import_react32.createContext)(null);
9342
+ var RadioGroupContext = (0, import_react33.createContext)(null);
9314
9343
  var RadioGroup = ({
9315
9344
  children,
9316
9345
  name,
@@ -9318,7 +9347,7 @@ var RadioGroup = ({
9318
9347
  value,
9319
9348
  ...props
9320
9349
  }) => {
9321
- const context = (0, import_react32.useMemo)(() => {
9350
+ const context = (0, import_react33.useMemo)(() => {
9322
9351
  return {
9323
9352
  name,
9324
9353
  onChange
@@ -9329,7 +9358,7 @@ var RadioGroup = ({
9329
9358
  RadioGroup.displayName = "RadioGroup";
9330
9359
 
9331
9360
  // src/components/IconButton/IconButton.tsx
9332
- var import_react33 = require("react");
9361
+ var import_react34 = require("react");
9333
9362
  var import_styled_components51 = __toESM(require("styled-components"));
9334
9363
  var import_jsx_runtime223 = require("react/jsx-runtime");
9335
9364
  var StyledButton2 = (0, import_styled_components51.default)(Button)`
@@ -9346,7 +9375,7 @@ var StyledButton2 = (0, import_styled_components51.default)(Button)`
9346
9375
  align-items: center;
9347
9376
  line-height: 1;
9348
9377
  `;
9349
- var IconButton = (0, import_react33.forwardRef)(
9378
+ var IconButton = (0, import_react34.forwardRef)(
9350
9379
  ({ children, label, size = "md", ...props }, ref) => {
9351
9380
  const responsiveSize = useResponsiveProp(size);
9352
9381
  return /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(
@@ -9357,7 +9386,7 @@ var IconButton = (0, import_react33.forwardRef)(
9357
9386
  "aria-label": label,
9358
9387
  "data-wistia-ui-icon-button": true,
9359
9388
  size: responsiveSize,
9360
- children: (0, import_react33.cloneElement)(import_react33.Children.only(children), {
9389
+ children: (0, import_react34.cloneElement)(import_react34.Children.only(children), {
9361
9390
  size: responsiveSize
9362
9391
  })
9363
9392
  }
@@ -9419,12 +9448,12 @@ Image.displayName = "Image";
9419
9448
  var import_styled_components53 = __toESM(require("styled-components"));
9420
9449
  var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
9421
9450
  var import_type_guards31 = require("@wistia/type-guards");
9422
- var import_react35 = require("react");
9451
+ var import_react36 = require("react");
9423
9452
 
9424
9453
  // src/components/Menu/MenuContext.tsx
9425
- var import_react34 = require("react");
9426
- var MenuContext = (0, import_react34.createContext)({ compact: false });
9427
- var useMenuContext = () => (0, import_react34.useContext)(MenuContext);
9454
+ var import_react35 = require("react");
9455
+ var MenuContext = (0, import_react35.createContext)({ compact: false });
9456
+ var useMenuContext = () => (0, import_react35.useContext)(MenuContext);
9428
9457
 
9429
9458
  // src/components/Menu/Menu.tsx
9430
9459
  var import_jsx_runtime225 = require("react/jsx-runtime");
@@ -9528,7 +9557,7 @@ var Menu = ({
9528
9557
  onInteractOutside,
9529
9558
  ...props
9530
9559
  }) => {
9531
- const contextValue = (0, import_react35.useMemo)(() => ({ compact }), [compact]);
9560
+ const contextValue = (0, import_react36.useMemo)(() => ({ compact }), [compact]);
9532
9561
  let controlProps = {
9533
9562
  ...(0, import_type_guards31.isNotNil)(onOpenChange) && (0, import_type_guards31.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {}
9534
9563
  };
@@ -9602,13 +9631,13 @@ var MenuLabel = ({ children, ...props }) => {
9602
9631
  MenuLabel.displayName = "MenuLabel";
9603
9632
 
9604
9633
  // src/components/Menu/SubMenu.tsx
9605
- var import_react37 = require("react");
9634
+ var import_react38 = require("react");
9606
9635
  var import_styled_components57 = __toESM(require("styled-components"));
9607
9636
  var import_react_dropdown_menu3 = require("@radix-ui/react-dropdown-menu");
9608
9637
  var import_type_guards33 = require("@wistia/type-guards");
9609
9638
 
9610
9639
  // src/components/Menu/MenuItemButton.tsx
9611
- var import_react36 = require("react");
9640
+ var import_react37 = require("react");
9612
9641
  var import_styled_components55 = __toESM(require("styled-components"));
9613
9642
  var import_type_guards32 = require("@wistia/type-guards");
9614
9643
  var import_jsx_runtime227 = require("react/jsx-runtime");
@@ -9685,7 +9714,7 @@ var StyledBadgeContainer = import_styled_components55.default.div`
9685
9714
  font-size: var(--wui-typography-label-4-size);
9686
9715
  color: var(--wui-color-text-secondary);
9687
9716
  `;
9688
- var MenuItemButton = (0, import_react36.forwardRef)(({ children, appearance, command, icon, ...props }, ref) => {
9717
+ var MenuItemButton = (0, import_react37.forwardRef)(({ children, appearance, command, icon, ...props }, ref) => {
9689
9718
  let { colorScheme, badge } = props;
9690
9719
  if (appearance === "dangerous") {
9691
9720
  if ((0, import_type_guards32.isNotUndefined)(colorScheme)) {
@@ -9781,7 +9810,7 @@ var SubMenu = ({
9781
9810
  ...props
9782
9811
  }) => {
9783
9812
  const { isSmAndUp } = useMq();
9784
- const [isExpanded, setIsExpanded] = (0, import_react37.useState)(false);
9813
+ const [isExpanded, setIsExpanded] = (0, import_react38.useState)(false);
9785
9814
  const { compact } = useMenuContext();
9786
9815
  return isSmAndUp ? /* @__PURE__ */ (0, import_jsx_runtime229.jsxs)(import_react_dropdown_menu3.DropdownMenuSub, { onOpenChange, children: [
9787
9816
  /* @__PURE__ */ (0, import_jsx_runtime229.jsxs)(SubMenuTrigger, { ...props, children: [
@@ -9810,10 +9839,10 @@ var SubMenu = ({
9810
9839
  SubMenu.displayName = "SubMenu";
9811
9840
 
9812
9841
  // src/components/Menu/MenuItem.tsx
9813
- var import_react38 = require("react");
9842
+ var import_react39 = require("react");
9814
9843
  var import_react_dropdown_menu4 = require("@radix-ui/react-dropdown-menu");
9815
9844
  var import_jsx_runtime230 = require("react/jsx-runtime");
9816
- var MenuItem = (0, import_react38.forwardRef)(
9845
+ var MenuItem = (0, import_react39.forwardRef)(
9817
9846
  ({ onSelect = () => null, ...props }, ref) => {
9818
9847
  return /* @__PURE__ */ (0, import_jsx_runtime230.jsx)(
9819
9848
  import_react_dropdown_menu4.DropdownMenuItem,
@@ -9963,7 +9992,7 @@ var CheckboxMenuItem = ({
9963
9992
  CheckboxMenuItem.displayName = "CheckboxMenuItem";
9964
9993
 
9965
9994
  // src/components/Modal/Modal.tsx
9966
- var import_react42 = require("react");
9995
+ var import_react43 = require("react");
9967
9996
  var import_styled_components62 = __toESM(require("styled-components"));
9968
9997
  var import_react_dialog4 = require("@radix-ui/react-dialog");
9969
9998
  var import_type_guards35 = require("@wistia/type-guards");
@@ -10023,19 +10052,19 @@ var ModalHeader = ({
10023
10052
  };
10024
10053
 
10025
10054
  // src/components/Modal/ModalContent.tsx
10026
- var import_react40 = require("react");
10055
+ var import_react41 = require("react");
10027
10056
  var import_styled_components60 = __toESM(require("styled-components"));
10028
10057
  var import_react_dialog3 = require("@radix-ui/react-dialog");
10029
10058
 
10030
10059
  // src/private/hooks/useFocusRestore/useFocusRestore.ts
10031
- var import_react39 = require("react");
10060
+ var import_react40 = require("react");
10032
10061
  var import_type_guards34 = require("@wistia/type-guards");
10033
10062
  var useFocusRestore = () => {
10034
- const previouslyFocusedRef = (0, import_react39.useRef)(null);
10035
- (0, import_react39.useEffect)(() => {
10063
+ const previouslyFocusedRef = (0, import_react40.useRef)(null);
10064
+ (0, import_react40.useEffect)(() => {
10036
10065
  previouslyFocusedRef.current = document.activeElement;
10037
10066
  }, []);
10038
- (0, import_react39.useEffect)(() => {
10067
+ (0, import_react40.useEffect)(() => {
10039
10068
  return () => {
10040
10069
  if ((0, import_type_guards34.isNotNil)(previouslyFocusedRef.current)) {
10041
10070
  setTimeout(() => {
@@ -10089,7 +10118,7 @@ var StyledModalContent = (0, import_styled_components60.default)(import_react_di
10089
10118
  }
10090
10119
  }
10091
10120
  `;
10092
- var ModalContent = (0, import_react40.forwardRef)(
10121
+ var ModalContent = (0, import_react41.forwardRef)(
10093
10122
  ({ fullHeight, width, children, ...otherProps }, ref) => {
10094
10123
  useFocusRestore();
10095
10124
  return /* @__PURE__ */ (0, import_jsx_runtime236.jsx)(
@@ -10107,7 +10136,7 @@ var ModalContent = (0, import_react40.forwardRef)(
10107
10136
  );
10108
10137
 
10109
10138
  // src/private/components/Backdrop/Backdrop.tsx
10110
- var import_react41 = require("react");
10139
+ var import_react42 = require("react");
10111
10140
  var import_styled_components61 = __toESM(require("styled-components"));
10112
10141
  var import_jsx_runtime237 = require("react/jsx-runtime");
10113
10142
  var backdropAnimationDuration = 150;
@@ -10145,7 +10174,7 @@ var BackdropComponent = import_styled_components61.default.div`
10145
10174
  }
10146
10175
  }
10147
10176
  `;
10148
- var Backdrop = (0, import_react41.forwardRef)(
10177
+ var Backdrop = (0, import_react42.forwardRef)(
10149
10178
  ({ alignHorizontal = "center", alignVertical = "center", children, ...otherProps }, ref) => /* @__PURE__ */ (0, import_jsx_runtime237.jsx)(
10150
10179
  BackdropComponent,
10151
10180
  {
@@ -10167,7 +10196,7 @@ var ModalBody = import_styled_components62.default.div`
10167
10196
  display: flex;
10168
10197
  order: 2;
10169
10198
  `;
10170
- var Modal = (0, import_react42.forwardRef)(
10199
+ var Modal = (0, import_react43.forwardRef)(
10171
10200
  ({
10172
10201
  children,
10173
10202
  fullHeight = false,
@@ -10369,7 +10398,7 @@ var ProgressBar = ({
10369
10398
  ProgressBar.displayName = "ProgressBar";
10370
10399
 
10371
10400
  // src/components/Radio/Radio.tsx
10372
- var import_react43 = require("react");
10401
+ var import_react44 = require("react");
10373
10402
  var import_styled_components65 = __toESM(require("styled-components"));
10374
10403
  var import_type_guards38 = require("@wistia/type-guards");
10375
10404
  var import_jsx_runtime241 = require("react/jsx-runtime");
@@ -10472,7 +10501,7 @@ var StyledHiddenRadioInput = import_styled_components65.default.input`
10472
10501
  display: block;
10473
10502
  }
10474
10503
  `;
10475
- var Radio = (0, import_react43.forwardRef)(
10504
+ var Radio = (0, import_react44.forwardRef)(
10476
10505
  ({
10477
10506
  checked,
10478
10507
  disabled = false,
@@ -10487,7 +10516,7 @@ var Radio = (0, import_react43.forwardRef)(
10487
10516
  hideLabel = false,
10488
10517
  ...props
10489
10518
  }, ref) => {
10490
- const generatedId = (0, import_react43.useId)();
10519
+ const generatedId = (0, import_react44.useId)();
10491
10520
  const computedId = (0, import_type_guards38.isNonEmptyString)(id) ? id : `wistia-ui-radio-${generatedId}`;
10492
10521
  return /* @__PURE__ */ (0, import_jsx_runtime241.jsxs)(
10493
10522
  StyledRadioWrapper,
@@ -10537,22 +10566,22 @@ var Radio = (0, import_react43.forwardRef)(
10537
10566
  Radio.displayName = "Radio";
10538
10567
 
10539
10568
  // src/components/SegmentedControl/SegmentedControl.tsx
10540
- var import_react47 = require("react");
10569
+ var import_react48 = require("react");
10541
10570
  var import_styled_components67 = __toESM(require("styled-components"));
10542
10571
  var import_react_toggle_group = require("@radix-ui/react-toggle-group");
10543
10572
  var import_type_guards39 = require("@wistia/type-guards");
10544
10573
 
10545
10574
  // src/components/SegmentedControl/useSelectedItemMeasurements.tsx
10546
- var import_react44 = require("react");
10575
+ var import_react45 = require("react");
10547
10576
  var import_jsx_runtime242 = require("react/jsx-runtime");
10548
- var SelectedItemMeasurementsContext = (0, import_react44.createContext)(
10577
+ var SelectedItemMeasurementsContext = (0, import_react45.createContext)(
10549
10578
  null
10550
10579
  );
10551
10580
  var SelectedItemMeasurementsProvider = ({
10552
10581
  children
10553
10582
  }) => {
10554
- const [selectedItemMeasurements, setSelectedItemMeasurements] = (0, import_react44.useState)(null);
10555
- const contextValue = (0, import_react44.useMemo)(
10583
+ const [selectedItemMeasurements, setSelectedItemMeasurements] = (0, import_react45.useState)(null);
10584
+ const contextValue = (0, import_react45.useMemo)(
10556
10585
  () => ({
10557
10586
  setSelectedItemMeasurements,
10558
10587
  selectedItemMeasurements
@@ -10562,7 +10591,7 @@ var SelectedItemMeasurementsProvider = ({
10562
10591
  return /* @__PURE__ */ (0, import_jsx_runtime242.jsx)(SelectedItemMeasurementsContext.Provider, { value: contextValue, children });
10563
10592
  };
10564
10593
  var useSelectedItemMeasurements = () => {
10565
- const context = (0, import_react44.useContext)(SelectedItemMeasurementsContext);
10594
+ const context = (0, import_react45.useContext)(SelectedItemMeasurementsContext);
10566
10595
  if (context === null) {
10567
10596
  throw new Error(
10568
10597
  "useSelectedItemMeasurements must be used within a SelectedItemMeasurementsProvider"
@@ -10572,15 +10601,15 @@ var useSelectedItemMeasurements = () => {
10572
10601
  };
10573
10602
 
10574
10603
  // src/components/SegmentedControl/SelectedItemIndicator.tsx
10575
- var import_react46 = require("react");
10604
+ var import_react47 = require("react");
10576
10605
  var import_styled_components66 = __toESM(require("styled-components"));
10577
10606
 
10578
10607
  // src/components/SegmentedControl/useSegmentedControlValue.tsx
10579
- var import_react45 = require("react");
10580
- var SegmentedControlValueContext = (0, import_react45.createContext)(null);
10608
+ var import_react46 = require("react");
10609
+ var SegmentedControlValueContext = (0, import_react46.createContext)(null);
10581
10610
  var SegmentedControlValueProvider = SegmentedControlValueContext.Provider;
10582
10611
  var useSegmentedControlValue = () => {
10583
- const context = (0, import_react45.useContext)(SegmentedControlValueContext);
10612
+ const context = (0, import_react46.useContext)(SegmentedControlValueContext);
10584
10613
  if (context === null) {
10585
10614
  throw new Error("useSegmentedControlValue must be used within a SegmentedControlValueProvider");
10586
10615
  }
@@ -10604,7 +10633,7 @@ var SelectedItemIndicatorDiv = import_styled_components66.default.div`
10604
10633
  var SelectedItemIndicator = () => {
10605
10634
  const selectedValue = useSegmentedControlValue();
10606
10635
  const { selectedItemMeasurements } = useSelectedItemMeasurements();
10607
- const selectedItemIndicatorStyle = (0, import_react46.useMemo)(
10636
+ const selectedItemIndicatorStyle = (0, import_react47.useMemo)(
10608
10637
  () => selectedItemMeasurements != null ? {
10609
10638
  height: `${selectedItemMeasurements.offsetHeight}px`,
10610
10639
  transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
@@ -10642,7 +10671,7 @@ var segmentedControlStyles = import_styled_components67.css`
10642
10671
  var StyledSegmentedControl = (0, import_styled_components67.default)(import_react_toggle_group.Root)`
10643
10672
  ${segmentedControlStyles}
10644
10673
  `;
10645
- var SegmentedControl = (0, import_react47.forwardRef)(
10674
+ var SegmentedControl = (0, import_react48.forwardRef)(
10646
10675
  ({
10647
10676
  children,
10648
10677
  disabled = false,
@@ -10677,7 +10706,7 @@ var SegmentedControl = (0, import_react47.forwardRef)(
10677
10706
  SegmentedControl.displayName = "SegmentedControl";
10678
10707
 
10679
10708
  // src/components/SegmentedControl/SegmentedControlItem.tsx
10680
- var import_react48 = require("react");
10709
+ var import_react49 = require("react");
10681
10710
  var import_styled_components68 = __toESM(require("styled-components"));
10682
10711
  var import_react_toggle_group2 = require("@radix-ui/react-toggle-group");
10683
10712
  var import_type_guards41 = require("@wistia/type-guards");
@@ -10760,11 +10789,11 @@ var segmentedControlItemStyles = import_styled_components68.css`
10760
10789
  var StyledSegmentedControlItem = (0, import_styled_components68.default)(import_react_toggle_group2.Item)`
10761
10790
  ${segmentedControlItemStyles}
10762
10791
  `;
10763
- var SegmentedControlItem = (0, import_react48.forwardRef)(
10792
+ var SegmentedControlItem = (0, import_react49.forwardRef)(
10764
10793
  ({ disabled, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
10765
10794
  const selectedValue = useSegmentedControlValue();
10766
10795
  const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
10767
- const buttonRef = (0, import_react48.useRef)(null);
10796
+ const buttonRef = (0, import_react49.useRef)(null);
10768
10797
  const combinedRef = mergeRefs([buttonRef, forwardedRef]);
10769
10798
  const handleClick = (event) => {
10770
10799
  const target = event.target;
@@ -10773,7 +10802,7 @@ var SegmentedControlItem = (0, import_react48.forwardRef)(
10773
10802
  event.preventDefault();
10774
10803
  }
10775
10804
  };
10776
- (0, import_react48.useEffect)(() => {
10805
+ (0, import_react49.useEffect)(() => {
10777
10806
  const buttonElem = buttonRef.current;
10778
10807
  if (!buttonElem) {
10779
10808
  return void 0;
@@ -10819,7 +10848,7 @@ SegmentedControlItem.displayName = "SegmentedControlItem";
10819
10848
 
10820
10849
  // src/components/Select/Select.tsx
10821
10850
  var import_react_select = require("@radix-ui/react-select");
10822
- var import_react49 = require("react");
10851
+ var import_react50 = require("react");
10823
10852
  var import_styled_components69 = __toESM(require("styled-components"));
10824
10853
  var import_jsx_runtime246 = require("react/jsx-runtime");
10825
10854
  var StyledTrigger = (0, import_styled_components69.default)(import_react_select.Trigger)`
@@ -10888,7 +10917,7 @@ var StyledContent3 = (0, import_styled_components69.default)(import_react_select
10888
10917
  max-height: var(--radix-select-content-available-height);
10889
10918
  z-index: var(--wui-zindex-select);
10890
10919
  `;
10891
- var Select = (0, import_react49.forwardRef)(
10920
+ var Select = (0, import_react50.forwardRef)(
10892
10921
  ({
10893
10922
  colorScheme = "inherit",
10894
10923
  children,
@@ -10937,7 +10966,7 @@ Select.displayName = "Select";
10937
10966
 
10938
10967
  // src/components/Select/SelectOption.tsx
10939
10968
  var import_react_select2 = require("@radix-ui/react-select");
10940
- var import_react50 = require("react");
10969
+ var import_react51 = require("react");
10941
10970
  var import_styled_components70 = __toESM(require("styled-components"));
10942
10971
  var import_jsx_runtime247 = require("react/jsx-runtime");
10943
10972
  var StyledItem = (0, import_styled_components70.default)(import_react_select2.Item)`
@@ -10966,7 +10995,7 @@ var StyledItem = (0, import_styled_components70.default)(import_react_select2.It
10966
10995
  var StyledIconContainer = import_styled_components70.default.span`
10967
10996
  width: 12px;
10968
10997
  `;
10969
- var SelectOption = (0, import_react50.forwardRef)(
10998
+ var SelectOption = (0, import_react51.forwardRef)(
10970
10999
  ({ children, ...props }, forwardedRef) => {
10971
11000
  return /* @__PURE__ */ (0, import_jsx_runtime247.jsxs)(
10972
11001
  StyledItem,
@@ -11011,7 +11040,7 @@ var SelectOptionGroup = ({ children, label, ...props }) => {
11011
11040
  };
11012
11041
 
11013
11042
  // src/components/Switch/Switch.tsx
11014
- var import_react51 = require("react");
11043
+ var import_react52 = require("react");
11015
11044
  var import_styled_components72 = __toESM(require("styled-components"));
11016
11045
  var import_type_guards42 = require("@wistia/type-guards");
11017
11046
  var import_jsx_runtime249 = require("react/jsx-runtime");
@@ -11116,7 +11145,7 @@ var StyledHiddenSwitchInput = import_styled_components72.default.input`
11116
11145
  }
11117
11146
  }
11118
11147
  `;
11119
- var Switch = (0, import_react51.forwardRef)(
11148
+ var Switch = (0, import_react52.forwardRef)(
11120
11149
  ({
11121
11150
  checked,
11122
11151
  disabled = false,
@@ -11131,7 +11160,7 @@ var Switch = (0, import_react51.forwardRef)(
11131
11160
  hideLabel = false,
11132
11161
  ...props
11133
11162
  }, ref) => {
11134
- const generatedId = (0, import_react51.useId)();
11163
+ const generatedId = (0, import_react52.useId)();
11135
11164
  const computedId = (0, import_type_guards42.isNonEmptyString)(id) ? id : `wistia-ui-switch-${generatedId}`;
11136
11165
  return /* @__PURE__ */ (0, import_jsx_runtime249.jsxs)(StyledSwitchWrapper, { $disabled: disabled, children: [
11137
11166
  /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
@@ -11213,8 +11242,8 @@ var Table = ({
11213
11242
  var import_styled_components74 = __toESM(require("styled-components"));
11214
11243
 
11215
11244
  // src/components/Table/TableSectionContext.ts
11216
- var import_react52 = require("react");
11217
- var TableSectionContext = (0, import_react52.createContext)(null);
11245
+ var import_react53 = require("react");
11246
+ var TableSectionContext = (0, import_react53.createContext)(null);
11218
11247
 
11219
11248
  // src/components/Table/TableBody.tsx
11220
11249
  var import_jsx_runtime251 = require("react/jsx-runtime");
@@ -11224,7 +11253,7 @@ var TableBody = ({ children, ...props }) => {
11224
11253
  };
11225
11254
 
11226
11255
  // src/components/Table/TableCell.tsx
11227
- var import_react53 = require("react");
11256
+ var import_react54 = require("react");
11228
11257
  var import_styled_components75 = __toESM(require("styled-components"));
11229
11258
  var import_jsx_runtime252 = require("react/jsx-runtime");
11230
11259
  var sharedStyles = import_styled_components75.css`
@@ -11245,7 +11274,7 @@ var StyledTd = import_styled_components75.default.td`
11245
11274
  line-height: var(--wui-typography-body-2-line-height);
11246
11275
  `;
11247
11276
  var TableCell = ({ children, ...props }) => {
11248
- const section = (0, import_react53.useContext)(TableSectionContext);
11277
+ const section = (0, import_react54.useContext)(TableSectionContext);
11249
11278
  if (section === "head") {
11250
11279
  return /* @__PURE__ */ (0, import_jsx_runtime252.jsx)(StyledTh, { ...props, children });
11251
11280
  }
@@ -11277,7 +11306,7 @@ var TableRow = ({ children, ...props }) => {
11277
11306
  };
11278
11307
 
11279
11308
  // src/components/Tabs/Tabs.tsx
11280
- var import_react58 = require("react");
11309
+ var import_react59 = require("react");
11281
11310
  var import_react_tabs4 = require("@radix-ui/react-tabs");
11282
11311
  var import_type_guards44 = require("@wistia/type-guards");
11283
11312
  var import_styled_components83 = __toESM(require("styled-components"));
@@ -11332,17 +11361,17 @@ var TabList = ({
11332
11361
  TabList.displayName = "TabList";
11333
11362
 
11334
11363
  // src/components/Tabs/TabItem.tsx
11335
- var import_react55 = require("react");
11364
+ var import_react56 = require("react");
11336
11365
  var import_styled_components81 = __toESM(require("styled-components"));
11337
11366
  var import_react_tabs3 = require("@radix-ui/react-tabs");
11338
11367
  var import_type_guards43 = require("@wistia/type-guards");
11339
11368
 
11340
11369
  // src/components/Tabs/useTabsValue.tsx
11341
- var import_react54 = require("react");
11342
- var TabsValueContext = (0, import_react54.createContext)(null);
11370
+ var import_react55 = require("react");
11371
+ var TabsValueContext = (0, import_react55.createContext)(null);
11343
11372
  var TabsValueProvider = TabsValueContext.Provider;
11344
11373
  var useTabsValue = () => {
11345
- const context = (0, import_react54.useContext)(TabsValueContext);
11374
+ const context = (0, import_react55.useContext)(TabsValueContext);
11346
11375
  if (context === null) {
11347
11376
  throw new Error("useTabsValue must be used within a TabsValueProvider");
11348
11377
  }
@@ -11358,13 +11387,13 @@ var StyledTabItem = (0, import_styled_components81.default)(import_react_tabs3.T
11358
11387
  outline: none;
11359
11388
  }
11360
11389
  `;
11361
- var TabItem = (0, import_react55.forwardRef)(
11390
+ var TabItem = (0, import_react56.forwardRef)(
11362
11391
  ({ disabled = false, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
11363
11392
  const selectedValue = useTabsValue();
11364
11393
  const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
11365
- const buttonRef = (0, import_react55.useRef)(null);
11394
+ const buttonRef = (0, import_react56.useRef)(null);
11366
11395
  const combinedRef = mergeRefs([buttonRef, forwardedRef]);
11367
- (0, import_react55.useEffect)(() => {
11396
+ (0, import_react56.useEffect)(() => {
11368
11397
  const buttonElem = buttonRef.current;
11369
11398
  if (!buttonElem) {
11370
11399
  return void 0;
@@ -11408,16 +11437,16 @@ var TabItem = (0, import_react55.forwardRef)(
11408
11437
  TabItem.displayName = "TabItem";
11409
11438
 
11410
11439
  // src/components/Tabs/extractTabItems.ts
11411
- var import_react56 = require("react");
11440
+ var import_react57 = require("react");
11412
11441
  var extractTabItems = (children) => {
11413
11442
  const tabItems = [];
11414
- import_react56.Children.forEach(children, (child) => {
11415
- if (!(0, import_react56.isValidElement)(child)) {
11443
+ import_react57.Children.forEach(children, (child) => {
11444
+ if (!(0, import_react57.isValidElement)(child)) {
11416
11445
  return;
11417
11446
  }
11418
11447
  if (typeof child.type !== "string" && child.type.displayName === "Tab") {
11419
11448
  tabItems.push(child);
11420
- } else if (child.type === import_react56.Fragment) {
11449
+ } else if (child.type === import_react57.Fragment) {
11421
11450
  const fragmentElement = child;
11422
11451
  tabItems.push(...extractTabItems(fragmentElement.props.children));
11423
11452
  } else if ((child.props.children ?? null) != null) {
@@ -11430,7 +11459,7 @@ var extractTabItems = (children) => {
11430
11459
  };
11431
11460
 
11432
11461
  // src/components/Tabs/SelectedItemIndicator.tsx
11433
- var import_react57 = require("react");
11462
+ var import_react58 = require("react");
11434
11463
  var import_styled_components82 = __toESM(require("styled-components"));
11435
11464
  var import_jsx_runtime259 = require("react/jsx-runtime");
11436
11465
  var TabsSelectedItemIndicatorDiv = (0, import_styled_components82.default)(SelectedItemIndicatorDiv)`
@@ -11441,7 +11470,7 @@ var TabsSelectedItemIndicatorDiv = (0, import_styled_components82.default)(Selec
11441
11470
  var SelectedItemIndicator2 = () => {
11442
11471
  const { selectedItemMeasurements } = useSelectedItemMeasurements();
11443
11472
  const selectedValue = useTabsValue();
11444
- const selectedItemIndicatorStyle = (0, import_react57.useMemo)(
11473
+ const selectedItemIndicatorStyle = (0, import_react58.useMemo)(
11445
11474
  () => selectedItemMeasurements != null ? {
11446
11475
  height: `${selectedItemMeasurements.offsetHeight}px`,
11447
11476
  transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
@@ -11482,7 +11511,7 @@ var StyledTabsRoot = (0, import_styled_components83.default)(import_react_tabs4.
11482
11511
  flex-direction: column;
11483
11512
  height: ${({ $stickyHeaders }) => $stickyHeaders ? "100%" : "auto"};
11484
11513
  `;
11485
- var Tabs = (0, import_react58.forwardRef)(
11514
+ var Tabs = (0, import_react59.forwardRef)(
11486
11515
  ({
11487
11516
  children,
11488
11517
  fullWidth = true,
@@ -11494,7 +11523,7 @@ var Tabs = (0, import_react58.forwardRef)(
11494
11523
  ...otherProps
11495
11524
  }, ref) => {
11496
11525
  const tabItems = extractTabItems(children);
11497
- const [internalSelectedValue, setInternalSelectedValue] = (0, import_react58.useState)(defaultSelectedValue);
11526
+ const [internalSelectedValue, setInternalSelectedValue] = (0, import_react59.useState)(defaultSelectedValue);
11498
11527
  const modeProps = defaultSelectedValue !== void 0 ? {
11499
11528
  defaultValue: defaultSelectedValue,
11500
11529
  onValueChange: setInternalSelectedValue
@@ -11580,15 +11609,15 @@ var Tabs = (0, import_react58.forwardRef)(
11580
11609
  Tabs.displayName = "Tabs";
11581
11610
 
11582
11611
  // src/components/Tabs/Tab.tsx
11583
- var import_react59 = require("react");
11612
+ var import_react60 = require("react");
11584
11613
  var import_jsx_runtime261 = require("react/jsx-runtime");
11585
- var Tab = (0, import_react59.forwardRef)(({ children }, ref) => {
11614
+ var Tab = (0, import_react60.forwardRef)(({ children }, ref) => {
11586
11615
  return /* @__PURE__ */ (0, import_jsx_runtime261.jsx)("div", { ref, children });
11587
11616
  });
11588
11617
  Tab.displayName = "Tab";
11589
11618
 
11590
11619
  // src/components/Tag/Tag.tsx
11591
- var import_react60 = require("react");
11620
+ var import_react61 = require("react");
11592
11621
  var import_styled_components84 = __toESM(require("styled-components"));
11593
11622
  var import_type_guards45 = require("@wistia/type-guards");
11594
11623
  var import_jsx_runtime262 = require("react/jsx-runtime");
@@ -11705,7 +11734,7 @@ var RemoveButton = ({ onClickRemove, onClickRemoveLabel, colorScheme }) => {
11705
11734
  )
11706
11735
  ] });
11707
11736
  };
11708
- var Tag = (0, import_react60.forwardRef)(
11737
+ var Tag = (0, import_react61.forwardRef)(
11709
11738
  ({
11710
11739
  onClickRemove,
11711
11740
  colorScheme = "inherit",
@@ -11963,6 +11992,7 @@ WistiaLogo.displayName = "WistiaLogo";
11963
11992
  useFormState,
11964
11993
  useImperativeFilePicker,
11965
11994
  useKey,
11995
+ useLocalStorage,
11966
11996
  useMq,
11967
11997
  useToast,
11968
11998
  useWindowSize