@wistia/ui 0.0.15 → 0.0.17

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.0.15
3
+ * @license @wistia/ui v0.0.17
4
4
  *
5
5
  * Copyright (c) 2024-2024, Wistia, Inc. and its affiliates.
6
6
  *
@@ -44,6 +44,8 @@ __export(src_exports, {
44
44
  Box: () => Box,
45
45
  Button: () => Button,
46
46
  ButtonGroup: () => ButtonGroup,
47
+ Checkbox: () => Checkbox,
48
+ CheckboxMenuItem: () => CheckboxMenuItem,
47
49
  ColorSchemeWrapper: () => ColorSchemeWrapper,
48
50
  Divider: () => Divider,
49
51
  Ellipsis: () => Ellipsis,
@@ -52,8 +54,16 @@ __export(src_exports, {
52
54
  IconButton: () => IconButton,
53
55
  Label: () => Label,
54
56
  Link: () => Link,
57
+ Menu: () => Menu,
58
+ MenuItem: () => MenuItem,
59
+ MenuItemDescription: () => MenuItemDescription,
60
+ MenuItemLabel: () => MenuItemLabel,
61
+ MenuLabel: () => MenuLabel,
62
+ MenuRadioGroup: () => MenuRadioGroup,
63
+ RadioMenuItem: () => RadioMenuItem,
55
64
  ScreenReaderOnly: () => ScreenReaderOnly,
56
65
  Stack: () => Stack,
66
+ SubMenu: () => SubMenu,
57
67
  Text: () => Text,
58
68
  Tooltip: () => Tooltip,
59
69
  UIProvider: () => UIProvider,
@@ -2082,7 +2092,6 @@ var outlineButtonVariant = import_styled_components16.css`
2082
2092
  ${ghostButtonVariant};
2083
2093
  --button-color-border: var(--color-border);
2084
2094
 
2085
- border: 1px solid var(--button-color-border);
2086
2095
  box-shadow: 0 0 0 2px var(--button-color-border) inset;
2087
2096
  `;
2088
2097
  var softButtonVariant = import_styled_components16.css`
@@ -5540,6 +5549,7 @@ var StyledButton = import_styled_components19.default.button`
5540
5549
  ${({ $unstyled }) => !$unstyled && buttonBaseStyles}
5541
5550
  ${({ $fullWidth }) => $fullWidth && "width: 100%;"}
5542
5551
  position: relative;
5552
+ text-align: center;
5543
5553
  `;
5544
5554
  var StyledButtonContent = import_styled_components19.default.div`
5545
5555
  align-items: center;
@@ -5555,7 +5565,6 @@ var StyledButtonContent = import_styled_components19.default.div`
5555
5565
  `;
5556
5566
  var StyledButtonContentLabel = import_styled_components19.default.span`
5557
5567
  flex: 1;
5558
- text-align: center;
5559
5568
  `;
5560
5569
  var StyledButtonLoading = import_styled_components19.default.div`
5561
5570
  position: absolute;
@@ -5727,14 +5736,237 @@ var ButtonGroup = ({
5727
5736
  };
5728
5737
  ButtonGroup.displayName = "ButtonGroup";
5729
5738
 
5730
- // src/components/Divider/Divider.tsx
5739
+ // src/components/Checkbox/Checkbox.tsx
5740
+ var import_react11 = require("react");
5741
+ var import_react_checkbox = require("@radix-ui/react-checkbox");
5742
+ var import_styled_components23 = __toESM(require("styled-components"));
5743
+ var import_type_guards15 = require("@wistia/type-guards");
5744
+
5745
+ // src/components/Label/Label.tsx
5731
5746
  var import_styled_components21 = __toESM(require("styled-components"));
5732
5747
  var import_jsx_runtime164 = require("react/jsx-runtime");
5748
+ var requiredStyle = import_styled_components21.css`
5749
+ &::after {
5750
+ color: var(--color-text-error);
5751
+ display: inline;
5752
+ padding-left: var(--space-01);
5753
+ content: '*';
5754
+ }
5755
+ `;
5756
+ var disabledStyle = import_styled_components21.css`
5757
+ color: var(--color-text-disabled);
5758
+ `;
5759
+ var SPACE_BETWEEN_LABEL_AND_INPUT = "var(--space-02)";
5760
+ var StyledLabel = import_styled_components21.default.label`
5761
+ display: inline-block;
5762
+ font-size: var(--typography-label-1-size);
5763
+ font-weight: var(--typography-label-1-weight);
5764
+ line-height: var(--typography-label-1-line-height);
5765
+ cursor: inherit;
5766
+ width: 100%;
5767
+
5768
+ /* if label is wrapping an input this ensures it appears beneath the label with a nice margin */
5769
+ > input,
5770
+ > textarea,
5771
+ > select {
5772
+ display: block;
5773
+ margin-top: ${SPACE_BETWEEN_LABEL_AND_INPUT};
5774
+ }
5775
+
5776
+ > label {
5777
+ font-weight: normal;
5778
+ }
5779
+
5780
+ ${({ $screenReaderOnly }) => $screenReaderOnly && visuallyHiddenStyle}
5781
+ ${({ disabled }) => disabled && disabledStyle}
5782
+ ${({ required }) => required && requiredStyle}
5783
+ `;
5784
+ var Label = ({
5785
+ children,
5786
+ disabled = false,
5787
+ htmlFor,
5788
+ required = false,
5789
+ screenReaderOnly = false,
5790
+ ...otherProps
5791
+ }) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
5792
+ StyledLabel,
5793
+ {
5794
+ $screenReaderOnly: screenReaderOnly,
5795
+ disabled,
5796
+ htmlFor,
5797
+ required,
5798
+ ...otherProps,
5799
+ children
5800
+ }
5801
+ );
5802
+ Label.displayName = "Label";
5803
+
5804
+ // src/components/Label/LabelDescription.tsx
5805
+ var import_styled_components22 = __toESM(require("styled-components"));
5806
+ var import_type_guards14 = require("@wistia/type-guards");
5807
+ var import_jsx_runtime165 = require("react/jsx-runtime");
5808
+ var StyledLabelDescription = import_styled_components22.default.div`
5809
+ color: var(--color-text-secondary);
5810
+ font-size: var(--typography-body-4-size);
5811
+ font-weight: var(--typography-body-4-weight);
5812
+ line-height: var(--typography-body-4-line-height);
5813
+ `;
5814
+ var LabelDescription = ({
5815
+ children,
5816
+ ...props
5817
+ }) => {
5818
+ if ((0, import_type_guards14.isNil)(children)) {
5819
+ return null;
5820
+ }
5821
+ return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(StyledLabelDescription, { ...props, children });
5822
+ };
5823
+ LabelDescription.displayName = "LabelDescription";
5824
+
5825
+ // src/components/Checkbox/Checkbox.tsx
5826
+ var import_jsx_runtime166 = require("react/jsx-runtime");
5827
+ var CheckIcon = () => /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
5828
+ "svg",
5829
+ {
5830
+ fill: "inherit",
5831
+ height: "8",
5832
+ viewBox: "0 0 10 8",
5833
+ width: "10",
5834
+ xmlns: "http://www.w3.org/2000/svg",
5835
+ children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
5836
+ "path",
5837
+ {
5838
+ d: "M3.47281 7.19303L0.377565 4.07999C0.191609 3.89297 0.191609 3.58973 0.377565 3.40268L1.05098 2.72537C1.23694 2.53833 1.53847 2.53833 1.72442 2.72537L3.80953 4.82245L8.27558 0.330729C8.46154 0.143704 8.76306 0.143704 8.94902 0.330729L9.62244 1.00804C9.8084 1.19506 9.8084 1.49831 9.62244 1.68535L4.14624 7.19305C3.96027 7.38008 3.65876 7.38008 3.47281 7.19303Z",
5839
+ fill: "white"
5840
+ }
5841
+ )
5842
+ }
5843
+ );
5844
+ var StyledCheckboxWrapper = import_styled_components23.default.div`
5845
+ display: flex;
5846
+ align-items: center;
5847
+ cursor: pointer;
5848
+ padding: var(--space-02);
5849
+
5850
+ &:hover {
5851
+ /* TODO Lamp to design hover state */
5852
+ }
5853
+
5854
+ &:focus-within {
5855
+ /* TODO Lamp to design focus state */
5856
+ background-color: #efefef;
5857
+ }
5858
+ `;
5859
+ var StyledCheckboxRoot = (0, import_styled_components23.default)(import_react_checkbox.Root)`
5860
+ all: unset; /* CheckboxRoot renders as a button element, so we need to reset all styles */
5861
+ background-color: var(--color-bg-fill-white);
5862
+ min-width: 16px;
5863
+ min-height: 16px;
5864
+ border-radius: var(--border-radius-01);
5865
+ border-width: 1px;
5866
+ border-style: solid;
5867
+ border-color: var(--color-border);
5868
+ display: flex;
5869
+ align-items: center;
5870
+ justify-content: center;
5871
+ align-self: start; /* align to the top to handle label descriptions */
5872
+ margin-top: 3px; /* bump down slightly to mimic "align-self: center" */
5873
+
5874
+ &[data-state='checked'] {
5875
+ background-color: var(--color-bg-fill);
5876
+ }
5877
+
5878
+ &[disabled] {
5879
+ background-color: var(--color-bg-surface-disabled);
5880
+
5881
+ svg path {
5882
+ fill: var(--color-icon-disabled);
5883
+ }
5884
+ }
5885
+
5886
+ &:hover {
5887
+ /* TODO Lamp to design hover state */
5888
+ }
5889
+
5890
+ &:focus {
5891
+ /* TODO Lamp to design focus state */
5892
+ }
5893
+ `;
5894
+ var StyledCheckboxIndicator = (0, import_styled_components23.default)(import_react_checkbox.Indicator)`
5895
+ display: flex;
5896
+ `;
5897
+ var StyledLabelWrapper = import_styled_components23.default.div`
5898
+ display: flex;
5899
+ flex-direction: column;
5900
+ padding-left: var(--space-02);
5901
+ `;
5902
+ var Checkbox = (0, import_react11.forwardRef)(
5903
+ ({
5904
+ checked,
5905
+ disabled = false,
5906
+ forceState,
5907
+ id,
5908
+ label = "default",
5909
+ description,
5910
+ name,
5911
+ onChange,
5912
+ required = false,
5913
+ value = "false",
5914
+ ...otherProps
5915
+ }, ref) => {
5916
+ const generatedId = (0, import_react11.useId)();
5917
+ const computedId = (0, import_type_guards15.isNonEmptyString)(id) ? id : `vhs-collapsible-group-${generatedId}`;
5918
+ return /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(StyledCheckboxWrapper, { children: [
5919
+ /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
5920
+ StyledCheckboxRoot,
5921
+ {
5922
+ ref,
5923
+ checked: checked ?? void 0,
5924
+ defaultChecked: checked === void 0 ? false : void 0,
5925
+ disabled,
5926
+ id: computedId,
5927
+ name,
5928
+ onCheckedChange: (state) => {
5929
+ if (onChange) {
5930
+ const syntheticEvent = {
5931
+ target: {
5932
+ id: computedId,
5933
+ checked: state === true
5934
+ }
5935
+ };
5936
+ onChange(syntheticEvent);
5937
+ }
5938
+ },
5939
+ required,
5940
+ value,
5941
+ ...otherProps,
5942
+ children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(StyledCheckboxIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(CheckIcon, {}) })
5943
+ }
5944
+ ),
5945
+ /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(StyledLabelWrapper, { children: [
5946
+ /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
5947
+ Label,
5948
+ {
5949
+ disabled,
5950
+ htmlFor: computedId,
5951
+ required,
5952
+ children: label
5953
+ }
5954
+ ),
5955
+ /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(LabelDescription, { children: description })
5956
+ ] })
5957
+ ] });
5958
+ }
5959
+ );
5960
+ Checkbox.displayName = "Checkbox";
5961
+
5962
+ // src/components/Divider/Divider.tsx
5963
+ var import_styled_components24 = __toESM(require("styled-components"));
5964
+ var import_jsx_runtime167 = require("react/jsx-runtime");
5733
5965
  var sizeToPixelMap = {
5734
5966
  lg: 4,
5735
5967
  sm: 1
5736
5968
  };
5737
- var DividerComponent = import_styled_components21.default.hr`
5969
+ var DividerComponent = import_styled_components24.default.hr`
5738
5970
  background: none;
5739
5971
  border-bottom: none;
5740
5972
  border-left: none;
@@ -5749,7 +5981,7 @@ var DividerComponent = import_styled_components21.default.hr`
5749
5981
  `;
5750
5982
  var Divider = ({ size = "sm", ...otherProps }) => {
5751
5983
  const responsiveSize = useResponsiveProp(size);
5752
- return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
5984
+ return /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
5753
5985
  DividerComponent,
5754
5986
  {
5755
5987
  $borderHeight: sizeToPixelMap[responsiveSize],
@@ -5760,10 +5992,10 @@ var Divider = ({ size = "sm", ...otherProps }) => {
5760
5992
  Divider.displayName = "Divider";
5761
5993
 
5762
5994
  // src/components/Ellipsis/Ellipsis.tsx
5763
- var import_type_guards14 = require("@wistia/type-guards");
5764
- var import_styled_components22 = __toESM(require("styled-components"));
5765
- var import_jsx_runtime165 = require("react/jsx-runtime");
5766
- var ellipsisStyle = import_styled_components22.css`
5995
+ var import_type_guards16 = require("@wistia/type-guards");
5996
+ var import_styled_components25 = __toESM(require("styled-components"));
5997
+ var import_jsx_runtime168 = require("react/jsx-runtime");
5998
+ var ellipsisStyle = import_styled_components25.css`
5767
5999
  overflow: hidden;
5768
6000
  text-overflow: ellipsis;
5769
6001
  white-space: nowrap;
@@ -5786,14 +6018,14 @@ var ellipsisStyle = import_styled_components22.css`
5786
6018
  }
5787
6019
  }
5788
6020
  `;
5789
- var ellipsisFlexParentStyle = import_styled_components22.css`
6021
+ var ellipsisFlexParentStyle = import_styled_components25.css`
5790
6022
  min-width: 0;
5791
6023
  `;
5792
- var EllipsisComponent = import_styled_components22.default.div`
6024
+ var EllipsisComponent = import_styled_components25.default.div`
5793
6025
  ${ellipsisStyle};
5794
6026
  ${({ $lines }) => {
5795
- if ((0, import_type_guards14.isNotNil)($lines)) {
5796
- return import_styled_components22.css`
6027
+ if ((0, import_type_guards16.isNotNil)($lines)) {
6028
+ return import_styled_components25.css`
5797
6029
  -webkit-box-orient: vertical;
5798
6030
  -webkit-line-clamp: ${$lines};
5799
6031
  display: -webkit-box;
@@ -5803,7 +6035,7 @@ var EllipsisComponent = import_styled_components22.default.div`
5803
6035
  return void 0;
5804
6036
  }}
5805
6037
  `;
5806
- var Ellipsis = ({ children, lines, ...otherProps }) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
6038
+ var Ellipsis = ({ children, lines, ...otherProps }) => /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
5807
6039
  EllipsisComponent,
5808
6040
  {
5809
6041
  $lines: lines,
@@ -5814,8 +6046,8 @@ var Ellipsis = ({ children, lines, ...otherProps }) => /* @__PURE__ */ (0, impor
5814
6046
  Ellipsis.displayName = "Ellipsis";
5815
6047
 
5816
6048
  // src/components/Heading/Heading.tsx
5817
- var import_react11 = require("react");
5818
- var import_styled_components23 = __toESM(require("styled-components"));
6049
+ var import_react12 = require("react");
6050
+ var import_styled_components26 = __toESM(require("styled-components"));
5819
6051
 
5820
6052
  // src/private/helpers/makePolymorphic/makePolymorphic.tsx
5821
6053
  var makePolymorphic = (component) => {
@@ -5823,44 +6055,44 @@ var makePolymorphic = (component) => {
5823
6055
  };
5824
6056
 
5825
6057
  // src/components/Heading/Heading.tsx
5826
- var import_jsx_runtime166 = require("react/jsx-runtime");
5827
- var heroStyle = import_styled_components23.css`
6058
+ var import_jsx_runtime169 = require("react/jsx-runtime");
6059
+ var heroStyle = import_styled_components26.css`
5828
6060
  --font-family: var(--typography-heading-hero-family);
5829
6061
  --font-size: var(--typography-heading-hero-size);
5830
6062
  --font-weight: var(--typography-heading-hero-weight);
5831
6063
  --line-height: var(--typography-heading-hero-line-height);
5832
6064
  `;
5833
- var heading1TextStyle = import_styled_components23.css`
6065
+ var heading1TextStyle = import_styled_components26.css`
5834
6066
  --font-family: var(--typography-heading-1-family);
5835
6067
  --font-size: var(--typography-heading-1-size);
5836
6068
  --font-weight: var(--typography-heading-1-weight);
5837
6069
  --line-height: var(--typography-heading-1-line-height);
5838
6070
  `;
5839
- var heading2TextStyle = import_styled_components23.css`
6071
+ var heading2TextStyle = import_styled_components26.css`
5840
6072
  --font-family: var(--typography-heading-2-family);
5841
6073
  --font-size: var(--typography-heading-2-size);
5842
6074
  --font-weight: var(--typography-heading-2-weight);
5843
6075
  --line-height: var(--typography-heading-2-line-height);
5844
6076
  `;
5845
- var heading3TextStyle = import_styled_components23.css`
6077
+ var heading3TextStyle = import_styled_components26.css`
5846
6078
  --font-family: var(--typography-heading-3-family);
5847
6079
  --font-size: var(--typography-heading-3-size);
5848
6080
  --font-weight: var(--typography-heading-3-weight);
5849
6081
  --line-height: var(--typography-heading-3-line-height);
5850
6082
  `;
5851
- var heading4TextStyle = import_styled_components23.css`
6083
+ var heading4TextStyle = import_styled_components26.css`
5852
6084
  --font-family: var(--typography-heading-4-family);
5853
6085
  --font-size: var(--typography-heading-4-size);
5854
6086
  --font-weight: var(--typography-heading-4-weight);
5855
6087
  --line-height: var(--typography-heading-4-line-height);
5856
6088
  `;
5857
- var heading5TextStyle = import_styled_components23.css`
6089
+ var heading5TextStyle = import_styled_components26.css`
5858
6090
  --font-family: var(--typography-heading-5-family);
5859
6091
  --font-size: var(--typography-heading-5-size);
5860
6092
  --font-weight: var(--typography-heading-5-weight);
5861
6093
  --line-height: var(--typography-heading-5-line-height);
5862
6094
  `;
5863
- var heading6TextStyle = import_styled_components23.css`
6095
+ var heading6TextStyle = import_styled_components26.css`
5864
6096
  --font-family: var(--typography-heading-6-family);
5865
6097
  --font-size: var(--typography-heading-6-size);
5866
6098
  --font-weight: var(--typography-heading-6-weight);
@@ -5876,7 +6108,7 @@ var variantStyleMap = {
5876
6108
  heading6: heading6TextStyle
5877
6109
  };
5878
6110
  var DEFAULT_ELEMENT = "h1";
5879
- var StyledHeading = import_styled_components23.default.div`
6111
+ var StyledHeading = import_styled_components26.default.div`
5880
6112
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
5881
6113
  font-family: var(--font-family);
5882
6114
  font-size: var(--font-size);
@@ -5885,16 +6117,16 @@ var StyledHeading = import_styled_components23.default.div`
5885
6117
  color: var(--color-text);
5886
6118
  ${({ $variant }) => variantStyleMap[$variant]}
5887
6119
  ${({ $ellipsis }) => $ellipsis && ellipsisStyle};
5888
- ${({ $inline }) => $inline && import_styled_components23.css`
6120
+ ${({ $inline }) => $inline && import_styled_components26.css`
5889
6121
  display: inline-block;
5890
6122
  `}
5891
- ${({ $disabled }) => $disabled && import_styled_components23.css`
6123
+ ${({ $disabled }) => $disabled && import_styled_components26.css`
5892
6124
  color: var(--color-text-disabled);
5893
6125
  `}
5894
- ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components23.css`
6126
+ ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components26.css`
5895
6127
  user-select: none;
5896
6128
  `}
5897
- ${({ $align }) => import_styled_components23.css`
6129
+ ${({ $align }) => import_styled_components26.css`
5898
6130
  text-align: ${$align};
5899
6131
  `}
5900
6132
  margin: 0;
@@ -5908,7 +6140,7 @@ var variantElementMap = {
5908
6140
  heading5: "h5",
5909
6141
  heading6: "h6"
5910
6142
  };
5911
- var HeadingComponent = (0, import_react11.forwardRef)(
6143
+ var HeadingComponent = (0, import_react12.forwardRef)(
5912
6144
  ({
5913
6145
  align = "left",
5914
6146
  colorScheme = "inherit",
@@ -5919,7 +6151,7 @@ var HeadingComponent = (0, import_react11.forwardRef)(
5919
6151
  variant = "heading1",
5920
6152
  renderAs,
5921
6153
  ...otherProps
5922
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
6154
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
5923
6155
  StyledHeading,
5924
6156
  {
5925
6157
  ref,
@@ -5939,21 +6171,21 @@ HeadingComponent.displayName = "Heading";
5939
6171
  var Heading = makePolymorphic(HeadingComponent);
5940
6172
 
5941
6173
  // src/components/IconButton/IconButton.tsx
5942
- var import_react12 = require("react");
5943
- var import_styled_components25 = __toESM(require("styled-components"));
6174
+ var import_react13 = require("react");
6175
+ var import_styled_components28 = __toESM(require("styled-components"));
5944
6176
 
5945
6177
  // src/components/Tooltip/Tooltip.tsx
5946
6178
  var import_react_tooltip2 = require("@radix-ui/react-tooltip");
5947
- var import_styled_components24 = __toESM(require("styled-components"));
5948
- var import_jsx_runtime167 = require("react/jsx-runtime");
5949
- var CompactTooltipStyles = import_styled_components24.css`
6179
+ var import_styled_components27 = __toESM(require("styled-components"));
6180
+ var import_jsx_runtime170 = require("react/jsx-runtime");
6181
+ var CompactTooltipStyles = import_styled_components27.css`
5950
6182
  --tooltip-font-size: var(--typography-label-4-size);
5951
6183
  --tooltip-line-height: var(--typography-label-4-line-height);
5952
6184
  --tooltip-font-weight: var(--typography-label-4-weight);
5953
6185
  --tooltip-horizontal-padding: var(--space-02);
5954
6186
  --tooltip-vertical-padding: var(--space-03);
5955
6187
  `;
5956
- var StyledContent = (0, import_styled_components24.default)(import_react_tooltip2.Content)`
6188
+ var StyledContent = (0, import_styled_components27.default)(import_react_tooltip2.Content)`
5957
6189
  --tooltip-font-family: var(--typography-family-default);
5958
6190
  --tooltip-border-radius: var(--border-radius-05);
5959
6191
  --tooltip-bg: var(--color-bg-tooltip);
@@ -6011,14 +6243,14 @@ var Tooltip = ({
6011
6243
  if (forceOpen === true) {
6012
6244
  rootProps.open = true;
6013
6245
  }
6014
- return /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
6246
+ return /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
6015
6247
  import_react_tooltip2.Root,
6016
6248
  {
6017
6249
  delayDuration: delay,
6018
6250
  ...rootProps,
6019
6251
  children: [
6020
- /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_react_tooltip2.Trigger, { asChild: true, children }),
6021
- /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_react_tooltip2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
6252
+ /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(import_react_tooltip2.Trigger, { asChild: true, children }),
6253
+ /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(import_react_tooltip2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
6022
6254
  StyledContent,
6023
6255
  {
6024
6256
  $compact: compact,
@@ -6026,7 +6258,7 @@ var Tooltip = ({
6026
6258
  sideOffset: hideArrow ? VISUAL_OFFSET : VISUAL_OFFSET - 2,
6027
6259
  children: [
6028
6260
  content,
6029
- !hideArrow ? /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_react_tooltip2.Arrow, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
6261
+ !hideArrow ? /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(import_react_tooltip2.Arrow, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
6030
6262
  "svg",
6031
6263
  {
6032
6264
  fill: "var(--tooltip-bg)",
@@ -6035,7 +6267,7 @@ var Tooltip = ({
6035
6267
  viewBox: "0 0 12 8",
6036
6268
  width: "12",
6037
6269
  xmlns: "http://www.w3.org/2000/svg",
6038
- children: /* @__PURE__ */ (0, import_jsx_runtime167.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" })
6270
+ children: /* @__PURE__ */ (0, import_jsx_runtime170.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" })
6039
6271
  }
6040
6272
  ) }) : null
6041
6273
  ]
@@ -6048,8 +6280,8 @@ var Tooltip = ({
6048
6280
  Tooltip.displayName = "Tooltip";
6049
6281
 
6050
6282
  // src/components/IconButton/IconButton.tsx
6051
- var import_jsx_runtime168 = require("react/jsx-runtime");
6052
- var StyledButton2 = (0, import_styled_components25.default)(Button)`
6283
+ var import_jsx_runtime171 = require("react/jsx-runtime");
6284
+ var StyledButton2 = (0, import_styled_components28.default)(Button)`
6053
6285
  --icon-button-size-sm: 24px;
6054
6286
  --icon-button-size-md: 32px;
6055
6287
  --icon-button-size-lg: 40px;
@@ -6063,10 +6295,10 @@ var StyledButton2 = (0, import_styled_components25.default)(Button)`
6063
6295
  align-items: center;
6064
6296
  line-height: 1;
6065
6297
  `;
6066
- var IconButton = (0, import_react12.forwardRef)(
6298
+ var IconButton = (0, import_react13.forwardRef)(
6067
6299
  ({ children, label, disableTooltip = false, size = "md", ...props }, ref) => {
6068
6300
  const responsiveSize = useResponsiveProp(size);
6069
- const button = /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
6301
+ const button = /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
6070
6302
  StyledButton2,
6071
6303
  {
6072
6304
  ...props,
@@ -6074,7 +6306,7 @@ var IconButton = (0, import_react12.forwardRef)(
6074
6306
  "aria-label": label,
6075
6307
  "data-wistia-ui-icon-button": true,
6076
6308
  size: responsiveSize,
6077
- children: (0, import_react12.cloneElement)(import_react12.Children.only(children), {
6309
+ children: (0, import_react13.cloneElement)(import_react13.Children.only(children), {
6078
6310
  size: responsiveSize
6079
6311
  })
6080
6312
  }
@@ -6082,211 +6314,212 @@ var IconButton = (0, import_react12.forwardRef)(
6082
6314
  if (disableTooltip) {
6083
6315
  return button;
6084
6316
  }
6085
- return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(Tooltip, { content: label, children: button });
6317
+ return /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(Tooltip, { content: label, children: button });
6086
6318
  }
6087
6319
  );
6088
6320
  IconButton.displayName = "IconButton";
6089
6321
 
6090
- // src/components/Label/Label.tsx
6091
- var import_styled_components26 = __toESM(require("styled-components"));
6092
- var import_jsx_runtime169 = require("react/jsx-runtime");
6093
- var requiredStyle = import_styled_components26.css`
6094
- &::after {
6095
- color: red; /* TODO need a color for this */
6096
- display: inline;
6097
- padding-left: var(--space-01);
6098
- content: '*';
6322
+ // src/components/Menu/Menu.tsx
6323
+ var import_styled_components29 = __toESM(require("styled-components"));
6324
+ var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
6325
+ var import_type_guards17 = require("@wistia/type-guards");
6326
+ var import_jsx_runtime172 = require("react/jsx-runtime");
6327
+ var open = import_styled_components29.keyframes`
6328
+ from {
6329
+ opacity: 0;
6330
+ transform: scale(.97) translateY(-8px);
6331
+ }
6332
+ to {
6333
+ opacity: 1;
6334
+ transform: scale(1);
6099
6335
  }
6100
6336
  `;
6101
- var disabledStyle = import_styled_components26.css`
6102
- color: var(--color-text-disabled);
6337
+ var close = import_styled_components29.keyframes`
6338
+ from {
6339
+ opacity: 1;
6340
+ transform: scale(1);
6341
+ }
6342
+ to {
6343
+ opacity: 0;
6344
+ transform: scale(.97) translateY(-8px);
6345
+ }
6103
6346
  `;
6104
- var SPACE_BETWEEN_LABEL_AND_INPUT = "var(--space-02)";
6105
- var StyledLabel = import_styled_components26.default.label`
6106
- display: inline-block;
6107
- font-size: var(--typography-label-1-size);
6108
- font-weight: var(--typography-label-1-weight);
6109
- line-height: var(--typography-label-1-line-height);
6110
- margin-bottom: ${SPACE_BETWEEN_LABEL_AND_INPUT};
6111
- cursor: inherit;
6112
- width: 100%;
6113
-
6114
- /* if label is wrapping an input this ensures it appears beneath the label with a nice margin */
6115
- > input,
6116
- > textarea,
6117
- > select {
6118
- display: block;
6119
- margin-top: ${SPACE_BETWEEN_LABEL_AND_INPUT};
6347
+ var menuContentCss = import_styled_components29.css`
6348
+ --menu-font-family: var(--typography-family-default);
6349
+ --menu-bg: var(--color-bg-fill-white); /* TODO - Not sure what token to use for this */
6350
+ --menu-shadow: 0 0 64px 0 rgba(0 0 0 / 8%); /* TODO - Need a box-shadow token */
6351
+ --menu-border-radius: var(--border-radius-01);
6352
+ --menu-padding: var(--space-03);
6353
+ --menu-min-width: 120px;
6354
+ --menu-max-width: 284px;
6355
+ --menu-zindex: 500; /* TODO - need z-index token */
6356
+
6357
+ animation: ${open}; /* TODO - need easing tokens */
6358
+ font-family: var(--menu-font-family);
6359
+ background: var(--menu-bg);
6360
+ border-radius: var(--menu-border-radius);
6361
+ box-shadow: var(--menu-shadow); /* TODO - Need a box-shadow token */
6362
+ max-height: var(--radix-dropdown-menu-content-available-height);
6363
+ min-width: var(--menu-min-width);
6364
+ max-width: var(--menu-max-width);
6365
+ overflow: auto;
6366
+ padding: var(--menu-padding);
6367
+ transform-origin: var(--radix-dropdown-menu-content-transform-origin);
6368
+ z-index: var(--menu-zindex);
6369
+
6370
+ &[data-state='closed'] {
6371
+ animation: ${close}; /* TODO - need easing tokens */
6120
6372
  }
6121
6373
 
6122
- > label {
6123
- font-weight: normal;
6374
+ ${mq.smAndUp} {
6375
+ bottom: 0;
6376
+ padding: var(--menu-padding);
6377
+ right: 0;
6378
+ top: 0;
6379
+ transform: initial;
6124
6380
  }
6125
6381
 
6126
- ${({ screenReaderOnly }) => screenReaderOnly && visuallyHiddenStyle}
6127
- ${({ disabled }) => disabled && disabledStyle}
6128
- ${({ required }) => required && requiredStyle}
6129
- `;
6130
- var Label = ({
6131
- children,
6132
- disabled = false,
6133
- htmlFor,
6134
- required = false,
6135
- screenReaderOnly = false,
6136
- ...otherProps
6137
- }) => /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
6138
- StyledLabel,
6139
- {
6140
- disabled,
6141
- htmlFor,
6142
- required,
6143
- screenReaderOnly,
6144
- ...otherProps,
6145
- children
6382
+ hr {
6383
+ margin: var(--space-02) 0;
6146
6384
  }
6147
- );
6148
- Label.displayName = "Label";
6149
-
6150
- // src/components/ScreenReaderOnly/ScreenReaderOnly.tsx
6151
- var import_styled_components27 = __toESM(require("styled-components"));
6152
- var import_type_guards15 = require("@wistia/type-guards");
6153
- var import_jsx_runtime170 = require("react/jsx-runtime");
6154
- var VisuallyHidden = import_styled_components27.default.div({ ...visuallyHiddenStyle });
6155
- var VisuallyHiddenButFocusable = import_styled_components27.default.div({
6156
- "&:not(:focus-within)": visuallyHiddenStyle
6157
- });
6158
- var ScreenReaderOnly = ({
6159
- text,
6385
+ `;
6386
+ var MenuContent = (0, import_styled_components29.default)(import_react_dropdown_menu.DropdownMenuContent)`
6387
+ ${menuContentCss}
6388
+ `;
6389
+ var Menu = ({
6390
+ align = "start",
6160
6391
  children,
6161
- focusable = false,
6162
- ...otherProps
6392
+ trigger,
6393
+ label,
6394
+ isOpen,
6395
+ triggerProps = {},
6396
+ onOpenChange,
6397
+ onInteractOutside,
6398
+ ...props
6163
6399
  }) => {
6164
- const accessibleText = (0, import_type_guards15.isNotNil)(text) ? text : children;
6165
- if (focusable) {
6166
- return /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(VisuallyHiddenButFocusable, { ...otherProps, children: accessibleText });
6167
- }
6168
- return /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(VisuallyHidden, { ...otherProps, children: accessibleText });
6400
+ return /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
6401
+ import_react_dropdown_menu.DropdownMenu,
6402
+ {
6403
+ modal: false,
6404
+ ...(0, import_type_guards17.isNotNil)(onOpenChange) && (0, import_type_guards17.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {},
6405
+ children: [
6406
+ /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(import_react_dropdown_menu.DropdownMenuTrigger, { asChild: true, children: (0, import_type_guards17.isNotUndefined)(trigger) ? trigger : /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
6407
+ Button,
6408
+ {
6409
+ "aria-expanded": isOpen,
6410
+ forceState: isOpen ? "active" : void 0,
6411
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(Icon, { type: "caret-down" }),
6412
+ ...triggerProps,
6413
+ children: label
6414
+ }
6415
+ ) }),
6416
+ /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(import_react_dropdown_menu.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
6417
+ MenuContent,
6418
+ {
6419
+ ...props,
6420
+ align,
6421
+ onFocusOutside: (event) => {
6422
+ event.preventDefault();
6423
+ },
6424
+ sideOffset: 6,
6425
+ children
6426
+ }
6427
+ ) })
6428
+ ]
6429
+ }
6430
+ );
6169
6431
  };
6170
- ScreenReaderOnly.displayName = "ScreenReaderOnly";
6432
+ Menu.displayName = "Menu";
6171
6433
 
6172
- // src/components/Stack/Stack.tsx
6173
- var import_react13 = require("react");
6174
- var import_styled_components28 = __toESM(require("styled-components"));
6175
- var import_jsx_runtime171 = require("react/jsx-runtime");
6176
- var DEFAULT_ELEMENT2 = "div";
6177
- var StyledStack = import_styled_components28.default.div`
6178
- display: flex;
6179
- flex-direction: ${({ $direction }) => $direction === "horizontal" ? "row" : "column"};
6180
- gap: ${({ $gap }) => `var(--${$gap})`};
6181
-
6182
- > * {
6183
- flex: 1;
6184
- }
6185
- `;
6186
- var StackComponent = (0, import_react13.forwardRef)(
6187
- ({ renderAs, direction = "vertical", gap = "space-02", ...props }, ref) => {
6188
- const responsiveGap = useResponsiveProp(gap);
6189
- const responsiveDirection = useResponsiveProp(direction);
6190
- return /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
6191
- StyledStack,
6192
- {
6193
- ref,
6194
- $direction: responsiveDirection,
6195
- $gap: responsiveGap,
6196
- as: renderAs ?? DEFAULT_ELEMENT2,
6197
- ...props
6198
- }
6199
- );
6200
- }
6201
- );
6202
- StackComponent.displayName = "Stack";
6203
- var Stack = makePolymorphic(StackComponent);
6434
+ // src/components/Menu/MenuLabel.tsx
6435
+ var import_styled_components31 = __toESM(require("styled-components"));
6436
+ var import_react_dropdown_menu2 = require("@radix-ui/react-dropdown-menu");
6204
6437
 
6205
6438
  // src/components/Text/Text.tsx
6206
6439
  var import_react14 = require("react");
6207
- var import_styled_components29 = __toESM(require("styled-components"));
6208
- var import_jsx_runtime172 = require("react/jsx-runtime");
6209
- var bodyBoldStyles = import_styled_components29.css`
6440
+ var import_styled_components30 = __toESM(require("styled-components"));
6441
+ var import_jsx_runtime173 = require("react/jsx-runtime");
6442
+ var bodyBoldStyles = import_styled_components30.css`
6210
6443
  > strong,
6211
6444
  b {
6212
6445
  font-weight: var(--typography-weight-body-bold);
6213
6446
  }
6214
6447
  `;
6215
- var labelBoldStyles = import_styled_components29.css`
6448
+ var labelBoldStyles = import_styled_components30.css`
6216
6449
  > strong,
6217
6450
  b {
6218
6451
  font-weight: var(--typography-weight-label-bold);
6219
6452
  }
6220
6453
  `;
6221
- var body1TextStyle = import_styled_components29.css`
6454
+ var body1TextStyle = import_styled_components30.css`
6222
6455
  --font-family: var(--typography-body-1-family);
6223
6456
  --font-size: var(--typography-body-1-size);
6224
6457
  --font-weight: var(--typography-body-1-weight);
6225
6458
  --line-height: var(--typography-body-1-line-height);
6226
6459
  ${bodyBoldStyles}
6227
6460
  `;
6228
- var body2TextStyle = import_styled_components29.css`
6461
+ var body2TextStyle = import_styled_components30.css`
6229
6462
  --font-family: var(--typography-body-2-family);
6230
6463
  --font-size: var(--typography-body-2-size);
6231
6464
  --font-weight: var(--typography-body-2-weight);
6232
6465
  --line-height: var(--typography-body-2-line-height);
6233
6466
  ${bodyBoldStyles}
6234
6467
  `;
6235
- var body3TextStyle = import_styled_components29.css`
6468
+ var body3TextStyle = import_styled_components30.css`
6236
6469
  --font-family: var(--typography-body-3-family);
6237
6470
  --font-size: var(--typography-body-3-size);
6238
6471
  --font-weight: var(--typography-body-3-weight);
6239
6472
  --line-height: var(--typography-body-3-line-height);
6240
6473
  ${bodyBoldStyles}
6241
6474
  `;
6242
- var body4TextStyle = import_styled_components29.css`
6475
+ var body4TextStyle = import_styled_components30.css`
6243
6476
  --font-family: var(--typography-body-4-family);
6244
6477
  --font-size: var(--typography-body-4-size);
6245
6478
  --font-weight: var(--typography-body-4-weight);
6246
6479
  --line-height: var(--typography-body-4-line-height);
6247
6480
  ${bodyBoldStyles}
6248
6481
  `;
6249
- var label1TextStyle = import_styled_components29.css`
6482
+ var label1TextStyle = import_styled_components30.css`
6250
6483
  --font-family: var(--typography-label-1-family);
6251
6484
  --font-size: var(--typography-label-1-size);
6252
6485
  --font-weight: var(--typography-label-1-weight);
6253
6486
  --line-height: var(--typography-label-1-line-height);
6254
6487
  ${labelBoldStyles}
6255
6488
  `;
6256
- var label2TextStyle = import_styled_components29.css`
6489
+ var label2TextStyle = import_styled_components30.css`
6257
6490
  --font-family: var(--typography-label-2-family);
6258
6491
  --font-size: var(--typography-label-2-size);
6259
6492
  --font-weight: var(--typography-label-2-weight);
6260
6493
  --line-height: var(--typography-label-2-line-height);
6261
6494
  ${labelBoldStyles}
6262
6495
  `;
6263
- var label3TextStyle = import_styled_components29.css`
6496
+ var label3TextStyle = import_styled_components30.css`
6264
6497
  --font-family: var(--typography-label-3-family);
6265
6498
  --font-size: var(--typography-label-3-size);
6266
6499
  --font-weight: var(--typography-label-3-weight);
6267
6500
  --line-height: var(--typography-label-3-line-height);
6268
6501
  ${labelBoldStyles}
6269
6502
  `;
6270
- var label4TextStyle = import_styled_components29.css`
6503
+ var label4TextStyle = import_styled_components30.css`
6271
6504
  --font-family: var(--typography-label-4-family);
6272
6505
  --font-size: var(--typography-label-4-size);
6273
6506
  --font-weight: var(--typography-label-4-weight);
6274
6507
  --line-height: var(--typography-label-4-line-height);
6275
6508
  ${labelBoldStyles}
6276
6509
  `;
6277
- var body1MonoTextStyle = import_styled_components29.css`
6510
+ var body1MonoTextStyle = import_styled_components30.css`
6278
6511
  ${body1TextStyle};
6279
6512
  --font-family: var(--typography-family-mono);
6280
6513
  `;
6281
- var body2MonoTextStyle = import_styled_components29.css`
6514
+ var body2MonoTextStyle = import_styled_components30.css`
6282
6515
  ${body2TextStyle};
6283
6516
  --font-family: var(--typography-family-mono);
6284
6517
  `;
6285
- var body3MonoTextStyle = import_styled_components29.css`
6518
+ var body3MonoTextStyle = import_styled_components30.css`
6286
6519
  ${body3TextStyle};
6287
6520
  --font-family: var(--typography-family-mono);
6288
6521
  `;
6289
- var body4MonoTextStyle = import_styled_components29.css`
6522
+ var body4MonoTextStyle = import_styled_components30.css`
6290
6523
  ${body4TextStyle};
6291
6524
  --font-family: var(--typography-family-mono);
6292
6525
  `;
@@ -6304,13 +6537,13 @@ var variantStyleMap2 = {
6304
6537
  label3: label3TextStyle,
6305
6538
  label4: label4TextStyle
6306
6539
  };
6307
- var highContrastProminenceStyle = import_styled_components29.css`
6540
+ var highContrastProminenceStyle = import_styled_components30.css`
6308
6541
  --text-color: var(--color-text-high-contrast);
6309
6542
  `;
6310
- var vibrantProminenceStyle = import_styled_components29.css`
6543
+ var vibrantProminenceStyle = import_styled_components30.css`
6311
6544
  --text-color: var(--color-text);
6312
6545
  `;
6313
- var secondaryProminenceStyle = import_styled_components29.css`
6546
+ var secondaryProminenceStyle = import_styled_components30.css`
6314
6547
  --text-color: var(--color-text-secondary);
6315
6548
  `;
6316
6549
  var prominenceMap = {
@@ -6318,7 +6551,7 @@ var prominenceMap = {
6318
6551
  vibrant: vibrantProminenceStyle,
6319
6552
  secondary: secondaryProminenceStyle
6320
6553
  };
6321
- var StyledText = import_styled_components29.default.div`
6554
+ var StyledText = import_styled_components30.default.div`
6322
6555
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
6323
6556
  font-family: var(--font-family);
6324
6557
  font-size: var(--font-size);
@@ -6330,23 +6563,23 @@ var StyledText = import_styled_components29.default.div`
6330
6563
  ${({ $variant }) => variantStyleMap2[$variant]}
6331
6564
  ${({ $prominence }) => prominenceMap[$prominence]}
6332
6565
  ${({ $ellipsis }) => $ellipsis && ellipsisStyle};
6333
- ${({ $inline }) => $inline && import_styled_components29.css`
6566
+ ${({ $inline }) => $inline && import_styled_components30.css`
6334
6567
  display: inline-block;
6335
6568
  `}
6336
- ${({ $disabled }) => $disabled && import_styled_components29.css`
6569
+ ${({ $disabled }) => $disabled && import_styled_components30.css`
6337
6570
  --text-color: var(--color-text-disabled);
6338
6571
  `}
6339
- ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components29.css`
6572
+ ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components30.css`
6340
6573
  user-select: none;
6341
6574
  `}
6342
- ${({ $align }) => import_styled_components29.css`
6575
+ ${({ $align }) => import_styled_components30.css`
6343
6576
  text-align: ${$align};
6344
6577
  `}
6345
- ${({ as }) => as === "p" && import_styled_components29.css`
6578
+ ${({ as }) => as === "p" && import_styled_components30.css`
6346
6579
  display: block;
6347
6580
  `}
6348
6581
  `;
6349
- var DEFAULT_ELEMENT3 = "div";
6582
+ var DEFAULT_ELEMENT2 = "div";
6350
6583
  var TextComponent = (0, import_react14.forwardRef)(
6351
6584
  ({
6352
6585
  align = "left",
@@ -6360,7 +6593,7 @@ var TextComponent = (0, import_react14.forwardRef)(
6360
6593
  renderAs,
6361
6594
  ...otherProps
6362
6595
  }, ref) => {
6363
- return /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
6596
+ return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
6364
6597
  StyledText,
6365
6598
  {
6366
6599
  ref,
@@ -6372,7 +6605,7 @@ var TextComponent = (0, import_react14.forwardRef)(
6372
6605
  $preventUserSelect: preventUserSelect,
6373
6606
  $prominence: prominence,
6374
6607
  $variant: variant,
6375
- as: renderAs ?? DEFAULT_ELEMENT3,
6608
+ as: renderAs ?? DEFAULT_ELEMENT2,
6376
6609
  ...otherProps
6377
6610
  }
6378
6611
  );
@@ -6381,21 +6614,393 @@ var TextComponent = (0, import_react14.forwardRef)(
6381
6614
  TextComponent.displayName = "Text";
6382
6615
  var Text = makePolymorphic(TextComponent);
6383
6616
 
6617
+ // src/components/Menu/MenuLabel.tsx
6618
+ var import_jsx_runtime174 = require("react/jsx-runtime");
6619
+ var StyledMenuLabel = (0, import_styled_components31.default)(import_react_dropdown_menu2.DropdownMenuLabel)`
6620
+ padding: var(--space-02);
6621
+ `;
6622
+ var MenuLabel = ({ children, ...props }) => {
6623
+ return /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
6624
+ StyledMenuLabel,
6625
+ {
6626
+ asChild: true,
6627
+ ...props,
6628
+ children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
6629
+ Text,
6630
+ {
6631
+ variant: "label3",
6632
+ ...props,
6633
+ children
6634
+ }
6635
+ )
6636
+ }
6637
+ );
6638
+ };
6639
+ MenuLabel.displayName = "MenuLabel";
6640
+
6641
+ // src/components/Menu/SubMenu.tsx
6642
+ var import_react16 = require("react");
6643
+ var import_styled_components34 = __toESM(require("styled-components"));
6644
+ var import_react_dropdown_menu3 = require("@radix-ui/react-dropdown-menu");
6645
+
6646
+ // src/components/Menu/MenuItemButton.tsx
6647
+ var import_react15 = require("react");
6648
+ var import_styled_components32 = __toESM(require("styled-components"));
6649
+ var import_type_guards18 = require("@wistia/type-guards");
6650
+ var import_jsx_runtime175 = require("react/jsx-runtime");
6651
+ var StyledButton3 = (0, import_styled_components32.default)(Button)`
6652
+ --menu-item-border-radius: var(--border-radius-01);
6653
+ --menu-item-gap: var(--space-01);
6654
+ --menu-item-inner-gap: var(--space-04);
6655
+ --menu-item-disabled-bg: var(--color-white);
6656
+
6657
+ text-align: left;
6658
+ align-items: left;
6659
+ border-radius: var(--menu-item-border-radius);
6660
+ display: flex;
6661
+
6662
+ &[aria-disabled='true'] {
6663
+ background-color: var(--menu-item-disabled-bg);
6664
+ }
6665
+
6666
+ ${({ $isGated }) => (0, import_type_guards18.isNotUndefined)($isGated) && $isGated ? `color: var(--color-text);` : ""}
6667
+ `;
6668
+ var StyledMenuContent = import_styled_components32.default.div`
6669
+ display: grid;
6670
+ grid-template-areas:
6671
+ 'label badge'
6672
+ 'description badge';
6673
+ grid-template-columns: 1fr auto;
6674
+ position: relative;
6675
+ align-content: center;
6676
+ `;
6677
+ var StyledBadgeContainer = import_styled_components32.default.div`
6678
+ grid-area: badge;
6679
+ align-self: start;
6680
+ justify-self: end;
6681
+ margin-left: var(--menu-item-inner-gap);
6682
+ `;
6683
+ var MenuItemButton = (0, import_react15.forwardRef)(({ children, appearance, command, ...props }, ref) => {
6684
+ let { colorScheme, badge } = props;
6685
+ if (appearance === "dangerous") {
6686
+ if ((0, import_type_guards18.isNotUndefined)(colorScheme)) {
6687
+ console.warn("colorScheme prop is ignored when appearance is dangerous");
6688
+ }
6689
+ colorScheme = "error";
6690
+ }
6691
+ if (appearance === "gated") {
6692
+ if ((0, import_type_guards18.isNotUndefined)(colorScheme)) {
6693
+ console.warn("colorScheme prop is ignored when appearance is gated");
6694
+ }
6695
+ colorScheme = "purple";
6696
+ badge = /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(Icon, { type: "sparkle" });
6697
+ }
6698
+ return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
6699
+ StyledButton3,
6700
+ {
6701
+ ...props,
6702
+ ref,
6703
+ $isGated: appearance === "gated",
6704
+ colorScheme: colorScheme ?? "default",
6705
+ fullWidth: true,
6706
+ variant: "ghost",
6707
+ children: /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(StyledMenuContent, { children: [
6708
+ children,
6709
+ (0, import_type_guards18.isNotNil)(badge) || (0, import_type_guards18.isNotNil)(command) ? /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(StyledBadgeContainer, { children: badge ?? command }) : null
6710
+ ] })
6711
+ }
6712
+ );
6713
+ });
6714
+ MenuItemButton.displayName = "MenuItemButton";
6715
+
6716
+ // src/components/Menu/MenuItemLabelDescription.tsx
6717
+ var import_styled_components33 = __toESM(require("styled-components"));
6718
+ var import_jsx_runtime176 = require("react/jsx-runtime");
6719
+ var StyledMenuItemLabel = (0, import_styled_components33.default)(Text).attrs({ variant: "label3" })`
6720
+ grid-area: label;
6721
+ `;
6722
+ var StyledMenuItemDescription = (0, import_styled_components33.default)(Text).attrs({
6723
+ variant: "label4",
6724
+ prominence: "secondary"
6725
+ })`
6726
+ margin-top: var(--menu-item-gap);
6727
+ grid-area: description;
6728
+ `;
6729
+ var MenuItemLabel = ({ children }) => {
6730
+ return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledMenuItemLabel, { children });
6731
+ };
6732
+ var MenuItemDescription = ({ children }) => {
6733
+ return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledMenuItemDescription, { children });
6734
+ };
6735
+
6736
+ // src/components/Menu/SubMenu.tsx
6737
+ var import_jsx_runtime177 = require("react/jsx-runtime");
6738
+ var SubMenuContent = (0, import_styled_components34.default)(import_react_dropdown_menu3.DropdownMenuSubContent)`
6739
+ ${menuContentCss}
6740
+ width: 298px;
6741
+
6742
+ ${mq.smAndDown} {
6743
+ transform: translateX(-100%) !important;
6744
+ }
6745
+ `;
6746
+ var StyledMobileSubMenuItems = import_styled_components34.default.div`
6747
+ margin-left: var(--space-04);
6748
+ `;
6749
+ var StyledSubTrigger = (0, import_styled_components34.default)(import_react_dropdown_menu3.DropdownMenuSubTrigger)`
6750
+ outline: none;
6751
+
6752
+ &[data-state='open'],
6753
+ &[data-highlighted] {
6754
+ background-color: var(--button-color-bg-hover);
6755
+ }
6756
+ `;
6757
+ var SubMenuTrigger = (props) => {
6758
+ const { isSmAndUp } = useMq();
6759
+ const Trigger2 = isSmAndUp ? StyledSubTrigger : import_react_dropdown_menu3.DropdownMenuItem;
6760
+ return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(Trigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
6761
+ MenuItemButton,
6762
+ {
6763
+ ...props,
6764
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(Icon, { type: "caret-right" })
6765
+ }
6766
+ ) });
6767
+ };
6768
+ var SubMenu = ({
6769
+ label,
6770
+ description,
6771
+ children,
6772
+ onOpenChange = () => null,
6773
+ ...props
6774
+ }) => {
6775
+ const { isSmAndUp } = useMq();
6776
+ const [isExpanded, setIsExpanded] = (0, import_react16.useState)(false);
6777
+ return isSmAndUp ? /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)(import_react_dropdown_menu3.DropdownMenuSub, { onOpenChange, children: [
6778
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)(SubMenuTrigger, { ...props, children: [
6779
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(MenuItemLabel, { children: label }),
6780
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(MenuItemDescription, { children: description })
6781
+ ] }),
6782
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(import_react_dropdown_menu3.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(SubMenuContent, { children }) })
6783
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)(import_react_dropdown_menu3.DropdownMenuGroup, { children: [
6784
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)(
6785
+ SubMenuTrigger,
6786
+ {
6787
+ ...props,
6788
+ onClick: (event) => {
6789
+ event.preventDefault();
6790
+ setIsExpanded((prev) => !prev);
6791
+ },
6792
+ children: [
6793
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(MenuItemLabel, { children: label }),
6794
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(MenuItemDescription, { children: description })
6795
+ ]
6796
+ }
6797
+ ),
6798
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(StyledMobileSubMenuItems, { children: isExpanded ? children : null })
6799
+ ] });
6800
+ };
6801
+ SubMenu.displayName = "SubMenu";
6802
+
6803
+ // src/components/Menu/MenuItem.tsx
6804
+ var import_react17 = require("react");
6805
+ var import_react_dropdown_menu4 = require("@radix-ui/react-dropdown-menu");
6806
+ var import_jsx_runtime178 = require("react/jsx-runtime");
6807
+ var MenuItem = (0, import_react17.forwardRef)(
6808
+ ({ onSelect = () => null, ...props }, ref) => {
6809
+ return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
6810
+ import_react_dropdown_menu4.DropdownMenuItem,
6811
+ {
6812
+ asChild: true,
6813
+ onSelect,
6814
+ children: /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
6815
+ MenuItemButton,
6816
+ {
6817
+ ...props,
6818
+ ref,
6819
+ leftIcon: props.icon
6820
+ }
6821
+ )
6822
+ }
6823
+ );
6824
+ }
6825
+ );
6826
+ MenuItem.displayName = "MenuItem";
6827
+
6828
+ // src/components/Menu/MenuRadioGroup.tsx
6829
+ var import_react_dropdown_menu5 = require("@radix-ui/react-dropdown-menu");
6830
+ var import_jsx_runtime179 = require("react/jsx-runtime");
6831
+ var MenuRadioGroup = ({ children, label, ...props }) => {
6832
+ return /* @__PURE__ */ (0, import_jsx_runtime179.jsxs)(import_react_dropdown_menu5.DropdownMenuRadioGroup, { ...props, children: [
6833
+ /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(MenuLabel, { children: label }),
6834
+ children
6835
+ ] });
6836
+ };
6837
+ MenuRadioGroup.displayName = "MenuRadioGroup";
6838
+
6839
+ // src/components/Menu/RadioMenuItem.tsx
6840
+ var import_react_dropdown_menu6 = require("@radix-ui/react-dropdown-menu");
6841
+ var import_jsx_runtime180 = require("react/jsx-runtime");
6842
+ var RadioMenuItem = ({
6843
+ onSelect,
6844
+ value,
6845
+ indicator = /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
6846
+ Icon,
6847
+ {
6848
+ size: "sm",
6849
+ type: "checkmark"
6850
+ }
6851
+ ),
6852
+ ...props
6853
+ }) => {
6854
+ const extraProps = onSelect ? { onSelect } : {};
6855
+ return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
6856
+ import_react_dropdown_menu6.DropdownMenuRadioItem,
6857
+ {
6858
+ ...extraProps,
6859
+ value,
6860
+ children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
6861
+ MenuItemButton,
6862
+ {
6863
+ ...props,
6864
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_react_dropdown_menu6.DropdownMenuItemIndicator, { children: indicator })
6865
+ }
6866
+ )
6867
+ }
6868
+ );
6869
+ };
6870
+ RadioMenuItem.displayName = "RadioMenuItem";
6871
+
6872
+ // src/components/Menu/CheckboxMenuItem.tsx
6873
+ var import_react_dropdown_menu7 = require("@radix-ui/react-dropdown-menu");
6874
+ var import_jsx_runtime181 = require("react/jsx-runtime");
6875
+ var CheckboxMenuItem = ({
6876
+ onSelect,
6877
+ checked,
6878
+ onCheckedChange,
6879
+ indicator = /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
6880
+ Icon,
6881
+ {
6882
+ size: "sm",
6883
+ type: "checkmark"
6884
+ }
6885
+ ),
6886
+ ...props
6887
+ }) => {
6888
+ let extraProps = {};
6889
+ if (onSelect) {
6890
+ extraProps = {
6891
+ ...extraProps,
6892
+ onCheckedChange,
6893
+ onSelect
6894
+ };
6895
+ }
6896
+ return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
6897
+ import_react_dropdown_menu7.DropdownMenuCheckboxItem,
6898
+ {
6899
+ ...extraProps,
6900
+ checked,
6901
+ children: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
6902
+ MenuItemButton,
6903
+ {
6904
+ ...props,
6905
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_react_dropdown_menu7.DropdownMenuItemIndicator, { children: indicator })
6906
+ }
6907
+ )
6908
+ }
6909
+ );
6910
+ };
6911
+ CheckboxMenuItem.displayName = "CheckboxMenuItem";
6912
+
6913
+ // src/components/ScreenReaderOnly/ScreenReaderOnly.tsx
6914
+ var import_styled_components35 = __toESM(require("styled-components"));
6915
+ var import_type_guards19 = require("@wistia/type-guards");
6916
+ var import_jsx_runtime182 = require("react/jsx-runtime");
6917
+ var VisuallyHidden = import_styled_components35.default.div({ ...visuallyHiddenStyle });
6918
+ var VisuallyHiddenButFocusable = import_styled_components35.default.div({
6919
+ "&:not(:focus-within)": visuallyHiddenStyle
6920
+ });
6921
+ var ScreenReaderOnly = ({
6922
+ text,
6923
+ children,
6924
+ focusable = false,
6925
+ ...otherProps
6926
+ }) => {
6927
+ const accessibleText = (0, import_type_guards19.isNotNil)(text) ? text : children;
6928
+ if (focusable) {
6929
+ return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(VisuallyHiddenButFocusable, { ...otherProps, children: accessibleText });
6930
+ }
6931
+ return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(VisuallyHidden, { ...otherProps, children: accessibleText });
6932
+ };
6933
+ ScreenReaderOnly.displayName = "ScreenReaderOnly";
6934
+
6935
+ // src/components/Stack/Stack.tsx
6936
+ var import_react18 = require("react");
6937
+ var import_styled_components36 = __toESM(require("styled-components"));
6938
+ var import_jsx_runtime183 = require("react/jsx-runtime");
6939
+ var DEFAULT_ELEMENT3 = "div";
6940
+ var StyledStack = import_styled_components36.default.div`
6941
+ display: flex;
6942
+ flex-direction: ${({ $direction }) => $direction === "horizontal" ? "row" : "column"};
6943
+ gap: ${({ $gap }) => `var(--${$gap})`};
6944
+
6945
+ > * {
6946
+ flex: 1;
6947
+ }
6948
+ `;
6949
+ var StackComponent = (0, import_react18.forwardRef)(
6950
+ ({ renderAs, direction = "vertical", gap = "space-02", ...props }, ref) => {
6951
+ const responsiveGap = useResponsiveProp(gap);
6952
+ const responsiveDirection = useResponsiveProp(direction);
6953
+ return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
6954
+ StyledStack,
6955
+ {
6956
+ ref,
6957
+ $direction: responsiveDirection,
6958
+ $gap: responsiveGap,
6959
+ as: renderAs ?? DEFAULT_ELEMENT3,
6960
+ ...props
6961
+ }
6962
+ );
6963
+ }
6964
+ );
6965
+ StackComponent.displayName = "Stack";
6966
+ var Stack = makePolymorphic(StackComponent);
6967
+
6384
6968
  // src/components/WistiaLogo/WistiaLogo.tsx
6385
- var import_styled_components30 = __toESM(require("styled-components"));
6386
- var import_type_guards16 = require("@wistia/type-guards");
6387
- var import_jsx_runtime173 = require("react/jsx-runtime");
6969
+ var import_styled_components37 = __toESM(require("styled-components"));
6970
+ var import_type_guards20 = require("@wistia/type-guards");
6971
+ var import_jsx_runtime184 = require("react/jsx-runtime");
6388
6972
  var renderBrandmark = (brandmarkColor, iconOnly) => {
6389
6973
  if (iconOnly) {
6390
- return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("g", { fill: brandmarkColor, children: /* @__PURE__ */ (0, import_jsx_runtime173.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" }) });
6974
+ return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
6975
+ "g",
6976
+ {
6977
+ "data-testid": "ui-wistia-logo-brandmark",
6978
+ fill: brandmarkColor,
6979
+ children: /* @__PURE__ */ (0, import_jsx_runtime184.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" })
6980
+ }
6981
+ );
6391
6982
  }
6392
- return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("g", { fill: brandmarkColor, children: /* @__PURE__ */ (0, import_jsx_runtime173.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" }) });
6983
+ return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
6984
+ "g",
6985
+ {
6986
+ "data-testid": "ui-wistia-logo-brandmark",
6987
+ fill: brandmarkColor,
6988
+ children: /* @__PURE__ */ (0, import_jsx_runtime184.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" })
6989
+ }
6990
+ );
6393
6991
  };
6394
6992
  var renderLogotype = (logotypeColor, iconOnly) => {
6395
6993
  if (iconOnly) {
6396
6994
  return null;
6397
6995
  }
6398
- return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("g", { fill: logotypeColor, children: /* @__PURE__ */ (0, import_jsx_runtime173.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" }) });
6996
+ return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
6997
+ "g",
6998
+ {
6999
+ "data-testid": "ui-wistia-logo-logotype",
7000
+ fill: logotypeColor,
7001
+ children: /* @__PURE__ */ (0, import_jsx_runtime184.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" })
7002
+ }
7003
+ );
6399
7004
  };
6400
7005
  var computedViewBox = (iconOnly) => {
6401
7006
  if (iconOnly) {
@@ -6403,7 +7008,7 @@ var computedViewBox = (iconOnly) => {
6403
7008
  }
6404
7009
  return "0 0 144 31.47";
6405
7010
  };
6406
- var WistiaLogoComponent = import_styled_components30.default.svg`
7011
+ var WistiaLogoComponent = import_styled_components37.default.svg`
6407
7012
  height: ${({ height }) => `${height}px`};
6408
7013
 
6409
7014
  /* ensure it will always fit on mobile */
@@ -6445,7 +7050,7 @@ var WistiaLogo = ({
6445
7050
  };
6446
7051
  const brandmarkColor = VARIANT_COLORS[variant].brandmark;
6447
7052
  const logotypeColor = VARIANT_COLORS[variant].logotype;
6448
- const Logo = /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
7053
+ const Logo = /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(
6449
7054
  WistiaLogoComponent,
6450
7055
  {
6451
7056
  $hoverColor: hoverColor,
@@ -6455,14 +7060,14 @@ var WistiaLogo = ({
6455
7060
  xmlns: "http://www.w3.org/2000/svg",
6456
7061
  ...otherProps,
6457
7062
  children: [
6458
- /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("title", { children: title }),
6459
- (0, import_type_guards16.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("desc", { children: description }) : null,
7063
+ /* @__PURE__ */ (0, import_jsx_runtime184.jsx)("title", { children: title }),
7064
+ (0, import_type_guards20.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime184.jsx)("desc", { children: description }) : null,
6460
7065
  renderBrandmark(brandmarkColor, iconOnly),
6461
7066
  renderLogotype(logotypeColor, iconOnly)
6462
7067
  ]
6463
7068
  }
6464
7069
  );
6465
- return href !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("a", { href, children: Logo }) : Logo;
7070
+ return href !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime184.jsx)("a", { href, children: Logo }) : Logo;
6466
7071
  };
6467
7072
  WistiaLogo.displayName = "WistiaLogo";
6468
7073
  // Annotate the CommonJS export names for ESM import in node:
@@ -6472,6 +7077,8 @@ WistiaLogo.displayName = "WistiaLogo";
6472
7077
  Box,
6473
7078
  Button,
6474
7079
  ButtonGroup,
7080
+ Checkbox,
7081
+ CheckboxMenuItem,
6475
7082
  ColorSchemeWrapper,
6476
7083
  Divider,
6477
7084
  Ellipsis,
@@ -6480,8 +7087,16 @@ WistiaLogo.displayName = "WistiaLogo";
6480
7087
  IconButton,
6481
7088
  Label,
6482
7089
  Link,
7090
+ Menu,
7091
+ MenuItem,
7092
+ MenuItemDescription,
7093
+ MenuItemLabel,
7094
+ MenuLabel,
7095
+ MenuRadioGroup,
7096
+ RadioMenuItem,
6483
7097
  ScreenReaderOnly,
6484
7098
  Stack,
7099
+ SubMenu,
6485
7100
  Text,
6486
7101
  Tooltip,
6487
7102
  UIProvider,