@wistia/ui 0.5.6 → 0.5.7-beta.474b3d52.66f3a6b

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.5.6
3
+ * @license @wistia/ui v0.5.7-beta.474b3d52.66f3a6b
4
4
  *
5
5
  * Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
6
6
  *
@@ -51,6 +51,9 @@ __export(index_exports, {
51
51
  Checkbox: () => Checkbox,
52
52
  CheckboxGroup: () => CheckboxGroup,
53
53
  CheckboxMenuItem: () => CheckboxMenuItem,
54
+ Collapsible: () => Collapsible,
55
+ CollapsibleContent: () => CollapsibleContent,
56
+ CollapsibleTrigger: () => CollapsibleTrigger,
54
57
  ColorSchemeWrapper: () => ColorSchemeWrapper,
55
58
  DataCard: () => DataCard,
56
59
  DataCardTrend: () => DataCardTrend,
@@ -6753,7 +6756,12 @@ var ButtonGroupComponent = import_styled_components28.default.div`
6753
6756
  display: flex;
6754
6757
 
6755
6758
  /* this helps ensure that primary buttons appear at the top of the column */
6756
- flex-direction: ${({ $align }) => $align === "right" ? "column-reverse" : "column"};
6759
+ flex-direction: ${({ $collapse, $align }) => {
6760
+ if (!$collapse) {
6761
+ return "row";
6762
+ }
6763
+ return $align === "right" ? "column-reverse" : "column";
6764
+ }};
6757
6765
  gap: var(--wui-space-02);
6758
6766
  align-items: center;
6759
6767
  justify-content: ${({ $align }) => getAlignment($align)};
@@ -6773,6 +6781,7 @@ var ButtonGroup = ({
6773
6781
  children,
6774
6782
  align = "left",
6775
6783
  fullWidth = false,
6784
+ collapseOnSmallScreens = true,
6776
6785
  ...otherProps
6777
6786
  }) => {
6778
6787
  if ((0, import_type_guards18.isNil)(children)) {
@@ -6782,6 +6791,7 @@ var ButtonGroup = ({
6782
6791
  ButtonGroupComponent,
6783
6792
  {
6784
6793
  $align: align,
6794
+ $collapse: collapseOnSmallScreens,
6785
6795
  $fullWidth: fullWidth,
6786
6796
  ...otherProps,
6787
6797
  children
@@ -7181,11 +7191,63 @@ var Checkbox = (0, import_react19.forwardRef)(
7181
7191
  );
7182
7192
  Checkbox.displayName = "Checkbox";
7183
7193
 
7184
- // src/components/DataCards/DataCard.tsx
7185
- var import_styled_components34 = __toESM(require("styled-components"));
7194
+ // src/components/Collapsible/Collapsible.tsx
7195
+ var import_react_collapsible = require("@radix-ui/react-collapsible");
7186
7196
  var import_type_guards21 = require("@wistia/type-guards");
7197
+ var import_styled_components34 = __toESM(require("styled-components"));
7187
7198
  var import_jsx_runtime176 = require("react/jsx-runtime");
7188
- var StyledDataCard = import_styled_components34.default.div`
7199
+ var StyledRoot = (0, import_styled_components34.default)(import_react_collapsible.Root)`
7200
+ &[data-state='closed'] [data-wui-collapsible-content] {
7201
+ display: -webkit-box;
7202
+ -webkit-box-orient: vertical;
7203
+ -webkit-line-clamp: var(--wui-collapsible-content-clamp-lines);
7204
+ overflow: hidden;
7205
+ }
7206
+ `;
7207
+ var Collapsible = ({
7208
+ children,
7209
+ isOpen = false,
7210
+ onOpenChange
7211
+ }) => {
7212
+ const controlProps = {
7213
+ ...(0, import_type_guards21.isNotNil)(onOpenChange) && (0, import_type_guards21.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {}
7214
+ };
7215
+ return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledRoot, { ...controlProps, children });
7216
+ };
7217
+ Collapsible.displayName = "Collapsible";
7218
+
7219
+ // src/components/Collapsible/CollapsibleTrigger.tsx
7220
+ var import_react20 = require("react");
7221
+ var import_react_collapsible2 = require("@radix-ui/react-collapsible");
7222
+ var import_jsx_runtime177 = require("react/jsx-runtime");
7223
+ var CollapsibleTrigger = ({ children }) => {
7224
+ import_react20.Children.only(children);
7225
+ return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(import_react_collapsible2.Trigger, { asChild: true, children });
7226
+ };
7227
+
7228
+ // src/components/Collapsible/CollapsibleContent.tsx
7229
+ var import_styled_components35 = __toESM(require("styled-components"));
7230
+ var import_react_collapsible3 = require("@radix-ui/react-collapsible");
7231
+ var import_type_guards22 = require("@wistia/type-guards");
7232
+ var import_jsx_runtime178 = require("react/jsx-runtime");
7233
+ var ClampedContent = import_styled_components35.default.div.attrs({ "data-wui-collapsible-content": true })`
7234
+ --wui-collapsible-content-clamp-lines: ${({ $clamp }) => $clamp};
7235
+ `;
7236
+ var CollapsibleContent = ({ clamp, children }) => {
7237
+ if ((0, import_type_guards22.isNotUndefined)(clamp)) {
7238
+ return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(ClampedContent, { $clamp: clamp, children });
7239
+ }
7240
+ return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(import_react_collapsible3.Content, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime178.jsxs)(import_jsx_runtime178.Fragment, { children: [
7241
+ children,
7242
+ " "
7243
+ ] }) });
7244
+ };
7245
+
7246
+ // src/components/DataCards/DataCard.tsx
7247
+ var import_styled_components36 = __toESM(require("styled-components"));
7248
+ var import_type_guards23 = require("@wistia/type-guards");
7249
+ var import_jsx_runtime179 = require("react/jsx-runtime");
7250
+ var StyledDataCard = import_styled_components36.default.div`
7189
7251
  ${({ $colorScheme }) => getColorScheme($colorScheme)}
7190
7252
  display: grid;
7191
7253
  grid-template-areas: 'label slot' 'value value';
@@ -7198,7 +7260,7 @@ var StyledDataCard = import_styled_components34.default.div`
7198
7260
  border-radius: var(--wui-border-radius-02);
7199
7261
  position: relative;
7200
7262
  `;
7201
- var shimmer = import_styled_components34.keyframes`
7263
+ var shimmer = import_styled_components36.keyframes`
7202
7264
  0% {
7203
7265
  background-position: 200% 0;
7204
7266
  }
@@ -7206,7 +7268,7 @@ var shimmer = import_styled_components34.keyframes`
7206
7268
  background-position: -200% 0;
7207
7269
  }
7208
7270
  `;
7209
- var LoadingBackground = import_styled_components34.default.div`
7271
+ var LoadingBackground = import_styled_components36.default.div`
7210
7272
  background: linear-gradient(
7211
7273
  90deg,
7212
7274
  var(--wui-color-bg-surface-tertiary) 25%,
@@ -7217,27 +7279,27 @@ var LoadingBackground = import_styled_components34.default.div`
7217
7279
  animation: ${shimmer} 1.5s infinite;
7218
7280
  border-radius: var(--wui-border-radius-01);
7219
7281
  `;
7220
- var StyledLoadingLabel = (0, import_styled_components34.default)(LoadingBackground)`
7282
+ var StyledLoadingLabel = (0, import_styled_components36.default)(LoadingBackground)`
7221
7283
  width: 80px;
7222
7284
  height: var(--wui-typography-heading-6-line-height);
7223
7285
  `;
7224
- var StyledLoadingValue = (0, import_styled_components34.default)(LoadingBackground)`
7286
+ var StyledLoadingValue = (0, import_styled_components36.default)(LoadingBackground)`
7225
7287
  width: 90%;
7226
7288
  height: var(--wui-typography-heading-3-line-height);
7227
7289
  `;
7228
- var StyledLabel3 = (0, import_styled_components34.default)(Heading)`
7290
+ var StyledLabel3 = (0, import_styled_components36.default)(Heading)`
7229
7291
  grid-area: label;
7230
7292
  `;
7231
- var StyledValue = (0, import_styled_components34.default)(Heading)`
7293
+ var StyledValue = (0, import_styled_components36.default)(Heading)`
7232
7294
  grid-area: value;
7233
7295
  `;
7234
- var StyledSlot = import_styled_components34.default.div`
7296
+ var StyledSlot = import_styled_components36.default.div`
7235
7297
  display: flex;
7236
7298
  justify-content: flex-end;
7237
7299
  grid-area: slot;
7238
7300
  align-self: center;
7239
7301
  `;
7240
- var StyledDataCardTrendContainer = import_styled_components34.default.div`
7302
+ var StyledDataCardTrendContainer = import_styled_components36.default.div`
7241
7303
  position: absolute;
7242
7304
  bottom: var(--wui-space-01);
7243
7305
  right: var(--wui-space-01);
@@ -7250,39 +7312,39 @@ var DataCard = ({
7250
7312
  isLoading = false,
7251
7313
  trend,
7252
7314
  ...props
7253
- }) => /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)(
7315
+ }) => /* @__PURE__ */ (0, import_jsx_runtime179.jsxs)(
7254
7316
  StyledDataCard,
7255
7317
  {
7256
7318
  $colorScheme: colorScheme,
7257
7319
  ...props,
7258
7320
  children: [
7259
- /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
7321
+ /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
7260
7322
  StyledLabel3,
7261
7323
  {
7262
7324
  renderAs: "dt",
7263
7325
  variant: "heading6",
7264
- children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledLoadingLabel, {}) : label
7326
+ children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(StyledLoadingLabel, {}) : label
7265
7327
  }
7266
7328
  ),
7267
- /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
7329
+ /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
7268
7330
  StyledValue,
7269
7331
  {
7270
7332
  renderAs: "dd",
7271
7333
  variant: "heading3",
7272
- children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledLoadingValue, {}) : value
7334
+ children: isLoading ? /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(StyledLoadingValue, {}) : value
7273
7335
  }
7274
7336
  ),
7275
- (0, import_type_guards21.isNotNull)(upperRightSlot) && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledSlot, { children: upperRightSlot }),
7276
- (0, import_type_guards21.isNotNull)(trend) && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledDataCardTrendContainer, { children: trend })
7337
+ (0, import_type_guards23.isNotNull)(upperRightSlot) && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(StyledSlot, { children: upperRightSlot }),
7338
+ (0, import_type_guards23.isNotNull)(trend) && !isLoading && /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(StyledDataCardTrendContainer, { children: trend })
7277
7339
  ]
7278
7340
  }
7279
7341
  );
7280
7342
  DataCard.displayName = "DataCard";
7281
7343
 
7282
7344
  // src/components/DataCards/DataCards.tsx
7283
- var import_styled_components35 = __toESM(require("styled-components"));
7284
- var import_jsx_runtime177 = require("react/jsx-runtime");
7285
- var StyledDataCards = (0, import_styled_components35.default)(Box)`
7345
+ var import_styled_components37 = __toESM(require("styled-components"));
7346
+ var import_jsx_runtime180 = require("react/jsx-runtime");
7347
+ var StyledDataCards = (0, import_styled_components37.default)(Box)`
7286
7348
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
7287
7349
  margin-top: 0; /* Remove default <dl> style */
7288
7350
  > * {
@@ -7296,7 +7358,7 @@ var DataCards = ({
7296
7358
  colorScheme = "inherit",
7297
7359
  ...props
7298
7360
  }) => {
7299
- return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
7361
+ return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
7300
7362
  StyledDataCards,
7301
7363
  {
7302
7364
  ...props,
@@ -7314,25 +7376,25 @@ var DataCards = ({
7314
7376
  DataCards.displayName = "DataCards";
7315
7377
 
7316
7378
  // src/components/DataCards/DataCardTrend.tsx
7317
- var import_styled_components37 = __toESM(require("styled-components"));
7379
+ var import_styled_components39 = __toESM(require("styled-components"));
7318
7380
 
7319
7381
  // src/components/Text/Text.tsx
7320
- var import_react20 = require("react");
7321
- var import_styled_components36 = __toESM(require("styled-components"));
7322
- var import_jsx_runtime178 = require("react/jsx-runtime");
7323
- var bodyBoldStyles = import_styled_components36.css`
7382
+ var import_react21 = require("react");
7383
+ var import_styled_components38 = __toESM(require("styled-components"));
7384
+ var import_jsx_runtime181 = require("react/jsx-runtime");
7385
+ var bodyBoldStyles = import_styled_components38.css`
7324
7386
  > strong,
7325
7387
  b {
7326
7388
  font-weight: var(--wui-typography-weight-body-bold);
7327
7389
  }
7328
7390
  `;
7329
- var labelBoldStyles = import_styled_components36.css`
7391
+ var labelBoldStyles = import_styled_components38.css`
7330
7392
  > strong,
7331
7393
  b {
7332
7394
  font-weight: var(--wui-typography-weight-label-bold);
7333
7395
  }
7334
7396
  `;
7335
- var body1TextStyle = import_styled_components36.css`
7397
+ var body1TextStyle = import_styled_components38.css`
7336
7398
  --font-family: var(--wui-typography-body-1-family);
7337
7399
  --font-size: var(--wui-typography-body-1-size);
7338
7400
  --font-weight: var(--wui-typography-body-1-weight);
@@ -7340,7 +7402,7 @@ var body1TextStyle = import_styled_components36.css`
7340
7402
  --paragraph-spacing: var(--wui-typography-body-1-paragraph-spacing);
7341
7403
  ${bodyBoldStyles}
7342
7404
  `;
7343
- var body2TextStyle = import_styled_components36.css`
7405
+ var body2TextStyle = import_styled_components38.css`
7344
7406
  --font-family: var(--wui-typography-body-2-family);
7345
7407
  --font-size: var(--wui-typography-body-2-size);
7346
7408
  --font-weight: var(--wui-typography-body-2-weight);
@@ -7348,7 +7410,7 @@ var body2TextStyle = import_styled_components36.css`
7348
7410
  --paragraph-spacing: var(--wui-typography-body-2-paragraph-spacing);
7349
7411
  ${bodyBoldStyles}
7350
7412
  `;
7351
- var body3TextStyle = import_styled_components36.css`
7413
+ var body3TextStyle = import_styled_components38.css`
7352
7414
  --font-family: var(--wui-typography-body-3-family);
7353
7415
  --font-size: var(--wui-typography-body-3-size);
7354
7416
  --font-weight: var(--wui-typography-body-3-weight);
@@ -7356,7 +7418,7 @@ var body3TextStyle = import_styled_components36.css`
7356
7418
  --paragraph-spacing: var(--wui-typography-body-3-paragraph-spacing);
7357
7419
  ${bodyBoldStyles}
7358
7420
  `;
7359
- var body4TextStyle = import_styled_components36.css`
7421
+ var body4TextStyle = import_styled_components38.css`
7360
7422
  --font-family: var(--wui-typography-body-4-family);
7361
7423
  --font-size: var(--wui-typography-body-4-size);
7362
7424
  --font-weight: var(--wui-typography-body-4-weight);
@@ -7364,47 +7426,47 @@ var body4TextStyle = import_styled_components36.css`
7364
7426
  --paragraph-spacing: var(--wui-typography-body-4-paragraph-spacing);
7365
7427
  ${bodyBoldStyles}
7366
7428
  `;
7367
- var label1TextStyle = import_styled_components36.css`
7429
+ var label1TextStyle = import_styled_components38.css`
7368
7430
  --font-family: var(--wui-typography-label-1-family);
7369
7431
  --font-size: var(--wui-typography-label-1-size);
7370
7432
  --font-weight: var(--wui-typography-label-1-weight);
7371
7433
  --line-height: var(--wui-typography-label-1-line-height);
7372
7434
  ${labelBoldStyles}
7373
7435
  `;
7374
- var label2TextStyle = import_styled_components36.css`
7436
+ var label2TextStyle = import_styled_components38.css`
7375
7437
  --font-family: var(--wui-typography-label-2-family);
7376
7438
  --font-size: var(--wui-typography-label-2-size);
7377
7439
  --font-weight: var(--wui-typography-label-2-weight);
7378
7440
  --line-height: var(--wui-typography-label-2-line-height);
7379
7441
  ${labelBoldStyles}
7380
7442
  `;
7381
- var label3TextStyle = import_styled_components36.css`
7443
+ var label3TextStyle = import_styled_components38.css`
7382
7444
  --font-family: var(--wui-typography-label-3-family);
7383
7445
  --font-size: var(--wui-typography-label-3-size);
7384
7446
  --font-weight: var(--wui-typography-label-3-weight);
7385
7447
  --line-height: var(--wui-typography-label-3-line-height);
7386
7448
  ${labelBoldStyles}
7387
7449
  `;
7388
- var label4TextStyle = import_styled_components36.css`
7450
+ var label4TextStyle = import_styled_components38.css`
7389
7451
  --font-family: var(--wui-typography-label-4-family);
7390
7452
  --font-size: var(--wui-typography-label-4-size);
7391
7453
  --font-weight: var(--wui-typography-label-4-weight);
7392
7454
  --line-height: var(--wui-typography-label-4-line-height);
7393
7455
  ${labelBoldStyles}
7394
7456
  `;
7395
- var body1MonoTextStyle = import_styled_components36.css`
7457
+ var body1MonoTextStyle = import_styled_components38.css`
7396
7458
  ${body1TextStyle};
7397
7459
  --font-family: var(--wui-typography-family-mono);
7398
7460
  `;
7399
- var body2MonoTextStyle = import_styled_components36.css`
7461
+ var body2MonoTextStyle = import_styled_components38.css`
7400
7462
  ${body2TextStyle};
7401
7463
  --font-family: var(--wui-typography-family-mono);
7402
7464
  `;
7403
- var body3MonoTextStyle = import_styled_components36.css`
7465
+ var body3MonoTextStyle = import_styled_components38.css`
7404
7466
  ${body3TextStyle};
7405
7467
  --font-family: var(--wui-typography-family-mono);
7406
7468
  `;
7407
- var body4MonoTextStyle = import_styled_components36.css`
7469
+ var body4MonoTextStyle = import_styled_components38.css`
7408
7470
  ${body4TextStyle};
7409
7471
  --font-family: var(--wui-typography-family-mono);
7410
7472
  `;
@@ -7439,7 +7501,7 @@ var variantElementMap2 = {
7439
7501
  label3: labelElement,
7440
7502
  label4: labelElement
7441
7503
  };
7442
- var StyledText = import_styled_components36.default.div`
7504
+ var StyledText = import_styled_components38.default.div`
7443
7505
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
7444
7506
  --text-color: ${({ $prominence, $disabled }) => {
7445
7507
  if ($disabled) {
@@ -7463,19 +7525,19 @@ var StyledText = import_styled_components36.default.div`
7463
7525
  margin: 0;
7464
7526
  ${({ $variant }) => variantStyleMap2[$variant]}
7465
7527
  ${({ $ellipsis }) => $ellipsis && ellipsisStyle};
7466
- ${({ $inline }) => $inline && import_styled_components36.css`
7528
+ ${({ $inline }) => $inline && import_styled_components38.css`
7467
7529
  display: inline-block;
7468
7530
  `}
7469
- ${({ $disabled }) => $disabled && import_styled_components36.css`
7531
+ ${({ $disabled }) => $disabled && import_styled_components38.css`
7470
7532
  --text-color: var(--wui-color-text-disabled);
7471
7533
  `}
7472
- ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components36.css`
7534
+ ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components38.css`
7473
7535
  user-select: none;
7474
7536
  `}
7475
- ${({ $align }) => import_styled_components36.css`
7537
+ ${({ $align }) => import_styled_components38.css`
7476
7538
  text-align: ${$align};
7477
7539
  `}
7478
- ${({ as }) => as === "p" && import_styled_components36.css`
7540
+ ${({ as }) => as === "p" && import_styled_components38.css`
7479
7541
  display: block;
7480
7542
 
7481
7543
  + p {
@@ -7483,7 +7545,7 @@ var StyledText = import_styled_components36.default.div`
7483
7545
  }
7484
7546
  `}
7485
7547
  `;
7486
- var TextComponent = (0, import_react20.forwardRef)(
7548
+ var TextComponent = (0, import_react21.forwardRef)(
7487
7549
  ({
7488
7550
  align = "left",
7489
7551
  colorScheme = "inherit",
@@ -7496,7 +7558,7 @@ var TextComponent = (0, import_react20.forwardRef)(
7496
7558
  renderAs,
7497
7559
  ...otherProps
7498
7560
  }, ref) => {
7499
- return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
7561
+ return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
7500
7562
  StyledText,
7501
7563
  {
7502
7564
  ref,
@@ -7518,8 +7580,8 @@ TextComponent.displayName = "Text";
7518
7580
  var Text = makePolymorphic(TextComponent);
7519
7581
 
7520
7582
  // src/components/DataCards/DataCardTrend.tsx
7521
- var import_jsx_runtime179 = require("react/jsx-runtime");
7522
- var StyledDataCardTrend = import_styled_components37.default.div`
7583
+ var import_jsx_runtime182 = require("react/jsx-runtime");
7584
+ var StyledDataCardTrend = import_styled_components39.default.div`
7523
7585
  ${({ $outlook }) => getColorScheme($outlook === "positive" ? "success" : "error")};
7524
7586
  background: var(--wui-color-bg-app);
7525
7587
  border-radius: var(--wui-border-radius-rounded);
@@ -7534,8 +7596,8 @@ var DataCardTrend = ({
7534
7596
  children,
7535
7597
  ...props
7536
7598
  }) => {
7537
- return /* @__PURE__ */ (0, import_jsx_runtime179.jsxs)(StyledDataCardTrend, { $outlook: outlook, children: [
7538
- /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
7599
+ return /* @__PURE__ */ (0, import_jsx_runtime182.jsxs)(StyledDataCardTrend, { $outlook: outlook, children: [
7600
+ /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
7539
7601
  Icon,
7540
7602
  {
7541
7603
  size: "md",
@@ -7543,7 +7605,7 @@ var DataCardTrend = ({
7543
7605
  ...props
7544
7606
  }
7545
7607
  ),
7546
- /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
7608
+ /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
7547
7609
  Text,
7548
7610
  {
7549
7611
  prominence: "secondary",
@@ -7555,22 +7617,22 @@ var DataCardTrend = ({
7555
7617
  };
7556
7618
 
7557
7619
  // src/components/Divider/Divider.tsx
7558
- var import_styled_components38 = __toESM(require("styled-components"));
7559
- var import_jsx_runtime180 = require("react/jsx-runtime");
7560
- var horizontalBorderCss = import_styled_components38.css`
7620
+ var import_styled_components40 = __toESM(require("styled-components"));
7621
+ var import_jsx_runtime183 = require("react/jsx-runtime");
7622
+ var horizontalBorderCss = import_styled_components40.css`
7561
7623
  border-top-color: var(--wui-color-border);
7562
7624
  border-top-style: solid;
7563
7625
  border-top-width: 1px;
7564
7626
  clear: both; /* for horizontal dividers, ensure it clears any floats */
7565
7627
  height: 0;
7566
7628
  `;
7567
- var verticalBorderCss = import_styled_components38.css`
7629
+ var verticalBorderCss = import_styled_components40.css`
7568
7630
  background-color: var(--wui-color-border);
7569
7631
  max-width: 1px;
7570
7632
  min-height: 100%;
7571
7633
  width: 1px;
7572
7634
  `;
7573
- var DividerComponent = import_styled_components38.default.div`
7635
+ var DividerComponent = import_styled_components40.default.div`
7574
7636
  ${({ $orientation }) => {
7575
7637
  switch ($orientation) {
7576
7638
  case "vertical":
@@ -7585,7 +7647,7 @@ var Divider = ({
7585
7647
  orientation = "horizontal",
7586
7648
  ...otherProps
7587
7649
  }) => {
7588
- return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
7650
+ return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
7589
7651
  DividerComponent,
7590
7652
  {
7591
7653
  $orientation: orientation,
@@ -7598,15 +7660,15 @@ var Divider = ({
7598
7660
  Divider.displayName = "Divider";
7599
7661
 
7600
7662
  // src/components/EditableHeading/EditableHeading.tsx
7601
- var import_styled_components42 = __toESM(require("styled-components"));
7602
- var import_react22 = require("react");
7663
+ var import_styled_components44 = __toESM(require("styled-components"));
7664
+ var import_react23 = require("react");
7603
7665
 
7604
7666
  // src/components/ScreenReaderOnly/ScreenReaderOnly.tsx
7605
- var import_styled_components39 = __toESM(require("styled-components"));
7606
- var import_type_guards22 = require("@wistia/type-guards");
7607
- var import_jsx_runtime181 = require("react/jsx-runtime");
7608
- var VisuallyHidden = import_styled_components39.default.div({ ...visuallyHiddenStyle });
7609
- var VisuallyHiddenButFocusable = import_styled_components39.default.div({
7667
+ var import_styled_components41 = __toESM(require("styled-components"));
7668
+ var import_type_guards24 = require("@wistia/type-guards");
7669
+ var import_jsx_runtime184 = require("react/jsx-runtime");
7670
+ var VisuallyHidden = import_styled_components41.default.div({ ...visuallyHiddenStyle });
7671
+ var VisuallyHiddenButFocusable = import_styled_components41.default.div({
7610
7672
  "&:not(:focus-within)": visuallyHiddenStyle
7611
7673
  });
7612
7674
  var ScreenReaderOnly = ({
@@ -7615,26 +7677,26 @@ var ScreenReaderOnly = ({
7615
7677
  focusable = false,
7616
7678
  ...otherProps
7617
7679
  }) => {
7618
- const accessibleText = (0, import_type_guards22.isNotNil)(text) ? text : children;
7680
+ const accessibleText = (0, import_type_guards24.isNotNil)(text) ? text : children;
7619
7681
  if (focusable) {
7620
- return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(VisuallyHiddenButFocusable, { ...otherProps, children: accessibleText });
7682
+ return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(VisuallyHiddenButFocusable, { ...otherProps, children: accessibleText });
7621
7683
  }
7622
- return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(VisuallyHidden, { ...otherProps, children: accessibleText });
7684
+ return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(VisuallyHidden, { ...otherProps, children: accessibleText });
7623
7685
  };
7624
7686
  ScreenReaderOnly.displayName = "ScreenReaderOnly";
7625
7687
 
7626
7688
  // src/components/Tooltip/Tooltip.tsx
7627
7689
  var import_react_tooltip2 = require("@radix-ui/react-tooltip");
7628
- var import_styled_components40 = __toESM(require("styled-components"));
7629
- var import_jsx_runtime182 = require("react/jsx-runtime");
7630
- var CompactTooltipStyles = import_styled_components40.css`
7690
+ var import_styled_components42 = __toESM(require("styled-components"));
7691
+ var import_jsx_runtime185 = require("react/jsx-runtime");
7692
+ var CompactTooltipStyles = import_styled_components42.css`
7631
7693
  --tooltip-font-size: var(--wui-typography-label-4-size);
7632
7694
  --tooltip-line-height: var(--wui-typography-label-4-line-height);
7633
7695
  --tooltip-font-weight: var(--wui-typography-label-4-weight);
7634
7696
  --tooltip-horizontal-padding: var(--wui-space-02);
7635
7697
  --tooltip-vertical-padding: var(--wui-space-03);
7636
7698
  `;
7637
- var StyledContent = (0, import_styled_components40.default)(import_react_tooltip2.Content)`
7699
+ var StyledContent = (0, import_styled_components42.default)(import_react_tooltip2.Content)`
7638
7700
  --tooltip-font-family: var(--wui-typography-family-default);
7639
7701
  --tooltip-border-radius: var(--wui-border-radius-05);
7640
7702
  --tooltip-bg: var(--wui-color-bg-tooltip);
@@ -7692,14 +7754,14 @@ var Tooltip = ({
7692
7754
  if (forceOpen === true) {
7693
7755
  rootProps.open = true;
7694
7756
  }
7695
- return /* @__PURE__ */ (0, import_jsx_runtime182.jsxs)(
7757
+ return /* @__PURE__ */ (0, import_jsx_runtime185.jsxs)(
7696
7758
  import_react_tooltip2.Root,
7697
7759
  {
7698
7760
  delayDuration: delay,
7699
7761
  ...rootProps,
7700
7762
  children: [
7701
- /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(import_react_tooltip2.Trigger, { asChild: true, children }),
7702
- /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(import_react_tooltip2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime182.jsxs)(
7763
+ /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(import_react_tooltip2.Trigger, { asChild: true, children }),
7764
+ /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(import_react_tooltip2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime185.jsxs)(
7703
7765
  StyledContent,
7704
7766
  {
7705
7767
  $compact: compact,
@@ -7707,7 +7769,7 @@ var Tooltip = ({
7707
7769
  sideOffset: hideArrow ? VISUAL_OFFSET : VISUAL_OFFSET - 2,
7708
7770
  children: [
7709
7771
  content,
7710
- !hideArrow ? /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(import_react_tooltip2.Arrow, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
7772
+ !hideArrow ? /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(import_react_tooltip2.Arrow, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(
7711
7773
  "svg",
7712
7774
  {
7713
7775
  fill: "var(--tooltip-bg)",
@@ -7716,7 +7778,7 @@ var Tooltip = ({
7716
7778
  viewBox: "0 0 12 8",
7717
7779
  width: "12",
7718
7780
  xmlns: "http://www.w3.org/2000/svg",
7719
- children: /* @__PURE__ */ (0, import_jsx_runtime182.jsx)("path", { d: "M6.8 6.93333C6.4 7.46667 5.6 7.46667 5.2 6.93333L-2.54292e-07 -1.04907e-06L12 0L6.8 6.93333Z" })
7781
+ children: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)("path", { d: "M6.8 6.93333C6.4 7.46667 5.6 7.46667 5.2 6.93333L-2.54292e-07 -1.04907e-06L12 0L6.8 6.93333Z" })
7720
7782
  }
7721
7783
  ) }) : null
7722
7784
  ]
@@ -7729,11 +7791,11 @@ var Tooltip = ({
7729
7791
  Tooltip.displayName = "Tooltip";
7730
7792
 
7731
7793
  // src/components/Input/Input.tsx
7732
- var import_react21 = require("react");
7733
- var import_styled_components41 = __toESM(require("styled-components"));
7734
- var import_type_guards23 = require("@wistia/type-guards");
7735
- var import_jsx_runtime183 = require("react/jsx-runtime");
7736
- var inputStyles = import_styled_components41.css`
7794
+ var import_react22 = require("react");
7795
+ var import_styled_components43 = __toESM(require("styled-components"));
7796
+ var import_type_guards25 = require("@wistia/type-guards");
7797
+ var import_jsx_runtime186 = require("react/jsx-runtime");
7798
+ var inputStyles = import_styled_components43.css`
7737
7799
  --wui-input-color-bg: var(--wui-color-bg-surface);
7738
7800
  --wui-input-color-bg-disabled: var(--wui-color-bg-surface-disabled);
7739
7801
  --wui-input-color-border: var(--wui-color-border);
@@ -7774,7 +7836,7 @@ var inputStyles = import_styled_components41.css`
7774
7836
  }
7775
7837
  }
7776
7838
  `;
7777
- var StyledInputContainer = import_styled_components41.default.div`
7839
+ var StyledInputContainer = import_styled_components43.default.div`
7778
7840
  display: inline-flex;
7779
7841
  position: relative;
7780
7842
  ${inputStyles};
@@ -7818,7 +7880,7 @@ var StyledInputContainer = import_styled_components41.default.div`
7818
7880
  padding-right: 32px;
7819
7881
  }
7820
7882
  `;
7821
- var Input = (0, import_react21.forwardRef)(
7883
+ var Input = (0, import_react22.forwardRef)(
7822
7884
  ({
7823
7885
  fullWidth = false,
7824
7886
  monospace = false,
@@ -7828,27 +7890,27 @@ var Input = (0, import_react21.forwardRef)(
7828
7890
  rightIcon,
7829
7891
  ...props
7830
7892
  }, externalRef) => {
7831
- const internalRef = (0, import_react21.useRef)();
7832
- const ref = (0, import_type_guards23.isNotNil)(externalRef) && (0, import_type_guards23.isRecord)(externalRef) && "current" in externalRef ? externalRef : internalRef;
7893
+ const internalRef = (0, import_react22.useRef)();
7894
+ const ref = (0, import_type_guards25.isNotNil)(externalRef) && (0, import_type_guards25.isRecord)(externalRef) && "current" in externalRef ? externalRef : internalRef;
7833
7895
  let leftIconToDisplay = leftIcon;
7834
- if ((0, import_type_guards23.isNil)(leftIcon) && type === "search") {
7835
- leftIconToDisplay = /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(Icon, { type: "search" });
7896
+ if ((0, import_type_guards25.isNil)(leftIcon) && type === "search") {
7897
+ leftIconToDisplay = /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(Icon, { type: "search" });
7836
7898
  }
7837
- if ((0, import_type_guards23.isNotNil)(leftIconToDisplay)) {
7838
- leftIconToDisplay = (0, import_react21.cloneElement)(leftIconToDisplay, {
7899
+ if ((0, import_type_guards25.isNotNil)(leftIconToDisplay)) {
7900
+ leftIconToDisplay = (0, import_react22.cloneElement)(leftIconToDisplay, {
7839
7901
  size: "md",
7840
7902
  className: "wui-input-left-icon"
7841
7903
  });
7842
7904
  }
7843
7905
  let rightIconToDisplay = rightIcon;
7844
- if ((0, import_type_guards23.isNotNil)(rightIconToDisplay)) {
7845
- rightIconToDisplay = (0, import_react21.cloneElement)(rightIconToDisplay, {
7906
+ if ((0, import_type_guards25.isNotNil)(rightIconToDisplay)) {
7907
+ rightIconToDisplay = (0, import_react22.cloneElement)(rightIconToDisplay, {
7846
7908
  size: "md",
7847
7909
  className: "wui-input-right-icon"
7848
7910
  });
7849
7911
  }
7850
7912
  const handleFocus = (event) => {
7851
- if ((0, import_type_guards23.isNotNil)(props.onFocus)) {
7913
+ if ((0, import_type_guards25.isNotNil)(props.onFocus)) {
7852
7914
  props.onFocus(event);
7853
7915
  }
7854
7916
  if (autoSelect && isValidRef(ref) && "current" in ref) {
@@ -7857,21 +7919,21 @@ var Input = (0, import_react21.forwardRef)(
7857
7919
  });
7858
7920
  }
7859
7921
  };
7860
- return /* @__PURE__ */ (0, import_jsx_runtime183.jsxs)(
7922
+ return /* @__PURE__ */ (0, import_jsx_runtime186.jsxs)(
7861
7923
  StyledInputContainer,
7862
7924
  {
7863
7925
  $fullWidth: fullWidth,
7864
7926
  $monospace: monospace,
7865
7927
  children: [
7866
7928
  leftIconToDisplay ?? null,
7867
- type === "multiline" ? /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
7929
+ type === "multiline" ? /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(
7868
7930
  "textarea",
7869
7931
  {
7870
7932
  ...props,
7871
7933
  ref,
7872
7934
  onFocus: handleFocus
7873
7935
  }
7874
- ) : /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
7936
+ ) : /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(
7875
7937
  "input",
7876
7938
  {
7877
7939
  ...props,
@@ -7889,8 +7951,8 @@ var Input = (0, import_react21.forwardRef)(
7889
7951
  Input.displayName = "Input";
7890
7952
 
7891
7953
  // src/components/EditableHeading/EditableHeading.tsx
7892
- var import_jsx_runtime184 = require("react/jsx-runtime");
7893
- var StyledInput = (0, import_styled_components42.default)(Input)`
7954
+ var import_jsx_runtime187 = require("react/jsx-runtime");
7955
+ var StyledInput = (0, import_styled_components44.default)(Input)`
7894
7956
  :not([rows]) {
7895
7957
  min-height: unset;
7896
7958
  }
@@ -7910,7 +7972,7 @@ var StyledInput = (0, import_styled_components42.default)(Input)`
7910
7972
  height: ${({ $height }) => `${$height}px`};
7911
7973
  }
7912
7974
  `;
7913
- var editableStyles = import_styled_components42.css`
7975
+ var editableStyles = import_styled_components44.css`
7914
7976
  &:has(+ :focus-within) {
7915
7977
  background: var(--wui-color-bg-surface-hover);
7916
7978
  }
@@ -7920,7 +7982,7 @@ var editableStyles = import_styled_components42.css`
7920
7982
  cursor: pointer;
7921
7983
  }
7922
7984
  `;
7923
- var StyledHeading2 = (0, import_styled_components42.default)(Heading)`
7985
+ var StyledHeading2 = (0, import_styled_components44.default)(Heading)`
7924
7986
  width: 100%;
7925
7987
  border-radius: var(--wui-border-radius-02);
7926
7988
  padding: var(--wui-space-02);
@@ -7937,11 +7999,11 @@ var EditableHeading = ({
7937
7999
  forceEditing = false,
7938
8000
  editingDisabled = false
7939
8001
  }) => {
7940
- const [isEditing, setIsEditing] = (0, import_react22.useState)(false);
7941
- const [value, setValue] = (0, import_react22.useState)(children);
7942
- const [previousValue, setPreviousValue] = (0, import_react22.useState)(children);
7943
- const [headingHeight, setHeadingHeight] = (0, import_react22.useState)("60");
7944
- const headingRef = (0, import_react22.useRef)(null);
8002
+ const [isEditing, setIsEditing] = (0, import_react23.useState)(false);
8003
+ const [value, setValue] = (0, import_react23.useState)(children);
8004
+ const [previousValue, setPreviousValue] = (0, import_react23.useState)(children);
8005
+ const [headingHeight, setHeadingHeight] = (0, import_react23.useState)("60");
8006
+ const headingRef = (0, import_react23.useRef)(null);
7945
8007
  const handleSetEditing = (editing) => {
7946
8008
  if (editingDisabled) return;
7947
8009
  if (editing && headingRef.current) {
@@ -7974,7 +8036,7 @@ var EditableHeading = ({
7974
8036
  handleSetEditing(false);
7975
8037
  }
7976
8038
  };
7977
- const HeadingComponent2 = /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
8039
+ const HeadingComponent2 = /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
7978
8040
  StyledHeading2,
7979
8041
  {
7980
8042
  ref: headingRef,
@@ -7988,7 +8050,7 @@ var EditableHeading = ({
7988
8050
  return HeadingComponent2;
7989
8051
  }
7990
8052
  if (isEditing || forceEditing) {
7991
- return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
8053
+ return /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
7992
8054
  StyledInput,
7993
8055
  {
7994
8056
  $height: headingHeight,
@@ -8006,8 +8068,8 @@ var EditableHeading = ({
8006
8068
  }
8007
8069
  );
8008
8070
  }
8009
- return /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(import_jsx_runtime184.Fragment, { children: [
8010
- /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
8071
+ return /* @__PURE__ */ (0, import_jsx_runtime187.jsxs)(import_jsx_runtime187.Fragment, { children: [
8072
+ /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
8011
8073
  Tooltip,
8012
8074
  {
8013
8075
  compact: true,
@@ -8015,7 +8077,7 @@ var EditableHeading = ({
8015
8077
  children: HeadingComponent2
8016
8078
  }
8017
8079
  ),
8018
- /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(ScreenReaderOnly, { children: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
8080
+ /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(ScreenReaderOnly, { children: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
8019
8081
  "button",
8020
8082
  {
8021
8083
  "aria-label": ariaLabel,
@@ -8027,25 +8089,25 @@ var EditableHeading = ({
8027
8089
  };
8028
8090
 
8029
8091
  // src/components/Form/Form.tsx
8030
- var import_react24 = require("react");
8031
- var import_styled_components44 = __toESM(require("styled-components"));
8032
- var import_type_guards24 = require("@wistia/type-guards");
8092
+ var import_react25 = require("react");
8093
+ var import_styled_components46 = __toESM(require("styled-components"));
8094
+ var import_type_guards26 = require("@wistia/type-guards");
8033
8095
 
8034
8096
  // src/components/Stack/Stack.tsx
8035
- var import_react23 = require("react");
8036
- var import_styled_components43 = __toESM(require("styled-components"));
8037
- var import_jsx_runtime185 = require("react/jsx-runtime");
8097
+ var import_react24 = require("react");
8098
+ var import_styled_components45 = __toESM(require("styled-components"));
8099
+ var import_jsx_runtime188 = require("react/jsx-runtime");
8038
8100
  var DEFAULT_ELEMENT4 = "div";
8039
- var StyledStack = import_styled_components43.default.div`
8101
+ var StyledStack = import_styled_components45.default.div`
8040
8102
  display: flex;
8041
8103
  flex-direction: ${({ $direction }) => $direction === "horizontal" ? "row" : "column"};
8042
8104
  gap: ${({ $gap }) => `var(--wui-${$gap})`};
8043
8105
  `;
8044
- var StackComponent = (0, import_react23.forwardRef)(
8106
+ var StackComponent = (0, import_react24.forwardRef)(
8045
8107
  ({ renderAs, direction = "vertical", gap = "space-02", ...props }, ref) => {
8046
8108
  const responsiveGap = useResponsiveProp(gap);
8047
8109
  const responsiveDirection = useResponsiveProp(direction);
8048
- return /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(
8110
+ return /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(
8049
8111
  StyledStack,
8050
8112
  {
8051
8113
  ref,
@@ -8061,29 +8123,29 @@ StackComponent.displayName = "Stack";
8061
8123
  var Stack = makePolymorphic(StackComponent);
8062
8124
 
8063
8125
  // src/components/Form/Form.tsx
8064
- var import_jsx_runtime186 = require("react/jsx-runtime");
8065
- var StyledForm = import_styled_components44.default.form`
8126
+ var import_jsx_runtime189 = require("react/jsx-runtime");
8127
+ var StyledForm = import_styled_components46.default.form`
8066
8128
  --form-default-width: 690px;
8067
8129
 
8068
8130
  max-width: ${({ $fullWidth }) => $fullWidth ? "auto" : "var(--form-default-width)"};
8069
8131
  align-items: ${({ $fullWidth }) => $fullWidth ? "stretch" : "flex-start"};
8070
8132
  `;
8071
- var FormContext = (0, import_react24.createContext)({
8133
+ var FormContext = (0, import_react25.createContext)({
8072
8134
  values: {},
8073
8135
  errors: {},
8074
8136
  hasSubmitted: false,
8075
8137
  formId: ""
8076
8138
  });
8077
8139
  var FormComponent = ({ children, action, values = {}, validate, fullWidth = false, ...props }, forwardedRef) => {
8078
- const [errors, setErrors] = (0, import_react24.useState)({});
8079
- const [hasSubmitted, setHasSubmitted] = (0, import_react24.useState)(false);
8080
- const innerRef = (0, import_react24.useRef)();
8140
+ const [errors, setErrors] = (0, import_react25.useState)({});
8141
+ const [hasSubmitted, setHasSubmitted] = (0, import_react25.useState)(false);
8142
+ const innerRef = (0, import_react25.useRef)();
8081
8143
  const ref = forwardedRef ?? innerRef;
8082
- const autoId = (0, import_react24.useId)();
8144
+ const autoId = (0, import_react25.useId)();
8083
8145
  const id = props.id ?? autoId;
8084
8146
  const handleValidate = (nextFormData) => {
8085
8147
  const nextData = Object.fromEntries(nextFormData.entries());
8086
- if ((0, import_type_guards24.isUndefined)(validate)) {
8148
+ if ((0, import_type_guards26.isUndefined)(validate)) {
8087
8149
  return {};
8088
8150
  }
8089
8151
  return validate(nextData);
@@ -8093,7 +8155,7 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
8093
8155
  props.onBlur(event);
8094
8156
  }
8095
8157
  const formData = new FormData(event.currentTarget);
8096
- if ((0, import_type_guards24.isNotUndefined)(validate)) {
8158
+ if ((0, import_type_guards26.isNotUndefined)(validate)) {
8097
8159
  handleValidate(formData);
8098
8160
  }
8099
8161
  };
@@ -8121,7 +8183,7 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
8121
8183
  void action(null);
8122
8184
  }
8123
8185
  };
8124
- const context = (0, import_react24.useMemo)(() => {
8186
+ const context = (0, import_react25.useMemo)(() => {
8125
8187
  return {
8126
8188
  values,
8127
8189
  errors,
@@ -8131,7 +8193,7 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
8131
8193
  }, [values, errors, id, hasSubmitted]);
8132
8194
  return (
8133
8195
  // @ts-expect-error - generic context providers are a giant pain
8134
- /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(FormContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(
8196
+ /* @__PURE__ */ (0, import_jsx_runtime189.jsx)(FormContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime189.jsx)(
8135
8197
  Stack,
8136
8198
  {
8137
8199
  gap: "space-05",
@@ -8149,15 +8211,15 @@ var FormComponent = ({ children, action, values = {}, validate, fullWidth = fals
8149
8211
  );
8150
8212
  };
8151
8213
  FormComponent.displayName = "Form";
8152
- var Form = (0, import_react24.forwardRef)(FormComponent);
8214
+ var Form = (0, import_react25.forwardRef)(FormComponent);
8153
8215
 
8154
8216
  // src/components/Form/useFormState.tsx
8155
- var import_react25 = require("react");
8217
+ var import_react26 = require("react");
8156
8218
  var useFormState = (action, initialData = {}) => {
8157
- const [data, setData] = (0, import_react25.useState)(initialData);
8158
- const [isPending, setIsPending] = (0, import_react25.useState)(false);
8159
- const [error, setError] = (0, import_react25.useState)(null);
8160
- const formAction = (0, import_react25.useCallback)(
8219
+ const [data, setData] = (0, import_react26.useState)(initialData);
8220
+ const [isPending, setIsPending] = (0, import_react26.useState)(false);
8221
+ const [error, setError] = (0, import_react26.useState)(null);
8222
+ const formAction = (0, import_react26.useCallback)(
8161
8223
  async (nextFormData) => {
8162
8224
  if (nextFormData === null) {
8163
8225
  setData(initialData);
@@ -8188,23 +8250,23 @@ var useFormState = (action, initialData = {}) => {
8188
8250
  };
8189
8251
 
8190
8252
  // src/components/Form/FormErrorSummary.tsx
8191
- var import_react26 = require("react");
8192
- var import_type_guards25 = require("@wistia/type-guards");
8193
- var import_jsx_runtime187 = require("react/jsx-runtime");
8253
+ var import_react27 = require("react");
8254
+ var import_type_guards27 = require("@wistia/type-guards");
8255
+ var import_jsx_runtime190 = require("react/jsx-runtime");
8194
8256
  var ErrorItem = ({ name, error, formId }) => {
8195
- return /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(Link, { href: `${formId}-${name}`, children: error }) }, name);
8257
+ return /* @__PURE__ */ (0, import_jsx_runtime190.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(Link, { href: `${formId}-${name}`, children: error }) }, name);
8196
8258
  };
8197
8259
  var FormErrorSummary = ({ description }) => {
8198
- const ref = (0, import_react26.useRef)(null);
8199
- const { formId, errors, hasSubmitted } = (0, import_react26.useContext)(FormContext);
8260
+ const ref = (0, import_react27.useRef)(null);
8261
+ const { formId, errors, hasSubmitted } = (0, import_react27.useContext)(FormContext);
8200
8262
  const isValid = Object.keys(errors).length === 0;
8201
8263
  if (isValid || !hasSubmitted) {
8202
8264
  return null;
8203
8265
  }
8204
- return /* @__PURE__ */ (0, import_jsx_runtime187.jsxs)("div", { ref, children: [
8205
- /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("p", { children: description }),
8206
- /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("ul", { children: Object.entries(errors).filter(([, error]) => (0, import_type_guards25.isNotUndefined)(error)).map(
8207
- ([name, error]) => (0, import_type_guards25.isArray)(error) ? error.map((err) => /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
8266
+ return /* @__PURE__ */ (0, import_jsx_runtime190.jsxs)("div", { ref, children: [
8267
+ /* @__PURE__ */ (0, import_jsx_runtime190.jsx)("p", { children: description }),
8268
+ /* @__PURE__ */ (0, import_jsx_runtime190.jsx)("ul", { children: Object.entries(errors).filter(([, error]) => (0, import_type_guards27.isNotUndefined)(error)).map(
8269
+ ([name, error]) => (0, import_type_guards27.isArray)(error) ? error.map((err) => /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(
8208
8270
  ErrorItem,
8209
8271
  {
8210
8272
  error: err,
@@ -8212,7 +8274,7 @@ var FormErrorSummary = ({ description }) => {
8212
8274
  name
8213
8275
  },
8214
8276
  err
8215
- )) : /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
8277
+ )) : /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(
8216
8278
  ErrorItem,
8217
8279
  {
8218
8280
  error: error ?? "",
@@ -8226,33 +8288,33 @@ var FormErrorSummary = ({ description }) => {
8226
8288
  };
8227
8289
 
8228
8290
  // src/components/FormField/FormField.tsx
8229
- var import_react29 = require("react");
8230
- var import_styled_components46 = __toESM(require("styled-components"));
8231
- var import_type_guards26 = require("@wistia/type-guards");
8291
+ var import_react30 = require("react");
8292
+ var import_styled_components48 = __toESM(require("styled-components"));
8293
+ var import_type_guards28 = require("@wistia/type-guards");
8232
8294
 
8233
8295
  // src/components/FormGroup/CheckboxGroup.tsx
8234
- var import_react28 = require("react");
8296
+ var import_react29 = require("react");
8235
8297
 
8236
8298
  // src/components/FormGroup/FormGroup.tsx
8237
- var import_styled_components45 = __toESM(require("styled-components"));
8238
- var import_react27 = require("react");
8239
- var import_jsx_runtime188 = require("react/jsx-runtime");
8240
- var StyledFieldset = import_styled_components45.default.fieldset`
8299
+ var import_styled_components47 = __toESM(require("styled-components"));
8300
+ var import_react28 = require("react");
8301
+ var import_jsx_runtime191 = require("react/jsx-runtime");
8302
+ var StyledFieldset = import_styled_components47.default.fieldset`
8241
8303
  border: 0;
8242
8304
  `;
8243
- var StyledLegend = import_styled_components45.default.legend`
8305
+ var StyledLegend = import_styled_components47.default.legend`
8244
8306
  margin-bottom: var(--space-01);
8245
8307
  `;
8246
8308
  var FormGroup = ({ children, label, ...props }) => {
8247
- const ref = (0, import_react27.useRef)();
8248
- return /* @__PURE__ */ (0, import_jsx_runtime188.jsxs)(
8309
+ const ref = (0, import_react28.useRef)();
8310
+ return /* @__PURE__ */ (0, import_jsx_runtime191.jsxs)(
8249
8311
  Stack,
8250
8312
  {
8251
8313
  ...props,
8252
8314
  ref,
8253
8315
  renderAs: StyledFieldset,
8254
8316
  children: [
8255
- /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(
8317
+ /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(
8256
8318
  Heading,
8257
8319
  {
8258
8320
  renderAs: StyledLegend,
@@ -8268,8 +8330,8 @@ var FormGroup = ({ children, label, ...props }) => {
8268
8330
  FormGroup.displayName = "FormGroup";
8269
8331
 
8270
8332
  // src/components/FormGroup/CheckboxGroup.tsx
8271
- var import_jsx_runtime189 = require("react/jsx-runtime");
8272
- var CheckboxGroupContext = (0, import_react28.createContext)(null);
8333
+ var import_jsx_runtime192 = require("react/jsx-runtime");
8334
+ var CheckboxGroupContext = (0, import_react29.createContext)(null);
8273
8335
  var CheckboxGroup = ({
8274
8336
  children,
8275
8337
  name,
@@ -8277,19 +8339,19 @@ var CheckboxGroup = ({
8277
8339
  value,
8278
8340
  ...props
8279
8341
  }) => {
8280
- const context = (0, import_react28.useMemo)(() => {
8342
+ const context = (0, import_react29.useMemo)(() => {
8281
8343
  return {
8282
8344
  name,
8283
8345
  onChange
8284
8346
  };
8285
8347
  }, [name, onChange]);
8286
- return /* @__PURE__ */ (0, import_jsx_runtime189.jsx)(CheckboxGroupContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime189.jsx)(FormGroup, { ...props, children }) });
8348
+ return /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(CheckboxGroupContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(FormGroup, { ...props, children }) });
8287
8349
  };
8288
8350
  CheckboxGroup.displayName = "CheckboxGroup";
8289
8351
 
8290
8352
  // src/components/FormField/FormField.tsx
8291
- var import_jsx_runtime190 = require("react/jsx-runtime");
8292
- var StyledFormField = import_styled_components46.default.div`
8353
+ var import_jsx_runtime193 = require("react/jsx-runtime");
8354
+ var StyledFormField = import_styled_components48.default.div`
8293
8355
  --form-field-spacing: var(--wui-space-01);
8294
8356
  --form-field-error-color: var(--wui-color-text-secondary-error);
8295
8357
 
@@ -8297,7 +8359,7 @@ var StyledFormField = import_styled_components46.default.div`
8297
8359
  flex-direction: column;
8298
8360
  gap: var(--form-field-spacing);
8299
8361
  `;
8300
- var StyledErrorList = import_styled_components46.default.ul`
8362
+ var StyledErrorList = import_styled_components48.default.ul`
8301
8363
  margin: 0;
8302
8364
  padding: 0;
8303
8365
  padding-left: var(--wui-space-04);
@@ -8306,8 +8368,8 @@ var StyledErrorList = import_styled_components46.default.ul`
8306
8368
  gap: var(--wui-space-01);
8307
8369
  `;
8308
8370
  var ErrorMessages = ({ errors, id }) => {
8309
- const isMultipleErrors = (0, import_type_guards26.isArray)(errors);
8310
- return isMultipleErrors ? /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(StyledErrorList, { children: errors.map((error, index) => /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(
8371
+ const isMultipleErrors = (0, import_type_guards28.isArray)(errors);
8372
+ return isMultipleErrors ? /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(StyledErrorList, { children: errors.map((error, index) => /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
8311
8373
  Text,
8312
8374
  {
8313
8375
  colorScheme: "error",
@@ -8317,7 +8379,7 @@ var ErrorMessages = ({ errors, id }) => {
8317
8379
  children: error
8318
8380
  },
8319
8381
  `${id}-${index}`
8320
- )) }) : /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(
8382
+ )) }) : /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
8321
8383
  Text,
8322
8384
  {
8323
8385
  colorScheme: "error",
@@ -8337,8 +8399,8 @@ var FormField = ({
8337
8399
  value,
8338
8400
  ...props
8339
8401
  }) => {
8340
- const formState = (0, import_react29.useContext)(FormContext);
8341
- const checkboxGroup = (0, import_react29.useContext)(CheckboxGroupContext);
8402
+ const formState = (0, import_react30.useContext)(FormContext);
8403
+ const checkboxGroup = (0, import_react30.useContext)(CheckboxGroupContext);
8342
8404
  const id = props.id ?? `${formState.formId}-${name}`;
8343
8405
  const isInlineLabel = children.type === Checkbox;
8344
8406
  const computedError = error ?? formState.errors[name];
@@ -8349,19 +8411,19 @@ var FormField = ({
8349
8411
  label: isInlineLabel ? label : void 0,
8350
8412
  ...props
8351
8413
  };
8352
- if ((0, import_type_guards26.isUndefined)(value) && (0, import_type_guards26.isNotUndefined)(defaultValue)) {
8414
+ if ((0, import_type_guards28.isUndefined)(value) && (0, import_type_guards28.isNotUndefined)(defaultValue)) {
8353
8415
  childProps = {
8354
8416
  ...childProps,
8355
8417
  defaultValue
8356
8418
  };
8357
8419
  }
8358
- if ((0, import_type_guards26.isNotNil)(checkboxGroup)) {
8359
- const computedName = (0, import_type_guards26.isNotNil)(checkboxGroup.name) ? `${checkboxGroup.name}[${name}]` : name;
8420
+ if ((0, import_type_guards28.isNotNil)(checkboxGroup)) {
8421
+ const computedName = (0, import_type_guards28.isNotNil)(checkboxGroup.name) ? `${checkboxGroup.name}[${name}]` : name;
8360
8422
  const handleChange = (event) => {
8361
- if ((0, import_type_guards26.isNotUndefined)(props.onChange)) {
8423
+ if ((0, import_type_guards28.isNotUndefined)(props.onChange)) {
8362
8424
  props.onChange(event);
8363
8425
  }
8364
- if ((0, import_type_guards26.isNotUndefined)(checkboxGroup.onChange)) {
8426
+ if ((0, import_type_guards28.isNotUndefined)(checkboxGroup.onChange)) {
8365
8427
  checkboxGroup.onChange(event);
8366
8428
  }
8367
8429
  };
@@ -8369,15 +8431,15 @@ var FormField = ({
8369
8431
  ...childProps,
8370
8432
  name: computedName,
8371
8433
  onChange: handleChange,
8372
- "aria-invalid": (0, import_type_guards26.isNotNil)(error),
8373
- "aria-describedby": (0, import_type_guards26.isNotNil)(error) ? `${id}-error` : void 0
8434
+ "aria-invalid": (0, import_type_guards28.isNotNil)(error),
8435
+ "aria-describedby": (0, import_type_guards28.isNotNil)(error) ? `${id}-error` : void 0
8374
8436
  };
8375
8437
  }
8376
- import_react29.Children.only(children);
8377
- return /* @__PURE__ */ (0, import_jsx_runtime190.jsxs)(StyledFormField, { ...props, children: [
8378
- !isInlineLabel && /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(Label, { htmlFor: id, children: label }),
8379
- (0, import_react29.cloneElement)(children, childProps),
8380
- (0, import_type_guards26.isNotNil)(computedError) ? /* @__PURE__ */ (0, import_jsx_runtime190.jsx)(
8438
+ import_react30.Children.only(children);
8439
+ return /* @__PURE__ */ (0, import_jsx_runtime193.jsxs)(StyledFormField, { ...props, children: [
8440
+ !isInlineLabel && /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(Label, { htmlFor: id, children: label }),
8441
+ (0, import_react30.cloneElement)(children, childProps),
8442
+ (0, import_type_guards28.isNotNil)(computedError) ? /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
8381
8443
  ErrorMessages,
8382
8444
  {
8383
8445
  errors: computedError,
@@ -8389,9 +8451,9 @@ var FormField = ({
8389
8451
  FormField.displayName = "FormField";
8390
8452
 
8391
8453
  // src/components/FormGroup/RadioGroup.tsx
8392
- var import_react30 = require("react");
8393
- var import_jsx_runtime191 = require("react/jsx-runtime");
8394
- var RadioGroupContext = (0, import_react30.createContext)(null);
8454
+ var import_react31 = require("react");
8455
+ var import_jsx_runtime194 = require("react/jsx-runtime");
8456
+ var RadioGroupContext = (0, import_react31.createContext)(null);
8395
8457
  var RadioGroup = ({
8396
8458
  children,
8397
8459
  name,
@@ -8399,21 +8461,21 @@ var RadioGroup = ({
8399
8461
  value,
8400
8462
  ...props
8401
8463
  }) => {
8402
- const context = (0, import_react30.useMemo)(() => {
8464
+ const context = (0, import_react31.useMemo)(() => {
8403
8465
  return {
8404
8466
  name,
8405
8467
  onChange
8406
8468
  };
8407
8469
  }, [name, onChange]);
8408
- return /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(RadioGroupContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(FormGroup, { ...props, children }) });
8470
+ return /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(RadioGroupContext.Provider, { value: context, children: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(FormGroup, { ...props, children }) });
8409
8471
  };
8410
8472
  RadioGroup.displayName = "RadioGroup";
8411
8473
 
8412
8474
  // src/components/IconButton/IconButton.tsx
8413
- var import_react31 = require("react");
8414
- var import_styled_components47 = __toESM(require("styled-components"));
8415
- var import_jsx_runtime192 = require("react/jsx-runtime");
8416
- var StyledButton2 = (0, import_styled_components47.default)(Button)`
8475
+ var import_react32 = require("react");
8476
+ var import_styled_components49 = __toESM(require("styled-components"));
8477
+ var import_jsx_runtime195 = require("react/jsx-runtime");
8478
+ var StyledButton2 = (0, import_styled_components49.default)(Button)`
8417
8479
  --icon-button-size-sm: 24px;
8418
8480
  --icon-button-size-md: 32px;
8419
8481
  --icon-button-size-lg: 40px;
@@ -8427,10 +8489,10 @@ var StyledButton2 = (0, import_styled_components47.default)(Button)`
8427
8489
  align-items: center;
8428
8490
  line-height: 1;
8429
8491
  `;
8430
- var IconButton = (0, import_react31.forwardRef)(
8492
+ var IconButton = (0, import_react32.forwardRef)(
8431
8493
  ({ children, label, size = "md", ...props }, ref) => {
8432
8494
  const responsiveSize = useResponsiveProp(size);
8433
- return /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(
8495
+ return /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(
8434
8496
  StyledButton2,
8435
8497
  {
8436
8498
  ...props,
@@ -8438,7 +8500,7 @@ var IconButton = (0, import_react31.forwardRef)(
8438
8500
  "aria-label": label,
8439
8501
  "data-wistia-ui-icon-button": true,
8440
8502
  size: responsiveSize,
8441
- children: (0, import_react31.cloneElement)(import_react31.Children.only(children), {
8503
+ children: (0, import_react32.cloneElement)(import_react32.Children.only(children), {
8442
8504
  size: responsiveSize
8443
8505
  })
8444
8506
  }
@@ -8448,19 +8510,19 @@ var IconButton = (0, import_react31.forwardRef)(
8448
8510
  IconButton.displayName = "IconButton";
8449
8511
 
8450
8512
  // src/components/Menu/Menu.tsx
8451
- var import_styled_components48 = __toESM(require("styled-components"));
8513
+ var import_styled_components50 = __toESM(require("styled-components"));
8452
8514
  var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
8453
- var import_type_guards27 = require("@wistia/type-guards");
8454
- var import_react33 = require("react");
8515
+ var import_type_guards29 = require("@wistia/type-guards");
8516
+ var import_react34 = require("react");
8455
8517
 
8456
8518
  // src/components/Menu/MenuContext.tsx
8457
- var import_react32 = require("react");
8458
- var MenuContext = (0, import_react32.createContext)({ compact: false });
8459
- var useMenuContext = () => (0, import_react32.useContext)(MenuContext);
8519
+ var import_react33 = require("react");
8520
+ var MenuContext = (0, import_react33.createContext)({ compact: false });
8521
+ var useMenuContext = () => (0, import_react33.useContext)(MenuContext);
8460
8522
 
8461
8523
  // src/components/Menu/Menu.tsx
8462
- var import_jsx_runtime193 = require("react/jsx-runtime");
8463
- var open = import_styled_components48.keyframes`
8524
+ var import_jsx_runtime196 = require("react/jsx-runtime");
8525
+ var open = import_styled_components50.keyframes`
8464
8526
  from {
8465
8527
  opacity: 0;
8466
8528
  transform: scale(.97) translateY(-8px);
@@ -8470,7 +8532,7 @@ var open = import_styled_components48.keyframes`
8470
8532
  transform: scale(1);
8471
8533
  }
8472
8534
  `;
8473
- var close = import_styled_components48.keyframes`
8535
+ var close = import_styled_components50.keyframes`
8474
8536
  from {
8475
8537
  opacity: 1;
8476
8538
  transform: scale(1);
@@ -8480,7 +8542,7 @@ var close = import_styled_components48.keyframes`
8480
8542
  transform: scale(.97) translateY(-8px);
8481
8543
  }
8482
8544
  `;
8483
- var menuItemCss = import_styled_components48.css`
8545
+ var menuItemCss = import_styled_components50.css`
8484
8546
  --menu-label-description-gap: var(--wui-space-01);
8485
8547
  --menu-item-inner-gap: var(--wui-space-03);
8486
8548
  --menu-item-left-icon-size: 24px;
@@ -8491,7 +8553,7 @@ var menuItemCss = import_styled_components48.css`
8491
8553
  --menu-label-line-height: var(--wui-typography-label-3-line-height);
8492
8554
  --menu-divider-margin: var(--wui-space-02);
8493
8555
  `;
8494
- var compactMenuItemCss = import_styled_components48.css`
8556
+ var compactMenuItemCss = import_styled_components50.css`
8495
8557
  --menu-label-description-gap: 0;
8496
8558
  --menu-item-inner-gap: var(--wui-space-02);
8497
8559
  --menu-item-left-icon-size: 16px;
@@ -8502,7 +8564,7 @@ var compactMenuItemCss = import_styled_components48.css`
8502
8564
  --menu-label-line-height: var(--wui-typography-label-4-line-height);
8503
8565
  --menu-divider-margin: var(--wui-space-01);
8504
8566
  `;
8505
- var menuContentCss = import_styled_components48.css`
8567
+ var menuContentCss = import_styled_components50.css`
8506
8568
  --menu-font-family: var(--wui-typography-family-default);
8507
8569
  --menu-bg: var(--wui-color-bg-surface);
8508
8570
  --menu-shadow: var(--wui-elevation-01);
@@ -8544,7 +8606,7 @@ var menuContentCss = import_styled_components48.css`
8544
8606
  margin: var(--menu-divider-margin) 0;
8545
8607
  }
8546
8608
  `;
8547
- var MenuContent = (0, import_styled_components48.default)(import_react_dropdown_menu.DropdownMenuContent)`
8609
+ var MenuContent = (0, import_styled_components50.default)(import_react_dropdown_menu.DropdownMenuContent)`
8548
8610
  ${menuContentCss}
8549
8611
  `;
8550
8612
  var Menu = ({
@@ -8560,9 +8622,9 @@ var Menu = ({
8560
8622
  onInteractOutside,
8561
8623
  ...props
8562
8624
  }) => {
8563
- const contextValue = (0, import_react33.useMemo)(() => ({ compact }), [compact]);
8625
+ const contextValue = (0, import_react34.useMemo)(() => ({ compact }), [compact]);
8564
8626
  let controlProps = {
8565
- ...(0, import_type_guards27.isNotNil)(onOpenChange) && (0, import_type_guards27.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {}
8627
+ ...(0, import_type_guards29.isNotNil)(onOpenChange) && (0, import_type_guards29.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {}
8566
8628
  };
8567
8629
  if (disabled) {
8568
8630
  controlProps = {
@@ -8570,24 +8632,24 @@ var Menu = ({
8570
8632
  onOpenChange: () => null
8571
8633
  };
8572
8634
  }
8573
- return /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(MenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime193.jsxs)(
8635
+ return /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(MenuContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime196.jsxs)(
8574
8636
  import_react_dropdown_menu.DropdownMenu,
8575
8637
  {
8576
8638
  modal: false,
8577
8639
  ...controlProps,
8578
8640
  children: [
8579
- /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(import_react_dropdown_menu.DropdownMenuTrigger, { asChild: true, children: (0, import_type_guards27.isNotUndefined)(trigger) ? trigger : /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
8641
+ /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(import_react_dropdown_menu.DropdownMenuTrigger, { asChild: true, children: (0, import_type_guards29.isNotUndefined)(trigger) ? trigger : /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(
8580
8642
  Button,
8581
8643
  {
8582
8644
  "aria-expanded": isOpen,
8583
8645
  disabled,
8584
8646
  forceState: isOpen ? "active" : void 0,
8585
- rightIcon: /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(Icon, { type: "caret-down" }),
8647
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(Icon, { type: "caret-down" }),
8586
8648
  ...triggerProps,
8587
8649
  children: label
8588
8650
  }
8589
8651
  ) }),
8590
- /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(import_react_dropdown_menu.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
8652
+ /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(import_react_dropdown_menu.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(
8591
8653
  MenuContent,
8592
8654
  {
8593
8655
  ...props,
@@ -8607,19 +8669,19 @@ var Menu = ({
8607
8669
  Menu.displayName = "Menu";
8608
8670
 
8609
8671
  // src/components/Menu/MenuLabel.tsx
8610
- var import_styled_components49 = __toESM(require("styled-components"));
8672
+ var import_styled_components51 = __toESM(require("styled-components"));
8611
8673
  var import_react_dropdown_menu2 = require("@radix-ui/react-dropdown-menu");
8612
- var import_jsx_runtime194 = require("react/jsx-runtime");
8613
- var StyledMenuLabel = (0, import_styled_components49.default)(import_react_dropdown_menu2.DropdownMenuLabel)`
8674
+ var import_jsx_runtime197 = require("react/jsx-runtime");
8675
+ var StyledMenuLabel = (0, import_styled_components51.default)(import_react_dropdown_menu2.DropdownMenuLabel)`
8614
8676
  padding: var(--wui-space-02);
8615
8677
  `;
8616
8678
  var MenuLabel = ({ children, ...props }) => {
8617
- return /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(
8679
+ return /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(
8618
8680
  StyledMenuLabel,
8619
8681
  {
8620
8682
  asChild: true,
8621
8683
  ...props,
8622
- children: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(
8684
+ children: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(
8623
8685
  Heading,
8624
8686
  {
8625
8687
  renderAs: "span",
@@ -8634,17 +8696,17 @@ var MenuLabel = ({ children, ...props }) => {
8634
8696
  MenuLabel.displayName = "MenuLabel";
8635
8697
 
8636
8698
  // src/components/Menu/SubMenu.tsx
8637
- var import_react35 = require("react");
8638
- var import_styled_components52 = __toESM(require("styled-components"));
8699
+ var import_react36 = require("react");
8700
+ var import_styled_components54 = __toESM(require("styled-components"));
8639
8701
  var import_react_dropdown_menu3 = require("@radix-ui/react-dropdown-menu");
8640
- var import_type_guards29 = require("@wistia/type-guards");
8702
+ var import_type_guards31 = require("@wistia/type-guards");
8641
8703
 
8642
8704
  // src/components/Menu/MenuItemButton.tsx
8643
- var import_react34 = require("react");
8644
- var import_styled_components50 = __toESM(require("styled-components"));
8645
- var import_type_guards28 = require("@wistia/type-guards");
8646
- var import_jsx_runtime195 = require("react/jsx-runtime");
8647
- var StyledButton3 = (0, import_styled_components50.default)(Button)`
8705
+ var import_react35 = require("react");
8706
+ var import_styled_components52 = __toESM(require("styled-components"));
8707
+ var import_type_guards30 = require("@wistia/type-guards");
8708
+ var import_jsx_runtime198 = require("react/jsx-runtime");
8709
+ var StyledButton3 = (0, import_styled_components52.default)(Button)`
8648
8710
  ${({ colorScheme }) => getColorScheme(colorScheme)};
8649
8711
 
8650
8712
  display: flex;
@@ -8683,7 +8745,7 @@ var StyledButton3 = (0, import_styled_components50.default)(Button)`
8683
8745
  padding-left: var(--wui-space-04);
8684
8746
  }
8685
8747
  `;
8686
- var StyledLeftIconContainer = import_styled_components50.default.div`
8748
+ var StyledLeftIconContainer = import_styled_components52.default.div`
8687
8749
  height: var(--menu-item-left-icon-size);
8688
8750
  width: var(--menu-item-left-icon-size);
8689
8751
 
@@ -8694,7 +8756,7 @@ var StyledLeftIconContainer = import_styled_components50.default.div`
8694
8756
  }
8695
8757
  }
8696
8758
  `;
8697
- var StyledRightIconContainer = import_styled_components50.default.div`
8759
+ var StyledRightIconContainer = import_styled_components52.default.div`
8698
8760
  height: var(--menu-item-right-icon-size);
8699
8761
  width: var(--menu-item-right-icon-size);
8700
8762
 
@@ -8705,28 +8767,28 @@ var StyledRightIconContainer = import_styled_components50.default.div`
8705
8767
  }
8706
8768
  }
8707
8769
  `;
8708
- var StyledLabelAndDescriptionContainer = import_styled_components50.default.div`
8770
+ var StyledLabelAndDescriptionContainer = import_styled_components52.default.div`
8709
8771
  display: flex;
8710
8772
  flex-direction: column;
8711
8773
  gap: var(--menu-label-description-gap);
8712
8774
  flex-basis: 100%;
8713
8775
  `;
8714
- var StyledBadgeContainer = import_styled_components50.default.div`
8776
+ var StyledBadgeContainer = import_styled_components52.default.div`
8715
8777
  align-self: start;
8716
8778
  justify-self: end;
8717
8779
  font-size: var(--wui-typography-label-4-size);
8718
8780
  color: var(--wui-color-text-secondary);
8719
8781
  `;
8720
- var MenuItemButton = (0, import_react34.forwardRef)(({ children, appearance, command, icon, ...props }, ref) => {
8782
+ var MenuItemButton = (0, import_react35.forwardRef)(({ children, appearance, command, icon, ...props }, ref) => {
8721
8783
  let { colorScheme, badge } = props;
8722
8784
  if (appearance === "dangerous") {
8723
- if ((0, import_type_guards28.isNotUndefined)(colorScheme)) {
8785
+ if ((0, import_type_guards30.isNotUndefined)(colorScheme)) {
8724
8786
  console.warn("colorScheme prop is ignored when appearance is dangerous");
8725
8787
  }
8726
8788
  colorScheme = "error";
8727
8789
  }
8728
8790
  if (appearance === "gated") {
8729
- badge = /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(
8791
+ badge = /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(
8730
8792
  Icon,
8731
8793
  {
8732
8794
  colorScheme: "purple",
@@ -8738,7 +8800,7 @@ var MenuItemButton = (0, import_react34.forwardRef)(({ children, appearance, com
8738
8800
  }
8739
8801
  );
8740
8802
  }
8741
- return /* @__PURE__ */ (0, import_jsx_runtime195.jsxs)(
8803
+ return /* @__PURE__ */ (0, import_jsx_runtime198.jsxs)(
8742
8804
  StyledButton3,
8743
8805
  {
8744
8806
  ...props,
@@ -8748,10 +8810,10 @@ var MenuItemButton = (0, import_react34.forwardRef)(({ children, appearance, com
8748
8810
  fullWidth: true,
8749
8811
  unstyled: true,
8750
8812
  children: [
8751
- props.leftIcon ? /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(StyledLeftIconContainer, { children: props.leftIcon }) : null,
8752
- /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(StyledLabelAndDescriptionContainer, { children }),
8753
- (0, import_type_guards28.isNotNil)(badge) || (0, import_type_guards28.isNotNil)(command) ? /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(StyledBadgeContainer, { children: badge ?? command }) : null,
8754
- props.rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(StyledRightIconContainer, { children: props.rightIcon }) : null
8813
+ props.leftIcon ? /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(StyledLeftIconContainer, { children: props.leftIcon }) : null,
8814
+ /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(StyledLabelAndDescriptionContainer, { children }),
8815
+ (0, import_type_guards30.isNotNil)(badge) || (0, import_type_guards30.isNotNil)(command) ? /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(StyledBadgeContainer, { children: badge ?? command }) : null,
8816
+ props.rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(StyledRightIconContainer, { children: props.rightIcon }) : null
8755
8817
  ]
8756
8818
  }
8757
8819
  );
@@ -8759,33 +8821,33 @@ var MenuItemButton = (0, import_react34.forwardRef)(({ children, appearance, com
8759
8821
  MenuItemButton.displayName = "MenuItemButton";
8760
8822
 
8761
8823
  // src/components/Menu/MenuItemLabelDescription.tsx
8762
- var import_styled_components51 = __toESM(require("styled-components"));
8763
- var import_jsx_runtime196 = require("react/jsx-runtime");
8764
- var StyledMenuItemLabel = import_styled_components51.default.span``;
8765
- var StyledMenuItemDescription = (0, import_styled_components51.default)(Text).attrs({
8824
+ var import_styled_components53 = __toESM(require("styled-components"));
8825
+ var import_jsx_runtime199 = require("react/jsx-runtime");
8826
+ var StyledMenuItemLabel = import_styled_components53.default.span``;
8827
+ var StyledMenuItemDescription = (0, import_styled_components53.default)(Text).attrs({
8766
8828
  variant: "body4",
8767
8829
  prominence: "secondary"
8768
8830
  })``;
8769
8831
  var MenuItemLabel = ({ children }) => {
8770
- return /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(StyledMenuItemLabel, { children });
8832
+ return /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(StyledMenuItemLabel, { children });
8771
8833
  };
8772
8834
  var MenuItemDescription = ({ children }) => {
8773
- return /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(StyledMenuItemDescription, { children });
8835
+ return /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(StyledMenuItemDescription, { children });
8774
8836
  };
8775
8837
 
8776
8838
  // src/components/Menu/SubMenu.tsx
8777
- var import_jsx_runtime197 = require("react/jsx-runtime");
8778
- var SubMenuContent = (0, import_styled_components52.default)(import_react_dropdown_menu3.DropdownMenuSubContent)`
8839
+ var import_jsx_runtime200 = require("react/jsx-runtime");
8840
+ var SubMenuContent = (0, import_styled_components54.default)(import_react_dropdown_menu3.DropdownMenuSubContent)`
8779
8841
  ${menuContentCss}
8780
8842
 
8781
8843
  ${mq.smAndDown} {
8782
8844
  transform: translateX(-100%) !important;
8783
8845
  }
8784
8846
  `;
8785
- var StyledMobileSubMenuItems = import_styled_components52.default.div`
8847
+ var StyledMobileSubMenuItems = import_styled_components54.default.div`
8786
8848
  margin-left: var(--wui-space-04);
8787
8849
  `;
8788
- var StyledSubTrigger = (0, import_styled_components52.default)(import_react_dropdown_menu3.DropdownMenuSubTrigger)`
8850
+ var StyledSubTrigger = (0, import_styled_components54.default)(import_react_dropdown_menu3.DropdownMenuSubTrigger)`
8789
8851
  outline: none;
8790
8852
 
8791
8853
  &[data-state='open'],
@@ -8795,12 +8857,12 @@ var StyledSubTrigger = (0, import_styled_components52.default)(import_react_drop
8795
8857
  `;
8796
8858
  var SubMenuTrigger = (props) => {
8797
8859
  const { isSmAndUp } = useMq();
8798
- const Trigger3 = isSmAndUp ? StyledSubTrigger : import_react_dropdown_menu3.DropdownMenuItem;
8799
- return /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(Trigger3, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(
8860
+ const Trigger4 = isSmAndUp ? StyledSubTrigger : import_react_dropdown_menu3.DropdownMenuItem;
8861
+ return /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Trigger4, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(
8800
8862
  MenuItemButton,
8801
8863
  {
8802
8864
  ...props,
8803
- rightIcon: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(Icon, { type: "caret-right" })
8865
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Icon, { type: "caret-right" })
8804
8866
  }
8805
8867
  ) });
8806
8868
  };
@@ -8812,16 +8874,16 @@ var SubMenu = ({
8812
8874
  ...props
8813
8875
  }) => {
8814
8876
  const { isSmAndUp } = useMq();
8815
- const [isExpanded, setIsExpanded] = (0, import_react35.useState)(false);
8877
+ const [isExpanded, setIsExpanded] = (0, import_react36.useState)(false);
8816
8878
  const { compact } = useMenuContext();
8817
- return isSmAndUp ? /* @__PURE__ */ (0, import_jsx_runtime197.jsxs)(import_react_dropdown_menu3.DropdownMenuSub, { onOpenChange, children: [
8818
- /* @__PURE__ */ (0, import_jsx_runtime197.jsxs)(SubMenuTrigger, { ...props, children: [
8819
- /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(MenuItemLabel, { children: label }),
8820
- (0, import_type_guards29.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(MenuItemDescription, { children: description }) : null
8879
+ return isSmAndUp ? /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(import_react_dropdown_menu3.DropdownMenuSub, { onOpenChange, children: [
8880
+ /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(SubMenuTrigger, { ...props, children: [
8881
+ /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(MenuItemLabel, { children: label }),
8882
+ (0, import_type_guards31.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(MenuItemDescription, { children: description }) : null
8821
8883
  ] }),
8822
- /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(import_react_dropdown_menu3.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(SubMenuContent, { $compact: compact, children }) })
8823
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime197.jsxs)(import_react_dropdown_menu3.DropdownMenuGroup, { children: [
8824
- /* @__PURE__ */ (0, import_jsx_runtime197.jsxs)(
8884
+ /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_react_dropdown_menu3.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(SubMenuContent, { $compact: compact, children }) })
8885
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(import_react_dropdown_menu3.DropdownMenuGroup, { children: [
8886
+ /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)(
8825
8887
  SubMenuTrigger,
8826
8888
  {
8827
8889
  ...props,
@@ -8830,28 +8892,28 @@ var SubMenu = ({
8830
8892
  setIsExpanded((prev) => !prev);
8831
8893
  },
8832
8894
  children: [
8833
- /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(MenuItemLabel, { children: label }),
8834
- /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(MenuItemDescription, { children: description })
8895
+ /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(MenuItemLabel, { children: label }),
8896
+ /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(MenuItemDescription, { children: description })
8835
8897
  ]
8836
8898
  }
8837
8899
  ),
8838
- /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(StyledMobileSubMenuItems, { children: isExpanded ? children : null })
8900
+ /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(StyledMobileSubMenuItems, { children: isExpanded ? children : null })
8839
8901
  ] });
8840
8902
  };
8841
8903
  SubMenu.displayName = "SubMenu";
8842
8904
 
8843
8905
  // src/components/Menu/MenuItem.tsx
8844
- var import_react36 = require("react");
8906
+ var import_react37 = require("react");
8845
8907
  var import_react_dropdown_menu4 = require("@radix-ui/react-dropdown-menu");
8846
- var import_jsx_runtime198 = require("react/jsx-runtime");
8847
- var MenuItem = (0, import_react36.forwardRef)(
8908
+ var import_jsx_runtime201 = require("react/jsx-runtime");
8909
+ var MenuItem = (0, import_react37.forwardRef)(
8848
8910
  ({ onSelect = () => null, ...props }, ref) => {
8849
- return /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(
8911
+ return /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
8850
8912
  import_react_dropdown_menu4.DropdownMenuItem,
8851
8913
  {
8852
8914
  asChild: true,
8853
8915
  onSelect,
8854
- children: /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(
8916
+ children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
8855
8917
  MenuItemButton,
8856
8918
  {
8857
8919
  ...props,
@@ -8867,10 +8929,10 @@ MenuItem.displayName = "MenuItem";
8867
8929
 
8868
8930
  // src/components/Menu/MenuRadioGroup.tsx
8869
8931
  var import_react_dropdown_menu5 = require("@radix-ui/react-dropdown-menu");
8870
- var import_jsx_runtime199 = require("react/jsx-runtime");
8932
+ var import_jsx_runtime202 = require("react/jsx-runtime");
8871
8933
  var MenuRadioGroup = ({ children, label, ...props }) => {
8872
- return /* @__PURE__ */ (0, import_jsx_runtime199.jsxs)(import_react_dropdown_menu5.DropdownMenuRadioGroup, { ...props, children: [
8873
- /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(MenuLabel, { children: label }),
8934
+ return /* @__PURE__ */ (0, import_jsx_runtime202.jsxs)(import_react_dropdown_menu5.DropdownMenuRadioGroup, { ...props, children: [
8935
+ /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(MenuLabel, { children: label }),
8874
8936
  children
8875
8937
  ] });
8876
8938
  };
@@ -8878,11 +8940,11 @@ MenuRadioGroup.displayName = "MenuRadioGroup";
8878
8940
 
8879
8941
  // src/components/Menu/RadioMenuItem.tsx
8880
8942
  var import_react_dropdown_menu6 = require("@radix-ui/react-dropdown-menu");
8881
- var import_jsx_runtime200 = require("react/jsx-runtime");
8943
+ var import_jsx_runtime203 = require("react/jsx-runtime");
8882
8944
  var RadioMenuItem = ({
8883
8945
  onSelect,
8884
8946
  value,
8885
- indicator = /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(
8947
+ indicator = /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
8886
8948
  Icon,
8887
8949
  {
8888
8950
  size: "sm",
@@ -8892,17 +8954,17 @@ var RadioMenuItem = ({
8892
8954
  ...props
8893
8955
  }) => {
8894
8956
  const extraProps = onSelect ? { onSelect } : {};
8895
- return /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(
8957
+ return /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
8896
8958
  import_react_dropdown_menu6.DropdownMenuRadioItem,
8897
8959
  {
8898
8960
  ...extraProps,
8899
8961
  asChild: true,
8900
8962
  value,
8901
- children: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(
8963
+ children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
8902
8964
  MenuItemButton,
8903
8965
  {
8904
8966
  ...props,
8905
- rightIcon: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_react_dropdown_menu6.DropdownMenuItemIndicator, { children: indicator })
8967
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_react_dropdown_menu6.DropdownMenuItemIndicator, { children: indicator })
8906
8968
  }
8907
8969
  )
8908
8970
  }
@@ -8912,9 +8974,9 @@ RadioMenuItem.displayName = "RadioMenuItem";
8912
8974
 
8913
8975
  // src/components/Menu/CheckboxMenuItem.tsx
8914
8976
  var import_react_dropdown_menu7 = require("@radix-ui/react-dropdown-menu");
8915
- var import_jsx_runtime201 = require("react/jsx-runtime");
8977
+ var import_jsx_runtime204 = require("react/jsx-runtime");
8916
8978
  var CheckboxIndicator2 = ({ checked, ...props }) => {
8917
- return checked ? /* @__PURE__ */ (0, import_jsx_runtime201.jsxs)(
8979
+ return checked ? /* @__PURE__ */ (0, import_jsx_runtime204.jsxs)(
8918
8980
  "svg",
8919
8981
  {
8920
8982
  ...props,
@@ -8924,14 +8986,14 @@ var CheckboxIndicator2 = ({ checked, ...props }) => {
8924
8986
  width: "24",
8925
8987
  xmlns: "http://www.w3.org/2000/svg",
8926
8988
  children: [
8927
- /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
8989
+ /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
8928
8990
  "path",
8929
8991
  {
8930
8992
  d: "m4 8c0-2.20914 1.79086-4 4-4h8c2.2091 0 4 1.79086 4 4v8c0 2.2091-1.7909 4-4 4h-8c-2.20914 0-4-1.7909-4-4z",
8931
8993
  fill: "#2949e5"
8932
8994
  }
8933
8995
  ),
8934
- /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
8996
+ /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
8935
8997
  "path",
8936
8998
  {
8937
8999
  d: "m10.4728 15.1931-3.09523-3.1131c-.18596-.187-.18596-.4902 0-.6773l.67341-.6773c.18596-.187.48749-.187.67344 0l2.08508 2.0971 4.4661-4.49174c.1859-.18703.4875-.18703.6734 0l.6734.67731c.186.18703.186.49027 0 .67731l-5.4762 5.50772c-.1859.187-.4874.187-.6734 0z",
@@ -8940,7 +9002,7 @@ var CheckboxIndicator2 = ({ checked, ...props }) => {
8940
9002
  )
8941
9003
  ]
8942
9004
  }
8943
- ) : /* @__PURE__ */ (0, import_jsx_runtime201.jsxs)(
9005
+ ) : /* @__PURE__ */ (0, import_jsx_runtime204.jsxs)(
8944
9006
  "svg",
8945
9007
  {
8946
9008
  ...props,
@@ -8950,14 +9012,14 @@ var CheckboxIndicator2 = ({ checked, ...props }) => {
8950
9012
  width: "24",
8951
9013
  xmlns: "http://www.w3.org/2000/svg",
8952
9014
  children: [
8953
- /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
9015
+ /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
8954
9016
  "path",
8955
9017
  {
8956
9018
  d: "m8 4.5h8c1.933 0 3.5 1.567 3.5 3.5v8c0 1.933-1.567 3.5-3.5 3.5h-8c-1.933 0-3.5-1.567-3.5-3.5v-8c0-1.933 1.567-3.5 3.5-3.5z",
8957
9019
  fill: "#fcfcfd"
8958
9020
  }
8959
9021
  ),
8960
- /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
9022
+ /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
8961
9023
  "path",
8962
9024
  {
8963
9025
  d: "m8 4.5h8c1.933 0 3.5 1.567 3.5 3.5v8c0 1.933-1.567 3.5-3.5 3.5h-8c-1.933 0-3.5-1.567-3.5-3.5v-8c0-1.933 1.567-3.5 3.5-3.5z",
@@ -8974,18 +9036,18 @@ var CheckboxMenuItem = ({
8974
9036
  onCheckedChange,
8975
9037
  ...props
8976
9038
  }) => {
8977
- return /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
9039
+ return /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
8978
9040
  import_react_dropdown_menu7.DropdownMenuCheckboxItem,
8979
9041
  {
8980
9042
  asChild: true,
8981
9043
  checked,
8982
9044
  onCheckedChange,
8983
9045
  onSelect,
8984
- children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
9046
+ children: /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
8985
9047
  MenuItemButton,
8986
9048
  {
8987
9049
  ...props,
8988
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(CheckboxIndicator2, { checked })
9050
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(CheckboxIndicator2, { checked })
8989
9051
  }
8990
9052
  )
8991
9053
  }
@@ -8994,37 +9056,37 @@ var CheckboxMenuItem = ({
8994
9056
  CheckboxMenuItem.displayName = "CheckboxMenuItem";
8995
9057
 
8996
9058
  // src/components/Modal/Modal.tsx
8997
- var import_react40 = require("react");
8998
- var import_styled_components57 = __toESM(require("styled-components"));
9059
+ var import_react41 = require("react");
9060
+ var import_styled_components59 = __toESM(require("styled-components"));
8999
9061
  var import_react_dialog4 = require("@radix-ui/react-dialog");
9000
- var import_type_guards31 = require("@wistia/type-guards");
9062
+ var import_type_guards33 = require("@wistia/type-guards");
9001
9063
 
9002
9064
  // src/components/Modal/ModalHeader.tsx
9003
- var import_styled_components54 = __toESM(require("styled-components"));
9065
+ var import_styled_components56 = __toESM(require("styled-components"));
9004
9066
  var import_react_dialog2 = require("@radix-ui/react-dialog");
9005
9067
 
9006
9068
  // src/components/Modal/ModalCloseButton.tsx
9007
- var import_styled_components53 = __toESM(require("styled-components"));
9069
+ var import_styled_components55 = __toESM(require("styled-components"));
9008
9070
  var import_react_dialog = require("@radix-ui/react-dialog");
9009
- var import_jsx_runtime202 = require("react/jsx-runtime");
9010
- var CloseButton = (0, import_styled_components53.default)(import_react_dialog.Close)`
9071
+ var import_jsx_runtime205 = require("react/jsx-runtime");
9072
+ var CloseButton = (0, import_styled_components55.default)(import_react_dialog.Close)`
9011
9073
  align-self: start;
9012
9074
  `;
9013
9075
  var ModalCloseButton = () => {
9014
- return /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(CloseButton, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(
9076
+ return /* @__PURE__ */ (0, import_jsx_runtime205.jsx)(CloseButton, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime205.jsx)(
9015
9077
  IconButton,
9016
9078
  {
9017
9079
  label: "Dismiss modal",
9018
9080
  size: "sm",
9019
9081
  variant: "ghost",
9020
- children: /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(Icon, { type: "close" })
9082
+ children: /* @__PURE__ */ (0, import_jsx_runtime205.jsx)(Icon, { type: "close" })
9021
9083
  }
9022
9084
  ) });
9023
9085
  };
9024
9086
 
9025
9087
  // src/components/Modal/ModalHeader.tsx
9026
- var import_jsx_runtime203 = require("react/jsx-runtime");
9027
- var Header = import_styled_components54.default.header`
9088
+ var import_jsx_runtime206 = require("react/jsx-runtime");
9089
+ var Header = import_styled_components56.default.header`
9028
9090
  display: flex;
9029
9091
  order: 1;
9030
9092
  gap: var(--wui-space-01);
@@ -9036,7 +9098,7 @@ var Header = import_styled_components54.default.header`
9036
9098
  margin-top: 0;
9037
9099
  }
9038
9100
  `;
9039
- var Title = (0, import_styled_components54.default)(import_react_dialog2.Title)`
9101
+ var Title = (0, import_styled_components56.default)(import_react_dialog2.Title)`
9040
9102
  font-family: var(--wui-typography-heading-2-family);
9041
9103
  line-height: var(--wui-typography-heading-2-line-height);
9042
9104
  font-size: var(--wui-typography-heading-2-size);
@@ -9048,28 +9110,28 @@ var ModalHeader = ({
9048
9110
  hideCloseButton
9049
9111
  }) => {
9050
9112
  const TitleWrapper = hideTitle ? ScreenReaderOnly : Title;
9051
- return /* @__PURE__ */ (0, import_jsx_runtime203.jsxs)(Header, { children: [
9052
- /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(TitleWrapper, { children: title }),
9053
- hideCloseButton ? null : /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(ModalCloseButton, {})
9113
+ return /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(Header, { children: [
9114
+ /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(TitleWrapper, { children: title }),
9115
+ hideCloseButton ? null : /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(ModalCloseButton, {})
9054
9116
  ] });
9055
9117
  };
9056
9118
 
9057
9119
  // src/components/Modal/ModalContent.tsx
9058
- var import_react38 = require("react");
9059
- var import_styled_components55 = __toESM(require("styled-components"));
9120
+ var import_react39 = require("react");
9121
+ var import_styled_components57 = __toESM(require("styled-components"));
9060
9122
  var import_react_dialog3 = require("@radix-ui/react-dialog");
9061
9123
 
9062
9124
  // src/private/hooks/useFocusRestore/useFocusRestore.ts
9063
- var import_react37 = require("react");
9064
- var import_type_guards30 = require("@wistia/type-guards");
9125
+ var import_react38 = require("react");
9126
+ var import_type_guards32 = require("@wistia/type-guards");
9065
9127
  var useFocusRestore = () => {
9066
- const previouslyFocusedRef = (0, import_react37.useRef)(null);
9067
- (0, import_react37.useEffect)(() => {
9128
+ const previouslyFocusedRef = (0, import_react38.useRef)(null);
9129
+ (0, import_react38.useEffect)(() => {
9068
9130
  previouslyFocusedRef.current = document.activeElement;
9069
9131
  }, []);
9070
- (0, import_react37.useEffect)(() => {
9132
+ (0, import_react38.useEffect)(() => {
9071
9133
  return () => {
9072
- if ((0, import_type_guards30.isNotNil)(previouslyFocusedRef.current)) {
9134
+ if ((0, import_type_guards32.isNotNil)(previouslyFocusedRef.current)) {
9073
9135
  setTimeout(() => {
9074
9136
  previouslyFocusedRef.current?.focus();
9075
9137
  }, 0);
@@ -9079,8 +9141,8 @@ var useFocusRestore = () => {
9079
9141
  };
9080
9142
 
9081
9143
  // src/components/Modal/ModalContent.tsx
9082
- var import_jsx_runtime204 = require("react/jsx-runtime");
9083
- var StyledModalContent = (0, import_styled_components55.default)(import_react_dialog3.Content)`
9144
+ var import_jsx_runtime207 = require("react/jsx-runtime");
9145
+ var StyledModalContent = (0, import_styled_components57.default)(import_react_dialog3.Content)`
9084
9146
  background-color: var(--wui-color-bg-app);
9085
9147
  box-sizing: border-box;
9086
9148
  display: flex;
@@ -9121,10 +9183,10 @@ var StyledModalContent = (0, import_styled_components55.default)(import_react_di
9121
9183
  }
9122
9184
  }
9123
9185
  `;
9124
- var ModalContent = (0, import_react38.forwardRef)(
9186
+ var ModalContent = (0, import_react39.forwardRef)(
9125
9187
  ({ fullHeight, width, children, ...otherProps }, ref) => {
9126
9188
  useFocusRestore();
9127
- return /* @__PURE__ */ (0, import_jsx_runtime204.jsx)(
9189
+ return /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(
9128
9190
  StyledModalContent,
9129
9191
  {
9130
9192
  ref,
@@ -9139,9 +9201,9 @@ var ModalContent = (0, import_react38.forwardRef)(
9139
9201
  );
9140
9202
 
9141
9203
  // src/private/components/Backdrop/Backdrop.tsx
9142
- var import_react39 = require("react");
9143
- var import_styled_components56 = __toESM(require("styled-components"));
9144
- var import_jsx_runtime205 = require("react/jsx-runtime");
9204
+ var import_react40 = require("react");
9205
+ var import_styled_components58 = __toESM(require("styled-components"));
9206
+ var import_jsx_runtime208 = require("react/jsx-runtime");
9145
9207
  var backdropAnimationDuration = 150;
9146
9208
  var alignVerticalMap = {
9147
9209
  stretch: "normal",
@@ -9154,7 +9216,7 @@ var alignHorizontalMap = {
9154
9216
  center: "center",
9155
9217
  right: "end"
9156
9218
  };
9157
- var BackdropComponent = import_styled_components56.default.div`
9219
+ var BackdropComponent = import_styled_components58.default.div`
9158
9220
  align-items: ${({ $alignVertical }) => alignVerticalMap[$alignVertical]};
9159
9221
  animation-name: backdropShow;
9160
9222
  animation-duration: ${() => `${backdropAnimationDuration}ms`};
@@ -9177,8 +9239,8 @@ var BackdropComponent = import_styled_components56.default.div`
9177
9239
  }
9178
9240
  }
9179
9241
  `;
9180
- var Backdrop = (0, import_react39.forwardRef)(
9181
- ({ alignHorizontal = "center", alignVertical = "center", children, ...otherProps }, ref) => /* @__PURE__ */ (0, import_jsx_runtime205.jsx)(
9242
+ var Backdrop = (0, import_react40.forwardRef)(
9243
+ ({ alignHorizontal = "center", alignVertical = "center", children, ...otherProps }, ref) => /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(
9182
9244
  BackdropComponent,
9183
9245
  {
9184
9246
  ref,
@@ -9192,14 +9254,14 @@ var Backdrop = (0, import_react39.forwardRef)(
9192
9254
  Backdrop.displayName = "Backdrop";
9193
9255
 
9194
9256
  // src/components/Modal/Modal.tsx
9195
- var import_jsx_runtime206 = require("react/jsx-runtime");
9257
+ var import_jsx_runtime209 = require("react/jsx-runtime");
9196
9258
  var DEFAULT_MODAL_WIDTH = "532px";
9197
- var ModalBody = import_styled_components57.default.div`
9259
+ var ModalBody = import_styled_components59.default.div`
9198
9260
  flex-direction: column;
9199
9261
  display: flex;
9200
9262
  order: 2;
9201
9263
  `;
9202
- var Modal = (0, import_react40.forwardRef)(
9264
+ var Modal = (0, import_react41.forwardRef)(
9203
9265
  ({
9204
9266
  children,
9205
9267
  fullHeight = false,
@@ -9212,24 +9274,24 @@ var Modal = (0, import_react40.forwardRef)(
9212
9274
  width = DEFAULT_MODAL_WIDTH,
9213
9275
  ...props
9214
9276
  }, ref) => {
9215
- return /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(
9277
+ return /* @__PURE__ */ (0, import_jsx_runtime209.jsx)(
9216
9278
  import_react_dialog4.Root,
9217
9279
  {
9218
9280
  onOpenChange: (open2) => {
9219
- if (!open2 && (0, import_type_guards31.isNotNil)(onRequestClose)) {
9281
+ if (!open2 && (0, import_type_guards33.isNotNil)(onRequestClose)) {
9220
9282
  onRequestClose();
9221
9283
  }
9222
9284
  },
9223
9285
  open: isOpen,
9224
- children: /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(import_react_dialog4.Portal, { children: [
9225
- /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(Backdrop, {}),
9226
- /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(
9286
+ children: /* @__PURE__ */ (0, import_jsx_runtime209.jsxs)(import_react_dialog4.Portal, { children: [
9287
+ /* @__PURE__ */ (0, import_jsx_runtime209.jsx)(Backdrop, {}),
9288
+ /* @__PURE__ */ (0, import_jsx_runtime209.jsxs)(
9227
9289
  ModalContent,
9228
9290
  {
9229
9291
  ref,
9230
9292
  fullHeight,
9231
9293
  onOpenAutoFocus: (event) => {
9232
- if ((0, import_type_guards31.isNotNil)(initialFocusRef) && initialFocusRef.current) {
9294
+ if ((0, import_type_guards33.isNotNil)(initialFocusRef) && initialFocusRef.current) {
9233
9295
  event.preventDefault();
9234
9296
  requestAnimationFrame(() => {
9235
9297
  initialFocusRef.current?.focus();
@@ -9239,8 +9301,8 @@ var Modal = (0, import_react40.forwardRef)(
9239
9301
  width,
9240
9302
  ...props,
9241
9303
  children: [
9242
- /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(ModalBody, { children }),
9243
- /* @__PURE__ */ (0, import_jsx_runtime206.jsx)(
9304
+ /* @__PURE__ */ (0, import_jsx_runtime209.jsx)(ModalBody, { children }),
9305
+ /* @__PURE__ */ (0, import_jsx_runtime209.jsx)(
9244
9306
  ModalHeader,
9245
9307
  {
9246
9308
  hideCloseButton,
@@ -9259,16 +9321,16 @@ var Modal = (0, import_react40.forwardRef)(
9259
9321
  Modal.displayName = "Modal";
9260
9322
 
9261
9323
  // src/components/Radio/Radio.tsx
9262
- var import_react41 = require("react");
9263
- var import_styled_components58 = __toESM(require("styled-components"));
9264
- var import_type_guards32 = require("@wistia/type-guards");
9265
- var import_jsx_runtime207 = require("react/jsx-runtime");
9266
- var StyledLabelWrapper2 = import_styled_components58.default.div`
9324
+ var import_react42 = require("react");
9325
+ var import_styled_components60 = __toESM(require("styled-components"));
9326
+ var import_type_guards34 = require("@wistia/type-guards");
9327
+ var import_jsx_runtime210 = require("react/jsx-runtime");
9328
+ var StyledLabelWrapper2 = import_styled_components60.default.div`
9267
9329
  display: flex;
9268
9330
  flex-direction: column;
9269
9331
  padding-left: var(--wui-space-02);
9270
9332
  `;
9271
- var StyledRadio = import_styled_components58.default.input`
9333
+ var StyledRadio = import_styled_components60.default.input`
9272
9334
  box-shadow: ${({ type }) => type === "checkbox" ? "inset 0 0.5px 1.5px 0 rgba(0, 0, 0, 0.38)" : "none"};
9273
9335
  appearance: none;
9274
9336
  margin: 0;
@@ -9294,11 +9356,11 @@ var StyledRadio = import_styled_components58.default.input`
9294
9356
  transform: scale(1);
9295
9357
  }
9296
9358
  `;
9297
- var disabledStyle2 = import_styled_components58.css`
9359
+ var disabledStyle2 = import_styled_components60.css`
9298
9360
  cursor: not-allowed;
9299
9361
  opacity: 0.5;
9300
9362
  `;
9301
- var errorStyle = import_styled_components58.css`
9363
+ var errorStyle = import_styled_components60.css`
9302
9364
  /* TODO Lamp to design error state */
9303
9365
  &:hover,
9304
9366
  &:focus,
@@ -9306,11 +9368,11 @@ var errorStyle = import_styled_components58.css`
9306
9368
  border-color: transparent !important;
9307
9369
  }
9308
9370
  `;
9309
- var defaultHoverStyle = import_styled_components58.css`
9371
+ var defaultHoverStyle = import_styled_components60.css`
9310
9372
  /* TODO Lamp to design hover state */
9311
9373
  cursor: pointer;
9312
9374
  `;
9313
- var StyledRadioWrapper = import_styled_components58.default.div`
9375
+ var StyledRadioWrapper = import_styled_components60.default.div`
9314
9376
  align-items: baseline;
9315
9377
  border: 1px solid transparent;
9316
9378
  border-radius: 4px;
@@ -9333,7 +9395,7 @@ var StyledRadioWrapper = import_styled_components58.default.div`
9333
9395
 
9334
9396
  ${({ disabled }) => disabled && disabledStyle2};
9335
9397
  `;
9336
- var Radio = (0, import_react41.forwardRef)(
9398
+ var Radio = (0, import_react42.forwardRef)(
9337
9399
  ({
9338
9400
  checked,
9339
9401
  disabled = false,
@@ -9346,15 +9408,15 @@ var Radio = (0, import_react41.forwardRef)(
9346
9408
  value = "false",
9347
9409
  ...otherProps
9348
9410
  }, ref) => {
9349
- const generatedId = (0, import_react41.useId)();
9350
- const computedId = (0, import_type_guards32.isNonEmptyString)(id) ? id : `ui-radio-${generatedId}`;
9351
- return /* @__PURE__ */ (0, import_jsx_runtime207.jsxs)(
9411
+ const generatedId = (0, import_react42.useId)();
9412
+ const computedId = (0, import_type_guards34.isNonEmptyString)(id) ? id : `ui-radio-${generatedId}`;
9413
+ return /* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(
9352
9414
  StyledRadioWrapper,
9353
9415
  {
9354
9416
  "aria-invalid": otherProps["aria-invalid"],
9355
9417
  disabled,
9356
9418
  children: [
9357
- /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(
9419
+ /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(
9358
9420
  StyledRadio,
9359
9421
  {
9360
9422
  ref,
@@ -9369,8 +9431,8 @@ var Radio = (0, import_react41.forwardRef)(
9369
9431
  ...otherProps
9370
9432
  }
9371
9433
  ),
9372
- /* @__PURE__ */ (0, import_jsx_runtime207.jsxs)(StyledLabelWrapper2, { children: [
9373
- /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(
9434
+ /* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(StyledLabelWrapper2, { children: [
9435
+ /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(
9374
9436
  Label,
9375
9437
  {
9376
9438
  disabled,
@@ -9379,7 +9441,7 @@ var Radio = (0, import_react41.forwardRef)(
9379
9441
  children: label
9380
9442
  }
9381
9443
  ),
9382
- /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(LabelDescription, { children: description })
9444
+ /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(LabelDescription, { children: description })
9383
9445
  ] })
9384
9446
  ]
9385
9447
  }
@@ -9389,23 +9451,112 @@ var Radio = (0, import_react41.forwardRef)(
9389
9451
  Radio.displayName = "Radio";
9390
9452
 
9391
9453
  // src/components/SegmentedControl/SegmentedControl.tsx
9392
- var import_react42 = require("react");
9393
- var import_styled_components59 = __toESM(require("styled-components"));
9454
+ var import_react46 = require("react");
9455
+ var import_styled_components62 = __toESM(require("styled-components"));
9394
9456
  var import_react_toggle_group = require("@radix-ui/react-toggle-group");
9395
- var import_type_guards33 = require("@wistia/type-guards");
9396
- var import_jsx_runtime208 = require("react/jsx-runtime");
9397
- var segmentedControlStyles = import_styled_components59.css`
9457
+ var import_type_guards35 = require("@wistia/type-guards");
9458
+
9459
+ // src/components/SegmentedControl/useSelectedItemMeasurements.tsx
9460
+ var import_react43 = require("react");
9461
+ var import_jsx_runtime211 = require("react/jsx-runtime");
9462
+ var SelectedItemMeasurementsContext = (0, import_react43.createContext)(
9463
+ null
9464
+ );
9465
+ var SelectedItemMeasurementsProvider = ({
9466
+ children
9467
+ }) => {
9468
+ const [selectedItemMeasurements, setSelectedItemMeasurements] = (0, import_react43.useState)(null);
9469
+ const contextValue = (0, import_react43.useMemo)(
9470
+ () => ({
9471
+ setSelectedItemMeasurements,
9472
+ selectedItemMeasurements
9473
+ }),
9474
+ [selectedItemMeasurements]
9475
+ );
9476
+ return /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(SelectedItemMeasurementsContext.Provider, { value: contextValue, children });
9477
+ };
9478
+ var useSelectedItemMeasurements = () => {
9479
+ const context = (0, import_react43.useContext)(SelectedItemMeasurementsContext);
9480
+ if (context === null) {
9481
+ throw new Error(
9482
+ "useSelectedItemMeasurements must be used within a SelectedItemMeasurementsProvider"
9483
+ );
9484
+ }
9485
+ return context;
9486
+ };
9487
+
9488
+ // src/components/SegmentedControl/SelectedItemIndicator.tsx
9489
+ var import_react45 = require("react");
9490
+ var import_styled_components61 = __toESM(require("styled-components"));
9491
+
9492
+ // src/components/SegmentedControl/useSegmentedControlValue.tsx
9493
+ var import_react44 = require("react");
9494
+ var SegmentedControlValueContext = (0, import_react44.createContext)(null);
9495
+ var SegmentedControlValueProvider = SegmentedControlValueContext.Provider;
9496
+ var useSegmentedControlValue = () => {
9497
+ const context = (0, import_react44.useContext)(SegmentedControlValueContext);
9498
+ if (context === null) {
9499
+ throw new Error("useSegmentedControlValue must be used within a SegmentedControlValueProvider");
9500
+ }
9501
+ return context;
9502
+ };
9503
+
9504
+ // src/components/SegmentedControl/SelectedItemIndicator.tsx
9505
+ var import_jsx_runtime212 = require("react/jsx-runtime");
9506
+ var Z_INDEX_TO_SIT_BEHIND_SIBLINGS = -1;
9507
+ var SelectedItemIndicatorDiv = import_styled_components61.default.div`
9508
+ background-color: var(--wui-color-bg-fill-white);
9509
+ border-radius: var(--wui-border-radius-rounded);
9510
+ left: 0;
9511
+ position: absolute;
9512
+ top: 0;
9513
+ transition:
9514
+ transform var(--wui-motion-duration-03) var(--wui-motion-ease-out),
9515
+ width var(--wui-motion-duration-02) var(--wui-motion-ease-out);
9516
+ z-index: ${Z_INDEX_TO_SIT_BEHIND_SIBLINGS};
9517
+ `;
9518
+ var SelectedItemIndicator = () => {
9519
+ const selectedValue = useSegmentedControlValue();
9520
+ const { selectedItemMeasurements } = useSelectedItemMeasurements();
9521
+ const selectedItemIndicatorStyle = (0, import_react45.useMemo)(
9522
+ () => selectedItemMeasurements != null ? {
9523
+ height: `${selectedItemMeasurements.offsetHeight}px`,
9524
+ transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
9525
+ width: `${selectedItemMeasurements.offsetWidth}px`
9526
+ } : {},
9527
+ [selectedItemMeasurements]
9528
+ );
9529
+ if (!selectedValue) {
9530
+ return null;
9531
+ }
9532
+ return /* @__PURE__ */ (0, import_jsx_runtime212.jsx)(
9533
+ SelectedItemIndicatorDiv,
9534
+ {
9535
+ style: {
9536
+ width: selectedItemIndicatorStyle.width,
9537
+ transform: selectedItemIndicatorStyle.transform,
9538
+ height: selectedItemIndicatorStyle.height
9539
+ }
9540
+ }
9541
+ );
9542
+ };
9543
+
9544
+ // src/components/SegmentedControl/SegmentedControl.tsx
9545
+ var import_jsx_runtime213 = require("react/jsx-runtime");
9546
+ var segmentedControlStyles = import_styled_components62.css`
9398
9547
  display: inline-flex;
9399
9548
  background-color: var(--wui-color-bg-surface-secondary);
9400
9549
  border-radius: var(--wui-border-radius-rounded);
9401
9550
  border: 2px solid var(--wui-color-bg-surface-secondary);
9402
9551
  gap: var(--wui-space-01);
9552
+ isolation: isolate;
9553
+ position: relative;
9403
9554
  width: ${({ $fullWidth }) => $fullWidth ? "100%" : "auto"};
9404
9555
  `;
9405
- var StyledSegmentedControl = (0, import_styled_components59.default)(import_react_toggle_group.Root)`
9556
+ var StyledSegmentedControl = (0, import_styled_components62.default)(import_react_toggle_group.Root)`
9406
9557
  ${segmentedControlStyles}
9407
9558
  `;
9408
- var SegmentedControl = (0, import_react42.forwardRef)(
9559
+ var SegmentedControl = (0, import_react46.forwardRef)(
9409
9560
  ({
9410
9561
  children,
9411
9562
  disabled = false,
@@ -9414,10 +9565,10 @@ var SegmentedControl = (0, import_react42.forwardRef)(
9414
9565
  onSelectedValueChange,
9415
9566
  ...props
9416
9567
  }, ref) => {
9417
- if ((0, import_type_guards33.isNil)(children)) {
9568
+ if ((0, import_type_guards35.isNil)(children)) {
9418
9569
  return null;
9419
9570
  }
9420
- return /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(
9571
+ return /* @__PURE__ */ (0, import_jsx_runtime213.jsx)(
9421
9572
  StyledSegmentedControl,
9422
9573
  {
9423
9574
  ref,
@@ -9429,7 +9580,10 @@ var SegmentedControl = (0, import_react42.forwardRef)(
9429
9580
  type: "single",
9430
9581
  value: selectedValue,
9431
9582
  ...props,
9432
- children
9583
+ children: /* @__PURE__ */ (0, import_jsx_runtime213.jsx)(SegmentedControlValueProvider, { value: selectedValue, children: /* @__PURE__ */ (0, import_jsx_runtime213.jsxs)(SelectedItemMeasurementsProvider, { children: [
9584
+ /* @__PURE__ */ (0, import_jsx_runtime213.jsx)(SelectedItemIndicator, {}),
9585
+ children
9586
+ ] }) })
9433
9587
  }
9434
9588
  );
9435
9589
  }
@@ -9437,12 +9591,28 @@ var SegmentedControl = (0, import_react42.forwardRef)(
9437
9591
  SegmentedControl.displayName = "SegmentedControl";
9438
9592
 
9439
9593
  // src/components/SegmentedControl/SegmentedControlItem.tsx
9440
- var import_react43 = require("react");
9441
- var import_styled_components60 = __toESM(require("styled-components"));
9594
+ var import_react47 = require("react");
9595
+ var import_styled_components63 = __toESM(require("styled-components"));
9442
9596
  var import_react_toggle_group2 = require("@radix-ui/react-toggle-group");
9443
- var import_type_guards34 = require("@wistia/type-guards");
9444
- var import_jsx_runtime209 = require("react/jsx-runtime");
9445
- var segmentedControlItemStyles = import_styled_components60.css`
9597
+ var import_type_guards37 = require("@wistia/type-guards");
9598
+
9599
+ // src/private/helpers/mergeRefs/mergeRefs.ts
9600
+ var import_type_guards36 = require("@wistia/type-guards");
9601
+ var mergeRefs = (refs) => (value) => {
9602
+ refs.forEach((ref) => {
9603
+ if ((0, import_type_guards36.isFunction)(ref)) {
9604
+ ref(value);
9605
+ return;
9606
+ }
9607
+ if ((0, import_type_guards36.isNotNil)(ref)) {
9608
+ ref.current = value;
9609
+ }
9610
+ });
9611
+ };
9612
+
9613
+ // src/components/SegmentedControl/SegmentedControlItem.tsx
9614
+ var import_jsx_runtime214 = require("react/jsx-runtime");
9615
+ var segmentedControlItemStyles = import_styled_components63.css`
9446
9616
  all: unset; /* ToggleGroupItem is a button element */
9447
9617
  align-items: center;
9448
9618
  border-radius: var(--wui-border-radius-rounded);
@@ -9452,8 +9622,9 @@ var segmentedControlItemStyles = import_styled_components60.css`
9452
9622
  flex-grow: 1;
9453
9623
  flex-shrink: 1;
9454
9624
  font-size: var(--wui-typography-label-3-size);
9625
+ font-weight: var(--wui-typography-label-3-weight);
9455
9626
  justify-content: center;
9456
- padding: 6px 8px;
9627
+ padding: 6px ${({ $hasLabel }) => $hasLabel ? "8px" : "6px"};
9457
9628
  user-select: none;
9458
9629
 
9459
9630
  /* Icon component */
@@ -9465,18 +9636,17 @@ var segmentedControlItemStyles = import_styled_components60.css`
9465
9636
  ${({ $hasLabel }) => $hasLabel ? "margin-right: var(--wui-space-01)" : ""}
9466
9637
  }
9467
9638
 
9468
- &:hover {
9469
- background-color: var(--wui-color-bg-surface-secondary-hover);
9470
- }
9471
-
9472
9639
  &:focus-visible {
9473
9640
  outline: 2px solid var(--wui-color-focus-ring);
9474
9641
  }
9475
9642
 
9643
+ &:hover:not([data-state='on'], [data-state='active']) {
9644
+ background-color: var(--wui-color-bg-surface-secondary-hover);
9645
+ }
9646
+
9476
9647
  /* note: react-toggle-group uses "on" and react-tabs uses "active" */
9477
9648
  &[data-state='on'],
9478
9649
  &[data-state='active'] {
9479
- background-color: var(--wui-color-bg-fill-white);
9480
9650
  color: var(--wui-color-text-selected);
9481
9651
  cursor: default;
9482
9652
  }
@@ -9491,17 +9661,26 @@ var segmentedControlItemStyles = import_styled_components60.css`
9491
9661
 
9492
9662
  &[data-disabled] {
9493
9663
  cursor: not-allowed;
9664
+ color: var(--wui-color-text-disabled);
9665
+
9666
+ svg path {
9667
+ fill: var(--wui-color-icon-disabled);
9668
+ }
9494
9669
 
9495
9670
  &:hover {
9496
9671
  background-color: inherit;
9497
9672
  }
9498
9673
  }
9499
9674
  `;
9500
- var StyledSegmentedControlItem = (0, import_styled_components60.default)(import_react_toggle_group2.Item)`
9675
+ var StyledSegmentedControlItem = (0, import_styled_components63.default)(import_react_toggle_group2.Item)`
9501
9676
  ${segmentedControlItemStyles}
9502
9677
  `;
9503
- var SegmentedControlItem = (0, import_react43.forwardRef)(
9504
- ({ disabled, icon, label, "aria-label": ariaLabel, value }, ref) => {
9678
+ var SegmentedControlItem = (0, import_react47.forwardRef)(
9679
+ ({ disabled, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
9680
+ const selectedValue = useSegmentedControlValue();
9681
+ const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
9682
+ const buttonRef = (0, import_react47.useRef)(null);
9683
+ const combinedRef = mergeRefs([buttonRef, forwardedRef]);
9505
9684
  const handleClick = (event) => {
9506
9685
  const target = event.target;
9507
9686
  const { state } = target.dataset;
@@ -9509,12 +9688,37 @@ var SegmentedControlItem = (0, import_react43.forwardRef)(
9509
9688
  event.preventDefault();
9510
9689
  }
9511
9690
  };
9512
- return /* @__PURE__ */ (0, import_jsx_runtime209.jsxs)(
9691
+ (0, import_react47.useEffect)(() => {
9692
+ const buttonElem = buttonRef.current;
9693
+ if (!buttonElem) {
9694
+ return void 0;
9695
+ }
9696
+ if (selectedValue !== value) {
9697
+ return void 0;
9698
+ }
9699
+ setSelectedItemMeasurements({
9700
+ offsetLeft: buttonElem.offsetLeft,
9701
+ offsetWidth: buttonElem.offsetWidth,
9702
+ offsetHeight: buttonElem.offsetHeight
9703
+ });
9704
+ const resizeObserver = new ResizeObserver(() => {
9705
+ setSelectedItemMeasurements({
9706
+ offsetLeft: buttonElem.offsetLeft,
9707
+ offsetWidth: buttonElem.offsetWidth,
9708
+ offsetHeight: buttonElem.offsetHeight
9709
+ });
9710
+ });
9711
+ resizeObserver.observe(buttonElem);
9712
+ return () => {
9713
+ resizeObserver.disconnect();
9714
+ };
9715
+ }, [selectedValue, setSelectedItemMeasurements, value]);
9716
+ return /* @__PURE__ */ (0, import_jsx_runtime214.jsxs)(
9513
9717
  StyledSegmentedControlItem,
9514
9718
  {
9515
- ref,
9516
- $hasLabel: (0, import_type_guards34.isNotNil)(label),
9517
- "aria-label": (0, import_type_guards34.isNotNil)(label) ? void 0 : ariaLabel,
9719
+ ref: combinedRef,
9720
+ $hasLabel: (0, import_type_guards37.isNotNil)(label),
9721
+ "aria-label": (0, import_type_guards37.isNotNil)(label) ? void 0 : ariaLabel,
9518
9722
  disabled,
9519
9723
  onClick: handleClick,
9520
9724
  value,
@@ -9528,205 +9732,21 @@ var SegmentedControlItem = (0, import_react43.forwardRef)(
9528
9732
  );
9529
9733
  SegmentedControlItem.displayName = "SegmentedControlItem";
9530
9734
 
9531
- // src/components/Select/Select.tsx
9532
- var import_react_select = require("@radix-ui/react-select");
9533
- var import_react44 = require("react");
9534
- var import_styled_components61 = __toESM(require("styled-components"));
9535
- var import_jsx_runtime210 = require("react/jsx-runtime");
9536
- var StyledTrigger = (0, import_styled_components61.default)(import_react_select.Trigger)`
9537
- ${({ $colorScheme }) => getColorScheme($colorScheme)};
9538
- --wui-select-color-bg: var(--wui-color-bg-surface);
9539
- --wui-select-color-bg-disabled: var(--wui-color-bg-surface-disabled);
9540
- --wui-select-color-border: var(--wui-color-border);
9541
- --wui-select-color-border-focus: var(--wui-color-border-active);
9542
- --wui-select-color-border-error: var(--wui-color-border-error);
9543
- --wui-select-color-border-disabled: var(--wui-color-border-disabled);
9544
- --wui-select-border-radius: var(--wui-border-radius-rounded);
9545
- --wui-select-multiline-border-radius: var(--wui-border-radius-02);
9546
- --wui-select-vertical-padding: var(--wui-space-02);
9547
- --wui-select-horizontal-padding: var(--wui-space-03);
9548
- --wui-select-placeholder: var(--wui-gray-10);
9549
- --wui-select-color-text-error: var(--wui-color-text-error);
9550
-
9551
- padding: var(--wui-select-vertical-padding) var(--wui-select-horizontal-padding);
9552
- background-color: var(--wui-select-color-bg);
9553
- border: 1px solid var(--wui-select-color-border);
9554
- border-radius: var(--wui-select-border-radius);
9555
- min-width: 200px;
9556
- text-align: left;
9557
- display: inline-flex;
9558
- align-items: center;
9559
- justify-content: space-between;
9560
- width: ${({ $fullWidth = false }) => $fullWidth ? "100%" : "auto"};
9561
-
9562
- &[aria-expanded='true'],
9563
- &:focus {
9564
- outline: 2px solid var(--wui-color-focus-ring);
9565
- }
9566
-
9567
- &[aria-invalid='true'] {
9568
- outline: 2px solid var(--wui-select-color-border-error);
9569
- color: var(--wui-select-color-text-error);
9570
- }
9571
-
9572
- &:disabled {
9573
- border-color: var(--wui-color-bg-surface-disabled);
9574
- background-color: var(--wui-color-bg-surface-disabled);
9575
- }
9576
- `;
9577
- var StyledContent2 = (0, import_styled_components61.default)(import_react_select.Content)`
9578
- --wui-select-content-border: var(--wui-color-border);
9579
- --wui-select-content-bg: var(--wui-color-bg-surface);
9580
- --wui-select-content-border-radius: var(--wui-border-radius-02);
9581
- --wui-select-option-padding: var(--wui-space-02);
9582
- --wui-select-option-inner-gap: var(--wui-space-03);
9583
- --wui-select-option-bg-hover: var(--wui-color-bg-surface-hover);
9584
-
9585
- overflow: hidden;
9586
- transform: translateY(8px);
9587
- background-color: var(--wui-select-content-bg);
9588
- border: 1px solid var(--wui-select-content-border);
9589
- border-radius: var(--wui-select-content-border-radius);
9590
- padding: var(--wui-select-option-padding);
9591
- min-width: 200px;
9592
- `;
9593
- var Select = (0, import_react44.forwardRef)(
9594
- ({
9595
- colorScheme = "inherit",
9596
- children,
9597
- onChange = () => null,
9598
- placeholder = "Select...",
9599
- fullWidth = false,
9600
- ...props
9601
- }, forwardedRef) => {
9602
- const responsiveFullWidth = useResponsiveProp(fullWidth);
9603
- return /* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(
9604
- import_react_select.Root,
9605
- {
9606
- ...props,
9607
- onValueChange: onChange,
9608
- children: [
9609
- /* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(
9610
- StyledTrigger,
9611
- {
9612
- ref: forwardedRef,
9613
- $colorScheme: colorScheme,
9614
- $fullWidth: responsiveFullWidth,
9615
- ...props,
9616
- children: [
9617
- /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.Value, { placeholder }),
9618
- /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(
9619
- Icon,
9620
- {
9621
- size: "md",
9622
- type: "caret-down"
9623
- }
9624
- )
9625
- ]
9626
- }
9627
- ),
9628
- /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(StyledContent2, { position: "popper", children: [
9629
- /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.ScrollUpButton, { children: /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(Icon, { type: "caret-up" }) }),
9630
- /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.Viewport, { children }),
9631
- /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(import_react_select.ScrollDownButton, { children: /* @__PURE__ */ (0, import_jsx_runtime210.jsx)(Icon, { type: "caret-down" }) })
9632
- ] }) })
9633
- ]
9634
- }
9635
- );
9636
- }
9637
- );
9638
- Select.displayName = "Select";
9639
-
9640
- // src/components/Select/SelectOption.tsx
9641
- var import_react_select2 = require("@radix-ui/react-select");
9642
- var import_react45 = require("react");
9643
- var import_styled_components62 = __toESM(require("styled-components"));
9644
- var import_jsx_runtime211 = require("react/jsx-runtime");
9645
- var StyledItem = (0, import_styled_components62.default)(import_react_select2.Item)`
9646
- ${variantStyleMap2.body3};
9647
- display: flex;
9648
- padding: var(--wui-select-option-padding);
9649
- gap: var(--wui-select-option-inner-gap);
9650
- font-size: var(--font-size);
9651
- font-weight: var(--font-weight);
9652
- border-radius: var(--wui-border-radius-01);
9653
-
9654
- &:hover,
9655
- &:focus-visible {
9656
- background-color: var(--wui-select-option-bg-hover);
9657
- outline: none;
9658
- }
9659
-
9660
- &[aria-disabled='true'] {
9661
- color: var(--wui-color-text-disabled);
9662
- }
9663
-
9664
- &[aria-disabled='true']:hover {
9665
- background-color: transparent;
9666
- }
9667
- `;
9668
- var StyledIconContainer = import_styled_components62.default.span`
9669
- width: 12px;
9670
- `;
9671
- var SelectOption = (0, import_react45.forwardRef)(
9672
- ({ children, ...props }, forwardedRef) => {
9673
- return /* @__PURE__ */ (0, import_jsx_runtime211.jsxs)(
9674
- StyledItem,
9675
- {
9676
- ...props,
9677
- ref: forwardedRef,
9678
- children: [
9679
- /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(StyledIconContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(import_react_select2.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(
9680
- Icon,
9681
- {
9682
- size: "sm",
9683
- type: "checkmark"
9684
- }
9685
- ) }) }),
9686
- /* @__PURE__ */ (0, import_jsx_runtime211.jsx)(import_react_select2.ItemText, { children })
9687
- ]
9688
- }
9689
- );
9690
- }
9691
- );
9692
- SelectOption.displayName = "Option";
9693
-
9694
- // src/components/Select/SelectOptionGroup.tsx
9695
- var import_react_select3 = require("@radix-ui/react-select");
9696
- var import_styled_components63 = __toESM(require("styled-components"));
9697
- var import_jsx_runtime212 = require("react/jsx-runtime");
9698
- var StyledLabel4 = (0, import_styled_components63.default)(import_react_select3.Label)`
9699
- padding: var(--wui-select-option-padding);
9700
- `;
9701
- var SelectOptionGroup = ({ children, label, ...props }) => {
9702
- return /* @__PURE__ */ (0, import_jsx_runtime212.jsxs)(import_react_select3.Group, { ...props, children: [
9703
- /* @__PURE__ */ (0, import_jsx_runtime212.jsx)(StyledLabel4, { children: /* @__PURE__ */ (0, import_jsx_runtime212.jsx)(
9704
- Text,
9705
- {
9706
- prominence: "secondary",
9707
- variant: "body3",
9708
- children: label
9709
- }
9710
- ) }),
9711
- children
9712
- ] });
9713
- };
9714
-
9715
9735
  // src/components/Tabs/Tabs.tsx
9716
- var import_react48 = require("react");
9736
+ var import_react52 = require("react");
9717
9737
  var import_react_tabs4 = require("@radix-ui/react-tabs");
9718
- var import_type_guards36 = require("@wistia/type-guards");
9738
+ var import_type_guards39 = require("@wistia/type-guards");
9719
9739
 
9720
9740
  // src/components/Tabs/TabPanel.tsx
9721
9741
  var import_styled_components64 = __toESM(require("styled-components"));
9722
9742
  var import_react_tabs = require("@radix-ui/react-tabs");
9723
- var import_jsx_runtime213 = require("react/jsx-runtime");
9743
+ var import_jsx_runtime215 = require("react/jsx-runtime");
9724
9744
  var StyledTabPanel = (0, import_styled_components64.default)(import_react_tabs.Content)`
9725
9745
  display: flex;
9726
9746
  flex-direction: column;
9727
9747
  `;
9728
9748
  var TabPanel = ({ children, value, ...props }) => {
9729
- return /* @__PURE__ */ (0, import_jsx_runtime213.jsx)(
9749
+ return /* @__PURE__ */ (0, import_jsx_runtime215.jsx)(
9730
9750
  StyledTabPanel,
9731
9751
  {
9732
9752
  value,
@@ -9740,7 +9760,7 @@ TabPanel.displayName = "TabPanel";
9740
9760
  // src/components/Tabs/TabList.tsx
9741
9761
  var import_styled_components65 = __toESM(require("styled-components"));
9742
9762
  var import_react_tabs2 = require("@radix-ui/react-tabs");
9743
- var import_jsx_runtime214 = require("react/jsx-runtime");
9763
+ var import_jsx_runtime216 = require("react/jsx-runtime");
9744
9764
  var StyledTabList = (0, import_styled_components65.default)(import_react_tabs2.List)`
9745
9765
  ${segmentedControlStyles}
9746
9766
 
@@ -9752,7 +9772,7 @@ var TabList = ({
9752
9772
  ariaLabel,
9753
9773
  ...props
9754
9774
  }) => {
9755
- return /* @__PURE__ */ (0, import_jsx_runtime214.jsx)(
9775
+ return /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(
9756
9776
  StyledTabList,
9757
9777
  {
9758
9778
  $fullWidth: fullWidth,
@@ -9765,26 +9785,69 @@ var TabList = ({
9765
9785
  TabList.displayName = "TabList";
9766
9786
 
9767
9787
  // src/components/Tabs/TabItem.tsx
9768
- var import_react46 = require("react");
9788
+ var import_react49 = require("react");
9769
9789
  var import_styled_components66 = __toESM(require("styled-components"));
9770
9790
  var import_react_tabs3 = require("@radix-ui/react-tabs");
9771
- var import_type_guards35 = require("@wistia/type-guards");
9772
- var import_jsx_runtime215 = require("react/jsx-runtime");
9791
+ var import_type_guards38 = require("@wistia/type-guards");
9792
+
9793
+ // src/components/Tabs/useTabsValue.tsx
9794
+ var import_react48 = require("react");
9795
+ var TabsValueContext = (0, import_react48.createContext)(null);
9796
+ var TabsValueProvider = TabsValueContext.Provider;
9797
+ var useTabsValue = () => {
9798
+ const context = (0, import_react48.useContext)(TabsValueContext);
9799
+ if (context === null) {
9800
+ throw new Error("useTabsValue must be used within a TabsValueProvider");
9801
+ }
9802
+ return context;
9803
+ };
9804
+
9805
+ // src/components/Tabs/TabItem.tsx
9806
+ var import_jsx_runtime217 = require("react/jsx-runtime");
9773
9807
  var StyledTabItem = (0, import_styled_components66.default)(import_react_tabs3.Trigger)`
9774
9808
  ${segmentedControlItemStyles}
9775
9809
 
9776
- &[data-state='active'] {
9777
- background-color: white;
9810
+ &:focus-visible {
9811
+ outline: none;
9778
9812
  }
9779
9813
  `;
9780
- var TabItem = (0, import_react46.forwardRef)(
9781
- ({ disabled = false, icon, label, "aria-label": ariaLabel, value }, ref) => {
9782
- return /* @__PURE__ */ (0, import_jsx_runtime215.jsxs)(
9814
+ var TabItem = (0, import_react49.forwardRef)(
9815
+ ({ disabled = false, icon, label, "aria-label": ariaLabel, value }, forwardedRef) => {
9816
+ const selectedValue = useTabsValue();
9817
+ const { setSelectedItemMeasurements } = useSelectedItemMeasurements();
9818
+ const buttonRef = (0, import_react49.useRef)(null);
9819
+ const combinedRef = mergeRefs([buttonRef, forwardedRef]);
9820
+ (0, import_react49.useEffect)(() => {
9821
+ const buttonElem = buttonRef.current;
9822
+ if (!buttonElem) {
9823
+ return void 0;
9824
+ }
9825
+ if (selectedValue !== value) {
9826
+ return void 0;
9827
+ }
9828
+ setSelectedItemMeasurements({
9829
+ offsetLeft: buttonElem.offsetLeft,
9830
+ offsetWidth: buttonElem.offsetWidth,
9831
+ offsetHeight: buttonElem.offsetHeight
9832
+ });
9833
+ const resizeObserver = new ResizeObserver(() => {
9834
+ setSelectedItemMeasurements({
9835
+ offsetLeft: buttonElem.offsetLeft,
9836
+ offsetWidth: buttonElem.offsetWidth,
9837
+ offsetHeight: buttonElem.offsetHeight
9838
+ });
9839
+ });
9840
+ resizeObserver.observe(buttonElem);
9841
+ return () => {
9842
+ resizeObserver.disconnect();
9843
+ };
9844
+ }, [selectedValue, setSelectedItemMeasurements, value]);
9845
+ return /* @__PURE__ */ (0, import_jsx_runtime217.jsxs)(
9783
9846
  StyledTabItem,
9784
9847
  {
9785
- ref,
9786
- $hasLabel: (0, import_type_guards35.isNotNil)(label),
9787
- "aria-label": (0, import_type_guards35.isNotNil)(label) ? void 0 : ariaLabel,
9848
+ ref: combinedRef,
9849
+ $hasLabel: (0, import_type_guards38.isNotNil)(label),
9850
+ "aria-label": (0, import_type_guards38.isNotNil)(label) ? void 0 : ariaLabel,
9788
9851
  disabled,
9789
9852
  value,
9790
9853
  children: [
@@ -9798,16 +9861,16 @@ var TabItem = (0, import_react46.forwardRef)(
9798
9861
  TabItem.displayName = "TabItem";
9799
9862
 
9800
9863
  // src/components/Tabs/extractTabItems.ts
9801
- var import_react47 = require("react");
9864
+ var import_react50 = require("react");
9802
9865
  var extractTabItems = (children) => {
9803
9866
  const tabItems = [];
9804
- import_react47.Children.forEach(children, (child) => {
9805
- if (!(0, import_react47.isValidElement)(child)) {
9867
+ import_react50.Children.forEach(children, (child) => {
9868
+ if (!(0, import_react50.isValidElement)(child)) {
9806
9869
  return;
9807
9870
  }
9808
9871
  if (typeof child.type !== "string" && child.type.displayName === "Tab") {
9809
9872
  tabItems.push(child);
9810
- } else if (child.type === import_react47.Fragment) {
9873
+ } else if (child.type === import_react50.Fragment) {
9811
9874
  const fragmentElement = child;
9812
9875
  tabItems.push(...extractTabItems(fragmentElement.props.children));
9813
9876
  } else if ((child.props.children ?? null) != null) {
@@ -9819,9 +9882,44 @@ var extractTabItems = (children) => {
9819
9882
  return tabItems;
9820
9883
  };
9821
9884
 
9885
+ // src/components/Tabs/SelectedItemIndicator.tsx
9886
+ var import_react51 = require("react");
9887
+ var import_styled_components67 = __toESM(require("styled-components"));
9888
+ var import_jsx_runtime218 = require("react/jsx-runtime");
9889
+ var TabsSelectedItemIndicatorDiv = (0, import_styled_components67.default)(SelectedItemIndicatorDiv)`
9890
+ &:has(~ ${StyledTabItem}:focus-visible) {
9891
+ outline: 2px solid var(--wui-color-focus-ring);
9892
+ }
9893
+ `;
9894
+ var SelectedItemIndicator2 = () => {
9895
+ const { selectedItemMeasurements } = useSelectedItemMeasurements();
9896
+ const selectedValue = useTabsValue();
9897
+ const selectedItemIndicatorStyle = (0, import_react51.useMemo)(
9898
+ () => selectedItemMeasurements != null ? {
9899
+ height: `${selectedItemMeasurements.offsetHeight}px`,
9900
+ transform: `translateX(${selectedItemMeasurements.offsetLeft}px)`,
9901
+ width: `${selectedItemMeasurements.offsetWidth}px`
9902
+ } : {},
9903
+ [selectedItemMeasurements]
9904
+ );
9905
+ if (selectedValue == null) {
9906
+ return null;
9907
+ }
9908
+ return /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(
9909
+ TabsSelectedItemIndicatorDiv,
9910
+ {
9911
+ style: {
9912
+ width: selectedItemIndicatorStyle.width,
9913
+ transform: selectedItemIndicatorStyle.transform,
9914
+ height: selectedItemIndicatorStyle.height
9915
+ }
9916
+ }
9917
+ );
9918
+ };
9919
+
9822
9920
  // src/components/Tabs/Tabs.tsx
9823
- var import_jsx_runtime216 = require("react/jsx-runtime");
9824
- var Tabs = (0, import_react48.forwardRef)(
9921
+ var import_jsx_runtime219 = require("react/jsx-runtime");
9922
+ var Tabs = (0, import_react52.forwardRef)(
9825
9923
  ({
9826
9924
  children,
9827
9925
  fullWidth = true,
@@ -9832,76 +9930,89 @@ var Tabs = (0, import_react48.forwardRef)(
9832
9930
  ...otherProps
9833
9931
  }, ref) => {
9834
9932
  const tabItems = extractTabItems(children);
9835
- const modeProps = defaultSelectedValue !== void 0 ? { defaultValue: defaultSelectedValue } : { value: selectedValue, onValueChange: onSelectedValueChange };
9836
- return /* @__PURE__ */ (0, import_jsx_runtime216.jsxs)(
9933
+ const [internalSelectedValue, setInternalSelectedValue] = (0, import_react52.useState)(defaultSelectedValue);
9934
+ const modeProps = defaultSelectedValue !== void 0 ? {
9935
+ defaultValue: defaultSelectedValue,
9936
+ onValueChange: setInternalSelectedValue
9937
+ } : { value: selectedValue, onValueChange: onSelectedValueChange };
9938
+ return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
9837
9939
  import_react_tabs4.Root,
9838
9940
  {
9839
9941
  ref,
9840
9942
  activationMode: "automatic",
9841
9943
  ...otherProps,
9842
9944
  ...modeProps,
9843
- children: [
9844
- /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(
9845
- TabList,
9846
- {
9847
- ariaLabel,
9848
- fullWidth,
9849
- children: tabItems.map((tab) => {
9850
- const {
9851
- value,
9852
- disabled = false,
9853
- icon,
9854
- label,
9855
- "aria-label": ariaLabelForTab
9856
- } = tab.props;
9857
- if ((0, import_type_guards36.isNil)(icon)) {
9858
- return /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(
9859
- TabItem,
9860
- {
9861
- disabled,
9862
- label,
9863
- value
9864
- },
9865
- value
9866
- );
9867
- }
9868
- if ((0, import_type_guards36.isNotNil)(label)) {
9869
- return /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(
9870
- TabItem,
9871
- {
9872
- disabled,
9873
- icon,
9874
- label,
9875
- value
9876
- },
9877
- value
9878
- );
9879
- }
9880
- if ((0, import_type_guards36.isNotNil)(ariaLabelForTab)) {
9881
- return /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(
9882
- TabItem,
9883
- {
9884
- "aria-label": ariaLabelForTab,
9885
- disabled,
9886
- icon,
9887
- value
9888
- },
9889
- value
9890
- );
9945
+ children: /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
9946
+ TabsValueProvider,
9947
+ {
9948
+ value: defaultSelectedValue !== void 0 ? internalSelectedValue : selectedValue,
9949
+ children: /* @__PURE__ */ (0, import_jsx_runtime219.jsxs)(SelectedItemMeasurementsProvider, { children: [
9950
+ /* @__PURE__ */ (0, import_jsx_runtime219.jsxs)(
9951
+ TabList,
9952
+ {
9953
+ ariaLabel,
9954
+ fullWidth,
9955
+ children: [
9956
+ /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(SelectedItemIndicator2, {}),
9957
+ tabItems.map((tab) => {
9958
+ const {
9959
+ value,
9960
+ disabled = false,
9961
+ icon,
9962
+ label,
9963
+ "aria-label": ariaLabelForTab
9964
+ } = tab.props;
9965
+ if ((0, import_type_guards39.isNil)(icon)) {
9966
+ return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
9967
+ TabItem,
9968
+ {
9969
+ disabled,
9970
+ label,
9971
+ value
9972
+ },
9973
+ value
9974
+ );
9975
+ }
9976
+ if ((0, import_type_guards39.isNotNil)(label)) {
9977
+ return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
9978
+ TabItem,
9979
+ {
9980
+ disabled,
9981
+ icon,
9982
+ label,
9983
+ value
9984
+ },
9985
+ value
9986
+ );
9987
+ }
9988
+ if ((0, import_type_guards39.isNotNil)(ariaLabelForTab)) {
9989
+ return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
9990
+ TabItem,
9991
+ {
9992
+ "aria-label": ariaLabelForTab,
9993
+ disabled,
9994
+ icon,
9995
+ value
9996
+ },
9997
+ value
9998
+ );
9999
+ }
10000
+ throw new Error("A `Tab` with an icon must have either label or aria-label");
10001
+ })
10002
+ ]
9891
10003
  }
9892
- throw new Error("A `Tab` with an icon must have either label or aria-label");
9893
- })
9894
- }
9895
- ),
9896
- tabItems.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime216.jsx)(
9897
- TabPanel,
9898
- {
9899
- value: tab.props.value,
9900
- children: tab.props.children
9901
- },
9902
- tab.props.value
9903
- ))
9904
- ]
10004
+ ),
10005
+ tabItems.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
10006
+ TabPanel,
10007
+ {
10008
+ value: tab.props.value,
10009
+ children: tab.props.children
10010
+ },
10011
+ tab.props.value
10012
+ ))
10013
+ ] })
10014
+ }
10015
+ )
9905
10016
  }
9906
10017
  );
9907
10018
  }
@@ -9909,19 +10020,19 @@ var Tabs = (0, import_react48.forwardRef)(
9909
10020
  Tabs.displayName = "Tabs";
9910
10021
 
9911
10022
  // src/components/Tabs/Tab.tsx
9912
- var import_react49 = require("react");
9913
- var import_jsx_runtime217 = require("react/jsx-runtime");
9914
- var Tab = (0, import_react49.forwardRef)(({ children }, ref) => {
9915
- return /* @__PURE__ */ (0, import_jsx_runtime217.jsx)("div", { ref, children });
10023
+ var import_react53 = require("react");
10024
+ var import_jsx_runtime220 = require("react/jsx-runtime");
10025
+ var Tab = (0, import_react53.forwardRef)(({ children }, ref) => {
10026
+ return /* @__PURE__ */ (0, import_jsx_runtime220.jsx)("div", { ref, children });
9916
10027
  });
9917
10028
  Tab.displayName = "Tab";
9918
10029
 
9919
10030
  // src/components/Tag/Tag.tsx
9920
- var import_react50 = require("react");
9921
- var import_styled_components67 = __toESM(require("styled-components"));
9922
- var import_type_guards37 = require("@wistia/type-guards");
9923
- var import_jsx_runtime218 = require("react/jsx-runtime");
9924
- var TagLabel = import_styled_components67.default.a`
10031
+ var import_react54 = require("react");
10032
+ var import_styled_components68 = __toESM(require("styled-components"));
10033
+ var import_type_guards40 = require("@wistia/type-guards");
10034
+ var import_jsx_runtime221 = require("react/jsx-runtime");
10035
+ var TagLabel = import_styled_components68.default.a`
9925
10036
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
9926
10037
  font-size: var(--wui-typography-label-4-size);
9927
10038
  font-weight: var(--wui-typography-label-4-weight);
@@ -9949,14 +10060,14 @@ var TagLabel = import_styled_components67.default.a`
9949
10060
  box-shadow: inset 0 0 0 2px var(--wui-color-border-secondary);
9950
10061
  }
9951
10062
  `;
9952
- var TagDivider = import_styled_components67.default.div`
10063
+ var TagDivider = import_styled_components68.default.div`
9953
10064
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
9954
10065
  border-left: 1px solid var(--wui-color-border);
9955
10066
  display: flex;
9956
10067
  height: 14px;
9957
10068
  width: 1px;
9958
10069
  `;
9959
- var StyledRemoveButton = import_styled_components67.default.button`
10070
+ var StyledRemoveButton = import_styled_components68.default.button`
9960
10071
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
9961
10072
  all: unset;
9962
10073
  cursor: pointer;
@@ -9984,7 +10095,7 @@ var StyledRemoveButton = import_styled_components67.default.button`
9984
10095
  box-shadow: inset 0 0 0 2px var(--wui-color-border-secondary);
9985
10096
  }
9986
10097
  `;
9987
- var StyledTag = import_styled_components67.default.div`
10098
+ var StyledTag = import_styled_components68.default.div`
9988
10099
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
9989
10100
  align-items: center;
9990
10101
  background-color: var(--wui-color-bg-surface-secondary);
@@ -9997,47 +10108,47 @@ var StyledTag = import_styled_components67.default.div`
9997
10108
  }
9998
10109
  `;
9999
10110
  var RemoveButton = ({ onClickRemove, onClickRemoveLabel, colorScheme }) => {
10000
- if ((0, import_type_guards37.isNil)(onClickRemove)) {
10111
+ if ((0, import_type_guards40.isNil)(onClickRemove)) {
10001
10112
  return null;
10002
10113
  }
10003
- if ((0, import_type_guards37.isNil)(onClickRemoveLabel)) {
10114
+ if ((0, import_type_guards40.isNil)(onClickRemoveLabel)) {
10004
10115
  throw new Error(
10005
10116
  "for accessibility, onClickRemoveLabel must be provided if onClickRemove is provided"
10006
10117
  );
10007
10118
  }
10008
- return /* @__PURE__ */ (0, import_jsx_runtime218.jsxs)(import_jsx_runtime218.Fragment, { children: [
10009
- /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(TagDivider, { $colorScheme: colorScheme }),
10010
- /* @__PURE__ */ (0, import_jsx_runtime218.jsxs)(
10119
+ return /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)(import_jsx_runtime221.Fragment, { children: [
10120
+ /* @__PURE__ */ (0, import_jsx_runtime221.jsx)(TagDivider, { $colorScheme: colorScheme }),
10121
+ /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)(
10011
10122
  StyledRemoveButton,
10012
10123
  {
10013
10124
  $colorScheme: colorScheme,
10014
10125
  onClick: onClickRemove,
10015
10126
  type: "button",
10016
10127
  children: [
10017
- /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(
10128
+ /* @__PURE__ */ (0, import_jsx_runtime221.jsx)(
10018
10129
  Icon,
10019
10130
  {
10020
10131
  size: "sm",
10021
10132
  type: "close"
10022
10133
  }
10023
10134
  ),
10024
- /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(ScreenReaderOnly, { children: onClickRemoveLabel })
10135
+ /* @__PURE__ */ (0, import_jsx_runtime221.jsx)(ScreenReaderOnly, { children: onClickRemoveLabel })
10025
10136
  ]
10026
10137
  }
10027
10138
  )
10028
10139
  ] });
10029
10140
  };
10030
- var Tag = (0, import_react50.forwardRef)(
10141
+ var Tag = (0, import_react54.forwardRef)(
10031
10142
  ({ onClickRemove, colorScheme = "inherit", href, label, onClickRemoveLabel, ...otherProps }, ref) => {
10032
- const labelProps = (0, import_type_guards37.isNotNil)(href) && (0, import_type_guards37.isNonEmptyString)(href) ? { href, as: "a" } : { as: "span" };
10033
- return /* @__PURE__ */ (0, import_jsx_runtime218.jsxs)(
10143
+ const labelProps = (0, import_type_guards40.isNotNil)(href) && (0, import_type_guards40.isNonEmptyString)(href) ? { href, as: "a" } : { as: "span" };
10144
+ return /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)(
10034
10145
  StyledTag,
10035
10146
  {
10036
10147
  ref,
10037
10148
  $colorScheme: colorScheme,
10038
10149
  ...otherProps,
10039
10150
  children: [
10040
- /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(
10151
+ /* @__PURE__ */ (0, import_jsx_runtime221.jsx)(
10041
10152
  TagLabel,
10042
10153
  {
10043
10154
  ...labelProps,
@@ -10045,7 +10156,7 @@ var Tag = (0, import_react50.forwardRef)(
10045
10156
  children: label
10046
10157
  }
10047
10158
  ),
10048
- /* @__PURE__ */ (0, import_jsx_runtime218.jsx)(
10159
+ /* @__PURE__ */ (0, import_jsx_runtime221.jsx)(
10049
10160
  RemoveButton,
10050
10161
  {
10051
10162
  colorScheme,
@@ -10061,26 +10172,26 @@ var Tag = (0, import_react50.forwardRef)(
10061
10172
  Tag.displayName = "Tag";
10062
10173
 
10063
10174
  // src/components/WistiaLogo/WistiaLogo.tsx
10064
- var import_styled_components68 = __toESM(require("styled-components"));
10065
- var import_type_guards38 = require("@wistia/type-guards");
10066
- var import_jsx_runtime219 = require("react/jsx-runtime");
10175
+ var import_styled_components69 = __toESM(require("styled-components"));
10176
+ var import_type_guards41 = require("@wistia/type-guards");
10177
+ var import_jsx_runtime222 = require("react/jsx-runtime");
10067
10178
  var renderBrandmark = (brandmarkColor, iconOnly) => {
10068
10179
  if (iconOnly) {
10069
- return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
10180
+ return /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(
10070
10181
  "g",
10071
10182
  {
10072
10183
  "data-testid": "ui-wistia-logo-brandmark",
10073
10184
  fill: brandmarkColor,
10074
- children: /* @__PURE__ */ (0, import_jsx_runtime219.jsx)("path", { d: "M16.09 17.1h-5.2c-1.58 0-3.08.68-4.11 1.87L.21 26.53c4.78.25 9.78.25 13.3.25 18.31 0 20.89-11.27 20.89-16.55-1.59 1.93-6.06 6.87-18.32 6.87ZM32.14 0c-.08.92-.59 4.69-11.31 4.69-8.72 0-12.24 0-20.83-.17l6.44 7.4a6.657 6.657 0 0 0 4.96 2.3c2.13.03 5.05.06 5.53.06 11.01 0 17.19-5.05 17.19-9.89 0-2.01-.67-3.44-1.97-4.4Z" })
10185
+ children: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("path", { d: "M16.09 17.1h-5.2c-1.58 0-3.08.68-4.11 1.87L.21 26.53c4.78.25 9.78.25 13.3.25 18.31 0 20.89-11.27 20.89-16.55-1.59 1.93-6.06 6.87-18.32 6.87ZM32.14 0c-.08.92-.59 4.69-11.31 4.69-8.72 0-12.24 0-20.83-.17l6.44 7.4a6.657 6.657 0 0 0 4.96 2.3c2.13.03 5.05.06 5.53.06 11.01 0 17.19-5.05 17.19-9.89 0-2.01-.67-3.44-1.97-4.4Z" })
10075
10186
  }
10076
10187
  );
10077
10188
  }
10078
- return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
10189
+ return /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(
10079
10190
  "g",
10080
10191
  {
10081
10192
  "data-testid": "ui-wistia-logo-brandmark",
10082
10193
  fill: brandmarkColor,
10083
- children: /* @__PURE__ */ (0, import_jsx_runtime219.jsx)("path", { d: "M16.09 21.37h-5.2c-1.58 0-3.08.68-4.11 1.87L.21 30.8c4.78.25 9.78.25 13.3.25 18.31 0 20.89-11.27 20.89-16.55-1.59 1.93-6.06 6.87-18.32 6.87Zm16.05-17.1c-.08.92-.59 4.69-11.31 4.69-8.72 0-12.24 0-20.83-.17l6.44 7.4a6.657 6.657 0 0 0 4.96 2.3c2.13.03 5.05.06 5.53.06 11.01 0 17.19-5.05 17.19-9.89 0-2.01-.67-3.44-1.97-4.4Z" })
10194
+ children: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("path", { d: "M16.09 21.37h-5.2c-1.58 0-3.08.68-4.11 1.87L.21 30.8c4.78.25 9.78.25 13.3.25 18.31 0 20.89-11.27 20.89-16.55-1.59 1.93-6.06 6.87-18.32 6.87Zm16.05-17.1c-.08.92-.59 4.69-11.31 4.69-8.72 0-12.24 0-20.83-.17l6.44 7.4a6.657 6.657 0 0 0 4.96 2.3c2.13.03 5.05.06 5.53.06 11.01 0 17.19-5.05 17.19-9.89 0-2.01-.67-3.44-1.97-4.4Z" })
10084
10195
  }
10085
10196
  );
10086
10197
  };
@@ -10088,12 +10199,12 @@ var renderLogotype = (logotypeColor, iconOnly) => {
10088
10199
  if (iconOnly) {
10089
10200
  return null;
10090
10201
  }
10091
- return /* @__PURE__ */ (0, import_jsx_runtime219.jsx)(
10202
+ return /* @__PURE__ */ (0, import_jsx_runtime222.jsx)(
10092
10203
  "g",
10093
10204
  {
10094
10205
  "data-testid": "ui-wistia-logo-logotype",
10095
10206
  fill: logotypeColor,
10096
- children: /* @__PURE__ */ (0, import_jsx_runtime219.jsx)("path", { d: "M70.16 8.66v15.18c0 1.68-.35 3.09-1.05 4.23a6.612 6.612 0 0 1-2.85 2.54c-1.19.55-2.52.82-4.01.82s-2.8-.28-4.01-.85a6.655 6.655 0 0 1-3.11-2.96c-.08.15-.16.29-.24.42a6.552 6.552 0 0 1-2.87 2.54c-1.2.56-2.54.85-4.01.85s-2.8-.27-3.94-.82a6.214 6.214 0 0 1-2.71-2.52c-.67-1.14-1.01-2.56-1.02-4.25l-.22-15.18h7.34V22.3c0 .82.19 1.37.56 1.67.39.28.85.42 1.38.42s1.02-.15 1.45-.45c.43-.3.65-.85.65-1.65V8.65h7.3v13.64c0 .8.22 1.35.65 1.65.43.3.91.45 1.45.45s.99-.14 1.36-.42c.39-.3.58-.85.58-1.67V8.66h7.34Zm2.45 0v22.26h7.34V8.66h-7.34Zm5.67-1.87c.61-.3 1.08-.71 1.42-1.25.36-.55.53-1.19.53-1.94s-.18-1.34-.53-1.89A3.43 3.43 0 0 0 78.28.44c-.59-.3-1.25-.45-1.98-.45s-1.42.15-2.02.45c-.59.3-1.07.72-1.42 1.27-.36.55-.53 1.18-.53 1.89 0 1.1.38 1.97 1.13 2.63.76.65 1.71.98 2.85.98.73 0 1.39-.14 1.98-.42Zm8.86 1.96c-1.42.4-2.6 1.11-3.54 2.14-.93 1.02-1.4 2.4-1.4 4.12 0 1.11.17 2.09.51 2.94.36.85.82 1.62 1.38 2.34.22.28.55.65.98 1.11.37.4.64.72.8.96.18.24.27.47.27.69 0 .5-.4.87-1.2 1.09-.8.21-1.62.31-2.47.31-.1-.01-.22-.02-.33-.02l1.02 6.94c.42.07.92.11 1.51.11 1.9 0 3.6-.28 5.1-.85 1.5-.56 2.68-1.42 3.54-2.56.88-1.14 1.31-2.55 1.31-4.23 0-.68-.07-1.31-.22-1.87-.13-.58-.32-1.09-.56-1.54a6.64 6.64 0 0 0-.8-1.27c-.3-.37-.74-.82-1.34-1.36-.39-.33-.67-.59-.85-.8-.18-.22-.27-.45-.27-.67 0-.46.26-.79.78-.98.53-.19 1.17-.29 1.91-.29.25 0 .51.01.78.04l-.71-6.88a10.4 10.4 0 0 0-1.56-.11c-1.66 0-3.21.21-4.65.62Zm19.54 15.71c-.99 0-1.71-.23-2.14-.69-.42-.47-.62-1.18-.62-2.11v-6.57h4.21V8.66h-4.21V3.38l-7.34 1.85V24.1c0 2.45.47 4.29 1.4 5.52.95 1.22 2.45 1.83 4.49 1.83.95 0 1.86-.07 2.74-.22.88-.13 1.62-.34 2.25-.62l1.38-6.3c-.55.1-1.27.16-2.16.16Zm4.13-15.8v22.26h7.34V8.66h-7.34Zm5.67-1.87c.61-.3 1.08-.71 1.42-1.25.36-.55.53-1.19.53-1.94s-.18-1.34-.53-1.89a3.43 3.43 0 0 0-1.42-1.27c-.59-.3-1.25-.45-1.98-.45s-1.42.15-2.02.45c-.59.3-1.07.72-1.42 1.27-.36.55-.53 1.18-.53 1.89 0 1.1.38 1.97 1.14 2.63.76.65 1.71.98 2.85.98.73 0 1.39-.14 1.98-.42Zm27.51 1.87v22.26h-7.34v-2.28c-.41.43-.85.83-1.34 1.19-1.44 1.07-3.12 1.6-5.05 1.6s-3.61-.52-5.1-1.56c-1.48-1.05-2.63-2.47-3.45-4.25-.82-1.78-1.22-3.73-1.22-5.85s.41-4.07 1.22-5.83c.82-1.78 1.97-3.19 3.45-4.23 1.48-1.05 3.18-1.58 5.1-1.58s3.61.53 5.05 1.6c.48.36.93.75 1.34 1.19V8.66h7.34Zm-7.1 11.11c0-.8-.19-1.53-.56-2.18-.37-.67-.88-1.19-1.54-1.58-.64-.39-1.34-.58-2.09-.58s-1.45.19-2.09.58c-.64.39-1.15.91-1.54 1.58-.37.67-.56 1.39-.56 2.18s.19 1.51.56 2.18c.39.67.9 1.19 1.54 1.58.64.39 1.34.58 2.09.58s1.45-.19 2.09-.58c.65-.39 1.16-.91 1.54-1.56.37-.67.56-1.4.56-2.2Z" })
10207
+ children: /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("path", { d: "M70.16 8.66v15.18c0 1.68-.35 3.09-1.05 4.23a6.612 6.612 0 0 1-2.85 2.54c-1.19.55-2.52.82-4.01.82s-2.8-.28-4.01-.85a6.655 6.655 0 0 1-3.11-2.96c-.08.15-.16.29-.24.42a6.552 6.552 0 0 1-2.87 2.54c-1.2.56-2.54.85-4.01.85s-2.8-.27-3.94-.82a6.214 6.214 0 0 1-2.71-2.52c-.67-1.14-1.01-2.56-1.02-4.25l-.22-15.18h7.34V22.3c0 .82.19 1.37.56 1.67.39.28.85.42 1.38.42s1.02-.15 1.45-.45c.43-.3.65-.85.65-1.65V8.65h7.3v13.64c0 .8.22 1.35.65 1.65.43.3.91.45 1.45.45s.99-.14 1.36-.42c.39-.3.58-.85.58-1.67V8.66h7.34Zm2.45 0v22.26h7.34V8.66h-7.34Zm5.67-1.87c.61-.3 1.08-.71 1.42-1.25.36-.55.53-1.19.53-1.94s-.18-1.34-.53-1.89A3.43 3.43 0 0 0 78.28.44c-.59-.3-1.25-.45-1.98-.45s-1.42.15-2.02.45c-.59.3-1.07.72-1.42 1.27-.36.55-.53 1.18-.53 1.89 0 1.1.38 1.97 1.13 2.63.76.65 1.71.98 2.85.98.73 0 1.39-.14 1.98-.42Zm8.86 1.96c-1.42.4-2.6 1.11-3.54 2.14-.93 1.02-1.4 2.4-1.4 4.12 0 1.11.17 2.09.51 2.94.36.85.82 1.62 1.38 2.34.22.28.55.65.98 1.11.37.4.64.72.8.96.18.24.27.47.27.69 0 .5-.4.87-1.2 1.09-.8.21-1.62.31-2.47.31-.1-.01-.22-.02-.33-.02l1.02 6.94c.42.07.92.11 1.51.11 1.9 0 3.6-.28 5.1-.85 1.5-.56 2.68-1.42 3.54-2.56.88-1.14 1.31-2.55 1.31-4.23 0-.68-.07-1.31-.22-1.87-.13-.58-.32-1.09-.56-1.54a6.64 6.64 0 0 0-.8-1.27c-.3-.37-.74-.82-1.34-1.36-.39-.33-.67-.59-.85-.8-.18-.22-.27-.45-.27-.67 0-.46.26-.79.78-.98.53-.19 1.17-.29 1.91-.29.25 0 .51.01.78.04l-.71-6.88a10.4 10.4 0 0 0-1.56-.11c-1.66 0-3.21.21-4.65.62Zm19.54 15.71c-.99 0-1.71-.23-2.14-.69-.42-.47-.62-1.18-.62-2.11v-6.57h4.21V8.66h-4.21V3.38l-7.34 1.85V24.1c0 2.45.47 4.29 1.4 5.52.95 1.22 2.45 1.83 4.49 1.83.95 0 1.86-.07 2.74-.22.88-.13 1.62-.34 2.25-.62l1.38-6.3c-.55.1-1.27.16-2.16.16Zm4.13-15.8v22.26h7.34V8.66h-7.34Zm5.67-1.87c.61-.3 1.08-.71 1.42-1.25.36-.55.53-1.19.53-1.94s-.18-1.34-.53-1.89a3.43 3.43 0 0 0-1.42-1.27c-.59-.3-1.25-.45-1.98-.45s-1.42.15-2.02.45c-.59.3-1.07.72-1.42 1.27-.36.55-.53 1.18-.53 1.89 0 1.1.38 1.97 1.14 2.63.76.65 1.71.98 2.85.98.73 0 1.39-.14 1.98-.42Zm27.51 1.87v22.26h-7.34v-2.28c-.41.43-.85.83-1.34 1.19-1.44 1.07-3.12 1.6-5.05 1.6s-3.61-.52-5.1-1.56c-1.48-1.05-2.63-2.47-3.45-4.25-.82-1.78-1.22-3.73-1.22-5.85s.41-4.07 1.22-5.83c.82-1.78 1.97-3.19 3.45-4.23 1.48-1.05 3.18-1.58 5.1-1.58s3.61.53 5.05 1.6c.48.36.93.75 1.34 1.19V8.66h7.34Zm-7.1 11.11c0-.8-.19-1.53-.56-2.18-.37-.67-.88-1.19-1.54-1.58-.64-.39-1.34-.58-2.09-.58s-1.45.19-2.09.58c-.64.39-1.15.91-1.54 1.58-.37.67-.56 1.39-.56 2.18s.19 1.51.56 2.18c.39.67.9 1.19 1.54 1.58.64.39 1.34.58 2.09.58s1.45-.19 2.09-.58c.65-.39 1.16-.91 1.54-1.56.37-.67.56-1.4.56-2.2Z" })
10097
10208
  }
10098
10209
  );
10099
10210
  };
@@ -10103,7 +10214,7 @@ var computedViewBox = (iconOnly) => {
10103
10214
  }
10104
10215
  return "0 0 144 31.47";
10105
10216
  };
10106
- var WistiaLogoComponent = import_styled_components68.default.svg`
10217
+ var WistiaLogoComponent = import_styled_components69.default.svg`
10107
10218
  height: ${({ height }) => `${height}px`};
10108
10219
 
10109
10220
  /* ensure it will always fit on mobile */
@@ -10145,7 +10256,7 @@ var WistiaLogo = ({
10145
10256
  };
10146
10257
  const brandmarkColor = VARIANT_COLORS[variant].brandmark;
10147
10258
  const logotypeColor = VARIANT_COLORS[variant].logotype;
10148
- const Logo = /* @__PURE__ */ (0, import_jsx_runtime219.jsxs)(
10259
+ const Logo = /* @__PURE__ */ (0, import_jsx_runtime222.jsxs)(
10149
10260
  WistiaLogoComponent,
10150
10261
  {
10151
10262
  $hoverColor: hoverColor,
@@ -10155,16 +10266,200 @@ var WistiaLogo = ({
10155
10266
  xmlns: "http://www.w3.org/2000/svg",
10156
10267
  ...otherProps,
10157
10268
  children: [
10158
- /* @__PURE__ */ (0, import_jsx_runtime219.jsx)("title", { children: title }),
10159
- (0, import_type_guards38.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime219.jsx)("desc", { children: description }) : null,
10269
+ /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("title", { children: title }),
10270
+ (0, import_type_guards41.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("desc", { children: description }) : null,
10160
10271
  renderBrandmark(brandmarkColor, iconOnly),
10161
10272
  renderLogotype(logotypeColor, iconOnly)
10162
10273
  ]
10163
10274
  }
10164
10275
  );
10165
- return href !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime219.jsx)("a", { href, children: Logo }) : Logo;
10276
+ return href !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime222.jsx)("a", { href, children: Logo }) : Logo;
10166
10277
  };
10167
10278
  WistiaLogo.displayName = "WistiaLogo";
10279
+
10280
+ // src/components/Select/Select.tsx
10281
+ var import_react_select = require("@radix-ui/react-select");
10282
+ var import_react55 = require("react");
10283
+ var import_styled_components70 = __toESM(require("styled-components"));
10284
+ var import_jsx_runtime223 = require("react/jsx-runtime");
10285
+ var StyledTrigger = (0, import_styled_components70.default)(import_react_select.Trigger)`
10286
+ ${({ $colorScheme }) => getColorScheme($colorScheme)};
10287
+ --wui-select-color-bg: var(--wui-color-bg-surface);
10288
+ --wui-select-color-bg-disabled: var(--wui-color-bg-surface-disabled);
10289
+ --wui-select-color-border: var(--wui-color-border);
10290
+ --wui-select-color-border-focus: var(--wui-color-border-active);
10291
+ --wui-select-color-border-error: var(--wui-color-border-error);
10292
+ --wui-select-color-border-disabled: var(--wui-color-border-disabled);
10293
+ --wui-select-border-radius: var(--wui-border-radius-rounded);
10294
+ --wui-select-multiline-border-radius: var(--wui-border-radius-02);
10295
+ --wui-select-vertical-padding: var(--wui-space-02);
10296
+ --wui-select-horizontal-padding: var(--wui-space-03);
10297
+ --wui-select-placeholder: var(--wui-gray-10);
10298
+ --wui-select-color-text-error: var(--wui-color-text-error);
10299
+
10300
+ padding: var(--wui-select-vertical-padding) var(--wui-select-horizontal-padding);
10301
+ background-color: var(--wui-select-color-bg);
10302
+ border: 1px solid var(--wui-select-color-border);
10303
+ border-radius: var(--wui-select-border-radius);
10304
+ min-width: 200px;
10305
+ text-align: left;
10306
+ display: inline-flex;
10307
+ align-items: center;
10308
+ justify-content: space-between;
10309
+ width: ${({ $fullWidth = false }) => $fullWidth ? "100%" : "auto"};
10310
+
10311
+ &[aria-expanded='true'],
10312
+ &:focus {
10313
+ outline: 2px solid var(--wui-color-focus-ring);
10314
+ }
10315
+
10316
+ &[aria-invalid='true'] {
10317
+ outline: 2px solid var(--wui-select-color-border-error);
10318
+ color: var(--wui-select-color-text-error);
10319
+ }
10320
+
10321
+ &:disabled {
10322
+ border-color: var(--wui-color-bg-surface-disabled);
10323
+ background-color: var(--wui-color-bg-surface-disabled);
10324
+ }
10325
+ `;
10326
+ var StyledContent2 = (0, import_styled_components70.default)(import_react_select.Content)`
10327
+ --wui-select-content-border: var(--wui-color-border);
10328
+ --wui-select-content-bg: var(--wui-color-bg-surface);
10329
+ --wui-select-content-border-radius: var(--wui-border-radius-02);
10330
+ --wui-select-option-padding: var(--wui-space-02);
10331
+ --wui-select-option-inner-gap: var(--wui-space-03);
10332
+ --wui-select-option-bg-hover: var(--wui-color-bg-surface-hover);
10333
+
10334
+ overflow: hidden;
10335
+ transform: translateY(8px);
10336
+ background-color: var(--wui-select-content-bg);
10337
+ border: 1px solid var(--wui-select-content-border);
10338
+ border-radius: var(--wui-select-content-border-radius);
10339
+ padding: var(--wui-select-option-padding);
10340
+ min-width: 200px;
10341
+ `;
10342
+ var Select = (0, import_react55.forwardRef)(
10343
+ ({
10344
+ colorScheme = "inherit",
10345
+ children,
10346
+ onChange = () => null,
10347
+ placeholder = "Select...",
10348
+ fullWidth = false,
10349
+ ...props
10350
+ }, forwardedRef) => {
10351
+ const responsiveFullWidth = useResponsiveProp(fullWidth);
10352
+ return /* @__PURE__ */ (0, import_jsx_runtime223.jsxs)(
10353
+ import_react_select.Root,
10354
+ {
10355
+ ...props,
10356
+ onValueChange: onChange,
10357
+ children: [
10358
+ /* @__PURE__ */ (0, import_jsx_runtime223.jsxs)(
10359
+ StyledTrigger,
10360
+ {
10361
+ ref: forwardedRef,
10362
+ $colorScheme: colorScheme,
10363
+ $fullWidth: responsiveFullWidth,
10364
+ ...props,
10365
+ children: [
10366
+ /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.Value, { placeholder }),
10367
+ /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(
10368
+ Icon,
10369
+ {
10370
+ size: "md",
10371
+ type: "caret-down"
10372
+ }
10373
+ )
10374
+ ]
10375
+ }
10376
+ ),
10377
+ /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime223.jsxs)(StyledContent2, { position: "popper", children: [
10378
+ /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.ScrollUpButton, { children: /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(Icon, { type: "caret-up" }) }),
10379
+ /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.Viewport, { children }),
10380
+ /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_react_select.ScrollDownButton, { children: /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(Icon, { type: "caret-down" }) })
10381
+ ] }) })
10382
+ ]
10383
+ }
10384
+ );
10385
+ }
10386
+ );
10387
+ Select.displayName = "Select";
10388
+
10389
+ // src/components/Select/SelectOption.tsx
10390
+ var import_react_select2 = require("@radix-ui/react-select");
10391
+ var import_react56 = require("react");
10392
+ var import_styled_components71 = __toESM(require("styled-components"));
10393
+ var import_jsx_runtime224 = require("react/jsx-runtime");
10394
+ var StyledItem = (0, import_styled_components71.default)(import_react_select2.Item)`
10395
+ ${variantStyleMap2.body3};
10396
+ display: flex;
10397
+ padding: var(--wui-select-option-padding);
10398
+ gap: var(--wui-select-option-inner-gap);
10399
+ font-size: var(--font-size);
10400
+ font-weight: var(--font-weight);
10401
+ border-radius: var(--wui-border-radius-01);
10402
+
10403
+ &:hover,
10404
+ &:focus-visible {
10405
+ background-color: var(--wui-select-option-bg-hover);
10406
+ outline: none;
10407
+ }
10408
+
10409
+ &[aria-disabled='true'] {
10410
+ color: var(--wui-color-text-disabled);
10411
+ }
10412
+
10413
+ &[aria-disabled='true']:hover {
10414
+ background-color: transparent;
10415
+ }
10416
+ `;
10417
+ var StyledIconContainer = import_styled_components71.default.span`
10418
+ width: 12px;
10419
+ `;
10420
+ var SelectOption = (0, import_react56.forwardRef)(
10421
+ ({ children, ...props }, forwardedRef) => {
10422
+ return /* @__PURE__ */ (0, import_jsx_runtime224.jsxs)(
10423
+ StyledItem,
10424
+ {
10425
+ ...props,
10426
+ ref: forwardedRef,
10427
+ children: [
10428
+ /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(StyledIconContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(import_react_select2.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(
10429
+ Icon,
10430
+ {
10431
+ size: "sm",
10432
+ type: "checkmark"
10433
+ }
10434
+ ) }) }),
10435
+ /* @__PURE__ */ (0, import_jsx_runtime224.jsx)(import_react_select2.ItemText, { children })
10436
+ ]
10437
+ }
10438
+ );
10439
+ }
10440
+ );
10441
+ SelectOption.displayName = "Option";
10442
+
10443
+ // src/components/Select/SelectOptionGroup.tsx
10444
+ var import_react_select3 = require("@radix-ui/react-select");
10445
+ var import_styled_components72 = __toESM(require("styled-components"));
10446
+ var import_jsx_runtime225 = require("react/jsx-runtime");
10447
+ var StyledLabel4 = (0, import_styled_components72.default)(import_react_select3.Label)`
10448
+ padding: var(--wui-select-option-padding);
10449
+ `;
10450
+ var SelectOptionGroup = ({ children, label, ...props }) => {
10451
+ return /* @__PURE__ */ (0, import_jsx_runtime225.jsxs)(import_react_select3.Group, { ...props, children: [
10452
+ /* @__PURE__ */ (0, import_jsx_runtime225.jsx)(StyledLabel4, { children: /* @__PURE__ */ (0, import_jsx_runtime225.jsx)(
10453
+ Text,
10454
+ {
10455
+ prominence: "secondary",
10456
+ variant: "body3",
10457
+ children: label
10458
+ }
10459
+ ) }),
10460
+ children
10461
+ ] });
10462
+ };
10168
10463
  // Annotate the CommonJS export names for ESM import in node:
10169
10464
  0 && (module.exports = {
10170
10465
  ActionButton,
@@ -10179,6 +10474,9 @@ WistiaLogo.displayName = "WistiaLogo";
10179
10474
  Checkbox,
10180
10475
  CheckboxGroup,
10181
10476
  CheckboxMenuItem,
10477
+ Collapsible,
10478
+ CollapsibleContent,
10479
+ CollapsibleTrigger,
10182
10480
  ColorSchemeWrapper,
10183
10481
  DataCard,
10184
10482
  DataCardTrend,