@wistia/ui 0.0.14 → 0.0.16

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.14
3
+ * @license @wistia/ui v0.0.16
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,
@@ -503,6 +513,48 @@ var lightGlobalTokens = import_styled_components3.css`
503
513
  --gray-alpha-10: #0000117d;
504
514
  --gray-alpha-11: #00000a9c;
505
515
  --gray-alpha-12: #000005de;
516
+ --vendor-hubspot-1: #fefcfb;
517
+ --vendor-hubspot-2: #fff5f2;
518
+ --vendor-hubspot-3: #ffe9e2;
519
+ --vendor-hubspot-4: #ffd7c9;
520
+ --vendor-hubspot-5: #ffc8b7;
521
+ --vendor-hubspot-6: #ffb8a3;
522
+ --vendor-hubspot-7: #ffa48d;
523
+ --vendor-hubspot-8: #f68a70;
524
+ --vendor-hubspot-9: #ff5c36;
525
+ --vendor-hubspot-10: #f24d25;
526
+ --vendor-hubspot-11: #d93a0f;
527
+ --vendor-hubspot-12: #5b2a1e;
528
+ --vendor-hubspot-surface: #fff3efcc;
529
+ --vendor-hubspot-contrast: #ffffff;
530
+ --vendor-marketo-1: #fdfdff;
531
+ --vendor-marketo-2: #f7f8ff;
532
+ --vendor-marketo-3: #eff2ff;
533
+ --vendor-marketo-4: #e3e8ff;
534
+ --vendor-marketo-5: #d5ddff;
535
+ --vendor-marketo-6: #c5cfff;
536
+ --vendor-marketo-7: #b0bcfa;
537
+ --vendor-marketo-8: #93a0f2;
538
+ --vendor-marketo-9: #4c50cc;
539
+ --vendor-marketo-10: #4040bb;
540
+ --vendor-marketo-11: #4f55c7;
541
+ --vendor-marketo-12: #252a62;
542
+ --vendor-marketo-surface: #f5f6ffcc;
543
+ --vendor-marketo-contrast: #ffffff;
544
+ --vendor-pardot-1: #fafdff;
545
+ --vendor-pardot-2: #f3fafe;
546
+ --vendor-pardot-3: #e1f5ff;
547
+ --vendor-pardot-4: #ceeeff;
548
+ --vendor-pardot-5: #bae5ff;
549
+ --vendor-pardot-6: #a4d9fa;
550
+ --vendor-pardot-7: #85c9f1;
551
+ --vendor-pardot-8: #4fb3e8;
552
+ --vendor-pardot-9: #00a1e0;
553
+ --vendor-pardot-10: #0094cf;
554
+ --vendor-pardot-11: #0079b5;
555
+ --vendor-pardot-12: #0c3a51;
556
+ --vendor-pardot-surface: #f0f9fecc;
557
+ --vendor-pardot-contrast: #ffffff;
506
558
  `;
507
559
  var darkGlobalTokens = import_styled_components3.css`
508
560
  --app-background: #101629;
@@ -792,6 +844,48 @@ var darkGlobalTokens = import_styled_components3.css`
792
844
  --gray-alpha-10: #a4bffe96;
793
845
  --gray-alpha-11: #b4caffde;
794
846
  --gray-alpha-12: #e4eeff;
847
+ --vendor-hubspot-1: #1d1513;
848
+ --vendor-hubspot-2: #231815;
849
+ --vendor-hubspot-3: #3b1a12;
850
+ --vendor-hubspot-4: #511609;
851
+ --vendor-hubspot-5: #601d0d;
852
+ --vendor-hubspot-6: #702a1a;
853
+ --vendor-hubspot-7: #883a27;
854
+ --vendor-hubspot-8: #af4a33;
855
+ --vendor-hubspot-9: #ff5c36;
856
+ --vendor-hubspot-10: #f14f28;
857
+ --vendor-hubspot-11: #ff9578;
858
+ --vendor-hubspot-12: #ffd5ca;
859
+ --vendor-hubspot-surface: #361a0280;
860
+ --vendor-hubspot-contrast: #ffffff;
861
+ --vendor-marketo-1: #141621;
862
+ --vendor-marketo-2: #161827;
863
+ --vendor-marketo-3: #1f234a;
864
+ --vendor-marketo-4: #262a66;
865
+ --vendor-marketo-5: #2f3476;
866
+ --vendor-marketo-6: #383f83;
867
+ --vendor-marketo-7: #444c97;
868
+ --vendor-marketo-8: #515ab4;
869
+ --vendor-marketo-9: #4c50cc;
870
+ --vendor-marketo-10: #4040bb;
871
+ --vendor-marketo-11: #9faeff;
872
+ --vendor-marketo-12: #dae1ff;
873
+ --vendor-marketo-surface: #1c1a2680;
874
+ --vendor-marketo-contrast: #ffffff;
875
+ --vendor-pardot-1: #0e191f;
876
+ --vendor-pardot-2: #111d24;
877
+ --vendor-pardot-3: #092c3d;
878
+ --vendor-pardot-4: #003752;
879
+ --vendor-pardot-5: #004463;
880
+ --vendor-pardot-6: #055274;
881
+ --vendor-pardot-7: #15648a;
882
+ --vendor-pardot-8: #197ba9;
883
+ --vendor-pardot-9: #00a1e0;
884
+ --vendor-pardot-10: #0095d3;
885
+ --vendor-pardot-11: #62c3f8;
886
+ --vendor-pardot-12: #bfe7ff;
887
+ --vendor-pardot-surface: #12242080;
888
+ --vendor-pardot-contrast: #ffffff;
795
889
  `;
796
890
 
797
891
  // src/css/designTokens/colorAlias.tsx
@@ -1575,7 +1669,10 @@ var colorSchemeOptions = [
1575
1669
  "orange",
1576
1670
  "pink",
1577
1671
  "purple",
1578
- "yellow"
1672
+ "yellow",
1673
+ "vendor-hubspot",
1674
+ "vendor-marketo",
1675
+ "vendor-pardot"
1579
1676
  ];
1580
1677
  var StyledColorSchemeWrapper = import_styled_components11.default.div`
1581
1678
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
@@ -1771,8 +1868,8 @@ var import_react7 = require("react");
1771
1868
  var import_styled_components14 = __toESM(require("styled-components"));
1772
1869
  var import_type_guards8 = require("@wistia/type-guards");
1773
1870
  var import_jsx_runtime6 = require("react/jsx-runtime");
1774
- var isDev = process.env["NODE_ENV"] === "development";
1775
- var PROPS_FOR_FLEX_CHILDREN = /* @__PURE__ */ new Set(["alignSelf", "basis", "grow", "order", "shrink"]);
1871
+ var isDev = process.env["NODE_ENV"] === "development" || process.env["NODE_ENV"] === "test";
1872
+ var propsForFlexChildren = /* @__PURE__ */ new Set(["alignSelf", "basis", "grow", "order", "shrink"]);
1776
1873
  var getGapStyle = (gap) => {
1777
1874
  if ((0, import_type_guards8.isNotNil)(gap)) {
1778
1875
  if ((0, import_type_guards8.isRecord)(gap)) {
@@ -1862,7 +1959,7 @@ var Box = ({
1862
1959
  }) => {
1863
1960
  if (isDev && !hasBoxParent) {
1864
1961
  Object.keys(otherProps).forEach((prop) => {
1865
- if (PROPS_FOR_FLEX_CHILDREN.has(prop)) {
1962
+ if (propsForFlexChildren.has(prop)) {
1866
1963
  console.warn(`${prop} only has an effect on <Box> instances that are children of a <Box>`);
1867
1964
  }
1868
1965
  });
@@ -5453,6 +5550,7 @@ var StyledButton = import_styled_components19.default.button`
5453
5550
  ${({ $unstyled }) => !$unstyled && buttonBaseStyles}
5454
5551
  ${({ $fullWidth }) => $fullWidth && "width: 100%;"}
5455
5552
  position: relative;
5553
+ text-align: center;
5456
5554
  `;
5457
5555
  var StyledButtonContent = import_styled_components19.default.div`
5458
5556
  align-items: center;
@@ -5468,7 +5566,6 @@ var StyledButtonContent = import_styled_components19.default.div`
5468
5566
  `;
5469
5567
  var StyledButtonContentLabel = import_styled_components19.default.span`
5470
5568
  flex: 1;
5471
- text-align: center;
5472
5569
  `;
5473
5570
  var StyledButtonLoading = import_styled_components19.default.div`
5474
5571
  position: absolute;
@@ -5597,7 +5694,7 @@ var getAlignment = (align) => {
5597
5694
  if (align === "right") {
5598
5695
  return "flex-end";
5599
5696
  }
5600
- return void 0;
5697
+ return "flex-start";
5601
5698
  };
5602
5699
  var ButtonGroupComponent = import_styled_components20.default.div`
5603
5700
  display: flex;
@@ -5640,14 +5737,237 @@ var ButtonGroup = ({
5640
5737
  };
5641
5738
  ButtonGroup.displayName = "ButtonGroup";
5642
5739
 
5643
- // src/components/Divider/Divider.tsx
5740
+ // src/components/Checkbox/Checkbox.tsx
5741
+ var import_react11 = require("react");
5742
+ var import_react_checkbox = require("@radix-ui/react-checkbox");
5743
+ var import_styled_components23 = __toESM(require("styled-components"));
5744
+ var import_type_guards15 = require("@wistia/type-guards");
5745
+
5746
+ // src/components/Label/Label.tsx
5644
5747
  var import_styled_components21 = __toESM(require("styled-components"));
5645
5748
  var import_jsx_runtime164 = require("react/jsx-runtime");
5749
+ var requiredStyle = import_styled_components21.css`
5750
+ &::after {
5751
+ color: var(--color-text-error);
5752
+ display: inline;
5753
+ padding-left: var(--space-01);
5754
+ content: '*';
5755
+ }
5756
+ `;
5757
+ var disabledStyle = import_styled_components21.css`
5758
+ color: var(--color-text-disabled);
5759
+ `;
5760
+ var SPACE_BETWEEN_LABEL_AND_INPUT = "var(--space-02)";
5761
+ var StyledLabel = import_styled_components21.default.label`
5762
+ display: inline-block;
5763
+ font-size: var(--typography-label-1-size);
5764
+ font-weight: var(--typography-label-1-weight);
5765
+ line-height: var(--typography-label-1-line-height);
5766
+ cursor: inherit;
5767
+ width: 100%;
5768
+
5769
+ /* if label is wrapping an input this ensures it appears beneath the label with a nice margin */
5770
+ > input,
5771
+ > textarea,
5772
+ > select {
5773
+ display: block;
5774
+ margin-top: ${SPACE_BETWEEN_LABEL_AND_INPUT};
5775
+ }
5776
+
5777
+ > label {
5778
+ font-weight: normal;
5779
+ }
5780
+
5781
+ ${({ $screenReaderOnly }) => $screenReaderOnly && visuallyHiddenStyle}
5782
+ ${({ disabled }) => disabled && disabledStyle}
5783
+ ${({ required }) => required && requiredStyle}
5784
+ `;
5785
+ var Label = ({
5786
+ children,
5787
+ disabled = false,
5788
+ htmlFor,
5789
+ required = false,
5790
+ screenReaderOnly = false,
5791
+ ...otherProps
5792
+ }) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
5793
+ StyledLabel,
5794
+ {
5795
+ $screenReaderOnly: screenReaderOnly,
5796
+ disabled,
5797
+ htmlFor,
5798
+ required,
5799
+ ...otherProps,
5800
+ children
5801
+ }
5802
+ );
5803
+ Label.displayName = "Label";
5804
+
5805
+ // src/components/Label/LabelDescription.tsx
5806
+ var import_styled_components22 = __toESM(require("styled-components"));
5807
+ var import_type_guards14 = require("@wistia/type-guards");
5808
+ var import_jsx_runtime165 = require("react/jsx-runtime");
5809
+ var StyledLabelDescription = import_styled_components22.default.div`
5810
+ color: var(--color-text-secondary);
5811
+ font-size: var(--typography-body-4-size);
5812
+ font-weight: var(--typography-body-4-weight);
5813
+ line-height: var(--typography-body-4-line-height);
5814
+ `;
5815
+ var LabelDescription = ({
5816
+ children,
5817
+ ...props
5818
+ }) => {
5819
+ if ((0, import_type_guards14.isNil)(children)) {
5820
+ return null;
5821
+ }
5822
+ return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(StyledLabelDescription, { ...props, children });
5823
+ };
5824
+ LabelDescription.displayName = "LabelDescription";
5825
+
5826
+ // src/components/Checkbox/Checkbox.tsx
5827
+ var import_jsx_runtime166 = require("react/jsx-runtime");
5828
+ var CheckIcon = () => /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
5829
+ "svg",
5830
+ {
5831
+ fill: "inherit",
5832
+ height: "8",
5833
+ viewBox: "0 0 10 8",
5834
+ width: "10",
5835
+ xmlns: "http://www.w3.org/2000/svg",
5836
+ children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
5837
+ "path",
5838
+ {
5839
+ 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",
5840
+ fill: "white"
5841
+ }
5842
+ )
5843
+ }
5844
+ );
5845
+ var StyledCheckboxWrapper = import_styled_components23.default.div`
5846
+ display: flex;
5847
+ align-items: center;
5848
+ cursor: pointer;
5849
+ padding: var(--space-02);
5850
+
5851
+ &:hover {
5852
+ /* TODO Lamp to design hover state */
5853
+ }
5854
+
5855
+ &:focus-within {
5856
+ /* TODO Lamp to design focus state */
5857
+ background-color: #efefef;
5858
+ }
5859
+ `;
5860
+ var StyledCheckboxRoot = (0, import_styled_components23.default)(import_react_checkbox.Root)`
5861
+ all: unset; /* CheckboxRoot renders as a button element, so we need to reset all styles */
5862
+ background-color: var(--color-bg-fill-white);
5863
+ min-width: 16px;
5864
+ min-height: 16px;
5865
+ border-radius: var(--border-radius-01);
5866
+ border-width: 1px;
5867
+ border-style: solid;
5868
+ border-color: var(--color-border);
5869
+ display: flex;
5870
+ align-items: center;
5871
+ justify-content: center;
5872
+ align-self: start; /* align to the top to handle label descriptions */
5873
+ margin-top: 3px; /* bump down slightly to mimic "align-self: center" */
5874
+
5875
+ &[data-state='checked'] {
5876
+ background-color: var(--color-bg-fill);
5877
+ }
5878
+
5879
+ &[disabled] {
5880
+ background-color: var(--color-bg-surface-disabled);
5881
+
5882
+ svg path {
5883
+ fill: var(--color-icon-disabled);
5884
+ }
5885
+ }
5886
+
5887
+ &:hover {
5888
+ /* TODO Lamp to design hover state */
5889
+ }
5890
+
5891
+ &:focus {
5892
+ /* TODO Lamp to design focus state */
5893
+ }
5894
+ `;
5895
+ var StyledCheckboxIndicator = (0, import_styled_components23.default)(import_react_checkbox.Indicator)`
5896
+ display: flex;
5897
+ `;
5898
+ var StyledLabelWrapper = import_styled_components23.default.div`
5899
+ display: flex;
5900
+ flex-direction: column;
5901
+ padding-left: var(--space-02);
5902
+ `;
5903
+ var Checkbox = (0, import_react11.forwardRef)(
5904
+ ({
5905
+ checked,
5906
+ disabled = false,
5907
+ forceState,
5908
+ id,
5909
+ label = "default",
5910
+ description,
5911
+ name,
5912
+ onChange,
5913
+ required = false,
5914
+ value = "false",
5915
+ ...otherProps
5916
+ }, ref) => {
5917
+ const generatedId = (0, import_react11.useId)();
5918
+ const computedId = (0, import_type_guards15.isNonEmptyString)(id) ? id : `vhs-collapsible-group-${generatedId}`;
5919
+ return /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(StyledCheckboxWrapper, { children: [
5920
+ /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
5921
+ StyledCheckboxRoot,
5922
+ {
5923
+ ref,
5924
+ checked: checked ?? void 0,
5925
+ defaultChecked: checked === void 0 ? false : void 0,
5926
+ disabled,
5927
+ id: computedId,
5928
+ name,
5929
+ onCheckedChange: (state) => {
5930
+ if (onChange) {
5931
+ const syntheticEvent = {
5932
+ target: {
5933
+ id: computedId,
5934
+ checked: state === true
5935
+ }
5936
+ };
5937
+ onChange(syntheticEvent);
5938
+ }
5939
+ },
5940
+ required,
5941
+ value,
5942
+ ...otherProps,
5943
+ children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(StyledCheckboxIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(CheckIcon, {}) })
5944
+ }
5945
+ ),
5946
+ /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(StyledLabelWrapper, { children: [
5947
+ /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
5948
+ Label,
5949
+ {
5950
+ disabled,
5951
+ htmlFor: computedId,
5952
+ required,
5953
+ children: label
5954
+ }
5955
+ ),
5956
+ /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(LabelDescription, { children: description })
5957
+ ] })
5958
+ ] });
5959
+ }
5960
+ );
5961
+ Checkbox.displayName = "Checkbox";
5962
+
5963
+ // src/components/Divider/Divider.tsx
5964
+ var import_styled_components24 = __toESM(require("styled-components"));
5965
+ var import_jsx_runtime167 = require("react/jsx-runtime");
5646
5966
  var sizeToPixelMap = {
5647
5967
  lg: 4,
5648
5968
  sm: 1
5649
5969
  };
5650
- var DividerComponent = import_styled_components21.default.hr`
5970
+ var DividerComponent = import_styled_components24.default.hr`
5651
5971
  background: none;
5652
5972
  border-bottom: none;
5653
5973
  border-left: none;
@@ -5662,7 +5982,7 @@ var DividerComponent = import_styled_components21.default.hr`
5662
5982
  `;
5663
5983
  var Divider = ({ size = "sm", ...otherProps }) => {
5664
5984
  const responsiveSize = useResponsiveProp(size);
5665
- return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
5985
+ return /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
5666
5986
  DividerComponent,
5667
5987
  {
5668
5988
  $borderHeight: sizeToPixelMap[responsiveSize],
@@ -5673,10 +5993,10 @@ var Divider = ({ size = "sm", ...otherProps }) => {
5673
5993
  Divider.displayName = "Divider";
5674
5994
 
5675
5995
  // src/components/Ellipsis/Ellipsis.tsx
5676
- var import_type_guards14 = require("@wistia/type-guards");
5677
- var import_styled_components22 = __toESM(require("styled-components"));
5678
- var import_jsx_runtime165 = require("react/jsx-runtime");
5679
- var ellipsisStyle = import_styled_components22.css`
5996
+ var import_type_guards16 = require("@wistia/type-guards");
5997
+ var import_styled_components25 = __toESM(require("styled-components"));
5998
+ var import_jsx_runtime168 = require("react/jsx-runtime");
5999
+ var ellipsisStyle = import_styled_components25.css`
5680
6000
  overflow: hidden;
5681
6001
  text-overflow: ellipsis;
5682
6002
  white-space: nowrap;
@@ -5699,14 +6019,14 @@ var ellipsisStyle = import_styled_components22.css`
5699
6019
  }
5700
6020
  }
5701
6021
  `;
5702
- var ellipsisFlexParentStyle = import_styled_components22.css`
6022
+ var ellipsisFlexParentStyle = import_styled_components25.css`
5703
6023
  min-width: 0;
5704
6024
  `;
5705
- var EllipsisComponent = import_styled_components22.default.div`
6025
+ var EllipsisComponent = import_styled_components25.default.div`
5706
6026
  ${ellipsisStyle};
5707
6027
  ${({ $lines }) => {
5708
- if ((0, import_type_guards14.isNotNil)($lines)) {
5709
- return import_styled_components22.css`
6028
+ if ((0, import_type_guards16.isNotNil)($lines)) {
6029
+ return import_styled_components25.css`
5710
6030
  -webkit-box-orient: vertical;
5711
6031
  -webkit-line-clamp: ${$lines};
5712
6032
  display: -webkit-box;
@@ -5716,7 +6036,7 @@ var EllipsisComponent = import_styled_components22.default.div`
5716
6036
  return void 0;
5717
6037
  }}
5718
6038
  `;
5719
- var Ellipsis = ({ children, lines, ...otherProps }) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
6039
+ var Ellipsis = ({ children, lines, ...otherProps }) => /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
5720
6040
  EllipsisComponent,
5721
6041
  {
5722
6042
  $lines: lines,
@@ -5727,8 +6047,8 @@ var Ellipsis = ({ children, lines, ...otherProps }) => /* @__PURE__ */ (0, impor
5727
6047
  Ellipsis.displayName = "Ellipsis";
5728
6048
 
5729
6049
  // src/components/Heading/Heading.tsx
5730
- var import_react11 = require("react");
5731
- var import_styled_components23 = __toESM(require("styled-components"));
6050
+ var import_react12 = require("react");
6051
+ var import_styled_components26 = __toESM(require("styled-components"));
5732
6052
 
5733
6053
  // src/private/helpers/makePolymorphic/makePolymorphic.tsx
5734
6054
  var makePolymorphic = (component) => {
@@ -5736,44 +6056,44 @@ var makePolymorphic = (component) => {
5736
6056
  };
5737
6057
 
5738
6058
  // src/components/Heading/Heading.tsx
5739
- var import_jsx_runtime166 = require("react/jsx-runtime");
5740
- var heroStyle = import_styled_components23.css`
6059
+ var import_jsx_runtime169 = require("react/jsx-runtime");
6060
+ var heroStyle = import_styled_components26.css`
5741
6061
  --font-family: var(--typography-heading-hero-family);
5742
6062
  --font-size: var(--typography-heading-hero-size);
5743
6063
  --font-weight: var(--typography-heading-hero-weight);
5744
6064
  --line-height: var(--typography-heading-hero-line-height);
5745
6065
  `;
5746
- var heading1TextStyle = import_styled_components23.css`
6066
+ var heading1TextStyle = import_styled_components26.css`
5747
6067
  --font-family: var(--typography-heading-1-family);
5748
6068
  --font-size: var(--typography-heading-1-size);
5749
6069
  --font-weight: var(--typography-heading-1-weight);
5750
6070
  --line-height: var(--typography-heading-1-line-height);
5751
6071
  `;
5752
- var heading2TextStyle = import_styled_components23.css`
6072
+ var heading2TextStyle = import_styled_components26.css`
5753
6073
  --font-family: var(--typography-heading-2-family);
5754
6074
  --font-size: var(--typography-heading-2-size);
5755
6075
  --font-weight: var(--typography-heading-2-weight);
5756
6076
  --line-height: var(--typography-heading-2-line-height);
5757
6077
  `;
5758
- var heading3TextStyle = import_styled_components23.css`
6078
+ var heading3TextStyle = import_styled_components26.css`
5759
6079
  --font-family: var(--typography-heading-3-family);
5760
6080
  --font-size: var(--typography-heading-3-size);
5761
6081
  --font-weight: var(--typography-heading-3-weight);
5762
6082
  --line-height: var(--typography-heading-3-line-height);
5763
6083
  `;
5764
- var heading4TextStyle = import_styled_components23.css`
6084
+ var heading4TextStyle = import_styled_components26.css`
5765
6085
  --font-family: var(--typography-heading-4-family);
5766
6086
  --font-size: var(--typography-heading-4-size);
5767
6087
  --font-weight: var(--typography-heading-4-weight);
5768
6088
  --line-height: var(--typography-heading-4-line-height);
5769
6089
  `;
5770
- var heading5TextStyle = import_styled_components23.css`
6090
+ var heading5TextStyle = import_styled_components26.css`
5771
6091
  --font-family: var(--typography-heading-5-family);
5772
6092
  --font-size: var(--typography-heading-5-size);
5773
6093
  --font-weight: var(--typography-heading-5-weight);
5774
6094
  --line-height: var(--typography-heading-5-line-height);
5775
6095
  `;
5776
- var heading6TextStyle = import_styled_components23.css`
6096
+ var heading6TextStyle = import_styled_components26.css`
5777
6097
  --font-family: var(--typography-heading-6-family);
5778
6098
  --font-size: var(--typography-heading-6-size);
5779
6099
  --font-weight: var(--typography-heading-6-weight);
@@ -5789,7 +6109,7 @@ var variantStyleMap = {
5789
6109
  heading6: heading6TextStyle
5790
6110
  };
5791
6111
  var DEFAULT_ELEMENT = "h1";
5792
- var StyledHeading = import_styled_components23.default.div`
6112
+ var StyledHeading = import_styled_components26.default.div`
5793
6113
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
5794
6114
  font-family: var(--font-family);
5795
6115
  font-size: var(--font-size);
@@ -5798,16 +6118,16 @@ var StyledHeading = import_styled_components23.default.div`
5798
6118
  color: var(--color-text);
5799
6119
  ${({ $variant }) => variantStyleMap[$variant]}
5800
6120
  ${({ $ellipsis }) => $ellipsis && ellipsisStyle};
5801
- ${({ $inline }) => $inline && import_styled_components23.css`
6121
+ ${({ $inline }) => $inline && import_styled_components26.css`
5802
6122
  display: inline-block;
5803
6123
  `}
5804
- ${({ $disabled }) => $disabled && import_styled_components23.css`
6124
+ ${({ $disabled }) => $disabled && import_styled_components26.css`
5805
6125
  color: var(--color-text-disabled);
5806
6126
  `}
5807
- ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components23.css`
6127
+ ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components26.css`
5808
6128
  user-select: none;
5809
6129
  `}
5810
- ${({ $align }) => import_styled_components23.css`
6130
+ ${({ $align }) => import_styled_components26.css`
5811
6131
  text-align: ${$align};
5812
6132
  `}
5813
6133
  margin: 0;
@@ -5821,7 +6141,7 @@ var variantElementMap = {
5821
6141
  heading5: "h5",
5822
6142
  heading6: "h6"
5823
6143
  };
5824
- var HeadingComponent = (0, import_react11.forwardRef)(
6144
+ var HeadingComponent = (0, import_react12.forwardRef)(
5825
6145
  ({
5826
6146
  align = "left",
5827
6147
  colorScheme = "inherit",
@@ -5832,7 +6152,7 @@ var HeadingComponent = (0, import_react11.forwardRef)(
5832
6152
  variant = "heading1",
5833
6153
  renderAs,
5834
6154
  ...otherProps
5835
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
6155
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
5836
6156
  StyledHeading,
5837
6157
  {
5838
6158
  ref,
@@ -5852,21 +6172,21 @@ HeadingComponent.displayName = "Heading";
5852
6172
  var Heading = makePolymorphic(HeadingComponent);
5853
6173
 
5854
6174
  // src/components/IconButton/IconButton.tsx
5855
- var import_react12 = require("react");
5856
- var import_styled_components25 = __toESM(require("styled-components"));
6175
+ var import_react13 = require("react");
6176
+ var import_styled_components28 = __toESM(require("styled-components"));
5857
6177
 
5858
6178
  // src/components/Tooltip/Tooltip.tsx
5859
6179
  var import_react_tooltip2 = require("@radix-ui/react-tooltip");
5860
- var import_styled_components24 = __toESM(require("styled-components"));
5861
- var import_jsx_runtime167 = require("react/jsx-runtime");
5862
- var CompactTooltipStyles = import_styled_components24.css`
6180
+ var import_styled_components27 = __toESM(require("styled-components"));
6181
+ var import_jsx_runtime170 = require("react/jsx-runtime");
6182
+ var CompactTooltipStyles = import_styled_components27.css`
5863
6183
  --tooltip-font-size: var(--typography-label-4-size);
5864
6184
  --tooltip-line-height: var(--typography-label-4-line-height);
5865
6185
  --tooltip-font-weight: var(--typography-label-4-weight);
5866
6186
  --tooltip-horizontal-padding: var(--space-02);
5867
6187
  --tooltip-vertical-padding: var(--space-03);
5868
6188
  `;
5869
- var StyledContent = (0, import_styled_components24.default)(import_react_tooltip2.Content)`
6189
+ var StyledContent = (0, import_styled_components27.default)(import_react_tooltip2.Content)`
5870
6190
  --tooltip-font-family: var(--typography-family-default);
5871
6191
  --tooltip-border-radius: var(--border-radius-05);
5872
6192
  --tooltip-bg: var(--color-bg-tooltip);
@@ -5924,14 +6244,14 @@ var Tooltip = ({
5924
6244
  if (forceOpen === true) {
5925
6245
  rootProps.open = true;
5926
6246
  }
5927
- return /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
6247
+ return /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
5928
6248
  import_react_tooltip2.Root,
5929
6249
  {
5930
6250
  delayDuration: delay,
5931
6251
  ...rootProps,
5932
6252
  children: [
5933
- /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_react_tooltip2.Trigger, { asChild: true, children }),
5934
- /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_react_tooltip2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
6253
+ /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(import_react_tooltip2.Trigger, { asChild: true, children }),
6254
+ /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(import_react_tooltip2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
5935
6255
  StyledContent,
5936
6256
  {
5937
6257
  $compact: compact,
@@ -5939,7 +6259,7 @@ var Tooltip = ({
5939
6259
  sideOffset: hideArrow ? VISUAL_OFFSET : VISUAL_OFFSET - 2,
5940
6260
  children: [
5941
6261
  content,
5942
- !hideArrow ? /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_react_tooltip2.Arrow, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
6262
+ !hideArrow ? /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(import_react_tooltip2.Arrow, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
5943
6263
  "svg",
5944
6264
  {
5945
6265
  fill: "var(--tooltip-bg)",
@@ -5948,7 +6268,7 @@ var Tooltip = ({
5948
6268
  viewBox: "0 0 12 8",
5949
6269
  width: "12",
5950
6270
  xmlns: "http://www.w3.org/2000/svg",
5951
- 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" })
6271
+ 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" })
5952
6272
  }
5953
6273
  ) }) : null
5954
6274
  ]
@@ -5961,8 +6281,8 @@ var Tooltip = ({
5961
6281
  Tooltip.displayName = "Tooltip";
5962
6282
 
5963
6283
  // src/components/IconButton/IconButton.tsx
5964
- var import_jsx_runtime168 = require("react/jsx-runtime");
5965
- var StyledButton2 = (0, import_styled_components25.default)(Button)`
6284
+ var import_jsx_runtime171 = require("react/jsx-runtime");
6285
+ var StyledButton2 = (0, import_styled_components28.default)(Button)`
5966
6286
  --icon-button-size-sm: 24px;
5967
6287
  --icon-button-size-md: 32px;
5968
6288
  --icon-button-size-lg: 40px;
@@ -5976,10 +6296,10 @@ var StyledButton2 = (0, import_styled_components25.default)(Button)`
5976
6296
  align-items: center;
5977
6297
  line-height: 1;
5978
6298
  `;
5979
- var IconButton = (0, import_react12.forwardRef)(
6299
+ var IconButton = (0, import_react13.forwardRef)(
5980
6300
  ({ children, label, disableTooltip = false, size = "md", ...props }, ref) => {
5981
6301
  const responsiveSize = useResponsiveProp(size);
5982
- const button = /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
6302
+ const button = /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
5983
6303
  StyledButton2,
5984
6304
  {
5985
6305
  ...props,
@@ -5987,7 +6307,7 @@ var IconButton = (0, import_react12.forwardRef)(
5987
6307
  "aria-label": label,
5988
6308
  "data-wistia-ui-icon-button": true,
5989
6309
  size: responsiveSize,
5990
- children: (0, import_react12.cloneElement)(import_react12.Children.only(children), {
6310
+ children: (0, import_react13.cloneElement)(import_react13.Children.only(children), {
5991
6311
  size: responsiveSize
5992
6312
  })
5993
6313
  }
@@ -5995,209 +6315,212 @@ var IconButton = (0, import_react12.forwardRef)(
5995
6315
  if (disableTooltip) {
5996
6316
  return button;
5997
6317
  }
5998
- return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(Tooltip, { content: label, children: button });
6318
+ return /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(Tooltip, { content: label, children: button });
5999
6319
  }
6000
6320
  );
6001
6321
  IconButton.displayName = "IconButton";
6002
6322
 
6003
- // src/components/Label/Label.tsx
6004
- var import_styled_components26 = __toESM(require("styled-components"));
6005
- var import_jsx_runtime169 = require("react/jsx-runtime");
6006
- var requiredStyle = import_styled_components26.css`
6007
- &::after {
6008
- color: red; /* TODO need a color for this */
6009
- display: inline;
6010
- padding-left: var(--space-01);
6011
- content: '*';
6323
+ // src/components/Menu/Menu.tsx
6324
+ var import_styled_components29 = __toESM(require("styled-components"));
6325
+ var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
6326
+ var import_type_guards17 = require("@wistia/type-guards");
6327
+ var import_jsx_runtime172 = require("react/jsx-runtime");
6328
+ var open = import_styled_components29.keyframes`
6329
+ from {
6330
+ opacity: 0;
6331
+ transform: scale(.97) translateY(-8px);
6332
+ }
6333
+ to {
6334
+ opacity: 1;
6335
+ transform: scale(1);
6012
6336
  }
6013
6337
  `;
6014
- var disabledStyle = import_styled_components26.css`
6015
- color: var(--color-text-disabled);
6338
+ var close = import_styled_components29.keyframes`
6339
+ from {
6340
+ opacity: 1;
6341
+ transform: scale(1);
6342
+ }
6343
+ to {
6344
+ opacity: 0;
6345
+ transform: scale(.97) translateY(-8px);
6346
+ }
6016
6347
  `;
6017
- var SPACE_BETWEEN_LABEL_AND_INPUT = "var(--space-02)";
6018
- var StyledLabel = import_styled_components26.default.label`
6019
- display: block;
6020
- font-size: var(--typography-label-1-size);
6021
- font-weight: var(--typography-label-1-weight);
6022
- line-height: var(--typography-label-1-line-height);
6023
- margin-bottom: ${SPACE_BETWEEN_LABEL_AND_INPUT};
6024
- width: 100%;
6025
-
6026
- /* if label is wrapping an input this ensures it appears beneath the label with a nice margin */
6027
- > input,
6028
- > textarea,
6029
- > select {
6030
- display: block;
6031
- margin-top: ${SPACE_BETWEEN_LABEL_AND_INPUT};
6348
+ var menuContentCss = import_styled_components29.css`
6349
+ --menu-font-family: var(--typography-family-default);
6350
+ --menu-bg: var(--color-bg-fill-white); /* TODO - Not sure what token to use for this */
6351
+ --menu-shadow: 0 0 64px 0 rgba(0 0 0 / 8%); /* TODO - Need a box-shadow token */
6352
+ --menu-border-radius: var(--border-radius-01);
6353
+ --menu-padding: var(--space-03);
6354
+ --menu-min-width: 120px;
6355
+ --menu-max-width: 284px;
6356
+ --menu-zindex: 500; /* TODO - need z-index token */
6357
+
6358
+ animation: ${open}; /* TODO - need easing tokens */
6359
+ font-family: var(--menu-font-family);
6360
+ background: var(--menu-bg);
6361
+ border-radius: var(--menu-border-radius);
6362
+ box-shadow: var(--menu-shadow); /* TODO - Need a box-shadow token */
6363
+ max-height: var(--radix-dropdown-menu-content-available-height);
6364
+ min-width: var(--menu-min-width);
6365
+ max-width: var(--menu-max-width);
6366
+ overflow: auto;
6367
+ padding: var(--menu-padding);
6368
+ transform-origin: var(--radix-dropdown-menu-content-transform-origin);
6369
+ z-index: var(--menu-zindex);
6370
+
6371
+ &[data-state='closed'] {
6372
+ animation: ${close}; /* TODO - need easing tokens */
6032
6373
  }
6033
6374
 
6034
- > label {
6035
- font-weight: normal;
6375
+ ${mq.smAndUp} {
6376
+ bottom: 0;
6377
+ padding: var(--menu-padding);
6378
+ right: 0;
6379
+ top: 0;
6380
+ transform: initial;
6036
6381
  }
6037
6382
 
6038
- ${({ screenReaderOnly }) => screenReaderOnly && visuallyHiddenStyle}
6039
- ${({ disabled }) => disabled && disabledStyle}
6040
- ${({ required }) => required && requiredStyle}
6041
- `;
6042
- var Label = ({
6043
- children,
6044
- disabled = false,
6045
- htmlFor,
6046
- required = false,
6047
- screenReaderOnly = false,
6048
- ...otherProps
6049
- }) => /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
6050
- StyledLabel,
6051
- {
6052
- disabled,
6053
- required,
6054
- screenReaderOnly,
6055
- ...otherProps,
6056
- children
6383
+ hr {
6384
+ margin: var(--space-02) 0;
6057
6385
  }
6058
- );
6059
- Label.displayName = "Label";
6060
-
6061
- // src/components/ScreenReaderOnly/ScreenReaderOnly.tsx
6062
- var import_styled_components27 = __toESM(require("styled-components"));
6063
- var import_type_guards15 = require("@wistia/type-guards");
6064
- var import_jsx_runtime170 = require("react/jsx-runtime");
6065
- var VisuallyHidden = import_styled_components27.default.div({ ...visuallyHiddenStyle });
6066
- var VisuallyHiddenButFocusable = import_styled_components27.default.div({
6067
- "&:not(:focus-within)": visuallyHiddenStyle
6068
- });
6069
- var ScreenReaderOnly = ({
6070
- text,
6386
+ `;
6387
+ var MenuContent = (0, import_styled_components29.default)(import_react_dropdown_menu.DropdownMenuContent)`
6388
+ ${menuContentCss}
6389
+ `;
6390
+ var Menu = ({
6391
+ align = "start",
6071
6392
  children,
6072
- focusable = false,
6073
- ...otherProps
6393
+ trigger,
6394
+ label,
6395
+ isOpen,
6396
+ triggerProps = {},
6397
+ onOpenChange,
6398
+ onInteractOutside,
6399
+ ...props
6074
6400
  }) => {
6075
- const accessibleText = (0, import_type_guards15.isNotNil)(text) ? text : children;
6076
- if (focusable) {
6077
- return /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(VisuallyHiddenButFocusable, { ...otherProps, children: accessibleText });
6078
- }
6079
- return /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(VisuallyHidden, { ...otherProps, children: accessibleText });
6401
+ return /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
6402
+ import_react_dropdown_menu.DropdownMenu,
6403
+ {
6404
+ modal: false,
6405
+ ...(0, import_type_guards17.isNotNil)(onOpenChange) && (0, import_type_guards17.isNotNil)(isOpen) ? { open: isOpen, onOpenChange } : {},
6406
+ children: [
6407
+ /* @__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)(
6408
+ Button,
6409
+ {
6410
+ "aria-expanded": isOpen,
6411
+ forceState: isOpen ? "active" : void 0,
6412
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(Icon, { type: "caret-down" }),
6413
+ ...triggerProps,
6414
+ children: label
6415
+ }
6416
+ ) }),
6417
+ /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(import_react_dropdown_menu.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
6418
+ MenuContent,
6419
+ {
6420
+ ...props,
6421
+ align,
6422
+ onFocusOutside: (event) => {
6423
+ event.preventDefault();
6424
+ },
6425
+ sideOffset: 6,
6426
+ children
6427
+ }
6428
+ ) })
6429
+ ]
6430
+ }
6431
+ );
6080
6432
  };
6081
- ScreenReaderOnly.displayName = "ScreenReaderOnly";
6082
-
6083
- // src/components/Stack/Stack.tsx
6084
- var import_react13 = require("react");
6085
- var import_styled_components28 = __toESM(require("styled-components"));
6086
- var import_jsx_runtime171 = require("react/jsx-runtime");
6087
- var DEFAULT_ELEMENT2 = "div";
6088
- var StyledStack = import_styled_components28.default.div`
6089
- display: flex;
6090
- flex-direction: ${({ $direction }) => $direction === "horizontal" ? "row" : "column"};
6091
- gap: ${({ $gap }) => `var(--${$gap})`};
6433
+ Menu.displayName = "Menu";
6092
6434
 
6093
- > * {
6094
- flex: 1;
6095
- }
6096
- `;
6097
- var StackComponent = (0, import_react13.forwardRef)(
6098
- ({ renderAs, direction = "vertical", gap = "space-02", ...props }, ref) => {
6099
- const responsiveGap = useResponsiveProp(gap);
6100
- const responsiveDirection = useResponsiveProp(direction);
6101
- return /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
6102
- StyledStack,
6103
- {
6104
- ref,
6105
- $direction: responsiveDirection,
6106
- $gap: responsiveGap,
6107
- as: renderAs ?? DEFAULT_ELEMENT2,
6108
- ...props
6109
- }
6110
- );
6111
- }
6112
- );
6113
- StackComponent.displayName = "Stack";
6114
- var Stack = makePolymorphic(StackComponent);
6435
+ // src/components/Menu/MenuLabel.tsx
6436
+ var import_styled_components31 = __toESM(require("styled-components"));
6437
+ var import_react_dropdown_menu2 = require("@radix-ui/react-dropdown-menu");
6115
6438
 
6116
6439
  // src/components/Text/Text.tsx
6117
6440
  var import_react14 = require("react");
6118
- var import_styled_components29 = __toESM(require("styled-components"));
6119
- var import_jsx_runtime172 = require("react/jsx-runtime");
6120
- var bodyBoldStyles = import_styled_components29.css`
6441
+ var import_styled_components30 = __toESM(require("styled-components"));
6442
+ var import_jsx_runtime173 = require("react/jsx-runtime");
6443
+ var bodyBoldStyles = import_styled_components30.css`
6121
6444
  > strong,
6122
6445
  b {
6123
6446
  font-weight: var(--typography-weight-body-bold);
6124
6447
  }
6125
6448
  `;
6126
- var labelBoldStyles = import_styled_components29.css`
6449
+ var labelBoldStyles = import_styled_components30.css`
6127
6450
  > strong,
6128
6451
  b {
6129
6452
  font-weight: var(--typography-weight-label-bold);
6130
6453
  }
6131
6454
  `;
6132
- var body1TextStyle = import_styled_components29.css`
6455
+ var body1TextStyle = import_styled_components30.css`
6133
6456
  --font-family: var(--typography-body-1-family);
6134
6457
  --font-size: var(--typography-body-1-size);
6135
6458
  --font-weight: var(--typography-body-1-weight);
6136
6459
  --line-height: var(--typography-body-1-line-height);
6137
6460
  ${bodyBoldStyles}
6138
6461
  `;
6139
- var body2TextStyle = import_styled_components29.css`
6462
+ var body2TextStyle = import_styled_components30.css`
6140
6463
  --font-family: var(--typography-body-2-family);
6141
6464
  --font-size: var(--typography-body-2-size);
6142
6465
  --font-weight: var(--typography-body-2-weight);
6143
6466
  --line-height: var(--typography-body-2-line-height);
6144
6467
  ${bodyBoldStyles}
6145
6468
  `;
6146
- var body3TextStyle = import_styled_components29.css`
6469
+ var body3TextStyle = import_styled_components30.css`
6147
6470
  --font-family: var(--typography-body-3-family);
6148
6471
  --font-size: var(--typography-body-3-size);
6149
6472
  --font-weight: var(--typography-body-3-weight);
6150
6473
  --line-height: var(--typography-body-3-line-height);
6151
6474
  ${bodyBoldStyles}
6152
6475
  `;
6153
- var body4TextStyle = import_styled_components29.css`
6476
+ var body4TextStyle = import_styled_components30.css`
6154
6477
  --font-family: var(--typography-body-4-family);
6155
6478
  --font-size: var(--typography-body-4-size);
6156
6479
  --font-weight: var(--typography-body-4-weight);
6157
6480
  --line-height: var(--typography-body-4-line-height);
6158
6481
  ${bodyBoldStyles}
6159
6482
  `;
6160
- var label1TextStyle = import_styled_components29.css`
6483
+ var label1TextStyle = import_styled_components30.css`
6161
6484
  --font-family: var(--typography-label-1-family);
6162
6485
  --font-size: var(--typography-label-1-size);
6163
6486
  --font-weight: var(--typography-label-1-weight);
6164
6487
  --line-height: var(--typography-label-1-line-height);
6165
6488
  ${labelBoldStyles}
6166
6489
  `;
6167
- var label2TextStyle = import_styled_components29.css`
6490
+ var label2TextStyle = import_styled_components30.css`
6168
6491
  --font-family: var(--typography-label-2-family);
6169
6492
  --font-size: var(--typography-label-2-size);
6170
6493
  --font-weight: var(--typography-label-2-weight);
6171
6494
  --line-height: var(--typography-label-2-line-height);
6172
6495
  ${labelBoldStyles}
6173
6496
  `;
6174
- var label3TextStyle = import_styled_components29.css`
6497
+ var label3TextStyle = import_styled_components30.css`
6175
6498
  --font-family: var(--typography-label-3-family);
6176
6499
  --font-size: var(--typography-label-3-size);
6177
6500
  --font-weight: var(--typography-label-3-weight);
6178
6501
  --line-height: var(--typography-label-3-line-height);
6179
6502
  ${labelBoldStyles}
6180
6503
  `;
6181
- var label4TextStyle = import_styled_components29.css`
6504
+ var label4TextStyle = import_styled_components30.css`
6182
6505
  --font-family: var(--typography-label-4-family);
6183
6506
  --font-size: var(--typography-label-4-size);
6184
6507
  --font-weight: var(--typography-label-4-weight);
6185
6508
  --line-height: var(--typography-label-4-line-height);
6186
6509
  ${labelBoldStyles}
6187
6510
  `;
6188
- var body1MonoTextStyle = import_styled_components29.css`
6511
+ var body1MonoTextStyle = import_styled_components30.css`
6189
6512
  ${body1TextStyle};
6190
6513
  --font-family: var(--typography-family-mono);
6191
6514
  `;
6192
- var body2MonoTextStyle = import_styled_components29.css`
6515
+ var body2MonoTextStyle = import_styled_components30.css`
6193
6516
  ${body2TextStyle};
6194
6517
  --font-family: var(--typography-family-mono);
6195
6518
  `;
6196
- var body3MonoTextStyle = import_styled_components29.css`
6519
+ var body3MonoTextStyle = import_styled_components30.css`
6197
6520
  ${body3TextStyle};
6198
6521
  --font-family: var(--typography-family-mono);
6199
6522
  `;
6200
- var body4MonoTextStyle = import_styled_components29.css`
6523
+ var body4MonoTextStyle = import_styled_components30.css`
6201
6524
  ${body4TextStyle};
6202
6525
  --font-family: var(--typography-family-mono);
6203
6526
  `;
@@ -6215,13 +6538,13 @@ var variantStyleMap2 = {
6215
6538
  label3: label3TextStyle,
6216
6539
  label4: label4TextStyle
6217
6540
  };
6218
- var highContrastProminenceStyle = import_styled_components29.css`
6541
+ var highContrastProminenceStyle = import_styled_components30.css`
6219
6542
  --text-color: var(--color-text-high-contrast);
6220
6543
  `;
6221
- var vibrantProminenceStyle = import_styled_components29.css`
6544
+ var vibrantProminenceStyle = import_styled_components30.css`
6222
6545
  --text-color: var(--color-text);
6223
6546
  `;
6224
- var secondaryProminenceStyle = import_styled_components29.css`
6547
+ var secondaryProminenceStyle = import_styled_components30.css`
6225
6548
  --text-color: var(--color-text-secondary);
6226
6549
  `;
6227
6550
  var prominenceMap = {
@@ -6229,7 +6552,7 @@ var prominenceMap = {
6229
6552
  vibrant: vibrantProminenceStyle,
6230
6553
  secondary: secondaryProminenceStyle
6231
6554
  };
6232
- var StyledText = import_styled_components29.default.div`
6555
+ var StyledText = import_styled_components30.default.div`
6233
6556
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
6234
6557
  font-family: var(--font-family);
6235
6558
  font-size: var(--font-size);
@@ -6241,23 +6564,23 @@ var StyledText = import_styled_components29.default.div`
6241
6564
  ${({ $variant }) => variantStyleMap2[$variant]}
6242
6565
  ${({ $prominence }) => prominenceMap[$prominence]}
6243
6566
  ${({ $ellipsis }) => $ellipsis && ellipsisStyle};
6244
- ${({ $inline }) => $inline && import_styled_components29.css`
6567
+ ${({ $inline }) => $inline && import_styled_components30.css`
6245
6568
  display: inline-block;
6246
6569
  `}
6247
- ${({ $disabled }) => $disabled && import_styled_components29.css`
6570
+ ${({ $disabled }) => $disabled && import_styled_components30.css`
6248
6571
  --text-color: var(--color-text-disabled);
6249
6572
  `}
6250
- ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components29.css`
6573
+ ${({ $preventUserSelect }) => $preventUserSelect && import_styled_components30.css`
6251
6574
  user-select: none;
6252
6575
  `}
6253
- ${({ $align }) => import_styled_components29.css`
6576
+ ${({ $align }) => import_styled_components30.css`
6254
6577
  text-align: ${$align};
6255
6578
  `}
6256
- ${({ as }) => as === "p" && import_styled_components29.css`
6579
+ ${({ as }) => as === "p" && import_styled_components30.css`
6257
6580
  display: block;
6258
6581
  `}
6259
6582
  `;
6260
- var DEFAULT_ELEMENT3 = "div";
6583
+ var DEFAULT_ELEMENT2 = "div";
6261
6584
  var TextComponent = (0, import_react14.forwardRef)(
6262
6585
  ({
6263
6586
  align = "left",
@@ -6271,7 +6594,7 @@ var TextComponent = (0, import_react14.forwardRef)(
6271
6594
  renderAs,
6272
6595
  ...otherProps
6273
6596
  }, ref) => {
6274
- return /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
6597
+ return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
6275
6598
  StyledText,
6276
6599
  {
6277
6600
  ref,
@@ -6283,7 +6606,7 @@ var TextComponent = (0, import_react14.forwardRef)(
6283
6606
  $preventUserSelect: preventUserSelect,
6284
6607
  $prominence: prominence,
6285
6608
  $variant: variant,
6286
- as: renderAs ?? DEFAULT_ELEMENT3,
6609
+ as: renderAs ?? DEFAULT_ELEMENT2,
6287
6610
  ...otherProps
6288
6611
  }
6289
6612
  );
@@ -6292,21 +6615,393 @@ var TextComponent = (0, import_react14.forwardRef)(
6292
6615
  TextComponent.displayName = "Text";
6293
6616
  var Text = makePolymorphic(TextComponent);
6294
6617
 
6618
+ // src/components/Menu/MenuLabel.tsx
6619
+ var import_jsx_runtime174 = require("react/jsx-runtime");
6620
+ var StyledMenuLabel = (0, import_styled_components31.default)(import_react_dropdown_menu2.DropdownMenuLabel)`
6621
+ padding: var(--space-02);
6622
+ `;
6623
+ var MenuLabel = ({ children, ...props }) => {
6624
+ return /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
6625
+ StyledMenuLabel,
6626
+ {
6627
+ asChild: true,
6628
+ ...props,
6629
+ children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
6630
+ Text,
6631
+ {
6632
+ variant: "label3",
6633
+ ...props,
6634
+ children
6635
+ }
6636
+ )
6637
+ }
6638
+ );
6639
+ };
6640
+ MenuLabel.displayName = "MenuLabel";
6641
+
6642
+ // src/components/Menu/SubMenu.tsx
6643
+ var import_react16 = require("react");
6644
+ var import_styled_components34 = __toESM(require("styled-components"));
6645
+ var import_react_dropdown_menu3 = require("@radix-ui/react-dropdown-menu");
6646
+
6647
+ // src/components/Menu/MenuItemButton.tsx
6648
+ var import_react15 = require("react");
6649
+ var import_styled_components32 = __toESM(require("styled-components"));
6650
+ var import_type_guards18 = require("@wistia/type-guards");
6651
+ var import_jsx_runtime175 = require("react/jsx-runtime");
6652
+ var StyledButton3 = (0, import_styled_components32.default)(Button)`
6653
+ --menu-item-border-radius: var(--border-radius-01);
6654
+ --menu-item-gap: var(--space-01);
6655
+ --menu-item-inner-gap: var(--space-04);
6656
+ --menu-item-disabled-bg: var(--color-white);
6657
+
6658
+ text-align: left;
6659
+ align-items: left;
6660
+ border-radius: var(--menu-item-border-radius);
6661
+ display: flex;
6662
+
6663
+ &[aria-disabled='true'] {
6664
+ background-color: var(--menu-item-disabled-bg);
6665
+ }
6666
+
6667
+ ${({ $isGated }) => (0, import_type_guards18.isNotUndefined)($isGated) && $isGated ? `color: var(--color-text);` : ""}
6668
+ `;
6669
+ var StyledMenuContent = import_styled_components32.default.div`
6670
+ display: grid;
6671
+ grid-template-areas:
6672
+ 'label badge'
6673
+ 'description badge';
6674
+ grid-template-columns: 1fr auto;
6675
+ position: relative;
6676
+ align-content: center;
6677
+ `;
6678
+ var StyledBadgeContainer = import_styled_components32.default.div`
6679
+ grid-area: badge;
6680
+ align-self: start;
6681
+ justify-self: end;
6682
+ margin-left: var(--menu-item-inner-gap);
6683
+ `;
6684
+ var MenuItemButton = (0, import_react15.forwardRef)(({ children, appearance, command, ...props }, ref) => {
6685
+ let { colorScheme, badge } = props;
6686
+ if (appearance === "dangerous") {
6687
+ if ((0, import_type_guards18.isNotUndefined)(colorScheme)) {
6688
+ console.warn("colorScheme prop is ignored when appearance is dangerous");
6689
+ }
6690
+ colorScheme = "error";
6691
+ }
6692
+ if (appearance === "gated") {
6693
+ if ((0, import_type_guards18.isNotUndefined)(colorScheme)) {
6694
+ console.warn("colorScheme prop is ignored when appearance is gated");
6695
+ }
6696
+ colorScheme = "purple";
6697
+ badge = /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(Icon, { type: "sparkle" });
6698
+ }
6699
+ return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
6700
+ StyledButton3,
6701
+ {
6702
+ ...props,
6703
+ ref,
6704
+ $isGated: appearance === "gated",
6705
+ colorScheme: colorScheme ?? "default",
6706
+ fullWidth: true,
6707
+ variant: "ghost",
6708
+ children: /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(StyledMenuContent, { children: [
6709
+ children,
6710
+ (0, import_type_guards18.isNotNil)(badge) || (0, import_type_guards18.isNotNil)(command) ? /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(StyledBadgeContainer, { children: badge ?? command }) : null
6711
+ ] })
6712
+ }
6713
+ );
6714
+ });
6715
+ MenuItemButton.displayName = "MenuItemButton";
6716
+
6717
+ // src/components/Menu/MenuItemLabelDescription.tsx
6718
+ var import_styled_components33 = __toESM(require("styled-components"));
6719
+ var import_jsx_runtime176 = require("react/jsx-runtime");
6720
+ var StyledMenuItemLabel = (0, import_styled_components33.default)(Text).attrs({ variant: "label3" })`
6721
+ grid-area: label;
6722
+ `;
6723
+ var StyledMenuItemDescription = (0, import_styled_components33.default)(Text).attrs({
6724
+ variant: "label4",
6725
+ prominence: "secondary"
6726
+ })`
6727
+ margin-top: var(--menu-item-gap);
6728
+ grid-area: description;
6729
+ `;
6730
+ var MenuItemLabel = ({ children }) => {
6731
+ return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledMenuItemLabel, { children });
6732
+ };
6733
+ var MenuItemDescription = ({ children }) => {
6734
+ return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(StyledMenuItemDescription, { children });
6735
+ };
6736
+
6737
+ // src/components/Menu/SubMenu.tsx
6738
+ var import_jsx_runtime177 = require("react/jsx-runtime");
6739
+ var SubMenuContent = (0, import_styled_components34.default)(import_react_dropdown_menu3.DropdownMenuSubContent)`
6740
+ ${menuContentCss}
6741
+ width: 298px;
6742
+
6743
+ ${mq.smAndDown} {
6744
+ transform: translateX(-100%) !important;
6745
+ }
6746
+ `;
6747
+ var StyledMobileSubMenuItems = import_styled_components34.default.div`
6748
+ margin-left: var(--space-04);
6749
+ `;
6750
+ var StyledSubTrigger = (0, import_styled_components34.default)(import_react_dropdown_menu3.DropdownMenuSubTrigger)`
6751
+ outline: none;
6752
+
6753
+ &[data-state='open'],
6754
+ &[data-highlighted] {
6755
+ background-color: var(--button-color-bg-hover);
6756
+ }
6757
+ `;
6758
+ var SubMenuTrigger = (props) => {
6759
+ const { isSmAndUp } = useMq();
6760
+ const Trigger2 = isSmAndUp ? StyledSubTrigger : import_react_dropdown_menu3.DropdownMenuItem;
6761
+ return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(Trigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
6762
+ MenuItemButton,
6763
+ {
6764
+ ...props,
6765
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(Icon, { type: "caret-right" })
6766
+ }
6767
+ ) });
6768
+ };
6769
+ var SubMenu = ({
6770
+ label,
6771
+ description,
6772
+ children,
6773
+ onOpenChange = () => null,
6774
+ ...props
6775
+ }) => {
6776
+ const { isSmAndUp } = useMq();
6777
+ const [isExpanded, setIsExpanded] = (0, import_react16.useState)(false);
6778
+ return isSmAndUp ? /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)(import_react_dropdown_menu3.DropdownMenuSub, { onOpenChange, children: [
6779
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)(SubMenuTrigger, { ...props, children: [
6780
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(MenuItemLabel, { children: label }),
6781
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(MenuItemDescription, { children: description })
6782
+ ] }),
6783
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(import_react_dropdown_menu3.DropdownMenuPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(SubMenuContent, { children }) })
6784
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)(import_react_dropdown_menu3.DropdownMenuGroup, { children: [
6785
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)(
6786
+ SubMenuTrigger,
6787
+ {
6788
+ ...props,
6789
+ onClick: (event) => {
6790
+ event.preventDefault();
6791
+ setIsExpanded((prev) => !prev);
6792
+ },
6793
+ children: [
6794
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(MenuItemLabel, { children: label }),
6795
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(MenuItemDescription, { children: description })
6796
+ ]
6797
+ }
6798
+ ),
6799
+ /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(StyledMobileSubMenuItems, { children: isExpanded ? children : null })
6800
+ ] });
6801
+ };
6802
+ SubMenu.displayName = "SubMenu";
6803
+
6804
+ // src/components/Menu/MenuItem.tsx
6805
+ var import_react17 = require("react");
6806
+ var import_react_dropdown_menu4 = require("@radix-ui/react-dropdown-menu");
6807
+ var import_jsx_runtime178 = require("react/jsx-runtime");
6808
+ var MenuItem = (0, import_react17.forwardRef)(
6809
+ ({ onSelect = () => null, ...props }, ref) => {
6810
+ return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
6811
+ import_react_dropdown_menu4.DropdownMenuItem,
6812
+ {
6813
+ asChild: true,
6814
+ onSelect,
6815
+ children: /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
6816
+ MenuItemButton,
6817
+ {
6818
+ ...props,
6819
+ ref,
6820
+ leftIcon: props.icon
6821
+ }
6822
+ )
6823
+ }
6824
+ );
6825
+ }
6826
+ );
6827
+ MenuItem.displayName = "MenuItem";
6828
+
6829
+ // src/components/Menu/MenuRadioGroup.tsx
6830
+ var import_react_dropdown_menu5 = require("@radix-ui/react-dropdown-menu");
6831
+ var import_jsx_runtime179 = require("react/jsx-runtime");
6832
+ var MenuRadioGroup = ({ children, label, ...props }) => {
6833
+ return /* @__PURE__ */ (0, import_jsx_runtime179.jsxs)(import_react_dropdown_menu5.DropdownMenuRadioGroup, { ...props, children: [
6834
+ /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(MenuLabel, { children: label }),
6835
+ children
6836
+ ] });
6837
+ };
6838
+ MenuRadioGroup.displayName = "MenuRadioGroup";
6839
+
6840
+ // src/components/Menu/RadioMenuItem.tsx
6841
+ var import_react_dropdown_menu6 = require("@radix-ui/react-dropdown-menu");
6842
+ var import_jsx_runtime180 = require("react/jsx-runtime");
6843
+ var RadioMenuItem = ({
6844
+ onSelect,
6845
+ value,
6846
+ indicator = /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
6847
+ Icon,
6848
+ {
6849
+ size: "sm",
6850
+ type: "checkmark"
6851
+ }
6852
+ ),
6853
+ ...props
6854
+ }) => {
6855
+ const extraProps = onSelect ? { onSelect } : {};
6856
+ return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
6857
+ import_react_dropdown_menu6.DropdownMenuRadioItem,
6858
+ {
6859
+ ...extraProps,
6860
+ value,
6861
+ children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
6862
+ MenuItemButton,
6863
+ {
6864
+ ...props,
6865
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_react_dropdown_menu6.DropdownMenuItemIndicator, { children: indicator })
6866
+ }
6867
+ )
6868
+ }
6869
+ );
6870
+ };
6871
+ RadioMenuItem.displayName = "RadioMenuItem";
6872
+
6873
+ // src/components/Menu/CheckboxMenuItem.tsx
6874
+ var import_react_dropdown_menu7 = require("@radix-ui/react-dropdown-menu");
6875
+ var import_jsx_runtime181 = require("react/jsx-runtime");
6876
+ var CheckboxMenuItem = ({
6877
+ onSelect,
6878
+ checked,
6879
+ onCheckedChange,
6880
+ indicator = /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
6881
+ Icon,
6882
+ {
6883
+ size: "sm",
6884
+ type: "checkmark"
6885
+ }
6886
+ ),
6887
+ ...props
6888
+ }) => {
6889
+ let extraProps = {};
6890
+ if (onSelect) {
6891
+ extraProps = {
6892
+ ...extraProps,
6893
+ onCheckedChange,
6894
+ onSelect
6895
+ };
6896
+ }
6897
+ return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
6898
+ import_react_dropdown_menu7.DropdownMenuCheckboxItem,
6899
+ {
6900
+ ...extraProps,
6901
+ checked,
6902
+ children: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
6903
+ MenuItemButton,
6904
+ {
6905
+ ...props,
6906
+ rightIcon: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_react_dropdown_menu7.DropdownMenuItemIndicator, { children: indicator })
6907
+ }
6908
+ )
6909
+ }
6910
+ );
6911
+ };
6912
+ CheckboxMenuItem.displayName = "CheckboxMenuItem";
6913
+
6914
+ // src/components/ScreenReaderOnly/ScreenReaderOnly.tsx
6915
+ var import_styled_components35 = __toESM(require("styled-components"));
6916
+ var import_type_guards19 = require("@wistia/type-guards");
6917
+ var import_jsx_runtime182 = require("react/jsx-runtime");
6918
+ var VisuallyHidden = import_styled_components35.default.div({ ...visuallyHiddenStyle });
6919
+ var VisuallyHiddenButFocusable = import_styled_components35.default.div({
6920
+ "&:not(:focus-within)": visuallyHiddenStyle
6921
+ });
6922
+ var ScreenReaderOnly = ({
6923
+ text,
6924
+ children,
6925
+ focusable = false,
6926
+ ...otherProps
6927
+ }) => {
6928
+ const accessibleText = (0, import_type_guards19.isNotNil)(text) ? text : children;
6929
+ if (focusable) {
6930
+ return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(VisuallyHiddenButFocusable, { ...otherProps, children: accessibleText });
6931
+ }
6932
+ return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(VisuallyHidden, { ...otherProps, children: accessibleText });
6933
+ };
6934
+ ScreenReaderOnly.displayName = "ScreenReaderOnly";
6935
+
6936
+ // src/components/Stack/Stack.tsx
6937
+ var import_react18 = require("react");
6938
+ var import_styled_components36 = __toESM(require("styled-components"));
6939
+ var import_jsx_runtime183 = require("react/jsx-runtime");
6940
+ var DEFAULT_ELEMENT3 = "div";
6941
+ var StyledStack = import_styled_components36.default.div`
6942
+ display: flex;
6943
+ flex-direction: ${({ $direction }) => $direction === "horizontal" ? "row" : "column"};
6944
+ gap: ${({ $gap }) => `var(--${$gap})`};
6945
+
6946
+ > * {
6947
+ flex: 1;
6948
+ }
6949
+ `;
6950
+ var StackComponent = (0, import_react18.forwardRef)(
6951
+ ({ renderAs, direction = "vertical", gap = "space-02", ...props }, ref) => {
6952
+ const responsiveGap = useResponsiveProp(gap);
6953
+ const responsiveDirection = useResponsiveProp(direction);
6954
+ return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
6955
+ StyledStack,
6956
+ {
6957
+ ref,
6958
+ $direction: responsiveDirection,
6959
+ $gap: responsiveGap,
6960
+ as: renderAs ?? DEFAULT_ELEMENT3,
6961
+ ...props
6962
+ }
6963
+ );
6964
+ }
6965
+ );
6966
+ StackComponent.displayName = "Stack";
6967
+ var Stack = makePolymorphic(StackComponent);
6968
+
6295
6969
  // src/components/WistiaLogo/WistiaLogo.tsx
6296
- var import_styled_components30 = __toESM(require("styled-components"));
6297
- var import_type_guards16 = require("@wistia/type-guards");
6298
- var import_jsx_runtime173 = require("react/jsx-runtime");
6970
+ var import_styled_components37 = __toESM(require("styled-components"));
6971
+ var import_type_guards20 = require("@wistia/type-guards");
6972
+ var import_jsx_runtime184 = require("react/jsx-runtime");
6299
6973
  var renderBrandmark = (brandmarkColor, iconOnly) => {
6300
6974
  if (iconOnly) {
6301
- 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" }) });
6975
+ return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
6976
+ "g",
6977
+ {
6978
+ "data-testid": "ui-wistia-logo-brandmark",
6979
+ fill: brandmarkColor,
6980
+ 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" })
6981
+ }
6982
+ );
6302
6983
  }
6303
- 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" }) });
6984
+ return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
6985
+ "g",
6986
+ {
6987
+ "data-testid": "ui-wistia-logo-brandmark",
6988
+ fill: brandmarkColor,
6989
+ 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" })
6990
+ }
6991
+ );
6304
6992
  };
6305
6993
  var renderLogotype = (logotypeColor, iconOnly) => {
6306
6994
  if (iconOnly) {
6307
6995
  return null;
6308
6996
  }
6309
- 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" }) });
6997
+ return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
6998
+ "g",
6999
+ {
7000
+ "data-testid": "ui-wistia-logo-logotype",
7001
+ fill: logotypeColor,
7002
+ 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" })
7003
+ }
7004
+ );
6310
7005
  };
6311
7006
  var computedViewBox = (iconOnly) => {
6312
7007
  if (iconOnly) {
@@ -6314,7 +7009,7 @@ var computedViewBox = (iconOnly) => {
6314
7009
  }
6315
7010
  return "0 0 144 31.47";
6316
7011
  };
6317
- var WistiaLogoComponent = import_styled_components30.default.svg`
7012
+ var WistiaLogoComponent = import_styled_components37.default.svg`
6318
7013
  height: ${({ height }) => `${height}px`};
6319
7014
 
6320
7015
  /* ensure it will always fit on mobile */
@@ -6356,7 +7051,7 @@ var WistiaLogo = ({
6356
7051
  };
6357
7052
  const brandmarkColor = VARIANT_COLORS[variant].brandmark;
6358
7053
  const logotypeColor = VARIANT_COLORS[variant].logotype;
6359
- const Logo = /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
7054
+ const Logo = /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(
6360
7055
  WistiaLogoComponent,
6361
7056
  {
6362
7057
  $hoverColor: hoverColor,
@@ -6366,14 +7061,14 @@ var WistiaLogo = ({
6366
7061
  xmlns: "http://www.w3.org/2000/svg",
6367
7062
  ...otherProps,
6368
7063
  children: [
6369
- /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("title", { children: title }),
6370
- (0, import_type_guards16.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("desc", { children: description }) : null,
7064
+ /* @__PURE__ */ (0, import_jsx_runtime184.jsx)("title", { children: title }),
7065
+ (0, import_type_guards20.isNotNil)(description) ? /* @__PURE__ */ (0, import_jsx_runtime184.jsx)("desc", { children: description }) : null,
6371
7066
  renderBrandmark(brandmarkColor, iconOnly),
6372
7067
  renderLogotype(logotypeColor, iconOnly)
6373
7068
  ]
6374
7069
  }
6375
7070
  );
6376
- return href !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("a", { href, children: Logo }) : Logo;
7071
+ return href !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime184.jsx)("a", { href, children: Logo }) : Logo;
6377
7072
  };
6378
7073
  WistiaLogo.displayName = "WistiaLogo";
6379
7074
  // Annotate the CommonJS export names for ESM import in node:
@@ -6383,6 +7078,8 @@ WistiaLogo.displayName = "WistiaLogo";
6383
7078
  Box,
6384
7079
  Button,
6385
7080
  ButtonGroup,
7081
+ Checkbox,
7082
+ CheckboxMenuItem,
6386
7083
  ColorSchemeWrapper,
6387
7084
  Divider,
6388
7085
  Ellipsis,
@@ -6391,8 +7088,16 @@ WistiaLogo.displayName = "WistiaLogo";
6391
7088
  IconButton,
6392
7089
  Label,
6393
7090
  Link,
7091
+ Menu,
7092
+ MenuItem,
7093
+ MenuItemDescription,
7094
+ MenuItemLabel,
7095
+ MenuLabel,
7096
+ MenuRadioGroup,
7097
+ RadioMenuItem,
6394
7098
  ScreenReaderOnly,
6395
7099
  Stack,
7100
+ SubMenu,
6396
7101
  Text,
6397
7102
  Tooltip,
6398
7103
  UIProvider,