@wistia/ui 0.8.27 → 0.8.28

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.d.mts CHANGED
@@ -709,11 +709,6 @@ type BoxProps = ComponentPropsWithoutRef<typeof DEFAULT_ELEMENT$1> & {
709
709
  * *Note: only works for nested `<Box />`*
710
710
  */
711
711
  grow?: number | string;
712
- /**
713
- * @ignore
714
- * Used internally to track if a Box is a child of another Box component
715
- */
716
- hasBoxParent?: boolean;
717
712
  /**
718
713
  * Specifies the height of the box.
719
714
  *
@@ -3275,4 +3270,26 @@ declare const WistiaLogo: {
3275
3270
  displayName: string;
3276
3271
  };
3277
3272
 
3278
- export { ActionButton, type ActionButtonProps, Avatar, type AvatarProps, type AvatarStatus, Badge, type BadgeProps, Box, type BoxProps, Breadcrumb, type BreadcrumbProps, Breadcrumbs, type BreadcrumbsProps, Button, ButtonGroup, type ButtonProps, Card, type CardProps, Center, type CenterProps, Checkbox, CheckboxGroup, CheckboxMenuItem, ClickRegion, type ClickRegionProps, Collapsible, CollapsibleContent, type CollapsibleProps, CollapsibleTrigger, type ColorSchemeTypes, ColorSchemeWrapper, type ColorSchemeWrapperProps, DataCard, type DataCardProps, DataCardTrend, type DataCardTrendProps, DataCards, type DataCardsProps, Divider, EditableHeading, type EditableHeadingProps, Ellipsis, type EllipsisProps, Form, FormErrorSummary, FormField, type FormFieldProps, FormGroup, type FormGroupProps, type FormProps, Heading, type HeadingProps, Icon, IconButton, type IconButtonProps, type IconNameType, Image, type ImageProps, Input, InputClickToCopy, type InputClickToCopyProps, type InputProps, type KeyboardKeys, KeyboardShortcut, Label, type LabelProps, Link, type LinkProps, Menu, MenuItem, MenuItemDescription, MenuItemLabel, MenuLabel, MenuRadioGroup, Modal, type ModalProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, RadioGroup, RadioMenuItem, type RadioProps, ScreenReaderOnly, SegmentedControl, SegmentedControlItem, type SegmentedControlItemProps, type SegmentedControlProps, Select, SelectOption, SelectOptionGroup, type SelectOptionGroupProps, type SelectOptionProps, type SelectProps, Stack, SubMenu, Switch, type SwitchProps, Tab, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableFoot, type TableFootProps, TableHead, type TableHeadProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, Tag, type TagProps, Text, type TextProps, Thumbnail, ThumbnailBadge, type ThumbnailBadgeProps, ThumbnailCollage, type ThumbnailCollageProps, type ThumbnailProps, Tooltip, type TooltipProps, UIProvider, type UseToastProps, WistiaLogo, colorSchemeOptions, copyToClipboard, dateTime, iconSizeMap, mergeRefs, mq, useActiveMq, useAriaLive, useBoolean, useClipboard, useFocusTrap, useForceUpdate, useFormState, useIsHovered, useKey, useLocalStorage, useLockBodyScroll, useMq, useOnClickOutside, usePreviousValue, useToast, useWindowSize };
3273
+ type VariantType = 'breadcrumbs' | 'bullets' | 'commas' | 'ordered' | 'slashes' | 'spaces' | 'unbulleted';
3274
+ type ItemType = ItemType[] | string[] | string;
3275
+ type ListProps = ComponentPropsWithoutRef<'ul'> & {
3276
+ /**
3277
+ * Children should be wrapped in `<ListItem>`
3278
+ */
3279
+ children?: ReactNode;
3280
+ /**
3281
+ * As an alternative to passing children you can supply an array of strings that
3282
+ * will be rendered as child `<ListItems>`s. Note that all items will be of the same variant.
3283
+ */
3284
+ items?: ItemType[];
3285
+ /**
3286
+ * The kind of list to render
3287
+ */
3288
+ variant?: VariantType;
3289
+ };
3290
+ declare const List: {
3291
+ ({ children, items, variant, ...otherProps }: ListProps): JSX.Element | null;
3292
+ displayName: string;
3293
+ };
3294
+
3295
+ export { ActionButton, type ActionButtonProps, Avatar, type AvatarProps, type AvatarStatus, Badge, type BadgeProps, Box, type BoxProps, Breadcrumb, type BreadcrumbProps, Breadcrumbs, type BreadcrumbsProps, Button, ButtonGroup, type ButtonProps, Card, type CardProps, Center, type CenterProps, Checkbox, CheckboxGroup, CheckboxMenuItem, ClickRegion, type ClickRegionProps, Collapsible, CollapsibleContent, type CollapsibleProps, CollapsibleTrigger, type ColorSchemeTypes, ColorSchemeWrapper, type ColorSchemeWrapperProps, DataCard, type DataCardProps, DataCardTrend, type DataCardTrendProps, DataCards, type DataCardsProps, Divider, EditableHeading, type EditableHeadingProps, Ellipsis, type EllipsisProps, Form, FormErrorSummary, FormField, type FormFieldProps, FormGroup, type FormGroupProps, type FormProps, Heading, type HeadingProps, Icon, IconButton, type IconButtonProps, type IconNameType, Image, type ImageProps, Input, InputClickToCopy, type InputClickToCopyProps, type InputProps, type KeyboardKeys, KeyboardShortcut, Label, type LabelProps, Link, type LinkProps, List, type ListProps, Menu, MenuItem, MenuItemDescription, MenuItemLabel, MenuLabel, MenuRadioGroup, Modal, type ModalProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, RadioGroup, RadioMenuItem, type RadioProps, ScreenReaderOnly, SegmentedControl, SegmentedControlItem, type SegmentedControlItemProps, type SegmentedControlProps, Select, SelectOption, SelectOptionGroup, type SelectOptionGroupProps, type SelectOptionProps, type SelectProps, Stack, SubMenu, Switch, type SwitchProps, Tab, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableFoot, type TableFootProps, TableHead, type TableHeadProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, Tag, type TagProps, Text, type TextProps, Thumbnail, ThumbnailBadge, type ThumbnailBadgeProps, ThumbnailCollage, type ThumbnailCollageProps, type ThumbnailProps, Tooltip, type TooltipProps, UIProvider, type UseToastProps, WistiaLogo, colorSchemeOptions, copyToClipboard, dateTime, iconSizeMap, mergeRefs, mq, useActiveMq, useAriaLive, useBoolean, useClipboard, useFocusTrap, useForceUpdate, useFormState, useIsHovered, useKey, useLocalStorage, useLockBodyScroll, useMq, useOnClickOutside, usePreviousValue, useToast, useWindowSize };
package/dist/index.d.ts CHANGED
@@ -709,11 +709,6 @@ type BoxProps = ComponentPropsWithoutRef<typeof DEFAULT_ELEMENT$1> & {
709
709
  * *Note: only works for nested `<Box />`*
710
710
  */
711
711
  grow?: number | string;
712
- /**
713
- * @ignore
714
- * Used internally to track if a Box is a child of another Box component
715
- */
716
- hasBoxParent?: boolean;
717
712
  /**
718
713
  * Specifies the height of the box.
719
714
  *
@@ -3275,4 +3270,26 @@ declare const WistiaLogo: {
3275
3270
  displayName: string;
3276
3271
  };
3277
3272
 
3278
- export { ActionButton, type ActionButtonProps, Avatar, type AvatarProps, type AvatarStatus, Badge, type BadgeProps, Box, type BoxProps, Breadcrumb, type BreadcrumbProps, Breadcrumbs, type BreadcrumbsProps, Button, ButtonGroup, type ButtonProps, Card, type CardProps, Center, type CenterProps, Checkbox, CheckboxGroup, CheckboxMenuItem, ClickRegion, type ClickRegionProps, Collapsible, CollapsibleContent, type CollapsibleProps, CollapsibleTrigger, type ColorSchemeTypes, ColorSchemeWrapper, type ColorSchemeWrapperProps, DataCard, type DataCardProps, DataCardTrend, type DataCardTrendProps, DataCards, type DataCardsProps, Divider, EditableHeading, type EditableHeadingProps, Ellipsis, type EllipsisProps, Form, FormErrorSummary, FormField, type FormFieldProps, FormGroup, type FormGroupProps, type FormProps, Heading, type HeadingProps, Icon, IconButton, type IconButtonProps, type IconNameType, Image, type ImageProps, Input, InputClickToCopy, type InputClickToCopyProps, type InputProps, type KeyboardKeys, KeyboardShortcut, Label, type LabelProps, Link, type LinkProps, Menu, MenuItem, MenuItemDescription, MenuItemLabel, MenuLabel, MenuRadioGroup, Modal, type ModalProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, RadioGroup, RadioMenuItem, type RadioProps, ScreenReaderOnly, SegmentedControl, SegmentedControlItem, type SegmentedControlItemProps, type SegmentedControlProps, Select, SelectOption, SelectOptionGroup, type SelectOptionGroupProps, type SelectOptionProps, type SelectProps, Stack, SubMenu, Switch, type SwitchProps, Tab, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableFoot, type TableFootProps, TableHead, type TableHeadProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, Tag, type TagProps, Text, type TextProps, Thumbnail, ThumbnailBadge, type ThumbnailBadgeProps, ThumbnailCollage, type ThumbnailCollageProps, type ThumbnailProps, Tooltip, type TooltipProps, UIProvider, type UseToastProps, WistiaLogo, colorSchemeOptions, copyToClipboard, dateTime, iconSizeMap, mergeRefs, mq, useActiveMq, useAriaLive, useBoolean, useClipboard, useFocusTrap, useForceUpdate, useFormState, useIsHovered, useKey, useLocalStorage, useLockBodyScroll, useMq, useOnClickOutside, usePreviousValue, useToast, useWindowSize };
3273
+ type VariantType = 'breadcrumbs' | 'bullets' | 'commas' | 'ordered' | 'slashes' | 'spaces' | 'unbulleted';
3274
+ type ItemType = ItemType[] | string[] | string;
3275
+ type ListProps = ComponentPropsWithoutRef<'ul'> & {
3276
+ /**
3277
+ * Children should be wrapped in `<ListItem>`
3278
+ */
3279
+ children?: ReactNode;
3280
+ /**
3281
+ * As an alternative to passing children you can supply an array of strings that
3282
+ * will be rendered as child `<ListItems>`s. Note that all items will be of the same variant.
3283
+ */
3284
+ items?: ItemType[];
3285
+ /**
3286
+ * The kind of list to render
3287
+ */
3288
+ variant?: VariantType;
3289
+ };
3290
+ declare const List: {
3291
+ ({ children, items, variant, ...otherProps }: ListProps): JSX.Element | null;
3292
+ displayName: string;
3293
+ };
3294
+
3295
+ export { ActionButton, type ActionButtonProps, Avatar, type AvatarProps, type AvatarStatus, Badge, type BadgeProps, Box, type BoxProps, Breadcrumb, type BreadcrumbProps, Breadcrumbs, type BreadcrumbsProps, Button, ButtonGroup, type ButtonProps, Card, type CardProps, Center, type CenterProps, Checkbox, CheckboxGroup, CheckboxMenuItem, ClickRegion, type ClickRegionProps, Collapsible, CollapsibleContent, type CollapsibleProps, CollapsibleTrigger, type ColorSchemeTypes, ColorSchemeWrapper, type ColorSchemeWrapperProps, DataCard, type DataCardProps, DataCardTrend, type DataCardTrendProps, DataCards, type DataCardsProps, Divider, EditableHeading, type EditableHeadingProps, Ellipsis, type EllipsisProps, Form, FormErrorSummary, FormField, type FormFieldProps, FormGroup, type FormGroupProps, type FormProps, Heading, type HeadingProps, Icon, IconButton, type IconButtonProps, type IconNameType, Image, type ImageProps, Input, InputClickToCopy, type InputClickToCopyProps, type InputProps, type KeyboardKeys, KeyboardShortcut, Label, type LabelProps, Link, type LinkProps, List, type ListProps, Menu, MenuItem, MenuItemDescription, MenuItemLabel, MenuLabel, MenuRadioGroup, Modal, type ModalProps, Popover, type PopoverProps, ProgressBar, type ProgressBarProps, Radio, RadioGroup, RadioMenuItem, type RadioProps, ScreenReaderOnly, SegmentedControl, SegmentedControlItem, type SegmentedControlItemProps, type SegmentedControlProps, Select, SelectOption, SelectOptionGroup, type SelectOptionGroupProps, type SelectOptionProps, type SelectProps, Stack, SubMenu, Switch, type SwitchProps, Tab, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableFoot, type TableFootProps, TableHead, type TableHeadProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, Tag, type TagProps, Text, type TextProps, Thumbnail, ThumbnailBadge, type ThumbnailBadgeProps, ThumbnailCollage, type ThumbnailCollageProps, type ThumbnailProps, Tooltip, type TooltipProps, UIProvider, type UseToastProps, WistiaLogo, colorSchemeOptions, copyToClipboard, dateTime, iconSizeMap, mergeRefs, mq, useActiveMq, useAriaLive, useBoolean, useClipboard, useFocusTrap, useForceUpdate, useFormState, useIsHovered, useKey, useLocalStorage, useLockBodyScroll, useMq, useOnClickOutside, usePreviousValue, useToast, useWindowSize };
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  /*
3
- * @license @wistia/ui v0.8.27
3
+ * @license @wistia/ui v0.8.28
4
4
  *
5
5
  * Copyright (c) 2024-2025, Wistia, Inc. and its affiliates.
6
6
  *
@@ -7648,9 +7648,9 @@ var Badge = forwardRef4(
7648
7648
  Badge.displayName = "Badge";
7649
7649
 
7650
7650
  // src/components/Box/Box.tsx
7651
- import { Children, cloneElement as cloneElement2, forwardRef as forwardRef5 } from "react";
7651
+ import { forwardRef as forwardRef5 } from "react";
7652
7652
  import styled11, { css as css18 } from "styled-components";
7653
- import { isNotNil as isNotNil10, isNil as isNil9, isRecord as isRecord3, isNotUndefined as isNotUndefined5 } from "@wistia/type-guards";
7653
+ import { isNotNil as isNotNil10, isRecord as isRecord3, isNotUndefined as isNotUndefined5 } from "@wistia/type-guards";
7654
7654
 
7655
7655
  // src/private/helpers/makePolymorphic/makePolymorphic.tsx
7656
7656
  var makePolymorphic = (component) => {
@@ -7659,7 +7659,6 @@ var makePolymorphic = (component) => {
7659
7659
 
7660
7660
  // src/components/Box/Box.tsx
7661
7661
  import { jsx as jsx199 } from "react/jsx-runtime";
7662
- var isDev = process.env["NODE_ENV"] === "development" || process.env["NODE_ENV"] === "test";
7663
7662
  var getGapStyle = (gap) => {
7664
7663
  if (isNotNil10(gap)) {
7665
7664
  if (isRecord3(gap)) {
@@ -7754,22 +7753,6 @@ var StyledBoxComponent = styled11.div`
7754
7753
  justify-content: ${({ $justifyContent }) => $justifyContent};
7755
7754
  order: ${({ $order }) => isNotNil10($order) ? $order : null};
7756
7755
  `;
7757
- var wrapChildren = (children) => {
7758
- if (isNotNil10(children)) {
7759
- if (typeof children === "object" && isDev) {
7760
- return Children.map(children, (child) => {
7761
- if (isNil9(child)) return null;
7762
- const elementParams = {};
7763
- if (child.type?.displayName === "Box" || child.type?.displayName === "Box_UI") {
7764
- elementParams.hasBoxParent = true;
7765
- }
7766
- return cloneElement2(child, elementParams);
7767
- });
7768
- }
7769
- return children;
7770
- }
7771
- return null;
7772
- };
7773
7756
  var DEFAULT_ELEMENT = "div";
7774
7757
  var BoxComponent = forwardRef5(
7775
7758
  ({
@@ -7783,8 +7766,6 @@ var BoxComponent = forwardRef5(
7783
7766
  fillViewport = false,
7784
7767
  gap,
7785
7768
  grow,
7786
- hasBoxParent = false,
7787
- // eslint-disable-line @typescript-eslint/no-unused-vars
7788
7769
  height,
7789
7770
  inline = false,
7790
7771
  justifyContent = "flex-start",
@@ -7845,7 +7826,7 @@ var BoxComponent = forwardRef5(
7845
7826
  $wrapItems: wrapItems,
7846
7827
  as: renderAs ?? DEFAULT_ELEMENT,
7847
7828
  ...props,
7848
- children: wrapChildren(children)
7829
+ children
7849
7830
  }
7850
7831
  );
7851
7832
  }
@@ -7854,7 +7835,7 @@ BoxComponent.displayName = "Box";
7854
7835
  var Box = makePolymorphic(BoxComponent);
7855
7836
 
7856
7837
  // src/components/Breadcrumbs/Breadcrumbs.tsx
7857
- import { Children as Children2 } from "react";
7838
+ import { Children } from "react";
7858
7839
  import styled12 from "styled-components";
7859
7840
  import { Fragment as Fragment2, jsx as jsx200, jsxs as jsxs12 } from "react/jsx-runtime";
7860
7841
  var StyledBreadcrumbs = styled12.nav`
@@ -7870,7 +7851,7 @@ var StyledBreadcrumbs = styled12.nav`
7870
7851
  var BUFFER_WIDTH = 10;
7871
7852
  var Breadcrumbs = ({ children, ...props }) => {
7872
7853
  const { isXsAndDown } = useMq();
7873
- let crumbs = Children2.toArray(children);
7854
+ let crumbs = Children.toArray(children);
7874
7855
  if (isXsAndDown) {
7875
7856
  crumbs = crumbs.slice(-1);
7876
7857
  }
@@ -7937,7 +7918,7 @@ var Breadcrumb = ({ icon, href, children, ...props }) => {
7937
7918
 
7938
7919
  // src/components/ButtonGroup/ButtonGroup.tsx
7939
7920
  import styled14 from "styled-components";
7940
- import { isNil as isNil10 } from "@wistia/type-guards";
7921
+ import { isNil as isNil9 } from "@wistia/type-guards";
7941
7922
  import { jsx as jsx202 } from "react/jsx-runtime";
7942
7923
  var getAlignment = (align) => {
7943
7924
  if (align === "center") {
@@ -7983,7 +7964,7 @@ var ButtonGroup = ({
7983
7964
  collapseOnSmallScreens = true,
7984
7965
  ...props
7985
7966
  }) => {
7986
- if (isNil10(children)) {
7967
+ if (isNil9(children)) {
7987
7968
  return null;
7988
7969
  }
7989
7970
  return /* @__PURE__ */ jsx202(
@@ -8096,11 +8077,11 @@ import { isNonEmptyString as isNonEmptyString2 } from "@wistia/type-guards";
8096
8077
 
8097
8078
  // src/private/components/FormControlLabel/FormControlLabel.tsx
8098
8079
  import styled19, { css as css20 } from "styled-components";
8099
- import { isNil as isNil12, isNotNil as isNotNil12 } from "@wistia/type-guards";
8080
+ import { isNil as isNil11, isNotNil as isNotNil12 } from "@wistia/type-guards";
8100
8081
 
8101
8082
  // src/private/components/FormControlLabel/FormControlLabelDescription.tsx
8102
8083
  import styled17, { css as css19 } from "styled-components";
8103
- import { isNil as isNil11 } from "@wistia/type-guards";
8084
+ import { isNil as isNil10 } from "@wistia/type-guards";
8104
8085
  import { jsx as jsx205 } from "react/jsx-runtime";
8105
8086
  var disabledStyle = css19`
8106
8087
  color: var(--wui-color-text-disabled);
@@ -8120,7 +8101,7 @@ var FormControlLabelDescription = ({
8120
8101
  disabled = false,
8121
8102
  ...props
8122
8103
  }) => {
8123
- if (isNil11(children)) {
8104
+ if (isNil10(children)) {
8124
8105
  return null;
8125
8106
  }
8126
8107
  return /* @__PURE__ */ jsx205(
@@ -8188,7 +8169,7 @@ var FormControlLabel = ({
8188
8169
  hideLabel = false,
8189
8170
  ...props
8190
8171
  }) => {
8191
- if (isNil12(label)) {
8172
+ if (isNil11(label)) {
8192
8173
  return null;
8193
8174
  }
8194
8175
  const labelContent = hideLabel ? /* @__PURE__ */ jsx207(ScreenReaderOnly, { children: label }) : /* @__PURE__ */ jsxs14(StyledLabelWrapper, { children: [
@@ -8368,7 +8349,7 @@ var Checkbox = forwardRef7(
8368
8349
  Checkbox.displayName = "Checkbox";
8369
8350
 
8370
8351
  // src/components/ClickRegion/ClickRegion.tsx
8371
- import { Children as Children3, cloneElement as cloneElement3, useCallback as useCallback8, useEffect as useEffect8 } from "react";
8352
+ import { Children as Children2, cloneElement as cloneElement2, useCallback as useCallback8, useEffect as useEffect8 } from "react";
8372
8353
  var isClickableElement = (element) => {
8373
8354
  if (!element) return false;
8374
8355
  const el = element;
@@ -8403,7 +8384,7 @@ var ClickRegion = ({ children, targetRef }) => {
8403
8384
  },
8404
8385
  [targetRef]
8405
8386
  );
8406
- return cloneElement3(Children3.only(children), {
8387
+ return cloneElement2(Children2.only(children), {
8407
8388
  "data-click-region": true,
8408
8389
  onClick: handleClick
8409
8390
  });
@@ -8436,11 +8417,11 @@ var Collapsible = ({
8436
8417
  Collapsible.displayName = "Collapsible";
8437
8418
 
8438
8419
  // src/components/Collapsible/CollapsibleTrigger.tsx
8439
- import { Children as Children4 } from "react";
8420
+ import { Children as Children3 } from "react";
8440
8421
  import { Trigger } from "@radix-ui/react-collapsible";
8441
8422
  import { jsx as jsx210 } from "react/jsx-runtime";
8442
8423
  var CollapsibleTrigger = ({ children }) => {
8443
- Children4.only(children);
8424
+ Children3.only(children);
8444
8425
  return /* @__PURE__ */ jsx210(Trigger, { asChild: true, children });
8445
8426
  };
8446
8427
 
@@ -9180,9 +9161,9 @@ var Tooltip = ({
9180
9161
  Tooltip.displayName = "Tooltip";
9181
9162
 
9182
9163
  // src/components/Input/Input.tsx
9183
- import { forwardRef as forwardRef10, cloneElement as cloneElement4, useRef as useRef6 } from "react";
9164
+ import { forwardRef as forwardRef10, cloneElement as cloneElement3, useRef as useRef6 } from "react";
9184
9165
  import styled30, { css as css26 } from "styled-components";
9185
- import { isNil as isNil13, isNotNil as isNotNil16, isRecord as isRecord4 } from "@wistia/type-guards";
9166
+ import { isNil as isNil12, isNotNil as isNotNil16, isRecord as isRecord4 } from "@wistia/type-guards";
9186
9167
 
9187
9168
  // src/css/sharedStyles/inputCssVariables.ts
9188
9169
  import { css as css25 } from "styled-components";
@@ -9331,18 +9312,18 @@ var Input = forwardRef10(
9331
9312
  isNotNil16(externalRef) && isRecord4(externalRef) && "current" in externalRef ? externalRef : internalRef
9332
9313
  );
9333
9314
  let leftIconToDisplay = leftIcon;
9334
- if (isNil13(leftIcon) && type === "search") {
9315
+ if (isNil12(leftIcon) && type === "search") {
9335
9316
  leftIconToDisplay = /* @__PURE__ */ jsx219(Icon, { type: "search" });
9336
9317
  }
9337
9318
  if (isNotNil16(leftIconToDisplay)) {
9338
- leftIconToDisplay = cloneElement4(leftIconToDisplay, {
9319
+ leftIconToDisplay = cloneElement3(leftIconToDisplay, {
9339
9320
  size: "md",
9340
9321
  className: "wui-input-left-icon"
9341
9322
  });
9342
9323
  }
9343
9324
  let rightIconToDisplay = rightIcon;
9344
9325
  if (isNotNil16(rightIconToDisplay)) {
9345
- rightIconToDisplay = cloneElement4(rightIconToDisplay, {
9326
+ rightIconToDisplay = cloneElement3(rightIconToDisplay, {
9346
9327
  size: "md",
9347
9328
  className: "wui-input-right-icon"
9348
9329
  });
@@ -9729,7 +9710,7 @@ var FormErrorSummary = ({ description }) => {
9729
9710
  };
9730
9711
 
9731
9712
  // src/components/FormField/FormField.tsx
9732
- import { Children as Children5, cloneElement as cloneElement5, useContext as useContext4 } from "react";
9713
+ import { Children as Children4, cloneElement as cloneElement4, useContext as useContext4 } from "react";
9733
9714
  import styled36 from "styled-components";
9734
9715
  import { isArray as isArray2, isNotNil as isNotNil17, isNotUndefined as isNotUndefined9, isUndefined as isUndefined4 } from "@wistia/type-guards";
9735
9716
 
@@ -9964,7 +9945,7 @@ var FormField = ({
9964
9945
  "aria-invalid": isNotNil17(error)
9965
9946
  };
9966
9947
  }
9967
- Children5.only(children);
9948
+ Children4.only(children);
9968
9949
  return /* @__PURE__ */ jsxs24(
9969
9950
  StyledFormField,
9970
9951
  {
@@ -9973,7 +9954,7 @@ var FormField = ({
9973
9954
  children: [
9974
9955
  !isIntegratedLabel && /* @__PURE__ */ jsx227(Label, { htmlFor: computedId, children: label }),
9975
9956
  isNotNil17(description) ? /* @__PURE__ */ jsx227(FormControlLabelDescription, { id: descriptionId, children: description }) : null,
9976
- cloneElement5(children, childProps),
9957
+ cloneElement4(children, childProps),
9977
9958
  isNotNil17(computedError) ? /* @__PURE__ */ jsxs24(Fragment6, { children: [
9978
9959
  /* @__PURE__ */ jsx227("div", {}),
9979
9960
  /* @__PURE__ */ jsx227(
@@ -10012,7 +9993,7 @@ var RadioGroup = ({
10012
9993
  RadioGroup.displayName = "RadioGroup";
10013
9994
 
10014
9995
  // src/components/IconButton/IconButton.tsx
10015
- import { Children as Children6, cloneElement as cloneElement6, forwardRef as forwardRef13 } from "react";
9996
+ import { Children as Children5, cloneElement as cloneElement5, forwardRef as forwardRef13 } from "react";
10016
9997
  import styled37 from "styled-components";
10017
9998
  import { jsx as jsx229 } from "react/jsx-runtime";
10018
9999
  var StyledButton2 = styled37(Button)`
@@ -10040,7 +10021,7 @@ var IconButton = forwardRef13(
10040
10021
  "aria-label": label,
10041
10022
  "data-wistia-ui-icon-button": true,
10042
10023
  size: responsiveSize,
10043
- children: cloneElement6(Children6.only(children), {
10024
+ children: cloneElement5(Children5.only(children), {
10044
10025
  size: responsiveSize
10045
10026
  })
10046
10027
  }
@@ -11513,7 +11494,7 @@ Radio.displayName = "Radio";
11513
11494
  import { forwardRef as forwardRef21 } from "react";
11514
11495
  import styled55, { css as css34 } from "styled-components";
11515
11496
  import { Root as ToggleGroupRoot } from "@radix-ui/react-toggle-group";
11516
- import { isNil as isNil14 } from "@wistia/type-guards";
11497
+ import { isNil as isNil13 } from "@wistia/type-guards";
11517
11498
 
11518
11499
  // src/components/SegmentedControl/useSelectedItemStyle.tsx
11519
11500
  import { createContext as createContext7, useContext as useContext6, useMemo as useMemo8, useState as useState14 } from "react";
@@ -11613,7 +11594,7 @@ var SegmentedControl = forwardRef21(
11613
11594
  onSelectedValueChange,
11614
11595
  ...props
11615
11596
  }, ref) => {
11616
- if (isNil14(children)) {
11597
+ if (isNil13(children)) {
11617
11598
  return null;
11618
11599
  }
11619
11600
  return /* @__PURE__ */ jsx252(
@@ -12244,7 +12225,7 @@ var TableRow = ({ children, ...props }) => {
12244
12225
  // src/components/Tabs/Tabs.tsx
12245
12226
  import { forwardRef as forwardRef27, useState as useState15 } from "react";
12246
12227
  import { Root as TabsRoot } from "@radix-ui/react-tabs";
12247
- import { isNotNil as isNotNil30, isNil as isNil15 } from "@wistia/type-guards";
12228
+ import { isNotNil as isNotNil30, isNil as isNil14 } from "@wistia/type-guards";
12248
12229
  import styled71 from "styled-components";
12249
12230
 
12250
12231
  // src/components/Tabs/TabPanel.tsx
@@ -12373,10 +12354,10 @@ var TabItem = forwardRef26(
12373
12354
  TabItem.displayName = "TabItem";
12374
12355
 
12375
12356
  // src/components/Tabs/extractTabItems.ts
12376
- import { Children as Children7, Fragment as Fragment7, isValidElement as isValidElement2 } from "react";
12357
+ import { Children as Children6, Fragment as Fragment7, isValidElement as isValidElement2 } from "react";
12377
12358
  var extractTabItems = (children) => {
12378
12359
  const tabItems = [];
12379
- Children7.forEach(children, (child) => {
12360
+ Children6.forEach(children, (child) => {
12380
12361
  if (!isValidElement2(child)) {
12381
12362
  return;
12382
12363
  }
@@ -12471,7 +12452,7 @@ var Tabs = forwardRef27(
12471
12452
  label,
12472
12453
  "aria-label": ariaLabelForTab
12473
12454
  } = tab.props;
12474
- if (isNil15(icon)) {
12455
+ if (isNil14(icon)) {
12475
12456
  return /* @__PURE__ */ jsx266(
12476
12457
  TabItem,
12477
12458
  {
@@ -12537,7 +12518,7 @@ Tab.displayName = "Tab";
12537
12518
  // src/components/Tag/Tag.tsx
12538
12519
  import { forwardRef as forwardRef29 } from "react";
12539
12520
  import styled72 from "styled-components";
12540
- import { isNil as isNil16, isNotNil as isNotNil31, isNonEmptyString as isNonEmptyString5 } from "@wistia/type-guards";
12521
+ import { isNil as isNil15, isNotNil as isNotNil31, isNonEmptyString as isNonEmptyString5 } from "@wistia/type-guards";
12541
12522
  import { Fragment as Fragment8, jsx as jsx268, jsxs as jsxs44 } from "react/jsx-runtime";
12542
12523
  var TagLabel = styled72.a`
12543
12524
  ${({ $colorScheme }) => getColorScheme($colorScheme)};
@@ -12622,10 +12603,10 @@ var StyledTag = styled72.div`
12622
12603
  }
12623
12604
  `;
12624
12605
  var RemoveButton = ({ onClickRemove, onClickRemoveLabel, colorScheme }) => {
12625
- if (isNil16(onClickRemove)) {
12606
+ if (isNil15(onClickRemove)) {
12626
12607
  return null;
12627
12608
  }
12628
- if (isNil16(onClickRemoveLabel)) {
12609
+ if (isNil15(onClickRemoveLabel)) {
12629
12610
  throw new Error(
12630
12611
  "for accessibility, onClickRemoveLabel must be provided if onClickRemove is provided"
12631
12612
  );
@@ -12728,7 +12709,7 @@ ThumbnailBadge.displayName = "ThumbnailBadge";
12728
12709
  // src/components/Thumbnail/Thumbnail.tsx
12729
12710
  import { forwardRef as forwardRef30 } from "react";
12730
12711
  import styled74 from "styled-components";
12731
- import { isNil as isNil17, isNotNil as isNotNil34 } from "@wistia/type-guards";
12712
+ import { isNil as isNil16, isNotNil as isNotNil34 } from "@wistia/type-guards";
12732
12713
 
12733
12714
  // src/private/helpers/getBackgroundGradient/getBackgroundGradient.ts
12734
12715
  import { isNotNil as isNotNil33 } from "@wistia/type-guards";
@@ -12898,7 +12879,7 @@ var StyledThumbnail = styled74.div`
12898
12879
  background-image: ${({ $backgroundUrl }) => isNotNil34($backgroundUrl) ? `url('${$backgroundUrl}')` : void 0};
12899
12880
  ${({ $backgroundUrl, $gradientBackground }) => (
12900
12881
  // if we don't have $backgroundUrl show a gradient
12901
- isNil17($backgroundUrl) ? getBackgroundGradient($gradientBackground) : void 0
12882
+ isNil16($backgroundUrl) ? getBackgroundGradient($gradientBackground) : void 0
12902
12883
  )};
12903
12884
  background-position: center center;
12904
12885
  background-size: cover;
@@ -13179,6 +13160,164 @@ var WistiaLogo = ({
13179
13160
  return href !== void 0 ? /* @__PURE__ */ jsx272("a", { href, children: Logo }) : Logo;
13180
13161
  };
13181
13162
  WistiaLogo.displayName = "WistiaLogo";
13163
+
13164
+ // src/components/List/List.tsx
13165
+ import { isNotNil as isNotNil36 } from "@wistia/type-guards";
13166
+ import styled78, { css as css41 } from "styled-components";
13167
+
13168
+ // src/components/List/ListItem.tsx
13169
+ import styled77 from "styled-components";
13170
+ import { isNil as isNil17 } from "@wistia/type-guards";
13171
+ import { jsx as jsx273 } from "react/jsx-runtime";
13172
+ var ListItemComponent = styled77.li`
13173
+ margin-bottom: var(--wui-space-02);
13174
+ `;
13175
+ var ListItem = ({ children }) => {
13176
+ if (isNil17(children)) {
13177
+ return null;
13178
+ }
13179
+ return /* @__PURE__ */ jsx273(ListItemComponent, { children });
13180
+ };
13181
+ ListItem.displayName = "ListItem";
13182
+
13183
+ // src/components/List/List.tsx
13184
+ import { jsx as jsx274, jsxs as jsxs48 } from "react/jsx-runtime";
13185
+ var spacesStyle = css41`
13186
+ overflow: hidden;
13187
+ padding-left: 0;
13188
+ vertical-align: bottom;
13189
+
13190
+ li {
13191
+ display: block;
13192
+ float: left;
13193
+
13194
+ &::after {
13195
+ content: ' ';
13196
+ padding-right: var(--wui-space-03);
13197
+ }
13198
+
13199
+ &:last-child {
13200
+ &::after {
13201
+ content: '' !important;
13202
+ padding-right: 0;
13203
+ }
13204
+ }
13205
+ }
13206
+ `;
13207
+ var commasStyle = css41`
13208
+ ${spacesStyle};
13209
+
13210
+ li {
13211
+ &::after {
13212
+ content: ',' !important;
13213
+ padding-right: var(--wui-space-01);
13214
+ }
13215
+ }
13216
+ `;
13217
+ var slashesStyle = css41`
13218
+ ${spacesStyle};
13219
+
13220
+ li {
13221
+ &::after {
13222
+ content: '/' !important;
13223
+ padding-left: var(--wui-space-01);
13224
+ padding-right: var(--wui-space-01);
13225
+ }
13226
+ }
13227
+ `;
13228
+ var breadcrumbsStyle = css41`
13229
+ ${spacesStyle};
13230
+
13231
+ li {
13232
+ &::after {
13233
+ content: '>' !important;
13234
+ padding-left: var(--wui-space-01);
13235
+ padding-right: var(--wui-space-01);
13236
+ }
13237
+ }
13238
+ `;
13239
+ var unbulletedStyle = css41`
13240
+ list-style: none;
13241
+ padding-left: 0;
13242
+ `;
13243
+ var ListComponent = styled78.ul`
13244
+ list-style-position: outside;
13245
+ margin: 0 0 var(--wui-space-01);
13246
+ padding: 0 0 0 var(--wui-space-04);
13247
+ ${({ variant }) => variant === "unbulleted" && unbulletedStyle};
13248
+ ${({ variant }) => variant === "spaces" && spacesStyle};
13249
+ ${({ variant }) => variant === "commas" && commasStyle};
13250
+ ${({ variant }) => variant === "slashes" && slashesStyle};
13251
+ ${({ variant }) => variant === "breadcrumbs" && breadcrumbsStyle};
13252
+
13253
+ > li:last-child {
13254
+ margin-bottom: 0;
13255
+ }
13256
+
13257
+ ul,
13258
+ ol {
13259
+ margin-top: var(--wui-space-01);
13260
+ }
13261
+
13262
+ /* nested lists should not have bottom margins because their container <li> will have one */
13263
+ li ul,
13264
+ li ol {
13265
+ margin-bottom: 0;
13266
+ }
13267
+ `;
13268
+ var renderListComponent = (listItems, variant, { ...otherProps }) => {
13269
+ const elementType = variant === "ordered" ? "ol" : "ul";
13270
+ return /* @__PURE__ */ jsx274(
13271
+ ListComponent,
13272
+ {
13273
+ as: elementType,
13274
+ variant,
13275
+ ...otherProps,
13276
+ children: listItems
13277
+ }
13278
+ );
13279
+ };
13280
+ var renderListFromArray = (listItems, variant, otherProps) => {
13281
+ let itemCount = 0;
13282
+ const items = listItems.map((listItem, i) => {
13283
+ const item = listItem;
13284
+ const nextItem = listItems[i + 1];
13285
+ const key = `item-${itemCount += 1}`;
13286
+ if (Array.isArray(nextItem)) {
13287
+ return /* @__PURE__ */ jsxs48(ListItem, { children: [
13288
+ item,
13289
+ renderListFromArray(nextItem, variant, otherProps)
13290
+ ] }, key);
13291
+ }
13292
+ if (Array.isArray(item)) {
13293
+ return null;
13294
+ }
13295
+ return /* @__PURE__ */ jsx274(ListItem, { children: item }, key);
13296
+ });
13297
+ return renderListComponent(items, variant, otherProps);
13298
+ };
13299
+ var List = ({
13300
+ children,
13301
+ items,
13302
+ variant,
13303
+ ...otherProps
13304
+ }) => {
13305
+ const listVariant = variant ?? "bullets";
13306
+ if (isNotNil36(children)) {
13307
+ if (Array.isArray(children) && !children.length) {
13308
+ return null;
13309
+ }
13310
+ return renderListComponent(children, listVariant, otherProps);
13311
+ }
13312
+ if (isNotNil36(items)) {
13313
+ if (!items.length) {
13314
+ return null;
13315
+ }
13316
+ return renderListFromArray(items, listVariant, otherProps);
13317
+ }
13318
+ return null;
13319
+ };
13320
+ List.displayName = "List";
13182
13321
  export {
13183
13322
  ActionButton,
13184
13323
  Avatar,
@@ -13221,6 +13360,7 @@ export {
13221
13360
  KeyboardShortcut,
13222
13361
  Label,
13223
13362
  Link,
13363
+ List,
13224
13364
  Menu,
13225
13365
  MenuItem,
13226
13366
  MenuItemDescription,